very-happy-cli 0.2.195 → 0.2.197

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 (210) hide show
  1. package/dist/{AcpBackend-BTIF87yb.mjs → AcpBackend-B-CD1MrV.mjs} +3 -3
  2. package/dist/{AcpBackend-CXSV6FF5.cjs → AcpBackend-CqDg1GgF.cjs} +3 -3
  3. package/dist/{AcpSessionManager-CEpU_GVk.mjs → AcpSessionManager-CgomFAjk.mjs} +2 -2
  4. package/dist/{AcpSessionManager-BbWODxSp.cjs → AcpSessionManager-Cv1KTldV.cjs} +1 -1
  5. package/dist/{BasePermissionHandler-C6iF28Ct.cjs → BasePermissionHandler-BxUjjHiI.cjs} +1 -1
  6. package/dist/{BasePermissionHandler-B5ka7Aaf.mjs → BasePermissionHandler-D6-fZvtx.mjs} +1 -1
  7. package/dist/{account-Bvcdk9CH.cjs → account-Bexqa-vj.cjs} +5 -5
  8. package/dist/{account-WSJcdMGl.mjs → account-CnN-iHFd.mjs} +11 -11
  9. package/dist/{accountService-BtEgv0fC.mjs → accountService-DQ21IlBs.mjs} +4 -4
  10. package/dist/{acpSessionResume-B2hd1Wub.cjs → acpSessionResume-CfEw8L26.cjs} +1 -1
  11. package/dist/{acpSessionResume-BYMm4w8Q.mjs → acpSessionResume-DzFELzTU.mjs} +1 -1
  12. package/dist/{agentHome-CVM15_3U.cjs → agentHome-CBYL4J4Q.cjs} +4 -4
  13. package/dist/{agentHome-Jl8yWAjF.mjs → agentHome-CmSA7hBC.mjs} +4 -4
  14. package/dist/{api-TpjZJXV-.cjs → api-CB3tLbbj.cjs} +45 -12
  15. package/dist/{api-DOzNOoVJ.mjs → api-Do7MUIrP.mjs} +46 -13
  16. package/dist/{apiMachine-M-Fs9g5Y.mjs → apiMachine-CytFlPdl.mjs} +101 -30
  17. package/dist/{apiMachine-COkvJAmd.cjs → apiMachine-guUGAifI.cjs} +96 -25
  18. package/dist/{attachmentContent-D6PjMVDq.mjs → attachmentContent-B8Lg7kgp.mjs} +2 -2
  19. package/dist/{attachmentContent-BiBOjTXX.cjs → attachmentContent-errR84kh.cjs} +2 -2
  20. package/dist/{auth-BfHLe1gU.mjs → auth-B-1T6w1U.mjs} +8 -8
  21. package/dist/{auth-BOceB8cL.cjs → auth-BhM0lHLA.cjs} +8 -8
  22. package/dist/{auth-Bfe3Ue_B.mjs → auth-Dnu0Mocz.mjs} +5 -5
  23. package/dist/{auth-DfcdjMUp.cjs → auth-ZKJNs8AK.cjs} +5 -5
  24. package/dist/{auto-CDeivd5V.mjs → auto-CFSmWudH.mjs} +17 -17
  25. package/dist/{auto-CnTitokD.cjs → auto-eimPZ4gm.cjs} +14 -14
  26. package/dist/{bootstrap-DpyP22Wx.cjs → bootstrap-B7mwfud6.cjs} +2 -2
  27. package/dist/{bootstrap-BxcKrgR9.mjs → bootstrap-C2JyiPax.mjs} +2 -2
  28. package/dist/{browser-ac0aPrVE.cjs → browser-B3VVAWcC.cjs} +1 -1
  29. package/dist/{browser-Bb0Gqffc.mjs → browser-Cnk2N81e.mjs} +1 -1
  30. package/dist/{claudeAccountEnv-NyoxjLuJ.mjs → claudeAccountEnv-CPO6CGNd.mjs} +1 -1
  31. package/dist/{claudeLocal-RGWhplSr.cjs → claudeLocal-CvZ5Sfq_.cjs} +4 -4
  32. package/dist/{claudeLocal-otwxWF6e.mjs → claudeLocal-gDpGeteK.mjs} +5 -5
  33. package/dist/{claudeLocalLauncher-yG-MBhY7.cjs → claudeLocalLauncher-CFSxFln_.cjs} +9 -9
  34. package/dist/{claudeLocalLauncher-CTibA4cU.mjs → claudeLocalLauncher-e_DkguJW.mjs} +10 -10
  35. package/dist/{claudeSessionFork-DH_Su4uO.cjs → claudeSessionFork--_RtwhC2.cjs} +1 -1
  36. package/dist/{claudeSessionFork-HFFwivGY.mjs → claudeSessionFork-BMMJmfxX.mjs} +1 -1
  37. package/dist/{client-BhAjEv8Z.mjs → client-Bav5WI8p.mjs} +4 -4
  38. package/dist/{client-DpTk1S7C.mjs → client-BeEAF2yn.mjs} +2 -2
  39. package/dist/{client-CydHzidF.mjs → client-CkiWUkm6.mjs} +2 -2
  40. package/dist/{client-BlV73Gbw.cjs → client-DH_mgm2T.cjs} +2 -2
  41. package/dist/{client-DcXLNaF2.cjs → client-DmO89_dS.cjs} +2 -2
  42. package/dist/{client-DxjYsJ8d.cjs → client-TZ1BY7kn.cjs} +3 -3
  43. package/dist/codex/happyMcpStdioBridge.cjs +15 -15
  44. package/dist/codex/happyMcpStdioBridge.mjs +16 -16
  45. package/dist/{codexAccount-CKXpXq0B.mjs → codexAccount-iZwmpYti.mjs} +1 -1
  46. package/dist/{codexAppServerClient-mln0W8vT.mjs → codexAppServerClient-AcMiUjlK.mjs} +3 -3
  47. package/dist/{codexAppServerClient-C1xBSuVk.cjs → codexAppServerClient-C4FYS9D9.cjs} +3 -3
  48. package/dist/{codexCommand-Plm-_aRy.cjs → codexCommand-BkF16_aL.cjs} +50 -45
  49. package/dist/{codexCommand-CmWhYduF.mjs → codexCommand-CuteJvKE.mjs} +56 -51
  50. package/dist/{codexTermination-QltAvFpq.mjs → codexTermination-CjHWp1C_.mjs} +6 -2
  51. package/dist/{codexTermination-C9c80lIF.cjs → codexTermination-DGgKsMxj.cjs} +6 -2
  52. package/dist/{config-BH75enfT.cjs → config-BklFo_Cs.cjs} +3 -3
  53. package/dist/{config-DK27kWTT.mjs → config-CUvb7oaW.mjs} +3 -3
  54. package/dist/{configuration-CwfgJZKs.mjs → configuration-BIh6P6kB.mjs} +1 -1
  55. package/dist/{configuration-CKaq0tNe.cjs → configuration-BL_fxboH.cjs} +1 -1
  56. package/dist/{connect-_QkCFMxO.cjs → connect-Bi7cRXtj.cjs} +14 -14
  57. package/dist/{connect-h3_VMJst.mjs → connect-KIJsx0iT.mjs} +15 -15
  58. package/dist/{context-DbENnaVc.cjs → context-BYcZIvKn.cjs} +1 -1
  59. package/dist/{context-DcOpvIiR.mjs → context-Ct__7RAS.mjs} +1 -1
  60. package/dist/{controlClient-Dv6IvvUq.mjs → controlClient-CPZkMKsH.mjs} +19 -7
  61. package/dist/{controlClient-D_HIbnnS.cjs → controlClient-DMtkGpc3.cjs} +19 -7
  62. package/dist/{createSessionMetadata-CusO22Am.cjs → createSessionMetadata-BWr0XT-Y.cjs} +2 -2
  63. package/dist/{createSessionMetadata-DimBsfVG.mjs → createSessionMetadata-DkkddlJa.mjs} +2 -2
  64. package/dist/{daemonAccounts-QT-RDDEp.mjs → daemonAccounts-CnAEaJE_.mjs} +3 -3
  65. package/dist/{defaultPermissionMode-B-Vt8ECY.mjs → defaultPermissionMode-CpEJ0wlb.mjs} +1 -1
  66. package/dist/{deterministicJson-BYqRKTmL.cjs → deterministicJson-BO6ZUUiV.cjs} +12 -12
  67. package/dist/{deterministicJson-CMApF2Rl.mjs → deterministicJson-Dm3yDrwj.mjs} +13 -13
  68. package/dist/{doctor-u46qYYKX.cjs → doctor-CJpFhHoK.cjs} +8 -9
  69. package/dist/{doctor-Czbl7gk2.cjs → doctor-DHK-5Hxm.cjs} +8 -8
  70. package/dist/{doctor-BPkYWSuq.mjs → doctor-GN5mPOn5.mjs} +8 -9
  71. package/dist/{doctor-BkyoZ0Uw.mjs → doctor-TK49jR60.mjs} +8 -8
  72. package/dist/{downloadTarget-CM0BZNSY.mjs → downloadTarget-C2XcfMXb.mjs} +7 -7
  73. package/dist/{downloadTarget-C5BzZ_bz.cjs → downloadTarget-QP5nnKsW.cjs} +7 -7
  74. package/dist/{ensureDaemonRunning-P399ot_C.mjs → ensureDaemonRunning-Bi-PF5LL.mjs} +5 -5
  75. package/dist/{ensureDaemonRunning-D508DmcP.cjs → ensureDaemonRunning-pg-EYmG0.cjs} +5 -5
  76. package/dist/{handleResumeCommand-BK_2ShBf.mjs → handleResumeCommand-B69L6W80.mjs} +5 -5
  77. package/dist/{handleResumeCommand-CCgK7-0v.cjs → handleResumeCommand-CMLpVjkl.cjs} +5 -5
  78. package/dist/{index-DR3NJLVk.mjs → index-BM14YD9K.mjs} +5 -5
  79. package/dist/{index-BENDk1i9.mjs → index-BSSAKD4Q.mjs} +4 -4
  80. package/dist/{index-BlWyEpMw.mjs → index-C27JFCbe.mjs} +1 -1
  81. package/dist/{index-_DRVKtSd.mjs → index-CwwDV02T.mjs} +55 -48
  82. package/dist/{index-BalJgriQ.cjs → index-DC_XlLAD.cjs} +5 -5
  83. package/dist/{index-Bz9Bj7l1.cjs → index-DgnbOqH_.cjs} +3 -3
  84. package/dist/{index-QSAckvNv.mjs → index-P6modcWo.mjs} +3 -3
  85. package/dist/{index-CGKn-GTK.cjs → index-XeWmi_Wt.cjs} +4 -4
  86. package/dist/{index-CSO1-mZ9.cjs → index-sXThJ-ic.cjs} +49 -42
  87. package/dist/index.cjs +2 -2
  88. package/dist/index.mjs +2 -2
  89. package/dist/{install-DMTvEPrB.mjs → install-B6vD9h4Z.mjs} +3 -3
  90. package/dist/{install-CqXaN7_C.cjs → install-Cyb1ZsOO.cjs} +3 -3
  91. package/dist/lib.cjs +16 -16
  92. package/dist/lib.d.cts +13 -0
  93. package/dist/lib.d.mts +13 -0
  94. package/dist/lib.mjs +16 -16
  95. package/dist/{lidState-Btv4N_B8.cjs → lidState-DXy1ymL0.cjs} +1 -1
  96. package/dist/{lidState-Cb3TbhPb.mjs → lidState-nbXgabCS.mjs} +1 -1
  97. package/dist/{localHappyAgentAuth-CAAIUJyY.mjs → localHappyAgentAuth-BupJnMMB.mjs} +1 -1
  98. package/dist/{localHappyAgentAuth-B3Q5DNLR.cjs → localHappyAgentAuth-Dxl6itKW.cjs} +1 -1
  99. package/dist/{logger-UgDpJA2u.mjs → logger-CahcyjlK.mjs} +2 -2
  100. package/dist/{logger-BZ5TcbEh.cjs → logger-CtweAuKq.cjs} +2 -2
  101. package/dist/{machineMetadata-BYHC-3Vx.mjs → machineMetadata-jOqz4fn8.mjs} +3 -3
  102. package/dist/{machineMetadata-DLb-m4fL.cjs → machineMetadata-thOCcaSv.cjs} +3 -3
  103. package/dist/{main-LavPb80B.cjs → main-CTIbEEsd.cjs} +48 -48
  104. package/dist/{main-CwW6lHIw.mjs → main-bCGlXj7y.mjs} +48 -48
  105. package/dist/{mcp-BQbWhqUh.cjs → mcp-BOS5msHd.cjs} +16 -16
  106. package/dist/{mcp-BjYz5Ymf.mjs → mcp-dtmpWc-Y.mjs} +20 -20
  107. package/dist/{mirrorProtocol-Ci9YmCEV.cjs → mirrorProtocol-CFDn3zfT.cjs} +11 -3
  108. package/dist/{mirrorProtocol-BH5eT99U.mjs → mirrorProtocol-OJPFNpbq.mjs} +12 -5
  109. package/dist/{package-C4OfB2YF.mjs → package-DUKnh8UF.mjs} +7 -7
  110. package/dist/{package-B61-BBlh.cjs → package-DdYN77UN.cjs} +7 -7
  111. package/dist/{panels-cBJT5Up1.mjs → panels-DQs5x77X.mjs} +5 -5
  112. package/dist/{panels-ByprLJag.cjs → panels-DZZTavkP.cjs} +5 -5
  113. package/dist/{peerTools-BXSjS8lB.cjs → peerTools-03MimWe-.cjs} +5 -5
  114. package/dist/{peerTools-DS6GqJcn.mjs → peerTools-ByJiL-w1.mjs} +5 -5
  115. package/dist/{persistence-CQhmtobL.mjs → persistence-CPIj3Iha.mjs} +15 -5
  116. package/dist/{persistence-DBmeYlwT.cjs → persistence-CWEaFv6R.cjs} +15 -5
  117. package/dist/{piRunnerArgs-CmEE058l.cjs → piRunnerArgs-Aqs-zKLm.cjs} +1 -1
  118. package/dist/{piRunnerArgs-Dy-3vN_Q.mjs → piRunnerArgs-DxbuKnFC.mjs} +1 -1
  119. package/dist/{piRuntime-BCXjC4__.cjs → piRuntime-BFMV2Hlg.cjs} +1 -1
  120. package/dist/{piRuntime-Rq9v4M4e.mjs → piRuntime-KJn9G3Ax.mjs} +1 -1
  121. package/dist/{piTerminal-ehNQOvLL.cjs → piTerminal-DFzQb38E.cjs} +18 -18
  122. package/dist/{piTerminal-CRhDUqX7.mjs → piTerminal-DhVFk2Hc.mjs} +22 -22
  123. package/dist/processTermination-ChJG5SLW.mjs +107 -0
  124. package/dist/processTermination-f17wxlMb.cjs +110 -0
  125. package/dist/{processTreeSnapshot-mDbnuojn.cjs → processTreeSnapshot-D5iNblp6.cjs} +26 -0
  126. package/dist/{processTreeSnapshot-CuLJDNC-.mjs → processTreeSnapshot-fuwxC0fr.mjs} +25 -1
  127. package/dist/{pushNotifications-qCS7_tDF.cjs → pushNotifications-BhnrQa32.cjs} +24 -2
  128. package/dist/{pushNotifications-67GmbVfE.mjs → pushNotifications-CD5-W90c.mjs} +24 -4
  129. package/dist/{query-CIDBGnv6.mjs → query-BRTHwQ1m.mjs} +2 -2
  130. package/dist/{query-B4QIiI7e.cjs → query-BRvDJTUF.cjs} +2 -2
  131. package/dist/{rateLimitWindows-8-khalzj.mjs → rateLimitWindows-BAfkXSck.mjs} +1 -1
  132. package/dist/{rateLimitWindows-BIfLMxOk.cjs → rateLimitWindows-_KfSDJdB.cjs} +1 -1
  133. package/dist/{registerCommonHandlers-C7hlztAO.mjs → registerCommonHandlers-Anq6Ma1d.mjs} +2 -2
  134. package/dist/{registerCommonHandlers-G2p0MJu4.cjs → registerCommonHandlers-CsMpXP1_.cjs} +2 -2
  135. package/dist/{registerKillSessionHandler-BWvl6wro.cjs → registerKillSessionHandler-DnES0UnY.cjs} +5 -5
  136. package/dist/{registerKillSessionHandler-rwXdO0t0.mjs → registerKillSessionHandler-DvA-f_D4.mjs} +6 -6
  137. package/dist/{registerSideQuestionHandler-Xg46gSVh.mjs → registerSideQuestionHandler-B6EgCzBZ.mjs} +4 -4
  138. package/dist/{registerSideQuestionHandler-CsyPnjce.cjs → registerSideQuestionHandler-GIzcFczo.cjs} +4 -4
  139. package/dist/{remoteSessionClient-D6_7vNKc.cjs → remoteSessionClient-BsXgrMSP.cjs} +5 -5
  140. package/dist/{remoteSessionClient-DQSnC7ox.mjs → remoteSessionClient-DYTwJSZR.mjs} +5 -5
  141. package/dist/{reportProgressTool-CIHGKraF.cjs → reportProgressTool-DhTM7qvk.cjs} +2 -2
  142. package/dist/{reportProgressTool-HjzV5y_2.mjs → reportProgressTool-DzmnFItq.mjs} +3 -3
  143. package/dist/{run-M06F1958.mjs → run-Cuz34V0P.mjs} +53 -73
  144. package/dist/{run-tQ4bFkHu.cjs → run-D0nDSvGo.cjs} +47 -67
  145. package/dist/{runClaude-Ct0_mShC.cjs → runClaude-DHHDBtKG.cjs} +29 -25
  146. package/dist/{runClaude-Dm9kQZ-w.mjs → runClaude-ySgHmPJg.mjs} +34 -30
  147. package/dist/{runClaudeDeps-BT2kWCrQ.cjs → runClaudeDeps-Cfeci4al.cjs} +41 -40
  148. package/dist/{runClaudeDeps-DNOzXjc3.mjs → runClaudeDeps-k-QAN7Em.mjs} +53 -52
  149. package/dist/{runGemini-BvN-yeQR.mjs → runGemini-BpiHwTGj.mjs} +39 -36
  150. package/dist/{runGemini-cua7_iuR.cjs → runGemini-Dob7MFa2.cjs} +38 -35
  151. package/dist/{runOpenClaw-NpYFRhKm.cjs → runOpenClaw-B-BGCcbD.cjs} +30 -20
  152. package/dist/{runOpenClaw-C9E2XzmX.mjs → runOpenClaw-B_7LblMr.mjs} +30 -20
  153. package/dist/{sandbox-C-BXZbt9.mjs → sandbox-D4UmUYIM.mjs} +4 -4
  154. package/dist/{sandbox-hImfD0-T.cjs → sandbox-D9xs3oeT.cjs} +4 -4
  155. package/dist/{selfCheck-B3ulijQM.cjs → selfCheck-B1ueapb2.cjs} +39 -39
  156. package/dist/selfCheck-BrC9vuGH.mjs +88 -0
  157. package/dist/{send-Dv2L8IRW.mjs → send-BZoS0m6-.mjs} +8 -8
  158. package/dist/{send-BCVQkTOl.cjs → send-CgIeqwqq.cjs} +8 -8
  159. package/dist/{server-BBBfuSB-.mjs → server-C5zdUyIu.mjs} +4 -4
  160. package/dist/{server-DYxyCyYF.cjs → server-XgEG5D8c.cjs} +6 -6
  161. package/dist/{sessionExitLifecycle-DFltxXU8.cjs → sessionExitLifecycle-DB2rjvVS.cjs} +5 -1
  162. package/dist/{sessionExitLifecycle-CzkLIgNZ.mjs → sessionExitLifecycle-iAtZN9sa.mjs} +5 -1
  163. package/dist/{sessionLock-BexUoWhZ.mjs → sessionLock-C4zRSYwt.mjs} +94 -78
  164. package/dist/{sessionLock-B8fsnpZD.cjs → sessionLock-CbIB9WAp.cjs} +92 -78
  165. package/dist/{sessionOps-74pSDXoS.cjs → sessionOps-flaRRzdo.cjs} +4 -4
  166. package/dist/{sessionOps-BkEgNA2O.mjs → sessionOps-fuLJNyOT.mjs} +4 -4
  167. package/dist/{sessionProvider-DXkhlJE6.mjs → sessionProvider-DPwRzcbT.mjs} +10 -10
  168. package/dist/{sessionProvider-CWgHsZUA.cjs → sessionProvider-DlWrak_l.cjs} +5 -5
  169. package/dist/{sessionScanner-Dhh1wREW.mjs → sessionScanner-BX7ZBVzX.mjs} +3 -3
  170. package/dist/{sessionScanner-D56EkcIj.cjs → sessionScanner-I6fGycPd.cjs} +3 -3
  171. package/dist/{sessions-C1zRTjUe.cjs → sessions-Cr0jIQ9r.cjs} +10 -10
  172. package/dist/{sessions-dJR6k3JY.mjs → sessions-Csz0_dnz.mjs} +10 -10
  173. package/dist/{setupOfflineReconnection-CMUdHtFT.cjs → setupOfflineReconnection-BawiOCUA.cjs} +2 -2
  174. package/dist/{setupOfflineReconnection-Dp1rC-eP.mjs → setupOfflineReconnection-Pxsr7M_B.mjs} +2 -2
  175. package/dist/{spawn-kMKI09Kh.cjs → spawn-Bfw10V7R.cjs} +12 -12
  176. package/dist/{spawn-D3-Weoiq.mjs → spawn-C3wiREei.mjs} +14 -14
  177. package/dist/{spawnAgents-hKFGQaSJ.mjs → spawnAgents-N3jxdNJC.mjs} +1 -1
  178. package/dist/{spawnHappyCLI-CgjpjSTT.mjs → spawnHappyCLI-C9dzdAh0.mjs} +1 -1
  179. package/dist/{spawnHappyCLI-Du1IgJGA.cjs → spawnHappyCLI-D4_Ij_BB.cjs} +1 -1
  180. package/dist/{startFileWatcher-DGOnF95-.cjs → startFileWatcher-905w_JCn.cjs} +1 -1
  181. package/dist/{startFileWatcher-DapvIGxp.mjs → startFileWatcher-FjvRihwq.mjs} +1 -1
  182. package/dist/{startupSessionCreate-CSi60oo_.mjs → startupSessionCreate-B-QHA-nQ.mjs} +3 -3
  183. package/dist/{startupSessionCreate-rkIMVGJW.cjs → startupSessionCreate-WY7c74aG.cjs} +3 -3
  184. package/dist/{store-Tf-r1ouq.mjs → store-BlPvTr_Q.mjs} +1 -1
  185. package/dist/{streamRelay-C9lzMo0V.mjs → streamRelay-DFZyAPD_.mjs} +1 -1
  186. package/dist/{sync-GJkf-HGu.mjs → sync-CHU9HM9N.mjs} +1 -1
  187. package/dist/{sync-Cj8Vhltg.cjs → sync-Dz_U1UHu.cjs} +1 -1
  188. package/dist/{systemPrompt-Cne9i1SE.cjs → systemPrompt-NTIxM2Ss.cjs} +1 -1
  189. package/dist/{systemPrompt-BEagRbDZ.mjs → systemPrompt-PHD2Va2G.mjs} +2 -2
  190. package/dist/{teams-C_18IMNM.mjs → teams-CgT1c65s.mjs} +7 -7
  191. package/dist/{teams-ClTg6hQ1.cjs → teams-CqoSWbrQ.cjs} +6 -6
  192. package/dist/{template-Ci-cyigF.mjs → template-CJ8uLlD8.mjs} +1 -1
  193. package/dist/{terminals-Dlg0x3nY.mjs → terminals-Dc38XmZv.mjs} +9 -5
  194. package/dist/{terminals-B_bfC9c2.cjs → terminals-dK3Lrjfp.cjs} +9 -5
  195. package/dist/{time-BPPTQ_sE.cjs → time-BTXLicT9.cjs} +1 -1
  196. package/dist/{time-CIkdLyza.mjs → time-DZ7wPlsL.mjs} +1 -1
  197. package/dist/{titleGenerator-DnwTdTB_.mjs → titleGenerator-BOcHO0fW.mjs} +2 -2
  198. package/dist/{titleGenerator-B_OgL9Pd.cjs → titleGenerator-DxSLdXjL.cjs} +2 -2
  199. package/dist/tmuxSocket-BmZyixRM.mjs +29 -0
  200. package/dist/{tmuxSocket-D-Xt6Vn-.cjs → tmuxSocket-Dg11Olx0.cjs} +12 -0
  201. package/dist/{todo-DPQHtZVM.cjs → todo-CqD6H2Bt.cjs} +5 -5
  202. package/dist/{todo-DmHolFRy.mjs → todo-kBweG4H9.mjs} +6 -6
  203. package/dist/{tools-B3KGMSU5.cjs → tools-C7SRJVwy.cjs} +1 -1
  204. package/dist/{tools-DqjPHq9I.mjs → tools-DuXYIUTD.mjs} +1 -1
  205. package/dist/{uninstall-CrK5dgx8.cjs → uninstall-DHdOrwHT.cjs} +3 -3
  206. package/dist/{uninstall-Cm97eybp.mjs → uninstall-WJYYM27v.mjs} +3 -3
  207. package/dist/{wrapperAccount-Cq7eZRMx.mjs → wrapperAccount-RPtq8BwD.mjs} +2 -2
  208. package/package.json +7 -7
  209. package/dist/selfCheck-D-e9kVhc.mjs +0 -88
  210. package/dist/tmuxSocket-B8Yx20sT.mjs +0 -19
