@readmagic/workmate 0.0.31 → 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 (199) hide show
  1. package/dist/chunks/{AddWorkspaceDirectory-C07tZJZN.js → AddWorkspaceDirectory-vexJPqPV.js} +1 -1
  2. package/dist/chunks/AgentsMdExternalIncludesDialog-C1YY3Zjr.js +1 -0
  3. package/dist/chunks/{AgentsMdExternalIncludesDialog-6_bT7l-8.js → AgentsMdExternalIncludesDialog-DgfH_qbT.js} +1 -1
  4. package/dist/chunks/{App--Nvun0sE.js → App-Dc1bPgMO.js} +1 -1
  5. package/dist/chunks/{BackgroundTasksDialog-DTWNv4Gc.js → BackgroundTasksDialog-By1aAUjA.js} +1 -1
  6. package/dist/chunks/{BypassPermissionsModeDialog-CJ6U9Vb2.js → BypassPermissionsModeDialog-BfT29YcX.js} +1 -1
  7. package/dist/chunks/{CustomSelect-uOjgHk8D.js → CustomSelect-C1eyA6Kb.js} +1 -1
  8. package/dist/chunks/{DiffDialog-CTFLCtYp.js → DiffDialog-DlzYbkSE.js} +1 -1
  9. package/dist/chunks/Doctor-BTo-aW25.js +1 -0
  10. package/dist/chunks/{Doctor-CgZxiFf3.js → Doctor-Bysh947B.js} +1 -1
  11. package/dist/chunks/{ExitFlow-DGqwlF8J.js → ExitFlow-DdgKWYBy.js} +1 -1
  12. package/dist/chunks/{InvalidConfigDialog-8ZJmSDBO.js → InvalidConfigDialog-B5hyg2fw.js} +1 -1
  13. package/dist/chunks/{InvalidSettingsDialog-B7czkYPj.js → InvalidSettingsDialog-NORkKmDs.js} +1 -1
  14. package/dist/chunks/{KeybindingProviderSetup-C8rq4fwQ.js → KeybindingProviderSetup-Dfo4pevM.js} +1 -1
  15. package/dist/chunks/{MCPConnectionManager-DbPzbRdc.js → MCPConnectionManager-DTNuL42C.js} +1 -1
  16. package/dist/chunks/{MCPToolListView-BsO2uWCL.js → MCPToolListView-CmyNoMRA.js} +1 -1
  17. package/dist/chunks/{McpParsingWarnings-BIpQ_Dle.js → McpParsingWarnings-F5n38r1V.js} +1 -1
  18. package/dist/chunks/{MessageSelector-DuCpdn-Q.js → MessageSelector-CB3shj7u.js} +1 -1
  19. package/dist/chunks/{Messages-SKlSLbVo.js → Messages-DHOApZZj.js} +1 -1
  20. package/dist/chunks/{Onboarding-CLEqdl35.js → Onboarding-LjlAtPO-.js} +1 -1
  21. package/dist/chunks/{PromptInputFooterSuggestions-cu1KF4_b.js → PromptInputFooterSuggestions-ChS18ulx.js} +1 -1
  22. package/dist/chunks/{PromptInputHelpMenu-MH_gVGmN.js → PromptInputHelpMenu-BG4Xvwlp.js} +1 -1
  23. package/dist/chunks/{ProviderSetup-zjQQUmDr.js → ProviderSetup-ebTTSOUN.js} +1 -1
  24. package/dist/chunks/{QueryEngine-Cb2ncWE6.js → QueryEngine-D_X2cZgn.js} +1 -1
  25. package/dist/chunks/REPL-BmB39a3K.js +1 -0
  26. package/dist/chunks/{REPL-CWbLkb3q.js → REPL-CJAN4D4C.js} +4 -4
  27. package/dist/chunks/{ResumeConversation-DRcIMHTE.js → ResumeConversation-Vsc6MgfT.js} +1 -1
  28. package/dist/chunks/SearchExtraToolsTool-DxijDdxt.js +1 -0
  29. package/dist/chunks/{Settings-B-EscJrZ.js → Settings-Bx9sAK4z.js} +2 -2
  30. package/dist/chunks/{Spinner-ByYcKk2V.js → Spinner-bYnSD54K.js} +1 -1
  31. package/dist/chunks/{TextInput-eYxBj_1-.js → TextInput-DJaXm3Y2.js} +1 -1
  32. package/dist/chunks/{ThemePicker-BqeGU99Q.js → ThemePicker-DTRkcYKg.js} +1 -1
  33. package/dist/chunks/{TrustDialog-DYZ0i7rH.js → TrustDialog-CCLPfwKL.js} +1 -1
  34. package/dist/chunks/{_baseEach-BQ2jM5Sg.js → _baseEach-CVpc553F.js} +1 -1
  35. package/dist/chunks/{add-dir-3q2C-Kfj.js → add-dir-CC99_pE2.js} +1 -1
  36. package/dist/chunks/{agentDisplay-C18dbK7V.js → agentDisplay-CouNgts6.js} +1 -1
  37. package/dist/chunks/{agents--BKL-glS.js → agents-B0CpBZFY.js} +1 -1
  38. package/dist/chunks/{agents-B_Ik_9lY.js → agents-ByQvpZ-y.js} +1 -1
  39. package/dist/chunks/{allErrors-CJOE7EGx.js → allErrors-BlYbbyyw.js} +1 -1
  40. package/dist/chunks/{backgroundHousekeeping-FPn2H48W.js → backgroundHousekeeping-C86ALKjw.js} +1 -1
  41. package/dist/chunks/backgroundHousekeeping-FTpq_e19.js +1 -0
  42. package/dist/chunks/{branch-7SdIl7ZG.js → branch-BQ_M1T0j.js} +1 -1
  43. package/dist/chunks/{btw-BhVWw00h.js → btw-y1tuqCvG.js} +1 -1
  44. package/dist/chunks/caches-CO82GKDD.js +1 -0
  45. package/dist/chunks/{caches-DaOhyHsb.js → caches-CcK6hjFh.js} +1 -1
  46. package/dist/chunks/{channel-BNS35qVl.js → channel-BocoQ6RM.js} +1 -1
  47. package/dist/chunks/{channel-DWDK9jut.js → channel-D0MXuZ5p.js} +1 -1
  48. package/dist/chunks/{clear-B5WkPxlz.js → clear-Dh0ZUTyq.js} +1 -1
  49. package/dist/chunks/commands-CqI8Xw3J.js +1 -0
  50. package/dist/chunks/{compact-DriVPdmX.js → compact-Drhb6hKF.js} +1 -1
  51. package/dist/chunks/config-DFScnxW_.js +1 -0
  52. package/dist/chunks/{context-CXi66Ghx.js → context-BsbQnZOh.js} +1 -1
  53. package/dist/chunks/context-noninteractive-4Vn-NMDi.js +1 -0
  54. package/dist/chunks/{context-noninteractive-BRoUkLxt.js → context-noninteractive-BmjENE43.js} +1 -1
  55. package/dist/chunks/conversation-CSnPSTPX.js +1 -0
  56. package/dist/chunks/{conversation-DrEE7olO.js → conversation-CxvOL7c4.js} +1 -1
  57. package/dist/chunks/{conversationRecovery-CZzxsT_R.js → conversationRecovery-CM94gKCQ.js} +1 -1
  58. package/dist/chunks/{crossProjectResume-CbXDWdHE.js → crossProjectResume-Cq1oZ0F6.js} +1 -1
  59. package/dist/chunks/{diff-CH8kHqwX.js → diff-DHn2Qup2.js} +1 -1
  60. package/dist/chunks/doctor-DmJqkQqg.js +1 -0
  61. package/dist/chunks/{entry-CyH0Rkjq.js → entry-tt6FI8GT.js} +1 -1
  62. package/dist/chunks/{exit-zYpIKg68.js → exit-Q-xc8GEs.js} +1 -1
  63. package/dist/chunks/{extraUsage-Dp_LtcKE.js → extraUsage-CnQUVxGf.js} +1 -1
  64. package/dist/chunks/extractMemories-DOfFiInm.js +1 -0
  65. package/dist/chunks/{fast-DnP_x58e.js → fast-BeKnNZaH.js} +1 -1
  66. package/dist/chunks/fast-ClJARykP.js +1 -0
  67. package/dist/chunks/{fetchModelList-BctZn47N.js → fetchModelList-531U79it.js} +1 -1
  68. package/dist/chunks/fetchModelList-6pNEKem5.js +1 -0
  69. package/dist/chunks/{fileSuggestions-CoYWpIJB.js → fileSuggestions-sTa3fiI8.js} +1 -1
  70. package/dist/chunks/{gemini-CyZAw1Wg.js → gemini-BzN-GtAf.js} +1 -1
  71. package/dist/chunks/{generateSessionName-CJ13ZLWG.js → generateSessionName-DGzU61fU.js} +1 -1
  72. package/dist/chunks/{goal-CiuF90SO.js → goal-DOF3kWop.js} +1 -1
  73. package/dist/chunks/{grok-B4R78Wy4.js → grok-jsEI7sLT.js} +1 -1
  74. package/dist/chunks/{help-CQ8yZg8_.js → help-CYH2fCqh.js} +1 -1
  75. package/dist/chunks/{hooks-DgsxCW0L.js → hooks-BBL70Pl1.js} +1 -1
  76. package/dist/chunks/hooks-ujSG0QYH.js +1 -0
  77. package/dist/chunks/{install-W_2JVR8Y.js → install-DIv3UQHd.js} +1 -1
  78. package/dist/chunks/{instrumentation-Yk5dlvD_.js → instrumentation-CzXp-AVx.js} +3 -3
  79. package/dist/chunks/{job-CAbdQPkT.js → job-B38MURYt.js} +1 -1
  80. package/dist/chunks/{launchLocalMemory-C-KuYLDQ.js → launchLocalMemory-ClOCP1QH.js} +1 -1
  81. package/dist/chunks/{launchOnboarding-2-AEYja0.js → launchOnboarding-Km72c-fV.js} +1 -1
  82. package/dist/chunks/loadAgentsDir-DbkvUkkw.js +1 -0
  83. package/dist/chunks/{loadAgentsDir-CgDTTnMX.js → loadAgentsDir-izAo6rpy.js} +22 -22
  84. package/dist/chunks/{loadPluginHooks-CWkivYx4.js → loadPluginHooks-BBa5nd8Z.js} +1 -1
  85. package/dist/chunks/localSearch-BObbNIdd.js +1 -0
  86. package/dist/chunks/{localSearch-BhygSl0K.js → localSearch-BqJfYIga.js} +1 -1
  87. package/dist/chunks/{logoUtils-rZbHAggC.js → logoUtils-Mvbi4iz4.js} +1 -1
  88. package/dist/chunks/{magicDocs-430IH4o3.js → magicDocs-Beuyy0aV.js} +1 -1
  89. package/dist/chunks/{main-DuS6HbbE.js → main-CkDjqZz5.js} +5 -5
  90. package/dist/chunks/{mcp-XaHs-eh9.js → mcp-BQubBUXS.js} +1 -1
  91. package/dist/chunks/{mcp-BoJ9rdef.js → mcp-D8SeoRoL.js} +1 -1
  92. package/dist/chunks/{mcp-C2GF6Gp7.js → mcp-YtIqT_CN.js} +1 -1
  93. package/dist/chunks/{memory-D0vG6luI.js → memory-CFvypHzK.js} +1 -1
  94. package/dist/chunks/{mode-4ZXGLC71.js → mode-CLmT-L6g.js} +1 -1
  95. package/dist/chunks/{model-CcgVXT3w.js → model-BdWlSYyq.js} +1 -1
  96. package/dist/chunks/{model-BidsdFhX.js → model-cu29eOoS.js} +1 -1
  97. package/dist/chunks/{modelOptions-Bw53Jebp.js → modelOptions-d5F1-LIh.js} +1 -1
  98. package/dist/chunks/{nativeInstaller-BczAzL96.js → nativeInstaller-oMsFvcUC.js} +1 -1
  99. package/dist/chunks/{notifications-B3v1XAdd.js → notifications-ClFVMgnt.js} +1 -1
  100. package/dist/chunks/{onChangeAppState-wASLrUas.js → onChangeAppState-CvlswuIl.js} +1 -1
  101. package/dist/chunks/{openai-CvSNI6b2.js → openai-BoYbxtOG.js} +1 -1
  102. package/dist/chunks/{overlayContext-0wuZMXWl.js → overlayContext-DNYDip6r.js} +1 -1
  103. package/dist/chunks/{partition-CGKLltyv.js → partition-DRloaIYE.js} +1 -1
  104. package/dist/chunks/{permissions-DawwDdur.js → permissions-RfHevyA2.js} +1 -1
  105. package/dist/chunks/{pidLock-TOlSC34M.js → pidLock-Bn9y7GMY.js} +2 -2
  106. package/dist/chunks/{plan-D_vIEUQa.js → plan-CWfN8okc.js} +1 -1
  107. package/dist/chunks/{plugin-CDWB3AFL.js → plugin-Bee-4gyo.js} +1 -1
  108. package/dist/chunks/{pluginAutoupdate-CPzXHVsX.js → pluginAutoupdate-xsdXYyA-.js} +1 -1
  109. package/dist/chunks/{pluginBlocklist-Bu6GP9_C.js → pluginBlocklist-BTdbSAHE.js} +1 -1
  110. package/dist/chunks/{pluginCliCommands-CNpseXZD.js → pluginCliCommands-AlVmiNIz.js} +1 -1
  111. package/dist/chunks/{pluginFlagging-1MM3zuMP.js → pluginFlagging-BGOionRt.js} +1 -1
  112. package/dist/chunks/{pluginOperations-qT-GGKNu.js → pluginOperations-DYX4XPSc.js} +1 -1
  113. package/dist/chunks/{pluginStartupCheck-DXPIrR7f.js → pluginStartupCheck-CGmmDw8e.js} +1 -1
  114. package/dist/chunks/pluginStartupCheck-CQi735a4.js +1 -0
  115. package/dist/chunks/{plugins-Bbbvm9KH.js → plugins-_mf-Z_F5.js} +1 -1
  116. package/dist/chunks/{print-Db7IDW_T.js → print-9f_73BN2.js} +2 -2
  117. package/dist/chunks/{processBashCommand-DtEP1Js2.js → processBashCommand-Do8AJN_g.js} +1 -1
  118. package/dist/chunks/{processSlashCommand-BIIOr3n4.js → processSlashCommand-BcMLjAEQ.js} +1 -1
  119. package/dist/chunks/{prompt-CduUPV0s.js → prompt-B4rM4cgp.js} +1 -1
  120. package/dist/chunks/prompt-BnLHkqxH.js +1 -0
  121. package/dist/chunks/prompt-Bxk7M5A5.js +1 -0
  122. package/dist/chunks/{reconciler-DQxjz0OK.js → reconciler-BcpooxDV.js} +1 -1
  123. package/dist/chunks/{refresh-BmkkYKno.js → refresh-nrBMGYPi.js} +1 -1
  124. package/dist/chunks/{reject-DYsU8jkO.js → reject-B3lkQjOv.js} +1 -1
  125. package/dist/chunks/{reload-plugins-CmHAxvlA.js → reload-plugins-C6aSczZl.js} +1 -1
  126. package/dist/chunks/{rename-BrGuvkvC.js → rename-D3rmIsGf.js} +1 -1
  127. package/dist/chunks/{resume-COSo0ATp.js → resume-Cj_JBDJU.js} +1 -1
  128. package/dist/chunks/{runtimeObserver-Dpi40Nfi.js → runtimeObserver-4vJtpquK.js} +2 -2
  129. package/dist/chunks/{runtimeObserver-CoNTwrJ3.js → runtimeObserver-CgdVfPHy.js} +1 -1
  130. package/dist/chunks/sandbox-adapter-BNLLtZ41.js +1 -0
  131. package/dist/chunks/{sandbox-toggle-CrjErH9V.js → sandbox-toggle-Dt4lDgnB.js} +1 -1
  132. package/dist/chunks/searchExtraTools-C1v6F01_.js +1 -0
  133. package/dist/chunks/{select-BNeFiLNP.js → select-CPlgmbIJ.js} +1 -1
  134. package/dist/chunks/sessionFileAccessHooks-BnOpxVs-.js +1 -0
  135. package/dist/chunks/{sessionObserver-CAvR0MCN.js → sessionObserver-CFN7Ig3Q.js} +1 -1
  136. package/dist/chunks/sessionObserver-CnWQCO-S.js +1 -0
  137. package/dist/chunks/sessionStorage-Dr6JjGiG.js +1 -0
  138. package/dist/chunks/{sessionTracing-rMBtalMz.js → sessionTracing-nqfu1pVT.js} +1 -1
  139. package/dist/chunks/{setup-X5QOX_BW.js → setup-Im12wZpx.js} +2 -2
  140. package/dist/chunks/{shadowedRuleDetection-BucAPuXp.js → shadowedRuleDetection-CiG8S6iX.js} +1 -1
  141. package/dist/chunks/{sideQuestion-B1W_L7NR.js → sideQuestion-BW9eo3IE.js} +1 -1
  142. package/dist/chunks/{sinks-Bqzavjot.js → sinks-C7vJLHLA.js} +1 -1
  143. package/dist/chunks/sinks-DMDnR8N8.js +1 -0
  144. package/dist/chunks/{skillChangeDetector-jKxXTp4F.js → skillChangeDetector-CrsPxCzn.js} +1 -1
  145. package/dist/chunks/{skillGapStore-CQVCxlWd.js → skillGapStore-BV5H9Flk.js} +2 -2
  146. package/dist/chunks/{skillLifecycle-GGpX7H8W.js → skillLifecycle-EnEI14W2.js} +2 -2
  147. package/dist/chunks/{skillSearchPanel-DDM0zZ_r.js → skillSearchPanel-CSm2Eq_U.js} +2 -2
  148. package/dist/chunks/{skills-Bmdrtecu.js → skills-C69Im5ML.js} +1 -1
  149. package/dist/chunks/status-D2nNF67-.js +1 -0
  150. package/dist/chunks/{statusNoticeHelpers-DRJcaVdx.js → statusNoticeHelpers-BHExATuY.js} +1 -1
  151. package/dist/chunks/{switcher-CqGz0hjQ.js → switcher-BdsveDwj.js} +1 -1
  152. package/dist/chunks/switcher-DFyvU0Qc.js +1 -0
  153. package/dist/chunks/{tasks-CNQUkXoq.js → tasks-CJDAZERm.js} +1 -1
  154. package/dist/chunks/{templateJobs-CYArZLti.js → templateJobs-fCnSjC9_.js} +1 -1
  155. package/dist/chunks/{theme-DVkXXIPx.js → theme-B3baZuK8.js} +1 -1
  156. package/dist/chunks/{tipRegistry-DzOyYhJT.js → tipRegistry-devcMyyn.js} +1 -1
  157. package/dist/chunks/{toolEventObserver-BAkhiG0F.js → toolEventObserver-CNXN4TOt.js} +1 -1
  158. package/dist/chunks/{toolPool-D_7Onp-c.js → toolPool-B4XkmUDX.js} +1 -1
  159. package/dist/chunks/{useExitOnCtrlCDWithKeybindings-z3RiW9jT.js → useExitOnCtrlCDWithKeybindings-BfgcAS50.js} +1 -1
  160. package/dist/chunks/useMainLoopModel-CO_oa76K.js +1 -0
  161. package/dist/chunks/{useManagePlugins-DSRLHKH5.js → useManagePlugins-CYUa0_Sn.js} +1 -1
  162. package/dist/chunks/{useMergedTools-C7wh5W03.js → useMergedTools-By1K71LJ.js} +1 -1
  163. package/dist/chunks/{useSearchInput-r534PKo1.js → useSearchInput-C4O9vs6X.js} +1 -1
  164. package/dist/chunks/{useSettingsErrors-DL_ai-el.js → useSettingsErrors-Cw8_cPbg.js} +1 -1
  165. package/dist/chunks/{util-DombpJHQ.js → util-CEVuoH2G.js} +1 -1
  166. package/dist/chunks/{validatePlugin-DU3C7Mvb.js → validatePlugin-B7OHQSIx.js} +1 -1
  167. package/dist/chunks/worktree-C9F9fuJ9.js +1 -0
  168. package/dist/cli.js +1 -1
  169. package/package.json +1 -1
  170. package/dist/chunks/AgentsMdExternalIncludesDialog-BbSA-E68.js +0 -1
  171. package/dist/chunks/Doctor-Bd0k7Jo7.js +0 -1
  172. package/dist/chunks/REPL-D1bn80_0.js +0 -1
  173. package/dist/chunks/SearchExtraToolsTool-B6Qlr08G.js +0 -1
  174. package/dist/chunks/backgroundHousekeeping-COON_jRA.js +0 -1
  175. package/dist/chunks/caches-DgNr-KX3.js +0 -1
  176. package/dist/chunks/commands-DJe5bkNw.js +0 -1
  177. package/dist/chunks/config-FEF6EcWp.js +0 -1
  178. package/dist/chunks/context-noninteractive-Bupgkyt9.js +0 -1
  179. package/dist/chunks/conversation-CCV0BYD_.js +0 -1
  180. package/dist/chunks/doctor-HV7-zZgq.js +0 -1
  181. package/dist/chunks/extractMemories-1_fkJtc-.js +0 -1
  182. package/dist/chunks/fast-Bi-RRDlf.js +0 -1
  183. package/dist/chunks/fetchModelList-Dfyy0Yds.js +0 -1
  184. package/dist/chunks/hooks-Cj3t3ItG.js +0 -1
  185. package/dist/chunks/loadAgentsDir-jBY44wEO.js +0 -1
  186. package/dist/chunks/localSearch-B3aRqi3q.js +0 -1
  187. package/dist/chunks/pluginStartupCheck-CCDpCchC.js +0 -1
  188. package/dist/chunks/prompt-CCP82QoX.js +0 -1
  189. package/dist/chunks/prompt-DmWyLDH6.js +0 -1
  190. package/dist/chunks/sandbox-adapter-D0bQ6nsv.js +0 -1
  191. package/dist/chunks/searchExtraTools-_Fo0KDnz.js +0 -1
  192. package/dist/chunks/sessionFileAccessHooks-BCBV26Ut.js +0 -1
  193. package/dist/chunks/sessionObserver-QbHl_0Dr.js +0 -1
  194. package/dist/chunks/sessionStorage-CscAodvT.js +0 -1
  195. package/dist/chunks/sinks-ofVW99nt.js +0 -1
  196. package/dist/chunks/status-CFpCBQX1.js +0 -1
  197. package/dist/chunks/switcher-BCr3vwnq.js +0 -1
  198. package/dist/chunks/useMainLoopModel-DMB41HoQ.js +0 -1
  199. package/dist/chunks/worktree-CjnMMjR6.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-CgDTTnMX.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(`
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-CMtnYZR9.js";import{n as u,t as d}from"./select-BNeFiLNP.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-DrEE7olO.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-CgDTTnMX.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};
@@ -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-CgDTTnMX.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-CduUPV0s.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-CgDTTnMX.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-CgDTTnMX.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-DaOhyHsb.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-CgDTTnMX.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-CgDTTnMX.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-BidsdFhX.js";import{n as ke,t as M}from"./useExitOnCtrlCDWithKeybindings-z3RiW9jT.js";import{n as N,t as Ae}from"./TextInput-eYxBj_1-.js";import{n as je,t as Me}from"./select-BNeFiLNP.js";import{r as Ne,t as Pe}from"./Spinner-ByYcKk2V.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-r534PKo1.js";import{n as P,t as F}from"./Messages-SKlSLbVo.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-CTFLCtYp.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-CgDTTnMX.js";import{d as ve,n as ye}from"./config-CMtnYZR9.js";import{f as be,s as xe}from"./model-BidsdFhX.js";import{_n as Se,vn as Ce}from"./prompt-CduUPV0s.js";import{t as T}from"./conversationRecovery-CZzxsT_R.js";import{t as we}from"./QueryEngine-Cb2ncWE6.js";import{n as Te,r as Ee}from"./modelOptions-Bw53Jebp.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(`
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-CgDTTnMX.js";import{n as u,t as d}from"./ExitFlow-DGqwlF8J.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};
@@ -1 +1 @@
1
- import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{D as n,Gt as r,I as i,P as a,T as o,ai as s,t as c,x as l}from"./src-BX54x08P.js";import{t as u}from"./jsx-runtime-Bb4Xn-E0.js";import{FC as d,Hh as f,MC as p,NC as m,PC as h,TC as g,Vh as _,_d as v,gd as y,rb as b}from"./loadAgentsDir-CgDTTnMX.js";import{at as x,f as S,g as C,it as w}from"./model-BidsdFhX.js";import{n as T,t as E}from"./useExitOnCtrlCDWithKeybindings-z3RiW9jT.js";import{t as D}from"./select-BNeFiLNP.js";import{n as O,r as k,t as A}from"./modelOptions-Bw53Jebp.js";import{t as j}from"./CustomSelect-uOjgHk8D.js";import{n as M,t as N}from"./fetchModelList-BctZn47N.js";function P({initial:e,sessionModel:t,onSelect:s,onCancel:c,isStandaloneCommand:u,showFastModeNotice:p,headerText:_}){let v=T(),b=e===null?L:e,[x,S]=(0,F.useState)(b),E=f(e=>d()?e.fastMode:!1),[k,j]=(0,F.useState)(()=>new Set(w(b)?[b.replace(/\[1m\]/i,``)]:[])),M=(0,F.useCallback)(()=>{if(!x||x===L)return;let e=x.replace(/\[1m\]/i,``);j(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[x]),P=(0,F.useMemo)(()=>O(E??!1),[E]),[R,z]=(0,F.useState)(null),[B,V]=(0,F.useState)(!1);(0,F.useEffect)(()=>{let e=!1;return V(!1),N().then(t=>{if(!e){if(!t||t.length===0){z(null),V(!0);return}z(t)}}).catch(()=>{e||V(!0)}),()=>{e=!0}},[]);let H=(0,F.useMemo)(()=>R?A(R,E??!1):null,[R,E]),U=R===null&&!B,W=(0,F.useMemo)(()=>{let t=H??P;return e!==null&&!t.some(t=>t.value===e)?[...t,{value:e,label:C(e),description:`Current model`}]:t},[H,P,e]),G=(0,F.useMemo)(()=>W.map(e=>({...e,value:e.value===null?L:e.value})),[W]),K=(0,F.useMemo)(()=>G.some(e=>e.value===b)?b:G[0]?.value??void 0,[G,b]),q=Math.min(10,G.length),J=Math.max(0,G.length-q),Y=G.find(e=>e.value===x)?.label,X=x!==void 0&&x!==L&&k.has(x.replace(/\[1m\]/i,``)),Z=(0,F.useCallback)(e=>{S(e)},[]);r({"modelPicker:toggle1M":()=>M()},{context:`ModelPicker`});function Q(e){if(e===L){s(null);return}let t=e.replace(/\[1m\]/i,``);s(k.has(t)?`${t}[1m]`:t)}let $=(0,I.jsxs)(i,{flexDirection:`column`,children:[(0,I.jsxs)(i,{flexDirection:`column`,children:[(0,I.jsxs)(i,{marginBottom:1,flexDirection:`column`,children:[(0,I.jsx)(a,{color:`remember`,bold:!0,children:`Select model`}),(0,I.jsx)(a,{dimColor:!0,children:_??`Choose a model for this and future sessions. Use Space to toggle 1M context.`}),t&&(0,I.jsxs)(a,{dimColor:!0,children:[`Currently using `,C(t),` for this session (set by plan mode). Selecting a model will undo this.`]})]}),(0,I.jsxs)(i,{flexDirection:`column`,marginBottom:1,children:[(0,I.jsx)(i,{flexDirection:`column`,children:(0,I.jsx)(D,{defaultValue:b,defaultFocusValue:K,options:G,onChange:Q,onFocus:Z,onCancel:c??(()=>{}),visibleOptionCount:q})}),J>0&&(0,I.jsx)(i,{paddingLeft:3,children:(0,I.jsxs)(a,{dimColor:!0,children:[`and `,J,` more…`]})}),U&&(0,I.jsx)(i,{paddingLeft:3,children:(0,I.jsx)(a,{dimColor:!0,children:`正在从 API 拉取可用模型列表…`})}),B&&R===null&&(0,I.jsx)(i,{paddingLeft:3,children:(0,I.jsx)(a,{dimColor:!0,children:`API 拉取失败,使用内置列表`})})]}),(0,I.jsx)(i,{marginBottom:1,flexDirection:`column`,children:X?(0,I.jsxs)(a,{dimColor:!0,children:[`1M context on`,(0,I.jsx)(a,{color:`subtle`,children:` · Space to toggle`})]}):(0,I.jsxs)(a,{color:`subtle`,children:[`1M context off`,Y?` for ${Y}`:``,(0,I.jsx)(a,{color:`subtle`,children:` · Space to toggle`})]})}),d()?p?(0,I.jsx)(i,{marginBottom:1,children:(0,I.jsxs)(a,{dimColor:!0,children:[`Fast mode is `,(0,I.jsx)(a,{bold:!0,children:`ON`}),` and available with `,g,` only (/fast). Switching to other models turn off fast mode.`]})}):m()&&!h()?(0,I.jsx)(i,{marginBottom:1,children:(0,I.jsxs)(a,{dimColor:!0,children:[`Use `,(0,I.jsx)(a,{bold:!0,children:`/fast`}),` to turn on Fast mode (`,g,` only).`]})}):null:null]}),u&&(0,I.jsx)(a,{dimColor:!0,italic:!0,children:v.pending?(0,I.jsxs)(I.Fragment,{children:[`Press `,v.keyName,` again to exit`]}):(0,I.jsxs)(o,{children:[(0,I.jsx)(n,{shortcut:`Enter`,action:`confirm`}),(0,I.jsx)(y,{action:`select:cancel`,context:`Select`,fallback:`Esc`,description:`exit`})]})})]});return u?(0,I.jsx)(l,{color:`permission`,children:$}):$}var F,I,L,R=e((()=>{F=t(s(),1),x(),E(),p(),c(),b(),_(),S(),k(),M(),v(),j(),I=u(),L=`__NO_PREFERENCE__`}));function z(e,t,n){return!1}var B=e((()=>{}));export{R as i,z as n,P as r,B as t};
1
+ import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{D as n,Gt as r,I as i,P as a,T as o,ai as s,t as c,x as l}from"./src-BX54x08P.js";import{t as u}from"./jsx-runtime-Bb4Xn-E0.js";import{FC as d,Hh as f,MC as p,NC as m,PC as h,TC as g,Vh as _,_d as v,gd as y,rb as b}from"./loadAgentsDir-izAo6rpy.js";import{at as x,f as S,g as C,it as w}from"./model-cu29eOoS.js";import{n as T,t as E}from"./useExitOnCtrlCDWithKeybindings-BfgcAS50.js";import{t as D}from"./select-CPlgmbIJ.js";import{n as O,r as k,t as A}from"./modelOptions-d5F1-LIh.js";import{t as j}from"./CustomSelect-C1eyA6Kb.js";import{n as M,t as N}from"./fetchModelList-531U79it.js";function P({initial:e,sessionModel:t,onSelect:s,onCancel:c,isStandaloneCommand:u,showFastModeNotice:p,headerText:_}){let v=T(),b=e===null?L:e,[x,S]=(0,F.useState)(b),E=f(e=>d()?e.fastMode:!1),[k,j]=(0,F.useState)(()=>new Set(w(b)?[b.replace(/\[1m\]/i,``)]:[])),M=(0,F.useCallback)(()=>{if(!x||x===L)return;let e=x.replace(/\[1m\]/i,``);j(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[x]),P=(0,F.useMemo)(()=>O(E??!1),[E]),[R,z]=(0,F.useState)(null),[B,V]=(0,F.useState)(!1);(0,F.useEffect)(()=>{let e=!1;return V(!1),N().then(t=>{if(!e){if(!t||t.length===0){z(null),V(!0);return}z(t)}}).catch(()=>{e||V(!0)}),()=>{e=!0}},[]);let H=(0,F.useMemo)(()=>R?A(R,E??!1):null,[R,E]),U=R===null&&!B,W=(0,F.useMemo)(()=>{let t=H??P;return e!==null&&!t.some(t=>t.value===e)?[...t,{value:e,label:C(e),description:`Current model`}]:t},[H,P,e]),G=(0,F.useMemo)(()=>W.map(e=>({...e,value:e.value===null?L:e.value})),[W]),K=(0,F.useMemo)(()=>G.some(e=>e.value===b)?b:G[0]?.value??void 0,[G,b]),q=Math.min(10,G.length),J=Math.max(0,G.length-q),Y=G.find(e=>e.value===x)?.label,X=x!==void 0&&x!==L&&k.has(x.replace(/\[1m\]/i,``)),Z=(0,F.useCallback)(e=>{S(e)},[]);r({"modelPicker:toggle1M":()=>M()},{context:`ModelPicker`});function Q(e){if(e===L){s(null);return}let t=e.replace(/\[1m\]/i,``);s(k.has(t)?`${t}[1m]`:t)}let $=(0,I.jsxs)(i,{flexDirection:`column`,children:[(0,I.jsxs)(i,{flexDirection:`column`,children:[(0,I.jsxs)(i,{marginBottom:1,flexDirection:`column`,children:[(0,I.jsx)(a,{color:`remember`,bold:!0,children:`Select model`}),(0,I.jsx)(a,{dimColor:!0,children:_??`Choose a model for this and future sessions. Use Space to toggle 1M context.`}),t&&(0,I.jsxs)(a,{dimColor:!0,children:[`Currently using `,C(t),` for this session (set by plan mode). Selecting a model will undo this.`]})]}),(0,I.jsxs)(i,{flexDirection:`column`,marginBottom:1,children:[(0,I.jsx)(i,{flexDirection:`column`,children:(0,I.jsx)(D,{defaultValue:b,defaultFocusValue:K,options:G,onChange:Q,onFocus:Z,onCancel:c??(()=>{}),visibleOptionCount:q})}),J>0&&(0,I.jsx)(i,{paddingLeft:3,children:(0,I.jsxs)(a,{dimColor:!0,children:[`and `,J,` more…`]})}),U&&(0,I.jsx)(i,{paddingLeft:3,children:(0,I.jsx)(a,{dimColor:!0,children:`正在从 API 拉取可用模型列表…`})}),B&&R===null&&(0,I.jsx)(i,{paddingLeft:3,children:(0,I.jsx)(a,{dimColor:!0,children:`API 拉取失败,使用内置列表`})})]}),(0,I.jsx)(i,{marginBottom:1,flexDirection:`column`,children:X?(0,I.jsxs)(a,{dimColor:!0,children:[`1M context on`,(0,I.jsx)(a,{color:`subtle`,children:` · Space to toggle`})]}):(0,I.jsxs)(a,{color:`subtle`,children:[`1M context off`,Y?` for ${Y}`:``,(0,I.jsx)(a,{color:`subtle`,children:` · Space to toggle`})]})}),d()?p?(0,I.jsx)(i,{marginBottom:1,children:(0,I.jsxs)(a,{dimColor:!0,children:[`Fast mode is `,(0,I.jsx)(a,{bold:!0,children:`ON`}),` and available with `,g,` only (/fast). Switching to other models turn off fast mode.`]})}):m()&&!h()?(0,I.jsx)(i,{marginBottom:1,children:(0,I.jsxs)(a,{dimColor:!0,children:[`Use `,(0,I.jsx)(a,{bold:!0,children:`/fast`}),` to turn on Fast mode (`,g,` only).`]})}):null:null]}),u&&(0,I.jsx)(a,{dimColor:!0,italic:!0,children:v.pending?(0,I.jsxs)(I.Fragment,{children:[`Press `,v.keyName,` again to exit`]}):(0,I.jsxs)(o,{children:[(0,I.jsx)(n,{shortcut:`Enter`,action:`confirm`}),(0,I.jsx)(y,{action:`select:cancel`,context:`Select`,fallback:`Esc`,description:`exit`})]})})]});return u?(0,I.jsx)(l,{color:`permission`,children:$}):$}var F,I,L,R=e((()=>{F=t(s(),1),x(),E(),p(),c(),b(),_(),S(),k(),M(),v(),j(),I=u(),L=`__NO_PREFERENCE__`}));function z(e,t,n){return!1}var B=e((()=>{}));export{R as i,z as n,P as r,B as t};
@@ -0,0 +1 @@
1
+ import{dc as e,fc as t,pc as n,uc as r}from"./loadAgentsDir-izAo6rpy.js";n();export{r as drainPendingExtraction,e as executeExtractMemories,t as initExtractMemories};
@@ -1 +1 @@
1
- import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{Gt as n,I as r,Lt as i,P as a,ai as o,di as s,fi as c,j as l,t as u,y as d}from"./src-BX54x08P.js";import{t as f}from"./jsx-runtime-Bb4Xn-E0.js";import{Gt as p,m,y as h}from"./settings-CA-5Px85.js";import{AC as g,DC as _,EC as v,FC as y,Hh as b,IC as x,MC as S,OC as C,TC as w,VC as T,Vh as E,Wh as D,by as O,rb as k,vy as A,yy as j}from"./loadAgentsDir-CgDTTnMX.js";import{d as M,o as N}from"./config-CMtnYZR9.js";import{n as P}from"./analytics-COpjZpvd.js";import{_ as F,l as I}from"./startupProfiler-C_xcIvEA.js";import{n as L,t as R}from"./systemTheme-Ceakddth.js";function z({cooldown:e}){return e?(0,V.jsx)(a,{color:`promptBorder`,dimColor:!0,children:`↯`}):(0,V.jsx)(a,{color:`fastMode`,children:`↯`})}function B(e=!0,t=!1){if(!e)return`↯`;let n=L(N().theme);return t?s.dim(l(`promptBorder`,n)(`↯`)):l(`fastMode`,n)(`↯`)}var V,H=e((()=>{c(),p(),u(),M(),R(),V=f()}));function U(e,t){v(),h(`userSettings`,{fastMode:e?!0:void 0}),t(e?e=>{let t=!x(e.mainLoopModel);return{...e,...t?{mainLoopModel:_(),mainLoopModelForSession:null}:{},fastMode:!0}}:e=>({...e,fastMode:!1}))}function W({onDone:e,unavailableReason:t}){let o=b(e=>e.mainLoopModel),s=b(e=>e.fastMode),c=D(),[l,u]=(0,q.useState)(s??!1),f=C(),p=f.status===`cooldown`,m=t!==null,h=A(j(!0));function g(){m||(U(l,c),l?e(`${B(l)} Fast mode ON${x(o)?``:` · model set to ${w}`} · ${h}`):(c(e=>({...e,fastMode:!1})),e(`Fast mode OFF`)))}function _(){if(m){s&&U(!1,c),e(`Fast mode OFF`,{display:`system`});return}e(s?`${B()} Kept Fast mode ON`:`Kept Fast mode OFF`,{display:`system`})}function v(){m||u(e=>!e)}return n({"confirm:yes":g,"confirm:nextField":v,"confirm:next":v,"confirm:previous":v,"confirm:cycleMode":v,"confirm:toggle":v},{context:`Confirmation`}),(0,J.jsxs)(d,{title:(0,J.jsxs)(a,{children:[(0,J.jsx)(z,{cooldown:p}),` Fast mode (research preview)`]}),subtitle:`High-speed mode for ${w}. Billed as extra usage at a premium rate. Separate rate limits apply.`,onCancel:_,color:`fastMode`,inputGuide:e=>e.pending?(0,J.jsxs)(a,{children:[`Press `,e.keyName,` again to exit`]}):m?(0,J.jsx)(a,{children:`Esc to cancel`}):(0,J.jsx)(a,{children:`Tab to toggle · Enter to confirm · Esc to cancel`}),children:[t?(0,J.jsx)(r,{marginLeft:2,children:(0,J.jsx)(a,{color:`error`,children:t})}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(r,{flexDirection:`column`,gap:0,marginLeft:2,children:(0,J.jsxs)(r,{flexDirection:`row`,gap:2,children:[(0,J.jsx)(a,{bold:!0,children:`Fast mode`}),(0,J.jsx)(a,{color:l?`fastMode`:void 0,bold:l,children:l?`ON `:`OFF`}),(0,J.jsx)(a,{dimColor:!0,children:h})]})}),p&&f.status===`cooldown`&&(0,J.jsx)(r,{marginLeft:2,children:(0,J.jsxs)(a,{color:`warning`,children:[f.reason===`overloaded`?`Fast mode overloaded and is temporarily unavailable`:`You've hit your fast limit`,` · resets in `,I(f.resetAt-Date.now(),{hideTrailingZeros:!0})]})})]}),(0,J.jsxs)(a,{dimColor:!0,children:[`Learn more:`,` `,(0,J.jsx)(i,{url:`https://code.workmate.com/docs/en/fast-mode`,children:`https://code.workmate.com/docs/en/fast-mode`})]})]})}async function G(e,t,n){let r=g();if(r)return`Fast mode unavailable: ${r}`;let{mainLoopModel:i}=t();return U(e,n),e?`${B(!0)} Fast mode ON${x(i)?``:` · model set to ${w}`} · ${A(j(!0))}`:`Fast mode OFF`}async function K(e,t,n){if(!y())return null;await T();let r=n?.trim().toLowerCase();if(r===`on`||r===`off`)return e(await G(r===`on`,t.getAppState,t.setAppState)),null;let i=g();return(0,J.jsx)(W,{onDone:e,unavailableReason:i})}var q,J,Y=e((()=>{q=t(o(),1),u(),H(),k(),P(),E(),S(),F(),O(),m(),J=f()}));export{H as a,B as i,K as n,Y as r,W as t};
1
+ import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{Gt as n,I as r,Lt as i,P as a,ai as o,di as s,fi as c,j as l,t as u,y as d}from"./src-BX54x08P.js";import{t as f}from"./jsx-runtime-Bb4Xn-E0.js";import{Gt as p,m,y as h}from"./settings-CA-5Px85.js";import{AC as g,DC as _,EC as v,FC as y,Hh as b,IC as x,MC as S,OC as C,TC as w,VC as T,Vh as E,Wh as D,by as O,rb as k,vy as A,yy as j}from"./loadAgentsDir-izAo6rpy.js";import{d as M,o as N}from"./config-CMtnYZR9.js";import{n as P}from"./analytics-COpjZpvd.js";import{_ as F,l as I}from"./startupProfiler-C_xcIvEA.js";import{n as L,t as R}from"./systemTheme-Ceakddth.js";function z({cooldown:e}){return e?(0,V.jsx)(a,{color:`promptBorder`,dimColor:!0,children:`↯`}):(0,V.jsx)(a,{color:`fastMode`,children:`↯`})}function B(e=!0,t=!1){if(!e)return`↯`;let n=L(N().theme);return t?s.dim(l(`promptBorder`,n)(`↯`)):l(`fastMode`,n)(`↯`)}var V,H=e((()=>{c(),p(),u(),M(),R(),V=f()}));function U(e,t){v(),h(`userSettings`,{fastMode:e?!0:void 0}),t(e?e=>{let t=!x(e.mainLoopModel);return{...e,...t?{mainLoopModel:_(),mainLoopModelForSession:null}:{},fastMode:!0}}:e=>({...e,fastMode:!1}))}function W({onDone:e,unavailableReason:t}){let o=b(e=>e.mainLoopModel),s=b(e=>e.fastMode),c=D(),[l,u]=(0,q.useState)(s??!1),f=C(),p=f.status===`cooldown`,m=t!==null,h=A(j(!0));function g(){m||(U(l,c),l?e(`${B(l)} Fast mode ON${x(o)?``:` · model set to ${w}`} · ${h}`):(c(e=>({...e,fastMode:!1})),e(`Fast mode OFF`)))}function _(){if(m){s&&U(!1,c),e(`Fast mode OFF`,{display:`system`});return}e(s?`${B()} Kept Fast mode ON`:`Kept Fast mode OFF`,{display:`system`})}function v(){m||u(e=>!e)}return n({"confirm:yes":g,"confirm:nextField":v,"confirm:next":v,"confirm:previous":v,"confirm:cycleMode":v,"confirm:toggle":v},{context:`Confirmation`}),(0,J.jsxs)(d,{title:(0,J.jsxs)(a,{children:[(0,J.jsx)(z,{cooldown:p}),` Fast mode (research preview)`]}),subtitle:`High-speed mode for ${w}. Billed as extra usage at a premium rate. Separate rate limits apply.`,onCancel:_,color:`fastMode`,inputGuide:e=>e.pending?(0,J.jsxs)(a,{children:[`Press `,e.keyName,` again to exit`]}):m?(0,J.jsx)(a,{children:`Esc to cancel`}):(0,J.jsx)(a,{children:`Tab to toggle · Enter to confirm · Esc to cancel`}),children:[t?(0,J.jsx)(r,{marginLeft:2,children:(0,J.jsx)(a,{color:`error`,children:t})}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(r,{flexDirection:`column`,gap:0,marginLeft:2,children:(0,J.jsxs)(r,{flexDirection:`row`,gap:2,children:[(0,J.jsx)(a,{bold:!0,children:`Fast mode`}),(0,J.jsx)(a,{color:l?`fastMode`:void 0,bold:l,children:l?`ON `:`OFF`}),(0,J.jsx)(a,{dimColor:!0,children:h})]})}),p&&f.status===`cooldown`&&(0,J.jsx)(r,{marginLeft:2,children:(0,J.jsxs)(a,{color:`warning`,children:[f.reason===`overloaded`?`Fast mode overloaded and is temporarily unavailable`:`You've hit your fast limit`,` · resets in `,I(f.resetAt-Date.now(),{hideTrailingZeros:!0})]})})]}),(0,J.jsxs)(a,{dimColor:!0,children:[`Learn more:`,` `,(0,J.jsx)(i,{url:`https://code.workmate.com/docs/en/fast-mode`,children:`https://code.workmate.com/docs/en/fast-mode`})]})]})}async function G(e,t,n){let r=g();if(r)return`Fast mode unavailable: ${r}`;let{mainLoopModel:i}=t();return U(e,n),e?`${B(!0)} Fast mode ON${x(i)?``:` · model set to ${w}`} · ${A(j(!0))}`:`Fast mode OFF`}async function K(e,t,n){if(!y())return null;await T();let r=n?.trim().toLowerCase();if(r===`on`||r===`off`)return e(await G(r===`on`,t.getAppState,t.setAppState)),null;let i=g();return(0,J.jsx)(W,{onDone:e,unavailableReason:i})}var q,J,Y=e((()=>{q=t(o(),1),u(),H(),k(),P(),E(),S(),F(),O(),m(),J=f()}));export{H as a,B as i,K as n,Y as r,W as t};
@@ -0,0 +1 @@
1
+ import{n as e,r as t,t as n}from"./fast-BeKnNZaH.js";t();export{n as FastModePicker,e as call};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{Qr as t,Xr as n}from"./settings-CA-5Px85.js";import{c as r,i}from"./debug-NBJH_NxR.js";import{Mt as a,Pt as o,W as s,dt as c,q as l,ut as u}from"./model-BidsdFhX.js";import{n as d,r as f}from"./client-q_uGYC2E.js";async function p(){let e=a();try{switch(e){case`firstParty`:{let e=await u({maxRetries:1}),t=[];for await(let n of e.models.list())t.push({value:n.id,label:n.display_name??n.id,description:n.id});return t.length>0?t:null}case`openai`:{let e=d({maxRetries:1}),t=[];for await(let n of e.models.list())t.push({value:n.id,label:n.id,description:`via openai-compat`});return t.length>0?t:null}case`grok`:{let{getGrokClient:e}=await import(`./client-y_U1O4mI.js`),t=e({maxRetries:1}),n=[];for await(let e of t.models.list())n.push({value:e.id,label:e.id,description:`via grok`});return n.length>0?n:null}case`bedrock`:{let e=(await s()).map(e=>({value:e,label:e,description:`Bedrock inference profile`}));return e.length>0?e:null}case`gemini`:case`vertex`:case`foundry`:return null}}catch(t){return r(`[fetchModelList] ${e} failed: ${t instanceof Error?t.message:`unknown`}`),null}return null}var m,h,g=e((()=>{c(),f(),i(),n(),l(),o(),m=300*1e3,h=t(p,m)}));export{g as n,h as t};
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{Qr as t,Xr as n}from"./settings-CA-5Px85.js";import{c as r,i}from"./debug-NBJH_NxR.js";import{Mt as a,Pt as o,W as s,dt as c,q as l,ut as u}from"./model-cu29eOoS.js";import{n as d,r as f}from"./client-q_uGYC2E.js";async function p(){let e=a();try{switch(e){case`firstParty`:{let e=await u({maxRetries:1}),t=[];for await(let n of e.models.list())t.push({value:n.id,label:n.display_name??n.id,description:n.id});return t.length>0?t:null}case`openai`:{let e=d({maxRetries:1}),t=[];for await(let n of e.models.list())t.push({value:n.id,label:n.id,description:`via openai-compat`});return t.length>0?t:null}case`grok`:{let{getGrokClient:e}=await import(`./client-y_U1O4mI.js`),t=e({maxRetries:1}),n=[];for await(let e of t.models.list())n.push({value:e.id,label:e.id,description:`via grok`});return n.length>0?n:null}case`bedrock`:{let e=(await s()).map(e=>({value:e,label:e,description:`Bedrock inference profile`}));return e.length>0?e:null}case`gemini`:case`vertex`:case`foundry`:return null}}catch(t){return r(`[fetchModelList] ${e} failed: ${t instanceof Error?t.message:`unknown`}`),null}return null}var m,h,g=e((()=>{c(),f(),i(),n(),l(),o(),m=300*1e3,h=t(p,m)}));export{g as n,h as t};
@@ -0,0 +1 @@
1
+ import{n as e,t}from"./fetchModelList-531U79it.js";e();export{t as fetchAvailableModels};