@readmagic/workmate 0.0.5 → 0.0.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 (346) hide show
  1. package/dist/chunks/{AddWorkspaceDirectory-DJRkEz7o.js → AddWorkspaceDirectory-ClHi-Dr6.js} +1 -1
  2. package/dist/chunks/{App-iJu5qyiF.js → App-BP06lHmf.js} +1 -1
  3. package/dist/chunks/{ApproveApiKey-CRejTHUw.js → ApproveApiKey-Bsy8kr2a.js} +1 -1
  4. package/dist/chunks/ApproveApiKey-a2ZonQ3n.js +1 -0
  5. package/dist/chunks/{AssistantSessionChooser-CBLQ1v-J.js → AssistantSessionChooser-CcocKoTJ.js} +1 -1
  6. package/dist/chunks/{BackgroundTasksDialog-CyoLEYWH.js → BackgroundTasksDialog-DNeBhGCf.js} +1 -1
  7. package/dist/chunks/{BypassPermissionsModeDialog-D1FCKVOi.js → BypassPermissionsModeDialog-BKj_3Idm.js} +1 -1
  8. package/dist/chunks/{ClaudeMdExternalIncludesDialog-CI0yF6sZ.js → ClaudeMdExternalIncludesDialog-BD-7yAZh.js} +1 -1
  9. package/dist/chunks/ClaudeMdExternalIncludesDialog-DFivNFuo.js +1 -0
  10. package/dist/chunks/ConsoleOAuthFlow-CS3zjEPF.js +1 -0
  11. package/dist/chunks/{DesktopHandoff-D1rrMxeP.js → DesktopHandoff-BmPmCfT3.js} +1 -1
  12. package/dist/chunks/{DiffDialog-BKcfKx7O.js → DiffDialog-C4XSSjvV.js} +1 -1
  13. package/dist/chunks/Doctor-BhD-ZzZm.js +1 -0
  14. package/dist/chunks/{Doctor-Yco1McrL.js → Doctor-DEQe2q16.js} +1 -1
  15. package/dist/chunks/{ExitFlow-D3csukbB.js → ExitFlow-BttnAv-O.js} +1 -1
  16. package/dist/chunks/{Feedback-bEUtrHia.js → Feedback-BaYA8-SU.js} +1 -1
  17. package/dist/chunks/Grove-BJziCbZH.js +11 -0
  18. package/dist/chunks/Grove-sWm-oLBf.js +1 -0
  19. package/dist/chunks/{HybridTransport-9fTBC2Pv.js → HybridTransport-B8V6O6rM.js} +1 -1
  20. package/dist/chunks/{InvalidConfigDialog-9M-1nfZ6.js → InvalidConfigDialog-CHzBSJDf.js} +1 -1
  21. package/dist/chunks/{InvalidSettingsDialog-B2F6pryH.js → InvalidSettingsDialog-BKenH3bD.js} +1 -1
  22. package/dist/chunks/{MCPConnectionManager-MWpKjeZT.js → MCPConnectionManager-CNh9dNlk.js} +1 -1
  23. package/dist/chunks/{McpParsingWarnings-BPBb7Npe.js → McpParsingWarnings-Bj2-YL8o.js} +1 -1
  24. package/dist/chunks/{MessageSelector-DsQmqFt2.js → MessageSelector-DdR6wJhh.js} +1 -1
  25. package/dist/chunks/{Messages-B3sGRx5A.js → Messages-Ch6cboMV.js} +2 -2
  26. package/dist/chunks/{Onboarding-cHcnsBGp.js → Onboarding-BrAJp0aL.js} +1 -1
  27. package/dist/chunks/{OverageCreditUpsell-CWCD_RpM.js → OverageCreditUpsell-Ds1cB7RC.js} +1 -1
  28. package/dist/chunks/PluginSettings-CGqEzejq.js +17 -0
  29. package/dist/chunks/{PromptInputFooterSuggestions-D5sAO6y-.js → PromptInputFooterSuggestions-egs9VvUs.js} +1 -1
  30. package/dist/chunks/{PromptInputHelpMenu-n6hAdsto.js → PromptInputHelpMenu-SieM5NoY.js} +1 -1
  31. package/dist/chunks/{QueryEngine-cwdsr4dr.js → QueryEngine-CZZMl3PB.js} +1 -1
  32. package/dist/chunks/{REPL-CJzScgbZ.js → REPL-CG2N7E4Q.js} +6 -6
  33. package/dist/chunks/REPL-DvA910N_.js +1 -0
  34. package/dist/chunks/{RemoteCallout-CiA4rCEs.js → RemoteCallout-Cs-ro8_i.js} +1 -1
  35. package/dist/chunks/{RemoteSessionManager-zdHfmvfj.js → RemoteSessionManager-B740Dp6m.js} +1 -1
  36. package/dist/chunks/{ResumeConversation-Rxwd6HAJ.js → ResumeConversation-DzV2zmuX.js} +1 -1
  37. package/dist/chunks/{SSETransport-BPbhCa2f.js → SSETransport-DtpMDekF.js} +1 -1
  38. package/dist/chunks/SearchExtraToolsTool-C4uO-Zx3.js +1 -0
  39. package/dist/chunks/{Settings-CxI_KHUj.js → Settings-XKw6FI_m.js} +2 -2
  40. package/dist/chunks/{TeleportProgress-DrulEQ7z.js → TeleportProgress-rYaHIEfe.js} +1 -1
  41. package/dist/chunks/{TeleportRepoMismatchDialog-D3FOLr0P.js → TeleportRepoMismatchDialog-DY97YZMB.js} +1 -1
  42. package/dist/chunks/{TeleportResumeWrapper-DI5iRFND.js → TeleportResumeWrapper-jaQzyTCh.js} +1 -1
  43. package/dist/chunks/{ThemePicker-CQ7dfFtv.js → ThemePicker-BViWzLp3.js} +1 -1
  44. package/dist/chunks/{TrustDialog-CnVKrdxQ.js → TrustDialog-DGJ_BisZ.js} +1 -1
  45. package/dist/chunks/{ValidationErrorsList-CPYeuppg.js → ValidationErrorsList-B8pRiGuy.js} +1 -1
  46. package/dist/chunks/{WelcomeV2-C-UXdIng.js → WelcomeV2-DqnbSdIu.js} +1 -1
  47. package/dist/chunks/{add-dir-xTz4COgn.js → add-dir-C2Hu3oE4.js} +1 -1
  48. package/dist/chunks/{agentDisplay-BuSReYxu.js → agentDisplay-XoDJhr03.js} +1 -1
  49. package/dist/chunks/{agents-Du9KYHqN.js → agents-BIHTGDYh.js} +1 -1
  50. package/dist/chunks/{agents-CiLlKN2I.js → agents-C4QXeHIJ.js} +1 -1
  51. package/dist/chunks/{allErrors-P3utlEeA.js → allErrors-1896uQA1.js} +1 -1
  52. package/dist/chunks/{ant-CBIfqmAb.js → ant-B6k6cBts.js} +1 -1
  53. package/dist/chunks/api-BsFW57_Q.js +1 -0
  54. package/dist/chunks/{api-B-5jqiMg.js → api-gqTA-D7n.js} +1 -1
  55. package/dist/chunks/{assistant-XOnU01yl.js → assistant-DJ9hd4uC.js} +1 -1
  56. package/dist/chunks/auth-8Vd3_U8t.js +1 -0
  57. package/dist/chunks/{auth-DT2yxy94.js → auth-BnSrKyJe.js} +1 -1
  58. package/dist/chunks/auth-DRTjfnGy.js +1 -0
  59. package/dist/chunks/{autoMode-CEMflt3g.js → autoMode-BNukrVAB.js} +1 -1
  60. package/dist/chunks/{autonomy-_N8aDaA8.js → autonomy-BEmI7WVW.js} +1 -1
  61. package/dist/chunks/{autonomy-Cg5zweUa.js → autonomy-DGcy5Rml.js} +1 -1
  62. package/dist/chunks/{autonomyPanel-I4yCy3Fr.js → autonomyPanel-fhge09AG.js} +1 -1
  63. package/dist/chunks/backgroundHousekeeping-3i_d_WW5.js +1 -0
  64. package/dist/chunks/{backgroundHousekeeping-DhF2lrQ9.js → backgroundHousekeeping-BVMf_Tjn.js} +2 -2
  65. package/dist/chunks/{branch-BIX-pyHp.js → branch-Bpe-gocq.js} +1 -1
  66. package/dist/chunks/{break-cache-BQfgkNAo.js → break-cache-C_p7Kmx2.js} +3 -3
  67. package/dist/chunks/{bridge-CYskzVt8.js → bridge-D12Shbkj.js} +2 -2
  68. package/dist/chunks/{bridgeConfig-5p_w4s5r.js → bridgeConfig-BhxRF2vm.js} +1 -1
  69. package/dist/chunks/bridgeConfig-CqIQ_rvD.js +1 -0
  70. package/dist/chunks/bridgeEnabled-D0XC5kNh.js +1 -0
  71. package/dist/chunks/{bridgeEnabled-DhFrLTbG.js → bridgeEnabled-SbB-6zdY.js} +1 -1
  72. package/dist/chunks/{bridgeMain-BX2AkLPs.js → bridgeMain-DHUpZFgL.js} +6 -6
  73. package/dist/chunks/bridgeMain-DUbQjgCp.js +1 -0
  74. package/dist/chunks/{bridgeMessaging-B5Lbzr8e.js → bridgeMessaging-DHc5dOhB.js} +1 -1
  75. package/dist/chunks/{btw-CWWFO7u8.js → btw-D9hMM5d2.js} +1 -1
  76. package/dist/chunks/caches-CWzT7e6Y.js +1 -0
  77. package/dist/chunks/{caches-DPqPIogk.js → caches-UeVVM3T0.js} +2 -2
  78. package/dist/chunks/{ccrClient-CTLnU9Y1.js → ccrClient-Iza0L8Zw.js} +1 -1
  79. package/dist/chunks/{clear-DCAgZwc4.js → clear-B4d38ssF.js} +1 -1
  80. package/dist/chunks/client-BzKQTXzF.js +1 -0
  81. package/dist/chunks/{color-CmJGInHL.js → color-D8VOyoYl.js} +1 -1
  82. package/dist/chunks/commands-DDamMmo4.js +1 -0
  83. package/dist/chunks/commitAttribution-CgohL8vD.js +1 -0
  84. package/dist/chunks/{commitAttribution-CGZr7XNO.js → commitAttribution-ChAgixdj.js} +1 -1
  85. package/dist/chunks/{compact-C6-lMHgn.js → compact-IFHwxjZ9.js} +1 -1
  86. package/dist/chunks/config-DY5-_kk_.js +1 -0
  87. package/dist/chunks/{config-3m_9zSrj.js → config-DmomySWC.js} +1 -1
  88. package/dist/chunks/config-WxgxrQoP.js +1 -0
  89. package/dist/chunks/{context-C9V4GF0n.js → context-Cl6BJ2vm.js} +1 -1
  90. package/dist/chunks/{context-noninteractive-BmC4o5xo.js → context-noninteractive-9hELVC29.js} +1 -1
  91. package/dist/chunks/context-noninteractive-Beij5MfU.js +1 -0
  92. package/dist/chunks/conversation-BBB91hEw.js +1 -0
  93. package/dist/chunks/{conversation-CYqqk0o7.js → conversation-BWVTM40Y.js} +1 -1
  94. package/dist/chunks/{createSSHSession-BL6j0AU5.js → createSSHSession-BM-5pbv6.js} +1 -1
  95. package/dist/chunks/createSession-CoQtL5Rj.js +1 -0
  96. package/dist/chunks/{createSession-D_sgO1Xy.js → createSession-Cvl1Q50F.js} +1 -1
  97. package/dist/chunks/{crossProjectResume-D5hTOfnE.js → crossProjectResume-BasMLl2n.js} +1 -1
  98. package/dist/chunks/{datadog-UkGdjL8-.js → datadog-CpqEQbHa.js} +1 -1
  99. package/dist/chunks/{desktop-HbYKh-VK.js → desktop-B_L6T6jI.js} +1 -1
  100. package/dist/chunks/{diff-nTV17iWX.js → diff-CVzOodeg.js} +1 -1
  101. package/dist/chunks/doctor-1L0TFuGw.js +1 -0
  102. package/dist/chunks/{entry-CCFI6-gM.js → entry-DHVYCR26.js} +1 -1
  103. package/dist/chunks/envLessBridgeConfig-CN0_44-p.js +1 -0
  104. package/dist/chunks/{envLessBridgeConfig-DXd10GXD.js → envLessBridgeConfig-Ck2-KMq0.js} +1 -1
  105. package/dist/chunks/{esm-CGoYrggU.js → esm-D5q6s4l8.js} +1 -1
  106. package/dist/chunks/{exit-ropaQiOr.js → exit-Bm1S_f3i.js} +1 -1
  107. package/dist/chunks/extra-usage-UHAWtypK.js +1 -0
  108. package/dist/chunks/{extra-usage-core-DLYHAInT.js → extra-usage-core-BFOolqoi.js} +1 -1
  109. package/dist/chunks/{extra-usage-noninteractive-D8iszH3c.js → extra-usage-noninteractive-cUGZy0en.js} +1 -1
  110. package/dist/chunks/{extra-usage-g2Pw4zt_.js → extra-usage-zDHVtWKZ.js} +1 -1
  111. package/dist/chunks/{extraUsage-C2Ylufhj.js → extraUsage-Dq66zzqR.js} +1 -1
  112. package/dist/chunks/extractMemories-BcaklA33.js +1 -0
  113. package/dist/chunks/fast-DALAHO3d.js +1 -0
  114. package/dist/chunks/{fast-Dx2fTmWr.js → fast-MS7WZpD8.js} +1 -1
  115. package/dist/chunks/{feedback-DCQ4pJ3v.js → feedback-Fw4m28ZC.js} +1 -1
  116. package/dist/chunks/firstPartyEventLogger-CS9jVz6D.js +1 -0
  117. package/dist/chunks/{firstPartyEventLogger-BNGPPBNP.js → firstPartyEventLogger-CoSUd0a1.js} +2 -2
  118. package/dist/chunks/{flushGate-XaheIZZT.js → flushGate-De-yppeo.js} +1 -1
  119. package/dist/chunks/{gemini-BCCLHK3K.js → gemini-BPziscyN.js} +1 -1
  120. package/dist/chunks/{generateRecap-BhvbixY2.js → generateRecap-jGDLI_wU.js} +1 -1
  121. package/dist/chunks/{generateSessionName-CN1oh7Fa.js → generateSessionName-hDJ6HBJ1.js} +1 -1
  122. package/dist/chunks/{githubRepoPathMapping-B4AM8luI.js → githubRepoPathMapping-qAoiyj6P.js} +1 -1
  123. package/dist/chunks/{goal-Bp6fyGqo.js → goal-CFx4eRkf.js} +1 -1
  124. package/dist/chunks/{grok-ax26ju8y.js → grok-Byblph7F.js} +1 -1
  125. package/dist/chunks/{grove-DrBVaZSN.js → grove-CpqjcGCb.js} +1 -1
  126. package/dist/chunks/{heapdump-JseysNDr.js → heapdump-C4kPlqGt.js} +1 -1
  127. package/dist/chunks/{help-DR9hKneR.js → help-B1h-faJ3.js} +1 -1
  128. package/dist/chunks/hooks-DPLIIpAD.js +1 -0
  129. package/dist/chunks/{hooks-C5n23H1E.js → hooks-X6J03MnA.js} +1 -1
  130. package/dist/chunks/hostGuard-BHI6Q8Mt.js +1 -0
  131. package/dist/chunks/inboundAttachments-BekVc0W-.js +1 -0
  132. package/dist/chunks/{inboundAttachments-Cp8XvLMZ.js → inboundAttachments-CUJE3KaU.js} +1 -1
  133. package/dist/chunks/{initReplBridge-DJs28ZkI.js → initReplBridge-JQ-afRx9.js} +1 -1
  134. package/dist/chunks/{install-C7qTB0V5.js → install-D5YORIJL.js} +1 -1
  135. package/dist/chunks/{instrumentation-CLZttr_u.js → instrumentation-Bw3CxPQf.js} +3 -3
  136. package/dist/chunks/{job-BhiazwPH.js → job-DOWtcltx.js} +1 -1
  137. package/dist/chunks/{keybindings-CkL8BzUt.js → keybindings-BLw5J-Zj.js} +1 -1
  138. package/dist/chunks/{language-DIw2871r.js → language-C6Fq-XOZ.js} +1 -1
  139. package/dist/chunks/language-Cqw5gYJR.js +1 -0
  140. package/dist/chunks/{launchAgentsPlatform-j-mWpwW1.js → launchAgentsPlatform-jWWf-Lk9.js} +1 -1
  141. package/dist/chunks/{launchLocalMemory-DmoXp0Xo.js → launchLocalMemory-kHeD0I0y.js} +1 -1
  142. package/dist/chunks/{launchLocalVault-1uKe0HjA.js → launchLocalVault-DLqkOjmb.js} +1 -1
  143. package/dist/chunks/{launchMemoryStores-SxDKjHJ3.js → launchMemoryStores-Ct7AVXrO.js} +1 -1
  144. package/dist/chunks/{launchOnboarding-CTtpnXcs.js → launchOnboarding-Cc6WwPX9.js} +1 -1
  145. package/dist/chunks/{launchSchedule-BDVnGhaL.js → launchSchedule-ZyvuvjgU.js} +1 -1
  146. package/dist/chunks/{launchSkillStore-SmMLxp4K.js → launchSkillStore-BejQnLog.js} +1 -1
  147. package/dist/chunks/{launchTeleport-B472ZSGz.js → launchTeleport-8CuYUfIR.js} +1 -1
  148. package/dist/chunks/{launchVault-CsyBgxle.js → launchVault-DIvIOuPh.js} +1 -1
  149. package/dist/chunks/{loadAgentsDir-Clu7Uk6a.js → loadAgentsDir-D206qwP3.js} +47 -47
  150. package/dist/chunks/loadAgentsDir-TZjwTqdr.js +1 -0
  151. package/dist/chunks/{loadPluginHooks-Cvd5VdjQ.js → loadPluginHooks-Ddhsyn0_.js} +1 -1
  152. package/dist/chunks/{localSearch-iA6JTk19.js → localSearch-CzrbOklu.js} +1 -1
  153. package/dist/chunks/localSearch-DrOAL6f4.js +1 -0
  154. package/dist/chunks/{logoV2Utils-YHBJLIrC.js → logoV2Utils-8M56V7oN.js} +1 -1
  155. package/dist/chunks/{magicDocs-Bf1fqnHN.js → magicDocs-DWjL2k7P.js} +1 -1
  156. package/dist/chunks/{main-gtV_TqXP.js → main-BohPzJFF.js} +16 -16
  157. package/dist/chunks/{mappers-C8lYERPX.js → mappers-BDMZFgKx.js} +1 -1
  158. package/dist/chunks/{mcp-Ci0OPVrR.js → mcp-Bt1ITh-Z.js} +1 -1
  159. package/dist/chunks/{mcp-CNuhEGP6.js → mcp-CwJ-AIpt.js} +2 -2
  160. package/dist/chunks/{mcp-CwIYauZl.js → mcp-W0LFoyFR.js} +1 -1
  161. package/dist/chunks/{memory-DCGqfQ1U.js → memory-3wV7m7UU.js} +1 -1
  162. package/dist/chunks/{mode-DO6g7nkX.js → mode-CUkHFkju.js} +1 -1
  163. package/dist/chunks/{model-DLXL0CNu.js → model-BY3auM2c.js} +1 -1
  164. package/dist/chunks/model-CKkOnnnx.js +1 -0
  165. package/dist/chunks/model-DRXcJyU9.js +1 -0
  166. package/dist/chunks/{nativeInstaller-OPuO2sm_.js → nativeInstaller-CA5d6_G7.js} +1 -1
  167. package/dist/chunks/{onChangeAppState-CHhRDkM7.js → onChangeAppState-DBmy2Ow_.js} +1 -1
  168. package/dist/chunks/{openai-HOebt-8k.js → openai-Cbomn0Ws.js} +1 -1
  169. package/dist/chunks/{overageCreditGrant-Bi1CTBAx.js → overageCreditGrant-DsUrmeBh.js} +1 -1
  170. package/dist/chunks/{panel-CrTPqXCv.js → panel-BSZGX6jN.js} +1 -1
  171. package/dist/chunks/{panelCall-D0eURklm.js → panelCall-BsVoL1uF.js} +1 -1
  172. package/dist/chunks/{partition-C8RSL3SQ.js → partition-BAakXjvj.js} +1 -1
  173. package/dist/chunks/{passes-BJci5SM_.js → passes-CLRt7Cvm.js} +1 -1
  174. package/dist/chunks/{permissions-JU9CGHgI.js → permissions-BVSFuwNP.js} +1 -1
  175. package/dist/chunks/{pidLock-Bd2e6xuT.js → pidLock-D5rUnDB-.js} +2 -2
  176. package/dist/chunks/{plan-D4gMsK7i.js → plan-SYZ4DXR8.js} +1 -1
  177. package/dist/chunks/{plugin-CwCo5Kik.js → plugin-Bfjzhmrk.js} +1 -1
  178. package/dist/chunks/{pluginAutoupdate-CO-n9bqe.js → pluginAutoupdate-reO2PgtQ.js} +1 -1
  179. package/dist/chunks/{pluginBlocklist-5qbaTRbV.js → pluginBlocklist-C3H2afWG.js} +1 -1
  180. package/dist/chunks/{pluginCliCommands-I-lsw_us.js → pluginCliCommands-lqdxdkQp.js} +1 -1
  181. package/dist/chunks/{pluginFlagging-DNPBbJZo.js → pluginFlagging-D9HKAGBC.js} +1 -1
  182. package/dist/chunks/{pluginOperations-Cz6eQ0Vu.js → pluginOperations-EN3EKLux.js} +1 -1
  183. package/dist/chunks/{pluginStartupCheck-DJ9fslCK.js → pluginStartupCheck-BY73BMT2.js} +1 -1
  184. package/dist/chunks/pluginStartupCheck-CwWOlveD.js +1 -0
  185. package/dist/chunks/{plugins-CzJIuPfb.js → plugins-Dn6ceWrT.js} +1 -1
  186. package/dist/chunks/policyLimits-CkTI5KEt.js +1 -0
  187. package/dist/chunks/{poor-Dha9p9RF.js → poor-j-y-bv8o.js} +1 -1
  188. package/dist/chunks/{poorMode-1NLYiS3Y.js → poorMode-DhzFKpPl.js} +1 -1
  189. package/dist/chunks/poorMode-V11s-3cf.js +1 -0
  190. package/dist/chunks/{print-BL4EUT5Z.js → print-Db_VXmfO.js} +4 -4
  191. package/dist/chunks/{privacy-settings-6ZWxR4Qt.js → privacy-settings-DHMJREbb.js} +1 -1
  192. package/dist/chunks/{processBashCommand-BZs9wggV.js → processBashCommand-BcM_fhV9.js} +1 -1
  193. package/dist/chunks/{processSlashCommand-D8lKLNzM.js → processSlashCommand-DEVo3GPX.js} +1 -1
  194. package/dist/chunks/{prompt-Bg_1U0gO.js → prompt-BNHtszmZ.js} +1 -1
  195. package/dist/chunks/prompt-CrX31AGm.js +1 -0
  196. package/dist/chunks/prompt-IAvMxKDl.js +1 -0
  197. package/dist/chunks/{promptEditor-BhYDmwdS.js → promptEditor-DeMrXUir.js} +1 -1
  198. package/dist/chunks/{protocolHandler-Dnb7lITm.js → protocolHandler-BHxBy84Z.js} +1 -1
  199. package/dist/chunks/{rate-limit-options-DVzT3eWH.js → rate-limit-options-DIudL9fb.js} +1 -1
  200. package/dist/chunks/{rcDebugLog-VKwMl0yg.js → rcDebugLog-CUy1_F23.js} +1 -1
  201. package/dist/chunks/{reconciler-BdRXZTJf.js → reconciler-BXpPyfSY.js} +1 -1
  202. package/dist/chunks/{referral-BlrMpBAV.js → referral-CUaIo_vT.js} +1 -1
  203. package/dist/chunks/{refresh-jwqnoK2h.js → refresh-CuaVBIQ0.js} +1 -1
  204. package/dist/chunks/{registerProtocol-CuKZAiCc.js → registerProtocol-B7Fzdofu.js} +1 -1
  205. package/dist/chunks/{release-notes-BgP8u7NE.js → release-notes-fbfv2DC0.js} +1 -1
  206. package/dist/chunks/{releaseNotes-CunqVlbU.js → releaseNotes-CxAHFLPl.js} +2 -2
  207. package/dist/chunks/{reload-plugins-CD9TzvFm.js → reload-plugins-B9IT9CFA.js} +1 -1
  208. package/dist/chunks/{remote-env-QaP_W_sv.js → remote-env-BOklGlll.js} +1 -1
  209. package/dist/chunks/{remoteBridgeCore-9-HVMo63.js → remoteBridgeCore-j0bG1zjv.js} +1 -1
  210. package/dist/chunks/{remoteManagedSettings-jZ6u8ZBT.js → remoteManagedSettings-Cq994lyc.js} +1 -1
  211. package/dist/chunks/{rename-29qxHf8W.js → rename-Iev7wQsI.js} +1 -1
  212. package/dist/chunks/{resume-D-SpOy_1.js → resume-y7MCTZHJ.js} +1 -1
  213. package/dist/chunks/{runtimeObserver-DOEcrylu.js → runtimeObserver-BZcJ1FbH.js} +1 -1
  214. package/dist/chunks/{runtimeObserver-Dm3LIUMp.js → runtimeObserver-CyzLASla.js} +2 -2
  215. package/dist/chunks/sandbox-adapter-Cu1FYrkh.js +1 -0
  216. package/dist/chunks/{sandbox-toggle-B61AeBor.js → sandbox-toggle-CWpBO228.js} +1 -1
  217. package/dist/chunks/searchExtraTools-BUOUds7p.js +1 -0
  218. package/dist/chunks/{session-RwJCIIcs.js → session-DL4cA_8l.js} +1 -1
  219. package/dist/chunks/{sessionDiscovery-dkFeWcA3.js → sessionDiscovery-DAfNKqp1.js} +1 -1
  220. package/dist/chunks/sessionFileAccessHooks-2cgIIxPk.js +1 -0
  221. package/dist/chunks/{sessionMemory-btARBn8H.js → sessionMemory-BS8_TbKj.js} +1 -1
  222. package/dist/chunks/sessionMemory-D5fSHXvZ.js +1 -0
  223. package/dist/chunks/sessionMemoryUtils-BWUztNh6.js +1 -0
  224. package/dist/chunks/sessionObserver-ChfQtK2m.js +1 -0
  225. package/dist/chunks/{sessionObserver-CSOYgsvH.js → sessionObserver-ShbCwJ8x.js} +1 -1
  226. package/dist/chunks/sessionStorage-Cf5wmnyB.js +1 -0
  227. package/dist/chunks/{sessionTitle-CLOlPZ_M.js → sessionTitle-coed9IuJ.js} +1 -1
  228. package/dist/chunks/{sessionTracing-D8wr9j4X.js → sessionTracing-D9rUyiq0.js} +1 -1
  229. package/dist/chunks/{settings-Dlp5JTa_.js → settings-BovzmwMP.js} +2 -2
  230. package/dist/chunks/{settingsSync-QWA0VZSu.js → settingsSync-PqU9XGJq.js} +1 -1
  231. package/dist/chunks/{setup-UI9uv2-K.js → setup-B_FOvNpp.js} +2 -2
  232. package/dist/chunks/{shadowedRuleDetection-CXsmUY2o.js → shadowedRuleDetection-D1wsAdpp.js} +1 -1
  233. package/dist/chunks/{sideQuestion-CHpOVzY5.js → sideQuestion-wSi38p81.js} +1 -1
  234. package/dist/chunks/sinks-BpcRrN_T.js +1 -0
  235. package/dist/chunks/{sinks-1hFrW9HK.js → sinks-C_Dl1p4K.js} +2 -2
  236. package/dist/chunks/{skill-learning-Ck17rwH8.js → skill-learning-B5tmc7EX.js} +1 -1
  237. package/dist/chunks/{skillChangeDetector-s0F9Yf9a.js → skillChangeDetector-DNqohXxz.js} +1 -1
  238. package/dist/chunks/{skillGapStore-BJ1h2LVr.js → skillGapStore-D-kQKVDZ.js} +1 -1
  239. package/dist/chunks/{skillGapStore-DyqNKuNy.js → skillGapStore-Df5BWAk5.js} +2 -2
  240. package/dist/chunks/{skillGenerator-BT8NGzXT.js → skillGenerator-DbcdpAkw.js} +2 -2
  241. package/dist/chunks/skillLearning-C5cXZE6_.js +1 -0
  242. package/dist/chunks/{skillLearning-Cn9Uw0Kd.js → skillLearning-ClRiDcJH.js} +1 -1
  243. package/dist/chunks/{skillPanel-N0GoWjIi.js → skillPanel-LBd4E-MM.js} +3 -3
  244. package/dist/chunks/{skillSearchPanel-CTwtgTzy.js → skillSearchPanel-CErRnUwo.js} +2 -2
  245. package/dist/chunks/{skills-Bv3lH-aA.js → skills-CBKhfg_a.js} +1 -1
  246. package/dist/chunks/{stats-C1Ff6w4i.js → stats-BY4dskVg.js} +1 -1
  247. package/dist/chunks/{status-DyXiBa0m.js → status-BnJIXtKl.js} +2 -2
  248. package/dist/chunks/{status-FD7HVYS7.js → status-DU-B4SMW.js} +1 -1
  249. package/dist/chunks/{statusNoticeHelpers-kTp9Rdk6.js → statusNoticeHelpers-CzTuGNuC.js} +1 -1
  250. package/dist/chunks/{tag-RzOSA5T0.js → tag-B-wVW9Aj.js} +1 -1
  251. package/dist/chunks/{tasks-eJrOcdhB.js → tasks-CBVL005y.js} +1 -1
  252. package/dist/chunks/{teleport-ABA-hdmP.js → teleport-dtqQXM4x.js} +1 -1
  253. package/dist/chunks/{templateJobs-BnOBSFtq.js → templateJobs-D6998LcG.js} +1 -1
  254. package/dist/chunks/{terminalSetup-BfvmoJaK.js → terminalSetup-0SBdyKF5.js} +1 -1
  255. package/dist/chunks/{terminalSetup-D_P5iZmq.js → terminalSetup-CuV-qU6v.js} +1 -1
  256. package/dist/chunks/{theme-S0kVMVt4.js → theme-p0AooruD.js} +1 -1
  257. package/dist/chunks/thinkback-Catprqs_.js +1 -0
  258. package/dist/chunks/{thinkback-HyW_R_88.js → thinkback-DI2NpvG-.js} +1 -1
  259. package/dist/chunks/{thinkback-play-H6md4czq.js → thinkback-play-CqrIRx2o.js} +1 -1
  260. package/dist/chunks/{toolEventObserver-BAFzvePj.js → toolEventObserver-DTccwC3c.js} +1 -1
  261. package/dist/chunks/{toolEventObserver--Z6jENks.js → toolEventObserver-DlH73w-S.js} +1 -1
  262. package/dist/chunks/{toolPool-CR61XXm3.js → toolPool-B64V-jmK.js} +1 -1
  263. package/dist/chunks/{trustedDevice-Dn4rXbxT.js → trustedDevice-BTYoQCkC.js} +1 -1
  264. package/dist/chunks/trustedDevice-CiwjT_Y6.js +1 -0
  265. package/dist/chunks/{ultrareviewCommand-mYDTBCFD.js → ultrareviewCommand-BDFUS3hf.js} +1 -1
  266. package/dist/chunks/undercover-XYapZ_SS.js +1 -0
  267. package/dist/chunks/{undercover-CdapzvNH.js → undercover-vuTpCnQJ.js} +2 -2
  268. package/dist/chunks/{updateCCB-DPShheOr.js → updateCCB-DFL5Wt_I.js} +1 -1
  269. package/dist/chunks/{upgrade-BOeakAP6.js → upgrade-D5qwcaWQ.js} +1 -1
  270. package/dist/chunks/upgrade-DIg3j929.js +1 -0
  271. package/dist/chunks/{upload-BXQsDtLW.js → upload-B_yADHX9.js} +1 -1
  272. package/dist/chunks/{usage-iNQzY960.js → usage-C0SnnC-i.js} +1 -1
  273. package/dist/chunks/usage-CYJKE8N6.js +1 -0
  274. package/dist/chunks/{useExitOnCtrlCDWithKeybindings-CntByfTQ.js → useExitOnCtrlCDWithKeybindings-DKIqRraH.js} +1 -1
  275. package/dist/chunks/useMainLoopModel-XetDUXd-.js +1 -0
  276. package/dist/chunks/{useManagePlugins-B8HD0RUh.js → useManagePlugins-B2KhKiu5.js} +1 -1
  277. package/dist/chunks/{useMergedTools-DfchLQZC.js → useMergedTools-CKvwz_Zt.js} +1 -1
  278. package/dist/chunks/{useSearchInput-H-8hJeFD.js → useSearchInput-D1Vr2Js1.js} +1 -1
  279. package/dist/chunks/{useSettingsErrors-BF5i5Xju.js → useSettingsErrors-B7BXHchG.js} +1 -1
  280. package/dist/chunks/{util-CoicMvOv.js → util-BaDs-wL5.js} +1 -1
  281. package/dist/chunks/{validatePlugin-z2fcngf8.js → validatePlugin-DtiYlXby.js} +1 -1
  282. package/dist/chunks/{vim-DdvQlLDm.js → vim-C-icQDz1.js} +1 -1
  283. package/dist/chunks/{workerRegistry-CzqQwCHC.js → workerRegistry-ChqPPIaO.js} +1 -1
  284. package/dist/chunks/worktree-DAn8ooa1.js +1 -0
  285. package/dist/cli.js +1 -1
  286. package/package.json +1 -1
  287. package/dist/chunks/ApproveApiKey-CKfn7U1R.js +0 -1
  288. package/dist/chunks/ClaudeMdExternalIncludesDialog-TypH-X8e.js +0 -1
  289. package/dist/chunks/ConsoleOAuthFlow-wGQuFt41.js +0 -1
  290. package/dist/chunks/Doctor-CcJUwSQn.js +0 -1
  291. package/dist/chunks/Grove-DPkIjqg8.js +0 -1
  292. package/dist/chunks/Grove-Dsd7F39b.js +0 -11
  293. package/dist/chunks/PluginSettings-B0jbwB2M.js +0 -17
  294. package/dist/chunks/REPL-DlBJIPCw.js +0 -1
  295. package/dist/chunks/SearchExtraToolsTool-VP87ErGx.js +0 -1
  296. package/dist/chunks/api-BiwZmmsh.js +0 -1
  297. package/dist/chunks/auth-BQa4kzQo.js +0 -1
  298. package/dist/chunks/auth-UAJhZNmZ.js +0 -1
  299. package/dist/chunks/backgroundHousekeeping-BUUZ7Csq.js +0 -1
  300. package/dist/chunks/bridgeConfig-DWEqKbXk.js +0 -1
  301. package/dist/chunks/bridgeEnabled-CjVCMwnq.js +0 -1
  302. package/dist/chunks/bridgeMain-6lollTtZ.js +0 -1
  303. package/dist/chunks/caches-C46fa77L.js +0 -1
  304. package/dist/chunks/client-Bup0Sgcn.js +0 -1
  305. package/dist/chunks/commands-BdB1eFvP.js +0 -1
  306. package/dist/chunks/commitAttribution-D6J3NuhB.js +0 -1
  307. package/dist/chunks/config-Bxt1UH1T.js +0 -1
  308. package/dist/chunks/config-CjjXZfNi.js +0 -1
  309. package/dist/chunks/context-noninteractive-DvGo1l7b.js +0 -1
  310. package/dist/chunks/conversation-CH9ouFai.js +0 -1
  311. package/dist/chunks/createSession-DUfOAeyE.js +0 -1
  312. package/dist/chunks/doctor-7fgVhEKL.js +0 -1
  313. package/dist/chunks/envLessBridgeConfig-B2HYnEKo.js +0 -1
  314. package/dist/chunks/extra-usage-CLhv1Z4g.js +0 -1
  315. package/dist/chunks/extractMemories-B2IAvbXM.js +0 -1
  316. package/dist/chunks/fast-_G6zcFye.js +0 -1
  317. package/dist/chunks/firstPartyEventLogger-C9LzVy6y.js +0 -1
  318. package/dist/chunks/hooks-BUJLxdFJ.js +0 -1
  319. package/dist/chunks/hostGuard-C5xydXZI.js +0 -1
  320. package/dist/chunks/inboundAttachments-C0nMTtCi.js +0 -1
  321. package/dist/chunks/language-DfOAuDFc.js +0 -1
  322. package/dist/chunks/loadAgentsDir-DTbJJff-.js +0 -1
  323. package/dist/chunks/localSearch-DKv8PRLD.js +0 -1
  324. package/dist/chunks/model-BQF64tZx.js +0 -1
  325. package/dist/chunks/model-DvrvG6BB.js +0 -1
  326. package/dist/chunks/pluginStartupCheck-CoW7073W.js +0 -1
  327. package/dist/chunks/policyLimits-BkjgMQD0.js +0 -1
  328. package/dist/chunks/poorMode-qlxqU8Hm.js +0 -1
  329. package/dist/chunks/prompt-CN7gBNKS.js +0 -1
  330. package/dist/chunks/prompt-D-zHhqp8.js +0 -1
  331. package/dist/chunks/sandbox-adapter-LzTcKwBp.js +0 -1
  332. package/dist/chunks/searchExtraTools-CbJJQqzH.js +0 -1
  333. package/dist/chunks/sessionFileAccessHooks-B_nNW0zE.js +0 -1
  334. package/dist/chunks/sessionMemory-C4JAUZ6V.js +0 -1
  335. package/dist/chunks/sessionMemoryUtils-BlqAy8oR.js +0 -1
  336. package/dist/chunks/sessionObserver-DMvWci8-.js +0 -1
  337. package/dist/chunks/sessionStorage-Diyuvt20.js +0 -1
  338. package/dist/chunks/sinks-CXq8-7Qn.js +0 -1
  339. package/dist/chunks/skillLearning-1ZfYIzfL.js +0 -1
  340. package/dist/chunks/thinkback-C6gV2LpU.js +0 -1
  341. package/dist/chunks/trustedDevice-DUrFWupL.js +0 -1
  342. package/dist/chunks/undercover-k3JoOKAb.js +0 -1
  343. package/dist/chunks/upgrade-D7iGU0PQ.js +0 -1
  344. package/dist/chunks/usage-DbRdMJog.js +0 -1
  345. package/dist/chunks/useMainLoopModel-DHkRIgNs.js +0 -1
  346. package/dist/chunks/worktree-DMhP5T0p.js +0 -1
@@ -1,4 +1,4 @@
1
- import{a as e,n as t,o as n,r}from"./rolldown-runtime-DaDcL9Zw.js";import{c as i,l as a,n as o,o as s}from"./envUtils-DSxRz_kt.js";import{n as c,t as l}from"./defineProperty-C-QyHrDq.js";import{n as u,t as d}from"./figures-5ThXQEtq.js";import{n as f,t as p}from"./axios-DaWTGg7G.js";import{C as m,D as h,Ft as g,Gr as _,Gt as v,H as y,I as b,Kr as x,Kt as S,Lt as C,Mr as w,P as T,Pn as E,Rn as D,T as O,Tt as k,Vn as ee,Wt as A,Xn as j,Xt as M,Y as te,Yt as N,Z as P,Zn as F,_n as ne,bn as re,ct as I,di as L,dr as ie,et as R,fi as z,ft as ae,hn as oe,ir as se,j as ce,lr as le,lt as ue,ot as de,q as fe,qr as pe,t as B,tr as V,ui as H,vn as me,x as he,y as ge,yn as U,yt as _e}from"./src-CDCSSo0U2.js";import{t as ve}from"./jsx-runtime-Bb4Xn-E0.js";import{E as ye,M as be,S as xe,T as Se,a as Ce,d as we,n as Te,r as Ee,s as De,t as Oe,w as ke}from"./lazySchema-DcIJE_0i.js";import{At as Ae,B as je,Bt as Me,D as Ne,Dn as Pe,H as Fe,Hn as Ie,Ht as Le,Jn as Re,K as ze,Mt as Be,Nt as Ve,Pt as He,Rt as Ue,Sr as We,Tt as Ge,Un as Ke,Ut as qe,V as Je,Vt as Ye,Wt as Xe,Yn as Ze,Yt as Qe,Z as $e,Zt as et,_r as tt,b as nt,bn as rt,dn as it,en as at,fn as ot,ht as st,jt as ct,kt as lt,nt as ut,ot as dt,pn as ft,pt,tn as mt,un as ht,vr as gt,xr as _t,yr as vt,yt,z as bt,zt as xt}from"./state-ix0xIunV.js";import{$D as St,$d as Ct,$f as wt,$m as Tt,AC as Et,AS as Dt,AT as Ot,Af as kt,Ag as At,Ah as jt,Ao as Mt,Ap as Nt,As as Pt,Au as Ft,Ax as It,BC as Lt,BS as Rt,BT as zt,Bc as Bt,Bd as Vt,Bf as Ht,Bm as Ut,Bn as Wt,Bo as Gt,Bp as Kt,Bs as qt,Bw as Jt,Bx as Yt,C as Xt,CE as Zt,CS as Qt,Cb as $t,Cf as en,Cg as tn,Ci as nn,Cl as rn,Cr as an,Ct as on,Cw as sn,Cx as cn,D as ln,DC as un,DE as dn,DS as fn,DT as pn,Dg as mn,Du as hn,Dy as gn,E as _n,EC as vn,ES as yn,ET as bn,Ec as xn,Ef as Sn,Eg as W,Em as Cn,Eo as wn,Er as Tn,Es as En,Et as Dn,Eu as On,Ew as kn,Ex as An,FC as jn,FT as Mn,Fb as Nn,Fd as Pn,Ff as Fn,Fg as In,Fh as Ln,Fm as Rn,Fo as zn,Fp as Bn,Fs as Vn,Ft as Hn,Fw as Un,Fx as Wn,G as Gn,GC as Kn,GS as qn,GT as Jn,Gb as Yn,Gd as Xn,Gf as Zn,Gl as Qn,Gm as $n,Gt as er,Gu as tr,Gw as nr,Gx as rr,HS as ir,Hd as ar,Hf as or,Hl as sr,Hm as cr,Hs as lr,Hw as ur,Hx as dr,Hy as fr,I as pr,IC as mr,IT as G,Ib as hr,Id as gr,If as _r,Ig as vr,Il as K,Im as yr,Io as br,Ip as xr,Ir as Sr,Is as Cr,Iw as wr,Ix as Tr,J as Er,JC as Dr,JD as Or,JE as kr,JT as Ar,Jb as jr,Jf as Mr,Jl as Nr,Jn as Pr,Jo as Fr,Jr as Ir,Js as Lr,Jx as Rr,KC as zr,KE as Br,KS as Vr,KT as Hr,Kb as Ur,Kf as Wr,Kg as Gr,Ki as Kr,Kl as qr,Ks as Jr,Ku as Yr,Kx as Xr,Ky as Zr,LC as Qr,LT as $r,Lb as ei,Ld as ti,Lf as ni,Lg as ri,Ll as ii,Lm as ai,Ln as oi,Lp as si,Ls as ci,Lw as li,Lx as ui,M as di,MC as fi,ME as pi,MS as mi,Mb as hi,Mc as gi,Mf as _i,Mg as vi,Mp as yi,Mr as bi,Mu as xi,Mw as Si,N as Ci,NC as wi,ND as Ti,NE as Ei,NT as Di,Nd as Oi,Nf as ki,Nl as Ai,Np as ji,Nu as Mi,OC as Ni,OE as Pi,OT as Fi,Ob as Ii,Oc as Li,Og as Ri,Oo as zi,Op as Bi,Ou as Vi,Ow as Hi,P as Ui,PC as Wi,PD as Gi,PT as Ki,Pb as qi,Pd as Ji,Pf as Yi,Ph as Xi,Pl as Zi,Pm as Qi,Pn as $i,Pp as ea,Pr as ta,Pu as na,Pw as ra,Px as ia,Q as aa,Qa as oa,Qd as sa,Qf as ca,Qi as la,Qm as ua,Qn as da,Qo as fa,Qs as pa,Qu as ma,RC as ha,RT as ga,Ra as _a,Rb as va,Rc as ya,Rg as ba,Ri as xa,Rm as Sa,Rp as Ca,Rs as wa,Rw as Ta,Rx as Ea,SC as Da,SD as Oa,SS as ka,Sb as Aa,Sf as ja,Sg as Ma,Sl as Na,So as Pa,Sx as Fa,Sy as Ia,TD as La,TE as Ra,TS as za,TT as Ba,Tb as Va,Tf as Ha,Tm as Ua,To as Wa,Tu as Ga,Tw as Ka,Tx as qa,Ty as Ja,UC as Ya,US as q,Ua as Xa,Ud as Za,Uf as Qa,Ug as $a,Ul as eo,Um as to,Up as no,Ut as ro,Uu as io,Uw as ao,Ux as oo,VC as so,VE as co,VS as lo,Va as uo,Vc as fo,Vd as po,Vf as mo,Vi as ho,Vl as go,Vm as _o,Vs as vo,Vu as yo,Vw as bo,Vx as xo,Vy as So,W as Co,WC as wo,WS as J,Wd as To,Wf as Eo,Wg as Do,Wi as Oo,Wl as ko,Wm as Ao,Wp as jo,Wu as Mo,Ww as No,Wx as Po,X as Fo,XE as Io,X_ as Lo,Xb as Ro,Xm as zo,Xu as Bo,Xx as Vo,YC as Ho,YD as Uo,YE as Wo,YT as Go,Y_ as Ko,Yb as qo,Yu as Jo,Yx as Yo,Z as Xo,ZC as Zo,ZT as Qo,Zb as $o,Zi as es,Zm as ts,Zs as ns,Zt as rs,Zu as is,Zx as as,_S as os,_b as ss,_l as cs,_m as ls,_p as us,_u as ds,_v as fs,_x as ps,aC as ms,aS as hs,aT as gs,aa as _s,ac as vs,af as ys,ao as bs,ap as xs,ax as Ss,b as Cs,bS as ws,bf as Ts,bg as Es,bo as Ds,bw as Os,bx as ks,cC as As,cS as js,cT as Ms,ca as Ns,cb as Ps,cl as Fs,cm as Is,cp as Ls,cs as Rs,cu as zs,cw as Bs,cx as Vs,dS as Hs,dh as Us,dm as Ws,dn as Gs,do as Ks,eE as qs,eO as Js,eh as Ys,ei as Xs,en as Zs,ep as Qs,es as $s,et as ec,ex as tc,fS as nc,fb as rc,fh as ic,fi as ac,fm as oc,fp as sc,fs as cc,fv as lc,fw as uc,fx as dc,gS as fc,gl as pc,gm as mc,gp as hc,gs as gc,gu as _c,hi as vc,hl as yc,hm as bc,ho as xc,hp as Sc,hu as Cc,hv as wc,hw as Tc,hx as Ec,iC as Dc,iS as Oc,iT as kc,ib as Ac,id as jc,if as Mc,ih as Nc,im as Pc,io as Fc,ip as Ic,it as Lc,iu as Rc,ix as zc,jC as Bc,jE as Vc,jT as Hc,jc as Uc,jf as Wc,jg as Gc,jm as Kc,jp as qc,jr as Jc,ju as Yc,jw as Xc,kT as Zc,kb as Qc,kc as $c,kh as el,km as tl,ko as nl,kw as rl,kx as il,lS as al,lb as ol,lh as sl,li as cl,ll,lm as ul,lt as dl,lu as fl,lw as pl,lx as ml,ly as hl,mE as gl,ma as _l,mm as vl,mo as yl,mp as bl,mr as xl,mu as Sl,mx as Cl,na as wl,nb as Tl,nd as El,nm as Dl,no as Ol,nr as kl,nx as Al,oC as jl,oS as Ml,oT as Nl,oa as Pl,ob as Fl,oc as Il,od as Ll,ol as Rl,op as zl,or as Bl,os as Vl,ow as Hl,pS as Ul,pT as Wl,pa as Gl,pb as Kl,ph as ql,pi as Jl,pm as Yl,po as Xl,pu as Zl,pv as Ql,pw as $l,px as eu,q as tu,qC as nu,qD as ru,qb as iu,qf as au,qg as ou,qi as su,ql as cu,qo as lu,qy as uu,rC as du,ra as fu,rd as pu,rg as mu,rh as hu,rm as gu,ro as _u,rp as vu,sC as yu,sS as bu,sT as xu,sa as Su,sb as Cu,sd as wu,sh as Tu,si as Eu,sl as Du,sm as Ou,su as ku,sw as Au,sx as ju,tE as Mu,tO as Nu,ta as Pu,tm as Fu,tp as Iu,tt as Lu,tx as Ru,uS as zu,ua as Bu,ub as Vu,uh as Hu,ul as Uu,um as Wu,uo as Gu,ur as Ku,ut as qu,uu as Ju,uy as Yu,vS as Xu,vi as Zu,vp as Qu,vs as $u,vu as ed,vx as td,wC as nd,wS as rd,wT as id,wb as ad,wf as od,wi as sd,wu as cd,ww as ld,wx as ud,wy as dd,x as fd,xS as pd,xb as md,xf as hd,xv as gd,xw as _d,xx as vd,yD as yd,yS as bd,yb as xd,yf as Sd,yg as Cd,yn as wd,yo as Td,ys as Ed,yx as Dd,zC as Od,zE as kd,zT as Ad,za as jd,zb as Md,zc as Nd,zf as Pd,zg as Fd,zl as Id,zm as Ld,zn as Rd,zo as zd,zp as Bd,zs as Vd,zw as Hd,zx as Ud}from"./loadAgentsDir-Clu7Uk6a.js";import{n as Wd,t as Gd}from"./cwd-CYmmnQVS.js";import{C as Kd,D as qd,F as Jd,G as Yd,Q as Xd,S as Zd,V as Qd,W as $d,_ as ef,a as tf,d as nf,l as Y,nt as rf,p as af,rt as of,w as sf,z as cf}from"./debug-BrXObCdR.js";import{B as lf,Bt as uf,Ft as df,Ht as ff,It as pf,Jt as mf,Kt as hf,L as gf,Pt as _f,St as vf,Ut as yf,Vt as bf,Wt as xf,Xt as Sf,Zt as Cf,_n as wf,c as Tf,cn as Ef,dn as Df,f as Of,ft as kf,g as Af,gn as jf,n as Mf,vn as Nf,y as Pf}from"./settings-Dlp5JTa_.js";import{P as Ff,b as If,c as Lf,g as Rf,l as zf,n as Bf}from"./config-3m_9zSrj.js";import{M as Vf,_ as Hf,a as Uf,d as Wf,i as Gf,j as Kf}from"./git-Do0wJvux.js";import{r as qf,t as Jf}from"./execFileNoThrow-D244NytW.js";import{B as Yf,L as Xf,N as Zf,R as Qf,U as $f,Y as ep,k as tp,o as np,s as X}from"./log-BMCygSzM.js";import{n as rp,t as ip}from"./memoize-B0zhbT8Z.js";import{n as ap,t as op}from"./which-CKQnSouy.js";import{i as sp,o as cp}from"./platform-BrYefG_2.js";import{i as lp,n as up,o as dp,r as fp}from"./path-D5U-tm91.js";import{D as pp,E as mp,T as hp,f as gp,l as _p}from"./file-DcZWPH2V.js";import{s as vp,u as yp}from"./types-C-MRCL8J.js";import{n as bp,r as Z}from"./analytics-BotDBGh0.js";import{c as xp,n as Sp,s as Cp,t as wp}from"./intl-cKc-V6Mq.js";import{T as Tp,b as Ep,d as Dp,f as Op,u as kp,y as Ap}from"./startupProfiler-xa3NmN7Z.js";import{l as jp,u as Mp}from"./oauth-BqJqV-2M.js";import{n as Np,t as Pp}from"./bundledMode--fG1S62b.js";import{a as Fp,d as Ip,l as Lp,o as Rp,r as zp,s as Bp}from"./stringUtils-DGLPkqJ4.js";import{$n as Vp,At as Hp,Bn as Up,Bt as Wp,Ct as Gp,D as Kp,Et as qp,Ft as Jp,Gr as Yp,Gt as Xp,Ht as Zp,Kn as Qp,St as $p,T as em,Vn as tm,X as nm,_ as rm,at as im,b as am,bi as om,br as sm,ct as cm,et as lm,h as um,it as dm,m as fm,mt as pm,ni as mm,nt as hm,ot as gm,qr as _m,ri as vm,rr as ym,rt as bm,st as xm,ti as Sm,tr as Cm,tt as wm,u as Tm,x as Em,xi as Dm,xr as Om}from"./model-BQF64tZx.js";import{At as km,Cn as Am,Et as jm,Ht as Mm,Tn as Nm,Tt as Pm,Ut as Fm,an as Im,bn as Lm,dn as Rm,fn as zm,hn as Bm,jt as Vm,mn as Hm,st as Um,yn as Wm}from"./prompt-Bg_1U0gO.js";import{et as Gm,rt as Km}from"./esm-CGoYrggU.js";import{a as qm,i as Jm,r as Ym}from"./shellQuote-DkSy9MYE.js";import{a as Xm}from"./ripgrep-BXmXjAzA.js";import{a as Zm,o as Qm,s as $m}from"./fileStateCache-DDW5toIs.js";import{C as eh,N as th,S as nh,T as rh,b as ih,d as ah,f as oh,j as sh,st as ch,w as lh,x as uh,y as dh}from"./rcDebugLog-VKwMl0yg.js";import{T as fh,c as ph,r as mh,w as hh}from"./sessionTracing-D8wr9j4X.js";import{i as gh,n as _h,r as vh}from"./parser-DFwaTGf7.js";import{c as yh,l as bh}from"./commitAttribution-CGZr7XNO.js";import{n as xh,t as Sh}from"./poorMode-1NLYiS3Y.js";import{a as Ch,f as wh,l as Th,o as Eh}from"./api-B-5jqiMg.js";import{f as Dh,m as Oh}from"./firstPartyEventLogger-BNGPPBNP.js";import{l as kh,u as Ah}from"./referral-BlrMpBAV.js";import{i as jh,m as Mh,n as Nh,p as Ph}from"./terminalSetup-D_P5iZmq.js";import{n as Fh,t as Ih}from"./browser-BmZuQom6.js";import{i as Lh,r as Rh}from"./bridgeEnabled-DhFrLTbG.js";import{n as zh,r as Bh}from"./undercover-CdapzvNH.js";import{t as Vh}from"./Dialog-vfLXEPed.js";import{t as Hh}from"./lib-BlVGipXx.js";import{n as Uh,t as Wh}from"./mappers-C8lYERPX.js";import{n as Gh,r as Kh}from"./sessionTitle-CLOlPZ_M.js";import{t as qh}from"./bridgeMessaging-B5Lbzr8e.js";import{C as Jh,S as Yh,d as Xh,l as Zh}from"./pidLock-Bd2e6xuT.js";import{n as Qh,t as $h}from"./nativeInstaller-OPuO2sm_.js";import{r as eg,t as tg}from"./pipeTransport-CqCnc-Ys.js";import{t as ng}from"./useManagePlugins-B8HD0RUh.js";import{n as rg,t as ig}from"./MCPConnectionManager-MWpKjeZT.js";import{i as ag,n as og,r as sg,t as cg}from"./reconciler-BdRXZTJf.js";import{n as lg,t as ug}from"./toolPool-CR61XXm3.js";import{a as dg,c as fg,i as pg,l as mg,r as hg,t as gg,u as _g}from"./MessageSelector-DsQmqFt2.js";import{n as vg,t as yg}from"./useExitOnCtrlCDWithKeybindings-CntByfTQ.js";import{n as bg,t as xg}from"./sideQuestion-CHpOVzY5.js";import{a as Sg,n as Cg,o as wg,r as Tg,s as Eg,t as Dg}from"./skillChangeDetector-s0F9Yf9a.js";import{n as Og,t as kg}from"./refresh-jwqnoK2h.js";import{i as Ag,n as jg,r as Mg,t as Ng}from"./directoryCompletion-CW2ckkQg.js";import{r as Pg,t as Fg}from"./PromptInputFooterSuggestions-D5sAO6y-.js";import{n as Ig,t as Lg}from"./useMergedTools-DfchLQZC.js";import{a as Rg,i as zg,n as Bg,o as Vg,r as Hg,t as Ug}from"./promptEditor-BhYDmwdS.js";import{n as Wg,t as Gg}from"./useMainLoopModel-DHkRIgNs.js";import{i as Kg,n as qg,r as Jg,t as Yg}from"./PermissionDialog-0ya1CU5k.js";import{n as Xg,t as Zg}from"./RemoteCallout-CiA4rCEs.js";import{a as Qg,c as $g,i as e_,o as t_,r as n_,s as r_}from"./caches-DPqPIogk.js";import{i as i_,n as a_,r as o_,t as s_}from"./conversation-CYqqk0o7.js";import{i as c_,n as l_,r as u_,t as d_}from"./extraUsage-C2Ylufhj.js";import{n as f_,t as p_}from"./useSearchInput-H-8hJeFD.js";import{n as m_,t as h_}from"./staticRender-BIxpgNUq.js";import{n as g_,t as __}from"./useSettingsErrors-BF5i5Xju.js";import{n as v_,t as y_}from"./shadowedRuleDetection-CXsmUY2o.js";import{n as b_,t as x_}from"./ExitFlow-D3csukbB.js";import{a as S_,i as C_,r as w_,t as T_}from"./fast-Dx2fTmWr.js";import{n as E_,r as D_}from"./Feedback-bEUtrHia.js";import{a as O_,i as k_,n as A_,r as j_,t as M_}from"./PromptInputHelpMenu-n6hAdsto.js";import{n as N_,r as P_}from"./pluginAutoupdate-CO-n9bqe.js";import{n as F_,r as I_}from"./autoModeDenials-BxNzGJdR.js";import{n as L_,t as R_}from"./generateSessionName-CN1oh7Fa.js";import{a as z_,c as B_,d as V_,i as H_,l as U_,n as W_,o as G_,r as K_,s as q_,t as J_,u as Y_}from"./Messages-B3sGRx5A.js";import{a as X_,i as Z_,n as Q_,o as $_,r as ev,t as tv}from"./BackgroundTasksDialog-CyoLEYWH.js";import{n as nv}from"./fpsMetrics-Cf_hdtiJ.js";import{t as rv}from"./earlyInput-BTC_Wucv.js";import{a as iv,c as av,i as ov,l as sv,o as cv,r as lv,s as uv,t as dv}from"./RemoteSessionManager-zdHfmvfj.js";import{n as fv,t as pv}from"./backgroundHousekeeping-DhF2lrQ9.js";import{n as mv}from"./language-DIw2871r.js";import{homedir as hv,tmpdir as gv}from"os";import*as _v from"path";import{basename as vv,dirname as yv,extname as bv,join as xv,relative as Sv,sep as Cv}from"path";import{dirname as wv,join as Tv}from"node:path";import{watch as Ev}from"fs";import{createHash as Dv}from"node:crypto";import{randomUUID as Ov}from"crypto";import{readFile as kv,stat as Av,writeFile as jv}from"fs/promises";import{spawn as Mv,spawnSync as Nv}from"child_process";import{mkdir as Pv,readFile as Fv,rename as Iv,writeFile as Lv}from"node:fs/promises";s(),c(),p(),L(),me(),u(),B(),Ee(),We(),at(),Wd(),rf(),Yd(),cf(),Zd(),af(),tf(),Kf(),ep(),np(),qf(),ip(),op(),Hf(),cp(),lp(),mp(),wf(),bp(),gp(),vp(),Cp(),Ep(),Df(),Oe(),Mp(),Pp(),Cf(),hf(),df(),vf(),gf(),Rp(),Af(),Ff(),om(),Nm(),Rf(),Lm(),Bm(),vm(),_m(),Om(),ym(),Qp(),Wp(),lm(),rm(),Im(),Gm(),Nu(),Or(),Ti(),Xm(),Oa(),Fm(),Vm(),jm(),Um(),Io(),Br(),Qm(),co(),Ei(),dn(),gl(),qs(),Qo(),Hr(),Ki(),Wl(),xu(),nr(),hh(),vh(),Ym(),li(),Xc(),kn(),Os(),$l(),Bs(),Zo(),nu(),th(),Ya(),so(),Od(),Wi(),Ni(),As(),ms(),Ah(),du(),Rt(),fn(),za(),ka(),ws(),Xu(),Ph(),jh(),zu(),Rr(),dr(),kh(),Yt(),ui(),Wn(),cn(),Fa(),Cl(),Ur(),Va(),rc(),Tl(),Zr(),Yu(),Ih(),Lo(),Do(),Fd(),mn(),Tt(),_o(),ai(),Cn(),ls(),ul(),Dl(),jo(),Bd(),us(),zl(),Iu(),ni(),ki(),Wc(),Sn(),od(),hd(),Ts(),Rh(),Za(),po(),gr(),Ji(),dh(),pu(),Bo(),yo(),Ft(),hn(),On(),ed(),_c(),ph(),ku(),Rc(),cu(),K(),Ai(),Na(),yc(),ll(),Du(),fo(),ya(),Uc(),$c(),vs(),pa(),vo(),En(),$u(),cc(),Vl(),zd(),uo(),_l(),la(),Jc(),oi(),wd(),ec(),Xo(),tu(),Gn(),Xt(),Kg(),qg(),p_(),E_();var Q=n(z(),1);x(),W_(),qa(),Dt(),q(),h_();var $=ve();function Rv({children:e}){let{bindings:t}=mi(),n=(0,Q.useRef)(null),r=(0,Q.useRef)(new Map),i=(0,Q.useRef)(new Set).current;return(0,$.jsx)(S,{bindings:t,pendingChordRef:n,pendingChord:null,setPendingChord:()=>{},activeContexts:i,registerActiveContext:()=>{},unregisterActiveContext:()=>{},handlerRegistryRef:r,children:e})}function zv(e){if(!(`message`in e))return 1;let t=e.message.content;return Array.isArray(t)?t.length:1}async function Bv(e,t,n,{columns:r,verbose:i=!1,chunkSize:a=40,onProgress:o}={}){let s=n=>m_((0,$.jsx)(ir,{children:(0,$.jsx)(Rv,{children:(0,$.jsx)(J_,{messages:e,tools:t,commands:[],verbose:i,toolJSX:null,toolUseConfirmQueue:[],inProgressToolUseIDs:new Set,isMessageSelectorVisible:!1,conversationId:`export`,screen:`prompt`,streamingToolUses:[],showAllInTranscript:!0,isLoading:!1,renderRange:n})})}),r),c=a;for(let t of e)c+=zv(t);for(let e=0;e<c;e+=a){let t=await s([e,e+a]);if(pe(t).trim()===``)break;await n(t),o?.(e+a)}}async function Vv(e,t=[],n){let r=[];return await Bv(e,t,e=>void r.push(pe(e)),{columns:n}),r.join(``)}ao(),fs(),Us(),sl(),Rg(),dc();function Hv({onDone:e}){return(0,$.jsxs)(ge,{title:`You've spent $5 on the Anthropic API this session.`,onCancel:e,children:[(0,$.jsxs)(b,{flexDirection:`column`,children:[(0,$.jsx)(T,{children:`Learn more about how to monitor your spending:`}),(0,$.jsx)(C,{url:`https://code.claude.com/docs/en/costs`})]}),(0,$.jsx)(eu,{options:[{value:`ok`,label:`Got it, thanks!`}],onChange:e})]})}B(),dc();function Uv({idleMinutes:e,totalInputTokens:t,onDone:n}){return(0,$.jsxs)(ge,{title:`You've been away ${Wv(e)} and this conversation is ${Ap(t)} tokens.`,onCancel:()=>n(`dismiss`),children:[(0,$.jsx)(b,{flexDirection:`column`,children:(0,$.jsx)(T,{children:`If this is a new task, clearing context will save usage and be faster.`})}),(0,$.jsx)(eu,{options:[{value:`continue`,label:`Continue this conversation`},{value:`clear`,label:`Send message as a new conversation`},{value:`never`,label:`Don't ask me again`}],onChange:e=>n(e)})]})}function Wv(e){if(e<1)return`< 1m`;if(e<60)return`${Math.floor(e)}m`;let t=Math.floor(e/60),n=Math.floor(e%60);return n===0?`${t}h`:`${t}h ${n}m`}async function Gv(e,t){let n=Lf().preferredNotifChannel;await ro(e),Z(`tengu_notification_method_used`,{configured_channel:n,method_used:await qv(n,e,t),term:mf.terminal})}var Kv=`Work Mate`;async function qv(e,t,n){let r=t.title||Kv;try{switch(e){case`auto`:return Jv(t,n);case`iterm2`:return n.notifyITerm2(t),`iterm2`;case`iterm2_with_bell`:return n.notifyITerm2(t),n.notifyBell(),`iterm2_with_bell`;case`kitty`:return n.notifyKitty({...t,title:r,id:Yv()}),`kitty`;case`ghostty`:return n.notifyGhostty({...t,title:r}),`ghostty`;case`terminal_bell`:return n.notifyBell(),`terminal_bell`;case`notifications_disabled`:return`disabled`;default:return`none`}}catch{return`error`}}async function Jv(e,t){let n=e.title||Kv;switch(mf.terminal){case`Apple_Terminal`:return await Xv()?(t.notifyBell(),`terminal_bell`):`no_method_available`;case`iTerm.app`:return t.notifyITerm2(e),`iterm2`;case`kitty`:return t.notifyKitty({...e,title:n,id:Yv()}),`kitty`;case`ghostty`:return t.notifyGhostty({...e,title:n}),`ghostty`;default:return`no_method_available`}}function Yv(){return Math.floor(Math.random()*1e4)}async function Xv(){try{if(mf.terminal!==`Apple_Terminal`)return!1;let e=(await Jf(`osascript`,[`-e`,`tell application "Terminal" to name of current settings of front window`])).stdout.trim();if(!e)return!1;let t=await Jf(`defaults`,[`export`,`com.apple.Terminal`,`-`]);if(t.code!==0)return!1;let r=(await import(`./plist-Bzo2VMe9.js`).then(e=>n(e.default,1))).parse(t.stdout)?.[`Window Settings`]?.[e];return r?r.Bell===!1:!1}catch(e){return X(e),!1}}var Zv=300,Qv=240*1e3,$v=null,ey=null,ty=0,ny=!1;function ry(){ty++,ty===1&&(cy(),oy())}function iy(){ty>0&&ty--,ty===0&&(sy(),ly())}function ay(){ty=0,sy(),ly()}function oy(){process.platform===`darwin`&&ey===null&&(ey=setInterval(()=>{ty>0&&(Y(`Restarting caffeinate to maintain sleep prevention`),ly(),cy())},Qv),ey.unref())}function sy(){ey!==null&&(clearInterval(ey),ey=null)}function cy(){if(process.platform===`darwin`&&$v===null){ny||(ny=!0,of(async()=>{ay()}));try{$v=Mv(`caffeinate`,[`-i`,`-t`,String(Zv)],{stdio:`ignore`}),$v.unref();let e=$v;$v.on(`error`,t=>{Y(`caffeinate spawn error: ${t.message}`),$v===e&&($v=null)}),$v.on(`exit`,()=>{$v===e&&($v=null)}),Y(`Started caffeinate to prevent sleep`)}catch{$v=null}}}function ly(){if($v!==null){let e=$v;$v=null;try{e.kill(`SIGKILL`),Y(`Stopped caffeinate, allowing sleep`)}catch{}}}var uy=class{constructor(){l(this,`_status`,`idle`),l(this,`_generation`,0),l(this,`_changed`,_t()),l(this,`subscribe`,this._changed.subscribe),l(this,`getSnapshot`,()=>this._status!==`idle`)}reserve(){return this._status===`idle`?(this._status=`dispatching`,this._notify(),!0):!1}cancelReservation(){this._status===`dispatching`&&(this._status=`idle`,this._notify())}tryStart(){return this._status===`running`?null:(this._status=`running`,++this._generation,this._notify(),this._generation)}end(e){return this._generation!==e||this._status!==`running`?!1:(this._status=`idle`,this._notify(),!0)}forceEnd(){this._status!==`idle`&&(this._status=`idle`,++this._generation,this._notify())}get isActive(){return this._status!==`idle`}get generation(){return this._generation}_notify(){this._changed.emit()}};function dy(e,t=!1){let n=(0,Q.useRef)(0),r=(0,Q.useRef)(void 0),i=(0,Q.useRef)(void 0),a=(0,Q.useRef)(0);(0,Q.useEffect)(()=>{if(t)return;let o=e[0]?.uuid,s=n.current,c=i.current===void 0,l=o!==void 0&&!c&&o===i.current&&s<=e.length,u=o!==void 0&&!c&&o===i.current&&s>e.length,d=l?s:0;if(d===e.length)return;let f=d===0?e:e.slice(d),p=l?r.current:void 0,m=++a.current;if(Eu(f,{},p,e).then(e=>{m===a.current&&e&&!l&&(r.current=e)}),l||c||u){let t=da(f,e).findLast(bi);t&&(r.current=t.uuid)}n.current=e.length,i.current=o},[e,t])}function fy(e){return!e||typeof e!=`object`?!1:`behavior`in e&&(e.behavior===`allow`||e.behavior===`deny`)}function py(e,t){if(typeof e.message==`string`&&e.message)return e.message;if(typeof t?.message==`string`&&t.message)return t.message;if(typeof e.error==`string`&&e.error)return e.error}function my(e){let t=e.response;if(!t||typeof t!=`object`)return null;if(t.subtype===`success`&&`response`in t&&fy(t.response))return t.response;if(t.subtype!==`error`)return null;let n=`response`in t&&fy(t.response)?t.response:void 0,r=py(t,n);return n?r?{...n,message:r}:n:r?{behavior:`deny`,message:r}:null}function hy(t){{let{pauseProactive:t}=(dh(),e(eh));t()}t?.abort()}function gy(e,t){return e<t}function _y(e,t){return e&&t===0}function vy({hasHandle:e,isConnected:t,lastWrittenIndex:n,messageCount:r}){return!e||!t||gy(n,r)}ml(),o_();function yy(e){return{id:e.id,subject:e.subject,description:e.description,activeForm:e.activeForm,status:e.status,owner:e.owner,blocks:[...e.blocks],blockedBy:[...e.blockedBy]}}function by(e,t){return e.id.localeCompare(t.id)}function xy(e,t){return{task_list_id:e,tasks:t.filter(e=>!e.metadata?._internal).map(yy).sort(by)}}function Sy(e,t){return JSON.stringify(xy(e,t))}function Cy(e,t){let n=xy(e,t);return{type:`task_state`,uuid:Ov(),...n}}B(),q(),tf();var wy=50,Ty=5e3,Ey=1e4,Dy=3;function Oy(e,t,n,r,i){let a=(0,Q.useRef)(null),o=(0,Q.useRef)(void 0),s=(0,Q.useRef)(0),c=(0,Q.useRef)(!1),l=(0,Q.useRef)(!1),u=(0,Q.useRef)(new Set),d=(0,Q.useRef)(void 0),f=(0,Q.useRef)(0),p=Vr(),m=(0,Q.useRef)(r);m.current=r;let h=(0,Q.useRef)(i);h.current=i;let g=(0,Q.useRef)(e);g.current=e;let _=qn(),{addNotification:v}=lo(),y=J(e=>e.replBridgeEnabled),b=J(e=>e.replBridgeConnected),x=J(e=>e.replBridgeSessionActive),S=J(e=>e.replBridgeOutboundOnly),C=J(e=>e.replBridgeInitialName);return(0,Q.useEffect)(()=>{{if(!y)return;let r=S;function i(e){r||v({key:`bridge-failed`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(T,{color:`error`,children:`Remote Control failed`}),e&&(0,$.jsxs)(T,{dimColor:!0,children:[` · `,e]})]}),priority:`immediate`})}if(f.current>=Dy){Y(`[bridge:repl] Hook: ${f.current} consecutive init failures, not retrying this session`);let e=`disabled after repeated failures · restart to retry`;i(e),p(t=>t.replBridgeError===e&&!t.replBridgeEnabled?t:{...t,replBridgeError:e,replBridgeEnabled:!1});return}let m=!1,h=e.length;return(async()=>{try{if(o.current&&(Y(`[bridge:repl] Hook: waiting for previous teardown to complete before re-init`),await o.current,o.current=void 0,Y(`[bridge:repl] Hook: previous teardown complete, proceeding with re-init`)),m)return;let{initReplBridge:v}=await import(`./initReplBridge-DJs28ZkI.js`),{shouldShowAppUpgradeMessage:y}=await import(`./envLessBridgeConfig-B2HYnEKo.js`),b=!1;{let{isAssistantMode:e}=await import(`./assistant-z2o4-UJe.js`);b=e()}async function x(e){try{let t=sg(e);if(!t)return;let{uuid:n}=t,{resolveAndPrepend:r}=await import(`./inboundAttachments-C0nMTtCi.js`),i=t.content,a=await r(e,i);Y(`[bridge:repl] Injecting inbound user message: ${typeof a==`string`?a.slice(0,80):`[${a.length} content blocks]`}${n?` uuid=${n}`:``}`),pn({value:a,mode:`prompt`,uuid:n,skipSlashCommands:!0,bridgeOrigin:!0})}catch(e){Y(`[bridge:repl] handleInboundMessage failed: ${e}`,{level:`error`})}}function S(e,n){if(m)return;if(r){Y(`[bridge:repl] Mirror state=${e}${n?` detail=${n}`:``}`),e===`failed`?p(e=>e.replBridgeConnected?{...e,replBridgeConnected:!1}:e):(e===`ready`||e===`connected`)&&p(e=>e.replBridgeConnected?e:{...e,replBridgeConnected:!0});return}let o=a.current;switch(e){case`ready`:p(e=>{let t=o&&o.environmentId!==``?Ss(o.environmentId,o.sessionIngressUrl):e.replBridgeConnectUrl,n=o?wi(o.bridgeSessionId,o.sessionIngressUrl):e.replBridgeSessionUrl,r=o?.environmentId,i=o?.bridgeSessionId;return e.replBridgeConnected&&!e.replBridgeSessionActive&&!e.replBridgeReconnecting&&e.replBridgeConnectUrl===t&&e.replBridgeSessionUrl===n&&e.replBridgeEnvironmentId===r&&e.replBridgeSessionId===i?e:{...e,replBridgeConnected:!0,replBridgeSessionActive:!1,replBridgeReconnecting:!1,replBridgeConnectUrl:t,replBridgeSessionUrl:n,replBridgeEnvironmentId:r,replBridgeSessionId:i,replBridgeError:void 0}});break;case`connected`:{let e=_.getState().replBridgeSessionActive;p(e=>e.replBridgeSessionActive?e:{...e,replBridgeConnected:!0,replBridgeSessionActive:!0,replBridgeReconnecting:!1,replBridgeError:void 0}),e||t(e=>[...e,Td(`Remote Control 已连接。现在可以使用 PushNotification、SendUserFile、Brief 工具,请使用 SearchExtraTools 搜索发现。`,`info`)]);break}case`reconnecting`:p(e=>e.replBridgeReconnecting?e:{...e,replBridgeReconnecting:!0,replBridgeSessionActive:!1});break;case`failed`:clearTimeout(d.current),i(n),p(e=>({...e,replBridgeError:n,replBridgeReconnecting:!1,replBridgeSessionActive:!1,replBridgeConnected:!1})),d.current=setTimeout(()=>{m||(d.current=void 0,p(e=>e.replBridgeError?{...e,replBridgeEnabled:!1,replBridgeError:void 0}:e))},Ey);break}}let w=new Map;function T(e){let t=e.response?.request_id;if(!t)return;let n=w.get(t);if(!n){Y(`[bridge:repl] No handler for control_response request_id=${t}`);return}let r=my(e);if(!r){Y(`[bridge:repl] Ignoring unrecognized control_response request_id=${t}`);return}w.delete(t),n(r)}let E=await v({outboundOnly:r,tags:r?[`ccr-mirror`]:void 0,onInboundMessage:x,onPermissionResponse:T,onInterrupt(){hy(n.current)},onSetModel(e){let t=e==="default"?null:e??null;Ke(t),p(e=>e.mainLoopModelForSession===t?e:{...e,mainLoopModelForSession:t})},onSetMaxThinkingTokens(e){let t=e!==null;p(e=>e.thinkingEnabled===t?e:{...e,thinkingEnabled:t})},onSetPermissionMode(e){if(e===`bypassPermissions`){if(ln())return{ok:!1,error:`Cannot set permission mode to bypassPermissions because it is disabled by settings or configuration`};if(!_.getState().toolPermissionContext.isBypassPermissionsModeAvailable)return{ok:!1,error:`Cannot set permission mode to bypassPermissions because the session was not launched with --dangerously-skip-permissions`}}if(e===`auto`&&!_n()){let e=fd();return{ok:!1,error:e?`Cannot set permission mode to auto: ${Cs(e)}`:`Cannot set permission mode to auto`}}return p(t=>{let n=t.toolPermissionContext.mode;if(n===e)return t;let r=Ui(n,e,t.toolPermissionContext);return{...t,toolPermissionContext:{...r,mode:e}}}),{ok:!0}},onStateChange:S,initialMessages:e.length>0?e:void 0,getMessages:()=>g.current,previouslyFlushedUUIDs:u.current,initialName:C,perpetual:b}),D=E?{...E,markTranscriptReset(){l.current=!0,c.current=!1,s.current=0}}:null;if(m){Y(`[bridge:repl] Hook: init cancelled during flight, tearing down${D?` env=${D.environmentId}`:``}`),D&&D.teardown();return}if(!D){f.current++,Y(`[bridge:repl] Init returned null (precondition or session creation failed); consecutive failures: ${f.current}`),clearTimeout(d.current),p(e=>({...e,replBridgeError:e.replBridgeError??`check debug logs for details`})),d.current=setTimeout(()=>{m||(d.current=void 0,p(e=>e.replBridgeError?{...e,replBridgeEnabled:!1,replBridgeError:void 0}:e))},Ey);return}if(a.current=D,i_(D),f.current=0,s.current=h,r)p(e=>e.replBridgeConnected&&e.replBridgeSessionId===D.bridgeSessionId?e:{...e,replBridgeConnected:!0,replBridgeSessionId:D.bridgeSessionId,replBridgeSessionUrl:void 0,replBridgeConnectUrl:void 0,replBridgeError:void 0}),Y(`[bridge:repl] Mirror initialized, session=${D.bridgeSessionId}`);else{let e={sendRequest(e,t,n,r,i,a,o){D.sendControlRequest({type:`control_request`,request_id:e,request:{subtype:`can_use_tool`,tool_name:t,input:n,tool_use_id:r,description:i,...a?{permission_suggestions:a}:{},...o?{blocked_path:o}:{}}})},sendResponse(e,t){let n={...t};D.sendControlResponse({type:`control_response`,response:{subtype:`success`,request_id:e,response:n}})},cancelRequest(e){D.sendControlCancelRequest(e)},onResponse(e,t){return w.set(e,t),()=>{w.delete(e)}}};p(t=>({...t,replBridgePermissionCallbacks:e}));let n=wi(D.bridgeSessionId,D.sessionIngressUrl),r=D.environmentId===``?void 0:Ss(D.environmentId,D.sessionIngressUrl);p(e=>e.replBridgeConnected&&e.replBridgeSessionUrl===n?e:{...e,replBridgeConnected:!0,replBridgeSessionUrl:n,replBridgeConnectUrl:r??e.replBridgeConnectUrl,replBridgeEnvironmentId:D.environmentId,replBridgeSessionId:D.bridgeSessionId,replBridgeError:void 0});let i=!b&&await y().catch(()=>!1);if(m)return;t(e=>[...e,yl(n,i?`Please upgrade to the latest version of the Claude mobile app to see your Remote Control sessions.`:void 0)]),Y(`[bridge:repl] Hook initialized, session=${D.bridgeSessionId}`)}}catch(e){if(m)return;f.current++;let n=Jd(e);Y(`[bridge:repl] Init failed: ${n}; consecutive failures: ${f.current}`),clearTimeout(d.current),i(n),p(e=>({...e,replBridgeError:n})),d.current=setTimeout(()=>{m||(d.current=void 0,p(e=>e.replBridgeError?{...e,replBridgeEnabled:!1,replBridgeError:void 0}:e))},Ey),r||t(e=>[...e,Td(`Remote Control failed to connect: ${n}`,`warning`)])}})(),()=>{m=!0,clearTimeout(d.current),d.current=void 0,a.current&&(Y(`[bridge:repl] Hook cleanup: starting teardown for env=${a.current.environmentId} session=${a.current.bridgeSessionId}`),o.current=a.current.teardown(),a.current=null,i_(null)),p(e=>!e.replBridgeConnected&&!e.replBridgeSessionActive&&!e.replBridgeError?e:{...e,replBridgeConnected:!1,replBridgeSessionActive:!1,replBridgeReconnecting:!1,replBridgeConnectUrl:void 0,replBridgeSessionUrl:void 0,replBridgeEnvironmentId:void 0,replBridgeSessionId:void 0,replBridgeError:void 0,replBridgePermissionCallbacks:void 0}),s.current=0,c.current=!1,l.current=!1}}},[y,S,p,t,v]),(0,Q.useEffect)(()=>{{if(!b)return;let t=a.current;if(!t)return;s.current>e.length&&Y(`[bridge:repl] Compaction detected: lastWrittenIndex=${s.current} > messages.length=${e.length}, clamping`);let n=Math.min(s.current,e.length),r=[];for(let t=n;t<e.length;t++){let n=e[t];n&&(n.type===`user`||n.type===`assistant`||n.type===`system`&&n.subtype===`local_command`)&&r.push(n)}if(s.current=e.length,r.length>0&&(t.writeMessages(r),l.current=!1),c.current&&_y(l.current,e.length)){l.current=!1,c.current=!1,t.sendResult();return}c.current&&!l.current&&(c.current=!1,t.sendResult())}},[e,b]),(0,Q.useEffect)(()=>{{if(!x||S)return;let e=!1,t,n,r=null,i=null,o=null,s=null,c=e=>{if(!(e===i&&r!==null)){r?.close(),r=null,i=e;try{r=Ev(e,u),r.unref()}catch{}}},l=async()=>{let t=a.current;if(!t)return;let n=vn();c(un(n));try{let r=await Et(n);if(e||a.current!==t)return;let i=Sy(n,r);if(i===o&&t===s)return;t.writeSdkMessages([Cy(n,r)]),o=i,s=t}catch(e){Y(`[bridge:repl] Failed to publish task_state: ${Jd(e)}`,{level:`error`})}},u=()=>{t&&clearTimeout(t),t=setTimeout(()=>{t=void 0,l()},wy),t.unref?.()};l();let d=Bc(u);return n=setInterval(()=>{l()},Ty),n.unref?.(),()=>{e=!0,d(),t&&clearTimeout(t),n&&clearInterval(n),r?.close()}}},[x,S]),{sendBridgeResult:(0,Q.useCallback)(()=>{{let e=a.current;if(!e){c.current=!0;return}if(_y(l.current,g.current.length)){l.current=!1,c.current=!1,e.sendResult();return}if(l.current||vy({hasHandle:!0,isConnected:b,lastWrittenIndex:s.current,messageCount:g.current.length})){c.current=!0;return}e.sendResult()}},[b])}}Ru(),$o(),iu(),hr(),Nn(),yg(),hg(),bp();var ky=Te(()=>ye({method:xe(`log_event`),params:ye({eventName:be(),eventData:ye({}).passthrough()})}));function Ay(e){(0,Q.useEffect)(()=>{if(!e.length)return;let t=Ma(e);t&&t.client.setNotificationHandler(ky(),e=>{let{eventName:t,eventData:n}=e.params;Z(`tengu_ide_${t}`,n)})},[e])}at(),B();var jy=6e3;function My(){return Date.now()-ze()}function Ny(e){return My()<e}function Py(e){return!Ny(e)}function Fy(e,t){let n=E();(0,Q.useEffect)(()=>{vt(!0)},[]),(0,Q.useEffect)(()=>{let r=!1,i=setInterval(()=>{Py(6e3)&&!r&&(r=!0,clearInterval(i),Gv({message:e,notificationType:t},n))},jy);return()=>clearInterval(i)},[e,t,n])}il(),ts(),xr(),ji(),Nt(),Hg(),B(),lc();var Iy={topLeft:`┌`,topRight:`┐`,bottomLeft:`└`,bottomRight:`┘`,horizontal:`─`,vertical:`│`,teeLeft:`├`,teeRight:`┤`};function Ly(e){return pd().syntaxHighlightingDisabled?(0,$.jsx)(zy,{...e,highlight:null}):(0,$.jsx)(Q.Suspense,{fallback:(0,$.jsx)(zy,{...e,highlight:null}),children:(0,$.jsx)(Ry,{...e})})}function Ry(e){let t=(0,Q.use)(bo());return(0,$.jsx)(zy,{...e,highlight:t})}function zy({content:e,maxLines:t,minHeight:n,minWidth:r=40,maxWidth:i,highlight:a}){let{columns:o}=de(),[s]=y(),c=i??o-4,l=t??20,u=(0,Q.useMemo)(()=>Hu(e,s,a),[e,s,a]).split(`
1
+ import{a as e,n as t,o as n,r}from"./rolldown-runtime-DaDcL9Zw.js";import{c as i,l as a,n as o,o as s}from"./envUtils-DSxRz_kt.js";import{n as c,t as l}from"./defineProperty-C-QyHrDq.js";import{n as u,t as d}from"./figures-5ThXQEtq.js";import{n as f,t as p}from"./axios-DaWTGg7G.js";import{C as m,D as h,Ft as g,Gr as _,Gt as v,H as y,I as b,Kr as x,Kt as S,Lt as C,Mr as w,P as T,Pn as E,Rn as D,T as O,Tt as k,Vn as ee,Wt as A,Xn as j,Xt as M,Y as te,Yt as N,Z as P,Zn as F,_n as ne,bn as re,ct as I,di as L,dr as ie,et as R,fi as z,ft as ae,hn as oe,ir as se,j as ce,lr as le,lt as ue,ot as de,q as fe,qr as pe,t as B,tr as V,ui as H,vn as me,x as he,y as ge,yn as U,yt as _e}from"./src-CDCSSo0U2.js";import{t as ve}from"./jsx-runtime-Bb4Xn-E0.js";import{E as ye,M as be,S as xe,T as Se,a as Ce,d as we,n as Te,r as Ee,s as De,t as Oe,w as ke}from"./lazySchema-DcIJE_0i.js";import{At as Ae,B as je,Bt as Me,D as Ne,Dn as Pe,H as Fe,Hn as Ie,Ht as Le,Jn as Re,K as ze,Mt as Be,Nt as Ve,Pt as He,Rt as Ue,Sr as We,Tt as Ge,Un as Ke,Ut as qe,V as Je,Vt as Ye,Wt as Xe,Yn as Ze,Yt as Qe,Z as $e,Zt as et,_r as tt,b as nt,bn as rt,dn as it,en as at,fn as ot,ht as st,jt as ct,kt as lt,nt as ut,ot as dt,pn as ft,pt,tn as mt,un as ht,vr as gt,xr as _t,yr as vt,yt,z as bt,zt as xt}from"./state-ix0xIunV.js";import{$D as St,$d as Ct,$f as wt,$m as Tt,AC as Et,AS as Dt,AT as Ot,Af as kt,Ag as At,Ah as jt,Ao as Mt,Ap as Nt,As as Pt,Au as Ft,Ax as It,BC as Lt,BS as Rt,BT as zt,Bc as Bt,Bd as Vt,Bf as Ht,Bm as Ut,Bn as Wt,Bo as Gt,Bp as Kt,Bs as qt,Bw as Jt,Bx as Yt,C as Xt,CE as Zt,CS as Qt,Cb as $t,Cf as en,Cg as tn,Ci as nn,Cl as rn,Cr as an,Ct as on,Cw as sn,Cx as cn,D as ln,DC as un,DE as dn,DS as fn,DT as pn,Dg as mn,Du as hn,Dy as gn,E as _n,EC as vn,ES as yn,ET as bn,Ec as xn,Ef as Sn,Eg as W,Em as Cn,Eo as wn,Er as Tn,Es as En,Et as Dn,Eu as On,Ew as kn,Ex as An,FC as jn,FT as Mn,Fb as Nn,Fd as Pn,Ff as Fn,Fg as In,Fh as Ln,Fm as Rn,Fo as zn,Fp as Bn,Fs as Vn,Ft as Hn,Fw as Un,Fx as Wn,G as Gn,GC as Kn,GS as qn,GT as Jn,Gb as Yn,Gd as Xn,Gf as Zn,Gl as Qn,Gm as $n,Gt as er,Gu as tr,Gw as nr,Gx as rr,HS as ir,Hd as ar,Hf as or,Hl as sr,Hm as cr,Hs as lr,Hw as ur,Hx as dr,Hy as fr,I as pr,IC as mr,IT as G,Ib as hr,Id as gr,If as _r,Ig as vr,Il as K,Im as yr,Io as br,Ip as xr,Ir as Sr,Is as Cr,Iw as wr,Ix as Tr,J as Er,JC as Dr,JD as Or,JE as kr,JT as Ar,Jb as jr,Jf as Mr,Jl as Nr,Jn as Pr,Jo as Fr,Jr as Ir,Js as Lr,Jx as Rr,KC as zr,KE as Br,KS as Vr,KT as Hr,Kb as Ur,Kf as Wr,Kg as Gr,Ki as Kr,Kl as qr,Ks as Jr,Ku as Yr,Kx as Xr,Ky as Zr,LC as Qr,LT as $r,Lb as ei,Ld as ti,Lf as ni,Lg as ri,Ll as ii,Lm as ai,Ln as oi,Lp as si,Ls as ci,Lw as li,Lx as ui,M as di,MC as fi,ME as pi,MS as mi,Mb as hi,Mc as gi,Mf as _i,Mg as vi,Mp as yi,Mr as bi,Mu as xi,Mw as Si,N as Ci,NC as wi,ND as Ti,NE as Ei,NT as Di,Nd as Oi,Nf as ki,Nl as Ai,Np as ji,Nu as Mi,OC as Ni,OE as Pi,OT as Fi,Ob as Ii,Oc as Li,Og as Ri,Oo as zi,Op as Bi,Ou as Vi,Ow as Hi,P as Ui,PC as Wi,PD as Gi,PT as Ki,Pb as qi,Pd as Ji,Pf as Yi,Ph as Xi,Pl as Zi,Pm as Qi,Pn as $i,Pp as ea,Pr as ta,Pu as na,Pw as ra,Px as ia,Q as aa,Qa as oa,Qd as sa,Qf as ca,Qi as la,Qm as ua,Qn as da,Qo as fa,Qs as pa,Qu as ma,RC as ha,RT as ga,Ra as _a,Rb as va,Rc as ya,Rg as ba,Ri as xa,Rm as Sa,Rp as Ca,Rs as wa,Rw as Ta,Rx as Ea,SC as Da,SD as Oa,SS as ka,Sb as Aa,Sf as ja,Sg as Ma,Sl as Na,So as Pa,Sx as Fa,Sy as Ia,TD as La,TE as Ra,TS as za,TT as Ba,Tb as Va,Tf as Ha,Tm as Ua,To as Wa,Tu as Ga,Tw as Ka,Tx as qa,Ty as Ja,UC as Ya,US as q,Ua as Xa,Ud as Za,Uf as Qa,Ug as $a,Ul as eo,Um as to,Up as no,Ut as ro,Uu as io,Uw as ao,Ux as oo,VC as so,VE as co,VS as lo,Va as uo,Vc as fo,Vd as po,Vf as mo,Vi as ho,Vl as go,Vm as _o,Vs as vo,Vu as yo,Vw as bo,Vx as xo,Vy as So,W as Co,WC as wo,WS as J,Wd as To,Wf as Eo,Wg as Do,Wi as Oo,Wl as ko,Wm as Ao,Wp as jo,Wu as Mo,Ww as No,Wx as Po,X as Fo,XE as Io,X_ as Lo,Xb as Ro,Xm as zo,Xu as Bo,Xx as Vo,YC as Ho,YD as Uo,YE as Wo,YT as Go,Y_ as Ko,Yb as qo,Yu as Jo,Yx as Yo,Z as Xo,ZC as Zo,ZT as Qo,Zb as $o,Zi as es,Zm as ts,Zs as ns,Zt as rs,Zu as is,Zx as as,_S as os,_b as ss,_l as cs,_m as ls,_p as us,_u as ds,_v as fs,_x as ps,aC as ms,aS as hs,aT as gs,aa as _s,ac as vs,af as ys,ao as bs,ap as xs,ax as Ss,b as Cs,bS as ws,bf as Ts,bg as Es,bo as Ds,bw as Os,bx as ks,cC as As,cS as js,cT as Ms,ca as Ns,cb as Ps,cl as Fs,cm as Is,cp as Ls,cs as Rs,cu as zs,cw as Bs,cx as Vs,dS as Hs,dh as Us,dm as Ws,dn as Gs,do as Ks,eE as qs,eO as Js,eh as Ys,ei as Xs,en as Zs,ep as Qs,es as $s,et as ec,ex as tc,fS as nc,fb as rc,fh as ic,fi as ac,fm as oc,fp as sc,fs as cc,fv as lc,fw as uc,fx as dc,gS as fc,gl as pc,gm as mc,gp as hc,gs as gc,gu as _c,hi as vc,hl as yc,hm as bc,ho as xc,hp as Sc,hu as Cc,hv as wc,hw as Tc,hx as Ec,iC as Dc,iS as Oc,iT as kc,ib as Ac,id as jc,if as Mc,ih as Nc,im as Pc,io as Fc,ip as Ic,it as Lc,iu as Rc,ix as zc,jC as Bc,jE as Vc,jT as Hc,jc as Uc,jf as Wc,jg as Gc,jm as Kc,jp as qc,jr as Jc,ju as Yc,jw as Xc,kT as Zc,kb as Qc,kc as $c,kh as el,km as tl,ko as nl,kw as rl,kx as il,lS as al,lb as ol,lh as sl,li as cl,ll,lm as ul,lt as dl,lu as fl,lw as pl,lx as ml,ly as hl,mE as gl,ma as _l,mm as vl,mo as yl,mp as bl,mr as xl,mu as Sl,mx as Cl,na as wl,nb as Tl,nd as El,nm as Dl,no as Ol,nr as kl,nx as Al,oC as jl,oS as Ml,oT as Nl,oa as Pl,ob as Fl,oc as Il,od as Ll,ol as Rl,op as zl,or as Bl,os as Vl,ow as Hl,pS as Ul,pT as Wl,pa as Gl,pb as Kl,ph as ql,pi as Jl,pm as Yl,po as Xl,pu as Zl,pv as Ql,pw as $l,px as eu,q as tu,qC as nu,qD as ru,qb as iu,qf as au,qg as ou,qi as su,ql as cu,qo as lu,qy as uu,rC as du,ra as fu,rd as pu,rg as mu,rh as hu,rm as gu,ro as _u,rp as vu,sC as yu,sS as bu,sT as xu,sa as Su,sb as Cu,sd as wu,sh as Tu,si as Eu,sl as Du,sm as Ou,su as ku,sw as Au,sx as ju,tE as Mu,tO as Nu,ta as Pu,tm as Fu,tp as Iu,tt as Lu,tx as Ru,uS as zu,ua as Bu,ub as Vu,uh as Hu,ul as Uu,um as Wu,uo as Gu,ur as Ku,ut as qu,uu as Ju,uy as Yu,vS as Xu,vi as Zu,vp as Qu,vs as $u,vu as ed,vx as td,wC as nd,wS as rd,wT as id,wb as ad,wf as od,wi as sd,wu as cd,ww as ld,wx as ud,wy as dd,x as fd,xS as pd,xb as md,xf as hd,xv as gd,xw as _d,xx as vd,yD as yd,yS as bd,yb as xd,yf as Sd,yg as Cd,yn as wd,yo as Td,ys as Ed,yx as Dd,zC as Od,zE as kd,zT as Ad,za as jd,zb as Md,zc as Nd,zf as Pd,zg as Fd,zl as Id,zm as Ld,zn as Rd,zo as zd,zp as Bd,zs as Vd,zw as Hd,zx as Ud}from"./loadAgentsDir-D206qwP3.js";import{n as Wd,t as Gd}from"./cwd-CYmmnQVS.js";import{C as Kd,D as qd,F as Jd,G as Yd,Q as Xd,S as Zd,V as Qd,W as $d,_ as ef,a as tf,d as nf,l as Y,nt as rf,p as af,rt as of,w as sf,z as cf}from"./debug-BrXObCdR.js";import{B as lf,Bt as uf,Ft as df,Ht as ff,It as pf,Jt as mf,Kt as hf,L as gf,Pt as _f,St as vf,Ut as yf,Vt as bf,Wt as xf,Xt as Sf,Zt as Cf,_n as wf,c as Tf,cn as Ef,dn as Df,f as Of,ft as kf,g as Af,gn as jf,n as Mf,vn as Nf,y as Pf}from"./settings-BovzmwMP.js";import{P as Ff,b as If,c as Lf,g as Rf,l as zf,n as Bf}from"./config-DmomySWC.js";import{M as Vf,_ as Hf,a as Uf,d as Wf,i as Gf,j as Kf}from"./git-Do0wJvux.js";import{r as qf,t as Jf}from"./execFileNoThrow-D244NytW.js";import{B as Yf,L as Xf,N as Zf,R as Qf,U as $f,Y as ep,k as tp,o as np,s as X}from"./log-BMCygSzM.js";import{n as rp,t as ip}from"./memoize-B0zhbT8Z.js";import{n as ap,t as op}from"./which-CKQnSouy.js";import{i as sp,o as cp}from"./platform-BrYefG_2.js";import{i as lp,n as up,o as dp,r as fp}from"./path-D5U-tm91.js";import{D as pp,E as mp,T as hp,f as gp,l as _p}from"./file-DcZWPH2V.js";import{s as vp,u as yp}from"./types-C-MRCL8J.js";import{n as bp,r as Z}from"./analytics-BotDBGh0.js";import{c as xp,n as Sp,s as Cp,t as wp}from"./intl-cKc-V6Mq.js";import{T as Tp,b as Ep,d as Dp,f as Op,u as kp,y as Ap}from"./startupProfiler-xa3NmN7Z.js";import{l as jp,u as Mp}from"./oauth-BqJqV-2M.js";import{n as Np,t as Pp}from"./bundledMode--fG1S62b.js";import{a as Fp,d as Ip,l as Lp,o as Rp,r as zp,s as Bp}from"./stringUtils-DGLPkqJ4.js";import{$n as Vp,At as Hp,Bn as Up,Bt as Wp,Ct as Gp,D as Kp,Et as qp,Ft as Jp,Gr as Yp,Gt as Xp,Ht as Zp,Kn as Qp,St as $p,T as em,Vn as tm,X as nm,_ as rm,at as im,b as am,bi as om,br as sm,ct as cm,et as lm,h as um,it as dm,m as fm,mt as pm,ni as mm,nt as hm,ot as gm,qr as _m,ri as vm,rr as ym,rt as bm,st as xm,ti as Sm,tr as Cm,tt as wm,u as Tm,x as Em,xi as Dm,xr as Om}from"./model-CKkOnnnx.js";import{At as km,Cn as Am,Et as jm,Ht as Mm,Tn as Nm,Tt as Pm,Ut as Fm,an as Im,bn as Lm,dn as Rm,fn as zm,hn as Bm,jt as Vm,mn as Hm,st as Um,yn as Wm}from"./prompt-BNHtszmZ.js";import{et as Gm,rt as Km}from"./esm-D5q6s4l8.js";import{a as qm,i as Jm,r as Ym}from"./shellQuote-DkSy9MYE.js";import{a as Xm}from"./ripgrep-BXmXjAzA.js";import{a as Zm,o as Qm,s as $m}from"./fileStateCache-DDW5toIs.js";import{C as eh,N as th,S as nh,T as rh,b as ih,d as ah,f as oh,j as sh,st as ch,w as lh,x as uh,y as dh}from"./rcDebugLog-CUy1_F23.js";import{T as fh,c as ph,r as mh,w as hh}from"./sessionTracing-D9rUyiq0.js";import{i as gh,n as _h,r as vh}from"./parser-DFwaTGf7.js";import{c as yh,l as bh}from"./commitAttribution-ChAgixdj.js";import{n as xh,t as Sh}from"./poorMode-DhzFKpPl.js";import{a as Ch,f as wh,l as Th,o as Eh}from"./api-gqTA-D7n.js";import{f as Dh,m as Oh}from"./firstPartyEventLogger-CoSUd0a1.js";import{l as kh,u as Ah}from"./referral-CUaIo_vT.js";import{i as jh,m as Mh,n as Nh,p as Ph}from"./terminalSetup-CuV-qU6v.js";import{n as Fh,t as Ih}from"./browser-BmZuQom6.js";import{i as Lh,r as Rh}from"./bridgeEnabled-SbB-6zdY.js";import{n as zh,r as Bh}from"./undercover-vuTpCnQJ.js";import{t as Vh}from"./Dialog-vfLXEPed.js";import{t as Hh}from"./lib-BlVGipXx.js";import{n as Uh,t as Wh}from"./mappers-BDMZFgKx.js";import{n as Gh,r as Kh}from"./sessionTitle-coed9IuJ.js";import{t as qh}from"./bridgeMessaging-DHc5dOhB.js";import{C as Jh,S as Yh,d as Xh,l as Zh}from"./pidLock-D5rUnDB-.js";import{n as Qh,t as $h}from"./nativeInstaller-CA5d6_G7.js";import{r as eg,t as tg}from"./pipeTransport-CqCnc-Ys.js";import{t as ng}from"./useManagePlugins-B2KhKiu5.js";import{n as rg,t as ig}from"./MCPConnectionManager-CNh9dNlk.js";import{i as ag,n as og,r as sg,t as cg}from"./reconciler-BXpPyfSY.js";import{n as lg,t as ug}from"./toolPool-B64V-jmK.js";import{a as dg,c as fg,i as pg,l as mg,r as hg,t as gg,u as _g}from"./MessageSelector-DdR6wJhh.js";import{n as vg,t as yg}from"./useExitOnCtrlCDWithKeybindings-DKIqRraH.js";import{n as bg,t as xg}from"./sideQuestion-wSi38p81.js";import{a as Sg,n as Cg,o as wg,r as Tg,s as Eg,t as Dg}from"./skillChangeDetector-DNqohXxz.js";import{n as Og,t as kg}from"./refresh-CuaVBIQ0.js";import{i as Ag,n as jg,r as Mg,t as Ng}from"./directoryCompletion-CW2ckkQg.js";import{r as Pg,t as Fg}from"./PromptInputFooterSuggestions-egs9VvUs.js";import{n as Ig,t as Lg}from"./useMergedTools-CKvwz_Zt.js";import{a as Rg,i as zg,n as Bg,o as Vg,r as Hg,t as Ug}from"./promptEditor-DeMrXUir.js";import{n as Wg,t as Gg}from"./useMainLoopModel-XetDUXd-.js";import{i as Kg,n as qg,r as Jg,t as Yg}from"./PermissionDialog-0ya1CU5k.js";import{n as Xg,t as Zg}from"./RemoteCallout-Cs-ro8_i.js";import{a as Qg,c as $g,i as e_,o as t_,r as n_,s as r_}from"./caches-UeVVM3T0.js";import{i as i_,n as a_,r as o_,t as s_}from"./conversation-BWVTM40Y.js";import{i as c_,n as l_,r as u_,t as d_}from"./extraUsage-Dq66zzqR.js";import{n as f_,t as p_}from"./useSearchInput-D1Vr2Js1.js";import{n as m_,t as h_}from"./staticRender-BIxpgNUq.js";import{n as g_,t as __}from"./useSettingsErrors-B7BXHchG.js";import{n as v_,t as y_}from"./shadowedRuleDetection-D1wsAdpp.js";import{n as b_,t as x_}from"./ExitFlow-BttnAv-O.js";import{a as S_,i as C_,r as w_,t as T_}from"./fast-MS7WZpD8.js";import{n as E_,r as D_}from"./Feedback-BaYA8-SU.js";import{a as O_,i as k_,n as A_,r as j_,t as M_}from"./PromptInputHelpMenu-SieM5NoY.js";import{n as N_,r as P_}from"./pluginAutoupdate-reO2PgtQ.js";import{n as F_,r as I_}from"./autoModeDenials-BxNzGJdR.js";import{n as L_,t as R_}from"./generateSessionName-hDJ6HBJ1.js";import{a as z_,c as B_,d as V_,i as H_,l as U_,n as W_,o as G_,r as K_,s as q_,t as J_,u as Y_}from"./Messages-Ch6cboMV.js";import{a as X_,i as Z_,n as Q_,o as $_,r as ev,t as tv}from"./BackgroundTasksDialog-DNeBhGCf.js";import{n as nv}from"./fpsMetrics-Cf_hdtiJ.js";import{t as rv}from"./earlyInput-BTC_Wucv.js";import{a as iv,c as av,i as ov,l as sv,o as cv,r as lv,s as uv,t as dv}from"./RemoteSessionManager-B740Dp6m.js";import{n as fv,t as pv}from"./backgroundHousekeeping-BVMf_Tjn.js";import{n as mv}from"./language-C6Fq-XOZ.js";import{homedir as hv,tmpdir as gv}from"os";import*as _v from"path";import{basename as vv,dirname as yv,extname as bv,join as xv,relative as Sv,sep as Cv}from"path";import{dirname as wv,join as Tv}from"node:path";import{watch as Ev}from"fs";import{createHash as Dv}from"node:crypto";import{randomUUID as Ov}from"crypto";import{readFile as kv,stat as Av,writeFile as jv}from"fs/promises";import{spawn as Mv,spawnSync as Nv}from"child_process";import{mkdir as Pv,readFile as Fv,rename as Iv,writeFile as Lv}from"node:fs/promises";s(),c(),p(),L(),me(),u(),B(),Ee(),We(),at(),Wd(),rf(),Yd(),cf(),Zd(),af(),tf(),Kf(),ep(),np(),qf(),ip(),op(),Hf(),cp(),lp(),mp(),wf(),bp(),gp(),vp(),Cp(),Ep(),Df(),Oe(),Mp(),Pp(),Cf(),hf(),df(),vf(),gf(),Rp(),Af(),Ff(),om(),Nm(),Rf(),Lm(),Bm(),vm(),_m(),Om(),ym(),Qp(),Wp(),lm(),rm(),Im(),Gm(),Nu(),Or(),Ti(),Xm(),Oa(),Fm(),Vm(),jm(),Um(),Io(),Br(),Qm(),co(),Ei(),dn(),gl(),qs(),Qo(),Hr(),Ki(),Wl(),xu(),nr(),hh(),vh(),Ym(),li(),Xc(),kn(),Os(),$l(),Bs(),Zo(),nu(),th(),Ya(),so(),Od(),Wi(),Ni(),As(),ms(),Ah(),du(),Rt(),fn(),za(),ka(),ws(),Xu(),Ph(),jh(),zu(),Rr(),dr(),kh(),Yt(),ui(),Wn(),cn(),Fa(),Cl(),Ur(),Va(),rc(),Tl(),Zr(),Yu(),Ih(),Lo(),Do(),Fd(),mn(),Tt(),_o(),ai(),Cn(),ls(),ul(),Dl(),jo(),Bd(),us(),zl(),Iu(),ni(),ki(),Wc(),Sn(),od(),hd(),Ts(),Rh(),Za(),po(),gr(),Ji(),dh(),pu(),Bo(),yo(),Ft(),hn(),On(),ed(),_c(),ph(),ku(),Rc(),cu(),K(),Ai(),Na(),yc(),ll(),Du(),fo(),ya(),Uc(),$c(),vs(),pa(),vo(),En(),$u(),cc(),Vl(),zd(),uo(),_l(),la(),Jc(),oi(),wd(),ec(),Xo(),tu(),Gn(),Xt(),Kg(),qg(),p_(),E_();var Q=n(z(),1);x(),W_(),qa(),Dt(),q(),h_();var $=ve();function Rv({children:e}){let{bindings:t}=mi(),n=(0,Q.useRef)(null),r=(0,Q.useRef)(new Map),i=(0,Q.useRef)(new Set).current;return(0,$.jsx)(S,{bindings:t,pendingChordRef:n,pendingChord:null,setPendingChord:()=>{},activeContexts:i,registerActiveContext:()=>{},unregisterActiveContext:()=>{},handlerRegistryRef:r,children:e})}function zv(e){if(!(`message`in e))return 1;let t=e.message.content;return Array.isArray(t)?t.length:1}async function Bv(e,t,n,{columns:r,verbose:i=!1,chunkSize:a=40,onProgress:o}={}){let s=n=>m_((0,$.jsx)(ir,{children:(0,$.jsx)(Rv,{children:(0,$.jsx)(J_,{messages:e,tools:t,commands:[],verbose:i,toolJSX:null,toolUseConfirmQueue:[],inProgressToolUseIDs:new Set,isMessageSelectorVisible:!1,conversationId:`export`,screen:`prompt`,streamingToolUses:[],showAllInTranscript:!0,isLoading:!1,renderRange:n})})}),r),c=a;for(let t of e)c+=zv(t);for(let e=0;e<c;e+=a){let t=await s([e,e+a]);if(pe(t).trim()===``)break;await n(t),o?.(e+a)}}async function Vv(e,t=[],n){let r=[];return await Bv(e,t,e=>void r.push(pe(e)),{columns:n}),r.join(``)}ao(),fs(),Us(),sl(),Rg(),dc();function Hv({onDone:e}){return(0,$.jsxs)(ge,{title:`You've spent $5 on the API this session.`,onCancel:e,children:[(0,$.jsxs)(b,{flexDirection:`column`,children:[(0,$.jsx)(T,{children:`Learn more about how to monitor your spending:`}),(0,$.jsx)(C,{url:`https://code.claude.com/docs/en/costs`})]}),(0,$.jsx)(eu,{options:[{value:`ok`,label:`Got it, thanks!`}],onChange:e})]})}B(),dc();function Uv({idleMinutes:e,totalInputTokens:t,onDone:n}){return(0,$.jsxs)(ge,{title:`You've been away ${Wv(e)} and this conversation is ${Ap(t)} tokens.`,onCancel:()=>n(`dismiss`),children:[(0,$.jsx)(b,{flexDirection:`column`,children:(0,$.jsx)(T,{children:`If this is a new task, clearing context will save usage and be faster.`})}),(0,$.jsx)(eu,{options:[{value:`continue`,label:`Continue this conversation`},{value:`clear`,label:`Send message as a new conversation`},{value:`never`,label:`Don't ask me again`}],onChange:e=>n(e)})]})}function Wv(e){if(e<1)return`< 1m`;if(e<60)return`${Math.floor(e)}m`;let t=Math.floor(e/60),n=Math.floor(e%60);return n===0?`${t}h`:`${t}h ${n}m`}async function Gv(e,t){let n=Lf().preferredNotifChannel;await ro(e),Z(`tengu_notification_method_used`,{configured_channel:n,method_used:await qv(n,e,t),term:mf.terminal})}var Kv=`Work Mate`;async function qv(e,t,n){let r=t.title||Kv;try{switch(e){case`auto`:return Jv(t,n);case`iterm2`:return n.notifyITerm2(t),`iterm2`;case`iterm2_with_bell`:return n.notifyITerm2(t),n.notifyBell(),`iterm2_with_bell`;case`kitty`:return n.notifyKitty({...t,title:r,id:Yv()}),`kitty`;case`ghostty`:return n.notifyGhostty({...t,title:r}),`ghostty`;case`terminal_bell`:return n.notifyBell(),`terminal_bell`;case`notifications_disabled`:return`disabled`;default:return`none`}}catch{return`error`}}async function Jv(e,t){let n=e.title||Kv;switch(mf.terminal){case`Apple_Terminal`:return await Xv()?(t.notifyBell(),`terminal_bell`):`no_method_available`;case`iTerm.app`:return t.notifyITerm2(e),`iterm2`;case`kitty`:return t.notifyKitty({...e,title:n,id:Yv()}),`kitty`;case`ghostty`:return t.notifyGhostty({...e,title:n}),`ghostty`;default:return`no_method_available`}}function Yv(){return Math.floor(Math.random()*1e4)}async function Xv(){try{if(mf.terminal!==`Apple_Terminal`)return!1;let e=(await Jf(`osascript`,[`-e`,`tell application "Terminal" to name of current settings of front window`])).stdout.trim();if(!e)return!1;let t=await Jf(`defaults`,[`export`,`com.apple.Terminal`,`-`]);if(t.code!==0)return!1;let r=(await import(`./plist-Bzo2VMe9.js`).then(e=>n(e.default,1))).parse(t.stdout)?.[`Window Settings`]?.[e];return r?r.Bell===!1:!1}catch(e){return X(e),!1}}var Zv=300,Qv=240*1e3,$v=null,ey=null,ty=0,ny=!1;function ry(){ty++,ty===1&&(cy(),oy())}function iy(){ty>0&&ty--,ty===0&&(sy(),ly())}function ay(){ty=0,sy(),ly()}function oy(){process.platform===`darwin`&&ey===null&&(ey=setInterval(()=>{ty>0&&(Y(`Restarting caffeinate to maintain sleep prevention`),ly(),cy())},Qv),ey.unref())}function sy(){ey!==null&&(clearInterval(ey),ey=null)}function cy(){if(process.platform===`darwin`&&$v===null){ny||(ny=!0,of(async()=>{ay()}));try{$v=Mv(`caffeinate`,[`-i`,`-t`,String(Zv)],{stdio:`ignore`}),$v.unref();let e=$v;$v.on(`error`,t=>{Y(`caffeinate spawn error: ${t.message}`),$v===e&&($v=null)}),$v.on(`exit`,()=>{$v===e&&($v=null)}),Y(`Started caffeinate to prevent sleep`)}catch{$v=null}}}function ly(){if($v!==null){let e=$v;$v=null;try{e.kill(`SIGKILL`),Y(`Stopped caffeinate, allowing sleep`)}catch{}}}var uy=class{constructor(){l(this,`_status`,`idle`),l(this,`_generation`,0),l(this,`_changed`,_t()),l(this,`subscribe`,this._changed.subscribe),l(this,`getSnapshot`,()=>this._status!==`idle`)}reserve(){return this._status===`idle`?(this._status=`dispatching`,this._notify(),!0):!1}cancelReservation(){this._status===`dispatching`&&(this._status=`idle`,this._notify())}tryStart(){return this._status===`running`?null:(this._status=`running`,++this._generation,this._notify(),this._generation)}end(e){return this._generation!==e||this._status!==`running`?!1:(this._status=`idle`,this._notify(),!0)}forceEnd(){this._status!==`idle`&&(this._status=`idle`,++this._generation,this._notify())}get isActive(){return this._status!==`idle`}get generation(){return this._generation}_notify(){this._changed.emit()}};function dy(e,t=!1){let n=(0,Q.useRef)(0),r=(0,Q.useRef)(void 0),i=(0,Q.useRef)(void 0),a=(0,Q.useRef)(0);(0,Q.useEffect)(()=>{if(t)return;let o=e[0]?.uuid,s=n.current,c=i.current===void 0,l=o!==void 0&&!c&&o===i.current&&s<=e.length,u=o!==void 0&&!c&&o===i.current&&s>e.length,d=l?s:0;if(d===e.length)return;let f=d===0?e:e.slice(d),p=l?r.current:void 0,m=++a.current;if(Eu(f,{},p,e).then(e=>{m===a.current&&e&&!l&&(r.current=e)}),l||c||u){let t=da(f,e).findLast(bi);t&&(r.current=t.uuid)}n.current=e.length,i.current=o},[e,t])}function fy(e){return!e||typeof e!=`object`?!1:`behavior`in e&&(e.behavior===`allow`||e.behavior===`deny`)}function py(e,t){if(typeof e.message==`string`&&e.message)return e.message;if(typeof t?.message==`string`&&t.message)return t.message;if(typeof e.error==`string`&&e.error)return e.error}function my(e){let t=e.response;if(!t||typeof t!=`object`)return null;if(t.subtype===`success`&&`response`in t&&fy(t.response))return t.response;if(t.subtype!==`error`)return null;let n=`response`in t&&fy(t.response)?t.response:void 0,r=py(t,n);return n?r?{...n,message:r}:n:r?{behavior:`deny`,message:r}:null}function hy(t){{let{pauseProactive:t}=(dh(),e(eh));t()}t?.abort()}function gy(e,t){return e<t}function _y(e,t){return e&&t===0}function vy({hasHandle:e,isConnected:t,lastWrittenIndex:n,messageCount:r}){return!e||!t||gy(n,r)}ml(),o_();function yy(e){return{id:e.id,subject:e.subject,description:e.description,activeForm:e.activeForm,status:e.status,owner:e.owner,blocks:[...e.blocks],blockedBy:[...e.blockedBy]}}function by(e,t){return e.id.localeCompare(t.id)}function xy(e,t){return{task_list_id:e,tasks:t.filter(e=>!e.metadata?._internal).map(yy).sort(by)}}function Sy(e,t){return JSON.stringify(xy(e,t))}function Cy(e,t){let n=xy(e,t);return{type:`task_state`,uuid:Ov(),...n}}B(),q(),tf();var wy=50,Ty=5e3,Ey=1e4,Dy=3;function Oy(e,t,n,r,i){let a=(0,Q.useRef)(null),o=(0,Q.useRef)(void 0),s=(0,Q.useRef)(0),c=(0,Q.useRef)(!1),l=(0,Q.useRef)(!1),u=(0,Q.useRef)(new Set),d=(0,Q.useRef)(void 0),f=(0,Q.useRef)(0),p=Vr(),m=(0,Q.useRef)(r);m.current=r;let h=(0,Q.useRef)(i);h.current=i;let g=(0,Q.useRef)(e);g.current=e;let _=qn(),{addNotification:v}=lo(),y=J(e=>e.replBridgeEnabled),b=J(e=>e.replBridgeConnected),x=J(e=>e.replBridgeSessionActive),S=J(e=>e.replBridgeOutboundOnly),C=J(e=>e.replBridgeInitialName);return(0,Q.useEffect)(()=>{{if(!y)return;let r=S;function i(e){r||v({key:`bridge-failed`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(T,{color:`error`,children:`Remote Control failed`}),e&&(0,$.jsxs)(T,{dimColor:!0,children:[` · `,e]})]}),priority:`immediate`})}if(f.current>=Dy){Y(`[bridge:repl] Hook: ${f.current} consecutive init failures, not retrying this session`);let e=`disabled after repeated failures · restart to retry`;i(e),p(t=>t.replBridgeError===e&&!t.replBridgeEnabled?t:{...t,replBridgeError:e,replBridgeEnabled:!1});return}let m=!1,h=e.length;return(async()=>{try{if(o.current&&(Y(`[bridge:repl] Hook: waiting for previous teardown to complete before re-init`),await o.current,o.current=void 0,Y(`[bridge:repl] Hook: previous teardown complete, proceeding with re-init`)),m)return;let{initReplBridge:v}=await import(`./initReplBridge-JQ-afRx9.js`),{shouldShowAppUpgradeMessage:y}=await import(`./envLessBridgeConfig-CN0_44-p.js`),b=!1;{let{isAssistantMode:e}=await import(`./assistant-z2o4-UJe.js`);b=e()}async function x(e){try{let t=sg(e);if(!t)return;let{uuid:n}=t,{resolveAndPrepend:r}=await import(`./inboundAttachments-BekVc0W-.js`),i=t.content,a=await r(e,i);Y(`[bridge:repl] Injecting inbound user message: ${typeof a==`string`?a.slice(0,80):`[${a.length} content blocks]`}${n?` uuid=${n}`:``}`),pn({value:a,mode:`prompt`,uuid:n,skipSlashCommands:!0,bridgeOrigin:!0})}catch(e){Y(`[bridge:repl] handleInboundMessage failed: ${e}`,{level:`error`})}}function S(e,n){if(m)return;if(r){Y(`[bridge:repl] Mirror state=${e}${n?` detail=${n}`:``}`),e===`failed`?p(e=>e.replBridgeConnected?{...e,replBridgeConnected:!1}:e):(e===`ready`||e===`connected`)&&p(e=>e.replBridgeConnected?e:{...e,replBridgeConnected:!0});return}let o=a.current;switch(e){case`ready`:p(e=>{let t=o&&o.environmentId!==``?Ss(o.environmentId,o.sessionIngressUrl):e.replBridgeConnectUrl,n=o?wi(o.bridgeSessionId,o.sessionIngressUrl):e.replBridgeSessionUrl,r=o?.environmentId,i=o?.bridgeSessionId;return e.replBridgeConnected&&!e.replBridgeSessionActive&&!e.replBridgeReconnecting&&e.replBridgeConnectUrl===t&&e.replBridgeSessionUrl===n&&e.replBridgeEnvironmentId===r&&e.replBridgeSessionId===i?e:{...e,replBridgeConnected:!0,replBridgeSessionActive:!1,replBridgeReconnecting:!1,replBridgeConnectUrl:t,replBridgeSessionUrl:n,replBridgeEnvironmentId:r,replBridgeSessionId:i,replBridgeError:void 0}});break;case`connected`:{let e=_.getState().replBridgeSessionActive;p(e=>e.replBridgeSessionActive?e:{...e,replBridgeConnected:!0,replBridgeSessionActive:!0,replBridgeReconnecting:!1,replBridgeError:void 0}),e||t(e=>[...e,Td(`Remote Control 已连接。现在可以使用 PushNotification、SendUserFile、Brief 工具,请使用 SearchExtraTools 搜索发现。`,`info`)]);break}case`reconnecting`:p(e=>e.replBridgeReconnecting?e:{...e,replBridgeReconnecting:!0,replBridgeSessionActive:!1});break;case`failed`:clearTimeout(d.current),i(n),p(e=>({...e,replBridgeError:n,replBridgeReconnecting:!1,replBridgeSessionActive:!1,replBridgeConnected:!1})),d.current=setTimeout(()=>{m||(d.current=void 0,p(e=>e.replBridgeError?{...e,replBridgeEnabled:!1,replBridgeError:void 0}:e))},Ey);break}}let w=new Map;function T(e){let t=e.response?.request_id;if(!t)return;let n=w.get(t);if(!n){Y(`[bridge:repl] No handler for control_response request_id=${t}`);return}let r=my(e);if(!r){Y(`[bridge:repl] Ignoring unrecognized control_response request_id=${t}`);return}w.delete(t),n(r)}let E=await v({outboundOnly:r,tags:r?[`ccr-mirror`]:void 0,onInboundMessage:x,onPermissionResponse:T,onInterrupt(){hy(n.current)},onSetModel(e){let t=e==="default"?null:e??null;Ke(t),p(e=>e.mainLoopModelForSession===t?e:{...e,mainLoopModelForSession:t})},onSetMaxThinkingTokens(e){let t=e!==null;p(e=>e.thinkingEnabled===t?e:{...e,thinkingEnabled:t})},onSetPermissionMode(e){if(e===`bypassPermissions`){if(ln())return{ok:!1,error:`Cannot set permission mode to bypassPermissions because it is disabled by settings or configuration`};if(!_.getState().toolPermissionContext.isBypassPermissionsModeAvailable)return{ok:!1,error:`Cannot set permission mode to bypassPermissions because the session was not launched with --dangerously-skip-permissions`}}if(e===`auto`&&!_n()){let e=fd();return{ok:!1,error:e?`Cannot set permission mode to auto: ${Cs(e)}`:`Cannot set permission mode to auto`}}return p(t=>{let n=t.toolPermissionContext.mode;if(n===e)return t;let r=Ui(n,e,t.toolPermissionContext);return{...t,toolPermissionContext:{...r,mode:e}}}),{ok:!0}},onStateChange:S,initialMessages:e.length>0?e:void 0,getMessages:()=>g.current,previouslyFlushedUUIDs:u.current,initialName:C,perpetual:b}),D=E?{...E,markTranscriptReset(){l.current=!0,c.current=!1,s.current=0}}:null;if(m){Y(`[bridge:repl] Hook: init cancelled during flight, tearing down${D?` env=${D.environmentId}`:``}`),D&&D.teardown();return}if(!D){f.current++,Y(`[bridge:repl] Init returned null (precondition or session creation failed); consecutive failures: ${f.current}`),clearTimeout(d.current),p(e=>({...e,replBridgeError:e.replBridgeError??`check debug logs for details`})),d.current=setTimeout(()=>{m||(d.current=void 0,p(e=>e.replBridgeError?{...e,replBridgeEnabled:!1,replBridgeError:void 0}:e))},Ey);return}if(a.current=D,i_(D),f.current=0,s.current=h,r)p(e=>e.replBridgeConnected&&e.replBridgeSessionId===D.bridgeSessionId?e:{...e,replBridgeConnected:!0,replBridgeSessionId:D.bridgeSessionId,replBridgeSessionUrl:void 0,replBridgeConnectUrl:void 0,replBridgeError:void 0}),Y(`[bridge:repl] Mirror initialized, session=${D.bridgeSessionId}`);else{let e={sendRequest(e,t,n,r,i,a,o){D.sendControlRequest({type:`control_request`,request_id:e,request:{subtype:`can_use_tool`,tool_name:t,input:n,tool_use_id:r,description:i,...a?{permission_suggestions:a}:{},...o?{blocked_path:o}:{}}})},sendResponse(e,t){let n={...t};D.sendControlResponse({type:`control_response`,response:{subtype:`success`,request_id:e,response:n}})},cancelRequest(e){D.sendControlCancelRequest(e)},onResponse(e,t){return w.set(e,t),()=>{w.delete(e)}}};p(t=>({...t,replBridgePermissionCallbacks:e}));let n=wi(D.bridgeSessionId,D.sessionIngressUrl),r=D.environmentId===``?void 0:Ss(D.environmentId,D.sessionIngressUrl);p(e=>e.replBridgeConnected&&e.replBridgeSessionUrl===n?e:{...e,replBridgeConnected:!0,replBridgeSessionUrl:n,replBridgeConnectUrl:r??e.replBridgeConnectUrl,replBridgeEnvironmentId:D.environmentId,replBridgeSessionId:D.bridgeSessionId,replBridgeError:void 0});let i=!b&&await y().catch(()=>!1);if(m)return;t(e=>[...e,yl(n,i?`Please upgrade to the latest version of the Claude mobile app to see your Remote Control sessions.`:void 0)]),Y(`[bridge:repl] Hook initialized, session=${D.bridgeSessionId}`)}}catch(e){if(m)return;f.current++;let n=Jd(e);Y(`[bridge:repl] Init failed: ${n}; consecutive failures: ${f.current}`),clearTimeout(d.current),i(n),p(e=>({...e,replBridgeError:n})),d.current=setTimeout(()=>{m||(d.current=void 0,p(e=>e.replBridgeError?{...e,replBridgeEnabled:!1,replBridgeError:void 0}:e))},Ey),r||t(e=>[...e,Td(`Remote Control failed to connect: ${n}`,`warning`)])}})(),()=>{m=!0,clearTimeout(d.current),d.current=void 0,a.current&&(Y(`[bridge:repl] Hook cleanup: starting teardown for env=${a.current.environmentId} session=${a.current.bridgeSessionId}`),o.current=a.current.teardown(),a.current=null,i_(null)),p(e=>!e.replBridgeConnected&&!e.replBridgeSessionActive&&!e.replBridgeError?e:{...e,replBridgeConnected:!1,replBridgeSessionActive:!1,replBridgeReconnecting:!1,replBridgeConnectUrl:void 0,replBridgeSessionUrl:void 0,replBridgeEnvironmentId:void 0,replBridgeSessionId:void 0,replBridgeError:void 0,replBridgePermissionCallbacks:void 0}),s.current=0,c.current=!1,l.current=!1}}},[y,S,p,t,v]),(0,Q.useEffect)(()=>{{if(!b)return;let t=a.current;if(!t)return;s.current>e.length&&Y(`[bridge:repl] Compaction detected: lastWrittenIndex=${s.current} > messages.length=${e.length}, clamping`);let n=Math.min(s.current,e.length),r=[];for(let t=n;t<e.length;t++){let n=e[t];n&&(n.type===`user`||n.type===`assistant`||n.type===`system`&&n.subtype===`local_command`)&&r.push(n)}if(s.current=e.length,r.length>0&&(t.writeMessages(r),l.current=!1),c.current&&_y(l.current,e.length)){l.current=!1,c.current=!1,t.sendResult();return}c.current&&!l.current&&(c.current=!1,t.sendResult())}},[e,b]),(0,Q.useEffect)(()=>{{if(!x||S)return;let e=!1,t,n,r=null,i=null,o=null,s=null,c=e=>{if(!(e===i&&r!==null)){r?.close(),r=null,i=e;try{r=Ev(e,u),r.unref()}catch{}}},l=async()=>{let t=a.current;if(!t)return;let n=vn();c(un(n));try{let r=await Et(n);if(e||a.current!==t)return;let i=Sy(n,r);if(i===o&&t===s)return;t.writeSdkMessages([Cy(n,r)]),o=i,s=t}catch(e){Y(`[bridge:repl] Failed to publish task_state: ${Jd(e)}`,{level:`error`})}},u=()=>{t&&clearTimeout(t),t=setTimeout(()=>{t=void 0,l()},wy),t.unref?.()};l();let d=Bc(u);return n=setInterval(()=>{l()},Ty),n.unref?.(),()=>{e=!0,d(),t&&clearTimeout(t),n&&clearInterval(n),r?.close()}}},[x,S]),{sendBridgeResult:(0,Q.useCallback)(()=>{{let e=a.current;if(!e){c.current=!0;return}if(_y(l.current,g.current.length)){l.current=!1,c.current=!1,e.sendResult();return}if(l.current||vy({hasHandle:!0,isConnected:b,lastWrittenIndex:s.current,messageCount:g.current.length})){c.current=!0;return}e.sendResult()}},[b])}}Ru(),$o(),iu(),hr(),Nn(),yg(),hg(),bp();var ky=Te(()=>ye({method:xe(`log_event`),params:ye({eventName:be(),eventData:ye({}).passthrough()})}));function Ay(e){(0,Q.useEffect)(()=>{if(!e.length)return;let t=Ma(e);t&&t.client.setNotificationHandler(ky(),e=>{let{eventName:t,eventData:n}=e.params;Z(`tengu_ide_${t}`,n)})},[e])}at(),B();var jy=6e3;function My(){return Date.now()-ze()}function Ny(e){return My()<e}function Py(e){return!Ny(e)}function Fy(e,t){let n=E();(0,Q.useEffect)(()=>{vt(!0)},[]),(0,Q.useEffect)(()=>{let r=!1,i=setInterval(()=>{Py(6e3)&&!r&&(r=!0,clearInterval(i),Gv({message:e,notificationType:t},n))},jy);return()=>clearInterval(i)},[e,t,n])}il(),ts(),xr(),ji(),Nt(),Hg(),B(),lc();var Iy={topLeft:`┌`,topRight:`┐`,bottomLeft:`└`,bottomRight:`┘`,horizontal:`─`,vertical:`│`,teeLeft:`├`,teeRight:`┤`};function Ly(e){return pd().syntaxHighlightingDisabled?(0,$.jsx)(zy,{...e,highlight:null}):(0,$.jsx)(Q.Suspense,{fallback:(0,$.jsx)(zy,{...e,highlight:null}),children:(0,$.jsx)(Ry,{...e})})}function Ry(e){let t=(0,Q.use)(bo());return(0,$.jsx)(zy,{...e,highlight:t})}function zy({content:e,maxLines:t,minHeight:n,minWidth:r=40,maxWidth:i,highlight:a}){let{columns:o}=de(),[s]=y(),c=i??o-4,l=t??20,u=(0,Q.useMemo)(()=>Hu(e,s,a),[e,s,a]).split(`
2
2
  `),d=u.length>l,f=d?u.slice(0,l):u,p=Math.max(0,Math.min(n??0,l)-f.length-+!!d),m=p>0?[...f,...Array(p).fill(``)]:f,h=Math.max(r,...m.map(e=>_(e))),v=Math.min(h+4,c),x=v-4,S=`${Iy.topLeft}${Iy.horizontal.repeat(v-2)}${Iy.topRight}`,C=`${Iy.bottomLeft}${Iy.horizontal.repeat(v-2)}${Iy.bottomRight}`,w=d?(()=>{let e=u.length-l,t=`${Iy.horizontal.repeat(3)} \u2702 ${Iy.horizontal.repeat(3)} ${e} lines hidden `,n=_(t),r=Math.max(0,v-2-n);return`${Iy.teeLeft}${t}${Iy.horizontal.repeat(r)}${Iy.teeRight}`})():null;return(0,$.jsxs)(b,{flexDirection:`column`,children:[(0,$.jsx)(T,{dimColor:!0,children:S}),m.map((e,t)=>{let n=_(e)>x?Ql(e,0,x):e,r=` `.repeat(Math.max(0,x-_(n)));return(0,$.jsxs)(b,{flexDirection:`row`,children:[(0,$.jsxs)(T,{dimColor:!0,children:[Iy.vertical,` `]}),(0,$.jsx)(g,{children:n}),(0,$.jsxs)(T,{dimColor:!0,children:[r,` `,Iy.vertical]})]},t)}),w&&(0,$.jsx)(T,{color:`warning`,children:w}),(0,$.jsx)(T,{dimColor:!0,children:C})]})}ms(),B(),Ep();function By({questions:e,currentQuestionIndex:t,answers:n,hideSubmitTab:r=!1}){let{columns:i}=de(),a=(0,Q.useMemo)(()=>{let n=r?``:` ${d.tick} Submit `,a=_(`← `)+_(` →`)+_(n),o=i-a;if(o<=0)return e.map((e,n)=>{let r=e?.header||`Q${n+1}`;return n===t?r.slice(0,3):``});let s=e.map((e,t)=>e?.header||`Q${t+1}`);if(s.map(e=>4+_(e)).reduce((e,t)=>e+t,0)<=o)return s;let c=4+_(s[t]||``),l=Math.min(c,o/2),u=o-l,f=e.length-1,p=Math.max(6,Math.floor(u/Math.max(f,1)));return s.map((e,n)=>n===t?Tp(e,l-2-2):Tp(e,p-2-2))},[e,t,i,r]),o=e.length===1&&r;return(0,$.jsxs)(b,{flexDirection:`row`,marginBottom:1,children:[!o&&(0,$.jsx)(T,{color:t===0?`inactive`:void 0,children:`← `}),e.map((e,r)=>{let i=r===t,o=e?.question&&n[e.question]?d.checkboxOn:d.checkboxOff,s=a[r]||e?.header||`Q${r+1}`;return(0,$.jsx)(b,{children:i?(0,$.jsxs)(T,{backgroundColor:`permission`,color:`inverseText`,children:[` `,o,` `,s,` `]}):(0,$.jsxs)(T,{children:[` `,o,` `,s,` `]})},e?.question||`question-${r}`)}),!r&&(0,$.jsx)(b,{children:t===e.length?(0,$.jsxs)(T,{backgroundColor:`permission`,color:`inverseText`,children:[` `,d.tick,` Submit`,` `]}):(0,$.jsxs)(T,{children:[` `,d.tick,` Submit `]})},`submit`),!o&&(0,$.jsx)(T,{color:t===e.length?`inactive`:void 0,children:` →`})]})}u(),ms(),B(),q(),mn();function Vy({question:e,questions:t,currentQuestionIndex:n,answers:r,questionStates:i,hideSubmitTab:a=!1,minContentHeight:o,minContentWidth:s,onUpdateQuestionState:c,onAnswer:l,onTextInputFocus:u,onCancel:f,onTabPrev:p,onTabNext:h,onRespondToClaude:g,onFinishPlanInterview:_}){let y=J(e=>e.toolPermissionContext.mode)===`plan`,[x,S]=(0,Q.useState)(!1),[C,w]=(0,Q.useState)(0),[E,D]=(0,Q.useState)(!1),[O,k]=(0,Q.useState)(0),ee=zg(),j=ee?In(ee):null,M=e.question,te=i[M],N=e.options,[P,F]=(0,Q.useState)(0),ne=(0,Q.useRef)(M);if(ne.current!==M){ne.current=M;let e=te?.selectedValue,t=e?N.findIndex(t=>t.label===e):-1;F(t>=0?t:0)}let re=N[P],I=te?.selectedValue,L=te?.textInputValue||``,ie=(0,Q.useCallback)(e=>{let t=N[e];t&&(F(e),c(M,{selectedValue:t.label},!1),l(M,t.label))},[N,M,c,l]),R=(0,Q.useCallback)(e=>{if(E)return;let t;t=typeof e==`number`?e:e===`up`?P>0?P-1:P:P<N.length-1?P+1:P,t>=0&&t<N.length&&F(t)},[P,N.length,E]);A(`chat:externalEditor`,async()=>{let e=te?.textInputValue||``,t=await Bg(e);t.content!==null&&t.content!==e&&c(M,{textInputValue:t.content},!1)},{context:`Chat`,isActive:E&&!!ee}),v({"tabs:previous":()=>p?.(),"tabs:next":()=>h?.()},{context:`Tabs`,isActive:!E&&!x});let z=(0,Q.useCallback)(()=>{D(!1),u(!1),I&&l(M,I)},[I,M,l,u]),ae=(0,Q.useCallback)(()=>{S(!0)},[]),oe=(0,Q.useCallback)(()=>{S(!1)},[]),se=(0,Q.useCallback)(e=>{if(x){if(e.key===`up`||e.ctrl&&e.key===`p`){e.preventDefault(),C===0?oe():w(0);return}if(e.key===`down`||e.ctrl&&e.key===`n`){e.preventDefault(),y&&C===0&&w(1);return}if(e.key===`return`){e.preventDefault(),C===0?g():_();return}e.key===`escape`&&(e.preventDefault(),f());return}if(E){e.key===`escape`&&(e.preventDefault(),z());return}if(e.key===`up`||e.ctrl&&e.key===`p`)e.preventDefault(),P>0&&R(`up`);else if(e.key===`down`||e.ctrl&&e.key===`n`)e.preventDefault(),P===N.length-1?ae():R(`down`);else if(e.key===`return`)e.preventDefault(),ie(P);else if(e.key===`n`&&!e.ctrl&&!e.meta)e.preventDefault(),D(!0),u(!0);else if(e.key===`escape`)e.preventDefault(),f();else if(e.key.length===1&&e.key>=`1`&&e.key<=`9`){e.preventDefault();let t=parseInt(e.key,10)-1;t<N.length&&R(t)}},[x,C,y,E,P,N.length,oe,ae,R,ie,z,g,_,f,u]),ce=re?.preview||null,{columns:le}=de(),ue=le-30-4,fe=(0,Q.useMemo)(()=>o?Math.max(1,o-11):void 0,[o]);return(0,$.jsxs)(b,{flexDirection:`column`,marginTop:1,tabIndex:0,autoFocus:!0,onKeyDown:se,children:[(0,$.jsx)(m,{color:`inactive`}),(0,$.jsxs)(b,{flexDirection:`column`,paddingTop:0,children:[(0,$.jsx)(By,{questions:t,currentQuestionIndex:n,answers:r,hideSubmitTab:a}),(0,$.jsx)(Jg,{title:e.question,color:`text`}),(0,$.jsxs)(b,{flexDirection:`column`,minHeight:o,children:[(0,$.jsxs)(b,{marginTop:1,flexDirection:`row`,gap:4,children:[(0,$.jsx)(b,{flexDirection:`column`,width:30,children:N.map((e,t)=>{let n=P===t,r=I===e.label;return(0,$.jsxs)(b,{flexDirection:`row`,children:[n?(0,$.jsx)(T,{color:`suggestion`,children:d.pointer}):(0,$.jsx)(T,{children:` `}),(0,$.jsxs)(T,{dimColor:!0,children:[` `,t+1,`.`]}),(0,$.jsxs)(T,{color:r?`success`:n?`suggestion`:void 0,bold:n,children:[` `,e.label]}),r&&(0,$.jsxs)(T,{color:`success`,children:[` `,d.tick]})]},e.label)})}),(0,$.jsxs)(b,{flexDirection:`column`,flexGrow:1,children:[(0,$.jsx)(Ly,{content:ce||`No preview available`,maxLines:fe,minWidth:s,maxWidth:ue}),(0,$.jsxs)(b,{marginTop:1,flexDirection:`row`,gap:1,children:[(0,$.jsx)(T,{color:`suggestion`,children:`Notes:`}),E?(0,$.jsx)(ia,{value:L,placeholder:`Add notes on this design…`,onChange:e=>{c(M,{textInputValue:e},!1)},onSubmit:z,onExit:z,focus:!0,showCursor:!0,columns:60,cursorOffset:O,onChangeCursorOffset:k}):(0,$.jsx)(T,{dimColor:!0,italic:!0,children:L||`press n to add notes`})]})]})]}),(0,$.jsxs)(b,{flexDirection:`column`,marginTop:1,children:[(0,$.jsx)(m,{color:`inactive`}),(0,$.jsxs)(b,{flexDirection:`row`,gap:1,children:[x&&C===0?(0,$.jsx)(T,{color:`suggestion`,children:d.pointer}):(0,$.jsx)(T,{children:` `}),(0,$.jsx)(T,{color:x&&C===0?`suggestion`:void 0,children:`Chat about this`})]}),y&&(0,$.jsxs)(b,{flexDirection:`row`,gap:1,children:[x&&C===1?(0,$.jsx)(T,{color:`suggestion`,children:d.pointer}):(0,$.jsx)(T,{children:` `}),(0,$.jsx)(T,{color:x&&C===1?`suggestion`:void 0,children:`Skip interview and plan immediately`})]})]}),(0,$.jsx)(b,{marginTop:1,children:(0,$.jsxs)(T,{color:`inactive`,dimColor:!0,children:[`Enter to select · `,d.arrowUp,`/`,d.arrowDown,` to navigate · n to add notes`,t.length>1&&(0,$.jsx)($.Fragment,{children:` · Tab to switch questions`}),E&&j&&(0,$.jsxs)($.Fragment,{children:[` · ctrl+g to edit in `,j]}),` · Esc to cancel`]})})]})]})]})}u(),B(),q(),Rg(),mn(),Hg(),dc(),Kg();function Hy({question:e,questions:t,currentQuestionIndex:n,answers:r,questionStates:i,hideSubmitTab:a=!1,planFilePath:o,minContentHeight:s,minContentWidth:c,onUpdateQuestionState:l,onAnswer:u,onTextInputFocus:f,onCancel:p,onSubmit:h,onTabPrev:g,onTabNext:_,onRespondToClaude:v,onFinishPlanInterview:y,onImagePaste:x,pastedContents:S,onRemoveImage:C}){let w=J(e=>e.toolPermissionContext.mode)===`plan`,[E,D]=(0,Q.useState)(!1),[O,k]=(0,Q.useState)(0),[ee,A]=(0,Q.useState)(!1),j=zg(),M=j?In(j):null,te=(0,Q.useCallback)(e=>{let t=e===`__other__`;A(t),f(t)},[f]),N=(0,Q.useCallback)(()=>{D(!0)},[]),P=(0,Q.useCallback)(()=>{D(!1)},[]),F=(0,Q.useCallback)(e=>{if(E){if(e.key===`up`||e.ctrl&&e.key===`p`){e.preventDefault(),O===0?P():k(0);return}if(e.key===`down`||e.ctrl&&e.key===`n`){e.preventDefault(),w&&O===0&&k(1);return}if(e.key===`return`){e.preventDefault(),O===0?v():y();return}e.key===`escape`&&(e.preventDefault(),p())}},[E,O,w,P,v,y,p]),ne=e.options.map(e=>({type:`text`,value:e.label,label:e.label,description:e.description})),re=e.question,I=i[re],L=(0,Q.useCallback)(async(t,n)=>{let r=await Bg(t);r.content!==null&&r.content!==t&&(n(r.content),l(re,{textInputValue:r.content},e.multiSelect??!1))},[re,l,e.multiSelect]),ie={type:`input`,value:`__other__`,label:`Other`,placeholder:e.multiSelect?`Type something`:`Type something.`,initialValue:I?.textInputValue??``,onChange:t=>{l(re,{textInputValue:t},e.multiSelect??!1)}},R=[...ne,ie];return!e.multiSelect&&e.options.some(e=>e.preview)?(0,$.jsx)(Vy,{question:e,questions:t,currentQuestionIndex:n,answers:r,questionStates:i,hideSubmitTab:a,minContentHeight:s,minContentWidth:c,onUpdateQuestionState:l,onAnswer:u,onTextInputFocus:f,onCancel:p,onTabPrev:g,onTabNext:_,onRespondToClaude:v,onFinishPlanInterview:y}):(0,$.jsxs)(b,{flexDirection:`column`,marginTop:0,tabIndex:0,autoFocus:!0,onKeyDown:F,children:[w&&o&&(0,$.jsxs)(b,{flexDirection:`column`,gap:0,children:[(0,$.jsx)(m,{color:`inactive`}),(0,$.jsxs)(T,{color:`inactive`,children:[`Planning: `,(0,$.jsx)(zo,{filePath:o})]})]}),(0,$.jsx)(b,{marginTop:-1,children:(0,$.jsx)(m,{color:`inactive`})}),(0,$.jsxs)(b,{flexDirection:`column`,paddingTop:0,children:[(0,$.jsx)(By,{questions:t,currentQuestionIndex:n,answers:r,hideSubmitTab:a}),(0,$.jsx)(Jg,{title:e.question,color:`text`}),(0,$.jsxs)(b,{flexDirection:`column`,minHeight:s,children:[(0,$.jsx)(b,{marginTop:1,children:e.multiSelect?(0,$.jsx)(Ec,{options:R,defaultValue:i[e.question]?.selectedValue,onChange:e=>{l(re,{selectedValue:e},!0);let t=e.includes(`__other__`)?i[re]?.textInputValue:void 0,n=e.filter(e=>e!==`__other__`).concat(t?[t]:[]);u(re,n,void 0,!1)},onFocus:te,onCancel:p,submitButtonText:n===t.length-1?`Submit`:`Next`,onSubmit:h,onDownFromLastItem:N,isDisabled:E,onOpenEditor:L,onImagePaste:x,pastedContents:S,onRemoveImage:C},e.question):(0,$.jsx)(eu,{options:R,defaultValue:i[e.question]?.selectedValue,onChange:e=>{l(re,{selectedValue:e},!1);let t=e===`__other__`?i[re]?.textInputValue:void 0;u(re,e,t)},onFocus:te,onCancel:p,onDownFromLastItem:N,isDisabled:E,layout:`compact-vertical`,onOpenEditor:L,onImagePaste:x,pastedContents:S,onRemoveImage:C},e.question)}),(0,$.jsxs)(b,{flexDirection:`column`,children:[(0,$.jsx)(m,{color:`inactive`}),(0,$.jsxs)(b,{flexDirection:`row`,gap:1,children:[E&&O===0?(0,$.jsx)(T,{color:`suggestion`,children:d.pointer}):(0,$.jsx)(T,{children:` `}),(0,$.jsxs)(T,{color:E&&O===0?`suggestion`:void 0,children:[R.length+1,`. Chat about this`]})]}),w&&(0,$.jsxs)(b,{flexDirection:`row`,gap:1,children:[E&&O===1?(0,$.jsx)(T,{color:`suggestion`,children:d.pointer}):(0,$.jsx)(T,{children:` `}),(0,$.jsxs)(T,{color:E&&O===1?`suggestion`:void 0,children:[R.length+2,`. Skip interview and plan immediately`]})]})]}),(0,$.jsx)(b,{marginTop:1,children:(0,$.jsxs)(T,{color:`inactive`,dimColor:!0,children:[`Enter to select ·`,` `,t.length===1?(0,$.jsxs)($.Fragment,{children:[d.arrowUp,`/`,d.arrowDown,` to navigate`]}):`Tab/Arrow keys to navigate`,ee&&M&&(0,$.jsxs)($.Fragment,{children:[` · ctrl+g to edit in `,M]}),` · Esc to cancel`]})})]})]})]})}function Uy(e,t){if(!e)return null;if(e.type===`classifier`)return e.classifier===`auto-mode`?{reasonString:`Auto mode classifier requires confirmation for this ${t}.\n${e.reason}`,configString:void 0,themeColor:`error`}:{reasonString:`Classifier ${H.bold(e.classifier)} requires confirmation for this ${t}.\n${e.reason}`,configString:void 0};switch(e.type){case`rule`:return{reasonString:`Permission rule ${H.bold(lf(e.rule.ruleValue))} requires confirmation for this ${t}.`,configString:e.rule.source===`policySettings`?void 0:`/permissions to update rules`};case`hook`:{let n=e.reason?`:\n${e.reason}`:`.`,r=e.hookSource?` ${H.dim(`[${e.hookSource}]`)}`:``;return{reasonString:`Hook ${H.bold(e.hookName)} requires confirmation for this ${t}${n}${r}`,configString:`/hooks to update`}}case`safetyCheck`:case`other`:return{reasonString:e.reason,configString:void 0};case`workingDir`:return{reasonString:e.reason,configString:`/permissions to update rules`};default:return null}}function Wy({permissionResult:e,toolType:t}){let n=J(e=>e.toolPermissionContext.mode),r=Uy(e?.decisionReason,t);if(!r)return null;let i=r.themeColor??(e?.decisionReason?.type===`hook`&&n===`auto`?`warning`:void 0);return(0,Gy.jsxs)(b,{marginBottom:1,flexDirection:`column`,children:[i?(0,Gy.jsx)(T,{color:i,children:r.reasonString}):(0,Gy.jsx)(T,{children:(0,Gy.jsx)(g,{children:r.reasonString})}),r.configString&&(0,Gy.jsx)(T,{dimColor:!0,children:r.configString})]})}var Gy,Ky=t((()=>{z(),B(),q(),Gy=ve()}));u(),B(),dc(),Kg(),Ky();function qy({questions:e,currentQuestionIndex:t,answers:n,allQuestionsAnswered:r,permissionResult:i,minContentHeight:a,onFinalResponse:o}){return(0,$.jsxs)(b,{flexDirection:`column`,marginTop:1,children:[(0,$.jsx)(m,{color:`inactive`}),(0,$.jsxs)(b,{flexDirection:`column`,borderTop:!0,borderColor:`inactive`,paddingTop:0,children:[(0,$.jsx)(By,{questions:e,currentQuestionIndex:t,answers:n}),(0,$.jsx)(Jg,{title:`Review your answers`,color:`text`}),(0,$.jsxs)(b,{flexDirection:`column`,marginTop:1,minHeight:a,children:[!r&&(0,$.jsx)(b,{marginBottom:1,children:(0,$.jsxs)(T,{color:`warning`,children:[d.warning,` You have not answered all questions`]})}),Object.keys(n).length>0&&(0,$.jsx)(b,{flexDirection:`column`,marginBottom:1,children:e.filter(e=>e?.question&&n[e.question]).map(e=>{let t=n[e?.question];return(0,$.jsxs)(b,{flexDirection:`column`,marginLeft:1,children:[(0,$.jsxs)(T,{children:[d.bullet,` `,e?.question||`Question`]}),(0,$.jsx)(b,{marginLeft:2,children:(0,$.jsxs)(T,{color:`success`,children:[d.arrowRight,` `,t]})})]},e?.question||`answer`)})}),(0,$.jsx)(Wy,{permissionResult:i,toolType:`tool`}),(0,$.jsx)(T,{color:`inactive`,children:`Ready to submit your answers?`}),(0,$.jsx)(b,{marginTop:1,children:(0,$.jsx)(eu,{options:[{type:`text`,label:`Submit answers`,value:`submit`},{type:`text`,label:`Cancel`,value:`cancel`}],onChange:e=>o(e),onCancel:()=>o(`cancel`)})})]})]})]})}function Jy(e,t){switch(t.type){case`next-question`:return{...e,currentQuestionIndex:e.currentQuestionIndex+1,isInTextInput:!1};case`prev-question`:return{...e,currentQuestionIndex:Math.max(0,e.currentQuestionIndex-1),isInTextInput:!1};case`update-question-state`:{let n=e.questionStates[t.questionText],r={selectedValue:t.updates.selectedValue??n?.selectedValue??(t.isMultiSelect?[]:void 0),textInputValue:t.updates.textInputValue??n?.textInputValue??``};return{...e,questionStates:{...e.questionStates,[t.questionText]:r}}}case`set-answer`:{let n={...e,answers:{...e.answers,[t.questionText]:t.answer}};return t.shouldAdvance?{...n,currentQuestionIndex:n.currentQuestionIndex+1,isInTextInput:!1}:n}case`set-text-input-mode`:return{...e,isInTextInput:t.isInInput}}}var Yy={currentQuestionIndex:0,answers:{},questionStates:{},isInTextInput:!1};function Xy(){let[e,t]=(0,Q.useReducer)(Jy,Yy),n=(0,Q.useCallback)(()=>{t({type:`next-question`})},[]),r=(0,Q.useCallback)(()=>{t({type:`prev-question`})},[]),i=(0,Q.useCallback)((e,n,r)=>{t({type:`update-question-state`,questionText:e,updates:n,isMultiSelect:r})},[]),a=(0,Q.useCallback)((e,n,r=!0)=>{t({type:`set-answer`,questionText:e,answer:n,shouldAdvance:r})},[]),o=(0,Q.useCallback)(e=>{t({type:`set-text-input-mode`,isInInput:e})},[]);return{currentQuestionIndex:e.currentQuestionIndex,answers:e.answers,questionStates:e.questionStates,isInTextInput:e.isInTextInput,nextQuestion:n,prevQuestion:r,updateQuestionState:i,setAnswer:a,setTextInputMode:o}}ws(),ms(),B(),Ah(),bp(),q(),ao(),np(),Us();var Zy=12,Qy=40,$y=15;function eb(e){return pd().syntaxHighlightingDisabled?(0,$.jsx)(nb,{...e,highlight:null}):(0,$.jsx)(Q.Suspense,{fallback:(0,$.jsx)(nb,{...e,highlight:null}),children:(0,$.jsx)(tb,{...e})})}function tb(e){let t=(0,Q.use)(bo());return(0,$.jsx)(nb,{...e,highlight:t})}function nb({toolUseConfirm:e,onDone:t,onReject:n,highlight:r}){let i=(0,Q.useMemo)(()=>Vt.inputSchema.safeParse(e.input),[e.input]),a=i.success&&i.data.questions||[],{rows:o}=de(),[s]=y(),{globalContentHeight:c,globalContentWidth:l}=(0,Q.useMemo)(()=>{let e=0,t=0,n=Math.max(Zy,o-$y);for(let i of a)if(i.options.some(e=>e.preview)){let a=Math.max(1,n-11),o=0;for(let e of i.options)if(e.preview){let n=Hu(e.preview,s,r).split(`
3
3
  `),i=n.length>a,c=i?a:n.length;o=Math.max(o,c+ +!!i+2);for(let e of n)t=Math.max(t,_(e))}let c=o+2,l=i.options.length+2;e=Math.max(e,Math.max(l,c)+7)}else e=Math.max(e,i.options.length+3+7);return{globalContentHeight:Math.min(Math.max(e,Zy),n),globalContentWidth:Math.max(t,Qy)}},[a,o,s,r]),u=i.success?i.data.metadata?.source:void 0,[d,f]=(0,Q.useState)({}),p=(0,Q.useRef)(0);function m(e,t,n,r,i,a){let o=p.current++,s={id:o,type:`image`,content:t,mediaType:n||`image/png`,filename:r||`Pasted image`,dimensions:i};An(s),It(s),f(t=>({...t,[e]:{...t[e]??{},[o]:s}}))}let h=(0,Q.useCallback)((e,t)=>{f(n=>{let r={...n[e]??{}};return delete r[t],{...n,[e]:r}})},[]),g=Object.values(d).flatMap(e=>Object.values(e)).filter(e=>e.type===`image`),b=J(e=>e.toolPermissionContext.mode)===`plan`,x=b?ol():void 0,{currentQuestionIndex:S,answers:C,questionStates:w,isInTextInput:T,nextQuestion:E,prevQuestion:D,updateQuestionState:O,setAnswer:k,setTextInputMode:ee}=Xy(),A=S<(a?.length||0)?a?.[S]:null,j=S===(a?.length||0),M=a?.every(e=>e?.question&&!!C[e.question])??!1,te=a.length===1&&!a[0]?.multiSelect,N=(0,Q.useCallback)(()=>{u&&Z(`tengu_ask_user_question_rejected`,{source:u,questionCount:a.length,isInPlanMode:b,interviewPhaseEnabled:b&&ti()}),t(),n(),e.onReject()},[t,n,e,u,a.length,b]),P=(0,Q.useCallback)(async()=>{let n=`The user wants to clarify these questions.
4
4
  This means they may have additional information, context or questions for you.
@@ -68,7 +68,7 @@ Parse the user's input into ISO 8601 format. Return ONLY the formatted string, o
68
68
  `)&&(a+=`
69
69
  `),r.setRegister(a,i),e===`yank`)r.setOffset(t);else if(e===`delete`){let e=r.text.slice(0,t)+r.text.slice(n);r.setText(e);let i=Math.max(0,e.length-(xp(e).length||1));r.setOffset(Math.min(t,i))}else if(e===`change`){let e=r.text.slice(0,t)+r.text.slice(n);r.setText(e),r.enterInsert(t)}}function jT(e,t,n){let r=t===1?n.cursor.startOfLastLine():n.cursor.goToLine(t);if(r.equals(n.cursor))return;let i=OT(n.cursor,r,`G`,e,t);AT(e,i.from,i.to,n,i.linewise),n.recordChange({type:`operator`,op:e,motion:`G`,count:t})}function MT(e,t,n){let r=t===1?n.cursor.startOfFirstLine():n.cursor.goToLine(t);if(r.equals(n.cursor))return;let i=OT(n.cursor,r,`gg`,e,t);AT(e,i.from,i.to,n,i.linewise),n.recordChange({type:`operator`,op:e,motion:`gg`,count:t})}var NT={d:`delete`,c:`change`,y:`yank`};function PT(e){return e in NT}var FT=new Set([`h`,`l`,`j`,`k`,`w`,`b`,`e`,`W`,`B`,`E`,`0`,`^`,`$`]),IT=new Set([`f`,`F`,`t`,`T`]),LT={i:`inner`,a:`around`};function RT(e){return e in LT}var zT=new Set([`w`,`W`,`"`,`'`,"`",`(`,`)`,`b`,`[`,`]`,`{`,`}`,`B`,`<`,`>`]),BT=1e4;function VT(){return{mode:`INSERT`,insertedText:``}}function HT(){return{lastChange:null,lastFind:null,register:``,registerIsLinewise:!1}}function UT(e,t,n){switch(e.type){case`idle`:return KT(t,n);case`count`:return qT(e,t,n);case`operator`:return JT(e,t,n);case`operatorCount`:return YT(e,t,n);case`operatorFind`:return XT(e,t,n);case`operatorTextObj`:return ZT(e,t,n);case`find`:return QT(e,t,n);case`g`:return $T(e,t,n);case`operatorG`:return eE(e,t,n);case`replace`:return tE(e,t,n);case`indent`:return nE(e,t,n)}}function WT(e,t,n){return PT(e)?{next:{type:`operator`,op:NT[e],count:t}}:FT.has(e)?{execute:()=>{let r=sT(e,n.cursor,t);n.setOffset(r.offset)}}:IT.has(e)?{next:{type:`find`,find:e,count:t}}:e===`g`?{next:{type:`g`,count:t}}:e===`r`?{next:{type:`replace`,count:t}}:e===`>`||e===`<`?{next:{type:`indent`,dir:e,count:t}}:e===`~`?{execute:()=>ST(t,n)}:e===`x`?{execute:()=>bT(t,n)}:e===`J`?{execute:()=>CT(t,n)}:e===`p`||e===`P`?{execute:()=>wT(e===`p`,t,n)}:e===`D`?{execute:()=>gT(`delete`,`$`,1,n)}:e===`C`?{execute:()=>gT(`change`,`$`,1,n)}:e===`Y`?{execute:()=>yT(`yank`,t,n)}:e===`G`?{execute:()=>{t===1?n.setOffset(n.cursor.startOfLastLine().offset):n.setOffset(n.cursor.goToLine(t).offset)}}:e===`.`?{execute:()=>n.onDotRepeat?.()}:e===`;`||e===`,`?{execute:()=>rE(e===`,`,t,n)}:e===`u`?{execute:()=>n.onUndo?.()}:e===`i`?{execute:()=>n.enterInsert(n.cursor.offset)}:e===`I`?{execute:()=>n.enterInsert(n.cursor.firstNonBlankInLogicalLine().offset)}:e===`a`?{execute:()=>{let e=n.cursor.isAtEnd()?n.cursor.offset:n.cursor.right().offset;n.enterInsert(e)}}:e===`A`?{execute:()=>n.enterInsert(n.cursor.endOfLogicalLine().offset)}:e===`o`?{execute:()=>ET(`below`,n)}:e===`O`?{execute:()=>ET(`above`,n)}:null}function GT(e,t,n,r){return RT(n)?{next:{type:`operatorTextObj`,op:e,count:t,scope:LT[n]}}:IT.has(n)?{next:{type:`operatorFind`,op:e,count:t,find:n}}:FT.has(n)?{execute:()=>gT(e,n,t,r)}:n===`G`?{execute:()=>jT(e,t,r)}:n===`g`?{next:{type:`operatorG`,op:e,count:t}}:null}function KT(e,t){return/[1-9]/.test(e)?{next:{type:`count`,digits:e}}:e===`0`?{execute:()=>t.setOffset(t.cursor.startOfLogicalLine().offset)}:WT(e,1,t)||{}}function qT(e,t,n){if(/[0-9]/.test(t)){let n=e.digits+t;return{next:{type:`count`,digits:String(Math.min(parseInt(n,10),BT))}}}return WT(t,parseInt(e.digits,10),n)||{next:{type:`idle`}}}function JT(e,t,n){return t===e.op[0]?{execute:()=>yT(e.op,e.count,n)}:/[0-9]/.test(t)?{next:{type:`operatorCount`,op:e.op,count:e.count,digits:t}}:GT(e.op,e.count,t,n)||{next:{type:`idle`}}}function YT(e,t,n){if(/[0-9]/.test(t)){let n=e.digits+t,r=Math.min(parseInt(n,10),BT);return{next:{...e,digits:String(r)}}}let r=parseInt(e.digits,10),i=e.count*r;return GT(e.op,i,t,n)||{next:{type:`idle`}}}function XT(e,t,n){return{execute:()=>_T(e.op,e.find,t,e.count,n)}}function ZT(e,t,n){return zT.has(t)?{execute:()=>vT(e.op,e.scope,t,e.count,n)}:{next:{type:`idle`}}}function QT(e,t,n){return{execute:()=>{let r=n.cursor.findCharacter(t,e.find,e.count);r!==null&&(n.setOffset(r),n.setLastFind(e.find,t))}}}function $T(e,t,n){return t===`j`||t===`k`?{execute:()=>{let r=sT(`g${t}`,n.cursor,e.count);n.setOffset(r.offset)}}:t===`g`?e.count>1?{execute:()=>{let t=n.text.split(`
70
70
  `),r=Math.min(e.count-1,t.length-1),i=0;for(let e=0;e<r;e++)i+=(t[e]?.length??0)+1;n.setOffset(i)}}:{execute:()=>n.setOffset(n.cursor.startOfFirstLine().offset)}:{next:{type:`idle`}}}function eE(e,t,n){return t===`j`||t===`k`?{execute:()=>gT(e.op,`g${t}`,e.count,n)}:t===`g`?{execute:()=>MT(e.op,e.count,n)}:{next:{type:`idle`}}}function tE(e,t,n){return t===``?{next:{type:`idle`}}:{execute:()=>xT(t,e.count,n)}}function nE(e,t,n){return t===e.dir?{execute:()=>TT(e.dir,e.count,n)}:{next:{type:`idle`}}}function rE(e,t,n){let r=n.getLastFind();if(!r)return;let i=r.type;e&&(i={f:`F`,F:`f`,t:`T`,T:`t`}[i]);let a=n.cursor.findCharacter(r.char,i,t);a!==null&&n.setOffset(a)}Rr(),Cp();function iE(e){let t=Q.useRef(VT()),[n,r]=(0,Q.useState)(`INSERT`),i=Q.useRef(HT()),a=xo({...e,inputFilter:void 0}),{onModeChange:o,inputFilter:s}=e,c=(0,Q.useCallback)(e=>{e!==void 0&&a.setOffset(e),t.current={mode:`INSERT`,insertedText:``},r(`INSERT`),o?.(`INSERT`)},[a,o]),l=(0,Q.useCallback)(()=>{let n=t.current;n.mode===`INSERT`&&n.insertedText&&(i.current.lastChange={type:`insert`,text:n.insertedText});let s=a.offset;s>0&&e.value[s-1]!==`
71
- `&&a.setOffset(s-1),t.current={mode:`NORMAL`,command:{type:`idle`}},r(`NORMAL`),o?.(`NORMAL`)},[o,a,e.value]);function u(t,n=!1){return{cursor:t,text:e.value,setText:t=>e.onChange(t),setOffset:e=>a.setOffset(e),enterInsert:e=>c(e),getRegister:()=>i.current.register,setRegister:(e,t)=>{i.current.register=e,i.current.registerIsLinewise=t},getLastFind:()=>i.current.lastFind,setLastFind:(e,t)=>{i.current.lastFind={type:e,char:t}},recordChange:n?()=>{}:e=>{i.current.lastChange=e}}}function d(){let t=i.current.lastChange;if(!t)return;let n=Xr.fromText(e.value,e.columns,a.offset),r=u(n,!0);switch(t.type){case`insert`:if(t.text){let r=n.insert(t.text);e.onChange(r.text),a.setOffset(r.offset)}break;case`x`:bT(t.count,r);break;case`replace`:xT(t.char,t.count,r);break;case`toggleCase`:ST(t.count,r);break;case`indent`:TT(t.dir,t.count,r);break;case`join`:CT(t.count,r);break;case`openLine`:ET(t.direction,r);break;case`operator`:gT(t.op,t.motion,t.count,r);break;case`operatorFind`:_T(t.op,t.find,t.char,t.count,r);break;case`operatorTextObj`:vT(t.op,t.scope,t.objType,t.count,r);break}}function f(n,r){let i=t.current,o=s?s(n,r):n,c=i.mode===`INSERT`?o:n,f=Xr.fromText(e.value,e.columns,a.offset);if(r.ctrl){a.onInput(c,r);return}if(r.escape&&i.mode===`INSERT`){l();return}if(r.escape&&i.mode===`NORMAL`){t.current={mode:`NORMAL`,command:{type:`idle`}};return}if(r.return){a.onInput(c,r);return}if(i.mode===`INSERT`){r.backspace||r.delete?i.insertedText.length>0&&(t.current={mode:`INSERT`,insertedText:i.insertedText.slice(0,-(xp(i.insertedText).length||1))}):t.current={mode:`INSERT`,insertedText:i.insertedText+c},a.onInput(c,r);return}if(i.mode!==`NORMAL`)return;if(i.command.type===`idle`&&(r.upArrow||r.downArrow||r.leftArrow||r.rightArrow)){a.onInput(c,r);return}let p={...u(f,!1),onUndo:e.onUndo,onDotRepeat:d},m=i.command.type===`idle`||i.command.type===`count`||i.command.type===`operator`||i.command.type===`operatorCount`,h=c;r.leftArrow?h=`h`:r.rightArrow?h=`l`:r.upArrow?h=`k`:r.downArrow?h=`j`:m&&r.backspace?h=`h`:m&&i.command.type!==`count`&&r.delete&&(h=`x`);let g=UT(i.command,h,p);g.execute&&g.execute(),t.current.mode===`NORMAL`&&(g.next?t.current={mode:`NORMAL`,command:g.next}:g.execute&&(t.current={mode:`NORMAL`,command:{type:`idle`}})),c===`?`&&i.mode===`NORMAL`&&i.command.type===`idle`&&e.onChange(`?`)}let p=(0,Q.useCallback)(e=>{e===`INSERT`?t.current={mode:`INSERT`,insertedText:``}:t.current={mode:`NORMAL`,command:{type:`idle`}},r(e),o?.(e)},[o]);return{...a,onInput:f,mode:n,setMode:p}}L(),B();function aE(e){let[t]=y(),n=j();Qt(n,!!e.onImagePaste);let r=iE({value:e.value,onChange:e.onChange,onSubmit:e.onSubmit,onExit:e.onExit,onExitMessage:e.onExitMessage,onHistoryReset:e.onHistoryReset,onHistoryUp:e.onHistoryUp,onHistoryDown:e.onHistoryDown,onClearInput:e.onClearInput,focus:e.focus,mask:e.mask,multiline:e.multiline,cursorChar:e.showCursor?` `:``,highlightPastedText:e.highlightPastedText,invert:n?H.inverse:e=>e,themeText:ce(`text`,t),columns:e.columns,maxVisibleLines:e.maxVisibleLines,onImagePaste:e.onImagePaste,disableCursorMovementForUpDownKeys:e.disableCursorMovementForUpDownKeys,disableEscapeDoublePress:e.disableEscapeDoublePress,externalOffset:e.cursorOffset,onOffsetChange:e.onChangeCursorOffset,inputFilter:e.inputFilter,onModeChange:e.onModeChange,onUndo:e.onUndo}),{mode:i,setMode:a}=r;return Q.useEffect(()=>{e.initialMode&&e.initialMode!==i&&a(e.initialMode)},[e.initialMode,i,a]),(0,$.jsx)(b,{flexDirection:`column`,children:(0,$.jsx)(Tr,{inputState:r,terminalFocus:n,highlights:e.highlights,...e})})}bh(),zh(),Dn(),eg(),j_(),s();function oE(e){if(!e)return null;let t=e.input_tokens+e.cache_creation_input_tokens+e.cache_read_input_tokens;return t===0?null:Math.round(e.cache_read_input_tokens/t*100)}function sE(e){return`${e.input_tokens}|${e.cache_creation_input_tokens}|${e.cache_read_input_tokens}`}function cE(e){let t=Dv(`sha256`).update(e).digest(`hex`).slice(0,16);return Tv(o(),`cache-stats`,`${t}.json`)}var lE={version:1,signature:null,lastResetAt:null,lastHitRate:null};function uE(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.version===1&&(t.signature===null||typeof t.signature==`string`)&&(t.lastResetAt===null||typeof t.lastResetAt==`number`)&&(t.lastHitRate===null||typeof t.lastHitRate==`number`)}async function dE(e){try{let t=await Fv(e,`utf8`),n=JSON.parse(t);return uE(n)?n:{...lE}}catch{return{...lE}}}async function fE(e,t){await Pv(wv(e),{recursive:!0});let n=`${e}.${process.pid}.tmp`;try{await Lv(n,JSON.stringify(t),`utf8`),await Iv(n,e)}catch{}}var pE={signature:null,lastResetAt:null,lastHitRate:null},mE=null;async function hE(e){mE=e;let t=await dE(cE(e));pE={signature:t.signature,lastResetAt:t.lastResetAt,lastHitRate:t.lastHitRate}}function gE(e){let t=sE(e),n=oE(e);return t!==pE.signature&&(pE={signature:t,lastResetAt:Date.now(),lastHitRate:n},mE!==null&&fE(cE(mE),{version:1,signature:t,lastResetAt:pE.lastResetAt,lastHitRate:n})),{...pE}}function _E(){return{...pE}}B(),Ep(),ms();function vE(e){let t=e-Date.now()/1e3;if(t<=0)return`now`;let n=Math.floor(t/86400),r=Math.floor(t%86400/3600),i=Math.floor(t%3600/60);return n>=1?`${n}d${r}h`:r>=1?`${r}h${i}m`:`${i}m`}function yE(){return(0,$.jsx)(T,{dimColor:!0,children:` │ `})}function bE({modelName:e,contextUsedPct:t,usedTokens:n,contextWindowSize:r,totalCostUsd:i,rateLimits:a}){let{columns:o}=de(),[s,c]=(0,Q.useState)(0);(0,Q.useEffect)(()=>{if(!((a.five_hour?.resets_at??0)||(a.seven_day?.resets_at??0)))return;let e=setInterval(()=>c(e=>e+1),6e4);return()=>clearInterval(e)},[a.five_hour?.resets_at,a.seven_day?.resets_at]);let l=e.split(` `),u=l.length>=2?`${l[0]} ${l[1]}`:e,d=o<60,f=a.five_hour!=null,p=a.seven_day!=null,m=f?Math.round(a.five_hour.utilization*100):0,h=p?Math.round(a.seven_day.utilization*100):0,g=`${Ap(n)}/${Ap(r)}`;return(0,$.jsxs)(b,{children:[(0,$.jsx)(T,{children:u}),(0,$.jsx)(yE,{}),(0,$.jsx)(T,{dimColor:!0,children:`Context `}),(0,$.jsxs)(T,{children:[t,`%`]}),!d&&(0,$.jsxs)(T,{dimColor:!0,children:[` (`,g,`)`]}),f&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(yE,{}),(0,$.jsx)(T,{dimColor:!0,children:`Session `}),(0,$.jsxs)(T,{children:[m,`%`]}),!d&&a.five_hour.resets_at>0&&(0,$.jsxs)(T,{dimColor:!0,children:[` `,vE(a.five_hour.resets_at)]})]}),p&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(yE,{}),(0,$.jsx)(T,{dimColor:!0,children:`Weekly `}),(0,$.jsxs)(T,{children:[h,`%`]}),!d&&a.seven_day.resets_at>0&&(0,$.jsxs)(T,{dimColor:!0,children:[` `,vE(a.seven_day.resets_at)]})]}),i>0&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(yE,{}),(0,$.jsx)(T,{children:vu(i)})]})]})}var xE=Q.memo(bE);bp(),q(),at(),Rt(),zl(),Gg(),ws(),B(),Rf(),Qp(),Wd(),tf(),wd(),zd(),rm(),Jc(),dn(),Ep();var SE=3600*1e3;function CE(e){return String(Math.floor(e)).padStart(2,`0`)}function wE(e){if(e<=0)return`exp`;let t=Math.floor(e/6e4),n=Math.floor(e%6e4/1e3);return`${CE(t)}:${CE(n)}`}function TE({messages:e}){let[t,n]=(0,Q.useState)(()=>Date.now()),[r,i]=(0,Q.useState)(!0),a=Ra(e),o=(0,Q.useRef)(null);if(a!==null){let e=sE(a);e!==o.current&&(o.current=e,gE(a))}let{lastResetAt:s,lastHitRate:c}=_E(),l=s===null?null:t-s,u=l===null?null:SE-l,d=l===null?null:l/6e4,f=u!==null&&u<=0;(0,Q.useEffect)(()=>{let e=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(e)},[]);let p=d!==null&&d>=55&&!f;(0,Q.useEffect)(()=>{if(!p){i(!0);return}let e=setInterval(()=>i(e=>!e),500);return()=>clearInterval(e)},[p]);let m=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{m.current||(m.current=!0,hE(st()))},[]);let h=a===null?c:oE(a);if(h===null&&s===null)return(0,$.jsx)(T,{dimColor:!0,children:` Cache --% --:--`});let g=u===null?`--:--`:wE(u),_=h===null?`--%`:`${h}%`,v;return v=f||d===null?`inactive`:d<20?`success`:d<40?`warning`:`error`,(0,$.jsxs)(T,{children:[(0,$.jsx)(T,{dimColor:!0,children:` Cache `}),(0,$.jsx)(T,{color:h!==null&&h>=50?`success`:`inactive`,children:_}),(0,$.jsxs)(T,{color:v,dimColor:p&&!r,children:[` `,g]})]})}function EE(){let{getGoal:t,formatGoalStatusLabel:n}=(us(),e(Sc)),r=t();if(!r)return null;let i=r.objective.length>30?`${r.objective.slice(0,27)}…`:r.objective,a=r.tokenBudget===null?Ap(r.tokensUsed):`${Ap(r.tokensUsed)}/${Ap(r.tokenBudget)}`,o=n(r.status),s;switch(r.status){case`active`:s=(0,$.jsx)(T,{color:`ansi:green`,children:o});break;case`paused`:case`budget_limited`:case`usage_limited`:s=(0,$.jsx)(T,{color:`ansi:yellow`,children:o});break;case`blocked`:s=(0,$.jsx)(T,{color:`ansi:red`,children:o});break;case`complete`:s=(0,$.jsx)(T,{color:`ansi:cyan`,children:o});break;default:s=(0,$.jsx)(T,{children:o})}return(0,$.jsxs)(T,{children:[s,(0,$.jsx)(T,{dimColor:!0,children:` · `}),(0,$.jsx)(T,{dimColor:!0,children:i}),(0,$.jsx)(T,{dimColor:!0,children:` · `}),(0,$.jsx)(T,{children:a})]})}function DE(e){return Fe()||e?.statusLineEnabled===!1?!1:e?.statusLineEnabled===!0||!!e?.statusLine?.command}function OE(e,t,n,r,i,a,o){let s=$e(),c=on(),l=fm({permissionMode:e,mainLoopModel:a,exceeds200kTokens:t}),u=n?.outputStyle||`default`,d=Ra(r),f=tm(l,pt()),p=Up(d,f),m=xl(st()),h=Jn(),g={...h.five_hour&&{five_hour:{used_percentage:h.five_hour.utilization*100,resets_at:h.five_hour.resets_at}},...h.seven_day&&{seven_day:{used_percentage:h.seven_day.utilization*100,resets_at:h.seven_day.resets_at}}};return{...Hn(),...m&&{session_name:m},model:{id:l,display_name:em(l)},workspace:{current_dir:Gd(),project_dir:ut(),added_dirs:i},version:`0.0.5`,output_style:{name:u},cost:{total_cost_usd:lt(),total_duration_ms:Ae(),total_api_duration_ms:Ge(),total_lines_added:Be(),total_lines_removed:Ve()},context_window:{total_input_tokens:ct(),total_output_tokens:He(),context_window_size:f,current_usage:d,used_percentage:p.used,remaining_percentage:p.remaining},exceeds_200k_tokens:t,...(g.five_hour||g.seven_day)&&{rate_limits:g},...O_()&&{vim:{mode:o??`INSERT`}},...s&&{agent:{name:s}},...je()&&{remote:{session_id:st()}},...c&&{worktree:{name:c.worktreeName,path:c.worktreePath,branch:c.worktreeBranch,original_cwd:c.originalCwd,original_branch:c.originalBranch}}}}function kE(e){return nl(e)?.uuid??null}function AE({messagesRef:e,lastAssistantMessageId:t,vimMode:n}){let r=(0,Q.useRef)(void 0),i=J(e=>e.toolPermissionContext.mode),a=J(e=>e.toolPermissionContext.additionalWorkingDirectories),o=J(e=>e.statusLineText),s=Vr(),c=pd(),{addNotification:l}=lo(),u=Wg(),d=(0,Q.useRef)(c);d.current=c;let f=(0,Q.useRef)(n);f.current=n;let p=(0,Q.useRef)(i);p.current=i;let m=(0,Q.useRef)(a);m.current=a;let h=(0,Q.useRef)(u);h.current=u;let _=(0,Q.useRef)({messageId:null,exceeds200kTokens:!1,permissionMode:i,vimMode:n,mainLoopModel:u}),v=(0,Q.useRef)(void 0),y=(0,Q.useRef)(!0),x=(0,Q.useCallback)(async()=>{r.current?.abort();let t=new AbortController;r.current=t;let n=e.current,i=y.current;if(y.current=!1,d.current?.statusLine?.command)try{let e=_.current.exceeds200kTokens,r=kE(n);r!==_.current.messageId&&(e=Zt(n),_.current.messageId=r,_.current.exceeds200kTokens=e);let a=await Zs(OE(p.current,e,d.current,n,Array.from(m.current.keys()),h.current,f.current),t.signal,void 0,i);t.signal.aborted||s(e=>e.statusLineText===a?e:{...e,statusLineText:a})}catch{}},[e,s]),S=(0,Q.useCallback)(()=>{v.current!==void 0&&clearTimeout(v.current),v.current=setTimeout((e,t)=>{e.current=void 0,t()},300,v,x)},[x]);(0,Q.useEffect)(()=>{(t!==_.current.messageId||i!==_.current.permissionMode||n!==_.current.vimMode||u!==_.current.mainLoopModel)&&(_.current.permissionMode=i,_.current.vimMode=n,_.current.mainLoopModel=u,S())},[t,i,n,u,S]);let C=c?.statusLine?.command,w=(0,Q.useRef)(!0);(0,Q.useEffect)(()=>{if(w.current){w.current=!1;return}y.current=!0,x()},[C,x]),(0,Q.useEffect)(()=>{let e=c?.statusLine;e&&(Z(`tengu_status_line_mount`,{command_length:e.command.length,padding:e.padding}),c.disableAllHooks===!0&&Y(`Status line is configured but disableAllHooks is true`,{level:`warn`}),Bf()||(l({key:`statusline-trust-blocked`,text:`statusline skipped · restart to fix`,color:`warning`,priority:`low`}),Y(`Status line command skipped: workspace trust not accepted`,{level:`warn`})))},[]),(0,Q.useEffect)(()=>(x(),()=>{r.current?.abort(),v.current!==void 0&&clearTimeout(v.current)}),[]);let E=c?.statusLine?.padding??0,D=fm({permissionMode:i,mainLoopModel:u,exceeds200kTokens:_.current.exceeds200kTokens}),O=tm(D,pt()),k=Ra(e.current),ee=k?k.input_tokens+k.cache_creation_input_tokens+k.cache_read_input_tokens:0,A=k?Math.round(Up(k,O).used??0):0,j=Jn(),M={...j.five_hour&&{five_hour:{utilization:j.five_hour.utilization,resets_at:j.five_hour.resets_at}},...j.seven_day&&{seven_day:{utilization:j.seven_day.utilization,resets_at:j.seven_day.resets_at}}},te=c?.statusLineEnabled===!0,N=!!c?.statusLine?.command;return(0,$.jsxs)(b,{flexDirection:`column`,paddingX:E,children:[te&&(0,$.jsxs)(b,{gap:2,children:[(0,$.jsx)(xE,{modelName:em(D),contextUsedPct:A,usedTokens:ee,contextWindowSize:O,totalCostUsd:lt(),rateLimits:M}),(0,$.jsx)(EE,{}),(0,$.jsx)(TE,{messages:e.current})]}),o?(0,$.jsx)(T,{dimColor:!0,wrap:`truncate`,children:(0,$.jsx)(g,{children:o})}):N&&oo()?(0,$.jsx)(T,{children:` `}):null]})}var jE=(0,Q.memo)(AE);u(),q(),Ft(),Rn(),B();function ME({tasksSelected:e,onOpenDialog:t}){let n=J(e=>e.tasks),r=(0,Q.useMemo)(()=>Object.values(n??{}).filter(e=>ei(e)&&!(process.env.USER_TYPE===`ant`&&xi(e))),[n]);return Z_(n??{},!1)||r.length===0?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(NE,{selected:e,onClick:t,children:Qi(r)}),yr(r)&&(0,$.jsxs)(T,{dimColor:!0,children:[` · `,d.arrowDown,` to view`]})]})}function NE({selected:e,onClick:t,children:n}){let[r,i]=(0,Q.useState)(!1),a=(0,$.jsx)(T,{color:`background`,inverse:e||r,children:n});return t?(0,$.jsx)(b,{onClick:t,onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),children:a}):a}B(),Wn();function PE({value:e,onChange:t,historyFailedMatch:n}){return(0,$.jsxs)(b,{gap:1,children:[(0,$.jsx)(T,{dimColor:!0,children:n?`no matching prompt:`:`search prompts:`}),(0,$.jsx)(ia,{value:e,onChange:t,cursorOffset:e.length,onChangeCursorOffset:()=>{},columns:_(e)+1,focus:!0,showCursor:!0,multiline:!1,dimColor:!0})]})}qf(),Hf(),Zd();var FE=5e3;function IE(e,t){if(e)return`draft`;switch(t){case`APPROVED`:return`approved`;case`CHANGES_REQUESTED`:return`changes_requested`;default:return`pending`}}async function LE(){if(!await Wf())return null;let[e,t]=await Promise.all([Gf(),Uf()]);if(e===t)return null;let{stdout:n,code:r}=await Jf(`gh`,[`pr`,`view`,`--json`,`number,url,reviewDecision,isDraft,headRefName,state`],{timeout:FE,preserveOutputOnError:!1});if(r!==0||!n.trim())return null;try{let e=Kd(n);return e.headRefName===t||e.headRefName===`main`||e.headRefName===`master`||e.state===`MERGED`||e.state===`CLOSED`?null:{number:e.number,url:e.url,reviewState:IE(e.isDraft,e.reviewDecision)}}catch{return null}}at();var RE=6e4,zE=4e3,BE=60*6e4,VE={number:null,url:null,reviewState:null,lastUpdated:0};function HE(e,t=!0){let[n,r]=(0,Q.useState)(VE),i=(0,Q.useRef)(null),a=(0,Q.useRef)(!1),o=(0,Q.useRef)(0);return(0,Q.useEffect)(()=>{if(!t||a.current)return;let e=!1,n=-1,s=Date.now();async function c(){if(e)return;let t=ze();if(n!==t)n=t,s=Date.now();else if(Date.now()-s>=BE)return;let l=Date.now(),u=await LE();if(!e){if(o.current=l,r(e=>{let t=u?.number??null,n=u?.reviewState??null;return e.number===t&&e.reviewState===n?e:{number:t,url:u?.url??null,reviewState:n,lastUpdated:Date.now()}}),Date.now()-l>zE){a.current=!0;return}e||(i.current=setTimeout(c,RE))}}let l=Date.now()-o.current;return l>=RE?c():i.current=setTimeout(c,RE-l),()=>{e=!0,i.current&&(clearTimeout(i.current),i.current=null)}},[e,t]),n}B(),u(),j_(),cn(),df(),hr(),Ft(),wf(),ev(),q(),at(),ms(),Ep(),dr(),Rf(),cp(),Ld();var UE=(dh(),e(eh)),WE=e=>()=>{},GE=()=>null,KE=5e3,qE=1e3;function JE(){let[e,t]=(0,Q.useState)(null);return(0,Q.useEffect)(()=>{function e(){let e=process.memoryUsage().rss/(1024*1024),n=e>=1024?`error`:e>=512?`warning`:`normal`,r=Dp(e*1024*1024);t(e=>e?.text===r?e:{text:r,level:n})}e();let n=setInterval(e,KE);return()=>clearInterval(n)},[]),e}function YE(){let e=(0,Q.useSyncExternalStore)(UE?.subscribeToProactiveChanges??WE,UE?.getNextTickAt??GE,GE),[t,n]=(0,Q.useState)(null);return(0,Q.useEffect)(()=>{if(e===null){n(null);return}function t(){let t=Math.max(0,Math.ceil((e-Date.now())/1e3));n(t)}t();let r=setInterval(t,1e3);return()=>clearInterval(r)},[e]),t===null?null:(0,$.jsxs)(T,{dimColor:!0,children:[`waiting `,kp(t*1e3,{mostSignificantOnly:!0})]})}function XE(){let[t,n]=(0,Q.useState)(0);(0,Q.useEffect)(()=>{let e=setInterval(()=>n(e=>e+1),qE);return()=>clearInterval(e)},[]);let r=(us(),e(Sc)),i=r.getGoal();if(!i)return null;let a=r.getActiveElapsedMs(i),o=Math.floor(a/1e3),s=Math.floor(o/3600),c=Math.floor(o%3600/60),l=o%60,u;u=s>=1?`${s}h${c}min`:c>=1?`${c}min`:`${l}s`;let d;switch(i.status){case`active`:d=`ansi:green`;break;case`paused`:case`budget_limited`:case`usage_limited`:d=`ansi:yellow`;break;case`blocked`:d=`ansi:red`;break;case`complete`:d=`ansi:cyan`;break}return(0,$.jsxs)(T,{color:d,children:[`goal (`,u,`)`]})}function ZE({exitMessage:e,vimMode:t,mode:n,toolPermissionContext:r,suppressHint:i,isLoading:a,tasksSelected:o,tmuxSelected:s,isPasting:c,isSearching:l,historyQuery:u,setHistoryQuery:d,historyFailedMatch:f,onOpenTasksDialog:p}){if(e.show)return(0,$.jsxs)(T,{dimColor:!0,children:[`Press `,e.key,` again to exit`]},`exit-message`);if(c)return(0,$.jsx)(T,{dimColor:!0,children:`Pasting text…`},`pasting-message`);let m=O_()&&t===`INSERT`&&!l;return(0,$.jsxs)(b,{justifyContent:`flex-start`,gap:1,children:[l&&(0,$.jsx)(PE,{value:u,onChange:d,historyFailedMatch:f}),m?(0,$.jsx)(T,{dimColor:!0,children:`-- INSERT --`},`vim-insert`):null,(0,$.jsx)(QE,{mode:n,toolPermissionContext:r,showHint:!i&&!m,isLoading:a,tasksSelected:o,tmuxSelected:s,onOpenTasksDialog:p})]})}function QE({mode:t,toolPermissionContext:n,showHint:r,isLoading:i,tasksSelected:a,tmuxSelected:o,onOpenTasksDialog:s}){let{columns:c}=de(),l=ud(`chat:cycleMode`,`Chat`,`shift+tab`),u=J(e=>e.tasks),f=qn(),[p]=(0,Q.useState)(()=>f.getState().remoteSessionUrl),m=HE(i,eD()),g=J(e=>process.env.USER_TYPE===`ant`&&e.tungstenActiveSession!==void 0),_=(0,Q.useSyncExternalStore)(UE?.subscribeToProactiveChanges??WE,UE?.getNextTickAt??GE,GE),v=I(),y=ue().getState,x=_!==null,S=(0,Q.useMemo)(()=>jf(Object.values(u),e=>ei(e)&&!(process.env.USER_TYPE===`ant`&&xi(e))),[u]),w=jr(),E=w!==void 0&&w.length>0,D=ud(`chat:cancel`,`Chat`,`esc`).toLowerCase(),k=ud(`app:toggleTodos`,`Global`,`ctrl+t`),ee=ud(`chat:killAgents`,`Chat`,`ctrl+x ctrl+k`),A=J(e=>e.notifications.current?.key===`kill-agents-confirm`),j=JE();if(t===`bash`)return(0,$.jsx)(T,{color:`bashBorder`,children:`! for bash mode`});let M=n?.mode,te=!pf(M),N=S>0,P=+!!te+ +!!N,F=eD()&&m.number!==null&&m.reviewState!==null&&m.url!==null&&P<2&&(P===0||c>=80),ne=P<2,re=M&&te&&!je()?(0,$.jsxs)(T,{color:_f(M),children:[uf(M),` `,bf(M).toLowerCase(),` on`,ne&&(0,$.jsxs)(T,{dimColor:!0,children:[` `,(0,$.jsx)(h,{shortcut:l,action:`cycle`,parens:!0})]})]},`mode`):null,L=[...p?[(0,$.jsx)(C,{url:p,children:(0,$.jsxs)(T,{color:`ide`,children:[d.circleDouble,` remote`]})},`remote`)]:[],...process.env.USER_TYPE===`ant`&&g?[(0,$.jsx)(TungstenPill,{selected:o},`tmux`)]:[],...F?[(0,$.jsx)(Sa,{number:m.number,url:m.url,reviewState:m.reviewState},`pr-status`)]:[],...j?[(0,$.jsxs)(T,{dimColor:j.level===`normal`,color:j.level===`error`?`error`:j.level===`warning`?`warning`:void 0,children:[j.text,` · pid:`,process.pid]},`rss`)]:[],...(us(),e(Sc)).getGoal()?[(0,$.jsx)(XE,{},`goal-elapsed`)]:[]],ie=Object.values(u).some(e=>e.type===`local_agent`&&e.status===`running`),R=r?$E(i,D,k,ee,E,ie,A):[];x?L.push((0,$.jsx)(YE,{},`proactive`)):r&&L.push(...R);let z=N&&!Z_(u,!1)?(0,$.jsx)(ME,{tasksSelected:a,onOpenDialog:s}):null;L.length===0&&!z&&!re&&r&&L.push((0,$.jsx)(T,{dimColor:!0,children:`? for shortcuts`},`shortcuts-hint`));let ae=Lf().copyOnSelect??!0,oe=v&&(!ae||se());if(oo()&&oe){let e=sp()===`macos`,t=e&&(y()?.lastPressHadAlt??!1);L.push((0,$.jsx)(T,{dimColor:!0,children:(0,$.jsxs)(O,{children:[!ae&&(0,$.jsx)(h,{shortcut:`ctrl+c`,action:`copy`}),se()&&(t?(0,$.jsx)(T,{children:`set macOptionClickForcesSelection in VS Code settings`}):(0,$.jsx)(h,{shortcut:e?`option+click`:`shift+click`,action:`native select`}))]})},`selection-copy`))}return z&&r&&L.push((0,$.jsx)(T,{dimColor:!0,children:a?(0,$.jsx)(h,{shortcut:`Enter`,action:`view tasks`}):(0,$.jsx)(h,{shortcut:`↓`,action:`manage`})},`manage-tasks`)),L.length===0&&!z&&!re?oo()?(0,$.jsx)(T,{children:` `}):null:(0,$.jsxs)(b,{height:1,overflow:`hidden`,children:[re&&(0,$.jsxs)(b,{flexShrink:0,children:[re,(z||L.length>0)&&(0,$.jsx)(T,{dimColor:!0,children:` · `})]}),z&&(0,$.jsxs)(b,{flexShrink:0,children:[z,L.length>0&&(0,$.jsx)(T,{dimColor:!0,children:` · `})]}),L.length>0&&(0,$.jsx)(T,{wrap:`truncate`,children:(0,$.jsx)(O,{children:L})})]})}function $E(e,t,n,r,i,a,o){let s=i;return[...e?[(0,$.jsx)(T,{dimColor:!0,children:(0,$.jsx)(h,{shortcut:t,action:`interrupt`})},`esc`)]:[],...!e&&a&&!o?[(0,$.jsx)(T,{dimColor:!0,children:(0,$.jsx)(h,{shortcut:r,action:`stop agents`})},`kill-agents`)]:[],...s?[(0,$.jsx)(T,{dimColor:!0,children:(0,$.jsx)(h,{shortcut:n,action:`show tasks`})},`toggle-tasks`)]:[]]}function eD(){return Lf().prStatusFooterEnabled??!0}ml(),ws(),ms(),B(),ps(),q(),dr(),Pg(),A_();function tD({apiKeyStatus:e,debug:t,exitMessage:n,vimMode:r,mode:i,autoUpdaterResult:a,isAutoUpdating:o,verbose:s,onAutoUpdaterResult:c,onChangeIsUpdating:l,suggestions:u,selectedSuggestion:d,maxColumnWidth:f,toolPermissionContext:p,helpOpen:m,suppressHint:h,isLoading:g,tasksSelected:_,bridgeSelected:v,tmuxSelected:y,ideSelection:x,mcpClients:S,isPasting:C=!1,isInputWrapped:w=!1,messages:E,isSearching:D,historyQuery:O,setHistoryQuery:k,historyFailedMatch:ee,onOpenTasksDialog:A}){let j=pd(),{columns:M,rows:te}=de(),N=(0,Q.useRef)(E);N.current=E;let P=(0,Q.useMemo)(()=>kE(E),[E]),F=M<80,ne=oo(),re=ne&&te<24,I=_,L=h||DE(j)||D;return B_((0,Q.useMemo)(()=>ne&&u.length?{suggestions:u,selectedSuggestion:d,maxColumnWidth:f}:null,[ne,u,d,f])),u.length&&!ne?(0,$.jsx)(b,{paddingX:2,paddingY:0,children:(0,$.jsx)(Fg,{suggestions:u,selectedSuggestion:d,maxColumnWidth:f})}):m?(0,$.jsx)(M_,{dimColor:!0,fixedWidth:!0,paddingX:2}):(0,$.jsx)($.Fragment,{children:(0,$.jsxs)(b,{flexDirection:F?`column`:`row`,justifyContent:F?`flex-start`:`space-between`,paddingX:2,gap:+!F,children:[(0,$.jsxs)(b,{flexDirection:`column`,flexShrink:+!F,children:[i===`prompt`&&!re&&!n.show&&!C&&DE(j)&&(0,$.jsx)(jE,{messagesRef:N,lastAssistantMessageId:P,vimMode:r}),(0,$.jsx)(iD,{}),(0,$.jsx)(ZE,{exitMessage:n,vimMode:r,mode:i,toolPermissionContext:p,suppressHint:L,isLoading:g,tasksSelected:I,tmuxSelected:y,isPasting:C,isSearching:D,historyQuery:O,setHistoryQuery:k,historyFailedMatch:ee,onOpenTasksDialog:A})]}),(0,$.jsxs)(b,{flexShrink:1,gap:1,children:[ne?null:(0,$.jsx)(gC,{apiKeyStatus:e,autoUpdaterResult:a,debug:t,isAutoUpdating:o,verbose:s,messages:E,onAutoUpdaterResult:c,onChangeIsUpdating:l,ideSelection:x,mcpClients:S,isInputWrapped:w,isNarrow:F}),process.env.USER_TYPE===`ant`&&Bh()&&(0,$.jsx)(T,{dimColor:!0,children:`undercover`}),(0,$.jsx)(rD,{bridgeSelected:v})]})]})})}var nD=(0,Q.memo)(tD);function rD({bridgeSelected:e}){let t=J(e=>e.replBridgeEnabled),n=J(e=>e.replBridgeConnected),r=J(e=>e.replBridgeSessionActive),i=J(e=>e.replBridgeReconnecting),a=J(e=>e.replBridgeExplicit);if(!Lh()||!t)return null;let o=Vs({error:void 0,connected:n,sessionActive:r,reconnecting:i});return!a&&o.label!==`Remote Control reconnecting`?null:(0,$.jsxs)(T,{color:e?`background`:o.color,inverse:e,wrap:`truncate`,children:[o.label,e&&(0,$.jsx)(T,{dimColor:!0,children:` · Enter to view`})]})}function iD(){return null}u(),B();function aD({isLoading:e}){return(0,$.jsxs)(T,{color:process.env.USER_TYPE===`ant`?`subtle`:void 0,dimColor:e,children:[d.pointer,`\xA0`]})}function oD({mode:e,isLoading:t}){return(0,$.jsx)(b,{alignItems:`flex-start`,alignSelf:`flex-start`,flexWrap:`nowrap`,justifyContent:`flex-start`,children:e===`bash`?(0,$.jsx)(T,{color:`bashBorder`,dimColor:t,children:`!\xA0`}):(0,$.jsx)(aD,{isLoading:t})})}B(),q(),$n(),Ki(),zd(),Zd(),Kc();var sD=new Set;function cD(e){try{return Kd(e)?.type===`idle_notification`}catch{return!1}}var lD=3;function uD(e){return`<${Yf}>
71
+ `&&a.setOffset(s-1),t.current={mode:`NORMAL`,command:{type:`idle`}},r(`NORMAL`),o?.(`NORMAL`)},[o,a,e.value]);function u(t,n=!1){return{cursor:t,text:e.value,setText:t=>e.onChange(t),setOffset:e=>a.setOffset(e),enterInsert:e=>c(e),getRegister:()=>i.current.register,setRegister:(e,t)=>{i.current.register=e,i.current.registerIsLinewise=t},getLastFind:()=>i.current.lastFind,setLastFind:(e,t)=>{i.current.lastFind={type:e,char:t}},recordChange:n?()=>{}:e=>{i.current.lastChange=e}}}function d(){let t=i.current.lastChange;if(!t)return;let n=Xr.fromText(e.value,e.columns,a.offset),r=u(n,!0);switch(t.type){case`insert`:if(t.text){let r=n.insert(t.text);e.onChange(r.text),a.setOffset(r.offset)}break;case`x`:bT(t.count,r);break;case`replace`:xT(t.char,t.count,r);break;case`toggleCase`:ST(t.count,r);break;case`indent`:TT(t.dir,t.count,r);break;case`join`:CT(t.count,r);break;case`openLine`:ET(t.direction,r);break;case`operator`:gT(t.op,t.motion,t.count,r);break;case`operatorFind`:_T(t.op,t.find,t.char,t.count,r);break;case`operatorTextObj`:vT(t.op,t.scope,t.objType,t.count,r);break}}function f(n,r){let i=t.current,o=s?s(n,r):n,c=i.mode===`INSERT`?o:n,f=Xr.fromText(e.value,e.columns,a.offset);if(r.ctrl){a.onInput(c,r);return}if(r.escape&&i.mode===`INSERT`){l();return}if(r.escape&&i.mode===`NORMAL`){t.current={mode:`NORMAL`,command:{type:`idle`}};return}if(r.return){a.onInput(c,r);return}if(i.mode===`INSERT`){r.backspace||r.delete?i.insertedText.length>0&&(t.current={mode:`INSERT`,insertedText:i.insertedText.slice(0,-(xp(i.insertedText).length||1))}):t.current={mode:`INSERT`,insertedText:i.insertedText+c},a.onInput(c,r);return}if(i.mode!==`NORMAL`)return;if(i.command.type===`idle`&&(r.upArrow||r.downArrow||r.leftArrow||r.rightArrow)){a.onInput(c,r);return}let p={...u(f,!1),onUndo:e.onUndo,onDotRepeat:d},m=i.command.type===`idle`||i.command.type===`count`||i.command.type===`operator`||i.command.type===`operatorCount`,h=c;r.leftArrow?h=`h`:r.rightArrow?h=`l`:r.upArrow?h=`k`:r.downArrow?h=`j`:m&&r.backspace?h=`h`:m&&i.command.type!==`count`&&r.delete&&(h=`x`);let g=UT(i.command,h,p);g.execute&&g.execute(),t.current.mode===`NORMAL`&&(g.next?t.current={mode:`NORMAL`,command:g.next}:g.execute&&(t.current={mode:`NORMAL`,command:{type:`idle`}})),c===`?`&&i.mode===`NORMAL`&&i.command.type===`idle`&&e.onChange(`?`)}let p=(0,Q.useCallback)(e=>{e===`INSERT`?t.current={mode:`INSERT`,insertedText:``}:t.current={mode:`NORMAL`,command:{type:`idle`}},r(e),o?.(e)},[o]);return{...a,onInput:f,mode:n,setMode:p}}L(),B();function aE(e){let[t]=y(),n=j();Qt(n,!!e.onImagePaste);let r=iE({value:e.value,onChange:e.onChange,onSubmit:e.onSubmit,onExit:e.onExit,onExitMessage:e.onExitMessage,onHistoryReset:e.onHistoryReset,onHistoryUp:e.onHistoryUp,onHistoryDown:e.onHistoryDown,onClearInput:e.onClearInput,focus:e.focus,mask:e.mask,multiline:e.multiline,cursorChar:e.showCursor?` `:``,highlightPastedText:e.highlightPastedText,invert:n?H.inverse:e=>e,themeText:ce(`text`,t),columns:e.columns,maxVisibleLines:e.maxVisibleLines,onImagePaste:e.onImagePaste,disableCursorMovementForUpDownKeys:e.disableCursorMovementForUpDownKeys,disableEscapeDoublePress:e.disableEscapeDoublePress,externalOffset:e.cursorOffset,onOffsetChange:e.onChangeCursorOffset,inputFilter:e.inputFilter,onModeChange:e.onModeChange,onUndo:e.onUndo}),{mode:i,setMode:a}=r;return Q.useEffect(()=>{e.initialMode&&e.initialMode!==i&&a(e.initialMode)},[e.initialMode,i,a]),(0,$.jsx)(b,{flexDirection:`column`,children:(0,$.jsx)(Tr,{inputState:r,terminalFocus:n,highlights:e.highlights,...e})})}bh(),zh(),Dn(),eg(),j_(),s();function oE(e){if(!e)return null;let t=e.input_tokens+e.cache_creation_input_tokens+e.cache_read_input_tokens;return t===0?null:Math.round(e.cache_read_input_tokens/t*100)}function sE(e){return`${e.input_tokens}|${e.cache_creation_input_tokens}|${e.cache_read_input_tokens}`}function cE(e){let t=Dv(`sha256`).update(e).digest(`hex`).slice(0,16);return Tv(o(),`cache-stats`,`${t}.json`)}var lE={version:1,signature:null,lastResetAt:null,lastHitRate:null};function uE(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.version===1&&(t.signature===null||typeof t.signature==`string`)&&(t.lastResetAt===null||typeof t.lastResetAt==`number`)&&(t.lastHitRate===null||typeof t.lastHitRate==`number`)}async function dE(e){try{let t=await Fv(e,`utf8`),n=JSON.parse(t);return uE(n)?n:{...lE}}catch{return{...lE}}}async function fE(e,t){await Pv(wv(e),{recursive:!0});let n=`${e}.${process.pid}.tmp`;try{await Lv(n,JSON.stringify(t),`utf8`),await Iv(n,e)}catch{}}var pE={signature:null,lastResetAt:null,lastHitRate:null},mE=null;async function hE(e){mE=e;let t=await dE(cE(e));pE={signature:t.signature,lastResetAt:t.lastResetAt,lastHitRate:t.lastHitRate}}function gE(e){let t=sE(e),n=oE(e);return t!==pE.signature&&(pE={signature:t,lastResetAt:Date.now(),lastHitRate:n},mE!==null&&fE(cE(mE),{version:1,signature:t,lastResetAt:pE.lastResetAt,lastHitRate:n})),{...pE}}function _E(){return{...pE}}B(),Ep(),ms();function vE(e){let t=e-Date.now()/1e3;if(t<=0)return`now`;let n=Math.floor(t/86400),r=Math.floor(t%86400/3600),i=Math.floor(t%3600/60);return n>=1?`${n}d${r}h`:r>=1?`${r}h${i}m`:`${i}m`}function yE(){return(0,$.jsx)(T,{dimColor:!0,children:` │ `})}function bE({modelName:e,contextUsedPct:t,usedTokens:n,contextWindowSize:r,totalCostUsd:i,rateLimits:a}){let{columns:o}=de(),[s,c]=(0,Q.useState)(0);(0,Q.useEffect)(()=>{if(!((a.five_hour?.resets_at??0)||(a.seven_day?.resets_at??0)))return;let e=setInterval(()=>c(e=>e+1),6e4);return()=>clearInterval(e)},[a.five_hour?.resets_at,a.seven_day?.resets_at]);let l=e.split(` `),u=l.length>=2?`${l[0]} ${l[1]}`:e,d=o<60,f=a.five_hour!=null,p=a.seven_day!=null,m=f?Math.round(a.five_hour.utilization*100):0,h=p?Math.round(a.seven_day.utilization*100):0,g=`${Ap(n)}/${Ap(r)}`;return(0,$.jsxs)(b,{children:[(0,$.jsx)(T,{children:u}),(0,$.jsx)(yE,{}),(0,$.jsx)(T,{dimColor:!0,children:`Context `}),(0,$.jsxs)(T,{children:[t,`%`]}),!d&&(0,$.jsxs)(T,{dimColor:!0,children:[` (`,g,`)`]}),f&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(yE,{}),(0,$.jsx)(T,{dimColor:!0,children:`Session `}),(0,$.jsxs)(T,{children:[m,`%`]}),!d&&a.five_hour.resets_at>0&&(0,$.jsxs)(T,{dimColor:!0,children:[` `,vE(a.five_hour.resets_at)]})]}),p&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(yE,{}),(0,$.jsx)(T,{dimColor:!0,children:`Weekly `}),(0,$.jsxs)(T,{children:[h,`%`]}),!d&&a.seven_day.resets_at>0&&(0,$.jsxs)(T,{dimColor:!0,children:[` `,vE(a.seven_day.resets_at)]})]}),i>0&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(yE,{}),(0,$.jsx)(T,{children:vu(i)})]})]})}var xE=Q.memo(bE);bp(),q(),at(),Rt(),zl(),Gg(),ws(),B(),Rf(),Qp(),Wd(),tf(),wd(),zd(),rm(),Jc(),dn(),Ep();var SE=3600*1e3;function CE(e){return String(Math.floor(e)).padStart(2,`0`)}function wE(e){if(e<=0)return`exp`;let t=Math.floor(e/6e4),n=Math.floor(e%6e4/1e3);return`${CE(t)}:${CE(n)}`}function TE({messages:e}){let[t,n]=(0,Q.useState)(()=>Date.now()),[r,i]=(0,Q.useState)(!0),a=Ra(e),o=(0,Q.useRef)(null);if(a!==null){let e=sE(a);e!==o.current&&(o.current=e,gE(a))}let{lastResetAt:s,lastHitRate:c}=_E(),l=s===null?null:t-s,u=l===null?null:SE-l,d=l===null?null:l/6e4,f=u!==null&&u<=0;(0,Q.useEffect)(()=>{let e=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(e)},[]);let p=d!==null&&d>=55&&!f;(0,Q.useEffect)(()=>{if(!p){i(!0);return}let e=setInterval(()=>i(e=>!e),500);return()=>clearInterval(e)},[p]);let m=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{m.current||(m.current=!0,hE(st()))},[]);let h=a===null?c:oE(a);if(h===null&&s===null)return(0,$.jsx)(T,{dimColor:!0,children:` Cache --% --:--`});let g=u===null?`--:--`:wE(u),_=h===null?`--%`:`${h}%`,v;return v=f||d===null?`inactive`:d<20?`success`:d<40?`warning`:`error`,(0,$.jsxs)(T,{children:[(0,$.jsx)(T,{dimColor:!0,children:` Cache `}),(0,$.jsx)(T,{color:h!==null&&h>=50?`success`:`inactive`,children:_}),(0,$.jsxs)(T,{color:v,dimColor:p&&!r,children:[` `,g]})]})}function EE(){let{getGoal:t,formatGoalStatusLabel:n}=(us(),e(Sc)),r=t();if(!r)return null;let i=r.objective.length>30?`${r.objective.slice(0,27)}…`:r.objective,a=r.tokenBudget===null?Ap(r.tokensUsed):`${Ap(r.tokensUsed)}/${Ap(r.tokenBudget)}`,o=n(r.status),s;switch(r.status){case`active`:s=(0,$.jsx)(T,{color:`ansi:green`,children:o});break;case`paused`:case`budget_limited`:case`usage_limited`:s=(0,$.jsx)(T,{color:`ansi:yellow`,children:o});break;case`blocked`:s=(0,$.jsx)(T,{color:`ansi:red`,children:o});break;case`complete`:s=(0,$.jsx)(T,{color:`ansi:cyan`,children:o});break;default:s=(0,$.jsx)(T,{children:o})}return(0,$.jsxs)(T,{children:[s,(0,$.jsx)(T,{dimColor:!0,children:` · `}),(0,$.jsx)(T,{dimColor:!0,children:i}),(0,$.jsx)(T,{dimColor:!0,children:` · `}),(0,$.jsx)(T,{children:a})]})}function DE(e){return Fe()||e?.statusLineEnabled===!1?!1:e?.statusLineEnabled===!0||!!e?.statusLine?.command}function OE(e,t,n,r,i,a,o){let s=$e(),c=on(),l=fm({permissionMode:e,mainLoopModel:a,exceeds200kTokens:t}),u=n?.outputStyle||`default`,d=Ra(r),f=tm(l,pt()),p=Up(d,f),m=xl(st()),h=Jn(),g={...h.five_hour&&{five_hour:{used_percentage:h.five_hour.utilization*100,resets_at:h.five_hour.resets_at}},...h.seven_day&&{seven_day:{used_percentage:h.seven_day.utilization*100,resets_at:h.seven_day.resets_at}}};return{...Hn(),...m&&{session_name:m},model:{id:l,display_name:em(l)},workspace:{current_dir:Gd(),project_dir:ut(),added_dirs:i},version:`0.0.6`,output_style:{name:u},cost:{total_cost_usd:lt(),total_duration_ms:Ae(),total_api_duration_ms:Ge(),total_lines_added:Be(),total_lines_removed:Ve()},context_window:{total_input_tokens:ct(),total_output_tokens:He(),context_window_size:f,current_usage:d,used_percentage:p.used,remaining_percentage:p.remaining},exceeds_200k_tokens:t,...(g.five_hour||g.seven_day)&&{rate_limits:g},...O_()&&{vim:{mode:o??`INSERT`}},...s&&{agent:{name:s}},...je()&&{remote:{session_id:st()}},...c&&{worktree:{name:c.worktreeName,path:c.worktreePath,branch:c.worktreeBranch,original_cwd:c.originalCwd,original_branch:c.originalBranch}}}}function kE(e){return nl(e)?.uuid??null}function AE({messagesRef:e,lastAssistantMessageId:t,vimMode:n}){let r=(0,Q.useRef)(void 0),i=J(e=>e.toolPermissionContext.mode),a=J(e=>e.toolPermissionContext.additionalWorkingDirectories),o=J(e=>e.statusLineText),s=Vr(),c=pd(),{addNotification:l}=lo(),u=Wg(),d=(0,Q.useRef)(c);d.current=c;let f=(0,Q.useRef)(n);f.current=n;let p=(0,Q.useRef)(i);p.current=i;let m=(0,Q.useRef)(a);m.current=a;let h=(0,Q.useRef)(u);h.current=u;let _=(0,Q.useRef)({messageId:null,exceeds200kTokens:!1,permissionMode:i,vimMode:n,mainLoopModel:u}),v=(0,Q.useRef)(void 0),y=(0,Q.useRef)(!0),x=(0,Q.useCallback)(async()=>{r.current?.abort();let t=new AbortController;r.current=t;let n=e.current,i=y.current;if(y.current=!1,d.current?.statusLine?.command)try{let e=_.current.exceeds200kTokens,r=kE(n);r!==_.current.messageId&&(e=Zt(n),_.current.messageId=r,_.current.exceeds200kTokens=e);let a=await Zs(OE(p.current,e,d.current,n,Array.from(m.current.keys()),h.current,f.current),t.signal,void 0,i);t.signal.aborted||s(e=>e.statusLineText===a?e:{...e,statusLineText:a})}catch{}},[e,s]),S=(0,Q.useCallback)(()=>{v.current!==void 0&&clearTimeout(v.current),v.current=setTimeout((e,t)=>{e.current=void 0,t()},300,v,x)},[x]);(0,Q.useEffect)(()=>{(t!==_.current.messageId||i!==_.current.permissionMode||n!==_.current.vimMode||u!==_.current.mainLoopModel)&&(_.current.permissionMode=i,_.current.vimMode=n,_.current.mainLoopModel=u,S())},[t,i,n,u,S]);let C=c?.statusLine?.command,w=(0,Q.useRef)(!0);(0,Q.useEffect)(()=>{if(w.current){w.current=!1;return}y.current=!0,x()},[C,x]),(0,Q.useEffect)(()=>{let e=c?.statusLine;e&&(Z(`tengu_status_line_mount`,{command_length:e.command.length,padding:e.padding}),c.disableAllHooks===!0&&Y(`Status line is configured but disableAllHooks is true`,{level:`warn`}),Bf()||(l({key:`statusline-trust-blocked`,text:`statusline skipped · restart to fix`,color:`warning`,priority:`low`}),Y(`Status line command skipped: workspace trust not accepted`,{level:`warn`})))},[]),(0,Q.useEffect)(()=>(x(),()=>{r.current?.abort(),v.current!==void 0&&clearTimeout(v.current)}),[]);let E=c?.statusLine?.padding??0,D=fm({permissionMode:i,mainLoopModel:u,exceeds200kTokens:_.current.exceeds200kTokens}),O=tm(D,pt()),k=Ra(e.current),ee=k?k.input_tokens+k.cache_creation_input_tokens+k.cache_read_input_tokens:0,A=k?Math.round(Up(k,O).used??0):0,j=Jn(),M={...j.five_hour&&{five_hour:{utilization:j.five_hour.utilization,resets_at:j.five_hour.resets_at}},...j.seven_day&&{seven_day:{utilization:j.seven_day.utilization,resets_at:j.seven_day.resets_at}}},te=c?.statusLineEnabled===!0,N=!!c?.statusLine?.command;return(0,$.jsxs)(b,{flexDirection:`column`,paddingX:E,children:[te&&(0,$.jsxs)(b,{gap:2,children:[(0,$.jsx)(xE,{modelName:em(D),contextUsedPct:A,usedTokens:ee,contextWindowSize:O,totalCostUsd:lt(),rateLimits:M}),(0,$.jsx)(EE,{}),(0,$.jsx)(TE,{messages:e.current})]}),o?(0,$.jsx)(T,{dimColor:!0,wrap:`truncate`,children:(0,$.jsx)(g,{children:o})}):N&&oo()?(0,$.jsx)(T,{children:` `}):null]})}var jE=(0,Q.memo)(AE);u(),q(),Ft(),Rn(),B();function ME({tasksSelected:e,onOpenDialog:t}){let n=J(e=>e.tasks),r=(0,Q.useMemo)(()=>Object.values(n??{}).filter(e=>ei(e)&&!(process.env.USER_TYPE===`ant`&&xi(e))),[n]);return Z_(n??{},!1)||r.length===0?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(NE,{selected:e,onClick:t,children:Qi(r)}),yr(r)&&(0,$.jsxs)(T,{dimColor:!0,children:[` · `,d.arrowDown,` to view`]})]})}function NE({selected:e,onClick:t,children:n}){let[r,i]=(0,Q.useState)(!1),a=(0,$.jsx)(T,{color:`background`,inverse:e||r,children:n});return t?(0,$.jsx)(b,{onClick:t,onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),children:a}):a}B(),Wn();function PE({value:e,onChange:t,historyFailedMatch:n}){return(0,$.jsxs)(b,{gap:1,children:[(0,$.jsx)(T,{dimColor:!0,children:n?`no matching prompt:`:`search prompts:`}),(0,$.jsx)(ia,{value:e,onChange:t,cursorOffset:e.length,onChangeCursorOffset:()=>{},columns:_(e)+1,focus:!0,showCursor:!0,multiline:!1,dimColor:!0})]})}qf(),Hf(),Zd();var FE=5e3;function IE(e,t){if(e)return`draft`;switch(t){case`APPROVED`:return`approved`;case`CHANGES_REQUESTED`:return`changes_requested`;default:return`pending`}}async function LE(){if(!await Wf())return null;let[e,t]=await Promise.all([Gf(),Uf()]);if(e===t)return null;let{stdout:n,code:r}=await Jf(`gh`,[`pr`,`view`,`--json`,`number,url,reviewDecision,isDraft,headRefName,state`],{timeout:FE,preserveOutputOnError:!1});if(r!==0||!n.trim())return null;try{let e=Kd(n);return e.headRefName===t||e.headRefName===`main`||e.headRefName===`master`||e.state===`MERGED`||e.state===`CLOSED`?null:{number:e.number,url:e.url,reviewState:IE(e.isDraft,e.reviewDecision)}}catch{return null}}at();var RE=6e4,zE=4e3,BE=60*6e4,VE={number:null,url:null,reviewState:null,lastUpdated:0};function HE(e,t=!0){let[n,r]=(0,Q.useState)(VE),i=(0,Q.useRef)(null),a=(0,Q.useRef)(!1),o=(0,Q.useRef)(0);return(0,Q.useEffect)(()=>{if(!t||a.current)return;let e=!1,n=-1,s=Date.now();async function c(){if(e)return;let t=ze();if(n!==t)n=t,s=Date.now();else if(Date.now()-s>=BE)return;let l=Date.now(),u=await LE();if(!e){if(o.current=l,r(e=>{let t=u?.number??null,n=u?.reviewState??null;return e.number===t&&e.reviewState===n?e:{number:t,url:u?.url??null,reviewState:n,lastUpdated:Date.now()}}),Date.now()-l>zE){a.current=!0;return}e||(i.current=setTimeout(c,RE))}}let l=Date.now()-o.current;return l>=RE?c():i.current=setTimeout(c,RE-l),()=>{e=!0,i.current&&(clearTimeout(i.current),i.current=null)}},[e,t]),n}B(),u(),j_(),cn(),df(),hr(),Ft(),wf(),ev(),q(),at(),ms(),Ep(),dr(),Rf(),cp(),Ld();var UE=(dh(),e(eh)),WE=e=>()=>{},GE=()=>null,KE=5e3,qE=1e3;function JE(){let[e,t]=(0,Q.useState)(null);return(0,Q.useEffect)(()=>{function e(){let e=process.memoryUsage().rss/(1024*1024),n=e>=1024?`error`:e>=512?`warning`:`normal`,r=Dp(e*1024*1024);t(e=>e?.text===r?e:{text:r,level:n})}e();let n=setInterval(e,KE);return()=>clearInterval(n)},[]),e}function YE(){let e=(0,Q.useSyncExternalStore)(UE?.subscribeToProactiveChanges??WE,UE?.getNextTickAt??GE,GE),[t,n]=(0,Q.useState)(null);return(0,Q.useEffect)(()=>{if(e===null){n(null);return}function t(){let t=Math.max(0,Math.ceil((e-Date.now())/1e3));n(t)}t();let r=setInterval(t,1e3);return()=>clearInterval(r)},[e]),t===null?null:(0,$.jsxs)(T,{dimColor:!0,children:[`waiting `,kp(t*1e3,{mostSignificantOnly:!0})]})}function XE(){let[t,n]=(0,Q.useState)(0);(0,Q.useEffect)(()=>{let e=setInterval(()=>n(e=>e+1),qE);return()=>clearInterval(e)},[]);let r=(us(),e(Sc)),i=r.getGoal();if(!i)return null;let a=r.getActiveElapsedMs(i),o=Math.floor(a/1e3),s=Math.floor(o/3600),c=Math.floor(o%3600/60),l=o%60,u;u=s>=1?`${s}h${c}min`:c>=1?`${c}min`:`${l}s`;let d;switch(i.status){case`active`:d=`ansi:green`;break;case`paused`:case`budget_limited`:case`usage_limited`:d=`ansi:yellow`;break;case`blocked`:d=`ansi:red`;break;case`complete`:d=`ansi:cyan`;break}return(0,$.jsxs)(T,{color:d,children:[`goal (`,u,`)`]})}function ZE({exitMessage:e,vimMode:t,mode:n,toolPermissionContext:r,suppressHint:i,isLoading:a,tasksSelected:o,tmuxSelected:s,isPasting:c,isSearching:l,historyQuery:u,setHistoryQuery:d,historyFailedMatch:f,onOpenTasksDialog:p}){if(e.show)return(0,$.jsxs)(T,{dimColor:!0,children:[`Press `,e.key,` again to exit`]},`exit-message`);if(c)return(0,$.jsx)(T,{dimColor:!0,children:`Pasting text…`},`pasting-message`);let m=O_()&&t===`INSERT`&&!l;return(0,$.jsxs)(b,{justifyContent:`flex-start`,gap:1,children:[l&&(0,$.jsx)(PE,{value:u,onChange:d,historyFailedMatch:f}),m?(0,$.jsx)(T,{dimColor:!0,children:`-- INSERT --`},`vim-insert`):null,(0,$.jsx)(QE,{mode:n,toolPermissionContext:r,showHint:!i&&!m,isLoading:a,tasksSelected:o,tmuxSelected:s,onOpenTasksDialog:p})]})}function QE({mode:t,toolPermissionContext:n,showHint:r,isLoading:i,tasksSelected:a,tmuxSelected:o,onOpenTasksDialog:s}){let{columns:c}=de(),l=ud(`chat:cycleMode`,`Chat`,`shift+tab`),u=J(e=>e.tasks),f=qn(),[p]=(0,Q.useState)(()=>f.getState().remoteSessionUrl),m=HE(i,eD()),g=J(e=>process.env.USER_TYPE===`ant`&&e.tungstenActiveSession!==void 0),_=(0,Q.useSyncExternalStore)(UE?.subscribeToProactiveChanges??WE,UE?.getNextTickAt??GE,GE),v=I(),y=ue().getState,x=_!==null,S=(0,Q.useMemo)(()=>jf(Object.values(u),e=>ei(e)&&!(process.env.USER_TYPE===`ant`&&xi(e))),[u]),w=jr(),E=w!==void 0&&w.length>0,D=ud(`chat:cancel`,`Chat`,`esc`).toLowerCase(),k=ud(`app:toggleTodos`,`Global`,`ctrl+t`),ee=ud(`chat:killAgents`,`Chat`,`ctrl+x ctrl+k`),A=J(e=>e.notifications.current?.key===`kill-agents-confirm`),j=JE();if(t===`bash`)return(0,$.jsx)(T,{color:`bashBorder`,children:`! for bash mode`});let M=n?.mode,te=!pf(M),N=S>0,P=+!!te+ +!!N,F=eD()&&m.number!==null&&m.reviewState!==null&&m.url!==null&&P<2&&(P===0||c>=80),ne=P<2,re=M&&te&&!je()?(0,$.jsxs)(T,{color:_f(M),children:[uf(M),` `,bf(M).toLowerCase(),` on`,ne&&(0,$.jsxs)(T,{dimColor:!0,children:[` `,(0,$.jsx)(h,{shortcut:l,action:`cycle`,parens:!0})]})]},`mode`):null,L=[...p?[(0,$.jsx)(C,{url:p,children:(0,$.jsxs)(T,{color:`ide`,children:[d.circleDouble,` remote`]})},`remote`)]:[],...process.env.USER_TYPE===`ant`&&g?[(0,$.jsx)(TungstenPill,{selected:o},`tmux`)]:[],...F?[(0,$.jsx)(Sa,{number:m.number,url:m.url,reviewState:m.reviewState},`pr-status`)]:[],...j?[(0,$.jsxs)(T,{dimColor:j.level===`normal`,color:j.level===`error`?`error`:j.level===`warning`?`warning`:void 0,children:[j.text,` · pid:`,process.pid]},`rss`)]:[],...(us(),e(Sc)).getGoal()?[(0,$.jsx)(XE,{},`goal-elapsed`)]:[]],ie=Object.values(u).some(e=>e.type===`local_agent`&&e.status===`running`),R=r?$E(i,D,k,ee,E,ie,A):[];x?L.push((0,$.jsx)(YE,{},`proactive`)):r&&L.push(...R);let z=N&&!Z_(u,!1)?(0,$.jsx)(ME,{tasksSelected:a,onOpenDialog:s}):null;L.length===0&&!z&&!re&&r&&L.push((0,$.jsx)(T,{dimColor:!0,children:`? for shortcuts`},`shortcuts-hint`));let ae=Lf().copyOnSelect??!0,oe=v&&(!ae||se());if(oo()&&oe){let e=sp()===`macos`,t=e&&(y()?.lastPressHadAlt??!1);L.push((0,$.jsx)(T,{dimColor:!0,children:(0,$.jsxs)(O,{children:[!ae&&(0,$.jsx)(h,{shortcut:`ctrl+c`,action:`copy`}),se()&&(t?(0,$.jsx)(T,{children:`set macOptionClickForcesSelection in VS Code settings`}):(0,$.jsx)(h,{shortcut:e?`option+click`:`shift+click`,action:`native select`}))]})},`selection-copy`))}return z&&r&&L.push((0,$.jsx)(T,{dimColor:!0,children:a?(0,$.jsx)(h,{shortcut:`Enter`,action:`view tasks`}):(0,$.jsx)(h,{shortcut:`↓`,action:`manage`})},`manage-tasks`)),L.length===0&&!z&&!re?oo()?(0,$.jsx)(T,{children:` `}):null:(0,$.jsxs)(b,{height:1,overflow:`hidden`,children:[re&&(0,$.jsxs)(b,{flexShrink:0,children:[re,(z||L.length>0)&&(0,$.jsx)(T,{dimColor:!0,children:` · `})]}),z&&(0,$.jsxs)(b,{flexShrink:0,children:[z,L.length>0&&(0,$.jsx)(T,{dimColor:!0,children:` · `})]}),L.length>0&&(0,$.jsx)(T,{wrap:`truncate`,children:(0,$.jsx)(O,{children:L})})]})}function $E(e,t,n,r,i,a,o){let s=i;return[...e?[(0,$.jsx)(T,{dimColor:!0,children:(0,$.jsx)(h,{shortcut:t,action:`interrupt`})},`esc`)]:[],...!e&&a&&!o?[(0,$.jsx)(T,{dimColor:!0,children:(0,$.jsx)(h,{shortcut:r,action:`stop agents`})},`kill-agents`)]:[],...s?[(0,$.jsx)(T,{dimColor:!0,children:(0,$.jsx)(h,{shortcut:n,action:`show tasks`})},`toggle-tasks`)]:[]]}function eD(){return Lf().prStatusFooterEnabled??!0}ml(),ws(),ms(),B(),ps(),q(),dr(),Pg(),A_();function tD({apiKeyStatus:e,debug:t,exitMessage:n,vimMode:r,mode:i,autoUpdaterResult:a,isAutoUpdating:o,verbose:s,onAutoUpdaterResult:c,onChangeIsUpdating:l,suggestions:u,selectedSuggestion:d,maxColumnWidth:f,toolPermissionContext:p,helpOpen:m,suppressHint:h,isLoading:g,tasksSelected:_,bridgeSelected:v,tmuxSelected:y,ideSelection:x,mcpClients:S,isPasting:C=!1,isInputWrapped:w=!1,messages:E,isSearching:D,historyQuery:O,setHistoryQuery:k,historyFailedMatch:ee,onOpenTasksDialog:A}){let j=pd(),{columns:M,rows:te}=de(),N=(0,Q.useRef)(E);N.current=E;let P=(0,Q.useMemo)(()=>kE(E),[E]),F=M<80,ne=oo(),re=ne&&te<24,I=_,L=h||DE(j)||D;return B_((0,Q.useMemo)(()=>ne&&u.length?{suggestions:u,selectedSuggestion:d,maxColumnWidth:f}:null,[ne,u,d,f])),u.length&&!ne?(0,$.jsx)(b,{paddingX:2,paddingY:0,children:(0,$.jsx)(Fg,{suggestions:u,selectedSuggestion:d,maxColumnWidth:f})}):m?(0,$.jsx)(M_,{dimColor:!0,fixedWidth:!0,paddingX:2}):(0,$.jsx)($.Fragment,{children:(0,$.jsxs)(b,{flexDirection:F?`column`:`row`,justifyContent:F?`flex-start`:`space-between`,paddingX:2,gap:+!F,children:[(0,$.jsxs)(b,{flexDirection:`column`,flexShrink:+!F,children:[i===`prompt`&&!re&&!n.show&&!C&&DE(j)&&(0,$.jsx)(jE,{messagesRef:N,lastAssistantMessageId:P,vimMode:r}),(0,$.jsx)(iD,{}),(0,$.jsx)(ZE,{exitMessage:n,vimMode:r,mode:i,toolPermissionContext:p,suppressHint:L,isLoading:g,tasksSelected:I,tmuxSelected:y,isPasting:C,isSearching:D,historyQuery:O,setHistoryQuery:k,historyFailedMatch:ee,onOpenTasksDialog:A})]}),(0,$.jsxs)(b,{flexShrink:1,gap:1,children:[ne?null:(0,$.jsx)(gC,{apiKeyStatus:e,autoUpdaterResult:a,debug:t,isAutoUpdating:o,verbose:s,messages:E,onAutoUpdaterResult:c,onChangeIsUpdating:l,ideSelection:x,mcpClients:S,isInputWrapped:w,isNarrow:F}),process.env.USER_TYPE===`ant`&&Bh()&&(0,$.jsx)(T,{dimColor:!0,children:`undercover`}),(0,$.jsx)(rD,{bridgeSelected:v})]})]})})}var nD=(0,Q.memo)(tD);function rD({bridgeSelected:e}){let t=J(e=>e.replBridgeEnabled),n=J(e=>e.replBridgeConnected),r=J(e=>e.replBridgeSessionActive),i=J(e=>e.replBridgeReconnecting),a=J(e=>e.replBridgeExplicit);if(!Lh()||!t)return null;let o=Vs({error:void 0,connected:n,sessionActive:r,reconnecting:i});return!a&&o.label!==`Remote Control reconnecting`?null:(0,$.jsxs)(T,{color:e?`background`:o.color,inverse:e,wrap:`truncate`,children:[o.label,e&&(0,$.jsx)(T,{dimColor:!0,children:` · Enter to view`})]})}function iD(){return null}u(),B();function aD({isLoading:e}){return(0,$.jsxs)(T,{color:process.env.USER_TYPE===`ant`?`subtle`:void 0,dimColor:e,children:[d.pointer,`\xA0`]})}function oD({mode:e,isLoading:t}){return(0,$.jsx)(b,{alignItems:`flex-start`,alignSelf:`flex-start`,flexWrap:`nowrap`,justifyContent:`flex-start`,children:e===`bash`?(0,$.jsx)(T,{color:`bashBorder`,dimColor:t,children:`!\xA0`}):(0,$.jsx)(aD,{isLoading:t})})}B(),q(),$n(),Ki(),zd(),Zd(),Kc();var sD=new Set;function cD(e){try{return Kd(e)?.type===`idle_notification`}catch{return!1}}var lD=3;function uD(e){return`<${Yf}>
72
72
  <${Qf}>+${e} more tasks completed</${Qf}>
73
73
  <${Xf}>completed</${Xf}>
74
74
  </${Yf}>`}function dD(e){let t=e.filter(e=>typeof e.value!=`string`||!cD(e.value)),n=t.filter(e=>e.mode===`task-notification`),r=t.filter(e=>e.mode!==`task-notification`);if(n.length<=lD)return[...r,...n];let i=n.slice(0,lD-1),a={value:uD(n.length-(lD-1)),mode:`task-notification`};return[...r,...i,a]}function fD(){let e=nC(),t=J(e=>!!e.viewingAgentTaskId),n=J(e=>e.isBriefOnly),r=(0,Q.useMemo)(()=>{if(e.length===0)return null;let t=e.filter(G);return t.length===0?null:lu(dD(t).map(e=>{let t=e.value;return e.mode===`bash`&&typeof t==`string`&&(t=`<bash-input>${t}</bash-input>`),Pa({content:t})}))},[e]);return t||r===null?null:(0,$.jsx)(b,{marginTop:1,flexDirection:`column`,children:r.map((e,t)=>(0,$.jsx)(Ao,{isFirst:t===0,useBriefLayout:n,children:(0,$.jsx)(tl,{message:e,lookups:oa,addMargin:!1,tools:[],commands:[],verbose:!1,inProgressToolUseIDs:sD,progressMessagesForMessage:[],shouldAnimate:!1,shouldShowDot:!1,isTranscriptMode:!1,isStatic:!0})},t))})}var pD=Q.memo(fD);to(),u(),B();function mD({hasStash:e}){return e?(0,$.jsx)(b,{paddingLeft:2,children:(0,$.jsxs)(T,{dimColor:!0,children:[d.pointerSmall,` Stashed (auto-restores after submit)`]})}):null}zu();var hD=1e4,gD=1e3;function _D(e,t){if(e.length<=hD)return{truncatedText:e,placeholderContent:``};let n=Math.floor(gD/2),r=e.slice(0,n),i=e.slice(-500),a=e.slice(n,-500);return{truncatedText:r+vD(t,al(a))+i,placeholderContent:a}}function vD(e,t){return`[...Truncated text #${e} +${t} lines...]`}function yD(e,t){let n=Object.keys(t).map(Number),r=n.length>0?Math.max(...n)+1:1,{truncatedText:i,placeholderContent:a}=_D(e,r);return a?{newInput:i,newPastedContents:{...t,[r]:{id:r,type:`text`,content:a}}}:{newInput:e,newPastedContents:t}}function bD({input:e,pastedContents:t,onInputChange:n,setCursorOffset:r,setPastedContents:i}){let[a,o]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{if(a||e.length<=1e4)return;let{newInput:s,newPastedContents:c}=yD(e,t);n(s),r(s.length),i(c),o(!0)},[e,a,t,n,i,r]),(0,Q.useEffect)(()=>{e===``&&o(!1)},[e])}q(),Rf(),Ki();var xD=(dh(),e(eh)),SD=3;function CD({input:e,submitCount:t}){let n=nC(),r=J(e=>e.promptSuggestionEnabled);return(0,Q.useMemo)(()=>{if(e===``){if(n.some(Mn)&&(Lf().queuedCommandUpHintCount||0)<SD)return`Press up to edit queued messages`;if(t<1&&r&&!xD?.isProactiveActive())return sv()}},[e,n,t,r])}var wD=5e3,TD=!1;function ED(e){let[t,n]=(0,Q.useState)(!1);return(0,Q.useEffect)(()=>{if(TD||!e)return;TD=!0,n(!0);let t=setTimeout(n,wD,!1);return()=>{clearTimeout(t),n(!1)}},[e]),t}L(),Rt(),bp(),q(),Wd(),Ki(),x(),la(),ps(),q_(),zu(),Gg(),ms(),B(),qa(),fn(),Ah(),nu(),wf(),Rr(),Rf(),tf(),Cf(),cf(),dr(),il(),np(),rm(),cp(),Hg(),Fa(),Wn(),ev(),Xu(),j_();var DD=5,OD=3;function kD({debug:e,ideSelection:t,toolPermissionContext:n,setToolPermissionContext:r,apiKeyStatus:i,commands:a,agents:o,isLoading:s,verbose:c,messages:l,onAutoUpdaterResult:u,autoUpdaterResult:d,input:f,onInputChange:p,mode:m,onModeChange:h,stashedPrompt:g,setStashedPrompt:_,submitCount:y,onShowMessageSelector:x,onMessageActionsEnter:S,mcpClients:C,pastedContents:w,setPastedContents:E,vimMode:D,setVimMode:O,showBashesDialog:k,setShowBashesDialog:ee,onExit:j,getToolUseContext:M,onSubmit:te,isSearchingHistory:P,setIsSearchingHistory:F,onDismissSideQuestion:ne,isSideQuestionVisible:re,helpOpen:I,setHelpOpen:L,hasSuppressedDialogs:ie,isLocalJSXCommandActive:z=!1,insertTextRef:ae}){let se=Wg(),ce=td()||z,[le,ue]=(0,Q.useState)(!1),[fe,B]=(0,Q.useState)({show:!1}),[V,H]=(0,Q.useState)(f.length),me=Q.useRef(f);f!==me.current&&(H(f.length),me.current=f);let he=Q.useCallback(e=>{me.current=e,p(e)},[p]);ae&&(ae.current={cursorOffset:V,insert:e=>{let t=V===f.length&&f.length>0&&!/\s$/.test(f)?` `+e:e,n=f.slice(0,V)+t+f.slice(V);me.current=n,p(n),H(V+t.length)},setInputWithCursor:(e,t)=>{me.current=e,p(e),H(t)}});let ge=qn(),U=Vr(),_e=J(e=>e.tasks),ve=J(e=>e.replBridgeConnected),ye=J(e=>e.replBridgeExplicit),be=J(e=>e.replBridgeReconnecting),xe=ve&&(ye||be),Se=J(e=>process.env.USER_TYPE===`ant`&&e.tungstenActiveSession!==void 0),Ce=process.env.USER_TYPE===`ant`&&Se,we=J(e=>!1),Te=nC(),Ee=J(e=>e.promptSuggestion),De=J(e=>e.speculation),Oe=J(e=>e.speculationSessionTimeSavedMs),ke=J(e=>e.isBriefOnly),Ae=J(e=>e.mainLoopModel),je=J(e=>e.mainLoopModelForSession),Me=J(e=>e.thinkingEnabled),Ne=J(e=>bm()?e.fastMode:!1),Pe=J(e=>e.viewingAgentTaskId);J(e=>e.viewSelectionMode);let{historyQuery:Fe,setHistoryQuery:Ie,historyMatch:Le,historyFailedMatch:Re}=TC(e=>{E(e.pastedContents),sn(e.display)},f,he,H,V,h,m,P,F,E,w),ze=(0,Q.useRef)(-1);ze.current===-1&&(ze.current=AD(l));let Be=(0,Q.useRef)(!1),[Ve,He]=(0,Q.useState)(!1),Ue=J(e=>e.selectedBgAgentIndex),We=(0,Q.useCallback)(e=>U(t=>{let n=typeof e==`function`?e(t.selectedBgAgentIndex):e;return n===t.selectedBgAgentIndex?t:{...t,selectedBgAgentIndex:n}}),[U]),[Ge,Ke]=(0,Q.useState)(!1),[qe,Je]=(0,Q.useState)(!1),[Ye,Xe]=(0,Q.useState)(!1),[Ze,Qe]=(0,Q.useState)(!1),[$e,et]=(0,Q.useState)(!1),[tt,nt]=(0,Q.useState)(!1),[rt,it]=(0,Q.useState)(!1),[at,ot]=(0,Q.useState)(!1),st=(0,Q.useMemo)(()=>{let e=f.indexOf(`
@@ -81,7 +81,7 @@ Parse the user's input into ISO 8601 format. Return ONLY the formatted string, o
81
81
  Server disconnected.
82
82
  `):process.stderr.write(`\nFailed to connect to server at ${e.wsUrl}\n`),c.current=!1,jl(1),n(!1)},onError:e=>{Y(`[useDirectConnect] Error: ${e.message}`)}});return o.current=i,i.connect(),()=>{Y(`[useDirectConnect] Cleanup - disconnecting`),i.disconnect(),o.current=null}},[e,t,n,r]);let u=(0,Q.useCallback)(async e=>{let t=o.current;return t?(n(!0),t.sendMessage(e)):!1},[n]),d=(0,Q.useCallback)(()=>{o.current?.sendInterrupt(),n(!1)},[n]),f=(0,Q.useCallback)(()=>{o.current?.disconnect(),o.current=null,c.current=!1},[]);return(0,Q.useMemo)(()=>({isRemoteMode:a,sendMessage:u,cancelRequest:d,disconnect:f}),[a,u,d,f])}Nm(),tf(),As();function XD({session:e,setMessages:t,setIsLoading:n,setToolUseConfirmQueue:r,tools:i}){let a=!!e,o=(0,Q.useRef)(null),s=(0,Q.useRef)(!1),c=(0,Q.useRef)(!1),l=(0,Q.useRef)(i);(0,Q.useEffect)(()=>{l.current=i},[i]),(0,Q.useEffect)(()=>{if(!e)return;s.current=!1,Y(`[useSSHSession] wiring SSH session manager`);let i=e.createManager({onMessage:e=>{if(UD(e)&&n(!1),e.type===`system`&&e.subtype===`init`){if(s.current)return;s.current=!0}let r=HD(e,{convertToolResults:!0});r.type===`message`&&t(e=>[...e,r.message])},onPermissionRequest:(e,t)=>{Y(`[useSSHSession] permission request: ${e.tool_name}`);let a=Am(l.current,e.tool_name)??PD(e.tool_name),o=ND(e,t),s={behavior:`ask`,message:e.description??`${e.tool_name} requires permission`,suggestions:e.permission_suggestions,blockedPath:e.blocked_path},c={assistantMessage:o,tool:a,description:e.description??`${e.tool_name} requires permission`,input:e.input,toolUseContext:{},toolUseID:e.tool_use_id,permissionResult:s,permissionPromptStartTimeMs:Date.now(),onUserInteraction(){},onAbort(){i.respondToPermissionRequest(t,{behavior:`deny`,message:`User aborted`}),r(t=>t.filter(t=>t.toolUseID!==e.tool_use_id))},onAllow(a){i.respondToPermissionRequest(t,{behavior:`allow`,updatedInput:a}),r(t=>t.filter(t=>t.toolUseID!==e.tool_use_id)),n(!0)},onReject(n){i.respondToPermissionRequest(t,{behavior:`deny`,message:n??`User denied permission`}),r(t=>t.filter(t=>t.toolUseID!==e.tool_use_id))},async recheckPermission(){}};r(e=>[...e,c]),n(!1)},onConnected:()=>{Y(`[useSSHSession] connected`),c.current=!0},onReconnecting:(e,r)=>{Y(`[useSSHSession] ssh dropped, reconnecting (${e}/${r})`),c.current=!1,n(!1);let i={type:`system`,subtype:`informational`,content:`SSH connection dropped — reconnecting (attempt ${e}/${r})...`,timestamp:new Date().toISOString(),uuid:Ov(),level:`warning`};t(e=>[...e,i])},onDisconnected:()=>{Y(`[useSSHSession] ssh process exited (giving up)`);let t=e.getStderrTail().trim(),r=c.current,i=e.proc.exitCode;c.current=!1,n(!1);let a=r?`Remote session ended.`:`SSH session failed before connecting.`;t&&(!r||i!==0)&&(a+=`\nRemote stderr (exit ${i??`signal `+e.proc.signalCode}):\n${t}`),jl(1,`other`,{finalMessage:a})},onError:e=>{Y(`[useSSHSession] error: ${e.message}`)}});return o.current=i,i.connect(),()=>{Y(`[useSSHSession] cleanup`),i.disconnect(),e.proxy.stop(),o.current=null}},[e,t,n,r]);let u=(0,Q.useCallback)(async e=>{let t=o.current;return t?(n(!0),t.sendMessage(e)):!1},[n]),d=(0,Q.useCallback)(()=>{o.current?.sendInterrupt(),n(!1)},[n]),f=(0,Q.useCallback)(()=>{o.current?.disconnect(),o.current=null,c.current=!1},[]);return(0,Q.useMemo)(()=>({isRemoteMode:a,sendMessage:u,cancelRequest:d,disconnect:f}),[a,u,d,f])}tf(),Eh();async function ZD(e){let{accessToken:t,orgUUID:n}=await Th();return{baseUrl:`${jp().BASE_API_URL}/v1/sessions/${e}/events`,headers:{...Ch(t),"anthropic-beta":`ccr-byoc-2025-07-29`,"x-organization-uuid":n}}}async function QD(e,t,n){let r=await f.get(e.baseUrl,{headers:e.headers,params:t,timeout:15e3,validateStatus:()=>!0}).catch(()=>null);return!r||r.status!==200?(Y(`[${n}] HTTP ${r?.status??`error`}`),null):{events:Array.isArray(r.data.data)?r.data.data:[],firstId:r.data.first_id,hasMore:r.data.has_more}}async function $D(e,t=100){return QD(e,{limit:t,anchor_to_latest:!0},`fetchLatestEvents`)}async function eO(e,t,n=100){return QD(e,{limit:n,before_id:t},`fetchOlderEvents`)}tf();var tO=40,nO=10,rO=`loading older messages…`,iO=`failed to load older messages — scroll up to retry`,aO=`start of session`;function oO(e){let t=[];for(let n of e.events){let e=HD(n,{convertUserTextMessages:!0,convertToolResults:!0});e.type===`message`&&t.push(e.message)}return t}function sO({config:e,setMessages:t,scrollRef:n,onPrepend:r}){let i=e?.viewerOnly===!0,a=(0,Q.useRef)(void 0),o=(0,Q.useRef)(null),s=(0,Q.useRef)(!1),c=(0,Q.useRef)(null),l=(0,Q.useRef)(0),u=(0,Q.useRef)(Ov());function d(e){return{type:`system`,subtype:`informational`,content:e,isMeta:!1,timestamp:new Date().toISOString(),uuid:u.current,level:`info`}}let f=(0,Q.useCallback)((e,r)=>{let i=oO(e);if(a.current=e.hasMore?e.firstId:null,!r){let e=n.current;c.current=e?{beforeHeight:e.getFreshScrollHeight(),count:i.length}:null}let o=e.hasMore?null:d(aO);t(e=>{let t=e[0]?.uuid===u.current?e.slice(1):e;return o?[o,...i,...t]:[...i,...t]}),Y(`[useAssistantHistory] ${r?`initial`:`older`} page: ${i.length} msgs (raw ${e.events.length}), hasMore=${e.hasMore}`)},[t]);(0,Q.useEffect)(()=>{if(!i||!e)return;let t=!1;return(async()=>{let n=await ZD(e.sessionId).catch(()=>null);if(!n||t)return;o.current=n;let r=await $D(n);t||!r||(l.current=nO,f(r,!0))})(),()=>{t=!0}},[i]);let p=(0,Q.useCallback)(async()=>{if(!i||s.current)return;let e=a.current,n=o.current;if(!(!e||!n)){s.current=!0,t(e=>{let t=e[0]?.uuid===u.current?e.slice(1):e;return[d(rO),...t]});try{let r=await eO(n,e);if(!r){t(e=>{let t=e[0]?.uuid===u.current?e.slice(1):e;return[d(iO),...t]});return}f(r,!1)}finally{s.current=!1}}},[i,f,t]);return(0,Q.useLayoutEffect)(()=>{let e=c.current;if(e===null)return;c.current=null;let t=n.current;if(!t||t.isSticky())return;let i=t.getFreshScrollHeight()-e.beforeHeight;i>0&&t.scrollBy(i),r?.(e.count,i)}),(0,Q.useEffect)(()=>{if(l.current<=0||!a.current||s.current)return;let e=n.current;if(!e)return;let t=e.getFreshScrollHeight(),r=e.getViewportHeight();Y(`[useAssistantHistory] fill-check: content=${t} viewport=${r} budget=${l.current}`),t<=r?(l.current--,p()):l.current=0}),{maybeLoadOlder:(0,Q.useCallback)(e=>{e.getScrollTop()<tO&&p()},[p])}}Rp();var cO=400;function lO({inputValue:e,setInputValue:t,isValidDigit:n,onDigit:r,enabled:i=!0,once:a=!1,debounceMs:o=cO}){let s=(0,Q.useRef)(e),c=(0,Q.useRef)(!1),l=(0,Q.useRef)(null),u=(0,Q.useRef)({setInputValue:t,isValidDigit:n,onDigit:r});u.current={setInputValue:t,isValidDigit:n,onDigit:r},(0,Q.useEffect)(()=>{if(!(!i||a&&c.current)){if(l.current!==null&&(clearTimeout(l.current),l.current=null),e!==s.current){let t=Bp(e.slice(-1));if(u.current.isValidDigit(t)){let n=e.slice(0,-1);l.current=setTimeout((e,t,n,r,i)=>{e.current=null,t.current=!0,n.current.setInputValue(r),n.current.onDigit(i)},o,l,c,u,n,t)}}return()=>{l.current!==null&&(clearTimeout(l.current),l.current=null)}}},[e,i,a,o])}B();var uO=[`0`,`1`,`2`,`3`],dO={0:`dismissed`,1:`bad`,2:`fine`,3:`good`},fO=e=>uO.includes(e),pO=`How is Claude doing this session? (optional)`;function mO({onSelect:e,inputValue:t,setInputValue:n,message:r=pO}){return lO({inputValue:t,setInputValue:n,isValidDigit:fO,onDigit:t=>e(dO[t])}),(0,$.jsxs)(b,{flexDirection:`column`,marginTop:1,children:[(0,$.jsxs)(b,{children:[(0,$.jsx)(T,{color:`ansi:cyan`,children:`● `}),(0,$.jsx)(T,{bold:!0,children:r})]}),(0,$.jsxs)(b,{marginLeft:2,children:[(0,$.jsx)(b,{width:10,children:(0,$.jsxs)(T,{children:[(0,$.jsx)(T,{color:`ansi:cyan`,children:`1`}),`: Bad`]})}),(0,$.jsx)(b,{width:10,children:(0,$.jsxs)(T,{children:[(0,$.jsx)(T,{color:`ansi:cyan`,children:`2`}),`: Fine`]})}),(0,$.jsx)(b,{width:10,children:(0,$.jsxs)(T,{children:[(0,$.jsx)(T,{color:`ansi:cyan`,children:`3`}),`: Good`]})}),(0,$.jsx)(b,{children:(0,$.jsxs)(T,{children:[(0,$.jsx)(T,{color:`ansi:cyan`,children:`0`}),`: Dismiss`]})})]})]})}hf(),B(),Rp();function hO({isOpen:e,skillName:t,updates:n,handleSelect:r,inputValue:i,setInputValue:a}){return!e||i&&!fO(i)?null:(0,$.jsx)(vO,{skillName:t,updates:n,onSelect:r,inputValue:i,setInputValue:a})}var gO=[`0`,`1`];function _O(e){return gO.includes(e)}function vO({skillName:e,updates:t,onSelect:n,inputValue:r,setInputValue:i}){let a=(0,Q.useRef)(r);return(0,Q.useEffect)(()=>{if(r!==a.current){let e=Bp(r.slice(-1));_O(e)&&(i(r.slice(0,-1)),n(e===`1`?`good`:`dismissed`))}},[r,n,i]),(0,$.jsxs)(b,{flexDirection:`column`,marginTop:1,children:[(0,$.jsxs)(b,{children:[(0,$.jsxs)(T,{color:`ansi:cyan`,children:[yf,` `]}),(0,$.jsxs)(T,{bold:!0,children:[`Skill improvement suggested for "`,e,`"`]})]}),(0,$.jsx)(b,{flexDirection:`column`,marginLeft:2,children:t.map((e,t)=>(0,$.jsxs)(T,{dimColor:!0,children:[`∙`,` `,e.change]},t))}),(0,$.jsxs)(b,{marginLeft:2,marginTop:1,children:[(0,$.jsx)(b,{width:12,children:(0,$.jsxs)(T,{children:[(0,$.jsx)(T,{color:`ansi:cyan`,children:`1`}),`: Apply`]})}),(0,$.jsx)(b,{width:14,children:(0,$.jsxs)(T,{children:[(0,$.jsx)(T,{color:`ansi:cyan`,children:`0`}),`: Dismiss`]})})]})]})}bp(),q(),zd();function yO(e){let t=J(e=>e.skillImprovement.suggestion),n=Vr(),[r,i]=(0,Q.useState)(!1),a=(0,Q.useRef)(t),o=(0,Q.useRef)(!1);t&&(a.current=t),t&&!r&&(i(!0),o.current||(o.current=!0,Z(`tengu_skill_improvement_survey`,{event_type:`appeared`,_PROTO_skill_name:t.skillName??`unknown`})));let s=(0,Q.useCallback)(t=>{let r=a.current;if(!r)return;let s=t!==`dismissed`;Z(`tengu_skill_improvement_survey`,{event_type:`responded`,response:s?`applied`:`dismissed`,_PROTO_skill_name:r.skillName}),s&&fv(r.skillName,r.updates).then(()=>{e(e=>[...e,Td(`Skill "${r.skillName}" updated with improvements.`,`suggestion`)])}),i(!1),o.current=!1,n(e=>e.skillImprovement.suggestion?{...e,skillImprovement:{suggestion:null}}:e)},[n,e]);return{isOpen:r,suggestion:a.current,handleSelect:s}}function bO(e){return{onBeforeQuery:async()=>!0,onTurnComplete:async()=>{},render:()=>null}}tr(),io(),qu(),zl();function xO(e){(0,Q.useEffect)(()=>{let t=()=>{mm()&&process.stdout.write(`
83
83
  `+Ic()+`
84
- `),Ls(e?.())};return process.on(`exit`,t),()=>{process.off(`exit`,t)}},[])}s();function SO(){(0,Q.useEffect)(()=>{process.env.USER_TYPE===`ant`&&a(process.env.CLAUDE_CODE_EXIT_AFTER_FIRST_RENDER)&&(process.stderr.write(`\nStartup time: ${Math.round(process.uptime()*1e3)}ms\n`),process.exit(0))},[])}function CO(e,t){let n=(0,Q.useRef)(e??null),r=(0,Q.useRef)(!e);return(0,Q.useEffect)(()=>{let e=n.current;if(!e)return;let i=!1;return e.then(e=>{i||(r.current=!0,n.current=null,e.length>0&&t(t=>[...e,...t]))}),()=>{i=!0}},[t]),(0,Q.useCallback)(async()=>{if(r.current||!n.current)return;let e=await n.current;r.current||(r.current=!0,n.current=null,e.length>0&&t(t=>[...e,...t]))},[t])}at(),ec(),Wp();function wO(){let[e,t]=(0,Q.useState)(()=>{if(!Zp()||Xp())return`valid`;let{key:e,source:t}=$p({skipRetrievingKeyFromApiKeyHelper:!0});return e||t===`apiKeyHelper`?`loading`:`missing`}),[n,r]=(0,Q.useState)(null);return{status:e,reverify:(0,Q.useCallback)(async()=>{if(!Zp()||Xp()){t(`valid`);return}await Gp(bt());let{key:e,source:n}=$p();if(!e){if(n===`apiKeyHelper`){t(`error`),r(Error(`API key helper did not return a valid key`));return}t(`missing`);return}try{let n=await Lc(e,!1)?`valid`:`invalid`;t(n);return}catch(e){r(e),t(`error`);return}},[]),error:n}}at(),B(),Wd(),tf(),B(),Ah(),bp(),q();function TO({screen:t,setScreen:n,showAllInTranscript:r,setShowAllInTranscript:i,messageCount:a,onEnterTranscript:o,onExitTranscript:s,virtualScrollActive:c,searchBarOpen:l=!1}){let u=J(e=>e.expandedView),d=Vr(),f=(0,Q.useCallback)(()=>{Z(`tengu_toggle_todos`,{is_expanded:u===`tasks`}),d(e=>({...e,expandedView:e.expandedView===`tasks`?`none`:`tasks`}))},[u,d]),p=J(e=>e.isBriefOnly),m=(0,Q.useCallback)(()=>{{let{isBriefEnabled:n}=(ys(),e(Mc));if(!n()&&p&&t!==`transcript`){d(e=>e.isBriefOnly?{...e,isBriefOnly:!1}:e);return}}let c=t!==`transcript`;Z(`tengu_toggle_transcript`,{is_entering:c,show_all:r,message_count:a}),n(e=>e===`transcript`?`prompt`:`transcript`),i(!1),c&&o&&o(),!c&&s&&s()},[t,n,p,r,i,a,d,o,s]),h=(0,Q.useCallback)(()=>{Z(`tengu_transcript_toggle_show_all`,{is_expanding:!r,message_count:a}),i(e=>!e)},[r,i,a]),g=(0,Q.useCallback)(()=>{Z(`tengu_transcript_exit`,{show_all:r,message_count:a}),n(`prompt`),i(!1),s&&s()},[n,r,i,a,s]),_=(0,Q.useCallback)(()=>{{let{isBriefEnabled:t}=(ys(),e(Mc));if(!t()&&!p)return;let n=!p;Z(`tengu_brief_mode_toggled`,{enabled:n,gated:!1,source:`keybinding`}),d(e=>e.isBriefOnly===n?e:{...e,isBriefOnly:n})}},[p,d]);A(`app:toggleTodos`,f,{context:`Global`}),A(`app:toggleTranscript`,m,{context:`Global`}),A(`app:toggleBrief`,_,{context:`Global`,isActive:!0}),A(`app:toggleTerminal`,(0,Q.useCallback)(()=>{},[]),{context:`Global`}),A(`app:redraw`,(0,Q.useCallback)(()=>{D.get(process.stdout)?.forceRedraw()},[]),{context:`Global`});let v=t===`transcript`;return A(`transcript:toggleShowAll`,h,{context:`Transcript`,isActive:v&&!c}),A(`transcript:exit`,g,{context:`Transcript`,isActive:v&&!l}),null}ps(),qa(),Ah();var EO={setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}};function DO({onSubmit:e,isActive:t=!0}){let n=N(),r=td(),i=(0,Q.useMemo)(()=>{if(!n)return new Set;let e=new Set;for(let t of n.bindings)t.action?.startsWith(`command:`)&&e.add(t.action);return e},[n]);return v((0,Q.useMemo)(()=>{let t={};for(let n of i){let r=n.slice(8);t[n]=()=>{e(`/${r}`,EO,void 0,{fromKeybinding:!0})}}return t},[i,e]),{context:`Chat`,isActive:t&&!r}),null}bp(),q(),j_(),Rt(),ps(),fn(),Ah(),Ft(),Ki();var OO=3e3;function kO(e){let{setToolUseConfirmQueue:t,onCancel:n,onAgentsKilled:r,isMessageSelectorVisible:i,screen:a,abortSignal:o,popCommandFromQueue:s,vimMode:c,isLocalJSXCommand:l,isSearchingHistory:u,isHelpOpen:d,inputMode:f,inputValue:p,streamMode:m}=e,h=qn(),g=Vr(),_=nC().length,{addNotification:v,removeNotification:y}=lo(),b=(0,Q.useRef)(0),x=(0,Q.useCallback)(()=>{let e={source:`escape`,streamMode:m};if(o!==void 0&&!o.aborted){Z(`tengu_cancel`,e),t(()=>[]),n();return}if(Di()&&s){s();return}Z(`tengu_cancel`,e),t(()=>[]),n()},[o,s,t,n,m]),S=Dd(),C=o!==void 0&&!o.aborted,w=_>0,T=f!==void 0&&f!==`prompt`&&!p,E=a!==`transcript`&&!u&&!i&&!l&&!d&&!S&&!(O_()&&c===`INSERT`),D=E&&(C||w)&&!T,O=E&&(C||w);A(`chat:cancel`,x,{context:`Chat`,isActive:D});let k=(0,Q.useCallback)(()=>{let e=h.getState().tasks,t=Object.entries(e).filter(([,e])=>e.type===`local_agent`&&e.status===`running`);if(t.length===0)return!1;Mi(e,g);let n=[];for(let[e,r]of t)na(e,g),n.push(r.description),sh(e,`stopped`,{toolUseId:r.toolUseId,summary:r.description});return Fi({value:n.length===1?`Background agent "${n[0]}" was stopped by the user.`:`${n.length} background agents were stopped by the user: ${n.map(e=>`"${e}"`).join(`, `)}.`,mode:`task-notification`}),r(),!0},[h,g,r]);return A(`app:interrupt`,(0,Q.useCallback)(()=>{(C||w)&&x()},[C,w,x]),{context:`Global`,isActive:O}),A(`chat:killAgents`,(0,Q.useCallback)(()=>{let e=h.getState().tasks;if(!Object.values(e).some(e=>e.type===`local_agent`&&e.status===`running`)){v({key:`kill-agents-none`,text:`No background agents running`,priority:`immediate`,timeoutMs:2e3});return}let t=Date.now();if(t-b.current<=OO){b.current=0,y(`kill-agents-confirm`),Z(`tengu_cancel`,{source:`kill_agents`}),id(),k();return}b.current=t;let n=yn(`chat:killAgents`,`Chat`,`ctrl+x ctrl+k`);v({key:`kill-agents-confirm`,text:`Press ${n} again to stop background agents`,priority:`immediate`,timeoutMs:OO})},[h,v,y,k]),{context:`Chat`}),null}B(),q(),hr();function AO(e){let t=J(e=>e.tasks),n=J(e=>e.pipeIpc),r=Object.values(t).some(ei),i=t=>{if(t.shift&&(t.key===`up`||t.key===`down`)){t.preventDefault(),r?e?.onOpenBackgroundTasks?.():t.key===`down`&&n?.statusVisible&&e?.onTogglePipeSelector&&e.onTogglePipeSelector();return}};return oe((e,t,n)=>{i(new ee(n.keypress))}),{handleKeyDown:i}}F_(),np();async function jO(e){let{ctx:t,updatedInput:n,suggestions:r,permissionMode:i}=e;try{let e=await t.runHooks(i,r,n);if(e)return e}catch(e){e instanceof Error?X(e):X(Error(`Automated permission check failed: ${String(e)}`))}return null}var MO=new Map,NO=null;function PO(){return NO??null}function FO(e,t){let n=PO();if(!n)return null;let r=Ov(),i={requestId:r,toolName:e.tool.name,toolUseID:e.toolUseID,description:e.description,input:e.input,permissionResult:e.permissionResult,permissionPromptStartTimeMs:e.permissionPromptStartTimeMs};return MO.set(r,{onResponse:t}),n({type:`permission_request`,data:JSON.stringify(i)}),r}function IO(e){e&&MO.delete(e)}function LO(e,t){if(!e)return;let n=PO();n&&n({type:`permission_cancel`,data:JSON.stringify({requestId:e,reason:t})})}bp(),Gm(),_c(),tf(),wd(),zd(),kn(),Hd();function RO(e){let t=!1,n=!1;return{resolve(r){n||(n=!0,t=!0,e(r))},isResolved(){return t},claim(){return t?!1:(t=!0,!0)}}}function zO(e,t,n,r,i,a,o){let s=r.message.id;return Object.freeze({tool:e,input:t,toolUseContext:n,assistantMessage:r,messageId:s,toolUseID:i,logDecision(r,a){Jt({tool:e,input:a?.input??t,toolUseContext:n,messageId:s,toolUseID:i},r,a?.permissionPromptStartTimeMs)},logCancelled(){Z(`tengu_tool_use_cancelled`,{messageID:s,toolName:Km(e.name)})},async persistPermissions(e){return e.length===0?!1:(Hi(e),a(sn(n.getAppState().toolPermissionContext,e)),e.some(e=>rl(e.destination)))},resolveIfAborted(e){return n.abortController.signal.aborted?(this.logCancelled(),e(this.cancelAndAbort(void 0,!0)),!0):!1},cancelAndAbort(t,r,i){let a=!!n.agentId,o=t?`${a?bs:_u}${t}`:a?Fc:Ol,s=a?o:$s(o);return(r||!t&&!i?.length&&!a)&&(Y(`Aborting: tool=${e.name} isAbort=${r} hasFeedback=${!!t} isSubagent=${a}`),n.abortController.abort()),{behavior:`ask`,message:s,contentBlocks:i}},async runHooks(r,a,o,s){for await(let c of er(e.name,i,t,n,r,a,n.abortController.signal))if(c.permissionRequestResult){let r=c.permissionRequestResult;if(r.behavior===`allow`){let e=r.updatedInput??o??t;return await this.handleHookAllow(e,r.updatedPermissions??[],s)}else if(r.behavior===`deny`)return this.logDecision({decision:`reject`,source:{type:`hook`}},{permissionPromptStartTimeMs:s}),r.interrupt&&(Y(`Hook interrupt: tool=${e.name} hookMessage=${r.message}`),n.abortController.abort()),this.buildDeny(r.message||`Permission denied by hook`,{type:`hook`,hookName:`PermissionRequest`,reason:r.message})}return null},buildAllow(e,t){return{behavior:`allow`,updatedInput:e,userModified:t?.userModified??!1,...t?.decisionReason&&{decisionReason:t.decisionReason},...t?.acceptFeedback&&{acceptFeedback:t.acceptFeedback},...t?.contentBlocks&&t.contentBlocks.length>0&&{contentBlocks:t.contentBlocks}}},buildDeny(e,t){return{behavior:`deny`,message:e,decisionReason:t}},async handleUserAllow(n,r,i,a,o,s){let c=await this.persistPermissions(r);this.logDecision({decision:`accept`,source:{type:`user`,permanent:c}},{input:n,permissionPromptStartTimeMs:a});let l=e.inputsEquivalent?!e.inputsEquivalent(t,n):!1,u=i?.trim();return this.buildAllow(n,{userModified:l,decisionReason:s,acceptFeedback:u||void 0,contentBlocks:o})},async handleHookAllow(e,t,n){let r=await this.persistPermissions(t);return this.logDecision({decision:`accept`,source:{type:`hook`,permanent:r}},{input:e,permissionPromptStartTimeMs:n}),this.buildAllow(e,{decisionReason:{type:`hook`,hookName:`PermissionRequest`}})},pushToQueue(e){o?.push(e)},removeFromQueue(){o?.remove(i)},updateQueueItem(e){o?.update(i,e)}})}function BO(e){return{push(t){e(e=>[...e,t])},remove(t){e(e=>e.filter(e=>e.toolUseID!==t))},update(t,n){e(e=>e.map(e=>e.toolUseID===t?{...e,...n}:e))}}}tf(),B(),_c(),Tt(),cf();function VO(e,t){let{ctx:n,description:r,result:i,awaitAutomatedChecksBeforeDialog:a,bridgeCallbacks:o}=e,{resolve:s,isResolved:c,claim:l}=RO(t),u,d,f=o?Ov():void 0,p=Date.now(),m=i.updatedInput??n.input,h=null;function g(e){LO(h,e),IO(h),h=null}function _(){IO(h),h=null}let v={assistantMessage:n.assistantMessage,tool:n.tool,description:r,input:m,toolUseContext:n.toolUseContext,toolUseID:n.toolUseID,permissionResult:i,permissionPromptStartTimeMs:p,onUserInteraction(){Date.now()-p<200||ua(n.toolUseID)},onDismissCheckmark(){u&&(clearTimeout(u),u=void 0,d&&(n.toolUseContext.abortController.signal.removeEventListener(`abort`,d),d=void 0),n.removeFromQueue())},onAbort(){l()&&(g(`Permission request was aborted locally in sub.`),o&&f&&(o.sendResponse(f,{behavior:`deny`,message:`User aborted`}),o.cancelRequest(f)),n.logCancelled(),n.logDecision({decision:`reject`,source:{type:`user_abort`}},{permissionPromptStartTimeMs:p}),s(n.cancelAndAbort(void 0,!0)))},async onAllow(e,t,r,a){l()&&(g(`Permission request was approved locally in sub.`),o&&f&&(o.sendResponse(f,{behavior:`allow`,updatedInput:e,updatedPermissions:t}),o.cancelRequest(f)),s(await n.handleUserAllow(e,t,r,p,a,i.decisionReason)))},onReject(e,t){l()&&(g(`Permission request was rejected locally in sub.`),o&&f&&(o.sendResponse(f,{behavior:`deny`,message:e??`User denied permission`}),o.cancelRequest(f)),n.logDecision({decision:`reject`,source:{type:`user_reject`,hasFeedback:!!e}},{permissionPromptStartTimeMs:p}),s(n.cancelAndAbort(e,void 0,t)))},async recheckPermission(){if(c())return;let e=await Co(n.tool,n.input,n.toolUseContext,n.assistantMessage,n.toolUseID);if(e.behavior===`allow`){if(!l())return;g(`Permission request was resolved locally in sub.`),o&&f&&o.cancelRequest(f),n.removeFromQueue(),n.logDecision({decision:`accept`,source:`config`}),s(n.buildAllow(e.updatedInput??n.input))}}};if(n.pushToQueue(v),h=FO(v,e=>{l()&&(_(),ua(n.toolUseID),n.removeFromQueue(),o&&f&&o.cancelRequest(f),e.behavior===`allow`?(async()=>{e.permissionUpdates?.length&&n.persistPermissions(e.permissionUpdates),n.logDecision({decision:`accept`,source:{type:`user`,permanent:!!e.permissionUpdates?.length}},{permissionPromptStartTimeMs:p}),s(n.buildAllow(e.updatedInput??m,{acceptFeedback:e.feedback,contentBlocks:e.contentBlocks}))})():(n.logDecision({decision:`reject`,source:{type:`user_reject`,hasFeedback:!!e.feedback}},{permissionPromptStartTimeMs:p}),s(n.cancelAndAbort(e.feedback,void 0,e.contentBlocks))))}),o&&f){o.sendRequest(f,n.tool.name,m,n.toolUseID,r,i.suggestions,i.blockedPath);let e=n.toolUseContext.abortController.signal,t=o.onResponse(f,r=>{l()&&(g(`Permission request was resolved by bridge before pipe response.`),e.removeEventListener(`abort`,t),ua(n.toolUseID),n.removeFromQueue(),r.behavior===`allow`?(r.updatedPermissions?.length&&n.persistPermissions(r.updatedPermissions),n.logDecision({decision:`accept`,source:{type:`user`,permanent:!!r.updatedPermissions?.length}},{permissionPromptStartTimeMs:p}),s(n.buildAllow(r.updatedInput??m))):(n.logDecision({decision:`reject`,source:{type:`user_reject`,hasFeedback:!!r.message}},{permissionPromptStartTimeMs:p}),s(n.cancelAndAbort(r.message))))});e.addEventListener(`abort`,t,{once:!0})}a||(async()=>{if(c())return;let e=n.toolUseContext.getAppState(),t=await n.runHooks(e.toolPermissionContext.mode,i.suggestions,i.updatedInput,p);!t||!l()||(g(`Permission request was resolved by hook before pipe response.`),o&&f&&o.cancelRequest(f),n.removeFromQueue(),s(t))})()}bp(),Gm(),B(),_c(),Tt(),tf(),cf(),np(),Gn(),Zd(),Hd();function HO(e,t){return(0,Q.useCallback)(async(n,r,i,a,o,s)=>new Promise(c=>{let l=zO(n,r,i,a,o,t,BO(e));if(!l.resolveIfAborted(c))return(s===void 0?Co(n,r,i,a,o):Promise.resolve(s)).then(async e=>{if(process.env.USER_TYPE===`ant`&&Z(`tengu_internal_tool_permission_decision`,{toolName:Km(n.name),behavior:e.behavior,input:sf(r),messageID:l.messageId,isMcp:n.isMcp??!1}),e.behavior===`allow`){if(l.resolveIfAborted(c))return;e.decisionReason?.type===`classifier`&&e.decisionReason.classifier===`auto-mode`&&Ys(o,e.decisionReason.reason),l.logDecision({decision:`accept`,source:`config`}),c(l.buildAllow(e.updatedInput??r,{decisionReason:e.decisionReason}));return}let t=i.getAppState(),a=await n.description(r,{isNonInteractiveSession:i.options.isNonInteractiveSession,toolPermissionContext:t.toolPermissionContext,tools:i.options.tools});if(!l.resolveIfAborted(c))switch(e.behavior){case`deny`:Jt({tool:n,input:r,toolUseContext:i,messageId:l.messageId,toolUseID:o},{decision:`reject`,source:`config`}),e.decisionReason?.type===`classifier`&&e.decisionReason.classifier===`auto-mode`&&(I_({toolName:n.name,display:a,reason:e.decisionReason.reason??``,timestamp:Date.now()}),i.addNotification?.({key:`auto-mode-denied`,priority:`immediate`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(T,{color:`error`,children:[n.userFacingName(r).toLowerCase(),` denied by auto mode`]}),(0,$.jsx)(T,{dimColor:!0,children:` · /permissions`})]})})),c(e);return;case`ask`:if(t.toolPermissionContext.awaitAutomatedChecksBeforeDialog){let n=await jO({ctx:l,updatedInput:e.updatedInput,suggestions:e.suggestions,permissionMode:t.toolPermissionContext.mode});if(n){c(n);return}}if(l.resolveIfAborted(c))return;VO({ctx:l,description:a,result:e,awaitAutomatedChecksBeforeDialog:t.toolPermissionContext.awaitAutomatedChecksBeforeDialog,bridgeCallbacks:t.replBridgePermissionCallbacks},c);return}}).catch(e=>{e instanceof qd||e instanceof Xd?(Y(`Permission check threw ${e.constructor.name} for tool=${n.name}: ${e.message}`),l.logCancelled(),c(l.cancelAndAbort(void 0,!0))):(X(e),c(l.cancelAndAbort(void 0,!0)))}).finally(()=>{ua(o)})}),[e,t])}ah(),bp(),la(),zu(),Wd(),tf(),As(),cf(),np(),Ki(),rm();function UO(){yu(0)}async function WO(e){let{helpers:t,queryGuard:n,isExternalLoading:r=!1,commands:i,onInputChange:a,setPastedContents:o,setToolJSX:s,getToolUseContext:c,messages:l,mainLoopModel:u,ideSelection:d,setUserInputOnProcessing:f,setAbortController:p,onQuery:m,setAppState:h,onBeforeQuery:g,canUseTool:_,queuedCommands:v,uuid:y,skipSlashCommands:b,bridgeOrigin:x}=e,{setCursorOffset:S,clearBuffer:C,resetHistory:w}=t;if(v?.length){Ju(),await GO({queuedCommands:v,messages:l,mainLoopModel:u,ideSelection:d,querySource:e.querySource,commands:i,queryGuard:n,setToolJSX:s,getToolUseContext:c,setUserInputOnProcessing:f,setAbortController:p,onQuery:m,setAppState:h,onBeforeQuery:g,resetHistory:w,canUseTool:_,onInputChange:a});return}let T=e.input??``,E=e.mode??`prompt`,D=e.pastedContents??{},O=new Set(nc(T).map(e=>e.id)),k=Object.fromEntries(Object.entries(D).filter(([,e])=>e.type!==`image`||O.has(e.id))),ee=Object.values(k).some(Nd);if(T.trim()===``)return;if(!b&&[`exit`,`quit`,`:q`,`:q!`,`:wq`,`:wq!`].includes(T.trim())){i.find(e=>e.name===`exit`)?WO({...e,input:`/exit`}):UO();return}let A=hs(T,k),j=nc(T).filter(e=>k[e.id]?.type===`text`),M=j.length;if(Z(`tengu_paste_text`,{pastedTextCount:M,pastedTextBytes:j.reduce((e,t)=>e+(k[t.id]?.content.length??0),0)}),!b&&A.trim().startsWith(`/`)){let t=A.trim(),d=t.indexOf(` `),f=d===-1?t.slice(1):t.slice(1,d),p=d===-1?``:t.slice(d+1).trim(),m=i.find(e=>e.immediate&&Bu(e)&&(e.name===f||e.aliases?.includes(f)||Ns(e)===f));if(m&&m.type===`local-jsx`&&(n.isActive||r)){Z(`tengu_immediate_command_executed`,{commandName:m.name}),a(``),S(0),o({}),C();let t=c(l,[],No(),u),n=!1,r=await(await m.load()).call((t,r)=>{n=!0,s({jsx:null,shouldHidePromptInput:!1,clearLocalJSX:!0}),t&&r?.display!==`skip`&&e.addNotification&&e.addNotification({key:`immediate-${m.name}`,text:t,priority:`immediate`}),r?.nextInput&&(r.submitNextInput?pn({value:r.nextInput,mode:`prompt`}):a(r.nextInput))},t,p);r&&!n&&s({jsx:r,shouldHidePromptInput:!1,isLocalJSXCommand:!0,isImmediate:!0});return}}if(n.isActive||r){if(E!==`prompt`&&E!==`bash`)return;e.hasInterruptibleToolInProgress&&(Y(`[interrupt] Aborting current turn: streamMode=${e.streamMode}`),Z(`tengu_cancel`,{source:`interrupt_on_submit`,streamMode:e.streamMode}),e.abortController?.abort(`interrupt`)),pn({value:A.trim(),preExpansionValue:T.trim(),mode:E,pastedContents:ee?k:void 0,skipSlashCommands:b,bridgeOrigin:x,uuid:y}),a(``),S(0),o({}),w(),C();return}Ju(),await GO({queuedCommands:[{value:A,preExpansionValue:T,mode:E,pastedContents:ee?k:void 0,skipSlashCommands:b,bridgeOrigin:x,uuid:y}],messages:l,mainLoopModel:u,ideSelection:d,querySource:e.querySource,commands:i,queryGuard:n,setToolJSX:s,getToolUseContext:c,setUserInputOnProcessing:f,setAbortController:p,onQuery:m,setAppState:h,onBeforeQuery:g,resetHistory:w,canUseTool:_,onInputChange:a})}async function GO(e){let{messages:t,mainLoopModel:n,ideSelection:r,querySource:i,queryGuard:a,setToolJSX:o,getToolUseContext:s,setUserInputOnProcessing:c,setAbortController:l,onQuery:u,setAppState:d,onBeforeQuery:f,resetHistory:p,canUseTool:m,queuedCommands:h}=e,g=No();l(g);function _(){return s(t,[],g,n)}try{a.reserve(),fl(`query_process_user_input_start`);let s=[],v=!1,y,b,x,S,C=h??[],w=await gs(C);C=w.attachmentCommands;let T=w.claimedCommands;if(C.length===0){l(null);return}let E=C[0]?.workload,D=E!==void 0&&C.every(e=>e.workload===E)?E:void 0,O=new Set,k;try{await Dm(D,async()=>{for(let e=0;e<C.length;e++){let n=C[e],a=e===0,l=n.autonomy?.runId,u=await fg({input:n.value,preExpansionInput:n.preExpansionValue,mode:n.mode,setToolJSX:o,context:_(),pastedContents:a?n.pastedContents:void 0,messages:t,setUserInputOnProcessing:a?c:void 0,isAlreadyProcessing:!a,querySource:i,canUseTool:m,uuid:n.uuid,ideSelection:a?r:void 0,skipSlashCommands:n.skipSlashCommands,bridgeOrigin:n.bridgeOrigin,isMeta:n.isMeta,skipAttachments:!a,autonomy:n.autonomy});l&&u.deferAutonomyCompletion&&O.add(l);let d=n.origin??(n.mode===`task-notification`?{kind:`task-notification`}:void 0);if(d)for(let e of u.messages)e.type===`user`&&(e.origin=d);s.push(...u.messages),a&&(v=u.shouldQuery,y=u.allowedTools,b=u.model,x=u.nextInput,S=u.submitNextInput)}if(fl(`query_process_user_input_end`),xd()&&(fl(`query_file_history_snapshot_start`),s.filter(dg).forEach(e=>{Aa(e=>{d(t=>({...t,fileHistory:e(t.fileHistory)}))},e.uuid)}),fl(`query_file_history_snapshot_end`)),s.length){p(),o({jsx:null,shouldHidePromptInput:!1,clearLocalJSX:!0});let e=C[0],t=e?.mode??`prompt`,r=e&&typeof e.value==`string`?e.value:void 0,i=t===`prompt`;await u(s,g,v,y??[],b?Kp(b,n):n,i?f:void 0,r)}else a.cancelReservation(),o({jsx:null,shouldHidePromptInput:!1,clearLocalJSX:!0}),p(),l(null);x&&(S?pn({value:x,mode:`prompt`}):e.onInputChange(x))})}catch(e){k=e}if(T.length){let e=T.filter(e=>{let t=e.autonomy?.runId;return!t||!O.has(t)});if(k)try{await Nl({commands:e,outcome:{type:`failed`,error:k},currentDir:Gd(),priority:`later`,workload:D})}catch(e){X($d(e))}else try{let t=await Nl({commands:e,outcome:{type:`completed`},currentDir:Gd(),priority:`later`,workload:D});for(let e of t)pn(e)}catch(e){X($d(e))}}if(k)throw k}finally{a.cancelReservation(),c(void 0)}}Ki();function KO(e){if(typeof e.value==`string`)return e.value.trim().startsWith(`/`)&&(!e.skipSlashCommands||e.bridgeOrigin===!0);for(let t of e.value)if(t.type===`text`)return t.text.trim().startsWith(`/`)&&(!e.skipSlashCommands||e.bridgeOrigin===!0);return!1}function qO({executeInput:e}){let t=e=>e.agentId===void 0,n=$r(t);if(!n)return{processed:!1};if(KO(n)||n.mode===`bash`)return e([Ba(t)]),{processed:!0};let r=n.mode,i=bn(e=>t(e)&&!KO(e)&&e.mode===r);return i.length===0?{processed:!1}:(e(i),{processed:!0})}Ki();function JO({executeQueuedInput:e,hasActiveLocalJsxUI:t,queryGuard:n}){let r=(0,Q.useSyncExternalStore)(n.subscribe,n.getSnapshot),i=(0,Q.useSyncExternalStore)(zt,Hc);(0,Q.useEffect)(()=>{r||t||i.length!==0&&qO({executeInput:e})},[i,r,e,t,n])}function YO({isLoading:e,onSubmitMessage:t}){let n=Dc();(0,Q.useEffect)(()=>{if(e)return;let r=n.poll();r&&t(r.content)},[e,(0,Q.useSyncExternalStore)((0,Q.useMemo)(()=>n.subscribe.bind(n),[n]),(0,Q.useCallback)(()=>n.revision,[n])),n,t])}function XO(e,t){return e&&t&&t.length>0?Gi([...e,...t],`name`):e||[]}function ZO(e,t){return(0,Q.useMemo)(()=>XO(e,t),[e,t])}mr(),ug(),Lg(),Ti();function QO(e,t){return(0,Q.useMemo)(()=>t.length>0?Gi([...e,...t],`name`):e,[e,t])}la(),np();function $O(e,t){let n=(0,Q.useCallback)(async()=>{if(e)try{ho(),t(await su(e))}catch(e){e instanceof Error&&X(e)}},[e,t]);(0,Q.useEffect)(()=>Dg.subscribe(n),[n])}np(),Ee(),mn(),Oe();var ek=Te(()=>ye({method:xe(`selection_changed`),params:ye({selection:ye({start:ye({line:Se(),character:Se()}),end:ye({line:Se(),character:Se()})}).nullable().optional(),text:be().optional(),filePath:be().optional()})}));function tk(e,t){let n=(0,Q.useRef)(!1),r=(0,Q.useRef)(null);(0,Q.useEffect)(()=>{let i=Ma(e);if(r.current!==(i??null)&&(n.current=!1,r.current=i||null,t({lineCount:0,lineStart:void 0,text:void 0,filePath:void 0})),n.current||!i)return;let a=e=>{if(e.selection?.start&&e.selection?.end){let{start:n,end:r}=e.selection,i=r.line-n.line+1;r.character===0&&i--,t({lineCount:i,lineStart:n.line,text:e.text,filePath:e.filePath})}};i.client.setNotificationHandler(ek(),e=>{if(r.current===i)try{let t=e.params;t.selection&&t.selection.start&&t.selection.end?a(t):t.text!==void 0&&a({selection:null,text:t.text,filePath:t.filePath})}catch(e){X(e)}}),n.current=!0},[e,t])}el(),B(),X_(),q(),Ep();function nk({task:e,selected:t}){let n=$_(e.startTime,e.status===`running`),r=e.progress?.tokenCount??0;return(0,$.jsxs)(b,{flexDirection:`row`,width:`100%`,justifyContent:`space-between`,children:[(0,$.jsxs)(b,{flexDirection:`row`,flexShrink:1,children:[(0,$.jsx)(T,{color:e.status===`running`?`success`:void 0,children:t?`● `:`○ `}),(0,$.jsxs)(T,{bold:t,wrap:`truncate-end`,children:[e.agentType,` `,(0,$.jsx)(T,{dimColor:!0,children:e.description})]})]}),(0,$.jsx)(b,{flexShrink:0,children:(0,$.jsxs)(T,{dimColor:!0,children:[n,` · ↓ `,Ap(r),` tokens`]})})]})}function rk(e,t){return e?`↑/↓ to select · Enter to view`:t?t.status===`running`?`shift+↓ to manage · x to stop`:`shift+↓ to manage · x to clear`:`shift+↓ to manage background agents`}function ik(){let e=wC(),t=J(e=>e.viewingAgentTaskId),n=J(e=>e.footerSelection),r=J(e=>e.selectedBgAgentIndex);if(e.length===0)return null;let i=n===`bg_agent`,a=i?r===-1?null:e[r]?.agentId??null:t??null,o=i?r===-1:t===void 0,s=t?e.find(e=>e.agentId===t)??null:null;return(0,$.jsxs)(b,{flexDirection:`column`,width:`100%`,children:[(0,$.jsxs)(b,{flexDirection:`row`,width:`100%`,justifyContent:`space-between`,children:[(0,$.jsxs)(T,{bold:o,children:[o?`● `:`○ `,`main`]}),(0,$.jsx)(T,{dimColor:!0,children:rk(i,s)})]}),e.map(e=>(0,$.jsx)(nk,{task:e,selected:e.agentId===a},e.agentId))]})}tf(),Ni();var ak=1e3;function ok({taskListId:e,isLoading:t,onSubmitTask:n}){let r=(0,Q.useRef)(null),i=(0,Q.useRef)(null),a=(0,Q.useRef)(t);a.current=t;let o=(0,Q.useRef)(n);o.current=n;let s=e!==void 0,c=e??`tasklist`,l=(0,Q.useRef)(async()=>{});l.current=async()=>{if(!s||a.current)return;let t=await Et(e);if(r.current!==null){let e=t.find(e=>e.id===r.current);if(!e||e.status===`completed`)Y(`[TaskListWatcher] Task #${r.current} is marked complete, ready for next task`),r.current=null;else return}let n=sk(t);if(!n)return;Y(`[TaskListWatcher] Found available task #${n.id}: ${n.subject}`);let i=await Da(e,n.id,c);if(!i.success){Y(`[TaskListWatcher] Failed to claim task #${n.id}: ${i.reason}`);return}r.current=n.id;let l=ck(n);Y(`[TaskListWatcher] Submitting task #${n.id} as prompt`),o.current(l)||(Y(`[TaskListWatcher] Failed to submit task #${n.id}, releasing claim`),await fi(e,n.id,{owner:void 0}),r.current=null)};let u=(0,Q.useRef)(()=>{});(0,Q.useEffect)(()=>{if(!s)return;nd(e);let t=un(e),n=null,r=()=>{i.current&&clearTimeout(i.current),i.current=setTimeout(e=>void e.current(),ak,l)};u.current=r;try{n=Ev(t,r),n.unref(),Y(`[TaskListWatcher] Watching for tasks in ${t}`)}catch(e){Y(`[TaskListWatcher] Failed to watch ${t}: ${e}`)}return r(),()=>{u.current=()=>{},n&&n.close(),i.current&&clearTimeout(i.current)}},[s,e]),(0,Q.useEffect)(()=>{s&&(t||u.current())},[s,t])}function sk(e){let t=new Set(e.filter(e=>e.status!==`completed`).map(e=>e.id));return e.find(e=>e.status!==`pending`||e.owner?!1:e.blockedBy.every(e=>!t.has(e)))}function ck(e){let t=`Complete all open tasks. Start with task #${e.id}: \n\n ${e.subject}`;return e.description&&(t+=`\n\n${e.description}`),t}Rf(),s(),mn();function lk({autoConnectIdeFlag:e,ideToInstallExtension:t,setDynamicMcpConfig:n,setShowIdeOnboarding:r,setIDEInstallationState:o}){(0,Q.useEffect)(()=>{function s(r){r&&(Lf().autoConnectIde||e||Gc()||process.env.CLAUDE_CODE_SSE_PORT||t||a(process.env.CLAUDE_CODE_AUTO_CONNECT_IDE))&&!i(process.env.CLAUDE_CODE_AUTO_CONNECT_IDE)&&n(e=>e?.ide?e:{...e,ide:{type:r.url.startsWith(`ws:`)?`ws-ide`:`sse-ide`,url:r.url,ideName:r.name,authToken:r.authToken,ideRunningInWindows:r.ideRunningInWindows,scope:`dynamic`}})}Ri(s,t,()=>r(!0),e=>o(e))},[e,t,n,r,o])}b_(),kh(),B(),Ah(),cn(),q(),Rf(),Cf(),s();function uk({onBackgroundSession:e,isLoading:t}){let n=Vr(),r=qn(),[i,o]=(0,Q.useState)(!1),s=R(o,e,()=>{}),c=(0,Q.useCallback)(()=>{a(process.env.CLAUDE_CODE_DISABLE_BACKGROUND_TASKS)||(Ga(r.getState())?(cd(()=>r.getState(),n),Lf().hasUsedBackgroundTask||If(e=>e.hasUsedBackgroundTask?e:{...e,hasUsedBackgroundTask:!0})):a(`false`)&&t&&s())},[n,r,t,s]),l=J(Ga),u=a(`false`);A(`task:background`,c,{context:`Task`,isActive:l||u&&t});let d=ud(`task:background`,`Task`,`ctrl+b`),f=mf.terminal===`tmux`&&d===`ctrl+b`?`ctrl+b ctrl+b`:d;return!t||!i?null:(0,$.jsx)(b,{paddingLeft:2,children:(0,$.jsx)(T,{dimColor:!0,children:(0,$.jsx)(h,{shortcut:f,action:`background`})})})}q();function dk({setMessages:e,setIsLoading:t,resetLoadingState:n,setAbortController:r,onBackgroundQuery:i}){let a=J(e=>e.foregroundedTaskId),o=J(e=>e.foregroundedTaskId?e.tasks[e.foregroundedTaskId]:void 0),s=Vr(),c=(0,Q.useRef)(0),l=(0,Q.useCallback)(()=>{if(a){s(e=>{let t=e.foregroundedTaskId;if(!t)return e;let n=e.tasks[t];return n?{...e,foregroundedTaskId:void 0,tasks:{...e.tasks,[t]:{...n,isBackgrounded:!0}}}:{...e,foregroundedTaskId:void 0}}),e([]),n(),r(null);return}i()},[a,s,e,n,r,i]);return(0,Q.useEffect)(()=>{if(!a){c.current=0;return}if(!o||o.type!==`local_agent`){s(e=>({...e,foregroundedTaskId:void 0})),n(),c.current=0;return}let i=o.messages??[];if(i.length!==c.current&&(c.current=i.length,e([...i])),o.status===`running`){let e=o.abortController;if(e?.signal.aborted){s(e=>{if(!e.foregroundedTaskId)return e;let t=e.tasks[e.foregroundedTaskId];return t?{...e,foregroundedTaskId:void 0,tasks:{...e.tasks,[e.foregroundedTaskId]:{...t,isBackgrounded:!0}}}:{...e,foregroundedTaskId:void 0}}),n(),r(null),c.current=0;return}t(!0),e&&r(e)}else s(e=>{let t=e.foregroundedTaskId;if(!t)return e;let n=e.tasks[t];return n?{...e,foregroundedTaskId:void 0,tasks:{...e.tasks,[t]:{...n,isBackgrounded:!0}}}:{...e,foregroundedTaskId:void 0}}),n(),r(null),c.current=0},[a,o,s,e,t,n,r]),{handleBackgroundSession:l}}ri(),rg(),Xg();function fk(e,t){return t}async function pk(e,t,n){try{Y(`Collecting transcript for sharing`,{level:`info`});let r=Fr(e),i=await Ir(Bl(e)),a;try{let e=Tn(),{size:t}=await Av(e);t<=52428800?a=await kv(e,`utf-8`):Y(`Skipping raw transcript read: file too large (${t} bytes)`,{level:`warn`})}catch{}let o=D_(sf({trigger:t,version:`0.0.5`,platform:process.platform,transcript:r,subagentTranscripts:Object.keys(i).length>0?i:void 0,rawTranscriptJsonl:a}));await pm();let s=Vp();if(s.error)return{success:!1};let c={"Content-Type":`application/json`,"User-Agent":Cm(),...s.headers},l=await f.post(`https://api.anthropic.com/api/claude_code_shared_session_transcripts`,{content:o,appearance_id:n},{headers:c,timeout:3e4});if(l.status===200||l.status===201){let e=l.data;return Y(`Transcript shared successfully`,{level:`info`}),{success:!0,transcriptId:e?.transcript_id}}return{success:!1}}catch(e){return Y(Jd(e),{level:`error`}),{success:!1}}}var mk=t((()=>{p(),Wp(),tf(),cf(),zd(),Jc(),Zd()}));Dh(),mk();function hk({hideThanksAfterMs:e,onOpen:t,onSelect:n,shouldShowTranscriptPrompt:r,onTranscriptPromptShown:i,onTranscriptSelect:a}){let[o,s]=(0,Q.useState)(`closed`),[c,l]=(0,Q.useState)(null),u=(0,Q.useRef)(Ov()),d=(0,Q.useRef)(null),f=(0,Q.useCallback)(()=>{s(`thanks`),setTimeout((e,t)=>{e(`closed`),t(null)},e,s,l)},[e]),p=(0,Q.useCallback)(()=>{s(`submitted`),setTimeout(s,e,`closed`)},[e]);return{state:o,lastResponse:c,open:(0,Q.useCallback)(()=>{o===`closed`&&(s(`open`),u.current=Ov(),t(u.current))},[o,t]),handleSelect:(0,Q.useCallback)(e=>{if(l(e),d.current=e,n(u.current,e),e===`dismissed`)s(`closed`),l(null);else if(r?.(e))return s(`transcript_prompt`),i?.(u.current,e),!0;else f();return!1},[f,n,r,i]),handleTranscriptSelect:(0,Q.useCallback)(e=>{switch(e){case`yes`:s(`submitting`),(async()=>{try{await a?.(u.current,e,d.current)?p():f()}catch{f()}})();break;case`no`:case`dont_ask_again`:a?.(u.current,e,d.current),f();break}},[f,p,a])}}bp(),Rf(),s(),zd(),rm(),Af();var gk={minTimeBeforeFeedbackMs:6e5,minTimeBetweenFeedbackMs:36e5,minTimeBetweenGlobalFeedbackMs:1e8,minUserTurnsBeforeFeedback:5,minUserTurnsBetweenFeedback:10,hideThanksAfterMs:3e3,onForModels:[`*`],probability:.005},_k={probability:0};function vk(e,t,n,r=`session`,i=!1){let o=(0,Q.useRef)(`unknown`);o.current=nl(e)?.message?.id||`unknown`;let[s,c]=(0,Q.useState)(()=>({timeLastShown:null,submitCountAtLastAppearance:null})),l=fk(`tengu_feedback_survey_config`,gk),u=fk(`tengu_bad_survey_transcript_ask_config`,_k),d=fk(`tengu_good_survey_transcript_ask_config`,_k),f=Mf().feedbackSurveyRate,p=(0,Q.useRef)(Date.now()),m=(0,Q.useRef)(n),h=(0,Q.useRef)(n);h.current=n;let g=(0,Q.useRef)(e);g.current=e;let _=(0,Q.useRef)(!1),v=(0,Q.useRef)(null),y=(0,Q.useCallback)((e,t)=>{c(n=>n.timeLastShown===e&&n.submitCountAtLastAppearance===t?n:{timeLastShown:e,submitCountAtLastAppearance:t}),Lf().feedbackSurveyState?.lastShownTime!==e&&If(t=>({...t,feedbackSurveyState:{lastShownTime:e}}))},[]),b=(0,Q.useCallback)(e=>{y(Date.now(),h.current),Z(`tengu_feedback_survey_event`,{event_type:`appeared`,appearance_id:e,last_assistant_message_id:o.current,survey_type:r}),fh(`feedback_survey`,{event_type:`appeared`,appearance_id:e,survey_type:r})},[y,r]),x=(0,Q.useCallback)((e,t)=>{y(Date.now(),h.current),Z(`tengu_feedback_survey_event`,{event_type:`responded`,appearance_id:e,response:t,last_assistant_message_id:o.current,survey_type:r}),fh(`feedback_survey`,{event_type:`responded`,appearance_id:e,response:t,survey_type:r})},[y,r]),S=(0,Q.useCallback)(e=>{if(e!==`bad`&&e!==`good`||Lf().transcriptShareDismissed||!Xa(`allow_product_feedback`))return!1;let t=e===`bad`?u.probability:d.probability;return Math.random()<=t},[u.probability,d.probability]),C=(0,Q.useCallback)((e,t)=>{let n=t===`good`?`good_feedback_survey`:`bad_feedback_survey`;Z(`tengu_feedback_survey_event`,{event_type:`transcript_prompt_appeared`,appearance_id:e,last_assistant_message_id:o.current,survey_type:r,trigger:n}),fh(`feedback_survey`,{event_type:`transcript_prompt_appeared`,appearance_id:e,survey_type:r})},[r]),w=(0,Q.useCallback)(async(e,t,n)=>{let i=n===`good`?`good_feedback_survey`:`bad_feedback_survey`;if(Z(`tengu_feedback_survey_event`,{event_type:`transcript_share_${t}`,appearance_id:e,last_assistant_message_id:o.current,survey_type:r,trigger:i}),t===`dont_ask_again`&&If(e=>({...e,transcriptShareDismissed:!0})),t===`yes`){let t=await pk(g.current,i,e);return Z(`tengu_feedback_survey_event`,{event_type:t.success?`transcript_share_submitted`:`transcript_share_failed`,appearance_id:e,trigger:i}),t.success}return!1},[r]),{state:T,lastResponse:E,open:D,handleSelect:O,handleTranscriptSelect:k}=hk({hideThanksAfterMs:l.hideThanksAfterMs,onOpen:b,onSelect:x,shouldShowTranscriptPrompt:S,onTranscriptPromptShown:C,onTranscriptSelect:w}),ee=Tm(),A=(0,Q.useMemo)(()=>l.onForModels.length===0?!1:l.onForModels.includes(`*`)?!0:l.onForModels.includes(ee),[l.onForModels,ee]),j=(0,Q.useMemo)(()=>{if(T!==`closed`||t||i)return!1;if(process.env.CLAUDE_FORCE_DISPLAY_SURVEY&&!s.timeLastShown)return!0;if(!A||a(process.env.CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY)||Oh()||!Xa(`allow_product_feedback`))return!1;if(s.timeLastShown){if(Date.now()-s.timeLastShown<l.minTimeBetweenFeedbackMs||s.submitCountAtLastAppearance!==null&&n<s.submitCountAtLastAppearance+l.minUserTurnsBetweenFeedback)return!1}else if(Date.now()-p.current<l.minTimeBeforeFeedbackMs||n<m.current+l.minUserTurnsBeforeFeedback)return!1;if(v.current!==n&&(v.current=n,_.current=Math.random()<=(f??l.probability)),!_.current)return!1;let e=Lf().feedbackSurveyState;return!(e?.lastShownTime&&Date.now()-e.lastShownTime<l.minTimeBetweenGlobalFeedbackMs)},[T,t,i,A,s.timeLastShown,s.submitCountAtLastAppearance,n,l.minTimeBetweenFeedbackMs,l.minTimeBetweenGlobalFeedbackMs,l.minUserTurnsBetweenFeedback,l.minTimeBeforeFeedbackMs,l.minUserTurnsBeforeFeedback,l.probability,f]);return(0,Q.useEffect)(()=>{j&&D()},[j,D]),{state:T,lastResponse:E,handleSelect:O,handleTranscriptSelect:k}}Dh(),bp(),uo(),Rf(),s(),zd(),hh(),mk();var yk=3e3,bk=`tengu_memory_survey_event`,xk=`memory_survey`;function Sk(e,t,n=!1,{enabled:r=!0}={}){let i=(0,Q.useRef)(new Set),a=(0,Q.useRef)(!1),o=(0,Q.useRef)(e);o.current=e;let{state:s,lastResponse:c,open:l,handleSelect:u,handleTranscriptSelect:d}=hk({hideThanksAfterMs:yk,onOpen:(0,Q.useCallback)(e=>{Z(bk,{event_type:`appeared`,appearance_id:e}),fh(`feedback_survey`,{event_type:`appeared`,appearance_id:e,survey_type:`memory`})},[]),onSelect:(0,Q.useCallback)((e,t)=>{Z(bk,{event_type:`responded`,appearance_id:e,response:t}),fh(`feedback_survey`,{event_type:`responded`,appearance_id:e,response:t,survey_type:`memory`})},[]),shouldShowTranscriptPrompt:(0,Q.useCallback)(e=>!(process.env.USER_TYPE!==`ant`||e!==`bad`&&e!==`good`||Lf().transcriptShareDismissed||!Xa(`allow_product_feedback`)),[]),onTranscriptPromptShown:(0,Q.useCallback)(e=>{Z(bk,{event_type:`transcript_prompt_appeared`,appearance_id:e,trigger:xk}),fh(`feedback_survey`,{event_type:`transcript_prompt_appeared`,appearance_id:e,survey_type:`memory`})},[]),onTranscriptSelect:(0,Q.useCallback)(async(e,t)=>{if(Z(bk,{event_type:`transcript_share_${t}`,appearance_id:e,trigger:xk}),t===`dont_ask_again`&&If(e=>({...e,transcriptShareDismissed:!0})),t===`yes`){let t=await pk(o.current,xk,e);return Z(bk,{event_type:t.success?`transcript_share_submitted`:`transcript_share_failed`,appearance_id:e,trigger:xk}),t.success}return!1},[])});return(0,Q.useEffect)(()=>{if(r&&e.length===0){a.current=!1,i.current.clear();return}},[r,s,t,n,(0,Q.useMemo)(()=>nl(e),[e]),e,l]),{state:s,lastResponse:c,handleSelect:u,handleTranscriptSelect:d}}Dh(),bp(),s(),zd(),hh();var Ck=3e3,wk=.2;function Tk(e,t){let n=e.findIndex(e=>e.uuid===t);if(n===-1)return!1;for(let t=n+1;t<e.length;t++){let n=e[t];if(n&&(n.type===`user`||n.type===`assistant`))return!0}return!1}function Ek(e,t,n=!1,{enabled:r=!0}={}){let[i,o]=(0,Q.useState)(null),s=(0,Q.useRef)(new Set),c=(0,Q.useRef)(null),{state:l,lastResponse:u,open:d,handleSelect:f}=hk({hideThanksAfterMs:Ck,onOpen:(0,Q.useCallback)(e=>{Z(`tengu_post_compact_survey_event`,{event_type:`appeared`,appearance_id:e,session_memory_compaction_enabled:Uu()}),fh(`feedback_survey`,{event_type:`appeared`,appearance_id:e,survey_type:`post_compact`})},[]),onSelect:(0,Q.useCallback)((e,t)=>{Z(`tengu_post_compact_survey_event`,{event_type:`responded`,appearance_id:e,response:t,session_memory_compaction_enabled:Uu()}),fh(`feedback_survey`,{event_type:`responded`,appearance_id:e,response:t,survey_type:`post_compact`})},[])});(0,Q.useEffect)(()=>{r&&o(!1)},[r]);let p=(0,Q.useMemo)(()=>new Set(e.filter(e=>Gt(e)).map(e=>e.uuid)),[e]);return(0,Q.useEffect)(()=>{if(!r||l!==`closed`||t||n||i!==!0||Oh()||a(process.env.CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY))return;if(c.current!==null&&Tk(e,c.current)){c.current=null,Math.random()<wk&&d();return}let o=Array.from(p).filter(e=>!s.current.has(e));o.length>0&&(s.current=new Set(p),c.current=o[o.length-1])},[r,p,l,t,n,i,e,d]),{state:l,lastResponse:u,handleSelect:f}}hf(),B();var Dk=[`1`,`2`,`3`],Ok={1:`yes`,2:`no`,3:`dont_ask_again`},kk=e=>Dk.includes(e);function Ak({onSelect:e,inputValue:t,setInputValue:n}){return lO({inputValue:t,setInputValue:n,isValidDigit:kk,onDigit:t=>e(Ok[t])}),(0,$.jsxs)(b,{flexDirection:`column`,marginTop:1,children:[(0,$.jsxs)(b,{children:[(0,$.jsxs)(T,{color:`ansi:cyan`,children:[yf,` `]}),(0,$.jsx)(T,{bold:!0,children:`Can Anthropic look at your session transcript to help us improve Claude Code?`})]}),(0,$.jsx)(b,{marginLeft:2,children:(0,$.jsx)(T,{dimColor:!0,children:`Learn more: https://code.claude.com/docs/en/data-usage#session-quality-surveys`})}),(0,$.jsxs)(b,{marginLeft:2,children:[(0,$.jsx)(b,{width:10,children:(0,$.jsxs)(T,{children:[(0,$.jsx)(T,{color:`ansi:cyan`,children:`1`}),`: Yes`]})}),(0,$.jsx)(b,{width:10,children:(0,$.jsxs)(T,{children:[(0,$.jsx)(T,{color:`ansi:cyan`,children:`2`}),`: No`]})}),(0,$.jsx)(b,{children:(0,$.jsxs)(T,{children:[(0,$.jsx)(T,{color:`ansi:cyan`,children:`3`}),`: Don't ask again`]})})]})]})}bp(),B();function jk({state:e,lastResponse:t,handleSelect:n,handleTranscriptSelect:r,inputValue:i,setInputValue:a,onRequestFeedback:o,message:s}){return e===`closed`?null:e===`thanks`?(0,$.jsx)(Nk,{lastResponse:t,inputValue:i,setInputValue:a,onRequestFeedback:o}):e===`submitted`?(0,$.jsx)(b,{marginTop:1,children:(0,$.jsxs)(T,{color:`success`,children:[`✓`,` Thanks for sharing your transcript!`]})}):e===`submitting`?(0,$.jsx)(b,{marginTop:1,children:(0,$.jsxs)(T,{dimColor:!0,children:[`Sharing transcript`,`…`]})}):e===`transcript_prompt`?!r||i&&![`1`,`2`,`3`].includes(i)?null:(0,$.jsx)(Ak,{onSelect:r,inputValue:i,setInputValue:a}):i&&!fO(i)?null:(0,$.jsx)(mO,{onSelect:n,inputValue:i,setInputValue:a,message:s})}var Mk=e=>e===`1`;function Nk({lastResponse:e,inputValue:t,setInputValue:n,onRequestFeedback:r}){let i=r&&e===`good`;lO({inputValue:t,setInputValue:n,isValidDigit:Mk,enabled:!!i,once:!0,onDigit:()=>{Z(`tengu_feedback_survey_event`,{event_type:`followup_accepted`,response:e}),r?.()}});let a=process.env.USER_TYPE===`ant`?`/issue`:`/feedback`;return(0,$.jsxs)(b,{marginTop:1,flexDirection:`column`,children:[(0,$.jsx)(T,{color:`success`,children:`Thanks for the feedback!`}),i?(0,$.jsxs)(T,{dimColor:!0,children:[`(Optional) Press [`,(0,$.jsx)(T,{color:`ansi:cyan`,children:`1`}),`] to tell us what went well `,` · `,a]}):e===`bad`?(0,$.jsx)(T,{dimColor:!0,children:`Use /issue to report model behavior issues.`}):(0,$.jsxs)(T,{dimColor:!0,children:[`Use `,a,` to share detailed feedback anytime.`]})]})}Xh(),$h(),at(),Rt(),np();function Pk(e){let{addNotification:t}=lo(),n=(0,Q.useRef)(!1),r=(0,Q.useRef)(e);r.current=e,(0,Q.useEffect)(()=>{je()||n.current||(n.current=!0,Promise.resolve().then(()=>r.current()).then(e=>{if(e)for(let n of Array.isArray(e)?e:[e])t(n)}).catch(X))},[t])}function Fk(){Pk(async()=>(await Qh()).map((e,t)=>{let n=`low`;return e.type===`error`||e.userActionRequired?n=`high`:(e.type===`path`||e.type===`alias`)&&(n=`medium`),{key:`install-message-${t}-${e.type}`,text:e.message,priority:n,color:e.type===`error`?`error`:`warning`}}))}Yd(),tf(),zd(),rm(),Qo(),mv(),ec(),B(),zd();function Ik(e,t,n){(0,Q.useRef)(null),(0,Q.useRef)(null);let r=(0,Q.useRef)(e),i=(0,Q.useRef)(n),a=(0,Q.useRef)(!1),o=(0,Q.useRef)(null);r.current=e,i.current=n,(0,Q.useEffect)(()=>{},[!1,t]),(0,Q.useEffect)(()=>{if(n||!a.current)return;let e=F();e!==`blurred`&&e!==`unknown`||o.current?.()},[n]),(0,Q.useEffect)(()=>{F()},[n,!1])}bp(),Rf(),tf(),s(),cf(),np();function Lk(){return a(process.env.CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL)}var Rk={MAX_ATTEMPTS:10,INITIAL_DELAY_MS:3600*1e3,BACKOFF_MULTIPLIER:2,MAX_DELAY_MS:10080*60*1e3};function zk(e){let t=Rk.INITIAL_DELAY_MS*Rk.BACKOFF_MULTIPLIER**e;return Math.min(t,Rk.MAX_DELAY_MS)}function Bk(e){if(!e.officialMarketplaceAutoInstallAttempted)return!0;if(e.officialMarketplaceAutoInstalled)return!1;let t=e.officialMarketplaceAutoInstallFailReason,n=e.officialMarketplaceAutoInstallRetryCount||0,r=e.officialMarketplaceAutoInstallNextRetryTime,i=Date.now();return n>=Rk.MAX_ATTEMPTS||t===`policy_blocked`||r&&i<r?!1:t===`unknown`||t===`git_unavailable`||t===`gcs_unavailable`||t===void 0}async function Vk(){let e=Lf();if(!Bk(e)){let t=e.officialMarketplaceAutoInstallFailReason??`already_attempted`;return Y(`Official marketplace auto-install skipped: ${t}`),{installed:!1,skipped:!0,reason:t}}try{if(Lk())return Y(`Official marketplace auto-install disabled via env var, skipping`),If(e=>({...e,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:`policy_blocked`})),Z(`tengu_official_marketplace_auto_install`,{installed:!1,skipped:!0,policy_blocked:!0}),{installed:!1,skipped:!0,reason:`policy_blocked`};if((await lr())[`claude-plugins-official`])return Y(`Official marketplace '${St}' already installed, skipping`),If(e=>({...e,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!0})),{installed:!1,skipped:!0,reason:`already_installed`};if(!Il(Js))return Y(`Official marketplace blocked by enterprise policy, skipping`),If(e=>({...e,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:`policy_blocked`})),Z(`tengu_official_marketplace_auto_install`,{installed:!1,skipped:!0,policy_blocked:!0}),{installed:!1,skipped:!0,reason:`policy_blocked`};let t=Vd(),n=xv(t,St);if(await ns(n,t)!==null){let e=await lr();return e[St]={source:Js,installLocation:n,lastUpdated:new Date().toISOString()},await Lr(e),If(e=>({...e,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!0,officialMarketplaceAutoInstallFailReason:void 0,officialMarketplaceAutoInstallRetryCount:void 0,officialMarketplaceAutoInstallLastAttemptTime:void 0,officialMarketplaceAutoInstallNextRetryTime:void 0})),Z(`tengu_official_marketplace_auto_install`,{installed:!0,skipped:!1,via_gcs:!0}),{installed:!0,skipped:!1}}if(!await ru()){Y(`Git not available, skipping official marketplace auto-install`);let t=(e.officialMarketplaceAutoInstallRetryCount||0)+1,n=Date.now(),r=n+zk(t),i=!1;try{If(e=>({...e,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:`git_unavailable`,officialMarketplaceAutoInstallRetryCount:t,officialMarketplaceAutoInstallLastAttemptTime:n,officialMarketplaceAutoInstallNextRetryTime:r}))}catch(e){i=!0,X($d(e)),Y(`Failed to save marketplace auto-install git_unavailable state: ${e}`,{level:`error`})}return Z(`tengu_official_marketplace_auto_install`,{installed:!1,skipped:!0,git_unavailable:!0,retry_count:t}),{installed:!1,skipped:!0,reason:`git_unavailable`,configSaveFailed:i}}Y(`Attempting to auto-install official marketplace`),await Vn(Js),Y(`Successfully auto-installed official marketplace`);let r=e.officialMarketplaceAutoInstallRetryCount||0;return If(e=>({...e,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!0,officialMarketplaceAutoInstallFailReason:void 0,officialMarketplaceAutoInstallRetryCount:void 0,officialMarketplaceAutoInstallLastAttemptTime:void 0,officialMarketplaceAutoInstallNextRetryTime:void 0})),Z(`tengu_official_marketplace_auto_install`,{installed:!0,skipped:!1,retry_count:r}),{installed:!0,skipped:!1}}catch(t){let n=t instanceof Error?t.message:String(t);if(n.includes(`xcrun: error:`))return Uo(),Y(`Official marketplace auto-install: git is a non-functional macOS xcrun shim, treating as git_unavailable`),Z(`tengu_official_marketplace_auto_install`,{installed:!1,skipped:!0,git_unavailable:!0,macos_xcrun_shim:!0}),{installed:!1,skipped:!0,reason:`git_unavailable`};Y(`Failed to auto-install official marketplace: ${n}`,{level:`error`}),X($d(t));let r=(e.officialMarketplaceAutoInstallRetryCount||0)+1,i=Date.now(),a=i+zk(r),o=!1;try{If(e=>({...e,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:`unknown`,officialMarketplaceAutoInstallRetryCount:r,officialMarketplaceAutoInstallLastAttemptTime:i,officialMarketplaceAutoInstallNextRetryTime:a}))}catch(e){o=!0,X($d(e)),Y(`Failed to save marketplace auto-install failure state: ${e}`,{level:`error`})}return Z(`tengu_official_marketplace_auto_install`,{installed:!1,skipped:!0,failed:!0,retry_count:r}),{installed:!1,skipped:!0,reason:`unknown`,configSaveFailed:o}}}B(),tf();function Hk(){Pk(async()=>{let e=await Vk(),t=[];return e.configSaveFailed&&(Y(`Showing marketplace config save failure notification`),t.push({key:`marketplace-config-save-failed`,jsx:(0,$.jsx)(T,{color:`error`,children:`Failed to save marketplace retry info · Check ~/.claude.json permissions`}),priority:`immediate`,timeoutMs:1e4})),e.installed?(Y(`Showing marketplace installation success notification`),t.push({key:`marketplace-installed`,jsx:(0,$.jsx)(T,{color:`success`,children:`✓ Anthropic marketplace installed · /plugin to see available plugins`}),priority:`immediate`,timeoutMs:7e3})):e.skipped&&e.reason===`unknown`&&(Y(`Showing marketplace installation failure notification`),t.push({key:`marketplace-install-failed`,jsx:(0,$.jsx)(T,{color:`warning`,children:`Failed to install Anthropic marketplace · Will retry on next startup`}),priority:`immediate`,timeoutMs:8e3})),t})}Af(),bp();function Uk(e){if(e.length===0)return;if(e.length===1)return e[0];let t=e.map(e=>({tip:e,sessions:ov(e.id)}));return t.sort((e,t)=>t.sessions-e.sessions),t[0]?.tip}async function Wk(e){if(Of().spinnerTipsEnabled===!1)return;let t=await lv(e);if(t.length!==0)return Uk(t)}function Gk(e){iv(e.id),Z(`tengu_tip_shown`,{tipIdLength:e.id,cooldownSessions:e.cooldownSessions})}cf(),np(),at(),q(),Xt();var Kk=!1;async function qk(e,t,n){{if(Kk)return;Kk=!0;let{updateContext:r,notification:i}=await pr(e,n);t(e=>{let t=r(e.toolPermissionContext),n=t===e.toolPermissionContext?e:{...e,toolPermissionContext:t};return i?{...n,notifications:{...n.notifications,queue:[...n.notifications.queue,{key:`auto-mode-gate-notification`,text:i,color:`warning`,priority:`high`}]}}:n})}}function Jk(){Kk=!1}function Yk(){let e=J(e=>e.mainLoopModel),t=J(e=>e.mainLoopModelForSession),n=J(e=>e.fastMode),r=Vr(),i=qn(),a=(0,Q.useRef)(!0);(0,Q.useEffect)(()=>{je()||(a.current?a.current=!1:Jk(),qk(i.getState().toolPermissionContext,r,n).catch(e=>{X(Error(`Auto mode gate check failed`,{cause:$d(e)}))}))},[e,t,n])}Va();function Xk(e,t,n){let r=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{!xd()||r.current||(r.current=!0,e&&$t(e,n))},[t,e,n])}B(),Oa(),bp(),Cl(),qg();function Zk({hostPattern:{host:e},onUserResponse:t}){function n(n){switch(process.env.USER_TYPE===`ant`&&Z(`tengu_sandbox_network_dialog_result`,{host:e,result:n}),n){case`yes`:t({allow:!0,persistToSettings:!1});break;case`yes-dont-ask-again`:t({allow:!0,persistToSettings:!0});break;case`no`:t({allow:!1,persistToSettings:!1});break}}let r=[{label:`Yes`,value:`yes`},...La()?[]:[{label:(0,$.jsxs)(T,{children:[`Yes, and don't ask again for `,(0,$.jsx)(T,{bold:!0,children:e})]}),value:`yes-dont-ask-again`}],{label:(0,$.jsxs)(T,{children:[`No, and tell Claude what to do differently `,(0,$.jsx)(T,{bold:!0,children:`(esc)`})]}),value:`no`}];return(0,$.jsx)(Yg,{title:`Network request outside of sandbox`,children:(0,$.jsxs)(b,{flexDirection:`column`,paddingX:2,paddingY:1,children:[(0,$.jsxs)(b,{children:[(0,$.jsx)(T,{dimColor:!0,children:`Host:`}),(0,$.jsxs)(T,{children:[` `,e]})]}),(0,$.jsx)(b,{marginTop:1,children:(0,$.jsx)(T,{children:`Do you want to allow this connection?`})}),(0,$.jsx)(b,{children:(0,$.jsx)(eu,{options:r,onChange:n,onCancel:()=>{process.env.USER_TYPE===`ant`&&Z(`tengu_sandbox_network_dialog_result`,{host:e,result:`cancel`}),t({allow:!1,persistToSettings:!1})}})})]})})}B(),Oa(),cp();function Qk(e){return`${e.getHours()%12||12}:${String(e.getMinutes()).padStart(2,`0`)}:${String(e.getSeconds()).padStart(2,`0`)}${e.getHours()<12?`am`:`pm`}`}function $k(){let[e,t]=(0,Q.useState)([]),[n,r]=(0,Q.useState)(0);return(0,Q.useEffect)(()=>{let e=yd.getSandboxViolationStore();return e.subscribe(n=>{t(n.slice(-10)),r(e.getTotalCount())})},[]),!yd.isSandboxingEnabled()||sp()===`linux`||n===0?null:(0,$.jsxs)(b,{flexDirection:`column`,marginTop:1,children:[(0,$.jsx)(b,{marginLeft:0,children:(0,$.jsxs)(T,{color:`permission`,children:[`⧈ Sandbox blocked `,n,` total `,n===1?`operation`:`operations`]})}),e.map((e,t)=>(0,$.jsx)(b,{paddingLeft:2,children:(0,$.jsxs)(T,{dimColor:!0,children:[Qk(e.timestamp),e.command?` ${e.command}:`:``,` `,e.line]})},`${e.timestamp.getTime()}-${t}`)),(0,$.jsx)(b,{paddingLeft:2,children:(0,$.jsxs)(T,{dimColor:!0,children:[`… showing last `,Math.min(10,e.length),` of `,n]})})]})}__(),Rt(),at(),B();var eA=[];function tA({mcpClients:e=eA}){let{addNotification:t}=lo();(0,Q.useEffect)(()=>{if(je())return;let n=e.filter(e=>e.type===`failed`&&e.config.type!==`sse-ide`&&e.config.type!==`ws-ide`&&e.config.type!==`claudeai-proxy`),r=e.filter(e=>e.type===`failed`&&e.config.type===`claudeai-proxy`&&Ko(e.name)),i=e.filter(e=>e.type===`needs-auth`&&e.config.type!==`claudeai-proxy`),a=e.filter(e=>e.type===`needs-auth`&&e.config.type===`claudeai-proxy`&&Ko(e.name));n.length===0&&r.length===0&&i.length===0&&a.length===0||(n.length>0&&t({key:`mcp-failed`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(T,{color:`error`,children:[n.length,` MCP `,n.length===1?`server`:`servers`,` failed`]}),(0,$.jsx)(T,{dimColor:!0,children:` · /mcp`})]}),priority:`medium`}),r.length>0&&t({key:`mcp-claudeai-failed`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(T,{color:`error`,children:[r.length,` claude.ai `,r.length===1?`connector`:`connectors`,` `,`unavailable`]}),(0,$.jsx)(T,{dimColor:!0,children:` · /mcp`})]}),priority:`medium`}),i.length>0&&t({key:`mcp-needs-auth`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(T,{color:`warning`,children:[i.length,` MCP `,i.length===1?`server needs`:`servers need`,` `,`auth`]}),(0,$.jsx)(T,{dimColor:!0,children:` · /mcp`})]}),priority:`medium`}),a.length>0&&t({key:`mcp-claudeai-needs-auth`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(T,{color:`warning`,children:[a.length,` claude.ai`,` `,a.length===1?`connector needs`:`connectors need`,` auth`]}),(0,$.jsx)(T,{dimColor:!0,children:` · /mcp`})]}),priority:`medium`}))},[t,e])}B(),Af(),dc();var nA=`Auto mode lets Claude handle permission prompts automatically — Claude checks each tool call for risky actions and prompt injection before executing. Actions Claude identifies as safe are executed, while actions Claude identifies as risky are blocked and Claude may try a different approach. Ideal for long-running tasks. Sessions are slightly more expensive. Claude can make mistakes that allow harmful commands to run, it's recommended to only use in isolated environments. Shift+Tab to change mode.`;me(),at(),Rt(),B(),q(),tf(),s();var rA=5e3;function iA(){let{addNotification:e}=lo(),t=Vr(),[n,r]=Q.useState(()=>a(`true`)),i=Q.useRef(new Set),o=Q.useCallback((n,r)=>{let a=`${n}:${r}`;if(i.current.has(a))return;i.current.add(a),Y(`LSP error: ${n} - ${r}`),t(e=>{let t=new Set(e.plugins.errors.map(e=>e.type===`generic-error`?`generic-error:${e.source}:${e.error}`:`${e.type}:${e.source}`)),i=`generic-error:${n}:${r}`;return t.has(i)?e:{...e,plugins:{...e.plugins,errors:[...e.plugins.errors,{type:`generic-error`,source:n,error:r}]}}});let o=n.startsWith(`plugin:`)?n.split(`:`)[1]??n:n;e({key:`lsp-error-${n}`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(T,{color:`error`,children:[`LSP for `,o,` failed`]}),(0,$.jsx)(T,{dimColor:!0,children:` · /plugin for details`})]}),priority:`medium`,timeoutMs:8e3})},[e,t]),s=Q.useCallback(()=>{if(je()||Je())return;let e=bc();if(e.status===`failed`){o(`lsp-manager`,e.error.message),r(!1);return}if(e.status===`pending`||e.status===`not-started`)return;let t=mc();if(t){let e=t.getAllServers();for(let[t,n]of e)n.state===`error`&&n.lastError&&o(t,n.lastError.message)}},[o]);re(s,n?rA:null),Q.useEffect(()=>{je()||!n||s()},[s,n])}tf();var aA=new Map;async function oA(e){if(!e||!e.trim())return Y(`[binaryCheck] Empty command provided, returning false`),!1;let t=e.trim(),n=aA.get(t);if(n!==void 0)return Y(`[binaryCheck] Cache hit for '${t}': ${n}`),n;let r=!1;return await ap(t).catch(()=>null)&&(r=!0),aA.set(t,r),Y(`[binaryCheck] Binary '${t}' ${r?`found`:`not found`}`),r}Rf(),tf(),vo();var sA=5;function cA(e){return kf.has(e.toLowerCase())}function lA(e){if(!e)return null;if(typeof e==`string`)return Y(`[lspRecommendation] Skipping string path lspServers (not readable from marketplace)`),null;if(Array.isArray(e)){for(let t of e){if(typeof t==`string`)continue;let e=dA(t);if(e)return e}return null}return dA(e)}function uA(e){return typeof e==`object`&&!!e}function dA(e){let t=new Set,n=null;for(let[r,i]of Object.entries(e)){if(!uA(i))continue;!n&&typeof i.command==`string`&&(n=i.command);let e=i.extensionToLanguage;if(uA(e))for(let n of Object.keys(e))t.add(n.toLowerCase())}return!n||t.size===0?null:{extensions:t,command:n}}async function fA(){let e=new Map;try{let t=await lr();for(let n of Object.keys(t))try{let t=await wa(n),r=cA(n);for(let i of t.plugins){if(!i.lspServers)continue;let t=lA(i.lspServers);if(!t)continue;let a=`${i.name}@${n}`;e.set(a,{entry:i,marketplaceName:n,extensions:t.extensions,command:t.command,isOfficial:r})}}catch(e){Y(`[lspRecommendation] Failed to load marketplace ${n}: ${e}`)}}catch(e){Y(`[lspRecommendation] Failed to load marketplaces config: ${e}`)}return e}async function pA(e){if(gA())return Y(`[lspRecommendation] Recommendations are disabled`),[];let t=bv(e).toLowerCase();if(!t)return Y(`[lspRecommendation] No file extension found`),[];Y(`[lspRecommendation] Looking for LSP plugins for ${t}`);let n=await fA(),r=Lf().lspRecommendationNeverPlugins??[],i=[];for(let[e,a]of n)if(a.extensions.has(t)){if(r.includes(e)){Y(`[lspRecommendation] Skipping ${e} (in never suggest list)`);continue}if(Pt(e)){Y(`[lspRecommendation] Skipping ${e} (already installed)`);continue}i.push({info:a,pluginId:e})}let a=[];for(let{info:e,pluginId:t}of i)await oA(e.command)?(a.push({info:e,pluginId:t}),Y(`[lspRecommendation] Binary '${e.command}' found for ${t}`)):Y(`[lspRecommendation] Skipping ${t} (binary '${e.command}' not found)`);return a.sort((e,t)=>e.info.isOfficial&&!t.info.isOfficial?-1:!e.info.isOfficial&&t.info.isOfficial?1:0),a.map(({info:e,pluginId:t})=>({pluginId:t,pluginName:e.entry.name,marketplaceName:e.marketplaceName,description:e.entry.description,isOfficial:e.isOfficial,extensions:Array.from(e.extensions),command:e.command}))}function mA(e){If(t=>{let n=t.lspRecommendationNeverPlugins??[];return n.includes(e)?t:{...t,lspRecommendationNeverPlugins:[...n,e]}}),Y(`[lspRecommendation] Added ${e} to never suggest`)}function hA(){If(e=>{let t=(e.lspRecommendationIgnoredCount??0)+1;return{...e,lspRecommendationIgnoredCount:t}}),Y(`[lspRecommendation] Incremented ignored count`)}function gA(){let e=Lf();return e.lspRecommendationDisabled===!0||(e.lspRecommendationIgnoredCount??0)>=sA}u(),at(),B(),np(),vo();function _A(){let[e,t]=Q.useState(null),n=Q.useRef(!1),r=Q.useCallback(r=>{je()||e||n.current||(n.current=!0,r().then(e=>{e&&t(e)}).catch(X).finally(()=>{n.current=!1}))},[e]);return{recommendation:e,clearRecommendation:Q.useCallback(()=>t(null),[]),tryResolve:r}}async function vA(e,t,n,r,i){try{let a=await qt(e);if(!a)throw Error(`Plugin ${e} not found in marketplace`);await i(a),r({key:`${n}-installed`,jsx:(0,$.jsxs)(T,{color:`success`,children:[d.tick,` `,t,` installed · restart to apply`]}),priority:`immediate`,timeoutMs:5e3})}catch(e){X(e),r({key:`${n}-install-failed`,jsx:(0,$.jsxs)(T,{color:`error`,children:[`Failed to install `,t]}),priority:`immediate`,timeoutMs:5e3})}}at(),Rt(),q(),Rf(),tf(),np(),Af();var yA=28e3;function bA(){let e=J(e=>e.fileHistory.trackedFiles),{addNotification:t}=lo(),n=Q.useRef(new Set),{recommendation:r,clearRecommendation:i,tryResolve:a}=_A();return Q.useEffect(()=>{a(async()=>{if(et())return null;let t=[];for(let r of e)n.current.has(r)||(n.current.add(r),t.push(r));for(let e of t)try{let t=(await pA(e))[0];if(t)return Y(`[useLspPluginRecommendation] Found match: ${t.pluginName} for ${e}`),Ie(!0),{pluginId:t.pluginId,pluginName:t.pluginName,pluginDescription:t.description,fileExtension:bv(e),shownAt:Date.now()}}catch(e){X(e)}return null})},[e,a]),{recommendation:r,handleResponse:Q.useCallback(e=>{if(!r)return;let{pluginId:n,pluginName:a,shownAt:o}=r;switch(Y(`[useLspPluginRecommendation] User response: ${e} for ${a}`),e){case`yes`:vA(n,a,`lsp-plugin`,t,async e=>{Y(`[useLspPluginRecommendation] Installing plugin: ${n}`);let t=typeof e.entry.source==`string`?xv(e.marketplaceInstallLocation,e.entry.source):void 0;await gc(n,e.entry,`user`,void 0,t),Pf(`userSettings`,{enabledPlugins:{...Tf(`userSettings`)?.enabledPlugins,[n]:!0}}),Y(`[useLspPluginRecommendation] Plugin installed: ${n}`)});break;case`no`:{let e=Date.now()-o;e>=yA&&(Y(`[useLspPluginRecommendation] Timeout detected (${e}ms), incrementing ignored count`),hA());break}case`never`:mA(n);break;case`disable`:If(e=>e.lspRecommendationDisabled?e:{...e,lspRecommendationDisabled:!0});break}i()},[r,t,i])}}B(),Cl(),qg();var xA=3e4;function SA({pluginName:e,pluginDescription:t,fileExtension:n,onResponse:r}){let i=Q.useRef(r);i.current=r,Q.useEffect(()=>{let e=setTimeout(e=>e.current(`no`),xA,i);return()=>clearTimeout(e)},[]);function a(e){switch(e){case`yes`:r(`yes`);break;case`no`:r(`no`);break;case`never`:r(`never`);break;case`disable`:r(`disable`);break}}return(0,$.jsx)(Yg,{title:`LSP Plugin Recommendation`,children:(0,$.jsxs)(b,{flexDirection:`column`,paddingX:2,paddingY:1,children:[(0,$.jsx)(b,{marginBottom:1,children:(0,$.jsx)(T,{dimColor:!0,children:`LSP provides code intelligence like go-to-definition and error checking`})}),(0,$.jsxs)(b,{children:[(0,$.jsx)(T,{dimColor:!0,children:`Plugin:`}),(0,$.jsxs)(T,{children:[` `,e]})]}),t&&(0,$.jsx)(b,{children:(0,$.jsx)(T,{dimColor:!0,children:t})}),(0,$.jsxs)(b,{children:[(0,$.jsx)(T,{dimColor:!0,children:`Triggered by:`}),(0,$.jsxs)(T,{children:[` `,n,` files`]})]}),(0,$.jsx)(b,{marginTop:1,children:(0,$.jsx)(T,{children:`Would you like to install this LSP plugin?`})}),(0,$.jsx)(b,{children:(0,$.jsx)(eu,{options:[{label:(0,$.jsxs)(T,{children:[`Yes, install `,(0,$.jsx)(T,{bold:!0,children:e})]}),value:`yes`},{label:`No, not now`,value:`no`},{label:(0,$.jsxs)(T,{children:[`Never for `,(0,$.jsx)(T,{bold:!0,children:e})]}),value:`never`},{label:`Disable all LSP recommendations`,value:`disable`}],onChange:a,onCancel:()=>r(`no`)})})]})})}Rt(),bp(),tf(),$u();function CA(){let e=Q.useSyncExternalStore(Ws,Is),{addNotification:t}=lo(),{recommendation:n,clearRecommendation:r,tryResolve:i}=_A();return Q.useEffect(()=>{e&&i(async()=>{let t=await Pc(e);return t&&(Y(`[useClaudeCodeHintRecommendation] surfacing ${t.pluginId} from ${t.sourceCommand}`),Wu()),Is()===e&&Ou(),t})},[e,i]),{recommendation:n,handleResponse:Q.useCallback(e=>{if(n){switch(gu(n.pluginId),Z(`tengu_plugin_hint_response`,{_PROTO_plugin_name:n.pluginName,_PROTO_marketplace_name:n.marketplaceName,response:e}),e){case`yes`:{let{pluginId:e,pluginName:r,marketplaceName:i}=n;vA(e,r,`hint-plugin`,t,async t=>{let n=await Ed({pluginId:e,entry:t.entry,marketplaceName:i,scope:`user`,trigger:`hint`});if(!n.success)throw Error(n.success?`Unknown error`:n.error)});break}case`disable`:Fu();break;case`no`:break}r()}},[n,t,r])}}B(),Cl(),qg();var wA=3e4;function TA({pluginName:e,pluginDescription:t,marketplaceName:n,sourceCommand:r,onResponse:i}){let a=Q.useRef(i);a.current=i,Q.useEffect(()=>{let e=setTimeout(e=>e.current(`no`),wA,a);return()=>clearTimeout(e)},[]);function o(e){switch(e){case`yes`:i(`yes`);break;case`disable`:i(`disable`);break;default:i(`no`)}}return(0,$.jsx)(Yg,{title:`Plugin Recommendation`,children:(0,$.jsxs)(b,{flexDirection:`column`,paddingX:2,paddingY:1,children:[(0,$.jsx)(b,{marginBottom:1,children:(0,$.jsxs)(T,{dimColor:!0,children:[`The `,(0,$.jsx)(T,{bold:!0,children:r}),` command suggests installing a plugin.`]})}),(0,$.jsxs)(b,{children:[(0,$.jsx)(T,{dimColor:!0,children:`Plugin:`}),(0,$.jsxs)(T,{children:[` `,e]})]}),(0,$.jsxs)(b,{children:[(0,$.jsx)(T,{dimColor:!0,children:`Marketplace:`}),(0,$.jsxs)(T,{children:[` `,n]})]}),t&&(0,$.jsx)(b,{children:(0,$.jsx)(T,{dimColor:!0,children:t})}),(0,$.jsx)(b,{marginTop:1,children:(0,$.jsx)(T,{children:`Would you like to install it?`})}),(0,$.jsx)(b,{children:(0,$.jsx)(eu,{options:[{label:(0,$.jsxs)(T,{children:[`Yes, install `,(0,$.jsx)(T,{bold:!0,children:e})]}),value:`yes`},{label:`No`,value:`no`},{label:`No, and don't show plugin installation hints again`,value:`disable`}],onChange:o,onCancel:()=>i(`no`)})})]})})}Cl(),qg();var EA=3e4;function DA({tools:e,onSelect:t,onDismiss:n}){let r=Q.useRef(t),i=Q.useRef(n);r.current=t,i.current=n,Q.useEffect(()=>{let e=setTimeout(e=>e.current(),EA,i);return()=>clearTimeout(e)},[]);let a=e.map(e=>({label:`${e.name} — ${e.description.slice(0,60)} (score: ${e.score.toFixed(2)})`,value:e.name}));return a.push({label:`Dismiss`,value:`__dismiss__`}),(0,$.jsx)(Yg,{title:`Tool Recommendation`,children:(0,$.jsx)(eu,{options:a,onChange:e=>{e===`__dismiss__`?i.current():(i.current(),r.current(e))}})})}ko();var OA=.15,kA=3;function AA(){let e=Q.useSyncExternalStore(Qn,eo),t=Q.useMemo(()=>e.length===0?[]:e.slice(0,kA).map(e=>({name:e.name,description:e.description.slice(0,60),score:e.score})),[e]);return{tools:t,visible:t.length>0&&(t[0]?.score??0)>=OA,handleSelect:Q.useCallback(e=>{sr()},[]),handleDismiss:Q.useCallback(()=>{sr()},[])}}at(),Rt(),B(),q(),tf(),Rp();function jA(){let{addNotification:e}=lo(),t=J(e=>e.plugins.installationStatus),{totalFailed:n,failedMarketplacesCount:r,failedPluginsCount:i}=(0,Q.useMemo)(()=>{if(!t)return{totalFailed:0,failedMarketplacesCount:0,failedPluginsCount:0};let e=t.marketplaces.filter(e=>e.status===`failed`),n=t.plugins.filter(e=>e.status===`failed`);return{totalFailed:e.length+n.length,failedMarketplacesCount:e.length,failedPluginsCount:n.length}},[t]);(0,Q.useEffect)(()=>{if(!je()){if(!t){Y(`No installation status to monitor`);return}n!==0&&(Y(`Plugin installation status: ${r} failed marketplaces, ${i} failed plugins`),n!==0&&(Y(`Adding notification for ${n} failed installations`),e({key:`plugin-install-failed`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(T,{color:`error`,children:[n,` `,Lp(n,`plugin`),` failed to install`]}),(0,$.jsx)(T,{dimColor:!0,children:` · /plugin for details`})]}),priority:`medium`})))}},[e,n,r,i])}at(),Rt(),B(),tf(),N_();function MA(){let{addNotification:e}=lo(),[t,n]=(0,Q.useState)([]);(0,Q.useEffect)(()=>{if(!je())return P_(e=>{Y(`Plugin autoupdate notification: ${e.length} plugin(s) updated`),n(e)})},[]),(0,Q.useEffect)(()=>{if(je()||t.length===0)return;let n=t.map(e=>{let t=e.indexOf(`@`);return t>0?e.substring(0,t):e}),r=n.length<=2?n.join(` and `):`${n.length} plugins`;e({key:`plugin-autoupdate-restart`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(T,{color:`success`,children:[n.length===1?`Plugin`:`Plugins`,` updated: `,r]}),(0,$.jsx)(T,{dimColor:!0,children:` · Run /reload-plugins to apply`})]}),priority:`low`,timeoutMs:1e4}),Y(`Showing plugin autoupdate notification for: ${n.join(`, `)}`)},[t,e])}tf(),np(),vo(),kg(),bp();function NA(e,t,n,r){e(e=>({...e,plugins:{...e.plugins,installationStatus:{...e.plugins.installationStatus,marketplaces:e.plugins.installationStatus.marketplaces.map(e=>e.name===t?{...e,status:n,error:r}:e)}}}))}async function PA(e){Y(`performBackgroundPluginInstallations called`);try{let t=cg(ci(),await lr().catch(()=>({}))),n=[...t.missing,...t.sourceChanged.map(e=>e.name)];if(e(e=>({...e,plugins:{...e.plugins,installationStatus:{marketplaces:n.map(e=>({name:e,status:`pending`})),plugins:[]}}})),n.length===0)return;Y(`Installing ${n.length} marketplace(s) in background`);let r=await og({onProgress:t=>{switch(t.type){case`installing`:NA(e,t.name,`installing`);break;case`installed`:NA(e,t.name,`installed`);break;case`failed`:NA(e,t.name,`failed`,t.error);break}}}),i={installed_count:r.installed.length,updated_count:r.updated.length,failed_count:r.failed.length,up_to_date_count:r.upToDate.length};if(Z(`tengu_marketplace_background_install`,i),Vf(`info`,`tengu_marketplace_background_install`,i),r.installed.length>0){Cr(),Y(`Auto-refreshing plugins after ${r.installed.length} new marketplace(s) installed`);try{await Og(e)}catch(t){X(t),Y(`Auto-refresh failed, falling back to needsRefresh: ${t}`,{level:`warn`}),Rs(`performBackgroundPluginInstallations: auto-refresh failed`),e(e=>e.plugins.needsRefresh?e:{...e,plugins:{...e.plugins,needsRefresh:!0}})}}else r.updated.length>0&&(Cr(),Rs(`performBackgroundPluginInstallations: marketplaces reconciled`),e(e=>e.plugins.needsRefresh?e:{...e,plugins:{...e.plugins,needsRefresh:!0}}))}catch(e){X(e)}}Rf(),tf(),vo(),cc();async function FA(e){if(Y(`performStartupChecks called`),!Bf()){Y(`Trust not accepted for current directory - skipping plugin installations`);return}try{Y(`Starting background plugin installations`),await Jr()&&(Cr(),Rs(`performStartupChecks: seed marketplaces changed`),e(e=>e.plugins.needsRefresh?e:{...e,plugins:{...e.plugins,needsRefresh:!0}})),await PA(e)}catch(e){Y(`Error initiating background plugin installations: ${e}`)}}B();var IA=/https?:\/\/\S+/;function LA(){let[e,t]=(0,Q.useState)(sm.getInstance().getStatus());return(0,Q.useEffect)(()=>sm.getInstance().subscribe(t),[]),!e.isAuthenticating&&!e.error&&e.output.length===0||!e.isAuthenticating&&!e.error?null:(0,$.jsxs)(b,{flexDirection:`column`,borderStyle:`round`,borderColor:`permission`,paddingX:1,marginY:1,children:[(0,$.jsx)(T,{bold:!0,color:`permission`,children:`Cloud Authentication`}),e.output.length>0&&(0,$.jsx)(b,{flexDirection:`column`,marginTop:1,children:e.output.slice(-5).map((e,t)=>{let n=e.match(IA);if(!n)return(0,$.jsx)(T,{dimColor:!0,children:e},t);let r=n[0],i=n.index??0,a=e.slice(0,i),o=e.slice(i+r.length);return(0,$.jsxs)(T,{dimColor:!0,children:[a,(0,$.jsx)(C,{url:r,children:r}),o]},t)})}),e.error&&(0,$.jsx)(b,{marginTop:1,children:(0,$.jsx)(T,{color:`error`,children:e.error})})]})}Rt(),B(),Hr(),hu(),Wp(),vm(),at();function RA(e){let{addNotification:t}=lo(),n=Nc(),r=(0,Q.useMemo)(()=>Ar(n,e),[n,e]),i=(0,Q.useMemo)(()=>Go(n),[n]),a=(0,Q.useRef)(null),o=Jp(),s=Sm(),c=o===`team`||o===`enterprise`,[l,u]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{je()||(n.isUsingOverage&&!l&&(!c||s)?(t({key:`limit-reached`,text:i,priority:`immediate`}),u(!0)):!n.isUsingOverage&&l&&u(!1))},[n.isUsingOverage,i,l,t,s,c]),(0,Q.useEffect)(()=>{je()||r&&r!==a.current&&(a.current=r,t({key:`rate-limit-warning`,jsx:(0,$.jsx)(T,{children:(0,$.jsx)(T,{color:`warning`,children:r})}),priority:`high`}))},[r,t])}Rt(),at();function zA(e){let{addNotification:t}=lo(),n=(0,Q.useRef)(null);(0,Q.useEffect)(()=>{if(je())return;let r=av(e);r&&r!==n.current&&(n.current=r,t({key:`model-deprecation-warning`,text:r,color:`warning`,priority:`high`})),r||(n.current=null)},[e,t])}s();var BA=``;function VA(){Pk(async()=>Np()||a(process.env.DISABLE_INSTALLATION_CHECKS)||await Zh()===`development`?null:{timeoutMs:15e3,key:`npm-deprecation-warning`,text:BA,color:`warning`,priority:`high`})}Rt(),B(),Rf(),mn(),at();var HA=5;function UA({ideSelection:e,mcpClients:t,ideInstallationStatus:n}){let{addNotification:r,removeNotification:i}=lo(),{status:a,ideName:o}=oC(t),s=(0,Q.useRef)(!1),c=n?At(n?.ideType):!1,l=n?.error||c,u=a===`connected`&&(e?.filePath||e?.text&&e.lineCount>0),d=a===`connected`&&!u,f=l&&!c&&!d&&!u,p=l&&c&&!d&&!u;(0,Q.useEffect)(()=>{if(je())return;if(Gc()||a!==null||p){i(`ide-status-hint`);return}if(s.current||(Lf().ideHintShownCount??0)>=HA)return;let e=setTimeout((e,t)=>{Es(!0).then(n=>{let r=n[0]?.name;r&&!e.current&&(e.current=!0,If(e=>({...e,ideHintShownCount:(e.ideHintShownCount??0)+1})),t({key:`ide-status-hint`,jsx:(0,$.jsxs)(T,{dimColor:!0,children:[`/ide for `,(0,$.jsx)(T,{color:`ide`,children:r})]}),priority:`low`}))})},3e3,s,r);return()=>clearTimeout(e)},[r,i,a,p]),(0,Q.useEffect)(()=>{if(!je()){if(f||p||a!==`disconnected`||!o){i(`ide-status-disconnected`);return}r({key:`ide-status-disconnected`,text:`${o} disconnected`,color:`error`,priority:`medium`})}},[r,i,a,o,f,p]),(0,Q.useEffect)(()=>{if(!je()){if(!p){i(`ide-status-jetbrains-disconnected`);return}r({key:`ide-status-jetbrains-disconnected`,text:`IDE plugin not connected · /status for info`,priority:`medium`})}},[r,i,p]),(0,Q.useEffect)(()=>{if(!je()){if(!f){i(`ide-status-install-error`);return}r({key:`ide-status-install-error`,text:`IDE extension install failed (see /status for info)`,color:`error`,priority:`medium`})}},[r,i,f])}Rf();var WA=[e=>{if(KA(e.sonnet45To46MigrationTimestamp))return{key:`sonnet-46-update`,text:`Model updated to Sonnet 4.6`,color:`suggestion`,priority:`high`,timeoutMs:3e3}},e=>{let t=!!e.legacyOpusMigrationTimestamp;if(KA(e.legacyOpusMigrationTimestamp??e.opusProMigrationTimestamp))return{key:`opus-pro-update`,text:t?`Model updated to Opus 4.7 · Set CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP=1 to opt out`:`Model updated to Opus 4.7`,color:`suggestion`,priority:`high`,timeoutMs:t?8e3:3e3}}];function GA(){Pk(()=>{let e=Lf(),t=[];for(let n of WA){let r=n(e);r&&t.push(r)}return t.length>0?t:null})}function KA(e){return e!==void 0&&Date.now()-e<3e3}Wp(),B(),bp(),Rf();var qA=3;function JA(){Pk(async()=>{if((Lf().subscriptionNoticeCount??0)>=qA)return null;let e=await YA();return e===null?null:(If(e=>({...e,subscriptionNoticeCount:(e.subscriptionNoticeCount??0)+1})),Z(`tengu_switch_to_subscription_notice_shown`,{}),{key:`switch-to-subscription`,jsx:(0,$.jsxs)(T,{color:`suggestion`,children:[`Use your existing Claude `,e,` plan with Claude Code`]}),priority:`low`})})}async function YA(){if(Xp())return null;let e=await Yp();return e?e.account.has_claude_max?`Max`:e.account.has_claude_pro?`Pro`:null:null}Rt(),q(),lm(),Ep(),at();var XA=`fast-mode-cooldown-started`,ZA=`fast-mode-cooldown-expired`,QA=`fast-mode-org-changed`,$A=`fast-mode-overage-rejected`;function ej(){let{addNotification:e}=lo(),t=J(e=>e.fastMode),n=Vr();(0,Q.useEffect)(()=>{if(!je()&&bm())return cm(r=>{r?e({key:QA,color:`fastMode`,priority:`immediate`,text:`Fast mode is now available · /fast to turn on`}):t&&(n(e=>({...e,fastMode:!1})),e({key:QA,color:`warning`,priority:`immediate`,text:`Fast mode has been disabled by your organization`}))})},[e,t,n]),(0,Q.useEffect)(()=>{if(!je()&&bm())return xm(t=>{n(e=>({...e,fastMode:!1})),e({key:$A,color:`warning`,priority:`immediate`,text:t})})},[e,n]),(0,Q.useEffect)(()=>{if(je()||!t)return;let n=gm((t,n)=>{let r=tj(n,kp(t-Date.now(),{hideTrailingZeros:!0}));e({key:XA,invalidates:[ZA],text:r,color:`warning`,priority:`immediate`})}),r=im(()=>{e({key:ZA,invalidates:[XA],color:`fastMode`,text:`Fast limit reset · now using fast mode`,priority:`immediate`})});return()=>{n(),r()}},[e,t])}function tj(e,t){switch(e){case`overloaded`:return`Fast mode overloaded and is temporarily unavailable · resets in ${t}`;case`rate_limit`:return`Fast limit reached and temporarily disabled · resets in ${t}`}}B(),Ah();function nj({onRun:e,onCancel:t,reason:n}){let r=(0,Q.useRef)(!1);return A(`confirm:no`,t,{context:`Confirmation`}),(0,Q.useEffect)(()=>{r.current||(r.current=!0,e())},[e]),(0,$.jsxs)(b,{flexDirection:`column`,marginTop:1,children:[(0,$.jsx)(b,{children:(0,$.jsx)(T,{bold:!0,children:`Running feedback capture...`})}),(0,$.jsx)(b,{children:(0,$.jsxs)(T,{dimColor:!0,children:[`Press `,(0,$.jsx)(h,{shortcut:`Esc`,action:`cancel`}),` anytime`]})}),(0,$.jsx)(b,{children:(0,$.jsxs)(T,{dimColor:!0,children:[`Reason: `,n]})})]})}function rj(e){if(process.env.USER_TYPE!==`ant`)return!1;switch(e){case`feedback_survey_bad`:return!1;case`feedback_survey_good`:return!1;default:return!1}}function ij(e){return process.env.USER_TYPE===`ant`&&e===`feedback_survey_good`?`/good-claude`:`/issue`}function aj(e){switch(e){case`feedback_survey_bad`:return`You responded "Bad" to the feedback survey`;case`feedback_survey_good`:return`You responded "Good" to the feedback survey`;default:return`Unknown reason`}}var oj=()=>null;hf(),B();function sj(){return process.env.USER_TYPE===`ant`?(0,$.jsxs)(b,{flexDirection:`row`,marginTop:1,width:`100%`,children:[(0,$.jsx)(b,{minWidth:2,children:(0,$.jsx)(T,{color:`warning`,children:`⚑`})}),(0,$.jsxs)(T,{children:[(0,$.jsx)(T,{dimColor:!0,children:`[ANT-ONLY] `}),(0,$.jsx)(T,{color:`warning`,bold:!0,children:`Something off with Claude?`}),(0,$.jsx)(T,{dimColor:!0,children:` /issue to report it`})]})]}):null}Lm(),zd();var cj=[/\bcurl\b/,/\bwget\b/,/\bssh\b/,/\bkubectl\b/,/\bsrun\b/,/\bdocker\b/,/\bbq\b/,/\bgsutil\b/,/\bgcloud\b/,/\baws\b/,/\bgit\s+push\b/,/\bgit\s+pull\b/,/\bgit\s+fetch\b/,/\bgh\s+(pr|issue)\b/,/\bnc\b/,/\bncat\b/,/\btelnet\b/,/\bftp\b/],lj=[/^no[,!]\s/i,/\bthat'?s (wrong|incorrect|not (what|right|correct))\b/i,/\bnot what I (asked|wanted|meant|said)\b/i,/\bI (said|asked|wanted|told you|already said)\b/i,/\bwhy did you\b/i,/\byou should(n'?t| not)? have\b/i,/\byou were supposed to\b/i,/\btry again\b/i,/\b(undo|revert) (that|this|it|what you)\b/i];function uj(e){for(let t of e){if(t.type!==`assistant`)continue;let e=t.message.content;if(Array.isArray(e))for(let t of e){if(t.type!==`tool_use`||!(`name`in t))continue;let e=t.name;if(e.startsWith(`mcp__`))return!1;if(e===`Bash`){let e=t.input?.command||``;if(cj.some(t=>t.test(e)))return!1}}}return!0}function dj(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.type!==`user`)continue;let r=zn(n);if(r)return lj.some(e=>e.test(r))}return!1}var fj=3,pj=1800*1e3;function mj(e,t){let n=(0,Q.useRef)(0),r=(0,Q.useRef)(-1),i=(0,Q.useMemo)(()=>uj(e)&&dj(e),[e]);return process.env.USER_TYPE===`ant`?r.current===t?!0:Date.now()-n.current<pj||t<fj||!i?!1:(n.current=Date.now(),r.current=t,!0):!1}at(),B();function hj(){return process.env.USER_TYPE===`ant`}function gj(){let[e,t]=(0,Q.useState)(yt);return ae(()=>{t(yt())},hj()?500:null),!hj()||e.length===0?null:(0,$.jsxs)(T,{wrap:`truncate-end`,color:`warning`,children:[`[ANT-ONLY] slow sync: `,e.slice(-3).map(e=>`${e.operation} (${Math.round(e.durationMs)}ms)`).join(` · `)]})}u(),B(),ms(),Cl(),Vh(),q(),at(),a_(),zd(),Ki(),Wd(),lp(),Jc(),ps();var _j=24,vj=11;function yj(){return new Date().toISOString().split(`T`)[0]}function bj({plan:e,sessionId:t,taskId:n,setMessages:r,readFileState:i,memorySelector:a,getAppState:o,setConversationId:s,resultDedupState:c}){ks(`ultraplan-choice`);let l=Vr(),{rows:u,columns:f}=de(),p=Q.useMemo(()=>Math.min(_j,Math.max(1,Math.floor(u/2)-vj)),[u]),m=Q.useMemo(()=>w(e,Math.max(1,f-4),`wrap`).split(`
84
+ `),Ls(e?.())};return process.on(`exit`,t),()=>{process.off(`exit`,t)}},[])}s();function SO(){(0,Q.useEffect)(()=>{process.env.USER_TYPE===`ant`&&a(process.env.CLAUDE_CODE_EXIT_AFTER_FIRST_RENDER)&&(process.stderr.write(`\nStartup time: ${Math.round(process.uptime()*1e3)}ms\n`),process.exit(0))},[])}function CO(e,t){let n=(0,Q.useRef)(e??null),r=(0,Q.useRef)(!e);return(0,Q.useEffect)(()=>{let e=n.current;if(!e)return;let i=!1;return e.then(e=>{i||(r.current=!0,n.current=null,e.length>0&&t(t=>[...e,...t]))}),()=>{i=!0}},[t]),(0,Q.useCallback)(async()=>{if(r.current||!n.current)return;let e=await n.current;r.current||(r.current=!0,n.current=null,e.length>0&&t(t=>[...e,...t]))},[t])}at(),ec(),Wp();function wO(){let[e,t]=(0,Q.useState)(()=>{if(!Zp()||Xp())return`valid`;let{key:e,source:t}=$p({skipRetrievingKeyFromApiKeyHelper:!0});return e||t===`apiKeyHelper`?`loading`:`missing`}),[n,r]=(0,Q.useState)(null);return{status:e,reverify:(0,Q.useCallback)(async()=>{if(!Zp()||Xp()){t(`valid`);return}await Gp(bt());let{key:e,source:n}=$p();if(!e){if(n===`apiKeyHelper`){t(`error`),r(Error(`API key helper did not return a valid key`));return}t(`missing`);return}try{let n=await Lc(e,!1)?`valid`:`invalid`;t(n);return}catch(e){r(e),t(`error`);return}},[]),error:n}}at(),B(),Wd(),tf(),B(),Ah(),bp(),q();function TO({screen:t,setScreen:n,showAllInTranscript:r,setShowAllInTranscript:i,messageCount:a,onEnterTranscript:o,onExitTranscript:s,virtualScrollActive:c,searchBarOpen:l=!1}){let u=J(e=>e.expandedView),d=Vr(),f=(0,Q.useCallback)(()=>{Z(`tengu_toggle_todos`,{is_expanded:u===`tasks`}),d(e=>({...e,expandedView:e.expandedView===`tasks`?`none`:`tasks`}))},[u,d]),p=J(e=>e.isBriefOnly),m=(0,Q.useCallback)(()=>{{let{isBriefEnabled:n}=(ys(),e(Mc));if(!n()&&p&&t!==`transcript`){d(e=>e.isBriefOnly?{...e,isBriefOnly:!1}:e);return}}let c=t!==`transcript`;Z(`tengu_toggle_transcript`,{is_entering:c,show_all:r,message_count:a}),n(e=>e===`transcript`?`prompt`:`transcript`),i(!1),c&&o&&o(),!c&&s&&s()},[t,n,p,r,i,a,d,o,s]),h=(0,Q.useCallback)(()=>{Z(`tengu_transcript_toggle_show_all`,{is_expanding:!r,message_count:a}),i(e=>!e)},[r,i,a]),g=(0,Q.useCallback)(()=>{Z(`tengu_transcript_exit`,{show_all:r,message_count:a}),n(`prompt`),i(!1),s&&s()},[n,r,i,a,s]),_=(0,Q.useCallback)(()=>{{let{isBriefEnabled:t}=(ys(),e(Mc));if(!t()&&!p)return;let n=!p;Z(`tengu_brief_mode_toggled`,{enabled:n,gated:!1,source:`keybinding`}),d(e=>e.isBriefOnly===n?e:{...e,isBriefOnly:n})}},[p,d]);A(`app:toggleTodos`,f,{context:`Global`}),A(`app:toggleTranscript`,m,{context:`Global`}),A(`app:toggleBrief`,_,{context:`Global`,isActive:!0}),A(`app:toggleTerminal`,(0,Q.useCallback)(()=>{},[]),{context:`Global`}),A(`app:redraw`,(0,Q.useCallback)(()=>{D.get(process.stdout)?.forceRedraw()},[]),{context:`Global`});let v=t===`transcript`;return A(`transcript:toggleShowAll`,h,{context:`Transcript`,isActive:v&&!c}),A(`transcript:exit`,g,{context:`Transcript`,isActive:v&&!l}),null}ps(),qa(),Ah();var EO={setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}};function DO({onSubmit:e,isActive:t=!0}){let n=N(),r=td(),i=(0,Q.useMemo)(()=>{if(!n)return new Set;let e=new Set;for(let t of n.bindings)t.action?.startsWith(`command:`)&&e.add(t.action);return e},[n]);return v((0,Q.useMemo)(()=>{let t={};for(let n of i){let r=n.slice(8);t[n]=()=>{e(`/${r}`,EO,void 0,{fromKeybinding:!0})}}return t},[i,e]),{context:`Chat`,isActive:t&&!r}),null}bp(),q(),j_(),Rt(),ps(),fn(),Ah(),Ft(),Ki();var OO=3e3;function kO(e){let{setToolUseConfirmQueue:t,onCancel:n,onAgentsKilled:r,isMessageSelectorVisible:i,screen:a,abortSignal:o,popCommandFromQueue:s,vimMode:c,isLocalJSXCommand:l,isSearchingHistory:u,isHelpOpen:d,inputMode:f,inputValue:p,streamMode:m}=e,h=qn(),g=Vr(),_=nC().length,{addNotification:v,removeNotification:y}=lo(),b=(0,Q.useRef)(0),x=(0,Q.useCallback)(()=>{let e={source:`escape`,streamMode:m};if(o!==void 0&&!o.aborted){Z(`tengu_cancel`,e),t(()=>[]),n();return}if(Di()&&s){s();return}Z(`tengu_cancel`,e),t(()=>[]),n()},[o,s,t,n,m]),S=Dd(),C=o!==void 0&&!o.aborted,w=_>0,T=f!==void 0&&f!==`prompt`&&!p,E=a!==`transcript`&&!u&&!i&&!l&&!d&&!S&&!(O_()&&c===`INSERT`),D=E&&(C||w)&&!T,O=E&&(C||w);A(`chat:cancel`,x,{context:`Chat`,isActive:D});let k=(0,Q.useCallback)(()=>{let e=h.getState().tasks,t=Object.entries(e).filter(([,e])=>e.type===`local_agent`&&e.status===`running`);if(t.length===0)return!1;Mi(e,g);let n=[];for(let[e,r]of t)na(e,g),n.push(r.description),sh(e,`stopped`,{toolUseId:r.toolUseId,summary:r.description});return Fi({value:n.length===1?`Background agent "${n[0]}" was stopped by the user.`:`${n.length} background agents were stopped by the user: ${n.map(e=>`"${e}"`).join(`, `)}.`,mode:`task-notification`}),r(),!0},[h,g,r]);return A(`app:interrupt`,(0,Q.useCallback)(()=>{(C||w)&&x()},[C,w,x]),{context:`Global`,isActive:O}),A(`chat:killAgents`,(0,Q.useCallback)(()=>{let e=h.getState().tasks;if(!Object.values(e).some(e=>e.type===`local_agent`&&e.status===`running`)){v({key:`kill-agents-none`,text:`No background agents running`,priority:`immediate`,timeoutMs:2e3});return}let t=Date.now();if(t-b.current<=OO){b.current=0,y(`kill-agents-confirm`),Z(`tengu_cancel`,{source:`kill_agents`}),id(),k();return}b.current=t;let n=yn(`chat:killAgents`,`Chat`,`ctrl+x ctrl+k`);v({key:`kill-agents-confirm`,text:`Press ${n} again to stop background agents`,priority:`immediate`,timeoutMs:OO})},[h,v,y,k]),{context:`Chat`}),null}B(),q(),hr();function AO(e){let t=J(e=>e.tasks),n=J(e=>e.pipeIpc),r=Object.values(t).some(ei),i=t=>{if(t.shift&&(t.key===`up`||t.key===`down`)){t.preventDefault(),r?e?.onOpenBackgroundTasks?.():t.key===`down`&&n?.statusVisible&&e?.onTogglePipeSelector&&e.onTogglePipeSelector();return}};return oe((e,t,n)=>{i(new ee(n.keypress))}),{handleKeyDown:i}}F_(),np();async function jO(e){let{ctx:t,updatedInput:n,suggestions:r,permissionMode:i}=e;try{let e=await t.runHooks(i,r,n);if(e)return e}catch(e){e instanceof Error?X(e):X(Error(`Automated permission check failed: ${String(e)}`))}return null}var MO=new Map,NO=null;function PO(){return NO??null}function FO(e,t){let n=PO();if(!n)return null;let r=Ov(),i={requestId:r,toolName:e.tool.name,toolUseID:e.toolUseID,description:e.description,input:e.input,permissionResult:e.permissionResult,permissionPromptStartTimeMs:e.permissionPromptStartTimeMs};return MO.set(r,{onResponse:t}),n({type:`permission_request`,data:JSON.stringify(i)}),r}function IO(e){e&&MO.delete(e)}function LO(e,t){if(!e)return;let n=PO();n&&n({type:`permission_cancel`,data:JSON.stringify({requestId:e,reason:t})})}bp(),Gm(),_c(),tf(),wd(),zd(),kn(),Hd();function RO(e){let t=!1,n=!1;return{resolve(r){n||(n=!0,t=!0,e(r))},isResolved(){return t},claim(){return t?!1:(t=!0,!0)}}}function zO(e,t,n,r,i,a,o){let s=r.message.id;return Object.freeze({tool:e,input:t,toolUseContext:n,assistantMessage:r,messageId:s,toolUseID:i,logDecision(r,a){Jt({tool:e,input:a?.input??t,toolUseContext:n,messageId:s,toolUseID:i},r,a?.permissionPromptStartTimeMs)},logCancelled(){Z(`tengu_tool_use_cancelled`,{messageID:s,toolName:Km(e.name)})},async persistPermissions(e){return e.length===0?!1:(Hi(e),a(sn(n.getAppState().toolPermissionContext,e)),e.some(e=>rl(e.destination)))},resolveIfAborted(e){return n.abortController.signal.aborted?(this.logCancelled(),e(this.cancelAndAbort(void 0,!0)),!0):!1},cancelAndAbort(t,r,i){let a=!!n.agentId,o=t?`${a?bs:_u}${t}`:a?Fc:Ol,s=a?o:$s(o);return(r||!t&&!i?.length&&!a)&&(Y(`Aborting: tool=${e.name} isAbort=${r} hasFeedback=${!!t} isSubagent=${a}`),n.abortController.abort()),{behavior:`ask`,message:s,contentBlocks:i}},async runHooks(r,a,o,s){for await(let c of er(e.name,i,t,n,r,a,n.abortController.signal))if(c.permissionRequestResult){let r=c.permissionRequestResult;if(r.behavior===`allow`){let e=r.updatedInput??o??t;return await this.handleHookAllow(e,r.updatedPermissions??[],s)}else if(r.behavior===`deny`)return this.logDecision({decision:`reject`,source:{type:`hook`}},{permissionPromptStartTimeMs:s}),r.interrupt&&(Y(`Hook interrupt: tool=${e.name} hookMessage=${r.message}`),n.abortController.abort()),this.buildDeny(r.message||`Permission denied by hook`,{type:`hook`,hookName:`PermissionRequest`,reason:r.message})}return null},buildAllow(e,t){return{behavior:`allow`,updatedInput:e,userModified:t?.userModified??!1,...t?.decisionReason&&{decisionReason:t.decisionReason},...t?.acceptFeedback&&{acceptFeedback:t.acceptFeedback},...t?.contentBlocks&&t.contentBlocks.length>0&&{contentBlocks:t.contentBlocks}}},buildDeny(e,t){return{behavior:`deny`,message:e,decisionReason:t}},async handleUserAllow(n,r,i,a,o,s){let c=await this.persistPermissions(r);this.logDecision({decision:`accept`,source:{type:`user`,permanent:c}},{input:n,permissionPromptStartTimeMs:a});let l=e.inputsEquivalent?!e.inputsEquivalent(t,n):!1,u=i?.trim();return this.buildAllow(n,{userModified:l,decisionReason:s,acceptFeedback:u||void 0,contentBlocks:o})},async handleHookAllow(e,t,n){let r=await this.persistPermissions(t);return this.logDecision({decision:`accept`,source:{type:`hook`,permanent:r}},{input:e,permissionPromptStartTimeMs:n}),this.buildAllow(e,{decisionReason:{type:`hook`,hookName:`PermissionRequest`}})},pushToQueue(e){o?.push(e)},removeFromQueue(){o?.remove(i)},updateQueueItem(e){o?.update(i,e)}})}function BO(e){return{push(t){e(e=>[...e,t])},remove(t){e(e=>e.filter(e=>e.toolUseID!==t))},update(t,n){e(e=>e.map(e=>e.toolUseID===t?{...e,...n}:e))}}}tf(),B(),_c(),Tt(),cf();function VO(e,t){let{ctx:n,description:r,result:i,awaitAutomatedChecksBeforeDialog:a,bridgeCallbacks:o}=e,{resolve:s,isResolved:c,claim:l}=RO(t),u,d,f=o?Ov():void 0,p=Date.now(),m=i.updatedInput??n.input,h=null;function g(e){LO(h,e),IO(h),h=null}function _(){IO(h),h=null}let v={assistantMessage:n.assistantMessage,tool:n.tool,description:r,input:m,toolUseContext:n.toolUseContext,toolUseID:n.toolUseID,permissionResult:i,permissionPromptStartTimeMs:p,onUserInteraction(){Date.now()-p<200||ua(n.toolUseID)},onDismissCheckmark(){u&&(clearTimeout(u),u=void 0,d&&(n.toolUseContext.abortController.signal.removeEventListener(`abort`,d),d=void 0),n.removeFromQueue())},onAbort(){l()&&(g(`Permission request was aborted locally in sub.`),o&&f&&(o.sendResponse(f,{behavior:`deny`,message:`User aborted`}),o.cancelRequest(f)),n.logCancelled(),n.logDecision({decision:`reject`,source:{type:`user_abort`}},{permissionPromptStartTimeMs:p}),s(n.cancelAndAbort(void 0,!0)))},async onAllow(e,t,r,a){l()&&(g(`Permission request was approved locally in sub.`),o&&f&&(o.sendResponse(f,{behavior:`allow`,updatedInput:e,updatedPermissions:t}),o.cancelRequest(f)),s(await n.handleUserAllow(e,t,r,p,a,i.decisionReason)))},onReject(e,t){l()&&(g(`Permission request was rejected locally in sub.`),o&&f&&(o.sendResponse(f,{behavior:`deny`,message:e??`User denied permission`}),o.cancelRequest(f)),n.logDecision({decision:`reject`,source:{type:`user_reject`,hasFeedback:!!e}},{permissionPromptStartTimeMs:p}),s(n.cancelAndAbort(e,void 0,t)))},async recheckPermission(){if(c())return;let e=await Co(n.tool,n.input,n.toolUseContext,n.assistantMessage,n.toolUseID);if(e.behavior===`allow`){if(!l())return;g(`Permission request was resolved locally in sub.`),o&&f&&o.cancelRequest(f),n.removeFromQueue(),n.logDecision({decision:`accept`,source:`config`}),s(n.buildAllow(e.updatedInput??n.input))}}};if(n.pushToQueue(v),h=FO(v,e=>{l()&&(_(),ua(n.toolUseID),n.removeFromQueue(),o&&f&&o.cancelRequest(f),e.behavior===`allow`?(async()=>{e.permissionUpdates?.length&&n.persistPermissions(e.permissionUpdates),n.logDecision({decision:`accept`,source:{type:`user`,permanent:!!e.permissionUpdates?.length}},{permissionPromptStartTimeMs:p}),s(n.buildAllow(e.updatedInput??m,{acceptFeedback:e.feedback,contentBlocks:e.contentBlocks}))})():(n.logDecision({decision:`reject`,source:{type:`user_reject`,hasFeedback:!!e.feedback}},{permissionPromptStartTimeMs:p}),s(n.cancelAndAbort(e.feedback,void 0,e.contentBlocks))))}),o&&f){o.sendRequest(f,n.tool.name,m,n.toolUseID,r,i.suggestions,i.blockedPath);let e=n.toolUseContext.abortController.signal,t=o.onResponse(f,r=>{l()&&(g(`Permission request was resolved by bridge before pipe response.`),e.removeEventListener(`abort`,t),ua(n.toolUseID),n.removeFromQueue(),r.behavior===`allow`?(r.updatedPermissions?.length&&n.persistPermissions(r.updatedPermissions),n.logDecision({decision:`accept`,source:{type:`user`,permanent:!!r.updatedPermissions?.length}},{permissionPromptStartTimeMs:p}),s(n.buildAllow(r.updatedInput??m))):(n.logDecision({decision:`reject`,source:{type:`user_reject`,hasFeedback:!!r.message}},{permissionPromptStartTimeMs:p}),s(n.cancelAndAbort(r.message))))});e.addEventListener(`abort`,t,{once:!0})}a||(async()=>{if(c())return;let e=n.toolUseContext.getAppState(),t=await n.runHooks(e.toolPermissionContext.mode,i.suggestions,i.updatedInput,p);!t||!l()||(g(`Permission request was resolved by hook before pipe response.`),o&&f&&o.cancelRequest(f),n.removeFromQueue(),s(t))})()}bp(),Gm(),B(),_c(),Tt(),tf(),cf(),np(),Gn(),Zd(),Hd();function HO(e,t){return(0,Q.useCallback)(async(n,r,i,a,o,s)=>new Promise(c=>{let l=zO(n,r,i,a,o,t,BO(e));if(!l.resolveIfAborted(c))return(s===void 0?Co(n,r,i,a,o):Promise.resolve(s)).then(async e=>{if(process.env.USER_TYPE===`ant`&&Z(`tengu_internal_tool_permission_decision`,{toolName:Km(n.name),behavior:e.behavior,input:sf(r),messageID:l.messageId,isMcp:n.isMcp??!1}),e.behavior===`allow`){if(l.resolveIfAborted(c))return;e.decisionReason?.type===`classifier`&&e.decisionReason.classifier===`auto-mode`&&Ys(o,e.decisionReason.reason),l.logDecision({decision:`accept`,source:`config`}),c(l.buildAllow(e.updatedInput??r,{decisionReason:e.decisionReason}));return}let t=i.getAppState(),a=await n.description(r,{isNonInteractiveSession:i.options.isNonInteractiveSession,toolPermissionContext:t.toolPermissionContext,tools:i.options.tools});if(!l.resolveIfAborted(c))switch(e.behavior){case`deny`:Jt({tool:n,input:r,toolUseContext:i,messageId:l.messageId,toolUseID:o},{decision:`reject`,source:`config`}),e.decisionReason?.type===`classifier`&&e.decisionReason.classifier===`auto-mode`&&(I_({toolName:n.name,display:a,reason:e.decisionReason.reason??``,timestamp:Date.now()}),i.addNotification?.({key:`auto-mode-denied`,priority:`immediate`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(T,{color:`error`,children:[n.userFacingName(r).toLowerCase(),` denied by auto mode`]}),(0,$.jsx)(T,{dimColor:!0,children:` · /permissions`})]})})),c(e);return;case`ask`:if(t.toolPermissionContext.awaitAutomatedChecksBeforeDialog){let n=await jO({ctx:l,updatedInput:e.updatedInput,suggestions:e.suggestions,permissionMode:t.toolPermissionContext.mode});if(n){c(n);return}}if(l.resolveIfAborted(c))return;VO({ctx:l,description:a,result:e,awaitAutomatedChecksBeforeDialog:t.toolPermissionContext.awaitAutomatedChecksBeforeDialog,bridgeCallbacks:t.replBridgePermissionCallbacks},c);return}}).catch(e=>{e instanceof qd||e instanceof Xd?(Y(`Permission check threw ${e.constructor.name} for tool=${n.name}: ${e.message}`),l.logCancelled(),c(l.cancelAndAbort(void 0,!0))):(X(e),c(l.cancelAndAbort(void 0,!0)))}).finally(()=>{ua(o)})}),[e,t])}ah(),bp(),la(),zu(),Wd(),tf(),As(),cf(),np(),Ki(),rm();function UO(){yu(0)}async function WO(e){let{helpers:t,queryGuard:n,isExternalLoading:r=!1,commands:i,onInputChange:a,setPastedContents:o,setToolJSX:s,getToolUseContext:c,messages:l,mainLoopModel:u,ideSelection:d,setUserInputOnProcessing:f,setAbortController:p,onQuery:m,setAppState:h,onBeforeQuery:g,canUseTool:_,queuedCommands:v,uuid:y,skipSlashCommands:b,bridgeOrigin:x}=e,{setCursorOffset:S,clearBuffer:C,resetHistory:w}=t;if(v?.length){Ju(),await GO({queuedCommands:v,messages:l,mainLoopModel:u,ideSelection:d,querySource:e.querySource,commands:i,queryGuard:n,setToolJSX:s,getToolUseContext:c,setUserInputOnProcessing:f,setAbortController:p,onQuery:m,setAppState:h,onBeforeQuery:g,resetHistory:w,canUseTool:_,onInputChange:a});return}let T=e.input??``,E=e.mode??`prompt`,D=e.pastedContents??{},O=new Set(nc(T).map(e=>e.id)),k=Object.fromEntries(Object.entries(D).filter(([,e])=>e.type!==`image`||O.has(e.id))),ee=Object.values(k).some(Nd);if(T.trim()===``)return;if(!b&&[`exit`,`quit`,`:q`,`:q!`,`:wq`,`:wq!`].includes(T.trim())){i.find(e=>e.name===`exit`)?WO({...e,input:`/exit`}):UO();return}let A=hs(T,k),j=nc(T).filter(e=>k[e.id]?.type===`text`),M=j.length;if(Z(`tengu_paste_text`,{pastedTextCount:M,pastedTextBytes:j.reduce((e,t)=>e+(k[t.id]?.content.length??0),0)}),!b&&A.trim().startsWith(`/`)){let t=A.trim(),d=t.indexOf(` `),f=d===-1?t.slice(1):t.slice(1,d),p=d===-1?``:t.slice(d+1).trim(),m=i.find(e=>e.immediate&&Bu(e)&&(e.name===f||e.aliases?.includes(f)||Ns(e)===f));if(m&&m.type===`local-jsx`&&(n.isActive||r)){Z(`tengu_immediate_command_executed`,{commandName:m.name}),a(``),S(0),o({}),C();let t=c(l,[],No(),u),n=!1,r=await(await m.load()).call((t,r)=>{n=!0,s({jsx:null,shouldHidePromptInput:!1,clearLocalJSX:!0}),t&&r?.display!==`skip`&&e.addNotification&&e.addNotification({key:`immediate-${m.name}`,text:t,priority:`immediate`}),r?.nextInput&&(r.submitNextInput?pn({value:r.nextInput,mode:`prompt`}):a(r.nextInput))},t,p);r&&!n&&s({jsx:r,shouldHidePromptInput:!1,isLocalJSXCommand:!0,isImmediate:!0});return}}if(n.isActive||r){if(E!==`prompt`&&E!==`bash`)return;e.hasInterruptibleToolInProgress&&(Y(`[interrupt] Aborting current turn: streamMode=${e.streamMode}`),Z(`tengu_cancel`,{source:`interrupt_on_submit`,streamMode:e.streamMode}),e.abortController?.abort(`interrupt`)),pn({value:A.trim(),preExpansionValue:T.trim(),mode:E,pastedContents:ee?k:void 0,skipSlashCommands:b,bridgeOrigin:x,uuid:y}),a(``),S(0),o({}),w(),C();return}Ju(),await GO({queuedCommands:[{value:A,preExpansionValue:T,mode:E,pastedContents:ee?k:void 0,skipSlashCommands:b,bridgeOrigin:x,uuid:y}],messages:l,mainLoopModel:u,ideSelection:d,querySource:e.querySource,commands:i,queryGuard:n,setToolJSX:s,getToolUseContext:c,setUserInputOnProcessing:f,setAbortController:p,onQuery:m,setAppState:h,onBeforeQuery:g,resetHistory:w,canUseTool:_,onInputChange:a})}async function GO(e){let{messages:t,mainLoopModel:n,ideSelection:r,querySource:i,queryGuard:a,setToolJSX:o,getToolUseContext:s,setUserInputOnProcessing:c,setAbortController:l,onQuery:u,setAppState:d,onBeforeQuery:f,resetHistory:p,canUseTool:m,queuedCommands:h}=e,g=No();l(g);function _(){return s(t,[],g,n)}try{a.reserve(),fl(`query_process_user_input_start`);let s=[],v=!1,y,b,x,S,C=h??[],w=await gs(C);C=w.attachmentCommands;let T=w.claimedCommands;if(C.length===0){l(null);return}let E=C[0]?.workload,D=E!==void 0&&C.every(e=>e.workload===E)?E:void 0,O=new Set,k;try{await Dm(D,async()=>{for(let e=0;e<C.length;e++){let n=C[e],a=e===0,l=n.autonomy?.runId,u=await fg({input:n.value,preExpansionInput:n.preExpansionValue,mode:n.mode,setToolJSX:o,context:_(),pastedContents:a?n.pastedContents:void 0,messages:t,setUserInputOnProcessing:a?c:void 0,isAlreadyProcessing:!a,querySource:i,canUseTool:m,uuid:n.uuid,ideSelection:a?r:void 0,skipSlashCommands:n.skipSlashCommands,bridgeOrigin:n.bridgeOrigin,isMeta:n.isMeta,skipAttachments:!a,autonomy:n.autonomy});l&&u.deferAutonomyCompletion&&O.add(l);let d=n.origin??(n.mode===`task-notification`?{kind:`task-notification`}:void 0);if(d)for(let e of u.messages)e.type===`user`&&(e.origin=d);s.push(...u.messages),a&&(v=u.shouldQuery,y=u.allowedTools,b=u.model,x=u.nextInput,S=u.submitNextInput)}if(fl(`query_process_user_input_end`),xd()&&(fl(`query_file_history_snapshot_start`),s.filter(dg).forEach(e=>{Aa(e=>{d(t=>({...t,fileHistory:e(t.fileHistory)}))},e.uuid)}),fl(`query_file_history_snapshot_end`)),s.length){p(),o({jsx:null,shouldHidePromptInput:!1,clearLocalJSX:!0});let e=C[0],t=e?.mode??`prompt`,r=e&&typeof e.value==`string`?e.value:void 0,i=t===`prompt`;await u(s,g,v,y??[],b?Kp(b,n):n,i?f:void 0,r)}else a.cancelReservation(),o({jsx:null,shouldHidePromptInput:!1,clearLocalJSX:!0}),p(),l(null);x&&(S?pn({value:x,mode:`prompt`}):e.onInputChange(x))})}catch(e){k=e}if(T.length){let e=T.filter(e=>{let t=e.autonomy?.runId;return!t||!O.has(t)});if(k)try{await Nl({commands:e,outcome:{type:`failed`,error:k},currentDir:Gd(),priority:`later`,workload:D})}catch(e){X($d(e))}else try{let t=await Nl({commands:e,outcome:{type:`completed`},currentDir:Gd(),priority:`later`,workload:D});for(let e of t)pn(e)}catch(e){X($d(e))}}if(k)throw k}finally{a.cancelReservation(),c(void 0)}}Ki();function KO(e){if(typeof e.value==`string`)return e.value.trim().startsWith(`/`)&&(!e.skipSlashCommands||e.bridgeOrigin===!0);for(let t of e.value)if(t.type===`text`)return t.text.trim().startsWith(`/`)&&(!e.skipSlashCommands||e.bridgeOrigin===!0);return!1}function qO({executeInput:e}){let t=e=>e.agentId===void 0,n=$r(t);if(!n)return{processed:!1};if(KO(n)||n.mode===`bash`)return e([Ba(t)]),{processed:!0};let r=n.mode,i=bn(e=>t(e)&&!KO(e)&&e.mode===r);return i.length===0?{processed:!1}:(e(i),{processed:!0})}Ki();function JO({executeQueuedInput:e,hasActiveLocalJsxUI:t,queryGuard:n}){let r=(0,Q.useSyncExternalStore)(n.subscribe,n.getSnapshot),i=(0,Q.useSyncExternalStore)(zt,Hc);(0,Q.useEffect)(()=>{r||t||i.length!==0&&qO({executeInput:e})},[i,r,e,t,n])}function YO({isLoading:e,onSubmitMessage:t}){let n=Dc();(0,Q.useEffect)(()=>{if(e)return;let r=n.poll();r&&t(r.content)},[e,(0,Q.useSyncExternalStore)((0,Q.useMemo)(()=>n.subscribe.bind(n),[n]),(0,Q.useCallback)(()=>n.revision,[n])),n,t])}function XO(e,t){return e&&t&&t.length>0?Gi([...e,...t],`name`):e||[]}function ZO(e,t){return(0,Q.useMemo)(()=>XO(e,t),[e,t])}mr(),ug(),Lg(),Ti();function QO(e,t){return(0,Q.useMemo)(()=>t.length>0?Gi([...e,...t],`name`):e,[e,t])}la(),np();function $O(e,t){let n=(0,Q.useCallback)(async()=>{if(e)try{ho(),t(await su(e))}catch(e){e instanceof Error&&X(e)}},[e,t]);(0,Q.useEffect)(()=>Dg.subscribe(n),[n])}np(),Ee(),mn(),Oe();var ek=Te(()=>ye({method:xe(`selection_changed`),params:ye({selection:ye({start:ye({line:Se(),character:Se()}),end:ye({line:Se(),character:Se()})}).nullable().optional(),text:be().optional(),filePath:be().optional()})}));function tk(e,t){let n=(0,Q.useRef)(!1),r=(0,Q.useRef)(null);(0,Q.useEffect)(()=>{let i=Ma(e);if(r.current!==(i??null)&&(n.current=!1,r.current=i||null,t({lineCount:0,lineStart:void 0,text:void 0,filePath:void 0})),n.current||!i)return;let a=e=>{if(e.selection?.start&&e.selection?.end){let{start:n,end:r}=e.selection,i=r.line-n.line+1;r.character===0&&i--,t({lineCount:i,lineStart:n.line,text:e.text,filePath:e.filePath})}};i.client.setNotificationHandler(ek(),e=>{if(r.current===i)try{let t=e.params;t.selection&&t.selection.start&&t.selection.end?a(t):t.text!==void 0&&a({selection:null,text:t.text,filePath:t.filePath})}catch(e){X(e)}}),n.current=!0},[e,t])}el(),B(),X_(),q(),Ep();function nk({task:e,selected:t}){let n=$_(e.startTime,e.status===`running`),r=e.progress?.tokenCount??0;return(0,$.jsxs)(b,{flexDirection:`row`,width:`100%`,justifyContent:`space-between`,children:[(0,$.jsxs)(b,{flexDirection:`row`,flexShrink:1,children:[(0,$.jsx)(T,{color:e.status===`running`?`success`:void 0,children:t?`● `:`○ `}),(0,$.jsxs)(T,{bold:t,wrap:`truncate-end`,children:[e.agentType,` `,(0,$.jsx)(T,{dimColor:!0,children:e.description})]})]}),(0,$.jsx)(b,{flexShrink:0,children:(0,$.jsxs)(T,{dimColor:!0,children:[n,` · ↓ `,Ap(r),` tokens`]})})]})}function rk(e,t){return e?`↑/↓ to select · Enter to view`:t?t.status===`running`?`shift+↓ to manage · x to stop`:`shift+↓ to manage · x to clear`:`shift+↓ to manage background agents`}function ik(){let e=wC(),t=J(e=>e.viewingAgentTaskId),n=J(e=>e.footerSelection),r=J(e=>e.selectedBgAgentIndex);if(e.length===0)return null;let i=n===`bg_agent`,a=i?r===-1?null:e[r]?.agentId??null:t??null,o=i?r===-1:t===void 0,s=t?e.find(e=>e.agentId===t)??null:null;return(0,$.jsxs)(b,{flexDirection:`column`,width:`100%`,children:[(0,$.jsxs)(b,{flexDirection:`row`,width:`100%`,justifyContent:`space-between`,children:[(0,$.jsxs)(T,{bold:o,children:[o?`● `:`○ `,`main`]}),(0,$.jsx)(T,{dimColor:!0,children:rk(i,s)})]}),e.map(e=>(0,$.jsx)(nk,{task:e,selected:e.agentId===a},e.agentId))]})}tf(),Ni();var ak=1e3;function ok({taskListId:e,isLoading:t,onSubmitTask:n}){let r=(0,Q.useRef)(null),i=(0,Q.useRef)(null),a=(0,Q.useRef)(t);a.current=t;let o=(0,Q.useRef)(n);o.current=n;let s=e!==void 0,c=e??`tasklist`,l=(0,Q.useRef)(async()=>{});l.current=async()=>{if(!s||a.current)return;let t=await Et(e);if(r.current!==null){let e=t.find(e=>e.id===r.current);if(!e||e.status===`completed`)Y(`[TaskListWatcher] Task #${r.current} is marked complete, ready for next task`),r.current=null;else return}let n=sk(t);if(!n)return;Y(`[TaskListWatcher] Found available task #${n.id}: ${n.subject}`);let i=await Da(e,n.id,c);if(!i.success){Y(`[TaskListWatcher] Failed to claim task #${n.id}: ${i.reason}`);return}r.current=n.id;let l=ck(n);Y(`[TaskListWatcher] Submitting task #${n.id} as prompt`),o.current(l)||(Y(`[TaskListWatcher] Failed to submit task #${n.id}, releasing claim`),await fi(e,n.id,{owner:void 0}),r.current=null)};let u=(0,Q.useRef)(()=>{});(0,Q.useEffect)(()=>{if(!s)return;nd(e);let t=un(e),n=null,r=()=>{i.current&&clearTimeout(i.current),i.current=setTimeout(e=>void e.current(),ak,l)};u.current=r;try{n=Ev(t,r),n.unref(),Y(`[TaskListWatcher] Watching for tasks in ${t}`)}catch(e){Y(`[TaskListWatcher] Failed to watch ${t}: ${e}`)}return r(),()=>{u.current=()=>{},n&&n.close(),i.current&&clearTimeout(i.current)}},[s,e]),(0,Q.useEffect)(()=>{s&&(t||u.current())},[s,t])}function sk(e){let t=new Set(e.filter(e=>e.status!==`completed`).map(e=>e.id));return e.find(e=>e.status!==`pending`||e.owner?!1:e.blockedBy.every(e=>!t.has(e)))}function ck(e){let t=`Complete all open tasks. Start with task #${e.id}: \n\n ${e.subject}`;return e.description&&(t+=`\n\n${e.description}`),t}Rf(),s(),mn();function lk({autoConnectIdeFlag:e,ideToInstallExtension:t,setDynamicMcpConfig:n,setShowIdeOnboarding:r,setIDEInstallationState:o}){(0,Q.useEffect)(()=>{function s(r){r&&(Lf().autoConnectIde||e||Gc()||process.env.CLAUDE_CODE_SSE_PORT||t||a(process.env.CLAUDE_CODE_AUTO_CONNECT_IDE))&&!i(process.env.CLAUDE_CODE_AUTO_CONNECT_IDE)&&n(e=>e?.ide?e:{...e,ide:{type:r.url.startsWith(`ws:`)?`ws-ide`:`sse-ide`,url:r.url,ideName:r.name,authToken:r.authToken,ideRunningInWindows:r.ideRunningInWindows,scope:`dynamic`}})}Ri(s,t,()=>r(!0),e=>o(e))},[e,t,n,r,o])}b_(),kh(),B(),Ah(),cn(),q(),Rf(),Cf(),s();function uk({onBackgroundSession:e,isLoading:t}){let n=Vr(),r=qn(),[i,o]=(0,Q.useState)(!1),s=R(o,e,()=>{}),c=(0,Q.useCallback)(()=>{a(process.env.CLAUDE_CODE_DISABLE_BACKGROUND_TASKS)||(Ga(r.getState())?(cd(()=>r.getState(),n),Lf().hasUsedBackgroundTask||If(e=>e.hasUsedBackgroundTask?e:{...e,hasUsedBackgroundTask:!0})):a(`false`)&&t&&s())},[n,r,t,s]),l=J(Ga),u=a(`false`);A(`task:background`,c,{context:`Task`,isActive:l||u&&t});let d=ud(`task:background`,`Task`,`ctrl+b`),f=mf.terminal===`tmux`&&d===`ctrl+b`?`ctrl+b ctrl+b`:d;return!t||!i?null:(0,$.jsx)(b,{paddingLeft:2,children:(0,$.jsx)(T,{dimColor:!0,children:(0,$.jsx)(h,{shortcut:f,action:`background`})})})}q();function dk({setMessages:e,setIsLoading:t,resetLoadingState:n,setAbortController:r,onBackgroundQuery:i}){let a=J(e=>e.foregroundedTaskId),o=J(e=>e.foregroundedTaskId?e.tasks[e.foregroundedTaskId]:void 0),s=Vr(),c=(0,Q.useRef)(0),l=(0,Q.useCallback)(()=>{if(a){s(e=>{let t=e.foregroundedTaskId;if(!t)return e;let n=e.tasks[t];return n?{...e,foregroundedTaskId:void 0,tasks:{...e.tasks,[t]:{...n,isBackgrounded:!0}}}:{...e,foregroundedTaskId:void 0}}),e([]),n(),r(null);return}i()},[a,s,e,n,r,i]);return(0,Q.useEffect)(()=>{if(!a){c.current=0;return}if(!o||o.type!==`local_agent`){s(e=>({...e,foregroundedTaskId:void 0})),n(),c.current=0;return}let i=o.messages??[];if(i.length!==c.current&&(c.current=i.length,e([...i])),o.status===`running`){let e=o.abortController;if(e?.signal.aborted){s(e=>{if(!e.foregroundedTaskId)return e;let t=e.tasks[e.foregroundedTaskId];return t?{...e,foregroundedTaskId:void 0,tasks:{...e.tasks,[e.foregroundedTaskId]:{...t,isBackgrounded:!0}}}:{...e,foregroundedTaskId:void 0}}),n(),r(null),c.current=0;return}t(!0),e&&r(e)}else s(e=>{let t=e.foregroundedTaskId;if(!t)return e;let n=e.tasks[t];return n?{...e,foregroundedTaskId:void 0,tasks:{...e.tasks,[t]:{...n,isBackgrounded:!0}}}:{...e,foregroundedTaskId:void 0}}),n(),r(null),c.current=0},[a,o,s,e,t,n,r]),{handleBackgroundSession:l}}ri(),rg(),Xg();function fk(e,t){return t}async function pk(e,t,n){try{Y(`Collecting transcript for sharing`,{level:`info`});let r=Fr(e),i=await Ir(Bl(e)),a;try{let e=Tn(),{size:t}=await Av(e);t<=52428800?a=await kv(e,`utf-8`):Y(`Skipping raw transcript read: file too large (${t} bytes)`,{level:`warn`})}catch{}let o=D_(sf({trigger:t,version:`0.0.6`,platform:process.platform,transcript:r,subagentTranscripts:Object.keys(i).length>0?i:void 0,rawTranscriptJsonl:a}));await pm();let s=Vp();if(s.error)return{success:!1};let c={"Content-Type":`application/json`,"User-Agent":Cm(),...s.headers},l=await f.post(`https://api.anthropic.com/api/claude_code_shared_session_transcripts`,{content:o,appearance_id:n},{headers:c,timeout:3e4});if(l.status===200||l.status===201){let e=l.data;return Y(`Transcript shared successfully`,{level:`info`}),{success:!0,transcriptId:e?.transcript_id}}return{success:!1}}catch(e){return Y(Jd(e),{level:`error`}),{success:!1}}}var mk=t((()=>{p(),Wp(),tf(),cf(),zd(),Jc(),Zd()}));Dh(),mk();function hk({hideThanksAfterMs:e,onOpen:t,onSelect:n,shouldShowTranscriptPrompt:r,onTranscriptPromptShown:i,onTranscriptSelect:a}){let[o,s]=(0,Q.useState)(`closed`),[c,l]=(0,Q.useState)(null),u=(0,Q.useRef)(Ov()),d=(0,Q.useRef)(null),f=(0,Q.useCallback)(()=>{s(`thanks`),setTimeout((e,t)=>{e(`closed`),t(null)},e,s,l)},[e]),p=(0,Q.useCallback)(()=>{s(`submitted`),setTimeout(s,e,`closed`)},[e]);return{state:o,lastResponse:c,open:(0,Q.useCallback)(()=>{o===`closed`&&(s(`open`),u.current=Ov(),t(u.current))},[o,t]),handleSelect:(0,Q.useCallback)(e=>{if(l(e),d.current=e,n(u.current,e),e===`dismissed`)s(`closed`),l(null);else if(r?.(e))return s(`transcript_prompt`),i?.(u.current,e),!0;else f();return!1},[f,n,r,i]),handleTranscriptSelect:(0,Q.useCallback)(e=>{switch(e){case`yes`:s(`submitting`),(async()=>{try{await a?.(u.current,e,d.current)?p():f()}catch{f()}})();break;case`no`:case`dont_ask_again`:a?.(u.current,e,d.current),f();break}},[f,p,a])}}bp(),Rf(),s(),zd(),rm(),Af();var gk={minTimeBeforeFeedbackMs:6e5,minTimeBetweenFeedbackMs:36e5,minTimeBetweenGlobalFeedbackMs:1e8,minUserTurnsBeforeFeedback:5,minUserTurnsBetweenFeedback:10,hideThanksAfterMs:3e3,onForModels:[`*`],probability:.005},_k={probability:0};function vk(e,t,n,r=`session`,i=!1){let o=(0,Q.useRef)(`unknown`);o.current=nl(e)?.message?.id||`unknown`;let[s,c]=(0,Q.useState)(()=>({timeLastShown:null,submitCountAtLastAppearance:null})),l=fk(`tengu_feedback_survey_config`,gk),u=fk(`tengu_bad_survey_transcript_ask_config`,_k),d=fk(`tengu_good_survey_transcript_ask_config`,_k),f=Mf().feedbackSurveyRate,p=(0,Q.useRef)(Date.now()),m=(0,Q.useRef)(n),h=(0,Q.useRef)(n);h.current=n;let g=(0,Q.useRef)(e);g.current=e;let _=(0,Q.useRef)(!1),v=(0,Q.useRef)(null),y=(0,Q.useCallback)((e,t)=>{c(n=>n.timeLastShown===e&&n.submitCountAtLastAppearance===t?n:{timeLastShown:e,submitCountAtLastAppearance:t}),Lf().feedbackSurveyState?.lastShownTime!==e&&If(t=>({...t,feedbackSurveyState:{lastShownTime:e}}))},[]),b=(0,Q.useCallback)(e=>{y(Date.now(),h.current),Z(`tengu_feedback_survey_event`,{event_type:`appeared`,appearance_id:e,last_assistant_message_id:o.current,survey_type:r}),fh(`feedback_survey`,{event_type:`appeared`,appearance_id:e,survey_type:r})},[y,r]),x=(0,Q.useCallback)((e,t)=>{y(Date.now(),h.current),Z(`tengu_feedback_survey_event`,{event_type:`responded`,appearance_id:e,response:t,last_assistant_message_id:o.current,survey_type:r}),fh(`feedback_survey`,{event_type:`responded`,appearance_id:e,response:t,survey_type:r})},[y,r]),S=(0,Q.useCallback)(e=>{if(e!==`bad`&&e!==`good`||Lf().transcriptShareDismissed||!Xa(`allow_product_feedback`))return!1;let t=e===`bad`?u.probability:d.probability;return Math.random()<=t},[u.probability,d.probability]),C=(0,Q.useCallback)((e,t)=>{let n=t===`good`?`good_feedback_survey`:`bad_feedback_survey`;Z(`tengu_feedback_survey_event`,{event_type:`transcript_prompt_appeared`,appearance_id:e,last_assistant_message_id:o.current,survey_type:r,trigger:n}),fh(`feedback_survey`,{event_type:`transcript_prompt_appeared`,appearance_id:e,survey_type:r})},[r]),w=(0,Q.useCallback)(async(e,t,n)=>{let i=n===`good`?`good_feedback_survey`:`bad_feedback_survey`;if(Z(`tengu_feedback_survey_event`,{event_type:`transcript_share_${t}`,appearance_id:e,last_assistant_message_id:o.current,survey_type:r,trigger:i}),t===`dont_ask_again`&&If(e=>({...e,transcriptShareDismissed:!0})),t===`yes`){let t=await pk(g.current,i,e);return Z(`tengu_feedback_survey_event`,{event_type:t.success?`transcript_share_submitted`:`transcript_share_failed`,appearance_id:e,trigger:i}),t.success}return!1},[r]),{state:T,lastResponse:E,open:D,handleSelect:O,handleTranscriptSelect:k}=hk({hideThanksAfterMs:l.hideThanksAfterMs,onOpen:b,onSelect:x,shouldShowTranscriptPrompt:S,onTranscriptPromptShown:C,onTranscriptSelect:w}),ee=Tm(),A=(0,Q.useMemo)(()=>l.onForModels.length===0?!1:l.onForModels.includes(`*`)?!0:l.onForModels.includes(ee),[l.onForModels,ee]),j=(0,Q.useMemo)(()=>{if(T!==`closed`||t||i)return!1;if(process.env.CLAUDE_FORCE_DISPLAY_SURVEY&&!s.timeLastShown)return!0;if(!A||a(process.env.CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY)||Oh()||!Xa(`allow_product_feedback`))return!1;if(s.timeLastShown){if(Date.now()-s.timeLastShown<l.minTimeBetweenFeedbackMs||s.submitCountAtLastAppearance!==null&&n<s.submitCountAtLastAppearance+l.minUserTurnsBetweenFeedback)return!1}else if(Date.now()-p.current<l.minTimeBeforeFeedbackMs||n<m.current+l.minUserTurnsBeforeFeedback)return!1;if(v.current!==n&&(v.current=n,_.current=Math.random()<=(f??l.probability)),!_.current)return!1;let e=Lf().feedbackSurveyState;return!(e?.lastShownTime&&Date.now()-e.lastShownTime<l.minTimeBetweenGlobalFeedbackMs)},[T,t,i,A,s.timeLastShown,s.submitCountAtLastAppearance,n,l.minTimeBetweenFeedbackMs,l.minTimeBetweenGlobalFeedbackMs,l.minUserTurnsBetweenFeedback,l.minTimeBeforeFeedbackMs,l.minUserTurnsBeforeFeedback,l.probability,f]);return(0,Q.useEffect)(()=>{j&&D()},[j,D]),{state:T,lastResponse:E,handleSelect:O,handleTranscriptSelect:k}}Dh(),bp(),uo(),Rf(),s(),zd(),hh(),mk();var yk=3e3,bk=`tengu_memory_survey_event`,xk=`memory_survey`;function Sk(e,t,n=!1,{enabled:r=!0}={}){let i=(0,Q.useRef)(new Set),a=(0,Q.useRef)(!1),o=(0,Q.useRef)(e);o.current=e;let{state:s,lastResponse:c,open:l,handleSelect:u,handleTranscriptSelect:d}=hk({hideThanksAfterMs:yk,onOpen:(0,Q.useCallback)(e=>{Z(bk,{event_type:`appeared`,appearance_id:e}),fh(`feedback_survey`,{event_type:`appeared`,appearance_id:e,survey_type:`memory`})},[]),onSelect:(0,Q.useCallback)((e,t)=>{Z(bk,{event_type:`responded`,appearance_id:e,response:t}),fh(`feedback_survey`,{event_type:`responded`,appearance_id:e,response:t,survey_type:`memory`})},[]),shouldShowTranscriptPrompt:(0,Q.useCallback)(e=>!(process.env.USER_TYPE!==`ant`||e!==`bad`&&e!==`good`||Lf().transcriptShareDismissed||!Xa(`allow_product_feedback`)),[]),onTranscriptPromptShown:(0,Q.useCallback)(e=>{Z(bk,{event_type:`transcript_prompt_appeared`,appearance_id:e,trigger:xk}),fh(`feedback_survey`,{event_type:`transcript_prompt_appeared`,appearance_id:e,survey_type:`memory`})},[]),onTranscriptSelect:(0,Q.useCallback)(async(e,t)=>{if(Z(bk,{event_type:`transcript_share_${t}`,appearance_id:e,trigger:xk}),t===`dont_ask_again`&&If(e=>({...e,transcriptShareDismissed:!0})),t===`yes`){let t=await pk(o.current,xk,e);return Z(bk,{event_type:t.success?`transcript_share_submitted`:`transcript_share_failed`,appearance_id:e,trigger:xk}),t.success}return!1},[])});return(0,Q.useEffect)(()=>{if(r&&e.length===0){a.current=!1,i.current.clear();return}},[r,s,t,n,(0,Q.useMemo)(()=>nl(e),[e]),e,l]),{state:s,lastResponse:c,handleSelect:u,handleTranscriptSelect:d}}Dh(),bp(),s(),zd(),hh();var Ck=3e3,wk=.2;function Tk(e,t){let n=e.findIndex(e=>e.uuid===t);if(n===-1)return!1;for(let t=n+1;t<e.length;t++){let n=e[t];if(n&&(n.type===`user`||n.type===`assistant`))return!0}return!1}function Ek(e,t,n=!1,{enabled:r=!0}={}){let[i,o]=(0,Q.useState)(null),s=(0,Q.useRef)(new Set),c=(0,Q.useRef)(null),{state:l,lastResponse:u,open:d,handleSelect:f}=hk({hideThanksAfterMs:Ck,onOpen:(0,Q.useCallback)(e=>{Z(`tengu_post_compact_survey_event`,{event_type:`appeared`,appearance_id:e,session_memory_compaction_enabled:Uu()}),fh(`feedback_survey`,{event_type:`appeared`,appearance_id:e,survey_type:`post_compact`})},[]),onSelect:(0,Q.useCallback)((e,t)=>{Z(`tengu_post_compact_survey_event`,{event_type:`responded`,appearance_id:e,response:t,session_memory_compaction_enabled:Uu()}),fh(`feedback_survey`,{event_type:`responded`,appearance_id:e,response:t,survey_type:`post_compact`})},[])});(0,Q.useEffect)(()=>{r&&o(!1)},[r]);let p=(0,Q.useMemo)(()=>new Set(e.filter(e=>Gt(e)).map(e=>e.uuid)),[e]);return(0,Q.useEffect)(()=>{if(!r||l!==`closed`||t||n||i!==!0||Oh()||a(process.env.CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY))return;if(c.current!==null&&Tk(e,c.current)){c.current=null,Math.random()<wk&&d();return}let o=Array.from(p).filter(e=>!s.current.has(e));o.length>0&&(s.current=new Set(p),c.current=o[o.length-1])},[r,p,l,t,n,i,e,d]),{state:l,lastResponse:u,handleSelect:f}}hf(),B();var Dk=[`1`,`2`,`3`],Ok={1:`yes`,2:`no`,3:`dont_ask_again`},kk=e=>Dk.includes(e);function Ak({onSelect:e,inputValue:t,setInputValue:n}){return lO({inputValue:t,setInputValue:n,isValidDigit:kk,onDigit:t=>e(Ok[t])}),(0,$.jsxs)(b,{flexDirection:`column`,marginTop:1,children:[(0,$.jsxs)(b,{children:[(0,$.jsxs)(T,{color:`ansi:cyan`,children:[yf,` `]}),(0,$.jsx)(T,{bold:!0,children:`Can we look at your session transcript to help us improve Claude Code?`})]}),(0,$.jsx)(b,{marginLeft:2,children:(0,$.jsx)(T,{dimColor:!0,children:`Learn more: https://code.claude.com/docs/en/data-usage#session-quality-surveys`})}),(0,$.jsxs)(b,{marginLeft:2,children:[(0,$.jsx)(b,{width:10,children:(0,$.jsxs)(T,{children:[(0,$.jsx)(T,{color:`ansi:cyan`,children:`1`}),`: Yes`]})}),(0,$.jsx)(b,{width:10,children:(0,$.jsxs)(T,{children:[(0,$.jsx)(T,{color:`ansi:cyan`,children:`2`}),`: No`]})}),(0,$.jsx)(b,{children:(0,$.jsxs)(T,{children:[(0,$.jsx)(T,{color:`ansi:cyan`,children:`3`}),`: Don't ask again`]})})]})]})}bp(),B();function jk({state:e,lastResponse:t,handleSelect:n,handleTranscriptSelect:r,inputValue:i,setInputValue:a,onRequestFeedback:o,message:s}){return e===`closed`?null:e===`thanks`?(0,$.jsx)(Nk,{lastResponse:t,inputValue:i,setInputValue:a,onRequestFeedback:o}):e===`submitted`?(0,$.jsx)(b,{marginTop:1,children:(0,$.jsxs)(T,{color:`success`,children:[`✓`,` Thanks for sharing your transcript!`]})}):e===`submitting`?(0,$.jsx)(b,{marginTop:1,children:(0,$.jsxs)(T,{dimColor:!0,children:[`Sharing transcript`,`…`]})}):e===`transcript_prompt`?!r||i&&![`1`,`2`,`3`].includes(i)?null:(0,$.jsx)(Ak,{onSelect:r,inputValue:i,setInputValue:a}):i&&!fO(i)?null:(0,$.jsx)(mO,{onSelect:n,inputValue:i,setInputValue:a,message:s})}var Mk=e=>e===`1`;function Nk({lastResponse:e,inputValue:t,setInputValue:n,onRequestFeedback:r}){let i=r&&e===`good`;lO({inputValue:t,setInputValue:n,isValidDigit:Mk,enabled:!!i,once:!0,onDigit:()=>{Z(`tengu_feedback_survey_event`,{event_type:`followup_accepted`,response:e}),r?.()}});let a=process.env.USER_TYPE===`ant`?`/issue`:`/feedback`;return(0,$.jsxs)(b,{marginTop:1,flexDirection:`column`,children:[(0,$.jsx)(T,{color:`success`,children:`Thanks for the feedback!`}),i?(0,$.jsxs)(T,{dimColor:!0,children:[`(Optional) Press [`,(0,$.jsx)(T,{color:`ansi:cyan`,children:`1`}),`] to tell us what went well `,` · `,a]}):e===`bad`?(0,$.jsx)(T,{dimColor:!0,children:`Use /issue to report model behavior issues.`}):(0,$.jsxs)(T,{dimColor:!0,children:[`Use `,a,` to share detailed feedback anytime.`]})]})}Xh(),$h(),at(),Rt(),np();function Pk(e){let{addNotification:t}=lo(),n=(0,Q.useRef)(!1),r=(0,Q.useRef)(e);r.current=e,(0,Q.useEffect)(()=>{je()||n.current||(n.current=!0,Promise.resolve().then(()=>r.current()).then(e=>{if(e)for(let n of Array.isArray(e)?e:[e])t(n)}).catch(X))},[t])}function Fk(){Pk(async()=>(await Qh()).map((e,t)=>{let n=`low`;return e.type===`error`||e.userActionRequired?n=`high`:(e.type===`path`||e.type===`alias`)&&(n=`medium`),{key:`install-message-${t}-${e.type}`,text:e.message,priority:n,color:e.type===`error`?`error`:`warning`}}))}Yd(),tf(),zd(),rm(),Qo(),mv(),ec(),B(),zd();function Ik(e,t,n){(0,Q.useRef)(null),(0,Q.useRef)(null);let r=(0,Q.useRef)(e),i=(0,Q.useRef)(n),a=(0,Q.useRef)(!1),o=(0,Q.useRef)(null);r.current=e,i.current=n,(0,Q.useEffect)(()=>{},[!1,t]),(0,Q.useEffect)(()=>{if(n||!a.current)return;let e=F();e!==`blurred`&&e!==`unknown`||o.current?.()},[n]),(0,Q.useEffect)(()=>{F()},[n,!1])}bp(),Rf(),tf(),s(),cf(),np();function Lk(){return a(process.env.CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL)}var Rk={MAX_ATTEMPTS:10,INITIAL_DELAY_MS:3600*1e3,BACKOFF_MULTIPLIER:2,MAX_DELAY_MS:10080*60*1e3};function zk(e){let t=Rk.INITIAL_DELAY_MS*Rk.BACKOFF_MULTIPLIER**e;return Math.min(t,Rk.MAX_DELAY_MS)}function Bk(e){if(!e.officialMarketplaceAutoInstallAttempted)return!0;if(e.officialMarketplaceAutoInstalled)return!1;let t=e.officialMarketplaceAutoInstallFailReason,n=e.officialMarketplaceAutoInstallRetryCount||0,r=e.officialMarketplaceAutoInstallNextRetryTime,i=Date.now();return n>=Rk.MAX_ATTEMPTS||t===`policy_blocked`||r&&i<r?!1:t===`unknown`||t===`git_unavailable`||t===`gcs_unavailable`||t===void 0}async function Vk(){let e=Lf();if(!Bk(e)){let t=e.officialMarketplaceAutoInstallFailReason??`already_attempted`;return Y(`Official marketplace auto-install skipped: ${t}`),{installed:!1,skipped:!0,reason:t}}try{if(Lk())return Y(`Official marketplace auto-install disabled via env var, skipping`),If(e=>({...e,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:`policy_blocked`})),Z(`tengu_official_marketplace_auto_install`,{installed:!1,skipped:!0,policy_blocked:!0}),{installed:!1,skipped:!0,reason:`policy_blocked`};if((await lr())[`claude-plugins-official`])return Y(`Official marketplace '${St}' already installed, skipping`),If(e=>({...e,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!0})),{installed:!1,skipped:!0,reason:`already_installed`};if(!Il(Js))return Y(`Official marketplace blocked by enterprise policy, skipping`),If(e=>({...e,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:`policy_blocked`})),Z(`tengu_official_marketplace_auto_install`,{installed:!1,skipped:!0,policy_blocked:!0}),{installed:!1,skipped:!0,reason:`policy_blocked`};let t=Vd(),n=xv(t,St);if(await ns(n,t)!==null){let e=await lr();return e[St]={source:Js,installLocation:n,lastUpdated:new Date().toISOString()},await Lr(e),If(e=>({...e,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!0,officialMarketplaceAutoInstallFailReason:void 0,officialMarketplaceAutoInstallRetryCount:void 0,officialMarketplaceAutoInstallLastAttemptTime:void 0,officialMarketplaceAutoInstallNextRetryTime:void 0})),Z(`tengu_official_marketplace_auto_install`,{installed:!0,skipped:!1,via_gcs:!0}),{installed:!0,skipped:!1}}if(!await ru()){Y(`Git not available, skipping official marketplace auto-install`);let t=(e.officialMarketplaceAutoInstallRetryCount||0)+1,n=Date.now(),r=n+zk(t),i=!1;try{If(e=>({...e,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:`git_unavailable`,officialMarketplaceAutoInstallRetryCount:t,officialMarketplaceAutoInstallLastAttemptTime:n,officialMarketplaceAutoInstallNextRetryTime:r}))}catch(e){i=!0,X($d(e)),Y(`Failed to save marketplace auto-install git_unavailable state: ${e}`,{level:`error`})}return Z(`tengu_official_marketplace_auto_install`,{installed:!1,skipped:!0,git_unavailable:!0,retry_count:t}),{installed:!1,skipped:!0,reason:`git_unavailable`,configSaveFailed:i}}Y(`Attempting to auto-install official marketplace`),await Vn(Js),Y(`Successfully auto-installed official marketplace`);let r=e.officialMarketplaceAutoInstallRetryCount||0;return If(e=>({...e,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!0,officialMarketplaceAutoInstallFailReason:void 0,officialMarketplaceAutoInstallRetryCount:void 0,officialMarketplaceAutoInstallLastAttemptTime:void 0,officialMarketplaceAutoInstallNextRetryTime:void 0})),Z(`tengu_official_marketplace_auto_install`,{installed:!0,skipped:!1,retry_count:r}),{installed:!0,skipped:!1}}catch(t){let n=t instanceof Error?t.message:String(t);if(n.includes(`xcrun: error:`))return Uo(),Y(`Official marketplace auto-install: git is a non-functional macOS xcrun shim, treating as git_unavailable`),Z(`tengu_official_marketplace_auto_install`,{installed:!1,skipped:!0,git_unavailable:!0,macos_xcrun_shim:!0}),{installed:!1,skipped:!0,reason:`git_unavailable`};Y(`Failed to auto-install official marketplace: ${n}`,{level:`error`}),X($d(t));let r=(e.officialMarketplaceAutoInstallRetryCount||0)+1,i=Date.now(),a=i+zk(r),o=!1;try{If(e=>({...e,officialMarketplaceAutoInstallAttempted:!0,officialMarketplaceAutoInstalled:!1,officialMarketplaceAutoInstallFailReason:`unknown`,officialMarketplaceAutoInstallRetryCount:r,officialMarketplaceAutoInstallLastAttemptTime:i,officialMarketplaceAutoInstallNextRetryTime:a}))}catch(e){o=!0,X($d(e)),Y(`Failed to save marketplace auto-install failure state: ${e}`,{level:`error`})}return Z(`tengu_official_marketplace_auto_install`,{installed:!1,skipped:!0,failed:!0,retry_count:r}),{installed:!1,skipped:!0,reason:`unknown`,configSaveFailed:o}}}B(),tf();function Hk(){Pk(async()=>{let e=await Vk(),t=[];return e.configSaveFailed&&(Y(`Showing marketplace config save failure notification`),t.push({key:`marketplace-config-save-failed`,jsx:(0,$.jsx)(T,{color:`error`,children:`Failed to save marketplace retry info · Check ~/.claude.json permissions`}),priority:`immediate`,timeoutMs:1e4})),e.installed?(Y(`Showing marketplace installation success notification`),t.push({key:`marketplace-installed`,jsx:(0,$.jsx)(T,{color:`success`,children:`✓ Official marketplace installed · /plugin to see available plugins`}),priority:`immediate`,timeoutMs:7e3})):e.skipped&&e.reason===`unknown`&&(Y(`Showing marketplace installation failure notification`),t.push({key:`marketplace-install-failed`,jsx:(0,$.jsx)(T,{color:`warning`,children:`Failed to install official marketplace · Will retry on next startup`}),priority:`immediate`,timeoutMs:8e3})),t})}Af(),bp();function Uk(e){if(e.length===0)return;if(e.length===1)return e[0];let t=e.map(e=>({tip:e,sessions:ov(e.id)}));return t.sort((e,t)=>t.sessions-e.sessions),t[0]?.tip}async function Wk(e){if(Of().spinnerTipsEnabled===!1)return;let t=await lv(e);if(t.length!==0)return Uk(t)}function Gk(e){iv(e.id),Z(`tengu_tip_shown`,{tipIdLength:e.id,cooldownSessions:e.cooldownSessions})}cf(),np(),at(),q(),Xt();var Kk=!1;async function qk(e,t,n){{if(Kk)return;Kk=!0;let{updateContext:r,notification:i}=await pr(e,n);t(e=>{let t=r(e.toolPermissionContext),n=t===e.toolPermissionContext?e:{...e,toolPermissionContext:t};return i?{...n,notifications:{...n.notifications,queue:[...n.notifications.queue,{key:`auto-mode-gate-notification`,text:i,color:`warning`,priority:`high`}]}}:n})}}function Jk(){Kk=!1}function Yk(){let e=J(e=>e.mainLoopModel),t=J(e=>e.mainLoopModelForSession),n=J(e=>e.fastMode),r=Vr(),i=qn(),a=(0,Q.useRef)(!0);(0,Q.useEffect)(()=>{je()||(a.current?a.current=!1:Jk(),qk(i.getState().toolPermissionContext,r,n).catch(e=>{X(Error(`Auto mode gate check failed`,{cause:$d(e)}))}))},[e,t,n])}Va();function Xk(e,t,n){let r=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{!xd()||r.current||(r.current=!0,e&&$t(e,n))},[t,e,n])}B(),Oa(),bp(),Cl(),qg();function Zk({hostPattern:{host:e},onUserResponse:t}){function n(n){switch(process.env.USER_TYPE===`ant`&&Z(`tengu_sandbox_network_dialog_result`,{host:e,result:n}),n){case`yes`:t({allow:!0,persistToSettings:!1});break;case`yes-dont-ask-again`:t({allow:!0,persistToSettings:!0});break;case`no`:t({allow:!1,persistToSettings:!1});break}}let r=[{label:`Yes`,value:`yes`},...La()?[]:[{label:(0,$.jsxs)(T,{children:[`Yes, and don't ask again for `,(0,$.jsx)(T,{bold:!0,children:e})]}),value:`yes-dont-ask-again`}],{label:(0,$.jsxs)(T,{children:[`No, and tell Claude what to do differently `,(0,$.jsx)(T,{bold:!0,children:`(esc)`})]}),value:`no`}];return(0,$.jsx)(Yg,{title:`Network request outside of sandbox`,children:(0,$.jsxs)(b,{flexDirection:`column`,paddingX:2,paddingY:1,children:[(0,$.jsxs)(b,{children:[(0,$.jsx)(T,{dimColor:!0,children:`Host:`}),(0,$.jsxs)(T,{children:[` `,e]})]}),(0,$.jsx)(b,{marginTop:1,children:(0,$.jsx)(T,{children:`Do you want to allow this connection?`})}),(0,$.jsx)(b,{children:(0,$.jsx)(eu,{options:r,onChange:n,onCancel:()=>{process.env.USER_TYPE===`ant`&&Z(`tengu_sandbox_network_dialog_result`,{host:e,result:`cancel`}),t({allow:!1,persistToSettings:!1})}})})]})})}B(),Oa(),cp();function Qk(e){return`${e.getHours()%12||12}:${String(e.getMinutes()).padStart(2,`0`)}:${String(e.getSeconds()).padStart(2,`0`)}${e.getHours()<12?`am`:`pm`}`}function $k(){let[e,t]=(0,Q.useState)([]),[n,r]=(0,Q.useState)(0);return(0,Q.useEffect)(()=>{let e=yd.getSandboxViolationStore();return e.subscribe(n=>{t(n.slice(-10)),r(e.getTotalCount())})},[]),!yd.isSandboxingEnabled()||sp()===`linux`||n===0?null:(0,$.jsxs)(b,{flexDirection:`column`,marginTop:1,children:[(0,$.jsx)(b,{marginLeft:0,children:(0,$.jsxs)(T,{color:`permission`,children:[`⧈ Sandbox blocked `,n,` total `,n===1?`operation`:`operations`]})}),e.map((e,t)=>(0,$.jsx)(b,{paddingLeft:2,children:(0,$.jsxs)(T,{dimColor:!0,children:[Qk(e.timestamp),e.command?` ${e.command}:`:``,` `,e.line]})},`${e.timestamp.getTime()}-${t}`)),(0,$.jsx)(b,{paddingLeft:2,children:(0,$.jsxs)(T,{dimColor:!0,children:[`… showing last `,Math.min(10,e.length),` of `,n]})})]})}__(),Rt(),at(),B();var eA=[];function tA({mcpClients:e=eA}){let{addNotification:t}=lo();(0,Q.useEffect)(()=>{if(je())return;let n=e.filter(e=>e.type===`failed`&&e.config.type!==`sse-ide`&&e.config.type!==`ws-ide`&&e.config.type!==`claudeai-proxy`),r=e.filter(e=>e.type===`failed`&&e.config.type===`claudeai-proxy`&&Ko(e.name)),i=e.filter(e=>e.type===`needs-auth`&&e.config.type!==`claudeai-proxy`),a=e.filter(e=>e.type===`needs-auth`&&e.config.type===`claudeai-proxy`&&Ko(e.name));n.length===0&&r.length===0&&i.length===0&&a.length===0||(n.length>0&&t({key:`mcp-failed`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(T,{color:`error`,children:[n.length,` MCP `,n.length===1?`server`:`servers`,` failed`]}),(0,$.jsx)(T,{dimColor:!0,children:` · /mcp`})]}),priority:`medium`}),r.length>0&&t({key:`mcp-claudeai-failed`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(T,{color:`error`,children:[r.length,` claude.ai `,r.length===1?`connector`:`connectors`,` `,`unavailable`]}),(0,$.jsx)(T,{dimColor:!0,children:` · /mcp`})]}),priority:`medium`}),i.length>0&&t({key:`mcp-needs-auth`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(T,{color:`warning`,children:[i.length,` MCP `,i.length===1?`server needs`:`servers need`,` `,`auth`]}),(0,$.jsx)(T,{dimColor:!0,children:` · /mcp`})]}),priority:`medium`}),a.length>0&&t({key:`mcp-claudeai-needs-auth`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(T,{color:`warning`,children:[a.length,` claude.ai`,` `,a.length===1?`connector needs`:`connectors need`,` auth`]}),(0,$.jsx)(T,{dimColor:!0,children:` · /mcp`})]}),priority:`medium`}))},[t,e])}B(),Af(),dc();var nA=`Auto mode lets Claude handle permission prompts automatically — Claude checks each tool call for risky actions and prompt injection before executing. Actions Claude identifies as safe are executed, while actions Claude identifies as risky are blocked and Claude may try a different approach. Ideal for long-running tasks. Sessions are slightly more expensive. Claude can make mistakes that allow harmful commands to run, it's recommended to only use in isolated environments. Shift+Tab to change mode.`;me(),at(),Rt(),B(),q(),tf(),s();var rA=5e3;function iA(){let{addNotification:e}=lo(),t=Vr(),[n,r]=Q.useState(()=>a(`true`)),i=Q.useRef(new Set),o=Q.useCallback((n,r)=>{let a=`${n}:${r}`;if(i.current.has(a))return;i.current.add(a),Y(`LSP error: ${n} - ${r}`),t(e=>{let t=new Set(e.plugins.errors.map(e=>e.type===`generic-error`?`generic-error:${e.source}:${e.error}`:`${e.type}:${e.source}`)),i=`generic-error:${n}:${r}`;return t.has(i)?e:{...e,plugins:{...e.plugins,errors:[...e.plugins.errors,{type:`generic-error`,source:n,error:r}]}}});let o=n.startsWith(`plugin:`)?n.split(`:`)[1]??n:n;e({key:`lsp-error-${n}`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(T,{color:`error`,children:[`LSP for `,o,` failed`]}),(0,$.jsx)(T,{dimColor:!0,children:` · /plugin for details`})]}),priority:`medium`,timeoutMs:8e3})},[e,t]),s=Q.useCallback(()=>{if(je()||Je())return;let e=bc();if(e.status===`failed`){o(`lsp-manager`,e.error.message),r(!1);return}if(e.status===`pending`||e.status===`not-started`)return;let t=mc();if(t){let e=t.getAllServers();for(let[t,n]of e)n.state===`error`&&n.lastError&&o(t,n.lastError.message)}},[o]);re(s,n?rA:null),Q.useEffect(()=>{je()||!n||s()},[s,n])}tf();var aA=new Map;async function oA(e){if(!e||!e.trim())return Y(`[binaryCheck] Empty command provided, returning false`),!1;let t=e.trim(),n=aA.get(t);if(n!==void 0)return Y(`[binaryCheck] Cache hit for '${t}': ${n}`),n;let r=!1;return await ap(t).catch(()=>null)&&(r=!0),aA.set(t,r),Y(`[binaryCheck] Binary '${t}' ${r?`found`:`not found`}`),r}Rf(),tf(),vo();var sA=5;function cA(e){return kf.has(e.toLowerCase())}function lA(e){if(!e)return null;if(typeof e==`string`)return Y(`[lspRecommendation] Skipping string path lspServers (not readable from marketplace)`),null;if(Array.isArray(e)){for(let t of e){if(typeof t==`string`)continue;let e=dA(t);if(e)return e}return null}return dA(e)}function uA(e){return typeof e==`object`&&!!e}function dA(e){let t=new Set,n=null;for(let[r,i]of Object.entries(e)){if(!uA(i))continue;!n&&typeof i.command==`string`&&(n=i.command);let e=i.extensionToLanguage;if(uA(e))for(let n of Object.keys(e))t.add(n.toLowerCase())}return!n||t.size===0?null:{extensions:t,command:n}}async function fA(){let e=new Map;try{let t=await lr();for(let n of Object.keys(t))try{let t=await wa(n),r=cA(n);for(let i of t.plugins){if(!i.lspServers)continue;let t=lA(i.lspServers);if(!t)continue;let a=`${i.name}@${n}`;e.set(a,{entry:i,marketplaceName:n,extensions:t.extensions,command:t.command,isOfficial:r})}}catch(e){Y(`[lspRecommendation] Failed to load marketplace ${n}: ${e}`)}}catch(e){Y(`[lspRecommendation] Failed to load marketplaces config: ${e}`)}return e}async function pA(e){if(gA())return Y(`[lspRecommendation] Recommendations are disabled`),[];let t=bv(e).toLowerCase();if(!t)return Y(`[lspRecommendation] No file extension found`),[];Y(`[lspRecommendation] Looking for LSP plugins for ${t}`);let n=await fA(),r=Lf().lspRecommendationNeverPlugins??[],i=[];for(let[e,a]of n)if(a.extensions.has(t)){if(r.includes(e)){Y(`[lspRecommendation] Skipping ${e} (in never suggest list)`);continue}if(Pt(e)){Y(`[lspRecommendation] Skipping ${e} (already installed)`);continue}i.push({info:a,pluginId:e})}let a=[];for(let{info:e,pluginId:t}of i)await oA(e.command)?(a.push({info:e,pluginId:t}),Y(`[lspRecommendation] Binary '${e.command}' found for ${t}`)):Y(`[lspRecommendation] Skipping ${t} (binary '${e.command}' not found)`);return a.sort((e,t)=>e.info.isOfficial&&!t.info.isOfficial?-1:!e.info.isOfficial&&t.info.isOfficial?1:0),a.map(({info:e,pluginId:t})=>({pluginId:t,pluginName:e.entry.name,marketplaceName:e.marketplaceName,description:e.entry.description,isOfficial:e.isOfficial,extensions:Array.from(e.extensions),command:e.command}))}function mA(e){If(t=>{let n=t.lspRecommendationNeverPlugins??[];return n.includes(e)?t:{...t,lspRecommendationNeverPlugins:[...n,e]}}),Y(`[lspRecommendation] Added ${e} to never suggest`)}function hA(){If(e=>{let t=(e.lspRecommendationIgnoredCount??0)+1;return{...e,lspRecommendationIgnoredCount:t}}),Y(`[lspRecommendation] Incremented ignored count`)}function gA(){let e=Lf();return e.lspRecommendationDisabled===!0||(e.lspRecommendationIgnoredCount??0)>=sA}u(),at(),B(),np(),vo();function _A(){let[e,t]=Q.useState(null),n=Q.useRef(!1),r=Q.useCallback(r=>{je()||e||n.current||(n.current=!0,r().then(e=>{e&&t(e)}).catch(X).finally(()=>{n.current=!1}))},[e]);return{recommendation:e,clearRecommendation:Q.useCallback(()=>t(null),[]),tryResolve:r}}async function vA(e,t,n,r,i){try{let a=await qt(e);if(!a)throw Error(`Plugin ${e} not found in marketplace`);await i(a),r({key:`${n}-installed`,jsx:(0,$.jsxs)(T,{color:`success`,children:[d.tick,` `,t,` installed · restart to apply`]}),priority:`immediate`,timeoutMs:5e3})}catch(e){X(e),r({key:`${n}-install-failed`,jsx:(0,$.jsxs)(T,{color:`error`,children:[`Failed to install `,t]}),priority:`immediate`,timeoutMs:5e3})}}at(),Rt(),q(),Rf(),tf(),np(),Af();var yA=28e3;function bA(){let e=J(e=>e.fileHistory.trackedFiles),{addNotification:t}=lo(),n=Q.useRef(new Set),{recommendation:r,clearRecommendation:i,tryResolve:a}=_A();return Q.useEffect(()=>{a(async()=>{if(et())return null;let t=[];for(let r of e)n.current.has(r)||(n.current.add(r),t.push(r));for(let e of t)try{let t=(await pA(e))[0];if(t)return Y(`[useLspPluginRecommendation] Found match: ${t.pluginName} for ${e}`),Ie(!0),{pluginId:t.pluginId,pluginName:t.pluginName,pluginDescription:t.description,fileExtension:bv(e),shownAt:Date.now()}}catch(e){X(e)}return null})},[e,a]),{recommendation:r,handleResponse:Q.useCallback(e=>{if(!r)return;let{pluginId:n,pluginName:a,shownAt:o}=r;switch(Y(`[useLspPluginRecommendation] User response: ${e} for ${a}`),e){case`yes`:vA(n,a,`lsp-plugin`,t,async e=>{Y(`[useLspPluginRecommendation] Installing plugin: ${n}`);let t=typeof e.entry.source==`string`?xv(e.marketplaceInstallLocation,e.entry.source):void 0;await gc(n,e.entry,`user`,void 0,t),Pf(`userSettings`,{enabledPlugins:{...Tf(`userSettings`)?.enabledPlugins,[n]:!0}}),Y(`[useLspPluginRecommendation] Plugin installed: ${n}`)});break;case`no`:{let e=Date.now()-o;e>=yA&&(Y(`[useLspPluginRecommendation] Timeout detected (${e}ms), incrementing ignored count`),hA());break}case`never`:mA(n);break;case`disable`:If(e=>e.lspRecommendationDisabled?e:{...e,lspRecommendationDisabled:!0});break}i()},[r,t,i])}}B(),Cl(),qg();var xA=3e4;function SA({pluginName:e,pluginDescription:t,fileExtension:n,onResponse:r}){let i=Q.useRef(r);i.current=r,Q.useEffect(()=>{let e=setTimeout(e=>e.current(`no`),xA,i);return()=>clearTimeout(e)},[]);function a(e){switch(e){case`yes`:r(`yes`);break;case`no`:r(`no`);break;case`never`:r(`never`);break;case`disable`:r(`disable`);break}}return(0,$.jsx)(Yg,{title:`LSP Plugin Recommendation`,children:(0,$.jsxs)(b,{flexDirection:`column`,paddingX:2,paddingY:1,children:[(0,$.jsx)(b,{marginBottom:1,children:(0,$.jsx)(T,{dimColor:!0,children:`LSP provides code intelligence like go-to-definition and error checking`})}),(0,$.jsxs)(b,{children:[(0,$.jsx)(T,{dimColor:!0,children:`Plugin:`}),(0,$.jsxs)(T,{children:[` `,e]})]}),t&&(0,$.jsx)(b,{children:(0,$.jsx)(T,{dimColor:!0,children:t})}),(0,$.jsxs)(b,{children:[(0,$.jsx)(T,{dimColor:!0,children:`Triggered by:`}),(0,$.jsxs)(T,{children:[` `,n,` files`]})]}),(0,$.jsx)(b,{marginTop:1,children:(0,$.jsx)(T,{children:`Would you like to install this LSP plugin?`})}),(0,$.jsx)(b,{children:(0,$.jsx)(eu,{options:[{label:(0,$.jsxs)(T,{children:[`Yes, install `,(0,$.jsx)(T,{bold:!0,children:e})]}),value:`yes`},{label:`No, not now`,value:`no`},{label:(0,$.jsxs)(T,{children:[`Never for `,(0,$.jsx)(T,{bold:!0,children:e})]}),value:`never`},{label:`Disable all LSP recommendations`,value:`disable`}],onChange:a,onCancel:()=>r(`no`)})})]})})}Rt(),bp(),tf(),$u();function CA(){let e=Q.useSyncExternalStore(Ws,Is),{addNotification:t}=lo(),{recommendation:n,clearRecommendation:r,tryResolve:i}=_A();return Q.useEffect(()=>{e&&i(async()=>{let t=await Pc(e);return t&&(Y(`[useClaudeCodeHintRecommendation] surfacing ${t.pluginId} from ${t.sourceCommand}`),Wu()),Is()===e&&Ou(),t})},[e,i]),{recommendation:n,handleResponse:Q.useCallback(e=>{if(n){switch(gu(n.pluginId),Z(`tengu_plugin_hint_response`,{_PROTO_plugin_name:n.pluginName,_PROTO_marketplace_name:n.marketplaceName,response:e}),e){case`yes`:{let{pluginId:e,pluginName:r,marketplaceName:i}=n;vA(e,r,`hint-plugin`,t,async t=>{let n=await Ed({pluginId:e,entry:t.entry,marketplaceName:i,scope:`user`,trigger:`hint`});if(!n.success)throw Error(n.success?`Unknown error`:n.error)});break}case`disable`:Fu();break;case`no`:break}r()}},[n,t,r])}}B(),Cl(),qg();var wA=3e4;function TA({pluginName:e,pluginDescription:t,marketplaceName:n,sourceCommand:r,onResponse:i}){let a=Q.useRef(i);a.current=i,Q.useEffect(()=>{let e=setTimeout(e=>e.current(`no`),wA,a);return()=>clearTimeout(e)},[]);function o(e){switch(e){case`yes`:i(`yes`);break;case`disable`:i(`disable`);break;default:i(`no`)}}return(0,$.jsx)(Yg,{title:`Plugin Recommendation`,children:(0,$.jsxs)(b,{flexDirection:`column`,paddingX:2,paddingY:1,children:[(0,$.jsx)(b,{marginBottom:1,children:(0,$.jsxs)(T,{dimColor:!0,children:[`The `,(0,$.jsx)(T,{bold:!0,children:r}),` command suggests installing a plugin.`]})}),(0,$.jsxs)(b,{children:[(0,$.jsx)(T,{dimColor:!0,children:`Plugin:`}),(0,$.jsxs)(T,{children:[` `,e]})]}),(0,$.jsxs)(b,{children:[(0,$.jsx)(T,{dimColor:!0,children:`Marketplace:`}),(0,$.jsxs)(T,{children:[` `,n]})]}),t&&(0,$.jsx)(b,{children:(0,$.jsx)(T,{dimColor:!0,children:t})}),(0,$.jsx)(b,{marginTop:1,children:(0,$.jsx)(T,{children:`Would you like to install it?`})}),(0,$.jsx)(b,{children:(0,$.jsx)(eu,{options:[{label:(0,$.jsxs)(T,{children:[`Yes, install `,(0,$.jsx)(T,{bold:!0,children:e})]}),value:`yes`},{label:`No`,value:`no`},{label:`No, and don't show plugin installation hints again`,value:`disable`}],onChange:o,onCancel:()=>i(`no`)})})]})})}Cl(),qg();var EA=3e4;function DA({tools:e,onSelect:t,onDismiss:n}){let r=Q.useRef(t),i=Q.useRef(n);r.current=t,i.current=n,Q.useEffect(()=>{let e=setTimeout(e=>e.current(),EA,i);return()=>clearTimeout(e)},[]);let a=e.map(e=>({label:`${e.name} — ${e.description.slice(0,60)} (score: ${e.score.toFixed(2)})`,value:e.name}));return a.push({label:`Dismiss`,value:`__dismiss__`}),(0,$.jsx)(Yg,{title:`Tool Recommendation`,children:(0,$.jsx)(eu,{options:a,onChange:e=>{e===`__dismiss__`?i.current():(i.current(),r.current(e))}})})}ko();var OA=.15,kA=3;function AA(){let e=Q.useSyncExternalStore(Qn,eo),t=Q.useMemo(()=>e.length===0?[]:e.slice(0,kA).map(e=>({name:e.name,description:e.description.slice(0,60),score:e.score})),[e]);return{tools:t,visible:t.length>0&&(t[0]?.score??0)>=OA,handleSelect:Q.useCallback(e=>{sr()},[]),handleDismiss:Q.useCallback(()=>{sr()},[])}}at(),Rt(),B(),q(),tf(),Rp();function jA(){let{addNotification:e}=lo(),t=J(e=>e.plugins.installationStatus),{totalFailed:n,failedMarketplacesCount:r,failedPluginsCount:i}=(0,Q.useMemo)(()=>{if(!t)return{totalFailed:0,failedMarketplacesCount:0,failedPluginsCount:0};let e=t.marketplaces.filter(e=>e.status===`failed`),n=t.plugins.filter(e=>e.status===`failed`);return{totalFailed:e.length+n.length,failedMarketplacesCount:e.length,failedPluginsCount:n.length}},[t]);(0,Q.useEffect)(()=>{if(!je()){if(!t){Y(`No installation status to monitor`);return}n!==0&&(Y(`Plugin installation status: ${r} failed marketplaces, ${i} failed plugins`),n!==0&&(Y(`Adding notification for ${n} failed installations`),e({key:`plugin-install-failed`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(T,{color:`error`,children:[n,` `,Lp(n,`plugin`),` failed to install`]}),(0,$.jsx)(T,{dimColor:!0,children:` · /plugin for details`})]}),priority:`medium`})))}},[e,n,r,i])}at(),Rt(),B(),tf(),N_();function MA(){let{addNotification:e}=lo(),[t,n]=(0,Q.useState)([]);(0,Q.useEffect)(()=>{if(!je())return P_(e=>{Y(`Plugin autoupdate notification: ${e.length} plugin(s) updated`),n(e)})},[]),(0,Q.useEffect)(()=>{if(je()||t.length===0)return;let n=t.map(e=>{let t=e.indexOf(`@`);return t>0?e.substring(0,t):e}),r=n.length<=2?n.join(` and `):`${n.length} plugins`;e({key:`plugin-autoupdate-restart`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(T,{color:`success`,children:[n.length===1?`Plugin`:`Plugins`,` updated: `,r]}),(0,$.jsx)(T,{dimColor:!0,children:` · Run /reload-plugins to apply`})]}),priority:`low`,timeoutMs:1e4}),Y(`Showing plugin autoupdate notification for: ${n.join(`, `)}`)},[t,e])}tf(),np(),vo(),kg(),bp();function NA(e,t,n,r){e(e=>({...e,plugins:{...e.plugins,installationStatus:{...e.plugins.installationStatus,marketplaces:e.plugins.installationStatus.marketplaces.map(e=>e.name===t?{...e,status:n,error:r}:e)}}}))}async function PA(e){Y(`performBackgroundPluginInstallations called`);try{let t=cg(ci(),await lr().catch(()=>({}))),n=[...t.missing,...t.sourceChanged.map(e=>e.name)];if(e(e=>({...e,plugins:{...e.plugins,installationStatus:{marketplaces:n.map(e=>({name:e,status:`pending`})),plugins:[]}}})),n.length===0)return;Y(`Installing ${n.length} marketplace(s) in background`);let r=await og({onProgress:t=>{switch(t.type){case`installing`:NA(e,t.name,`installing`);break;case`installed`:NA(e,t.name,`installed`);break;case`failed`:NA(e,t.name,`failed`,t.error);break}}}),i={installed_count:r.installed.length,updated_count:r.updated.length,failed_count:r.failed.length,up_to_date_count:r.upToDate.length};if(Z(`tengu_marketplace_background_install`,i),Vf(`info`,`tengu_marketplace_background_install`,i),r.installed.length>0){Cr(),Y(`Auto-refreshing plugins after ${r.installed.length} new marketplace(s) installed`);try{await Og(e)}catch(t){X(t),Y(`Auto-refresh failed, falling back to needsRefresh: ${t}`,{level:`warn`}),Rs(`performBackgroundPluginInstallations: auto-refresh failed`),e(e=>e.plugins.needsRefresh?e:{...e,plugins:{...e.plugins,needsRefresh:!0}})}}else r.updated.length>0&&(Cr(),Rs(`performBackgroundPluginInstallations: marketplaces reconciled`),e(e=>e.plugins.needsRefresh?e:{...e,plugins:{...e.plugins,needsRefresh:!0}}))}catch(e){X(e)}}Rf(),tf(),vo(),cc();async function FA(e){if(Y(`performStartupChecks called`),!Bf()){Y(`Trust not accepted for current directory - skipping plugin installations`);return}try{Y(`Starting background plugin installations`),await Jr()&&(Cr(),Rs(`performStartupChecks: seed marketplaces changed`),e(e=>e.plugins.needsRefresh?e:{...e,plugins:{...e.plugins,needsRefresh:!0}})),await PA(e)}catch(e){Y(`Error initiating background plugin installations: ${e}`)}}B();var IA=/https?:\/\/\S+/;function LA(){let[e,t]=(0,Q.useState)(sm.getInstance().getStatus());return(0,Q.useEffect)(()=>sm.getInstance().subscribe(t),[]),!e.isAuthenticating&&!e.error&&e.output.length===0||!e.isAuthenticating&&!e.error?null:(0,$.jsxs)(b,{flexDirection:`column`,borderStyle:`round`,borderColor:`permission`,paddingX:1,marginY:1,children:[(0,$.jsx)(T,{bold:!0,color:`permission`,children:`Cloud Authentication`}),e.output.length>0&&(0,$.jsx)(b,{flexDirection:`column`,marginTop:1,children:e.output.slice(-5).map((e,t)=>{let n=e.match(IA);if(!n)return(0,$.jsx)(T,{dimColor:!0,children:e},t);let r=n[0],i=n.index??0,a=e.slice(0,i),o=e.slice(i+r.length);return(0,$.jsxs)(T,{dimColor:!0,children:[a,(0,$.jsx)(C,{url:r,children:r}),o]},t)})}),e.error&&(0,$.jsx)(b,{marginTop:1,children:(0,$.jsx)(T,{color:`error`,children:e.error})})]})}Rt(),B(),Hr(),hu(),Wp(),vm(),at();function RA(e){let{addNotification:t}=lo(),n=Nc(),r=(0,Q.useMemo)(()=>Ar(n,e),[n,e]),i=(0,Q.useMemo)(()=>Go(n),[n]),a=(0,Q.useRef)(null),o=Jp(),s=Sm(),c=o===`team`||o===`enterprise`,[l,u]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{je()||(n.isUsingOverage&&!l&&(!c||s)?(t({key:`limit-reached`,text:i,priority:`immediate`}),u(!0)):!n.isUsingOverage&&l&&u(!1))},[n.isUsingOverage,i,l,t,s,c]),(0,Q.useEffect)(()=>{je()||r&&r!==a.current&&(a.current=r,t({key:`rate-limit-warning`,jsx:(0,$.jsx)(T,{children:(0,$.jsx)(T,{color:`warning`,children:r})}),priority:`high`}))},[r,t])}Rt(),at();function zA(e){let{addNotification:t}=lo(),n=(0,Q.useRef)(null);(0,Q.useEffect)(()=>{if(je())return;let r=av(e);r&&r!==n.current&&(n.current=r,t({key:`model-deprecation-warning`,text:r,color:`warning`,priority:`high`})),r||(n.current=null)},[e,t])}s();var BA=``;function VA(){Pk(async()=>Np()||a(process.env.DISABLE_INSTALLATION_CHECKS)||await Zh()===`development`?null:{timeoutMs:15e3,key:`npm-deprecation-warning`,text:BA,color:`warning`,priority:`high`})}Rt(),B(),Rf(),mn(),at();var HA=5;function UA({ideSelection:e,mcpClients:t,ideInstallationStatus:n}){let{addNotification:r,removeNotification:i}=lo(),{status:a,ideName:o}=oC(t),s=(0,Q.useRef)(!1),c=n?At(n?.ideType):!1,l=n?.error||c,u=a===`connected`&&(e?.filePath||e?.text&&e.lineCount>0),d=a===`connected`&&!u,f=l&&!c&&!d&&!u,p=l&&c&&!d&&!u;(0,Q.useEffect)(()=>{if(je())return;if(Gc()||a!==null||p){i(`ide-status-hint`);return}if(s.current||(Lf().ideHintShownCount??0)>=HA)return;let e=setTimeout((e,t)=>{Es(!0).then(n=>{let r=n[0]?.name;r&&!e.current&&(e.current=!0,If(e=>({...e,ideHintShownCount:(e.ideHintShownCount??0)+1})),t({key:`ide-status-hint`,jsx:(0,$.jsxs)(T,{dimColor:!0,children:[`/ide for `,(0,$.jsx)(T,{color:`ide`,children:r})]}),priority:`low`}))})},3e3,s,r);return()=>clearTimeout(e)},[r,i,a,p]),(0,Q.useEffect)(()=>{if(!je()){if(f||p||a!==`disconnected`||!o){i(`ide-status-disconnected`);return}r({key:`ide-status-disconnected`,text:`${o} disconnected`,color:`error`,priority:`medium`})}},[r,i,a,o,f,p]),(0,Q.useEffect)(()=>{if(!je()){if(!p){i(`ide-status-jetbrains-disconnected`);return}r({key:`ide-status-jetbrains-disconnected`,text:`IDE plugin not connected · /status for info`,priority:`medium`})}},[r,i,p]),(0,Q.useEffect)(()=>{if(!je()){if(!f){i(`ide-status-install-error`);return}r({key:`ide-status-install-error`,text:`IDE extension install failed (see /status for info)`,color:`error`,priority:`medium`})}},[r,i,f])}Rf();var WA=[e=>{if(KA(e.sonnet45To46MigrationTimestamp))return{key:`sonnet-46-update`,text:`Model updated to Sonnet 4.6`,color:`suggestion`,priority:`high`,timeoutMs:3e3}},e=>{let t=!!e.legacyOpusMigrationTimestamp;if(KA(e.legacyOpusMigrationTimestamp??e.opusProMigrationTimestamp))return{key:`opus-pro-update`,text:t?`Model updated to Opus 4.7 · Set CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP=1 to opt out`:`Model updated to Opus 4.7`,color:`suggestion`,priority:`high`,timeoutMs:t?8e3:3e3}}];function GA(){Pk(()=>{let e=Lf(),t=[];for(let n of WA){let r=n(e);r&&t.push(r)}return t.length>0?t:null})}function KA(e){return e!==void 0&&Date.now()-e<3e3}Wp(),B(),bp(),Rf();var qA=3;function JA(){Pk(async()=>{if((Lf().subscriptionNoticeCount??0)>=qA)return null;let e=await YA();return e===null?null:(If(e=>({...e,subscriptionNoticeCount:(e.subscriptionNoticeCount??0)+1})),Z(`tengu_switch_to_subscription_notice_shown`,{}),{key:`switch-to-subscription`,jsx:(0,$.jsxs)(T,{color:`suggestion`,children:[`Use your existing Claude `,e,` plan with Claude Code`]}),priority:`low`})})}async function YA(){if(Xp())return null;let e=await Yp();return e?e.account.has_claude_max?`Max`:e.account.has_claude_pro?`Pro`:null:null}Rt(),q(),lm(),Ep(),at();var XA=`fast-mode-cooldown-started`,ZA=`fast-mode-cooldown-expired`,QA=`fast-mode-org-changed`,$A=`fast-mode-overage-rejected`;function ej(){let{addNotification:e}=lo(),t=J(e=>e.fastMode),n=Vr();(0,Q.useEffect)(()=>{if(!je()&&bm())return cm(r=>{r?e({key:QA,color:`fastMode`,priority:`immediate`,text:`Fast mode is now available · /fast to turn on`}):t&&(n(e=>({...e,fastMode:!1})),e({key:QA,color:`warning`,priority:`immediate`,text:`Fast mode has been disabled by your organization`}))})},[e,t,n]),(0,Q.useEffect)(()=>{if(!je()&&bm())return xm(t=>{n(e=>({...e,fastMode:!1})),e({key:$A,color:`warning`,priority:`immediate`,text:t})})},[e,n]),(0,Q.useEffect)(()=>{if(je()||!t)return;let n=gm((t,n)=>{let r=tj(n,kp(t-Date.now(),{hideTrailingZeros:!0}));e({key:XA,invalidates:[ZA],text:r,color:`warning`,priority:`immediate`})}),r=im(()=>{e({key:ZA,invalidates:[XA],color:`fastMode`,text:`Fast limit reset · now using fast mode`,priority:`immediate`})});return()=>{n(),r()}},[e,t])}function tj(e,t){switch(e){case`overloaded`:return`Fast mode overloaded and is temporarily unavailable · resets in ${t}`;case`rate_limit`:return`Fast limit reached and temporarily disabled · resets in ${t}`}}B(),Ah();function nj({onRun:e,onCancel:t,reason:n}){let r=(0,Q.useRef)(!1);return A(`confirm:no`,t,{context:`Confirmation`}),(0,Q.useEffect)(()=>{r.current||(r.current=!0,e())},[e]),(0,$.jsxs)(b,{flexDirection:`column`,marginTop:1,children:[(0,$.jsx)(b,{children:(0,$.jsx)(T,{bold:!0,children:`Running feedback capture...`})}),(0,$.jsx)(b,{children:(0,$.jsxs)(T,{dimColor:!0,children:[`Press `,(0,$.jsx)(h,{shortcut:`Esc`,action:`cancel`}),` anytime`]})}),(0,$.jsx)(b,{children:(0,$.jsxs)(T,{dimColor:!0,children:[`Reason: `,n]})})]})}function rj(e){if(process.env.USER_TYPE!==`ant`)return!1;switch(e){case`feedback_survey_bad`:return!1;case`feedback_survey_good`:return!1;default:return!1}}function ij(e){return process.env.USER_TYPE===`ant`&&e===`feedback_survey_good`?`/good-claude`:`/issue`}function aj(e){switch(e){case`feedback_survey_bad`:return`You responded "Bad" to the feedback survey`;case`feedback_survey_good`:return`You responded "Good" to the feedback survey`;default:return`Unknown reason`}}var oj=()=>null;hf(),B();function sj(){return process.env.USER_TYPE===`ant`?(0,$.jsxs)(b,{flexDirection:`row`,marginTop:1,width:`100%`,children:[(0,$.jsx)(b,{minWidth:2,children:(0,$.jsx)(T,{color:`warning`,children:`⚑`})}),(0,$.jsxs)(T,{children:[(0,$.jsx)(T,{dimColor:!0,children:`[ANT-ONLY] `}),(0,$.jsx)(T,{color:`warning`,bold:!0,children:`Something off with Claude?`}),(0,$.jsx)(T,{dimColor:!0,children:` /issue to report it`})]})]}):null}Lm(),zd();var cj=[/\bcurl\b/,/\bwget\b/,/\bssh\b/,/\bkubectl\b/,/\bsrun\b/,/\bdocker\b/,/\bbq\b/,/\bgsutil\b/,/\bgcloud\b/,/\baws\b/,/\bgit\s+push\b/,/\bgit\s+pull\b/,/\bgit\s+fetch\b/,/\bgh\s+(pr|issue)\b/,/\bnc\b/,/\bncat\b/,/\btelnet\b/,/\bftp\b/],lj=[/^no[,!]\s/i,/\bthat'?s (wrong|incorrect|not (what|right|correct))\b/i,/\bnot what I (asked|wanted|meant|said)\b/i,/\bI (said|asked|wanted|told you|already said)\b/i,/\bwhy did you\b/i,/\byou should(n'?t| not)? have\b/i,/\byou were supposed to\b/i,/\btry again\b/i,/\b(undo|revert) (that|this|it|what you)\b/i];function uj(e){for(let t of e){if(t.type!==`assistant`)continue;let e=t.message.content;if(Array.isArray(e))for(let t of e){if(t.type!==`tool_use`||!(`name`in t))continue;let e=t.name;if(e.startsWith(`mcp__`))return!1;if(e===`Bash`){let e=t.input?.command||``;if(cj.some(t=>t.test(e)))return!1}}}return!0}function dj(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.type!==`user`)continue;let r=zn(n);if(r)return lj.some(e=>e.test(r))}return!1}var fj=3,pj=1800*1e3;function mj(e,t){let n=(0,Q.useRef)(0),r=(0,Q.useRef)(-1),i=(0,Q.useMemo)(()=>uj(e)&&dj(e),[e]);return process.env.USER_TYPE===`ant`?r.current===t?!0:Date.now()-n.current<pj||t<fj||!i?!1:(n.current=Date.now(),r.current=t,!0):!1}at(),B();function hj(){return process.env.USER_TYPE===`ant`}function gj(){let[e,t]=(0,Q.useState)(yt);return ae(()=>{t(yt())},hj()?500:null),!hj()||e.length===0?null:(0,$.jsxs)(T,{wrap:`truncate-end`,color:`warning`,children:[`[ANT-ONLY] slow sync: `,e.slice(-3).map(e=>`${e.operation} (${Math.round(e.durationMs)}ms)`).join(` · `)]})}u(),B(),ms(),Cl(),Vh(),q(),at(),a_(),zd(),Ki(),Wd(),lp(),Jc(),ps();var _j=24,vj=11;function yj(){return new Date().toISOString().split(`T`)[0]}function bj({plan:e,sessionId:t,taskId:n,setMessages:r,readFileState:i,memorySelector:a,getAppState:o,setConversationId:s,resultDedupState:c}){ks(`ultraplan-choice`);let l=Vr(),{rows:u,columns:f}=de(),p=Q.useMemo(()=>Math.min(_j,Math.max(1,Math.floor(u/2)-vj)),[u]),m=Q.useMemo(()=>w(e,Math.max(1,f-4),`wrap`).split(`
85
85
  `),[e,f]),h=Math.max(0,m.length-p),[g,_]=Q.useState(0);Q.useEffect(()=>{_(e=>Math.min(e,h))},[h]);let v=m.length>p;oe((e,t)=>{if(!v)return;let n=Math.max(1,Math.floor(p/2));if(t.ctrl&&e===`d`||t.wheelDown){let e=t.wheelDown?3:n;_(t=>Math.min(t+e,h))}else if(t.ctrl&&e===`u`||t.wheelUp){let e=t.wheelUp?3:n;_(t=>Math.max(t-e,0))}});let y=m.slice(g,g+p).join(`
86
86
  `),x=g>0,S=g<h,C=Q.useCallback(async a=>{switch(a){case`here`:Fi({value:[`Ultraplan approved in browser. Here is the plan:`,``,`<ultraplan>`,e,`</ultraplan>`,``,`The user approved this plan in the remote session. Give them a brief summary, then start implementing.`].join(`
87
87
  `),mode:`task-notification`});break;case`fresh`:let t=st(),n=await Av(Tn()).then(()=>!0,()=>!1);await s_({setMessages:r,readFileState:i,getAppState:o,setAppState:l,setConversationId:s}),n&&r(e=>[...e,Td(`Previous session saved · resume with: claude --resume ${t}`,`suggestion`)]),Fi({value:`Here is the approved implementation plan:\n\n${e}\n\nImplement this plan.`,mode:`prompt`});break;case`cancel`:{let t=xv(Gd(),`${yj()}-ultraplan.md`);await jv(t,e,{encoding:`utf-8`}),r(e=>[...e,Td(`Ultraplan rejected · Plan saved to ${dp(t)}`,`suggestion`)]);break}}wo(n,l,e=>e.status===`running`?{...e,status:`completed`,endTime:Date.now()}:e),l(e=>e.ultraplanPendingChoice?{...e,ultraplanPendingChoice:void 0,ultraplanSessionUrl:void 0}:e),Ja(t)},[e,t,n,r,o,l,i,s]),E=Q.useMemo(()=>[{label:`Implement here`,value:`here`,description:`Inject plan into the current conversation`},{label:`Start new session`,value:`fresh`,description:`Clear conversation and start with only the plan`},{label:`Cancel`,value:`cancel`,description:`Don't implement — save plan and return`}],[]);return(0,$.jsx)(ge,{title:`Ultraplan approved`,subtitle:`How should the plan be implemented?`,onCancel:()=>{},hideInputGuide:!0,children:(0,$.jsxs)(b,{flexDirection:`column`,marginBottom:1,children:[(0,$.jsxs)(b,{flexDirection:`column`,marginBottom:1,children:[(0,$.jsx)(T,{children:y}),v&&(0,$.jsxs)(T,{dimColor:!0,children:[x?d.arrowUp:` `,S?d.arrowDown:` `,` `,g+1,`–`,Math.min(g+p,m.length),` of `,m.length,` · ctrl+u/ctrl+d to scroll`]})]}),(0,$.jsx)(eu,{options:E,onChange:e=>void C(e)})]})})}B(),Cl(),Vh(),q(),Rf(),wl();function xj(){return!Lf().hasSeenUltraplanTerms}function Sj(){return Pl()}function Cj({onChoice:e}){let[t]=Q.useState(xj),[n]=Q.useState(Sj),r=Q.useMemo(()=>_s(n),[n]),i=J(e=>e.replBridgeEnabled),a=Vr(),o=Q.useCallback(r=>{let o=r===`run`&&i;o&&a(e=>e.replBridgeEnabled?{...e,replBridgeEnabled:!1,replBridgeExplicit:!1,replBridgeOutboundOnly:!1}:e),r!==`cancel`&&t&&If(e=>e.hasSeenUltraplanTerms?e:{...e,hasSeenUltraplanTerms:!0}),e(r,{disconnectedBridge:o,promptIdentifier:n})},[e,i,a,t]),s=Q.useCallback(()=>{o(`cancel`)},[o]),c=[{label:`Run ultraplan`,value:`run`,description:i?`Disable remote control and launch in Claude Code on the web`:`launch in Claude Code on the web`},{label:`Not now`,value:`cancel`}];return(0,$.jsx)(ge,{title:`Run ultraplan in the cloud?`,subtitle:r.timeEstimate,onCancel:s,children:(0,$.jsxs)(b,{flexDirection:`column`,gap:1,children:[(0,$.jsxs)(b,{flexDirection:`column`,children:[(0,$.jsx)(T,{dimColor:!0,children:r.dialogBody}),t?(0,$.jsxs)(T,{dimColor:!0,children:[`For more information on Claude Code on the web:`,(0,$.jsx)(C,{url:Pu,children:Pu})]}):null]}),(0,$.jsx)(T,{dimColor:!0,children:i?`This will disable Remote Control for this session.`:r.dialogPipeline}),(0,$.jsx)(eu,{options:c,onChange:o})]})})}z_(),B(),Rf(),Ur();function wj(e,t,n){let r=(0,Q.useRef)(!1),i=(0,Q.useRef)(n);i.current=n,(0,Q.useEffect)(()=>{if(t)return e.subscribe(()=>{let t=e.getState(),n=e.hasSelection();if(t?.isDragging){r.current=!1;return}if(!n){r.current=!1;return}if(r.current||!(Lf().copyOnSelect??!0))return;let a=e.copySelectionNoClear();if(!a||!a.trim()){r.current=!0;return}r.current=!0,i.current?.(a)})},[t,e])}function Tj(e){let[t]=y();(0,Q.useEffect)(()=>{e.setSelectionBgColor(Yn(t).selectionBg)},[e,t])}Rt(),B(),Ah(),tf();var Ej=40,Dj=.3,Oj=6,kj=200,Aj=15,jj=15,Mj=3,Nj=1500,Pj=150,Fj=5,Ij=5,Lj=80,Rj=3,zj=6,Bj=500;function Vj(e){return!(e.wheelUp||e.wheelDown||(e.leftArrow||e.rightArrow||e.upArrow||e.downArrow||e.home||e.end||e.pageUp||e.pageDown)&&(e.shift||e.meta||e.super))}function Hj(e){return!e.shift||e.meta?null:e.leftArrow?`left`:e.rightArrow?`right`:e.upArrow?`up`:e.downArrow?`down`:e.home?`lineStart`:e.end?`lineEnd`:null}function Uj(e,t,n){if(!e.xtermJs){if(e.wheelMode&&n-e.time>Nj&&(e.wheelMode=!1,e.burstCount=0,e.mult=e.base),e.pendingFlip){if(e.pendingFlip=!1,t!==e.dir||n-e.time>kj)return e.dir=t,e.time=n,e.mult=e.base,Math.floor(e.mult);e.wheelMode=!0}let r=n-e.time;if(t!==e.dir&&e.dir!==0)return e.pendingFlip=!0,e.time=n,0;if(e.dir=t,e.time=n,e.wheelMode)if(r<Ij)if(++e.burstCount>=5)e.wheelMode=!1,e.burstCount=0,e.mult=e.base;else return 1;else e.burstCount=0;if(e.wheelMode){let t=.5**(r/Pj),n=Math.max(jj,e.base*2),i=1+(e.mult-1)*t+Aj*t;return e.mult=Math.min(n,i,e.mult+Mj),Math.floor(e.mult)}if(r>Ej)e.mult=e.base;else{let t=Math.max(Oj,e.base*2);e.mult=Math.min(t,e.mult+Dj)}return Math.floor(e.mult)}let r=n-e.time,i=t===e.dir;if(e.time=n,e.dir=t,i&&r<Ij)return 1;if(!i||r>Bj)e.mult=2,e.frac=0;else{let t=.5**(r/Pj);e.mult=Math.min(r>=Lj?Rj:zj,1+(e.mult-1)*t+Fj*t)}let a=e.mult+e.frac,o=Math.floor(a);return e.frac=a-o,o}function Wj(){let e=process.env.CLAUDE_CODE_SCROLL_SPEED;if(!e)return 1;let t=parseFloat(e);return Number.isNaN(t)||t<=0?1:Math.min(t,20)}function Gj(e=!1,t=1){return{time:0,mult:t,dir:0,xtermJs:e,frac:0,base:t,pendingFlip:!1,wheelMode:!1,burstCount:0}}function Kj(){let e=se(),t=Wj();return Y(`wheel accel: ${e?`decay (xterm.js)`:`window (native)`} · base=${t} · TERM_PROGRAM=${process.env.TERM_PROGRAM??`unset`}`),Gj(e,t)}var qj=2,Jj=50,Yj=200;function Xj({scrollRef:e,isActive:t,onScroll:n,isModal:r=!1}){let i=ue(),{addNotification:a}=lo(),o=(0,Q.useRef)(null);function s(e){let t=le(),n=e.length,r;switch(t){case`native`:r=`copied ${n} chars to clipboard`;break;case`tmux-buffer`:r=`copied ${n} chars to tmux buffer · paste with prefix + ]`;break;case`osc52`:r=`sent ${n} chars via OSC 52 · check terminal clipboard settings if paste fails`;break}a({key:`selection-copied`,text:r,color:`suggestion`,priority:`immediate`,timeoutMs:t===`native`?2e3:4e3})}function c(){let e=i.copySelection();e&&s(e)}function l(e,t){let n=i.getState();if(!n?.anchor||!n.focus)return;let r=e.getViewportTop(),a=r+e.getViewportHeight()-1;if(n.anchor.row<r||n.anchor.row>a||n.focus.row<r||n.focus.row>a)return;let o=Math.max(0,e.getScrollHeight()-e.getViewportHeight()),s=e.getScrollTop()+e.getPendingDelta(),c=Math.max(0,Math.min(o,s+t))-s;if(c!==0)if(c>0)i.captureScrolledRows(r,r+c-1,`above`),i.shiftSelection(-c,r,a);else{let e=-c;i.captureScrolledRows(a-e+1,a,`below`),i.shiftSelection(e,r,a)}}return v({"scroll:pageUp":()=>{let t=e.current;if(!t)return;let r=-Math.max(1,Math.floor(t.getViewportHeight()/2));l(t,r);let i=$j(t,r);n?.(i,t)},"scroll:pageDown":()=>{let t=e.current;if(!t)return;let r=Math.max(1,Math.floor(t.getViewportHeight()/2));l(t,r);let i=$j(t,r);n?.(i,t)},"scroll:lineUp":()=>{i.clearSelection();let t=e.current;if(!t||t.getScrollHeight()<=t.getViewportHeight())return!1;o.current??(o.current=Kj()),tM(t,Uj(o.current,-1,performance.now())),n?.(!1,t)},"scroll:lineDown":()=>{i.clearSelection();let t=e.current;if(!t||t.getScrollHeight()<=t.getViewportHeight())return!1;o.current??(o.current=Kj());let r=eM(t,Uj(o.current,1,performance.now()));n?.(r,t)},"scroll:top":()=>{let t=e.current;t&&(l(t,-(t.getScrollTop()+t.getPendingDelta())),t.scrollTo(0),n?.(!1,t))},"scroll:bottom":()=>{let t=e.current;if(!t)return;let r=Math.max(0,t.getScrollHeight()-t.getViewportHeight());l(t,r-(t.getScrollTop()+t.getPendingDelta())),t.scrollTo(r),t.scrollToBottom(),n?.(!0,t)},"selection:copy":c},{context:`Scroll`,isActive:t}),v({"scroll:halfPageUp":()=>{let t=e.current;if(!t)return;let r=-Math.max(1,Math.floor(t.getViewportHeight()/2));l(t,r);let i=$j(t,r);n?.(i,t)},"scroll:halfPageDown":()=>{let t=e.current;if(!t)return;let r=Math.max(1,Math.floor(t.getViewportHeight()/2));l(t,r);let i=$j(t,r);n?.(i,t)},"scroll:fullPageUp":()=>{let t=e.current;if(!t)return;let r=-Math.max(1,t.getViewportHeight());l(t,r);let i=$j(t,r);n?.(i,t)},"scroll:fullPageDown":()=>{let t=e.current;if(!t)return;let r=Math.max(1,t.getViewportHeight());l(t,r);let i=$j(t,r);n?.(i,t)}},{context:`Scroll`,isActive:t}),oe((t,r,i)=>{let a=e.current;if(!a)return;let o=rM(a,nM(t,r),e=>l(a,e));o!==null&&(n?.(o,a),i.stopImmediatePropagation())},{isActive:t&&r}),oe((e,t,n)=>{if(!i.hasSelection())return;if(t.escape){i.clearSelection(),n.stopImmediatePropagation();return}if(t.ctrl&&!t.shift&&!t.meta&&e===`c`){c(),n.stopImmediatePropagation();return}let r=Hj(t);if(r){i.moveFocus(r),n.stopImmediatePropagation();return}Vj(t)&&i.clearSelection()},{isActive:t}),Zj(e,i,t,n),wj(i,t,s),Tj(i),null}function Zj(e,t,n,r){let i=(0,Q.useRef)(null),a=(0,Q.useRef)(0),o=(0,Q.useRef)(0),s=(0,Q.useRef)(0),c=(0,Q.useRef)(r);c.current=r,(0,Q.useEffect)(()=>{if(!n)return;function r(){a.current=0,i.current&&(clearInterval(i.current),i.current=null)}function l(){let n=t.getState(),i=e.current,o=a.current;if(!n?.isDragging||!n.focus||!i||o===0||++s.current>Yj){r();return}if(i.getPendingDelta()!==0)return;let l=i.getViewportTop(),u=l+i.getViewportHeight()-1;if(o<0){if(i.getScrollTop()<=0){r();return}let e=Math.min(qj,i.getScrollTop());t.captureScrolledRows(u-e+1,u,`below`),t.shiftAnchor(e,0,u),i.scrollBy(-2)}else{let e=Math.max(0,i.getScrollHeight()-i.getViewportHeight());if(i.getScrollTop()>=e){r();return}let n=Math.min(qj,e-i.getScrollTop());t.captureScrolledRows(l,l+n-1,`above`),t.shiftAnchor(-n,l,u),i.scrollBy(qj)}c.current?.(!1,i)}function u(e){o.current=e,a.current!==e&&(r(),a.current=e,s.current=0,l(),a.current===e&&(i.current=setInterval(l,Jj)))}function d(){let n=e.current;if(!n){r();return}let i=n.getViewportTop(),a=i+n.getViewportHeight()-1,s=t.getState();(!s?.isDragging||s.scrolledOffAbove.length===0&&s.scrolledOffBelow.length===0)&&(o.current=0);let c=Qj(s,i,a,o.current);if(c===0){if(o.current!==0&&s?.focus){let e=s.focus.row<i?-1:+(s.focus.row>a);e!==0&&e!==o.current&&(s.scrolledOffAbove=[],s.scrolledOffBelow=[],s.scrolledOffAboveSW=[],s.scrolledOffBelowSW=[],o.current=0)}r()}else u(c)}let f=t.subscribe(d);return()=>{f(),r(),o.current=0}},[n,e,t])}function Qj(e,t,n,r=0){if(!e?.isDragging||!e.anchor||!e.focus)return 0;let i=e.focus.row,a=i<t?-1:+(i>n);return r===0?e.anchor.row<t||e.anchor.row>n?0:a:a===r?a:0}function $j(e,t){let n=Math.max(0,e.getScrollHeight()-e.getViewportHeight()),r=e.getScrollTop()+e.getPendingDelta()+t;return r>=n?(e.scrollTo(n),e.scrollToBottom(),!0):(e.scrollTo(Math.max(0,r)),!1)}function eM(e,t){let n=Math.max(0,e.getScrollHeight()-e.getViewportHeight());return e.getScrollTop()+e.getPendingDelta()+t>=n?(e.scrollToBottom(),!0):(e.scrollBy(t),!1)}function tM(e,t){if(e.getScrollTop()+e.getPendingDelta()-t<=0){e.scrollTo(0);return}e.scrollBy(-t)}function nM(e,t){if(t.meta)return null;if(!t.ctrl&&!t.shift){if(t.upArrow)return`lineUp`;if(t.downArrow)return`lineDown`;if(t.home)return`top`;if(t.end)return`bottom`}if(t.ctrl){if(t.shift)return null;switch(e){case`u`:return`halfPageUp`;case`d`:return`halfPageDown`;case`b`:return`fullPageUp`;case`f`:return`fullPageDown`;case`n`:return`lineDown`;case`p`:return`lineUp`;default:return null}}let n=e[0];if(!n||e!==n.repeat(e.length))return null;if(n===`G`||n===`g`&&t.shift)return`bottom`;if(t.shift)return null;switch(n){case`g`:return`top`;case`j`:return`lineDown`;case`k`:return`lineUp`;case` `:return`fullPageDown`;case`b`:return`fullPageUp`;default:return null}}function rM(e,t,n){switch(t){case null:return null;case`lineUp`:case`lineDown`:{let r=t===`lineDown`?1:-1;return n(r),$j(e,r)}case`halfPageUp`:case`halfPageDown`:{let r=Math.max(1,Math.floor(e.getViewportHeight()/2)),i=t===`halfPageDown`?r:-r;return n(i),$j(e,i)}case`fullPageUp`:case`fullPageDown`:{let r=Math.max(1,e.getViewportHeight()),i=t===`fullPageDown`?r:-r;return n(i),$j(e,i)}case`top`:return n(-(e.getScrollTop()+e.getPendingDelta())),e.scrollTo(0),!1;case`bottom`:{let t=Math.max(0,e.getScrollHeight()-e.getViewportHeight());return n(t-(e.getScrollTop()+e.getPendingDelta())),e.scrollTo(t),e.scrollToBottom(),!0}}}var iM=r({useFrustrationDetection:()=>oM});function aM(e){return e.filter(e=>`isApiErrorMessage`in e&&e.isApiErrorMessage===!0).length>=2}function oM(e,t,n,r){let[i,a]=(0,sM.useState)(`closed`),o=Lf(),s=Xa(`product_feedback`),c=o.transcriptShareDismissed||!s||t||n||r,l=aM(e);return{state:c?`closed`:l&&i===`closed`?`transcript_prompt`:i,handleTranscriptSelect:t=>{c||(t===`yes`?(pk(e,`frustration`,crypto.randomUUID()),a(`submitted`)):(If(e=>({...e,transcriptShareDismissed:!0})),a(`closed`)))}}}var sM,cM=t((()=>{sM=n(z(),1),Rf(),uo(),mk()})),lM=r({useAntOrgWarningNotification:()=>uM});function uM(){}t((()=>{}));var dM=r({useProactive:()=>fM});function fM(e){let t=(0,pM.useRef)(e);t.current=e,(0,pM.useEffect)(()=>{if(!uh())return;let e=null,n=!1,r=!1;function i(){lh(Date.now()+mM),e=setTimeout(()=>{if(e=null,!rh()){i();return}let{isLoading:a,queuedCommandsLength:o,hasActiveLocalJsxUI:s,isInPlanMode:c}=t.current;if(a||c||s||o>0||r){i();return}r=!0,(async()=>{let e=await Ms({basePrompt:`<${$f}>${new Date().toLocaleTimeString()}</${$f}>`,currentDir:Gd(),shouldCreate:()=>!n});if(n){await kc({commands:e});return}let r=[];try{for(let n of e)t.current.onQueueTick(n),r.push(n)}catch(t){throw await kc({commands:e.filter(e=>!r.includes(e))}),t}})().catch(e=>Y(`[Proactive] failed to create tick: ${e}`,{level:`error`})).finally(()=>{r=!1}),i()},mM)}return i(),()=>{n=!0,e!==null&&(clearTimeout(e),e=null),lh(null)}},[uh(),nh(),ih()])}var pM,mM,hM=t((()=>{pM=n(z(),1),ep(),Wd(),xu(),tf(),mM=3e4}));function gM(e){if(e.tokenBudget!==null){let t=Math.max(0,e.tokenBudget-e.tokensUsed);return`Tokens used: ${e.tokensUsed} / ${e.tokenBudget} (${t} remaining)`}return`Tokens used: ${e.tokensUsed}`}function _M(e){let t=sc(e),n=gM(e),r=`Continuation turns executed: ${e.turnsExecuted}`;return`<goal-steering type="continuation">
@@ -134,9 +134,9 @@ Instead, provide a brief summary:
134
134
  3. Any blockers or issues encountered.
135
135
 
136
136
  Then use the GoalTool to mark the goal as complete (if truly done) or leave it in its current state for the user to decide.
137
- </goal-steering>`}var yM=t((()=>{})),bM=r({useGoalContinuation:()=>SM});function xM(e){Y(`[goal] hook: ${e}`)}function SM(e){let t=(0,CM.useRef)(e);t.current=e;let n=(0,CM.useRef)(!1),r=(0,CM.useRef)(!1);(0,CM.useLayoutEffect)(()=>{if(e.isLoading){n.current=!1;return}if(e.isQueryActiveNow?.()){xM(`skip: queryActiveNow=true`);return}if(e.wasAborted){xM(`skip: wasAborted=true`);return}if(n.current)return;if(Hc().length>0){xM(`skip: yielding to queued user messages`);return}if(e.hasActiveLocalJsxUI){xM(`skip: activeLocalJsxUI`);return}if(e.isInPlanMode){xM(`skip: planMode`);return}let t=bl();if(!t){r.current=!1;return}if(t.status===`active`&&(r.current=!1),t.status===`budget_limited`&&!r.current){r.current=!0,n.current=!0;let e=vM(t);Y(`[goal] hook: budget limit reached, injecting wrap-up prompt`),pn({value:e,mode:`prompt`,priority:`now`,isMeta:!0,origin:`goal-budget-limit`,skipSlashCommands:!0});return}if(t.status!==`active`){xM(`skip: status="${t.status}" (not active)`);return}if(t.turnsExecuted>=150){Qu()&&(jc(),e.onMaxTurnsReached?.()),Y(`[goal] hook: MAX_GOAL_TURNS (150) reached, stopping`);return}n.current=!0;let i=hc();jc();let a=_M(t);Y(`[goal] hook: enqueuing turn ${i} for "${t.objective.slice(0,60)}"`),pn({value:a,mode:`prompt`,priority:`now`,isMeta:!0,origin:`goal-continuation`,skipSlashCommands:!0}),e.onContinuationEnqueued?.({turn:i,objective:t.objective})},[e.isLoading,e.wasAborted,e.queuedCommandsLength,e.hasActiveLocalJsxUI,e.isInPlanMode])}var CM,wM=t((()=>{CM=n(z(),1),tf(),us(),yM(),Ki()})),TM=r({AntModelSwitchCallout:()=>EM,shouldShowModelSwitchCallout:()=>DM});function EM(e){return null}function DM(){return!1}t((()=>{}));var OM=r({UndercoverAutoCallout:()=>kM});function kM({onDone:e}){return(0,AM.useEffect)(()=>{e()},[e]),null}var AM,jM=t((()=>{AM=n(z(),1)}));at(),cu(),wf(),u(),B(),ms(),Rg(),Rt(),tf(),s(),Ep(),xu(),Ft(),la(),hg(),zl(),zu(),Xu(),cn(),fn(),cf(),np(),Wd(),kn(),Xt(),_c(),Rf(),vm(),bp(),zd(),Kh(),ep(),As(),ku(),W_(),eg(),iu(),wd(),Gg(),q(),rc(),Jc(),Va(),mn(),Dn(),Ki(),nu(),nr(),Oa(),wl(),dr();var MM=process.env.USER_TYPE===`ant`?(cM(),e(iM)).useFrustrationDetection:()=>({state:`closed`,handleTranscriptSelect:()=>{}}),NM=process.env.USER_TYPE===`ant`?e(lM).useAntOrgWarningNotification:()=>{},PM=(dh(),e(eh)),FM=e=>()=>{},IM=()=>!1,LM=()=>null,RM=(e,t)=>!1,zM=(hM(),e(dM)).useProactive,BM=(wM(),e(bM)).useGoalContinuation,VM=()=>({relayPipeMessage:()=>!1,pipeReturnHadErrorRef:{current:!1}}),HM=()=>({routeToSelectedPipes:()=>!1}),UM=process.env.USER_TYPE===`ant`?e(TM).AntModelSwitchCallout:null,WM=process.env.USER_TYPE===`ant`?e(TM).shouldShowModelSwitchCallout:()=>!1,GM=process.env.USER_TYPE===`ant`?(jM(),e(OM)).UndercoverAutoCallout:null,KM=[],qM=3e3;function JM(e){let t=[...e].sort((e,t)=>e-t),n=Math.floor(t.length/2);return t.length%2==0?Math.round((t[n-1]+t[n])/2):t[n]}function YM({showAllInTranscript:e,virtualScroll:t,searchBadge:n,suppressShowAll:r=!1,status:i}){let a=ud(`app:toggleTranscript`,`Global`,`ctrl+o`),o=ud(`transcript:toggleShowAll`,`Transcript`,`ctrl+e`);return(0,$.jsxs)(b,{noSelect:!0,alignItems:`center`,alignSelf:`center`,borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:`single`,marginTop:1,paddingLeft:2,width:`100%`,children:[(0,$.jsxs)(T,{dimColor:!0,children:[`Showing detailed transcript · `,a,` to toggle`,n?` · n/N to navigate`:t?` · ${d.arrowUp}${d.arrowDown} scroll · home/end top/bottom`:r?``:` · ${o} to ${e?`collapse`:`show all`}`]}),i?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(b,{flexGrow:1}),(0,$.jsxs)(T,{children:[i,` `]})]}):n?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(b,{flexGrow:1}),(0,$.jsxs)(T,{dimColor:!0,children:[n.current,`/`,n.count,` `]})]}):null]})}function XM({jumpRef:e,count:t,current:n,onClose:r,onCancel:i,setHighlight:a,initialQuery:o}){let{query:s,cursorOffset:c}=f_({isActive:!0,initialQuery:o,onExit:()=>r(s),onCancel:i}),[l,u]=Q.useState(`building`);Q.useEffect(()=>{let t=!0,n,r=e.current?.warmSearchIndex;if(!r){u(null);return}return u(`building`),r().then(e=>{t&&(e<20?u(null):(u({ms:e}),n=setTimeout(()=>t&&u(null),2e3)))}),()=>{t=!1,n&&clearTimeout(n)}},[e]);let d=l!==`building`;(0,Q.useEffect)(()=>{d&&(e.current?.setSearchQuery(s),a(s))},[e,s,a,d]);let f=c,p=f<s.length?s[f]:` `;return(0,$.jsxs)(b,{borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:`single`,marginTop:1,paddingLeft:2,width:`100%`,noSelect:!0,children:[(0,$.jsx)(T,{children:`/`}),(0,$.jsx)(T,{children:s.slice(0,f)}),(0,$.jsx)(T,{inverse:!0,children:p}),f<s.length&&(0,$.jsx)(T,{children:s.slice(f+1)}),(0,$.jsx)(b,{flexGrow:1}),l===`building`?(0,$.jsx)(T,{dimColor:!0,children:`indexing… `}):l?(0,$.jsxs)(T,{dimColor:!0,children:[`indexed in `,l.ms,`ms `]}):t===0&&s?(0,$.jsx)(T,{color:`error`,children:`no matches `}):t>0?(0,$.jsxs)(T,{dimColor:!0,children:[n,`/`,t,` `]}):null]})}var ZM=[`⠂`,`⠐`],QM=`✳`,$M=960;function eN({isAnimating:e,title:t,disabled:n,noPrefix:r}){let i=j(),[a,o]=(0,Q.useState)(0);(0,Q.useEffect)(()=>{if(n||r||!e||!i)return;let t=setInterval(e=>e(e=>(e+1)%ZM.length),$M,o);return()=>clearInterval(t)},[n,r,e,i]);let s=e?ZM[a]??QM:QM;return te(n?null:r?t:`${s} ${t}`),null}var tN=`<${tp}>`;function nN(e){return e.type===`text`&&typeof e.text==`string`&&e.text.includes(tN)}function rN({commands:t,debug:n,initialTools:r,initialMessages:i,pendingHookMessages:o,initialFileHistorySnapshots:s,initialContentReplacements:c,initialAgentName:l,initialAgentColor:u,mcpClients:d,dynamicMcpConfig:f,autoConnectIdeFlag:p,strictMcpConfig:m=!1,systemPrompt:h,appendSystemPrompt:g,onBeforeQuery:_,onTurnComplete:v,disabled:x=!1,mainThreadAgentDefinition:S,disableSlashCommands:C=!1,taskListId:w,remoteSessionConfig:D,directConnectConfig:O,sshSession:k,thinkingConfig:ee}){let A=!!D,M=(0,Q.useMemo)(()=>a(process.env.CLAUDE_CODE_DISABLE_TERMINAL_TITLE),[]),te=(0,Q.useMemo)(()=>process.env.USER_TYPE===`ant`&&a(process.env.CLAUDE_MORERIGHT),[]),N=(0,Q.useMemo)(()=>a(process.env.CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL),[]);(0,Q.useMemo)(()=>a(process.env.CLAUDE_CODE_DISABLE_MESSAGE_ACTIONS),[]),(0,Q.useEffect)(()=>(Y(`[REPL:mount] REPL mounted, disabled=${x}`),()=>Y(`[REPL:unmount] REPL unmounting`)),[x]);let[F,re]=(0,Q.useState)(S),I=J(e=>e.toolPermissionContext),L=J(e=>e.verbose),R=J(e=>e.mcp),z=J(e=>e.plugins),ae=J(e=>e.agentDefinitions),se=J(e=>e.fileHistory),ce=J(e=>e.initialMessage),le=nC(),ue=J(e=>e.spinnerTip),pe=J(e=>e.expandedView)===`tasks`,B=J(e=>e.tasks),H=J(e=>e.elicitation),me=J(e=>e.ultraplanPendingChoice),he=J(e=>e.ultraplanLaunchPending),ge=J(e=>e.viewingAgentTaskId),U=Vr(),ve=ge?B[ge]:void 0,ye=Yc(ve)&&ve.retain&&!ve.diskLoaded;(0,Q.useEffect)(()=>{if(!ge||!ye)return;let e=ge;Ku(Qr(e)).then(t=>{U(n=>{let r=n.tasks[e];if(!Yc(r)||r.diskLoaded||!r.retain)return n;let i=r.messages??[],a=new Set(i.map(e=>e.uuid)),o=t?t.messages.filter(e=>!a.has(e.uuid)):[];return{...n,tasks:{...n.tasks,[e]:{...r,messages:[...o,...i],diskLoaded:!0}}}})})},[ge,ye,U]);let be=qn(),xe=E(),Se=Wg(),[Ce,we]=(0,Q.useState)(t);$O(A?void 0:dt(),we);let Te=Q.useSyncExternalStore(PM?.subscribeToProactiveChanges??FM,PM?.isProactiveActive??IM),Ee=Q.useSyncExternalStore(PM?.subscribeToProactiveChanges??FM,PM?.getNextTickAt??LM),De=J(e=>e.isBriefOnly),Oe=(0,Q.useMemo)(()=>Jo(I),[I,Te,De]);Yk();let[ke,Ae]=(0,Q.useState)(f),je=(0,Q.useCallback)(e=>{Ae(e)},[Ae]),[Pe,Fe]=(0,Q.useState)(`prompt`),[Ie,Re]=(0,Q.useState)(!1),[Be,Ve]=(0,Q.useState)(!1),[He,We]=(0,Q.useState)(``),Ge=(0,Q.useRef)(0),Ke=(0,Q.useRef)(void 0),Je=(0,Q.useRef)(!1),{addNotification:Ze,removeNotification:Qe}=lo(),$e=RM,et=ZO(d,R.clients),[at,pt]=(0,Q.useState)(void 0),[mt,_t]=(0,Q.useState)(null),[yt,bt]=(0,Q.useState)(null),[St,Ct]=(0,Q.useState)(!1),[wt,Tt]=(0,Q.useState)(()=>process.env.USER_TYPE===`ant`&&WM()),Et=J(e=>e.showRemoteCallout),[Dt,kt]=(0,Q.useState)(()=>uv());GA(),JA(),UA({ideSelection:at,mcpClients:et,ideInstallationStatus:yt}),tA({mcpClients:et}),jA(),MA(),g_(),RA(Se),ej(),zA(Se),VA(),NM(),Fk(),Hk(),iA();let{recommendation:At,handleResponse:Nt}=bA(),{recommendation:Pt,handleResponse:Ft}=CA(),It=AA(),Rt=(0,Q.useMemo)(()=>[...Oe,...r],[Oe,r]);ng({enabled:!A});let zt=qo();(0,Q.useEffect)(()=>{A||FA(U)},[U,A]);let Bt=Ig(Rt,R.tools,I),{tools:Vt,allowedAgentTypes:Ht}=(0,Q.useMemo)(()=>{if(!F)return{tools:Bt,allowedAgentTypes:void 0};let e=jt(F,Bt,!1,!0);return{tools:e.resolvedTools,allowedAgentTypes:e.allowedAgentTypes}},[F,Bt]),Wt=QO(QO(Ce,z.commands),R.commands),Kt=(0,Q.useMemo)(()=>C?[]:Wt,[C,Wt]);Ay(A?KM:R.clients),tk(A?KM:R.clients,pt);let[qt,Jt]=(0,Q.useState)(`responding`),Yt=(0,Q.useRef)(qt);Yt.current=qt;let[Xt,Zt]=(0,Q.useState)([]),[Qt,$t]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{if(Qt&&!Qt.isStreaming&&Qt.streamingEndedAt){let e=3e4-(Date.now()-Qt.streamingEndedAt);if(e>0){let t=setTimeout($t,e,null);return()=>clearTimeout(t)}else $t(null)}},[Qt]);let[en,tn]=(0,Q.useState)(null),an=(0,Q.useRef)(null);an.current=en;let cn=(0,Q.useRef)(0),[ln,un]=(0,Q.useState)(!1),dn=(0,Q.useRef)(()=>{}),fn=(0,Q.useRef)(()=>{}),mn=(0,Q.useRef)(null),hn=(0,Q.useRef)(null),gn=(0,Q.useRef)(0),_n=Q.useRef(new uy).current,vn=Q.useSyncExternalStore(_n.subscribe,_n.getSnapshot),[bn,Sn]=Q.useState(D?.hasInitialPrompt??!1),W=vn||bn,[Cn,Tn]=Q.useState(void 0),En=Q.useRef(0),Dn=Q.useRef(!1),On=Q.useRef(0),kn=Q.useRef(0),An=Q.useRef(null),Mn=Q.useCallback(()=>{On.current=Date.now(),kn.current=0,An.current=null},[]),Nn=Q.useRef(!1);vn&&!Nn.current&&Mn(),Nn.current=vn;let Pn=Q.useCallback(e=>{Sn(e),e&&Mn()},[Mn]),Fn=Q.useRef(void 0),[In,Ln]=Q.useState(!1),[Rn,zn]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{Rn?.notifications&&Rn.notifications.forEach(e=>{Ze({key:`auto-updater-notification`,text:e,priority:`low`})})},[Rn,Ze]),(0,Q.useEffect)(()=>{oo()&&rr().then(e=>{e&&Ze({key:`tmux-mouse-hint`,text:e,priority:`low`})})},[]);let[Bn,Vn]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{process.env.USER_TYPE===`ant`&&(async()=>{let{isInternalModelRepo:e}=await import(`./commitAttribution-D6J3NuhB.js`);await e();let{shouldShowUndercoverAutoNotice:t}=await import(`./undercover-k3JoOKAb.js`);t()&&Vn(!0)})()},[]);let[Hn,Un]=(0,Q.useState)(null),Wn=(0,Q.useRef)(null),Gn=(0,Q.useCallback)(e=>{if(e?.isLocalJSXCommand){let{clearLocalJSX:t,...n}=e;Wn.current={...n,isLocalJSXCommand:!0},Un(n);return}if(Wn.current){if(e?.clearLocalJSX){Wn.current=null,Un(null),cn.current=Date.now();return}return}if(e?.clearLocalJSX){Un(null);return}Un(e)},[]),[Kn,Jn]=(0,Q.useState)([]),[Yn,Xn]=(0,Q.useState)(null),[Zn,Qn]=(0,Q.useState)([]),[$n,er]=(0,Q.useState)([]),tr=(0,Q.useRef)(new Map),nr=J(e=>e.settings.terminalTitleFromRename)===!1?void 0:xl(st()),[ir,ar]=(0,Q.useState)(),or=(0,Q.useRef)((i?.length??0)>0),sr=F?.agentType,lr=nr??sr??ir??`Work Mate`,ur=Kn.length>0||$n.length>0,dr=Hn?.isLocalJSXCommand===!0&&Hn?.jsx!=null,fr=W&&!ur&&!dr;(0,Q.useEffect)(()=>{if(W&&!ur&&!dr)return ry(),()=>iy()},[W,ur,dr]);let pr=ur||dr?`waiting`:W?`busy`:`idle`,mr=pr===`waiting`?Kn.length>0?`approve ${Kn[0].tool.name}`:dr?`dialog open`:`input needed`:void 0;(0,Q.useEffect)(()=>{Id({status:pr,waitingFor:mr})},[pr,mr]),P(null);let[G,hr]=(0,Q.useState)(i??[]),gr=(0,Q.useRef)(G),_r=(0,Q.useRef)(!1),K=(0,Q.useCallback)(e=>{let t=gr.current,n=typeof e==`function`?e(gr.current):e;if(gr.current=n,n.length<En.current)En.current=0;else if(n.length>t.length&&Dn.current){let e=n.length-t.length;(t.length===0||n[0]===t[0]?n.slice(-e):n.slice(0,e)).some(gi)?Dn.current=!1:En.current=n.length}hr(n)},[]),yr=(0,Q.useCallback)(e=>{e===void 0?Dn.current=!1:(En.current=gr.current.length,Dn.current=!0),Tn(e)},[]),{dividerIndex:xr,dividerYRef:Cr,onScrollAway:wr,onRepin:Tr,jumpToNew:Er,shiftDivider:Or}=G_(G.length);Ik(G,K,W);let[Ar,jr]=(0,Q.useState)(null),Mr=(0,Q.useRef)(null),Fr=(0,Q.useMemo)(()=>H_(G,xr),[xr,G.length]),Ir=(0,Q.useCallback)(()=>{mn.current?.scrollToBottom(),Tr(),jr(null)},[Tr,jr]),Lr=G.at(-1),Rr=Lr!=null&&gi(Lr);(0,Q.useEffect)(()=>{Rr&&Ir()},[Rr,Lr,Ir]);let{maybeLoadOlder:Br}=sO({config:D,setMessages:K,scrollRef:mn,onPrepend:Or}),Hr=(0,Q.useCallback)((e,t)=>{gn.current=Date.now(),e?Tr():(wr(t),Br(t))},[Tr,wr,Br,U]),Ur=CO(o,K),Wr=(0,Q.useDeferredValue)(Q.useMemo(()=>G.length>500?G.slice(-500):G,[G])),Kr=G.length-Wr.length;Kr>0&&Y(`[useDeferredValue] Messages deferred by ${Kr} (${Wr.length}→${G.length})`);let[qr,Jr]=(0,Q.useState)(null),[Xr,Zr]=(0,Q.useState)(()=>rv()),$r=(0,Q.useRef)(Xr);$r.current=Xr;let ei=(0,Q.useRef)(null),ti=(0,Q.useCallback)(e=>{$e($r.current,e)||($r.current===``&&e!==``&&Date.now()-gn.current>=qM&&Ir(),$r.current=e,Zr(e),Ln(e.trim().length>0))},[Ln,Ir,$e]);(0,Q.useEffect)(()=>{if(Xr.trim().length===0)return;let e=setTimeout(Ln,1500,!1);return()=>clearTimeout(e)},[Xr]);let[ni,ri]=(0,Q.useState)(`prompt`),[ai,oi]=(0,Q.useState)(),si=(0,Q.useCallback)(e=>{let t=new Set(e);we(e=>e.filter(e=>t.has(e.name)||xa.has(e)))},[we]),[ci,li]=(0,Q.useState)(new Set),ui=(0,Q.useRef)(!1),di=KD({config:D,setMessages:K,setIsLoading:Pn,onInit:si,setToolUseConfirmQueue:Jn,tools:Rt,setStreamingToolUses:Zt,setStreamMode:Jt,setInProgressToolUseIDs:li}),fi=YD({config:O,setMessages:K,setIsLoading:Pn,setToolUseConfirmQueue:Jn,tools:Rt}),mi=XD({session:k,setMessages:K,setIsLoading:Pn,setToolUseConfirmQueue:Jn,tools:Rt}),_i=mi.isRemoteMode?mi:fi.isRemoteMode?fi:di,[vi,yi]=(0,Q.useState)({}),[bi,xi]=(0,Q.useState)(0),Si=(0,Q.useRef)(0),wi=(0,Q.useRef)([]),Ti=(0,Q.useCallback)(e=>{let t=Si.current;if(Si.current=e(t),Si.current>t){let e=wi.current;if(e.length>0){let t=e.at(-1);t.lastTokenTime=Date.now(),t.endResponseLength=Si.current}}},[]),[Ei,Di]=(0,Q.useState)(null),Oi=!(J(e=>e.settings.prefersReducedMotion)??!1)&&!V(),ki=(0,Q.useCallback)(e=>{Oi&&Di(e)},[Oi]),Ai=Ei&&Oi&&Ei.substring(0,Ei.lastIndexOf(`
138
- `)+1)||null,[ji,Mi]=(0,Q.useState)(0),[Ni,Pi]=(0,Q.useState)(null),[Fi,Ri]=(0,Q.useState)(null),[Bi,Hi]=(0,Q.useState)(null),[Ui,Wi]=(0,Q.useState)(!1),[Gi,Ki]=(0,Q.useState)(void 0),[Ji,Yi]=(0,Q.useState)(!1),[Xi,Qi]=(0,Q.useState)(Ov()),[$i,ea]=(0,Q.useState)(null),na=(0,Q.useRef)(!1),ra=(0,Q.useRef)(ji);ra.current=ji;let[ia]=(0,Q.useState)(()=>({current:Gr(i,c)}));pc(()=>{ia.current=$a()});let[aa,oa]=(0,Q.useState)(Lf().hasAcknowledgedCostThreshold),[sa,ca]=(0,Q.useState)(`INSERT`),[la,ua]=(0,Q.useState)(!1),[da,pa]=(0,Q.useState)(!1),[ma,_a]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{me&&la&&ua(!1)},[me,la]);let va=j(),ya=(0,Q.useRef)(va);ya.current=va;let[ba]=y(),Sa=Q.useRef(!1),Ca=(0,Q.useCallback)(()=>{if(Sa.current)return;Sa.current=!0;let e=gr.current.slice(qa.current);for(let t of Dr(e))Ka.current.add(t);qa.current=gr.current.length,Wk({theme:ba,readFileState:Ga.current,bashTools:Ka.current}).then(async e=>{if(e){let t=await e.content({theme:ba});U(e=>({...e,spinnerTip:t})),Gk(e)}else U(e=>e.spinnerTip===void 0?e:{...e,spinnerTip:void 0})})},[U,ba]),wa=(0,Q.useCallback)(()=>{Pn(!1),yr(void 0),Si.current=0,wi.current=[],Di(null),Zt([]),Pi(null),Ri(null),Hi(null),Ca(),mh(),Zl()},[Ca]),Ta=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{{if(I.mode!==`auto`){Ta.current=!1;return}if(Ta.current||(Lf().autoPermissionsNotificationCount??0)>=3)return;let e=setTimeout((e,t)=>{e.current=!0,If(e=>{let t=e.autoPermissionsNotificationCount??0;return t>=3?e:{...e,autoPermissionsNotificationCount:t+1}}),t(e=>[...e,Td(nA,`warning`)])},800,Ta,K);return()=>clearTimeout(e)}},[I.mode,K]);let Ea=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{if(Ea.current)return;let e=on();if(!e?.creationDurationMs||e.usedSparsePaths||e.creationDurationMs<15e3)return;Ea.current=!0;let t=Math.round(e.creationDurationMs/1e3);K(e=>[...e,Td(`Worktree creation took ${t}s. For large repos, set \`worktree.sparsePaths\` in .claude/settings.json to check out only the directories you need — e.g. \`{"worktree": {"sparsePaths": ["src", "packages/foo"]}}\`.`,`info`)])},[K]);let Da=(0,Q.useMemo)(()=>{let e=G.findLast(e=>e.type===`assistant`);if(e?.type!==`assistant`)return!1;let t=e.message?.content,n=(Array.isArray(t)?t:[]).filter(e=>e.type===`tool_use`&&ci.has(e.id));return n.length>0&&n.every(e=>e.type===`tool_use`&&e.name===`Sleep`)},[G,ci]),{onBeforeQuery:Oa,onTurnComplete:ka,render:ja}=bO({enabled:te,setMessages:K,inputValue:Xr,setInputValue:ti,setToolJSX:Gn}),Na=(!Hn||Hn.showSpinner===!0)&&Kn.length===0&&$n.length===0&&(W||Cn||Ot()>0)&&!Da&&(!Ai||De),Fa=Kn.length>0||$n.length>0||Zn.length>0||H.queue.length>0,Ia=vk(G,W,bi,`session`,Fa),La=yO(K),Ra=mj(G,bi),za=(0,Q.useMemo)(()=>({...Ia,handleSelect:e=>{to.current=!1;let t=Ia.handleSelect(e);e===`bad`&&!t&&rj(`feedback_survey_bad`)&&(eo(`feedback_survey_bad`),to.current=!0)}}),[Ia]),Ba=Ek(G,W,Fa,{enabled:!A}),Va=Sk(G,W,Fa,{enabled:!A}),Ha=MM(G,W,Fa,za.state!==`closed`||Ba.state!==`closed`||Va.state!==`closed`);lk({autoConnectIdeFlag:p,ideToInstallExtension:mt,setDynamicMcpConfig:Ae,setShowIdeOnboarding:Ct,setIDEInstallationState:bt}),Xk(s,se,e=>U(t=>({...t,fileHistory:e})));let Ua=(0,Q.useCallback)(async(t,n,r)=>{let i=performance.now();try{let a=So(n.messages),o=Gs();await rs(`resume`,{getAppState:()=>be.getState(),setAppState:U,signal:AbortSignal.timeout(o),timeoutMs:o});let s=await uu(`resume`,{sessionId:t,agentType:F?.agentType,model:Se});a.push(...s),r===`fork`?Fl(n,ha(t)):Cu(n,ha(t)),wg(n,U),n.fileHistorySnapshots&&ss(n);let{agentDefinition:c}=Sg(n.agentSetting,S,ae);re(c),U(e=>({...e,agent:c?.agentType})),U(e=>({...e,standaloneAgentContext:Cg(n.agentName,n.agentColor)})),go(n.agentName),q(a,n.projectPath??ut()),wa(),tn(null),Qi(t);let l=xs(t);Ls(),ht(),gt(ha(t),n.fullPath?yv(n.fullPath):null);let{renameRecordingForSession:u}=await import(`./asciicast-BsWpcxrc.js`);if(await u(),await ac(),kl(),Jl(n),n.goal){let{hydrateGoalFromTranscript:r}=(pu(),e(El)),i=new Map;i.set(t,n.goal),r(i,t)}if(or.current=!0,ar(void 0),r!==`fork`)Tg(),Eg(n.worktreeSession),Pr(),dd({abortController:new AbortController,getAppState:()=>be.getState(),setAppState:U});else{let e=on();e&&nn(e)}l&&rt(l),ia.current&&r!==`fork`&&(ia.current=ou(a,n.contentReplacements??[])),K(()=>a),Gn(null),ti(``),Z(`tengu_session_resumed`,{entrypoint:r,success:!0,resume_duration_ms:Math.round(performance.now()-i)})}catch(e){throw Z(`tengu_session_resumed`,{entrypoint:r,success:!1}),e}},[wa,U]),[Wa]=(0,Q.useState)(()=>Zm(100)),Ga=(0,Q.useRef)(Wa),Ka=(0,Q.useRef)(new Set),qa=(0,Q.useRef)(0),Ja=(0,Q.useRef)(new Set),Ya=(0,Q.useRef)(new Set),q=(0,Q.useCallback)((e,t)=>{let n=Ho(e,t,100);Ga.current=$m(Ga.current,n);for(let t of Dr(e))Ka.current.add(t)},[]);(0,Q.useEffect)(()=>{i&&i.length>0&&(q(i,ut()),dd({abortController:new AbortController,getAppState:()=>be.getState(),setAppState:U}))},[]);let{status:Xa,reverify:Za}=wO(),[Qa,eo]=(0,Q.useState)(null),to=(0,Q.useRef)(!1),[no,ro]=(0,Q.useState)(null),[io,ao]=(0,Q.useState)(!1),so=!W&&Ji;function co(){if(io||no)return;if(Ui)return`message-selector`;if(In)return;if(Zn[0])return`sandbox-permission`;let e=!Hn||Hn.shouldContinueAnimation;if(e&&Kn[0])return`tool-permission`;if(e&&$n[0])return`prompt`;if(e&&H.queue[0])return`elicitation`;if(e&&so)return`cost`;if(e&&$i)return`idle-return`;if(e&&!W&&me)return`ultraplan-choice`;if(e&&!W&&he)return`ultraplan-launch`;if(e&&St)return`ide-onboarding`;if(process.env.USER_TYPE===`ant`&&e&&wt)return`model-switch`;if(process.env.USER_TYPE===`ant`&&e&&Bn)return`undercover-callout`;if(e&&Et)return`remote-callout`;if(e&&At)return`lsp-recommendation`;if(e&&Pt)return`plugin-hint`;if(e&&It.visible)return`search-extra-tools-hint`;if(e&&Dt)return`desktop-upsell`}let uo=co(),fo=In&&(Zn[0]||Kn[0]||$n[0]||H.queue[0]||so);Fn.current=uo,(0,Q.useEffect)(()=>{if(!W)return;let e=uo===`tool-permission`,t=Date.now();e&&An.current===null?An.current=t:!e&&An.current!==null&&(kn.current+=t-An.current,An.current=null)},[uo,W]);let po=(0,Q.useRef)(uo);(0,Q.useLayoutEffect)(()=>{po.current===`tool-permission`!=(uo===`tool-permission`)&&Ir(),po.current=uo},[uo,Ir]);function mo(){if(uo!==`elicitation`){if(cn.current!==0&&Date.now()-cn.current<500){cn.current=0,Y(`[onCancel] suppressed: local-jsx panel just dismissed`);return}if(cn.current=0,Y(`[onCancel] focusedInputDialog=${uo} streamMode=${qt}`),PM?.pauseProactive(),_n.getSnapshot()){let{getGoal:t,pauseGoal:n}=(us(),e(Sc)),{persistCurrentGoal:r}=(pu(),e(El));t()?.status===`active`&&(n(),r())}if(un(!0),_n.forceEnd(),na.current=!1,Ei?.trim()&&K(e=>[...e,Xl({content:Ei})]),wa(),tt(null),uo===`tool-permission`)Kn[0]?.onAbort(),Jn([]);else if(uo===`prompt`){for(let e of $n)e.reject(Error(`Prompt cancelled by user`));er([]),en?.abort(`user-cancel`)}else _i.isRemoteMode?_i.cancelRequest():en?.abort(`user-cancel`);tn(null),ka(gr.current,!0)}}let ho=(0,Q.useCallback)(()=>{let e=ga(Xr,0);e&&(ti(e.text),ri(`prompt`),e.images.length>0&&yi(t=>{let n={...t};for(let t of e.images)n[t.id]=t;return n}))},[ti,ri,Xr,yi]),_o={setToolUseConfirmQueue:Jn,onCancel:mo,onAgentsKilled:()=>K(e=>[...e,Gu()]),isMessageSelectorVisible:Ui||!!la,screen:Pe,abortSignal:en?.signal,popCommandFromQueue:ho,vimMode:sa,isLocalJSXCommand:Hn?.isLocalJSXCommand,isSearchingHistory:da,isHelpOpen:ma,inputMode:ni,inputValue:Xr,streamMode:qt};(0,Q.useEffect)(()=>{lt()>=5&&!Ji&&!aa&&(Z(`tengu_cost_threshold_reached`,{}),oa(!0),mm()&&Yi(!0))},[G,Ji,aa]);let vo=(0,Q.useCallback)(async e=>new Promise(t=>{let n=!1;function r(e){n||(n=!0,t(e))}Qn(t=>[...t,{hostPattern:e,resolvePromise:r}]);{let t=be.getState().replBridgePermissionCallbacks;if(t){let n=Ov();t.sendRequest(n,ag,{host:e.host},Ov(),`Allow network connection to ${e.host}?`);let r=t.onResponse(n,t=>{r();let n=t.behavior===`allow`;Qn(t=>(t.filter(t=>t.hostPattern.host===e.host).forEach(e=>e.resolvePromise(n)),t.filter(t=>t.hostPattern.host!==e.host)));let i=tr.current.get(e.host);if(i){for(let e of i)e();tr.current.delete(e.host)}}),i=()=>{r(),t.cancelRequest(n)},a=tr.current.get(e.host)??[];a.push(i),tr.current.set(e.host,a)}}}),[U,be]);(0,Q.useEffect)(()=>{let e=yd.getSandboxUnavailableReason();if(e){if(yd.isSandboxRequired()){process.stderr.write(`\nError: sandbox required but unavailable: ${e}\n sandbox.failIfUnavailable is set — refusing to start without a working sandbox.\n\n`),yu(1,`other`);return}Y(`sandbox disabled: ${e}`,{level:`warn`}),Ze({key:`sandbox-unavailable`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(T,{color:`warning`,children:`sandbox disabled`}),(0,$.jsx)(T,{dimColor:!0,children:` · /sandbox`})]}),priority:`medium`})}},[Ze]),yd.isSandboxingEnabled()&&yd.initialize(vo).catch(e=>{process.stderr.write(`\n❌ Sandbox Error: ${Jd(e)}\n`),yu(1,`other`)});let yo=(0,Q.useCallback)((e,t)=>{U(n=>({...n,toolPermissionContext:{...e,mode:t?.preserveMode?n.toolPermissionContext.mode:e.mode}})),setImmediate(e=>{e(e=>(e.forEach(e=>{e.recheckPermission()}),e))},Jn)},[U,Jn]),bo=HO(Jn,yo),xo=(0,Q.useCallback)((e,t,r,i)=>{let a=be.getState(),o=()=>{let e=be.getState(),t=Yr(e.toolPermissionContext,e.mcp.tools),n=lg(Rt,t,e.toolPermissionContext.mode);return F?jt(F,n,!1,!0).resolvedTools:n};return{abortController:r,options:{commands:Kt,tools:o(),debug:n,verbose:a.verbose,mainLoopModel:i,thinkingConfig:a.thinkingEnabled===!1?{type:`disabled`}:ee,mcpClients:XO(d,a.mcp.clients),mcpResources:a.mcp.resources,ideInstallationStatus:yt,isNonInteractiveSession:!1,dynamicMcpConfig:ke,theme:ba,agentDefinitions:Ht?{...a.agentDefinitions,allowedAgentTypes:Ht}:a.agentDefinitions,customSystemPrompt:h,appendSystemPrompt:g,refreshTools:o},getAppState:()=>be.getState(),setAppState:U,messages:e,setMessages:K,updateFileHistoryState(e){U(t=>{let n=e(t.fileHistory);return n===t.fileHistory?t:{...t,fileHistory:n}})},updateAttributionState(e){U(t=>{let n=e(t.attribution);return n===t.attribution?t:{...t,attribution:n}})},openMessageSelector:()=>{x||Wi(!0)},onChangeAPIKey:Za,readFileState:Ga.current,setToolJSX:Gn,addNotification:Ze,appendSystemMessage:e=>K(t=>[...t,e]),sendOSNotification:e=>{Gv(e,xe)},onChangeDynamicMcpConfig:je,onInstallIDEExtension:_t,nestedMemoryAttachmentTriggers:new Set,loadedNestedMemoryPaths:Ya.current,dynamicSkillDirTriggers:new Set,discoveredSkillNames:Ja.current,setResponseLength:Ti,pushApiMetricsEntry:process.env.USER_TYPE===`ant`?e=>{let t=Date.now(),n=Si.current;wi.current.push({ttftMs:e,firstTokenTime:t,lastTokenTime:t,responseLengthBaseline:n,endResponseLength:n})}:void 0,setStreamMode:Jt,onCompactProgress:e=>{switch(e.type){case`hooks_start`:Ri(`claudeBlue_FOR_SYSTEM_SPINNER`),Hi(`claudeBlueShimmer_FOR_SYSTEM_SPINNER`),Pi(e.hookType===`pre_compact`?`Running PreCompact hooks…`:e.hookType===`post_compact`?`Running PostCompact hooks…`:`Running SessionStart hooks…`);break;case`compact_start`:Pi(`Compacting conversation`);break;case`compact_end`:Pi(null),Ri(null),Hi(null);break}},setInProgressToolUseIDs:li,setHasInterruptibleToolInProgress:e=>{ui.current=e},resume:Ua,setConversationId:Qi,requestPrompt:void 0,contentReplacementState:ia.current}},[Kt,Rt,F,n,d,yt,ke,ba,Ht,be,U,Za,Ze,K,je,Ua,(0,Q.useCallback)((e,t)=>n=>new Promise((r,i)=>{er(a=>[...a,{request:n,title:e,toolInputSummary:t,resolve:r,reject:i}])}),[]),x,h,g,Qi]),{handleBackgroundSession:Co}=dk({setMessages:K,setIsLoading:Pn,resetLoadingState:wa,setAbortController:tn,onBackgroundQuery:(0,Q.useCallback)(()=>{en?.abort(`background`);let e=Ad(e=>e.mode===`task-notification`);(async()=>{let t=xo(gr.current,[],new AbortController,Se),[n,r,i]=await Promise.all([dl(t.options.tools,Se,Array.from(I.additionalWorkingDirectories.keys()),t.options.mcpClients),pi(),Vc()]),a=Mo({mainThreadAgentDefinition:F,toolUseContext:t,customSystemPrompt:h,defaultSystemPrompt:n,appendSystemPrompt:g});t.renderedSystemPrompt=a;let o=(await Li(e).catch(()=>[])).map(xn),s=new Set;for(let e of gr.current)e.type===`attachment`&&e.attachment.type===`queued_command`&&e.attachment.commandMode===`task-notification`&&typeof e.attachment.prompt==`string`&&s.add(e.attachment.prompt);let c=o.filter(e=>e.attachment.type===`queued_command`&&(typeof e.attachment.prompt!=`string`||!s.has(e.attachment.prompt)));Vi({messages:[...gr.current,...c],queryParams:{systemPrompt:a,userContext:r,systemContext:i,canUseTool:bo,toolUseContext:t,querySource:jn()},description:lr,setAppState:U,agentDefinition:F})})()},[en,Se,I,F,xo,h,g,bo,U])}),wo=(0,Q.useCallback)(t=>{br(t,t=>{if(Gt(t)?(oo()?K(e=>{let n=Mt(e,{includeSnipped:!0});return[...n.length>500?n.slice(-500):n,t]}):K(()=>[t]),Qi(Ov()),PM?.setContextBlocked(!1)):t.type===`progress`&&ta(t.data?.type)?K(e=>{let n=t.data;for(let r=e.length-1;r>=0;r--){let i=e[r];if(i.type!==`progress`)break;let a=i.data;if(i.parentToolUseID===t.parentToolUseID&&a?.type===n.type){let n=e.slice();return n[r]=t,n}}return[...e,t]}):K(e=>[...e,t]),t.type===`assistant`&&`isApiErrorMessage`in t&&t.isApiErrorMessage?PM?.setContextBlocked(!0):t.type===`assistant`&&PM?.setContextBlocked(!1),t.type===`assistant`&&`isApiErrorMessage`in t&&t.isApiErrorMessage){let n=(zi(t.message?.content??``)??``).toLowerCase();if(n.includes(`connection error`)||n.includes(`fetch failed`)||n.includes(`network error`)||n.includes(`enotfound`)||n.includes(`econnreset`)||n.includes(`etimedout`)){let{getGoal:t,pauseGoal:n}=(us(),e(Sc)),{persistCurrentGoal:r}=(pu(),e(El));t()?.status===`active`&&(n(),r(),Ze({key:`goal-auto-paused-connectivity-error`,text:`Detected connection error. Active goal was auto-paused. Run /goal resume after network recovers.`,priority:`immediate`}))}}},e=>{Ti(t=>t+e.length)},Jt,Zt,e=>{K(t=>t.filter(t=>t!==e)),cl(e.uuid)},$t,e=>{let t=Date.now(),n=Si.current;wi.current.push({...e,firstTokenTime:t,lastTokenTime:t,responseLengthBaseline:n,endResponseLength:n})},ki)},[K,Ti,Jt,Zt,$t,ki]),To=(0,Q.useCallback)(async(e,t,n,r,i,a)=>{if(r){let e=XO(d,be.getState().mcp.clients);Ut.handleQueryStart(e);let t=Ma(e);t&&Cd(t)}if(Mh(),!M&&!nr&&!sr&&!or.current){let e=t.find(e=>e.type===`user`&&!e.isMeta),n=e?.type===`user`?zi(e.message.content):null;n&&!n.startsWith(`<local-command-stdout>`)&&!n.startsWith(`<command-message>`)&&!n.startsWith(`<command-name>`)&&!n.startsWith(`<bash-input>`)&&(or.current=!0,Gh(n,new AbortController().signal).then(e=>{e?ar(e):or.current=!1},()=>{or.current=!1}))}if(be.setState(e=>{let t=e.toolPermissionContext.alwaysAllowRules.command;return t===i||t?.length===i.length&&t.every((e,t)=>e===i[t])?e:{...e,toolPermissionContext:{...e.toolPermissionContext,alwaysAllowRules:{...e.toolPermissionContext.alwaysAllowRules,command:i}}}}),!r){t.some(Gt)&&(Qi(Ov()),PM?.setContextBlocked(!1)),wa(),tn(null);return}let o=xo(e,t,n,a),{tools:s,mcpClients:c}=o.options;fl(`query_context_loading_start`);let[,,l,u,f]=await Promise.all([void 0,qk(I,U,be.getState().fastMode),dl(s,a,Array.from(I.additionalWorkingDirectories.keys()),c),pi(),Vc()]),p={...u,...PM?.isProactiveActive()&&!ya.current?{terminalFocus:`The terminal is unfocused — the user is not actively watching.`}:{}};fl(`query_context_loading_end`);let m=Mo({mainThreadAgentDefinition:F,toolUseContext:o,customSystemPrompt:h,defaultSystemPrompt:l,appendSystemPrompt:g});o.renderedSystemPrompt=m,fl(`query_query_start`),ot(),ft(),it();for await(let t of Zi({messages:e,systemPrompt:m,userContext:p,systemContext:f,canUseTool:bo,toolUseContext:o,querySource:jn()}))wo(t);if(fl(`query_end`),process.env.USER_TYPE===`ant`&&wi.current.length>0){let e=wi.current,t=e.map(e=>e.ttftMs),n=e.map(e=>{let t=Math.round((e.endResponseLength-e.responseLengthBaseline)/4),n=e.lastTokenTime-e.firstTokenTime;return n>0?Math.round(t/(n/1e3)):0}),r=e.length>1,i=Ye(),a=Me(),o=Xe(),s=qe(),c=xt(),l=Ue(),u=Date.now()-On.current;K(e=>[...e,Ks({ttftMs:r?JM(t):t[0],otps:r?JM(n):n[0],isP50:r,hookDurationMs:i>0?i:void 0,hookCount:a>0?a:void 0,turnDurationMs:u>0?u:void 0,toolDurationMs:o>0?o:void 0,toolCount:s>0?s:void 0,classifierDurationMs:c>0?c:void 0,classifierCount:l>0?l:void 0,configWriteCount:zf()})])}wa(),zs(),await v?.(gr.current)},[d,wa,xo,I,U,h,v,g,bo,F,wo,nr,M]),Eo=(0,Q.useCallback)(async(e,t,n,r,i,a,o)=>{let s=_n.tryStart();if(s===null)return Z(`tengu_concurrent_onquery_detected`,{}),e.filter(e=>e.type===`user`&&!e.isMeta).map(e=>zi(e.message.content)).filter(e=>e!==null).forEach((e,t)=>{pn({value:e,mode:`prompt`}),t===0&&Z(`tengu_concurrent_onquery_enqueued`,{})}),!1;try{es.current=!1,un(!1),Mn(),K(t=>[...t,...e]),Si.current=0,tt((o?Nr(o):null)??Ne()),wi.current=[],Zt([]),Di(null);let s=gr.current;if(o&&await Oa(o,s,e.length),a&&o&&!await a(o,s))return!0;try{await To(s,e,t,n,r,i)}catch(e){throw e}}finally{if(_n.end(s)){un(t.signal.aborted),Mi(Date.now()),na.current=!1,wa(),await ka(gr.current,t.signal.aborted),dn.current(),process.env.USER_TYPE===`ant`&&!t.signal.aborted&&U(e=>e.tungstenActiveSession===void 0||e.tungstenPanelAutoHidden===!0?e:{...e,tungstenPanelAutoHidden:!0});let e;Ne()!==null&&Ne()>0&&!t.signal.aborted&&(e={tokens:Le(),limit:Ne(),nudges:nt()}),tt(null);let n=Date.now()-On.current-kn.current;(n>3e4||e!==void 0)&&!t.signal.aborted&&!Te&&K(t=>[...t,Ds(n,e,jf(t,Sr))]),tn(null)}if(t.signal.reason===`user-cancel`&&!_n.isActive&&$r.current===``&&Ot()===0&&!be.getState().viewingAgentTaskId){let e=gr.current,t=e.findLast(dg);t&&pg(e,e.lastIndexOf(t))&&(Ul(),fn.current(t))}}return!0},[To,U,wa,_n,Oa,ka]),Do=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{let e=ce;if(!e||W||Do.current)return;Do.current=!0;async function t(e){if(e.clearContext){let t=e.message.planContent?Vu():void 0,{clearConversation:n}=await import(`./conversation-CH9ouFai.js`);await n({setMessages:K,readFileState:Ga.current,discoveredSkillNames:Ja.current,loadedNestedMemoryPaths:Ya.current,getAppState:()=>be.getState(),setAppState:U,setConversationId:Qi}),or.current=!1,ar(void 0),Ka.current.clear(),qa.current=0,t&&Kl(st(),t)}U(t=>{let n=e.mode?sn(t.toolPermissionContext,Vx(e.mode,e.allowedPrompts)):t.toolPermissionContext;return e.mode===`auto`&&(n=Ci({...n,mode:`auto`,prePlanMode:void 0})),{...t,initialMessage:null,toolPermissionContext:n}}),xd()&&Aa(e=>{U(t=>({...t,fileHistory:e(t.fileHistory)}))},e.message.uuid),await Ur();let t=e.message.message.content;if(typeof t==`string`&&!e.message.planContent)Oo(t,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}});else{let t=No();tn(t),Eo([e.message],t,!0,[],Se)}setTimeout(e=>{e.current=!1},100,Do)}t(e)},[ce,W,K,U,Eo,Se,Vt]);let Oo=(0,Q.useCallback)(async(e,t,n,r)=>{if(Ir(),PM?.resumeProactive(),ts(e)){let n=Pa({content:e});K(e=>[...e,n]),r?.fromKeybinding||Oc({display:bd(e,ni),pastedContents:vi}),ti(``),t.setCursorOffset(0),t.clearBuffer(),yi({}),ri(`prompt`),pt(void 0);return}if(!n&&e.trim().startsWith(`/`)){let n=hs(e,vi).trim(),i=n.indexOf(` `),a=i===-1?n.slice(1):n.slice(1,i),o=i===-1?``:n.slice(i+1).trim(),s=Kt.find(e=>Bu(e)&&(e.name===a||e.aliases?.includes(a)||Ns(e)===a));s?.name===`clear`&&_r.current&&(Z(`tengu_idle_return_action`,{action:`hint_converted`,variant:_r.current,idleMinutes:Math.round((Date.now()-ra.current)/6e4),messageCount:gr.current.length,totalInputTokens:ct()}),_r.current=!1);let c=_n.isActive&&(s?.immediate||r?.fromKeybinding);if(s&&c&&s.type===`local-jsx`){e.trim()===$r.current.trim()&&(ti(``),t.setCursorOffset(0),t.clearBuffer(),yi({}));let n=nc(e).filter(e=>vi[e.id]?.type===`text`),i=n.length;Z(`tengu_paste_text`,{pastedTextCount:i,pastedTextBytes:n.reduce((e,t)=>e+(vi[t.id]?.content.length??0),0)}),Z(`tengu_immediate_command_executed`,{commandName:s.name,fromKeybinding:r?.fromKeybinding??!1}),(async()=>{let e=!1,n=(n,r)=>{e=!0,Gn({jsx:null,shouldHidePromptInput:!1,clearLocalJSX:!0});let i=[];if(n&&r?.display!==`skip`&&(Ze({key:`immediate-${s.name}`,text:n,priority:`immediate`}),!oo())){let e=r?.displayArgs??o;i.push(xc(wn(Ns(s),e)),xc(`<${Zf}>${Lt(n)}</${Zf}>`))}r?.metaMessages?.length&&i.push(...r.metaMessages.map(e=>Pa({content:e,isMeta:!0}))),i.length&&K(e=>[...e,...i]),ai!==void 0&&(ti(ai.text),t.setCursorOffset(ai.cursorOffset),yi(ai.pastedContents),oi(void 0))},r=xo(gr.current,[],No(),Se),i=await(await s.load()).call(n,r,o);i&&!e&&Gn({jsx:i,shouldHidePromptInput:!1,isLocalJSXCommand:!0})})();return}}if(_i.isRemoteMode&&!e.trim())return;Number(process.env.CLAUDE_CODE_IDLE_THRESHOLD_MINUTES??75),Number(process.env.CLAUDE_CODE_IDLE_TOKEN_THRESHOLD??1e5),r?.fromKeybinding||(Oc({display:n?e:bd(e,ni),pastedContents:n?{}:vi}),ni===`bash`&&ow(e.trim()));let i=!n&&e.trim().startsWith(`/`),a=!W||n||_i.isRemoteMode;if(ai!==void 0&&!i&&a?(ti(ai.text),t.setCursorOffset(ai.cursorOffset),yi(ai.pastedContents),oi(void 0)):a&&(r?.fromKeybinding||(ti(``),t.setCursorOffset(0)),yi({})),a&&(ri(`prompt`),pt(void 0),xi(e=>e+1),t.clearBuffer(),Sa.current=!1,!i&&ni===`prompt`&&!n&&!_i.isRemoteMode&&(yr(e),Mn()),U(e=>({...e,attribution:yh(e.attribution,e=>{Xs(e).catch(e=>{Y(`Attribution: Failed to save snapshot: ${e}`)})})}))),n){let{queryRequired:t}=await zr(n.state,n.speculationSessionTimeSavedMs,n.setAppState,e,{setMessages:K,readFileState:Ga,cwd:ut()});if(t){let e=No();tn(e),Eo([],e,!0,[],Se)}return}if(_i.isRemoteMode&&!(i&&Kt.find(t=>{let n=e.trim().slice(1).split(/\s/)[0];return Bu(t)&&(t.name===n||t.aliases?.includes(n)||Ns(t)===n)})?.type===`local-jsx`)){let t=Object.values(vi),n=t.filter(e=>e.type===`image`),r=n.length>0?n.map(e=>e.id):void 0,i=e.trim(),a=e.trim();if(t.length>0){let n=[],r=[],o=e.trim();o&&(n.push({type:`text`,text:o}),r.push({type:`text`,text:o}));for(let e of t)if(e.type===`image`){let t={type:`base64`,media_type:e.mediaType??`image/png`,data:e.content};n.push({type:`image`,source:t}),r.push({type:`image`,source:t})}else n.push({type:`text`,text:e.content}),r.push({type:`text`,text:e.content});i=n,a=r}let o=Pa({content:i,imagePasteIds:r});K(e=>[...e,o]),await _i.sendMessage(a,{uuid:o.uuid});return}await Ur(),await WO({input:e,helpers:t,queryGuard:_n,isExternalLoading:bn,mode:ni,commands:Kt,onInputChange:ti,setPastedContents:yi,setToolJSX:Gn,getToolUseContext:xo,messages:gr.current,mainLoopModel:Se,pastedContents:vi,ideSelection:at,setUserInputOnProcessing:yr,setAbortController:tn,abortController:en,onQuery:Eo,setAppState:U,querySource:jn(),onBeforeQuery:_,canUseTool:bo,addNotification:Ze,setMessages:K,streamMode:Yt.current,hasInterruptibleToolInProgress:ui.current}),(i||W)&&ai!==void 0&&(ti(ai.text),t.setCursorOffset(ai.cursorOffset),yi(ai.pastedContents),oi(void 0))},[_n,W,bn,ni,Kt,ti,ri,yi,xi,pt,Gn,xo,Se,vi,at,yr,tn,Ze,Eo,ai,oi,U,_,bo,di,K,Ur,Ir]),ko=(0,Q.useCallback)(()=>{let e=Qa?ij(Qa):`/issue`;eo(null),Oo(e,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}}).catch(t=>{Y(`Auto-run ${e} failed: ${Jd(t)}`)})},[Oo,Qa]),Ao=(0,Q.useCallback)(()=>{eo(null)},[]),jo=(0,Q.useCallback)(()=>{let e=process.env.USER_TYPE===`ant`?`/issue`:`/feedback`;Oo(e,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}}).catch(e=>{Y(`Survey feedback request failed: ${e instanceof Error?e.message:String(e)}`)})},[Oo]),Fo=(0,Q.useRef)(Oo);Fo.current=Oo;let Io=(0,Q.useCallback)(()=>{Fo.current(`/rate-limit-options`,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}})},[]),Lo=(0,Q.useCallback)(async()=>{if(ao(!0),ii()){Nv(`tmux`,[`detach-client`],{stdio:`ignore`}),ao(!1);return}if(on()!==null){ro((0,$.jsx)(x_,{showWorktree:!0,onDone:()=>{},onCancel:()=>{ro(null),ao(!1)}}));return}let e=await(await Gl.load()).call(()=>{});ro(e),e===null&&ao(!1)},[]),zo=(0,Q.useCallback)(()=>{Wi(e=>!e)},[]),Bo=(0,Q.useCallback)(e=>{let t=gr.current,n=t.lastIndexOf(e);if(n===-1)return;Z(`tengu_conversation_rewind`,{preRewindMessageCount:t.length,postRewindMessageCount:n,messagesRemoved:t.length-n,rewindToMessageIndex:n}),K(t.slice(0,n)),Qi(Ov()),kr();let r=e.permissionMode;U(e=>({...e,toolPermissionContext:r&&e.toolPermissionContext.mode!==r?{...e.toolPermissionContext,mode:r}:e.toolPermissionContext,promptSuggestion:{text:null,promptId:null,shownAt:0,acceptedAt:0,generationRequestId:null}}))},[K,U]),Vo=(0,Q.useCallback)(e=>{Bo(e);let t=fa(e);if(t&&(ti(t.text),ri(t.mode)),Array.isArray(e.message.content)&&e.message.content.some(e=>e.type===`image`)){let t=e.message.content.filter(e=>e.type===`image`);if(t.length>0){let n={};t.forEach((t,r)=>{if(t.source.type===`base64`){let i=e.imagePasteIds?.[r]??r+1;n[i]={id:i,type:`image`,content:t.source.data,mediaType:t.source.media_type}}}),yi(n)}}},[Bo,ti]);fn.current=Vo;let Uo=(0,Q.useCallback)(async e=>{setImmediate((e,t)=>e(t),Vo,e)},[Vo]),Wo=e=>{let t=e.slice(0,24);return G.findIndex(e=>e.uuid.slice(0,24)===t)},{enter:Go,handlers:Ko}=gd(Ar,jr,Mr,{copy:e=>void ie(e).then(e=>{e&&process.stdout.write(e),Ze({key:`selection-copied`,text:`copied`,color:`success`,priority:`immediate`,timeoutMs:2e3})}),edit:async e=>{let t=Wo(e.uuid),n=t>=0?G[t]:void 0;if(!n||!dg(n))return;let r=!await md(se,n.uuid),i=pg(G,t);r&&i?(mo(),Uo(n)):(Ki(n),Wi(!0))}});async function Yo(){Za();let e=await kd();if(e.length>0){let t=e.map(e=>` [${e.type}] ${e.path} (${e.content.length} chars)${e.parent?` (included by ${e.parent})`:``}`).join(`
137
+ </goal-steering>`}var yM=t((()=>{})),bM=r({useGoalContinuation:()=>SM});function xM(e){Y(`[goal] hook: ${e}`)}function SM(e){let t=(0,CM.useRef)(e);t.current=e;let n=(0,CM.useRef)(!1),r=(0,CM.useRef)(!1);(0,CM.useLayoutEffect)(()=>{if(e.isLoading){n.current=!1;return}if(e.isQueryActiveNow?.()){xM(`skip: queryActiveNow=true`);return}if(e.wasAborted){xM(`skip: wasAborted=true`);return}if(n.current)return;if(Hc().length>0){xM(`skip: yielding to queued user messages`);return}if(e.hasActiveLocalJsxUI){xM(`skip: activeLocalJsxUI`);return}if(e.isInPlanMode){xM(`skip: planMode`);return}let t=bl();if(!t){r.current=!1;return}if(t.status===`active`&&(r.current=!1),t.status===`budget_limited`&&!r.current){r.current=!0,n.current=!0;let e=vM(t);Y(`[goal] hook: budget limit reached, injecting wrap-up prompt`),pn({value:e,mode:`prompt`,priority:`now`,isMeta:!0,origin:`goal-budget-limit`,skipSlashCommands:!0});return}if(t.status!==`active`){xM(`skip: status="${t.status}" (not active)`);return}if(t.turnsExecuted>=150){Qu()&&(jc(),e.onMaxTurnsReached?.()),Y(`[goal] hook: MAX_GOAL_TURNS (150) reached, stopping`);return}n.current=!0;let i=hc();jc();let a=_M(t);Y(`[goal] hook: enqueuing turn ${i} for "${t.objective.slice(0,60)}"`),pn({value:a,mode:`prompt`,priority:`now`,isMeta:!0,origin:`goal-continuation`,skipSlashCommands:!0}),e.onContinuationEnqueued?.({turn:i,objective:t.objective})},[e.isLoading,e.wasAborted,e.queuedCommandsLength,e.hasActiveLocalJsxUI,e.isInPlanMode])}var CM,wM=t((()=>{CM=n(z(),1),tf(),us(),yM(),Ki()})),TM=r({AntModelSwitchCallout:()=>EM,shouldShowModelSwitchCallout:()=>DM});function EM(e){return null}function DM(){return!1}t((()=>{}));var OM=r({UndercoverAutoCallout:()=>kM});function kM({onDone:e}){return(0,AM.useEffect)(()=>{e()},[e]),null}var AM,jM=t((()=>{AM=n(z(),1)}));at(),cu(),wf(),u(),B(),ms(),Rg(),Rt(),tf(),s(),Ep(),xu(),Ft(),la(),hg(),zl(),zu(),Xu(),cn(),fn(),cf(),np(),Wd(),kn(),Xt(),_c(),Rf(),vm(),bp(),zd(),Kh(),ep(),As(),ku(),W_(),eg(),iu(),wd(),Gg(),q(),rc(),Jc(),Va(),mn(),Dn(),Ki(),nu(),nr(),Oa(),wl(),dr();var MM=process.env.USER_TYPE===`ant`?(cM(),e(iM)).useFrustrationDetection:()=>({state:`closed`,handleTranscriptSelect:()=>{}}),NM=process.env.USER_TYPE===`ant`?e(lM).useAntOrgWarningNotification:()=>{},PM=(dh(),e(eh)),FM=e=>()=>{},IM=()=>!1,LM=()=>null,RM=(e,t)=>!1,zM=(hM(),e(dM)).useProactive,BM=(wM(),e(bM)).useGoalContinuation,VM=()=>({relayPipeMessage:()=>!1,pipeReturnHadErrorRef:{current:!1}}),HM=()=>({routeToSelectedPipes:()=>!1}),UM=process.env.USER_TYPE===`ant`?e(TM).AntModelSwitchCallout:null,WM=process.env.USER_TYPE===`ant`?e(TM).shouldShowModelSwitchCallout:()=>!1,GM=process.env.USER_TYPE===`ant`?(jM(),e(OM)).UndercoverAutoCallout:null,KM=[],qM=3e3;function JM(e){let t=[...e].sort((e,t)=>e-t),n=Math.floor(t.length/2);return t.length%2==0?Math.round((t[n-1]+t[n])/2):t[n]}function YM({showAllInTranscript:e,virtualScroll:t,searchBadge:n,suppressShowAll:r=!1,status:i}){let a=ud(`app:toggleTranscript`,`Global`,`ctrl+o`),o=ud(`transcript:toggleShowAll`,`Transcript`,`ctrl+e`);return(0,$.jsxs)(b,{noSelect:!0,alignItems:`center`,alignSelf:`center`,borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:`single`,marginTop:1,paddingLeft:2,width:`100%`,children:[(0,$.jsxs)(T,{dimColor:!0,children:[`Showing detailed transcript · `,a,` to toggle`,n?` · n/N to navigate`:t?` · ${d.arrowUp}${d.arrowDown} scroll · home/end top/bottom`:r?``:` · ${o} to ${e?`collapse`:`show all`}`]}),i?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(b,{flexGrow:1}),(0,$.jsxs)(T,{children:[i,` `]})]}):n?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(b,{flexGrow:1}),(0,$.jsxs)(T,{dimColor:!0,children:[n.current,`/`,n.count,` `]})]}):null]})}function XM({jumpRef:e,count:t,current:n,onClose:r,onCancel:i,setHighlight:a,initialQuery:o}){let{query:s,cursorOffset:c}=f_({isActive:!0,initialQuery:o,onExit:()=>r(s),onCancel:i}),[l,u]=Q.useState(`building`);Q.useEffect(()=>{let t=!0,n,r=e.current?.warmSearchIndex;if(!r){u(null);return}return u(`building`),r().then(e=>{t&&(e<20?u(null):(u({ms:e}),n=setTimeout(()=>t&&u(null),2e3)))}),()=>{t=!1,n&&clearTimeout(n)}},[e]);let d=l!==`building`;(0,Q.useEffect)(()=>{d&&(e.current?.setSearchQuery(s),a(s))},[e,s,a,d]);let f=c,p=f<s.length?s[f]:` `;return(0,$.jsxs)(b,{borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:`single`,marginTop:1,paddingLeft:2,width:`100%`,noSelect:!0,children:[(0,$.jsx)(T,{children:`/`}),(0,$.jsx)(T,{children:s.slice(0,f)}),(0,$.jsx)(T,{inverse:!0,children:p}),f<s.length&&(0,$.jsx)(T,{children:s.slice(f+1)}),(0,$.jsx)(b,{flexGrow:1}),l===`building`?(0,$.jsx)(T,{dimColor:!0,children:`indexing… `}):l?(0,$.jsxs)(T,{dimColor:!0,children:[`indexed in `,l.ms,`ms `]}):t===0&&s?(0,$.jsx)(T,{color:`error`,children:`no matches `}):t>0?(0,$.jsxs)(T,{dimColor:!0,children:[n,`/`,t,` `]}):null]})}var ZM=[`⠂`,`⠐`],QM=`✳`,$M=960;function eN({isAnimating:e,title:t,disabled:n,noPrefix:r}){let i=j(),[a,o]=(0,Q.useState)(0);(0,Q.useEffect)(()=>{if(n||r||!e||!i)return;let t=setInterval(e=>e(e=>(e+1)%ZM.length),$M,o);return()=>clearInterval(t)},[n,r,e,i]);let s=e?ZM[a]??QM:QM;return te(n?null:r?t:`${s} ${t}`),null}var tN=`<${tp}>`;function nN(e){return e.type===`text`&&typeof e.text==`string`&&e.text.includes(tN)}function rN({commands:t,debug:n,initialTools:r,initialMessages:i,pendingHookMessages:o,initialFileHistorySnapshots:s,initialContentReplacements:c,initialAgentName:l,initialAgentColor:u,mcpClients:d,dynamicMcpConfig:f,autoConnectIdeFlag:p,strictMcpConfig:m=!1,systemPrompt:h,appendSystemPrompt:g,onBeforeQuery:_,onTurnComplete:v,disabled:x=!1,mainThreadAgentDefinition:S,disableSlashCommands:C=!1,taskListId:w,remoteSessionConfig:D,directConnectConfig:O,sshSession:k,thinkingConfig:ee}){let A=!!D,M=(0,Q.useMemo)(()=>a(process.env.CLAUDE_CODE_DISABLE_TERMINAL_TITLE),[]),te=(0,Q.useMemo)(()=>process.env.USER_TYPE===`ant`&&a(process.env.CLAUDE_MORERIGHT),[]),N=(0,Q.useMemo)(()=>a(process.env.CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL),[]);(0,Q.useMemo)(()=>a(process.env.CLAUDE_CODE_DISABLE_MESSAGE_ACTIONS),[]),(0,Q.useEffect)(()=>(Y(`[REPL:mount] REPL mounted, disabled=${x}`),()=>Y(`[REPL:unmount] REPL unmounting`)),[x]);let[F,re]=(0,Q.useState)(S),I=J(e=>e.toolPermissionContext),L=J(e=>e.verbose),R=J(e=>e.mcp),z=J(e=>e.plugins),ae=J(e=>e.agentDefinitions),se=J(e=>e.fileHistory),ce=J(e=>e.initialMessage),le=nC(),ue=J(e=>e.spinnerTip),pe=J(e=>e.expandedView)===`tasks`,B=J(e=>e.tasks),H=J(e=>e.elicitation),me=J(e=>e.ultraplanPendingChoice),he=J(e=>e.ultraplanLaunchPending),ge=J(e=>e.viewingAgentTaskId),U=Vr(),ve=ge?B[ge]:void 0,ye=Yc(ve)&&ve.retain&&!ve.diskLoaded;(0,Q.useEffect)(()=>{if(!ge||!ye)return;let e=ge;Ku(Qr(e)).then(t=>{U(n=>{let r=n.tasks[e];if(!Yc(r)||r.diskLoaded||!r.retain)return n;let i=r.messages??[],a=new Set(i.map(e=>e.uuid)),o=t?t.messages.filter(e=>!a.has(e.uuid)):[];return{...n,tasks:{...n.tasks,[e]:{...r,messages:[...o,...i],diskLoaded:!0}}}})})},[ge,ye,U]);let be=qn(),xe=E(),Se=Wg(),[Ce,we]=(0,Q.useState)(t);$O(A?void 0:dt(),we);let Te=Q.useSyncExternalStore(PM?.subscribeToProactiveChanges??FM,PM?.isProactiveActive??IM),Ee=Q.useSyncExternalStore(PM?.subscribeToProactiveChanges??FM,PM?.getNextTickAt??LM),De=J(e=>e.isBriefOnly),Oe=(0,Q.useMemo)(()=>Jo(I),[I,Te,De]);Yk();let[ke,Ae]=(0,Q.useState)(f),je=(0,Q.useCallback)(e=>{Ae(e)},[Ae]),[Pe,Fe]=(0,Q.useState)(`prompt`),[Ie,Re]=(0,Q.useState)(!1),[Be,Ve]=(0,Q.useState)(!1),[He,We]=(0,Q.useState)(``),Ge=(0,Q.useRef)(0),Ke=(0,Q.useRef)(void 0),Je=(0,Q.useRef)(!1),{addNotification:Ze,removeNotification:Qe}=lo(),$e=RM,et=ZO(d,R.clients),[at,pt]=(0,Q.useState)(void 0),[mt,_t]=(0,Q.useState)(null),[yt,bt]=(0,Q.useState)(null),[St,Ct]=(0,Q.useState)(!1),[wt,Tt]=(0,Q.useState)(()=>process.env.USER_TYPE===`ant`&&WM()),Et=J(e=>e.showRemoteCallout),[Dt,kt]=(0,Q.useState)(()=>uv());GA(),JA(),UA({ideSelection:at,mcpClients:et,ideInstallationStatus:yt}),tA({mcpClients:et}),jA(),MA(),g_(),RA(Se),ej(),zA(Se),VA(),NM(),Fk(),Hk(),iA();let{recommendation:At,handleResponse:Nt}=bA(),{recommendation:Pt,handleResponse:Ft}=CA(),It=AA(),Rt=(0,Q.useMemo)(()=>[...Oe,...r],[Oe,r]);ng({enabled:!A});let zt=qo();(0,Q.useEffect)(()=>{A||FA(U)},[U,A]);let Bt=Ig(Rt,R.tools,I),{tools:Vt,allowedAgentTypes:Ht}=(0,Q.useMemo)(()=>{if(!F)return{tools:Bt,allowedAgentTypes:void 0};let e=jt(F,Bt,!1,!0);return{tools:e.resolvedTools,allowedAgentTypes:e.allowedAgentTypes}},[F,Bt]),Wt=QO(QO(Ce,z.commands),R.commands),Kt=(0,Q.useMemo)(()=>C?[]:Wt,[C,Wt]);Ay(A?KM:R.clients),tk(A?KM:R.clients,pt);let[qt,Jt]=(0,Q.useState)(`responding`),Yt=(0,Q.useRef)(qt);Yt.current=qt;let[Xt,Zt]=(0,Q.useState)([]),[Qt,$t]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{if(Qt&&!Qt.isStreaming&&Qt.streamingEndedAt){let e=3e4-(Date.now()-Qt.streamingEndedAt);if(e>0){let t=setTimeout($t,e,null);return()=>clearTimeout(t)}else $t(null)}},[Qt]);let[en,tn]=(0,Q.useState)(null),an=(0,Q.useRef)(null);an.current=en;let cn=(0,Q.useRef)(0),[ln,un]=(0,Q.useState)(!1),dn=(0,Q.useRef)(()=>{}),fn=(0,Q.useRef)(()=>{}),mn=(0,Q.useRef)(null),hn=(0,Q.useRef)(null),gn=(0,Q.useRef)(0),_n=Q.useRef(new uy).current,vn=Q.useSyncExternalStore(_n.subscribe,_n.getSnapshot),[bn,Sn]=Q.useState(D?.hasInitialPrompt??!1),W=vn||bn,[Cn,Tn]=Q.useState(void 0),En=Q.useRef(0),Dn=Q.useRef(!1),On=Q.useRef(0),kn=Q.useRef(0),An=Q.useRef(null),Mn=Q.useCallback(()=>{On.current=Date.now(),kn.current=0,An.current=null},[]),Nn=Q.useRef(!1);vn&&!Nn.current&&Mn(),Nn.current=vn;let Pn=Q.useCallback(e=>{Sn(e),e&&Mn()},[Mn]),Fn=Q.useRef(void 0),[In,Ln]=Q.useState(!1),[Rn,zn]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{Rn?.notifications&&Rn.notifications.forEach(e=>{Ze({key:`auto-updater-notification`,text:e,priority:`low`})})},[Rn,Ze]),(0,Q.useEffect)(()=>{oo()&&rr().then(e=>{e&&Ze({key:`tmux-mouse-hint`,text:e,priority:`low`})})},[]);let[Bn,Vn]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{process.env.USER_TYPE===`ant`&&(async()=>{let{isInternalModelRepo:e}=await import(`./commitAttribution-CgohL8vD.js`);await e();let{shouldShowUndercoverAutoNotice:t}=await import(`./undercover-XYapZ_SS.js`);t()&&Vn(!0)})()},[]);let[Hn,Un]=(0,Q.useState)(null),Wn=(0,Q.useRef)(null),Gn=(0,Q.useCallback)(e=>{if(e?.isLocalJSXCommand){let{clearLocalJSX:t,...n}=e;Wn.current={...n,isLocalJSXCommand:!0},Un(n);return}if(Wn.current){if(e?.clearLocalJSX){Wn.current=null,Un(null),cn.current=Date.now();return}return}if(e?.clearLocalJSX){Un(null);return}Un(e)},[]),[Kn,Jn]=(0,Q.useState)([]),[Yn,Xn]=(0,Q.useState)(null),[Zn,Qn]=(0,Q.useState)([]),[$n,er]=(0,Q.useState)([]),tr=(0,Q.useRef)(new Map),nr=J(e=>e.settings.terminalTitleFromRename)===!1?void 0:xl(st()),[ir,ar]=(0,Q.useState)(),or=(0,Q.useRef)((i?.length??0)>0),sr=F?.agentType,lr=nr??sr??ir??`Work Mate`,ur=Kn.length>0||$n.length>0,dr=Hn?.isLocalJSXCommand===!0&&Hn?.jsx!=null,fr=W&&!ur&&!dr;(0,Q.useEffect)(()=>{if(W&&!ur&&!dr)return ry(),()=>iy()},[W,ur,dr]);let pr=ur||dr?`waiting`:W?`busy`:`idle`,mr=pr===`waiting`?Kn.length>0?`approve ${Kn[0].tool.name}`:dr?`dialog open`:`input needed`:void 0;(0,Q.useEffect)(()=>{Id({status:pr,waitingFor:mr})},[pr,mr]),P(null);let[G,hr]=(0,Q.useState)(i??[]),gr=(0,Q.useRef)(G),_r=(0,Q.useRef)(!1),K=(0,Q.useCallback)(e=>{let t=gr.current,n=typeof e==`function`?e(gr.current):e;if(gr.current=n,n.length<En.current)En.current=0;else if(n.length>t.length&&Dn.current){let e=n.length-t.length;(t.length===0||n[0]===t[0]?n.slice(-e):n.slice(0,e)).some(gi)?Dn.current=!1:En.current=n.length}hr(n)},[]),yr=(0,Q.useCallback)(e=>{e===void 0?Dn.current=!1:(En.current=gr.current.length,Dn.current=!0),Tn(e)},[]),{dividerIndex:xr,dividerYRef:Cr,onScrollAway:wr,onRepin:Tr,jumpToNew:Er,shiftDivider:Or}=G_(G.length);Ik(G,K,W);let[Ar,jr]=(0,Q.useState)(null),Mr=(0,Q.useRef)(null),Fr=(0,Q.useMemo)(()=>H_(G,xr),[xr,G.length]),Ir=(0,Q.useCallback)(()=>{mn.current?.scrollToBottom(),Tr(),jr(null)},[Tr,jr]),Lr=G.at(-1),Rr=Lr!=null&&gi(Lr);(0,Q.useEffect)(()=>{Rr&&Ir()},[Rr,Lr,Ir]);let{maybeLoadOlder:Br}=sO({config:D,setMessages:K,scrollRef:mn,onPrepend:Or}),Hr=(0,Q.useCallback)((e,t)=>{gn.current=Date.now(),e?Tr():(wr(t),Br(t))},[Tr,wr,Br,U]),Ur=CO(o,K),Wr=(0,Q.useDeferredValue)(Q.useMemo(()=>G.length>500?G.slice(-500):G,[G])),Kr=G.length-Wr.length;Kr>0&&Y(`[useDeferredValue] Messages deferred by ${Kr} (${Wr.length}→${G.length})`);let[qr,Jr]=(0,Q.useState)(null),[Xr,Zr]=(0,Q.useState)(()=>rv()),$r=(0,Q.useRef)(Xr);$r.current=Xr;let ei=(0,Q.useRef)(null),ti=(0,Q.useCallback)(e=>{$e($r.current,e)||($r.current===``&&e!==``&&Date.now()-gn.current>=qM&&Ir(),$r.current=e,Zr(e),Ln(e.trim().length>0))},[Ln,Ir,$e]);(0,Q.useEffect)(()=>{if(Xr.trim().length===0)return;let e=setTimeout(Ln,1500,!1);return()=>clearTimeout(e)},[Xr]);let[ni,ri]=(0,Q.useState)(`prompt`),[ai,oi]=(0,Q.useState)(),si=(0,Q.useCallback)(e=>{let t=new Set(e);we(e=>e.filter(e=>t.has(e.name)||xa.has(e)))},[we]),[ci,li]=(0,Q.useState)(new Set),ui=(0,Q.useRef)(!1),di=KD({config:D,setMessages:K,setIsLoading:Pn,onInit:si,setToolUseConfirmQueue:Jn,tools:Rt,setStreamingToolUses:Zt,setStreamMode:Jt,setInProgressToolUseIDs:li}),fi=YD({config:O,setMessages:K,setIsLoading:Pn,setToolUseConfirmQueue:Jn,tools:Rt}),mi=XD({session:k,setMessages:K,setIsLoading:Pn,setToolUseConfirmQueue:Jn,tools:Rt}),_i=mi.isRemoteMode?mi:fi.isRemoteMode?fi:di,[vi,yi]=(0,Q.useState)({}),[bi,xi]=(0,Q.useState)(0),Si=(0,Q.useRef)(0),wi=(0,Q.useRef)([]),Ti=(0,Q.useCallback)(e=>{let t=Si.current;if(Si.current=e(t),Si.current>t){let e=wi.current;if(e.length>0){let t=e.at(-1);t.lastTokenTime=Date.now(),t.endResponseLength=Si.current}}},[]),[Ei,Di]=(0,Q.useState)(null),Oi=!(J(e=>e.settings.prefersReducedMotion)??!1)&&!V(),ki=(0,Q.useCallback)(e=>{Oi&&Di(e)},[Oi]),Ai=Ei&&Oi&&Ei.substring(0,Ei.lastIndexOf(`
138
+ `)+1)||null,[ji,Mi]=(0,Q.useState)(0),[Ni,Pi]=(0,Q.useState)(null),[Fi,Ri]=(0,Q.useState)(null),[Bi,Hi]=(0,Q.useState)(null),[Ui,Wi]=(0,Q.useState)(!1),[Gi,Ki]=(0,Q.useState)(void 0),[Ji,Yi]=(0,Q.useState)(!1),[Xi,Qi]=(0,Q.useState)(Ov()),[$i,ea]=(0,Q.useState)(null),na=(0,Q.useRef)(!1),ra=(0,Q.useRef)(ji);ra.current=ji;let[ia]=(0,Q.useState)(()=>({current:Gr(i,c)}));pc(()=>{ia.current=$a()});let[aa,oa]=(0,Q.useState)(Lf().hasAcknowledgedCostThreshold),[sa,ca]=(0,Q.useState)(`INSERT`),[la,ua]=(0,Q.useState)(!1),[da,pa]=(0,Q.useState)(!1),[ma,_a]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{me&&la&&ua(!1)},[me,la]);let va=j(),ya=(0,Q.useRef)(va);ya.current=va;let[ba]=y(),Sa=Q.useRef(!1),Ca=(0,Q.useCallback)(()=>{if(Sa.current)return;Sa.current=!0;let e=gr.current.slice(qa.current);for(let t of Dr(e))Ka.current.add(t);qa.current=gr.current.length,Wk({theme:ba,readFileState:Ga.current,bashTools:Ka.current}).then(async e=>{if(e){let t=await e.content({theme:ba});U(e=>({...e,spinnerTip:t})),Gk(e)}else U(e=>e.spinnerTip===void 0?e:{...e,spinnerTip:void 0})})},[U,ba]),wa=(0,Q.useCallback)(()=>{Pn(!1),yr(void 0),Si.current=0,wi.current=[],Di(null),Zt([]),Pi(null),Ri(null),Hi(null),Ca(),mh(),Zl()},[Ca]),Ta=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{{if(I.mode!==`auto`){Ta.current=!1;return}if(Ta.current||(Lf().autoPermissionsNotificationCount??0)>=3)return;let e=setTimeout((e,t)=>{e.current=!0,If(e=>{let t=e.autoPermissionsNotificationCount??0;return t>=3?e:{...e,autoPermissionsNotificationCount:t+1}}),t(e=>[...e,Td(nA,`warning`)])},800,Ta,K);return()=>clearTimeout(e)}},[I.mode,K]);let Ea=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{if(Ea.current)return;let e=on();if(!e?.creationDurationMs||e.usedSparsePaths||e.creationDurationMs<15e3)return;Ea.current=!0;let t=Math.round(e.creationDurationMs/1e3);K(e=>[...e,Td(`Worktree creation took ${t}s. For large repos, set \`worktree.sparsePaths\` in .claude/settings.json to check out only the directories you need — e.g. \`{"worktree": {"sparsePaths": ["src", "packages/foo"]}}\`.`,`info`)])},[K]);let Da=(0,Q.useMemo)(()=>{let e=G.findLast(e=>e.type===`assistant`);if(e?.type!==`assistant`)return!1;let t=e.message?.content,n=(Array.isArray(t)?t:[]).filter(e=>e.type===`tool_use`&&ci.has(e.id));return n.length>0&&n.every(e=>e.type===`tool_use`&&e.name===`Sleep`)},[G,ci]),{onBeforeQuery:Oa,onTurnComplete:ka,render:ja}=bO({enabled:te,setMessages:K,inputValue:Xr,setInputValue:ti,setToolJSX:Gn}),Na=(!Hn||Hn.showSpinner===!0)&&Kn.length===0&&$n.length===0&&(W||Cn||Ot()>0)&&!Da&&(!Ai||De),Fa=Kn.length>0||$n.length>0||Zn.length>0||H.queue.length>0,Ia=vk(G,W,bi,`session`,Fa),La=yO(K),Ra=mj(G,bi),za=(0,Q.useMemo)(()=>({...Ia,handleSelect:e=>{to.current=!1;let t=Ia.handleSelect(e);e===`bad`&&!t&&rj(`feedback_survey_bad`)&&(eo(`feedback_survey_bad`),to.current=!0)}}),[Ia]),Ba=Ek(G,W,Fa,{enabled:!A}),Va=Sk(G,W,Fa,{enabled:!A}),Ha=MM(G,W,Fa,za.state!==`closed`||Ba.state!==`closed`||Va.state!==`closed`);lk({autoConnectIdeFlag:p,ideToInstallExtension:mt,setDynamicMcpConfig:Ae,setShowIdeOnboarding:Ct,setIDEInstallationState:bt}),Xk(s,se,e=>U(t=>({...t,fileHistory:e})));let Ua=(0,Q.useCallback)(async(t,n,r)=>{let i=performance.now();try{let a=So(n.messages),o=Gs();await rs(`resume`,{getAppState:()=>be.getState(),setAppState:U,signal:AbortSignal.timeout(o),timeoutMs:o});let s=await uu(`resume`,{sessionId:t,agentType:F?.agentType,model:Se});a.push(...s),r===`fork`?Fl(n,ha(t)):Cu(n,ha(t)),wg(n,U),n.fileHistorySnapshots&&ss(n);let{agentDefinition:c}=Sg(n.agentSetting,S,ae);re(c),U(e=>({...e,agent:c?.agentType})),U(e=>({...e,standaloneAgentContext:Cg(n.agentName,n.agentColor)})),go(n.agentName),q(a,n.projectPath??ut()),wa(),tn(null),Qi(t);let l=xs(t);Ls(),ht(),gt(ha(t),n.fullPath?yv(n.fullPath):null);let{renameRecordingForSession:u}=await import(`./asciicast-BsWpcxrc.js`);if(await u(),await ac(),kl(),Jl(n),n.goal){let{hydrateGoalFromTranscript:r}=(pu(),e(El)),i=new Map;i.set(t,n.goal),r(i,t)}if(or.current=!0,ar(void 0),r!==`fork`)Tg(),Eg(n.worktreeSession),Pr(),dd({abortController:new AbortController,getAppState:()=>be.getState(),setAppState:U});else{let e=on();e&&nn(e)}l&&rt(l),ia.current&&r!==`fork`&&(ia.current=ou(a,n.contentReplacements??[])),K(()=>a),Gn(null),ti(``),Z(`tengu_session_resumed`,{entrypoint:r,success:!0,resume_duration_ms:Math.round(performance.now()-i)})}catch(e){throw Z(`tengu_session_resumed`,{entrypoint:r,success:!1}),e}},[wa,U]),[Wa]=(0,Q.useState)(()=>Zm(100)),Ga=(0,Q.useRef)(Wa),Ka=(0,Q.useRef)(new Set),qa=(0,Q.useRef)(0),Ja=(0,Q.useRef)(new Set),Ya=(0,Q.useRef)(new Set),q=(0,Q.useCallback)((e,t)=>{let n=Ho(e,t,100);Ga.current=$m(Ga.current,n);for(let t of Dr(e))Ka.current.add(t)},[]);(0,Q.useEffect)(()=>{i&&i.length>0&&(q(i,ut()),dd({abortController:new AbortController,getAppState:()=>be.getState(),setAppState:U}))},[]);let{status:Xa,reverify:Za}=wO(),[Qa,eo]=(0,Q.useState)(null),to=(0,Q.useRef)(!1),[no,ro]=(0,Q.useState)(null),[io,ao]=(0,Q.useState)(!1),so=!W&&Ji;function co(){if(io||no)return;if(Ui)return`message-selector`;if(In)return;if(Zn[0])return`sandbox-permission`;let e=!Hn||Hn.shouldContinueAnimation;if(e&&Kn[0])return`tool-permission`;if(e&&$n[0])return`prompt`;if(e&&H.queue[0])return`elicitation`;if(e&&so)return`cost`;if(e&&$i)return`idle-return`;if(e&&!W&&me)return`ultraplan-choice`;if(e&&!W&&he)return`ultraplan-launch`;if(e&&St)return`ide-onboarding`;if(process.env.USER_TYPE===`ant`&&e&&wt)return`model-switch`;if(process.env.USER_TYPE===`ant`&&e&&Bn)return`undercover-callout`;if(e&&Et)return`remote-callout`;if(e&&At)return`lsp-recommendation`;if(e&&Pt)return`plugin-hint`;if(e&&It.visible)return`search-extra-tools-hint`;if(e&&Dt)return`desktop-upsell`}let uo=co(),fo=In&&(Zn[0]||Kn[0]||$n[0]||H.queue[0]||so);Fn.current=uo,(0,Q.useEffect)(()=>{if(!W)return;let e=uo===`tool-permission`,t=Date.now();e&&An.current===null?An.current=t:!e&&An.current!==null&&(kn.current+=t-An.current,An.current=null)},[uo,W]);let po=(0,Q.useRef)(uo);(0,Q.useLayoutEffect)(()=>{po.current===`tool-permission`!=(uo===`tool-permission`)&&Ir(),po.current=uo},[uo,Ir]);function mo(){if(uo!==`elicitation`){if(cn.current!==0&&Date.now()-cn.current<500){cn.current=0,Y(`[onCancel] suppressed: local-jsx panel just dismissed`);return}if(cn.current=0,Y(`[onCancel] focusedInputDialog=${uo} streamMode=${qt}`),PM?.pauseProactive(),_n.getSnapshot()){let{getGoal:t,pauseGoal:n}=(us(),e(Sc)),{persistCurrentGoal:r}=(pu(),e(El));t()?.status===`active`&&(n(),r())}if(un(!0),_n.forceEnd(),na.current=!1,Ei?.trim()&&K(e=>[...e,Xl({content:Ei})]),wa(),tt(null),uo===`tool-permission`)Kn[0]?.onAbort(),Jn([]);else if(uo===`prompt`){for(let e of $n)e.reject(Error(`Prompt cancelled by user`));er([]),en?.abort(`user-cancel`)}else _i.isRemoteMode?_i.cancelRequest():en?.abort(`user-cancel`);tn(null),ka(gr.current,!0)}}let ho=(0,Q.useCallback)(()=>{let e=ga(Xr,0);e&&(ti(e.text),ri(`prompt`),e.images.length>0&&yi(t=>{let n={...t};for(let t of e.images)n[t.id]=t;return n}))},[ti,ri,Xr,yi]),_o={setToolUseConfirmQueue:Jn,onCancel:mo,onAgentsKilled:()=>K(e=>[...e,Gu()]),isMessageSelectorVisible:Ui||!!la,screen:Pe,abortSignal:en?.signal,popCommandFromQueue:ho,vimMode:sa,isLocalJSXCommand:Hn?.isLocalJSXCommand,isSearchingHistory:da,isHelpOpen:ma,inputMode:ni,inputValue:Xr,streamMode:qt};(0,Q.useEffect)(()=>{lt()>=5&&!Ji&&!aa&&(Z(`tengu_cost_threshold_reached`,{}),oa(!0),mm()&&Yi(!0))},[G,Ji,aa]);let vo=(0,Q.useCallback)(async e=>new Promise(t=>{let n=!1;function r(e){n||(n=!0,t(e))}Qn(t=>[...t,{hostPattern:e,resolvePromise:r}]);{let t=be.getState().replBridgePermissionCallbacks;if(t){let n=Ov();t.sendRequest(n,ag,{host:e.host},Ov(),`Allow network connection to ${e.host}?`);let r=t.onResponse(n,t=>{r();let n=t.behavior===`allow`;Qn(t=>(t.filter(t=>t.hostPattern.host===e.host).forEach(e=>e.resolvePromise(n)),t.filter(t=>t.hostPattern.host!==e.host)));let i=tr.current.get(e.host);if(i){for(let e of i)e();tr.current.delete(e.host)}}),i=()=>{r(),t.cancelRequest(n)},a=tr.current.get(e.host)??[];a.push(i),tr.current.set(e.host,a)}}}),[U,be]);(0,Q.useEffect)(()=>{let e=yd.getSandboxUnavailableReason();if(e){if(yd.isSandboxRequired()){process.stderr.write(`\nError: sandbox required but unavailable: ${e}\n sandbox.failIfUnavailable is set — refusing to start without a working sandbox.\n\n`),yu(1,`other`);return}Y(`sandbox disabled: ${e}`,{level:`warn`}),Ze({key:`sandbox-unavailable`,jsx:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(T,{color:`warning`,children:`sandbox disabled`}),(0,$.jsx)(T,{dimColor:!0,children:` · /sandbox`})]}),priority:`medium`})}},[Ze]),yd.isSandboxingEnabled()&&yd.initialize(vo).catch(e=>{process.stderr.write(`\n❌ Sandbox Error: ${Jd(e)}\n`),yu(1,`other`)});let yo=(0,Q.useCallback)((e,t)=>{U(n=>({...n,toolPermissionContext:{...e,mode:t?.preserveMode?n.toolPermissionContext.mode:e.mode}})),setImmediate(e=>{e(e=>(e.forEach(e=>{e.recheckPermission()}),e))},Jn)},[U,Jn]),bo=HO(Jn,yo),xo=(0,Q.useCallback)((e,t,r,i)=>{let a=be.getState(),o=()=>{let e=be.getState(),t=Yr(e.toolPermissionContext,e.mcp.tools),n=lg(Rt,t,e.toolPermissionContext.mode);return F?jt(F,n,!1,!0).resolvedTools:n};return{abortController:r,options:{commands:Kt,tools:o(),debug:n,verbose:a.verbose,mainLoopModel:i,thinkingConfig:a.thinkingEnabled===!1?{type:`disabled`}:ee,mcpClients:XO(d,a.mcp.clients),mcpResources:a.mcp.resources,ideInstallationStatus:yt,isNonInteractiveSession:!1,dynamicMcpConfig:ke,theme:ba,agentDefinitions:Ht?{...a.agentDefinitions,allowedAgentTypes:Ht}:a.agentDefinitions,customSystemPrompt:h,appendSystemPrompt:g,refreshTools:o},getAppState:()=>be.getState(),setAppState:U,messages:e,setMessages:K,updateFileHistoryState(e){U(t=>{let n=e(t.fileHistory);return n===t.fileHistory?t:{...t,fileHistory:n}})},updateAttributionState(e){U(t=>{let n=e(t.attribution);return n===t.attribution?t:{...t,attribution:n}})},openMessageSelector:()=>{x||Wi(!0)},onChangeAPIKey:Za,readFileState:Ga.current,setToolJSX:Gn,addNotification:Ze,appendSystemMessage:e=>K(t=>[...t,e]),sendOSNotification:e=>{Gv(e,xe)},onChangeDynamicMcpConfig:je,onInstallIDEExtension:_t,nestedMemoryAttachmentTriggers:new Set,loadedNestedMemoryPaths:Ya.current,dynamicSkillDirTriggers:new Set,discoveredSkillNames:Ja.current,setResponseLength:Ti,pushApiMetricsEntry:process.env.USER_TYPE===`ant`?e=>{let t=Date.now(),n=Si.current;wi.current.push({ttftMs:e,firstTokenTime:t,lastTokenTime:t,responseLengthBaseline:n,endResponseLength:n})}:void 0,setStreamMode:Jt,onCompactProgress:e=>{switch(e.type){case`hooks_start`:Ri(`claudeBlue_FOR_SYSTEM_SPINNER`),Hi(`claudeBlueShimmer_FOR_SYSTEM_SPINNER`),Pi(e.hookType===`pre_compact`?`Running PreCompact hooks…`:e.hookType===`post_compact`?`Running PostCompact hooks…`:`Running SessionStart hooks…`);break;case`compact_start`:Pi(`Compacting conversation`);break;case`compact_end`:Pi(null),Ri(null),Hi(null);break}},setInProgressToolUseIDs:li,setHasInterruptibleToolInProgress:e=>{ui.current=e},resume:Ua,setConversationId:Qi,requestPrompt:void 0,contentReplacementState:ia.current}},[Kt,Rt,F,n,d,yt,ke,ba,Ht,be,U,Za,Ze,K,je,Ua,(0,Q.useCallback)((e,t)=>n=>new Promise((r,i)=>{er(a=>[...a,{request:n,title:e,toolInputSummary:t,resolve:r,reject:i}])}),[]),x,h,g,Qi]),{handleBackgroundSession:Co}=dk({setMessages:K,setIsLoading:Pn,resetLoadingState:wa,setAbortController:tn,onBackgroundQuery:(0,Q.useCallback)(()=>{en?.abort(`background`);let e=Ad(e=>e.mode===`task-notification`);(async()=>{let t=xo(gr.current,[],new AbortController,Se),[n,r,i]=await Promise.all([dl(t.options.tools,Se,Array.from(I.additionalWorkingDirectories.keys()),t.options.mcpClients),pi(),Vc()]),a=Mo({mainThreadAgentDefinition:F,toolUseContext:t,customSystemPrompt:h,defaultSystemPrompt:n,appendSystemPrompt:g});t.renderedSystemPrompt=a;let o=(await Li(e).catch(()=>[])).map(xn),s=new Set;for(let e of gr.current)e.type===`attachment`&&e.attachment.type===`queued_command`&&e.attachment.commandMode===`task-notification`&&typeof e.attachment.prompt==`string`&&s.add(e.attachment.prompt);let c=o.filter(e=>e.attachment.type===`queued_command`&&(typeof e.attachment.prompt!=`string`||!s.has(e.attachment.prompt)));Vi({messages:[...gr.current,...c],queryParams:{systemPrompt:a,userContext:r,systemContext:i,canUseTool:bo,toolUseContext:t,querySource:jn()},description:lr,setAppState:U,agentDefinition:F})})()},[en,Se,I,F,xo,h,g,bo,U])}),wo=(0,Q.useCallback)(t=>{br(t,t=>{if(Gt(t)?(oo()?K(e=>{let n=Mt(e,{includeSnipped:!0});return[...n.length>500?n.slice(-500):n,t]}):K(()=>[t]),Qi(Ov()),PM?.setContextBlocked(!1)):t.type===`progress`&&ta(t.data?.type)?K(e=>{let n=t.data;for(let r=e.length-1;r>=0;r--){let i=e[r];if(i.type!==`progress`)break;let a=i.data;if(i.parentToolUseID===t.parentToolUseID&&a?.type===n.type){let n=e.slice();return n[r]=t,n}}return[...e,t]}):K(e=>[...e,t]),t.type===`assistant`&&`isApiErrorMessage`in t&&t.isApiErrorMessage?PM?.setContextBlocked(!0):t.type===`assistant`&&PM?.setContextBlocked(!1),t.type===`assistant`&&`isApiErrorMessage`in t&&t.isApiErrorMessage){let n=(zi(t.message?.content??``)??``).toLowerCase();if(n.includes(`connection error`)||n.includes(`fetch failed`)||n.includes(`network error`)||n.includes(`enotfound`)||n.includes(`econnreset`)||n.includes(`etimedout`)){let{getGoal:t,pauseGoal:n}=(us(),e(Sc)),{persistCurrentGoal:r}=(pu(),e(El));t()?.status===`active`&&(n(),r(),Ze({key:`goal-auto-paused-connectivity-error`,text:`Detected connection error. Active goal was auto-paused. Run /goal resume after network recovers.`,priority:`immediate`}))}}},e=>{Ti(t=>t+e.length)},Jt,Zt,e=>{K(t=>t.filter(t=>t!==e)),cl(e.uuid)},$t,e=>{let t=Date.now(),n=Si.current;wi.current.push({...e,firstTokenTime:t,lastTokenTime:t,responseLengthBaseline:n,endResponseLength:n})},ki)},[K,Ti,Jt,Zt,$t,ki]),To=(0,Q.useCallback)(async(e,t,n,r,i,a)=>{if(r){let e=XO(d,be.getState().mcp.clients);Ut.handleQueryStart(e);let t=Ma(e);t&&Cd(t)}if(Mh(),!M&&!nr&&!sr&&!or.current){let e=t.find(e=>e.type===`user`&&!e.isMeta),n=e?.type===`user`?zi(e.message.content):null;n&&!n.startsWith(`<local-command-stdout>`)&&!n.startsWith(`<command-message>`)&&!n.startsWith(`<command-name>`)&&!n.startsWith(`<bash-input>`)&&(or.current=!0,Gh(n,new AbortController().signal).then(e=>{e?ar(e):or.current=!1},()=>{or.current=!1}))}if(be.setState(e=>{let t=e.toolPermissionContext.alwaysAllowRules.command;return t===i||t?.length===i.length&&t.every((e,t)=>e===i[t])?e:{...e,toolPermissionContext:{...e.toolPermissionContext,alwaysAllowRules:{...e.toolPermissionContext.alwaysAllowRules,command:i}}}}),!r){t.some(Gt)&&(Qi(Ov()),PM?.setContextBlocked(!1)),wa(),tn(null);return}let o=xo(e,t,n,a),{tools:s,mcpClients:c}=o.options;fl(`query_context_loading_start`);let[,,l,u,f]=await Promise.all([void 0,qk(I,U,be.getState().fastMode),dl(s,a,Array.from(I.additionalWorkingDirectories.keys()),c),pi(),Vc()]),p={...u,...PM?.isProactiveActive()&&!ya.current?{terminalFocus:`The terminal is unfocused — the user is not actively watching.`}:{}};fl(`query_context_loading_end`);let m=Mo({mainThreadAgentDefinition:F,toolUseContext:o,customSystemPrompt:h,defaultSystemPrompt:l,appendSystemPrompt:g});o.renderedSystemPrompt=m,fl(`query_query_start`),ot(),ft(),it();for await(let t of Zi({messages:e,systemPrompt:m,userContext:p,systemContext:f,canUseTool:bo,toolUseContext:o,querySource:jn()}))wo(t);if(fl(`query_end`),process.env.USER_TYPE===`ant`&&wi.current.length>0){let e=wi.current,t=e.map(e=>e.ttftMs),n=e.map(e=>{let t=Math.round((e.endResponseLength-e.responseLengthBaseline)/4),n=e.lastTokenTime-e.firstTokenTime;return n>0?Math.round(t/(n/1e3)):0}),r=e.length>1,i=Ye(),a=Me(),o=Xe(),s=qe(),c=xt(),l=Ue(),u=Date.now()-On.current;K(e=>[...e,Ks({ttftMs:r?JM(t):t[0],otps:r?JM(n):n[0],isP50:r,hookDurationMs:i>0?i:void 0,hookCount:a>0?a:void 0,turnDurationMs:u>0?u:void 0,toolDurationMs:o>0?o:void 0,toolCount:s>0?s:void 0,classifierDurationMs:c>0?c:void 0,classifierCount:l>0?l:void 0,configWriteCount:zf()})])}wa(),zs(),await v?.(gr.current)},[d,wa,xo,I,U,h,v,g,bo,F,wo,nr,M]),Eo=(0,Q.useCallback)(async(e,t,n,r,i,a,o)=>{let s=_n.tryStart();if(s===null)return Z(`tengu_concurrent_onquery_detected`,{}),e.filter(e=>e.type===`user`&&!e.isMeta).map(e=>zi(e.message.content)).filter(e=>e!==null).forEach((e,t)=>{pn({value:e,mode:`prompt`}),t===0&&Z(`tengu_concurrent_onquery_enqueued`,{})}),!1;try{es.current=!1,un(!1),Mn(),K(t=>[...t,...e]),Si.current=0,tt((o?Nr(o):null)??Ne()),wi.current=[],Zt([]),Di(null);let s=gr.current;if(o&&await Oa(o,s,e.length),a&&o&&!await a(o,s))return!0;try{await To(s,e,t,n,r,i)}catch(e){throw e}}finally{if(_n.end(s)){un(t.signal.aborted),Mi(Date.now()),na.current=!1,wa(),await ka(gr.current,t.signal.aborted),dn.current(),process.env.USER_TYPE===`ant`&&!t.signal.aborted&&U(e=>e.tungstenActiveSession===void 0||e.tungstenPanelAutoHidden===!0?e:{...e,tungstenPanelAutoHidden:!0});let e;Ne()!==null&&Ne()>0&&!t.signal.aborted&&(e={tokens:Le(),limit:Ne(),nudges:nt()}),tt(null);let n=Date.now()-On.current-kn.current;(n>3e4||e!==void 0)&&!t.signal.aborted&&!Te&&K(t=>[...t,Ds(n,e,jf(t,Sr))]),tn(null)}if(t.signal.reason===`user-cancel`&&!_n.isActive&&$r.current===``&&Ot()===0&&!be.getState().viewingAgentTaskId){let e=gr.current,t=e.findLast(dg);t&&pg(e,e.lastIndexOf(t))&&(Ul(),fn.current(t))}}return!0},[To,U,wa,_n,Oa,ka]),Do=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{let e=ce;if(!e||W||Do.current)return;Do.current=!0;async function t(e){if(e.clearContext){let t=e.message.planContent?Vu():void 0,{clearConversation:n}=await import(`./conversation-BBB91hEw.js`);await n({setMessages:K,readFileState:Ga.current,discoveredSkillNames:Ja.current,loadedNestedMemoryPaths:Ya.current,getAppState:()=>be.getState(),setAppState:U,setConversationId:Qi}),or.current=!1,ar(void 0),Ka.current.clear(),qa.current=0,t&&Kl(st(),t)}U(t=>{let n=e.mode?sn(t.toolPermissionContext,Vx(e.mode,e.allowedPrompts)):t.toolPermissionContext;return e.mode===`auto`&&(n=Ci({...n,mode:`auto`,prePlanMode:void 0})),{...t,initialMessage:null,toolPermissionContext:n}}),xd()&&Aa(e=>{U(t=>({...t,fileHistory:e(t.fileHistory)}))},e.message.uuid),await Ur();let t=e.message.message.content;if(typeof t==`string`&&!e.message.planContent)Oo(t,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}});else{let t=No();tn(t),Eo([e.message],t,!0,[],Se)}setTimeout(e=>{e.current=!1},100,Do)}t(e)},[ce,W,K,U,Eo,Se,Vt]);let Oo=(0,Q.useCallback)(async(e,t,n,r)=>{if(Ir(),PM?.resumeProactive(),ts(e)){let n=Pa({content:e});K(e=>[...e,n]),r?.fromKeybinding||Oc({display:bd(e,ni),pastedContents:vi}),ti(``),t.setCursorOffset(0),t.clearBuffer(),yi({}),ri(`prompt`),pt(void 0);return}if(!n&&e.trim().startsWith(`/`)){let n=hs(e,vi).trim(),i=n.indexOf(` `),a=i===-1?n.slice(1):n.slice(1,i),o=i===-1?``:n.slice(i+1).trim(),s=Kt.find(e=>Bu(e)&&(e.name===a||e.aliases?.includes(a)||Ns(e)===a));s?.name===`clear`&&_r.current&&(Z(`tengu_idle_return_action`,{action:`hint_converted`,variant:_r.current,idleMinutes:Math.round((Date.now()-ra.current)/6e4),messageCount:gr.current.length,totalInputTokens:ct()}),_r.current=!1);let c=_n.isActive&&(s?.immediate||r?.fromKeybinding);if(s&&c&&s.type===`local-jsx`){e.trim()===$r.current.trim()&&(ti(``),t.setCursorOffset(0),t.clearBuffer(),yi({}));let n=nc(e).filter(e=>vi[e.id]?.type===`text`),i=n.length;Z(`tengu_paste_text`,{pastedTextCount:i,pastedTextBytes:n.reduce((e,t)=>e+(vi[t.id]?.content.length??0),0)}),Z(`tengu_immediate_command_executed`,{commandName:s.name,fromKeybinding:r?.fromKeybinding??!1}),(async()=>{let e=!1,n=(n,r)=>{e=!0,Gn({jsx:null,shouldHidePromptInput:!1,clearLocalJSX:!0});let i=[];if(n&&r?.display!==`skip`&&(Ze({key:`immediate-${s.name}`,text:n,priority:`immediate`}),!oo())){let e=r?.displayArgs??o;i.push(xc(wn(Ns(s),e)),xc(`<${Zf}>${Lt(n)}</${Zf}>`))}r?.metaMessages?.length&&i.push(...r.metaMessages.map(e=>Pa({content:e,isMeta:!0}))),i.length&&K(e=>[...e,...i]),ai!==void 0&&(ti(ai.text),t.setCursorOffset(ai.cursorOffset),yi(ai.pastedContents),oi(void 0))},r=xo(gr.current,[],No(),Se),i=await(await s.load()).call(n,r,o);i&&!e&&Gn({jsx:i,shouldHidePromptInput:!1,isLocalJSXCommand:!0})})();return}}if(_i.isRemoteMode&&!e.trim())return;Number(process.env.CLAUDE_CODE_IDLE_THRESHOLD_MINUTES??75),Number(process.env.CLAUDE_CODE_IDLE_TOKEN_THRESHOLD??1e5),r?.fromKeybinding||(Oc({display:n?e:bd(e,ni),pastedContents:n?{}:vi}),ni===`bash`&&ow(e.trim()));let i=!n&&e.trim().startsWith(`/`),a=!W||n||_i.isRemoteMode;if(ai!==void 0&&!i&&a?(ti(ai.text),t.setCursorOffset(ai.cursorOffset),yi(ai.pastedContents),oi(void 0)):a&&(r?.fromKeybinding||(ti(``),t.setCursorOffset(0)),yi({})),a&&(ri(`prompt`),pt(void 0),xi(e=>e+1),t.clearBuffer(),Sa.current=!1,!i&&ni===`prompt`&&!n&&!_i.isRemoteMode&&(yr(e),Mn()),U(e=>({...e,attribution:yh(e.attribution,e=>{Xs(e).catch(e=>{Y(`Attribution: Failed to save snapshot: ${e}`)})})}))),n){let{queryRequired:t}=await zr(n.state,n.speculationSessionTimeSavedMs,n.setAppState,e,{setMessages:K,readFileState:Ga,cwd:ut()});if(t){let e=No();tn(e),Eo([],e,!0,[],Se)}return}if(_i.isRemoteMode&&!(i&&Kt.find(t=>{let n=e.trim().slice(1).split(/\s/)[0];return Bu(t)&&(t.name===n||t.aliases?.includes(n)||Ns(t)===n)})?.type===`local-jsx`)){let t=Object.values(vi),n=t.filter(e=>e.type===`image`),r=n.length>0?n.map(e=>e.id):void 0,i=e.trim(),a=e.trim();if(t.length>0){let n=[],r=[],o=e.trim();o&&(n.push({type:`text`,text:o}),r.push({type:`text`,text:o}));for(let e of t)if(e.type===`image`){let t={type:`base64`,media_type:e.mediaType??`image/png`,data:e.content};n.push({type:`image`,source:t}),r.push({type:`image`,source:t})}else n.push({type:`text`,text:e.content}),r.push({type:`text`,text:e.content});i=n,a=r}let o=Pa({content:i,imagePasteIds:r});K(e=>[...e,o]),await _i.sendMessage(a,{uuid:o.uuid});return}await Ur(),await WO({input:e,helpers:t,queryGuard:_n,isExternalLoading:bn,mode:ni,commands:Kt,onInputChange:ti,setPastedContents:yi,setToolJSX:Gn,getToolUseContext:xo,messages:gr.current,mainLoopModel:Se,pastedContents:vi,ideSelection:at,setUserInputOnProcessing:yr,setAbortController:tn,abortController:en,onQuery:Eo,setAppState:U,querySource:jn(),onBeforeQuery:_,canUseTool:bo,addNotification:Ze,setMessages:K,streamMode:Yt.current,hasInterruptibleToolInProgress:ui.current}),(i||W)&&ai!==void 0&&(ti(ai.text),t.setCursorOffset(ai.cursorOffset),yi(ai.pastedContents),oi(void 0))},[_n,W,bn,ni,Kt,ti,ri,yi,xi,pt,Gn,xo,Se,vi,at,yr,tn,Ze,Eo,ai,oi,U,_,bo,di,K,Ur,Ir]),ko=(0,Q.useCallback)(()=>{let e=Qa?ij(Qa):`/issue`;eo(null),Oo(e,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}}).catch(t=>{Y(`Auto-run ${e} failed: ${Jd(t)}`)})},[Oo,Qa]),Ao=(0,Q.useCallback)(()=>{eo(null)},[]),jo=(0,Q.useCallback)(()=>{let e=process.env.USER_TYPE===`ant`?`/issue`:`/feedback`;Oo(e,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}}).catch(e=>{Y(`Survey feedback request failed: ${e instanceof Error?e.message:String(e)}`)})},[Oo]),Fo=(0,Q.useRef)(Oo);Fo.current=Oo;let Io=(0,Q.useCallback)(()=>{Fo.current(`/rate-limit-options`,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}})},[]),Lo=(0,Q.useCallback)(async()=>{if(ao(!0),ii()){Nv(`tmux`,[`detach-client`],{stdio:`ignore`}),ao(!1);return}if(on()!==null){ro((0,$.jsx)(x_,{showWorktree:!0,onDone:()=>{},onCancel:()=>{ro(null),ao(!1)}}));return}let e=await(await Gl.load()).call(()=>{});ro(e),e===null&&ao(!1)},[]),zo=(0,Q.useCallback)(()=>{Wi(e=>!e)},[]),Bo=(0,Q.useCallback)(e=>{let t=gr.current,n=t.lastIndexOf(e);if(n===-1)return;Z(`tengu_conversation_rewind`,{preRewindMessageCount:t.length,postRewindMessageCount:n,messagesRemoved:t.length-n,rewindToMessageIndex:n}),K(t.slice(0,n)),Qi(Ov()),kr();let r=e.permissionMode;U(e=>({...e,toolPermissionContext:r&&e.toolPermissionContext.mode!==r?{...e.toolPermissionContext,mode:r}:e.toolPermissionContext,promptSuggestion:{text:null,promptId:null,shownAt:0,acceptedAt:0,generationRequestId:null}}))},[K,U]),Vo=(0,Q.useCallback)(e=>{Bo(e);let t=fa(e);if(t&&(ti(t.text),ri(t.mode)),Array.isArray(e.message.content)&&e.message.content.some(e=>e.type===`image`)){let t=e.message.content.filter(e=>e.type===`image`);if(t.length>0){let n={};t.forEach((t,r)=>{if(t.source.type===`base64`){let i=e.imagePasteIds?.[r]??r+1;n[i]={id:i,type:`image`,content:t.source.data,mediaType:t.source.media_type}}}),yi(n)}}},[Bo,ti]);fn.current=Vo;let Uo=(0,Q.useCallback)(async e=>{setImmediate((e,t)=>e(t),Vo,e)},[Vo]),Wo=e=>{let t=e.slice(0,24);return G.findIndex(e=>e.uuid.slice(0,24)===t)},{enter:Go,handlers:Ko}=gd(Ar,jr,Mr,{copy:e=>void ie(e).then(e=>{e&&process.stdout.write(e),Ze({key:`selection-copied`,text:`copied`,color:`success`,priority:`immediate`,timeoutMs:2e3})}),edit:async e=>{let t=Wo(e.uuid),n=t>=0?G[t]:void 0;if(!n||!dg(n))return;let r=!await md(se,n.uuid),i=pg(G,t);r&&i?(mo(),Uo(n)):(Ki(n),Wi(!0))}});async function Yo(){Za();let e=await kd();if(e.length>0){let t=e.map(e=>` [${e.type}] ${e.path} (${e.content.length} chars)${e.parent?` (included by ${e.parent})`:``}`).join(`
139
139
  `);Y(`Loaded ${e.length} CLAUDE.md/rules files:\n${t}`)}else Y(`No CLAUDE.md/rules files found`);for(let t of e)Ga.current.set(t.path,{content:t.contentDiffersFromDisk?t.rawContent??t.content:t.content,timestamp:Date.now(),offset:void 0,limit:void 0,isPartialView:t.contentDiffersFromDisk})}xO(nv()),dy(G,G.length===i?.length);let{sendBridgeResult:Xo}=Oy(G,K,an,Kt,Se);dn.current=Xo,SO();let Zo=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{if(le.length<1){Zo.current=!1;return}Zo.current||(Zo.current=!0,If(e=>({...e,promptQueueUseCount:(e.promptQueueUseCount??0)+1})))},[le.length]),JO({executeQueuedInput:(0,Q.useCallback)(async e=>{await WO({helpers:{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}},queryGuard:_n,commands:Kt,onInputChange:()=>{},setPastedContents:()=>{},setToolJSX:Gn,getToolUseContext:xo,messages:G,mainLoopModel:Se,ideSelection:at,setUserInputOnProcessing:yr,setAbortController:tn,onQuery:Eo,setAppState:U,querySource:jn(),onBeforeQuery:_,canUseTool:bo,addNotification:Ze,setMessages:K,queuedCommands:e})},[_n,Kt,Gn,xo,G,Se,at,yr,bo,tn,Eo,Ze,U,_]),hasActiveLocalJsxUI:dr,queryGuard:_n}),(0,Q.useEffect)(()=>{tc.recordUserActivity(),vt(!0)},[Xr,bi]),(0,Q.useEffect)(()=>{bi===1&&pv()},[bi]),(0,Q.useEffect)(()=>{if(W||bi===0||ji===0)return;let e=setTimeout((e,t,n,r,i)=>{if(ze()>e)return;let a=Date.now()-e;!t&&!n&&r.current===void 0&&a>=Lf().messageIdleNotifThresholdMs&&Gv({message:`Claude is waiting for your input`,notificationType:`idle_prompt`},i)},Lf().messageIdleNotifThresholdMs,ji,W,Hn,Fn,xe);return()=>clearTimeout(e)},[W,Hn,bi,ji,xe]),(0,Q.useEffect)(()=>{},[ji,W,Ze,Qe]);let Qo=(0,Q.useCallback)((e,t)=>{if(_n.isActive||Zc().some(e=>e.mode===`prompt`||e.mode===`bash`))return!1;let n=typeof e==`string`?{value:e,mode:`prompt`,isMeta:t?.isMeta?!0:void 0}:e;return(async()=>{let e=await gs([n]),t=e.attachmentCommands[0];if(!t)return;let r=No();tn(r);let i=Pa({content:t.value,isMeta:t.isMeta?!0:void 0,origin:t.origin}),a=!1;try{a=await Eo([i],r,!0,[],Se)!==!1}catch(t){try{await Nl({commands:e.claimedCommands,outcome:{type:`failed`,error:t},currentDir:Gd(),priority:`later`})}catch(e){X($d(e))}X($d(t));return}if(a)try{let t=await Nl({commands:e.claimedCommands,outcome:{type:`completed`},currentDir:Gd(),priority:`later`});for(let e of t)pn(e)}catch(e){X($d(e))}})().catch(e=>{X($d(e))}),!0},[Eo,Se,be]),{relayPipeMessage:$o,pipeReturnHadErrorRef:es}=VM();YO({isLoading:W,onSubmitMessage:Qo}),J(e=>tg(e));let{routeToSelectedPipes:ts}=HM({store:be,setAppState:U,addNotification:Ze});process.env.USER_TYPE===`ant`&&ok({taskListId:w,isLoading:W,onSubmitTask:Qo}),zM?.({isLoading:W||ce!==null,queuedCommandsLength:le.length,hasActiveLocalJsxUI:dr,isInPlanMode:I.mode===`plan`,onQueueTick:e=>pn(e)}),BM?.({isLoading:W||ce!==null,wasAborted:ln,queuedCommandsLength:le.length,hasActiveLocalJsxUI:dr,isInPlanMode:I.mode===`plan`,isQueryActiveNow:_n.getSnapshot,onContinuationEnqueued:({turn:e,objective:t})=>{let n=`Goal auto-continue (${e}/1): continue advancing "${t}".`;K(e=>[...e,Pa({content:n,isVisibleInTranscriptOnly:!0})])},onMaxTurnsReached:()=>{Ze({key:`goal-max-turns-reached`,text:`Goal reached max continuation turns (1). Run /goal continue to reset turn counter and continue.`,priority:`immediate`})}}),(0,Q.useEffect)(()=>{if(!Te){oh(null);return}if(!W){if(Ee!==null&&le.length===0&&!dr&&I.mode!==`plan`&&ce===null){oh({enabled:!0,phase:`standby`,next_tick_at:Ee,sleep_until:null});return}oh({enabled:!0,phase:null,next_tick_at:null,sleep_until:null})}},[ce,W,dr,Te,Ee,le.length,I.mode]),(0,Q.useEffect)(()=>{le.some(e=>e.priority===`now`)&&an.current?.abort(`interrupt`)},[le]);let ns=(0,Q.useRef)(Yo);ns.current=Yo;let is=(0,Q.useRef)(Ut);is.current=Ut,(0,Q.useEffect)(()=>(ns.current(),()=>{is.current.shutdown()}),[]);let{internal_eventEmitter:as}=ne(),[os,ls]=(0,Q.useState)(0);(0,Q.useEffect)(()=>{let e=()=>{process.stdout.write(`
140
140
  Claude Code has been suspended. Run \`fg\` to bring Claude Code back.
141
141
  Note: ctrl + z now suspends Claude Code, ctrl + _ undoes input.
142
- `)},t=()=>{ls(e=>e+1)};return as?.on(`suspend`,e),as?.on(`resume`,t),()=>{as?.off(`suspend`,e),as?.off(`resume`,t)}},[as]);let ds=(0,Q.useMemo)(()=>{if(!W)return null;let e=G.filter(e=>{if(e.type!==`progress`)return!1;let t=e.data;return t.type===`hook_progress`&&(t.hookEvent===`Stop`||t.hookEvent===`SubagentStop`)});if(e.length===0)return null;let t=e.at(-1)?.toolUseID;if(!t||G.some(e=>e.type===`system`&&e.subtype===`stop_hook_summary`&&e.toolUseID===t))return null;let n=e.filter(e=>e.toolUseID===t),r=n.length,i=jf(G,e=>{if(e.type!==`attachment`)return!1;let n=e.attachment;return`hookEvent`in n&&(n.hookEvent===`Stop`||n.hookEvent===`SubagentStop`)&&`toolUseID`in n&&n.toolUseID===t}),a=n.find(e=>e.data.statusMessage)?.data.statusMessage;if(a)return r===1?`${a}…`:`${a}… ${i}/${r}`;let o=n[0]?.data.hookEvent===`SubagentStop`?`subagent stop`:`stop`;if(process.env.USER_TYPE===`ant`){let e=n[i]?.data.command,t=e?` '${Tp(e,40)}'`:``;return r===1?`running ${o} hook${t}`:`running ${o} hook${t}\u2026 ${i}/${r}`}return r===1?`running ${o} hook`:`running stop hooks… ${i}/${r}`},[G,W]),fs=(0,Q.useCallback)(()=>{Jr({messagesLength:G.length,streamingToolUsesLength:Xt.length})},[G.length,Xt.length]),ps=(0,Q.useCallback)(()=>{Jr(null)},[]),ms=oo()&&!N,_s=(0,Q.useRef)(null),[vs,ys]=(0,Q.useState)(!1),[bs,Ss]=(0,Q.useState)(``),[Cs,ws]=(0,Q.useState)(0),[Ts,Es]=(0,Q.useState)(0),Os=(0,Q.useCallback)((e,t)=>{ws(e),Es(t)},[]);oe((e,t,n)=>{if(t.ctrl||t.meta)return;if(e===`/`){_s.current?.setAnchor(),ys(!0),n.stopImmediatePropagation();return}let r=e[0];if((r===`n`||r===`N`)&&e===r.repeat(e.length)&&Cs>0){let t=r===`n`?_s.current?.nextMatch:_s.current?.prevMatch;if(t)for(let n=0;n<e.length;n++)t();n.stopImmediatePropagation()}},{isActive:Pe===`transcript`&&ms&&!vs&&!Be});let{setQuery:ks,scanElement:As,setPositions:js}=fe(),Ms=de().columns,Ps=Q.useRef(Ms);Q.useEffect(()=>{Ps.current!==Ms&&(Ps.current=Ms,(bs||vs)&&(ys(!1),Ss(``),ws(0),Es(0),_s.current?.disarmSearch(),ks(``)))},[Ms,bs,vs,ks]),oe((e,t,n)=>{if(!(t.ctrl||t.meta)){if(e===`q`){ps(),n.stopImmediatePropagation();return}if(e===`[`&&!Be)Ve(!0),Re(!0),n.stopImmediatePropagation();else if(e===`v`){if(n.stopImmediatePropagation(),Je.current)return;Je.current=!0;let e=Ge.current,t=t=>{e===Ge.current&&(clearTimeout(Ke.current),We(t))};t(`rendering ${Wr.length} messages…`),(async()=>{try{let e=Math.max(80,(process.stdout.columns??80)-6),n=(await Vv(Wr,Vt,e)).replace(/[ \t]+$/gm,``),r=xv(gv(),`cc-transcript-${Date.now()}.txt`);await jv(r,n);let i=Vg(r);t(i?`opening ${r}`:`wrote ${r} · no $VISUAL/$EDITOR set`)}catch(e){t(`render failed: ${e instanceof Error?e.message:String(e)}`)}Je.current=!1,e===Ge.current&&(Ke.current=setTimeout(e=>e(``),4e3,We))})()}}},{isActive:Pe===`transcript`&&ms&&!vs});let Fs=Pe===`transcript`&&ms;(0,Q.useEffect)(()=>{Fs||(Ss(``),ws(0),Es(0),ys(!1),Ge.current++,clearTimeout(Ke.current),Ve(!1),We(``))},[Fs]),(0,Q.useEffect)(()=>{ks(Fs?bs:``),Fs||js(null)},[Fs,bs,ks,js]);let Is={screen:Pe,setScreen:Fe,showAllInTranscript:Ie,setShowAllInTranscript:Re,messageCount:G.length,onEnterTranscript:fs,onExitTranscript:ps,virtualScrollActive:ms,searchBarOpen:vs},Rs=qr?Wr.slice(0,qr.messagesLength):Wr,Bs=qr?Xt.slice(0,qr.streamingToolUsesLength):Xt;AO({onOpenBackgroundTasks:dr?void 0:()=>ua(!0),onTogglePipeSelector:()=>{U(e=>{let t=e.pipeIpc??{};return{...e,pipeIpc:{...t,selectorOpen:!t.selectorOpen}}})}});let Vs=ge?B[ge]:void 0,Hs=Vs&&Yc(Vs)?Vs:void 0,Us=Oi||!W,Ws=Hs?.messages,qs=(0,Q.useMemo)(()=>{if(!Hs)return;let e=Ws??[];if(!Yc(Hs)||Hs.agentType!==`fork`||!Hs.prompt)return e;let t=Hs.prompt.trim(),n=-1,r=-1,i=!1;for(let a=0;a<e.length;a++){let o=e[a];if(o.type===`user`&&Array.isArray(o.message?.content)){if(o.message.content.some(nN))n=a;else if(!i){let e=o.message.content.find(e=>e.type===`text`&&typeof e.text==`string`);e&&e.text.trim()===t&&(i=!0)}continue}o.type===`assistant`&&Array.isArray(o.message?.content)&&o.message.content.some(e=>e.type===`tool_use`)&&(r=a)}let a=n===-1?e:e.map((e,t)=>t!==n||!Array.isArray(e.message?.content)?e:{...e,message:{...e.message,content:e.message.content.filter(e=>!nN(e))}});if(i)return a;let o=n===-1?r+1:n+1,s=Pa({content:Hs.prompt,timestamp:new Date(Hs.startTime).toISOString()});return[...a.slice(0,o),s,...a.slice(o)]},[Hs,Ws]),Js=Hs?qs??[]:Us?G:Wr;if(Pe===`transcript`){let e=oo()&&!N&&!Be?mn:void 0,t=(0,$.jsx)(J_,{messages:Rs,tools:Vt,commands:Kt,verbose:!0,toolJSX:null,toolUseConfirmQueue:[],inProgressToolUseIDs:ci,isMessageSelectorVisible:!1,conversationId:Xi,screen:Pe,agentDefinitions:ae,streamingToolUses:Bs,showAllInTranscript:Ie,onOpenRateLimitOptions:Io,isLoading:W,hidePastThinking:!0,streamingThinking:Qt,scrollRef:e,jumpRef:_s,onSearchMatchesChange:Os,scanElement:As,setPositions:js,disableRenderCap:Be}),n=Hn&&(0,$.jsx)(b,{flexDirection:`column`,width:`100%`,children:Hn.jsx}),r=(0,$.jsxs)(Ii,{children:[(0,$.jsx)(eN,{isAnimating:fr,title:lr,disabled:M,noPrefix:!1}),(0,$.jsx)(TO,{...Is}),(0,$.jsx)(DO,{onSubmit:Oo,isActive:!Hn?.isLocalJSXCommand}),e?(0,$.jsx)(Xj,{scrollRef:mn,isActive:uo!==`ultraplan-choice`,isModal:!vs,onScroll:()=>_s.current?.disarmSearch()}):null,(0,$.jsx)(kO,{..._o}),e?(0,$.jsx)(K_,{scrollRef:mn,scrollable:(0,$.jsxs)($.Fragment,{children:[t,n,(0,$.jsx)($k,{})]}),bottom:vs?(0,$.jsx)(XM,{jumpRef:_s,initialQuery:``,count:Cs,current:Ts,onClose:e=>{Ss(Cs>0?e:``),ys(!1),e||(ws(0),Es(0),_s.current?.setSearchQuery(``))},onCancel:()=>{ys(!1),_s.current?.setSearchQuery(``),_s.current?.setSearchQuery(bs),ks(bs)},setHighlight:ks}):(0,$.jsx)(YM,{showAllInTranscript:Ie,virtualScroll:!0,status:He||void 0,searchBadge:bs&&Cs>0?{current:Ts,count:Cs}:void 0})}):(0,$.jsxs)($.Fragment,{children:[t,n,(0,$.jsx)($k,{}),(0,$.jsx)(YM,{showAllInTranscript:Ie,virtualScroll:!1,suppressShowAll:Be,status:He||void 0})]})]});return e?(0,$.jsx)(_e,{mouseTracking:Po(),children:r}):r}let Ys=Cn&&!Hs&&Js.length<=En.current?Cn:void 0,Zs=uo===`tool-permission`?(0,$.jsx)(jS,{onDone:()=>Jn(([e,...t])=>t),onReject:ho,toolUseConfirm:Kn[0],toolUseContext:xo(G,G,en??No(),Se),verbose:L,setStickyFooter:oo()?Xn:void 0},Kn[0]?.toolUseID):null,Qs=oo()&&Hn?.isLocalJSXCommand===!0,$s=Qs?Hn.jsx:null,ec=(0,$.jsxs)(Ii,{children:[(0,$.jsx)(eN,{isAnimating:fr,title:lr,disabled:M,noPrefix:!1}),(0,$.jsx)(TO,{...Is}),(0,$.jsx)(DO,{onSubmit:Oo,isActive:!Hn?.isLocalJSXCommand}),(0,$.jsx)(Xj,{scrollRef:mn,isActive:oo()&&($s!=null||!uo||uo===`tool-permission`),onScroll:Hr}),null,(0,$.jsx)(kO,{..._o}),(0,$.jsx)(ig,{dynamicMcpConfig:ke,isStrictMcpConfig:m,children:(0,$.jsx)(K_,{scrollRef:mn,overlay:Zs,modal:$s,modalScrollRef:hn,dividerYRef:Cr,hidePill:!!Hs,newMessageCount:Fr?.count??0,onPillClick:()=>{jr(null),Er(mn.current)},scrollable:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(J_,{messages:Js,tools:Vt,commands:Kt,verbose:L,toolJSX:Hn,toolUseConfirmQueue:Kn,inProgressToolUseIDs:ci,isMessageSelectorVisible:Ui,conversationId:Xi,screen:Pe,streamingToolUses:Xt,showAllInTranscript:Ie,agentDefinitions:ae,onOpenRateLimitOptions:Io,isLoading:W,streamingText:W&&!Hs?Ai:null,isBriefOnly:!Hs&&De,unseenDivider:Hs?void 0:Fr,scrollRef:oo()?mn:void 0,trackStickyPrompt:oo()?!0:void 0,cursor:Ar,setCursor:jr,cursorNavRef:Mr}),(0,$.jsx)(LA,{}),!x&&Ys&&!$s&&(0,$.jsx)(cr,{param:{text:Ys,type:`text`},addMargin:!0,verbose:L}),Hn&&!(Hn.isLocalJSXCommand&&Hn.isImmediate)&&!Qs&&(0,$.jsx)(b,{flexDirection:`column`,width:`100%`,children:Hn.jsx}),process.env.USER_TYPE===`ant`&&(0,$.jsx)(oj,{}),(0,$.jsx)(b,{flexGrow:1}),Na&&(0,$.jsx)(qi,{mode:qt,spinnerTip:ue,responseLengthRef:Si,apiMetricsRef:wi,overrideMessage:Ni,spinnerSuffix:ds,verbose:L,loadingStartTimeRef:On,totalPausedMsRef:kn,pauseStartTimeRef:An,overrideColor:Fi,overrideShimmerColor:Bi,hasActiveTools:ci.size>0,leaderIsIdle:!W}),!Na&&!W&&!Cn&&De&&!Hs&&(0,$.jsx)(hi,{})]}),bottom:(0,$.jsx)(b,{flexDirection:`row`,width:`100%`,alignItems:`flex-end`,children:(0,$.jsxs)(b,{flexDirection:`column`,flexGrow:1,children:[oo()&&(0,$.jsx)(pD,{}),Yn,Hn?.isLocalJSXCommand&&Hn.isImmediate&&!Qs&&(0,$.jsx)(b,{flexDirection:`column`,width:`100%`,children:Hn.jsx}),!Na&&!Hn?.isLocalJSXCommand&&pe&&zt&&zt.length>0&&(0,$.jsx)(b,{width:`100%`,flexDirection:`column`,children:(0,$.jsx)(Ro,{tasks:zt,isStandalone:!0})}),uo===`sandbox-permission`&&(0,$.jsx)(Zk,{hostPattern:Zn[0].hostPattern,onUserResponse:e=>{let{allow:t,persistToSettings:n}=e,r=Zn[0];if(!r)return;let i=r.hostPattern.host;Qn(e=>(e.filter(e=>e.hostPattern.host===i).forEach(e=>e.resolvePromise(t)),e.filter(e=>e.hostPattern.host!==i)));let a=tr.current.get(i);if(a){for(let e of a)e();tr.current.delete(i)}}},Zn[0].hostPattern.host),uo===`prompt`&&(0,$.jsx)(tC,{title:$n[0].title,toolInputSummary:$n[0].toolInputSummary,request:$n[0].request,onRespond:e=>{let t=$n[0];t&&(t.resolve({prompt_response:t.request.prompt,selected:e}),er(([,...e])=>e))},onAbort:()=>{let e=$n[0];e&&(e.reject(Error(`Prompt cancelled by user`)),er(([,...e])=>e))}},$n[0].request.prompt),uo===`elicitation`&&(0,$.jsx)(QS,{event:H.queue[0],onResponse:(e,t)=>{let n=H.queue[0];n&&(n.respond({action:e,content:t}),n.params.mode===`url`&&e===`accept`||U(e=>({...e,elicitation:{queue:e.elicitation.queue.slice(1)}})))},onWaitingDismiss:e=>{let t=H.queue[0];U(e=>({...e,elicitation:{queue:e.elicitation.queue.slice(1)}})),t?.onWaitingDismiss?.(e)}},H.queue[0].serverName+`:`+String(H.queue[0].requestId)),uo===`cost`&&(0,$.jsx)(Hv,{onDone:()=>{Yi(!1),oa(!0),If(e=>({...e,hasAcknowledgedCostThreshold:!0})),Z(`tengu_cost_threshold_acknowledged`,{})}}),uo===`idle-return`&&$i&&(0,$.jsx)(Uv,{idleMinutes:$i.idleMinutes,totalInputTokens:ct(),onDone:async e=>{let t=$i;if(ea(null),Z(`tengu_idle_return_action`,{action:e,idleMinutes:Math.round(t.idleMinutes),messageCount:gr.current.length,totalInputTokens:ct()}),e===`dismiss`){ti(t.input);return}if(e===`never`&&If(e=>e.idleReturnDismissed?e:{...e,idleReturnDismissed:!0}),e===`clear`){let{clearConversation:e}=await import(`./conversation-CH9ouFai.js`);await e({setMessages:K,readFileState:Ga.current,discoveredSkillNames:Ja.current,loadedNestedMemoryPaths:Ya.current,getAppState:()=>be.getState(),setAppState:U,setConversationId:Qi}),or.current=!1,ar(void 0),Ka.current.clear(),qa.current=0}na.current=!0,Fo.current(t.input,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}})}}),uo===`ide-onboarding`&&(0,$.jsx)(vr,{onDone:()=>Ct(!1),installationStatus:yt}),process.env.USER_TYPE===`ant`&&uo===`model-switch`&&UM&&(0,$.jsx)(UM,{onDone:(e,t)=>{Tt(!1),e===`switch`&&t&&U(e=>({...e,mainLoopModel:t,mainLoopModelForSession:null}))}}),process.env.USER_TYPE===`ant`&&uo===`undercover-callout`&&GM&&(0,$.jsx)(GM,{onDone:()=>Vn(!1)}),uo===`remote-callout`&&(0,$.jsx)(Zg,{onDone:e=>{U(t=>t.showRemoteCallout?{...t,showRemoteCallout:!1,...e===`enable`&&{replBridgeEnabled:!0,replBridgeExplicit:!0,replBridgeOutboundOnly:!1}}:t)}}),no,uo===`plugin-hint`&&Pt&&(0,$.jsx)(TA,{pluginName:Pt.pluginName,pluginDescription:Pt.pluginDescription,marketplaceName:Pt.marketplaceName,sourceCommand:Pt.sourceCommand,onResponse:Ft}),uo===`search-extra-tools-hint`&&It.visible&&(0,$.jsx)(DA,{tools:It.tools,onSelect:It.handleSelect,onDismiss:It.handleDismiss}),uo===`lsp-recommendation`&&At&&(0,$.jsx)(SA,{pluginName:At.pluginName,pluginDescription:At.pluginDescription,fileExtension:At.fileExtension,onResponse:Nt}),uo===`desktop-upsell`&&(0,$.jsx)(cv,{onDone:()=>kt(!1)}),uo===`ultraplan-choice`&&me&&(0,$.jsx)(bj,{plan:me.plan,sessionId:me.sessionId,taskId:me.taskId,setMessages:K,readFileState:Ga.current,getAppState:()=>be.getState(),setConversationId:Qi}),uo===`ultraplan-launch`&&he&&(0,$.jsx)(Cj,{onChoice:(e,t)=>{let n=he.blurb;if(U(e=>e.ultraplanLaunchPending?{...e,ultraplanLaunchPending:void 0}:e),e===`cancel`)return;K(e=>[...e,xc(wn(`ultraplan`,n))]);let r=e=>K(t=>[...t,xc(`<local-command-stdout>${Lt(e)}</local-command-stdout>`)]);fu({blurb:n,promptIdentifier:t?.promptIdentifier,getAppState:()=>be.getState(),setAppState:U,signal:No().signal,disconnectedBridge:t?.disconnectedBridge,onSessionReady:e=>{if(!_n.isActive){r(e);return}let t=_n.subscribe(()=>{_n.isActive||(t(),be.getState().ultraplanSessionUrl&&r(e))})}}).then(r).catch(X)}}),ja(),!Hn?.shouldHidePromptInput&&!uo&&!io&&!x&&!Ar&&(0,$.jsxs)($.Fragment,{children:[Qa&&(0,$.jsx)(nj,{onRun:ko,onCancel:Ao,reason:aj(Qa)}),Ba.state===`closed`?Va.state===`closed`?(0,$.jsx)(jk,{state:za.state,lastResponse:za.lastResponse,handleSelect:za.handleSelect,handleTranscriptSelect:za.handleTranscriptSelect,inputValue:Xr,setInputValue:ti,onRequestFeedback:to.current?void 0:jo}):(0,$.jsx)(jk,{state:Va.state,lastResponse:Va.lastResponse,handleSelect:Va.handleSelect,handleTranscriptSelect:Va.handleTranscriptSelect,inputValue:Xr,setInputValue:ti,onRequestFeedback:jo,message:`How well did Claude use its memory? (optional)`}):(0,$.jsx)(jk,{state:Ba.state,lastResponse:Ba.lastResponse,handleSelect:Ba.handleSelect,inputValue:Xr,setInputValue:ti,onRequestFeedback:jo}),Ha.state!==`closed`&&(0,$.jsx)(jk,{state:Ha.state,lastResponse:null,handleSelect:()=>{},handleTranscriptSelect:Ha.handleTranscriptSelect,inputValue:Xr,setInputValue:ti}),La.suggestion&&(0,$.jsx)(hO,{isOpen:La.isOpen,skillName:La.suggestion.skillName,updates:La.suggestion.updates,handleSelect:La.handleSelect,inputValue:Xr,setInputValue:ti}),Ra&&(0,$.jsx)(sj,{}),(0,$.jsx)(MD,{debug:n,ideSelection:at,hasSuppressedDialogs:!!fo,isLocalJSXCommandActive:dr,getToolUseContext:xo,toolPermissionContext:I,setToolPermissionContext:yo,apiKeyStatus:Xa,commands:Kt,agents:ae.activeAgents,isLoading:W,onExit:Lo,verbose:L,messages:G,onAutoUpdaterResult:zn,autoUpdaterResult:Rn,input:Xr,onInputChange:ti,mode:ni,onModeChange:ri,stashedPrompt:ai,setStashedPrompt:oi,submitCount:bi,onShowMessageSelector:zo,onMessageActionsEnter:void 0,mcpClients:et,pastedContents:vi,setPastedContents:yi,vimMode:sa,setVimMode:ca,showBashesDialog:la,setShowBashesDialog:ua,onSubmit:Oo,isSearchingHistory:da,setIsSearchingHistory:pa,helpOpen:ma,setHelpOpen:_a,insertTextRef:ei}),(0,$.jsx)(uk,{onBackgroundSession:Co,isLoading:W}),(0,$.jsx)(ik,{})]}),Ar&&(0,$.jsx)(wc,{cursor:Ar}),uo===`message-selector`&&(0,$.jsx)(gg,{messages:G,preselectedMessage:Gi,onPreRestore:mo,onRestoreCode:async e=>{await ad(e=>{U(t=>({...t,fileHistory:e(t.fileHistory)}))},e.uuid)},onSummarize:async(e,t,n=`from`)=>{let r=Mt(G),i=r.indexOf(e);if(i===-1){K(e=>[...e,Td(`That message is no longer in the active context (snipped or pre-compact). Choose a more recent message.`,`warning`)]);return}let a=No(),o=xo(r,[],a,Se),s=o.getAppState(),c=await dl(o.options.tools,o.options.mainLoopModel,Array.from(s.toolPermissionContext.additionalWorkingDirectories.keys()),o.options.mcpClients),l=Mo({mainThreadAgentDefinition:void 0,toolUseContext:o,customSystemPrompt:o.options.customSystemPrompt,defaultSystemPrompt:c,appendSystemPrompt:o.options.appendSystemPrompt}),[u,d]=await Promise.all([pi(),Vc()]),f=await rn(r,i,o,{systemPrompt:l,userContext:u,systemContext:d,toolUseContext:o,forkContextMessages:r},t,n),p=f.messagesToKeep??[],m=n===`up_to`?[...f.summaryMessages,...p]:[...p,...f.summaryMessages],h=[f.boundaryMarker,...m,...f.attachments,...f.hookResults];if(oo()&&n===`from`?K(t=>{let n=t.findIndex(t=>t.uuid===e.uuid);return[...t.slice(0,n===-1?0:n),...h]}):K(h),PM?.setContextBlocked(!1),Qi(Ov()),cs(o.options.querySource),n===`from`){let t=fa(e);t&&(ti(t.text),ri(t.mode))}let g=yn(`app:toggleTranscript`,`Global`,`ctrl+o`);Ze({key:`summarize-ctrl-o-hint`,text:`Conversation summarized (${g} for history)`,priority:`medium`,timeoutMs:8e3})},onRestoreMessage:Uo,onClose:()=>{Wi(!1),Ki(void 0)}}),process.env.USER_TYPE===`ant`&&(0,$.jsx)(gj,{})]})})})},os)]});return oo()?(0,$.jsx)(_e,{mouseTracking:Po(),children:ec}):ec}export{rN as t};
142
+ `)},t=()=>{ls(e=>e+1)};return as?.on(`suspend`,e),as?.on(`resume`,t),()=>{as?.off(`suspend`,e),as?.off(`resume`,t)}},[as]);let ds=(0,Q.useMemo)(()=>{if(!W)return null;let e=G.filter(e=>{if(e.type!==`progress`)return!1;let t=e.data;return t.type===`hook_progress`&&(t.hookEvent===`Stop`||t.hookEvent===`SubagentStop`)});if(e.length===0)return null;let t=e.at(-1)?.toolUseID;if(!t||G.some(e=>e.type===`system`&&e.subtype===`stop_hook_summary`&&e.toolUseID===t))return null;let n=e.filter(e=>e.toolUseID===t),r=n.length,i=jf(G,e=>{if(e.type!==`attachment`)return!1;let n=e.attachment;return`hookEvent`in n&&(n.hookEvent===`Stop`||n.hookEvent===`SubagentStop`)&&`toolUseID`in n&&n.toolUseID===t}),a=n.find(e=>e.data.statusMessage)?.data.statusMessage;if(a)return r===1?`${a}…`:`${a}… ${i}/${r}`;let o=n[0]?.data.hookEvent===`SubagentStop`?`subagent stop`:`stop`;if(process.env.USER_TYPE===`ant`){let e=n[i]?.data.command,t=e?` '${Tp(e,40)}'`:``;return r===1?`running ${o} hook${t}`:`running ${o} hook${t}\u2026 ${i}/${r}`}return r===1?`running ${o} hook`:`running stop hooks… ${i}/${r}`},[G,W]),fs=(0,Q.useCallback)(()=>{Jr({messagesLength:G.length,streamingToolUsesLength:Xt.length})},[G.length,Xt.length]),ps=(0,Q.useCallback)(()=>{Jr(null)},[]),ms=oo()&&!N,_s=(0,Q.useRef)(null),[vs,ys]=(0,Q.useState)(!1),[bs,Ss]=(0,Q.useState)(``),[Cs,ws]=(0,Q.useState)(0),[Ts,Es]=(0,Q.useState)(0),Os=(0,Q.useCallback)((e,t)=>{ws(e),Es(t)},[]);oe((e,t,n)=>{if(t.ctrl||t.meta)return;if(e===`/`){_s.current?.setAnchor(),ys(!0),n.stopImmediatePropagation();return}let r=e[0];if((r===`n`||r===`N`)&&e===r.repeat(e.length)&&Cs>0){let t=r===`n`?_s.current?.nextMatch:_s.current?.prevMatch;if(t)for(let n=0;n<e.length;n++)t();n.stopImmediatePropagation()}},{isActive:Pe===`transcript`&&ms&&!vs&&!Be});let{setQuery:ks,scanElement:As,setPositions:js}=fe(),Ms=de().columns,Ps=Q.useRef(Ms);Q.useEffect(()=>{Ps.current!==Ms&&(Ps.current=Ms,(bs||vs)&&(ys(!1),Ss(``),ws(0),Es(0),_s.current?.disarmSearch(),ks(``)))},[Ms,bs,vs,ks]),oe((e,t,n)=>{if(!(t.ctrl||t.meta)){if(e===`q`){ps(),n.stopImmediatePropagation();return}if(e===`[`&&!Be)Ve(!0),Re(!0),n.stopImmediatePropagation();else if(e===`v`){if(n.stopImmediatePropagation(),Je.current)return;Je.current=!0;let e=Ge.current,t=t=>{e===Ge.current&&(clearTimeout(Ke.current),We(t))};t(`rendering ${Wr.length} messages…`),(async()=>{try{let e=Math.max(80,(process.stdout.columns??80)-6),n=(await Vv(Wr,Vt,e)).replace(/[ \t]+$/gm,``),r=xv(gv(),`cc-transcript-${Date.now()}.txt`);await jv(r,n);let i=Vg(r);t(i?`opening ${r}`:`wrote ${r} · no $VISUAL/$EDITOR set`)}catch(e){t(`render failed: ${e instanceof Error?e.message:String(e)}`)}Je.current=!1,e===Ge.current&&(Ke.current=setTimeout(e=>e(``),4e3,We))})()}}},{isActive:Pe===`transcript`&&ms&&!vs});let Fs=Pe===`transcript`&&ms;(0,Q.useEffect)(()=>{Fs||(Ss(``),ws(0),Es(0),ys(!1),Ge.current++,clearTimeout(Ke.current),Ve(!1),We(``))},[Fs]),(0,Q.useEffect)(()=>{ks(Fs?bs:``),Fs||js(null)},[Fs,bs,ks,js]);let Is={screen:Pe,setScreen:Fe,showAllInTranscript:Ie,setShowAllInTranscript:Re,messageCount:G.length,onEnterTranscript:fs,onExitTranscript:ps,virtualScrollActive:ms,searchBarOpen:vs},Rs=qr?Wr.slice(0,qr.messagesLength):Wr,Bs=qr?Xt.slice(0,qr.streamingToolUsesLength):Xt;AO({onOpenBackgroundTasks:dr?void 0:()=>ua(!0),onTogglePipeSelector:()=>{U(e=>{let t=e.pipeIpc??{};return{...e,pipeIpc:{...t,selectorOpen:!t.selectorOpen}}})}});let Vs=ge?B[ge]:void 0,Hs=Vs&&Yc(Vs)?Vs:void 0,Us=Oi||!W,Ws=Hs?.messages,qs=(0,Q.useMemo)(()=>{if(!Hs)return;let e=Ws??[];if(!Yc(Hs)||Hs.agentType!==`fork`||!Hs.prompt)return e;let t=Hs.prompt.trim(),n=-1,r=-1,i=!1;for(let a=0;a<e.length;a++){let o=e[a];if(o.type===`user`&&Array.isArray(o.message?.content)){if(o.message.content.some(nN))n=a;else if(!i){let e=o.message.content.find(e=>e.type===`text`&&typeof e.text==`string`);e&&e.text.trim()===t&&(i=!0)}continue}o.type===`assistant`&&Array.isArray(o.message?.content)&&o.message.content.some(e=>e.type===`tool_use`)&&(r=a)}let a=n===-1?e:e.map((e,t)=>t!==n||!Array.isArray(e.message?.content)?e:{...e,message:{...e.message,content:e.message.content.filter(e=>!nN(e))}});if(i)return a;let o=n===-1?r+1:n+1,s=Pa({content:Hs.prompt,timestamp:new Date(Hs.startTime).toISOString()});return[...a.slice(0,o),s,...a.slice(o)]},[Hs,Ws]),Js=Hs?qs??[]:Us?G:Wr;if(Pe===`transcript`){let e=oo()&&!N&&!Be?mn:void 0,t=(0,$.jsx)(J_,{messages:Rs,tools:Vt,commands:Kt,verbose:!0,toolJSX:null,toolUseConfirmQueue:[],inProgressToolUseIDs:ci,isMessageSelectorVisible:!1,conversationId:Xi,screen:Pe,agentDefinitions:ae,streamingToolUses:Bs,showAllInTranscript:Ie,onOpenRateLimitOptions:Io,isLoading:W,hidePastThinking:!0,streamingThinking:Qt,scrollRef:e,jumpRef:_s,onSearchMatchesChange:Os,scanElement:As,setPositions:js,disableRenderCap:Be}),n=Hn&&(0,$.jsx)(b,{flexDirection:`column`,width:`100%`,children:Hn.jsx}),r=(0,$.jsxs)(Ii,{children:[(0,$.jsx)(eN,{isAnimating:fr,title:lr,disabled:M,noPrefix:!1}),(0,$.jsx)(TO,{...Is}),(0,$.jsx)(DO,{onSubmit:Oo,isActive:!Hn?.isLocalJSXCommand}),e?(0,$.jsx)(Xj,{scrollRef:mn,isActive:uo!==`ultraplan-choice`,isModal:!vs,onScroll:()=>_s.current?.disarmSearch()}):null,(0,$.jsx)(kO,{..._o}),e?(0,$.jsx)(K_,{scrollRef:mn,scrollable:(0,$.jsxs)($.Fragment,{children:[t,n,(0,$.jsx)($k,{})]}),bottom:vs?(0,$.jsx)(XM,{jumpRef:_s,initialQuery:``,count:Cs,current:Ts,onClose:e=>{Ss(Cs>0?e:``),ys(!1),e||(ws(0),Es(0),_s.current?.setSearchQuery(``))},onCancel:()=>{ys(!1),_s.current?.setSearchQuery(``),_s.current?.setSearchQuery(bs),ks(bs)},setHighlight:ks}):(0,$.jsx)(YM,{showAllInTranscript:Ie,virtualScroll:!0,status:He||void 0,searchBadge:bs&&Cs>0?{current:Ts,count:Cs}:void 0})}):(0,$.jsxs)($.Fragment,{children:[t,n,(0,$.jsx)($k,{}),(0,$.jsx)(YM,{showAllInTranscript:Ie,virtualScroll:!1,suppressShowAll:Be,status:He||void 0})]})]});return e?(0,$.jsx)(_e,{mouseTracking:Po(),children:r}):r}let Ys=Cn&&!Hs&&Js.length<=En.current?Cn:void 0,Zs=uo===`tool-permission`?(0,$.jsx)(jS,{onDone:()=>Jn(([e,...t])=>t),onReject:ho,toolUseConfirm:Kn[0],toolUseContext:xo(G,G,en??No(),Se),verbose:L,setStickyFooter:oo()?Xn:void 0},Kn[0]?.toolUseID):null,Qs=oo()&&Hn?.isLocalJSXCommand===!0,$s=Qs?Hn.jsx:null,ec=(0,$.jsxs)(Ii,{children:[(0,$.jsx)(eN,{isAnimating:fr,title:lr,disabled:M,noPrefix:!1}),(0,$.jsx)(TO,{...Is}),(0,$.jsx)(DO,{onSubmit:Oo,isActive:!Hn?.isLocalJSXCommand}),(0,$.jsx)(Xj,{scrollRef:mn,isActive:oo()&&($s!=null||!uo||uo===`tool-permission`),onScroll:Hr}),null,(0,$.jsx)(kO,{..._o}),(0,$.jsx)(ig,{dynamicMcpConfig:ke,isStrictMcpConfig:m,children:(0,$.jsx)(K_,{scrollRef:mn,overlay:Zs,modal:$s,modalScrollRef:hn,dividerYRef:Cr,hidePill:!!Hs,newMessageCount:Fr?.count??0,onPillClick:()=>{jr(null),Er(mn.current)},scrollable:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(J_,{messages:Js,tools:Vt,commands:Kt,verbose:L,toolJSX:Hn,toolUseConfirmQueue:Kn,inProgressToolUseIDs:ci,isMessageSelectorVisible:Ui,conversationId:Xi,screen:Pe,streamingToolUses:Xt,showAllInTranscript:Ie,agentDefinitions:ae,onOpenRateLimitOptions:Io,isLoading:W,streamingText:W&&!Hs?Ai:null,isBriefOnly:!Hs&&De,unseenDivider:Hs?void 0:Fr,scrollRef:oo()?mn:void 0,trackStickyPrompt:oo()?!0:void 0,cursor:Ar,setCursor:jr,cursorNavRef:Mr}),(0,$.jsx)(LA,{}),!x&&Ys&&!$s&&(0,$.jsx)(cr,{param:{text:Ys,type:`text`},addMargin:!0,verbose:L}),Hn&&!(Hn.isLocalJSXCommand&&Hn.isImmediate)&&!Qs&&(0,$.jsx)(b,{flexDirection:`column`,width:`100%`,children:Hn.jsx}),process.env.USER_TYPE===`ant`&&(0,$.jsx)(oj,{}),(0,$.jsx)(b,{flexGrow:1}),Na&&(0,$.jsx)(qi,{mode:qt,spinnerTip:ue,responseLengthRef:Si,apiMetricsRef:wi,overrideMessage:Ni,spinnerSuffix:ds,verbose:L,loadingStartTimeRef:On,totalPausedMsRef:kn,pauseStartTimeRef:An,overrideColor:Fi,overrideShimmerColor:Bi,hasActiveTools:ci.size>0,leaderIsIdle:!W}),!Na&&!W&&!Cn&&De&&!Hs&&(0,$.jsx)(hi,{})]}),bottom:(0,$.jsx)(b,{flexDirection:`row`,width:`100%`,alignItems:`flex-end`,children:(0,$.jsxs)(b,{flexDirection:`column`,flexGrow:1,children:[oo()&&(0,$.jsx)(pD,{}),Yn,Hn?.isLocalJSXCommand&&Hn.isImmediate&&!Qs&&(0,$.jsx)(b,{flexDirection:`column`,width:`100%`,children:Hn.jsx}),!Na&&!Hn?.isLocalJSXCommand&&pe&&zt&&zt.length>0&&(0,$.jsx)(b,{width:`100%`,flexDirection:`column`,children:(0,$.jsx)(Ro,{tasks:zt,isStandalone:!0})}),uo===`sandbox-permission`&&(0,$.jsx)(Zk,{hostPattern:Zn[0].hostPattern,onUserResponse:e=>{let{allow:t,persistToSettings:n}=e,r=Zn[0];if(!r)return;let i=r.hostPattern.host;Qn(e=>(e.filter(e=>e.hostPattern.host===i).forEach(e=>e.resolvePromise(t)),e.filter(e=>e.hostPattern.host!==i)));let a=tr.current.get(i);if(a){for(let e of a)e();tr.current.delete(i)}}},Zn[0].hostPattern.host),uo===`prompt`&&(0,$.jsx)(tC,{title:$n[0].title,toolInputSummary:$n[0].toolInputSummary,request:$n[0].request,onRespond:e=>{let t=$n[0];t&&(t.resolve({prompt_response:t.request.prompt,selected:e}),er(([,...e])=>e))},onAbort:()=>{let e=$n[0];e&&(e.reject(Error(`Prompt cancelled by user`)),er(([,...e])=>e))}},$n[0].request.prompt),uo===`elicitation`&&(0,$.jsx)(QS,{event:H.queue[0],onResponse:(e,t)=>{let n=H.queue[0];n&&(n.respond({action:e,content:t}),n.params.mode===`url`&&e===`accept`||U(e=>({...e,elicitation:{queue:e.elicitation.queue.slice(1)}})))},onWaitingDismiss:e=>{let t=H.queue[0];U(e=>({...e,elicitation:{queue:e.elicitation.queue.slice(1)}})),t?.onWaitingDismiss?.(e)}},H.queue[0].serverName+`:`+String(H.queue[0].requestId)),uo===`cost`&&(0,$.jsx)(Hv,{onDone:()=>{Yi(!1),oa(!0),If(e=>({...e,hasAcknowledgedCostThreshold:!0})),Z(`tengu_cost_threshold_acknowledged`,{})}}),uo===`idle-return`&&$i&&(0,$.jsx)(Uv,{idleMinutes:$i.idleMinutes,totalInputTokens:ct(),onDone:async e=>{let t=$i;if(ea(null),Z(`tengu_idle_return_action`,{action:e,idleMinutes:Math.round(t.idleMinutes),messageCount:gr.current.length,totalInputTokens:ct()}),e===`dismiss`){ti(t.input);return}if(e===`never`&&If(e=>e.idleReturnDismissed?e:{...e,idleReturnDismissed:!0}),e===`clear`){let{clearConversation:e}=await import(`./conversation-BBB91hEw.js`);await e({setMessages:K,readFileState:Ga.current,discoveredSkillNames:Ja.current,loadedNestedMemoryPaths:Ya.current,getAppState:()=>be.getState(),setAppState:U,setConversationId:Qi}),or.current=!1,ar(void 0),Ka.current.clear(),qa.current=0}na.current=!0,Fo.current(t.input,{setCursorOffset:()=>{},clearBuffer:()=>{},resetHistory:()=>{}})}}),uo===`ide-onboarding`&&(0,$.jsx)(vr,{onDone:()=>Ct(!1),installationStatus:yt}),process.env.USER_TYPE===`ant`&&uo===`model-switch`&&UM&&(0,$.jsx)(UM,{onDone:(e,t)=>{Tt(!1),e===`switch`&&t&&U(e=>({...e,mainLoopModel:t,mainLoopModelForSession:null}))}}),process.env.USER_TYPE===`ant`&&uo===`undercover-callout`&&GM&&(0,$.jsx)(GM,{onDone:()=>Vn(!1)}),uo===`remote-callout`&&(0,$.jsx)(Zg,{onDone:e=>{U(t=>t.showRemoteCallout?{...t,showRemoteCallout:!1,...e===`enable`&&{replBridgeEnabled:!0,replBridgeExplicit:!0,replBridgeOutboundOnly:!1}}:t)}}),no,uo===`plugin-hint`&&Pt&&(0,$.jsx)(TA,{pluginName:Pt.pluginName,pluginDescription:Pt.pluginDescription,marketplaceName:Pt.marketplaceName,sourceCommand:Pt.sourceCommand,onResponse:Ft}),uo===`search-extra-tools-hint`&&It.visible&&(0,$.jsx)(DA,{tools:It.tools,onSelect:It.handleSelect,onDismiss:It.handleDismiss}),uo===`lsp-recommendation`&&At&&(0,$.jsx)(SA,{pluginName:At.pluginName,pluginDescription:At.pluginDescription,fileExtension:At.fileExtension,onResponse:Nt}),uo===`desktop-upsell`&&(0,$.jsx)(cv,{onDone:()=>kt(!1)}),uo===`ultraplan-choice`&&me&&(0,$.jsx)(bj,{plan:me.plan,sessionId:me.sessionId,taskId:me.taskId,setMessages:K,readFileState:Ga.current,getAppState:()=>be.getState(),setConversationId:Qi}),uo===`ultraplan-launch`&&he&&(0,$.jsx)(Cj,{onChoice:(e,t)=>{let n=he.blurb;if(U(e=>e.ultraplanLaunchPending?{...e,ultraplanLaunchPending:void 0}:e),e===`cancel`)return;K(e=>[...e,xc(wn(`ultraplan`,n))]);let r=e=>K(t=>[...t,xc(`<local-command-stdout>${Lt(e)}</local-command-stdout>`)]);fu({blurb:n,promptIdentifier:t?.promptIdentifier,getAppState:()=>be.getState(),setAppState:U,signal:No().signal,disconnectedBridge:t?.disconnectedBridge,onSessionReady:e=>{if(!_n.isActive){r(e);return}let t=_n.subscribe(()=>{_n.isActive||(t(),be.getState().ultraplanSessionUrl&&r(e))})}}).then(r).catch(X)}}),ja(),!Hn?.shouldHidePromptInput&&!uo&&!io&&!x&&!Ar&&(0,$.jsxs)($.Fragment,{children:[Qa&&(0,$.jsx)(nj,{onRun:ko,onCancel:Ao,reason:aj(Qa)}),Ba.state===`closed`?Va.state===`closed`?(0,$.jsx)(jk,{state:za.state,lastResponse:za.lastResponse,handleSelect:za.handleSelect,handleTranscriptSelect:za.handleTranscriptSelect,inputValue:Xr,setInputValue:ti,onRequestFeedback:to.current?void 0:jo}):(0,$.jsx)(jk,{state:Va.state,lastResponse:Va.lastResponse,handleSelect:Va.handleSelect,handleTranscriptSelect:Va.handleTranscriptSelect,inputValue:Xr,setInputValue:ti,onRequestFeedback:jo,message:`How well did Claude use its memory? (optional)`}):(0,$.jsx)(jk,{state:Ba.state,lastResponse:Ba.lastResponse,handleSelect:Ba.handleSelect,inputValue:Xr,setInputValue:ti,onRequestFeedback:jo}),Ha.state!==`closed`&&(0,$.jsx)(jk,{state:Ha.state,lastResponse:null,handleSelect:()=>{},handleTranscriptSelect:Ha.handleTranscriptSelect,inputValue:Xr,setInputValue:ti}),La.suggestion&&(0,$.jsx)(hO,{isOpen:La.isOpen,skillName:La.suggestion.skillName,updates:La.suggestion.updates,handleSelect:La.handleSelect,inputValue:Xr,setInputValue:ti}),Ra&&(0,$.jsx)(sj,{}),(0,$.jsx)(MD,{debug:n,ideSelection:at,hasSuppressedDialogs:!!fo,isLocalJSXCommandActive:dr,getToolUseContext:xo,toolPermissionContext:I,setToolPermissionContext:yo,apiKeyStatus:Xa,commands:Kt,agents:ae.activeAgents,isLoading:W,onExit:Lo,verbose:L,messages:G,onAutoUpdaterResult:zn,autoUpdaterResult:Rn,input:Xr,onInputChange:ti,mode:ni,onModeChange:ri,stashedPrompt:ai,setStashedPrompt:oi,submitCount:bi,onShowMessageSelector:zo,onMessageActionsEnter:void 0,mcpClients:et,pastedContents:vi,setPastedContents:yi,vimMode:sa,setVimMode:ca,showBashesDialog:la,setShowBashesDialog:ua,onSubmit:Oo,isSearchingHistory:da,setIsSearchingHistory:pa,helpOpen:ma,setHelpOpen:_a,insertTextRef:ei}),(0,$.jsx)(uk,{onBackgroundSession:Co,isLoading:W}),(0,$.jsx)(ik,{})]}),Ar&&(0,$.jsx)(wc,{cursor:Ar}),uo===`message-selector`&&(0,$.jsx)(gg,{messages:G,preselectedMessage:Gi,onPreRestore:mo,onRestoreCode:async e=>{await ad(e=>{U(t=>({...t,fileHistory:e(t.fileHistory)}))},e.uuid)},onSummarize:async(e,t,n=`from`)=>{let r=Mt(G),i=r.indexOf(e);if(i===-1){K(e=>[...e,Td(`That message is no longer in the active context (snipped or pre-compact). Choose a more recent message.`,`warning`)]);return}let a=No(),o=xo(r,[],a,Se),s=o.getAppState(),c=await dl(o.options.tools,o.options.mainLoopModel,Array.from(s.toolPermissionContext.additionalWorkingDirectories.keys()),o.options.mcpClients),l=Mo({mainThreadAgentDefinition:void 0,toolUseContext:o,customSystemPrompt:o.options.customSystemPrompt,defaultSystemPrompt:c,appendSystemPrompt:o.options.appendSystemPrompt}),[u,d]=await Promise.all([pi(),Vc()]),f=await rn(r,i,o,{systemPrompt:l,userContext:u,systemContext:d,toolUseContext:o,forkContextMessages:r},t,n),p=f.messagesToKeep??[],m=n===`up_to`?[...f.summaryMessages,...p]:[...p,...f.summaryMessages],h=[f.boundaryMarker,...m,...f.attachments,...f.hookResults];if(oo()&&n===`from`?K(t=>{let n=t.findIndex(t=>t.uuid===e.uuid);return[...t.slice(0,n===-1?0:n),...h]}):K(h),PM?.setContextBlocked(!1),Qi(Ov()),cs(o.options.querySource),n===`from`){let t=fa(e);t&&(ti(t.text),ri(t.mode))}let g=yn(`app:toggleTranscript`,`Global`,`ctrl+o`);Ze({key:`summarize-ctrl-o-hint`,text:`Conversation summarized (${g} for history)`,priority:`medium`,timeoutMs:8e3})},onRestoreMessage:Uo,onClose:()=>{Wi(!1),Ki(void 0)}}),process.env.USER_TYPE===`ant`&&(0,$.jsx)(gj,{})]})})})},os)]});return oo()?(0,$.jsx)(_e,{mouseTracking:Po(),children:ec}):ec}export{rN as t};