very-happy-cli 0.2.163 → 0.2.164

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 (172) hide show
  1. package/dist/{AcpBackend-CuOUXVRX.mjs → AcpBackend-B8l1ZePt.mjs} +3 -3
  2. package/dist/{AcpBackend-C2rzKnvT.cjs → AcpBackend-CHDqSii9.cjs} +3 -3
  3. package/dist/{AcpSessionManager-BvIuBzoO.cjs → AcpSessionManager-9yN2iH4b.cjs} +1 -1
  4. package/dist/{AcpSessionManager-BSIBnWUb.mjs → AcpSessionManager-BQnDJvct.mjs} +1 -1
  5. package/dist/{BasePermissionHandler-D6PdH-OU.cjs → BasePermissionHandler-DGQYvBPg.cjs} +1 -1
  6. package/dist/{BasePermissionHandler-Ng5h8JpY.mjs → BasePermissionHandler-DgtAtJTV.mjs} +1 -1
  7. package/dist/{BaseReasoningProcessor-C0cXz1mg.cjs → BaseReasoningProcessor-BqalZhQO.cjs} +1 -1
  8. package/dist/{BaseReasoningProcessor-CM-ijU4F.mjs → BaseReasoningProcessor-Dfacnfhj.mjs} +1 -1
  9. package/dist/{agentHome-Bt4lOwFE.mjs → agentHome-DM0urHEI.mjs} +4 -4
  10. package/dist/{agentHome-CAMEVRZZ.cjs → agentHome-DtsPKfTS.cjs} +4 -4
  11. package/dist/{api-DGFBAPr7.cjs → api-EKlS0r1w.cjs} +41 -15
  12. package/dist/{api-D5kfP3JF.mjs → api-Yoh_zKdR.mjs} +41 -15
  13. package/dist/{apiMachine-BxCy5_No.cjs → apiMachine-q71suojS.cjs} +20 -17
  14. package/dist/{apiMachine-C58eizxs.mjs → apiMachine-s3HiV-SL.mjs} +20 -17
  15. package/dist/{assistantTools-BvKH9eRc.mjs → assistantTools-BWfAV349.mjs} +6 -6
  16. package/dist/{assistantTools-NC7DMNvV.cjs → assistantTools-D3cZvgUX.cjs} +6 -6
  17. package/dist/{attachmentContent-CCE0Y3gR.mjs → attachmentContent-BLyyo1al.mjs} +2 -2
  18. package/dist/{attachmentContent-CUKdzh4v.cjs → attachmentContent-Bakb0XV3.cjs} +2 -2
  19. package/dist/{attachmentLimits-D5pgmASK.mjs → attachmentLimits-B8nzhw-i.mjs} +1 -1
  20. package/dist/{attachmentLimits-DzlBPyJP.cjs → attachmentLimits-eJZ4ZBjF.cjs} +1 -1
  21. package/dist/{auth-gdc8gI9D.mjs → auth-BTfv8yW0.mjs} +8 -8
  22. package/dist/{auth-Ddz597Rw.cjs → auth-Cn3dQInF.cjs} +5 -5
  23. package/dist/{auth-CRm8yNv6.mjs → auth-Cxhx5evk.mjs} +5 -5
  24. package/dist/{auth-CILb5DeW.cjs → auth-Hpg4Yxfa.cjs} +8 -8
  25. package/dist/{auto-lLjHfAOO.mjs → auto-BAAEVGZa.mjs} +14 -14
  26. package/dist/{auto-CXtt6MfS.cjs → auto-CK8irHum.cjs} +14 -14
  27. package/dist/{bootstrap-DSWZAtGy.mjs → bootstrap-CTNjn_aj.mjs} +2 -2
  28. package/dist/{bootstrap-CccIDvh4.cjs → bootstrap-D9SUykG_.cjs} +2 -2
  29. package/dist/{browser-lizgdXYj.cjs → browser-C8ztaIkm.cjs} +1 -1
  30. package/dist/{browser-DU9kI-Q-.mjs → browser-DydXWySF.mjs} +1 -1
  31. package/dist/{claudeLocal-CTR2xlPT.mjs → claudeLocal-CdJJovWq.mjs} +5 -5
  32. package/dist/{claudeLocal-Bp-lf6yb.cjs → claudeLocal-CsLFMvFU.cjs} +5 -5
  33. package/dist/{claudeLocalLauncher-DFkwLMqU.mjs → claudeLocalLauncher-CKazNnl0.mjs} +10 -10
  34. package/dist/{claudeLocalLauncher-aQyL3g7I.cjs → claudeLocalLauncher-DRc-tET5.cjs} +10 -10
  35. package/dist/{claudeSessionFork-DdJFvxwf.cjs → claudeSessionFork-BWdhyy9B.cjs} +1 -1
  36. package/dist/{claudeSessionFork-DABSCbkf.mjs → claudeSessionFork-BfPW9D2S.mjs} +1 -1
  37. package/dist/{client-CQzHoynf.cjs → client-BZtKFCJr.cjs} +2 -2
  38. package/dist/{client-CXvsRLAz.cjs → client-C1GAIJ04.cjs} +3 -3
  39. package/dist/{client-CyUhxs-0.mjs → client-DkoV3VWl.mjs} +2 -2
  40. package/dist/{client-BbNFS1WW.mjs → client-Do5CHQnZ.mjs} +3 -3
  41. package/dist/codex/happyMcpStdioBridge.cjs +15 -15
  42. package/dist/codex/happyMcpStdioBridge.mjs +15 -15
  43. package/dist/{codexAppServerClient-Dto99RVH.mjs → codexAppServerClient-CfF33X-8.mjs} +2 -2
  44. package/dist/{codexAppServerClient-5jNbTlE5.cjs → codexAppServerClient-JddkV_aP.cjs} +2 -2
  45. package/dist/{codexCommand-LUp0vkNi.cjs → codexCommand-Bdj3XZbi.cjs} +39 -39
  46. package/dist/{codexCommand-BHfrAyds.mjs → codexCommand-btJso8yC.mjs} +39 -39
  47. package/dist/{config-CAD5NR1h.cjs → config-DpCNivmg.cjs} +3 -3
  48. package/dist/{config-BEvt_OYR.mjs → config-nziuMb7g.mjs} +3 -3
  49. package/dist/{configuration-B0c-OP_h.mjs → configuration-CiBUH72C.mjs} +1 -1
  50. package/dist/{configuration-CepfrPZ_.cjs → configuration-PXAE4-FP.cjs} +1 -1
  51. package/dist/{connect-BPMzMoiQ.cjs → connect-D7ehaW2C.cjs} +13 -13
  52. package/dist/{connect-BeK0dMYB.mjs → connect-XHdi6Vtc.mjs} +13 -13
  53. package/dist/{context-mMg17HJv.mjs → context-BpEYcuLv.mjs} +1 -1
  54. package/dist/{context-BhZMRQho.cjs → context-DhvXl1oC.cjs} +1 -1
  55. package/dist/{controlClient-HPMsyxLb.cjs → controlClient-DI-Er-Ww.cjs} +3 -3
  56. package/dist/{controlClient-BKmjlbGs.mjs → controlClient-DzmCQrY_.mjs} +3 -3
  57. package/dist/{createSessionMetadata-KOL67aSN.mjs → createSessionMetadata-B47GrTX6.mjs} +2 -2
  58. package/dist/{createSessionMetadata-CGuyVxsM.cjs → createSessionMetadata-D04x6OMW.cjs} +2 -2
  59. package/dist/{deterministicJson-BFzPcsCh.cjs → deterministicJson-BM8e8QwP.cjs} +9 -9
  60. package/dist/{deterministicJson-CaWami7M.mjs → deterministicJson-CKqT3awl.mjs} +9 -9
  61. package/dist/{doctor-DX2P7IlL.mjs → doctor-CSgzbG5L.mjs} +6 -6
  62. package/dist/{doctor-BHNVY9DE.cjs → doctor-Cl6cqvok.cjs} +6 -6
  63. package/dist/{ensureDaemonRunning-BahhZpQ1.cjs → ensureDaemonRunning-CJ4-U32n.cjs} +5 -5
  64. package/dist/{ensureDaemonRunning-CnWMrL5b.mjs → ensureDaemonRunning-fPVSsjIm.mjs} +5 -5
  65. package/dist/{handleResumeCommand-bToC6FDH.mjs → handleResumeCommand-B84dt2aH.mjs} +5 -5
  66. package/dist/{handleResumeCommand-Ca334R4t.cjs → handleResumeCommand-bX-aNF_z.cjs} +5 -5
  67. package/dist/{index-B6MVw_Xb.cjs → index-B2UvSWo_.cjs} +3 -3
  68. package/dist/{index-vFMUVtSL.cjs → index-CP2fh7JX.cjs} +38 -38
  69. package/dist/{index-B5v5fZi6.mjs → index-CRJtZCK-.mjs} +39 -39
  70. package/dist/{index-D3AsOj4j.mjs → index-CbF87SeZ.mjs} +3 -3
  71. package/dist/{index-DoMsO8_G.cjs → index-DaTxsAC3.cjs} +4 -4
  72. package/dist/{index-DJ-oV52i.cjs → index-DqlyNgt4.cjs} +6 -1
  73. package/dist/{index-CpFreRx8.mjs → index-OEGj3BxE.mjs} +4 -4
  74. package/dist/{index-BBg9j0XK.mjs → index-vVWpCoTr.mjs} +6 -1
  75. package/dist/index.cjs +2 -2
  76. package/dist/index.mjs +2 -2
  77. package/dist/{install-Dixfzmb_.mjs → install-CurvoW2u.mjs} +3 -3
  78. package/dist/{install-BnTP73AE.cjs → install-__Mni4NU.cjs} +3 -3
  79. package/dist/lib.cjs +17 -17
  80. package/dist/lib.d.cts +26 -0
  81. package/dist/lib.d.mts +26 -0
  82. package/dist/lib.mjs +17 -17
  83. package/dist/{lidState-X7iQg4y5.mjs → lidState-BbR6y9rq.mjs} +66 -2
  84. package/dist/{lidState-BGWXfx1e.cjs → lidState-De2HP6nu.cjs} +67 -1
  85. package/dist/{localHappyAgentAuth-r83bTscW.mjs → localHappyAgentAuth-C7rDePjF.mjs} +1 -1
  86. package/dist/{localHappyAgentAuth-D_Gc4K7h.cjs → localHappyAgentAuth-CboZb3_a.cjs} +1 -1
  87. package/dist/{logger-BIzr7JN0.mjs → logger-8dtZPn3n.mjs} +2 -2
  88. package/dist/{logger-Ca5eRZ2j.cjs → logger-B1k7eZnq.cjs} +2 -2
  89. package/dist/{machineMetadata-DakW9c61.mjs → machineMetadata-Bhp_w3-_.mjs} +3 -3
  90. package/dist/{machineMetadata-GlObivJ-.cjs → machineMetadata-C4OfKn6I.cjs} +3 -3
  91. package/dist/{main-BJlGidfv.mjs → main-BQTaUrz0.mjs} +44 -44
  92. package/dist/{main-BfA1Vtqq.cjs → main-eAiLspBM.cjs} +44 -44
  93. package/dist/{mcp-Bb7AD1SD.mjs → mcp-DXCdbQHM.mjs} +14 -14
  94. package/dist/{mcp-BVzt1llv.cjs → mcp-fapbM7Q4.cjs} +14 -14
  95. package/dist/{package-BfnmIH4b.cjs → package-CC_txQ31.cjs} +8 -8
  96. package/dist/{package-D-W_r_pd.mjs → package-tVYgFJoK.mjs} +8 -8
  97. package/dist/{peerTools-C1cELmtZ.mjs → peerTools-C1cduHh1.mjs} +4 -4
  98. package/dist/{peerTools-CADjnFDx.cjs → peerTools-CqIcCEIg.cjs} +4 -4
  99. package/dist/{persistence-DgBhXxu7.mjs → persistence-C_xFQLsD.mjs} +3 -3
  100. package/dist/{persistence-Ceb-BPk6.cjs → persistence-d3ZyER6o.cjs} +3 -3
  101. package/dist/{piRunnerArgs-Bem-saSg.cjs → piRunnerArgs-DSxolPlV.cjs} +1 -1
  102. package/dist/{piRunnerArgs-CH6oh6w0.mjs → piRunnerArgs-aq0zJX1Q.mjs} +1 -1
  103. package/dist/{piRuntime-BRKG6Yoz.mjs → piRuntime-BnNl5Lmb.mjs} +1 -1
  104. package/dist/{piRuntime-Be0UP44z.cjs → piRuntime-Dne1LPu-.cjs} +1 -1
  105. package/dist/{piTerminal-DVOAWiZx.mjs → piTerminal-CKWxWtW-.mjs} +16 -16
  106. package/dist/{piTerminal-ibKBMmuK.cjs → piTerminal-fjado4cR.cjs} +16 -16
  107. package/dist/{registerCommonHandlers-DPOHFlxp.cjs → registerCommonHandlers-Dausbdsb.cjs} +2 -2
  108. package/dist/{registerCommonHandlers-t15dS7xt.mjs → registerCommonHandlers-bSskMveZ.mjs} +2 -2
  109. package/dist/{registerKillSessionHandler-BS5afGeA.mjs → registerKillSessionHandler-Ben5lAsN.mjs} +6 -6
  110. package/dist/{registerKillSessionHandler-DGDubZLv.cjs → registerKillSessionHandler-CgKyzwqw.cjs} +6 -6
  111. package/dist/{remoteSessionClient-DbnVs1Tv.cjs → remoteSessionClient-BkJt8SHa.cjs} +5 -5
  112. package/dist/{remoteSessionClient-N7JsQ0XS.mjs → remoteSessionClient-DnCIuZpQ.mjs} +5 -5
  113. package/dist/{run-CptLbkQ4.cjs → run-B8dxbDsg.cjs} +33 -33
  114. package/dist/{run-FZRugy70.mjs → run-BEYMVE4J.mjs} +32 -32
  115. package/dist/{runClaude-Cnv0SnA4.cjs → runClaude-Cy_HzLyO.cjs} +22 -22
  116. package/dist/{runClaude-DNW3i-k4.mjs → runClaude-Dd_P1c0f.mjs} +22 -22
  117. package/dist/{runClaudeDeps-CpAiml84.mjs → runClaudeDeps-JG7EUH7B.mjs} +441 -49
  118. package/dist/{runClaudeDeps-lb6LlVPa.cjs → runClaudeDeps-dxv910DR.cjs} +436 -44
  119. package/dist/{runGemini-CRn8exeY.mjs → runGemini-CpaBuvoW.mjs} +34 -34
  120. package/dist/{runGemini-BzS_Yw3F.cjs → runGemini-DY1IDW_f.cjs} +34 -34
  121. package/dist/{runOpenClaw-QoDQpR9a.cjs → runOpenClaw-C0VARcYj.cjs} +20 -20
  122. package/dist/{runOpenClaw-DuS_zRVT.mjs → runOpenClaw-C7vrDQbq.mjs} +20 -20
  123. package/dist/{sandbox-CT9CGjEI.cjs → sandbox-Bx9-M9rN.cjs} +4 -4
  124. package/dist/{sandbox-DysMM_pn.mjs → sandbox-DRUJZuaM.mjs} +4 -4
  125. package/dist/{selfCheck-DIn7j8MD.cjs → selfCheck-Ba1sECTO.cjs} +34 -34
  126. package/dist/selfCheck-DdT8r263.mjs +84 -0
  127. package/dist/{send-CA6fSF3S.mjs → send-BrzkbMy2.mjs} +8 -8
  128. package/dist/{send-97xYN_Yw.cjs → send-Dqdpx-w5.cjs} +8 -8
  129. package/dist/{server-r50NNW9e.mjs → server-CPMPoEAA.mjs} +4 -4
  130. package/dist/{server-C67NGJoX.cjs → server-CfB8EWCg.cjs} +6 -6
  131. package/dist/{sessionLock-CS4fdsmu.cjs → sessionLock-BsP3Y_nG.cjs} +2 -2
  132. package/dist/{sessionLock-Dab6_dCd.mjs → sessionLock-DukLVzAQ.mjs} +2 -2
  133. package/dist/{sessionModeFile-3yV7P9R-.mjs → sessionModeFile-CSvi4H_t.mjs} +1 -1
  134. package/dist/{sessionModeFile-BhqlFlHZ.cjs → sessionModeFile-JWWF6Nn7.cjs} +1 -1
  135. package/dist/{sessionOps-DJSwzwP-.mjs → sessionOps-BlMg1uAa.mjs} +4 -4
  136. package/dist/{sessionOps-DWsGWwfZ.cjs → sessionOps-HuoMXcIZ.cjs} +4 -4
  137. package/dist/{sessionScanner-D6WqRtJQ.cjs → sessionScanner-BWU6KvZw.cjs} +3 -3
  138. package/dist/{sessionScanner-jilpq2aE.mjs → sessionScanner-Ct-JoNHP.mjs} +3 -3
  139. package/dist/{sessions-RXTp4x0o.mjs → sessions-3Hw1xXMV.mjs} +9 -9
  140. package/dist/{sessions-C22q-Z_s.cjs → sessions-AjflCj5y.cjs} +9 -9
  141. package/dist/{setupOfflineReconnection-rd1PCWiN.mjs → setupOfflineReconnection-B_9xp36H.mjs} +2 -2
  142. package/dist/{setupOfflineReconnection-BrnWBRUP.cjs → setupOfflineReconnection-Cxh9Sz9M.cjs} +2 -2
  143. package/dist/{spawn-D8CEQPbN.mjs → spawn-BXEVKCQK.mjs} +12 -12
  144. package/dist/{spawn-Ccy5qAtp.cjs → spawn-CN8PH11G.cjs} +12 -12
  145. package/dist/{spawnAgents-Y1LjnCt9.mjs → spawnAgents-Czi2VDzj.mjs} +1 -1
  146. package/dist/{spawnAgents-iSu1Xzs5.cjs → spawnAgents-McixdtV1.cjs} +1 -1
  147. package/dist/{spawnHappyCLI-wowHF2IL.mjs → spawnHappyCLI-BFN0h2fK.mjs} +1 -1
  148. package/dist/{spawnHappyCLI-Dz2ZHrsN.cjs → spawnHappyCLI-Cj-9-d_7.cjs} +1 -1
  149. package/dist/{startFileWatcher-Ce17H9pG.cjs → startFileWatcher-BfMu444W.cjs} +1 -1
  150. package/dist/{startFileWatcher-C1wjDI_o.mjs → startFileWatcher-Csql7gdv.mjs} +1 -1
  151. package/dist/{streamRelay-BLgU9X3R.mjs → streamRelay-BzMEEvJU.mjs} +1 -1
  152. package/dist/{streamRelay-DnObXZZj.cjs → streamRelay-C0AffuX6.cjs} +1 -1
  153. package/dist/{sync-fDRF_nO1.cjs → sync--uxtLWbo.cjs} +1 -1
  154. package/dist/{sync-DnmsgL3w.mjs → sync-SCvDzRy6.mjs} +1 -1
  155. package/dist/{systemPrompt-9PWg4OU6.cjs → systemPrompt-C1tRiZ-u.cjs} +2 -2
  156. package/dist/{systemPrompt-Db9O7KGe.mjs → systemPrompt-D0KMySrK.mjs} +2 -2
  157. package/dist/{teams-C5PwKr4K.mjs → teams-By-hcvMF.mjs} +6 -6
  158. package/dist/{teams-DkHPUc6j.cjs → teams-CYDIFXEC.cjs} +6 -6
  159. package/dist/{time-xNkWLTSj.cjs → time-C7BplxuS.cjs} +1 -1
  160. package/dist/{time-TxDyvAKk.mjs → time-CRvAaC5H.mjs} +1 -1
  161. package/dist/{titleGenerator-oK414IZc.mjs → titleGenerator-CUG-n2r3.mjs} +1 -1
  162. package/dist/{titleGenerator-C8arvXNG.cjs → titleGenerator-Kw3sTnNQ.cjs} +2 -2
  163. package/dist/{todo-VqQuYyFq.cjs → todo-B7a7J5Ng.cjs} +6 -6
  164. package/dist/{todo-CLHIGRUf.mjs → todo-yuIsUvU8.mjs} +6 -6
  165. package/dist/{tools-GnqHEZHb.cjs → tools-BTBgpiRc.cjs} +2 -2
  166. package/dist/{tools-xQ38ufgo.cjs → tools-D7UeLMZ7.cjs} +1 -1
  167. package/dist/{tools-sPgOmLr_.mjs → tools-RvMKw7yx.mjs} +1 -1
  168. package/dist/{tools-BSzD246o.mjs → tools-gUjkPpCw.mjs} +2 -2
  169. package/dist/{uninstall-DKM0j1qI.cjs → uninstall-D5D16-KM.cjs} +3 -3
  170. package/dist/{uninstall-DyoXxpgI.mjs → uninstall-Dx9FmLXs.mjs} +3 -3
  171. package/package.json +8 -8
  172. package/dist/selfCheck-BTltA-ZZ.mjs +0 -84
