very-happy-cli 0.2.194 → 0.2.196

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 (218) hide show
  1. package/dist/{AcpBackend-C3Kx0QJb.mjs → AcpBackend-RqGkFeeY.mjs} +3 -3
  2. package/dist/{AcpBackend-DJzsue14.cjs → AcpBackend-tL_g_UJ5.cjs} +3 -3
  3. package/dist/{AcpSessionManager-SteuoqMY.mjs → AcpSessionManager-C-R6yHXc.mjs} +2 -2
  4. package/dist/{AcpSessionManager-Bc3iafB1.cjs → AcpSessionManager-CFB24qBh.cjs} +2 -2
  5. package/dist/{BasePermissionHandler-DKzNFVCh.cjs → BasePermissionHandler-C0JS37Jt.cjs} +1 -1
  6. package/dist/{BasePermissionHandler-D2pNcAXn.mjs → BasePermissionHandler-CgHLVNKT.mjs} +1 -1
  7. package/dist/{account-ByVjlvFj.cjs → account-DOil1Hn8.cjs} +11 -11
  8. package/dist/{account-DC2YyU24.mjs → account-EzL-zwwE.mjs} +11 -11
  9. package/dist/{accountService-CuUSJDhP.cjs → accountService-DL6xhVUa.cjs} +4 -4
  10. package/dist/{accountService-Cd7bnkfd.mjs → accountService-DQ21IlBs.mjs} +4 -4
  11. package/dist/{acpSessionResume-DHHgbNnk.cjs → acpSessionResume-B01oHWDS.cjs} +1 -1
  12. package/dist/{acpSessionResume-B6VClxKQ.mjs → acpSessionResume-DEOIZUuj.mjs} +1 -1
  13. package/dist/{agentHome-Bov1aHYS.cjs → agentHome-BulDO_1K.cjs} +4 -4
  14. package/dist/{agentHome-9caXwo7k.mjs → agentHome-DucTue1n.mjs} +4 -4
  15. package/dist/{api-aE60mNjs.mjs → api-CiNezCys.mjs} +46 -13
  16. package/dist/{api-wYwQCJml.cjs → api-fuwEEEkT.cjs} +46 -13
  17. package/dist/{apiMachine-DwaqfM9Q.cjs → apiMachine-CxmiSa2-.cjs} +18 -18
  18. package/dist/{apiMachine-CvNB38Xg.mjs → apiMachine-DCmKjms1.mjs} +18 -18
  19. package/dist/{attachmentContent-DB8ZsxGE.cjs → attachmentContent-Cehh7ClR.cjs} +2 -2
  20. package/dist/{attachmentContent-C2ymY_-w.mjs → attachmentContent-CiY3MvdO.mjs} +2 -2
  21. package/dist/{auth-boIcb7iq.cjs → auth-DHlbjtf7.cjs} +5 -5
  22. package/dist/{auth-BYtmGgE1.mjs → auth-DHqHrs5d.mjs} +8 -8
  23. package/dist/{auth-CWO6cQ4G.mjs → auth-DVsH_a8J.mjs} +5 -5
  24. package/dist/{auth-Bce0Zk3q.cjs → auth-tlMcvk2Y.cjs} +8 -8
  25. package/dist/{auto-B-kopWQx.mjs → auto-Cnn8luKk.mjs} +17 -17
  26. package/dist/{auto-AaggdihK.cjs → auto-DNAa8xDZ.cjs} +17 -17
  27. package/dist/{bootstrap-CiWwfHB2.mjs → bootstrap-C2XSEyOe.mjs} +2 -2
  28. package/dist/{bootstrap-kywZ0tvD.cjs → bootstrap-PeTZ2sAn.cjs} +2 -2
  29. package/dist/{browser-Do2MFdq6.cjs → browser-Bm24RiFU.cjs} +1 -1
  30. package/dist/{browser-CFfZM3yg.mjs → browser-CWWyaf8_.mjs} +1 -1
  31. package/dist/{claudeAccountEnv-BL1pR_37.mjs → claudeAccountEnv-CPO6CGNd.mjs} +1 -1
  32. package/dist/{claudeAccountEnv-CEX_EMZr.cjs → claudeAccountEnv-_O3x5AJ1.cjs} +1 -1
  33. package/dist/{claudeLocal-DLd8ogcH.cjs → claudeLocal-BDWy2pFt.cjs} +5 -5
  34. package/dist/{claudeLocal-B47NjZfB.mjs → claudeLocal-CRG-Q7kS.mjs} +5 -5
  35. package/dist/{claudeLocalLauncher-5DDuHpCD.mjs → claudeLocalLauncher-B5cOrszW.mjs} +10 -10
  36. package/dist/{claudeLocalLauncher-D_UTQ4o_.cjs → claudeLocalLauncher-DmSLoHlw.cjs} +10 -10
  37. package/dist/{claudeSessionFork-BrJTncNL.mjs → claudeSessionFork-BqV6E0ep.mjs} +1 -1
  38. package/dist/{claudeSessionFork-4g6-Sk3Q.cjs → claudeSessionFork-OffWLYgd.cjs} +1 -1
  39. package/dist/{client-DS5JEsHs.mjs → client-B3lOol4f.mjs} +4 -4
  40. package/dist/{client-BIg2LPVx.cjs → client-B9fcSMXP.cjs} +2 -2
  41. package/dist/{client-Cbxr9VUE.mjs → client-CfTeXnYS.mjs} +2 -2
  42. package/dist/{client-OjYRPhZs.mjs → client-Cg_cuQb1.mjs} +2 -2
  43. package/dist/{client-CsfPUxLy.cjs → client-Ckic3nxZ.cjs} +2 -2
  44. package/dist/{client-BfDga3xi.cjs → client-YFvImdwH.cjs} +4 -4
  45. package/dist/codex/happyMcpStdioBridge.cjs +16 -16
  46. package/dist/codex/happyMcpStdioBridge.mjs +16 -16
  47. package/dist/{codexAccount-BDQjRbtI.cjs → codexAccount-CYhQir50.cjs} +1 -1
  48. package/dist/{codexAccount-NOX5pmQf.mjs → codexAccount-iZwmpYti.mjs} +1 -1
  49. package/dist/{codexAppServerClient-Bj5vN7sb.cjs → codexAppServerClient-C-UwVMUN.cjs} +60 -3
  50. package/dist/{codexAppServerClient-HKAm8f_D.mjs → codexAppServerClient-aV5m-FpZ.mjs} +60 -3
  51. package/dist/{codexCommand-DtbDjHZp.cjs → codexCommand-5nWT7F8A.cjs} +145 -51
  52. package/dist/{codexCommand-655pR6CR.mjs → codexCommand-CI2NTyIF.mjs} +144 -50
  53. package/dist/{codexTermination-DxLR-bb5.mjs → codexTermination-CLjDP6Ja.mjs} +6 -2
  54. package/dist/{codexTermination-CX_FHKT5.cjs → codexTermination-D18IHgLP.cjs} +6 -2
  55. package/dist/{config-Cv-A-Bw0.cjs → config-B7YtrHi0.cjs} +3 -3
  56. package/dist/{config-CIvXVGlP.mjs → config-BfwjfFSC.mjs} +3 -3
  57. package/dist/{configuration-rTcdHkhE.mjs → configuration-C8r6uD9k.mjs} +1 -1
  58. package/dist/{configuration-2Pbg3a0H.cjs → configuration-CWRKSOyj.cjs} +1 -1
  59. package/dist/{connect-BAYNAE8A.cjs → connect-DALX1hGB.cjs} +15 -15
  60. package/dist/{connect-B9Bl68PF.mjs → connect-K5HBcM56.mjs} +15 -15
  61. package/dist/{context-CLTyu_tQ.cjs → context-BqhlGL3u.cjs} +1 -1
  62. package/dist/{context-C7QarZMk.mjs → context-CtMY-M8T.mjs} +1 -1
  63. package/dist/{controlClient-BIdGnYBo.mjs → controlClient-DYQ1g2ar.mjs} +20 -8
  64. package/dist/{controlClient-CIqHL07h.cjs → controlClient-DyNgxNl7.cjs} +19 -7
  65. package/dist/{createSessionMetadata-BHjzRzPc.cjs → createSessionMetadata-C4WN8pVK.cjs} +2 -2
  66. package/dist/{createSessionMetadata-PrN-dT7K.mjs → createSessionMetadata-CZuEDo2v.mjs} +2 -2
  67. package/dist/{daemonAccounts-DwPwKxvv.mjs → daemonAccounts-CnAEaJE_.mjs} +3 -3
  68. package/dist/{daemonAccounts-CpGDY_4k.cjs → daemonAccounts-CxMJw7x2.cjs} +2 -2
  69. package/dist/{defaultPermissionMode-BakXiqRr.cjs → defaultPermissionMode-BCWCMONI.cjs} +1 -1
  70. package/dist/{defaultPermissionMode-DF5AfeBb.mjs → defaultPermissionMode-CpEJ0wlb.mjs} +1 -1
  71. package/dist/{deterministicJson-DFwJ57jR.mjs → deterministicJson-Dg_0QJAR.mjs} +13 -13
  72. package/dist/{deterministicJson-ZBFn1jtS.cjs → deterministicJson-r4zhG546.cjs} +13 -13
  73. package/dist/{doctor-yyM-zii7.cjs → doctor-0gLGzwz6.cjs} +8 -8
  74. package/dist/{doctor-u46qYYKX.cjs → doctor-CJpFhHoK.cjs} +8 -9
  75. package/dist/{doctor-CFYpAXvt.mjs → doctor-COeFzPpz.mjs} +8 -8
  76. package/dist/{doctor-BPkYWSuq.mjs → doctor-GN5mPOn5.mjs} +8 -9
  77. package/dist/{downloadTarget-DlmqPQp9.cjs → downloadTarget-8ovVpDv1.cjs} +6 -6
  78. package/dist/{downloadTarget-CVPBZMnY.mjs → downloadTarget-CbuUiS5p.mjs} +6 -6
  79. package/dist/{ensureDaemonRunning-D2ny0yon.cjs → ensureDaemonRunning-Bq-n6xTt.cjs} +5 -5
  80. package/dist/{ensureDaemonRunning-B6Y-CMWe.mjs → ensureDaemonRunning-CwlujXmV.mjs} +5 -5
  81. package/dist/{handleResumeCommand-DlrDcV5B.mjs → handleResumeCommand-B5GgmPm_.mjs} +5 -5
  82. package/dist/{handleResumeCommand-D-mGugcu.cjs → handleResumeCommand-muSrYA5y.cjs} +5 -5
  83. package/dist/{index-DuDD9khO.mjs → index-BRH0XYSO.mjs} +53 -46
  84. package/dist/{index-5c33fqLQ.cjs → index-BUOd8bNd.cjs} +5 -5
  85. package/dist/{index-Bi3dVJ0S.mjs → index-BZCIkrFj.mjs} +4 -4
  86. package/dist/{index-D1YnIih6.mjs → index-C27JFCbe.mjs} +2 -1
  87. package/dist/{index-CPkSLWP_.cjs → index-CQZg9jKx.cjs} +4 -4
  88. package/dist/{index-2Fcq3AGX.cjs → index-CnY74Dae.cjs} +3 -3
  89. package/dist/{index-BJsenPFp.mjs → index-D0V-seiN.mjs} +3 -3
  90. package/dist/{index-BUFrKZeQ.cjs → index-D9Hidq-g.cjs} +2 -0
  91. package/dist/{index-DEN6vfEY.mjs → index-DKCmDned.mjs} +5 -5
  92. package/dist/{index-BWvmUCQF.cjs → index-Dt_YE-zw.cjs} +52 -45
  93. package/dist/index.cjs +2 -2
  94. package/dist/index.mjs +2 -2
  95. package/dist/{install-BOA4nEbm.cjs → install-BlW2kkPl.cjs} +3 -3
  96. package/dist/{install-BVYL-wSO.mjs → install-CooQf1oU.mjs} +3 -3
  97. package/dist/lib.cjs +16 -16
  98. package/dist/lib.d.cts +4 -0
  99. package/dist/lib.d.mts +4 -0
  100. package/dist/lib.mjs +16 -16
  101. package/dist/{lidState-zy20u7T3.mjs → lidState-BflRFw38.mjs} +1 -1
  102. package/dist/{lidState-DYeb7Wud.cjs → lidState-VZ1j_QYw.cjs} +1 -1
  103. package/dist/{localHappyAgentAuth-CBsX08VJ.mjs → localHappyAgentAuth-BAK_nqMG.mjs} +1 -1
  104. package/dist/{localHappyAgentAuth-CScN2McN.cjs → localHappyAgentAuth-oxhpgJOb.cjs} +1 -1
  105. package/dist/{logger-SGCwRIV5.mjs → logger-D1hb3CG8.mjs} +2 -2
  106. package/dist/{logger-CepF8C5Z.cjs → logger-HQ9yDb8R.cjs} +2 -2
  107. package/dist/{machineMetadata-ClJfd7ay.mjs → machineMetadata-Dxng45Uh.mjs} +3 -3
  108. package/dist/{machineMetadata-ObK4hjF0.cjs → machineMetadata-Dzwn-HjN.cjs} +3 -3
  109. package/dist/{main-C7ZcZVBY.mjs → main-BP0iY2vQ.mjs} +48 -48
  110. package/dist/{main-mhXOpUV7.cjs → main-D7qre-pa.cjs} +48 -48
  111. package/dist/{mcp-BuCpkYTY.mjs → mcp-BmDGyj7k.mjs} +18 -18
  112. package/dist/{mcp-Zz7m0j8A.cjs → mcp-D3yzLkh8.cjs} +18 -18
  113. package/dist/{mirrorProtocol-B0H9UTBM.mjs → mirrorProtocol-C9Zc6GFT.mjs} +3 -3
  114. package/dist/{mirrorProtocol-IhICxf0K.cjs → mirrorProtocol-Cv2otcvM.cjs} +3 -3
  115. package/dist/{package-Q_ELj5DL.mjs → package-CpmoMPuj.mjs} +7 -7
  116. package/dist/{package-C7WgesIw.cjs → package-Dn7zZkY1.cjs} +7 -7
  117. package/dist/{panels-Cm69UXgE.mjs → panels-CQobcX5w.mjs} +5 -5
  118. package/dist/{panels-yyxpwZnk.cjs → panels-D59PlNoD.cjs} +5 -5
  119. package/dist/{peerTools-DUg9RduG.mjs → peerTools-CNzlwuL7.mjs} +5 -5
  120. package/dist/{peerTools-BcZAbqBL.cjs → peerTools-D417O7d-.cjs} +5 -5
  121. package/dist/{persistence-D0gNvqXe.cjs → persistence-BiyvEYaR.cjs} +15 -5
  122. package/dist/{persistence-mr4Y484W.mjs → persistence-CagHeZ-f.mjs} +15 -5
  123. package/dist/{piRunnerArgs-CGjpl4iF.mjs → piRunnerArgs-DKU5LoWu.mjs} +1 -1
  124. package/dist/{piRunnerArgs-DK_DDkYW.cjs → piRunnerArgs-kTaNYd23.cjs} +1 -1
  125. package/dist/{piRuntime-CtZRNOEb.cjs → piRuntime-BI4KNAUY.cjs} +1 -1
  126. package/dist/{piRuntime-HUA19wG8.mjs → piRuntime-BV4fQyZD.mjs} +1 -1
  127. package/dist/{piTerminal-D9OPouek.cjs → piTerminal-WPUtDJAV.cjs} +20 -20
  128. package/dist/{piTerminal-Bgy1W9mA.mjs → piTerminal-oObkl3WJ.mjs} +20 -20
  129. package/dist/processTermination-ChJG5SLW.mjs +107 -0
  130. package/dist/processTermination-f17wxlMb.cjs +110 -0
  131. package/dist/{processTreeSnapshot-mDbnuojn.cjs → processTreeSnapshot-D5iNblp6.cjs} +26 -0
  132. package/dist/{processTreeSnapshot-CuLJDNC-.mjs → processTreeSnapshot-fuwxC0fr.mjs} +25 -1
  133. package/dist/{pushNotifications-DjEl8G0a.mjs → pushNotifications-4sNESDMv.mjs} +11 -4
  134. package/dist/{pushNotifications-CH0XVPQe.cjs → pushNotifications-DRDWUnP-.cjs} +12 -3
  135. package/dist/{query-DmIo5OXf.mjs → query-6OWHW1U1.mjs} +2 -2
  136. package/dist/{query-Df3WhSA0.cjs → query-qIbeJ2-r.cjs} +2 -2
  137. package/dist/{rateLimitWindows-a2yE3kCv.mjs → rateLimitWindows-4uhuwKnU.mjs} +1 -1
  138. package/dist/{rateLimitWindows-B9PERFm1.cjs → rateLimitWindows-U4fc1-_6.cjs} +1 -1
  139. package/dist/{registerCommonHandlers-D4uXC0he.cjs → registerCommonHandlers-CEV9KUsq.cjs} +2 -2
  140. package/dist/{registerCommonHandlers-CND00Dpj.mjs → registerCommonHandlers-PTJ8TBj9.mjs} +2 -2
  141. package/dist/{registerKillSessionHandler-DQKsD9CW.cjs → registerKillSessionHandler-C6F1sjoo.cjs} +6 -6
  142. package/dist/{registerKillSessionHandler-CwyHwm_n.mjs → registerKillSessionHandler-D4SSwQj8.mjs} +6 -6
  143. package/dist/registerSideQuestionHandler-4mRv0Msq.mjs +358 -0
  144. package/dist/registerSideQuestionHandler-ByUnjI3V.cjs +366 -0
  145. package/dist/{remoteSessionClient-DOWgca08.cjs → remoteSessionClient-CUk6haD7.cjs} +5 -5
  146. package/dist/{remoteSessionClient-mIr_9OL_.mjs → remoteSessionClient-CfYDFlKm.mjs} +5 -5
  147. package/dist/{reportProgressTool-DTKlUlHv.mjs → reportProgressTool-BCn5oG52.mjs} +3 -3
  148. package/dist/{reportProgressTool-BLw2_Ohi.cjs → reportProgressTool-C1JOvo6T.cjs} +3 -3
  149. package/dist/{run-1V6DLzTY.cjs → run-D2SlfZPP.cjs} +54 -74
  150. package/dist/{run-bfxXYL5N.mjs → run-DC8BIklA.mjs} +52 -72
  151. package/dist/{runClaude-DuFgZZwO.cjs → runClaude-BE-5GgIZ.cjs} +37 -31
  152. package/dist/{runClaude-BgvDhl2p.mjs → runClaude-D6fqN9PD.mjs} +37 -31
  153. package/dist/{runClaudeDeps-CX7GtH7O.mjs → runClaudeDeps-BmdwskeI.mjs} +52 -340
  154. package/dist/{runClaudeDeps-DeVinBmE.cjs → runClaudeDeps-W0nv2vHL.cjs} +48 -336
  155. package/dist/{runGemini-Cd27u-7R.mjs → runGemini-C3Ipeu1i.mjs} +37 -34
  156. package/dist/{runGemini-DiYSk3s1.cjs → runGemini-Da_d-2kV.cjs} +37 -34
  157. package/dist/{runOpenClaw-CWkkfRSo.mjs → runOpenClaw-BoI6nbKB.mjs} +30 -20
  158. package/dist/{runOpenClaw-DyQnBzpy.cjs → runOpenClaw-af5qDNU0.cjs} +30 -20
  159. package/dist/{sandbox-C35zDrkc.mjs → sandbox-CjoyUSGa.mjs} +4 -4
  160. package/dist/{sandbox-BAXXYewR.cjs → sandbox-UGF68GrE.cjs} +4 -4
  161. package/dist/selfCheck-CNrOZgBv.mjs +88 -0
  162. package/dist/{selfCheck-R71q-x7u.cjs → selfCheck-Cr8eAw4m.cjs} +40 -40
  163. package/dist/{send-3Wa9th3D.cjs → send-CVSht9s_.cjs} +8 -8
  164. package/dist/{send-DiSaR5Bk.mjs → send-gqX0-i4p.mjs} +8 -8
  165. package/dist/{server-BJu2bFBy.cjs → server-BPgVv-BG.cjs} +6 -6
  166. package/dist/{server-BxMJxaE6.mjs → server-DxlNqWJo.mjs} +4 -4
  167. package/dist/{sessionExitLifecycle-DFltxXU8.cjs → sessionExitLifecycle-DB2rjvVS.cjs} +5 -1
  168. package/dist/{sessionExitLifecycle-CzkLIgNZ.mjs → sessionExitLifecycle-iAtZN9sa.mjs} +5 -1
  169. package/dist/{sessionLock-dbi4JPhP.mjs → sessionLock-BfvR9BGB.mjs} +94 -78
  170. package/dist/{sessionLock-BJ1ngLgm.cjs → sessionLock-D2usWXAg.cjs} +92 -78
  171. package/dist/{sessionOps-BUlpeaUe.cjs → sessionOps-JRyQhF5s.cjs} +4 -4
  172. package/dist/{sessionOps-C9wRmCBg.mjs → sessionOps-OmRqUFm4.mjs} +4 -4
  173. package/dist/{sessionProvider-DYD6JepE.cjs → sessionProvider-BpscgwwC.cjs} +10 -10
  174. package/dist/{sessionProvider-BEHfI5gs.mjs → sessionProvider-DTEdidBc.mjs} +10 -10
  175. package/dist/{sessionScanner-CFITViIZ.mjs → sessionScanner-BlAOpqMh.mjs} +3 -3
  176. package/dist/{sessionScanner-BwbjEoSf.cjs → sessionScanner-C_qVc1ok.cjs} +3 -3
  177. package/dist/{sessions-C-wBd0fN.cjs → sessions-7iyjxti9.cjs} +10 -10
  178. package/dist/{sessions-wOcO2X-k.mjs → sessions-CnjHHllR.mjs} +10 -10
  179. package/dist/{setupOfflineReconnection-Bd6XsWhA.cjs → setupOfflineReconnection-BCbJa5mT.cjs} +2 -2
  180. package/dist/{setupOfflineReconnection-BrljmbqX.mjs → setupOfflineReconnection-IKEI7fLJ.mjs} +2 -2
  181. package/dist/{spawn-BPioepNz.mjs → spawn-CbfcClhj.mjs} +14 -14
  182. package/dist/{spawn-Crprnq9Z.cjs → spawn-CxEl0Dyz.cjs} +14 -14
  183. package/dist/{spawnAgents-B9olJ8xn.cjs → spawnAgents-Cm23BW-D.cjs} +1 -1
  184. package/dist/{spawnAgents-I29H9nO8.mjs → spawnAgents-N3jxdNJC.mjs} +1 -1
  185. package/dist/{spawnHappyCLI-BA1bTIiO.mjs → spawnHappyCLI-C8gMHJu5.mjs} +1 -1
  186. package/dist/{spawnHappyCLI-C0XAWy8V.cjs → spawnHappyCLI-CHSlXWUe.cjs} +1 -1
  187. package/dist/{startFileWatcher-COCEjNT8.mjs → startFileWatcher-6hslFu_B.mjs} +1 -1
  188. package/dist/{startFileWatcher-Ca5izs24.cjs → startFileWatcher-BGpYPz6L.cjs} +1 -1
  189. package/dist/{startupSessionCreate-BnEPBxsJ.mjs → startupSessionCreate-B7jrCZUD.mjs} +3 -3
  190. package/dist/{startupSessionCreate-Cmg1gkKS.cjs → startupSessionCreate-CltDtCEF.cjs} +3 -3
  191. package/dist/{store-Vej_738f.mjs → store-BlPvTr_Q.mjs} +1 -1
  192. package/dist/{store-CkNa6oj4.cjs → store-aa3CVNwS.cjs} +1 -1
  193. package/dist/{streamRelay-C0G1HOOd.cjs → streamRelay-C2Lb2z39.cjs} +1 -1
  194. package/dist/{streamRelay-C5U-C4GS.mjs → streamRelay-DFZyAPD_.mjs} +1 -1
  195. package/dist/{sync-BfrnSdL1.cjs → sync-DfI78smj.cjs} +1 -1
  196. package/dist/{sync-DVcNkv8e.mjs → sync-DtzoF9sw.mjs} +1 -1
  197. package/dist/{systemPrompt-BxZebU75.mjs → systemPrompt-B1Xd99hK.mjs} +2 -2
  198. package/dist/{systemPrompt-Os5ca7pu.cjs → systemPrompt-HZNR9rjt.cjs} +2 -2
  199. package/dist/{teams-CNB3DE_n.mjs → teams-Vk75H6BZ.mjs} +7 -7
  200. package/dist/{teams--pv0QFMA.cjs → teams-fFX-L_ms.cjs} +7 -7
  201. package/dist/{template-B9pLEP8v.cjs → template-B1AORlgU.cjs} +1 -1
  202. package/dist/{template-CL9EvQLQ.mjs → template-CJ8uLlD8.mjs} +1 -1
  203. package/dist/{time-Da5GIiCa.cjs → time-BqPZjTpo.cjs} +1 -1
  204. package/dist/{time-0Ru4clBD.mjs → time-CgAwVt5R.mjs} +1 -1
  205. package/dist/{titleGenerator-CaCzpYyA.mjs → titleGenerator-D2UB7Uyr.mjs} +2 -2
  206. package/dist/{titleGenerator-9xIXHA5K.cjs → titleGenerator-ijVOuv3J.cjs} +3 -3
  207. package/dist/{todo-CZXHl2Lg.mjs → todo-CCuqtD0O.mjs} +6 -6
  208. package/dist/{todo-DUY_J3l_.cjs → todo-vCzaIwNp.cjs} +6 -6
  209. package/dist/{tools-hPD2Hvei.cjs → tools-CL8h3fqh.cjs} +1 -1
  210. package/dist/{tools-DqA2Jt2R.mjs → tools-DthGQoo3.mjs} +1 -1
  211. package/dist/{uninstall-rTvdpRLt.cjs → uninstall-CIvThBvI.cjs} +3 -3
  212. package/dist/{uninstall-CjMzELYw.mjs → uninstall-DCJh4UoO.mjs} +3 -3
  213. package/dist/{wrapperAccount-D2A4DuZy.cjs → wrapperAccount-BubTurHU.cjs} +2 -2
  214. package/dist/{wrapperAccount-BkufO_9g.mjs → wrapperAccount-RPtq8BwD.mjs} +2 -2
  215. package/package.json +7 -7
  216. package/dist/rateLimitReporter-B_PZClib.mjs +0 -42
  217. package/dist/rateLimitReporter-M_IKRRS7.cjs +0 -44
  218. package/dist/selfCheck-DKMF0Dyu.mjs +0 -88