@@ -1,26 +1,26 @@
1
- import { i as isClaudeSessionId, g as extractCompleteLines, h as decideBackfill, j as parseTerminalHookPayload, k as decideMirrorBinding, M as MIRROR_BACKFILL_LINES_DEFAULT, m as mirrorLineKey, n as mirrorLocalId, o as initializeOwnedWorktree, e as summarizeSpawnSessionForLog, q as startAgentVersionChecks, W as WORKTREE_CAPABILITY_VERSION, t as currentWorktreeService } from './mirrorProtocol-BH5eT99U.mjs';
1
+ import { i as isClaudeSessionId, h as extractCompleteLines, j as decideBackfill, k as parseTerminalHookPayload, m as decideMirrorBinding, M as MIRROR_BACKFILL_LINES_DEFAULT, n as mirrorLineKey, o as mirrorLocalId, q as initializeOwnedWorktree, f as summarizeSpawnSessionForLog, t as startAgentVersionChecks, W as WORKTREE_CAPABILITY_VERSION, u as currentWorktreeService } from './mirrorProtocol-OJPFNpbq.mjs';
2
2
  import { F as FS_MKDIR_CAPABILITY_VERSION } from './fsMkdir-DumgLTzR.mjs';
3
- import { P as PI_ADAPTER_INSTALL_HINT, s as sanitizeSpawnModel } from './piRunnerArgs-Dy-3vN_Q.mjs';
3
+ import { P as PI_ADAPTER_INSTALL_HINT, s as sanitizeSpawnModel } from './piRunnerArgs-DxbuKnFC.mjs';
4
4
  import fs from 'fs/promises';