@@ -1,10 +1,10 @@
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-BIzr7JN0.mjs';
5
- import { d as delay } from './time-TxDyvAKk.mjs';
4
+ import { l as logger } from './logger-8dtZPn3n.mjs';
5
+ import { d as delay } from './time-CRvAaC5H.mjs';
6
6
  import { c as contentLogMetadata, e as errorLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
7
- import { p as packageJson } from './package-D-W_r_pd.mjs';
7
+ import { p as packageJson } from './package-tVYgFJoK.mjs';
8
8
 
9
9
  function acpImageBlocks(attachments, supportsImages) {
10
10
  return attachments.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => {
@@ -3,10 +3,10 @@
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-Ca5eRZ2j.cjs');
7
- var time = require('./time-xNkWLTSj.cjs');
6
+ var logger = require('./logger-B1k7eZnq.cjs');
7
+ var time = require('./time-C7BplxuS.cjs');
8
8
  var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
9
- var _package = require('./package-BfnmIH4b.cjs');
9
+ var _package = require('./package-CC_txQ31.cjs');
10
10
 
11
11
  function acpImageBlocks(attachments, supportsImages) {
12
12
  return attachments.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var cuid2 = require('@paralleldrive/cuid2');
4
- var index = require('./index-DJ-oV52i.cjs');
4
+ var index = require('./index-DqlyNgt4.cjs');
5
5
 
6
6
  function turnOptions(turnId, time) {
7
7
  return turnId ? { turn: turnId, time } : { time };
@@ -1,5 +1,5 @@
1
1
  import { createId } from '@paralleldrive/cuid2';
2
- import { s as streamKeyOf, e as createEnvelope } from './index-BBg9j0XK.mjs';
2
+ import { s as streamKeyOf, e as createEnvelope } from './index-vVWpCoTr.mjs';
3
3
 
4
4
  function turnOptions(turnId, time) {
5
5
  return turnId ? { turn: turnId, time } : { time };
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-Ca5eRZ2j.cjs');
3
+ var logger = require('./logger-B1k7eZnq.cjs');
4
4
 
5
5
  class BasePermissionHandler {
6
6
  pendingRequests = /* @__PURE__ */ new Map();
@@ -1,4 +1,4 @@
1
- import { l as logger } from './logger-BIzr7JN0.mjs';
1
+ import { l as logger } from './logger-8dtZPn3n.mjs';
2
2
 
3
3
  class BasePermissionHandler {
4
4
  pendingRequests = /* @__PURE__ */ new Map();
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var node_crypto = require('node:crypto');
4
- var logger = require('./logger-Ca5eRZ2j.cjs');
4
+ var logger = require('./logger-B1k7eZnq.cjs');
5
5
 
6
6
  class BaseReasoningProcessor {
7
7
  accumulator = "";
@@ -1,5 +1,5 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { l as logger } from './logger-BIzr7JN0.mjs';
2
+ import { l as logger } from './logger-8dtZPn3n.mjs';
3
3
 
4
4
  class BaseReasoningProcessor {
5
5
  accumulator = "";
@@ -1,13 +1,13 @@
1
1
  import chalk from 'chalk';
2
2
  import { homedir } from 'node:os';
3
- import { readSettings, updateSettings } from './persistence-DgBhXxu7.mjs';
3
+ import { readSettings, updateSettings } from './persistence-C_xFQLsD.mjs';
4
4
  import 'node:fs';
5
- import './logger-BIzr7JN0.mjs';
5
+ import './logger-8dtZPn3n.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-B0c-OP_h.mjs';
8
+ import './configuration-CiBUH72C.mjs';
9
9
  import 'node:path';
10
- import './package-D-W_r_pd.mjs';
10
+ import './package-tVYgFJoK.mjs';
11
11
  import 'zod';
12
12
  import './authRelay-DSAvg1uv.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-Ceb-BPk6.cjs');
5
+ var persistence = require('./persistence-d3ZyER6o.cjs');
6
6
  require('node:fs');
7
- require('./logger-Ca5eRZ2j.cjs');
7
+ require('./logger-B1k7eZnq.cjs');
8
8
  var loginShellEnv = require('./loginShellEnv-BkuYtExZ.cjs');
9
9
  require('node:fs/promises');
10
- require('./configuration-CepfrPZ_.cjs');
10
+ require('./configuration-PXAE4-FP.cjs');
11
11
  require('node:path');
12
- require('./package-BfnmIH4b.cjs');
12
+ require('./package-CC_txQ31.cjs');
13
13
  require('zod');
14
14
  require('./authRelay-BdYkC1Po.cjs');
15
15
  require('node:crypto');
@@ -1,22 +1,22 @@
1
1
  'use strict';
2
2
 
3
3
  var axios = require('axios');
4
- var logger = require('./logger-Ca5eRZ2j.cjs');
4
+ var logger = require('./logger-B1k7eZnq.cjs');
5
+ var lidState = require('./lidState-De2HP6nu.cjs');
5
6
  var node_events = require('node:events');
6
7
  var socket_ioClient = require('socket.io-client');
7
- var attachmentLimits = require('./attachmentLimits-DzlBPyJP.cjs');
8
+ var attachmentLimits = require('./attachmentLimits-eJZ4ZBjF.cjs');
8
9
  var authRelay = require('./authRelay-BdYkC1Po.cjs');
9
10
  var limits = require('./limits-C-a7gr04.cjs');
10
- var time = require('./time-xNkWLTSj.cjs');
11
- var lidState = require('./lidState-BGWXfx1e.cjs');
12
- var configuration = require('./configuration-CepfrPZ_.cjs');
11
+ var time = require('./time-C7BplxuS.cjs');
12
+ var configuration = require('./configuration-PXAE4-FP.cjs');
13
13
  var node_crypto = require('node:crypto');
14
- var index = require('./index-DJ-oV52i.cjs');
15
- var registerCommonHandlers = require('./registerCommonHandlers-DPOHFlxp.cjs');
14
+ var index = require('./index-DqlyNgt4.cjs');
15
+ var registerCommonHandlers = require('./registerCommonHandlers-Dausbdsb.cjs');
16
16
  var cuid2 = require('@paralleldrive/cuid2');
17
- var sync = require('./sync-fDRF_nO1.cjs');
17
+ var sync = require('./sync--uxtLWbo.cjs');
18
18
  var backgroundTaskActivity = require('./backgroundTaskActivity-CBvUdj39.cjs');
19
- var controlClient = require('./controlClient-HPMsyxLb.cjs');
19
+ var controlClient = require('./controlClient-DI-Er-Ww.cjs');
20
20
  var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
21
21
  var chalk = require('chalk');
22
22
 
@@ -1137,6 +1137,7 @@ class PromptQueueDrain {
1137
1137
  }
1138
1138
  }
1139
1139
 
1140
+ const guardOptions = { log: (message) => logger.logger.debug(message) };
1140
1141
  class ApiSessionClient extends node_events.EventEmitter {
1141
1142
  /**
1142
1143
  * B-512: the session socket now connects before the runner has attached its
@@ -1353,10 +1354,10 @@ class ApiSessionClient extends node_events.EventEmitter {
1353
1354
  if (!parsed.success || parsed.data.deadline <= Date.now()) return;
1354
1355
  void this.startReleaseHandover(parsed.data);
1355
1356
  });
1356
- this.socket.connect();
1357
+ lidState.connectGuarded(this.socket, "initial", guardOptions);
1357
1358
  }
1358
1359
  createControlSocket(handover) {
1359
- return socket_ioClient.io(configuration.configuration.serverUrl, {
1360
+ const socket = socket_ioClient.io(configuration.configuration.serverUrl, {
1360
1361
  auth: {
1361
1362
  token: this.token,
1362
1363
  clientType: "session-scoped",
@@ -1371,6 +1372,8 @@ class ApiSessionClient extends node_events.EventEmitter {
1371
1372
  withCredentials: true,
1372
1373
  autoConnect: false
1373
1374
  });
1375
+ lidState.socketConnectGuard(socket, guardOptions);
1376
+ return socket;
1374
1377
  }
1375
1378
  startReleaseHandover(notice) {
1376
1379
  if (this.handoverInFlight) return this.handoverInFlight;
@@ -1397,7 +1400,7 @@ class ApiSessionClient extends node_events.EventEmitter {
1397
1400
  clearTimeout(timer);
1398
1401
  reject(error);
1399
1402
  });
1400
- candidate.connect();
1403
+ lidState.connectGuarded(candidate, "release-handover", guardOptions);
1401
1404
  });
1402
1405
  await this.rpcHandlerManager.onSocketConnectAndWait(candidate, timeoutMs);
1403
1406
  if (this.socket !== previous) {
@@ -2197,6 +2200,29 @@ class ApiSessionClient extends node_events.EventEmitter {
2197
2200
  skipExistingMessages() {
2198
2201
  this.skipInitialMessages = true;
2199
2202
  }
2203
+ /**
2204
+ * B-544: the newest `limit` session records, decrypted, ascending seq.
2205
+ * Read-only (no routing, no lastSeq change) — rewind reconcile reads the
2206
+ * durable log with it. Undecryptable records come back with `body: null`.
2207
+ */
2208
+ async readLogTail(limit) {
2209
+ const response = await axios.get(
2210
+ `${configuration.configuration.serverUrl}/v3/sessions/${encodeURIComponent(this.sessionId)}/messages`,
2211
+ { params: { before_seq: 2147483647, limit }, headers: this.authHeaders(), timeout: 3e4 }
2212
+ );
2213
+ const messages = Array.isArray(response.data.messages) ? [...response.data.messages].reverse() : [];
2214
+ return messages.map((message) => {
2215
+ let body = null;
2216
+ if (message.content?.t === "encrypted") {
2217
+ try {
2218
+ body = authRelay.decrypt(this.encryptionKey, this.encryptionVariant, authRelay.decodeBase64(message.content.c));
2219
+ } catch {
2220
+ body = null;
2221
+ }
2222
+ }
2223
+ return { seq: message.seq, localId: message.localId ?? null, body };
2224
+ });
2225
+ }
2200
2226
  updateMetadata(handler) {
2201
2227
  this.metadataLock.inLock(async () => {
2202
2228
  let rateRefusals = 0;
@@ -2313,12 +2339,12 @@ class ApiSessionClient extends node_events.EventEmitter {
2313
2339
  return;
2314
2340
  }
2315
2341
  logger.logger.debug("[API] Attempting reconnect");
2316
- this.socket.connect();
2342
+ lidState.connectGuarded(this.socket, "reconnect-interval", guardOptions);
2317
2343
  }, 3e3);
2318
2344
  if (lidState.shouldReconnect()) {
2319
2345
  logger.logger.debug("[API] Network up + lid open \u2014 reconnecting in 1s");
2320
2346
  setTimeout(() => {
2321
- if (!this.socket.connected) this.socket.connect();
2347
+ lidState.connectGuarded(this.socket, "reconnect-soon", guardOptions);
2322
2348
  }, 1e3);
2323
2349
  }
2324
2350
  }
@@ -3060,7 +3086,7 @@ class ApiClient {
3060
3086
  return new ApiSessionClient(this.credential.token, session, opts);
3061
3087
  }
3062
3088
  async machineSyncClient(machine) {
3063
- const { ApiMachineClient } = await Promise.resolve().then(function () { return require('./apiMachine-BxCy5_No.cjs'); });
3089
+ const { ApiMachineClient } = await Promise.resolve().then(function () { return require('./apiMachine-q71suojS.cjs'); });
3064
3090
  return new ApiMachineClient(this.credential.token, machine);
3065
3091
  }
3066
3092
  push() {
@@ -1,20 +1,20 @@
1
1
  import axios from 'axios';
2
- import { l as logger, r as redactLogValue } from './logger-BIzr7JN0.mjs';
2
+ import { l as logger, r as redactLogValue } from './logger-8dtZPn3n.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-BbR6y9rq.mjs';
3
4
  import { EventEmitter } from 'node:events';
4
5
  import { io } from 'socket.io-client';
5
- import { A as AsyncLock, a as MAX_CHAT_ATTACHMENT_ENCRYPTED_BYTES, U as UserMessageSchema, F as FileEventMessageSchema } from './attachmentLimits-D5pgmASK.mjs';
6
+ import { A as AsyncLock, a as MAX_CHAT_ATTACHMENT_ENCRYPTED_BYTES, U as UserMessageSchema, F as FileEventMessageSchema } from './attachmentLimits-B8nzhw-i.mjs';
6
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-DSAvg1uv.mjs';
7
8
  import { p as prepareClipboardText, d as prepareClipboardHistoryText } from './limits-DIo7rEBR.mjs';
8
- import { b as backoff, d as delay, e as exponentialBackoffDelay } from './time-TxDyvAKk.mjs';
9
- import { R as RpcHandlerManager, a as answerSocketRequest, d as describeSocketAckDrop, s as safeAck, i as isRateQuotaCode, p as pauseForRateQuota, b as shouldReconnect } from './lidState-X7iQg4y5.mjs';
10
- import { c as configuration } from './configuration-B0c-OP_h.mjs';
9
+ import { b as backoff, d as delay, e as exponentialBackoffDelay } from './time-CRvAaC5H.mjs';
10
+ import { c as configuration } from './configuration-CiBUH72C.mjs';
11
11
  import { createHmac, randomUUID } from 'node:crypto';
12
- import { e as createEnvelope, s as streamKeyOf, R as ReleaseDrainNoticeSchema, m as RelayAssignmentResponseSchema } from './index-BBg9j0XK.mjs';
13
- import { r as registerCommonHandlers } from './registerCommonHandlers-t15dS7xt.mjs';
12
+ import { e as createEnvelope, s as streamKeyOf, R as ReleaseDrainNoticeSchema, m as RelayAssignmentResponseSchema } from './index-vVWpCoTr.mjs';
13
+ import { r as registerCommonHandlers } from './registerCommonHandlers-bSskMveZ.mjs';
14
14
  import { createId } from '@paralleldrive/cuid2';
15
- import { I as InvalidateSync } from './sync-DnmsgL3w.mjs';
15
+ import { I as InvalidateSync } from './sync-SCvDzRy6.mjs';
16
16
  import { B as BackgroundTaskReporter } from './backgroundTaskActivity-8PdPxrvy.mjs';
17
- import { h as notifyDaemonTurnEvent, j as notifyDaemonBackgroundTasks } from './controlClient-BKmjlbGs.mjs';
17
+ import { h as notifyDaemonTurnEvent, j as notifyDaemonBackgroundTasks } from './controlClient-DzmCQrY_.mjs';
18
18
  import { c as contentLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
19
19
  import chalk from 'chalk';
20
20
 
@@ -1135,6 +1135,7 @@ class PromptQueueDrain {
1135
1135
  }
1136
1136
  }
1137
1137
 
1138
+ const guardOptions = { log: (message) => logger.debug(message) };
1138
1139
  class ApiSessionClient extends EventEmitter {
1139
1140
  /**
1140
1141
  * B-512: the session socket now connects before the runner has attached its
@@ -1351,10 +1352,10 @@ class ApiSessionClient extends EventEmitter {
1351
1352
  if (!parsed.success || parsed.data.deadline <= Date.now()) return;
1352
1353
  void this.startReleaseHandover(parsed.data);
1353
1354
  });
1354
- this.socket.connect();
1355
+ connectGuarded(this.socket, "initial", guardOptions);
1355
1356
  }
1356
1357
  createControlSocket(handover) {
1357
- return io(configuration.serverUrl, {
1358
+ const socket = io(configuration.serverUrl, {
1358
1359
  auth: {
1359
1360
  token: this.token,
1360
1361
  clientType: "session-scoped",
@@ -1369,6 +1370,8 @@ class ApiSessionClient extends EventEmitter {
1369
1370
  withCredentials: true,
1370
1371
  autoConnect: false
1371
1372
  });
1373
+ socketConnectGuard(socket, guardOptions);
1374
+ return socket;
1372
1375
  }
1373
1376
  startReleaseHandover(notice) {
1374
1377
  if (this.handoverInFlight) return this.handoverInFlight;
@@ -1395,7 +1398,7 @@ class ApiSessionClient extends EventEmitter {
1395
1398
  clearTimeout(timer);
1396
1399
  reject(error);
1397
1400
  });
1398
- candidate.connect();
1401
+ connectGuarded(candidate, "release-handover", guardOptions);
1399
1402
  });
1400
1403
  await this.rpcHandlerManager.onSocketConnectAndWait(candidate, timeoutMs);
1401
1404
  if (this.socket !== previous) {
@@ -2195,6 +2198,29 @@ class ApiSessionClient extends EventEmitter {
2195
2198
  skipExistingMessages() {
2196
2199
  this.skipInitialMessages = true;
2197
2200
  }
2201
+ /**
2202
+ * B-544: the newest `limit` session records, decrypted, ascending seq.
2203
+ * Read-only (no routing, no lastSeq change) — rewind reconcile reads the
2204
+ * durable log with it. Undecryptable records come back with `body: null`.
2205
+ */
2206
+ async readLogTail(limit) {
2207
+ const response = await axios.get(
2208
+ `${configuration.serverUrl}/v3/sessions/${encodeURIComponent(this.sessionId)}/messages`,
2209
+ { params: { before_seq: 2147483647, limit }, headers: this.authHeaders(), timeout: 3e4 }
2210
+ );
2211
+ const messages = Array.isArray(response.data.messages) ? [...response.data.messages].reverse() : [];
2212
+ return messages.map((message) => {
2213
+ let body = null;
2214
+ if (message.content?.t === "encrypted") {
2215
+ try {
2216
+ body = decrypt(this.encryptionKey, this.encryptionVariant, decodeBase64(message.content.c));
2217
+ } catch {
2218
+ body = null;
2219
+ }
2220
+ }
2221
+ return { seq: message.seq, localId: message.localId ?? null, body };
2222
+ });
2223
+ }
2198
2224
  updateMetadata(handler) {
2199
2225
  this.metadataLock.inLock(async () => {
2200
2226
  let rateRefusals = 0;
@@ -2311,12 +2337,12 @@ class ApiSessionClient extends EventEmitter {
2311
2337
  return;
2312
2338
  }
2313
2339
  logger.debug("[API] Attempting reconnect");
2314
- this.socket.connect();
2340
+ connectGuarded(this.socket, "reconnect-interval", guardOptions);
2315
2341
  }, 3e3);
2316
2342
  if (shouldReconnect()) {
2317
2343
  logger.debug("[API] Network up + lid open \u2014 reconnecting in 1s");
2318
2344
  setTimeout(() => {
2319
- if (!this.socket.connected) this.socket.connect();
2345
+ connectGuarded(this.socket, "reconnect-soon", guardOptions);
2320
2346
  }, 1e3);
2321
2347
  }
2322
2348
  }
@@ -3058,7 +3084,7 @@ class ApiClient {
3058
3084
  return new ApiSessionClient(this.credential.token, session, opts);
3059
3085
  }
3060
3086
  async machineSyncClient(machine) {
3061
- const { ApiMachineClient } = await import('./apiMachine-C58eizxs.mjs');
3087
+ const { ApiMachineClient } = await import('./apiMachine-s3HiV-SL.mjs');
3062
3088
  return new ApiMachineClient(this.credential.token, machine);
3063
3089
  }
3064
3090
  push() {
@@ -1,40 +1,41 @@
1
1
  'use strict';
2
2
 
3
3
  var socket_ioClient = require('socket.io-client');
4
- var logger = require('./logger-Ca5eRZ2j.cjs');
4
+ var logger = require('./logger-B1k7eZnq.cjs');
5
+ var lidState = require('./lidState-De2HP6nu.cjs');
5
6
  var mirrorProtocol = require('./mirrorProtocol-BUtmg1ws.cjs');
6
- var configuration = require('./configuration-CepfrPZ_.cjs');
7
+ var configuration = require('./configuration-PXAE4-FP.cjs');
7
8
  var cliUpdate = require('./cliUpdate-DsKXPFYp.cjs');
8
- var registerCommonHandlers = require('./registerCommonHandlers-DPOHFlxp.cjs');
9
+ var registerCommonHandlers = require('./registerCommonHandlers-Dausbdsb.cjs');
9
10
  var promises = require('node:fs/promises');
10
11
  var path = require('node:path');
11
12
  var os = require('node:os');
12
13
  var node_child_process = require('node:child_process');
13
- var persistence = require('./persistence-Ceb-BPk6.cjs');
14
+ var persistence = require('./persistence-d3ZyER6o.cjs');
14
15
  var authRelay = require('./authRelay-BdYkC1Po.cjs');
15
16
  var limits = require('./limits-C-a7gr04.cjs');
16
- var time = require('./time-xNkWLTSj.cjs');
17
- var lidState = require('./lidState-BGWXfx1e.cjs');
17
+ var time = require('./time-C7BplxuS.cjs');
18
18
  var pty = require('node-pty');
19
19
  var terminals = require('./terminals-B_bfC9c2.cjs');
20
20
  var tmuxSocket = require('./tmuxSocket-D-Xt6Vn-.cjs');
21
- var index = require('./index-DoMsO8_G.cjs');
21
+ var index = require('./index-DaTxsAC3.cjs');
22
22
  var node_crypto = require('node:crypto');
23
23
  var node_fs = require('node:fs');
24
24
  var axios = require('axios');
25
25
  var ids = require('./ids-B6ZC0HGt.cjs');
26
26
  var detectCLI = require('./detectCLI-DR9ZaN6B.cjs');
27
- var localHappyAgentAuth = require('./localHappyAgentAuth-D_Gc4K7h.cjs');
27
+ var localHappyAgentAuth = require('./localHappyAgentAuth-CboZb3_a.cjs');
28
28
  var path$1 = require('./path-B7zW-WwE.cjs');
29
29
  var oneShotPrompts = require('./oneShotPrompts-CL0dip9C.cjs');
30
- var claudeSessionFork = require('./claudeSessionFork-DdJFvxwf.cjs');
31
- var codexAppServerClient = require('./codexAppServerClient-5jNbTlE5.cjs');
32
- var index$1 = require('./index-DJ-oV52i.cjs');
30
+ var claudeSessionFork = require('./claudeSessionFork-BWdhyy9B.cjs');
31
+ var codexAppServerClient = require('./codexAppServerClient-JddkV_aP.cjs');
32
+ var index$1 = require('./index-DqlyNgt4.cjs');
33
33
  var codexThreadFork = require('./codexThreadFork-DNekT4nQ.cjs');
34
34
  require('chalk');
35
35
  require('node:util');
36
- require('./package-BfnmIH4b.cjs');
36
+ require('os');
37
37
  require('child_process');
38
+ require('./package-CC_txQ31.cjs');
38
39
  require('util');
39
40
  require('fs/promises');
40
41
  require('crypto');
@@ -42,7 +43,6 @@ require('path');
42
43
  require('cross-spawn');
43
44
  require('./projectPath-ChLhdOyt.cjs');
44
45
  require('url');
45
- require('os');
46
46
  require('zod');
47
47
  require('tweetnacl');
48
48
  require('./terminalTitleSuggest-DhvRFX3H.cjs');
@@ -8403,6 +8403,7 @@ async function discoverAndClaimRelay(input) {
8403
8403
  }
8404
8404
  }
8405
8405
 
8406
+ const guardOptions = { log: (message) => logger.logger.debug(message) };
8406
8407
  const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
8407
8408
  function requireNonEmptyString(value, name) {
8408
8409
  if (typeof value !== "string" || value.length === 0) {
@@ -9245,7 +9246,7 @@ class ApiMachineClient {
9245
9246
  }
9246
9247
  createControlSocket(handover) {
9247
9248
  const serverUrl = configuration.configuration.serverUrl.replace(/^http/, "ws");
9248
- return socket_ioClient.io(serverUrl, {
9249
+ const socket = socket_ioClient.io(serverUrl, {
9249
9250
  transports: ["websocket"],
9250
9251
  auth: {
9251
9252
  token: this.token,
@@ -9259,6 +9260,8 @@ class ApiMachineClient {
9259
9260
  reconnection: false,
9260
9261
  ...handover ? { autoConnect: false } : {}
9261
9262
  });
9263
+ lidState.socketConnectGuard(socket, guardOptions);
9264
+ return socket;
9262
9265
  }
9263
9266
  activateControlSocket(socket, rpcAlreadyRegistered = false) {
9264
9267
  logger.logger.debug("[API MACHINE] Connected to server");
@@ -9364,7 +9367,7 @@ class ApiMachineClient {
9364
9367
  clearTimeout(timer);
9365
9368
  reject(error);
9366
9369
  });
9367
- candidate.connect();
9370
+ lidState.connectGuarded(candidate, "release-handover", guardOptions);
9368
9371
  });
9369
9372
  await this.rpcHandlerManager.onSocketConnectAndWait(candidate, timeoutMs);
9370
9373
  if (this.socket !== previous) {
@@ -9576,12 +9579,12 @@ class ApiMachineClient {
9576
9579
  return;
9577
9580
  }
9578
9581
  logger.logger.debug("[API MACHINE] Attempting reconnect");
9579
- this.socket.connect();
9582
+ lidState.connectGuarded(this.socket, "reconnect-interval", guardOptions);
9580
9583
  }, 3e3);
9581
9584
  if (lidState.shouldReconnect()) {
9582
9585
  logger.logger.debug("[API MACHINE] Network up + lid open \u2014 reconnecting in 1s");
9583
9586
  setTimeout(() => {
9584
- if (!this.socket.connected) this.socket.connect();
9587
+ lidState.connectGuarded(this.socket, "reconnect-soon", guardOptions);
9585
9588
  }, 1e3);
9586
9589
  }
9587
9590
  }
@@ -1,38 +1,39 @@
1
1
  import { io } from 'socket.io-client';
2
- import { l as logger } from './logger-BIzr7JN0.mjs';
2
+ import { l as logger } from './logger-8dtZPn3n.mjs';
3
+ 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-BbR6y9rq.mjs';
3
4
  import { i as isClaudeSessionId, s as sanitizeTagList, p as pickMirrorForTerminal, l as liveSnapshotChanged, a as sanitizeLiveSnapshot, b as serializeLiveSnapshot, c as summarizeSpawnSessionForLog, d as parseMirrorSendParams } from './mirrorProtocol-BNLtoWjO.mjs';
4
- import { c as configuration } from './configuration-B0c-OP_h.mjs';
5
+ import { c as configuration } from './configuration-CiBUH72C.mjs';
5
6
  import { w as withCurrentCliUpdateState } from './cliUpdate-Y34VGe9Y.mjs';
6
- import { r as registerCommonHandlers } from './registerCommonHandlers-t15dS7xt.mjs';
7
+ import { r as registerCommonHandlers } from './registerCommonHandlers-bSskMveZ.mjs';
7
8
  import { stat, readdir, lstat, open, readFile } from 'node:fs/promises';
8
9
  import { join, isAbsolute, resolve } from 'node:path';
9
10
  import os, { homedir } from 'node:os';
10
11
  import { spawn, spawnSync } from 'node:child_process';
11
- import { readSettings, readPersistedSessions, readTrackedClaudeSessionIds, readTrackedCodexThreadIds } from './persistence-DgBhXxu7.mjs';
12
+ import { readSettings, readPersistedSessions, readTrackedClaudeSessionIds, readTrackedCodexThreadIds } from './persistence-C_xFQLsD.mjs';
12
13
  import { e as encodeBase64, g as encrypt, h as decrypt, d as decodeBase64 } from './authRelay-DSAvg1uv.mjs';
13
14
  import { p as prepareClipboardText, d as prepareClipboardHistoryText } from './limits-DIo7rEBR.mjs';
14
- import { b as backoff, d as delay } from './time-TxDyvAKk.mjs';
15
- import { R as RpcHandlerManager, i as isRateQuotaCode, p as pauseForRateQuota, a as answerSocketRequest, b as shouldReconnect, d as describeSocketAckDrop } from './lidState-X7iQg4y5.mjs';
15
+ import { b as backoff, d as delay } from './time-CRvAaC5H.mjs';
16
16
  import * as pty from 'node-pty';
17
17
  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';
18
18
  import { t as tmuxArgs, V as VH_TMUX_SOCKET_ENV, a as scrubTmuxClientEnv } from './tmuxSocket-B8Yx20sT.mjs';
19
- import { locateClaudeConversation } from './index-CpFreRx8.mjs';
19
+ import { locateClaudeConversation } from './index-OEGj3BxE.mjs';
20
20
  import { randomBytes } from 'node:crypto';
21
21
  import { existsSync, statSync, writeFileSync, unlinkSync, readFileSync, mkdirSync, accessSync, constants } from 'node:fs';
22
22
  import axios from 'axios';
23
23
  import { a as isValidTerminalId } from './ids-DU6sLx4C.mjs';
24
24
  import { d as detectCLIAvailability } from './detectCLI-CSGMlV51.mjs';
25
- import { d as detectResumeSupport } from './localHappyAgentAuth-r83bTscW.mjs';
25
+ import { d as detectResumeSupport } from './localHappyAgentAuth-C7rDePjF.mjs';
26
26
  import { g as getProjectPath, a as getClaudeProjectsRoot } from './path-D2wdaNSk.mjs';
27
27
  import { i as isVeryHappyOneShotPrompt } from './oneShotPrompts-DT4p6RNd.mjs';
28
- import { f as forkSession, F as ForkSourceMissingError, d as discardForkedSession, l as listClaudeRewindPoints, a as forkAndTruncateSession, b as ForkTruncateUuidNotFoundError, c as forkBeforeUserMessage } from './claudeSessionFork-DABSCbkf.mjs';
29
- import { C as CodexAppServerClient } from './codexAppServerClient-Dto99RVH.mjs';
30
- import { o as RelayCandidatesResponseSchema, m as RelayAssignmentResponseSchema, R as ReleaseDrainNoticeSchema } from './index-BBg9j0XK.mjs';
28
+ import { f as forkSession, F as ForkSourceMissingError, d as discardForkedSession, l as listClaudeRewindPoints, a as forkAndTruncateSession, b as ForkTruncateUuidNotFoundError, c as forkBeforeUserMessage } from './claudeSessionFork-BfPW9D2S.mjs';
29
+ import { C as CodexAppServerClient } from './codexAppServerClient-CfF33X-8.mjs';
30
+ import { o as RelayCandidatesResponseSchema, m as RelayAssignmentResponseSchema, R as ReleaseDrainNoticeSchema } from './index-vVWpCoTr.mjs';
31
31
  import { f as forkCodexThread, C as CodexForkRewindPointNotFoundError, l as listCodexRewindPoints, a as forkCodexBeforeUserMessage } from './codexThreadFork-R76RU5H0.mjs';
32
32
  import 'chalk';
33
33
  import 'node:util';
34
- import './package-D-W_r_pd.mjs';
34
+ import 'os';
35
35
  import 'child_process';
36
+ import './package-tVYgFJoK.mjs';
36
37
  import 'util';
37
38
  import 'fs/promises';
38
39
  import 'crypto';
@@ -40,7 +41,6 @@ import 'path';
40
41
  import 'cross-spawn';
41
42
  import './projectPath-BTBIMB57.mjs';
42
43
  import 'url';
43
- import 'os';
44
44
  import 'zod';
45
45
  import 'tweetnacl';
46
46
  import './terminalTitleSuggest-CeKsX_V6.mjs';
@@ -8382,6 +8382,7 @@ async function discoverAndClaimRelay(input) {
8382
8382
  }
8383
8383
  }
8384
8384
 
8385
+ const guardOptions = { log: (message) => logger.debug(message) };
8385
8386
  const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
8386
8387
  function requireNonEmptyString(value, name) {
8387
8388
  if (typeof value !== "string" || value.length === 0) {
@@ -9224,7 +9225,7 @@ class ApiMachineClient {
9224
9225
  }
9225
9226
  createControlSocket(handover) {
9226
9227
  const serverUrl = configuration.serverUrl.replace(/^http/, "ws");
9227
- return io(serverUrl, {
9228
+ const socket = io(serverUrl, {
9228
9229
  transports: ["websocket"],
9229
9230
  auth: {
9230
9231
  token: this.token,
@@ -9238,6 +9239,8 @@ class ApiMachineClient {
9238
9239
  reconnection: false,
9239
9240
  ...handover ? { autoConnect: false } : {}
9240
9241
  });
9242
+ socketConnectGuard(socket, guardOptions);
9243
+ return socket;
9241
9244
  }
9242
9245
  activateControlSocket(socket, rpcAlreadyRegistered = false) {
9243
9246
  logger.debug("[API MACHINE] Connected to server");
@@ -9343,7 +9346,7 @@ class ApiMachineClient {
9343
9346
  clearTimeout(timer);
9344
9347
  reject(error);
9345
9348
  });
9346
- candidate.connect();
9349
+ connectGuarded(candidate, "release-handover", guardOptions);
9347
9350
  });
9348
9351
  await this.rpcHandlerManager.onSocketConnectAndWait(candidate, timeoutMs);
9349
9352
  if (this.socket !== previous) {
@@ -9555,12 +9558,12 @@ class ApiMachineClient {
9555
9558
  return;
9556
9559
  }
9557
9560
  logger.debug("[API MACHINE] Attempting reconnect");
9558
- this.socket.connect();
9561
+ connectGuarded(this.socket, "reconnect-interval", guardOptions);
9559
9562
  }, 3e3);
9560
9563
  if (shouldReconnect()) {
9561
9564
  logger.debug("[API MACHINE] Network up + lid open \u2014 reconnecting in 1s");
9562
9565
  setTimeout(() => {
9563
- if (!this.socket.connected) this.socket.connect();
9566
+ connectGuarded(this.socket, "reconnect-soon", guardOptions);
9564
9567
  }, 1e3);
9565
9568
  }
9566
9569
  }
@@ -1,14 +1,14 @@
1
1
  import { readFile, writeFile, appendFile } from 'node:fs/promises';
2
2
  import os from 'node:os';
3
3
  import { z } from 'zod';
4
- import { l as logger } from './logger-BIzr7JN0.mjs';
5
- import { readPersistedSessions } from './persistence-DgBhXxu7.mjs';
6
- import { e as spawnDaemonSession } from './controlClient-BKmjlbGs.mjs';
7
- import { a as listSessions, r as readSessionTranscript, s as sessionWebUrl, g as waitForSessionKey, e as sendUserMessage, b as stopSession, d as archiveSession } from './sessionOps-DJSwzwP-.mjs';
8
- import { r as readRemoteTranscript, s as sendRemoteMessage, d as deliverToSession, R as RemoteSessionOpsError } from './remoteSessionClient-N7JsQ0XS.mjs';
4
+ import { l as logger } from './logger-8dtZPn3n.mjs';
5
+ import { readPersistedSessions } from './persistence-C_xFQLsD.mjs';
6
+ import { e as spawnDaemonSession } from './controlClient-DzmCQrY_.mjs';
7
+ import { a as listSessions, r as readSessionTranscript, s as sessionWebUrl, g as waitForSessionKey, e as sendUserMessage, b as stopSession, d as archiveSession } from './sessionOps-BlMg1uAa.mjs';
8
+ import { r as readRemoteTranscript, s as sendRemoteMessage, d as deliverToSession, R as RemoteSessionOpsError } from './remoteSessionClient-DnCIuZpQ.mjs';
9
9
  import { i as isValidSessionId, a as isValidTerminalId } from './ids-DU6sLx4C.mjs';
10
10
  import { l as listVhTerminals, r as readVhTerminal, s as sendToVhTerminal } from './terminals-Dlg0x3nY.mjs';
11
- import { bootstrapAssistantHome, assistantPersonalMemoryPath } from './bootstrap-DSWZAtGy.mjs';
11
+ import { bootstrapAssistantHome, assistantPersonalMemoryPath } from './bootstrap-CTNjn_aj.mjs';
12
12
  import { join, isAbsolute, normalize } from 'node:path';
13
13
 
14
14
  const PERSONAL_MEMORY_SOFT_LIMIT_CHARS = 2e3;
@@ -3,14 +3,14 @@
3
3
  var promises = require('node:fs/promises');
4
4
  var os = require('node:os');
5
5
  var z = require('zod');
6
- var logger = require('./logger-Ca5eRZ2j.cjs');
7
- var persistence = require('./persistence-Ceb-BPk6.cjs');
8
- var controlClient = require('./controlClient-HPMsyxLb.cjs');
9
- var sessionOps = require('./sessionOps-DWsGWwfZ.cjs');
10
- var remoteSessionClient = require('./remoteSessionClient-DbnVs1Tv.cjs');
6
+ var logger = require('./logger-B1k7eZnq.cjs');
7
+ var persistence = require('./persistence-d3ZyER6o.cjs');
8
+ var controlClient = require('./controlClient-DI-Er-Ww.cjs');
9
+ var sessionOps = require('./sessionOps-HuoMXcIZ.cjs');
10
+ var remoteSessionClient = require('./remoteSessionClient-BkJt8SHa.cjs');
11
11
  var ids = require('./ids-B6ZC0HGt.cjs');
12
12
  var terminals = require('./terminals-B_bfC9c2.cjs');
13
- var bootstrap = require('./bootstrap-CccIDvh4.cjs');
13
+ var bootstrap = require('./bootstrap-D9SUykG_.cjs');
14
14
  var path = require('node:path');
15
15
 
16
16
  const PERSONAL_MEMORY_SOFT_LIMIT_CHARS = 2e3;
@@ -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 './attachmentLimits-D5pgmASK.mjs';
5
- import { e as ensurePrivateDirectory, b as hardenPrivateFile } from './configuration-B0c-OP_h.mjs';
4
+ import { M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES } from './attachmentLimits-B8nzhw-i.mjs';
5
+ import { e as ensurePrivateDirectory, b as hardenPrivateFile } from './configuration-CiBUH72C.mjs';
6
6
 
7
7
  const CLAUDE_ATTACHMENT_KINDS = [
8
8
  "image/jpeg",