@@ -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-SGCwRIV5.mjs';
5
- import { d as delay } from './time-0Ru4clBD.mjs';
4
+ import { l as logger } from './logger-D1hb3CG8.mjs';
5
+ import { d as delay } from './time-CgAwVt5R.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-Q_ELj5DL.mjs';
8
+ import { p as packageJson } from './package-CpmoMPuj.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-CepF8C5Z.cjs');
7
- var time = require('./time-Da5GIiCa.cjs');
6
+ var logger = require('./logger-HQ9yDb8R.cjs');
7
+ var time = require('./time-BqPZjTpo.cjs');
8
8
  var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
9
9
  var processTree = require('./processTree-CMHWlVse.cjs');
10
- var _package = require('./package-C7WgesIw.cjs');
10
+ var _package = require('./package-Dn7zZkY1.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,6 +1,6 @@
1
1
  import { createId } from '@paralleldrive/cuid2';
2
- import { s as streamKeyOf, k as createEnvelope } from './index-D1YnIih6.mjs';
3
- import { t as textResultPayload, b as toolResultPayload } from './api-aE60mNjs.mjs';
2
+ import { s as streamKeyOf, k as createEnvelope } from './index-C27JFCbe.mjs';
3
+ import { t as textResultPayload, b as toolResultPayload } from './api-CiNezCys.mjs';
4
4
 
5
5
  function turnOptions(turnId, time) {
6
6
  return turnId ? { turn: turnId, time } : { time };
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var cuid2 = require('@paralleldrive/cuid2');
4
- var index = require('./index-BUFrKZeQ.cjs');
5
- var api = require('./api-wYwQCJml.cjs');
4
+ var index = require('./index-D9Hidq-g.cjs');
5
+ var api = require('./api-fuwEEEkT.cjs');
6
6
 
7
7
  function turnOptions(turnId, time) {
8
8
  return turnId ? { turn: turnId, time } : { time };
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-CepF8C5Z.cjs');
3
+ var logger = require('./logger-HQ9yDb8R.cjs');
4
4
 
5
5
  class BasePermissionHandler {
6
6
  pendingRequests = /* @__PURE__ */ new Map();
@@ -1,4 +1,4 @@
1
- import { l as logger } from './logger-SGCwRIV5.mjs';
1
+ import { l as logger } from './logger-D1hb3CG8.mjs';
2
2
 
3
3
  class BasePermissionHandler {
4
4
  pendingRequests = /* @__PURE__ */ new Map();
@@ -2,27 +2,27 @@
2
2
 
3
3
  var chalk = require('chalk');
4
4
  var promises = require('node:readline/promises');
5
- var configuration = require('./configuration-2Pbg3a0H.cjs');
6
- var controlClient = require('./controlClient-CIqHL07h.cjs');
7
- var accountService = require('./accountService-CuUSJDhP.cjs');
5
+ var configuration = require('./configuration-CWRKSOyj.cjs');
6
+ var controlClient = require('./controlClient-DyNgxNl7.cjs');
7
+ var accountService = require('./accountService-DL6xhVUa.cjs');
8
8
  require('node:fs');
9
9
  require('node:os');
10
10
  require('node:path');
11
- require('./package-C7WgesIw.cjs');
11
+ require('./package-Dn7zZkY1.cjs');
12
12
  require('node:fs/promises');
13
- require('./logger-CepF8C5Z.cjs');
13
+ require('./logger-HQ9yDb8R.cjs');
14
14
  require('node:util');
15
- require('./persistence-D0gNvqXe.cjs');
15
+ require('./persistence-BiyvEYaR.cjs');
16
16
  require('zod');
17
17
  require('./authRelay-Dy1qU9td.cjs');
18
18
  require('node:crypto');
19
19
  require('tweetnacl');
20
- require('./index-BUFrKZeQ.cjs');
20
+ require('./index-D9Hidq-g.cjs');
21
21
  require('@paralleldrive/cuid2');
22
22
  require('node:child_process');
23
- require('./claudeAccountEnv-CEX_EMZr.cjs');
24
- require('./store-CkNa6oj4.cjs');
25
- require('./codexAccount-BDQjRbtI.cjs');
23
+ require('./claudeAccountEnv-_O3x5AJ1.cjs');
24
+ require('./store-aa3CVNwS.cjs');
25
+ require('./codexAccount-CYhQir50.cjs');
26
26
  require('node:readline');
27
27
 
28
28
  const ACCOUNT_HELP = `Usage:
@@ -185,7 +185,7 @@ Waiting (expires in 15 minutes; Ctrl-C to cancel)\u2026`);
185
185
  }
186
186
  }
187
187
  async function loginInteractive(target) {
188
- const { spawnSetupTokenPty } = await Promise.resolve().then(function () { return require('./daemonAccounts-CpGDY_4k.cjs'); });
188
+ const { spawnSetupTokenPty } = await Promise.resolve().then(function () { return require('./daemonAccounts-CxMJw7x2.cjs'); });
189
189
  const { homedir } = await import('node:os');
190
190
  const svc = new accountService.AccountService({ home: configuration.configuration.happyHomeDir, spawnPty: (env) => spawnSetupTokenPty(homedir(), env) });
191
191
  const started = await svc.loginStart({ agent: "claude", kind: "claude-subscription", ...target });
@@ -1,26 +1,26 @@
1
1
  import chalk from 'chalk';
2
2
  import { createInterface } from 'node:readline/promises';
3
- import { c as configuration } from './configuration-rTcdHkhE.mjs';
4
- import { g as getDaemonAgentProfiles, r as restartDaemonSession, l as listDaemonSessions } from './controlClient-BIdGnYBo.mjs';
5
- import { A as AccountService, b as bindResultMessages, a as AccountError, l as localRestartFailure } from './accountService-Cd7bnkfd.mjs';
3
+ import { c as configuration } from './configuration-C8r6uD9k.mjs';
4
+ import { g as getDaemonAgentProfiles, r as restartDaemonSession, l as listDaemonSessions } from './controlClient-DYQ1g2ar.mjs';
5
+ import { A as AccountService, b as bindResultMessages, a as AccountError, l as localRestartFailure } from './accountService-DQ21IlBs.mjs';
6
6
  import 'node:fs';
7
7
  import 'node:os';
8
8
  import 'node:path';
9
- import './package-Q_ELj5DL.mjs';
9
+ import './package-CpmoMPuj.mjs';
10
10
  import 'node:fs/promises';
11
- import './logger-SGCwRIV5.mjs';
11
+ import './logger-D1hb3CG8.mjs';
12
12
  import 'node:util';
13
- import './persistence-mr4Y484W.mjs';
13
+ import './persistence-CagHeZ-f.mjs';
14
14
  import 'zod';
15
15
  import './authRelay-DhQhkBvX.mjs';
16
16
  import 'node:crypto';
17
17
  import 'tweetnacl';
18
- import './index-D1YnIih6.mjs';
18
+ import './index-C27JFCbe.mjs';
19
19
  import '@paralleldrive/cuid2';
20
20
  import 'node:child_process';
21
- import './claudeAccountEnv-BL1pR_37.mjs';
22
- import './store-Vej_738f.mjs';
23
- import './codexAccount-NOX5pmQf.mjs';
21
+ import './claudeAccountEnv-CPO6CGNd.mjs';
22
+ import './store-BlPvTr_Q.mjs';
23
+ import './codexAccount-iZwmpYti.mjs';
24
24
  import 'node:readline';
25
25
 
26
26
  const ACCOUNT_HELP = `Usage:
@@ -183,7 +183,7 @@ Waiting (expires in 15 minutes; Ctrl-C to cancel)\u2026`);
183
183
  }
184
184
  }