5
5
  import os from 'os';
6
6
  import * as tmp from 'tmp';
7
7
  import axios from 'axios';
8
8
  import { readFileSync, openSync, fsyncSync, closeSync, renameSync, existsSync, readdirSync, statSync, unlinkSync, readSync, writeSync, ftruncateSync, utimesSync, realpathSync, promises, constants as constants$1, writeFileSync, mkdirSync, accessSync, rmdirSync } from 'node:fs';
9
9
  import { join, isAbsolute, resolve, dirname, sep, basename, relative } from 'node:path';
10
- import { f as ensurePrivateDirectorySync, w as writePrivateFileSync, c as configuration } from './configuration-CwfgJZKs.mjs';
11
- import { T as TurnActivityTracker, A as ApiClient } from './api-DOzNOoVJ.mjs';
12
- import { S as SPAWN_AGENTS, i as isSpawnAgent, s as sanitizeSpawnPermissionMode, r as resolveSpawnPermissionMode, a as resolveFirstMessageMeta, j as joinProject } from './spawnAgents-hKFGQaSJ.mjs';
13
- import { l as logger } from './logger-UgDpJA2u.mjs';
14
- import { p as pruneStaleCompileCaches } from './index-QSAckvNv.mjs';
15
- import { a as authAndSetupMachineIfNeeded } from './auth-Bfe3Ue_B.mjs';
10
+ import { f as ensurePrivateDirectorySync, w as writePrivateFileSync, c as configuration } from './configuration-BIh6P6kB.mjs';
11
+ import { T as TurnActivityTracker, A as ApiClient } from './api-Do7MUIrP.mjs';
12
+ import { S as SPAWN_AGENTS, i as isSpawnAgent, s as sanitizeSpawnPermissionMode, r as resolveSpawnPermissionMode, a as resolveFirstMessageMeta, j as joinProject } from './spawnAgents-N3jxdNJC.mjs';
13
+ import { l as logger } from './logger-CahcyjlK.mjs';
14
+ import { p as pruneStaleCompileCaches } from './index-P6modcWo.mjs';
15
+ import { a as authAndSetupMachineIfNeeded } from './auth-Dnu0Mocz.mjs';
16
16
  import { spawn, execSync } from 'child_process';
