@readmagic/workmate 0.0.30 → 0.0.32

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 (215) hide show
  1. package/dist/chunks/{AddWorkspaceDirectory-B03NZZuQ.js → AddWorkspaceDirectory-vexJPqPV.js} +1 -1
  2. package/dist/chunks/AgentsMdExternalIncludesDialog-C1YY3Zjr.js +1 -0
  3. package/dist/chunks/{AgentsMdExternalIncludesDialog-CIyefOzT.js → AgentsMdExternalIncludesDialog-DgfH_qbT.js} +1 -1
  4. package/dist/chunks/{App-WBysAL0_.js → App-Dc1bPgMO.js} +1 -1
  5. package/dist/chunks/{BackgroundTasksDialog-CvvrjBoq.js → BackgroundTasksDialog-By1aAUjA.js} +1 -1
  6. package/dist/chunks/{BypassPermissionsModeDialog-DdVbMyla.js → BypassPermissionsModeDialog-BfT29YcX.js} +1 -1
  7. package/dist/chunks/{CustomSelect-iSG1rbWU.js → CustomSelect-C1eyA6Kb.js} +1 -1
  8. package/dist/chunks/{DiffDialog-DSb46fzB.js → DiffDialog-DlzYbkSE.js} +1 -1
  9. package/dist/chunks/Doctor-BTo-aW25.js +1 -0
  10. package/dist/chunks/{Doctor-dR71Dg_D.js → Doctor-Bysh947B.js} +1 -1
  11. package/dist/chunks/{ExitFlow-BiBi5Sqk.js → ExitFlow-DdgKWYBy.js} +1 -1
  12. package/dist/chunks/{InvalidConfigDialog-7MkDSXXj.js → InvalidConfigDialog-B5hyg2fw.js} +1 -1
  13. package/dist/chunks/{InvalidSettingsDialog-D8Ves3Th.js → InvalidSettingsDialog-NORkKmDs.js} +1 -1
  14. package/dist/chunks/{KeybindingProviderSetup-DJSFdVYv.js → KeybindingProviderSetup-Dfo4pevM.js} +1 -1
  15. package/dist/chunks/{MCPConnectionManager-BZxRMdGO.js → MCPConnectionManager-DTNuL42C.js} +1 -1
  16. package/dist/chunks/{MCPToolListView-H_Kvvelz.js → MCPToolListView-CmyNoMRA.js} +1 -1
  17. package/dist/chunks/{McpParsingWarnings-D2xvaog9.js → McpParsingWarnings-F5n38r1V.js} +1 -1
  18. package/dist/chunks/{MessageSelector-DQgIgPij.js → MessageSelector-CB3shj7u.js} +1 -1
  19. package/dist/chunks/{Messages-DyQCr-od.js → Messages-DHOApZZj.js} +1 -1
  20. package/dist/chunks/{Onboarding-DFufTPIY.js → Onboarding-LjlAtPO-.js} +1 -1
  21. package/dist/chunks/{PromptInputFooterSuggestions-B9JRcHHE.js → PromptInputFooterSuggestions-ChS18ulx.js} +1 -1
  22. package/dist/chunks/{PromptInputHelpMenu-DcGXK5lt.js → PromptInputHelpMenu-BG4Xvwlp.js} +1 -1
  23. package/dist/chunks/{ProviderSetup-DJ_Z1BSe.js → ProviderSetup-ebTTSOUN.js} +1 -1
  24. package/dist/chunks/{QueryEngine-BQ5PSqKV.js → QueryEngine-D_X2cZgn.js} +1 -1
  25. package/dist/chunks/REPL-BmB39a3K.js +1 -0
  26. package/dist/chunks/REPL-CJAN4D4C.js +124 -0
  27. package/dist/chunks/{ResumeConversation-exTLviBY.js → ResumeConversation-Vsc6MgfT.js} +1 -1
  28. package/dist/chunks/SearchExtraToolsTool-DxijDdxt.js +1 -0
  29. package/dist/chunks/{Settings-nM6-cXh0.js → Settings-Bx9sAK4z.js} +2 -2
  30. package/dist/chunks/{Spinner-ChT4lOOg.js → Spinner-bYnSD54K.js} +1 -1
  31. package/dist/chunks/{TextInput-CanSwT9J.js → TextInput-DJaXm3Y2.js} +1 -1
  32. package/dist/chunks/{ThemePicker-CXzPiSy0.js → ThemePicker-DTRkcYKg.js} +1 -1
  33. package/dist/chunks/{TrustDialog-D0fJ-YIw.js → TrustDialog-CCLPfwKL.js} +1 -1
  34. package/dist/chunks/{ValidationErrorsList-29bQ0l-Q.js → ValidationErrorsList-Cw-sjz1h.js} +1 -1
  35. package/dist/chunks/{_baseEach-DPcnudh_.js → _baseEach-CVpc553F.js} +1 -1
  36. package/dist/chunks/{add-dir-DbNz1SeY.js → add-dir-CC99_pE2.js} +1 -1
  37. package/dist/chunks/{agentDisplay-Bif3eE1e.js → agentDisplay-CouNgts6.js} +1 -1
  38. package/dist/chunks/{agents-CbsNbPbp.js → agents-B0CpBZFY.js} +1 -1
  39. package/dist/chunks/{agents-yvC-VikU.js → agents-ByQvpZ-y.js} +1 -1
  40. package/dist/chunks/{allErrors-Bv1e8fra.js → allErrors-BlYbbyyw.js} +1 -1
  41. package/dist/chunks/{appleTerminalBackup-Ct9hf1QQ.js → appleTerminalBackup-j8nI5uNK.js} +1 -1
  42. package/dist/chunks/{backgroundHousekeeping-C75FgxW1.js → backgroundHousekeeping-C86ALKjw.js} +1 -1
  43. package/dist/chunks/backgroundHousekeeping-FTpq_e19.js +1 -0
  44. package/dist/chunks/{banner-D5m9LUjl.js → banner-BsO6K4Ve.js} +1 -1
  45. package/dist/chunks/{branch-DOQ3yNds.js → branch-BQ_M1T0j.js} +1 -1
  46. package/dist/chunks/{btw-DUjuwyMH.js → btw-y1tuqCvG.js} +1 -1
  47. package/dist/chunks/caches-CO82GKDD.js +1 -0
  48. package/dist/chunks/{caches-BKAPMXp9.js → caches-CcK6hjFh.js} +1 -1
  49. package/dist/chunks/{channel-C8JmEI06.js → channel-BocoQ6RM.js} +1 -1
  50. package/dist/chunks/{channel-TEYwDITo.js → channel-D0MXuZ5p.js} +1 -1
  51. package/dist/chunks/{clear-BFlTcvMt.js → clear-Dh0ZUTyq.js} +1 -1
  52. package/dist/chunks/commands-CqI8Xw3J.js +1 -0
  53. package/dist/chunks/{compact-CyR7Sbo1.js → compact-Drhb6hKF.js} +1 -1
  54. package/dist/chunks/{config-Bjwat4P6.js → config-CMtnYZR9.js} +1 -1
  55. package/dist/chunks/config-CgzzjTUe.js +1 -0
  56. package/dist/chunks/config-DFScnxW_.js +1 -0
  57. package/dist/chunks/{context-Cm_gyngQ.js → context-BsbQnZOh.js} +1 -1
  58. package/dist/chunks/context-noninteractive-4Vn-NMDi.js +1 -0
  59. package/dist/chunks/{context-noninteractive-BDmFfPRt.js → context-noninteractive-BmjENE43.js} +1 -1
  60. package/dist/chunks/conversation-CSnPSTPX.js +1 -0
  61. package/dist/chunks/{conversation-CYZKYlWc.js → conversation-CxvOL7c4.js} +1 -1
  62. package/dist/chunks/{conversationRecovery-BUqpxLl-.js → conversationRecovery-CM94gKCQ.js} +1 -1
  63. package/dist/chunks/{crossProjectResume-BCa2l0KZ.js → crossProjectResume-Cq1oZ0F6.js} +1 -1
  64. package/dist/chunks/{diff-BEvpLh_b.js → diff-DHn2Qup2.js} +1 -1
  65. package/dist/chunks/doctor-DmJqkQqg.js +1 -0
  66. package/dist/chunks/{entry-JGyBs1p5.js → entry-tt6FI8GT.js} +1 -1
  67. package/dist/chunks/{exit-DU2KGyDk.js → exit-Q-xc8GEs.js} +1 -1
  68. package/dist/chunks/{extraUsage-cZx2XLx4.js → extraUsage-CnQUVxGf.js} +1 -1
  69. package/dist/chunks/extractMemories-DOfFiInm.js +1 -0
  70. package/dist/chunks/{fast-DUJq6-QE.js → fast-BeKnNZaH.js} +1 -1
  71. package/dist/chunks/fast-ClJARykP.js +1 -0
  72. package/dist/chunks/{fetchModelList-Dn8OahtV.js → fetchModelList-531U79it.js} +1 -1
  73. package/dist/chunks/fetchModelList-6pNEKem5.js +1 -0
  74. package/dist/chunks/{fileSuggestions-XLnnVLwx.js → fileSuggestions-sTa3fiI8.js} +1 -1
  75. package/dist/chunks/{gemini-qzPNGqOX.js → gemini-BzN-GtAf.js} +1 -1
  76. package/dist/chunks/{generateSessionName-CA-cc58H.js → generateSessionName-DGzU61fU.js} +1 -1
  77. package/dist/chunks/{goal-x9Pkx5nv.js → goal-DOF3kWop.js} +1 -1
  78. package/dist/chunks/{grok-36CpLjsq.js → grok-jsEI7sLT.js} +1 -1
  79. package/dist/chunks/{help-DwfAEV0X.js → help-CYH2fCqh.js} +1 -1
  80. package/dist/chunks/{hooks-DBmA-DWx.js → hooks-BBL70Pl1.js} +1 -1
  81. package/dist/chunks/hooks-ujSG0QYH.js +1 -0
  82. package/dist/chunks/{install-DF4ep6nb.js → install-DIv3UQHd.js} +1 -1
  83. package/dist/chunks/{instrumentation-BAbhrE3f.js → instrumentation-CzXp-AVx.js} +3 -3
  84. package/dist/chunks/{job-CFWKIjNl.js → job-B38MURYt.js} +1 -1
  85. package/dist/chunks/{launchLocalMemory-Cf8l-1fz.js → launchLocalMemory-ClOCP1QH.js} +1 -1
  86. package/dist/chunks/{launchOnboarding-8CDef-v1.js → launchOnboarding-Km72c-fV.js} +1 -1
  87. package/dist/chunks/loadAgentsDir-DbkvUkkw.js +1 -0
  88. package/dist/chunks/{loadAgentsDir-DnHL_5cU.js → loadAgentsDir-izAo6rpy.js} +468 -468
  89. package/dist/chunks/{loadPluginHooks-BuunKr9m.js → loadPluginHooks-BBa5nd8Z.js} +1 -1
  90. package/dist/chunks/localSearch-BObbNIdd.js +1 -0
  91. package/dist/chunks/{localSearch-LFCzV7VE.js → localSearch-BqJfYIga.js} +1 -1
  92. package/dist/chunks/{logoUtils-B8MIA7c5.js → logoUtils-Mvbi4iz4.js} +1 -1
  93. package/dist/chunks/{magicDocs-BoxJusTI.js → magicDocs-Beuyy0aV.js} +1 -1
  94. package/dist/chunks/{main-B9ciFYnO.js → main-CkDjqZz5.js} +6 -6
  95. package/dist/chunks/managedEnv-BV6T_PdC.js +1 -0
  96. package/dist/chunks/{managedEnv-B0mj-wgE.js → managedEnv-O3Xqe_lk.js} +1 -1
  97. package/dist/chunks/{mcp-B3Ewo-_h.js → mcp-BQubBUXS.js} +1 -1
  98. package/dist/chunks/{mcp-CHlAZvpV.js → mcp-D8SeoRoL.js} +1 -1
  99. package/dist/chunks/{mcp-DVKuOqvY.js → mcp-YtIqT_CN.js} +1 -1
  100. package/dist/chunks/{memory-Cr0d-s7U.js → memory-CFvypHzK.js} +1 -1
  101. package/dist/chunks/{mode-DBNBDbVP.js → mode-CLmT-L6g.js} +1 -1
  102. package/dist/chunks/{model-B2r1Ms0g.js → model-BdWlSYyq.js} +1 -1
  103. package/dist/chunks/{model-C9ANf1-R.js → model-cu29eOoS.js} +1 -1
  104. package/dist/chunks/{modelOptions-B4BWYms0.js → modelOptions-d5F1-LIh.js} +1 -1
  105. package/dist/chunks/{nativeInstaller-BDJxBAPV.js → nativeInstaller-oMsFvcUC.js} +1 -1
  106. package/dist/chunks/{notifications-BV-VeXyJ.js → notifications-ClFVMgnt.js} +1 -1
  107. package/dist/chunks/{onChangeAppState-BGWWkhBg.js → onChangeAppState-CvlswuIl.js} +1 -1
  108. package/dist/chunks/{openai-BL_IWBTr.js → openai-BoYbxtOG.js} +1 -1
  109. package/dist/chunks/{overlayContext-DGUFuee9.js → overlayContext-DNYDip6r.js} +1 -1
  110. package/dist/chunks/{partition-B2VCm4vu.js → partition-DRloaIYE.js} +1 -1
  111. package/dist/chunks/{permissions-Bkj1UB1h.js → permissions-RfHevyA2.js} +1 -1
  112. package/dist/chunks/{pidLock-CawSx6hb.js → pidLock-Bn9y7GMY.js} +2 -2
  113. package/dist/chunks/{plan-D7Ki5ADu.js → plan-CWfN8okc.js} +1 -1
  114. package/dist/chunks/{plugin-D7I6VZjh.js → plugin-Bee-4gyo.js} +1 -1
  115. package/dist/chunks/{pluginAutoupdate-Cr3jw-ky.js → pluginAutoupdate-xsdXYyA-.js} +1 -1
  116. package/dist/chunks/{pluginBlocklist-JG_kJSSK.js → pluginBlocklist-BTdbSAHE.js} +1 -1
  117. package/dist/chunks/{pluginCliCommands-BWIBBFJf.js → pluginCliCommands-AlVmiNIz.js} +1 -1
  118. package/dist/chunks/{pluginFlagging-yFcXMVin.js → pluginFlagging-BGOionRt.js} +1 -1
  119. package/dist/chunks/{pluginOperations-6QXjdPOb.js → pluginOperations-DYX4XPSc.js} +1 -1
  120. package/dist/chunks/{pluginStartupCheck-CkjyJ4RS.js → pluginStartupCheck-CGmmDw8e.js} +1 -1
  121. package/dist/chunks/pluginStartupCheck-CQi735a4.js +1 -0
  122. package/dist/chunks/{plugins-CMDfjFp-.js → plugins-_mf-Z_F5.js} +1 -1
  123. package/dist/chunks/{print-B6x_8O9w.js → print-9f_73BN2.js} +2 -2
  124. package/dist/chunks/{processBashCommand-D0BBcBHY.js → processBashCommand-Do8AJN_g.js} +1 -1
  125. package/dist/chunks/{processSlashCommand-BvjNuNyP.js → processSlashCommand-BcMLjAEQ.js} +1 -1
  126. package/dist/chunks/{projectOnboardingState-ofkjp9FJ.js → projectOnboardingState-DqGLXSM_.js} +1 -1
  127. package/dist/chunks/{prompt-DDlkyIzV.js → prompt-B4rM4cgp.js} +1 -1
  128. package/dist/chunks/prompt-BnLHkqxH.js +1 -0
  129. package/dist/chunks/prompt-Bxk7M5A5.js +1 -0
  130. package/dist/chunks/{protocolHandler-Bjmx7OmF.js → protocolHandler-DrGjosKa.js} +1 -1
  131. package/dist/chunks/{reconciler-CHbint0C.js → reconciler-BcpooxDV.js} +1 -1
  132. package/dist/chunks/{refresh-yut9uEfd.js → refresh-nrBMGYPi.js} +1 -1
  133. package/dist/chunks/{reject-CrNfit3M.js → reject-B3lkQjOv.js} +1 -1
  134. package/dist/chunks/{reload-plugins-labKy5Eh.js → reload-plugins-C6aSczZl.js} +1 -1
  135. package/dist/chunks/{rename-c8tElppw.js → rename-D3rmIsGf.js} +1 -1
  136. package/dist/chunks/{resume-C8xif2lo.js → resume-Cj_JBDJU.js} +1 -1
  137. package/dist/chunks/{runtimeObserver-DuJ8mRfr.js → runtimeObserver-4vJtpquK.js} +2 -2
  138. package/dist/chunks/{runtimeObserver-vmPplAGH.js → runtimeObserver-CgdVfPHy.js} +1 -1
  139. package/dist/chunks/sandbox-adapter-BNLLtZ41.js +1 -0
  140. package/dist/chunks/{sandbox-toggle-USHaZHD7.js → sandbox-toggle-Dt4lDgnB.js} +1 -1
  141. package/dist/chunks/searchExtraTools-C1v6F01_.js +1 -0
  142. package/dist/chunks/{select-BpiKdirZ.js → select-CPlgmbIJ.js} +1 -1
  143. package/dist/chunks/sessionFileAccessHooks-BnOpxVs-.js +1 -0
  144. package/dist/chunks/{sessionObserver-sO6PF7mV.js → sessionObserver-CFN7Ig3Q.js} +1 -1
  145. package/dist/chunks/sessionObserver-CnWQCO-S.js +1 -0
  146. package/dist/chunks/sessionStorage-Dr6JjGiG.js +1 -0
  147. package/dist/chunks/{sessionTracing-Bz89tYh5.js → sessionTracing-nqfu1pVT.js} +1 -1
  148. package/dist/chunks/{setup-B-FejaeH.js → setup-Im12wZpx.js} +2 -2
  149. package/dist/chunks/{shadowedRuleDetection-BI6Xz0pY.js → shadowedRuleDetection-CiG8S6iX.js} +1 -1
  150. package/dist/chunks/{sideQuestion-BEpCuv_7.js → sideQuestion-BW9eo3IE.js} +1 -1
  151. package/dist/chunks/{sinks-BvOPODnl.js → sinks-C7vJLHLA.js} +1 -1
  152. package/dist/chunks/sinks-DMDnR8N8.js +1 -0
  153. package/dist/chunks/{skillChangeDetector-D-fxaAMH.js → skillChangeDetector-CrsPxCzn.js} +1 -1
  154. package/dist/chunks/{skillGapStore-A1FCr8Mf.js → skillGapStore-BV5H9Flk.js} +2 -2
  155. package/dist/chunks/{skillLifecycle-CTVa34xO.js → skillLifecycle-EnEI14W2.js} +2 -2
  156. package/dist/chunks/{skillSearchPanel-CjekGkrw.js → skillSearchPanel-CSm2Eq_U.js} +2 -2
  157. package/dist/chunks/{skills-110JHHbj.js → skills-C69Im5ML.js} +1 -1
  158. package/dist/chunks/status-D2nNF67-.js +1 -0
  159. package/dist/chunks/{statusNoticeHelpers-C5BRU3lw.js → statusNoticeHelpers-BHExATuY.js} +1 -1
  160. package/dist/chunks/{switcher-nLHGsxLw.js → switcher-BdsveDwj.js} +1 -1
  161. package/dist/chunks/switcher-DFyvU0Qc.js +1 -0
  162. package/dist/chunks/{tasks-CjYr59Ak.js → tasks-CJDAZERm.js} +1 -1
  163. package/dist/chunks/{templateJobs-ECX0rRRp.js → templateJobs-fCnSjC9_.js} +1 -1
  164. package/dist/chunks/{terminalSetup-AptBNs_i.js → terminalSetup-QvvwfSGV.js} +1 -1
  165. package/dist/chunks/{terminalSetup-CKO6eWhS.js → terminalSetup-h_TPZN2E.js} +1 -1
  166. package/dist/chunks/{theme-BCSx9irC.js → theme-B3baZuK8.js} +1 -1
  167. package/dist/chunks/{tipRegistry-CnQB3TaA.js → tipRegistry-devcMyyn.js} +1 -1
  168. package/dist/chunks/{toolEventObserver-Bqtypnkk.js → toolEventObserver-CNXN4TOt.js} +1 -1
  169. package/dist/chunks/{toolPool-B1sXN7SK.js → toolPool-B4XkmUDX.js} +1 -1
  170. package/dist/chunks/{useExitOnCtrlCDWithKeybindings-DegJrysj.js → useExitOnCtrlCDWithKeybindings-BfgcAS50.js} +1 -1
  171. package/dist/chunks/useMainLoopModel-CO_oa76K.js +1 -0
  172. package/dist/chunks/{useManagePlugins-BW2Zj_jf.js → useManagePlugins-CYUa0_Sn.js} +1 -1
  173. package/dist/chunks/{useMergedTools-CTm1AU9b.js → useMergedTools-By1K71LJ.js} +1 -1
  174. package/dist/chunks/{useSearchInput-DrY4BZKy.js → useSearchInput-C4O9vs6X.js} +1 -1
  175. package/dist/chunks/{useSettingsErrors-2uIAF6H8.js → useSettingsErrors-Cw8_cPbg.js} +1 -1
  176. package/dist/chunks/{util-BUgUtaUV.js → util-CEVuoH2G.js} +1 -1
  177. package/dist/chunks/{validatePlugin-BGB8T9Mb.js → validatePlugin-B7OHQSIx.js} +1 -1
  178. package/dist/chunks/vim-BX8ljWbJ.js +1 -0
  179. package/dist/chunks/worktree-C9F9fuJ9.js +1 -0
  180. package/dist/cli.js +1 -1
  181. package/package.json +1 -1
  182. package/dist/chunks/AgentsMdExternalIncludesDialog-45Ize2zR.js +0 -1
  183. package/dist/chunks/Doctor--yF3SBsD.js +0 -1
  184. package/dist/chunks/REPL-CjoJCy0g.js +0 -124
  185. package/dist/chunks/REPL-DGieTVDl.js +0 -1
  186. package/dist/chunks/SearchExtraToolsTool-BBhWAuoA.js +0 -1
  187. package/dist/chunks/backgroundHousekeeping-d0qpqWHe.js +0 -1
  188. package/dist/chunks/caches-he4NeZSK.js +0 -1
  189. package/dist/chunks/commands-BoGtXPAA.js +0 -1
  190. package/dist/chunks/config-B-hDBSL8.js +0 -1
  191. package/dist/chunks/config-DubkVeOw.js +0 -1
  192. package/dist/chunks/context-noninteractive-CmOFpwwP.js +0 -1
  193. package/dist/chunks/conversation-B7YCvyCD.js +0 -1
  194. package/dist/chunks/doctor-DYKr9Reu.js +0 -1
  195. package/dist/chunks/extractMemories-4wbv-mTc.js +0 -1
  196. package/dist/chunks/fast-BALHWqpd.js +0 -1
  197. package/dist/chunks/fetchModelList-OZ2sLDEx.js +0 -1
  198. package/dist/chunks/hooks-BofA8GeO.js +0 -1
  199. package/dist/chunks/loadAgentsDir-C-qRJlXH.js +0 -1
  200. package/dist/chunks/localSearch-BulDBrBk.js +0 -1
  201. package/dist/chunks/managedEnv-BFpXdDI8.js +0 -1
  202. package/dist/chunks/pluginStartupCheck-B-nYb61N.js +0 -1
  203. package/dist/chunks/prompt-Cpu4meqR.js +0 -1
  204. package/dist/chunks/prompt-HO8Docca.js +0 -1
  205. package/dist/chunks/sandbox-adapter-BKnsdtVj.js +0 -1
  206. package/dist/chunks/searchExtraTools-DV5iZPdw.js +0 -1
  207. package/dist/chunks/sessionFileAccessHooks-nq8C34WL.js +0 -1
  208. package/dist/chunks/sessionObserver-CKp3uqPg.js +0 -1
  209. package/dist/chunks/sessionStorage-CuQf4d1y.js +0 -1
  210. package/dist/chunks/sinks-DLALCllz.js +0 -1
  211. package/dist/chunks/status-D_b3UMke.js +0 -1
  212. package/dist/chunks/switcher-BFzvv7KT.js +0 -1
  213. package/dist/chunks/useMainLoopModel-CPnigpM1.js +0 -1
  214. package/dist/chunks/vim-DdxGarvY.js +0 -1
  215. package/dist/chunks/worktree-DBZ7f9Lk.js +0 -1