185
185
  async function loginInteractive(target) {
186
- const { spawnSetupTokenPty } = await import('./daemonAccounts-DwPwKxvv.mjs');
186
+ const { spawnSetupTokenPty } = await import('./daemonAccounts-CnAEaJE_.mjs');
187
187
  const { homedir } = await import('node:os');
188
188
  const svc = new AccountService({ home: configuration.happyHomeDir, spawnPty: (env) => spawnSetupTokenPty(homedir(), env) });
189
189
  const started = await svc.loginStart({ agent: "claude", kind: "claude-subscription", ...target });
@@ -3,12 +3,12 @@
3
3
  var node_crypto = require('node:crypto');
4
4
  var node_fs = require('node:fs');
5
5
  var path = require('node:path');
6
- var index = require('./index-BUFrKZeQ.cjs');
6
+ var index = require('./index-D9Hidq-g.cjs');
7
7
  var node_child_process = require('node:child_process');
8
- var claudeAccountEnv = require('./claudeAccountEnv-CEX_EMZr.cjs');
9
- var codexAccount = require('./codexAccount-BDQjRbtI.cjs');
8
+ var claudeAccountEnv = require('./claudeAccountEnv-_O3x5AJ1.cjs');
9
+ var codexAccount = require('./codexAccount-CYhQir50.cjs');
10
10
  var node_readline = require('node:readline');
11
- var store = require('./store-CkNa6oj4.cjs');
11
+ var store = require('./store-aa3CVNwS.cjs');
12
12
 
13
13
  const CHECK_TIMEOUT_MS = 2e4;
14
14
  const DEFAULT_CHECK_MODEL = "claude-haiku-4-5";
@@ -1,12 +1,12 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { mkdirSync, writeFileSync, readFileSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
- import { G as AGENT_PROFILE_FEATURE_LAUNCH, H as AgentProfileAddRequestSchema, I as AgentProfileLoginStartRequestSchema, J as AgentProfileLoginSubmitRequestSchema, K as AgentProfileBindRequestSchema } from './index-D1YnIih6.mjs';
4
+ import { E as AGENT_PROFILE_FEATURE_LAUNCH, F as AgentProfileAddRequestSchema, G as AgentProfileLoginStartRequestSchema, H as AgentProfileLoginSubmitRequestSchema, I as AgentProfileBindRequestSchema } from './index-C27JFCbe.mjs';
5
5
  import { spawn } from 'node:child_process';
6
- import { A as ACCOUNT_STRIPPED_ENV_KEYS } from './claudeAccountEnv-BL1pR_37.mjs';
7
- import { C as CODEX_ALWAYS_STRIPPED_ENV_KEYS, r as readCodexProviders, s as syncCodexOverlay, b as baseCodexHome } from './codexAccount-NOX5pmQf.mjs';
6
+ import { A as ACCOUNT_STRIPPED_ENV_KEYS } from './claudeAccountEnv-CPO6CGNd.mjs';
7
+ import { C as CODEX_ALWAYS_STRIPPED_ENV_KEYS, r as readCodexProviders, s as syncCodexOverlay, b as baseCodexHome } from './codexAccount-iZwmpYti.mjs';
8
8
  import { createInterface } from 'node:readline';
9
- import { h as buildAgentProfilesState, d as defaultSecretProbe, a as readAccounts, s as summarizeAccount, c as readAccountsFileV2, n as newAccountId, i as writeAccountSecret, f as writeAccountsFile, j as sessionsBoundTo, r as readSessionBindings, k as removeAccountSecret, b as accountSecretPath, e as expandHome, l as accountCodexHomePath, m as SUBSCRIPTION_TOKEN_TTL_MS, w as writeSessionBinding, o as readSessionBindingV2 } from './store-Vej_738f.mjs';
9
+ import { h as buildAgentProfilesState, d as defaultSecretProbe, a as readAccounts, s as summarizeAccount, c as readAccountsFileV2, n as newAccountId, i as writeAccountSecret, f as writeAccountsFile, j as sessionsBoundTo, r as readSessionBindings, k as removeAccountSecret, b as accountSecretPath, e as expandHome, l as accountCodexHomePath, m as SUBSCRIPTION_TOKEN_TTL_MS, w as writeSessionBinding, o as readSessionBindingV2 } from './store-BlPvTr_Q.mjs';
10
10
 
11
11
  const CHECK_TIMEOUT_MS = 2e4;
12
12
  const DEFAULT_CHECK_MODEL = "claude-haiku-4-5";
@@ -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-2Pbg3a0H.cjs');
5
+ var configuration = require('./configuration-CWRKSOyj.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-rTcdHkhE.mjs';
3
+ import { w as writePrivateFileSync, c as configuration } from './configuration-C8r6uD9k.mjs';
4
4
 
5
5
  const SESSION_MODE_DIR = "session-modes";
6
6
  const ACP_PERMISSION_MODES = ["default", "acceptEdits", "plan", "bypassPermissions"];
@@ -2,14 +2,14 @@
2
2
 
3
3
  var chalk = require('chalk');
4
4
  var os = require('node:os');
5
- var persistence = require('./persistence-D0gNvqXe.cjs');
5
+ var persistence = require('./persistence-BiyvEYaR.cjs');
6
6
  require('node:fs');
7
- require('./logger-CepF8C5Z.cjs');
7
+ require('./logger-HQ9yDb8R.cjs');
8
8
  var loginShellEnv = require('./loginShellEnv-BkuYtExZ.cjs');
9
9
  require('node:fs/promises');
10
- require('./configuration-2Pbg3a0H.cjs');
10
+ require('./configuration-CWRKSOyj.cjs');
11
11
  require('node:path');
12
- require('./package-C7WgesIw.cjs');
12
+ require('./package-Dn7zZkY1.cjs');
13
13
  require('zod');
14
14
  require('./authRelay-Dy1qU9td.cjs');
15
15
  require('node:crypto');
@@ -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-mr4Y484W.mjs';
3
+ import { r as readSettings, u as updateSettings } from './persistence-CagHeZ-f.mjs';
4
4
  import 'node:fs';
5
- import './logger-SGCwRIV5.mjs';
5
+ import './logger-D1hb3CG8.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-rTcdHkhE.mjs';
8
+ import './configuration-C8r6uD9k.mjs';
9
9
  import 'node:path';
10
- import './package-Q_ELj5DL.mjs';
10
+ import './package-CpmoMPuj.mjs';
11
11
  import 'zod';
12
12
  import './authRelay-DhQhkBvX.mjs';
13
13
  import 'node:crypto';
@@ -1,20 +1,20 @@
1
1
  import axios from 'axios';
2
- import { l as logger, r as redactLogValue } from './logger-SGCwRIV5.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-zy20u7T3.mjs';
2
+ import { l as logger, r as redactLogValue } from './logger-D1hb3CG8.mjs';
3
+ import { A as AsyncLock, S as SESSION_SUPERSEDED_ERROR, a as agentInstanceAuth, b as MAX_CHAT_ATTACHMENT_ENCRYPTED_BYTES, U as UserMessageSchema, F as FileEventMessageSchema, P as PushNotificationClient } from './pushNotifications-4sNESDMv.mjs';
4
+ 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-BflRFw38.mjs';
4
5
  import { EventEmitter } from 'node:events';
5
6
  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-DjEl8G0a.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-0Ru4clBD.mjs';
10
- import { c as configuration } from './configuration-rTcdHkhE.mjs';
9
+ import { b as backoff, d as delay, e as exponentialBackoffDelay } from './time-CgAwVt5R.mjs';
10
+ import { c as configuration } from './configuration-C8r6uD9k.mjs';
11
11
  import { createHmac, randomUUID } from 'node:crypto';
12
- import { k as createEnvelope, s as streamKeyOf, a3 as ReleaseDrainNoticeSchema, a4 as RelayAssignmentResponseSchema } from './index-D1YnIih6.mjs';
13
- import { r as registerCommonHandlers } from './registerCommonHandlers-CND00Dpj.mjs';
12
+ import { k as createEnvelope, s as streamKeyOf, a3 as ReleaseDrainNoticeSchema, a4 as RelayAssignmentResponseSchema } from './index-C27JFCbe.mjs';
13
+ import { r as registerCommonHandlers } from './registerCommonHandlers-PTJ8TBj9.mjs';
14
14
  import { createId } from '@paralleldrive/cuid2';
15
- import { I as InvalidateSync } from './sync-DVcNkv8e.mjs';
15
+ import { I as InvalidateSync } from './sync-DtzoF9sw.mjs';
16
16
  import { B as BackgroundTaskReporter } from './backgroundTaskActivity-8PdPxrvy.mjs';
17
- import { q as notifyDaemonTurnEvent, t as notifyDaemonBackgroundTasks } from './controlClient-BIdGnYBo.mjs';
17
+ import { q as notifyDaemonTurnEvent, t as notifyDaemonBackgroundTasks } from './controlClient-DYQ1g2ar.mjs';
18
18
  import chalk from 'chalk';
19
19
 
20
20
  async function hmac_sha512(key, data) {
@@ -1225,6 +1225,7 @@ class ApiSessionClient extends EventEmitter {
1225
1225
  on(event, listener) {
1226
1226
  super.on(event, listener);
1227
1227
  if (event === "archived" && this.archiveSignalled) queueMicrotask(() => listener());
1228
+ if (event === "superseded" && this.supersededAt !== null) queueMicrotask(() => listener());
1228
1229
  return this;
1229
1230
  }
1230
1231
  token;
@@ -1349,8 +1350,16 @@ class ApiSessionClient extends EventEmitter {
1349
1350
  this.emit("archived");
1350
1351
  return;
1351
1352
  }
1353
+ if (error.message === SESSION_SUPERSEDED_ERROR) {
1354
+ this.markSuperseded(null);
1355
+ return;
1356
+ }
1352
1357
  this.startSmartReconnect();
1353
1358
  });
1359
+ this.socket.on("session-superseded", (notice) => {
1360
+ if (notice?.sessionId !== this.sessionId) return;
1361
+ this.markSuperseded(notice);
1362
+ });
1354
1363
  this.socket.on("session-archive", ({ sessionId }) => {
1355
1364
  if (sessionId !== this.sessionId) return;
1356
1365
  logger.debug("[SOCKET] Server archived this session; exiting...");
@@ -1439,6 +1448,7 @@ class ApiSessionClient extends EventEmitter {
1439
1448
  clientType: "session-scoped",
1440
1449
  sessionId: this.sessionId,
1441
1450
  happyClient: `cli-coding-session/${configuration.currentCliVersion}`,
1451
+ ...agentInstanceAuth,
1442
1452
  ...handover ? { handoverEpoch: handover.epoch } : {}
1443
1453
  },
1444
1454
  ...handover ? { query: { vh_slot: handover.candidateSlot }, forceNew: true } : {},
@@ -1484,7 +1494,7 @@ class ApiSessionClient extends EventEmitter {
1484
1494
  candidate.close();
1485
1495
  return;
1486
1496
  }
1487
- for (const event of ["session-archive", "update", "error", "server-draining"]) {
1497
+ for (const event of ["session-archive", "session-superseded", "update", "error", "server-draining"]) {
1488
1498
  const listeners = previous.listeners(event);
1489
1499
  previous.removeAllListeners(event);
1490
1500
  for (const listener of listeners) candidate.on(event, listener);
@@ -1503,8 +1513,12 @@ class ApiSessionClient extends EventEmitter {
1503
1513
  this.rpcHandlerManager.onSocketDisconnect(candidate);
1504
1514
  this.startSmartReconnect();
1505
1515
  });
1506
- candidate.on("connect_error", () => {
1516
+ candidate.on("connect_error", (error) => {
1507
1517
  this.rpcHandlerManager.onSocketDisconnect(candidate);
1518
+ if (error?.message === SESSION_SUPERSEDED_ERROR) {
1519
+ this.markSuperseded(null);
1520
+ return;
1521
+ }
1508
1522
  this.startSmartReconnect();
1509
1523
  });
1510
1524
  this.receiveSync.invalidate();
@@ -1859,7 +1873,7 @@ class ApiSessionClient extends EventEmitter {
1859
1873
  if (!assignment) return;
1860
1874
  const relaySocket = io(assignment.url, {
1861
1875
  path: "/v1/relay",
1862
- auth: { token: assignment.token },
1876
+ auth: { token: assignment.token, ...agentInstanceAuth },
1863
1877
  transports: ["websocket"],
1864
1878
  reconnection: true,
1865
1879
  reconnectionDelay: 500,
@@ -1867,6 +1881,9 @@ class ApiSessionClient extends EventEmitter {
1867
1881
  });
1868
1882
  this.relaySocket?.close();
1869
1883
  this.relaySocket = relaySocket;
1884
+ relaySocket.on("session-superseded", (notice) => {
1885
+ if (notice?.sessionId === this.sessionId) this.markSuperseded(notice);
1886
+ });
1870
1887
  relaySocket.on("connect", () => {
1871
1888
  if (this.relaySocket !== relaySocket) return;
1872
1889
  this.rpcHandlerManager.onSocketConnect(relaySocket);
@@ -2527,6 +2544,22 @@ class ApiSessionClient extends EventEmitter {
2527
2544
  }, 1e4);
2528
2545
  });
2529
2546
  }
2547
+ /** B-864: set once the server handed this session to a newer wrapper process. */
2548
+ supersededAt = null;
2549
+ get superseded() {
2550
+ return this.supersededAt !== null;
2551
+ }
2552
+ markSuperseded(notice) {
2553
+ if (this.supersededAt !== null) return;
2554
+ this.supersededAt = Date.now();
2555
+ const by = notice?.by ? ` by a wrapper started at ${new Date(notice.by.startedAt).toISOString()}${notice.by.happyClient ? ` (${notice.by.happyClient})` : ""}` : " by a newer wrapper";
2556
+ const message = `Session ${this.sessionId} was taken over${by}; this process (pid ${process.pid}) stops driving it.`;
2557
+ logger.debug(`[API] [SUPERSEDED] ${message}`);
2558
+ console.error(message);
2559
+ this.inboundFrozen = true;
2560
+ void this.close();
2561
+ this.emit("superseded", notice);
2562
+ }
2530
2563
  async close() {
2531
2564
  logger.debug("[API] socket.close() called");
2532
2565
  this.closedByClient = true;
@@ -3073,7 +3106,7 @@ class ApiClient {
3073
3106
  return new ApiSessionClient(this.credential.token, session, opts);
3074
3107
  }
3075
3108
  async machineSyncClient(machine) {
3076
- const { ApiMachineClient } = await import('./apiMachine-CvNB38Xg.mjs');
3109
+ const { ApiMachineClient } = await import('./apiMachine-DCmKjms1.mjs');
3077
3110
  return new ApiMachineClient(this.credential.token, machine);
3078
3111
  }
3079
3112
  push() {
@@ -1,22 +1,22 @@
1
1
  'use strict';
2
2
 
3
3
  var axios = require('axios');
4
- var logger = require('./logger-CepF8C5Z.cjs');
5
- var lidState = require('./lidState-DYeb7Wud.cjs');
4
+ var logger = require('./logger-HQ9yDb8R.cjs');
5
+ var pushNotifications = require('./pushNotifications-DRDWUnP-.cjs');
6
+ var lidState = require('./lidState-VZ1j_QYw.cjs');
6
7
  var node_events = require('node:events');
7
8
  var socket_ioClient = require('socket.io-client');
8
- var pushNotifications = require('./pushNotifications-CH0XVPQe.cjs');
9
9
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
10
10
  var limits = require('./limits-C-a7gr04.cjs');
11
- var time = require('./time-Da5GIiCa.cjs');
12
- var configuration = require('./configuration-2Pbg3a0H.cjs');
11
+ var time = require('./time-BqPZjTpo.cjs');
12
+ var configuration = require('./configuration-CWRKSOyj.cjs');
13
13
  var node_crypto = require('node:crypto');
14
- var index = require('./index-BUFrKZeQ.cjs');
15
- var registerCommonHandlers = require('./registerCommonHandlers-D4uXC0he.cjs');
14
+ var index = require('./index-D9Hidq-g.cjs');
15
+ var registerCommonHandlers = require('./registerCommonHandlers-CEV9KUsq.cjs');
16
16
  var cuid2 = require('@paralleldrive/cuid2');
17
- var sync = require('./sync-BfrnSdL1.cjs');
17
+ var sync = require('./sync-DfI78smj.cjs');
18
18
  var backgroundTaskActivity = require('./backgroundTaskActivity-CBvUdj39.cjs');
19
- var controlClient = require('./controlClient-CIqHL07h.cjs');
19
+ var controlClient = require('./controlClient-DyNgxNl7.cjs');
20
20
  var chalk = require('chalk');
21
21
 
22
22
  async function hmac_sha512(key, data) {
@@ -1227,6 +1227,7 @@ class ApiSessionClient extends node_events.EventEmitter {
1227
1227
  on(event, listener) {
1228
1228
  super.on(event, listener);
1229
1229
  if (event === "archived" && this.archiveSignalled) queueMicrotask(() => listener());
1230
+ if (event === "superseded" && this.supersededAt !== null) queueMicrotask(() => listener());
1230
1231
  return this;
1231
1232
  }
1232
1233
  token;
@@ -1351,8 +1352,16 @@ class ApiSessionClient extends node_events.EventEmitter {
1351
1352
  this.emit("archived");
1352
1353
  return;
1353
1354
  }
1355
+ if (error.message === pushNotifications.SESSION_SUPERSEDED_ERROR) {
1356
+ this.markSuperseded(null);
1357
+ return;
1358
+ }
1354
1359
  this.startSmartReconnect();
1355
1360
  });
1361
+ this.socket.on("session-superseded", (notice) => {
1362
+ if (notice?.sessionId !== this.sessionId) return;
1363
+ this.markSuperseded(notice);
1364
+ });
1356
1365
  this.socket.on("session-archive", ({ sessionId }) => {
1357
1366
  if (sessionId !== this.sessionId) return;
1358
1367
  logger.logger.debug("[SOCKET] Server archived this session; exiting...");
@@ -1441,6 +1450,7 @@ class ApiSessionClient extends node_events.EventEmitter {
1441
1450
  clientType: "session-scoped",
1442
1451
  sessionId: this.sessionId,
1443
1452
  happyClient: `cli-coding-session/${configuration.configuration.currentCliVersion}`,
1453
+ ...pushNotifications.agentInstanceAuth,
1444
1454
  ...handover ? { handoverEpoch: handover.epoch } : {}
1445
1455
  },
1446
1456
  ...handover ? { query: { vh_slot: handover.candidateSlot }, forceNew: true } : {},
@@ -1486,7 +1496,7 @@ class ApiSessionClient extends node_events.EventEmitter {
1486
1496
  candidate.close();
1487
1497
  return;
1488
1498
  }
1489
- for (const event of ["session-archive", "update", "error", "server-draining"]) {
1499
+ for (const event of ["session-archive", "session-superseded", "update", "error", "server-draining"]) {
1490
1500
  const listeners = previous.listeners(event);
1491
1501
  previous.removeAllListeners(event);
1492
1502
  for (const listener of listeners) candidate.on(event, listener);
@@ -1505,8 +1515,12 @@ class ApiSessionClient extends node_events.EventEmitter {
1505
1515
  this.rpcHandlerManager.onSocketDisconnect(candidate);
1506
1516
  this.startSmartReconnect();
1507
1517
  });
1508
- candidate.on("connect_error", () => {
1518
+ candidate.on("connect_error", (error) => {
1509
1519
  this.rpcHandlerManager.onSocketDisconnect(candidate);
1520
+ if (error?.message === pushNotifications.SESSION_SUPERSEDED_ERROR) {
1521
+ this.markSuperseded(null);
1522
+ return;
1523
+ }
1510
1524
  this.startSmartReconnect();
1511
1525
  });
1512
1526
  this.receiveSync.invalidate();
@@ -1861,7 +1875,7 @@ class ApiSessionClient extends node_events.EventEmitter {
1861
1875
  if (!assignment) return;
1862
1876
  const relaySocket = socket_ioClient.io(assignment.url, {
1863
1877
  path: "/v1/relay",
1864
- auth: { token: assignment.token },
1878
+ auth: { token: assignment.token, ...pushNotifications.agentInstanceAuth },
1865
1879
  transports: ["websocket"],
1866
1880
  reconnection: true,
1867
1881
  reconnectionDelay: 500,
@@ -1869,6 +1883,9 @@ class ApiSessionClient extends node_events.EventEmitter {
1869
1883
  });
1870
1884
  this.relaySocket?.close();
1871
1885
  this.relaySocket = relaySocket;
1886
+ relaySocket.on("session-superseded", (notice) => {
1887
+ if (notice?.sessionId === this.sessionId) this.markSuperseded(notice);
1888
+ });
1872
1889
  relaySocket.on("connect", () => {
1873
1890
  if (this.relaySocket !== relaySocket) return;
1874
1891
  this.rpcHandlerManager.onSocketConnect(relaySocket);
@@ -2529,6 +2546,22 @@ class ApiSessionClient extends node_events.EventEmitter {
2529
2546
  }, 1e4);
2530
2547
  });
2531
2548
  }
2549
+ /** B-864: set once the server handed this session to a newer wrapper process. */
2550
+ supersededAt = null;
2551
+ get superseded() {
2552
+ return this.supersededAt !== null;
2553
+ }
2554
+ markSuperseded(notice) {
2555
+ if (this.supersededAt !== null) return;
2556
+ this.supersededAt = Date.now();
2557
+ const by = notice?.by ? ` by a wrapper started at ${new Date(notice.by.startedAt).toISOString()}${notice.by.happyClient ? ` (${notice.by.happyClient})` : ""}` : " by a newer wrapper";
2558
+ const message = `Session ${this.sessionId} was taken over${by}; this process (pid ${process.pid}) stops driving it.`;
2559
+ logger.logger.debug(`[API] [SUPERSEDED] ${message}`);
2560
+ console.error(message);
2561
+ this.inboundFrozen = true;
2562
+ void this.close();
2563
+ this.emit("superseded", notice);
2564
+ }
2532
2565
  async close() {
2533
2566
  logger.logger.debug("[API] socket.close() called");
2534
2567
  this.closedByClient = true;
@@ -3075,7 +3108,7 @@ class ApiClient {
3075
3108
  return new ApiSessionClient(this.credential.token, session, opts);
3076
3109
  }
3077
3110
  async machineSyncClient(machine) {
3078
- const { ApiMachineClient } = await Promise.resolve().then(function () { return require('./apiMachine-DwaqfM9Q.cjs'); });
3111
+ const { ApiMachineClient } = await Promise.resolve().then(function () { return require('./apiMachine-CxmiSa2-.cjs'); });
3079
3112
  return new ApiMachineClient(this.credential.token, machine);
3080
3113
  }
3081
3114
  push() {
@@ -2,46 +2,46 @@
2
2
 
3
3
  var socket_ioClient = require('socket.io-client');
4
4
  var webPanels = require('./webPanels-FCgFKvVe.cjs');
5
- var logger = require('./logger-CepF8C5Z.cjs');
6
- var lidState = require('./lidState-DYeb7Wud.cjs');
7
- var mirrorProtocol = require('./mirrorProtocol-IhICxf0K.cjs');
8
- var configuration = require('./configuration-2Pbg3a0H.cjs');
5
+ var logger = require('./logger-HQ9yDb8R.cjs');
6
+ var lidState = require('./lidState-VZ1j_QYw.cjs');
7
+ var mirrorProtocol = require('./mirrorProtocol-Cv2otcvM.cjs');
8
+ var configuration = require('./configuration-CWRKSOyj.cjs');
9
9
  var cliUpdate = require('./cliUpdate-DsKXPFYp.cjs');
10
- var registerCommonHandlers = require('./registerCommonHandlers-D4uXC0he.cjs');
10
+ var registerCommonHandlers = require('./registerCommonHandlers-CEV9KUsq.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-D0gNvqXe.cjs');
16
+ var persistence = require('./persistence-BiyvEYaR.cjs');
17
17
  var fileStore = require('./fileStore-7qhnbs6N.cjs');
18
- var index = require('./index-BUFrKZeQ.cjs');
19
- var accountService = require('./accountService-CuUSJDhP.cjs');
18
+ var index = require('./index-D9Hidq-g.cjs');
19
+ var accountService = require('./accountService-DL6xhVUa.cjs');
20
20
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
21
21
  var limits = require('./limits-C-a7gr04.cjs');
22
- var time = require('./time-Da5GIiCa.cjs');
22
+ var time = require('./time-BqPZjTpo.cjs');
23
23
  var pty = require('node-pty');
24
24
  var terminals = require('./terminals-B_bfC9c2.cjs');
25
25
  var tmuxSocket = require('./tmuxSocket-D-Xt6Vn-.cjs');
26
- var index$1 = require('./index-CPkSLWP_.cjs');
26
+ var index$1 = require('./index-CQZg9jKx.cjs');
27
27
  var node_crypto = require('node:crypto');
28
28
  var node_fs = require('node:fs');
29
29
  var axios = require('axios');
30
30
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
31
31
  var ids = require('./ids-B6ZC0HGt.cjs');
32
32
  var detectCLI = require('./detectCLI-BuYR_Qxe.cjs');
33
- var localHappyAgentAuth = require('./localHappyAgentAuth-CScN2McN.cjs');
33
+ var localHappyAgentAuth = require('./localHappyAgentAuth-oxhpgJOb.cjs');
34
34
  var path$1 = require('./path-B7zW-WwE.cjs');
35
35
  var oneShotPrompts = require('./oneShotPrompts-CL0dip9C.cjs');
36
- var claudeSessionFork = require('./claudeSessionFork-4g6-Sk3Q.cjs');
37
- var codexAppServerClient = require('./codexAppServerClient-Bj5vN7sb.cjs');
36
+ var claudeSessionFork = require('./claudeSessionFork-OffWLYgd.cjs');
37
+ var codexAppServerClient = require('./codexAppServerClient-C-UwVMUN.cjs');
38
38
  var codexThreadFork = require('./codexThreadFork-C6ZmcT2z.cjs');
39
- var rateLimitWindows = require('./rateLimitWindows-B9PERFm1.cjs');
39
+ var rateLimitWindows = require('./rateLimitWindows-U4fc1-_6.cjs');
40
40
  require('chalk');
41
41
  require('node:util');
42
42
  require('os');
43
43
  require('child_process');
44
- require('./package-C7WgesIw.cjs');
44
+ require('./package-Dn7zZkY1.cjs');
45
45
  require('util');
46
46
  require('fs/promises');
47
47
  require('crypto');
@@ -49,9 +49,9 @@ require('path');
49
49
  require('cross-spawn');
50
50
  require('zod');
51
51
  require('@paralleldrive/cuid2');
52
- require('./claudeAccountEnv-CEX_EMZr.cjs');
53
- require('./store-CkNa6oj4.cjs');
54
- require('./codexAccount-BDQjRbtI.cjs');
52
+ require('./claudeAccountEnv-_O3x5AJ1.cjs');
53
+ require('./store-aa3CVNwS.cjs');
54
+ require('./codexAccount-CYhQir50.cjs');
55
55
  require('node:readline');
56
56
  require('tweetnacl');
57
57
  require('./terminalTitleSuggest-DhvRFX3H.cjs');