very-happy-cli 0.2.182 → 0.2.184

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 (204) hide show
  1. package/dist/{AcpBackend-DLk3gMYH.mjs → AcpBackend-Csg7Sy2P.mjs} +3 -3
  2. package/dist/{AcpBackend-JA5eu8Y0.cjs → AcpBackend-DOzn74zn.cjs} +3 -3
  3. package/dist/{AcpSessionManager-OrCww-Qv.mjs → AcpSessionManager-BRK2F2yN.mjs} +10 -3
  4. package/dist/{AcpSessionManager-DjYidq4C.cjs → AcpSessionManager-CJXDNNtq.cjs} +10 -3
  5. package/dist/{BasePermissionHandler-u-neo-iN.mjs → BasePermissionHandler-BqYwrCra.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-D3PMKLBS.cjs → BasePermissionHandler-CfrnkG3v.cjs} +1 -1
  7. package/dist/{acpSessionResume-Dxo8222T.cjs → acpSessionResume-DZ65DBeE.cjs} +1 -1
  8. package/dist/{acpSessionResume-u2TwX5Jd.mjs → acpSessionResume-Dz1myMbR.mjs} +1 -1
  9. package/dist/{agentHome-D3hNrnoA.mjs → agentHome-B_tu3tFJ.mjs} +4 -4
  10. package/dist/{agentHome-CP1tCBXz.cjs → agentHome-CKAXhc8P.cjs} +4 -4
  11. package/dist/{api-C_YSQnsi.mjs → api-BpTDU2BO.mjs} +79 -12
  12. package/dist/{api-CZWcG7uh.cjs → api-rw5xkzxo.cjs} +81 -11
  13. package/dist/{apiMachine-DPGrED5C.cjs → apiMachine-Bs1XXHKs.cjs} +14 -14
  14. package/dist/{apiMachine-C_GA5Bm-.mjs → apiMachine-wp0hWG3F.mjs} +14 -14
  15. package/dist/{attachmentContent-Ckzyb1Uy.mjs → attachmentContent-CWSSGMMo.mjs} +2 -2
  16. package/dist/{attachmentContent-I_dJIevE.cjs → attachmentContent-K_Up4InS.cjs} +2 -2
  17. package/dist/{auth-BKnE7uv7.cjs → auth-C4_mXYgj.cjs} +8 -8
  18. package/dist/{auth-DOXMI-xp.mjs → auth-CBESCCCn.mjs} +8 -8
  19. package/dist/{auth-CGgpiJ5-.mjs → auth-D6kSt2sR.mjs} +5 -5
  20. package/dist/{auth-Lw_utSMV.cjs → auth-gGryJImw.cjs} +5 -5
  21. package/dist/{auto-Z56mMZnH.mjs → auto-CEucVmFR.mjs} +32 -26
  22. package/dist/{auto-CIgFHIyQ.cjs → auto-Do43AOza.cjs} +32 -25
  23. package/dist/{bootstrap-DsXp74wv.cjs → bootstrap-BPz1iX77.cjs} +2 -2
  24. package/dist/{bootstrap-D3vlOROj.mjs → bootstrap-CodyCmGt.mjs} +2 -2
  25. package/dist/{browser-CUxGoATV.mjs → browser-CqMhj8Gm.mjs} +1 -1
  26. package/dist/{browser-CZlA9AkO.cjs → browser-D9D-1eqa.cjs} +1 -1
  27. package/dist/{claudeLocal-FnTUgwCi.mjs → claudeLocal-BgIRtT3Q.mjs} +5 -5
  28. package/dist/{claudeLocal-oELvwiZL.cjs → claudeLocal-Dywp8NKr.cjs} +5 -5
  29. package/dist/{claudeLocalLauncher-CO5YHCzi.mjs → claudeLocalLauncher-CaHjZ8HW.mjs} +10 -10
  30. package/dist/{claudeLocalLauncher-QsVXEVdE.cjs → claudeLocalLauncher-_TOL73g5.cjs} +10 -10
  31. package/dist/{claudeSessionFork-Cspr6QW0.mjs → claudeSessionFork-C9nB7fs5.mjs} +1 -1
  32. package/dist/{claudeSessionFork-BA4GE5AL.cjs → claudeSessionFork-jq-_WiAu.cjs} +1 -1
  33. package/dist/{client-CDuW4MS9.cjs → client-BFDji81N.cjs} +15 -7
  34. package/dist/{client-Ctbw05Xj.mjs → client-BdbVizjk.mjs} +15 -7
  35. package/dist/{client-xnWiHqdb.cjs → client-ByZFACEw.cjs} +18 -5
  36. package/dist/{client-DK8CzUry.cjs → client-C49zFRkX.cjs} +2 -2
  37. package/dist/{client-o-meK7-a.mjs → client-CX-_2myt.mjs} +2 -2
  38. package/dist/{client-BGfmSbWc.mjs → client-DwlYk8uJ.mjs} +18 -5
  39. package/dist/codex/happyMcpStdioBridge.cjs +16 -16
  40. package/dist/codex/happyMcpStdioBridge.mjs +16 -16
  41. package/dist/{codexAppServerClient-BlsOZLul.mjs → codexAppServerClient-CmOIqiNQ.mjs} +3 -3
  42. package/dist/{codexAppServerClient-DhNDTU_i.cjs → codexAppServerClient-DF12ZSw1.cjs} +3 -3
  43. package/dist/{codexCommand-BGx5NMQR.mjs → codexCommand-BN05uEyv.mjs} +94 -60
  44. package/dist/{codexCommand-DJDPfpIs.cjs → codexCommand-H-ObWTtx.cjs} +94 -60
  45. package/dist/{codexTermination-CVhhwHZU.mjs → codexTermination-Byohgj8h.mjs} +1 -1
  46. package/dist/{codexTermination-CqPMuokw.cjs → codexTermination-RwKa8pKk.cjs} +1 -1
  47. package/dist/{config-CWAe08-Q.mjs → config-ChHLh-hf.mjs} +3 -3
  48. package/dist/{config-CHpxzXBL.cjs → config-D_wNqwxX.cjs} +3 -3
  49. package/dist/{configuration-B-CugKJ3.cjs → configuration-C9Sx-Foo.cjs} +1 -1
  50. package/dist/{configuration-YXw_Dcsb.mjs → configuration-CVgUe2qN.mjs} +1 -1
  51. package/dist/{connect-BmHvMXH2.cjs → connect-B61xJDRq.cjs} +13 -13
  52. package/dist/{connect-CPeJXHha.mjs → connect-DJEQjS7C.mjs} +13 -13
  53. package/dist/{context-BtIVqHI5.cjs → context-Bf3BG7w8.cjs} +1 -1
  54. package/dist/{context-Drzs_Z38.mjs → context-CDPfhHTo.mjs} +1 -1
  55. package/dist/{controlClient-D0kGwKYx.cjs → controlClient-BLO1_pPx.cjs} +14 -3
  56. package/dist/{controlClient-BL4hb4l3.mjs → controlClient-DMCxtwq2.mjs} +14 -4
  57. package/dist/{createSessionMetadata-L499emJn.cjs → createSessionMetadata-5Mde6Dfh.cjs} +2 -2
  58. package/dist/{createSessionMetadata-DvGDsnsn.mjs → createSessionMetadata-BYroCdrU.mjs} +2 -2
  59. package/dist/daemonSupervisor-57JYYzMf.cjs +268 -0
  60. package/dist/daemonSupervisor-DfzrtNhM.mjs +245 -0
  61. package/dist/{defaultPermissionMode-MXpZlXud.cjs → defaultPermissionMode-B7mjHQKp.cjs} +2 -2
  62. package/dist/{defaultPermissionMode-BLfxu-Yz.mjs → defaultPermissionMode-CTdxUV_3.mjs} +2 -2
  63. package/dist/{deterministicJson-CfLkBRvU.cjs → deterministicJson-C1Z9MlDX.cjs} +569 -17
  64. package/dist/{deterministicJson-B_UAbmQ4.mjs → deterministicJson-C3QXOc1N.mjs} +572 -21
  65. package/dist/{doctor-DMvlzmnE.cjs → doctor-DRdV3thy.cjs} +7 -7
  66. package/dist/{doctor-bKScPtZu.mjs → doctor-OwNmTpYh.mjs} +7 -7
  67. package/dist/{downloadTarget-J9j37eFG.mjs → downloadTarget-CNtQ8rhV.mjs} +6 -6
  68. package/dist/{downloadTarget-D33BFvew.cjs → downloadTarget-Di5bf7r0.cjs} +6 -6
  69. package/dist/{ensureDaemonRunning-2IqWROJp.cjs → ensureDaemonRunning-CMY--T9Q.cjs} +5 -5
  70. package/dist/{ensureDaemonRunning-DLvwhpNg.mjs → ensureDaemonRunning-IRV-w0wH.mjs} +5 -5
  71. package/dist/{handleResumeCommand-CjtjQ_I7.mjs → handleResumeCommand-BO00SYjG.mjs} +5 -5
  72. package/dist/{handleResumeCommand-Dp2Y-p6V.cjs → handleResumeCommand-z7wY7QVM.cjs} +5 -5
  73. package/dist/{index-DYVIbhAJ.cjs → index-B4cyX2by.cjs} +40 -40
  74. package/dist/{index-B_aNaW9w.cjs → index-BsoUsrKS.cjs} +4 -4
  75. package/dist/{index-Cllzqoes.mjs → index-C7zgeuLP.mjs} +4 -4
  76. package/dist/{index-D_LvOWUN.mjs → index-CVUiytNq.mjs} +3 -3
  77. package/dist/{index-BOT0Tg5E.mjs → index-DZvi6_tB.mjs} +4 -4
  78. package/dist/{index-BI0h2Zks.mjs → index-DisBaRvM.mjs} +277 -77
  79. package/dist/{index-CZC7egJA.cjs → index-NhmqjrGv.cjs} +3 -3
  80. package/dist/{index-oh8XEozJ.cjs → index-Ub-5xbcU.cjs} +286 -76
  81. package/dist/{index-kA46KMxN.mjs → index-_LfuIz-O.mjs} +41 -41
  82. package/dist/{index-DymOv3kK.cjs → index-wYJu2yGc.cjs} +4 -4
  83. package/dist/index.cjs +2 -2
  84. package/dist/index.mjs +2 -2
  85. package/dist/{install-D2NCbeJ-.cjs → install-BATFlr_l.cjs} +2 -2
  86. package/dist/{install-BAa_Xmof.cjs → install-CGYDeYes.cjs} +3 -3
  87. package/dist/{install-C46mkr9a.mjs → install-DeUM6h8X.mjs} +3 -3
  88. package/dist/{install-D0inLCv-.mjs → install-F3rP8tBU.mjs} +2 -2
  89. package/dist/lib.cjs +12 -12
  90. package/dist/lib.d.cts +1 -1
  91. package/dist/lib.d.mts +1 -1
  92. package/dist/lib.mjs +12 -12
  93. package/dist/{lidState-DcPvwniz.cjs → lidState-C4YgPn6y.cjs} +1 -1
  94. package/dist/{lidState-D8Iuvjgl.mjs → lidState-CBjQEwTt.mjs} +1 -1
  95. package/dist/{localHappyAgentAuth-SD6GM97y.cjs → localHappyAgentAuth-BzCuIkzi.cjs} +1 -1
  96. package/dist/{localHappyAgentAuth-D3rQDRd9.mjs → localHappyAgentAuth-CcWGU_lS.mjs} +1 -1
  97. package/dist/{logger-DK1ytCz6.cjs → logger-CrtT0opS.cjs} +2 -2
  98. package/dist/{logger-DpqihN1f.mjs → logger-D2qd0mMg.mjs} +2 -2
  99. package/dist/{machineMetadata-D4E3qoIG.mjs → machineMetadata-B2czDiTd.mjs} +3 -3
  100. package/dist/{machineMetadata-IJc6_iyx.cjs → machineMetadata-D1hlm_oF.cjs} +3 -3
  101. package/dist/{main-CpUmw7hm.mjs → main-BNYWELul.mjs} +69 -56
  102. package/dist/{main-DUXh2rgW.cjs → main-BWgWN5d1.cjs} +69 -56
  103. package/dist/{mcp-D5f3Vd-z.cjs → mcp-C18unjs1.cjs} +15 -15
  104. package/dist/{mcp-66g1TJ8P.mjs → mcp-ColtiH23.mjs} +15 -15
  105. package/dist/{mirrorProtocol-DkWOcZh9.cjs → mirrorProtocol-D4CR5I5W.cjs} +3 -3
  106. package/dist/{mirrorProtocol-bsCUcaCY.mjs → mirrorProtocol-DTHWtAE5.mjs} +3 -3
  107. package/dist/{package-BfeqAzyJ.cjs → package-DczR1k0c.cjs} +7 -7
  108. package/dist/{package-CKj8zndE.mjs → package-Ek5FOyEo.mjs} +7 -7
  109. package/dist/{panels-r8LmaBs6.mjs → panels-BIQ7FrCB.mjs} +5 -5
  110. package/dist/{panels-2PXsw9-d.cjs → panels-DYSMHhdb.cjs} +5 -5
  111. package/dist/{peerTools-D_id4d41.mjs → peerTools-CABQ6iKd.mjs} +5 -5
  112. package/dist/{peerTools-BVp1z0T_.cjs → peerTools-Cufh4Qp_.cjs} +5 -5
  113. package/dist/{persistence-jOEuAFTS.mjs → persistence-DFtgQvr6.mjs} +2 -2
  114. package/dist/{persistence-BdpwWXKh.cjs → persistence-IYH6bAXY.cjs} +2 -2
  115. package/dist/{piRunnerArgs-68I5F_M1.mjs → piRunnerArgs-CIWprC1S.mjs} +1 -1
  116. package/dist/{piRunnerArgs-vxCHKnSA.cjs → piRunnerArgs-Dgjmj8KL.cjs} +1 -1
  117. package/dist/{piRuntime-C3Dg5uni.cjs → piRuntime-C_nX977w.cjs} +2 -2
  118. package/dist/{piRuntime-DgLIard1.mjs → piRuntime-K6o4GPZ9.mjs} +2 -2
  119. package/dist/{piTerminal-DJL0w-uA.mjs → piTerminal-CRl0EZc3.mjs} +18 -18
  120. package/dist/{piTerminal-C135BcLP.cjs → piTerminal-CYhcmkyi.cjs} +18 -18
  121. package/dist/providerBinding-B-Qbx9W2.cjs +140 -0
  122. package/dist/providerBinding-CYubGg-Z.mjs +132 -0
  123. package/dist/{pushNotifications-CyQVDThC.cjs → pushNotifications-BgQ_QTgS.cjs} +3 -3
  124. package/dist/{pushNotifications-CMmRsbKv.mjs → pushNotifications-gVJWGFBP.mjs} +3 -3
  125. package/dist/{query-CPXnDURZ.mjs → query-CGp9vY4e.mjs} +1 -1
  126. package/dist/{query-CK--1fbL.cjs → query-DFreaScb.cjs} +1 -1
  127. package/dist/{rateLimitWindows-DJxnNw-X.cjs → rateLimitWindows-CeogT1b6.cjs} +1 -1
  128. package/dist/{rateLimitWindows-Cqa4AGaB.mjs → rateLimitWindows-DM_gshI4.mjs} +1 -1
  129. package/dist/{registerCommonHandlers-DbNoM39q.cjs → registerCommonHandlers-CRqKXwQt.cjs} +2 -2
  130. package/dist/{registerCommonHandlers-K8dICQO2.mjs → registerCommonHandlers-CyAtDNvs.mjs} +2 -2
  131. package/dist/{registerKillSessionHandler-DiS_go8d.cjs → registerKillSessionHandler-CX49N52L.cjs} +6 -6
  132. package/dist/{registerKillSessionHandler-O1iriOMO.mjs → registerKillSessionHandler-DGWADNla.mjs} +6 -6
  133. package/dist/{remoteSessionClient-BlURPulk.mjs → remoteSessionClient-1nycIdrG.mjs} +5 -5
  134. package/dist/{remoteSessionClient-CtV9mDko.cjs → remoteSessionClient-CuAkp19e.cjs} +5 -5
  135. package/dist/{reportProgressTool-DlD_xjzU.cjs → reportProgressTool-BS7TkeEk.cjs} +4 -4
  136. package/dist/{reportProgressTool-nCExrHZH.mjs → reportProgressTool-CdSi-uSC.mjs} +4 -4
  137. package/dist/{resources-CH1iP6Cv.mjs → resources-CLdQfe3b.mjs} +1 -1
  138. package/dist/{resources-BPyN59Iv.cjs → resources-CqwHPhdK.cjs} +1 -1
  139. package/dist/{run-drtwHYkO.mjs → run-DqjEj8M2.mjs} +101 -248
  140. package/dist/{run-BBNrcCfI.cjs → run-gVwkplx0.cjs} +111 -259
  141. package/dist/{runClaude-B3KSeby4.cjs → runClaude-CtVoFstP.cjs} +39 -24
  142. package/dist/{runClaude-CFp27Tyi.mjs → runClaude-CuSjrZSf.mjs} +39 -24
  143. package/dist/{runClaudeDeps-C_C9TCI0.cjs → runClaudeDeps-DqOgRuKq.cjs} +49 -40
  144. package/dist/{runClaudeDeps-DMcv93lA.mjs → runClaudeDeps-eazOhb6g.mjs} +54 -45
  145. package/dist/{runGemini-DzdSBAr9.cjs → runGemini-81wkPvMv.cjs} +37 -35
  146. package/dist/{runGemini-Bc6SY-hd.mjs → runGemini-B4EqAd1U.mjs} +37 -35
  147. package/dist/{runOpenClaw-DN6rEVqC.cjs → runOpenClaw-BK7ZQEKj.cjs} +18 -18
  148. package/dist/{runOpenClaw-DI0qMlgF.mjs → runOpenClaw-Brb1KKAA.mjs} +18 -18
  149. package/dist/{sandbox-DtttPBMA.cjs → sandbox-DFD6an8o.cjs} +4 -4
  150. package/dist/{sandbox-v-ffe8LR.mjs → sandbox-t43Exd4t.mjs} +4 -4
  151. package/dist/{selfCheck-B-yy6bW3.cjs → selfCheck-Bel50SH3.cjs} +37 -36
  152. package/dist/selfCheck-CwpZepG-.mjs +86 -0
  153. package/dist/{send-DpBwSZuj.mjs → send-Co9jxmc4.mjs} +8 -8
  154. package/dist/{send-ShzXYPRu.cjs → send-IR5DnG9V.cjs} +8 -8
  155. package/dist/{server-CEzKrfKj.cjs → server-CAo6a3Vw.cjs} +6 -6
  156. package/dist/{server-DScgJXxa.mjs → server-KnIeKeTb.mjs} +4 -4
  157. package/dist/{sessionLock-Dc0fadGG.cjs → sessionLock-DNGDn9oj.cjs} +3 -3
  158. package/dist/{sessionLock-B6K4SBZD.mjs → sessionLock-ha9gsQEn.mjs} +3 -3
  159. package/dist/{sessionOps-D0BPWPoh.mjs → sessionOps-Di9MC0FP.mjs} +4 -4
  160. package/dist/{sessionOps-Dx7wARjI.cjs → sessionOps-hRqzcMXB.cjs} +4 -4
  161. package/dist/sessionProvider-4Nn6e9Kd.mjs +109 -0
  162. package/dist/sessionProvider-LqE7Y_cf.cjs +114 -0
  163. package/dist/{sessionScanner-BJ35TVG6.cjs → sessionScanner-BzEtrHB8.cjs} +3 -3
  164. package/dist/{sessionScanner-9Fpgaxtf.mjs → sessionScanner-DKFKDsrW.mjs} +3 -3
  165. package/dist/{sessions-TZGGAry1.cjs → sessions-CmLiagcb.cjs} +10 -10
  166. package/dist/{sessions-CFtDlyZd.mjs → sessions-DzgMNXo5.mjs} +10 -10
  167. package/dist/{setupOfflineReconnection-Biaus-0T.mjs → setupOfflineReconnection-D4NGi3Jf.mjs} +2 -2
  168. package/dist/{setupOfflineReconnection-B1GsVA8P.cjs → setupOfflineReconnection-Dq4N2Txp.cjs} +2 -2
  169. package/dist/{spawn-CsoQ-Ecz.mjs → spawn-C6CE5PsI.mjs} +14 -14
  170. package/dist/{spawn-BRTuypQ2.cjs → spawn-tmoekkOW.cjs} +14 -14
  171. package/dist/{spawnAgents-CG211IW7.cjs → spawnAgents-D15n6tAj.cjs} +1 -1
  172. package/dist/{spawnAgents-Co-SLcx-.mjs → spawnAgents-jXo9jIYo.mjs} +1 -1
  173. package/dist/{spawnHappyCLI-D1doCjkZ.mjs → spawnHappyCLI-66grqHO0.mjs} +1 -1
  174. package/dist/{spawnHappyCLI-D47kX6jg.cjs → spawnHappyCLI-8NcKgkuy.cjs} +1 -1
  175. package/dist/{specialCommands-xSmqT_Fu.mjs → specialCommands-BO8ipH0n.mjs} +3 -3
  176. package/dist/{specialCommands-Ch-Gvy-i.cjs → specialCommands-Dq0TmY1Z.cjs} +3 -3
  177. package/dist/{startFileWatcher-CCl2fFxT.mjs → startFileWatcher-BLDkieUW.mjs} +1 -1
  178. package/dist/{startFileWatcher-gKQTstR6.cjs → startFileWatcher-CjgKvec9.cjs} +1 -1
  179. package/dist/{startupSessionCreate-DlZc8yPl.mjs → startupSessionCreate-B60THeNz.mjs} +1 -1
  180. package/dist/{startupSessionCreate-BXqoUX30.cjs → startupSessionCreate-CXRVahaU.cjs} +1 -1
  181. package/dist/{streamRelay-B-J-4St1.cjs → streamRelay-CtTpf-Li.cjs} +1 -1
  182. package/dist/{streamRelay-DnJXsi36.mjs → streamRelay-GzHxvMem.mjs} +1 -1
  183. package/dist/{sync-BbjMC3sR.mjs → sync-DJvx7RbO.mjs} +1 -1
  184. package/dist/{sync-BxMdnZzz.cjs → sync-DKSZOi6w.cjs} +1 -1
  185. package/dist/{systemPrompt-C2KojRmK.cjs → systemPrompt-Duos1BtM.cjs} +2 -2
  186. package/dist/{systemPrompt-CmSDAoIx.mjs → systemPrompt-dOOpz8L7.mjs} +2 -2
  187. package/dist/{teams-DESdalox.cjs → teams-pO5rjvPO.cjs} +9 -9
  188. package/dist/{teams-lRy1MS0Z.mjs → teams-uWiMJEe1.mjs} +9 -9
  189. package/dist/{template-BaHAmH2K.cjs → template-BLJxflCH.cjs} +32 -2
  190. package/dist/{template-CiOPa2rd.mjs → template-YlpbYGeQ.mjs} +31 -3
  191. package/dist/{time-DNLeIRgR.cjs → time-D-8GFCE7.cjs} +1 -1
  192. package/dist/{time-Cfknl7xG.mjs → time-Du0scQeJ.mjs} +1 -1
  193. package/dist/{titleGenerator-ClnMSzwC.mjs → titleGenerator-DKYj8rLY.mjs} +1 -1
  194. package/dist/{titleGenerator-YNutaU88.cjs → titleGenerator-DnKygjBP.cjs} +2 -2
  195. package/dist/{todo-DS75Mboz.cjs → todo-BFDb7O8q.cjs} +6 -6
  196. package/dist/{todo-DZbK5POc.mjs → todo-Du5dAwnt.mjs} +6 -6
  197. package/dist/{tools-BgdU0dWp.mjs → tools-DHvMVL0a.mjs} +1 -1
  198. package/dist/{tools-ClYcb1YQ.cjs → tools-DK_x86Kl.cjs} +1 -1
  199. package/dist/{uninstall-bXenFevR.mjs → uninstall-CLDEXir0.mjs} +3 -3
  200. package/dist/{uninstall-Di1vPBLV.cjs → uninstall-c3zjum2o.cjs} +3 -3
  201. package/package.json +7 -7
  202. package/dist/daemonSupervisor-B-SPSqhs.cjs +0 -13
  203. package/dist/daemonSupervisor-C6urv3_8.mjs +0 -10
  204. package/dist/selfCheck-BDfTwxqB.mjs +0 -85