@@ -1,2 +1,2 @@
1
- import{n as e,t}from"./defineProperty-C-QyHrDq.js";import{n,t as r}from"./axios-DaWTGg7G.js";import{n as i,r as a}from"./wrapper-DVKxC5fR.js";import{Cr as o,Pt as s,Tr as c,Vt as l,wr as u}from"./settings-CA-5Px85.js";import{U as d,W as f}from"./loadAgentsDir-DnHL_5cU.js";import{c as p,i as m}from"./debug-NBJH_NxR.js";import{d as h,o as g}from"./config-Bjwat4P6.js";import{n as _,r as v}from"./process-CewWh77C.js";import{o as y,s as b}from"./log-D98mO6yJ.js";import{a as x,c as S,l as C,n as w,o as T,r as E,s as D,t as O,u as k}from"./bridgeControl-DMUu37uO.js";import{createInterface as A}from"node:readline";import{join as j}from"node:path";import{spawn as M}from"node:child_process";import{existsSync as N,readdirSync as P}from"node:fs";import{randomUUID as F}from"node:crypto";import{EventEmitter as I}from"node:events";import L from"events";_(),y(),d(),S(),w(),m(),e();var R=`https://api.dingtalk.com`,z=`https://oapi.dingtalk.com`,ee=`/gettoken`,B=`/v1.0/card/instances/createAndDeliver`,V=`/v1.0/card/streaming`,H=300*1e3,U=class{constructor(e){t(this,`opts`,void 0),t(this,`tokenCache`,null),this.opts=e}async getAccessToken(){if(this.tokenCache&&Date.now()<this.tokenCache.expiresAt-H)return this.tokenCache.token;let e=`${z}${ee}?appkey=${encodeURIComponent(this.opts.appKey)}&appsecret=${encodeURIComponent(this.opts.appSecret)}`,t=await(await fetch(e)).json();if(t.errcode!==0||!t.access_token)throw Error(`gettoken 失败: errcode=${t.errcode} errmsg=${t.errmsg}`);return this.tokenCache={token:t.access_token,expiresAt:Date.now()+(t.expires_in??7200)*1e3},t.access_token}async createAndDeliverCard(e){let t=F(),n=e.conversationType===`2`,r=await this.getAccessToken(),i=n?`IM_GROUP`:`IM_ROBOT`,a=n?e.conversationId:e.senderStaffId,o={cardTemplateId:e.cardTemplateId,outTrackId:t,cardData:{cardParamMap:{content:e.initialMarkdown}},openSpaceId:`dtv1.card//${i}.${a}`};n?(o.imGroupOpenSpaceModel={supportForward:!0},o.imGroupOpenDeliverModel={robotCode:this.opts.robotCode}):(o.imRobotOpenSpaceModel={supportForward:!0},o.imRobotOpenDeliverModel={robotCode:this.opts.robotCode});let s=await fetch(`${R}${B}`,{method:`POST`,headers:{"Content-Type":`application/json`,"x-acs-dingtalk-access-token":r},body:JSON.stringify(o)});if(!s.ok){let e=await s.text();throw Error(`createAndDeliver 失败: ${s.status} ${e}`)}return p(`[channel] 卡片已创建 outTrackId=${t} ${n?`群聊`:`单聊`}`,{level:`debug`}),t}async streamingUpdate(e,t,n={}){let r=await this.getAccessToken(),i={outTrackId:e,guid:F(),key:`content`,content:t,isFull:!0,isFinalize:n.finalize??!1,isError:n.error??!1},a=await fetch(`${R}${V}`,{method:`PUT`,headers:{"Content-Type":`application/json`,"x-acs-dingtalk-access-token":r},body:JSON.stringify(i)});if(!a.ok){let e=await a.text();throw Error(`streaming 失败: ${a.status} ${e}`)}p(`[channel] streaming 推送 finalize=${n.finalize??!1} len=${t.length}`,{level:`debug`})}},W=`https://api.dingtalk.com/v1.0/gateway/connections/open`,G=`https://oapi.dingtalk.com/gettoken`,K=`/v1.0/im/bot/messages/get`;i(),r(),e();var q={autoReconnect:!0,keepAlive:!1,ua:``,subscriptions:[{type:`EVENT`,topic:`*`}]},J=class extends L{constructor(e){if(super(),t(this,`debug`,!1),t(this,`connected`,!1),t(this,`registered`,!1),t(this,`reconnecting`,!1),t(this,`userDisconnect`,!1),t(this,`reconnectBaseInterval`,1e3),t(this,`reconnectMaxInterval`,6e4),t(this,`reconnectAttempts`,0),t(this,`heartbeat_interval`,8e3),t(this,`heartbeatIntervallId`,void 0),t(this,`reconnectTimerId`,void 0),t(this,`isConnecting`,!1),t(this,`sslopts`,{rejectUnauthorized:!0}),t(this,`config`,void 0),t(this,`socket`,void 0),t(this,`dw_url`,void 0),t(this,`isAlive`,!1),t(this,`onEventReceived`,e=>({status:`SUCCESS`})),this.config={...q,...e},!this.config.clientId||!this.config.clientSecret)throw console.error(`clientId or clientSecret is null`),Error(`clientId or clientSecret is null`);this.config.debug!==void 0&&(this.debug=this.config.debug)}getConfig(){return{...this.config}}printDebug(e){if(this.debug){let t=`[`+new Date().toISOString()+`]`;console.info(t,e)}}registerAllEventListener(e){return this.onEventReceived=e,this}registerCallbackListener(e,t){if(!e||!t)throw console.error(`registerCallbackListener: eventId and callback must be defined`),Error(`registerCallbackListener: eventId and callback must be defined`);return this.config.subscriptions.find(t=>t.topic===e&&t.type===`CALLBACK`)||this.config.subscriptions.push({type:`CALLBACK`,topic:e}),this.on(e,t),this}async getAccessToken(){let e=await n.get(`${G}?appkey=${this.config.clientId}&appsecret=${this.config.clientSecret}`);if(e.status===200&&e.data.access_token)return this.config.access_token=e.data.access_token,e.data.access_token;throw Error(`getAccessToken: get access_token failed`)}async getEndpoint(){this.printDebug(`get connect endpoint by config`),this.printDebug(this.config);let e=await n({url:W,method:`POST`,responseType:`json`,data:{clientId:this.config.clientId,clientSecret:this.config.clientSecret,ua:this.config.ua,subscriptions:this.config.subscriptions},headers:{Accept:`application/json`}});if(this.printDebug(`res.data `+JSON.stringify(e.data)),e.data){this.config.endpoint=e.data;let{endpoint:t,ticket:n}=e.data;if(!t||!n)throw this.printDebug(`endpoint or ticket is null`),Error(`endpoint or ticket is null`);return this.dw_url=`${t}?ticket=${n}`,this}else throw Error(`build: get endpoint failed`)}cleanup(){this.heartbeatIntervallId!==void 0&&(clearInterval(this.heartbeatIntervallId),this.heartbeatIntervallId=void 0),this.socket&&(this.socket.removeAllListeners(),(this.socket.readyState===a.OPEN||this.socket.readyState===a.CONNECTING)&&this.socket.terminate(),this.socket=void 0)}scheduleReconnect(){if(!this.config.autoReconnect||this.userDisconnect||this.isConnecting)return;let e=Math.min(this.reconnectBaseInterval*2**this.reconnectAttempts+Math.random()*1e3,this.reconnectMaxInterval);this.reconnecting=!0,this.printDebug(`Reconnecting in `+(e/1e3).toFixed(1)+` seconds... (attempt `+(this.reconnectAttempts+1)+`)`),this.reconnectTimerId&&clearTimeout(this.reconnectTimerId),this.reconnectTimerId=setTimeout(()=>{this.reconnectTimerId=void 0,this.connect()},e)}_connect(){return new Promise((e,t)=>{this.printDebug(`Connecting to dingtalk websocket @ `+this.dw_url);try{this.socket=new a(this.dw_url,this.sslopts)}catch(e){this.printDebug(`WebSocket constructor error`),console.warn(`ERROR`,e),t(e);return}let n=!1;this.socket.on(`open`,()=>{this.connected=!0,this.reconnectAttempts=0,console.info(`[`+new Date().toISOString()+`] connect success`),this.config.keepAlive&&(this.isAlive=!0,this.heartbeatIntervallId=setInterval(()=>{var e;if(this.isAlive===!1)return console.error(`TERMINATE SOCKET: Ping Pong does not transfer heartbeat within heartbeat intervall`),this.socket?.terminate();this.isAlive=!1,(e=this.socket)==null||e.ping(``,!0)},this.heartbeat_interval)),n=!0,e()}),this.socket.on(`pong`,()=>{this.heartbeat()}),this.socket.on(`message`,e=>{this.onDownStream(e)}),this.socket.on(`close`,()=>{this.printDebug(`Socket closed`),this.connected=!1,this.registered=!1,this.heartbeatIntervallId!==void 0&&(clearInterval(this.heartbeatIntervallId),this.heartbeatIntervallId=void 0),n&&this.scheduleReconnect()}),this.socket.on(`error`,e=>{var r;this.printDebug(`SOCKET ERROR`),console.warn(`ERROR`,e),(r=this.socket)==null||r.terminate(),n||(n=!0,t(e))})})}async connect(){if(this.isConnecting){this.printDebug(`connect() already in progress, skipping`);return}this.userDisconnect=!1,this.isConnecting=!0;try{if(this.cleanup(),await this.getEndpoint(),this.userDisconnect)return;await this._connect()}catch(e){this.printDebug(`Connect failed: `+(e instanceof Error?e.message:String(e))),this.userDisconnect||(this.reconnectAttempts++,this.isConnecting=!1,this.scheduleReconnect());return}finally{this.isConnecting=!1}}disconnect(){console.info(`Disconnecting.`),this.userDisconnect=!0,this.reconnectTimerId&&(clearTimeout(this.reconnectTimerId),this.reconnectTimerId=void 0),this.reconnecting=!1,this.reconnectAttempts=0,this.cleanup(),this.connected=!1,this.registered=!1}heartbeat(){this.isAlive=!0,this.printDebug(`CLIENT-SIDE HEARTBEAT`)}onDownStream(e){this.printDebug(`Received message from dingtalk websocket server`);let t=JSON.parse(e);switch(this.printDebug(t),t.type){case`SYSTEM`:this.onSystem(t);break;case`EVENT`:this.onEvent(t);break;case`CALLBACK`:this.onCallback(t);break}}onSystem(e){var t;switch(e.headers.topic){case`CONNECTED`:this.printDebug(`CONNECTED`);break;case`REGISTERED`:this.registered=!0,this.reconnecting=!1;break;case`disconnect`:this.connected=!1,this.registered=!1;break;case`KEEPALIVE`:this.heartbeat();break;case`ping`:this.printDebug(`PING`),(t=this.socket)==null||t.send(JSON.stringify({code:200,headers:e.headers,message:`OK`,data:e.data}));break}}onEvent(e){var t;this.printDebug(`received event, message=`+JSON.stringify(e));let n=this.onEventReceived(e);(t=this.socket)==null||t.send(JSON.stringify({code:200,headers:{contentType:`application/json`,messageId:e.headers.messageId},message:`OK`,data:JSON.stringify(n)}))}onCallback(e){this.emit(e.headers.topic,e)}send(e,t){var n;if(!e)throw console.error(`send: messageId must be defined`),Error(`send: messageId must be defined`);let r={code:200,headers:{contentType:`application/json`,messageId:e},message:`OK`,data:JSON.stringify(t)};(n=this.socket)==null||n.send(JSON.stringify(r))}socketCallBackResponse(e,t){this.send(e,{response:t})}sendGraphAPIResponse(e,t){var n;if(!e)throw console.error(`send: messageId must be defined`),Error(`send: messageId must be defined`);let r={code:200,headers:{contentType:`application/json`,messageId:e},message:`OK`,data:JSON.stringify(t)};(n=this.socket)==null||n.send(JSON.stringify(r))}};i(),m(),e();var Y=class{constructor(e){t(this,`opts`,void 0),t(this,`client`,void 0),t(this,`messageHandler`,void 0),this.opts=e,this.client=new J({clientId:e.appKey,clientSecret:e.appSecret,debug:!1,keepAlive:!0})}onMessage(e){this.messageHandler=e,this.client.registerCallbackListener(K,e=>{this.handleDownstream(e)})}handleDownstream(e){try{let t=JSON.parse(e.data);if(p(`[channel] downstream 到达: msgtype=${t.msgtype} sender=${t.senderNick} conv=${t.conversationId}`,{level:`debug`}),t.msgtype!==`text`||!t.text?.content){p(`[channel] 丢弃: msgtype=${t.msgtype} 非文本或空 content`,{level:`debug`});return}let n=t.text.content.trim(),r=this.stripMention(n);if(!r){p(`[channel] 丢弃: 纯 @ 无正文`,{level:`debug`});return}p(`[channel] 派发消息: text="${r.slice(0,50)}" sender=${t.senderNick}`,{level:`debug`}),this.messageHandler?.({conversationId:t.conversationId,senderStaffId:t.senderStaffId,senderNick:t.senderNick,conversationType:t.conversationType,text:r,msgId:t.msgId,sessionWebhook:t.sessionWebhook,sessionWebhookExpiredTime:t.sessionWebhookExpiredTime,isAdmin:t.isAdmin})}catch(e){b(e)}try{this.client.socketCallBackResponse(e.headers.messageId,{status:`SUCCESS`,message:`OK`})}catch{}}stripMention(e){if(!this.opts.robotName)return e;let t=this.opts.robotName.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return e.replace(RegExp(`^@${t}\\s*`),``).trim()}async connect(){await this.client.connect(),p(`[channel] dingtalk stream 已连接`,{level:`debug`})}disconnect(){this.client.disconnect()}async sendText(e,t){if(e)try{await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({msgtype:`text`,text:{content:t}})})}catch(e){b(e)}}async sendMarkdown(e,t,n){if(e)try{await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({msgtype:`markdown`,markdown:{title:t,text:n}})})}catch(e){b(e)}}};c();function X(e,t){if(t&&N(t))return t;try{let t=u();for(let n of P(t,{withFileTypes:!0})){if(!n.isDirectory())continue;let r=j(t,n.name,`${e}.jsonl`);if(N(r))return r}}catch{}return null}m(),y(),c(),s(),e();var Z=1800*1e3;function Q(e){return v()?{execPath:process.execPath,args:[process.argv[1],...e]}:{execPath:process.execPath,args:e}}var $=class{constructor(e){t(this,`opts`,void 0),t(this,`proc`,null),t(this,`rl`,null),t(this,`emitter`,new I),t(this,`lastActiveAt`,Date.now()),t(this,`idleTimer`,null),t(this,`closed`,!1),t(this,`spawnCwd`,process.cwd()),this.opts=e}onEvent(e){this.emitter.on(`event`,e)}async start(){let e=[`--print`,`--input-format`,`stream-json`,`--output-format`,`stream-json`,`--verbose`,`--permission-mode`,l(this.opts.permissionMode)];this.opts.transcriptPath?e.splice(1,0,`--resume`,this.opts.transcriptPath):this.opts.sessionId&&e.splice(1,0,`--resume`,this.opts.sessionId);let{execPath:t,args:n}=Q(e);this.proc=M(t,n,{stdio:[`pipe`,`pipe`,`pipe`],env:{...process.env,WORKMATE_INCLUDE_PARTIAL_MESSAGES:`true`,WORKMATE_STREAMLINED_OUTPUT:`true`}}),this.proc.on(`exit`,e=>{this.closed=!0,this.emit({type:`exit`,code:e}),this.cleanup()}),this.proc.on(`error`,e=>{b(e),this.emit({type:`stderr`,data:String(e)})}),this.proc.stderr&&this.proc.stderr.on(`data`,e=>{let t=e.toString();p(`[channel] workmate stderr: ${t}`,{level:`debug`}),this.emit({type:`stderr`,data:t})}),this.proc.stdout&&(this.rl=A({input:this.proc.stdout,crlfDelay:1/0}),this.rl.on(`line`,e=>this.handleLine(e))),this.idleTimer=setInterval(()=>this.checkIdle(),6e4)}checkIdle(){this.closed||Date.now()-this.lastActiveAt>Z&&(p(`[channel] workmate 子进程 idle 超时,回收`,{level:`debug`}),this.kill())}sendUserMessage(e){this.write({type:`user`,message:{role:`user`,content:e},parent_tool_use_id:null,priority:`now`}),this.lastActiveAt=Date.now()}respondPermission(e,t){this.write({type:`control_response`,response:{subtype:`success`,request_id:e,response:t}}),this.lastActiveAt=Date.now()}autoAllow(e){this.respondPermission(e,{behavior:`allow`})}interrupt(){this.write({type:`control_request`,request_id:F(),request:{subtype:`interrupt`}})}handleLine(e){let t=e.trim();if(!t)return;this.lastActiveAt=Date.now();let n;try{n=JSON.parse(t)}catch{return}switch(n.type){case`stream_event`:{let e=n.event;e?.type===`content_block_delta`&&e.delta?.type===`text_delta`&&typeof e.delta.text==`string`?this.emit({type:`text`,text:e.delta.text}):e?.type===`message_stop`&&this.emit({type:`message_end`});break}case`streamlined_text`:this.emit({type:`text`,text:String(n.text)}),this.emit({type:`message_end`});break;case`streamlined_tool_use_summary`:this.emit({type:`tool_summary`,summary:String(n.tool_summary)});break;case`control_request`:{let e=n.request;e?.subtype===`can_use_tool`&&this.emit({type:`permission_request`,requestId:String(n.request_id),toolName:String(e.tool_name??``),input:e.input??{},toolUseId:String(e.tool_use_id??``)});break}case`result`:{let e=typeof n.session_id==`string`?n.session_id:void 0,t=e&&!this.opts.transcriptPath?j(o(this.spawnCwd),`${e}.jsonl`):void 0;this.emit({type:`turn_end`,subtype:n.subtype===`success`?`success`:`error`,resultText:typeof n.result==`string`?n.result:void 0,errors:Array.isArray(n.errors)?n.errors.map(String):void 0,durationMs:typeof n.duration_ms==`number`?n.duration_ms:void 0,sessionId:e,transcriptPath:t});break}case`keep_alive`:break}}emit(e){this.emitter.emit(`event`,e)}write(e){!this.proc?.stdin?.writable||this.closed||this.proc.stdin.write(`${JSON.stringify(e)}\n`)}isAlive(){return!!this.proc&&!this.closed}kill(){if(!(this.closed||!this.proc)){try{this.proc.stdin?.end()}catch{}try{this.proc.kill(`SIGTERM`)}catch{}setTimeout(()=>{try{this.proc?.kill(`SIGKILL`)}catch{}},3e3)}}cleanup(){this.idleTimer&&(clearInterval(this.idleTimer),this.idleTimer=null),this.rl?.close(),this.rl=null,this.closed=!0}async stop(){this.kill(),this.proc&&await new Promise(e=>{if(this.closed)return e();this.proc.once(`exit`,()=>e()),setTimeout(e,5e3)}),this.cleanup()}};m(),y(),e();var te=400;function ne(e,t){switch(t){case`perUser`:return`user:${e.senderStaffId}`;case`shared`:return`shared`;default:return`conv:${e.conversationId}`}}var re=class{constructor(e){t(this,`stream`,void 0),t(this,`sessions`,new Map),t(this,`config`,void 0),t(this,`running`,!1),t(this,`cardClient`,void 0),this.config=e??T(),this.stream=new Y({appKey:this.config.appKey,appSecret:this.config.appSecret,robotName:this.config.robotName}),this.cardClient=this.config.cardTemplateId?new U({appKey:this.config.appKey,appSecret:this.config.appSecret,robotCode:this.config.appKey}):null}async start(){if(!this.config.appKey||!this.config.appSecret)throw Error(`钉钉 appKey/appSecret 未配置,请在 /channel 里填好`);this.stream.onMessage(e=>{this.handleMessage(e)}),await this.stream.connect(),this.running=!0;let e=!1,t=()=>{if(e)return;e=!0;let t=setTimeout(()=>{process.exit(0)},6e3);this.stop().finally(()=>{clearTimeout(t),process.exit(0)})};process.on(`SIGTERM`,t),process.on(`SIGINT`,t),p(`[channel] bridge 已启动,等待钉钉消息`,{level:`debug`})}async stop(){if(this.running){this.running=!1,this.stream.disconnect();for(let e of this.sessions.values())e.streamTimer&&clearTimeout(e.streamTimer),await e.driver.stop();this.sessions.clear(),p(`[channel] bridge 已停止`,{level:`debug`})}}async handleMessage(e){let t=ne(e,this.config.sessionStrategy);p(`[channel] handleMessage: sender=${e.senderNick} conv=${e.conversationId} text="${e.text.slice(0,50)}"`,{level:`debug`});let n=this.sessions.get(t);if(n||(n=await this.createSession(t,e),this.sessions.set(t,n)),n.sessionWebhook=e.sessionWebhook,n.currentSenderStaffId=e.senderStaffId,n.pendingConfirm){let t=ie(e.text);if(t!==null){let r=n.pendingConfirm;if(n.pendingConfirm=null,!this.canConfirm(e.senderStaffId,r.senderStaffId)){await this.stream.sendText(e.sessionWebhook,`⚠️ 只有任务发起人或管理员能确认`);return}t.behavior===`terminate`?(n.driver.respondPermission(r.requestId,{behavior:`deny`,message:`用户在钉钉终止任务`}),n.driver.interrupt(),await this.stream.sendText(e.sessionWebhook,`🛑 已终止整个任务`)):(n.driver.respondPermission(r.requestId,t),await this.stream.sendText(e.sessionWebhook,t.behavior===`allow`?`✅ 已同意,继续执行`:`❌ 已拒绝此工具,继续下一步`));return}n.pendingConfirm=null}n.textBuffer=``,n.turnInProgress=!0,n.cardOutTrackId=null,n.conversationType=e.conversationType,n.conversationId=e.conversationId,n.streamTimer&&(clearTimeout(n.streamTimer),n.streamTimer=null),n.driver.sendUserMessage(e.text),p(`[channel] 已发 driver.sendUserMessage`,{level:`debug`})}async createSession(e,t){let n=this.config.sessions[e],r=n?.workmateSessionId??``,i=r?X(r,n?.transcriptPath):null;i&&i!==n?.transcriptPath&&(k(t=>{let n=t.sessions[e];return n?{...t,sessions:{...t.sessions,[e]:{...n,transcriptPath:i}}}:t}),this.config=T()),p(`[channel] ${r?`复用`:`新建`}会话: ${e} sid=${r||`(待 workmate 分配)`} tp=${i??`(待分配)`}`,{level:`debug`});let a=new $({sessionId:r||null,transcriptPath:i,permissionMode:D(this.config)});return await a.start(),a.onEvent(t=>{this.handleDriverEvent(e,t)}),{driver:a,workmateSessionId:r,transcriptPath:i,sessionWebhook:t.sessionWebhook,currentSenderStaffId:t.senderStaffId,conversationType:t.conversationType,conversationId:t.conversationId,textBuffer:``,turnInProgress:!1,pendingConfirm:null,cardOutTrackId:null,streamTimer:null,eventQueue:Promise.resolve()}}handleDriverEvent(e,t){let n=this.sessions.get(e);n&&(n.eventQueue=n.eventQueue.then(()=>this.processDriverEvent(e,t)).catch(e=>{b(e)}))}async processDriverEvent(e,t){let n=this.sessions.get(e);if(n)switch(t.type){case`text`:if(!n.cardOutTrackId&&this.cardClient&&n.turnInProgress)try{n.cardOutTrackId=await this.cardClient.createAndDeliverCard({conversationType:n.conversationType,conversationId:n.conversationId,senderStaffId:n.currentSenderStaffId,cardTemplateId:this.config.cardTemplateId,initialMarkdown:` `})}catch(e){b(e),p(`[channel] 卡片创建失败,回退整段 sendText`,{level:`debug`}),n.cardOutTrackId=null}n.textBuffer+=t.text,n.cardOutTrackId&&this.cardClient&&this.scheduleStreamPush(n);break;case`message_end`:if(n.streamTimer&&(clearTimeout(n.streamTimer),n.streamTimer=null),n.cardOutTrackId&&this.cardClient){let e=n.cardOutTrackId;n.cardOutTrackId=null;try{await this.cardClient.streamingUpdate(e,n.textBuffer,{finalize:!0})}catch(e){b(e),n.textBuffer.trim()&&await this.stream.sendText(n.sessionWebhook,n.textBuffer)}}else n.textBuffer.trim()&&await this.stream.sendText(n.sessionWebhook,n.textBuffer);n.textBuffer=``;break;case`tool_summary`:break;case`turn_end`:{n.turnInProgress=!1;let r=t.sessionId,i=t.transcriptPath;if(t.subtype===`success`&&r&&r!==n.workmateSessionId&&(n.workmateSessionId=r,n.transcriptPath=i??n.transcriptPath,k(t=>{let a=t.sessions[e];return{...t,sessions:{...t.sessions,[e]:{workmateSessionId:r,transcriptPath:i??a?.transcriptPath,lastActiveAt:Date.now(),senderId:n.currentSenderStaffId}}}}),this.config=T()),n.streamTimer&&(clearTimeout(n.streamTimer),n.streamTimer=null),t.subtype===`error`){if(n.cardOutTrackId&&this.cardClient){let e=n.cardOutTrackId;n.cardOutTrackId=null;let t=n.textBuffer;if(n.textBuffer=``,t.trim())try{await this.cardClient.streamingUpdate(e,t,{finalize:!0})}catch(e){b(e)}}else n.textBuffer=``;let e=t.errors?.length?t.errors:[`任务执行出错`];await this.stream.sendText(n.sessionWebhook,`⚠️ ${e.join(`
1
+ import{n as e,t}from"./defineProperty-C-QyHrDq.js";import{n,t as r}from"./axios-DaWTGg7G.js";import{n as i,r as a}from"./wrapper-DVKxC5fR.js";import{Cr as o,Pt as s,Tr as c,Vt as l,wr as u}from"./settings-CA-5Px85.js";import{U as d,W as f}from"./loadAgentsDir-izAo6rpy.js";import{c as p,i as m}from"./debug-NBJH_NxR.js";import{d as h,o as g}from"./config-CMtnYZR9.js";import{n as _,r as v}from"./process-CewWh77C.js";import{o as y,s as b}from"./log-D98mO6yJ.js";import{a as x,c as S,l as C,n as w,o as T,r as E,s as D,t as O,u as k}from"./bridgeControl-DMUu37uO.js";import{createInterface as A}from"node:readline";import{join as j}from"node:path";import{spawn as M}from"node:child_process";import{existsSync as N,readdirSync as P}from"node:fs";import{randomUUID as F}from"node:crypto";import{EventEmitter as I}from"node:events";import L from"events";_(),y(),d(),S(),w(),m(),e();var R=`https://api.dingtalk.com`,z=`https://oapi.dingtalk.com`,ee=`/gettoken`,B=`/v1.0/card/instances/createAndDeliver`,V=`/v1.0/card/streaming`,H=300*1e3,U=class{constructor(e){t(this,`opts`,void 0),t(this,`tokenCache`,null),this.opts=e}async getAccessToken(){if(this.tokenCache&&Date.now()<this.tokenCache.expiresAt-H)return this.tokenCache.token;let e=`${z}${ee}?appkey=${encodeURIComponent(this.opts.appKey)}&appsecret=${encodeURIComponent(this.opts.appSecret)}`,t=await(await fetch(e)).json();if(t.errcode!==0||!t.access_token)throw Error(`gettoken 失败: errcode=${t.errcode} errmsg=${t.errmsg}`);return this.tokenCache={token:t.access_token,expiresAt:Date.now()+(t.expires_in??7200)*1e3},t.access_token}async createAndDeliverCard(e){let t=F(),n=e.conversationType===`2`,r=await this.getAccessToken(),i=n?`IM_GROUP`:`IM_ROBOT`,a=n?e.conversationId:e.senderStaffId,o={cardTemplateId:e.cardTemplateId,outTrackId:t,cardData:{cardParamMap:{content:e.initialMarkdown}},openSpaceId:`dtv1.card//${i}.${a}`};n?(o.imGroupOpenSpaceModel={supportForward:!0},o.imGroupOpenDeliverModel={robotCode:this.opts.robotCode}):(o.imRobotOpenSpaceModel={supportForward:!0},o.imRobotOpenDeliverModel={robotCode:this.opts.robotCode});let s=await fetch(`${R}${B}`,{method:`POST`,headers:{"Content-Type":`application/json`,"x-acs-dingtalk-access-token":r},body:JSON.stringify(o)});if(!s.ok){let e=await s.text();throw Error(`createAndDeliver 失败: ${s.status} ${e}`)}return p(`[channel] 卡片已创建 outTrackId=${t} ${n?`群聊`:`单聊`}`,{level:`debug`}),t}async streamingUpdate(e,t,n={}){let r=await this.getAccessToken(),i={outTrackId:e,guid:F(),key:`content`,content:t,isFull:!0,isFinalize:n.finalize??!1,isError:n.error??!1},a=await fetch(`${R}${V}`,{method:`PUT`,headers:{"Content-Type":`application/json`,"x-acs-dingtalk-access-token":r},body:JSON.stringify(i)});if(!a.ok){let e=await a.text();throw Error(`streaming 失败: ${a.status} ${e}`)}p(`[channel] streaming 推送 finalize=${n.finalize??!1} len=${t.length}`,{level:`debug`})}},W=`https://api.dingtalk.com/v1.0/gateway/connections/open`,G=`https://oapi.dingtalk.com/gettoken`,K=`/v1.0/im/bot/messages/get`;i(),r(),e();var q={autoReconnect:!0,keepAlive:!1,ua:``,subscriptions:[{type:`EVENT`,topic:`*`}]},J=class extends L{constructor(e){if(super(),t(this,`debug`,!1),t(this,`connected`,!1),t(this,`registered`,!1),t(this,`reconnecting`,!1),t(this,`userDisconnect`,!1),t(this,`reconnectBaseInterval`,1e3),t(this,`reconnectMaxInterval`,6e4),t(this,`reconnectAttempts`,0),t(this,`heartbeat_interval`,8e3),t(this,`heartbeatIntervallId`,void 0),t(this,`reconnectTimerId`,void 0),t(this,`isConnecting`,!1),t(this,`sslopts`,{rejectUnauthorized:!0}),t(this,`config`,void 0),t(this,`socket`,void 0),t(this,`dw_url`,void 0),t(this,`isAlive`,!1),t(this,`onEventReceived`,e=>({status:`SUCCESS`})),this.config={...q,...e},!this.config.clientId||!this.config.clientSecret)throw console.error(`clientId or clientSecret is null`),Error(`clientId or clientSecret is null`);this.config.debug!==void 0&&(this.debug=this.config.debug)}getConfig(){return{...this.config}}printDebug(e){if(this.debug){let t=`[`+new Date().toISOString()+`]`;console.info(t,e)}}registerAllEventListener(e){return this.onEventReceived=e,this}registerCallbackListener(e,t){if(!e||!t)throw console.error(`registerCallbackListener: eventId and callback must be defined`),Error(`registerCallbackListener: eventId and callback must be defined`);return this.config.subscriptions.find(t=>t.topic===e&&t.type===`CALLBACK`)||this.config.subscriptions.push({type:`CALLBACK`,topic:e}),this.on(e,t),this}async getAccessToken(){let e=await n.get(`${G}?appkey=${this.config.clientId}&appsecret=${this.config.clientSecret}`);if(e.status===200&&e.data.access_token)return this.config.access_token=e.data.access_token,e.data.access_token;throw Error(`getAccessToken: get access_token failed`)}async getEndpoint(){this.printDebug(`get connect endpoint by config`),this.printDebug(this.config);let e=await n({url:W,method:`POST`,responseType:`json`,data:{clientId:this.config.clientId,clientSecret:this.config.clientSecret,ua:this.config.ua,subscriptions:this.config.subscriptions},headers:{Accept:`application/json`}});if(this.printDebug(`res.data `+JSON.stringify(e.data)),e.data){this.config.endpoint=e.data;let{endpoint:t,ticket:n}=e.data;if(!t||!n)throw this.printDebug(`endpoint or ticket is null`),Error(`endpoint or ticket is null`);return this.dw_url=`${t}?ticket=${n}`,this}else throw Error(`build: get endpoint failed`)}cleanup(){this.heartbeatIntervallId!==void 0&&(clearInterval(this.heartbeatIntervallId),this.heartbeatIntervallId=void 0),this.socket&&(this.socket.removeAllListeners(),(this.socket.readyState===a.OPEN||this.socket.readyState===a.CONNECTING)&&this.socket.terminate(),this.socket=void 0)}scheduleReconnect(){if(!this.config.autoReconnect||this.userDisconnect||this.isConnecting)return;let e=Math.min(this.reconnectBaseInterval*2**this.reconnectAttempts+Math.random()*1e3,this.reconnectMaxInterval);this.reconnecting=!0,this.printDebug(`Reconnecting in `+(e/1e3).toFixed(1)+` seconds... (attempt `+(this.reconnectAttempts+1)+`)`),this.reconnectTimerId&&clearTimeout(this.reconnectTimerId),this.reconnectTimerId=setTimeout(()=>{this.reconnectTimerId=void 0,this.connect()},e)}_connect(){return new Promise((e,t)=>{this.printDebug(`Connecting to dingtalk websocket @ `+this.dw_url);try{this.socket=new a(this.dw_url,this.sslopts)}catch(e){this.printDebug(`WebSocket constructor error`),console.warn(`ERROR`,e),t(e);return}let n=!1;this.socket.on(`open`,()=>{this.connected=!0,this.reconnectAttempts=0,console.info(`[`+new Date().toISOString()+`] connect success`),this.config.keepAlive&&(this.isAlive=!0,this.heartbeatIntervallId=setInterval(()=>{var e;if(this.isAlive===!1)return console.error(`TERMINATE SOCKET: Ping Pong does not transfer heartbeat within heartbeat intervall`),this.socket?.terminate();this.isAlive=!1,(e=this.socket)==null||e.ping(``,!0)},this.heartbeat_interval)),n=!0,e()}),this.socket.on(`pong`,()=>{this.heartbeat()}),this.socket.on(`message`,e=>{this.onDownStream(e)}),this.socket.on(`close`,()=>{this.printDebug(`Socket closed`),this.connected=!1,this.registered=!1,this.heartbeatIntervallId!==void 0&&(clearInterval(this.heartbeatIntervallId),this.heartbeatIntervallId=void 0),n&&this.scheduleReconnect()}),this.socket.on(`error`,e=>{var r;this.printDebug(`SOCKET ERROR`),console.warn(`ERROR`,e),(r=this.socket)==null||r.terminate(),n||(n=!0,t(e))})})}async connect(){if(this.isConnecting){this.printDebug(`connect() already in progress, skipping`);return}this.userDisconnect=!1,this.isConnecting=!0;try{if(this.cleanup(),await this.getEndpoint(),this.userDisconnect)return;await this._connect()}catch(e){this.printDebug(`Connect failed: `+(e instanceof Error?e.message:String(e))),this.userDisconnect||(this.reconnectAttempts++,this.isConnecting=!1,this.scheduleReconnect());return}finally{this.isConnecting=!1}}disconnect(){console.info(`Disconnecting.`),this.userDisconnect=!0,this.reconnectTimerId&&(clearTimeout(this.reconnectTimerId),this.reconnectTimerId=void 0),this.reconnecting=!1,this.reconnectAttempts=0,this.cleanup(),this.connected=!1,this.registered=!1}heartbeat(){this.isAlive=!0,this.printDebug(`CLIENT-SIDE HEARTBEAT`)}onDownStream(e){this.printDebug(`Received message from dingtalk websocket server`);let t=JSON.parse(e);switch(this.printDebug(t),t.type){case`SYSTEM`:this.onSystem(t);break;case`EVENT`:this.onEvent(t);break;case`CALLBACK`:this.onCallback(t);break}}onSystem(e){var t;switch(e.headers.topic){case`CONNECTED`:this.printDebug(`CONNECTED`);break;case`REGISTERED`:this.registered=!0,this.reconnecting=!1;break;case`disconnect`:this.connected=!1,this.registered=!1;break;case`KEEPALIVE`:this.heartbeat();break;case`ping`:this.printDebug(`PING`),(t=this.socket)==null||t.send(JSON.stringify({code:200,headers:e.headers,message:`OK`,data:e.data}));break}}onEvent(e){var t;this.printDebug(`received event, message=`+JSON.stringify(e));let n=this.onEventReceived(e);(t=this.socket)==null||t.send(JSON.stringify({code:200,headers:{contentType:`application/json`,messageId:e.headers.messageId},message:`OK`,data:JSON.stringify(n)}))}onCallback(e){this.emit(e.headers.topic,e)}send(e,t){var n;if(!e)throw console.error(`send: messageId must be defined`),Error(`send: messageId must be defined`);let r={code:200,headers:{contentType:`application/json`,messageId:e},message:`OK`,data:JSON.stringify(t)};(n=this.socket)==null||n.send(JSON.stringify(r))}socketCallBackResponse(e,t){this.send(e,{response:t})}sendGraphAPIResponse(e,t){var n;if(!e)throw console.error(`send: messageId must be defined`),Error(`send: messageId must be defined`);let r={code:200,headers:{contentType:`application/json`,messageId:e},message:`OK`,data:JSON.stringify(t)};(n=this.socket)==null||n.send(JSON.stringify(r))}};i(),m(),e();var Y=class{constructor(e){t(this,`opts`,void 0),t(this,`client`,void 0),t(this,`messageHandler`,void 0),this.opts=e,this.client=new J({clientId:e.appKey,clientSecret:e.appSecret,debug:!1,keepAlive:!0})}onMessage(e){this.messageHandler=e,this.client.registerCallbackListener(K,e=>{this.handleDownstream(e)})}handleDownstream(e){try{let t=JSON.parse(e.data);if(p(`[channel] downstream 到达: msgtype=${t.msgtype} sender=${t.senderNick} conv=${t.conversationId}`,{level:`debug`}),t.msgtype!==`text`||!t.text?.content){p(`[channel] 丢弃: msgtype=${t.msgtype} 非文本或空 content`,{level:`debug`});return}let n=t.text.content.trim(),r=this.stripMention(n);if(!r){p(`[channel] 丢弃: 纯 @ 无正文`,{level:`debug`});return}p(`[channel] 派发消息: text="${r.slice(0,50)}" sender=${t.senderNick}`,{level:`debug`}),this.messageHandler?.({conversationId:t.conversationId,senderStaffId:t.senderStaffId,senderNick:t.senderNick,conversationType:t.conversationType,text:r,msgId:t.msgId,sessionWebhook:t.sessionWebhook,sessionWebhookExpiredTime:t.sessionWebhookExpiredTime,isAdmin:t.isAdmin})}catch(e){b(e)}try{this.client.socketCallBackResponse(e.headers.messageId,{status:`SUCCESS`,message:`OK`})}catch{}}stripMention(e){if(!this.opts.robotName)return e;let t=this.opts.robotName.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return e.replace(RegExp(`^@${t}\\s*`),``).trim()}async connect(){await this.client.connect(),p(`[channel] dingtalk stream 已连接`,{level:`debug`})}disconnect(){this.client.disconnect()}async sendText(e,t){if(e)try{await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({msgtype:`text`,text:{content:t}})})}catch(e){b(e)}}async sendMarkdown(e,t,n){if(e)try{await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({msgtype:`markdown`,markdown:{title:t,text:n}})})}catch(e){b(e)}}};c();function X(e,t){if(t&&N(t))return t;try{let t=u();for(let n of P(t,{withFileTypes:!0})){if(!n.isDirectory())continue;let r=j(t,n.name,`${e}.jsonl`);if(N(r))return r}}catch{}return null}m(),y(),c(),s(),e();var Z=1800*1e3;function Q(e){return v()?{execPath:process.execPath,args:[process.argv[1],...e]}:{execPath:process.execPath,args:e}}var $=class{constructor(e){t(this,`opts`,void 0),t(this,`proc`,null),t(this,`rl`,null),t(this,`emitter`,new I),t(this,`lastActiveAt`,Date.now()),t(this,`idleTimer`,null),t(this,`closed`,!1),t(this,`spawnCwd`,process.cwd()),this.opts=e}onEvent(e){this.emitter.on(`event`,e)}async start(){let e=[`--print`,`--input-format`,`stream-json`,`--output-format`,`stream-json`,`--verbose`,`--permission-mode`,l(this.opts.permissionMode)];this.opts.transcriptPath?e.splice(1,0,`--resume`,this.opts.transcriptPath):this.opts.sessionId&&e.splice(1,0,`--resume`,this.opts.sessionId);let{execPath:t,args:n}=Q(e);this.proc=M(t,n,{stdio:[`pipe`,`pipe`,`pipe`],env:{...process.env,WORKMATE_INCLUDE_PARTIAL_MESSAGES:`true`,WORKMATE_STREAMLINED_OUTPUT:`true`}}),this.proc.on(`exit`,e=>{this.closed=!0,this.emit({type:`exit`,code:e}),this.cleanup()}),this.proc.on(`error`,e=>{b(e),this.emit({type:`stderr`,data:String(e)})}),this.proc.stderr&&this.proc.stderr.on(`data`,e=>{let t=e.toString();p(`[channel] workmate stderr: ${t}`,{level:`debug`}),this.emit({type:`stderr`,data:t})}),this.proc.stdout&&(this.rl=A({input:this.proc.stdout,crlfDelay:1/0}),this.rl.on(`line`,e=>this.handleLine(e))),this.idleTimer=setInterval(()=>this.checkIdle(),6e4)}checkIdle(){this.closed||Date.now()-this.lastActiveAt>Z&&(p(`[channel] workmate 子进程 idle 超时,回收`,{level:`debug`}),this.kill())}sendUserMessage(e){this.write({type:`user`,message:{role:`user`,content:e},parent_tool_use_id:null,priority:`now`}),this.lastActiveAt=Date.now()}respondPermission(e,t){this.write({type:`control_response`,response:{subtype:`success`,request_id:e,response:t}}),this.lastActiveAt=Date.now()}autoAllow(e){this.respondPermission(e,{behavior:`allow`})}interrupt(){this.write({type:`control_request`,request_id:F(),request:{subtype:`interrupt`}})}handleLine(e){let t=e.trim();if(!t)return;this.lastActiveAt=Date.now();let n;try{n=JSON.parse(t)}catch{return}switch(n.type){case`stream_event`:{let e=n.event;e?.type===`content_block_delta`&&e.delta?.type===`text_delta`&&typeof e.delta.text==`string`?this.emit({type:`text`,text:e.delta.text}):e?.type===`message_stop`&&this.emit({type:`message_end`});break}case`streamlined_text`:this.emit({type:`text`,text:String(n.text)}),this.emit({type:`message_end`});break;case`streamlined_tool_use_summary`:this.emit({type:`tool_summary`,summary:String(n.tool_summary)});break;case`control_request`:{let e=n.request;e?.subtype===`can_use_tool`&&this.emit({type:`permission_request`,requestId:String(n.request_id),toolName:String(e.tool_name??``),input:e.input??{},toolUseId:String(e.tool_use_id??``)});break}case`result`:{let e=typeof n.session_id==`string`?n.session_id:void 0,t=e&&!this.opts.transcriptPath?j(o(this.spawnCwd),`${e}.jsonl`):void 0;this.emit({type:`turn_end`,subtype:n.subtype===`success`?`success`:`error`,resultText:typeof n.result==`string`?n.result:void 0,errors:Array.isArray(n.errors)?n.errors.map(String):void 0,durationMs:typeof n.duration_ms==`number`?n.duration_ms:void 0,sessionId:e,transcriptPath:t});break}case`keep_alive`:break}}emit(e){this.emitter.emit(`event`,e)}write(e){!this.proc?.stdin?.writable||this.closed||this.proc.stdin.write(`${JSON.stringify(e)}\n`)}isAlive(){return!!this.proc&&!this.closed}kill(){if(!(this.closed||!this.proc)){try{this.proc.stdin?.end()}catch{}try{this.proc.kill(`SIGTERM`)}catch{}setTimeout(()=>{try{this.proc?.kill(`SIGKILL`)}catch{}},3e3)}}cleanup(){this.idleTimer&&(clearInterval(this.idleTimer),this.idleTimer=null),this.rl?.close(),this.rl=null,this.closed=!0}async stop(){this.kill(),this.proc&&await new Promise(e=>{if(this.closed)return e();this.proc.once(`exit`,()=>e()),setTimeout(e,5e3)}),this.cleanup()}};m(),y(),e();var te=400;function ne(e,t){switch(t){case`perUser`:return`user:${e.senderStaffId}`;case`shared`:return`shared`;default:return`conv:${e.conversationId}`}}var re=class{constructor(e){t(this,`stream`,void 0),t(this,`sessions`,new Map),t(this,`config`,void 0),t(this,`running`,!1),t(this,`cardClient`,void 0),this.config=e??T(),this.stream=new Y({appKey:this.config.appKey,appSecret:this.config.appSecret,robotName:this.config.robotName}),this.cardClient=this.config.cardTemplateId?new U({appKey:this.config.appKey,appSecret:this.config.appSecret,robotCode:this.config.appKey}):null}async start(){if(!this.config.appKey||!this.config.appSecret)throw Error(`钉钉 appKey/appSecret 未配置,请在 /channel 里填好`);this.stream.onMessage(e=>{this.handleMessage(e)}),await this.stream.connect(),this.running=!0;let e=!1,t=()=>{if(e)return;e=!0;let t=setTimeout(()=>{process.exit(0)},6e3);this.stop().finally(()=>{clearTimeout(t),process.exit(0)})};process.on(`SIGTERM`,t),process.on(`SIGINT`,t),p(`[channel] bridge 已启动,等待钉钉消息`,{level:`debug`})}async stop(){if(this.running){this.running=!1,this.stream.disconnect();for(let e of this.sessions.values())e.streamTimer&&clearTimeout(e.streamTimer),await e.driver.stop();this.sessions.clear(),p(`[channel] bridge 已停止`,{level:`debug`})}}async handleMessage(e){let t=ne(e,this.config.sessionStrategy);p(`[channel] handleMessage: sender=${e.senderNick} conv=${e.conversationId} text="${e.text.slice(0,50)}"`,{level:`debug`});let n=this.sessions.get(t);if(n||(n=await this.createSession(t,e),this.sessions.set(t,n)),n.sessionWebhook=e.sessionWebhook,n.currentSenderStaffId=e.senderStaffId,n.pendingConfirm){let t=ie(e.text);if(t!==null){let r=n.pendingConfirm;if(n.pendingConfirm=null,!this.canConfirm(e.senderStaffId,r.senderStaffId)){await this.stream.sendText(e.sessionWebhook,`⚠️ 只有任务发起人或管理员能确认`);return}t.behavior===`terminate`?(n.driver.respondPermission(r.requestId,{behavior:`deny`,message:`用户在钉钉终止任务`}),n.driver.interrupt(),await this.stream.sendText(e.sessionWebhook,`🛑 已终止整个任务`)):(n.driver.respondPermission(r.requestId,t),await this.stream.sendText(e.sessionWebhook,t.behavior===`allow`?`✅ 已同意,继续执行`:`❌ 已拒绝此工具,继续下一步`));return}n.pendingConfirm=null}n.textBuffer=``,n.turnInProgress=!0,n.cardOutTrackId=null,n.conversationType=e.conversationType,n.conversationId=e.conversationId,n.streamTimer&&(clearTimeout(n.streamTimer),n.streamTimer=null),n.driver.sendUserMessage(e.text),p(`[channel] 已发 driver.sendUserMessage`,{level:`debug`})}async createSession(e,t){let n=this.config.sessions[e],r=n?.workmateSessionId??``,i=r?X(r,n?.transcriptPath):null;i&&i!==n?.transcriptPath&&(k(t=>{let n=t.sessions[e];return n?{...t,sessions:{...t.sessions,[e]:{...n,transcriptPath:i}}}:t}),this.config=T()),p(`[channel] ${r?`复用`:`新建`}会话: ${e} sid=${r||`(待 workmate 分配)`} tp=${i??`(待分配)`}`,{level:`debug`});let a=new $({sessionId:r||null,transcriptPath:i,permissionMode:D(this.config)});return await a.start(),a.onEvent(t=>{this.handleDriverEvent(e,t)}),{driver:a,workmateSessionId:r,transcriptPath:i,sessionWebhook:t.sessionWebhook,currentSenderStaffId:t.senderStaffId,conversationType:t.conversationType,conversationId:t.conversationId,textBuffer:``,turnInProgress:!1,pendingConfirm:null,cardOutTrackId:null,streamTimer:null,eventQueue:Promise.resolve()}}handleDriverEvent(e,t){let n=this.sessions.get(e);n&&(n.eventQueue=n.eventQueue.then(()=>this.processDriverEvent(e,t)).catch(e=>{b(e)}))}async processDriverEvent(e,t){let n=this.sessions.get(e);if(n)switch(t.type){case`text`:if(!n.cardOutTrackId&&this.cardClient&&n.turnInProgress)try{n.cardOutTrackId=await this.cardClient.createAndDeliverCard({conversationType:n.conversationType,conversationId:n.conversationId,senderStaffId:n.currentSenderStaffId,cardTemplateId:this.config.cardTemplateId,initialMarkdown:` `})}catch(e){b(e),p(`[channel] 卡片创建失败,回退整段 sendText`,{level:`debug`}),n.cardOutTrackId=null}n.textBuffer+=t.text,n.cardOutTrackId&&this.cardClient&&this.scheduleStreamPush(n);break;case`message_end`:if(n.streamTimer&&(clearTimeout(n.streamTimer),n.streamTimer=null),n.cardOutTrackId&&this.cardClient){let e=n.cardOutTrackId;n.cardOutTrackId=null;try{await this.cardClient.streamingUpdate(e,n.textBuffer,{finalize:!0})}catch(e){b(e),n.textBuffer.trim()&&await this.stream.sendText(n.sessionWebhook,n.textBuffer)}}else n.textBuffer.trim()&&await this.stream.sendText(n.sessionWebhook,n.textBuffer);n.textBuffer=``;break;case`tool_summary`:break;case`turn_end`:{n.turnInProgress=!1;let r=t.sessionId,i=t.transcriptPath;if(t.subtype===`success`&&r&&r!==n.workmateSessionId&&(n.workmateSessionId=r,n.transcriptPath=i??n.transcriptPath,k(t=>{let a=t.sessions[e];return{...t,sessions:{...t.sessions,[e]:{workmateSessionId:r,transcriptPath:i??a?.transcriptPath,lastActiveAt:Date.now(),senderId:n.currentSenderStaffId}}}}),this.config=T()),n.streamTimer&&(clearTimeout(n.streamTimer),n.streamTimer=null),t.subtype===`error`){if(n.cardOutTrackId&&this.cardClient){let e=n.cardOutTrackId;n.cardOutTrackId=null;let t=n.textBuffer;if(n.textBuffer=``,t.trim())try{await this.cardClient.streamingUpdate(e,t,{finalize:!0})}catch(e){b(e)}}else n.textBuffer=``;let e=t.errors?.length?t.errors:[`任务执行出错`];await this.stream.sendText(n.sessionWebhook,`⚠️ ${e.join(`
2
2
  `)}`),p(`[channel] turn_end error: ${e.join(` | `)}`,{level:`debug`});break}if(n.cardOutTrackId&&this.cardClient){let e=n.cardOutTrackId;n.cardOutTrackId=null;let r=n.textBuffer||t.resultText||``;n.textBuffer=``;try{await this.cardClient.streamingUpdate(e,r,{finalize:!0})}catch(e){b(e),r.trim()&&await this.stream.sendText(n.sessionWebhook,r)}}else if(n.textBuffer.trim()){let e=n.textBuffer;n.textBuffer=``,await this.stream.sendText(n.sessionWebhook,e)}else t.subtype===`success`&&t.resultText?.trim()&&!this.cardClient&&await this.stream.sendText(n.sessionWebhook,t.resultText);p(`[channel] turn_end: subtype=${t.subtype} sid=${t.sessionId??`-`} resultText=${t.resultText?`"${t.resultText.slice(0,50)}"`:`(空)`}`,{level:`debug`});break}case`permission_request`:await this.handlePermissionRequest(n,t);break;case`stderr`:break;case`exit`:p(`[channel] workmate 子进程退出 code=${t.code},清会话 ${e}`,{level:`debug`}),n.streamTimer&&(clearTimeout(n.streamTimer),n.streamTimer=null),this.sessions.delete(e);break}}async handlePermissionRequest(e,t){if(f(t.toolName)){e.driver.autoAllow(t.requestId),p(`[channel] 只读工具 autoAllow: ${t.toolName}`,{level:`debug`});return}if(!this.config.confirmDangerous){e.driver.autoAllow(t.requestId);return}e.pendingConfirm={requestId:t.requestId,webhook:e.sessionWebhook,senderStaffId:e.currentSenderStaffId,toolName:t.toolName},p(`[channel] permission_request: tool=${t.toolName}`,{level:`debug`});let n=JSON.stringify(t.input,null,2).slice(0,500),r=Math.round(this.config.confirmTimeoutMs/6e4);await this.stream.sendMarkdown(e.sessionWebhook,`需要确认`,`### ⚠️ 需要确认:${t.toolName}\n\n**参数预览:**\n\`\`\`json\n${n}\n\`\`\`\n\n**选项:**\n- 回复「**同意**」→ 执行此工具\n- 回复「**拒绝**」→ 跳过此工具,继续下一步\n- 回复「**终止**」→ 终止整个任务\n\n⏰ ${r} 分钟无回复自动拒绝`),setTimeout(()=>{if(e.pendingConfirm?.requestId===t.requestId){e.pendingConfirm=null;try{e.driver.respondPermission(t.requestId,{behavior:`deny`,message:`确认超时`})}catch(e){b(e)}this.stream.sendText(e.sessionWebhook,`⏰ 确认超时,已拒绝执行`)}},this.config.confirmTimeoutMs)}scheduleStreamPush(e){e.streamTimer||(e.streamTimer=setTimeout(()=>{e.streamTimer=null,!(!e.cardOutTrackId||!this.cardClient)&&this.cardClient.streamingUpdate(e.cardOutTrackId,e.textBuffer).catch(e=>b(e))},te))}canConfirm(e,t){return!!(this.config.admins.includes(e)||t&&e===t||!t)}};function ie(e){let t=e.trim().toLowerCase();return[`同意`,`yes`,`y`,`确认`,`ok`,`allow`,`同意了`].includes(t)?{behavior:`allow`}:[`拒绝`,`no`,`n`,`cancel`,`deny`,`不同意`,`拒绝执行`].includes(t)?{behavior:`deny`,message:`用户在钉钉拒绝`}:[`终止`,`stop`,`abort`,`中止`,`终止任务`,`终止整个任务`].includes(t)?{behavior:`terminate`}:null}S(),h(),y();async function ae(e){let t=e[0]??`start`;switch(t){case`start`:await oe();break;case`status`:ce();break;case`stop`:se();break;default:console.error(`未知子命令: ${t}。可用: start | stop | status`),process.exit(1)}}async function oe(){C(g())||(console.error(`channel 未启用。请在交互会话里运行 /channel,开启 channel 并选择 activePlugin=dingtalk`),process.exit(1));let e=new re;try{await e.start(),console.log(`[channel] bridge 已启动,Ctrl+C 退出`),await new Promise(()=>{})}catch(e){b(e),console.error(`bridge 启动失败: ${e instanceof Error?e.message:String(e)}`),process.exit(1)}}function se(){let e=O();if(!e){console.log(`bridge 未运行`);return}x()?console.log(`已发停止信号给 bridge pid=${e}`):(console.error(`停止失败:pid=${e} 信号发送异常`),process.exit(1))}function ce(){let e=E(),t=O(),n=T(),r=C(g());console.log(`channel.enabled: ${r}`),console.log(`bridge.running: ${e}`),t&&console.log(`bridge.pid: ${t}`),console.log(`dingtalk.appKey: ${n.appKey?`已配置`:`未配置`}`),console.log(`dingtalk.robotName: ${n.robotName}`),console.log(`dingtalk.permissionMode: ${n.permissionMode}`),console.log(`dingtalk.sessionStrategy: ${n.sessionStrategy}`),console.log(`dingtalk.confirmDangerous: ${n.confirmDangerous}`),console.log(`sessions: ${Object.keys(n.sessions).length} 个`)}export{ae as channelMain};
@@ -1 +1 @@
1
- import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{I as n,P as r,ai as i,t as a}from"./src-BX54x08P.js";import{t as o}from"./jsx-runtime-Bb4Xn-E0.js";import{d as s,h as c,o as l}from"./config-Bjwat4P6.js";import{n as u,t as d}from"./select-BpiKdirZ.js";import{a as f,c as p,i as m,n as h,o as g,r as _,t as v,u as y}from"./bridgeControl-DMUu37uO.js";function b({onClose:e}){let[t,i]=(0,x.useState)(0),[a,o]=(0,x.useState)(``),s=l(),u=g(),p=s.channel?.enabled===!0,h=s.channel?.activePlugin??null,b=_(),T=v();function E(){i(e=>e+1)}function D(e,t){c(n=>({...n,channel:{enabled:e,activePlugin:t}})),E()}function O(e,t,n){let r=t[(t.indexOf(e)+1)%t.length];n(r),E()}let k=[{label:(0,S.jsxs)(r,{children:[`Channel 开关:`,(0,S.jsx)(r,{bold:!0,children:p?`on`:`off`})]}),value:`toggle-enabled`},{label:(0,S.jsxs)(r,{children:[`激活渠道:`,(0,S.jsx)(r,{bold:!0,children:h??`(无)`})]}),value:`set-plugin`},{label:(0,S.jsxs)(r,{children:[`钉钉 corpid:`,(0,S.jsx)(r,{dimColor:!0,children:u.corpid||`(空) 编辑 dingtalk.json`})]}),value:`noop:corpid`},{label:(0,S.jsxs)(r,{children:[`钉钉 AppKey:`,(0,S.jsx)(r,{dimColor:!0,children:u.appKey?`已配置`:`(空) 编辑 dingtalk.json`})]}),value:`noop:appKey`},{label:(0,S.jsxs)(r,{children:[`钉钉 AppSecret:`,(0,S.jsx)(r,{dimColor:!0,children:u.appSecret?`已配置`:`(空) 编辑 dingtalk.json`})]}),value:`noop:appSecret`},{label:(0,S.jsxs)(r,{children:[`机器人名:`,(0,S.jsx)(r,{bold:!0,children:u.robotName})]}),value:`noop:robotName`},{label:(0,S.jsxs)(r,{children:[`AI 卡片模板:`,(0,S.jsx)(r,{dimColor:!0,children:u.cardTemplateId?`已配置`:`(空) 编辑 dingtalk.json`})]}),value:`noop:cardTemplateId`},{label:(0,S.jsxs)(r,{children:[`权限模式:`,(0,S.jsx)(r,{bold:!0,children:u.permissionMode})]}),value:`cycle-permissionMode`},{label:(0,S.jsxs)(r,{children:[`会话策略:`,(0,S.jsx)(r,{bold:!0,children:u.sessionStrategy}),(0,S.jsx)(r,{dimColor:!0,children:` (perConversation=每群一会话 / perUser=每人一会话 / shared=共用)`})]}),value:`cycle-sessionStrategy`},{label:(0,S.jsxs)(r,{children:[`危险操作钉钉确认:`,(0,S.jsx)(r,{bold:!0,children:u.confirmDangerous?`on`:`off`})]}),value:`toggle-confirmDangerous`},{label:(0,S.jsxs)(r,{bold:b,children:[b?`▶ bridge 运行中`:`▶ 启动 bridge`,T?` (pid=${T})`:``]}),value:`action:start`},{label:(0,S.jsx)(r,{bold:b,children:`■ 停止 bridge`}),value:`action:stop`}];function A(e){switch(o(``),e){case`toggle-enabled`:D(!p,h??`dingtalk`);break;case`set-plugin`:D(!0,`dingtalk`);break;case`cycle-permissionMode`:O(u.permissionMode,C,e=>y(t=>({...t,permissionMode:e})));break;case`cycle-sessionStrategy`:O(u.sessionStrategy,w,e=>y(t=>({...t,sessionStrategy:e})));break;case`toggle-confirmDangerous`:y(e=>({...e,confirmDangerous:!e.confirmDangerous})),E();break;case`action:start`:{let e=m();o(e.started?`bridge 已启动 (pid=${e.pid})`:`bridge 已在运行 (pid=${e.pid})`),E();break}case`action:stop`:{let e=f();o(e?`已发停止信号`:`bridge 未运行`),E();break}default:e.startsWith(`noop:`)&&o(`请编辑 ~/.workmate/channel/dingtalk.json 填入该字段`)}}return(0,S.jsxs)(n,{flexDirection:`column`,padding:1,children:[(0,S.jsxs)(n,{marginBottom:1,flexDirection:`column`,children:[(0,S.jsx)(r,{bold:!0,children:`远程对话渠道(钉钉)`}),(0,S.jsx)(r,{dimColor:!0,children:`↑↓ 导航 · Enter 切换/执行 · Esc 退出`}),(0,S.jsx)(r,{dimColor:!0,children:`corpid/AppKey/AppSecret 请直接编辑 ~/.workmate/channel/dingtalk.json`})]}),(0,S.jsx)(d,{options:k,onChange:A,onCancel:e,visibleOptionCount:k.length},t),a&&(0,S.jsx)(n,{marginTop:1,children:(0,S.jsx)(r,{bold:!0,children:a})})]})}var x,S,C,w,T=e((()=>{a(),x=t(i(),1),u(),s(),p(),h(),S=o(),C=[`default`,`acceptEdits`,`bypassPermissions`,`plan`,`dontAsk`,`auto`],w=[`perConversation`,`perUser`,`shared`]})),E,D;e((()=>{T(),E=o(),D=async e=>(0,E.jsx)(b,{onClose:()=>e()})}))();export{D as call};
1
+ import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{I as n,P as r,ai as i,t as a}from"./src-BX54x08P.js";import{t as o}from"./jsx-runtime-Bb4Xn-E0.js";import{d as s,h as c,o as l}from"./config-CMtnYZR9.js";import{n as u,t as d}from"./select-CPlgmbIJ.js";import{a as f,c as p,i as m,n as h,o as g,r as _,t as v,u as y}from"./bridgeControl-DMUu37uO.js";function b({onClose:e}){let[t,i]=(0,x.useState)(0),[a,o]=(0,x.useState)(``),s=l(),u=g(),p=s.channel?.enabled===!0,h=s.channel?.activePlugin??null,b=_(),T=v();function E(){i(e=>e+1)}function D(e,t){c(n=>({...n,channel:{enabled:e,activePlugin:t}})),E()}function O(e,t,n){let r=t[(t.indexOf(e)+1)%t.length];n(r),E()}let k=[{label:(0,S.jsxs)(r,{children:[`Channel 开关:`,(0,S.jsx)(r,{bold:!0,children:p?`on`:`off`})]}),value:`toggle-enabled`},{label:(0,S.jsxs)(r,{children:[`激活渠道:`,(0,S.jsx)(r,{bold:!0,children:h??`(无)`})]}),value:`set-plugin`},{label:(0,S.jsxs)(r,{children:[`钉钉 corpid:`,(0,S.jsx)(r,{dimColor:!0,children:u.corpid||`(空) 编辑 dingtalk.json`})]}),value:`noop:corpid`},{label:(0,S.jsxs)(r,{children:[`钉钉 AppKey:`,(0,S.jsx)(r,{dimColor:!0,children:u.appKey?`已配置`:`(空) 编辑 dingtalk.json`})]}),value:`noop:appKey`},{label:(0,S.jsxs)(r,{children:[`钉钉 AppSecret:`,(0,S.jsx)(r,{dimColor:!0,children:u.appSecret?`已配置`:`(空) 编辑 dingtalk.json`})]}),value:`noop:appSecret`},{label:(0,S.jsxs)(r,{children:[`机器人名:`,(0,S.jsx)(r,{bold:!0,children:u.robotName})]}),value:`noop:robotName`},{label:(0,S.jsxs)(r,{children:[`AI 卡片模板:`,(0,S.jsx)(r,{dimColor:!0,children:u.cardTemplateId?`已配置`:`(空) 编辑 dingtalk.json`})]}),value:`noop:cardTemplateId`},{label:(0,S.jsxs)(r,{children:[`权限模式:`,(0,S.jsx)(r,{bold:!0,children:u.permissionMode})]}),value:`cycle-permissionMode`},{label:(0,S.jsxs)(r,{children:[`会话策略:`,(0,S.jsx)(r,{bold:!0,children:u.sessionStrategy}),(0,S.jsx)(r,{dimColor:!0,children:` (perConversation=每群一会话 / perUser=每人一会话 / shared=共用)`})]}),value:`cycle-sessionStrategy`},{label:(0,S.jsxs)(r,{children:[`危险操作钉钉确认:`,(0,S.jsx)(r,{bold:!0,children:u.confirmDangerous?`on`:`off`})]}),value:`toggle-confirmDangerous`},{label:(0,S.jsxs)(r,{bold:b,children:[b?`▶ bridge 运行中`:`▶ 启动 bridge`,T?` (pid=${T})`:``]}),value:`action:start`},{label:(0,S.jsx)(r,{bold:b,children:`■ 停止 bridge`}),value:`action:stop`}];function A(e){switch(o(``),e){case`toggle-enabled`:D(!p,h??`dingtalk`);break;case`set-plugin`:D(!0,`dingtalk`);break;case`cycle-permissionMode`:O(u.permissionMode,C,e=>y(t=>({...t,permissionMode:e})));break;case`cycle-sessionStrategy`:O(u.sessionStrategy,w,e=>y(t=>({...t,sessionStrategy:e})));break;case`toggle-confirmDangerous`:y(e=>({...e,confirmDangerous:!e.confirmDangerous})),E();break;case`action:start`:{let e=m();o(e.started?`bridge 已启动 (pid=${e.pid})`:`bridge 已在运行 (pid=${e.pid})`),E();break}case`action:stop`:{let e=f();o(e?`已发停止信号`:`bridge 未运行`),E();break}default:e.startsWith(`noop:`)&&o(`请编辑 ~/.workmate/channel/dingtalk.json 填入该字段`)}}return(0,S.jsxs)(n,{flexDirection:`column`,padding:1,children:[(0,S.jsxs)(n,{marginBottom:1,flexDirection:`column`,children:[(0,S.jsx)(r,{bold:!0,children:`远程对话渠道(钉钉)`}),(0,S.jsx)(r,{dimColor:!0,children:`↑↓ 导航 · Enter 切换/执行 · Esc 退出`}),(0,S.jsx)(r,{dimColor:!0,children:`corpid/AppKey/AppSecret 请直接编辑 ~/.workmate/channel/dingtalk.json`})]}),(0,S.jsx)(d,{options:k,onChange:A,onCancel:e,visibleOptionCount:k.length},t),a&&(0,S.jsx)(n,{marginTop:1,children:(0,S.jsx)(r,{bold:!0,children:a})})]})}var x,S,C,w,T=e((()=>{a(),x=t(i(),1),u(),s(),p(),h(),S=o(),C=[`default`,`acceptEdits`,`bypassPermissions`,`plan`,`dontAsk`,`auto`],w=[`perConversation`,`perUser`,`shared`]})),E,D;e((()=>{T(),E=o(),D=async e=>(0,E.jsx)(b,{onClose:()=>e()})}))();export{D as call};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t,t as n}from"./conversation-CYZKYlWc.js";var r;e((()=>{t(),r=async(e,t)=>(await n(t),{type:`text`,value:``})}))();export{r as call};
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t,t as n}from"./conversation-CxvOL7c4.js";var r;e((()=>{t(),r=async(e,t)=>(await n(t),{type:`text`,value:``})}))();export{r as call};
@@ -0,0 +1 @@
1
+ import{Pi as e,Ti as t,ki as n}from"./loadAgentsDir-izAo6rpy.js";e();export{t as clearCommandsCache,n as getCommands};
@@ -1,2 +1,2 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{di as t,fi as n}from"./src-BX54x08P.js";import{It as r,Pt as i}from"./state-CXY-q5gr.js";import{$g as a,Bx as o,H_ as s,I_ as c,K_ as l,L_ as u,N_ as d,P_ as f,Qg as p,R_ as m,U_ as h,Xg as g,Xi as _,Yg as v,am as y,cb as b,ct as x,dm as S,gn as C,gp as w,hp as T,id as E,im as D,lm as O,lt as k,q_ as A,rd as j,sb as M,sv as N,tv as P}from"./loadAgentsDir-DnHL_5cU.js";import{F,I}from"./debug-NBJH_NxR.js";import{o as L,s as R}from"./log-D98mO6yJ.js";function z(e,n){let r=j(`tip`),i=M(`app:toggleTranscript`,`Global`,`ctrl+o`),a=[...e.options.verbose?[]:[`(${i} to see full summary)`],...n?[n]:[],...r?[r]:[]];return t.dim(`Compacted ${a.join(`
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{di as t,fi as n}from"./src-BX54x08P.js";import{It as r,Pt as i}from"./state-CXY-q5gr.js";import{$g as a,Bx as o,H_ as s,I_ as c,K_ as l,L_ as u,N_ as d,P_ as f,Qg as p,R_ as m,U_ as h,Xg as g,Xi as _,Yg as v,am as y,cb as b,ct as x,dm as S,gn as C,gp as w,hp as T,id as E,im as D,lm as O,lt as k,q_ as A,rd as j,sb as M,sv as N,tv as P}from"./loadAgentsDir-izAo6rpy.js";import{F,I}from"./debug-NBJH_NxR.js";import{o as L,s as R}from"./log-D98mO6yJ.js";function z(e,n){let r=j(`tip`),i=M(`app:toggleTranscript`,`Global`,`ctrl+o`),a=[...e.options.verbose?[]:[`(${i} to see full summary)`],...n?[n]:[],...r?[r]:[]];return t.dim(`Compacted ${a.join(`
2
2
  `)}`)}async function B(e,t){let n=e.getAppState(),r=await x(e.options.tools,e.options.mainLoopModel,Array.from(n.toolPermissionContext.additionalWorkingDirectories.keys()),e.options.mcpClients),i=d({mainThreadAgentDefinition:void 0,toolUseContext:e,customSystemPrompt:e.options.customSystemPrompt,defaultSystemPrompt:r,appendSystemPrompt:e.options.appendSystemPrompt}),[a,o]=await Promise.all([u(),c()]);return{systemPrompt:i,userContext:a,systemContext:o,toolUseContext:e,forkContextMessages:t}}var V;e((()=>{n(),i(),k(),m(),b(),T(),a(),l(),s(),O(),D(),P(),I(),C(),L(),_(),E(),f(),V=async(e,t)=>{let{abortController:n}=t,{messages:i}=t;if(i=o(i),i.length===0)throw Error(`No messages to compact`);let a=e.trim();try{if(!a){let e=await y(i,t.agentId);if(e)return u.cache.clear?.(),S(),w(t.options.querySource??`compact`,t.agentId),r(),A(),{type:`compact`,compactionResult:e,displayText:z(t)}}let e=(await h(i,t)).messages,n=await p(e,t,await B(t,e),!1,a,!1);return N(void 0),A(),u.cache.clear?.(),S(),{type:`compact`,compactionResult:n,displayText:z(t,n.userDisplayMessage)}}catch(e){throw n.signal.aborted?Error(`Compaction canceled.`):F(e,`Not enough messages to compact. Send a few more messages first, then try again.`)?Error(g):F(e,`Compaction interrupted · This may be due to network issues — please try again.`)?Error(v):(R(e),Error(`Error during compaction: ${e}`))}}}))();export{V as call};
@@ -1,3 +1,3 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t,t as n}from"./isObject-C6qM3WEW.js";import{n as r,t as i}from"./memoize-BK3gG5ob.js";import{c as a,i as o,l as s,o as c}from"./envUtils-QyzA_cFM.js";import{Ai as l,Ar as u,Cn as d,Di as f,Ei as ee,In as te,Jr as p,Kn as ne,Sn as re,Xt as ie,Yt as m,bi as ae,bn as oe,di as se,fi as ce,ji as le,m as ue,mr as h,pr as de,rn as fe,s as g,t as pe,tn as me,vn as he,xi as ge,zr as _e}from"./settings-CA-5Px85.js";import{Hr as ve,Jr as ye,Pt as be,Ur as xe,X as _,Xr as Se,Yr as Ce,Zr as we,_r as Te,ai as Ee,ar as De,cr as Oe,dr as ke,ei as Ae,fr as je,gr as Me,ii as Ne,ir as Pe,lr as Fe,pr as Ie,q as Le,st as Re,ti as ze,ur as Be}from"./state-CXY-q5gr.js";import{n as Ve,t as He}from"./cwd-DrEEb4f5.js";import{$ as Ue,C as v,I as We,N as y,O as b,S as Ge,c as x,et as S,f as Ke,i as qe,u as C,x as Je}from"./debug-NBJH_NxR.js";import{d as Ye,o as Xe,s as Ze,u as Qe}from"./log-D98mO6yJ.js";import{n as $e}from"./analytics-COpjZpvd.js";import{i as et,n as tt}from"./lockfile-D_9vif6E.js";import{homedir as nt}from"os";import{basename as w,dirname as T,isAbsolute as rt,join as E,normalize as D,resolve as it,sep as at}from"path";import{unwatchFile as ot,watchFile as st}from"fs";import{randomBytes as ct}from"crypto";var O,lt=e((()=>{Ee(),ge(),Ce(),Se(),O=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)Ne(t,ye(e)),e=ae(e);return t}:we}));function ut(e){return Ae(e,f,O)}var dt=e((()=>{ze(),lt(),ee()}));function ft(){let e=process.env.WORKMATE_DISABLE_AUTO_MEMORY;if(s(e))return!1;if(a(e))return!0;if(s(process.env.WORKMATE_SIMPLE)||s(process.env.WORKMATE_REMOTE)&&!process.env.WORKMATE_REMOTE_MEMORY_DIR)return!1;let t=pe();return t.autoMemoryEnabled===void 0||t.autoMemoryEnabled}function pt(){return!1}function mt(){return process.env.WORKMATE_REMOTE_MEMORY_DIR?process.env.WORKMATE_REMOTE_MEMORY_DIR:o()}function ht(e,t){if(!e)return;let n=e;if(t&&(n.startsWith(`~/`)||n.startsWith(`~\\`))){let e=n.slice(2),t=D(e||`.`);if(t===`.`||t===`..`)return;n=E(nt(),e)}let r=D(n).replace(/[/\\]+$/,``);if(!(!rt(r)||r.length<3||/^[A-Za-z]:$/.test(r)||r.startsWith(`\\\\`)||r.startsWith(`//`)||r.includes(`\0`)))return(r+at).normalize(`NFC`)}function gt(){return ht(process.env.WORKMATE_COWORK_MEMORY_PATH_OVERRIDE,!1)}function _t(){return ht(g(`policySettings`)?.autoMemoryDirectory??g(`flagSettings`)?.autoMemoryDirectory??g(`localSettings`)?.autoMemoryDirectory??g(`userSettings`)?.autoMemoryDirectory,!0)}function vt(){return gt()!==void 0}function yt(){return _e(_())??_()}function bt(){return E(k(),Ct)}function xt(e){return D(e).startsWith(k())}var St,Ct,k,A=e((()=>{i(),be(),c(),p(),de(),ue(),St=`memory`,Ct=`MEMORY.md`,k=r(()=>(gt()??_t())||(E(E(mt(),`projects`),u(yt()),St)+at).normalize(`NFC`),()=>_())}));function j(e,n,r,i){if(!t(e))return e;n=je(n,e);for(var a=-1,o=n.length,s=o-1,c=e;c!=null&&++a<o;){var u=ke(n[a]),d=r;if(u===`__proto__`||u===`constructor`||u===`prototype`)return e;if(a!=s){var f=c[u];d=i?i(f,u,c):void 0,d===void 0&&(d=t(f)?f:xe(n[a+1])?[]:{})}l(c,u,d),c=c[u]}return e}var M=e((()=>{le(),Ie(),ve(),n(),Be()}));function wt(e,t,n){for(var r=-1,i=t.length,a={};++r<i;){var o=t[r],s=Oe(e,o);n(s,o)&&j(a,je(o,e),s)}return a}var Tt=e((()=>{Fe(),M(),Ie()}));function N(e,t){if(e==null)return{};var n=Me(ut(e),function(e){return[e]});return t=Pe(t),wt(e,n,function(e,n){return t(e,n[0])})}var Et=e((()=>{Te(),De(),Tt(),dt()}));function P(){return{numStartups:0,installMethod:void 0,autoUpdates:void 0,theme:`dark`,preferredNotifChannel:`auto`,verbose:!1,editorMode:`normal`,autoCompactEnabled:!0,showTurnDuration:!0,hasSeenTasksHint:!1,hasUsedStash:!1,hasUsedBackgroundTask:!1,queuedCommandUpHintCount:0,diffTool:`auto`,env:{},tipsHistory:{},memoryUsageCount:0,promptQueueUseCount:0,btwUseCount:0,todoFeatureEnabled:!0,showExpandedTodos:!1,messageIdleNotifThresholdMs:6e4,fileCheckpointingEnabled:!0,terminalProgressBarEnabled:!0,cachedStatsigGates:{},cachedDynamicConfigs:{},respectGitignore:!0,channel:{enabled:!1,activePlugin:null}}}function Dt(){return G||(G=Ot())}function Ot(){if(Re())return!0;let e=z(),t=$();if(e.projects?.[t]?.hasTrustDialogAccepted)return!0;let n=h(He());for(;;){if(e.projects?.[n]?.hasTrustDialogAccepted)return!0;let t=h(it(n,`..`));if(t===n)break;n=t}return!1}function F(e){let t=K.config;return t?t.hasCompletedOnboarding===!0&&e.hasCompletedOnboarding!==!0:!1}function I(e){let t=null;try{Nt(m(),P,n=>{let r=e(n);return r===n?n:(t={...r,projects:At(n.projects)},t)})&&t&&R(t)}catch(n){x(`Failed to save config with lock: ${n}`,{level:`error`});let r=V(m(),P);if(F(r)){x(`saveGlobalConfig fallback: re-read config is missing auth that cache has; refusing to write. See GH #3117.`,{level:`error`});return}let i=e(r);if(i===r)return;t={...i,projects:At(r.projects)},Mt(m(),t,W),R(t)}}function kt(){let e=J+Y;e>0&&J/e,J=0,Y=0}function L(e){if(e.installMethod!==void 0)return e;let t=e,n=`unknown`,r=e.autoUpdates??!0;switch(t.autoUpdaterStatus){case`migrated`:n=`local`;break;case`installed`:n=`native`;break;case`disabled`:r=!1;break;case`enabled`:case`no_permissions`:case`not_configured`:n=`global`;break;case void 0:break}return{...e,installMethod:n,autoUpdates:r}}function At(e){if(!e)return e;let t={},n=!1;for(let[r,i]of Object.entries(e)){let e=i;if(e.history!==void 0){n=!0;let{history:i,...a}=e;t[r]=a}else t[r]=i}return n?t:e}function jt(){if(Z)return;Z=!0;let e=m();st(e,{interval:qt,persistent:!1},t=>{t.mtimeMs<=K.mtime||C().readFile(e,{encoding:`utf-8`}).then(e=>{if(t.mtimeMs<=K.mtime)return;let n=oe(d(e));typeof n!=`object`||!n||(K={config:L({...P(),...n}),mtime:t.mtimeMs},q={mtime:t.mtimeMs,size:t.size})}).catch(()=>{})}),S(async()=>{ot(e),Z=!1})}function R(e){K={config:e,mtime:Date.now()},q=null}function z(){if(K.config)return J++,K.config;Y++;try{let e=null;try{e=C().statSync(m())}catch{}let t=L(V(m(),P));return K={config:t,mtime:e?.mtimeMs??Date.now()},q=e?{mtime:e.mtimeMs,size:e.size}:null,jt(),t}catch{return L(V(m(),P))}}function Mt(e,t,n){let r=T(e);C().mkdirSync(r),ne(e,v(N(t,(e,t)=>v(e)!==v(n[t])),null,2),{encoding:`utf-8`,mode:384}),e===m()&&X++}function Nt(e,t,n){let r=t(),i=T(e),a=C();a.mkdirSync(i);let o;try{let i=`${e}.lock`,s=Date.now();if(o=et(e,{lockfilePath:i,onCompromised:e=>{x(`Config lock compromised: ${e}`,{level:`error`})}}),Date.now()-s>100&&x(`Lock acquisition took longer than expected - another Work Mate instance may be running`),q&&e===m())try{let t=a.statSync(e);(t.mtimeMs!==q.mtime||t.size!==q.size)&&(q.mtime,t.mtimeMs,q.size,t.size)}catch(e){if(y(e)!==`ENOENT`)throw e}let c=V(e,t);if(e===m()&&F(c))return x(`saveConfigWithLock: re-read config is missing auth that cache has; refusing to write to avoid wiping ~/.workmate.json. See GH #3117.`,{level:`error`}),!1;let l=n(c);if(l===c)return!1;let u=N(l,(e,t)=>v(e)!==v(r[t]));try{let t=w(e),n=B();try{a.mkdirSync(n)}catch(e){if(y(e)!==`EEXIST`)throw e}let r=a.readdirStringSync(n).filter(e=>e.startsWith(`${t}.backup.`)).sort().reverse(),i=r[0],o=i?Number(i.split(`.backup.`).pop()):0,s=Number.isNaN(o)||Date.now()-o>=6e4;if(s){let r=E(n,`${t}.backup.${Date.now()}`);a.copyFileSync(e,r)}let c=s?a.readdirStringSync(n).filter(e=>e.startsWith(`${t}.backup.`)).sort().reverse():r;for(let e of c.slice(5))try{a.unlinkSync(E(n,e))}catch{}}catch(e){y(e)!==`ENOENT`&&x(`Failed to backup config: ${e}`,{level:`error`})}return ne(e,v(u,null,2),{encoding:`utf-8`,mode:384}),e===m()&&X++,!0}finally{o&&o()}}function Pt(){if(Q)return;let e=Date.now();ce(`info`,`enable_configs_started`),Q=!0,V(m(),P,!0),ce(`info`,`enable_configs_completed`,{duration_ms:Date.now()-e})}function B(){return E(o(),`backups`)}function Ft(e){let t=C(),n=w(e),r=B();try{let e=t.readdirStringSync(r).filter(e=>e.startsWith(`${n}.backup.`)).sort().at(-1);if(e)return E(r,e)}catch{}let i=T(e);try{let r=t.readdirStringSync(i).filter(e=>e.startsWith(`${n}.backup.`)).sort().at(-1);if(r)return E(i,r);let a=`${e}.backup`;try{return t.statSync(a),a}catch{}}catch{}return null}function V(e,t,n){if(!Q)throw Error(`Config accessed before allowed.`);let r=C();try{let n=r.readFileSync(e,{encoding:`utf-8`});try{let e=Ge(d(n));return{...t(),...e}}catch(n){throw new b(n instanceof Error?n.message:String(n),e,t())}}catch(i){if(y(i)===`ENOENT`){let n=Ft(e);return n&&process.stderr.write(`\nWork Mate configuration file not found at: ${e}\nA backup file exists at: ${n}\nYou can manually restore it by running: cp "${n}" "${e}"\n\n`),t()}if(i instanceof b&&n)throw i;if(i instanceof b){if(x(`Config file corrupted, resetting to defaults: ${i.message}`,{level:`error`}),!H){H=!0;try{Ze(i);try{r.statSync(`${e}.backup`)}catch{}}finally{H=!1}}process.stderr.write(`\nWork Mate configuration file at ${e} is corrupted: ${i.message}\n`);let t=w(e),n=B();try{r.mkdirSync(n)}catch(e){if(y(e)!==`EEXIST`)throw e}let a=r.readdirStringSync(n).filter(e=>e.startsWith(`${t}.corrupted.`)),o,s=!1,c=r.readFileSync(e,{encoding:`utf-8`});for(let e of a)try{if(c===r.readFileSync(E(n,e),{encoding:`utf-8`})){s=!0;break}}catch{}if(!s){o=E(n,`${t}.corrupted.${Date.now()}`);try{r.copyFileSync(e,o),x(`Corrupted config backed up to: ${o}`,{level:`error`})}catch{}}let l=Ft(e);o?process.stderr.write(`The corrupted file has been backed up to: ${o}\n`):s&&process.stderr.write(`The corrupted file has already been backed up.
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t,t as n}from"./isObject-C6qM3WEW.js";import{n as r,t as i}from"./memoize-BK3gG5ob.js";import{c as a,i as o,l as s,o as c}from"./envUtils-QyzA_cFM.js";import{Ai as l,Ar as u,Cn as d,Di as f,Ei as ee,In as te,Jr as p,Kn as ne,Sn as re,Xt as ie,Yt as m,bi as ae,bn as oe,di as se,fi as ce,ji as le,m as ue,mr as h,pr as de,rn as fe,s as g,t as pe,tn as me,vn as he,xi as ge,zr as _e}from"./settings-CA-5Px85.js";import{Hr as ve,Jr as ye,Pt as be,Ur as xe,X as _,Xr as Se,Yr as Ce,Zr as we,_r as Te,ai as Ee,ar as De,cr as Oe,dr as ke,ei as Ae,fr as je,gr as Me,ii as Ne,ir as Pe,lr as Fe,pr as Ie,q as Le,st as Re,ti as ze,ur as Be}from"./state-CXY-q5gr.js";import{n as Ve,t as He}from"./cwd-DrEEb4f5.js";import{$ as Ue,C as v,I as We,N as y,O as b,S as Ge,c as x,et as S,f as Ke,i as qe,u as C,x as Je}from"./debug-NBJH_NxR.js";import{d as Ye,o as Xe,s as Ze,u as Qe}from"./log-D98mO6yJ.js";import{n as $e}from"./analytics-COpjZpvd.js";import{i as et,n as tt}from"./lockfile-D_9vif6E.js";import{homedir as nt}from"os";import{basename as w,dirname as T,isAbsolute as rt,join as E,normalize as D,resolve as it,sep as at}from"path";import{unwatchFile as ot,watchFile as st}from"fs";import{randomBytes as ct}from"crypto";var O,lt=e((()=>{Ee(),ge(),Ce(),Se(),O=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)Ne(t,ye(e)),e=ae(e);return t}:we}));function ut(e){return Ae(e,f,O)}var dt=e((()=>{ze(),lt(),ee()}));function ft(){let e=process.env.WORKMATE_DISABLE_AUTO_MEMORY;if(s(e))return!1;if(a(e))return!0;if(s(process.env.WORKMATE_SIMPLE)||s(process.env.WORKMATE_REMOTE)&&!process.env.WORKMATE_REMOTE_MEMORY_DIR)return!1;let t=pe();return t.autoMemoryEnabled===void 0||t.autoMemoryEnabled}function pt(){return!1}function mt(){return process.env.WORKMATE_REMOTE_MEMORY_DIR?process.env.WORKMATE_REMOTE_MEMORY_DIR:o()}function ht(e,t){if(!e)return;let n=e;if(t&&(n.startsWith(`~/`)||n.startsWith(`~\\`))){let e=n.slice(2),t=D(e||`.`);if(t===`.`||t===`..`)return;n=E(nt(),e)}let r=D(n).replace(/[/\\]+$/,``);if(!(!rt(r)||r.length<3||/^[A-Za-z]:$/.test(r)||r.startsWith(`\\\\`)||r.startsWith(`//`)||r.includes(`\0`)))return(r+at).normalize(`NFC`)}function gt(){return ht(process.env.WORKMATE_COWORK_MEMORY_PATH_OVERRIDE,!1)}function _t(){return ht(g(`policySettings`)?.autoMemoryDirectory??g(`flagSettings`)?.autoMemoryDirectory??g(`localSettings`)?.autoMemoryDirectory??g(`userSettings`)?.autoMemoryDirectory,!0)}function vt(){return gt()!==void 0}function yt(){return _e(_())??_()}function bt(){return E(k(),Ct)}function xt(e){return D(e).startsWith(k())}var St,Ct,k,A=e((()=>{i(),be(),c(),p(),de(),ue(),St=`memory`,Ct=`MEMORY.md`,k=r(()=>(gt()??_t())||(E(E(mt(),`projects`),u(yt()),St)+at).normalize(`NFC`),()=>_())}));function j(e,n,r,i){if(!t(e))return e;n=je(n,e);for(var a=-1,o=n.length,s=o-1,c=e;c!=null&&++a<o;){var u=ke(n[a]),d=r;if(u===`__proto__`||u===`constructor`||u===`prototype`)return e;if(a!=s){var f=c[u];d=i?i(f,u,c):void 0,d===void 0&&(d=t(f)?f:xe(n[a+1])?[]:{})}l(c,u,d),c=c[u]}return e}var M=e((()=>{le(),Ie(),ve(),n(),Be()}));function wt(e,t,n){for(var r=-1,i=t.length,a={};++r<i;){var o=t[r],s=Oe(e,o);n(s,o)&&j(a,je(o,e),s)}return a}var Tt=e((()=>{Fe(),M(),Ie()}));function N(e,t){if(e==null)return{};var n=Me(ut(e),function(e){return[e]});return t=Pe(t),wt(e,n,function(e,n){return t(e,n[0])})}var Et=e((()=>{Te(),De(),Tt(),dt()}));function P(){return{numStartups:0,installMethod:void 0,autoUpdates:void 0,theme:`dark`,preferredNotifChannel:`auto`,verbose:!1,editorMode:`normal`,autoCompactEnabled:!0,showTurnDuration:!0,hasSeenTasksHint:!1,hasUsedStash:!1,hasUsedBackgroundTask:!1,queuedCommandUpHintCount:0,diffTool:`auto`,env:{},tipsHistory:{},memoryUsageCount:0,promptQueueUseCount:0,btwUseCount:0,todoFeatureEnabled:!0,showExpandedTodos:!1,messageIdleNotifThresholdMs:6e4,fileCheckpointingEnabled:!0,terminalProgressBarEnabled:!0,cachedStatsigGates:{},cachedDynamicConfigs:{},respectGitignore:!0,channel:{enabled:!1,activePlugin:null}}}function Dt(){return G||(G=Ot())}function Ot(){if(Re())return!0;let e=z(),t=$();if(e.projects?.[t]?.hasTrustDialogAccepted)return!0;let n=h(He());for(;;){if(e.projects?.[n]?.hasTrustDialogAccepted)return!0;let t=h(it(n,`..`));if(t===n)break;n=t}return!1}function F(e){let t=K.config;return t?t.hasCompletedOnboarding===!0&&e.hasCompletedOnboarding!==!0:!1}function I(e){let t=null;try{Nt(m(),P,n=>{let r=e(n);return r===n?n:(t={...r,projects:At(n.projects)},t)})&&t&&R(t)}catch(n){x(`Failed to save config with lock: ${n}`,{level:`error`});let r=V(m(),P);if(F(r)){x(`saveGlobalConfig fallback: re-read config is missing auth that cache has; refusing to write. See GH #3117.`,{level:`error`});return}let i=e(r);if(i===r)return;t={...i,projects:At(r.projects)},Mt(m(),t,W),R(t)}}function kt(){let e=J+Y;e>0&&J/e,J=0,Y=0}function L(e){if(e.editorMode===`emacs`&&(e={...e,editorMode:`normal`}),e.installMethod!==void 0)return e;let t=e,n=`unknown`,r=e.autoUpdates??!0;switch(t.autoUpdaterStatus){case`migrated`:n=`local`;break;case`installed`:n=`native`;break;case`disabled`:r=!1;break;case`enabled`:case`no_permissions`:case`not_configured`:n=`global`;break;case void 0:break}return{...e,installMethod:n,autoUpdates:r}}function At(e){if(!e)return e;let t={},n=!1;for(let[r,i]of Object.entries(e)){let e=i;if(e.history!==void 0){n=!0;let{history:i,...a}=e;t[r]=a}else t[r]=i}return n?t:e}function jt(){if(Z)return;Z=!0;let e=m();st(e,{interval:qt,persistent:!1},t=>{t.mtimeMs<=K.mtime||C().readFile(e,{encoding:`utf-8`}).then(e=>{if(t.mtimeMs<=K.mtime)return;let n=oe(d(e));typeof n!=`object`||!n||(K={config:L({...P(),...n}),mtime:t.mtimeMs},q={mtime:t.mtimeMs,size:t.size})}).catch(()=>{})}),S(async()=>{ot(e),Z=!1})}function R(e){K={config:e,mtime:Date.now()},q=null}function z(){if(K.config)return J++,K.config;Y++;try{let e=null;try{e=C().statSync(m())}catch{}let t=L(V(m(),P));return K={config:t,mtime:e?.mtimeMs??Date.now()},q=e?{mtime:e.mtimeMs,size:e.size}:null,jt(),t}catch{return L(V(m(),P))}}function Mt(e,t,n){let r=T(e);C().mkdirSync(r),ne(e,v(N(t,(e,t)=>v(e)!==v(n[t])),null,2),{encoding:`utf-8`,mode:384}),e===m()&&X++}function Nt(e,t,n){let r=t(),i=T(e),a=C();a.mkdirSync(i);let o;try{let i=`${e}.lock`,s=Date.now();if(o=et(e,{lockfilePath:i,onCompromised:e=>{x(`Config lock compromised: ${e}`,{level:`error`})}}),Date.now()-s>100&&x(`Lock acquisition took longer than expected - another Work Mate instance may be running`),q&&e===m())try{let t=a.statSync(e);(t.mtimeMs!==q.mtime||t.size!==q.size)&&(q.mtime,t.mtimeMs,q.size,t.size)}catch(e){if(y(e)!==`ENOENT`)throw e}let c=V(e,t);if(e===m()&&F(c))return x(`saveConfigWithLock: re-read config is missing auth that cache has; refusing to write to avoid wiping ~/.workmate.json. See GH #3117.`,{level:`error`}),!1;let l=n(c);if(l===c)return!1;let u=N(l,(e,t)=>v(e)!==v(r[t]));try{let t=w(e),n=B();try{a.mkdirSync(n)}catch(e){if(y(e)!==`EEXIST`)throw e}let r=a.readdirStringSync(n).filter(e=>e.startsWith(`${t}.backup.`)).sort().reverse(),i=r[0],o=i?Number(i.split(`.backup.`).pop()):0,s=Number.isNaN(o)||Date.now()-o>=6e4;if(s){let r=E(n,`${t}.backup.${Date.now()}`);a.copyFileSync(e,r)}let c=s?a.readdirStringSync(n).filter(e=>e.startsWith(`${t}.backup.`)).sort().reverse():r;for(let e of c.slice(5))try{a.unlinkSync(E(n,e))}catch{}}catch(e){y(e)!==`ENOENT`&&x(`Failed to backup config: ${e}`,{level:`error`})}return ne(e,v(u,null,2),{encoding:`utf-8`,mode:384}),e===m()&&X++,!0}finally{o&&o()}}function Pt(){if(Q)return;let e=Date.now();ce(`info`,`enable_configs_started`),Q=!0,V(m(),P,!0),ce(`info`,`enable_configs_completed`,{duration_ms:Date.now()-e})}function B(){return E(o(),`backups`)}function Ft(e){let t=C(),n=w(e),r=B();try{let e=t.readdirStringSync(r).filter(e=>e.startsWith(`${n}.backup.`)).sort().at(-1);if(e)return E(r,e)}catch{}let i=T(e);try{let r=t.readdirStringSync(i).filter(e=>e.startsWith(`${n}.backup.`)).sort().at(-1);if(r)return E(i,r);let a=`${e}.backup`;try{return t.statSync(a),a}catch{}}catch{}return null}function V(e,t,n){if(!Q)throw Error(`Config accessed before allowed.`);let r=C();try{let n=r.readFileSync(e,{encoding:`utf-8`});try{let e=Ge(d(n));return{...t(),...e}}catch(n){throw new b(n instanceof Error?n.message:String(n),e,t())}}catch(i){if(y(i)===`ENOENT`){let n=Ft(e);return n&&process.stderr.write(`\nWork Mate configuration file not found at: ${e}\nA backup file exists at: ${n}\nYou can manually restore it by running: cp "${n}" "${e}"\n\n`),t()}if(i instanceof b&&n)throw i;if(i instanceof b){if(x(`Config file corrupted, resetting to defaults: ${i.message}`,{level:`error`}),!H){H=!0;try{Ze(i);try{r.statSync(`${e}.backup`)}catch{}}finally{H=!1}}process.stderr.write(`\nWork Mate configuration file at ${e} is corrupted: ${i.message}\n`);let t=w(e),n=B();try{r.mkdirSync(n)}catch(e){if(y(e)!==`EEXIST`)throw e}let a=r.readdirStringSync(n).filter(e=>e.startsWith(`${t}.corrupted.`)),o,s=!1,c=r.readFileSync(e,{encoding:`utf-8`});for(let e of a)try{if(c===r.readFileSync(E(n,e),{encoding:`utf-8`})){s=!0;break}}catch{}if(!s){o=E(n,`${t}.corrupted.${Date.now()}`);try{r.copyFileSync(e,o),x(`Corrupted config backed up to: ${o}`,{level:`error`})}catch{}}let l=Ft(e);o?process.stderr.write(`The corrupted file has been backed up to: ${o}\n`):s&&process.stderr.write(`The corrupted file has already been backed up.
2
2
  `),l?process.stderr.write(`A backup file exists at: ${l}\nYou can manually restore it by running: cp "${l}" "${e}"\n\n`):process.stderr.write(`
3
3
  `)}return t()}}function It(){let e=$(),t=z();if(!t.projects)return U;let n=t.projects[e]??U;return typeof n.allowedTools==`string`&&(n.allowedTools=oe(n.allowedTools)??[]),n}function Lt(e){let t=$(),n=null;try{Nt(m(),P,r=>{let i=r.projects?.[t]??U,a=e(i);return a===i?r:(n={...r,projects:{...r.projects,[t]:a}},n)})&&n&&R(n)}catch(r){x(`Failed to save config with lock: ${r}`,{level:`error`});let i=V(m(),P);if(F(i)){x(`saveCurrentProjectConfig fallback: re-read config is missing auth that cache has; refusing to write. See GH #3117.`,{level:`error`});return}let a=i.projects?.[t]??U,o=e(a);if(o===a)return;n={...i,projects:{...i.projects,[t]:o}},Mt(m(),n,W),R(n)}}function Rt(){return Vt()!==null}function zt(){return Rt()&&!s(process.env.FORCE_AUTOUPDATE_PLUGINS)}function Bt(e){switch(e.type){case`development`:return`development build`;case`env`:return`${e.envVar} set`;case`config`:return`config`}}function Vt(){if(!s(process.env.ENABLE_AUTOUPDATER))return{type:`config`};if(s(process.env.DISABLE_AUTOUPDATER))return{type:`env`,envVar:`DISABLE_AUTOUPDATER`};let e=Qe();if(e)return{type:`env`,envVar:e};let t=z();return t.autoUpdates===!1&&(t.installMethod!==`native`||t.autoUpdatesProtectedForNative!==!0)?{type:`config`}:null}function Ht(){let e=z();if(e.userID)return e.userID;let t=ct(32).toString(`hex`);return I(e=>({...e,userID:t})),t}function Ut(){if(!z().firstStartTime){let e=new Date().toISOString();I(t=>({...t,firstStartTime:t.firstStartTime??e}))}}function Wt(e){let t=Le();switch(e){case`User`:return E(o(),`AGENTS.md`);case`Local`:return E(t,`AGENTS.local.md`);case`Project`:return E(t,`AGENTS.md`);case`Managed`:return E(me(),`AGENTS.md`);case`AutoMem`:return bt();default:return E(o(),`AGENTS.md`)}}function Gt(){return E(me(),`.workmate`,`rules`)}function Kt(){return E(o(),`rules`)}var H,U,W,G,K,q,J,Y,X,qt,Z,Q,$,Jt=e((()=>{i(),Et(),be(),A(),$e(),Ve(),Ue(),qe(),se(),ie(),c(),We(),te(),Ke(),p(),he(),re(),tt(),Xe(),de(),Ye(),fe(),Je(),H=!1,U={allowedTools:[],mcpContextUris:[],mcpServers:{},enabledMcpjsonServers:[],disabledMcpjsonServers:[],hasTrustDialogAccepted:!1,projectOnboardingSeenCount:0,hasAgentsMdExternalIncludesApproved:!1,hasAgentsMdExternalIncludesWarningShown:!1},W=P(),G=!1,{...W},{...U},K={config:null,mtime:0},q=null,J=0,Y=0,X=0,S(async()=>{kt()}),qt=1e3,Z=!1,Q=!1,$=r(()=>{let e=Le();return h(_e(e)||it(e))})}));export{lt as A,A as C,ut as D,pt as E,dt as O,vt as S,ft as T,j as _,It as a,k as b,Wt as c,Jt as d,Rt as f,zt as g,I as h,Vt as i,O as k,Ht as l,Lt as m,Pt as n,z as o,Ut as p,Bt as r,Gt as s,Dt as t,Kt as u,M as v,xt as w,mt as x,bt as y};
@@ -0,0 +1 @@
1
+ import{d as e,n as t}from"./config-CMtnYZR9.js";e();export{t as enableConfigs};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{t}from"./jsx-runtime-Bb4Xn-E0.js";import{n,t as r}from"./Settings-Bx9sAK4z.js";var i,a;e((()=>{n(),i=t(),a=async(e,t)=>(0,i.jsx)(r,{onClose:e,context:t,defaultTab:`Config`})}))();export{a as call};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t,t as n}from"./figures-5ThXQEtq.js";import{I as r,P as i,s as a,t as o}from"./src-BX54x08P.js";import{t as s}from"./jsx-runtime-Bb4Xn-E0.js";import{In as c,Nn as l,mn as u,pn as d}from"./settings-CA-5Px85.js";import{A_ as f,Bx as p,H_ as m,M_ as h,U_ as g,Xi as _}from"./loadAgentsDir-DnHL_5cU.js";import{_ as v,g as y}from"./startupProfiler-C_xcIvEA.js";import{At as b,Ot as x,Yt as S,in as C,rn as w,tn as T}from"./prompt-DDlkyIzV.js";import{n as E,t as D}from"./staticRender-Bt82RvGc.js";function O(e){let t=[];return k(e,t),A(e,t),M(e,t),ee(e,t),N(e,t),t.sort((e,t)=>e.severity===t.severity?(t.savingsTokens??0)-(e.savingsTokens??0):e.severity===`warning`?-1:1),t}function k(e,t){e.percentage>=L&&t.push({severity:`warning`,title:`Context is ${e.percentage}% full`,detail:e.isAutoCompactEnabled?`Autocompact will trigger soon, which discards older messages. Use /compact now to control what gets kept.`:`Autocompact is disabled. Use /compact to free space, or enable autocompact in /config.`})}function A(e,t){if(e.messageBreakdown)for(let n of e.messageBreakdown.toolCallsByType){let r=n.callTokens+n.resultTokens,i=r/e.rawMaxTokens*100;if(i<P||r<F)continue;let a=j(n.name,r,i);a&&t.push(a)}}function j(e,t,n){let r=y(t);switch(e){case w:return{severity:`warning`,title:`Bash results using ${r} tokens (${n.toFixed(0)}%)`,detail:`Pipe output through head, tail, or grep to reduce result size. Avoid cat on large files — use Read with offset/limit instead.`,savingsTokens:Math.floor(t*.5)};case S:return{severity:`info`,title:`Read results using ${r} tokens (${n.toFixed(0)}%)`,detail:`Use offset and limit parameters to read only the sections you need. Avoid re-reading entire files when you only need a few lines.`,savingsTokens:Math.floor(t*.3)};case x:return{severity:`info`,title:`Grep results using ${r} tokens (${n.toFixed(0)}%)`,detail:`Add more specific patterns or use the glob or type parameter to narrow file types. Consider Glob for file discovery instead of Grep.`,savingsTokens:Math.floor(t*.3)};default:return n>=20?{severity:`info`,title:`${e} using ${r} tokens (${n.toFixed(0)}%)`,detail:`This tool is consuming a significant portion of context.`,savingsTokens:Math.floor(t*.2)}:null}}function M(e,t){if(!e.messageBreakdown)return;let n=e.messageBreakdown.toolCallsByType.find(e=>e.name===S);if(!n)return;let r=n.callTokens+n.resultTokens,i=r/e.rawMaxTokens*100,a=n.resultTokens/e.rawMaxTokens*100;i>=P&&r>=F||a>=I&&n.resultTokens>=F&&t.push({severity:`info`,title:`File reads using ${y(n.resultTokens)} tokens (${a.toFixed(0)}%)`,detail:`If you are re-reading files, consider referencing earlier reads. Use offset/limit for large files.`,savingsTokens:Math.floor(n.resultTokens*.3)})}function ee(e,t){let n=e.memoryFiles.reduce((e,t)=>e+t.tokens,0),r=n/e.rawMaxTokens*100;if(r>=R&&n>=z){let i=[...e.memoryFiles].sort((e,t)=>t.tokens-e.tokens).slice(0,3).map(e=>`${l(e.path)} (${y(e.tokens)})`).join(`, `);t.push({severity:`info`,title:`Memory files using ${y(n)} tokens (${r.toFixed(0)}%)`,detail:`Largest: ${i}. Use /memory to review and prune stale entries.`,savingsTokens:Math.floor(n*.3)})}}function N(e,t){!e.isAutoCompactEnabled&&e.percentage>=50&&e.percentage<L&&t.push({severity:`info`,title:`Autocompact is disabled`,detail:`Without autocompact, you will hit context limits and lose the conversation. Enable it in /config or use /compact manually.`})}var P,F,I,L,R,z,B=e((()=>{C(),T(),b(),c(),v(),P=15,F=1e4,I=5,L=80,R=5,z=5e3}));function V({suggestions:e}){return e.length===0?null:(0,H.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,H.jsx)(i,{bold:!0,children:`Suggestions`}),e.map((e,t)=>(0,H.jsxs)(r,{flexDirection:`column`,marginTop:t===0?0:1,children:[(0,H.jsxs)(r,{children:[(0,H.jsx)(a,{status:e.severity,withSpace:!0}),(0,H.jsx)(i,{bold:!0,children:e.title}),e.savingsTokens?(0,H.jsxs)(i,{dimColor:!0,children:[` `,n.arrowRight,` save ~`,y(e.savingsTokens)]}):null]}),(0,H.jsx)(r,{marginLeft:2,children:(0,H.jsx)(i,{dimColor:!0,children:e.detail})})]},t))]})}var H,U=e((()=>{t(),o(),v(),H=s()}));function W(){return null}function G(e){let t=new Map;for(let n of e){let e=d(n.source),r=t.get(e)||[];r.push(n),t.set(e,r)}for(let[e,n]of t.entries())t.set(e,n.sort((e,t)=>t.tokens-e.tokens));let n=new Map;for(let e of Y){let r=t.get(e);r&&n.set(e,r)}return n}function K({data:e}){let{categories:t,totalTokens:n,rawMaxTokens:a,percentage:o,gridRows:s,model:c,memoryFiles:u,mcpTools:d,deferredBuiltinTools:f=[],agents:p,skills:m,cacheHitRate:h,cacheThreshold:g}=e,_=t.filter(e=>e.tokens>0&&e.name!==`Free space`&&e.name!==J&&!e.isDeferred),v=t.some(e=>e.isDeferred&&e.name.includes(`MCP`)),b=t.find(e=>e.name===J);return(0,q.jsxs)(r,{flexDirection:`column`,paddingLeft:1,children:[(0,q.jsx)(i,{bold:!0,children:`Context Usage`}),(0,q.jsxs)(r,{flexDirection:`row`,gap:2,children:[(0,q.jsx)(r,{flexDirection:`column`,flexShrink:0,children:s.map((e,t)=>(0,q.jsx)(r,{flexDirection:`row`,marginLeft:-1,children:e.map((e,t)=>e.categoryName===`Free space`?(0,q.jsx)(i,{dimColor:!0,children:`⛶ `},t):e.categoryName===J?(0,q.jsx)(i,{color:e.color,children:`⛝ `},t):(0,q.jsx)(i,{color:e.color,children:e.squareFullness>=.7?`⛁ `:`⛀ `},t))},t))}),(0,q.jsxs)(r,{flexDirection:`column`,gap:0,flexShrink:0,children:[(0,q.jsxs)(i,{dimColor:!0,children:[c,` · `,y(n),`/`,y(a),` tokens (`,o,`%)`]}),(0,q.jsx)(W,{}),h!==void 0&&g!==void 0&&(0,q.jsxs)(i,{color:h<g?`warning`:void 0,children:[`Cache hit rate: `,h.toFixed(0),`%`,h<g?` (below ${g}% threshold)`:``]}),(0,q.jsx)(i,{children:` `}),(0,q.jsx)(i,{dimColor:!0,italic:!0,children:`Estimated usage by category`}),_.map((e,t)=>{let n=y(e.tokens),o=e.isDeferred?`N/A`:`${(e.tokens/a*100).toFixed(1)}%`,s=e.name===J,c=e.name,l=e.isDeferred?` `:s?`⛝`:`⛁`;return(0,q.jsxs)(r,{children:[(0,q.jsx)(i,{color:e.color,children:l}),(0,q.jsxs)(i,{children:[` `,c,`: `]}),(0,q.jsxs)(i,{dimColor:!0,children:[n,` tokens (`,o,`)`]})]},t)}),(t.find(e=>e.name===`Free space`)?.tokens??0)>0&&(0,q.jsxs)(r,{children:[(0,q.jsx)(i,{dimColor:!0,children:`⛶`}),(0,q.jsx)(i,{children:` Free space: `}),(0,q.jsxs)(i,{dimColor:!0,children:[y(t.find(e=>e.name===`Free space`)?.tokens||0),` (`,((t.find(e=>e.name===`Free space`)?.tokens||0)/a*100).toFixed(1),`%)`]})]}),b&&b.tokens>0&&(0,q.jsxs)(r,{children:[(0,q.jsx)(i,{color:b.color,children:`⛝`}),(0,q.jsxs)(i,{dimColor:!0,children:[` `,b.name,`: `]}),(0,q.jsxs)(i,{dimColor:!0,children:[y(b.tokens),` tokens (`,(b.tokens/a*100).toFixed(1),`%)`]})]})]})]}),(0,q.jsxs)(r,{flexDirection:`column`,marginLeft:-1,children:[d.length>0&&(0,q.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,q.jsxs)(r,{children:[(0,q.jsx)(i,{bold:!0,children:`MCP tools`}),(0,q.jsxs)(i,{dimColor:!0,children:[` · /mcp`,v?` (loaded on-demand)`:``]})]}),d.some(e=>e.isLoaded)&&(0,q.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,q.jsx)(i,{dimColor:!0,children:`Loaded`}),d.filter(e=>e.isLoaded).map((e,t)=>(0,q.jsxs)(r,{children:[(0,q.jsxs)(i,{children:[`└ `,e.name,`: `]}),(0,q.jsxs)(i,{dimColor:!0,children:[y(e.tokens),` tokens`]})]},t))]}),v&&d.some(e=>!e.isLoaded)&&(0,q.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,q.jsx)(i,{dimColor:!0,children:`Available`}),d.filter(e=>!e.isLoaded).map((e,t)=>(0,q.jsx)(r,{children:(0,q.jsxs)(i,{dimColor:!0,children:[`└ `,e.name]})},t))]}),!v&&d.map((e,t)=>(0,q.jsxs)(r,{children:[(0,q.jsxs)(i,{children:[`└ `,e.name,`: `]}),(0,q.jsxs)(i,{dimColor:!0,children:[y(e.tokens),` tokens`]})]},t))]}),p.length>0&&(0,q.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,q.jsxs)(r,{children:[(0,q.jsx)(i,{bold:!0,children:`Custom agents`}),(0,q.jsx)(i,{dimColor:!0,children:` · /agents`})]}),Array.from(G(p).entries()).map(([e,t])=>(0,q.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,q.jsx)(i,{dimColor:!0,children:e}),t.map((e,t)=>(0,q.jsxs)(r,{children:[(0,q.jsxs)(i,{children:[`└ `,e.agentType,`: `]}),(0,q.jsxs)(i,{dimColor:!0,children:[y(e.tokens),` tokens`]})]},t))]},e))]}),u.length>0&&(0,q.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,q.jsxs)(r,{children:[(0,q.jsx)(i,{bold:!0,children:`Memory files`}),(0,q.jsx)(i,{dimColor:!0,children:` · /memory`})]}),u.map((e,t)=>(0,q.jsxs)(r,{children:[(0,q.jsxs)(i,{children:[`└ `,l(e.path),`: `]}),(0,q.jsxs)(i,{dimColor:!0,children:[y(e.tokens),` tokens`]})]},t))]}),m&&m.tokens>0&&(0,q.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,q.jsxs)(r,{children:[(0,q.jsx)(i,{bold:!0,children:`Skills`}),(0,q.jsx)(i,{dimColor:!0,children:` · /skills`})]}),Array.from(G(m.skillFrontmatter).entries()).map(([e,t])=>(0,q.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,q.jsx)(i,{dimColor:!0,children:e}),t.map((e,t)=>(0,q.jsxs)(r,{children:[(0,q.jsxs)(i,{children:[`└ `,e.name,`: `]}),(0,q.jsxs)(i,{dimColor:!0,children:[y(e.tokens),` tokens`]})]},t))]},e))]})]}),(0,q.jsx)(V,{suggestions:O(e)})]})}var q,J,Y,X=e((()=>{o(),B(),c(),v(),u(),U(),q=s(),J=`Autocompact buffer`,Y=[`Project`,`User`,`Managed`,`Plugin`,`Built-in`]}));function Z(e){return p(e)}async function Q(e,t){let{messages:n,getAppState:r,options:{mainLoopModel:i,tools:a}}=t,o=Z(n),{messages:s}=await g(o),c=process.stdout.columns||80,l=r();return e(await E((0,$.jsx)(K,{data:await f(s,i,async()=>l.toolPermissionContext,a,l.agentDefinitions,c,t,void 0,o)}))),null}var $;e((()=>{X(),m(),h(),_(),D(),$=s()}))();export{Q as call};
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t,t as n}from"./figures-5ThXQEtq.js";import{I as r,P as i,s as a,t as o}from"./src-BX54x08P.js";import{t as s}from"./jsx-runtime-Bb4Xn-E0.js";import{In as c,Nn as l,mn as u,pn as d}from"./settings-CA-5Px85.js";import{A_ as f,Bx as p,H_ as m,M_ as h,U_ as g,Xi as _}from"./loadAgentsDir-izAo6rpy.js";import{_ as v,g as y}from"./startupProfiler-C_xcIvEA.js";import{At as b,Ot as x,Yt as S,in as C,rn as w,tn as T}from"./prompt-B4rM4cgp.js";import{n as E,t as D}from"./staticRender-Bt82RvGc.js";function O(e){let t=[];return k(e,t),A(e,t),M(e,t),ee(e,t),N(e,t),t.sort((e,t)=>e.severity===t.severity?(t.savingsTokens??0)-(e.savingsTokens??0):e.severity===`warning`?-1:1),t}function k(e,t){e.percentage>=L&&t.push({severity:`warning`,title:`Context is ${e.percentage}% full`,detail:e.isAutoCompactEnabled?`Autocompact will trigger soon, which discards older messages. Use /compact now to control what gets kept.`:`Autocompact is disabled. Use /compact to free space, or enable autocompact in /config.`})}function A(e,t){if(e.messageBreakdown)for(let n of e.messageBreakdown.toolCallsByType){let r=n.callTokens+n.resultTokens,i=r/e.rawMaxTokens*100;if(i<P||r<F)continue;let a=j(n.name,r,i);a&&t.push(a)}}function j(e,t,n){let r=y(t);switch(e){case w:return{severity:`warning`,title:`Bash results using ${r} tokens (${n.toFixed(0)}%)`,detail:`Pipe output through head, tail, or grep to reduce result size. Avoid cat on large files — use Read with offset/limit instead.`,savingsTokens:Math.floor(t*.5)};case S:return{severity:`info`,title:`Read results using ${r} tokens (${n.toFixed(0)}%)`,detail:`Use offset and limit parameters to read only the sections you need. Avoid re-reading entire files when you only need a few lines.`,savingsTokens:Math.floor(t*.3)};case x:return{severity:`info`,title:`Grep results using ${r} tokens (${n.toFixed(0)}%)`,detail:`Add more specific patterns or use the glob or type parameter to narrow file types. Consider Glob for file discovery instead of Grep.`,savingsTokens:Math.floor(t*.3)};default:return n>=20?{severity:`info`,title:`${e} using ${r} tokens (${n.toFixed(0)}%)`,detail:`This tool is consuming a significant portion of context.`,savingsTokens:Math.floor(t*.2)}:null}}function M(e,t){if(!e.messageBreakdown)return;let n=e.messageBreakdown.toolCallsByType.find(e=>e.name===S);if(!n)return;let r=n.callTokens+n.resultTokens,i=r/e.rawMaxTokens*100,a=n.resultTokens/e.rawMaxTokens*100;i>=P&&r>=F||a>=I&&n.resultTokens>=F&&t.push({severity:`info`,title:`File reads using ${y(n.resultTokens)} tokens (${a.toFixed(0)}%)`,detail:`If you are re-reading files, consider referencing earlier reads. Use offset/limit for large files.`,savingsTokens:Math.floor(n.resultTokens*.3)})}function ee(e,t){let n=e.memoryFiles.reduce((e,t)=>e+t.tokens,0),r=n/e.rawMaxTokens*100;if(r>=R&&n>=z){let i=[...e.memoryFiles].sort((e,t)=>t.tokens-e.tokens).slice(0,3).map(e=>`${l(e.path)} (${y(e.tokens)})`).join(`, `);t.push({severity:`info`,title:`Memory files using ${y(n)} tokens (${r.toFixed(0)}%)`,detail:`Largest: ${i}. Use /memory to review and prune stale entries.`,savingsTokens:Math.floor(n*.3)})}}function N(e,t){!e.isAutoCompactEnabled&&e.percentage>=50&&e.percentage<L&&t.push({severity:`info`,title:`Autocompact is disabled`,detail:`Without autocompact, you will hit context limits and lose the conversation. Enable it in /config or use /compact manually.`})}var P,F,I,L,R,z,B=e((()=>{C(),T(),b(),c(),v(),P=15,F=1e4,I=5,L=80,R=5,z=5e3}));function V({suggestions:e}){return e.length===0?null:(0,H.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,H.jsx)(i,{bold:!0,children:`Suggestions`}),e.map((e,t)=>(0,H.jsxs)(r,{flexDirection:`column`,marginTop:t===0?0:1,children:[(0,H.jsxs)(r,{children:[(0,H.jsx)(a,{status:e.severity,withSpace:!0}),(0,H.jsx)(i,{bold:!0,children:e.title}),e.savingsTokens?(0,H.jsxs)(i,{dimColor:!0,children:[` `,n.arrowRight,` save ~`,y(e.savingsTokens)]}):null]}),(0,H.jsx)(r,{marginLeft:2,children:(0,H.jsx)(i,{dimColor:!0,children:e.detail})})]},t))]})}var H,U=e((()=>{t(),o(),v(),H=s()}));function W(){return null}function G(e){let t=new Map;for(let n of e){let e=d(n.source),r=t.get(e)||[];r.push(n),t.set(e,r)}for(let[e,n]of t.entries())t.set(e,n.sort((e,t)=>t.tokens-e.tokens));let n=new Map;for(let e of Y){let r=t.get(e);r&&n.set(e,r)}return n}function K({data:e}){let{categories:t,totalTokens:n,rawMaxTokens:a,percentage:o,gridRows:s,model:c,memoryFiles:u,mcpTools:d,deferredBuiltinTools:f=[],agents:p,skills:m,cacheHitRate:h,cacheThreshold:g}=e,_=t.filter(e=>e.tokens>0&&e.name!==`Free space`&&e.name!==J&&!e.isDeferred),v=t.some(e=>e.isDeferred&&e.name.includes(`MCP`)),b=t.find(e=>e.name===J);return(0,q.jsxs)(r,{flexDirection:`column`,paddingLeft:1,children:[(0,q.jsx)(i,{bold:!0,children:`Context Usage`}),(0,q.jsxs)(r,{flexDirection:`row`,gap:2,children:[(0,q.jsx)(r,{flexDirection:`column`,flexShrink:0,children:s.map((e,t)=>(0,q.jsx)(r,{flexDirection:`row`,marginLeft:-1,children:e.map((e,t)=>e.categoryName===`Free space`?(0,q.jsx)(i,{dimColor:!0,children:`⛶ `},t):e.categoryName===J?(0,q.jsx)(i,{color:e.color,children:`⛝ `},t):(0,q.jsx)(i,{color:e.color,children:e.squareFullness>=.7?`⛁ `:`⛀ `},t))},t))}),(0,q.jsxs)(r,{flexDirection:`column`,gap:0,flexShrink:0,children:[(0,q.jsxs)(i,{dimColor:!0,children:[c,` · `,y(n),`/`,y(a),` tokens (`,o,`%)`]}),(0,q.jsx)(W,{}),h!==void 0&&g!==void 0&&(0,q.jsxs)(i,{color:h<g?`warning`:void 0,children:[`Cache hit rate: `,h.toFixed(0),`%`,h<g?` (below ${g}% threshold)`:``]}),(0,q.jsx)(i,{children:` `}),(0,q.jsx)(i,{dimColor:!0,italic:!0,children:`Estimated usage by category`}),_.map((e,t)=>{let n=y(e.tokens),o=e.isDeferred?`N/A`:`${(e.tokens/a*100).toFixed(1)}%`,s=e.name===J,c=e.name,l=e.isDeferred?` `:s?`⛝`:`⛁`;return(0,q.jsxs)(r,{children:[(0,q.jsx)(i,{color:e.color,children:l}),(0,q.jsxs)(i,{children:[` `,c,`: `]}),(0,q.jsxs)(i,{dimColor:!0,children:[n,` tokens (`,o,`)`]})]},t)}),(t.find(e=>e.name===`Free space`)?.tokens??0)>0&&(0,q.jsxs)(r,{children:[(0,q.jsx)(i,{dimColor:!0,children:`⛶`}),(0,q.jsx)(i,{children:` Free space: `}),(0,q.jsxs)(i,{dimColor:!0,children:[y(t.find(e=>e.name===`Free space`)?.tokens||0),` (`,((t.find(e=>e.name===`Free space`)?.tokens||0)/a*100).toFixed(1),`%)`]})]}),b&&b.tokens>0&&(0,q.jsxs)(r,{children:[(0,q.jsx)(i,{color:b.color,children:`⛝`}),(0,q.jsxs)(i,{dimColor:!0,children:[` `,b.name,`: `]}),(0,q.jsxs)(i,{dimColor:!0,children:[y(b.tokens),` tokens (`,(b.tokens/a*100).toFixed(1),`%)`]})]})]})]}),(0,q.jsxs)(r,{flexDirection:`column`,marginLeft:-1,children:[d.length>0&&(0,q.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,q.jsxs)(r,{children:[(0,q.jsx)(i,{bold:!0,children:`MCP tools`}),(0,q.jsxs)(i,{dimColor:!0,children:[` · /mcp`,v?` (loaded on-demand)`:``]})]}),d.some(e=>e.isLoaded)&&(0,q.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,q.jsx)(i,{dimColor:!0,children:`Loaded`}),d.filter(e=>e.isLoaded).map((e,t)=>(0,q.jsxs)(r,{children:[(0,q.jsxs)(i,{children:[`└ `,e.name,`: `]}),(0,q.jsxs)(i,{dimColor:!0,children:[y(e.tokens),` tokens`]})]},t))]}),v&&d.some(e=>!e.isLoaded)&&(0,q.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,q.jsx)(i,{dimColor:!0,children:`Available`}),d.filter(e=>!e.isLoaded).map((e,t)=>(0,q.jsx)(r,{children:(0,q.jsxs)(i,{dimColor:!0,children:[`└ `,e.name]})},t))]}),!v&&d.map((e,t)=>(0,q.jsxs)(r,{children:[(0,q.jsxs)(i,{children:[`└ `,e.name,`: `]}),(0,q.jsxs)(i,{dimColor:!0,children:[y(e.tokens),` tokens`]})]},t))]}),p.length>0&&(0,q.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,q.jsxs)(r,{children:[(0,q.jsx)(i,{bold:!0,children:`Custom agents`}),(0,q.jsx)(i,{dimColor:!0,children:` · /agents`})]}),Array.from(G(p).entries()).map(([e,t])=>(0,q.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,q.jsx)(i,{dimColor:!0,children:e}),t.map((e,t)=>(0,q.jsxs)(r,{children:[(0,q.jsxs)(i,{children:[`└ `,e.agentType,`: `]}),(0,q.jsxs)(i,{dimColor:!0,children:[y(e.tokens),` tokens`]})]},t))]},e))]}),u.length>0&&(0,q.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,q.jsxs)(r,{children:[(0,q.jsx)(i,{bold:!0,children:`Memory files`}),(0,q.jsx)(i,{dimColor:!0,children:` · /memory`})]}),u.map((e,t)=>(0,q.jsxs)(r,{children:[(0,q.jsxs)(i,{children:[`└ `,l(e.path),`: `]}),(0,q.jsxs)(i,{dimColor:!0,children:[y(e.tokens),` tokens`]})]},t))]}),m&&m.tokens>0&&(0,q.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,q.jsxs)(r,{children:[(0,q.jsx)(i,{bold:!0,children:`Skills`}),(0,q.jsx)(i,{dimColor:!0,children:` · /skills`})]}),Array.from(G(m.skillFrontmatter).entries()).map(([e,t])=>(0,q.jsxs)(r,{flexDirection:`column`,marginTop:1,children:[(0,q.jsx)(i,{dimColor:!0,children:e}),t.map((e,t)=>(0,q.jsxs)(r,{children:[(0,q.jsxs)(i,{children:[`└ `,e.name,`: `]}),(0,q.jsxs)(i,{dimColor:!0,children:[y(e.tokens),` tokens`]})]},t))]},e))]})]}),(0,q.jsx)(V,{suggestions:O(e)})]})}var q,J,Y,X=e((()=>{o(),B(),c(),v(),u(),U(),q=s(),J=`Autocompact buffer`,Y=[`Project`,`User`,`Managed`,`Plugin`,`Built-in`]}));function Z(e){return p(e)}async function Q(e,t){let{messages:n,getAppState:r,options:{mainLoopModel:i,tools:a}}=t,o=Z(n),{messages:s}=await g(o),c=process.stdout.columns||80,l=r();return e(await E((0,$.jsx)(K,{data:await f(s,i,async()=>l.toolPermissionContext,a,l.agentDefinitions,c,t,void 0,o)}))),null}var $;e((()=>{X(),m(),h(),_(),D(),$=s()}))();export{Q as call};
@@ -0,0 +1 @@
1
+ import{n as e,r as t,t as n}from"./context-noninteractive-BmjENE43.js";t();export{n as call,e as collectContextData};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{mn as t,pn as n}from"./settings-CA-5Px85.js";import{A_ as r,Bx as i,H_ as a,M_ as o,U_ as s,Xi as c}from"./loadAgentsDir-DnHL_5cU.js";import{_ as l,g as u}from"./startupProfiler-C_xcIvEA.js";async function d(e){let{messages:t,getAppState:n,options:{mainLoopModel:a,tools:o,agentDefinitions:c,customSystemPrompt:l,appendSystemPrompt:u}}=e,d=i(t),{messages:f}=await s(d),p=n();return r(f,a,async()=>p.toolPermissionContext,o,c,void 0,{options:{customSystemPrompt:l,appendSystemPrompt:u}},void 0,d)}async function f(e,t){return{type:`text`,value:p(await d(t))}}function p(e){let{categories:t,totalTokens:r,rawMaxTokens:i,percentage:a,model:o,memoryFiles:s,mcpTools:c,agents:l,skills:d}=e,f=`## Context Usage
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{mn as t,pn as n}from"./settings-CA-5Px85.js";import{A_ as r,Bx as i,H_ as a,M_ as o,U_ as s,Xi as c}from"./loadAgentsDir-izAo6rpy.js";import{_ as l,g as u}from"./startupProfiler-C_xcIvEA.js";async function d(e){let{messages:t,getAppState:n,options:{mainLoopModel:a,tools:o,agentDefinitions:c,customSystemPrompt:l,appendSystemPrompt:u}}=e,d=i(t),{messages:f}=await s(d),p=n();return r(f,a,async()=>p.toolPermissionContext,o,c,void 0,{options:{customSystemPrompt:l,appendSystemPrompt:u}},void 0,d)}async function f(e,t){return{type:`text`,value:p(await d(t))}}function p(e){let{categories:t,totalTokens:r,rawMaxTokens:i,percentage:a,model:o,memoryFiles:s,mcpTools:c,agents:l,skills:d}=e,f=`## Context Usage
2
2
 
3
3
  `;f+=`**Model:** ${o} \n`,f+=`**Tokens:** ${u(r)} / ${u(i)} (${a}%)\n`,f+=`
4
4
  `;let p=t.filter(e=>e.tokens>0&&e.name!==`Free space`&&e.name!==`Autocompact buffer`);if(p.length>0){f+=`### Estimated usage by category
@@ -0,0 +1 @@
1
+ import{n as e,t}from"./conversation-CxvOL7c4.js";e();export{t as clearConversation};
@@ -1 +1 @@
1
- import{a as e,n as t}from"./rolldown-runtime-DaDcL9Zw.js";import{B as n,Pt as r,Ut as i,Vt as a,dn as o,pn as s,q as c,un as l}from"./state-CXY-q5gr.js";import{Cb as u,Dn as d,Eg as f,KC as p,Kn as m,On as h,Sb as g,Tn as _,Yt as v,ZC as y,Zr as b,cn as x,er as S,gn as C,gs as w,hh as T,hs as E,i_ as D,ph as O,r_ as k,rw as A,si as j,ui as M,uw as N,vg as P,vr as F,wg as I,wt as L,xt as R,yg as z}from"./loadAgentsDir-DnHL_5cU.js";import{o as B,s as V}from"./log-D98mO6yJ.js";import{n as H}from"./analytics-COpjZpvd.js";import{n as U,t as W}from"./caches-BKAPMXp9.js";import{randomUUID as G}from"crypto";async function K({setMessages:t,readFileState:r,discoveredSkillNames:f,loadedNestedMemoryPaths:h,getAppState:g,setAppState:C,setConversationId:T}){let E=x();await v(`clear`,{getAppState:g,setAppState:C,signal:AbortSignal.timeout(E),timeoutMs:E}),n();let k=new Set,N=[],P=e=>`isBackgrounded`in e&&e.isBackgrounded===!1;if(g)for(let e of Object.values(g().tasks))P(e)||w(e)&&(k.add(e.agentId),N.push(e));t(()=>[]);let{setContextBlocked:L}=(p(),e(y));L(!1),T&&T(G()),W(k),l(null),o(null),s(null),i(),u(c()),r.clear(),f?.clear(),h?.clear(),C&&C(e=>{let t={};for(let[n,r]of Object.entries(e.tasks)){if(!P(r)){t[n]=r;continue}try{r.status===`running`&&(z(r)&&(r.shellCommand?.kill(),r.shellCommand?.cleanup(),r.cleanupTimeoutId&&clearTimeout(r.cleanupTimeoutId)),`abortController`in r&&r.abortController?.abort(),`unregisterCleanup`in r&&r.unregisterCleanup?.())}catch(e){V(e)}_(n)}return{...e,tasks:t,attribution:O(),standaloneAgentContext:void 0,fileHistory:{snapshots:[],trackedFiles:new Set,snapshotSequence:0},mcp:{clients:[],tools:[],commands:[],resources:{},pluginReconnectKey:e.mcp.pluginReconnectKey}}}),A(),m(),a({setCurrentAsParent:!0}),await b();for(let e of N)e.status===`running`&&d(e.id,S(I(e.agentId)));let{saveMode:B}=(F(),e(M));B(`normal`);let H=R();H&&j(H);let U=await D(`clear`);U.length>0&&t(()=>U)}var q=t((()=>{r(),H(),E(),P(),f(),T(),C(),B(),N(),g(),k(),F(),h(),L(),U()}));export{q as n,K as t};
1
+ import{a as e,n as t}from"./rolldown-runtime-DaDcL9Zw.js";import{B as n,Pt as r,Ut as i,Vt as a,dn as o,pn as s,q as c,un as l}from"./state-CXY-q5gr.js";import{Cb as u,Dn as d,Eg as f,KC as p,Kn as m,On as h,Sb as g,Tn as _,Yt as v,ZC as y,Zr as b,cn as x,er as S,gn as C,gs as w,hh as T,hs as E,i_ as D,ph as O,r_ as k,rw as A,si as j,ui as M,uw as N,vg as P,vr as F,wg as I,wt as L,xt as R,yg as z}from"./loadAgentsDir-izAo6rpy.js";import{o as B,s as V}from"./log-D98mO6yJ.js";import{n as H}from"./analytics-COpjZpvd.js";import{n as U,t as W}from"./caches-CcK6hjFh.js";import{randomUUID as G}from"crypto";async function K({setMessages:t,readFileState:r,discoveredSkillNames:f,loadedNestedMemoryPaths:h,getAppState:g,setAppState:C,setConversationId:T}){let E=x();await v(`clear`,{getAppState:g,setAppState:C,signal:AbortSignal.timeout(E),timeoutMs:E}),n();let k=new Set,N=[],P=e=>`isBackgrounded`in e&&e.isBackgrounded===!1;if(g)for(let e of Object.values(g().tasks))P(e)||w(e)&&(k.add(e.agentId),N.push(e));t(()=>[]);let{setContextBlocked:L}=(p(),e(y));L(!1),T&&T(G()),W(k),l(null),o(null),s(null),i(),u(c()),r.clear(),f?.clear(),h?.clear(),C&&C(e=>{let t={};for(let[n,r]of Object.entries(e.tasks)){if(!P(r)){t[n]=r;continue}try{r.status===`running`&&(z(r)&&(r.shellCommand?.kill(),r.shellCommand?.cleanup(),r.cleanupTimeoutId&&clearTimeout(r.cleanupTimeoutId)),`abortController`in r&&r.abortController?.abort(),`unregisterCleanup`in r&&r.unregisterCleanup?.())}catch(e){V(e)}_(n)}return{...e,tasks:t,attribution:O(),standaloneAgentContext:void 0,fileHistory:{snapshots:[],trackedFiles:new Set,snapshotSequence:0},mcp:{clients:[],tools:[],commands:[],resources:{},pluginReconnectKey:e.mcp.pluginReconnectKey}}}),A(),m(),a({setCurrentAsParent:!0}),await b();for(let e of N)e.status===`running`&&d(e.id,S(I(e.agentId)));let{saveMode:B}=(F(),e(M));B(`normal`);let H=R();H&&j(H);let U=await D(`clear`);U.length>0&&t(()=>U)}var q=t((()=>{r(),H(),E(),P(),f(),T(),C(),B(),N(),g(),k(),F(),h(),L(),U()}));export{q as n,K as t};
@@ -1 +1 @@
1
- import{Ht as e,Ut as t}from"./settings-CA-5Px85.js";import{Pt as n,t as r}from"./state-CXY-q5gr.js";import{$h as i,Ar as a,Ea as o,Eg as s,Fr as c,Sr as l,Tg as u,Vn as d,Xi as f,as as p,aw as m,ba as h,ca as g,da as _,dr as v,i_ as y,ir as b,jr as x,os as S,qr as C,qx as w,r_ as T,rs as E,sg as D,tS as O,uS as k,uw as A,vr as j,ya as M,zn as N}from"./loadAgentsDir-DnHL_5cU.js";import{n as P,t as F}from"./cwd-DrEEb4f5.js";import{o as I,s as L}from"./log-D98mO6yJ.js";import{relative as R}from"path";P(),n(),s(),t(),E(),D(),I(),f(),A(),T(),j();function z(e){if(e.type!==`attachment`)return e;let t=e.attachment;if(t.type===`new_file`)return{...e,attachment:{...t,type:`file`,displayPath:R(F(),t.filename)}};if(t.type===`new_directory`)return{...e,attachment:{...t,type:`directory`,displayPath:R(F(),t.path)}};if(!(`displayPath`in t)){let n=`filename`in t?t.filename:`path`in t?t.path:`skillDir`in t?t.skillDir:void 0;if(n)return{...e,attachment:{...t,displayPath:R(F(),n)}}}return e}function B(e){return V(e).messages}function V(t){try{let n=t.map(z),r=new Set(e);for(let e of n)e.type===`user`&&e.permissionMode!==void 0&&!r.has(e.permissionMode)&&(e.permissionMode=void 0);let i=g(M(h(n))),a=H(i),o;if(a.kind===`interrupted_turn`){let[e]=_([O({content:`Continue from where you left off.`,isMeta:!0})]);i.push(e),o={kind:`interrupted_prompt`,message:e}}else o=a;let s=i.findLastIndex(e=>e.type!==`system`&&e.type!==`progress`);return s!==-1&&i[s].type===`user`&&i.splice(s+1,0,w({content:k})),{messages:i,turnInterruptionState:o}}catch(e){throw L(e),e}}function H(e){if(e.length===0)return{kind:`none`};let t=e.findLastIndex(e=>e.type!==`system`&&e.type!==`progress`&&!(e.type===`assistant`&&e.isApiErrorMessage)),n=t===-1?void 0:e[t];return!n||n.type===`assistant`?{kind:`none`}:n.type===`user`?n.isMeta||n.isCompactSummary?{kind:`none`}:o(n)?{kind:`interrupted_turn`}:{kind:`interrupted_prompt`,message:n}:n.type===`attachment`?{kind:`interrupted_turn`}:{kind:`none`}}function U(e){for(let t of e)if(t.type===`attachment`){if(t.attachment.type===`invoked_skills`){let e=t.attachment.skills;for(let t of e)t.name&&t.path&&t.content&&r(t.name,t.path,t.content,null)}t.attachment.type===`skill_listing`&&S()}S(),p()}async function W(e){let{messages:t,leafUuids:n}=await c(e),r=null,i=0;for(let e of t.values()){if(e.isSidechain||!n.has(e.uuid))continue;let t=new Date(e.timestamp).getTime();t>i&&(i=t,r=e)}return r?{messages:C(N(t,r)),sessionId:r.sessionId}:{messages:[],sessionId:void 0}}async function G(e,t){try{let n=null,r=null,o;if(e===void 0){let e=x(),t=new Set;try{let{listAllLiveSessions:e}=await import(`./udsClient-COYqIvvr.js`),n=await e();t=new Set(n.flatMap(e=>e.kind&&e.kind!==`interactive`&&e.sessionId?[e.sessionId]:[]))}catch{}n=(await e).find(e=>{let n=v(e);return!n||!t.has(n)})??null}else if(t){let e=await W(t);r=e.messages,o=e.sessionId}else typeof e==`string`?(n=await b(e),o=e):n=e;if(!n&&!r)return null;n&&(l(n)&&(n=await a(n)),o||(o=v(n)),o&&await m(n,u(o)),i(n),r=n.messages,d(r)),U(r);let s=V(r);r=s.messages;let c=await y(`resume`,{sessionId:o});return r.push(...c),{messages:r,turnInterruptionState:s.turnInterruptionState,fileHistorySnapshots:n?.fileHistorySnapshots,attributionSnapshots:n?.attributionSnapshots,contentReplacements:n?.contentReplacements,contextCollapseCommits:n?.contextCollapseCommits,contextCollapseSnapshot:n?.contextCollapseSnapshot,sessionId:o,agentName:n?.agentName,agentColor:n?.agentColor,agentSetting:n?.agentSetting,customTitle:n?.customTitle,tag:n?.tag,mode:n?.mode,worktreeSession:n?.worktreeSession,prNumber:n?.prNumber,prUrl:n?.prUrl,prRepository:n?.prRepository,fullPath:n?.fullPath,goal:n?.goal}}catch(e){throw L(e),e}}export{G as n,B as t};
1
+ import{Ht as e,Ut as t}from"./settings-CA-5Px85.js";import{Pt as n,t as r}from"./state-CXY-q5gr.js";import{$h as i,Ar as a,Ea as o,Eg as s,Fr as c,Sr as l,Tg as u,Vn as d,Xi as f,as as p,aw as m,ba as h,ca as g,da as _,dr as v,i_ as y,ir as b,jr as x,os as S,qr as C,qx as w,r_ as T,rs as E,sg as D,tS as O,uS as k,uw as A,vr as j,ya as M,zn as N}from"./loadAgentsDir-izAo6rpy.js";import{n as P,t as F}from"./cwd-DrEEb4f5.js";import{o as I,s as L}from"./log-D98mO6yJ.js";import{relative as R}from"path";P(),n(),s(),t(),E(),D(),I(),f(),A(),T(),j();function z(e){if(e.type!==`attachment`)return e;let t=e.attachment;if(t.type===`new_file`)return{...e,attachment:{...t,type:`file`,displayPath:R(F(),t.filename)}};if(t.type===`new_directory`)return{...e,attachment:{...t,type:`directory`,displayPath:R(F(),t.path)}};if(!(`displayPath`in t)){let n=`filename`in t?t.filename:`path`in t?t.path:`skillDir`in t?t.skillDir:void 0;if(n)return{...e,attachment:{...t,displayPath:R(F(),n)}}}return e}function B(e){return V(e).messages}function V(t){try{let n=t.map(z),r=new Set(e);for(let e of n)e.type===`user`&&e.permissionMode!==void 0&&!r.has(e.permissionMode)&&(e.permissionMode=void 0);let i=g(M(h(n))),a=H(i),o;if(a.kind===`interrupted_turn`){let[e]=_([O({content:`Continue from where you left off.`,isMeta:!0})]);i.push(e),o={kind:`interrupted_prompt`,message:e}}else o=a;let s=i.findLastIndex(e=>e.type!==`system`&&e.type!==`progress`);return s!==-1&&i[s].type===`user`&&i.splice(s+1,0,w({content:k})),{messages:i,turnInterruptionState:o}}catch(e){throw L(e),e}}function H(e){if(e.length===0)return{kind:`none`};let t=e.findLastIndex(e=>e.type!==`system`&&e.type!==`progress`&&!(e.type===`assistant`&&e.isApiErrorMessage)),n=t===-1?void 0:e[t];return!n||n.type===`assistant`?{kind:`none`}:n.type===`user`?n.isMeta||n.isCompactSummary?{kind:`none`}:o(n)?{kind:`interrupted_turn`}:{kind:`interrupted_prompt`,message:n}:n.type===`attachment`?{kind:`interrupted_turn`}:{kind:`none`}}function U(e){for(let t of e)if(t.type===`attachment`){if(t.attachment.type===`invoked_skills`){let e=t.attachment.skills;for(let t of e)t.name&&t.path&&t.content&&r(t.name,t.path,t.content,null)}t.attachment.type===`skill_listing`&&S()}S(),p()}async function W(e){let{messages:t,leafUuids:n}=await c(e),r=null,i=0;for(let e of t.values()){if(e.isSidechain||!n.has(e.uuid))continue;let t=new Date(e.timestamp).getTime();t>i&&(i=t,r=e)}return r?{messages:C(N(t,r)),sessionId:r.sessionId}:{messages:[],sessionId:void 0}}async function G(e,t){try{let n=null,r=null,o;if(e===void 0){let e=x(),t=new Set;try{let{listAllLiveSessions:e}=await import(`./udsClient-COYqIvvr.js`),n=await e();t=new Set(n.flatMap(e=>e.kind&&e.kind!==`interactive`&&e.sessionId?[e.sessionId]:[]))}catch{}n=(await e).find(e=>{let n=v(e);return!n||!t.has(n)})??null}else if(t){let e=await W(t);r=e.messages,o=e.sessionId}else typeof e==`string`?(n=await b(e),o=e):n=e;if(!n&&!r)return null;n&&(l(n)&&(n=await a(n)),o||(o=v(n)),o&&await m(n,u(o)),i(n),r=n.messages,d(r)),U(r);let s=V(r);r=s.messages;let c=await y(`resume`,{sessionId:o});return r.push(...c),{messages:r,turnInterruptionState:s.turnInterruptionState,fileHistorySnapshots:n?.fileHistorySnapshots,attributionSnapshots:n?.attributionSnapshots,contentReplacements:n?.contentReplacements,contextCollapseCommits:n?.contextCollapseCommits,contextCollapseSnapshot:n?.contextCollapseSnapshot,sessionId:o,agentName:n?.agentName,agentColor:n?.agentColor,agentSetting:n?.agentSetting,customTitle:n?.customTitle,tag:n?.tag,mode:n?.mode,worktreeSession:n?.worktreeSession,prNumber:n?.prNumber,prUrl:n?.prUrl,prRepository:n?.prRepository,fullPath:n?.fullPath,goal:n?.goal}}catch(e){throw L(e),e}}export{G as n,B as t};
@@ -1,4 +1,4 @@
1
- import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{C as n,D as r,Gr as i,H as a,I as o,P as s,T as c,Wt as l,Xn as u,ai as d,di as f,fi as p,hn as m,k as ee,oi as te,ot as ne,p as h,t as g}from"./src-BX54x08P.js";import{t as _}from"./jsx-runtime-Bb4Xn-E0.js";import{$n as v,Jr as y,Qn as re,Vr as ie}from"./settings-CA-5Px85.js";import{Pt as b,at as ae,q as oe}from"./state-CXY-q5gr.js";import{Ar as x,Db as se,Dc as S,Eb as ce,Si as le,Sr as C,_d as w,bS as ue,br as de,dr as T,gd as E,kc as D,lb as fe,ni as pe,rb as O,rr as me,vr as he,xS as k,xi as ge}from"./loadAgentsDir-DnHL_5cU.js";import{S as _e,c as A,i as ve,x as j}from"./debug-NBJH_NxR.js";import{a as ye,o as be,s as xe}from"./log-D98mO6yJ.js";import{n as Se}from"./analytics-COpjZpvd.js";import{S as Ce,_ as we,d as Te,p as Ee}from"./startupProfiler-C_xcIvEA.js";import{f as De,u as Oe}from"./model-C9ANf1-R.js";import{n as ke,t as M}from"./useExitOnCtrlCDWithKeybindings-DegJrysj.js";import{n as N,t as Ae}from"./TextInput-CanSwT9J.js";import{n as je,t as Me}from"./select-BpiKdirZ.js";import{r as Ne,t as Pe}from"./Spinner-ChT4lOOg.js";import{l as Fe,u as Ie}from"./SpinnerGlyph-4aVLQdJf.js";import{t as Le}from"./SearchBox-zA5QwIpO.js";import{n as Re,t as ze}from"./useSearchInput-DrY4BZKy.js";import{n as P,t as F}from"./Messages-DyQCr-od.js";function Be({log:e,onExit:t,onSelect:n}){let[i,a]=I.useState(null);I.useEffect(()=>{a(null),C(e)&&x(e).then(a)},[e]);let u=C(e)&&i===null,d=i??e,f=T(d)||``,p=S();return l(`confirm:no`,t,{context:`Confirmation`}),l(`confirm:yes`,(0,I.useCallback)(()=>{n(i??e)},[n,i,e]),{context:`Confirmation`}),u?(0,L.jsxs)(o,{flexDirection:`column`,padding:1,children:[(0,L.jsx)(h,{message:`Loading session…`}),(0,L.jsx)(s,{dimColor:!0,children:(0,L.jsx)(c,{children:(0,L.jsx)(E,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`})})})]}):(0,L.jsxs)(o,{flexDirection:`column`,children:[(0,L.jsx)(F,{messages:d.messages,tools:p,commands:[],verbose:!0,toolJSX:null,toolUseConfirmQueue:[],inProgressToolUseIDs:new Set,isMessageSelectorVisible:!1,conversationId:f,screen:`transcript`,streamingToolUses:[],showAllInTranscript:!0,isLoading:!1}),(0,L.jsxs)(o,{flexShrink:0,flexDirection:`column`,borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:`single`,paddingLeft:2,children:[(0,L.jsxs)(s,{children:[Ee(d.modified),` · `,d.messageCount,` messages`,d.gitBranch?` · ${d.gitBranch}`:``]}),(0,L.jsx)(s,{dimColor:!0,children:(0,L.jsxs)(c,{children:[(0,L.jsx)(r,{shortcut:`Enter`,action:`resume`}),(0,L.jsx)(E,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`})]})})]})]})}var I,L,Ve=e((()=>{I=t(d(),1),g(),O(),D(),we(),he(),w(),P(),L=_()}));function R(e,t){if(e===B)return 5;let n=i(e),r=t?Math.min(n,t-V-H):n;return Math.max(0,r)+V+H}function He(e,t){let n=t-V-H;return i(e)<=n?e:n<=1?e.charAt(0):Ce(e,n)}function Ue({tabs:e,selectedIndex:t,availableWidth:n,showAllProjects:r=!1}){let i=r?`Resume (All Projects)`:`Resume`,a=i.length+1,c=Math.max(Je,W),l=n-a-c-2,u=Math.max(0,Math.min(t,e.length-1)),d=Math.max(20,Math.floor(l/2)),f=e.map(e=>R(e,d)),p=0,m=e.length;if(f.reduce((e,t,n)=>e+t+ +(n<f.length-1),0)>l){let t=l-qe,n=f[u]??0;for(p=u,m=u+1;p>0||m<e.length;){let r=p>0,i=m<e.length;if(r){let e=(f[p-1]??0)+1;if(n+e<=t){p--,n+=e;continue}}if(i){let e=(f[m]??0)+1;if(n+e<=t){m++,n+=e;continue}}break}}let ee=p,te=e.length-m,ne=e.slice(p,m),h=ne.map((e,t)=>p+t);return(0,z.jsxs)(o,{flexDirection:`row`,gap:1,children:[(0,z.jsx)(s,{color:`suggestion`,children:i}),ee>0&&(0,z.jsxs)(s,{dimColor:!0,children:[U,ee]}),ne.map((e,t)=>{let n=h[t]===u,r=e===B?e:`#${He(e,d-V)}`;return(0,z.jsxs)(s,{backgroundColor:n?`suggestion`:void 0,color:n?`inverseText`:void 0,bold:n,children:[` `,r,` `]},e)}),te>0?(0,z.jsxs)(s,{dimColor:!0,children:[We,te,Ge]}):(0,z.jsx)(s,{dimColor:!0,children:Ke})]})}var z,B,V,H,U,We,Ge,Ke,qe,Je,W,G=e((()=>{g(),we(),z=_(),B=`All`,V=2,H=1,U=`← `,We=`→`,Ge=` (tab to cycle)`,Ke=`(tab to cycle)`,qe=5,Je=18,W=14}));function Ye({nodes:e,onSelect:t,onCancel:n,onFocus:r,focusNodeId:i,visibleOptionCount:a,layout:s=`expanded`,isDisabled:c=!1,hideIndexes:l=!1,isNodeExpanded:u,onExpand:d,onCollapse:f,getParentPrefix:p,getChildPrefix:m,onUpFromFirstItem:ee}){let[te,ne]=K.useState(new Set),h=K.useRef(!1),g=K.useRef(null),_=K.useCallback(e=>u?u(e):te.has(e),[u,te]),v=K.useMemo(()=>{let t=[];function n(e,r,i){let a=!!e.children&&e.children.length>0,o=_(e.id);if(t.push({node:e,depth:r,isExpanded:o,hasChildren:a,parentId:i}),a&&o&&e.children)for(let t of e.children)n(t,r+1,e.id)}for(let t of e)n(t,0);return t},[e,_]),y=K.useCallback(e=>e?`▼ `:`▶ `,[]),re=K.useCallback(e=>` ▸ `,[]),ie=p??y,b=m??re,ae=K.useCallback(e=>{let t=``;return e.hasChildren?t=ie(e.isExpanded):e.depth>0&&(t=b(e.depth)),t+e.node.label},[ie,b]),oe=K.useMemo(()=>v.map(e=>({label:ae(e),description:e.node.description,dimDescription:e.node.dimDescription??!0,value:e.node.id})),[v,ae]),x=K.useMemo(()=>{let e=new Map;return v.forEach(t=>e.set(t.node.id,t.node)),e},[v]),se=K.useCallback(e=>v.find(t=>t.node.id===e),[v]),S=K.useCallback((e,t)=>{se(e)?.hasChildren&&(t?d?d(e):ne(t=>new Set(t).add(e)):f?f(e):ne(t=>{let n=new Set(t);return n.delete(e),n}))},[se,d,f]);return(0,Xe.jsx)(o,{tabIndex:0,autoFocus:!0,onKeyDown:e=>{if(!i||c)return;let t=se(i);if(t){if(e.key===`right`&&t.hasChildren)e.preventDefault(),S(i,!0);else if(e.key===`left`){if(t.hasChildren&&t.isExpanded)e.preventDefault(),S(i,!1);else if(t.parentId!==void 0&&(e.preventDefault(),h.current=!0,S(t.parentId,!1),r)){let e=x.get(t.parentId);e&&r(e)}}}},children:(0,Xe.jsx)(Me,{options:oe,onChange:K.useCallback(e=>{let n=x.get(e);n&&t(n)},[x,t]),onFocus:K.useCallback(e=>{if(h.current){h.current=!1;return}if(g.current!==e&&(g.current=e,r)){let t=x.get(e);t&&r(t)}},[r,x]),onCancel:n,defaultFocusValue:i,visibleOptionCount:a,layout:s,isDisabled:c,hideIndexes:l,onUpFromFirstItem:ee})})}var K,Xe,Ze=e((()=>{K=t(d(),1),g(),je(),Xe=_()}));function Qe(e,t){return Ce(e.replace(/\s+/g,` `).trim(),t)}function $e({before:e,match:t,after:n},r){return f.dim(e)+r(t)+f.dim(n)}function et(e,t,n){let r=e.toLowerCase().indexOf(t.toLowerCase());if(r===-1)return null;let i=r+t.length,a=Math.max(0,r-n),o=Math.min(e.length,i+n),s=e.slice(a,r),c=e.slice(r,i),l=e.slice(i,o);return{before:(a>0?`…`:``)+s.replace(/\s+/g,` `).trimStart(),match:c.trim(),after:l.replace(/\s+/g,` `).trimEnd()+(o<e.length?`…`:``)}}function tt(e,t,n){let{isGroupHeader:r=!1,isChild:i=!1,forkCount:a=0}=n||{},o=r&&a>0?ct:i?lt:0,s=r&&a>0?` (+${a} other ${a===1?`session`:`sessions`})`:``,c=e.isSidechain?` (sidechain)`:``,l=t-o-c.length-s.length;return`${Qe(ye(e),l)}${c}${s}`}function nt(e,t){let{isChild:n=!1,showProjectPath:r=!1}=t||{},i=n?` `:``,a=Te(e),o=r&&e.projectPath?` · ${e.projectPath}`:``;return i+a+o}function rt({logs:e,maxHeight:t=1/0,forceWidth:i,onCancel:d,onSelect:f,onLogsChanged:p,onLoadMore:h,initialSearchQuery:g,showAllProjects:_=!1,onToggleAllProjects:v,onAgenticSearch:y}){let re=ne(),b=i===void 0?re.columns:i,x=ke(d),se=u(),S=de(),[ce]=a(),le=Fe(ce),C=q.useMemo(()=>e=>te(e,le.warning),[le.warning]),[w,ue]=q.useState(null),[D,fe]=q.useState(!1),[O,he]=q.useState(!1),[k,_e]=q.useState(!1),A=q.useMemo(()=>oe(),[]),[ve,j]=q.useState(``),[be,xe]=q.useState(0),[Se,Ce]=q.useState(new Set),[we,Ee]=q.useState(null),[De,Oe]=q.useState(1),[M,N]=q.useState(`list`),[je,Ne]=q.useState(null),Ie=q.useRef(null),[Le,ze]=q.useState(0),[P,F]=q.useState({status:`idle`}),[I,L]=q.useState(!1),Ve=q.useRef(null),{query:R,setQuery:He,cursorOffset:z}=Re({isActive:M===`search`&&P.status!==`searching`,onExit:()=>{N(`list`)},onExitUp:()=>{N(`list`)},passthroughCtrlKeys:[`n`],initialQuery:g||``}),B=q.useDeferredValue(R),[V,H]=q.useState(``);q.useEffect(()=>{if(!B){H(``);return}let e=setTimeout(H,300,B);return()=>clearTimeout(e)},[B]);let[U,We]=q.useState(null),[Ge,Ke]=q.useState(!1);q.useEffect(()=>{ie().then(e=>ue(e)),ge(A).then(e=>{_e(e.length>1)})},[A]);let qe=q.useMemo(()=>new Map(e.map(e=>[e,at(e)])),[e]),Je=q.useMemo(()=>null,[e,qe,!1]),W=q.useMemo(()=>st(e),[e]),G=W.length>0,K=q.useMemo(()=>G?[`All`,...W]:[],[G,W]),Xe=K.length>0&&Le<K.length?Le:0,Ze=K[Xe],rt=Ze===`All`?void 0:Ze,it=+!!G,ct=q.useMemo(()=>{let t=e;return S&&(t=e.filter(e=>{let t=ae(),n=T(e);return!!(t&&n===t||e.customTitle||me(e.messages)||e.firstPrompt||e.customTitle)})),rt!==void 0&&(t=t.filter(e=>e.tag===rt)),D&&w&&(t=t.filter(e=>e.gitBranch===w)),k&&!O&&(t=t.filter(e=>e.projectPath===A)),t},[e,S,rt,D,w,k,O,A]),lt=q.useMemo(()=>{if(!R)return ct;let e=R.toLowerCase();return ct.filter(t=>{let n=ye(t).toLowerCase(),r=(t.gitBranch||``).toLowerCase(),i=(t.tag||``).toLowerCase(),a=t.prNumber?`pr #${t.prNumber} ${t.prRepository||``}`.toLowerCase():``;return n.includes(e)||r.includes(e)||i.includes(e)||a.includes(e)})},[ct,R]);q.useEffect(()=>{},[B,V,!1]),q.useEffect(()=>{We(null),Ke(!1)},[V,Je,!1]);let{filteredLogs:Y,snippets:X}=q.useMemo(()=>{let e=new Map,t=lt;if(U&&V&&U.query===V){for(let t of U.results)if(t.searchableText){let n=et(t.searchableText,V,ut);n&&e.set(t.log,n)}let n=new Set(t.map(e=>e.messages[0]?.uuid)),r=U.results.map(e=>e.log).filter(e=>!n.has(e.messages[0]?.uuid));t=[...t,...r]}return{filteredLogs:t,snippets:e}},[lt,U,V]),Z=q.useMemo(()=>P.status===`results`&&P.results.length>0?P.results:Y,[P,Y]),Q=Math.max(30,b-4),dt=q.useMemo(()=>{if(!S)return[];let e=ot(Z);return Array.from(e.entries()).map(([e,t])=>{let n=t[0],r=Z.indexOf(n),i=X.get(n),a=i?$e(i,C):null;if(t.length===1){let t=nt(n,{showProjectPath:_});return{id:`log:${e}:0`,value:{log:n,indexInFiltered:r},label:tt(n,Q),description:a?`${t}\n ${a}`:t,dimDescription:!0}}let o=t.length-1,s=t.slice(1).map((t,n)=>{let r=Z.indexOf(t),i=X.get(t),a=i?$e(i,C):null,o=nt(t,{isChild:!0,showProjectPath:_});return{id:`log:${e}:${n+1}`,value:{log:t,indexInFiltered:r},label:tt(t,Q,{isChild:!0}),description:a?`${o}\n ${a}`:o,dimDescription:!0}}),c=nt(n,{showProjectPath:_});return{id:`group:${e}`,value:{log:n,indexInFiltered:r},label:tt(n,Q,{isGroupHeader:!0,forkCount:o}),description:a?`${c}\n ${a}`:c,dimDescription:!0,children:s}})},[S,Z,Q,_,X,C]),ft=q.useMemo(()=>S?[]:Z.map((e,t)=>{let n=Qe(ye(e)+(e.isSidechain?` (sidechain)`:``),Q),r=Te(e),i=_&&e.projectPath?` · ${e.projectPath}`:``,a=X.get(e),o=a?$e(a,C):null;return{label:n,description:o?`${r}${i}\n ${o}`:r+i,dimDescription:!0,value:t.toString()}}),[S,Z,C,Q,_,X]),$=we?.value.log??null,pt=()=>{if(!S||!$)return``;let e=T($);if(!e)return``;let t=Z.filter(t=>T(t)===e);if(!(t.length>1))return``;let n=Se.has(e);return t.indexOf($)>0||n?`← to collapse`:`→ to expand`},mt=q.useCallback(async()=>{let e=$?T($):void 0;if(!$||!e){N(`list`),j(``);return}ve.trim()&&(await pe(e,ve.trim(),$.fullPath),S&&p&&p()),N(`list`),j(``)},[$,ve,p,S]),ht=q.useCallback(()=>{N(`list`)},[]),gt=q.useCallback(()=>{N(`search`)},[]),_t=q.useCallback(async()=>{if(!R.trim()||!y||!0)return;Ve.current?.abort();let t=new AbortController;Ve.current=t,F({status:`searching`}),R.length;try{let n=await y(R,e,t.signal);if(t.signal.aborted)return;F({status:`results`,results:n,query:R}),R.length,n.length}catch(e){if(t.signal.aborted)return;F({status:`error`,message:e instanceof Error?e.message:`Search failed`}),R.length}},[R,y,!1,e]);q.useEffect(()=>{P.status!==`idle`&&P.status!==`searching`&&(P.status===`results`&&P.query!==R||P.status===`error`)&&F({status:`idle`})},[R,P]),q.useEffect(()=>()=>{Ve.current?.abort()},[]);let vt=q.useRef(P.status);q.useEffect(()=>{let e=vt.current;if(vt.current=P.status,e===`searching`&&P.status===`results`){if(S&&dt.length>0)Ee(dt[0]);else if(!S&&Z.length>0){let e=Z[0];Ee({id:`0`,value:{log:e,indexInFiltered:0},label:``})}}},[P.status,S,dt,Z]);let yt=q.useCallback(e=>{let t=parseInt(e,10),n=Z[t];!n||Ie.current===t.toString()||(Ie.current=t.toString(),Ee({id:t.toString(),value:{log:n,indexInFiltered:t},label:``}),Oe(t+1))},[Z]),bt=q.useCallback(e=>{Ee(e);let t=Z.findIndex(t=>T(t)===T(e.value.log));t>=0&&Oe(t+1)},[Z]);l(`confirm:no`,()=>{Ve.current?.abort(),F({status:`idle`})},{context:`Confirmation`,isActive:M!==`preview`&&P.status===`searching`}),l(`confirm:no`,()=>{N(`list`),j(``)},{context:`Settings`,isActive:M===`rename`&&P.status!==`searching`}),l(`confirm:no`,()=>{He(``),L(!1),d?.()},{context:`Confirmation`,isActive:M!==`preview`&&M!==`rename`&&M!==`search`&&I&&P.status!==`searching`}),m((e,t)=>{if(M!==`preview`&&P.status!==`searching`&&M!==`rename`)if(M===`search`)e.toLowerCase()===`n`&&t.ctrl?ht():(t.return||t.downArrow)&&R.trim();else{if(I){if(t.return){_t(),L(!1);return}else if(t.downArrow){L(!1);return}else if(t.upArrow){N(`search`),L(!1);return}}if(G&&t.tab){let e=t.shift?-1:1;ze(t=>{let n=((t<K.length?t:0)+K.length+e)%K.length;return K[n],W.length,n});return}let n=!t.ctrl&&!t.meta,r=e.toLowerCase();r===`a`&&t.ctrl&&v?v():r===`b`&&t.ctrl?fe(!D):r===`w`&&t.ctrl&&k?he(!O):r===`/`&&n?N(`search`):r===`r`&&t.ctrl&&$?(N(`rename`),j(``)):r===`v`&&t.ctrl&&$?(Ne($),N(`preview`),$.messageCount):$&&n&&e.length>0&&!/^\s+$/.test(e)&&(N(`search`),He(e))}},{isActive:!0});let xt=[];D&&w&&xt.push(w),k&&!O&&xt.push(`current worktree`);let St=8+ +(xt.length>0&&M!==`search`)+it,Ct=Math.max(1,Math.floor((t-St-2)/3));return q.useEffect(()=>{if(!h)return;let e=Ct*2;De+e>=Z.length&&h(Ct*3)},[De,Ct,Z.length,h]),e.length===0?null:M===`preview`&&je&&S?(0,J.jsx)(Be,{log:je,onExit:()=>{N(`list`),Ne(null)},onSelect:f}):(0,J.jsxs)(o,{flexDirection:`column`,height:t-1,children:[(0,J.jsx)(o,{flexShrink:0,children:(0,J.jsx)(n,{color:`suggestion`})}),(0,J.jsx)(o,{flexShrink:0,children:(0,J.jsx)(s,{children:` `})}),G?(0,J.jsx)(Ue,{tabs:K,selectedIndex:Xe,availableWidth:b,showAllProjects:_}):(0,J.jsx)(o,{flexShrink:0,children:(0,J.jsxs)(s,{bold:!0,color:`suggestion`,children:[`Resume Session`,M===`list`&&Z.length>Ct&&(0,J.jsxs)(s,{dimColor:!0,children:[` `,`(`,De,` of `,Z.length,`)`]})]})}),(0,J.jsx)(ee,{query:R,isFocused:M===`search`,isTerminalFocused:se,cursorOffset:z}),xt.length>0&&M!==`search`&&(0,J.jsx)(o,{flexShrink:0,paddingLeft:2,children:(0,J.jsx)(s,{dimColor:!0,children:(0,J.jsx)(c,{children:xt})})}),(0,J.jsx)(o,{flexShrink:0,children:(0,J.jsx)(s,{children:` `})}),P.status===`searching`&&(0,J.jsxs)(o,{paddingLeft:1,flexShrink:0,children:[(0,J.jsx)(Pe,{}),(0,J.jsx)(s,{children:` Searching…`})]}),P.status===`results`&&P.results.length>0&&(0,J.jsx)(o,{paddingLeft:1,marginBottom:1,flexShrink:0,children:(0,J.jsx)(s,{dimColor:!0,italic:!0,children:`Work Mate found these results:`})}),P.status===`results`&&P.results.length===0&&Y.length===0&&(0,J.jsx)(o,{paddingLeft:1,marginBottom:1,flexShrink:0,children:(0,J.jsx)(s,{dimColor:!0,italic:!0,children:`No matching sessions found.`})}),P.status===`error`&&Y.length===0&&(0,J.jsx)(o,{paddingLeft:1,marginBottom:1,flexShrink:0,children:(0,J.jsx)(s,{dimColor:!0,italic:!0,children:`No matching sessions found.`})}),!!R.trim()&&y&&!1,P.status===`searching`?null:M===`rename`&&$?(0,J.jsxs)(o,{paddingLeft:2,flexDirection:`column`,children:[(0,J.jsx)(s,{bold:!0,children:`Rename session:`}),(0,J.jsx)(o,{paddingTop:1,children:(0,J.jsx)(Ae,{value:ve,onChange:j,onSubmit:mt,placeholder:ye($,`Enter new session name`),columns:b,cursorOffset:be,onChangeCursorOffset:xe,showCursor:!0})})]}):S?(0,J.jsx)(Ye,{nodes:dt,onSelect:e=>{f(e.value.log)},onFocus:bt,onCancel:d,focusNodeId:we?.id,visibleOptionCount:Ct,layout:`expanded`,isDisabled:M===`search`||I,hideIndexes:!1,isNodeExpanded:e=>{if(M===`search`||D)return!0;let t=typeof e==`string`&&e.startsWith(`group:`)?e.substring(6):null;return t?Se.has(t):!1},onExpand:e=>{let t=typeof e==`string`&&e.startsWith(`group:`)?e.substring(6):null;t&&Ce(e=>new Set(e).add(t))},onCollapse:e=>{let t=typeof e==`string`&&e.startsWith(`group:`)?e.substring(6):null;t&&Ce(e=>{let n=new Set(e);return n.delete(t),n})},onUpFromFirstItem:gt}):(0,J.jsx)(Me,{options:ft,onChange:e=>{let t=Z[parseInt(e,10)];t&&f(t)},visibleOptionCount:Ct,onCancel:d,onFocus:yt,defaultFocusValue:we?.id.toString(),layout:`expanded`,isDisabled:M===`search`||I,onUpFromFirstItem:gt}),(0,J.jsx)(o,{paddingLeft:2,children:x.pending?(0,J.jsxs)(s,{dimColor:!0,children:[`Press `,x.keyName,` again to exit`]}):M===`rename`?(0,J.jsx)(s,{dimColor:!0,children:(0,J.jsxs)(c,{children:[(0,J.jsx)(r,{shortcut:`Enter`,action:`save`}),(0,J.jsx)(E,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`})]})}):P.status===`searching`?(0,J.jsx)(s,{dimColor:!0,children:(0,J.jsxs)(c,{children:[(0,J.jsx)(s,{children:`Searching with Work Mate…`}),(0,J.jsx)(E,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`})]})}):I?(0,J.jsx)(s,{dimColor:!0,children:(0,J.jsxs)(c,{children:[(0,J.jsx)(r,{shortcut:`Enter`,action:`search`}),(0,J.jsx)(r,{shortcut:`↓`,action:`skip`}),(0,J.jsx)(E,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`})]})}):M===`search`?(0,J.jsx)(s,{dimColor:!0,children:(0,J.jsxs)(c,{children:[(0,J.jsx)(s,{children:`Type to Search`}),(0,J.jsx)(r,{shortcut:`Enter`,action:`select`}),(0,J.jsx)(E,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`clear`})]})}):(0,J.jsx)(s,{dimColor:!0,children:(0,J.jsxs)(c,{children:[v&&(0,J.jsx)(r,{shortcut:`Ctrl+A`,action:`show ${_?`current dir`:`all projects`}`}),w&&(0,J.jsx)(r,{shortcut:`Ctrl+B`,action:`toggle branch`}),k&&(0,J.jsx)(r,{shortcut:`Ctrl+W`,action:`show ${O?`current worktree`:`all worktrees`}`}),(0,J.jsx)(r,{shortcut:`Ctrl+V`,action:`preview`}),(0,J.jsx)(r,{shortcut:`Ctrl+R`,action:`rename`}),(0,J.jsx)(s,{children:`Type to search`}),(0,J.jsx)(E,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`}),pt()&&(0,J.jsx)(s,{children:pt()})]})})})]})}function it(e){if(e.type!==`user`&&e.type!==`assistant`)return``;let t=`message`in e?e.message?.content:void 0;return t?typeof t==`string`?t:Array.isArray(t)?t.map(e=>typeof e==`string`?e:`text`in e&&typeof e.text==`string`?e.text:``).filter(Boolean).join(` `):``:``}function at(e){let t=(e.messages.length<=Y?e.messages:[...e.messages.slice(0,X),...e.messages.slice(-1e3)]).map(it).filter(Boolean).join(` `),n=`${[e.customTitle,e.summary,e.firstPrompt,e.gitBranch,e.tag,e.prNumber?`PR #${e.prNumber}`:void 0,e.prRepository].filter(Boolean).join(` `)} ${t}`.trim();return n.length>Z?n.slice(0,Z):n}function ot(e){let t=new Map;for(let n of e){let e=T(n);if(e){let r=t.get(e);r?r.push(n):t.set(e,[n])}}return t.forEach(e=>e.sort((e,t)=>new Date(t.modified).getTime()-new Date(e.modified).getTime())),t}function st(e){let t=new Set;for(let n of e)n.tag&&t.add(n.tag);return Array.from(t).sort((e,t)=>e.localeCompare(t))}var q,J,ct,lt,Y,X,Z,ut,Q=e((()=>{p(),q=t(d(),1),b(),M(),ze(),fe(),g(),O(),Se(),we(),le(),y(),be(),he(),Ie(),w(),je(),Le(),Ve(),Ne(),G(),N(),Ze(),J=_(),ct=2,lt=4,Y=2e3,X=1e3,Z=5e4,ut=50}));function dt(e){if(e.type!==`user`&&e.type!==`assistant`)return``;let t=`message`in e?e.message?.content:void 0;return t?typeof t==`string`?t:Array.isArray(t)?t.map(e=>typeof e==`string`?e:`text`in e&&typeof e.text==`string`?e.text:``).filter(Boolean).join(` `):``:``}function ft(e){if(e.length===0)return``;let t=(e.length<=ht?e:[...e.slice(0,ht/2),...e.slice(-100/2)]).map(dt).filter(Boolean).join(` `).replace(/\s+/g,` `).trim();return t.length>mt?`${t.slice(0,mt)}…`:t}function $(e,t){return!!(ye(e).toLowerCase().includes(t)||e.customTitle?.toLowerCase().includes(t)||e.tag?.toLowerCase().includes(t)||e.gitBranch?.toLowerCase().includes(t)||e.summary?.toLowerCase().includes(t)||e.firstPrompt?.toLowerCase().includes(t)||e.messages&&e.messages.length>0&&ft(e.messages).toLowerCase().includes(t))}async function pt(e,t,n){if(!e.trim()||t.length===0)return[];let r=e.toLowerCase(),i=t.filter(e=>$(e,r)),a;if(i.length>=gt)a=i.slice(0,gt);else{let e=t.filter(e=>!$(e,r)),n=gt-i.length;a=[...i,...e.slice(0,n)]}A(`Agentic search: ${a.length}/${t.length} logs, query="${e}", matching: ${i.length}, with messages: ${re(a,e=>e.messages?.length>0)}`);let o=a.map(async e=>{if(C(e))try{return await x(e)}catch(t){return xe(t),e}return e}),s=await Promise.all(o);A(`Agentic search: loaded ${re(s,e=>e.messages?.length>0)}/${a.length} logs with transcripts`);let c=`Sessions:
1
+ import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{C as n,D as r,Gr as i,H as a,I as o,P as s,T as c,Wt as l,Xn as u,ai as d,di as f,fi as p,hn as m,k as ee,oi as te,ot as ne,p as h,t as g}from"./src-BX54x08P.js";import{t as _}from"./jsx-runtime-Bb4Xn-E0.js";import{$n as v,Jr as y,Qn as re,Vr as ie}from"./settings-CA-5Px85.js";import{Pt as b,at as ae,q as oe}from"./state-CXY-q5gr.js";import{Ar as x,Db as se,Dc as S,Eb as ce,Si as le,Sr as C,_d as w,bS as ue,br as de,dr as T,gd as E,kc as D,lb as fe,ni as pe,rb as O,rr as me,vr as he,xS as k,xi as ge}from"./loadAgentsDir-izAo6rpy.js";import{S as _e,c as A,i as ve,x as j}from"./debug-NBJH_NxR.js";import{a as ye,o as be,s as xe}from"./log-D98mO6yJ.js";import{n as Se}from"./analytics-COpjZpvd.js";import{S as Ce,_ as we,d as Te,p as Ee}from"./startupProfiler-C_xcIvEA.js";import{f as De,u as Oe}from"./model-cu29eOoS.js";import{n as ke,t as M}from"./useExitOnCtrlCDWithKeybindings-BfgcAS50.js";import{n as N,t as Ae}from"./TextInput-DJaXm3Y2.js";import{n as je,t as Me}from"./select-CPlgmbIJ.js";import{r as Ne,t as Pe}from"./Spinner-bYnSD54K.js";import{l as Fe,u as Ie}from"./SpinnerGlyph-4aVLQdJf.js";import{t as Le}from"./SearchBox-zA5QwIpO.js";import{n as Re,t as ze}from"./useSearchInput-C4O9vs6X.js";import{n as P,t as F}from"./Messages-DHOApZZj.js";function Be({log:e,onExit:t,onSelect:n}){let[i,a]=I.useState(null);I.useEffect(()=>{a(null),C(e)&&x(e).then(a)},[e]);let u=C(e)&&i===null,d=i??e,f=T(d)||``,p=S();return l(`confirm:no`,t,{context:`Confirmation`}),l(`confirm:yes`,(0,I.useCallback)(()=>{n(i??e)},[n,i,e]),{context:`Confirmation`}),u?(0,L.jsxs)(o,{flexDirection:`column`,padding:1,children:[(0,L.jsx)(h,{message:`Loading session…`}),(0,L.jsx)(s,{dimColor:!0,children:(0,L.jsx)(c,{children:(0,L.jsx)(E,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`})})})]}):(0,L.jsxs)(o,{flexDirection:`column`,children:[(0,L.jsx)(F,{messages:d.messages,tools:p,commands:[],verbose:!0,toolJSX:null,toolUseConfirmQueue:[],inProgressToolUseIDs:new Set,isMessageSelectorVisible:!1,conversationId:f,screen:`transcript`,streamingToolUses:[],showAllInTranscript:!0,isLoading:!1}),(0,L.jsxs)(o,{flexShrink:0,flexDirection:`column`,borderTopDimColor:!0,borderBottom:!1,borderLeft:!1,borderRight:!1,borderStyle:`single`,paddingLeft:2,children:[(0,L.jsxs)(s,{children:[Ee(d.modified),` · `,d.messageCount,` messages`,d.gitBranch?` · ${d.gitBranch}`:``]}),(0,L.jsx)(s,{dimColor:!0,children:(0,L.jsxs)(c,{children:[(0,L.jsx)(r,{shortcut:`Enter`,action:`resume`}),(0,L.jsx)(E,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`})]})})]})]})}var I,L,Ve=e((()=>{I=t(d(),1),g(),O(),D(),we(),he(),w(),P(),L=_()}));function R(e,t){if(e===B)return 5;let n=i(e),r=t?Math.min(n,t-V-H):n;return Math.max(0,r)+V+H}function He(e,t){let n=t-V-H;return i(e)<=n?e:n<=1?e.charAt(0):Ce(e,n)}function Ue({tabs:e,selectedIndex:t,availableWidth:n,showAllProjects:r=!1}){let i=r?`Resume (All Projects)`:`Resume`,a=i.length+1,c=Math.max(Je,W),l=n-a-c-2,u=Math.max(0,Math.min(t,e.length-1)),d=Math.max(20,Math.floor(l/2)),f=e.map(e=>R(e,d)),p=0,m=e.length;if(f.reduce((e,t,n)=>e+t+ +(n<f.length-1),0)>l){let t=l-qe,n=f[u]??0;for(p=u,m=u+1;p>0||m<e.length;){let r=p>0,i=m<e.length;if(r){let e=(f[p-1]??0)+1;if(n+e<=t){p--,n+=e;continue}}if(i){let e=(f[m]??0)+1;if(n+e<=t){m++,n+=e;continue}}break}}let ee=p,te=e.length-m,ne=e.slice(p,m),h=ne.map((e,t)=>p+t);return(0,z.jsxs)(o,{flexDirection:`row`,gap:1,children:[(0,z.jsx)(s,{color:`suggestion`,children:i}),ee>0&&(0,z.jsxs)(s,{dimColor:!0,children:[U,ee]}),ne.map((e,t)=>{let n=h[t]===u,r=e===B?e:`#${He(e,d-V)}`;return(0,z.jsxs)(s,{backgroundColor:n?`suggestion`:void 0,color:n?`inverseText`:void 0,bold:n,children:[` `,r,` `]},e)}),te>0?(0,z.jsxs)(s,{dimColor:!0,children:[We,te,Ge]}):(0,z.jsx)(s,{dimColor:!0,children:Ke})]})}var z,B,V,H,U,We,Ge,Ke,qe,Je,W,G=e((()=>{g(),we(),z=_(),B=`All`,V=2,H=1,U=`← `,We=`→`,Ge=` (tab to cycle)`,Ke=`(tab to cycle)`,qe=5,Je=18,W=14}));function Ye({nodes:e,onSelect:t,onCancel:n,onFocus:r,focusNodeId:i,visibleOptionCount:a,layout:s=`expanded`,isDisabled:c=!1,hideIndexes:l=!1,isNodeExpanded:u,onExpand:d,onCollapse:f,getParentPrefix:p,getChildPrefix:m,onUpFromFirstItem:ee}){let[te,ne]=K.useState(new Set),h=K.useRef(!1),g=K.useRef(null),_=K.useCallback(e=>u?u(e):te.has(e),[u,te]),v=K.useMemo(()=>{let t=[];function n(e,r,i){let a=!!e.children&&e.children.length>0,o=_(e.id);if(t.push({node:e,depth:r,isExpanded:o,hasChildren:a,parentId:i}),a&&o&&e.children)for(let t of e.children)n(t,r+1,e.id)}for(let t of e)n(t,0);return t},[e,_]),y=K.useCallback(e=>e?`▼ `:`▶ `,[]),re=K.useCallback(e=>` ▸ `,[]),ie=p??y,b=m??re,ae=K.useCallback(e=>{let t=``;return e.hasChildren?t=ie(e.isExpanded):e.depth>0&&(t=b(e.depth)),t+e.node.label},[ie,b]),oe=K.useMemo(()=>v.map(e=>({label:ae(e),description:e.node.description,dimDescription:e.node.dimDescription??!0,value:e.node.id})),[v,ae]),x=K.useMemo(()=>{let e=new Map;return v.forEach(t=>e.set(t.node.id,t.node)),e},[v]),se=K.useCallback(e=>v.find(t=>t.node.id===e),[v]),S=K.useCallback((e,t)=>{se(e)?.hasChildren&&(t?d?d(e):ne(t=>new Set(t).add(e)):f?f(e):ne(t=>{let n=new Set(t);return n.delete(e),n}))},[se,d,f]);return(0,Xe.jsx)(o,{tabIndex:0,autoFocus:!0,onKeyDown:e=>{if(!i||c)return;let t=se(i);if(t){if(e.key===`right`&&t.hasChildren)e.preventDefault(),S(i,!0);else if(e.key===`left`){if(t.hasChildren&&t.isExpanded)e.preventDefault(),S(i,!1);else if(t.parentId!==void 0&&(e.preventDefault(),h.current=!0,S(t.parentId,!1),r)){let e=x.get(t.parentId);e&&r(e)}}}},children:(0,Xe.jsx)(Me,{options:oe,onChange:K.useCallback(e=>{let n=x.get(e);n&&t(n)},[x,t]),onFocus:K.useCallback(e=>{if(h.current){h.current=!1;return}if(g.current!==e&&(g.current=e,r)){let t=x.get(e);t&&r(t)}},[r,x]),onCancel:n,defaultFocusValue:i,visibleOptionCount:a,layout:s,isDisabled:c,hideIndexes:l,onUpFromFirstItem:ee})})}var K,Xe,Ze=e((()=>{K=t(d(),1),g(),je(),Xe=_()}));function Qe(e,t){return Ce(e.replace(/\s+/g,` `).trim(),t)}function $e({before:e,match:t,after:n},r){return f.dim(e)+r(t)+f.dim(n)}function et(e,t,n){let r=e.toLowerCase().indexOf(t.toLowerCase());if(r===-1)return null;let i=r+t.length,a=Math.max(0,r-n),o=Math.min(e.length,i+n),s=e.slice(a,r),c=e.slice(r,i),l=e.slice(i,o);return{before:(a>0?`…`:``)+s.replace(/\s+/g,` `).trimStart(),match:c.trim(),after:l.replace(/\s+/g,` `).trimEnd()+(o<e.length?`…`:``)}}function tt(e,t,n){let{isGroupHeader:r=!1,isChild:i=!1,forkCount:a=0}=n||{},o=r&&a>0?ct:i?lt:0,s=r&&a>0?` (+${a} other ${a===1?`session`:`sessions`})`:``,c=e.isSidechain?` (sidechain)`:``,l=t-o-c.length-s.length;return`${Qe(ye(e),l)}${c}${s}`}function nt(e,t){let{isChild:n=!1,showProjectPath:r=!1}=t||{},i=n?` `:``,a=Te(e),o=r&&e.projectPath?` · ${e.projectPath}`:``;return i+a+o}function rt({logs:e,maxHeight:t=1/0,forceWidth:i,onCancel:d,onSelect:f,onLogsChanged:p,onLoadMore:h,initialSearchQuery:g,showAllProjects:_=!1,onToggleAllProjects:v,onAgenticSearch:y}){let re=ne(),b=i===void 0?re.columns:i,x=ke(d),se=u(),S=de(),[ce]=a(),le=Fe(ce),C=q.useMemo(()=>e=>te(e,le.warning),[le.warning]),[w,ue]=q.useState(null),[D,fe]=q.useState(!1),[O,he]=q.useState(!1),[k,_e]=q.useState(!1),A=q.useMemo(()=>oe(),[]),[ve,j]=q.useState(``),[be,xe]=q.useState(0),[Se,Ce]=q.useState(new Set),[we,Ee]=q.useState(null),[De,Oe]=q.useState(1),[M,N]=q.useState(`list`),[je,Ne]=q.useState(null),Ie=q.useRef(null),[Le,ze]=q.useState(0),[P,F]=q.useState({status:`idle`}),[I,L]=q.useState(!1),Ve=q.useRef(null),{query:R,setQuery:He,cursorOffset:z}=Re({isActive:M===`search`&&P.status!==`searching`,onExit:()=>{N(`list`)},onExitUp:()=>{N(`list`)},passthroughCtrlKeys:[`n`],initialQuery:g||``}),B=q.useDeferredValue(R),[V,H]=q.useState(``);q.useEffect(()=>{if(!B){H(``);return}let e=setTimeout(H,300,B);return()=>clearTimeout(e)},[B]);let[U,We]=q.useState(null),[Ge,Ke]=q.useState(!1);q.useEffect(()=>{ie().then(e=>ue(e)),ge(A).then(e=>{_e(e.length>1)})},[A]);let qe=q.useMemo(()=>new Map(e.map(e=>[e,at(e)])),[e]),Je=q.useMemo(()=>null,[e,qe,!1]),W=q.useMemo(()=>st(e),[e]),G=W.length>0,K=q.useMemo(()=>G?[`All`,...W]:[],[G,W]),Xe=K.length>0&&Le<K.length?Le:0,Ze=K[Xe],rt=Ze===`All`?void 0:Ze,it=+!!G,ct=q.useMemo(()=>{let t=e;return S&&(t=e.filter(e=>{let t=ae(),n=T(e);return!!(t&&n===t||e.customTitle||me(e.messages)||e.firstPrompt||e.customTitle)})),rt!==void 0&&(t=t.filter(e=>e.tag===rt)),D&&w&&(t=t.filter(e=>e.gitBranch===w)),k&&!O&&(t=t.filter(e=>e.projectPath===A)),t},[e,S,rt,D,w,k,O,A]),lt=q.useMemo(()=>{if(!R)return ct;let e=R.toLowerCase();return ct.filter(t=>{let n=ye(t).toLowerCase(),r=(t.gitBranch||``).toLowerCase(),i=(t.tag||``).toLowerCase(),a=t.prNumber?`pr #${t.prNumber} ${t.prRepository||``}`.toLowerCase():``;return n.includes(e)||r.includes(e)||i.includes(e)||a.includes(e)})},[ct,R]);q.useEffect(()=>{},[B,V,!1]),q.useEffect(()=>{We(null),Ke(!1)},[V,Je,!1]);let{filteredLogs:Y,snippets:X}=q.useMemo(()=>{let e=new Map,t=lt;if(U&&V&&U.query===V){for(let t of U.results)if(t.searchableText){let n=et(t.searchableText,V,ut);n&&e.set(t.log,n)}let n=new Set(t.map(e=>e.messages[0]?.uuid)),r=U.results.map(e=>e.log).filter(e=>!n.has(e.messages[0]?.uuid));t=[...t,...r]}return{filteredLogs:t,snippets:e}},[lt,U,V]),Z=q.useMemo(()=>P.status===`results`&&P.results.length>0?P.results:Y,[P,Y]),Q=Math.max(30,b-4),dt=q.useMemo(()=>{if(!S)return[];let e=ot(Z);return Array.from(e.entries()).map(([e,t])=>{let n=t[0],r=Z.indexOf(n),i=X.get(n),a=i?$e(i,C):null;if(t.length===1){let t=nt(n,{showProjectPath:_});return{id:`log:${e}:0`,value:{log:n,indexInFiltered:r},label:tt(n,Q),description:a?`${t}\n ${a}`:t,dimDescription:!0}}let o=t.length-1,s=t.slice(1).map((t,n)=>{let r=Z.indexOf(t),i=X.get(t),a=i?$e(i,C):null,o=nt(t,{isChild:!0,showProjectPath:_});return{id:`log:${e}:${n+1}`,value:{log:t,indexInFiltered:r},label:tt(t,Q,{isChild:!0}),description:a?`${o}\n ${a}`:o,dimDescription:!0}}),c=nt(n,{showProjectPath:_});return{id:`group:${e}`,value:{log:n,indexInFiltered:r},label:tt(n,Q,{isGroupHeader:!0,forkCount:o}),description:a?`${c}\n ${a}`:c,dimDescription:!0,children:s}})},[S,Z,Q,_,X,C]),ft=q.useMemo(()=>S?[]:Z.map((e,t)=>{let n=Qe(ye(e)+(e.isSidechain?` (sidechain)`:``),Q),r=Te(e),i=_&&e.projectPath?` · ${e.projectPath}`:``,a=X.get(e),o=a?$e(a,C):null;return{label:n,description:o?`${r}${i}\n ${o}`:r+i,dimDescription:!0,value:t.toString()}}),[S,Z,C,Q,_,X]),$=we?.value.log??null,pt=()=>{if(!S||!$)return``;let e=T($);if(!e)return``;let t=Z.filter(t=>T(t)===e);if(!(t.length>1))return``;let n=Se.has(e);return t.indexOf($)>0||n?`← to collapse`:`→ to expand`},mt=q.useCallback(async()=>{let e=$?T($):void 0;if(!$||!e){N(`list`),j(``);return}ve.trim()&&(await pe(e,ve.trim(),$.fullPath),S&&p&&p()),N(`list`),j(``)},[$,ve,p,S]),ht=q.useCallback(()=>{N(`list`)},[]),gt=q.useCallback(()=>{N(`search`)},[]),_t=q.useCallback(async()=>{if(!R.trim()||!y||!0)return;Ve.current?.abort();let t=new AbortController;Ve.current=t,F({status:`searching`}),R.length;try{let n=await y(R,e,t.signal);if(t.signal.aborted)return;F({status:`results`,results:n,query:R}),R.length,n.length}catch(e){if(t.signal.aborted)return;F({status:`error`,message:e instanceof Error?e.message:`Search failed`}),R.length}},[R,y,!1,e]);q.useEffect(()=>{P.status!==`idle`&&P.status!==`searching`&&(P.status===`results`&&P.query!==R||P.status===`error`)&&F({status:`idle`})},[R,P]),q.useEffect(()=>()=>{Ve.current?.abort()},[]);let vt=q.useRef(P.status);q.useEffect(()=>{let e=vt.current;if(vt.current=P.status,e===`searching`&&P.status===`results`){if(S&&dt.length>0)Ee(dt[0]);else if(!S&&Z.length>0){let e=Z[0];Ee({id:`0`,value:{log:e,indexInFiltered:0},label:``})}}},[P.status,S,dt,Z]);let yt=q.useCallback(e=>{let t=parseInt(e,10),n=Z[t];!n||Ie.current===t.toString()||(Ie.current=t.toString(),Ee({id:t.toString(),value:{log:n,indexInFiltered:t},label:``}),Oe(t+1))},[Z]),bt=q.useCallback(e=>{Ee(e);let t=Z.findIndex(t=>T(t)===T(e.value.log));t>=0&&Oe(t+1)},[Z]);l(`confirm:no`,()=>{Ve.current?.abort(),F({status:`idle`})},{context:`Confirmation`,isActive:M!==`preview`&&P.status===`searching`}),l(`confirm:no`,()=>{N(`list`),j(``)},{context:`Settings`,isActive:M===`rename`&&P.status!==`searching`}),l(`confirm:no`,()=>{He(``),L(!1),d?.()},{context:`Confirmation`,isActive:M!==`preview`&&M!==`rename`&&M!==`search`&&I&&P.status!==`searching`}),m((e,t)=>{if(M!==`preview`&&P.status!==`searching`&&M!==`rename`)if(M===`search`)e.toLowerCase()===`n`&&t.ctrl?ht():(t.return||t.downArrow)&&R.trim();else{if(I){if(t.return){_t(),L(!1);return}else if(t.downArrow){L(!1);return}else if(t.upArrow){N(`search`),L(!1);return}}if(G&&t.tab){let e=t.shift?-1:1;ze(t=>{let n=((t<K.length?t:0)+K.length+e)%K.length;return K[n],W.length,n});return}let n=!t.ctrl&&!t.meta,r=e.toLowerCase();r===`a`&&t.ctrl&&v?v():r===`b`&&t.ctrl?fe(!D):r===`w`&&t.ctrl&&k?he(!O):r===`/`&&n?N(`search`):r===`r`&&t.ctrl&&$?(N(`rename`),j(``)):r===`v`&&t.ctrl&&$?(Ne($),N(`preview`),$.messageCount):$&&n&&e.length>0&&!/^\s+$/.test(e)&&(N(`search`),He(e))}},{isActive:!0});let xt=[];D&&w&&xt.push(w),k&&!O&&xt.push(`current worktree`);let St=8+ +(xt.length>0&&M!==`search`)+it,Ct=Math.max(1,Math.floor((t-St-2)/3));return q.useEffect(()=>{if(!h)return;let e=Ct*2;De+e>=Z.length&&h(Ct*3)},[De,Ct,Z.length,h]),e.length===0?null:M===`preview`&&je&&S?(0,J.jsx)(Be,{log:je,onExit:()=>{N(`list`),Ne(null)},onSelect:f}):(0,J.jsxs)(o,{flexDirection:`column`,height:t-1,children:[(0,J.jsx)(o,{flexShrink:0,children:(0,J.jsx)(n,{color:`suggestion`})}),(0,J.jsx)(o,{flexShrink:0,children:(0,J.jsx)(s,{children:` `})}),G?(0,J.jsx)(Ue,{tabs:K,selectedIndex:Xe,availableWidth:b,showAllProjects:_}):(0,J.jsx)(o,{flexShrink:0,children:(0,J.jsxs)(s,{bold:!0,color:`suggestion`,children:[`Resume Session`,M===`list`&&Z.length>Ct&&(0,J.jsxs)(s,{dimColor:!0,children:[` `,`(`,De,` of `,Z.length,`)`]})]})}),(0,J.jsx)(ee,{query:R,isFocused:M===`search`,isTerminalFocused:se,cursorOffset:z}),xt.length>0&&M!==`search`&&(0,J.jsx)(o,{flexShrink:0,paddingLeft:2,children:(0,J.jsx)(s,{dimColor:!0,children:(0,J.jsx)(c,{children:xt})})}),(0,J.jsx)(o,{flexShrink:0,children:(0,J.jsx)(s,{children:` `})}),P.status===`searching`&&(0,J.jsxs)(o,{paddingLeft:1,flexShrink:0,children:[(0,J.jsx)(Pe,{}),(0,J.jsx)(s,{children:` Searching…`})]}),P.status===`results`&&P.results.length>0&&(0,J.jsx)(o,{paddingLeft:1,marginBottom:1,flexShrink:0,children:(0,J.jsx)(s,{dimColor:!0,italic:!0,children:`Work Mate found these results:`})}),P.status===`results`&&P.results.length===0&&Y.length===0&&(0,J.jsx)(o,{paddingLeft:1,marginBottom:1,flexShrink:0,children:(0,J.jsx)(s,{dimColor:!0,italic:!0,children:`No matching sessions found.`})}),P.status===`error`&&Y.length===0&&(0,J.jsx)(o,{paddingLeft:1,marginBottom:1,flexShrink:0,children:(0,J.jsx)(s,{dimColor:!0,italic:!0,children:`No matching sessions found.`})}),!!R.trim()&&y&&!1,P.status===`searching`?null:M===`rename`&&$?(0,J.jsxs)(o,{paddingLeft:2,flexDirection:`column`,children:[(0,J.jsx)(s,{bold:!0,children:`Rename session:`}),(0,J.jsx)(o,{paddingTop:1,children:(0,J.jsx)(Ae,{value:ve,onChange:j,onSubmit:mt,placeholder:ye($,`Enter new session name`),columns:b,cursorOffset:be,onChangeCursorOffset:xe,showCursor:!0})})]}):S?(0,J.jsx)(Ye,{nodes:dt,onSelect:e=>{f(e.value.log)},onFocus:bt,onCancel:d,focusNodeId:we?.id,visibleOptionCount:Ct,layout:`expanded`,isDisabled:M===`search`||I,hideIndexes:!1,isNodeExpanded:e=>{if(M===`search`||D)return!0;let t=typeof e==`string`&&e.startsWith(`group:`)?e.substring(6):null;return t?Se.has(t):!1},onExpand:e=>{let t=typeof e==`string`&&e.startsWith(`group:`)?e.substring(6):null;t&&Ce(e=>new Set(e).add(t))},onCollapse:e=>{let t=typeof e==`string`&&e.startsWith(`group:`)?e.substring(6):null;t&&Ce(e=>{let n=new Set(e);return n.delete(t),n})},onUpFromFirstItem:gt}):(0,J.jsx)(Me,{options:ft,onChange:e=>{let t=Z[parseInt(e,10)];t&&f(t)},visibleOptionCount:Ct,onCancel:d,onFocus:yt,defaultFocusValue:we?.id.toString(),layout:`expanded`,isDisabled:M===`search`||I,onUpFromFirstItem:gt}),(0,J.jsx)(o,{paddingLeft:2,children:x.pending?(0,J.jsxs)(s,{dimColor:!0,children:[`Press `,x.keyName,` again to exit`]}):M===`rename`?(0,J.jsx)(s,{dimColor:!0,children:(0,J.jsxs)(c,{children:[(0,J.jsx)(r,{shortcut:`Enter`,action:`save`}),(0,J.jsx)(E,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`})]})}):P.status===`searching`?(0,J.jsx)(s,{dimColor:!0,children:(0,J.jsxs)(c,{children:[(0,J.jsx)(s,{children:`Searching with Work Mate…`}),(0,J.jsx)(E,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`})]})}):I?(0,J.jsx)(s,{dimColor:!0,children:(0,J.jsxs)(c,{children:[(0,J.jsx)(r,{shortcut:`Enter`,action:`search`}),(0,J.jsx)(r,{shortcut:`↓`,action:`skip`}),(0,J.jsx)(E,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`})]})}):M===`search`?(0,J.jsx)(s,{dimColor:!0,children:(0,J.jsxs)(c,{children:[(0,J.jsx)(s,{children:`Type to Search`}),(0,J.jsx)(r,{shortcut:`Enter`,action:`select`}),(0,J.jsx)(E,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`clear`})]})}):(0,J.jsx)(s,{dimColor:!0,children:(0,J.jsxs)(c,{children:[v&&(0,J.jsx)(r,{shortcut:`Ctrl+A`,action:`show ${_?`current dir`:`all projects`}`}),w&&(0,J.jsx)(r,{shortcut:`Ctrl+B`,action:`toggle branch`}),k&&(0,J.jsx)(r,{shortcut:`Ctrl+W`,action:`show ${O?`current worktree`:`all worktrees`}`}),(0,J.jsx)(r,{shortcut:`Ctrl+V`,action:`preview`}),(0,J.jsx)(r,{shortcut:`Ctrl+R`,action:`rename`}),(0,J.jsx)(s,{children:`Type to search`}),(0,J.jsx)(E,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`}),pt()&&(0,J.jsx)(s,{children:pt()})]})})})]})}function it(e){if(e.type!==`user`&&e.type!==`assistant`)return``;let t=`message`in e?e.message?.content:void 0;return t?typeof t==`string`?t:Array.isArray(t)?t.map(e=>typeof e==`string`?e:`text`in e&&typeof e.text==`string`?e.text:``).filter(Boolean).join(` `):``:``}function at(e){let t=(e.messages.length<=Y?e.messages:[...e.messages.slice(0,X),...e.messages.slice(-1e3)]).map(it).filter(Boolean).join(` `),n=`${[e.customTitle,e.summary,e.firstPrompt,e.gitBranch,e.tag,e.prNumber?`PR #${e.prNumber}`:void 0,e.prRepository].filter(Boolean).join(` `)} ${t}`.trim();return n.length>Z?n.slice(0,Z):n}function ot(e){let t=new Map;for(let n of e){let e=T(n);if(e){let r=t.get(e);r?r.push(n):t.set(e,[n])}}return t.forEach(e=>e.sort((e,t)=>new Date(t.modified).getTime()-new Date(e.modified).getTime())),t}function st(e){let t=new Set;for(let n of e)n.tag&&t.add(n.tag);return Array.from(t).sort((e,t)=>e.localeCompare(t))}var q,J,ct,lt,Y,X,Z,ut,Q=e((()=>{p(),q=t(d(),1),b(),M(),ze(),fe(),g(),O(),Se(),we(),le(),y(),be(),he(),Ie(),w(),je(),Le(),Ve(),Ne(),G(),N(),Ze(),J=_(),ct=2,lt=4,Y=2e3,X=1e3,Z=5e4,ut=50}));function dt(e){if(e.type!==`user`&&e.type!==`assistant`)return``;let t=`message`in e?e.message?.content:void 0;return t?typeof t==`string`?t:Array.isArray(t)?t.map(e=>typeof e==`string`?e:`text`in e&&typeof e.text==`string`?e.text:``).filter(Boolean).join(` `):``:``}function ft(e){if(e.length===0)return``;let t=(e.length<=ht?e:[...e.slice(0,ht/2),...e.slice(-100/2)]).map(dt).filter(Boolean).join(` `).replace(/\s+/g,` `).trim();return t.length>mt?`${t.slice(0,mt)}…`:t}function $(e,t){return!!(ye(e).toLowerCase().includes(t)||e.customTitle?.toLowerCase().includes(t)||e.tag?.toLowerCase().includes(t)||e.gitBranch?.toLowerCase().includes(t)||e.summary?.toLowerCase().includes(t)||e.firstPrompt?.toLowerCase().includes(t)||e.messages&&e.messages.length>0&&ft(e.messages).toLowerCase().includes(t))}async function pt(e,t,n){if(!e.trim()||t.length===0)return[];let r=e.toLowerCase(),i=t.filter(e=>$(e,r)),a;if(i.length>=gt)a=i.slice(0,gt);else{let e=t.filter(e=>!$(e,r)),n=gt-i.length;a=[...i,...e.slice(0,n)]}A(`Agentic search: ${a.length}/${t.length} logs, query="${e}", matching: ${i.length}, with messages: ${re(a,e=>e.messages?.length>0)}`);let o=a.map(async e=>{if(C(e))try{return await x(e)}catch(t){return xe(t),e}return e}),s=await Promise.all(o);A(`Agentic search: loaded ${re(s,e=>e.messages?.length>0)}/${a.length} logs with transcripts`);let c=`Sessions:
2
2
  ${s.map((e,t)=>{let n=[`${t}:`],r=ye(e);if(n.push(r),e.customTitle&&e.customTitle!==r&&n.push(`[custom title: ${e.customTitle}]`),e.tag&&n.push(`[tag: ${e.tag}]`),e.gitBranch&&n.push(`[branch: ${e.gitBranch}]`),e.summary&&n.push(`- Summary: ${e.summary}`),e.firstPrompt&&e.firstPrompt!==`No prompt`&&n.push(`- First message: ${e.firstPrompt.slice(0,300)}`),e.messages&&e.messages.length>0){let t=ft(e.messages);t&&n.push(`- Transcript: ${t}`)}return n.join(` `)}).join(`
3
3
  `)}
4
4
 
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{t}from"./jsx-runtime-Bb4Xn-E0.js";var n,r;e((()=>{n=t(),r=async(e,t)=>{let{DiffDialog:r}=await import(`./DiffDialog-DSb46fzB.js`);return(0,n.jsx)(r,{messages:t.messages,onDone:e})}}))();export{r as call};
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{t}from"./jsx-runtime-Bb4Xn-E0.js";var n,r;e((()=>{n=t(),r=async(e,t)=>{let{DiffDialog:r}=await import(`./DiffDialog-DlzYbkSE.js`);return(0,n.jsx)(r,{messages:t.messages,onDone:e})}}))();export{r as call};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{t}from"./jsx-runtime-Bb4Xn-E0.js";import{n,t as r}from"./Doctor-Bysh947B.js";var i,a;e((()=>{n(),i=t(),a=(e,t,n)=>Promise.resolve((0,i.jsx)(r,{onDone:e}))}))();export{a as call};
@@ -1,4 +1,4 @@
1
- import{n as e,t}from"./defineProperty-C-QyHrDq.js";import{Gi as n,Hi as r,Ki as i,Pi as a,Qi as o,Tr as s,Xi as c,aa as l,ca as u,d,da as f,kr as p,la as m,m as h,na as g,sa as _,ta as v,vr as y}from"./settings-CA-5Px85.js";import{$n as b,Hn as x,Pt as S,Qn as ee,Tn as C,ot as te,q as ne}from"./state-CXY-q5gr.js";import{As as re,B as ie,Oc as ae,Pi as oe,Ql as se,Uv as ce,V as le,Zl as ue,i as de,ir as w,kc as fe,ki as pe,ks as me,o as he,qv as ge,vr as _e}from"./loadAgentsDir-DnHL_5cU.js";import{d as ve,n as ye}from"./config-Bjwat4P6.js";import{f as be,s as xe}from"./model-C9ANf1-R.js";import{_n as Se,vn as Ce}from"./prompt-DDlkyIzV.js";import{t as T}from"./conversationRecovery-BUqpxLl-.js";import{t as we}from"./QueryEngine-BQ5PSqKV.js";import{n as Te,r as Ee}from"./modelOptions-B4BWYms0.js";import{n as De,r as Oe}from"./managedEnv-B0mj-wgE.js";import{dirname as ke}from"node:path";import{randomUUID as E}from"node:crypto";import{Readable as Ae,Writable as je}from"node:stream";import{unlink as Me}from"node:fs/promises";import*as D from"node:path/posix";import{isAbsolute as Ne,resolve as Pe}from"node:path/posix";a();var O={authenticate:`authenticate`,document_did_change:`document/didChange`,document_did_close:`document/didClose`,document_did_focus:`document/didFocus`,document_did_open:`document/didOpen`,document_did_save:`document/didSave`,initialize:`initialize`,logout:`logout`,nes_accept:`nes/accept`,nes_close:`nes/close`,nes_reject:`nes/reject`,nes_start:`nes/start`,nes_suggest:`nes/suggest`,session_cancel:`session/cancel`,session_close:`session/close`,session_fork:`session/fork`,session_list:`session/list`,session_load:`session/load`,session_new:`session/new`,session_prompt:`session/prompt`,session_resume:`session/resume`,session_set_config_option:`session/set_config_option`,session_set_mode:`session/set_mode`,session_set_model:`session/set_model`},k={elicitation_complete:`elicitation/complete`,elicitation_create:`elicitation/create`,fs_read_text_file:`fs/read_text_file`,fs_write_text_file:`fs/write_text_file`,session_request_permission:`session/request_permission`,session_update:`session/update`,terminal_create:`terminal/create`,terminal_kill:`terminal/kill`,terminal_output:`terminal/output`,terminal_release:`terminal/release`,terminal_wait_for_exit:`terminal/wait_for_exit`},Fe=g({_meta:l(_(),m()).nullish(),terminal:i().optional().default(!1)}),Ie=g({_meta:l(_(),m()).nullish(),label:_().nullish(),name:_(),optional:i().optional().default(!1),secret:i().optional().default(!0)}),Le=g({_meta:l(_(),m()).nullish(),description:_().nullish(),id:_(),name:_()}),Re=g({_meta:l(_(),m()).nullish(),description:_().nullish(),id:_(),link:_().nullish(),name:_(),vars:n(Ie)}),ze=g({_meta:l(_(),m()).nullish(),args:n(_()).optional(),description:_().nullish(),env:l(_(),_()).optional(),id:_(),name:_()}),Be=u([Re.and(g({type:o(`env_var`)})),ze.and(g({type:o(`terminal`)})),Le]),Ve=g({_meta:l(_(),m()).nullish(),methodId:_()}),He=g({_meta:l(_(),m()).nullish()}),Ue=g({_meta:l(_(),m()).nullish(),blob:_(),mimeType:_().nullish(),uri:_()}),We=g({default:i().nullish(),description:_().nullish(),title:_().nullish()}),Ge=g({_meta:l(_(),m()).nullish()}),Ke=g({_meta:l(_(),m()).nullish()}),qe=g({amount:v(),currency:_()}),Je=g({_meta:l(_(),m()).nullish(),terminalId:_()}),Ye=g({_meta:l(_(),m()).nullish(),newText:_(),oldText:_().nullish(),path:_()}),Xe=u([_(),v(),v(),i(),n(_())]),Ze=c(u([g({content:l(_(),Xe).nullish()}).and(g({action:o(`accept`)})),g({action:o(`decline`)}),g({action:o(`cancel`)})]),g({_meta:l(_(),m()).nullish()})),Qe=g({_meta:l(_(),m()).nullish()}),$e=_(),et=g({_meta:l(_(),m()).nullish(),elicitationId:$e}),tt=o(`object`),nt=o(`string`),rt=g({_meta:l(_(),m()).nullish()}),it=g({_meta:l(_(),m()).nullish(),form:Qe.nullish(),url:rt.nullish()}),at=g({const:_(),title:_()}),ot=g({_meta:l(_(),m()).nullish(),name:_(),value:_()}),st=g({code:u([o(-32700),o(-32600),o(-32601),o(-32602),o(-32603),o(-32800),o(-32e3),o(-32002),o(-32042),v().int().min(-2147483648,{message:`Invalid value: Expected int32 to be >= -2147483648`}).max(2147483647,{message:`Invalid value: Expected int32 to be <= 2147483647`})]),data:m().optional(),message:_()}),ct=m(),lt=m(),ut=m(),dt=g({_meta:l(_(),m()).nullish(),readTextFile:i().optional().default(!1),writeTextFile:i().optional().default(!1)}),ft=g({_meta:l(_(),m()).nullish(),name:_(),value:_()}),pt=g({_meta:l(_(),m()).nullish(),name:_(),title:_().nullish(),version:_()}),mt=g({default:v().nullish(),description:_().nullish(),maximum:v().nullish(),minimum:v().nullish(),title:_().nullish()}),ht=g({_meta:l(_(),m()).nullish()}),gt=g({_meta:l(_(),m()).nullish(),additionalDirectories:n(_()).optional(),cursor:_().nullish(),cwd:_().nullish()}),_t=g({_meta:l(_(),m()).nullish()}),vt=g({_meta:l(_(),m()).nullish(),logout:_t.nullish()}),yt=g({_meta:l(_(),m()).nullish()}),bt=g({_meta:l(_(),m()).nullish()}),xt=g({_meta:l(_(),m()).nullish(),http:i().optional().default(!1),sse:i().optional().default(!1)}),St=g({_meta:l(_(),m()).nullish(),headers:n(ft),name:_(),url:_()}),Ct=g({_meta:l(_(),m()).nullish(),headers:n(ft),name:_(),url:_()}),wt=g({_meta:l(_(),m()).nullish(),args:n(_()),command:_(),env:n(ot),name:_()}),A=u([St.and(g({type:o(`http`)})),Ct.and(g({type:o(`sse`)})),wt]),j=_(),Tt=g({_meta:l(_(),m()).nullish(),description:_().nullish(),modelId:j,name:_()}),Et=u([o(`error`),o(`warning`),o(`information`),o(`hint`)]),Dt=g({_meta:l(_(),m()).nullish()}),Ot=g({_meta:l(_(),m()).nullish()}),kt=g({_meta:l(_(),m()).nullish()}),At=g({_meta:l(_(),m()).nullish()}),jt=g({_meta:l(_(),m()).nullish()}),Mt=g({_meta:l(_(),m()).nullish(),maxCount:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish()}),Nt=g({diff:_(),uri:_()}),Pt=g({endLine:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}),startLine:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}),text:_()}),Ft=g({_meta:l(_(),m()).nullish()}),It=g({_meta:l(_(),m()).nullish()}),Lt=g({languageId:_(),text:_(),uri:_()}),Rt=g({_meta:l(_(),m()).nullish(),maxCount:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish()}),zt=u([o(`rejected`),o(`ignored`),o(`replaced`),o(`cancelled`)]),Bt=g({excerpts:n(Pt),uri:_()}),Vt=g({_meta:l(_(),m()).nullish()}),Ht=g({_meta:l(_(),m()).nullish()}),Ut=g({name:_(),owner:_(),remoteUrl:_()}),Wt=g({_meta:l(_(),m()).nullish()}),Gt=g({_meta:l(_(),m()).nullish(),jump:Ft.nullish(),rename:Ht.nullish(),searchAndReplace:Wt.nullish()}),Kt=g({id:_(),isRegex:i().nullish(),replace:_(),search:_(),uri:_()}),qt=u([o(`automatic`),o(`diagnostic`),o(`manual`)]),Jt=g({_meta:l(_(),m()).nullish(),maxCount:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish()}),Yt=g({_meta:l(_(),m()).nullish(),diagnostics:Dt.nullish(),editHistory:Mt.nullish(),openFiles:It.nullish(),recentFiles:Rt.nullish(),relatedSnippets:Vt.nullish(),userActions:Jt.nullish()}),Xt=g({_meta:l(_(),m()).nullish(),additionalDirectories:n(_()).optional(),cwd:_(),mcpServers:n(A)}),Zt=g({default:v().nullish(),description:_().nullish(),maximum:v().nullish(),minimum:v().nullish(),title:_().nullish()}),Qt=_(),$t=u([o(`allow_once`),o(`allow_always`),o(`reject_once`),o(`reject_always`)]),en=g({_meta:l(_(),m()).nullish(),kind:$t,name:_(),optionId:Qt}),tn=u([o(`high`),o(`medium`),o(`low`)]),nn=u([o(`pending`),o(`in_progress`),o(`completed`)]),rn=g({_meta:l(_(),m()).nullish(),content:_(),priority:tn,status:nn}),an=g({_meta:l(_(),m()).nullish(),entries:n(rn)}),M=g({character:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}),line:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`})}),on=g({id:_(),position:M,uri:_()}),sn=g({id:_(),newName:_(),position:M,uri:_()}),cn=g({action:_(),position:M,timestampMs:v(),uri:_()}),ln=u([o(`utf-16`),o(`utf-32`),o(`utf-8`)]),un=g({_meta:l(_(),m()).nullish(),auth:Fe.optional().default({terminal:!1}),elicitation:it.nullish(),fs:dt.optional().default({readTextFile:!1,writeTextFile:!1}),nes:Gt.nullish(),positionEncodings:n(ln).optional(),terminal:i().optional().default(!1)}),dn=g({_meta:l(_(),m()).nullish(),audio:i().optional().default(!1),embeddedContext:i().optional().default(!1),image:i().optional().default(!1)}),fn=v().int().gte(0).lte(65535),pn=g({_meta:l(_(),m()).nullish(),clientCapabilities:un.optional().default({auth:{terminal:!1},fs:{readTextFile:!1,writeTextFile:!1},terminal:!1}),clientInfo:pt.nullish(),protocolVersion:fn}),N=g({end:M,start:M}),mn=g({message:_(),range:N,severity:Et,uri:_()}),hn=g({languageId:_(),lastFocusedMs:v().nullish(),uri:_(),visibleRange:N.nullish()}),gn=g({_meta:l(_(),m()).nullish(),diagnostics:n(mn).nullish(),editHistory:n(Nt).nullish(),openFiles:n(hn).nullish(),recentFiles:n(Lt).nullish(),relatedSnippets:n(Bt).nullish(),userActions:n(cn).nullish()}),_n=g({newText:_(),range:N}),vn=u([g({cursorPosition:M.nullish(),edits:n(_n),id:_(),uri:_()}).and(g({kind:o(`edit`)})),on.and(g({kind:o(`jump`)})),sn.and(g({kind:o(`rename`)})),Kt.and(g({kind:o(`searchAndReplace`)}))]),yn=g({_meta:l(_(),m()).nullish(),content:_()}),bn=g({_meta:l(_(),m()).nullish()}),P=u([v(),_()]).nullable();g({_meta:l(_(),m()).nullish(),requestId:P});var xn=g({requestId:P}),Sn=r([`assistant`,`user`]),F=g({_meta:l(_(),m()).nullish(),audience:n(Sn).nullish(),lastModified:_().nullish(),priority:v().nullish()}),Cn=g({_meta:l(_(),m()).nullish(),annotations:F.nullish(),data:_(),mimeType:_()}),wn=g({_meta:l(_(),m()).nullish(),annotations:F.nullish(),data:_(),mimeType:_(),uri:_().nullish()}),Tn=g({_meta:l(_(),m()).nullish(),annotations:F.nullish(),description:_().nullish(),mimeType:_().nullish(),name:_(),size:v().nullish(),title:_().nullish(),uri:_()}),En=g({_meta:l(_(),m()).nullish(),optionId:Qt}),Dn=u([g({outcome:o(`cancelled`)}),En.and(g({outcome:o(`selected`)}))]),On=g({_meta:l(_(),m()).nullish(),outcome:Dn}),kn=g({_meta:l(_(),m()).nullish()}),An=g({_meta:l(_(),m()).nullish()}),jn=g({currentValue:i()}),Mn=_(),Nn=_(),Pn=u([o(`mode`),o(`model`),o(`thought_level`),_()]),I=_(),Fn=g({_meta:l(_(),m()).nullish(),description:_().nullish(),name:_(),value:I}),In=g({_meta:l(_(),m()).nullish(),group:Mn,name:_(),options:n(Fn)}),L=c(u([g({currentValue:I,options:u([n(Fn),n(In)])}).and(g({type:o(`select`)})),jn.and(g({type:o(`boolean`)}))]),g({_meta:l(_(),m()).nullish(),category:Pn.nullish(),description:_().nullish(),id:Nn,name:_()})),Ln=g({_meta:l(_(),m()).nullish(),configOptions:n(L)}),Rn=g({_meta:l(_(),m()).nullish()}),R=_(),zn=g({_meta:l(_(),m()).nullish(),id:_(),sessionId:R}),Bn=g({_meta:l(_(),m()).nullish(),sessionId:R}),Vn=g({_meta:l(_(),m()).nullish(),sessionId:R}),Hn=g({_meta:l(_(),m()).nullish(),sessionId:R}),Un=g({_meta:l(_(),m()).nullish(),args:n(_()).optional(),command:_(),cwd:_().nullish(),env:n(ot).optional(),outputByteLimit:v().nullish(),sessionId:R}),Wn=g({_meta:l(_(),m()).nullish(),sessionId:R,uri:_()}),Gn=g({_meta:l(_(),m()).nullish(),position:M,sessionId:R,uri:_(),version:v(),visibleRange:N}),Kn=g({_meta:l(_(),m()).nullish(),languageId:_(),sessionId:R,text:_(),uri:_(),version:v()}),qn=g({_meta:l(_(),m()).nullish(),sessionId:R,uri:_()}),z=g({_meta:l(_(),m()).nullish(),additionalDirectories:n(_()).optional(),cwd:_(),mcpServers:n(A).optional(),sessionId:R}),Jn=g({_meta:l(_(),m()).nullish(),sessionId:R,terminalId:_()}),Yn=g({_meta:l(_(),m()).nullish(),additionalDirectories:n(_()).optional(),cwd:_(),mcpServers:n(A),sessionId:R}),Xn=g({_meta:l(_(),m()).nullish(),limit:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),line:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),path:_(),sessionId:R}),Zn=g({_meta:l(_(),m()).nullish(),id:_(),reason:zt.nullish(),sessionId:R}),Qn=g({_meta:l(_(),m()).nullish(),sessionId:R,terminalId:_()}),$n=g({_meta:l(_(),m()).nullish(),additionalDirectories:n(_()).optional(),cwd:_(),mcpServers:n(A).optional(),sessionId:R}),er=g({_meta:l(_(),m()).nullish(),additionalDirectories:n(_()).optional(),cwd:_(),sessionId:R,title:_().nullish(),updatedAt:_().nullish()}),tr=g({_meta:l(_(),m()).nullish(),nextCursor:_().nullish(),sessions:n(er)}),nr=g({_meta:l(_(),m()).nullish(),title:_().nullish(),updatedAt:_().nullish()}),rr=g({_meta:l(_(),m()).nullish()}),B=_(),ir=g({_meta:l(_(),m()).nullish(),currentModeId:B}),ar=g({_meta:l(_(),m()).nullish(),description:_().nullish(),id:B,name:_()}),V=g({_meta:l(_(),m()).nullish(),availableModes:n(ar),currentModeId:B}),H=g({_meta:l(_(),m()).nullish(),availableModels:n(Tt),currentModelId:j}),or=g({_meta:l(_(),m()).nullish(),configOptions:n(L).nullish(),models:H.nullish(),modes:V.nullish(),sessionId:R}),sr=g({_meta:l(_(),m()).nullish(),configOptions:n(L).nullish(),models:H.nullish(),modes:V.nullish()}),cr=g({_meta:l(_(),m()).nullish(),configOptions:n(L).nullish(),models:H.nullish(),modes:V.nullish(),sessionId:R}),lr=g({_meta:l(_(),m()).nullish(),configOptions:n(L).nullish(),models:H.nullish(),modes:V.nullish()}),ur=g({_meta:l(_(),m()).nullish()}),dr=g({_meta:l(_(),m()).nullish(),additionalDirectories:kn.nullish(),close:An.nullish(),fork:Rn.nullish(),list:rr.nullish(),resume:ur.nullish()}),fr=c(u([g({type:o(`boolean`),value:i()}),g({value:I})]),g({_meta:l(_(),m()).nullish(),configId:Nn,sessionId:R})),pr=g({_meta:l(_(),m()).nullish(),configOptions:n(L)}),mr=g({_meta:l(_(),m()).nullish(),modeId:B,sessionId:R}),hr=g({_meta:l(_(),m()).nullish()}),gr=g({_meta:l(_(),m()).nullish(),modelId:j,sessionId:R}),_r=g({_meta:l(_(),m()).nullish()}),vr=g({_meta:l(_(),m()).nullish(),sessionId:R}),yr=u([o(`end_turn`),o(`max_tokens`),o(`max_turn_requests`),o(`refusal`),o(`cancelled`)]),br=u([o(`email`),o(`uri`),o(`date`),o(`date-time`)]),xr=g({default:_().nullish(),description:_().nullish(),enum:n(_()).nullish(),format:br.nullish(),maxLength:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),minLength:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),oneOf:n(at).nullish(),pattern:_().nullish(),title:_().nullish()}),Sr=g({_meta:l(_(),m()).nullish(),context:gn.nullish(),position:M,selection:N.nullish(),sessionId:R,triggerKind:qt,uri:_(),version:v()}),Cr=g({_meta:l(_(),m()).nullish(),suggestions:n(vn)}),wr=g({_meta:l(_(),m()).nullish(),terminalId:_()}),Tr=g({_meta:l(_(),m()).nullish(),exitCode:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),signal:_().nullish()}),Er=g({_meta:l(_(),m()).nullish(),sessionId:R,terminalId:_()}),Dr=g({_meta:l(_(),m()).nullish(),exitStatus:Tr.nullish(),output:_(),truncated:i()}),Or=g({_meta:l(_(),m()).nullish(),annotations:F.nullish(),text:_()}),kr=g({range:N.nullish(),text:_()}),Ar=g({_meta:l(_(),m()).nullish(),contentChanges:n(kr),sessionId:R,uri:_(),version:v()});g({method:_(),params:u([Bn,Kn,Ar,Wn,qn,Gn,zn,Zn,ct]).nullish()});var jr=u([o(`full`),o(`incremental`)]),Mr=g({_meta:l(_(),m()).nullish(),syncKind:jr}),Nr=g({_meta:l(_(),m()).nullish(),didChange:Mr.nullish(),didClose:Ot.nullish(),didFocus:kt.nullish(),didOpen:At.nullish(),didSave:jt.nullish()}),Pr=g({_meta:l(_(),m()).nullish(),document:Nr.nullish()}),Fr=g({_meta:l(_(),m()).nullish(),context:Yt.nullish(),events:Pr.nullish()}),Ir=g({_meta:l(_(),m()).nullish(),auth:vt.optional().default({}),loadSession:i().optional().default(!1),mcpCapabilities:xt.optional().default({http:!1,sse:!1}),nes:Fr.nullish(),positionEncoding:ln.nullish(),promptCapabilities:dn.optional().default({audio:!1,embeddedContext:!1,image:!1}),sessionCapabilities:dr.optional().default({})}),Lr=g({_meta:l(_(),m()).nullish(),agentCapabilities:Ir.optional().default({auth:{},loadSession:!1,mcpCapabilities:{http:!1,sse:!1},promptCapabilities:{audio:!1,embeddedContext:!1,image:!1},sessionCapabilities:{}}),agentInfo:pt.nullish(),authMethods:n(Be).optional().default([]),protocolVersion:fn}),Rr=u([g({_meta:l(_(),m()).nullish(),mimeType:_().nullish(),text:_(),uri:_()}),Ue]),zr=g({_meta:l(_(),m()).nullish(),annotations:F.nullish(),resource:Rr}),U=u([Or.and(g({type:o(`text`)})),wn.and(g({type:o(`image`)})),Cn.and(g({type:o(`audio`)})),Tn.and(g({type:o(`resource_link`)})),zr.and(g({type:o(`resource`)}))]),Br=g({_meta:l(_(),m()).nullish(),content:U}),W=g({_meta:l(_(),m()).nullish(),content:U,messageId:_().nullish()}),Vr=g({_meta:l(_(),m()).nullish(),messageId:_().nullish(),prompt:n(U),sessionId:R}),Hr=g({anyOf:n(at)}),Ur=u([Br.and(g({type:o(`content`)})),Ye.and(g({type:o(`diff`)})),wr.and(g({type:o(`terminal`)}))]),G=_(),Wr=g({sessionId:R,toolCallId:G.nullish()}),Gr=c(u([Wr,xn]),g({elicitationId:$e,url:_().url()})),Kr=g({_meta:l(_(),m()).nullish(),line:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),path:_()}),qr=u([o(`pending`),o(`in_progress`),o(`completed`),o(`failed`)]),Jr=u([o(`read`),o(`edit`),o(`delete`),o(`move`),o(`search`),o(`execute`),o(`think`),o(`fetch`),o(`switch_mode`),o(`other`)]),Yr=g({_meta:l(_(),m()).nullish(),content:n(Ur).optional(),kind:Jr.optional(),locations:n(Kr).optional(),rawInput:m().optional(),rawOutput:m().optional(),status:qr.optional(),title:_(),toolCallId:G}),Xr=g({_meta:l(_(),m()).nullish(),content:n(Ur).nullish(),kind:Jr.nullish(),locations:n(Kr).nullish(),rawInput:m().optional(),rawOutput:m().optional(),status:qr.nullish(),title:_().nullish(),toolCallId:G}),Zr=g({_meta:l(_(),m()).nullish(),options:n(en),sessionId:R,toolCall:Xr}),Qr=g({_meta:l(_(),m()).nullish(),hint:_()}),$r=g({_meta:l(_(),m()).nullish(),description:_(),input:Qr.nullish(),name:_()}),ei=g({_meta:l(_(),m()).nullish(),availableCommands:n($r)}),ti=u([g({enum:n(_()),type:nt}),Hr]),ni=g({default:n(_()).nullish(),description:_().nullish(),items:ti,maxItems:v().nullish(),minItems:v().nullish(),title:_().nullish()}),ri=u([xr.and(g({type:o(`string`)})),Zt.and(g({type:o(`number`)})),mt.and(g({type:o(`integer`)})),We.and(g({type:o(`boolean`)})),ni.and(g({type:o(`array`)}))]),ii=g({description:_().nullish(),properties:l(_(),ri).optional().default({}),required:n(_()).nullish(),title:_().nullish(),type:tt.optional().default(`object`)}),ai=c(u([c(u([Wr,xn]),g({requestedSchema:ii})).and(g({mode:o(`form`)})),Gr.and(g({mode:o(`url`)}))]),g({_meta:l(_(),m()).nullish(),message:_()})),oi=g({cachedReadTokens:v().nullish(),cachedWriteTokens:v().nullish(),inputTokens:v(),outputTokens:v(),thoughtTokens:v().nullish(),totalTokens:v()});u([g({id:P,result:u([Lr,He,bt,cr,sr,tr,or,lr,Ke,hr,pr,g({_meta:l(_(),m()).nullish(),stopReason:yr,usage:oi.nullish(),userMessageId:_().nullish()}),_r,vr,Cr,Ge,ut])}),g({error:st,id:P})]);var si=g({_meta:l(_(),m()).nullish(),cost:qe.nullish(),size:v(),used:v()}),ci=u([W.and(g({sessionUpdate:o(`user_message_chunk`)})),W.and(g({sessionUpdate:o(`agent_message_chunk`)})),W.and(g({sessionUpdate:o(`agent_thought_chunk`)})),Yr.and(g({sessionUpdate:o(`tool_call`)})),Xr.and(g({sessionUpdate:o(`tool_call_update`)})),an.and(g({sessionUpdate:o(`plan`)})),ei.and(g({sessionUpdate:o(`available_commands_update`)})),ir.and(g({sessionUpdate:o(`current_mode_update`)})),Ln.and(g({sessionUpdate:o(`config_option_update`)})),nr.and(g({sessionUpdate:o(`session_info_update`)})),si.and(g({sessionUpdate:o(`usage_update`)}))]),li=g({_meta:l(_(),m()).nullish(),sessionId:R,update:ci});g({method:_(),params:u([li,et,ct]).nullish()});var ui=g({_meta:l(_(),m()).nullish(),sessionId:R,terminalId:_()}),di=g({_meta:l(_(),m()).nullish(),exitCode:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),signal:_().nullish()}),fi=g({name:_(),uri:_()}),pi=g({_meta:l(_(),m()).nullish(),repository:Ut.nullish(),workspaceFolders:n(fi).nullish(),workspaceUri:_().nullish()});g({id:P,method:_(),params:u([pn,Ve,yt,Xt,Yn,gt,z,$n,Hn,mr,fr,Vr,gr,pi,Sr,Vn,lt]).nullish()});var mi=g({_meta:l(_(),m()).nullish(),content:_(),path:_(),sessionId:R});g({id:P,method:_(),params:u([mi,Xn,Zr,Un,Er,Qn,ui,Jn,ai,lt]).nullish()}),u([g({id:P,result:u([g({_meta:l(_(),m()).nullish()}),yn,On,Je,Dr,bn,di,ht,Ze,ut])}),g({error:st,id:P})]),e();function hi(e,t){let n=new TextEncoder,r=new TextDecoder;return{readable:new ReadableStream({async start(e){let n=``,i=t.getReader();try{for(;;){let{value:t,done:a}=await i.read();if(a){n+=r.decode();break}if(!t)continue;n+=r.decode(t,{stream:!0});let o=n.split(`
1
+ import{n as e,t}from"./defineProperty-C-QyHrDq.js";import{Gi as n,Hi as r,Ki as i,Pi as a,Qi as o,Tr as s,Xi as c,aa as l,ca as u,d,da as f,kr as p,la as m,m as h,na as g,sa as _,ta as v,vr as y}from"./settings-CA-5Px85.js";import{$n as b,Hn as x,Pt as S,Qn as ee,Tn as C,ot as te,q as ne}from"./state-CXY-q5gr.js";import{As as re,B as ie,Oc as ae,Pi as oe,Ql as se,Uv as ce,V as le,Zl as ue,i as de,ir as w,kc as fe,ki as pe,ks as me,o as he,qv as ge,vr as _e}from"./loadAgentsDir-izAo6rpy.js";import{d as ve,n as ye}from"./config-CMtnYZR9.js";import{f as be,s as xe}from"./model-cu29eOoS.js";import{_n as Se,vn as Ce}from"./prompt-B4rM4cgp.js";import{t as T}from"./conversationRecovery-CM94gKCQ.js";import{t as we}from"./QueryEngine-D_X2cZgn.js";import{n as Te,r as Ee}from"./modelOptions-d5F1-LIh.js";import{n as De,r as Oe}from"./managedEnv-O3Xqe_lk.js";import{dirname as ke}from"node:path";import{randomUUID as E}from"node:crypto";import{Readable as Ae,Writable as je}from"node:stream";import{unlink as Me}from"node:fs/promises";import*as D from"node:path/posix";import{isAbsolute as Ne,resolve as Pe}from"node:path/posix";a();var O={authenticate:`authenticate`,document_did_change:`document/didChange`,document_did_close:`document/didClose`,document_did_focus:`document/didFocus`,document_did_open:`document/didOpen`,document_did_save:`document/didSave`,initialize:`initialize`,logout:`logout`,nes_accept:`nes/accept`,nes_close:`nes/close`,nes_reject:`nes/reject`,nes_start:`nes/start`,nes_suggest:`nes/suggest`,session_cancel:`session/cancel`,session_close:`session/close`,session_fork:`session/fork`,session_list:`session/list`,session_load:`session/load`,session_new:`session/new`,session_prompt:`session/prompt`,session_resume:`session/resume`,session_set_config_option:`session/set_config_option`,session_set_mode:`session/set_mode`,session_set_model:`session/set_model`},k={elicitation_complete:`elicitation/complete`,elicitation_create:`elicitation/create`,fs_read_text_file:`fs/read_text_file`,fs_write_text_file:`fs/write_text_file`,session_request_permission:`session/request_permission`,session_update:`session/update`,terminal_create:`terminal/create`,terminal_kill:`terminal/kill`,terminal_output:`terminal/output`,terminal_release:`terminal/release`,terminal_wait_for_exit:`terminal/wait_for_exit`},Fe=g({_meta:l(_(),m()).nullish(),terminal:i().optional().default(!1)}),Ie=g({_meta:l(_(),m()).nullish(),label:_().nullish(),name:_(),optional:i().optional().default(!1),secret:i().optional().default(!0)}),Le=g({_meta:l(_(),m()).nullish(),description:_().nullish(),id:_(),name:_()}),Re=g({_meta:l(_(),m()).nullish(),description:_().nullish(),id:_(),link:_().nullish(),name:_(),vars:n(Ie)}),ze=g({_meta:l(_(),m()).nullish(),args:n(_()).optional(),description:_().nullish(),env:l(_(),_()).optional(),id:_(),name:_()}),Be=u([Re.and(g({type:o(`env_var`)})),ze.and(g({type:o(`terminal`)})),Le]),Ve=g({_meta:l(_(),m()).nullish(),methodId:_()}),He=g({_meta:l(_(),m()).nullish()}),Ue=g({_meta:l(_(),m()).nullish(),blob:_(),mimeType:_().nullish(),uri:_()}),We=g({default:i().nullish(),description:_().nullish(),title:_().nullish()}),Ge=g({_meta:l(_(),m()).nullish()}),Ke=g({_meta:l(_(),m()).nullish()}),qe=g({amount:v(),currency:_()}),Je=g({_meta:l(_(),m()).nullish(),terminalId:_()}),Ye=g({_meta:l(_(),m()).nullish(),newText:_(),oldText:_().nullish(),path:_()}),Xe=u([_(),v(),v(),i(),n(_())]),Ze=c(u([g({content:l(_(),Xe).nullish()}).and(g({action:o(`accept`)})),g({action:o(`decline`)}),g({action:o(`cancel`)})]),g({_meta:l(_(),m()).nullish()})),Qe=g({_meta:l(_(),m()).nullish()}),$e=_(),et=g({_meta:l(_(),m()).nullish(),elicitationId:$e}),tt=o(`object`),nt=o(`string`),rt=g({_meta:l(_(),m()).nullish()}),it=g({_meta:l(_(),m()).nullish(),form:Qe.nullish(),url:rt.nullish()}),at=g({const:_(),title:_()}),ot=g({_meta:l(_(),m()).nullish(),name:_(),value:_()}),st=g({code:u([o(-32700),o(-32600),o(-32601),o(-32602),o(-32603),o(-32800),o(-32e3),o(-32002),o(-32042),v().int().min(-2147483648,{message:`Invalid value: Expected int32 to be >= -2147483648`}).max(2147483647,{message:`Invalid value: Expected int32 to be <= 2147483647`})]),data:m().optional(),message:_()}),ct=m(),lt=m(),ut=m(),dt=g({_meta:l(_(),m()).nullish(),readTextFile:i().optional().default(!1),writeTextFile:i().optional().default(!1)}),ft=g({_meta:l(_(),m()).nullish(),name:_(),value:_()}),pt=g({_meta:l(_(),m()).nullish(),name:_(),title:_().nullish(),version:_()}),mt=g({default:v().nullish(),description:_().nullish(),maximum:v().nullish(),minimum:v().nullish(),title:_().nullish()}),ht=g({_meta:l(_(),m()).nullish()}),gt=g({_meta:l(_(),m()).nullish(),additionalDirectories:n(_()).optional(),cursor:_().nullish(),cwd:_().nullish()}),_t=g({_meta:l(_(),m()).nullish()}),vt=g({_meta:l(_(),m()).nullish(),logout:_t.nullish()}),yt=g({_meta:l(_(),m()).nullish()}),bt=g({_meta:l(_(),m()).nullish()}),xt=g({_meta:l(_(),m()).nullish(),http:i().optional().default(!1),sse:i().optional().default(!1)}),St=g({_meta:l(_(),m()).nullish(),headers:n(ft),name:_(),url:_()}),Ct=g({_meta:l(_(),m()).nullish(),headers:n(ft),name:_(),url:_()}),wt=g({_meta:l(_(),m()).nullish(),args:n(_()),command:_(),env:n(ot),name:_()}),A=u([St.and(g({type:o(`http`)})),Ct.and(g({type:o(`sse`)})),wt]),j=_(),Tt=g({_meta:l(_(),m()).nullish(),description:_().nullish(),modelId:j,name:_()}),Et=u([o(`error`),o(`warning`),o(`information`),o(`hint`)]),Dt=g({_meta:l(_(),m()).nullish()}),Ot=g({_meta:l(_(),m()).nullish()}),kt=g({_meta:l(_(),m()).nullish()}),At=g({_meta:l(_(),m()).nullish()}),jt=g({_meta:l(_(),m()).nullish()}),Mt=g({_meta:l(_(),m()).nullish(),maxCount:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish()}),Nt=g({diff:_(),uri:_()}),Pt=g({endLine:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}),startLine:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}),text:_()}),Ft=g({_meta:l(_(),m()).nullish()}),It=g({_meta:l(_(),m()).nullish()}),Lt=g({languageId:_(),text:_(),uri:_()}),Rt=g({_meta:l(_(),m()).nullish(),maxCount:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish()}),zt=u([o(`rejected`),o(`ignored`),o(`replaced`),o(`cancelled`)]),Bt=g({excerpts:n(Pt),uri:_()}),Vt=g({_meta:l(_(),m()).nullish()}),Ht=g({_meta:l(_(),m()).nullish()}),Ut=g({name:_(),owner:_(),remoteUrl:_()}),Wt=g({_meta:l(_(),m()).nullish()}),Gt=g({_meta:l(_(),m()).nullish(),jump:Ft.nullish(),rename:Ht.nullish(),searchAndReplace:Wt.nullish()}),Kt=g({id:_(),isRegex:i().nullish(),replace:_(),search:_(),uri:_()}),qt=u([o(`automatic`),o(`diagnostic`),o(`manual`)]),Jt=g({_meta:l(_(),m()).nullish(),maxCount:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish()}),Yt=g({_meta:l(_(),m()).nullish(),diagnostics:Dt.nullish(),editHistory:Mt.nullish(),openFiles:It.nullish(),recentFiles:Rt.nullish(),relatedSnippets:Vt.nullish(),userActions:Jt.nullish()}),Xt=g({_meta:l(_(),m()).nullish(),additionalDirectories:n(_()).optional(),cwd:_(),mcpServers:n(A)}),Zt=g({default:v().nullish(),description:_().nullish(),maximum:v().nullish(),minimum:v().nullish(),title:_().nullish()}),Qt=_(),$t=u([o(`allow_once`),o(`allow_always`),o(`reject_once`),o(`reject_always`)]),en=g({_meta:l(_(),m()).nullish(),kind:$t,name:_(),optionId:Qt}),tn=u([o(`high`),o(`medium`),o(`low`)]),nn=u([o(`pending`),o(`in_progress`),o(`completed`)]),rn=g({_meta:l(_(),m()).nullish(),content:_(),priority:tn,status:nn}),an=g({_meta:l(_(),m()).nullish(),entries:n(rn)}),M=g({character:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}),line:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`})}),on=g({id:_(),position:M,uri:_()}),sn=g({id:_(),newName:_(),position:M,uri:_()}),cn=g({action:_(),position:M,timestampMs:v(),uri:_()}),ln=u([o(`utf-16`),o(`utf-32`),o(`utf-8`)]),un=g({_meta:l(_(),m()).nullish(),auth:Fe.optional().default({terminal:!1}),elicitation:it.nullish(),fs:dt.optional().default({readTextFile:!1,writeTextFile:!1}),nes:Gt.nullish(),positionEncodings:n(ln).optional(),terminal:i().optional().default(!1)}),dn=g({_meta:l(_(),m()).nullish(),audio:i().optional().default(!1),embeddedContext:i().optional().default(!1),image:i().optional().default(!1)}),fn=v().int().gte(0).lte(65535),pn=g({_meta:l(_(),m()).nullish(),clientCapabilities:un.optional().default({auth:{terminal:!1},fs:{readTextFile:!1,writeTextFile:!1},terminal:!1}),clientInfo:pt.nullish(),protocolVersion:fn}),N=g({end:M,start:M}),mn=g({message:_(),range:N,severity:Et,uri:_()}),hn=g({languageId:_(),lastFocusedMs:v().nullish(),uri:_(),visibleRange:N.nullish()}),gn=g({_meta:l(_(),m()).nullish(),diagnostics:n(mn).nullish(),editHistory:n(Nt).nullish(),openFiles:n(hn).nullish(),recentFiles:n(Lt).nullish(),relatedSnippets:n(Bt).nullish(),userActions:n(cn).nullish()}),_n=g({newText:_(),range:N}),vn=u([g({cursorPosition:M.nullish(),edits:n(_n),id:_(),uri:_()}).and(g({kind:o(`edit`)})),on.and(g({kind:o(`jump`)})),sn.and(g({kind:o(`rename`)})),Kt.and(g({kind:o(`searchAndReplace`)}))]),yn=g({_meta:l(_(),m()).nullish(),content:_()}),bn=g({_meta:l(_(),m()).nullish()}),P=u([v(),_()]).nullable();g({_meta:l(_(),m()).nullish(),requestId:P});var xn=g({requestId:P}),Sn=r([`assistant`,`user`]),F=g({_meta:l(_(),m()).nullish(),audience:n(Sn).nullish(),lastModified:_().nullish(),priority:v().nullish()}),Cn=g({_meta:l(_(),m()).nullish(),annotations:F.nullish(),data:_(),mimeType:_()}),wn=g({_meta:l(_(),m()).nullish(),annotations:F.nullish(),data:_(),mimeType:_(),uri:_().nullish()}),Tn=g({_meta:l(_(),m()).nullish(),annotations:F.nullish(),description:_().nullish(),mimeType:_().nullish(),name:_(),size:v().nullish(),title:_().nullish(),uri:_()}),En=g({_meta:l(_(),m()).nullish(),optionId:Qt}),Dn=u([g({outcome:o(`cancelled`)}),En.and(g({outcome:o(`selected`)}))]),On=g({_meta:l(_(),m()).nullish(),outcome:Dn}),kn=g({_meta:l(_(),m()).nullish()}),An=g({_meta:l(_(),m()).nullish()}),jn=g({currentValue:i()}),Mn=_(),Nn=_(),Pn=u([o(`mode`),o(`model`),o(`thought_level`),_()]),I=_(),Fn=g({_meta:l(_(),m()).nullish(),description:_().nullish(),name:_(),value:I}),In=g({_meta:l(_(),m()).nullish(),group:Mn,name:_(),options:n(Fn)}),L=c(u([g({currentValue:I,options:u([n(Fn),n(In)])}).and(g({type:o(`select`)})),jn.and(g({type:o(`boolean`)}))]),g({_meta:l(_(),m()).nullish(),category:Pn.nullish(),description:_().nullish(),id:Nn,name:_()})),Ln=g({_meta:l(_(),m()).nullish(),configOptions:n(L)}),Rn=g({_meta:l(_(),m()).nullish()}),R=_(),zn=g({_meta:l(_(),m()).nullish(),id:_(),sessionId:R}),Bn=g({_meta:l(_(),m()).nullish(),sessionId:R}),Vn=g({_meta:l(_(),m()).nullish(),sessionId:R}),Hn=g({_meta:l(_(),m()).nullish(),sessionId:R}),Un=g({_meta:l(_(),m()).nullish(),args:n(_()).optional(),command:_(),cwd:_().nullish(),env:n(ot).optional(),outputByteLimit:v().nullish(),sessionId:R}),Wn=g({_meta:l(_(),m()).nullish(),sessionId:R,uri:_()}),Gn=g({_meta:l(_(),m()).nullish(),position:M,sessionId:R,uri:_(),version:v(),visibleRange:N}),Kn=g({_meta:l(_(),m()).nullish(),languageId:_(),sessionId:R,text:_(),uri:_(),version:v()}),qn=g({_meta:l(_(),m()).nullish(),sessionId:R,uri:_()}),z=g({_meta:l(_(),m()).nullish(),additionalDirectories:n(_()).optional(),cwd:_(),mcpServers:n(A).optional(),sessionId:R}),Jn=g({_meta:l(_(),m()).nullish(),sessionId:R,terminalId:_()}),Yn=g({_meta:l(_(),m()).nullish(),additionalDirectories:n(_()).optional(),cwd:_(),mcpServers:n(A),sessionId:R}),Xn=g({_meta:l(_(),m()).nullish(),limit:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),line:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),path:_(),sessionId:R}),Zn=g({_meta:l(_(),m()).nullish(),id:_(),reason:zt.nullish(),sessionId:R}),Qn=g({_meta:l(_(),m()).nullish(),sessionId:R,terminalId:_()}),$n=g({_meta:l(_(),m()).nullish(),additionalDirectories:n(_()).optional(),cwd:_(),mcpServers:n(A).optional(),sessionId:R}),er=g({_meta:l(_(),m()).nullish(),additionalDirectories:n(_()).optional(),cwd:_(),sessionId:R,title:_().nullish(),updatedAt:_().nullish()}),tr=g({_meta:l(_(),m()).nullish(),nextCursor:_().nullish(),sessions:n(er)}),nr=g({_meta:l(_(),m()).nullish(),title:_().nullish(),updatedAt:_().nullish()}),rr=g({_meta:l(_(),m()).nullish()}),B=_(),ir=g({_meta:l(_(),m()).nullish(),currentModeId:B}),ar=g({_meta:l(_(),m()).nullish(),description:_().nullish(),id:B,name:_()}),V=g({_meta:l(_(),m()).nullish(),availableModes:n(ar),currentModeId:B}),H=g({_meta:l(_(),m()).nullish(),availableModels:n(Tt),currentModelId:j}),or=g({_meta:l(_(),m()).nullish(),configOptions:n(L).nullish(),models:H.nullish(),modes:V.nullish(),sessionId:R}),sr=g({_meta:l(_(),m()).nullish(),configOptions:n(L).nullish(),models:H.nullish(),modes:V.nullish()}),cr=g({_meta:l(_(),m()).nullish(),configOptions:n(L).nullish(),models:H.nullish(),modes:V.nullish(),sessionId:R}),lr=g({_meta:l(_(),m()).nullish(),configOptions:n(L).nullish(),models:H.nullish(),modes:V.nullish()}),ur=g({_meta:l(_(),m()).nullish()}),dr=g({_meta:l(_(),m()).nullish(),additionalDirectories:kn.nullish(),close:An.nullish(),fork:Rn.nullish(),list:rr.nullish(),resume:ur.nullish()}),fr=c(u([g({type:o(`boolean`),value:i()}),g({value:I})]),g({_meta:l(_(),m()).nullish(),configId:Nn,sessionId:R})),pr=g({_meta:l(_(),m()).nullish(),configOptions:n(L)}),mr=g({_meta:l(_(),m()).nullish(),modeId:B,sessionId:R}),hr=g({_meta:l(_(),m()).nullish()}),gr=g({_meta:l(_(),m()).nullish(),modelId:j,sessionId:R}),_r=g({_meta:l(_(),m()).nullish()}),vr=g({_meta:l(_(),m()).nullish(),sessionId:R}),yr=u([o(`end_turn`),o(`max_tokens`),o(`max_turn_requests`),o(`refusal`),o(`cancelled`)]),br=u([o(`email`),o(`uri`),o(`date`),o(`date-time`)]),xr=g({default:_().nullish(),description:_().nullish(),enum:n(_()).nullish(),format:br.nullish(),maxLength:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),minLength:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),oneOf:n(at).nullish(),pattern:_().nullish(),title:_().nullish()}),Sr=g({_meta:l(_(),m()).nullish(),context:gn.nullish(),position:M,selection:N.nullish(),sessionId:R,triggerKind:qt,uri:_(),version:v()}),Cr=g({_meta:l(_(),m()).nullish(),suggestions:n(vn)}),wr=g({_meta:l(_(),m()).nullish(),terminalId:_()}),Tr=g({_meta:l(_(),m()).nullish(),exitCode:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),signal:_().nullish()}),Er=g({_meta:l(_(),m()).nullish(),sessionId:R,terminalId:_()}),Dr=g({_meta:l(_(),m()).nullish(),exitStatus:Tr.nullish(),output:_(),truncated:i()}),Or=g({_meta:l(_(),m()).nullish(),annotations:F.nullish(),text:_()}),kr=g({range:N.nullish(),text:_()}),Ar=g({_meta:l(_(),m()).nullish(),contentChanges:n(kr),sessionId:R,uri:_(),version:v()});g({method:_(),params:u([Bn,Kn,Ar,Wn,qn,Gn,zn,Zn,ct]).nullish()});var jr=u([o(`full`),o(`incremental`)]),Mr=g({_meta:l(_(),m()).nullish(),syncKind:jr}),Nr=g({_meta:l(_(),m()).nullish(),didChange:Mr.nullish(),didClose:Ot.nullish(),didFocus:kt.nullish(),didOpen:At.nullish(),didSave:jt.nullish()}),Pr=g({_meta:l(_(),m()).nullish(),document:Nr.nullish()}),Fr=g({_meta:l(_(),m()).nullish(),context:Yt.nullish(),events:Pr.nullish()}),Ir=g({_meta:l(_(),m()).nullish(),auth:vt.optional().default({}),loadSession:i().optional().default(!1),mcpCapabilities:xt.optional().default({http:!1,sse:!1}),nes:Fr.nullish(),positionEncoding:ln.nullish(),promptCapabilities:dn.optional().default({audio:!1,embeddedContext:!1,image:!1}),sessionCapabilities:dr.optional().default({})}),Lr=g({_meta:l(_(),m()).nullish(),agentCapabilities:Ir.optional().default({auth:{},loadSession:!1,mcpCapabilities:{http:!1,sse:!1},promptCapabilities:{audio:!1,embeddedContext:!1,image:!1},sessionCapabilities:{}}),agentInfo:pt.nullish(),authMethods:n(Be).optional().default([]),protocolVersion:fn}),Rr=u([g({_meta:l(_(),m()).nullish(),mimeType:_().nullish(),text:_(),uri:_()}),Ue]),zr=g({_meta:l(_(),m()).nullish(),annotations:F.nullish(),resource:Rr}),U=u([Or.and(g({type:o(`text`)})),wn.and(g({type:o(`image`)})),Cn.and(g({type:o(`audio`)})),Tn.and(g({type:o(`resource_link`)})),zr.and(g({type:o(`resource`)}))]),Br=g({_meta:l(_(),m()).nullish(),content:U}),W=g({_meta:l(_(),m()).nullish(),content:U,messageId:_().nullish()}),Vr=g({_meta:l(_(),m()).nullish(),messageId:_().nullish(),prompt:n(U),sessionId:R}),Hr=g({anyOf:n(at)}),Ur=u([Br.and(g({type:o(`content`)})),Ye.and(g({type:o(`diff`)})),wr.and(g({type:o(`terminal`)}))]),G=_(),Wr=g({sessionId:R,toolCallId:G.nullish()}),Gr=c(u([Wr,xn]),g({elicitationId:$e,url:_().url()})),Kr=g({_meta:l(_(),m()).nullish(),line:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),path:_()}),qr=u([o(`pending`),o(`in_progress`),o(`completed`),o(`failed`)]),Jr=u([o(`read`),o(`edit`),o(`delete`),o(`move`),o(`search`),o(`execute`),o(`think`),o(`fetch`),o(`switch_mode`),o(`other`)]),Yr=g({_meta:l(_(),m()).nullish(),content:n(Ur).optional(),kind:Jr.optional(),locations:n(Kr).optional(),rawInput:m().optional(),rawOutput:m().optional(),status:qr.optional(),title:_(),toolCallId:G}),Xr=g({_meta:l(_(),m()).nullish(),content:n(Ur).nullish(),kind:Jr.nullish(),locations:n(Kr).nullish(),rawInput:m().optional(),rawOutput:m().optional(),status:qr.nullish(),title:_().nullish(),toolCallId:G}),Zr=g({_meta:l(_(),m()).nullish(),options:n(en),sessionId:R,toolCall:Xr}),Qr=g({_meta:l(_(),m()).nullish(),hint:_()}),$r=g({_meta:l(_(),m()).nullish(),description:_(),input:Qr.nullish(),name:_()}),ei=g({_meta:l(_(),m()).nullish(),availableCommands:n($r)}),ti=u([g({enum:n(_()),type:nt}),Hr]),ni=g({default:n(_()).nullish(),description:_().nullish(),items:ti,maxItems:v().nullish(),minItems:v().nullish(),title:_().nullish()}),ri=u([xr.and(g({type:o(`string`)})),Zt.and(g({type:o(`number`)})),mt.and(g({type:o(`integer`)})),We.and(g({type:o(`boolean`)})),ni.and(g({type:o(`array`)}))]),ii=g({description:_().nullish(),properties:l(_(),ri).optional().default({}),required:n(_()).nullish(),title:_().nullish(),type:tt.optional().default(`object`)}),ai=c(u([c(u([Wr,xn]),g({requestedSchema:ii})).and(g({mode:o(`form`)})),Gr.and(g({mode:o(`url`)}))]),g({_meta:l(_(),m()).nullish(),message:_()})),oi=g({cachedReadTokens:v().nullish(),cachedWriteTokens:v().nullish(),inputTokens:v(),outputTokens:v(),thoughtTokens:v().nullish(),totalTokens:v()});u([g({id:P,result:u([Lr,He,bt,cr,sr,tr,or,lr,Ke,hr,pr,g({_meta:l(_(),m()).nullish(),stopReason:yr,usage:oi.nullish(),userMessageId:_().nullish()}),_r,vr,Cr,Ge,ut])}),g({error:st,id:P})]);var si=g({_meta:l(_(),m()).nullish(),cost:qe.nullish(),size:v(),used:v()}),ci=u([W.and(g({sessionUpdate:o(`user_message_chunk`)})),W.and(g({sessionUpdate:o(`agent_message_chunk`)})),W.and(g({sessionUpdate:o(`agent_thought_chunk`)})),Yr.and(g({sessionUpdate:o(`tool_call`)})),Xr.and(g({sessionUpdate:o(`tool_call_update`)})),an.and(g({sessionUpdate:o(`plan`)})),ei.and(g({sessionUpdate:o(`available_commands_update`)})),ir.and(g({sessionUpdate:o(`current_mode_update`)})),Ln.and(g({sessionUpdate:o(`config_option_update`)})),nr.and(g({sessionUpdate:o(`session_info_update`)})),si.and(g({sessionUpdate:o(`usage_update`)}))]),li=g({_meta:l(_(),m()).nullish(),sessionId:R,update:ci});g({method:_(),params:u([li,et,ct]).nullish()});var ui=g({_meta:l(_(),m()).nullish(),sessionId:R,terminalId:_()}),di=g({_meta:l(_(),m()).nullish(),exitCode:v().int().gte(0).max(4294967295,{message:`Invalid value: Expected uint32 to be <= 4294967295`}).nullish(),signal:_().nullish()}),fi=g({name:_(),uri:_()}),pi=g({_meta:l(_(),m()).nullish(),repository:Ut.nullish(),workspaceFolders:n(fi).nullish(),workspaceUri:_().nullish()});g({id:P,method:_(),params:u([pn,Ve,yt,Xt,Yn,gt,z,$n,Hn,mr,fr,Vr,gr,pi,Sr,Vn,lt]).nullish()});var mi=g({_meta:l(_(),m()).nullish(),content:_(),path:_(),sessionId:R});g({id:P,method:_(),params:u([mi,Xn,Zr,Un,Er,Qn,ui,Jn,ai,lt]).nullish()}),u([g({id:P,result:u([g({_meta:l(_(),m()).nullish()}),yn,On,Je,Dr,bn,di,ht,Ze,ut])}),g({error:st,id:P})]),e();function hi(e,t){let n=new TextEncoder,r=new TextDecoder;return{readable:new ReadableStream({async start(e){let n=``,i=t.getReader();try{for(;;){let{value:t,done:a}=await i.read();if(a){n+=r.decode();break}if(!t)continue;n+=r.decode(t,{stream:!0});let o=n.split(`
2
2
  `);n=o.pop()||``;for(let t of o){let n=t.trim();if(n)try{let t=JSON.parse(n);e.enqueue(t)}catch(e){console.error(`Failed to parse JSON message:`,n,e)}}}let t=n.trim();if(t)try{let n=JSON.parse(t);e.enqueue(n)}catch(e){console.error(`Failed to parse JSON message:`,t,e)}}catch(t){e.error(t);return}finally{i.releaseLock()}e.close()}}),writable:new WritableStream({async write(t){let r=JSON.stringify(t)+`