17
- import { p as packageJson } from './package-C4OfB2YF.mjs';
18
- import { a as globalPrefixForPackage, N as NPM_SAFE_ARG, g as getEnvironmentInfo } from './doctor-BkyoZ0Uw.mjs';
19
- import { s as spawnHappyCLI } from './spawnHappyCLI-CgjpjSTT.mjs';
20
- import { c as readPersistedSessions, r as readSettings, l as latchKeepAwake, s as reportSignature, t as decideDaemonHibernation, v as nextCheckDelay, x as persistSession, d as readDaemonState, y as acquireDaemonLock, a as resolveCheckMs, z as resolveIdleMs, A as deletePersistedSessions, B as writeDaemonState, C as writeSettings, D as settingIdleMs, u as updateSettings, E as rewriteCredentialsForRelay, g as readCredentials, F as releaseDaemonLock } from './persistence-CQhmtobL.mjs';
21
- import { i as isDaemonRunningCurrentlyInstalledHappyVersion, s as stopDaemon, w as cleanupDaemonState } from './controlClient-Dv6IvvUq.mjs';
22
- import { e as sendUserMessage, f as readSessionMetadata, r as readSessionTranscript, l as listAccountSessions, a as listSessions, M as MAX_READ_LIMIT, s as sessionWebUrl, n as lineageOf, g as waitForSessionKey, d as archiveSession, h as analyzeLatestTurn, i as readSessionLog, j as TURN_WINDOW, p as userPromptText } from './sessionOps-BkEgNA2O.mjs';
23
- import { E as AgentProfilesStateSchema, aa as ServerMigrateNoticeSchema, ab as isHarnessInstallId, ac as agentProfileUnavailableReason, ad as MODEL_INTENT_CONFIG, j as AUTOMATION_SUMMARY_MAX_CHARS, ae as AUTOMATION_PRECHECK_OUTPUT_MAX_CHARS, af as AUTOMATION_PRECHECK_DEFAULT_TIMEOUT_MS, d as AUTOMATION_PRECHECK_MAX_TIMEOUT_MS, ag as AUTOMATION_CLAIM_MAX_RUNS, ah as AUTOMATION_DAEMON_CAPABILITY_PRECHECK, ai as AUTOMATION_DEFAULT_LEASE_MS, i as isAutomationRunTerminal, v as resolveLaunchAgentProfile, aj as HARNESS_INSTALL_CAPABILITY_VERSION } from './index-BlWyEpMw.mjs';
17
+ import { p as packageJson } from './package-DUKnh8UF.mjs';
18
+ import { a as globalPrefixForPackage, N as NPM_SAFE_ARG, g as getEnvironmentInfo } from './doctor-TK49jR60.mjs';
19
+ import { s as spawnHappyCLI } from './spawnHappyCLI-C9dzdAh0.mjs';
20
+ import { c as readPersistedSessions, r as readSettings, l as latchKeepAwake, s as reportSignature, t as decideDaemonHibernation, v as nextCheckDelay, x as persistSession, d as readDaemonState, y as acquireDaemonLock, a as resolveCheckMs, z as resolveIdleMs, A as deletePersistedSessions, B as writeDaemonState, C as writeSettings, D as settingIdleMs, u as updateSettings, E as rewriteCredentialsForRelay, g as readCredentials, F as releaseDaemonLock } from './persistence-CPIj3Iha.mjs';
21
+ import { i as isDaemonRunningCurrentlyInstalledHappyVersion, s as stopDaemon, w as cleanupDaemonState } from './controlClient-CPZkMKsH.mjs';
22
+ import { e as sendUserMessage, f as readSessionMetadata, r as readSessionTranscript, l as listAccountSessions, a as listSessions, M as MAX_READ_LIMIT, s as sessionWebUrl, n as lineageOf, g as waitForSessionKey, d as archiveSession, h as analyzeLatestTurn, i as readSessionLog, j as TURN_WINDOW, p as userPromptText } from './sessionOps-fuLJNyOT.mjs';
23
+ import { Q as AgentProfilesStateSchema, aa as ServerMigrateNoticeSchema, ab as isHarnessInstallId, ac as agentProfileUnavailableReason, ad as MODEL_INTENT_CONFIG, j as AUTOMATION_SUMMARY_MAX_CHARS, ae as AUTOMATION_PRECHECK_OUTPUT_MAX_CHARS, af as AUTOMATION_PRECHECK_DEFAULT_TIMEOUT_MS, d as AUTOMATION_PRECHECK_MAX_TIMEOUT_MS, ag as AUTOMATION_CLAIM_MAX_RUNS, ah as AUTOMATION_DAEMON_CAPABILITY_PRECHECK, ai as AUTOMATION_DEFAULT_LEASE_MS, i as isAutomationRunTerminal, v as resolveLaunchAgentProfile, aj as HARNESS_INSTALL_CAPABILITY_VERSION } from './index-C27JFCbe.mjs';
24
24
  import fastify from 'fastify';
25
25
  import { z } from 'zod';
26
26
  import { validatorCompiler, serializerCompiler } from 'fastify-type-provider-zod';
@@ -28,70 +28,71 @@ import { d as decodeBase64, s as sameRelay, e as encodeBase64, h as decrypt } fr
28
28
  import { randomBytes, createHash, timingSafeEqual, randomUUID } from 'node:crypto';
29
29
  import { c as checkPreviewPath } from './previewPath-CXN4Vag0.mjs';
30
30
  import { a as BACKGROUND_TASKS_MAX, d as BACKGROUND_TASK_DESCRIPTION_MAX, e as BackgroundTaskTracker } from './backgroundTaskActivity-8PdPxrvy.mjs';
31
- import { b as sanitizeRateLimitReport } from './rateLimitWindows-8-khalzj.mjs';
32
- import { f as formatEditConflictNotice, b as SESSION_PEER_SENT_FROM, s as sendPeerMessage, l as listPeerSessions, C as CLI_PEER_SENDER_ID } from './peerTools-DS6GqJcn.mjs';
31
+ import { b as sanitizeRateLimitReport } from './rateLimitWindows-BAfkXSck.mjs';
32
+ import { f as formatEditConflictNotice, b as SESSION_PEER_SENT_FROM, s as sendPeerMessage, l as listPeerSessions, C as CLI_PEER_SENDER_ID } from './peerTools-ByJiL-w1.mjs';
33
33
  import os$1, { hostname, homedir, tmpdir } from 'node:os';
34
- import { c as RemoteCallBudget, e as REMOTE_WRITE_CALLS_PER_MINUTE, d as deliverToSession, g as guardRemoteSessionOpsRequest, h as remoteError, i as REMOTE_OP_DEADLINE_MS, j as formatRemoteAuditLine, k as REMOTE_SEND_COMMIT_DEADLINE_MS, m as REMOTE_RESUME_WAIT_MS, n as capRemoteTranscript, o as capRemoteText, p as REMOTE_ANSWER_MAX_BYTES, q as REMOTE_TITLE_MAX_BYTES } from './remoteSessionClient-DQSnC7ox.mjs';
35
- import { assistantHome, bootstrapAssistantHome } from './bootstrap-BxcKrgR9.mjs';
36
- import { refreshAgentHomes, locateClaudeConversation, agentHomeSpawnEnv } from './index-BENDk1i9.mjs';
34
+ import { c as RemoteCallBudget, e as REMOTE_WRITE_CALLS_PER_MINUTE, d as deliverToSession, g as guardRemoteSessionOpsRequest, h as remoteError, i as REMOTE_OP_DEADLINE_MS, j as formatRemoteAuditLine, k as REMOTE_SEND_COMMIT_DEADLINE_MS, m as REMOTE_RESUME_WAIT_MS, n as capRemoteTranscript, o as capRemoteText, p as REMOTE_ANSWER_MAX_BYTES, q as REMOTE_TITLE_MAX_BYTES } from './remoteSessionClient-DYTwJSZR.mjs';
35
+ import { assistantHome, bootstrapAssistantHome } from './bootstrap-C2JyiPax.mjs';
36
+ import { refreshAgentHomes, locateClaudeConversation, agentHomeSpawnEnv } from './index-BSSAKD4Q.mjs';
37
37
  import require$$0, { existsSync as existsSync$1, statSync as statSync$1, mkdtempSync, rmSync } from 'fs';
38
38
  import require$$1, { join as join$1 } from 'path';
39
39
  import { spawn as spawn$1, execFile, spawnSync } from 'node:child_process';
40
40
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
41
41
  import { d as daemonEndpointsMatch, r as resolveClaudeCredentialReadiness } from './doctorReadiness-C208SMN9.mjs';
42
- import { o as ownerRetryPending, c as consumeOwnerRetry, s as spawnGate, a as afterStartupFailure, b as startupFailureMessage, T as TEAM_SPAWN_MAX_ATTEMPTS, d as TEAM_CLEANUP_RETRY_MS, g as getInitialMachineMetadata, e as getStartupCliAvailability, f as TEAM_RETRY_CAPABILITY_VERSION, w as withRunningCliFacts } from './machineMetadata-BYHC-3Vx.mjs';
42
+ import { o as ownerRetryPending, c as consumeOwnerRetry, s as spawnGate, a as afterStartupFailure, b as startupFailureMessage, T as TEAM_SPAWN_MAX_ATTEMPTS, d as TEAM_CLEANUP_RETRY_MS, g as getInitialMachineMetadata, e as getStartupCliAvailability, f as TEAM_RETRY_CAPABILITY_VERSION, w as withRunningCliFacts } from './machineMetadata-jOqz4fn8.mjs';
43
43
  import { M as ModelConfigError, B as BackupStore, r as readConfigFile, s as sha256, a as atomicWriteFile } from './fileStore-5qpetZS0.mjs';
