very-happy-cli 0.2.195 → 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 (205) hide show
  1. package/dist/{AcpBackend-BTIF87yb.mjs → AcpBackend-RqGkFeeY.mjs} +3 -3
  2. package/dist/{AcpBackend-CXSV6FF5.cjs → AcpBackend-tL_g_UJ5.cjs} +3 -3
  3. package/dist/{AcpSessionManager-CEpU_GVk.mjs → AcpSessionManager-C-R6yHXc.mjs} +2 -2
  4. package/dist/{AcpSessionManager-BbWODxSp.cjs → AcpSessionManager-CFB24qBh.cjs} +1 -1
  5. package/dist/{BasePermissionHandler-C6iF28Ct.cjs → BasePermissionHandler-C0JS37Jt.cjs} +1 -1
  6. package/dist/{BasePermissionHandler-B5ka7Aaf.mjs → BasePermissionHandler-CgHLVNKT.mjs} +1 -1
  7. package/dist/{account-Bvcdk9CH.cjs → account-DOil1Hn8.cjs} +5 -5
  8. package/dist/{account-WSJcdMGl.mjs → account-EzL-zwwE.mjs} +11 -11
  9. package/dist/{accountService-BtEgv0fC.mjs → accountService-DQ21IlBs.mjs} +4 -4
  10. package/dist/{acpSessionResume-B2hd1Wub.cjs → acpSessionResume-B01oHWDS.cjs} +1 -1
  11. package/dist/{acpSessionResume-BYMm4w8Q.mjs → acpSessionResume-DEOIZUuj.mjs} +1 -1
  12. package/dist/{agentHome-CVM15_3U.cjs → agentHome-BulDO_1K.cjs} +4 -4
  13. package/dist/{agentHome-Jl8yWAjF.mjs → agentHome-DucTue1n.mjs} +4 -4
  14. package/dist/{api-DOzNOoVJ.mjs → api-CiNezCys.mjs} +46 -13
  15. package/dist/{api-TpjZJXV-.cjs → api-fuwEEEkT.cjs} +45 -12
  16. package/dist/{apiMachine-COkvJAmd.cjs → apiMachine-CxmiSa2-.cjs} +13 -13
  17. package/dist/{apiMachine-M-Fs9g5Y.mjs → apiMachine-DCmKjms1.mjs} +18 -18
  18. package/dist/{attachmentContent-BiBOjTXX.cjs → attachmentContent-Cehh7ClR.cjs} +2 -2
  19. package/dist/{attachmentContent-D6PjMVDq.mjs → attachmentContent-CiY3MvdO.mjs} +2 -2
  20. package/dist/{auth-DfcdjMUp.cjs → auth-DHlbjtf7.cjs} +5 -5
  21. package/dist/{auth-BfHLe1gU.mjs → auth-DHqHrs5d.mjs} +8 -8
  22. package/dist/{auth-Bfe3Ue_B.mjs → auth-DVsH_a8J.mjs} +5 -5
  23. package/dist/{auth-BOceB8cL.cjs → auth-tlMcvk2Y.cjs} +8 -8
  24. package/dist/{auto-CDeivd5V.mjs → auto-Cnn8luKk.mjs} +17 -17
  25. package/dist/{auto-CnTitokD.cjs → auto-DNAa8xDZ.cjs} +14 -14
  26. package/dist/{bootstrap-BxcKrgR9.mjs → bootstrap-C2XSEyOe.mjs} +2 -2
  27. package/dist/{bootstrap-DpyP22Wx.cjs → bootstrap-PeTZ2sAn.cjs} +2 -2
  28. package/dist/{browser-ac0aPrVE.cjs → browser-Bm24RiFU.cjs} +1 -1
  29. package/dist/{browser-Bb0Gqffc.mjs → browser-CWWyaf8_.mjs} +1 -1
  30. package/dist/{claudeAccountEnv-NyoxjLuJ.mjs → claudeAccountEnv-CPO6CGNd.mjs} +1 -1
  31. package/dist/{claudeLocal-RGWhplSr.cjs → claudeLocal-BDWy2pFt.cjs} +4 -4
  32. package/dist/{claudeLocal-otwxWF6e.mjs → claudeLocal-CRG-Q7kS.mjs} +5 -5
  33. package/dist/{claudeLocalLauncher-CTibA4cU.mjs → claudeLocalLauncher-B5cOrszW.mjs} +10 -10
  34. package/dist/{claudeLocalLauncher-yG-MBhY7.cjs → claudeLocalLauncher-DmSLoHlw.cjs} +9 -9
  35. package/dist/{claudeSessionFork-HFFwivGY.mjs → claudeSessionFork-BqV6E0ep.mjs} +1 -1
  36. package/dist/{claudeSessionFork-DH_Su4uO.cjs → claudeSessionFork-OffWLYgd.cjs} +1 -1
  37. package/dist/{client-BhAjEv8Z.mjs → client-B3lOol4f.mjs} +4 -4
  38. package/dist/{client-BlV73Gbw.cjs → client-B9fcSMXP.cjs} +2 -2
  39. package/dist/{client-CydHzidF.mjs → client-CfTeXnYS.mjs} +2 -2
  40. package/dist/{client-DpTk1S7C.mjs → client-Cg_cuQb1.mjs} +2 -2
  41. package/dist/{client-DcXLNaF2.cjs → client-Ckic3nxZ.cjs} +2 -2
  42. package/dist/{client-DxjYsJ8d.cjs → client-YFvImdwH.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-C1xBSuVk.cjs → codexAppServerClient-C-UwVMUN.cjs} +3 -3
  47. package/dist/{codexAppServerClient-mln0W8vT.mjs → codexAppServerClient-aV5m-FpZ.mjs} +3 -3
  48. package/dist/{codexCommand-Plm-_aRy.cjs → codexCommand-5nWT7F8A.cjs} +48 -43
  49. package/dist/{codexCommand-CmWhYduF.mjs → codexCommand-CI2NTyIF.mjs} +54 -49
  50. package/dist/{codexTermination-QltAvFpq.mjs → codexTermination-CLjDP6Ja.mjs} +6 -2
  51. package/dist/{codexTermination-C9c80lIF.cjs → codexTermination-D18IHgLP.cjs} +6 -2
  52. package/dist/{config-BH75enfT.cjs → config-B7YtrHi0.cjs} +3 -3
  53. package/dist/{config-DK27kWTT.mjs → config-BfwjfFSC.mjs} +3 -3
  54. package/dist/{configuration-CwfgJZKs.mjs → configuration-C8r6uD9k.mjs} +1 -1
  55. package/dist/{configuration-CKaq0tNe.cjs → configuration-CWRKSOyj.cjs} +1 -1
  56. package/dist/{connect-_QkCFMxO.cjs → connect-DALX1hGB.cjs} +14 -14
  57. package/dist/{connect-h3_VMJst.mjs → connect-K5HBcM56.mjs} +15 -15
  58. package/dist/{context-DbENnaVc.cjs → context-BqhlGL3u.cjs} +1 -1
  59. package/dist/{context-DcOpvIiR.mjs → context-CtMY-M8T.mjs} +1 -1
  60. package/dist/{controlClient-Dv6IvvUq.mjs → controlClient-DYQ1g2ar.mjs} +19 -7
  61. package/dist/{controlClient-D_HIbnnS.cjs → controlClient-DyNgxNl7.cjs} +19 -7
  62. package/dist/{createSessionMetadata-CusO22Am.cjs → createSessionMetadata-C4WN8pVK.cjs} +2 -2
  63. package/dist/{createSessionMetadata-DimBsfVG.mjs → createSessionMetadata-CZuEDo2v.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-CMApF2Rl.mjs → deterministicJson-Dg_0QJAR.mjs} +13 -13
  67. package/dist/{deterministicJson-BYqRKTmL.cjs → deterministicJson-r4zhG546.cjs} +12 -12
  68. package/dist/{doctor-Czbl7gk2.cjs → doctor-0gLGzwz6.cjs} +8 -8
  69. package/dist/{doctor-u46qYYKX.cjs → doctor-CJpFhHoK.cjs} +8 -9
  70. package/dist/{doctor-BkyoZ0Uw.mjs → doctor-COeFzPpz.mjs} +8 -8
  71. package/dist/{doctor-BPkYWSuq.mjs → doctor-GN5mPOn5.mjs} +8 -9
  72. package/dist/{downloadTarget-C5BzZ_bz.cjs → downloadTarget-8ovVpDv1.cjs} +6 -6
  73. package/dist/{downloadTarget-CM0BZNSY.mjs → downloadTarget-CbuUiS5p.mjs} +6 -6
  74. package/dist/{ensureDaemonRunning-D508DmcP.cjs → ensureDaemonRunning-Bq-n6xTt.cjs} +5 -5
  75. package/dist/{ensureDaemonRunning-P399ot_C.mjs → ensureDaemonRunning-CwlujXmV.mjs} +5 -5
  76. package/dist/{handleResumeCommand-BK_2ShBf.mjs → handleResumeCommand-B5GgmPm_.mjs} +5 -5
  77. package/dist/{handleResumeCommand-CCgK7-0v.cjs → handleResumeCommand-muSrYA5y.cjs} +5 -5
  78. package/dist/{index-_DRVKtSd.mjs → index-BRH0XYSO.mjs} +53 -46
  79. package/dist/{index-BalJgriQ.cjs → index-BUOd8bNd.cjs} +5 -5
  80. package/dist/{index-BENDk1i9.mjs → index-BZCIkrFj.mjs} +4 -4
  81. package/dist/{index-BlWyEpMw.mjs → index-C27JFCbe.mjs} +1 -1
  82. package/dist/{index-CGKn-GTK.cjs → index-CQZg9jKx.cjs} +4 -4
  83. package/dist/{index-Bz9Bj7l1.cjs → index-CnY74Dae.cjs} +3 -3
  84. package/dist/{index-QSAckvNv.mjs → index-D0V-seiN.mjs} +3 -3
  85. package/dist/{index-DR3NJLVk.mjs → index-DKCmDned.mjs} +5 -5
  86. package/dist/{index-CSO1-mZ9.cjs → index-Dt_YE-zw.cjs} +47 -40
  87. package/dist/index.cjs +2 -2
  88. package/dist/index.mjs +2 -2
  89. package/dist/{install-CqXaN7_C.cjs → install-BlW2kkPl.cjs} +3 -3
  90. package/dist/{install-DMTvEPrB.mjs → install-CooQf1oU.mjs} +3 -3
  91. package/dist/lib.cjs +16 -16
  92. package/dist/lib.d.cts +4 -0
  93. package/dist/lib.d.mts +4 -0
  94. package/dist/lib.mjs +16 -16
  95. package/dist/{lidState-Cb3TbhPb.mjs → lidState-BflRFw38.mjs} +1 -1
  96. package/dist/{lidState-Btv4N_B8.cjs → lidState-VZ1j_QYw.cjs} +1 -1
  97. package/dist/{localHappyAgentAuth-CAAIUJyY.mjs → localHappyAgentAuth-BAK_nqMG.mjs} +1 -1
  98. package/dist/{localHappyAgentAuth-B3Q5DNLR.cjs → localHappyAgentAuth-oxhpgJOb.cjs} +1 -1
  99. package/dist/{logger-UgDpJA2u.mjs → logger-D1hb3CG8.mjs} +2 -2
  100. package/dist/{logger-BZ5TcbEh.cjs → logger-HQ9yDb8R.cjs} +2 -2
  101. package/dist/{machineMetadata-BYHC-3Vx.mjs → machineMetadata-Dxng45Uh.mjs} +3 -3
  102. package/dist/{machineMetadata-DLb-m4fL.cjs → machineMetadata-Dzwn-HjN.cjs} +3 -3
  103. package/dist/{main-CwW6lHIw.mjs → main-BP0iY2vQ.mjs} +48 -48
  104. package/dist/{main-LavPb80B.cjs → main-D7qre-pa.cjs} +48 -48
  105. package/dist/{mcp-BjYz5Ymf.mjs → mcp-BmDGyj7k.mjs} +18 -18
  106. package/dist/{mcp-BQbWhqUh.cjs → mcp-D3yzLkh8.cjs} +14 -14
  107. package/dist/{mirrorProtocol-BH5eT99U.mjs → mirrorProtocol-C9Zc6GFT.mjs} +3 -3
  108. package/dist/{mirrorProtocol-Ci9YmCEV.cjs → mirrorProtocol-Cv2otcvM.cjs} +2 -2
  109. package/dist/{package-C4OfB2YF.mjs → package-CpmoMPuj.mjs} +7 -7
  110. package/dist/{package-B61-BBlh.cjs → package-Dn7zZkY1.cjs} +7 -7
  111. package/dist/{panels-cBJT5Up1.mjs → panels-CQobcX5w.mjs} +5 -5
  112. package/dist/{panels-ByprLJag.cjs → panels-D59PlNoD.cjs} +5 -5
  113. package/dist/{peerTools-DS6GqJcn.mjs → peerTools-CNzlwuL7.mjs} +5 -5
  114. package/dist/{peerTools-BXSjS8lB.cjs → peerTools-D417O7d-.cjs} +5 -5
  115. package/dist/{persistence-DBmeYlwT.cjs → persistence-BiyvEYaR.cjs} +15 -5
  116. package/dist/{persistence-CQhmtobL.mjs → persistence-CagHeZ-f.mjs} +15 -5
  117. package/dist/{piRunnerArgs-Dy-3vN_Q.mjs → piRunnerArgs-DKU5LoWu.mjs} +1 -1
  118. package/dist/{piRunnerArgs-CmEE058l.cjs → piRunnerArgs-kTaNYd23.cjs} +1 -1
  119. package/dist/{piRuntime-BCXjC4__.cjs → piRuntime-BI4KNAUY.cjs} +1 -1
  120. package/dist/{piRuntime-Rq9v4M4e.mjs → piRuntime-BV4fQyZD.mjs} +1 -1
  121. package/dist/{piTerminal-ehNQOvLL.cjs → piTerminal-WPUtDJAV.cjs} +16 -16
  122. package/dist/{piTerminal-CRhDUqX7.mjs → piTerminal-oObkl3WJ.mjs} +20 -20
  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-67GmbVfE.mjs → pushNotifications-4sNESDMv.mjs} +11 -4
  128. package/dist/{pushNotifications-qCS7_tDF.cjs → pushNotifications-DRDWUnP-.cjs} +11 -2
  129. package/dist/{query-CIDBGnv6.mjs → query-6OWHW1U1.mjs} +2 -2
  130. package/dist/{query-B4QIiI7e.cjs → query-qIbeJ2-r.cjs} +2 -2
  131. package/dist/{rateLimitWindows-8-khalzj.mjs → rateLimitWindows-4uhuwKnU.mjs} +1 -1
  132. package/dist/{rateLimitWindows-BIfLMxOk.cjs → rateLimitWindows-U4fc1-_6.cjs} +1 -1
  133. package/dist/{registerCommonHandlers-G2p0MJu4.cjs → registerCommonHandlers-CEV9KUsq.cjs} +2 -2
  134. package/dist/{registerCommonHandlers-C7hlztAO.mjs → registerCommonHandlers-PTJ8TBj9.mjs} +2 -2
  135. package/dist/{registerKillSessionHandler-BWvl6wro.cjs → registerKillSessionHandler-C6F1sjoo.cjs} +5 -5
  136. package/dist/{registerKillSessionHandler-rwXdO0t0.mjs → registerKillSessionHandler-D4SSwQj8.mjs} +6 -6
  137. package/dist/{registerSideQuestionHandler-Xg46gSVh.mjs → registerSideQuestionHandler-4mRv0Msq.mjs} +4 -4
  138. package/dist/{registerSideQuestionHandler-CsyPnjce.cjs → registerSideQuestionHandler-ByUnjI3V.cjs} +4 -4
  139. package/dist/{remoteSessionClient-D6_7vNKc.cjs → remoteSessionClient-CUk6haD7.cjs} +5 -5
  140. package/dist/{remoteSessionClient-DQSnC7ox.mjs → remoteSessionClient-CfYDFlKm.mjs} +5 -5
  141. package/dist/{reportProgressTool-HjzV5y_2.mjs → reportProgressTool-BCn5oG52.mjs} +3 -3
  142. package/dist/{reportProgressTool-CIHGKraF.cjs → reportProgressTool-C1JOvo6T.cjs} +2 -2
  143. package/dist/{run-tQ4bFkHu.cjs → run-D2SlfZPP.cjs} +46 -66
  144. package/dist/{run-M06F1958.mjs → run-DC8BIklA.mjs} +52 -72
  145. package/dist/{runClaude-Ct0_mShC.cjs → runClaude-BE-5GgIZ.cjs} +29 -25
  146. package/dist/{runClaude-Dm9kQZ-w.mjs → runClaude-D6fqN9PD.mjs} +34 -30
  147. package/dist/{runClaudeDeps-DNOzXjc3.mjs → runClaudeDeps-BmdwskeI.mjs} +51 -50
  148. package/dist/{runClaudeDeps-BT2kWCrQ.cjs → runClaudeDeps-W0nv2vHL.cjs} +39 -38
  149. package/dist/{runGemini-BvN-yeQR.mjs → runGemini-C3Ipeu1i.mjs} +37 -34
  150. package/dist/{runGemini-cua7_iuR.cjs → runGemini-Da_d-2kV.cjs} +36 -33
  151. package/dist/{runOpenClaw-C9E2XzmX.mjs → runOpenClaw-BoI6nbKB.mjs} +30 -20
  152. package/dist/{runOpenClaw-NpYFRhKm.cjs → runOpenClaw-af5qDNU0.cjs} +30 -20
  153. package/dist/{sandbox-C-BXZbt9.mjs → sandbox-CjoyUSGa.mjs} +4 -4
  154. package/dist/{sandbox-hImfD0-T.cjs → sandbox-UGF68GrE.cjs} +4 -4
  155. package/dist/selfCheck-CNrOZgBv.mjs +88 -0
  156. package/dist/{selfCheck-B3ulijQM.cjs → selfCheck-Cr8eAw4m.cjs} +39 -39
  157. package/dist/{send-BCVQkTOl.cjs → send-CVSht9s_.cjs} +8 -8
  158. package/dist/{send-Dv2L8IRW.mjs → send-gqX0-i4p.mjs} +8 -8
  159. package/dist/{server-DYxyCyYF.cjs → server-BPgVv-BG.cjs} +6 -6
  160. package/dist/{server-BBBfuSB-.mjs → server-DxlNqWJo.mjs} +4 -4
  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-BfvR9BGB.mjs} +94 -78
  164. package/dist/{sessionLock-B8fsnpZD.cjs → sessionLock-D2usWXAg.cjs} +92 -78
  165. package/dist/{sessionOps-74pSDXoS.cjs → sessionOps-JRyQhF5s.cjs} +4 -4
  166. package/dist/{sessionOps-BkEgNA2O.mjs → sessionOps-OmRqUFm4.mjs} +4 -4
  167. package/dist/{sessionProvider-CWgHsZUA.cjs → sessionProvider-BpscgwwC.cjs} +5 -5
  168. package/dist/{sessionProvider-DXkhlJE6.mjs → sessionProvider-DTEdidBc.mjs} +10 -10
  169. package/dist/{sessionScanner-Dhh1wREW.mjs → sessionScanner-BlAOpqMh.mjs} +3 -3
  170. package/dist/{sessionScanner-D56EkcIj.cjs → sessionScanner-C_qVc1ok.cjs} +3 -3
  171. package/dist/{sessions-C1zRTjUe.cjs → sessions-7iyjxti9.cjs} +10 -10
  172. package/dist/{sessions-dJR6k3JY.mjs → sessions-CnjHHllR.mjs} +10 -10
  173. package/dist/{setupOfflineReconnection-CMUdHtFT.cjs → setupOfflineReconnection-BCbJa5mT.cjs} +2 -2
  174. package/dist/{setupOfflineReconnection-Dp1rC-eP.mjs → setupOfflineReconnection-IKEI7fLJ.mjs} +2 -2
  175. package/dist/{spawn-D3-Weoiq.mjs → spawn-CbfcClhj.mjs} +14 -14
  176. package/dist/{spawn-kMKI09Kh.cjs → spawn-CxEl0Dyz.cjs} +12 -12
  177. package/dist/{spawnAgents-hKFGQaSJ.mjs → spawnAgents-N3jxdNJC.mjs} +1 -1
  178. package/dist/{spawnHappyCLI-CgjpjSTT.mjs → spawnHappyCLI-C8gMHJu5.mjs} +1 -1
  179. package/dist/{spawnHappyCLI-Du1IgJGA.cjs → spawnHappyCLI-CHSlXWUe.cjs} +1 -1
  180. package/dist/{startFileWatcher-DapvIGxp.mjs → startFileWatcher-6hslFu_B.mjs} +1 -1
  181. package/dist/{startFileWatcher-DGOnF95-.cjs → startFileWatcher-BGpYPz6L.cjs} +1 -1
  182. package/dist/{startupSessionCreate-CSi60oo_.mjs → startupSessionCreate-B7jrCZUD.mjs} +3 -3
  183. package/dist/{startupSessionCreate-rkIMVGJW.cjs → startupSessionCreate-CltDtCEF.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-Cj8Vhltg.cjs → sync-DfI78smj.cjs} +1 -1
  187. package/dist/{sync-GJkf-HGu.mjs → sync-DtzoF9sw.mjs} +1 -1
  188. package/dist/{systemPrompt-BEagRbDZ.mjs → systemPrompt-B1Xd99hK.mjs} +2 -2
  189. package/dist/{systemPrompt-Cne9i1SE.cjs → systemPrompt-HZNR9rjt.cjs} +1 -1
  190. package/dist/{teams-C_18IMNM.mjs → teams-Vk75H6BZ.mjs} +7 -7
  191. package/dist/{teams-ClTg6hQ1.cjs → teams-fFX-L_ms.cjs} +6 -6
  192. package/dist/{template-Ci-cyigF.mjs → template-CJ8uLlD8.mjs} +1 -1
  193. package/dist/{time-BPPTQ_sE.cjs → time-BqPZjTpo.cjs} +1 -1
  194. package/dist/{time-CIkdLyza.mjs → time-CgAwVt5R.mjs} +1 -1
  195. package/dist/{titleGenerator-DnwTdTB_.mjs → titleGenerator-D2UB7Uyr.mjs} +2 -2
  196. package/dist/{titleGenerator-B_OgL9Pd.cjs → titleGenerator-ijVOuv3J.cjs} +2 -2
  197. package/dist/{todo-DmHolFRy.mjs → todo-CCuqtD0O.mjs} +6 -6
  198. package/dist/{todo-DPQHtZVM.cjs → todo-vCzaIwNp.cjs} +5 -5
  199. package/dist/{tools-B3KGMSU5.cjs → tools-CL8h3fqh.cjs} +1 -1
  200. package/dist/{tools-DqjPHq9I.mjs → tools-DthGQoo3.mjs} +1 -1
  201. package/dist/{uninstall-CrK5dgx8.cjs → uninstall-CIvThBvI.cjs} +3 -3
  202. package/dist/{uninstall-Cm97eybp.mjs → uninstall-DCJh4UoO.mjs} +3 -3
  203. package/dist/{wrapperAccount-Cq7eZRMx.mjs → wrapperAccount-RPtq8BwD.mjs} +2 -2
  204. package/package.json +7 -7
  205. package/dist/selfCheck-D-e9kVhc.mjs +0 -88