@@ -1,11 +1,11 @@
1
1
  import { spawn } from 'node:child_process';
2
2
  import { ndJsonStream, ClientSideConnection } from '@agentclientprotocol/sdk';
3
3
  import { randomUUID } from 'node:crypto';
4
- import { l as logger } from './logger-DpqihN1f.mjs';
5
- import { d as delay } from './time-Cfknl7xG.mjs';
4
+ import { l as logger } from './logger-D2qd0mMg.mjs';
5
+ import { d as delay } from './time-Du0scQeJ.mjs';
6
6
  import { c as contentLogMetadata, e as errorLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
7
7
  import { r as readableStderrTail, a as appendStderrRing, s as stopProcessGracefully, k as killProcessTree } from './processTree-CP5IvQ2Z.mjs';
8
- import { p as packageJson } from './package-CKj8zndE.mjs';
8
+ import { p as packageJson } from './package-Ek5FOyEo.mjs';
9
9
 
10
10
  function acpImageBlocks(attachments, supportsImages) {
11
11
  return attachments.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => {
@@ -3,11 +3,11 @@
3
3
  var node_child_process = require('node:child_process');
4
4
  var sdk = require('@agentclientprotocol/sdk');
5
5
  var node_crypto = require('node:crypto');
6
- var logger = require('./logger-DK1ytCz6.cjs');
7
- var time = require('./time-DNLeIRgR.cjs');
6
+ var logger = require('./logger-CrtT0opS.cjs');
7
+ var time = require('./time-D-8GFCE7.cjs');
8
8
  var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
9
9
  var processTree = require('./processTree-CMHWlVse.cjs');
10
- var _package = require('./package-BfeqAzyJ.cjs');
10
+ var _package = require('./package-DczR1k0c.cjs');
11
11
 
12
12
  function acpImageBlocks(attachments, supportsImages) {
13
13
  return attachments.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => {
@@ -1,5 +1,6 @@
1
1
  import { createId } from '@paralleldrive/cuid2';
2
- import { s as streamKeyOf, e as createEnvelope } from './index-BI0h2Zks.mjs';
2
+ import { s as streamKeyOf, g as createEnvelope } from './index-DisBaRvM.mjs';
3
+ import { t as textResultPayload, b as toolResultPayload } from './api-BpTDU2BO.mjs';
3
4
 
4
5
  function turnOptions(turnId, time) {
5
6
  return turnId ? { turn: turnId, time } : { time };
@@ -11,9 +12,15 @@ function buildToolDescription(toolName) {
11
12
  return `Running ${toolName}`;
12
13
  }
13
14
  function toolCallEndResult(result) {
14
- if (!result || typeof result !== "object" || Array.isArray(result)) return void 0;
15
+ if (typeof result === "string") return textResultPayload(result, false);
16
+ if (Array.isArray(result)) return toolResultPayload({ content: result });
17
+ if (!result || typeof result !== "object") return void 0;
15
18
  const record = result;
16
- if (typeof record.text !== "string") return void 0;
19
+ if (typeof record.text !== "string") {
20
+ if (record.error !== void 0) return textResultPayload(typeof record.error === "string" ? record.error : JSON.stringify(record.error) ?? "", true);
21
+ if (Array.isArray(record.content)) return toolResultPayload({ content: record.content });
22
+ return void 0;
23
+ }
17
24
  const exitCode = typeof record.exitCode === "number" ? record.exitCode : void 0;
18
25
  const text = exitCode !== void 0 && exitCode !== 0 ? `${record.text}${record.text.endsWith("\n") || record.text === "" ? "" : "\n"}[exit code ${exitCode}]` : record.text;
19
26
  return {
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var cuid2 = require('@paralleldrive/cuid2');
4
- var index = require('./index-oh8XEozJ.cjs');
4
+ var index = require('./index-Ub-5xbcU.cjs');
5
+ var api = require('./api-rw5xkzxo.cjs');
5
6
 
6
7
  function turnOptions(turnId, time) {
7
8
  return turnId ? { turn: turnId, time } : { time };
@@ -13,9 +14,15 @@ function buildToolDescription(toolName) {
13
14
  return `Running ${toolName}`;
14
15
  }
15
16
  function toolCallEndResult(result) {
16
- if (!result || typeof result !== "object" || Array.isArray(result)) return void 0;
17
+ if (typeof result === "string") return api.textResultPayload(result, false);
18
+ if (Array.isArray(result)) return api.toolResultPayload({ content: result });
19
+ if (!result || typeof result !== "object") return void 0;
17
20
  const record = result;
18
- if (typeof record.text !== "string") return void 0;
21
+ if (typeof record.text !== "string") {
22
+ if (record.error !== void 0) return api.textResultPayload(typeof record.error === "string" ? record.error : JSON.stringify(record.error) ?? "", true);
23
+ if (Array.isArray(record.content)) return api.toolResultPayload({ content: record.content });
24
+ return void 0;
25
+ }
19
26
  const exitCode = typeof record.exitCode === "number" ? record.exitCode : void 0;
20
27
  const text = exitCode !== void 0 && exitCode !== 0 ? `${record.text}${record.text.endsWith("\n") || record.text === "" ? "" : "\n"}[exit code ${exitCode}]` : record.text;
21
28
  return {
@@ -1,4 +1,4 @@
1
- import { l as logger } from './logger-DpqihN1f.mjs';
1
+ import { l as logger } from './logger-D2qd0mMg.mjs';
2
2
 
3
3
  class BasePermissionHandler {
4
4
  pendingRequests = /* @__PURE__ */ new Map();
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-DK1ytCz6.cjs');
3
+ var logger = require('./logger-CrtT0opS.cjs');
4
4
 
5
5
  class BasePermissionHandler {
6
6
  pendingRequests = /* @__PURE__ */ new Map();
@@ -2,7 +2,7 @@
2
2
 
3
3
  var node_fs = require('node:fs');
4
4
  var path = require('node:path');
5
- var configuration = require('./configuration-B-CugKJ3.cjs');
5
+ var configuration = require('./configuration-C9Sx-Foo.cjs');
6
6
 
7
7
  const SESSION_MODE_DIR = "session-modes";
8
8
  const ACP_PERMISSION_MODES = ["default", "acceptEdits", "plan", "bypassPermissions"];
@@ -1,6 +1,6 @@
1
1
  import { mkdirSync, renameSync, existsSync, unlinkSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
- import { w as writePrivateFileSync, c as configuration } from './configuration-YXw_Dcsb.mjs';
3
+ import { w as writePrivateFileSync, c as configuration } from './configuration-CVgUe2qN.mjs';
4
4
 
5
5
  const SESSION_MODE_DIR = "session-modes";
6
6
  const ACP_PERMISSION_MODES = ["default", "acceptEdits", "plan", "bypassPermissions"];
@@ -1,13 +1,13 @@
1
1
  import chalk from 'chalk';
2
2
  import { homedir } from 'node:os';
3
- import { r as readSettings, u as updateSettings } from './persistence-jOEuAFTS.mjs';
3
+ import { r as readSettings, u as updateSettings } from './persistence-DFtgQvr6.mjs';
4
4
  import 'node:fs';
5
- import './logger-DpqihN1f.mjs';
5
+ import './logger-D2qd0mMg.mjs';
6
6
  import { d as describeAgentHome, p as probeLoginShellEnv, r as resolveAgentHomes, e as expandHomePath, A as AGENT_HOME_ENV_NAMES } from './loginShellEnv-Dw8M7tkI.mjs';
7
7
  import 'node:fs/promises';
8
- import './configuration-YXw_Dcsb.mjs';
8
+ import './configuration-CVgUe2qN.mjs';
9
9
  import 'node:path';
10
- import './package-CKj8zndE.mjs';
10
+ import './package-Ek5FOyEo.mjs';
11
11
  import 'zod';
12
12
  import './authRelay-DhQhkBvX.mjs';
13
13
  import 'node:crypto';
@@ -2,14 +2,14 @@
2
2
 
3
3
  var chalk = require('chalk');
4
4
  var os = require('node:os');
5
- var persistence = require('./persistence-BdpwWXKh.cjs');
5
+ var persistence = require('./persistence-IYH6bAXY.cjs');
6
6
  require('node:fs');
7
- require('./logger-DK1ytCz6.cjs');
7
+ require('./logger-CrtT0opS.cjs');
8
8
  var loginShellEnv = require('./loginShellEnv-BkuYtExZ.cjs');
9
9
  require('node:fs/promises');
10
- require('./configuration-B-CugKJ3.cjs');
10
+ require('./configuration-C9Sx-Foo.cjs');
11
11
  require('node:path');
12
- require('./package-BfeqAzyJ.cjs');
12
+ require('./package-DczR1k0c.cjs');
13
13
  require('zod');
14
14
  require('./authRelay-Dy1qU9td.cjs');
15
15
  require('node:crypto');
@@ -1,20 +1,20 @@
1
1
  import axios from 'axios';
2
- import { l as logger, r as redactLogValue } from './logger-DpqihN1f.mjs';
3
- import { R as RpcHandlerManager, a as answerSocketRequest, c as connectGuarded, s as socketConnectGuard, d as describeSocketAckDrop, b as safeAck, i as isRateQuotaCode, p as pauseForRateQuota, e as shouldReconnect } from './lidState-D8Iuvjgl.mjs';
2
+ import { l as logger, r as redactLogValue } from './logger-D2qd0mMg.mjs';
3
+ import { R as RpcHandlerManager, a as answerSocketRequest, c as connectGuarded, s as socketConnectGuard, d as describeSocketAckDrop, b as safeAck, i as isRateQuotaCode, p as pauseForRateQuota, e as shouldReconnect } from './lidState-CBjQEwTt.mjs';
4
4
  import { EventEmitter } from 'node:events';
5
5
  import { io } from 'socket.io-client';
6
- import { A as AsyncLock, a as MAX_CHAT_ATTACHMENT_ENCRYPTED_BYTES, U as UserMessageSchema, F as FileEventMessageSchema, P as PushNotificationClient } from './pushNotifications-CMmRsbKv.mjs';
6
+ import { A as AsyncLock, a as MAX_CHAT_ATTACHMENT_ENCRYPTED_BYTES, U as UserMessageSchema, F as FileEventMessageSchema, P as PushNotificationClient } from './pushNotifications-gVJWGFBP.mjs';
7
7
  import { h as decrypt, d as decodeBase64, i as decryptBlob, e as encodeBase64, g as encrypt, l as libsodiumEncryptForPublicKey, j as libsodiumPublicKeyFromSecretKey, k as getRandomBytes } from './authRelay-DhQhkBvX.mjs';
8
8
  import { p as prepareClipboardText, d as prepareClipboardHistoryText } from './limits-DIo7rEBR.mjs';
9
- import { b as backoff, d as delay, e as exponentialBackoffDelay } from './time-Cfknl7xG.mjs';
10
- import { c as configuration } from './configuration-YXw_Dcsb.mjs';
9
+ import { b as backoff, d as delay, e as exponentialBackoffDelay } from './time-Du0scQeJ.mjs';
10
+ import { c as configuration } from './configuration-CVgUe2qN.mjs';
11
11
  import { createHmac, randomUUID } from 'node:crypto';
12
- import { e as createEnvelope, s as streamKeyOf, R as ReleaseDrainNoticeSchema, v as RelayAssignmentResponseSchema } from './index-BI0h2Zks.mjs';
13
- import { r as registerCommonHandlers } from './registerCommonHandlers-K8dICQO2.mjs';
12
+ import { g as createEnvelope, s as streamKeyOf, R as ReleaseDrainNoticeSchema, H as RelayAssignmentResponseSchema } from './index-DisBaRvM.mjs';
13
+ import { r as registerCommonHandlers } from './registerCommonHandlers-CyAtDNvs.mjs';
14
14
  import { createId } from '@paralleldrive/cuid2';
15
- import { I as InvalidateSync } from './sync-BbjMC3sR.mjs';
15
+ import { I as InvalidateSync } from './sync-DJvx7RbO.mjs';
16
16
  import { B as BackgroundTaskReporter } from './backgroundTaskActivity-8PdPxrvy.mjs';
17
- import { k as notifyDaemonTurnEvent, m as notifyDaemonBackgroundTasks } from './controlClient-BL4hb4l3.mjs';
17
+ import { m as notifyDaemonTurnEvent, o as notifyDaemonBackgroundTasks } from './controlClient-DMCxtwq2.mjs';
18
18
  import chalk from 'chalk';
19
19
 
20
20
  async function hmac_sha512(key, data) {
@@ -185,6 +185,66 @@ function shouldEmitProgress(previous, toolUses, now) {
185
185
  return now - previous.lastAt >= SUBAGENT_PROGRESS_MIN_INTERVAL_MS;
186
186
  }
187
187
 
188
+ const TOOL_RESULT_MAX_BYTES = 32 * 1024;
189
+ function formatSize(bytes) {
190
+ if (bytes >= 1024 * 1024) return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
191
+ return `${Math.max(1, Math.round(bytes / 1024))} KB`;
192
+ }
193
+ function base64Bytes(data) {
194
+ const padding = data.endsWith("==") ? 2 : data.endsWith("=") ? 1 : 0;
195
+ return Math.max(0, Math.floor(data.length * 3 / 4) - padding);
196
+ }
197
+ function binaryBlockLabel(kind, source) {
198
+ const src = source && typeof source === "object" ? source : {};
199
+ const parts = [typeof src.media_type === "string" ? src.media_type : null];
200
+ if (typeof src.data === "string") parts.push(formatSize(base64Bytes(src.data)));
201
+ const detail = parts.filter(Boolean).join(", ");
202
+ return detail ? `[${kind} ${detail}]` : `[${kind}]`;
203
+ }
204
+ function toolResultContentText(content) {
205
+ if (typeof content === "string") return content;
206
+ if (!Array.isArray(content)) return "";
207
+ const parts = [];
208
+ for (const block of content) {
209
+ if (!block || typeof block !== "object") continue;
210
+ const b = block;
211
+ if (b.type === "text" && typeof b.text === "string") parts.push(b.text);
212
+ else if (b.type === "image" || b.type === "document" || b.type === "audio") {
213
+ parts.push(binaryBlockLabel(b.type, b.source ?? { media_type: b.mimeType, data: b.data }));
214
+ } else if (b.type === "content") {
215
+ const inner = toolResultContentText([b.content]);
216
+ if (inner) parts.push(inner);
217
+ } else if (b.type === "diff" || b.type === "terminal") continue;
218
+ else if (typeof b.type === "string") parts.push(`[${b.type}]`);
219
+ }
220
+ return parts.join("\n");
221
+ }
222
+ function capUtf8(text, maxBytes = TOOL_RESULT_MAX_BYTES) {
223
+ if (text.length * 3 <= maxBytes) return { text, truncated: false };
224
+ let bytes = 0;
225
+ let end = 0;
226
+ for (const ch of text) {
227
+ const cp = ch.codePointAt(0);
228
+ const size = cp < 128 ? 1 : cp < 2048 ? 2 : cp < 65536 ? 3 : 4;
229
+ if (bytes + size > maxBytes) return { text: text.slice(0, end), truncated: true };
230
+ bytes += size;
231
+ end += ch.length;
232
+ }
233
+ return { text, truncated: false };
234
+ }
235
+ function toolResultPayload(block, maxBytes = TOOL_RESULT_MAX_BYTES) {
236
+ return textResultPayload(toolResultContentText(block.content), block.is_error === true, maxBytes);
237
+ }
238
+ function textResultPayload(raw, isError, maxBytes = TOOL_RESULT_MAX_BYTES) {
239
+ if (!raw && !isError) return void 0;
240
+ const capped = capUtf8(raw, maxBytes);
241
+ return {
242
+ text: capped.text,
243
+ ...capped.truncated ? { truncated: true } : {},
244
+ ...isError ? { isError: true } : {}
245
+ };
246
+ }
247
+
188
248
  const SUBAGENT_BUFFER_MAX_MESSAGES = 100;
189
249
  function isSubagentTool(name) {
190
250
  return name === "Task" || name === "Agent";
@@ -817,9 +877,11 @@ function mapClaudeLogMessageToSessionEnvelopesInternal(message, state) {
817
877
  maybeEmitSubagentStop(state, turnId, sessionSubagentForToolResult, envelopes);
818
878
  }
819
879
  }
880
+ const toolResult = toolResultPayload(block);
820
881
  envelopes.push(createEnvelope("agent", {
821
882
  t: "tool-call-end",
822
- call: block.tool_use_id
883
+ call: block.tool_use_id,
884
+ ...toolResult ? { result: toolResult } : {}
823
885
  }, { turn: turnId, subagent }));
824
886
  continue;
825
887
  }
@@ -1601,6 +1663,11 @@ class ApiSessionClient extends EventEmitter {
1601
1663
  const messageWithSource = sourceLocalId && typeof message === "object" && message !== null ? { ...message, localKey: message.localKey ?? sourceLocalId } : message;
1602
1664
  const userResult = UserMessageSchema.safeParse(messageWithSource);
1603
1665
  if (userResult.success) {
1666
+ try {
1667
+ this.emit("user-message-routed", { localId: sourceLocalId ?? null, message: userResult.data });
1668
+ } catch (error) {
1669
+ logger.debug("[API] user-message-routed listener failed:", error);
1670
+ }
1604
1671
  if (this.pendingMessageCallback) {
1605
1672
  this.pendingMessageCallback(userResult.data);
1606
1673
  } else {
@@ -2947,7 +3014,7 @@ class ApiClient {
2947
3014
  return new ApiSessionClient(this.credential.token, session, opts);
2948
3015
  }
2949
3016
  async machineSyncClient(machine) {
2950
- const { ApiMachineClient } = await import('./apiMachine-C_GA5Bm-.mjs');
3017
+ const { ApiMachineClient } = await import('./apiMachine-wp0hWG3F.mjs');
2951
3018
  return new ApiMachineClient(this.credential.token, machine);
2952
3019
  }
2953
3020
  push() {
@@ -3241,4 +3308,4 @@ var api = /*#__PURE__*/Object.freeze({
3241
3308
  describeSessionCreateError: describeSessionCreateError
3242
3309
  });
3243
3310
 
3244
- export { ApiClient as A, TurnActivityTracker as T, ApiSessionClient as a, api as b, connectionState as c, startOfflineReconnection as s };
3311
+ export { ApiClient as A, TurnActivityTracker as T, ApiSessionClient as a, toolResultPayload as b, connectionState as c, toolResultContentText as d, api as e, startOfflineReconnection as s, textResultPayload as t };
@@ -1,22 +1,22 @@
1
1
  'use strict';
2
2
 
3
3
  var axios = require('axios');
4
- var logger = require('./logger-DK1ytCz6.cjs');
5
- var lidState = require('./lidState-DcPvwniz.cjs');
4
+ var logger = require('./logger-CrtT0opS.cjs');
5
+ var lidState = require('./lidState-C4YgPn6y.cjs');
6
6
  var node_events = require('node:events');
7
7
  var socket_ioClient = require('socket.io-client');
8
- var pushNotifications = require('./pushNotifications-CyQVDThC.cjs');
8
+ var pushNotifications = require('./pushNotifications-BgQ_QTgS.cjs');
9
9
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
10
10
  var limits = require('./limits-C-a7gr04.cjs');
11
- var time = require('./time-DNLeIRgR.cjs');
12
- var configuration = require('./configuration-B-CugKJ3.cjs');
11
+ var time = require('./time-D-8GFCE7.cjs');
12
+ var configuration = require('./configuration-C9Sx-Foo.cjs');
13
13
  var node_crypto = require('node:crypto');
14
- var index = require('./index-oh8XEozJ.cjs');
15
- var registerCommonHandlers = require('./registerCommonHandlers-DbNoM39q.cjs');
14
+ var index = require('./index-Ub-5xbcU.cjs');
15
+ var registerCommonHandlers = require('./registerCommonHandlers-CRqKXwQt.cjs');
16
16
  var cuid2 = require('@paralleldrive/cuid2');
17
- var sync = require('./sync-BxMdnZzz.cjs');
17
+ var sync = require('./sync-DKSZOi6w.cjs');
18
18
  var backgroundTaskActivity = require('./backgroundTaskActivity-CBvUdj39.cjs');
19
- var controlClient = require('./controlClient-D0kGwKYx.cjs');
19
+ var controlClient = require('./controlClient-BLO1_pPx.cjs');
20
20
  var chalk = require('chalk');
21
21
 
22
22
  async function hmac_sha512(key, data) {
@@ -187,6 +187,66 @@ function shouldEmitProgress(previous, toolUses, now) {
187
187
  return now - previous.lastAt >= SUBAGENT_PROGRESS_MIN_INTERVAL_MS;
188
188
  }
189
189
 
190
+ const TOOL_RESULT_MAX_BYTES = 32 * 1024;
191
+ function formatSize(bytes) {
192
+ if (bytes >= 1024 * 1024) return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
193
+ return `${Math.max(1, Math.round(bytes / 1024))} KB`;
194
+ }
195
+ function base64Bytes(data) {
196
+ const padding = data.endsWith("==") ? 2 : data.endsWith("=") ? 1 : 0;
197
+ return Math.max(0, Math.floor(data.length * 3 / 4) - padding);
198
+ }
199
+ function binaryBlockLabel(kind, source) {
200
+ const src = source && typeof source === "object" ? source : {};
201
+ const parts = [typeof src.media_type === "string" ? src.media_type : null];
202
+ if (typeof src.data === "string") parts.push(formatSize(base64Bytes(src.data)));
203
+ const detail = parts.filter(Boolean).join(", ");
204
+ return detail ? `[${kind} ${detail}]` : `[${kind}]`;
205
+ }
206
+ function toolResultContentText(content) {
207
+ if (typeof content === "string") return content;
208
+ if (!Array.isArray(content)) return "";
209
+ const parts = [];
210
+ for (const block of content) {
211
+ if (!block || typeof block !== "object") continue;
212
+ const b = block;
213
+ if (b.type === "text" && typeof b.text === "string") parts.push(b.text);
214
+ else if (b.type === "image" || b.type === "document" || b.type === "audio") {
215
+ parts.push(binaryBlockLabel(b.type, b.source ?? { media_type: b.mimeType, data: b.data }));
216
+ } else if (b.type === "content") {
217
+ const inner = toolResultContentText([b.content]);
218
+ if (inner) parts.push(inner);
219
+ } else if (b.type === "diff" || b.type === "terminal") continue;
220
+ else if (typeof b.type === "string") parts.push(`[${b.type}]`);
221
+ }
222
+ return parts.join("\n");
223
+ }
224
+ function capUtf8(text, maxBytes = TOOL_RESULT_MAX_BYTES) {
225
+ if (text.length * 3 <= maxBytes) return { text, truncated: false };
226
+ let bytes = 0;
227
+ let end = 0;
228
+ for (const ch of text) {
229
+ const cp = ch.codePointAt(0);
230
+ const size = cp < 128 ? 1 : cp < 2048 ? 2 : cp < 65536 ? 3 : 4;
231
+ if (bytes + size > maxBytes) return { text: text.slice(0, end), truncated: true };
232
+ bytes += size;
233
+ end += ch.length;
234
+ }
235
+ return { text, truncated: false };
236
+ }
237
+ function toolResultPayload(block, maxBytes = TOOL_RESULT_MAX_BYTES) {
238
+ return textResultPayload(toolResultContentText(block.content), block.is_error === true, maxBytes);
239
+ }
240
+ function textResultPayload(raw, isError, maxBytes = TOOL_RESULT_MAX_BYTES) {
241
+ if (!raw && !isError) return void 0;
242
+ const capped = capUtf8(raw, maxBytes);
243
+ return {
244
+ text: capped.text,
245
+ ...capped.truncated ? { truncated: true } : {},
246
+ ...isError ? { isError: true } : {}
247
+ };
248
+ }
249
+
190
250
  const SUBAGENT_BUFFER_MAX_MESSAGES = 100;
191
251
  function isSubagentTool(name) {
192
252
  return name === "Task" || name === "Agent";
@@ -819,9 +879,11 @@ function mapClaudeLogMessageToSessionEnvelopesInternal(message, state) {
819
879
  maybeEmitSubagentStop(state, turnId, sessionSubagentForToolResult, envelopes);
820
880
  }
821
881
  }
882
+ const toolResult = toolResultPayload(block);
822
883
  envelopes.push(index.createEnvelope("agent", {
823
884
  t: "tool-call-end",
824
- call: block.tool_use_id
885
+ call: block.tool_use_id,
886
+ ...toolResult ? { result: toolResult } : {}
825
887
  }, { turn: turnId, subagent }));
826
888
  continue;
827
889
  }
@@ -1603,6 +1665,11 @@ class ApiSessionClient extends node_events.EventEmitter {
1603
1665
  const messageWithSource = sourceLocalId && typeof message === "object" && message !== null ? { ...message, localKey: message.localKey ?? sourceLocalId } : message;
1604
1666
  const userResult = pushNotifications.UserMessageSchema.safeParse(messageWithSource);
1605
1667
  if (userResult.success) {
1668
+ try {
1669
+ this.emit("user-message-routed", { localId: sourceLocalId ?? null, message: userResult.data });
1670
+ } catch (error) {
1671
+ logger.logger.debug("[API] user-message-routed listener failed:", error);
1672
+ }
1606
1673
  if (this.pendingMessageCallback) {
1607
1674
  this.pendingMessageCallback(userResult.data);
1608
1675
  } else {
@@ -2949,7 +3016,7 @@ class ApiClient {
2949
3016
  return new ApiSessionClient(this.credential.token, session, opts);
2950
3017
  }
2951
3018
  async machineSyncClient(machine) {
2952
- const { ApiMachineClient } = await Promise.resolve().then(function () { return require('./apiMachine-DPGrED5C.cjs'); });
3019
+ const { ApiMachineClient } = await Promise.resolve().then(function () { return require('./apiMachine-Bs1XXHKs.cjs'); });
2953
3020
  return new ApiMachineClient(this.credential.token, machine);
2954
3021
  }
2955
3022
  push() {
@@ -3249,3 +3316,6 @@ exports.TurnActivityTracker = TurnActivityTracker;
3249
3316
  exports.api = api;
3250
3317
  exports.connectionState = connectionState;
3251
3318
  exports.startOfflineReconnection = startOfflineReconnection;
3319
+ exports.textResultPayload = textResultPayload;
3320
+ exports.toolResultContentText = toolResultContentText;
3321
+ exports.toolResultPayload = toolResultPayload;
@@ -2,45 +2,45 @@
2
2
 
3
3
  var socket_ioClient = require('socket.io-client');
4
4
  var webPanels = require('./webPanels-FCgFKvVe.cjs');
5
- var logger = require('./logger-DK1ytCz6.cjs');
6
- var lidState = require('./lidState-DcPvwniz.cjs');
7
- var mirrorProtocol = require('./mirrorProtocol-DkWOcZh9.cjs');
8
- var configuration = require('./configuration-B-CugKJ3.cjs');
5
+ var logger = require('./logger-CrtT0opS.cjs');
6
+ var lidState = require('./lidState-C4YgPn6y.cjs');
7
+ var mirrorProtocol = require('./mirrorProtocol-D4CR5I5W.cjs');
8
+ var configuration = require('./configuration-C9Sx-Foo.cjs');
9
9
  var cliUpdate = require('./cliUpdate-DsKXPFYp.cjs');
10
- var registerCommonHandlers = require('./registerCommonHandlers-DbNoM39q.cjs');
10
+ var registerCommonHandlers = require('./registerCommonHandlers-CRqKXwQt.cjs');
11
11
  var promises = require('node:fs/promises');
12
12
  var path = require('node:path');
13
13
  var os = require('node:os');
14
14
  var fsMkdir = require('./fsMkdir-0K3yENml.cjs');
15
15
  var node_child_process = require('node:child_process');
16
- var persistence = require('./persistence-BdpwWXKh.cjs');
16
+ var persistence = require('./persistence-IYH6bAXY.cjs');
17
17
  var fileStore = require('./fileStore-7qhnbs6N.cjs');
18
18
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
19
19
  var limits = require('./limits-C-a7gr04.cjs');
20
- var time = require('./time-DNLeIRgR.cjs');
20
+ var time = require('./time-D-8GFCE7.cjs');
21
21
  var pty = require('node-pty');
22
22
  var terminals = require('./terminals-B_bfC9c2.cjs');
23
23
  var tmuxSocket = require('./tmuxSocket-D-Xt6Vn-.cjs');
24
- var index = require('./index-B_aNaW9w.cjs');
24
+ var index = require('./index-BsoUsrKS.cjs');
25
25
  var node_crypto = require('node:crypto');
26
26
  var node_fs = require('node:fs');
27
27
  var axios = require('axios');
28
28
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
29
29
  var ids = require('./ids-B6ZC0HGt.cjs');
30
30
  var detectCLI = require('./detectCLI-BuYR_Qxe.cjs');
31
- var localHappyAgentAuth = require('./localHappyAgentAuth-SD6GM97y.cjs');
31
+ var localHappyAgentAuth = require('./localHappyAgentAuth-BzCuIkzi.cjs');
32
32
  var path$1 = require('./path-B7zW-WwE.cjs');
33
33
  var oneShotPrompts = require('./oneShotPrompts-CL0dip9C.cjs');
34
- var claudeSessionFork = require('./claudeSessionFork-BA4GE5AL.cjs');
35
- var codexAppServerClient = require('./codexAppServerClient-DhNDTU_i.cjs');
36
- var index$1 = require('./index-oh8XEozJ.cjs');
34
+ var claudeSessionFork = require('./claudeSessionFork-jq-_WiAu.cjs');
35
+ var codexAppServerClient = require('./codexAppServerClient-DF12ZSw1.cjs');
36
+ var index$1 = require('./index-Ub-5xbcU.cjs');
37
37
  var codexThreadFork = require('./codexThreadFork-DNekT4nQ.cjs');
38
- var rateLimitWindows = require('./rateLimitWindows-DJxnNw-X.cjs');
38
+ var rateLimitWindows = require('./rateLimitWindows-CeogT1b6.cjs');
39
39
  require('chalk');
40
40
  require('node:util');
41
41
  require('os');
42
42
  require('child_process');
43
- require('./package-BfeqAzyJ.cjs');
43
+ require('./package-DczR1k0c.cjs');
44
44
  require('util');
45
45
  require('fs/promises');
46
46
  require('crypto');
@@ -1,44 +1,44 @@
1
1
  import { io } from 'socket.io-client';
2
2
  import { a as webPanelsSignature } from './webPanels-B2_C2-3g.mjs';
3
- import { l as logger } from './logger-DpqihN1f.mjs';
4
- import { R as RpcHandlerManager, i as isRateQuotaCode, p as pauseForRateQuota, s as socketConnectGuard, c as connectGuarded, a as answerSocketRequest, e as shouldReconnect, d as describeSocketAckDrop } from './lidState-D8Iuvjgl.mjs';
5
- import { i as isClaudeSessionId, s as stableVersion, a as sanitizeTagList, p as pickMirrorForTerminal, l as liveSnapshotChanged, b as sanitizeLiveSnapshot, c as serializeLiveSnapshot, r as registerWorktreeHandlers, d as configureWorktreeService, e as summarizeSpawnSessionForLog, f as parseMirrorSendParams } from './mirrorProtocol-bsCUcaCY.mjs';
6
- import { c as configuration } from './configuration-YXw_Dcsb.mjs';
3
+ import { l as logger } from './logger-D2qd0mMg.mjs';
4
+ import { R as RpcHandlerManager, i as isRateQuotaCode, p as pauseForRateQuota, s as socketConnectGuard, c as connectGuarded, a as answerSocketRequest, e as shouldReconnect, d as describeSocketAckDrop } from './lidState-CBjQEwTt.mjs';
5
+ import { i as isClaudeSessionId, s as stableVersion, a as sanitizeTagList, p as pickMirrorForTerminal, l as liveSnapshotChanged, b as sanitizeLiveSnapshot, c as serializeLiveSnapshot, r as registerWorktreeHandlers, d as configureWorktreeService, e as summarizeSpawnSessionForLog, f as parseMirrorSendParams } from './mirrorProtocol-DTHWtAE5.mjs';
6
+ import { c as configuration } from './configuration-CVgUe2qN.mjs';
7
7
  import { w as withCurrentCliUpdateState } from './cliUpdate-Y34VGe9Y.mjs';
8
- import { r as registerCommonHandlers } from './registerCommonHandlers-K8dICQO2.mjs';
8
+ import { r as registerCommonHandlers } from './registerCommonHandlers-CyAtDNvs.mjs';
9
9
  import { stat, readdir, lstat, open, readFile, rm, mkdir, chmod, writeFile, rename } from 'node:fs/promises';
10
10
  import { join, isAbsolute, resolve } from 'node:path';
11
11
  import os, { homedir } from 'node:os';
12
12
  import { f as fsMkdir } from './fsMkdir-DumgLTzR.mjs';
13
13
  import { spawn, execFile, spawnSync } from 'node:child_process';
14
- import { r as readSettings, c as readPersistedSessions, o as readTrackedClaudeSessionIds, p as readTrackedCodexThreadIds } from './persistence-jOEuAFTS.mjs';
14
+ import { r as readSettings, c as readPersistedSessions, o as readTrackedClaudeSessionIds, p as readTrackedCodexThreadIds } from './persistence-DFtgQvr6.mjs';
15
15
  import { M as ModelConfigError } from './fileStore-5qpetZS0.mjs';
16
16
  import { e as encodeBase64, g as encrypt, h as decrypt, d as decodeBase64 } from './authRelay-DhQhkBvX.mjs';
17
17
  import { p as prepareClipboardText, d as prepareClipboardHistoryText } from './limits-DIo7rEBR.mjs';
18
- import { b as backoff, d as delay } from './time-Cfknl7xG.mjs';
18
+ import { b as backoff, d as delay } from './time-Du0scQeJ.mjs';
19
19
  import * as pty from 'node-pty';
20
20
  import { a as attachStartupCommand, v as validateTerminalTags, d as deriveAutoTitle, T as TMUX_SESSION_ID_RE, i as isSafeTmuxSessionName, b as isVhSessionName, U as USER_SESSIONS_FORMAT, p as parseUserSessions, L as LIST_SESSIONS_FORMAT, c as parseSessionListLine, e as LIST_FIELD_SEP, s as sendToVhTerminal } from './terminals-Dlg0x3nY.mjs';
21
21
  import { t as tmuxArgs, V as VH_TMUX_SOCKET_ENV, a as scrubTmuxClientEnv } from './tmuxSocket-B8Yx20sT.mjs';
22
- import { locateClaudeConversation, refreshAgentHomes } from './index-Cllzqoes.mjs';
22
+ import { locateClaudeConversation, refreshAgentHomes } from './index-C7zgeuLP.mjs';
23
23
  import { randomBytes } from 'node:crypto';
24
24
  import { readdirSync, unlinkSync, existsSync, mkdirSync, writeFileSync, readFileSync, statSync, chmodSync, renameSync, rmSync, accessSync, constants } from 'node:fs';
25
25
  import axios from 'axios';
26
26
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
27
27
  import { a as isValidTerminalId } from './ids-DU6sLx4C.mjs';
28
28
  import { d as detectCLIAvailability } from './detectCLI-CSGMlV51.mjs';
29
- import { d as detectResumeSupport } from './localHappyAgentAuth-D3rQDRd9.mjs';
29
+ import { d as detectResumeSupport } from './localHappyAgentAuth-CcWGU_lS.mjs';
30
30
  import { g as getProjectPath, a as getClaudeProjectsRoot } from './path-D2wdaNSk.mjs';
31
31
  import { i as isVeryHappyOneShotPrompt } from './oneShotPrompts-DT4p6RNd.mjs';
32
- import { f as forkSession, F as ForkSourceMissingError, d as discardForkedSession, l as listClaudeRewindPoints, a as forkAndTruncateSession, b as ForkTruncateUuidNotFoundError, c as forkBeforeUserMessage } from './claudeSessionFork-Cspr6QW0.mjs';
33
- import { C as CodexAppServerClient } from './codexAppServerClient-BlsOZLul.mjs';
34
- import { w as RelayCandidatesResponseSchema, v as RelayAssignmentResponseSchema, R as ReleaseDrainNoticeSchema } from './index-BI0h2Zks.mjs';
32
+ import { f as forkSession, F as ForkSourceMissingError, d as discardForkedSession, l as listClaudeRewindPoints, a as forkAndTruncateSession, b as ForkTruncateUuidNotFoundError, c as forkBeforeUserMessage } from './claudeSessionFork-C9nB7fs5.mjs';
33
+ import { C as CodexAppServerClient } from './codexAppServerClient-CmOIqiNQ.mjs';
34
+ import { J as RelayCandidatesResponseSchema, H as RelayAssignmentResponseSchema, R as ReleaseDrainNoticeSchema } from './index-DisBaRvM.mjs';
35
35
  import { f as forkCodexThread, C as CodexForkRewindPointNotFoundError, l as listCodexRewindPoints, a as forkCodexBeforeUserMessage } from './codexThreadFork-R76RU5H0.mjs';
36
- import { p as planRateLimitWrite, m as mergeRateLimitReports } from './rateLimitWindows-Cqa4AGaB.mjs';
36
+ import { p as planRateLimitWrite, m as mergeRateLimitReports } from './rateLimitWindows-DM_gshI4.mjs';
37
37
  import 'chalk';
38
38
  import 'node:util';
39
39
  import 'os';
40
40
  import 'child_process';
41
- import './package-CKj8zndE.mjs';
41
+ import './package-Ek5FOyEo.mjs';
42
42
  import 'util';
43
43
  import 'fs/promises';
44
44
  import 'crypto';
@@ -1,8 +1,8 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { writeFile, rename, unlink } from 'node:fs/promises';
3
3
  import { join, basename } from 'node:path';
4
- import { M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES } from './pushNotifications-CMmRsbKv.mjs';
5
- import { e as ensurePrivateDirectory, h as hardenPrivateFile } from './configuration-YXw_Dcsb.mjs';
4
+ import { M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES } from './pushNotifications-gVJWGFBP.mjs';
5
+ import { e as ensurePrivateDirectory, h as hardenPrivateFile } from './configuration-CVgUe2qN.mjs';
6
6
 
7
7
  const CLAUDE_ATTACHMENT_KINDS = [
8
8
  "image/jpeg",
@@ -3,8 +3,8 @@
3
3
  var node_crypto = require('node:crypto');
4
4
  var promises = require('node:fs/promises');
5
5
  var path = require('node:path');
6
- var pushNotifications = require('./pushNotifications-CyQVDThC.cjs');
7
- var configuration = require('./configuration-B-CugKJ3.cjs');
6
+ var pushNotifications = require('./pushNotifications-BgQ_QTgS.cjs');
7
+ var configuration = require('./configuration-C9Sx-Foo.cjs');
8
8
 
9
9
  const CLAUDE_ATTACHMENT_KINDS = [
10
10
  "image/jpeg",
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var persistence = require('./persistence-BdpwWXKh.cjs');
5
- var auth = require('./auth-Lw_utSMV.cjs');
6
- var configuration = require('./configuration-B-CugKJ3.cjs');
4
+ var persistence = require('./persistence-IYH6bAXY.cjs');
5
+ var auth = require('./auth-gGryJImw.cjs');
6
+ var configuration = require('./configuration-C9Sx-Foo.cjs');
7
7
  var node_fs = require('node:fs');
8
8
  var node_readline = require('node:readline');
9
- var controlClient = require('./controlClient-D0kGwKYx.cjs');
10
- var logger = require('./logger-DK1ytCz6.cjs');
9
+ var controlClient = require('./controlClient-BLO1_pPx.cjs');
10
+ var logger = require('./logger-CrtT0opS.cjs');
11
11
  var os = require('node:os');
12
12
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
13
13
  require('node:fs/promises');
@@ -15,11 +15,11 @@ require('zod');
15
15
  require('node:crypto');
16
16
  require('tweetnacl');
17
17
  require('axios');
18
- require('./time-DNLeIRgR.cjs');
19
- require('./browser-CZlA9AkO.cjs');
18
+ require('./time-D-8GFCE7.cjs');
19
+ require('./browser-D9D-1eqa.cjs');
20
20
  require('open');
21
21
  require('node:path');
22
- require('./package-BfeqAzyJ.cjs');
22
+ require('./package-DczR1k0c.cjs');
23
23
  require('node:util');
24
24
 
25
25
  function localMachineIdentityStatus(machineId) {