3
3
  `,i=e.getWriter();try{await i.write(n.encode(r))}finally{i.releaseLock()}}})}}a();var gi,_i=class{constructor(e,n){t(this,`connection`,void 0);let r=e(this),i=async(e,t)=>{switch(e){case O.initialize:{let e=pn.parse(t);return r.initialize(e)}case O.session_new:{let e=Xt.parse(t);return r.newSession(e)}case O.session_load:{if(!r.loadSession)throw K.methodNotFound(e);let n=Yn.parse(t);return r.loadSession(n)}case O.session_list:{if(!r.listSessions)throw K.methodNotFound(e);let n=gt.parse(t);return r.listSessions(n)}case O.session_fork:{if(!r.unstable_forkSession)throw K.methodNotFound(e);let n=z.parse(t);return r.unstable_forkSession(n)}case O.session_resume:{if(!r.unstable_resumeSession)throw K.methodNotFound(e);let n=$n.parse(t);return r.unstable_resumeSession(n)}case O.session_close:{if(!r.unstable_closeSession)throw K.methodNotFound(e);let n=Hn.parse(t);return r.unstable_closeSession(n)}case O.session_set_mode:{if(!r.setSessionMode)throw K.methodNotFound(e);let n=mr.parse(t);return await r.setSessionMode(n)??{}}case O.authenticate:{let e=Ve.parse(t);return await r.authenticate(e)??{}}case O.logout:{if(!r.unstable_logout)throw K.methodNotFound(e);let n=yt.parse(t);return await r.unstable_logout(n)??{}}case O.session_prompt:{let e=Vr.parse(t);return r.prompt(e)}case O.session_set_model:{if(!r.unstable_setSessionModel)throw K.methodNotFound(e);let n=gr.parse(t);return await r.unstable_setSessionModel(n)??{}}case O.session_set_config_option:{if(!r.setSessionConfigOption)throw K.methodNotFound(e);let n=fr.parse(t);return r.setSessionConfigOption(n)}case O.nes_start:{if(!r.unstable_startNes)throw K.methodNotFound(e);let n=pi.parse(t);return r.unstable_startNes(n)}case O.nes_suggest:{if(!r.unstable_suggestNes)throw K.methodNotFound(e);let n=Sr.parse(t);return r.unstable_suggestNes(n)}case O.nes_close:{if(!r.unstable_closeNes)throw K.methodNotFound(e);let n=Vn.parse(t);return await r.unstable_closeNes(n)??{}}default:if(r.extMethod)return r.extMethod(e,t);throw K.methodNotFound(e)}},a=async(e,t)=>{switch(e){case O.session_cancel:{let e=Bn.parse(t);return r.cancel(e)}case O.document_did_open:{if(!r.unstable_didOpenDocument)return;let e=Kn.parse(t);return r.unstable_didOpenDocument(e)}case O.document_did_change:{if(!r.unstable_didChangeDocument)return;let e=Ar.parse(t);return r.unstable_didChangeDocument(e)}case O.document_did_close:{if(!r.unstable_didCloseDocument)return;let e=Wn.parse(t);return r.unstable_didCloseDocument(e)}case O.document_did_save:{if(!r.unstable_didSaveDocument)return;let e=qn.parse(t);return r.unstable_didSaveDocument(e)}case O.document_did_focus:{if(!r.unstable_didFocusDocument)return;let e=Gn.parse(t);return r.unstable_didFocusDocument(e)}case O.nes_accept:{if(!r.unstable_acceptNes)return;let e=zn.parse(t);return r.unstable_acceptNes(e)}case O.nes_reject:{if(!r.unstable_rejectNes)return;let e=Zn.parse(t);return r.unstable_rejectNes(e)}default:if(r.extNotification)return r.extNotification(e,t);throw K.methodNotFound(e)}};this.connection=new yi(i,a,n)}async sessionUpdate(e){return await this.connection.sendNotification(k.session_update,e)}async requestPermission(e){return await this.connection.sendRequest(k.session_request_permission,e)}async readTextFile(e){return await this.connection.sendRequest(k.fs_read_text_file,e)}async writeTextFile(e){return await this.connection.sendRequest(k.fs_write_text_file,e)??{}}async createTerminal(e){return new vi((await this.connection.sendRequest(k.terminal_create,e)).terminalId,e.sessionId,this.connection)}async unstable_createElicitation(e){return await this.connection.sendRequest(k.elicitation_create,e)}async unstable_completeElicitation(e){return await this.connection.sendNotification(k.elicitation_complete,e)}async extMethod(e,t){return await this.connection.sendRequest(e,t)}async extNotification(e,t){return await this.connection.sendNotification(e,t)}get signal(){return this.connection.signal}get closed(){return this.connection.closed}};gi=Symbol.asyncDispose;var vi=class{constructor(e,n,r){t(this,`id`,void 0),t(this,`sessionId`,void 0),t(this,`connection`,void 0),this.id=e,this.sessionId=n,this.connection=r}async currentOutput(){return await this.connection.sendRequest(k.terminal_output,{sessionId:this.sessionId,terminalId:this.id})}async waitForExit(){return await this.connection.sendRequest(k.terminal_wait_for_exit,{sessionId:this.sessionId,terminalId:this.id})}async kill(){return await this.connection.sendRequest(k.terminal_kill,{sessionId:this.sessionId,terminalId:this.id})??{}}async release(){return await this.connection.sendRequest(k.terminal_release,{sessionId:this.sessionId,terminalId:this.id})??{}}async[gi](){await this.release()}},yi=class{constructor(e,n,r){t(this,`pendingResponses`,new Map),t(this,`nextRequestId`,0),t(this,`requestHandler`,void 0),t(this,`notificationHandler`,void 0),t(this,`stream`,void 0),t(this,`writeQueue`,Promise.resolve()),t(this,`abortController`,new AbortController),t(this,`closedPromise`,void 0),this.requestHandler=e,this.notificationHandler=n,this.stream=r,this.closedPromise=new Promise(e=>{this.abortController.signal.addEventListener(`abort`,()=>e())}),this.receive()}get signal(){return this.abortController.signal}get closed(){return this.closedPromise}async receive(){let e;try{let e=this.stream.readable.getReader();try{for(;!this.abortController.signal.aborted;){let{value:t,done:n}=await e.read();if(n)break;if(t)try{this.processMessage(t)}catch(e){console.error(`Unexpected error during message processing:`,t,e),`id`in t&&t.id!==void 0&&this.sendMessage({jsonrpc:`2.0`,id:t.id,error:{code:-32700,message:`Parse error`}})}}}finally{e.releaseLock()}}catch(t){e=t}finally{this.close(e)}}close(e){if(this.abortController.signal.aborted)return;let t=e??Error(`ACP connection closed`);for(let e of this.pendingResponses.values())e.reject(t);this.pendingResponses.clear(),this.abortController.abort(t)}async processMessage(e){if(`method`in e&&`id`in e){let t=await this.tryCallRequestHandler(e.method,e.params);`error`in t&&console.error(`Error handling request`,e,t.error),await this.sendMessage({jsonrpc:`2.0`,id:e.id,...t})}else if(`method`in e){let t=await this.tryCallNotificationHandler(e.method,e.params);`error`in t&&console.error(`Error handling notification`,e,t.error)}else`id`in e?this.handleResponse(e):console.error(`Invalid message`,{message:e})}async tryCallRequestHandler(e,t){try{return{result:await this.requestHandler(e,t)??null}}catch(e){if(e instanceof K)return e.toResult();if(e instanceof f)return K.invalidParams(e.format()).toResult();let t;(e instanceof Error||typeof e==`object`&&e&&`message`in e&&typeof e.message==`string`)&&(t=e.message);try{return K.internalError(t?JSON.parse(t):{}).toResult()}catch{return K.internalError({details:t}).toResult()}}}async tryCallNotificationHandler(e,t){try{return await this.notificationHandler(e,t),{result:null}}catch(e){if(e instanceof K)return e.toResult();if(e instanceof f)return K.invalidParams(e.format()).toResult();let t;(e instanceof Error||typeof e==`object`&&e&&`message`in e&&typeof e.message==`string`)&&(t=e.message);try{return K.internalError(t?JSON.parse(t):{}).toResult()}catch{return K.internalError({details:t}).toResult()}}}handleResponse(e){let t=this.pendingResponses.get(e.id);if(t){if(`result`in e)t.resolve(e.result);else if(`error`in e){let{code:n,message:r,data:i}=e.error;t.reject(new K(n,r,i))}this.pendingResponses.delete(e.id)}else console.error(`Got response to unknown request`,e.id)}sendRequest(e,t){this.throwIfClosed();let n=this.nextRequestId++,r=new Promise((e,t)=>{this.pendingResponses.set(n,{resolve:e,reject:t})});return r.catch(()=>{}),this.sendMessage({jsonrpc:`2.0`,id:n,method:e,params:t}),r}async sendNotification(e,t){this.throwIfClosed(),await this.sendMessage({jsonrpc:`2.0`,method:e,params:t})}throwIfClosed(){if(this.abortController.signal.aborted)throw this.abortController.signal.reason??Error(`ACP connection closed`)}async sendMessage(e){return this.writeQueue=this.writeQueue.then(async()=>{let t=this.stream.writable.getWriter();try{await t.write(e)}finally{t.releaseLock()}}).catch(e=>{this.close(e)}),this.writeQueue}},K=class e extends Error{constructor(e,n,r){super(n),t(this,`code`,void 0),t(this,`data`,void 0),this.code=e,this.name=`RequestError`,this.data=r}static parseError(t,n){return new e(-32700,`Parse error${n?`: ${n}`:``}`,t)}static invalidRequest(t,n){return new e(-32600,`Invalid request${n?`: ${n}`:``}`,t)}static methodNotFound(t){return new e(-32601,`"Method not found": ${t}`,{method:t})}static invalidParams(t,n){return new e(-32602,`Invalid params${n?`: ${n}`:``}`,t)}static internalError(t,n){return new e(-32603,`Internal error${n?`: ${n}`:``}`,t)}static authRequired(t,n){return new e(-32e3,`Authentication required${n?`: ${n}`:``}`,t)}static resourceNotFound(t){return new e(-32002,`Resource not found${t?`: ${t}`:``}`,t&&{uri:t})}toResult(){return{error:{code:this.code,message:this.message,data:this.data}}}toErrorResponse(){return{code:this.code,message:this.message,data:this.data}}};ee(),S(),h(),Ce(),ve(),ge(),fe(),re(),oe(),le(),he(),Oe();function q(e,t){if(e)return t?Ne(e)?e:Pe(t,e):e}var bi=!(typeof process.geteuid==`function`?process.geteuid()===0:typeof process.getuid==`function`&&process.getuid()===0)||!!process.env.IS_SANDBOX,xi={auto:`auto`,default:`default`,acceptedits:`acceptEdits`,dontask:`dontAsk`,plan:`plan`,bypasspermissions:`bypassPermissions`,bypass:`bypassPermissions`};function Si(e,t=`permissions.defaultMode`){if(e===void 0)return`default`;if(typeof e!=`string`)throw Error(`Invalid ${t}: expected a string.`);let n=e.trim().toLowerCase();if(n===``)throw Error(`Invalid ${t}: expected a non-empty string.`);let r=xi[n];if(!r)throw Error(`Invalid ${t}: ${e}.`);if(r===`bypassPermissions`&&!bi)throw Error(`Invalid ${t}: bypassPermissions is not available when running as root.`);return r}function Ci(e){let t=[...e.mcpServers??[]].sort((e,t)=>e.name.localeCompare(t.name));return JSON.stringify({cwd:e.cwd,mcpServers:t})}var wi=256;function Ti(e){let t=e.replace(/[\r\n]+/g,` `).replace(/\s+/g,` `).trim();return t.length<=wi?t:`${t.slice(0,wi-1)}…`}function J(e,t){if(!t)return e;let n=D.resolve(t),r=D.resolve(e);return r.startsWith(n+D.sep)||r===n?D.relative(n,r):e}function Ei(e){let t="```";for(let n of e.matchAll(/^```+/gm)??[])for(;n[0].length>=t.length;)t+="`";return`${t}\n${e}${e.endsWith(`
4
4
  `)?``:`
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{t}from"./jsx-runtime-Bb4Xn-E0.js";import{$s as n,Qs as r,gC as i,gi as a,hC as o,vi as s,wt as c,xt as l}from"./loadAgentsDir-DnHL_5cU.js";import{n as u,t as d}from"./ExitFlow-BiBi5Sqk.js";import{spawnSync as f}from"child_process";function p(){return i(g)??`Goodbye!`}async function m(e){if(n())return e(),f(`tmux`,[`detach-client`],{stdio:`ignore`}),null;let t=l()!==null;return t?(0,h.jsx)(d,{showWorktree:t,onDone:e,onCancel:()=>e()}):(e(p()),await a(0,`prompt_input_exit`),null)}var h,g;e((()=>{o(),u(),r(),s(),c(),h=t(),g=[`Goodbye!`,`See ya!`,`Bye!`,`Catch you later!`]}))();export{m as call};
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{t}from"./jsx-runtime-Bb4Xn-E0.js";import{$s as n,Qs as r,gC as i,gi as a,hC as o,vi as s,wt as c,xt as l}from"./loadAgentsDir-izAo6rpy.js";import{n as u,t as d}from"./ExitFlow-DdgKWYBy.js";import{spawnSync as f}from"child_process";function p(){return i(g)??`Goodbye!`}async function m(e){if(n())return e(),f(`tmux`,[`detach-client`],{stdio:`ignore`}),null;let t=l()!==null;return t?(0,h.jsx)(d,{showWorktree:t,onDone:e,onCancel:()=>e()}):(e(p()),await a(0,`prompt_input_exit`),null)}var h,g;e((()=>{o(),u(),r(),s(),c(),h=t(),g=[`Goodbye!`,`See ya!`,`Bye!`,`Catch you later!`]}))();export{m as call};