@@ -1,10 +1,10 @@
1
- import { o as hibernationReplaySeq } from './persistence-CQhmtobL.mjs';
1
+ import { o as hibernationReplaySeq } from './persistence-CagHeZ-f.mjs';
2
2
  import { c as compareExactVersions } from './cliUpdate-Y34VGe9Y.mjs';
3
- import { existsSync, readFileSync, unlinkSync, mkdirSync, renameSync } from 'node:fs';
3
+ import { existsSync, readFileSync, unlinkSync, mkdirSync, openSync, writeSync, closeSync, renameSync } from 'node:fs';
4
4
  import { join } from 'node:path';
5
- import { c as configuration, w as writePrivateFileSync } from './configuration-CwfgJZKs.mjs';
6
- import { l as logger } from './logger-UgDpJA2u.mjs';
7
- import { s as snapshotTree, k as killSurvivors } from './processTreeSnapshot-CuLJDNC-.mjs';
5
+ import { c as configuration, w as writePrivateFileSync } from './configuration-C8r6uD9k.mjs';
6
+ import { l as logger } from './logger-D1hb3CG8.mjs';
7
+ import { t as terminateProcessTree, i as isProcessAlive } from './processTermination-ChJG5SLW.mjs';
8
8
 
9
9
  const PROCESS_IDENTITY_FIELDS = [
10
10
  "hostPid",
@@ -204,69 +204,15 @@ function takeAutoRestartedEvent(env, agentName) {
204
204
  return { type: "message", kind: AUTO_UPDATED_EVENT_KIND, message: autoUpdatedEventText(decoded.kind, decoded.target, agentName) };
205
205
  }
206
206
 
207
- const runtime = {
208
- signal: (pid, signal) => process.kill(pid, signal),
209
- isAlive: (pid) => {
210
- try {
211
- process.kill(pid, 0);
212
- return true;
213
- } catch {
214
- return false;
215
- }
216
- },
217
- schedule: (callback, delayMs) => {
218
- setTimeout(callback, delayMs);
219
- }
220
- };
221
- function terminateProcess(pid, onSettled, impl = runtime, graceMs = 2e3) {
222
- if (!impl.isAlive(pid)) {
223
- onSettled(true);
224
- return true;
225
- }
226
- try {
227
- impl.signal(pid, "SIGTERM");
228
- } catch {
229
- return false;
230
- }
231
- impl.schedule(() => {
232
- if (impl.isAlive(pid)) {
233
- try {
234
- impl.signal(pid, "SIGKILL");
235
- } catch {
236
- onSettled(!impl.isAlive(pid));
237
- return;
238
- }
239
- }
240
- impl.schedule(() => onSettled(!impl.isAlive(pid)), 100);
241
- }, graceMs);
242
- return true;
243
- }
244
- function terminateProcessTree(pid, onSettled, deps = {}) {
245
- const snapshot = (deps.snapshot ?? ((root) => snapshotTree(root)))(pid);
246
- const reap = deps.reap ?? ((entries) => killSurvivors(entries));
247
- return (deps.terminate ?? terminateProcess)(pid, (stopped) => {
248
- try {
249
- reap(snapshot);
250
- } catch {
251
- }
252
- onSettled(stopped);
253
- });
254
- }
255
-
256
207
  const SESSION_LOCK_DIR = "session-locks";
208
+ const SESSION_CLAIM_WAIT_MS = 15e3;
209
+ const SESSION_CLAIM_POLL_MS = 100;
257
210
  const defaultRuntime = () => ({
258
211
  dir: join(configuration.happyHomeDir, SESSION_LOCK_DIR),
259
212
  selfPid: process.pid,
260
213
  now: () => Date.now(),
261
214
  signal: (pid, signal) => process.kill(pid, signal),
262
- isAlive: (pid) => {
263
- try {
264
- process.kill(pid, 0);
265
- return true;
266
- } catch {
267
- return false;
268
- }
269
- },
215
+ isAlive: (pid) => isProcessAlive(pid),
270
216
  schedule: (callback, delayMs) => {
271
217
  setTimeout(callback, delayMs);
272
218
  }
@@ -302,6 +248,52 @@ function writeSessionLock(happySessionId, record, dir) {
302
248
  writePrivateFileSync(tmp, JSON.stringify(record));
303
249
  renameSync(tmp, path);
304
250
  }
251
+ function claimPath(happySessionId, dir) {
252
+ return `${sessionLockPath(happySessionId, dir)}.claim`;
253
+ }
254
+ function claimantPid(path) {
255
+ try {
256
+ const pid = Number.parseInt(readFileSync(path, "utf-8").trim(), 10);
257
+ return Number.isInteger(pid) && pid > 0 ? pid : null;
258
+ } catch {
259
+ return null;
260
+ }
261
+ }
262
+ function tryTakeClaim(happySessionId, runtime) {
263
+ mkdirSync(runtime.dir, { recursive: true, mode: 448 });
264
+ const path = claimPath(happySessionId, runtime.dir);
265
+ for (let attempt = 0; attempt < 2; attempt++) {
266
+ try {
267
+ const fd = openSync(path, "wx", 384);
268
+ try {
269
+ writeSync(fd, String(runtime.selfPid));
270
+ } finally {
271
+ closeSync(fd);
272
+ }
273
+ return { taken: true };
274
+ } catch (error) {
275
+ if (error?.code !== "EEXIST") {
276
+ return { taken: true };
277
+ }
278
+ const pid2 = claimantPid(path);
279
+ if (pid2 !== null && pid2 !== runtime.selfPid && runtime.isAlive(pid2)) return { taken: false, claimant: pid2 };
280
+ try {
281
+ unlinkSync(path);
282
+ } catch {
283
+ }
284
+ }
285
+ }
286
+ const pid = claimantPid(path);
287
+ return pid !== null && pid !== runtime.selfPid ? { taken: false, claimant: pid } : { taken: true };
288
+ }
289
+ function releaseClaim(happySessionId, runtime) {
290
+ const path = claimPath(happySessionId, runtime.dir);
291
+ if (claimantPid(path) !== runtime.selfPid) return;
292
+ try {
293
+ unlinkSync(path);
294
+ } catch {
295
+ }
296
+ }
305
297
  function acquireSessionLock(happySessionId, options, runtime = defaultRuntime()) {
306
298
  const record = () => ({
307
299
  pid: runtime.selfPid,
@@ -309,24 +301,48 @@ function acquireSessionLock(happySessionId, options, runtime = defaultRuntime())
309
301
  version: options.version,
310
302
  ...options.flavor ? { flavor: options.flavor } : {}
311
303
  });
312
- const holder = liveSessionLockHolder(happySessionId, runtime);
313
- if (!holder) {
314
- writeSessionLock(happySessionId, record(), runtime.dir);
315
- return Promise.resolve({ ok: true, replaced: null });
316
- }
317
- if (!options.takeover) {
318
- return Promise.resolve({ ok: false, holder });
319
- }
320
- return new Promise((resolve) => {
321
- const requested = terminateProcess(holder.pid, (stopped) => {
322
- if (!stopped) {
304
+ return new Promise((settle) => {
305
+ const deadline = runtime.now() + (options.claimWaitMs ?? SESSION_CLAIM_WAIT_MS);
306
+ const attempt = () => {
307
+ const claim = tryTakeClaim(happySessionId, runtime);
308
+ if (!claim.taken) {
309
+ if (runtime.now() >= deadline) {
310
+ settle({ ok: false, holder: { pid: claim.claimant, startedAt: 0, version: "" } });
311
+ return;
312
+ }
313
+ runtime.schedule(attempt, SESSION_CLAIM_POLL_MS);
314
+ return;
315
+ }
316
+ const resolve = (result) => {
317
+ releaseClaim(happySessionId, runtime);
318
+ settle(result);
319
+ };
320
+ const holder = liveSessionLockHolder(happySessionId, runtime);
321
+ if (!holder) {
322
+ writeSessionLock(happySessionId, record(), runtime.dir);
323
+ resolve({ ok: true, replaced: null });
324
+ return;
325
+ }
326
+ if (!options.takeover) {
323
327
  resolve({ ok: false, holder });
324
328
  return;
325
329
  }
326
- writeSessionLock(happySessionId, record(), runtime.dir);
327
- resolve({ ok: true, replaced: holder });
328
- }, runtime, options.graceMs ?? 2e3);
329
- if (!requested) resolve({ ok: false, holder });
330
+ const requested = terminateProcessTree(holder.pid, (stopped) => {
331
+ if (!stopped) {
332
+ resolve({ ok: false, holder });
333
+ return;
334
+ }
335
+ writeSessionLock(happySessionId, record(), runtime.dir);
336
+ resolve({ ok: true, replaced: holder });
337
+ }, {
338
+ ...runtime.tree,
339
+ runtime,
340
+ graceMs: options.graceMs ?? 2e3,
341
+ onLeftovers: (pids) => logger.debug(`[SESSION LOCK] ${happySessionId}: takeover of ${holder.pid} left ${pids.join(", ")} running`)
342
+ });
343
+ if (!requested) resolve({ ok: false, holder });
344
+ };
345
+ attempt();
330
346
  });
331
347
  }
332
348
  function releaseSessionLock(happySessionId, runtime = defaultRuntime()) {
@@ -356,4 +372,4 @@ async function claimSessionOrExit(happySessionId, options) {
356
372
  process.on("exit", () => releaseSessionLock(happySessionId));
357
373
  }
358
374
 
359
- export { AUTO_RESTART_CAPABILITY as A, applyServerSnapshot as a, applyReconnectReplay as b, claimSessionOrExit as c, wrapperReportsIdle as d, exitCursorStamp as e, decideAutoRestart as f, autoRestartNextCheck as g, wrapperStaleness as h, AUTO_RESTART_MAX_ATTEMPTS as i, AUTO_RESTART_MIN_GAP_MS as j, readSessionLock as k, terminateProcess as l, mergeReconnectMetadata as m, terminateProcessTree as n, AUTO_RESTARTED_ENV as o, processIdentityFields as p, encodeAutoRestarted as q, recordAttempt as r, statusFromVerdict as s, takeAutoRestartedEvent as t, pendingUpgradeVersion as u, resolveQuietMs as v, withoutServerSnapshot as w, AUTO_RESTART_RECHECK_CAP_MS as x };
375
+ export { AUTO_RESTART_CAPABILITY as A, applyServerSnapshot as a, applyReconnectReplay as b, claimSessionOrExit as c, wrapperReportsIdle as d, exitCursorStamp as e, decideAutoRestart as f, autoRestartNextCheck as g, wrapperStaleness as h, AUTO_RESTART_MAX_ATTEMPTS as i, AUTO_RESTART_MIN_GAP_MS as j, readSessionLock as k, AUTO_RESTARTED_ENV as l, mergeReconnectMetadata as m, encodeAutoRestarted as n, pendingUpgradeVersion as o, processIdentityFields as p, resolveQuietMs as q, recordAttempt as r, statusFromVerdict as s, takeAutoRestartedEvent as t, AUTO_RESTART_RECHECK_CAP_MS as u, withoutServerSnapshot as w };
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var persistence = require('./persistence-DBmeYlwT.cjs');
3
+ var persistence = require('./persistence-BiyvEYaR.cjs');
4
4
  var cliUpdate = require('./cliUpdate-DsKXPFYp.cjs');
5
5
  var node_fs = require('node:fs');
6
6
  var path = require('node:path');
7
- var configuration = require('./configuration-CKaq0tNe.cjs');
8
- var logger = require('./logger-BZ5TcbEh.cjs');
9
- var processTreeSnapshot = require('./processTreeSnapshot-mDbnuojn.cjs');
7
+ var configuration = require('./configuration-CWRKSOyj.cjs');
8
+ var logger = require('./logger-HQ9yDb8R.cjs');
9
+ var processTermination = require('./processTermination-f17wxlMb.cjs');
10
10
 
11
11
  const PROCESS_IDENTITY_FIELDS = [
12
12
  "hostPid",
@@ -206,69 +206,15 @@ function takeAutoRestartedEvent(env, agentName) {
206
206
  return { type: "message", kind: AUTO_UPDATED_EVENT_KIND, message: autoUpdatedEventText(decoded.kind, decoded.target, agentName) };
207
207
  }
208
208
 
209
- const runtime = {
210
- signal: (pid, signal) => process.kill(pid, signal),
211
- isAlive: (pid) => {
212
- try {
213
- process.kill(pid, 0);
214
- return true;
215
- } catch {
216
- return false;
217
- }
218
- },
219
- schedule: (callback, delayMs) => {
220
- setTimeout(callback, delayMs);
221
- }
222
- };
223
- function terminateProcess(pid, onSettled, impl = runtime, graceMs = 2e3) {
224
- if (!impl.isAlive(pid)) {
225
- onSettled(true);
226
- return true;
227
- }
228
- try {
229
- impl.signal(pid, "SIGTERM");
230
- } catch {
231
- return false;
232
- }
233
- impl.schedule(() => {
234
- if (impl.isAlive(pid)) {
235
- try {
236
- impl.signal(pid, "SIGKILL");
237
- } catch {
238
- onSettled(!impl.isAlive(pid));
239
- return;
240
- }
241
- }
242
- impl.schedule(() => onSettled(!impl.isAlive(pid)), 100);
243
- }, graceMs);
244
- return true;
245
- }
246
- function terminateProcessTree(pid, onSettled, deps = {}) {
247
- const snapshot = (deps.snapshot ?? ((root) => processTreeSnapshot.snapshotTree(root)))(pid);
248
- const reap = deps.reap ?? ((entries) => processTreeSnapshot.killSurvivors(entries));
249
- return (deps.terminate ?? terminateProcess)(pid, (stopped) => {
250
- try {
251
- reap(snapshot);
252
- } catch {
253
- }
254
- onSettled(stopped);
255
- });
256
- }
257
-
258
209
  const SESSION_LOCK_DIR = "session-locks";
210
+ const SESSION_CLAIM_WAIT_MS = 15e3;
211
+ const SESSION_CLAIM_POLL_MS = 100;
259
212
  const defaultRuntime = () => ({
260
213
  dir: path.join(configuration.configuration.happyHomeDir, SESSION_LOCK_DIR),
261
214
  selfPid: process.pid,
262
215
  now: () => Date.now(),
263
216
  signal: (pid, signal) => process.kill(pid, signal),
264
- isAlive: (pid) => {
265
- try {
266
- process.kill(pid, 0);
267
- return true;
268
- } catch {
269
- return false;
270
- }
271
- },
217
+ isAlive: (pid) => processTermination.isProcessAlive(pid),
272
218
  schedule: (callback, delayMs) => {
273
219
  setTimeout(callback, delayMs);
274
220
  }
@@ -304,6 +250,52 @@ function writeSessionLock(happySessionId, record, dir) {
304
250
  configuration.writePrivateFileSync(tmp, JSON.stringify(record));
305
251
  node_fs.renameSync(tmp, path);
306
252
  }
253
+ function claimPath(happySessionId, dir) {
254
+ return `${sessionLockPath(happySessionId, dir)}.claim`;
255
+ }
256
+ function claimantPid(path) {
257
+ try {
258
+ const pid = Number.parseInt(node_fs.readFileSync(path, "utf-8").trim(), 10);
259
+ return Number.isInteger(pid) && pid > 0 ? pid : null;
260
+ } catch {
261
+ return null;
262
+ }
263
+ }
264
+ function tryTakeClaim(happySessionId, runtime) {
265
+ node_fs.mkdirSync(runtime.dir, { recursive: true, mode: 448 });
266
+ const path = claimPath(happySessionId, runtime.dir);
267
+ for (let attempt = 0; attempt < 2; attempt++) {
268
+ try {
269
+ const fd = node_fs.openSync(path, "wx", 384);
270
+ try {
271
+ node_fs.writeSync(fd, String(runtime.selfPid));
272
+ } finally {
273
+ node_fs.closeSync(fd);
274
+ }
275
+ return { taken: true };
276
+ } catch (error) {
277
+ if (error?.code !== "EEXIST") {
278
+ return { taken: true };
279
+ }
280
+ const pid2 = claimantPid(path);
281
+ if (pid2 !== null && pid2 !== runtime.selfPid && runtime.isAlive(pid2)) return { taken: false, claimant: pid2 };
282
+ try {
283
+ node_fs.unlinkSync(path);
284
+ } catch {
285
+ }
286
+ }
287
+ }
288
+ const pid = claimantPid(path);
289
+ return pid !== null && pid !== runtime.selfPid ? { taken: false, claimant: pid } : { taken: true };
290
+ }
291
+ function releaseClaim(happySessionId, runtime) {
292
+ const path = claimPath(happySessionId, runtime.dir);
293
+ if (claimantPid(path) !== runtime.selfPid) return;
294
+ try {
295
+ node_fs.unlinkSync(path);
296
+ } catch {
297
+ }
298
+ }
307
299
  function acquireSessionLock(happySessionId, options, runtime = defaultRuntime()) {
308
300
  const record = () => ({
309
301
  pid: runtime.selfPid,
@@ -311,24 +303,48 @@ function acquireSessionLock(happySessionId, options, runtime = defaultRuntime())
311
303
  version: options.version,
312
304
  ...options.flavor ? { flavor: options.flavor } : {}
313
305
  });
314
- const holder = liveSessionLockHolder(happySessionId, runtime);
315
- if (!holder) {
316
- writeSessionLock(happySessionId, record(), runtime.dir);
317
- return Promise.resolve({ ok: true, replaced: null });
318
- }
319
- if (!options.takeover) {
320
- return Promise.resolve({ ok: false, holder });
321
- }
322
- return new Promise((resolve) => {
323
- const requested = terminateProcess(holder.pid, (stopped) => {
324
- if (!stopped) {
306
+ return new Promise((settle) => {
307
+ const deadline = runtime.now() + (options.claimWaitMs ?? SESSION_CLAIM_WAIT_MS);
308
+ const attempt = () => {
309
+ const claim = tryTakeClaim(happySessionId, runtime);
310
+ if (!claim.taken) {
311
+ if (runtime.now() >= deadline) {
312
+ settle({ ok: false, holder: { pid: claim.claimant, startedAt: 0, version: "" } });
313
+ return;
314
+ }
315
+ runtime.schedule(attempt, SESSION_CLAIM_POLL_MS);
316
+ return;
317
+ }
318
+ const resolve = (result) => {
319
+ releaseClaim(happySessionId, runtime);
320
+ settle(result);
321
+ };
322
+ const holder = liveSessionLockHolder(happySessionId, runtime);
323
+ if (!holder) {
324
+ writeSessionLock(happySessionId, record(), runtime.dir);
325
+ resolve({ ok: true, replaced: null });
326
+ return;
327
+ }
328
+ if (!options.takeover) {
325
329
  resolve({ ok: false, holder });
326
330
  return;
327
331
  }
328
- writeSessionLock(happySessionId, record(), runtime.dir);
329
- resolve({ ok: true, replaced: holder });
330
- }, runtime, options.graceMs ?? 2e3);
331
- if (!requested) resolve({ ok: false, holder });
332
+ const requested = processTermination.terminateProcessTree(holder.pid, (stopped) => {
333
+ if (!stopped) {
334
+ resolve({ ok: false, holder });
335
+ return;
336
+ }
337
+ writeSessionLock(happySessionId, record(), runtime.dir);
338
+ resolve({ ok: true, replaced: holder });
339
+ }, {
340
+ ...runtime.tree,
341
+ runtime,
342
+ graceMs: options.graceMs ?? 2e3,
343
+ onLeftovers: (pids) => logger.logger.debug(`[SESSION LOCK] ${happySessionId}: takeover of ${holder.pid} left ${pids.join(", ")} running`)
344
+ });
345
+ if (!requested) resolve({ ok: false, holder });
346
+ };
347
+ attempt();
332
348
  });
333
349
  }
334
350
  function releaseSessionLock(happySessionId, runtime = defaultRuntime()) {
@@ -378,8 +394,6 @@ exports.recordAttempt = recordAttempt;
378
394
  exports.resolveQuietMs = resolveQuietMs;
379
395
  exports.statusFromVerdict = statusFromVerdict;
380
396
  exports.takeAutoRestartedEvent = takeAutoRestartedEvent;
381
- exports.terminateProcess = terminateProcess;
382
- exports.terminateProcessTree = terminateProcessTree;
383
397
  exports.withoutServerSnapshot = withoutServerSnapshot;
384
398
  exports.wrapperReportsIdle = wrapperReportsIdle;
385
399
  exports.wrapperStaleness = wrapperStaleness;
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  var axios = require('axios');
4
- var configuration = require('./configuration-CKaq0tNe.cjs');
4
+ var configuration = require('./configuration-CWRKSOyj.cjs');
5
5
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
6
- var controlClient = require('./controlClient-D_HIbnnS.cjs');
7
- var persistence = require('./persistence-DBmeYlwT.cjs');
6
+ var controlClient = require('./controlClient-DyNgxNl7.cjs');
7
+ var persistence = require('./persistence-BiyvEYaR.cjs');
8
8
  var node_crypto = require('node:crypto');
9
- var time = require('./time-BPPTQ_sE.cjs');
9
+ var time = require('./time-BqPZjTpo.cjs');
10
10
  var specialCommands = require('./specialCommands-J3JFOq0J.cjs');
11
11
  var socket_ioClient = require('socket.io-client');
12
12
  var backgroundTaskActivity = require('./backgroundTaskActivity-CBvUdj39.cjs');
@@ -1,10 +1,10 @@
1
1
  import axios from 'axios';
2
- import { c as configuration } from './configuration-CwfgJZKs.mjs';
2
+ import { c as configuration } from './configuration-C8r6uD9k.mjs';
3
3
  import { e as encodeBase64, g as encrypt, d as decodeBase64, h as decrypt } from './authRelay-DhQhkBvX.mjs';
4
- import { l as listDaemonSessions, f as stopDaemonSession } from './controlClient-Dv6IvvUq.mjs';
5
- import { b as readCredentialsForConfiguredRelay, c as readPersistedSessions } from './persistence-CQhmtobL.mjs';
4
+ import { l as listDaemonSessions, f as stopDaemonSession } from './controlClient-DYQ1g2ar.mjs';
5
+ import { b as readCredentialsForConfiguredRelay, c as readPersistedSessions } from './persistence-CagHeZ-f.mjs';
6
6
  import { randomUUID } from 'node:crypto';
7
- import { d as delay } from './time-CIkdLyza.mjs';
7
+ import { d as delay } from './time-CgAwVt5R.mjs';
8
8
  import { c as compactCommandText, p as parseClear } from './specialCommands-MXUN0wfI.mjs';
9
9
  import { io } from 'socket.io-client';
10
10
  import { b as backgroundTasksReport } from './backgroundTaskActivity-8PdPxrvy.mjs';
@@ -1,18 +1,18 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var configuration = require('./configuration-CKaq0tNe.cjs');
5
- var controlClient = require('./controlClient-D_HIbnnS.cjs');
4
+ var configuration = require('./configuration-CWRKSOyj.cjs');
5
+ var controlClient = require('./controlClient-DyNgxNl7.cjs');
6
6
  var accountService = require('./accountService-DL6xhVUa.cjs');
7
7
  var store = require('./store-aa3CVNwS.cjs');
8
8
  require('node:fs');
9
9
  require('node:os');
10
10
  require('node:path');
11
- require('./package-B61-BBlh.cjs');
11
+ require('./package-Dn7zZkY1.cjs');
12
12
  require('node:fs/promises');
13
- require('./logger-BZ5TcbEh.cjs');
13
+ require('./logger-HQ9yDb8R.cjs');
14
14
  require('node:util');
15
- require('./persistence-DBmeYlwT.cjs');
15
+ require('./persistence-BiyvEYaR.cjs');
16
16
  require('zod');
17
17
  require('./authRelay-Dy1qU9td.cjs');
18
18
  require('node:crypto');
@@ -1,25 +1,25 @@
1
1
  import chalk from 'chalk';
2
- import { c as configuration } from './configuration-CwfgJZKs.mjs';
3
- import { r as restartDaemonSession, l as listDaemonSessions } from './controlClient-Dv6IvvUq.mjs';
4
- import { A as AccountService, l as localRestartFailure, b as bindResultMessages } from './accountService-BtEgv0fC.mjs';
5
- import { r as readSessionBindings, a as readAccounts } from './store-Tf-r1ouq.mjs';
2
+ import { c as configuration } from './configuration-C8r6uD9k.mjs';
3
+ import { r as restartDaemonSession, l as listDaemonSessions } from './controlClient-DYQ1g2ar.mjs';
4
+ import { A as AccountService, l as localRestartFailure, b as bindResultMessages } from './accountService-DQ21IlBs.mjs';
5
+ import { r as readSessionBindings, a as readAccounts } from './store-BlPvTr_Q.mjs';
6
6
  import 'node:fs';
7
7
  import 'node:os';
8
8
  import 'node:path';
9
- import './package-C4OfB2YF.mjs';
9
+ import './package-CpmoMPuj.mjs';
10
10
  import 'node:fs/promises';
11
- import './logger-UgDpJA2u.mjs';
11
+ import './logger-D1hb3CG8.mjs';
12
12
  import 'node:util';
13
- import './persistence-CQhmtobL.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-BlWyEpMw.mjs';
18
+ import './index-C27JFCbe.mjs';
19
19
  import '@paralleldrive/cuid2';
20
20
  import 'node:child_process';
21
- import './claudeAccountEnv-NyoxjLuJ.mjs';
22
- import './codexAccount-CKXpXq0B.mjs';
21
+ import './claudeAccountEnv-CPO6CGNd.mjs';
22
+ import './codexAccount-iZwmpYti.mjs';
23
23
  import 'node:readline';
24
24
 
25
25
  const SESSION_PROVIDER_HELP = `Usage:
@@ -1,10 +1,10 @@
1
- import { I as InvalidateSync } from './sync-GJkf-HGu.mjs';
1
+ import { I as InvalidateSync } from './sync-DtzoF9sw.mjs';
2
2
  import { R as RawJSONLinesSchema } from './types-CkqAACXx.mjs';
3
3
  import { join } from 'node:path';
4
4
  import { statSync } from 'node:fs';
5
5
  import { r as readTranscriptIncrement, i as isValidTranscriptHint } from './transcriptCursor-B7T_gkQ0.mjs';
6
- import { l as logger } from './logger-UgDpJA2u.mjs';
7
- import { s as startFileWatcher } from './startFileWatcher-DapvIGxp.mjs';
6
+ import { l as logger } from './logger-D1hb3CG8.mjs';
7
+ import { s as startFileWatcher } from './startFileWatcher-6hslFu_B.mjs';
8
8
  import { g as getProjectPath } from './path-D2wdaNSk.mjs';
9
9
 
10
10
  class Future {
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var sync = require('./sync-Cj8Vhltg.cjs');
3
+ var sync = require('./sync-DfI78smj.cjs');
4
4
  var types = require('./types-CRS-srZK.cjs');
5
5
  var path$1 = require('node:path');
6
6
  var node_fs = require('node:fs');
7
7
  var transcriptCursor = require('./transcriptCursor-DcXGLeSc.cjs');
8
- var logger = require('./logger-BZ5TcbEh.cjs');
9
- var startFileWatcher = require('./startFileWatcher-DGOnF95-.cjs');
8
+ var logger = require('./logger-HQ9yDb8R.cjs');
9
+ var startFileWatcher = require('./startFileWatcher-BGpYPz6L.cjs');
10
10
  var path = require('./path-B7zW-WwE.cjs');
11
11
 
12
12
  class Future {
@@ -2,30 +2,30 @@
2
2
 
3
3
  var chalk = require('chalk');
4
4
  var exitAfterFlush = require('./exitAfterFlush-DIT_sIxR.cjs');
5
- var sessionOps = require('./sessionOps-74pSDXoS.cjs');
5
+ var sessionOps = require('./sessionOps-JRyQhF5s.cjs');
6
6
  var ids = require('./ids-B6ZC0HGt.cjs');
7
- var peerTools = require('./peerTools-BXSjS8lB.cjs');
8
- var persistence = require('./persistence-DBmeYlwT.cjs');
7
+ var peerTools = require('./peerTools-D417O7d-.cjs');
8
+ var persistence = require('./persistence-BiyvEYaR.cjs');
9
9
  var path = require('node:path');
10
- var remoteSessionClient = require('./remoteSessionClient-D6_7vNKc.cjs');
10
+ var remoteSessionClient = require('./remoteSessionClient-CUk6haD7.cjs');
11
11
  require('axios');
12
- require('./configuration-CKaq0tNe.cjs');
12
+ require('./configuration-CWRKSOyj.cjs');
13
13
  require('node:fs');
14
14
  require('node:os');
15
- require('./package-B61-BBlh.cjs');
15
+ require('./package-Dn7zZkY1.cjs');
16
16
  require('node:fs/promises');
17
17
  require('./authRelay-Dy1qU9td.cjs');
18
18
  require('node:crypto');
19
19
  require('tweetnacl');
20
- require('./controlClient-D_HIbnnS.cjs');
21
- require('./logger-BZ5TcbEh.cjs');
20
+ require('./controlClient-DyNgxNl7.cjs');
21
+ require('./logger-HQ9yDb8R.cjs');
22
22
  require('node:util');
23
- require('./time-BPPTQ_sE.cjs');
23
+ require('./time-BqPZjTpo.cjs');
24
24
  require('./specialCommands-J3JFOq0J.cjs');
25
25
  require('socket.io-client');
26
26
  require('./backgroundTaskActivity-CBvUdj39.cjs');
27
27
  require('zod');
28
- require('./client-DcXLNaF2.cjs');
28
+ require('./client-Ckic3nxZ.cjs');
29
29
 
30
30
  const MACHINE_ID_RE = /^[a-zA-Z0-9_-]{1,128}$/;
31
31
  const ACTIONS = ["list", "read", "stop", "archive", "approve", "deny", "peers", "message"];
@@ -1,29 +1,29 @@
1
1
  import chalk from 'chalk';
2
2
  import { e as exitAfterFlush } from './exitAfterFlush-AbKNZM0N.mjs';
3
- import { D as DEFAULT_RECENT_LIMIT, M as MAX_READ_LIMIT, l as listAccountSessions, a as listSessions, w as waitForTurnEnd, T as TurnWaitTimeoutError, r as readSessionTranscript, b as stopSession, c as resolvePermissionRequest, d as archiveSession } from './sessionOps-BkEgNA2O.mjs';
3
+ import { D as DEFAULT_RECENT_LIMIT, M as MAX_READ_LIMIT, l as listAccountSessions, a as listSessions, w as waitForTurnEnd, T as TurnWaitTimeoutError, r as readSessionTranscript, b as stopSession, c as resolvePermissionRequest, d as archiveSession } from './sessionOps-OmRqUFm4.mjs';
4
4
  import { i as isValidSessionId } from './ids-DU6sLx4C.mjs';
5
- import { P as PEER_SCOPES, c as cliPeerSelf, e as executeSessionPeerTool, l as listPeerSessions, s as sendPeerMessage } from './peerTools-DS6GqJcn.mjs';
6
- import { c as readPersistedSessions } from './persistence-CQhmtobL.mjs';
5
+ import { P as PEER_SCOPES, c as cliPeerSelf, e as executeSessionPeerTool, l as listPeerSessions, s as sendPeerMessage } from './peerTools-CNzlwuL7.mjs';
6
+ import { c as readPersistedSessions } from './persistence-CagHeZ-f.mjs';
7
7
  import { resolve } from 'node:path';
8
- import { f as fillForeignAccountRows, l as listRemoteSessions, a as listRemotePeers, w as waitForRemoteTurnEnd, r as readRemoteTranscript } from './remoteSessionClient-DQSnC7ox.mjs';
8
+ import { f as fillForeignAccountRows, l as listRemoteSessions, a as listRemotePeers, w as waitForRemoteTurnEnd, r as readRemoteTranscript } from './remoteSessionClient-CfYDFlKm.mjs';
9
9
  import 'axios';
10
- import './configuration-CwfgJZKs.mjs';
10
+ import './configuration-C8r6uD9k.mjs';
11
11
  import 'node:fs';
12
12
  import 'node:os';
13
- import './package-C4OfB2YF.mjs';
13
+ import './package-CpmoMPuj.mjs';
14
14
  import 'node:fs/promises';
15
15
  import './authRelay-DhQhkBvX.mjs';
16
16
  import 'node:crypto';
17
17
  import 'tweetnacl';
18
- import './controlClient-Dv6IvvUq.mjs';
19
- import './logger-UgDpJA2u.mjs';
18
+ import './controlClient-DYQ1g2ar.mjs';
19
+ import './logger-D1hb3CG8.mjs';
20
20
  import 'node:util';
21
- import './time-CIkdLyza.mjs';
21
+ import './time-CgAwVt5R.mjs';
22
22
  import './specialCommands-MXUN0wfI.mjs';
23
23
  import 'socket.io-client';
24
24
  import './backgroundTaskActivity-8PdPxrvy.mjs';
25
25
  import 'zod';
26
- import './client-CydHzidF.mjs';
26
+ import './client-CfTeXnYS.mjs';
27
27
 
28
28
  const MACHINE_ID_RE = /^[a-zA-Z0-9_-]{1,128}$/;
29
29
  const ACTIONS = ["list", "read", "stop", "archive", "approve", "deny", "peers", "message"];
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var configuration = require('./configuration-CKaq0tNe.cjs');
4
- var api = require('./api-TpjZJXV-.cjs');
3
+ var configuration = require('./configuration-CWRKSOyj.cjs');
4
+ var api = require('./api-fuwEEEkT.cjs');
5
5
 
6
6
  function createOfflineSessionStub(sessionTag) {
7
7
  return {
@@ -1,5 +1,5 @@
1
- import { c as configuration } from './configuration-CwfgJZKs.mjs';
2
- import { s as startOfflineReconnection } from './api-DOzNOoVJ.mjs';
1
+ import { c as configuration } from './configuration-C8r6uD9k.mjs';
2
+ import { s as startOfflineReconnection } from './api-CiNezCys.mjs';
3
3
 
4
4
  function createOfflineSessionStub(sessionTag) {
5
5
  return {