44
44
  import { c as collectSecretValues, a as parseJsonObject, b as childObject, s as setOrDelete, d as changedPaths, e as stringifyLike, f as fail, n as normalizeModelList, g as normalizeModelId, h as normalizeSecret, i as normalizeBaseUrl, u as uniq, j as baseUrlWarnings, m as maskSecret, k as getPath$1, l as normalizeProviderId, o as piAdapter, r as redactText } from './pi-CqyoZMjI.mjs';
45
- import { p as parse } from './codexAccount-CKXpXq0B.mjs';
45
+ import { p as parse } from './codexAccount-iZwmpYti.mjs';
46
46
  import require$$3 from 'crypto';
47
47
  import { c as commandOnPath } from './detectCLI-CSGMlV51.mjs';
48
- import { buildResumeLaunch } from './handleResumeCommand-BK_2ShBf.mjs';
48
+ import { buildResumeLaunch } from './handleResumeCommand-B69L6W80.mjs';
49
49
  import { n as normalizeWebPanels } from './webPanels-B2_C2-3g.mjs';
50
50
  import { access, symlink, readFile, rm, unlink, readlink, lstat, constants, rename, mkdir, copyFile, readdir, stat, open } from 'node:fs/promises';
51
51
  import { p as parseExactVersion, c as compareExactVersions, f as fetchCliUpdateState, r as resolveCliUpdateCheckInterval, D as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS } from './cliUpdate-Y34VGe9Y.mjs';
52
- import { P as ProjectsUnsupportedError, c as createProjectsClient } from './client-CydHzidF.mjs';
53
- import { d as wrapperReportsIdle, f as decideAutoRestart, s as statusFromVerdict, g as autoRestartNextCheck, h as wrapperStaleness, r as recordAttempt, i as AUTO_RESTART_MAX_ATTEMPTS, j as AUTO_RESTART_MIN_GAP_MS, p as processIdentityFields, k as readSessionLock, l as terminateProcess, n as terminateProcessTree, o as AUTO_RESTARTED_ENV, q as encodeAutoRestarted, u as pendingUpgradeVersion, v as resolveQuietMs, x as AUTO_RESTART_RECHECK_CAP_MS } from './sessionLock-BexUoWhZ.mjs';
54
- import { c as createAutomationsClient, i as isAutomationsUnavailable, d as AutomationsRequestError } from './client-DpTk1S7C.mjs';
52
+ import { P as ProjectsUnsupportedError, c as createProjectsClient } from './client-CkiWUkm6.mjs';
53
+ import { d as wrapperReportsIdle, f as decideAutoRestart, s as statusFromVerdict, g as autoRestartNextCheck, h as wrapperStaleness, r as recordAttempt, i as AUTO_RESTART_MAX_ATTEMPTS, j as AUTO_RESTART_MIN_GAP_MS, p as processIdentityFields, k as readSessionLock, l as AUTO_RESTARTED_ENV, n as encodeAutoRestarted, o as pendingUpgradeVersion, q as resolveQuietMs, u as AUTO_RESTART_RECHECK_CAP_MS } from './sessionLock-C4zRSYwt.mjs';
54
+ import { c as createAutomationsClient, i as isAutomationsUnavailable, d as AutomationsRequestError } from './client-BeEAF2yn.mjs';
55
55
  import { w as withKeychainOffPath, a as keychainIdentityFor, i as interpretSecurityRead, s as securityReadArgs, b as securityDeleteArgs, c as keychainOffShimDir, d as interpretCredentialsFile, C as CREDENTIALS_REJECTED_DETAIL, e as buildClaudeAuthState, f as claudeAuthStateChanged, r as resolveSdkClaudeBinary, g as classifyAuthStatus, h as diagnoseStores, p as parseLaunchctlPid, H as HAPPY_DAEMON_LAUNCHD_LABEL, j as classifyLineage, l as probeLaunchdJob, m as detectDaemonSupervisor, n as daemonLineage, o as probeSystemdKillMode, q as wrappersSurviveHandover, t as handoverWaitsForSessions } from './daemonSupervisor-BxohggqN.mjs';
56
- import { A as AccountService } from './accountService-BtEgv0fC.mjs';
57
- import { spawnSetupTokenPty, watchAccountFiles } from './daemonAccounts-QT-RDDEp.mjs';
56
+ import { A as AccountService } from './accountService-DQ21IlBs.mjs';
57
+ import { spawnSetupTokenPty, watchAccountFiles } from './daemonAccounts-CnAEaJE_.mjs';
58
58
  import { g as getProjectPath } from './path-D2wdaNSk.mjs';
59
59
  import { b as extractClaudeEditPaths } from './editPaths-BVfS_FFL.mjs';
60
- import { s as startFileWatcher } from './startFileWatcher-DapvIGxp.mjs';
61
- import { I as InvalidateSync } from './sync-GJkf-HGu.mjs';
60
+ import { s as startFileWatcher } from './startFileWatcher-FjvRihwq.mjs';
61
+ import { I as InvalidateSync } from './sync-CHU9HM9N.mjs';
62
62
  import { R as RawJSONLinesSchema } from './types-CkqAACXx.mjs';
63
- import { t as tmuxArgs, a as scrubTmuxClientEnv, s as shellescape } from './tmuxSocket-B8Yx20sT.mjs';
64
- import { findAllHappyProcesses } from './doctor-BPkYWSuq.mjs';
63
+ import { t as tmuxArgs, a as scrubTmuxClientEnv, s as shellescape } from './tmuxSocket-BmZyixRM.mjs';
64
+ import { i as isProcessAlive, t as terminateProcessTree } from './processTermination-ChJG5SLW.mjs';
65
+ import { findAllHappyProcesses } from './doctor-GN5mPOn5.mjs';
65
66
  import { T as TEAM_SKILL, a as TEAM_LEAD_PLAYBOOK, b as TEAM_MEMBER_RULES } from './resources-CLP_MpK4.mjs';
66
67
  import { promisify } from 'node:util';
67
- import { b as clipText, r as renderAction, c as clipAutomationReport, e as renderTemplate } from './template-Ci-cyigF.mjs';
68
+ import { b as clipText, r as renderAction, c as clipAutomationReport, e as renderTemplate } from './template-CJ8uLlD8.mjs';
68
69
  import { d as describeAgentHome } from './loginShellEnv-Dw8M7tkI.mjs';
69
- import { S as SPAWN_ACCOUNT_ENV } from './store-Tf-r1ouq.mjs';
70
- import './acpSessionResume-BYMm4w8Q.mjs';
71
- import './lidState-Cb3TbhPb.mjs';
70
+ import { S as SPAWN_ACCOUNT_ENV } from './store-BlPvTr_Q.mjs';
71
+ import './acpSessionResume-DzFELzTU.mjs';
72
+ import './pushNotifications-CD5-W90c.mjs';
73
+ import './contentLogMetadata-BlWI0egu.mjs';
74
+ import './lidState-nbXgabCS.mjs';
72
75
  import 'node:events';
73
76
  import 'socket.io-client';
74
- import './pushNotifications-67GmbVfE.mjs';
75
- import './contentLogMetadata-BlWI0egu.mjs';
76
77
  import './limits-DIo7rEBR.mjs';
77
- import './time-CIkdLyza.mjs';
78
- import './registerCommonHandlers-C7hlztAO.mjs';
78
+ import './time-DZ7wPlsL.mjs';
79
+ import './registerCommonHandlers-Anq6Ma1d.mjs';
79
80
  import 'util';
80
81
  import 'cross-spawn';
81
82
  import '@paralleldrive/cuid2';
82
83
  import 'chalk';
83
84
  import 'node:module';
84
85
  import 'tweetnacl';
85
- import './browser-Bb0Gqffc.mjs';
86
+ import './browser-Cnk2N81e.mjs';
86
87
  import 'open';
87
88
  import './specialCommands-MXUN0wfI.mjs';
88
89
  import './ids-DU6sLx4C.mjs';
89
90
  import 'url';
90
- import './localHappyAgentAuth-CAAIUJyY.mjs';
91
- import './processTreeSnapshot-CuLJDNC-.mjs';
92
- import './claudeAccountEnv-NyoxjLuJ.mjs';
91
+ import './localHappyAgentAuth-BupJnMMB.mjs';
92
+ import './claudeAccountEnv-CPO6CGNd.mjs';
93
93
  import 'node:readline';
94
94
  import 'node-pty';
95
+ import './processTreeSnapshot-fuwxC0fr.mjs';
95
96
  import 'ps-list';
96
97
 
97
98
  async function resolveRelaunchMetadata(snapshot, fetchServer) {
@@ -7170,13 +7171,7 @@ async function startDaemon() {
7170
7171
  tracked: (sessionId, pid) => {
7171
7172
  const tracked = pidToTrackedSession.get(pid);
7172
7173
  if (!tracked || tracked.happySessionId !== sessionId) return null;
7173
- let live = false;
7174
- try {
7175
- process.kill(pid, 0);
7176
- live = true;
7177
- } catch {
7178
- live = false;
7179
- }
7174
+ const live = isProcessAlive(pid);
7180
7175
  return { live, ...tracked.spawnedBy ? { spawnedBy: tracked.spawnedBy } : {} };
7181
7176
  },
7182
7177
  teamsMember: (sessionId) => teamWorker?.hasSession(sessionId) === true,
@@ -7342,14 +7337,7 @@ async function startDaemon() {
7342
7337
  logger.debug(`[DAEMON RUN] forceNew: purged persisted assistant session(s): ${assistantIds.join(", ")}`);
7343
7338
  }
7344
7339
  } else {
7345
- const live = findLiveAssistant(pidToTrackedSession.values(), (pid) => {
7346
- try {
7347
- process.kill(pid, 0);
7348
- return true;
7349
- } catch {
7350
- return false;
7351
- }
7352
- });
7340
+ const live = findLiveAssistant(pidToTrackedSession.values(), (pid) => isProcessAlive(pid));
7353
7341
  if (live?.happySessionId) {
7354
7342
  logger.debug(`[DAEMON RUN] Assistant already running (session ${live.happySessionId}, pid ${live.pid})`);
7355
7343
  return { type: "success", sessionId: live.happySessionId };
@@ -7759,7 +7747,7 @@ async function startDaemon() {
7759
7747
  pidToAwaiter.delete(pid);
7760
7748
  logger.debug(`[DAEMON RUN] Session webhook timeout for PID ${pid}`);
7761
7749
  try {
7762
- const started = terminateProcess(pid, (stopped) => fail({ exited: stopped, code: null, signal: null, timedOut: true }));
7750
+ const started = terminateProcessTree(pid, (stopped) => fail({ exited: stopped, code: null, signal: null, timedOut: true }));
7763
7751
  if (!started) fail({ exited: false, code: null, signal: null, timedOut: true });
7764
7752
  } catch {
7765
7753
  fail({ exited: false, code: null, signal: null, timedOut: true });
@@ -8146,14 +8134,7 @@ async function startDaemon() {
8146
8134
  pidToTrackedSession.delete(pid);
8147
8135
  };
8148
8136
  const assistantReportLastSentAt = /* @__PURE__ */ new Map();
8149
- const isPidAlive = (pid) => {
8150
- try {
8151
- process.kill(pid, 0);
8152
- return true;
8153
- } catch {
8154
- return false;
8155
- }
8156
- };
8137
+ const isPidAlive = (pid) => isProcessAlive(pid);
8157
8138
  const onSessionStateEvent = (sessionId, event, spawnedByFromSession) => {
8158
8139
  if (automationRunner?.hasSession(sessionId)) automationRunner.report(sessionId, event === "completed" ? "idle" : "blocked");
8159
8140
  if (spawnedByFromSession === "teams" || teamWorker?.hasSession(sessionId) || [...pidToTrackedSession.values()].some((s) => s.happySessionId === sessionId && s.spawnedBy === "teams")) {
@@ -8637,9 +8618,7 @@ async function startDaemon() {
8637
8618
  logger.debug(`[DAEMON RUN] Health check started at ${(/* @__PURE__ */ new Date()).toLocaleString()}`);
8638
8619
  }
8639
8620
  for (const [pid, _] of pidToTrackedSession.entries()) {
8640
- try {
8641
- process.kill(pid, 0);
8642
- } catch (error) {
8621
+ if (!isProcessAlive(pid)) {
8643
8622
  logger.debug(`[DAEMON RUN] Finalizing stale session with PID ${pid} (process no longer exists)`);
8644
8623
  onChildExited(pid);
8645
8624
  }
@@ -8684,7 +8663,7 @@ async function startDaemon() {
8684
8663
  accountService.dispose();
8685
8664
  apiMachine.shutdown();
8686
8665
  await stopControlServer();
8687
- await cleanupDaemonState();
8666
+ await cleanupDaemonState(process.pid);
8688
8667
  await releaseDaemonLock(daemonLockHandle);
8689
8668
  await stopCaffeinate();
8690
8669
  if (daemonSupervisor !== "none") {
@@ -8709,6 +8688,7 @@ async function startDaemon() {
8709
8688
  if (daemonState && daemonState.pid !== process.pid) {
8710
8689
  logger.debug("[DAEMON RUN] Somehow a different daemon was started without killing us. We should kill ourselves.");
8711
8690
  requestShutdown("exception", "A different daemon was started without killing us. We should kill ourselves.");
8691
+ return;
8712
8692
  }
8713
8693
  try {
8714
8694
  fileState = withDaemonHeartbeat(fileState, (/* @__PURE__ */ new Date()).toLocaleString());
@@ -8829,7 +8809,7 @@ async function startDaemon() {
8829
8809
  accountService.dispose();
8830
8810
  apiMachine.shutdown();
8831
8811
  await stopControlServer();
8832
- await cleanupDaemonState();
8812
+ await cleanupDaemonState(process.pid);
8833
8813
  await stopCaffeinate();
8834
8814
  await releaseDaemonLock(daemonLockHandle);
8835
8815
  logger.debug(`[DAEMON RUN] Cleanup completed, exiting process with code ${daemonExitCode(source)}`);
@@ -1,27 +1,27 @@
1
1
  'use strict';
2
2
 
3
- var mirrorProtocol = require('./mirrorProtocol-Ci9YmCEV.cjs');
3
+ var mirrorProtocol = require('./mirrorProtocol-CFDn3zfT.cjs');
4
4
  var fsMkdir = require('./fsMkdir-0K3yENml.cjs');
5
- var piRunnerArgs = require('./piRunnerArgs-CmEE058l.cjs');
5
+ var piRunnerArgs = require('./piRunnerArgs-Aqs-zKLm.cjs');
6
6
  var fs = require('fs/promises');
7
7
  var os$1 = require('os');
8
8
  var tmp = require('tmp');
9
9
  var axios = require('axios');
10
10
  var node_fs = require('node:fs');
11
11
  var path = require('node:path');
12
- var configuration = require('./configuration-CKaq0tNe.cjs');
13
- var api = require('./api-TpjZJXV-.cjs');
12
+ var configuration = require('./configuration-BL_fxboH.cjs');
13
+ var api = require('./api-CB3tLbbj.cjs');
14
14
  var spawnAgents = require('./spawnAgents-Cm23BW-D.cjs');
15
- var logger = require('./logger-BZ5TcbEh.cjs');
16
- var index$2 = require('./index-Bz9Bj7l1.cjs');
17
- var auth = require('./auth-DfcdjMUp.cjs');
15
+ var logger = require('./logger-CtweAuKq.cjs');
16
+ var index$2 = require('./index-DgnbOqH_.cjs');
17
+ var auth = require('./auth-ZKJNs8AK.cjs');
18
18
  var child_process = require('child_process');
19
- var _package = require('./package-B61-BBlh.cjs');
20
- var doctor = require('./doctor-Czbl7gk2.cjs');
21
- var spawnHappyCLI = require('./spawnHappyCLI-Du1IgJGA.cjs');
22
- var persistence = require('./persistence-DBmeYlwT.cjs');
23
- var controlClient = require('./controlClient-D_HIbnnS.cjs');
24
- var sessionOps = require('./sessionOps-74pSDXoS.cjs');
19
+ var _package = require('./package-DdYN77UN.cjs');
20
+ var doctor = require('./doctor-DHK-5Hxm.cjs');
21
+ var spawnHappyCLI = require('./spawnHappyCLI-D4_Ij_BB.cjs');
22
+ var persistence = require('./persistence-CWEaFv6R.cjs');
23
+ var controlClient = require('./controlClient-DMtkGpc3.cjs');
24
+ var sessionOps = require('./sessionOps-flaRRzdo.cjs');
25
25
  var index = require('./index-D9Hidq-g.cjs');
26
26
  var fastify = require('fastify');
27
27
  var z = require('zod');
@@ -30,70 +30,71 @@ var authRelay = require('./authRelay-Dy1qU9td.cjs');
30
30
  var node_crypto = require('node:crypto');
31
31
  var previewPath = require('./previewPath-B0rBdhy1.cjs');
32
32
  var backgroundTaskActivity = require('./backgroundTaskActivity-CBvUdj39.cjs');
33
- var rateLimitWindows = require('./rateLimitWindows-BIfLMxOk.cjs');
34
- var peerTools = require('./peerTools-BXSjS8lB.cjs');
33
+ var rateLimitWindows = require('./rateLimitWindows-_KfSDJdB.cjs');
34
+ var peerTools = require('./peerTools-03MimWe-.cjs');
35
35
  var os = require('node:os');
36
- var remoteSessionClient = require('./remoteSessionClient-D6_7vNKc.cjs');
37
- var bootstrap = require('./bootstrap-DpyP22Wx.cjs');
38
- var index$1 = require('./index-CGKn-GTK.cjs');
36
+ var remoteSessionClient = require('./remoteSessionClient-BsXgrMSP.cjs');
37
+ var bootstrap = require('./bootstrap-B7mwfud6.cjs');
38
+ var index$1 = require('./index-XeWmi_Wt.cjs');
39
39
  var require$$0 = require('fs');
40
40
  var require$$1 = require('path');
41
41
  var node_child_process = require('node:child_process');
42
42
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
43
43
  var doctorReadiness = require('./doctorReadiness-Dl6yRQCy.cjs');
44
- var machineMetadata = require('./machineMetadata-DLb-m4fL.cjs');
44
+ var machineMetadata = require('./machineMetadata-thOCcaSv.cjs');
45
45
  var fileStore = require('./fileStore-7qhnbs6N.cjs');
46
46
  var pi = require('./pi-DlsrPCTa.cjs');
47
47
  var codexAccount = require('./codexAccount-CYhQir50.cjs');
48
48
  var require$$3 = require('crypto');
49
49
  var detectCLI = require('./detectCLI-BuYR_Qxe.cjs');
50
- var handleResumeCommand = require('./handleResumeCommand-CCgK7-0v.cjs');
50
+ var handleResumeCommand = require('./handleResumeCommand-CMLpVjkl.cjs');
51
51
  var webPanels = require('./webPanels-FCgFKvVe.cjs');
52
52
  var promises = require('node:fs/promises');
53
53
  var cliUpdate = require('./cliUpdate-DsKXPFYp.cjs');
54
- var client = require('./client-DcXLNaF2.cjs');
55
- var sessionLock = require('./sessionLock-B8fsnpZD.cjs');
56
- var client$1 = require('./client-BlV73Gbw.cjs');
54
+ var client = require('./client-DmO89_dS.cjs');
55
+ var sessionLock = require('./sessionLock-CbIB9WAp.cjs');
56
+ var client$1 = require('./client-DH_mgm2T.cjs');
57
57
  var daemonSupervisor = require('./daemonSupervisor-alqGPANc.cjs');
58
58
  var accountService = require('./accountService-DL6xhVUa.cjs');
59
59
  var daemonAccounts = require('./daemonAccounts-CxMJw7x2.cjs');
60
60
  var path$1 = require('./path-B7zW-WwE.cjs');
61
61
  var editPaths = require('./editPaths-Bqp4OFPw.cjs');
62
- var startFileWatcher = require('./startFileWatcher-DGOnF95-.cjs');
63
- var sync = require('./sync-Cj8Vhltg.cjs');
62
+ var startFileWatcher = require('./startFileWatcher-905w_JCn.cjs');
63
+ var sync = require('./sync-Dz_U1UHu.cjs');
64
64
  var types = require('./types-CRS-srZK.cjs');
65
- var tmuxSocket = require('./tmuxSocket-D-Xt6Vn-.cjs');
66
- var doctor$1 = require('./doctor-u46qYYKX.cjs');
65
+ var tmuxSocket = require('./tmuxSocket-Dg11Olx0.cjs');
66
+ var processTermination = require('./processTermination-f17wxlMb.cjs');
67
+ var doctor$1 = require('./doctor-CJpFhHoK.cjs');
67
68
  var resources = require('./resources-BZ_Be0qM.cjs');
68
69
  var node_util = require('node:util');
69
70
  var template = require('./template-B1AORlgU.cjs');
70
71
  var loginShellEnv = require('./loginShellEnv-BkuYtExZ.cjs');
71
72
  var store = require('./store-aa3CVNwS.cjs');
72
- require('./acpSessionResume-B2hd1Wub.cjs');
73
- require('./lidState-Btv4N_B8.cjs');
73
+ require('./acpSessionResume-CfEw8L26.cjs');
74
+ require('./pushNotifications-BhnrQa32.cjs');
75
+ require('./contentLogMetadata-ZSFk_NjQ.cjs');
76
+ require('./lidState-DXy1ymL0.cjs');
74
77
  require('node:events');
75
78
  require('socket.io-client');
76
- require('./pushNotifications-qCS7_tDF.cjs');
77
- require('./contentLogMetadata-ZSFk_NjQ.cjs');
78
79
  require('./limits-C-a7gr04.cjs');
79
- require('./time-BPPTQ_sE.cjs');
80
- require('./registerCommonHandlers-G2p0MJu4.cjs');
80
+ require('./time-BTXLicT9.cjs');
81
+ require('./registerCommonHandlers-CsMpXP1_.cjs');
81
82
  require('util');
82
83
  require('cross-spawn');
83
84
  require('@paralleldrive/cuid2');
84
85
  require('chalk');
85
86
  require('node:module');
86
87
  require('tweetnacl');
87
- require('./browser-ac0aPrVE.cjs');
88
+ require('./browser-B3VVAWcC.cjs');
88
89
  require('open');
89
90
  require('./specialCommands-J3JFOq0J.cjs');
90
91
  require('./ids-B6ZC0HGt.cjs');
91
92
  require('url');
92
- require('./localHappyAgentAuth-B3Q5DNLR.cjs');
93
- require('./processTreeSnapshot-mDbnuojn.cjs');
93
+ require('./localHappyAgentAuth-Dxl6itKW.cjs');
94
94
  require('./claudeAccountEnv-_O3x5AJ1.cjs');
95
95
  require('node:readline');
96
96
  require('node-pty');
97
+ require('./processTreeSnapshot-D5iNblp6.cjs');
97
98
  require('ps-list');
98
99
 
99
100
  function _interopNamespaceDefault(e) {
@@ -7191,13 +7192,7 @@ async function startDaemon() {
7191
7192
  tracked: (sessionId, pid) => {
7192
7193
  const tracked = pidToTrackedSession.get(pid);
7193
7194
  if (!tracked || tracked.happySessionId !== sessionId) return null;
7194
- let live = false;
7195
- try {
7196
- process.kill(pid, 0);
7197
- live = true;
7198
- } catch {
7199
- live = false;
7200
- }
7195
+ const live = processTermination.isProcessAlive(pid);
7201
7196
  return { live, ...tracked.spawnedBy ? { spawnedBy: tracked.spawnedBy } : {} };
7202
7197
  },
7203
7198
  teamsMember: (sessionId) => teamWorker?.hasSession(sessionId) === true,
@@ -7363,14 +7358,7 @@ async function startDaemon() {
7363
7358
  logger.logger.debug(`[DAEMON RUN] forceNew: purged persisted assistant session(s): ${assistantIds.join(", ")}`);
7364
7359
  }
7365
7360
  } else {
7366
- const live = findLiveAssistant(pidToTrackedSession.values(), (pid) => {
7367
- try {
7368
- process.kill(pid, 0);
7369
- return true;
7370
- } catch {
7371
- return false;
7372
- }
7373
- });
7361
+ const live = findLiveAssistant(pidToTrackedSession.values(), (pid) => processTermination.isProcessAlive(pid));
7374
7362
  if (live?.happySessionId) {
7375
7363
  logger.logger.debug(`[DAEMON RUN] Assistant already running (session ${live.happySessionId}, pid ${live.pid})`);
7376
7364
  return { type: "success", sessionId: live.happySessionId };
@@ -7780,7 +7768,7 @@ async function startDaemon() {
7780
7768
  pidToAwaiter.delete(pid);
7781
7769
  logger.logger.debug(`[DAEMON RUN] Session webhook timeout for PID ${pid}`);
7782
7770
  try {
7783
- const started = sessionLock.terminateProcess(pid, (stopped) => fail({ exited: stopped, code: null, signal: null, timedOut: true }));
7771
+ const started = processTermination.terminateProcessTree(pid, (stopped) => fail({ exited: stopped, code: null, signal: null, timedOut: true }));
7784
7772
  if (!started) fail({ exited: false, code: null, signal: null, timedOut: true });
7785
7773
  } catch {
7786
7774
  fail({ exited: false, code: null, signal: null, timedOut: true });
@@ -7997,7 +7985,7 @@ async function startDaemon() {
7997
7985
  resolve();
7998
7986
  }
7999
7987
  };
8000
- const requested = sessionLock.terminateProcessTree(pid, () => {
7988
+ const requested = processTermination.terminateProcessTree(pid, () => {
8001
7989
  const tracked = pidToTrackedSession.get(pid);
8002
7990
  if (tracked) {
8003
7991
  if (tracked.happySessionId && tracked.encryption) {
@@ -8118,7 +8106,7 @@ async function startDaemon() {
8118
8106
  logger.logger.debug(`[DAEMON RUN] Attempting to stop session ${sessionId}`);
8119
8107
  for (const [pid, session] of pidToTrackedSession.entries()) {
8120
8108
  if (session.happySessionId === sessionId || sessionId.startsWith("PID-") && pid === parseInt(sessionId.replace("PID-", ""))) {
8121
- const requested = sessionLock.terminateProcessTree(pid, (stopped) => {
8109
+ const requested = processTermination.terminateProcessTree(pid, (stopped) => {
8122
8110
  if (!stopped) {
8123
8111
  logger.logger.debug(`[DAEMON RUN] Session ${sessionId} survived SIGTERM and SIGKILL attempts`);
8124
8112
  return;
@@ -8167,14 +8155,7 @@ async function startDaemon() {
8167
8155
  pidToTrackedSession.delete(pid);
8168
8156
  };
8169
8157
  const assistantReportLastSentAt = /* @__PURE__ */ new Map();
8170
- const isPidAlive = (pid) => {
8171
- try {
8172
- process.kill(pid, 0);
8173
- return true;
8174
- } catch {
8175
- return false;
8176
- }
8177
- };
8158
+ const isPidAlive = (pid) => processTermination.isProcessAlive(pid);
8178
8159
  const onSessionStateEvent = (sessionId, event, spawnedByFromSession) => {
8179
8160
  if (automationRunner?.hasSession(sessionId)) automationRunner.report(sessionId, event === "completed" ? "idle" : "blocked");
8180
8161
  if (spawnedByFromSession === "teams" || teamWorker?.hasSession(sessionId) || [...pidToTrackedSession.values()].some((s) => s.happySessionId === sessionId && s.spawnedBy === "teams")) {
@@ -8658,9 +8639,7 @@ async function startDaemon() {
8658
8639
  logger.logger.debug(`[DAEMON RUN] Health check started at ${(/* @__PURE__ */ new Date()).toLocaleString()}`);
8659
8640
  }
8660
8641
  for (const [pid, _] of pidToTrackedSession.entries()) {
8661
- try {
8662
- process.kill(pid, 0);
8663
- } catch (error) {
8642
+ if (!processTermination.isProcessAlive(pid)) {
8664
8643
  logger.logger.debug(`[DAEMON RUN] Finalizing stale session with PID ${pid} (process no longer exists)`);
8665
8644
  onChildExited(pid);
8666
8645
  }
@@ -8705,7 +8684,7 @@ async function startDaemon() {
8705
8684
  accountService$1.dispose();
8706
8685
  apiMachine.shutdown();
8707
8686
  await stopControlServer();
8708
- await controlClient.cleanupDaemonState();
8687
+ await controlClient.cleanupDaemonState(process.pid);
8709
8688
  await persistence.releaseDaemonLock(daemonLockHandle);
8710
8689
  await stopCaffeinate();
8711
8690
  if (daemonSupervisor$1 !== "none") {
@@ -8730,6 +8709,7 @@ async function startDaemon() {
8730
8709
  if (daemonState && daemonState.pid !== process.pid) {
8731
8710
  logger.logger.debug("[DAEMON RUN] Somehow a different daemon was started without killing us. We should kill ourselves.");
8732
8711
  requestShutdown("exception", "A different daemon was started without killing us. We should kill ourselves.");
8712
+ return;
8733
8713
  }
8734
8714
  try {
8735
8715
  fileState = withDaemonHeartbeat(fileState, (/* @__PURE__ */ new Date()).toLocaleString());
@@ -8850,7 +8830,7 @@ async function startDaemon() {
8850
8830
  accountService$1.dispose();
8851
8831
  apiMachine.shutdown();
8852
8832
  await stopControlServer();
8853
- await controlClient.cleanupDaemonState();
8833
+ await controlClient.cleanupDaemonState(process.pid);
8854
8834
  await stopCaffeinate();
8855
8835
  await persistence.releaseDaemonLock(daemonLockHandle);
8856
8836
  logger.logger.debug(`[DAEMON RUN] Cleanup completed, exiting process with code ${daemonExitCode(source)}`);
@@ -1,61 +1,62 @@
1
1
  'use strict';
2
2
 
3
3
  var os = require('node:os');
4
- var sessionLock = require('./sessionLock-B8fsnpZD.cjs');
5
- var persistence = require('./persistence-DBmeYlwT.cjs');
6
- var startupSessionCreate = require('./startupSessionCreate-rkIMVGJW.cjs');
4
+ var sessionLock = require('./sessionLock-CbIB9WAp.cjs');
5
+ var persistence = require('./persistence-CWEaFv6R.cjs');
6
+ var startupSessionCreate = require('./startupSessionCreate-WY7c74aG.cjs');
7
7
  var node_crypto = require('node:crypto');
8
- var api = require('./api-TpjZJXV-.cjs');
9
- var logger = require('./logger-BZ5TcbEh.cjs');
10
- var createSessionMetadata = require('./createSessionMetadata-CusO22Am.cjs');
11
- var _package = require('./package-B61-BBlh.cjs');
8
+ var api = require('./api-CB3tLbbj.cjs');
9
+ var logger = require('./logger-CtweAuKq.cjs');
10
+ var createSessionMetadata = require('./createSessionMetadata-BWr0XT-Y.cjs');
11
+ var _package = require('./package-DdYN77UN.cjs');
12
12
  var index = require('./index-D9Hidq-g.cjs');
13
13
  var defaultPermissionMode = require('./defaultPermissionMode-BCWCMONI.cjs');
14
14
  var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
15
- var configuration = require('./configuration-CKaq0tNe.cjs');
15
+ var configuration = require('./configuration-BL_fxboH.cjs');
16
16
  var wrapperAccount = require('./wrapperAccount-BubTurHU.cjs');
17
17
  var store = require('./store-aa3CVNwS.cjs');
18
- var controlClient = require('./controlClient-D_HIbnnS.cjs');
19
- var machineMetadata = require('./machineMetadata-DLb-m4fL.cjs');
18
+ var controlClient = require('./controlClient-DMtkGpc3.cjs');
19
+ var machineMetadata = require('./machineMetadata-thOCcaSv.cjs');
20
20
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
21
21
  var path = require('node:path');
22
22
  var permissionMode = require('./permissionMode-CrV-XuMs.cjs');
23
23
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
24
24
  var promises = require('node:fs/promises');
25
- var attachmentContent = require('./attachmentContent-BiBOjTXX.cjs');
25
+ var attachmentContent = require('./attachmentContent-errR84kh.cjs');
26
26
  var transcriptCursor = require('./transcriptCursor-DcXGLeSc.cjs');
27
27
  var startupPlan = require('./startupPlan-BLMbfQIH.cjs');
28
28
  var reconnectEnv = require('./reconnectEnv-B31lY4nR.cjs');
29
29
  require('./cliUpdate-DsKXPFYp.cjs');
30
30
  require('node:fs');
31
- require('./processTreeSnapshot-mDbnuojn.cjs');
31
+ require('./processTermination-f17wxlMb.cjs');
32
32
  require('node:child_process');
33
+ require('./processTreeSnapshot-D5iNblp6.cjs');
33
34
  require('zod');
34
35
  require('axios');
35
- require('./lidState-Btv4N_B8.cjs');
36
+ require('./pushNotifications-BhnrQa32.cjs');
37
+ require('./contentLogMetadata-ZSFk_NjQ.cjs');
38
+ require('./lidState-DXy1ymL0.cjs');
36
39
  require('os');
37
40
  require('child_process');
38
41
  require('node:events');
39
42
  require('socket.io-client');
40
- require('./pushNotifications-qCS7_tDF.cjs');
41
- require('./contentLogMetadata-ZSFk_NjQ.cjs');
42
43
  require('./limits-C-a7gr04.cjs');
43
- require('./time-BPPTQ_sE.cjs');
44
- require('./registerCommonHandlers-G2p0MJu4.cjs');
44
+ require('./time-BTXLicT9.cjs');
45
+ require('./registerCommonHandlers-CsMpXP1_.cjs');
45
46
  require('util');
46
47
  require('fs/promises');
47
48
  require('crypto');
48
49
  require('path');
49
50
  require('cross-spawn');
50
51
  require('@paralleldrive/cuid2');
51
- require('./sync-Cj8Vhltg.cjs');
52
+ require('./sync-Dz_U1UHu.cjs');
52
53
  require('./backgroundTaskActivity-CBvUdj39.cjs');
53
54
  require('chalk');
54
55
  require('node:util');
55
56
  require('./claudeAccountEnv-_O3x5AJ1.cjs');
56
57
  require('./detectCLI-BuYR_Qxe.cjs');
57
58
  require('fs');
58
- require('./localHappyAgentAuth-B3Q5DNLR.cjs');
59
+ require('./localHappyAgentAuth-Dxl6itKW.cjs');
59
60
  require('tweetnacl');
60
61
  require('./fsMkdir-0K3yENml.cjs');
61
62
  require('url');
@@ -66,7 +67,7 @@ const CLAUDE_EFFORTS = ["low", "medium", "high", "xhigh", "max"];
66
67
  function restoredClaudeEffort(effort) {
67
68
  return CLAUDE_EFFORTS.includes(effort ?? "") ? effort : void 0;
68
69
  }
69
- const importRunClaudeDeps = () => Promise.resolve().then(function () { return require('./runClaudeDeps-BT2kWCrQ.cjs'); });
70
+ const importRunClaudeDeps = () => Promise.resolve().then(function () { return require('./runClaudeDeps-Cfeci4al.cjs'); });
70
71
  async function runClaude(credentials, options = {}) {
71
72
  logger.logger.debug(`[CLAUDE] ===== CLAUDE MODE STARTING =====`);
72
73
  logger.logger.debug(`[CLAUDE] This is the Claude agent, NOT Gemini`);
@@ -82,7 +83,7 @@ async function runClaude(credentials, options = {}) {
82
83
  const isAssistantVariant = process.env.HAPPY_SESSION_VARIANT === "assistant";
83
84
  if (isAssistantVariant) {
84
85
  try {
85
- const { bootstrapAssistantHome } = await Promise.resolve().then(function () { return require('./bootstrap-DpyP22Wx.cjs'); });
86
+ const { bootstrapAssistantHome } = await Promise.resolve().then(function () { return require('./bootstrap-B7mwfud6.cjs'); });
86
87
  await bootstrapAssistantHome();
87
88
  } catch (error) {
88
89
  logger.logger.debug("[START] Assistant home bootstrap failed:", error);
@@ -208,7 +209,7 @@ async function runClaude(credentials, options = {}) {
208
209
  }
209
210
  if (!response) {
210
211
  let offlineSessionId = null;
211
- const { claudeLocal } = await Promise.resolve().then(function () { return require('./claudeLocal-RGWhplSr.cjs'); });
212
+ const { claudeLocal } = await Promise.resolve().then(function () { return require('./claudeLocal-CvZ5Sfq_.cjs'); });
212
213
  const { createSessionScanner: createSessionScanner2 } = await loadDeps();
213
214
  const reconnection = api.startOfflineReconnection({
214
215
  serverUrl: configuration.configuration.serverUrl,
@@ -842,7 +843,7 @@ async function runClaude(credentials, options = {}) {
842
843
  const exitGate = new SessionExitGate();
843
844
  let hibernationProbe = null;
844
845
  const cleanup = async (opts = { archive: true }) => {
845
- const intent = opts.hibernation ? "hibernate" : exitGate.claim(exitIntentFromArchiveFlag(opts.archive));
846
+ const intent = opts.hibernation ? "hibernate" : exitGate.claim(opts.superseded ? "superseded" : exitIntentFromArchiveFlag(opts.archive));
846
847
  if (intent === null) {
847
848
  logger.logger.debug(`[START] Termination (archive=${opts.archive ?? true}) ignored: cleanup already running as ${exitGate.current}`);
848
849
  return;
@@ -866,7 +867,7 @@ async function runClaude(credentials, options = {}) {
866
867
  deactivateSession: (id) => api$1.deactivateSession(id),
867
868
  log: (message, ...args) => logger.logger.debug(message, ...args)
868
869
  });
869
- await session.flush();
870
+ if (intent !== "superseded") await session.flush();
870
871
  await session.close();
871
872
  }
872
873
  happyServer.stop();
@@ -906,6 +907,9 @@ async function runClaude(credentials, options = {}) {
906
907
  void cleanup({ archive: true });
907
908
  });
908
909
  registerKillSessionHandler(session.rpcHandlerManager, () => cleanup({ archive: true }), session);
910
+ session.on("superseded", () => {
911
+ void cleanup({ superseded: true });
912
+ });
909
913
  let keepAwakeLatch = false;
910
914
  const hibernationSnapshot = () => {
911
915
  const agentState = session.getAgentState();
@@ -944,7 +948,7 @@ async function runClaude(credentials, options = {}) {
944
948
  // commit window runs now instead of being lost.
945
949
  releaseExit: () => {
946
950
  const deferred = exitGate.release("hibernate");
947
- if (deferred) void cleanup({ archive: deferred === "archive" });
951
+ if (deferred) void cleanup(deferred === "superseded" ? { superseded: true } : { archive: deferred === "archive" });
948
952
  },
949
953
  recheck: () => persistence.evaluateWrapperIdle(hibernationSnapshot(), idleMs, Date.now()),
950
954
  idleMs,