very-happy-cli 0.2.189 → 0.2.190

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 (199) hide show
  1. package/dist/{AcpBackend-fj16v_cf.mjs → AcpBackend-Dd1h-Rgt.mjs} +3 -3
  2. package/dist/{AcpBackend-DRPJ2g9G.cjs → AcpBackend-dkRv9QHm.cjs} +3 -3
  3. package/dist/{AcpSessionManager-DM-KKg6v.cjs → AcpSessionManager-AqWAqahm.cjs} +1 -1
  4. package/dist/{AcpSessionManager-BZPmUDL5.mjs → AcpSessionManager-QBZ-CIf7.mjs} +2 -2
  5. package/dist/{BasePermissionHandler-CVtH-snr.mjs → BasePermissionHandler-CLp1ge-4.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-DjM16uJz.cjs → BasePermissionHandler-CpSugp7Z.cjs} +1 -1
  7. package/dist/{acpSessionResume-2BTMsB7_.cjs → acpSessionResume-CZao6QEd.cjs} +1 -1
  8. package/dist/{acpSessionResume-Dxl1LRAT.mjs → acpSessionResume-CcpDuIO5.mjs} +1 -1
  9. package/dist/{agentHome-CHctmMzZ.mjs → agentHome-BJGRA2Kx.mjs} +4 -4
  10. package/dist/{agentHome-W17n1gnH.cjs → agentHome-fIUqT-pn.cjs} +4 -4
  11. package/dist/{api-BDuuyys8.cjs → api-CXL6jp-p.cjs} +18 -9
  12. package/dist/{api-B0yN68XH.mjs → api-Dw8gFsQi.mjs} +19 -10
  13. package/dist/{apiMachine-mc9CsKuS.mjs → apiMachine-BBNEtjf7.mjs} +56 -15
  14. package/dist/{apiMachine-iddD-F19.cjs → apiMachine-C6UqHoPF.cjs} +55 -14
  15. package/dist/{attachmentContent-CcIdMfAx.mjs → attachmentContent-CC4yIrSm.mjs} +2 -2
  16. package/dist/{attachmentContent-Cc5b7TPr.cjs → attachmentContent-NmVfKp-B.cjs} +2 -2
  17. package/dist/{auth-DQKSpaEf.cjs → auth-Bb_SL2os.cjs} +5 -5
  18. package/dist/{auth-DNAgkUkB.mjs → auth-Bh6SUoGi.mjs} +8 -8
  19. package/dist/{auth-CyrVvWHF.mjs → auth-Bj0psrD2.mjs} +5 -5
  20. package/dist/{auth-B7tVmyfX.cjs → auth-DKa4MsAi.cjs} +8 -8
  21. package/dist/{auto-CetlumDo.cjs → auto-C9Qohh0P.cjs} +15 -15
  22. package/dist/{auto-BklCipw1.mjs → auto-DK7pbCnV.mjs} +18 -18
  23. package/dist/{bootstrap-DfXwkUQb.mjs → bootstrap-Ct9Nb4sv.mjs} +2 -2
  24. package/dist/{bootstrap-CDY-Vz8q.cjs → bootstrap-DBJB0y-H.cjs} +2 -2
  25. package/dist/{browser-vb0k1zfI.mjs → browser-BGxDRhHy.mjs} +1 -1
  26. package/dist/{browser-D1yzC0Tu.cjs → browser-CLJWcodR.cjs} +1 -1
  27. package/dist/{claudeLocal-2dJIiTIq.cjs → claudeLocal-B6YDYlnY.cjs} +4 -4
  28. package/dist/{claudeLocal-Bid_rC_v.mjs → claudeLocal-Ux31hZyC.mjs} +5 -5
  29. package/dist/{claudeLocalLauncher-5pzpETxd.mjs → claudeLocalLauncher-D06QijMw.mjs} +10 -10
  30. package/dist/{claudeLocalLauncher-Jm5oQX5Z.cjs → claudeLocalLauncher-DFvmF8rC.cjs} +9 -9
  31. package/dist/{claudeSessionFork-DzecSBO4.mjs → claudeSessionFork-D2GI7P59.mjs} +1 -1
  32. package/dist/{claudeSessionFork-DsbcuDEJ.cjs → claudeSessionFork-DTLZ2rek.cjs} +1 -1
  33. package/dist/{client-D0aYWt53.cjs → client-Bffkrs5p.cjs} +2 -2
  34. package/dist/{client-BNmFaRXZ.cjs → client-CARZ_lNS.cjs} +3 -3
  35. package/dist/{client-DIfxYk7B.cjs → client-CMKGrnmT.cjs} +2 -2
  36. package/dist/{client-B161HwAk.mjs → client-CnGNYidN.mjs} +2 -2
  37. package/dist/{client-C9Ecbtko.mjs → client-CtL0Vtww.mjs} +4 -4
  38. package/dist/{client-CvjjadIE.mjs → client-DZkBUoh9.mjs} +2 -2
  39. package/dist/codex/happyMcpStdioBridge.cjs +15 -15
  40. package/dist/codex/happyMcpStdioBridge.mjs +16 -16
  41. package/dist/{codexAppServerClient-BlVmpjR-.mjs → codexAppServerClient-CLc5nhLT.mjs} +13 -6
  42. package/dist/{codexAppServerClient-CO9f4Jr8.cjs → codexAppServerClient-CpT9F6EM.cjs} +13 -6
  43. package/dist/{codexCommand-BfoRP6E9.cjs → codexCommand-39kH99SJ.cjs} +72 -48
  44. package/dist/{codexCommand-CAMR4g5o.mjs → codexCommand-Dliq3EBv.mjs} +69 -45
  45. package/dist/{codexTermination-IrLZQzKC.cjs → codexTermination-ByW7tRjr.cjs} +1 -1
  46. package/dist/{codexTermination-BvGlN02_.mjs → codexTermination-ORIw0gpU.mjs} +1 -1
  47. package/dist/{codexThreadFork-DNekT4nQ.cjs → codexThreadFork-5kwoKjMu.cjs} +11 -17
  48. package/dist/{codexThreadFork-R76RU5H0.mjs → codexThreadFork-DobPd19R.mjs} +11 -17
  49. package/dist/{config-BGFqQGvh.cjs → config-CeIzCsfj.cjs} +3 -3
  50. package/dist/{config-CtMgGPvf.mjs → config-CxSsGO1Z.mjs} +3 -3
  51. package/dist/{configuration-1FabKklB.mjs → configuration-Dechcvd-.mjs} +1 -1
  52. package/dist/{configuration-C0ctLGW2.cjs → configuration-Dt5lKW3P.cjs} +1 -1
  53. package/dist/{connect-DSw-2f52.cjs → connect-NPDzIVC6.cjs} +12 -12
  54. package/dist/{connect-0lSugpjf.mjs → connect-UwQHvCpR.mjs} +13 -13
  55. package/dist/{context-D-hEk5pC.cjs → context-BdZssgF0.cjs} +1 -1
  56. package/dist/{context-BgxbXWKS.mjs → context-C9JbJoNe.mjs} +1 -1
  57. package/dist/{controlClient-F7hAEEy2.cjs → controlClient-BRk65BRO.cjs} +3 -3
  58. package/dist/{controlClient-DwNnNAUx.mjs → controlClient-D7NGfmtq.mjs} +3 -3
  59. package/dist/{createSessionMetadata-DezS33OM.cjs → createSessionMetadata-B_HZCDj_.cjs} +2 -2
  60. package/dist/{createSessionMetadata-CG6Klinp.mjs → createSessionMetadata-DyhFKAby.mjs} +2 -2
  61. package/dist/defaultPermissionMode-BnxJPVHT.mjs +4 -0
  62. package/dist/defaultPermissionMode-CxmTXUQR.cjs +7 -0
  63. package/dist/{deterministicJson-D0LU_XbO.cjs → deterministicJson-BEygolBQ.cjs} +12 -12
  64. package/dist/{deterministicJson-BMwgK21e.mjs → deterministicJson-DNmMVhFu.mjs} +13 -13
  65. package/dist/{doctor-wVNvRarN.cjs → doctor-B9lW1WlG.cjs} +7 -7
  66. package/dist/{doctor-D16hySse.mjs → doctor-BdBi7TFZ.mjs} +7 -7
  67. package/dist/{downloadTarget-C6tqaXGm.mjs → downloadTarget-CGojGjaN.mjs} +6 -6
  68. package/dist/{downloadTarget-aNcCxVRL.cjs → downloadTarget-DS0zT2AU.cjs} +6 -6
  69. package/dist/{ensureDaemonRunning-DZq8bvsp.mjs → ensureDaemonRunning-BOdbryDM.mjs} +5 -5
  70. package/dist/{ensureDaemonRunning-CIghxgDR.cjs → ensureDaemonRunning-Bibp6vhe.cjs} +5 -5
  71. package/dist/exitAfterFlush-AbKNZM0N.mjs +23 -0
  72. package/dist/exitAfterFlush-DIT_sIxR.cjs +25 -0
  73. package/dist/{handleResumeCommand-BNnD7EuD.mjs → handleResumeCommand-CgLzBYne.mjs} +5 -5
  74. package/dist/{handleResumeCommand-CMUTygsm.cjs → handleResumeCommand-DXOuWr4p.cjs} +5 -5
  75. package/dist/{agentAttachments-Dbw8iMCZ.cjs → heldInput-BOtqFO2r.cjs} +27 -0
  76. package/dist/heldInput-C69lA2dH.mjs +44 -0
  77. package/dist/{index-De02DNu5.cjs → index-Bs5FD8JF.cjs} +4 -4
  78. package/dist/{index-BuiG8hmg.mjs → index-CBHfkQNY.mjs} +133 -54
  79. package/dist/{index-4TpmBb2Q.cjs → index-CwRW11hT.cjs} +3 -3
  80. package/dist/{index-Df0bc_et.mjs → index-DUByZsKe.mjs} +4 -4
  81. package/dist/{index-B81qV_F_.cjs → index-DXSIi6j_.cjs} +4 -4
  82. package/dist/{index-BCQr-5Ei.mjs → index-Db0HIC-k.mjs} +4 -4
  83. package/dist/{index-WKyN-bNy.mjs → index-DmqsRnV7.mjs} +1 -1
  84. package/dist/{index-CnzsOD19.cjs → index-f8oDidjV.cjs} +131 -52
  85. package/dist/{index-CKd20r1W.mjs → index-rNTX33in.mjs} +3 -3
  86. package/dist/index.cjs +2 -2
  87. package/dist/index.mjs +2 -2
  88. package/dist/{install-DNbIEJUk.cjs → install-CXIL_FYx.cjs} +3 -3
  89. package/dist/{install-23ehAdTD.mjs → install-DfPrEWGG.mjs} +3 -3
  90. package/dist/lib.cjs +11 -11
  91. package/dist/lib.d.cts +53 -1
  92. package/dist/lib.d.mts +53 -1
  93. package/dist/lib.mjs +12 -12
  94. package/dist/{lidState-q5Its2Hm.mjs → lidState-D0DF20oG.mjs} +1 -1
  95. package/dist/{lidState-B4dHJCeS.cjs → lidState-q_XFYg33.cjs} +1 -1
  96. package/dist/{localHappyAgentAuth-C_G5u5lY.mjs → localHappyAgentAuth-BBhM4Qk1.mjs} +1 -1
  97. package/dist/{localHappyAgentAuth-CG2nPD_H.cjs → localHappyAgentAuth-CKNW-MXw.cjs} +1 -1
  98. package/dist/{logger-BP1SW7Cs.cjs → logger-BBRTTVsQ.cjs} +2 -2
  99. package/dist/{logger-DOKH3Zbh.mjs → logger-CL7pin9b.mjs} +2 -2
  100. package/dist/{machineMetadata-D-5qeIqd.mjs → machineMetadata-DP06qdBk.mjs} +3 -3
  101. package/dist/{machineMetadata-BKX3ov9g.cjs → machineMetadata-DnFNlrVK.cjs} +3 -3
  102. package/dist/{main-ndpVIaSG.cjs → main-DLOXykOR.cjs} +49 -48
  103. package/dist/{main-DODz8DQE.mjs → main-DO7nRvhf.mjs} +49 -48
  104. package/dist/{mcp-BBwbSODp.mjs → mcp-C-4sPTae.mjs} +15 -15
  105. package/dist/{mcp-Bc4U4exu.cjs → mcp-Du0MgR7e.cjs} +14 -14
  106. package/dist/{mirrorProtocol-CiA3hO2y.cjs → mirrorProtocol-GuWMxLkh.cjs} +2 -2
  107. package/dist/{mirrorProtocol-D2vTWteS.mjs → mirrorProtocol-dkq2ZENA.mjs} +3 -3
  108. package/dist/{package-DTcaIhjW.mjs → package-C6uiXULx.mjs} +7 -7
  109. package/dist/{package-CYDdLA6R.cjs → package-DrY090nZ.cjs} +7 -7
  110. package/dist/{panels-C2xZ8rqU.cjs → panels-4DRBKHZP.cjs} +5 -5
  111. package/dist/{panels-DCaLxlSL.mjs → panels-DXYdJA6n.mjs} +5 -5
  112. package/dist/{peerTools-B4315xjX.cjs → peerTools-5ZM4spcZ.cjs} +5 -5
  113. package/dist/{peerTools-BtrUnSwz.mjs → peerTools-dY1aJez4.mjs} +5 -5
  114. package/dist/{persistence-CrzC7yr_.cjs → persistence-Bl5S3TLB.cjs} +6 -2
  115. package/dist/{persistence-0INrP3aB.mjs → persistence-Dogj7JIp.mjs} +6 -3
  116. package/dist/{piRunnerArgs-BtzW_kfh.cjs → piRunnerArgs-C3jZ1M6b.cjs} +1 -1
  117. package/dist/{piRunnerArgs-DRuxMlX1.mjs → piRunnerArgs-D8nN_Iit.mjs} +1 -1
  118. package/dist/{piRuntime-DEbPE_kW.cjs → piRuntime-Bd9-eq6M.cjs} +1 -1
  119. package/dist/{piRuntime-BMAFpIBV.mjs → piRuntime-BoeMsAXK.mjs} +1 -1
  120. package/dist/{piTerminal-MtxDtBE2.cjs → piTerminal-C3j1ca3x.cjs} +16 -16
  121. package/dist/{piTerminal-DQXV8_we.mjs → piTerminal-GEPkIGD4.mjs} +17 -17
  122. package/dist/{pushNotifications-CalIS9sq.cjs → pushNotifications-CfspRcl-.cjs} +20 -2
  123. package/dist/{pushNotifications-Cq1s8YVK.mjs → pushNotifications-dUceOIni.mjs} +21 -3
  124. package/dist/{query-CE2XDhhw.cjs → query-DjsVgG3E.cjs} +1 -1
  125. package/dist/{query-BYiPBHPC.mjs → query-iYH-tm7L.mjs} +1 -1
  126. package/dist/{rateLimitReporter-BKmoOZQi.cjs → rateLimitReporter-DUu2KydZ.cjs} +3 -3
  127. package/dist/{rateLimitReporter-DR5LXuiQ.mjs → rateLimitReporter-jeVi-fym.mjs} +3 -3
  128. package/dist/{rateLimitWindows-Cs56YJCH.cjs → rateLimitWindows-Bx3ROBP5.cjs} +1 -1
  129. package/dist/{rateLimitWindows-5vIuNjko.mjs → rateLimitWindows-CEn0DXaX.mjs} +1 -1
  130. package/dist/{registerCommonHandlers-DZPozYxc.cjs → registerCommonHandlers-Beun-cQv.cjs} +2 -2
  131. package/dist/{registerCommonHandlers-DWkTysjD.mjs → registerCommonHandlers-DWZ7mfdt.mjs} +2 -2
  132. package/dist/{registerKillSessionHandler-DhCjrs44.cjs → registerKillSessionHandler-CA1FFr_F.cjs} +15 -5
  133. package/dist/{registerKillSessionHandler-CSCTRIbI.mjs → registerKillSessionHandler-CzgklwLG.mjs} +16 -6
  134. package/dist/{remoteSessionClient-Vfj_5g2-.mjs → remoteSessionClient-BiC2KDew.mjs} +5 -5
  135. package/dist/{remoteSessionClient-Dq8XTLQP.cjs → remoteSessionClient-DGFI__5Z.cjs} +5 -5
  136. package/dist/{reportProgressTool-B7zmX7NJ.mjs → reportProgressTool-CgPy6n_7.mjs} +3 -3
  137. package/dist/{reportProgressTool-DznxPKES.cjs → reportProgressTool-CvPGov1F.cjs} +2 -2
  138. package/dist/{run-DSfNcR62.mjs → run-B_gFgJVB.mjs} +392 -42
  139. package/dist/{run-Ca8BiNCp.cjs → run-rPqQwDi_.cjs} +389 -39
  140. package/dist/{runClaude-hoepv-0X.mjs → runClaude-CykqeXK7.mjs} +26 -23
  141. package/dist/{runClaude-ClQQcgoO.cjs → runClaude-DM8gm8iu.cjs} +27 -24
  142. package/dist/{runClaudeDeps-D_v8t2SK.mjs → runClaudeDeps-D2phXGut.mjs} +101 -44
  143. package/dist/{runClaudeDeps-ck5_GYlP.cjs → runClaudeDeps-DGAomimZ.cjs} +94 -37
  144. package/dist/{runGemini-Cj0XsMiM.cjs → runGemini-CXTeSOZp.cjs} +32 -32
  145. package/dist/{runGemini-CTr2-cYG.mjs → runGemini-CtWCVkj5.mjs} +33 -33
  146. package/dist/{runOpenClaw-CdDMntiV.mjs → runOpenClaw-BBdjlViJ.mjs} +18 -18
  147. package/dist/{runOpenClaw-BoN1e3lP.cjs → runOpenClaw-CH_9_RyZ.cjs} +17 -17
  148. package/dist/{sandbox-BY2h19gc.cjs → sandbox-Bb5IMun3.cjs} +4 -4
  149. package/dist/{sandbox-DcaWB-Ou.mjs → sandbox-DGmXZ6Zz.mjs} +4 -4
  150. package/dist/selfCheck-BfK945YQ.mjs +86 -0
  151. package/dist/{selfCheck-DFS_GUaQ.cjs → selfCheck-CccwNTTK.cjs} +37 -37
  152. package/dist/{send-UBTHHNvZ.mjs → send-B6rHg8GT.mjs} +8 -8
  153. package/dist/{send-BMsUYU6g.cjs → send-BpiXPkDo.cjs} +8 -8
  154. package/dist/{server-Dt3mCtfQ.mjs → server-BkdAyHhC.mjs} +4 -4
  155. package/dist/{server-YrHMHNz1.cjs → server-DHUzjApC.cjs} +6 -6
  156. package/dist/{sessionLock-DSqiP2lH.cjs → sessionLock-BFBReiKq.cjs} +134 -3
  157. package/dist/{sessionLock-tEFvFXLD.mjs → sessionLock-Ca_bIo50.mjs} +121 -4
  158. package/dist/{sessionOps-CljctDs5.mjs → sessionOps-CA2kpm66.mjs} +13 -5
  159. package/dist/{sessionOps-BzeOKIEF.cjs → sessionOps-DeWVqpe4.cjs} +13 -4
  160. package/dist/{sessionProvider-ORgzmkXy.cjs → sessionProvider-VFbtUmMR.cjs} +5 -5
  161. package/dist/{sessionProvider-BnUFSJXM.mjs → sessionProvider-g18IiK74.mjs} +5 -5
  162. package/dist/{sessionScanner-Cr6PJ3PT.cjs → sessionScanner-CGzsN8V6.cjs} +3 -3
  163. package/dist/{sessionScanner-DZUlkdF6.mjs → sessionScanner-DDDud5re.mjs} +3 -3
  164. package/dist/{sessions-15cag-su.mjs → sessions-B4d50sCI.mjs} +35 -26
  165. package/dist/{sessions-aIo_HjmY.cjs → sessions-CKJPWFgu.cjs} +36 -25
  166. package/dist/{setupOfflineReconnection-B7I8R2Ex.mjs → setupOfflineReconnection-CyPNgyCe.mjs} +2 -2
  167. package/dist/{setupOfflineReconnection-tV0Q1dgR.cjs → setupOfflineReconnection-DPXRo_zf.cjs} +2 -2
  168. package/dist/{spawn-VG-HjJiR.cjs → spawn-CgSJzzWS.cjs} +13 -13
  169. package/dist/{spawn-ByrQgruJ.mjs → spawn-CrYN_OOT.mjs} +15 -15
  170. package/dist/{spawnAgents-Bh1RPShN.mjs → spawnAgents-DWCDYCQ1.mjs} +1 -1
  171. package/dist/{spawnHappyCLI-CxiR2Qoy.cjs → spawnHappyCLI-CTy3p6V_.cjs} +1 -1
  172. package/dist/{spawnHappyCLI-CEsXwz5V.mjs → spawnHappyCLI-DjbkiSH1.mjs} +1 -1
  173. package/dist/{startFileWatcher-C-XCZ5t2.cjs → startFileWatcher-BQs0cJA-.cjs} +1 -1
  174. package/dist/{startFileWatcher-DkEeeAtL.mjs → startFileWatcher-Dedtu1vq.mjs} +1 -1
  175. package/dist/{defaultPermissionMode-e2bIIJG4.mjs → startupSessionCreate-BKFU4v_h.mjs} +25 -6
  176. package/dist/{defaultPermissionMode-5EvgRq38.cjs → startupSessionCreate-Dxy3X4DG.cjs} +25 -7
  177. package/dist/{streamRelay-CqBynIon.mjs → streamRelay-P9e7Sohm.mjs} +1 -1
  178. package/dist/{sync-CoChLEIg.cjs → sync-DtWB7RzA.cjs} +1 -1
  179. package/dist/{sync-BvDMkKAN.mjs → sync-eZkXnsW_.mjs} +1 -1
  180. package/dist/{systemPrompt-Dy_Rf-0Z.cjs → systemPrompt-2XOpZ1j6.cjs} +1 -1
  181. package/dist/{systemPrompt-CgDaPigN.mjs → systemPrompt-Bn6g6aCH.mjs} +2 -2
  182. package/dist/{teams-DPvfLAk8.cjs → teams-ecFay4Gn.cjs} +6 -6
  183. package/dist/{teams-BC4_e5hR.mjs → teams-nadkqrbW.mjs} +7 -7
  184. package/dist/{template-CEK8MEjo.mjs → template-BiTD-jI9.mjs} +1 -1
  185. package/dist/{time-CUK37wiV.mjs → time-CN3TuSVG.mjs} +1 -1
  186. package/dist/{time-XwEZxKGc.cjs → time-gPD_EmA-.cjs} +1 -1
  187. package/dist/{titleGenerator-DWRVdqMU.mjs → titleGenerator-DgzTQdn2.mjs} +1 -1
  188. package/dist/{titleGenerator-DVX0NZUn.cjs → titleGenerator-lT5ldPuN.cjs} +2 -2
  189. package/dist/{todo-CKGrSrRE.cjs → todo-B1VeMk5A.cjs} +5 -5
  190. package/dist/{todo-BNMGXneA.mjs → todo-BIxd7l2Q.mjs} +6 -6
  191. package/dist/{tools-CjMafO_D.cjs → tools-DvqbLsCF.cjs} +1 -1
  192. package/dist/{tools-CCIEAVbB.mjs → tools-zXJpxiG_.mjs} +1 -1
  193. package/dist/{uninstall-CJvJ7gjr.mjs → uninstall-9htK6mb7.mjs} +3 -3
  194. package/dist/{uninstall-BdFbTXnL.cjs → uninstall-CvIOpwB5.cjs} +3 -3
  195. package/package.json +7 -7
  196. package/dist/agentAttachments-M_B5qEF2.mjs +0 -18
  197. package/dist/selfCheck-BQ_H2Sns.mjs +0 -86
  198. package/dist/startupSessionCreate-CYc8mra-.cjs +0 -26
  199. package/dist/startupSessionCreate-npXe2TdN.mjs +0 -24
@@ -1,30 +1,31 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var sessionOps = require('./sessionOps-BzeOKIEF.cjs');
4
+ var exitAfterFlush = require('./exitAfterFlush-DIT_sIxR.cjs');
5
+ var sessionOps = require('./sessionOps-DeWVqpe4.cjs');
5
6
  var ids = require('./ids-B6ZC0HGt.cjs');
6
- var peerTools = require('./peerTools-B4315xjX.cjs');
7
- var persistence = require('./persistence-CrzC7yr_.cjs');
7
+ var peerTools = require('./peerTools-5ZM4spcZ.cjs');
8
+ var persistence = require('./persistence-Bl5S3TLB.cjs');
8
9
  var path = require('node:path');
9
- var remoteSessionClient = require('./remoteSessionClient-Dq8XTLQP.cjs');
10
+ var remoteSessionClient = require('./remoteSessionClient-DGFI__5Z.cjs');
10
11
  require('axios');
11
- require('./configuration-C0ctLGW2.cjs');
12
+ require('./configuration-Dt5lKW3P.cjs');
12
13
  require('node:fs');
13
14
  require('node:os');
14
- require('./package-CYDdLA6R.cjs');
15
+ require('./package-DrY090nZ.cjs');
15
16
  require('node:fs/promises');
16
17
  require('./authRelay-Dy1qU9td.cjs');
17
18
  require('node:crypto');
18
19
  require('tweetnacl');
19
- require('./controlClient-F7hAEEy2.cjs');
20
- require('./logger-BP1SW7Cs.cjs');
20
+ require('./controlClient-BRk65BRO.cjs');
21
+ require('./logger-BBRTTVsQ.cjs');
21
22
  require('node:util');
22
- require('./time-XwEZxKGc.cjs');
23
+ require('./time-gPD_EmA-.cjs');
23
24
  require('./specialCommands-J3JFOq0J.cjs');
24
25
  require('socket.io-client');
25
26
  require('./backgroundTaskActivity-CBvUdj39.cjs');
26
27
  require('zod');
27
- require('./client-DIfxYk7B.cjs');
28
+ require('./client-CMKGrnmT.cjs');
28
29
 
29
30
  const MACHINE_ID_RE = /^[a-zA-Z0-9_-]{1,128}$/;
30
31
  const ACTIONS = ["list", "read", "stop", "archive", "approve", "deny", "peers", "message"];
@@ -187,6 +188,9 @@ ${chalk.bold("Actions:")}
187
188
  async sub-agents / backgrounded commands still running after
188
189
  the turn ended \u2014 such a session is NOT idle (absent = the
189
190
  daemon or CLI is too old to report it).
191
+ A forked session shows \`parent=<id>\` (\`parentSessionId\`,
192
+ plus \`forkedFromMessageId\` for a fork from a message, in
193
+ --json) in list, list --all and read.
190
194
  stop SIGTERM the session's process via the local daemon.
191
195
  archive Mark the session inactive server-side (it stays resumable).
192
196
  approve Answer a pending permission request \`requestId\` with approve \u2014
@@ -282,6 +286,7 @@ function formatAccountSummaryLine(summary) {
282
286
  if (summary.flavor) parts.push(`agent=${summary.flavor}`);
283
287
  if (summary.tags?.length) parts.push(`tags=${summary.tags.join(",")}`);
284
288
  if (summary.variant) parts.push(`variant=${summary.variant}`);
289
+ if (summary.parentSessionId) parts.push(`parent=${summary.parentSessionId}`);
285
290
  if (summary.machineId) parts.push(`machine=${summary.machineId}`);
286
291
  if (summary.cwd) parts.push(`cwd=${summary.cwd}`);
287
292
  if (summary.backgroundTasks && summary.backgroundTasks.count > 0) parts.push(formatBackgroundTasks(summary.backgroundTasks));
@@ -308,6 +313,7 @@ function formatSummaryLine(summary) {
308
313
  if (summary.flavor) parts.push(`agent=${summary.flavor}`);
309
314
  if (summary.tags?.length) parts.push(`tags=${summary.tags.join(",")}`);
310
315
  if (summary.variant) parts.push(`variant=${summary.variant}`);
316
+ if (summary.parentSessionId) parts.push(`parent=${summary.parentSessionId}`);
311
317
  if (summary.cwd) parts.push(`cwd=${summary.cwd}`);
312
318
  if (summary.pid !== void 0) parts.push(`pid=${summary.pid}`);
313
319
  if (summary.backgroundTasks && summary.backgroundTasks.count > 0) parts.push(formatBackgroundTasks(summary.backgroundTasks));
@@ -315,17 +321,20 @@ function formatSummaryLine(summary) {
315
321
  return parts.join(" ");
316
322
  }
317
323
  async function handleSessionsCommand(args) {
324
+ return exitAfterFlush.exitAfterFlush(await runSessionsCommand(args));
325
+ }
326
+ async function runSessionsCommand(args) {
318
327
  let options;
319
328
  try {
320
329
  options = parseSessionsArgs(args);
321
330
  } catch (error) {
322
331
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : String(error));
323
332
  console.error(`Run ${chalk.cyan("very-happy sessions --help")} for usage.`);
324
- process.exit(1);
333
+ return 1;
325
334
  }
326
335
  if (options.action === "help") {
327
336
  console.log(SESSIONS_HELP);
328
- process.exit(0);
337
+ return 0;
329
338
  }
330
339
  try {
331
340
  if (options.action === "list" && options.all) {
@@ -356,7 +365,7 @@ async function handleSessionsCommand(args) {
356
365
  console.log(chalk.dim(`${foreign} session(s) belong to a machine that is not reachable right now${why}.`));
357
366
  }
358
367
  }
359
- process.exit(0);
368
+ return 0;
360
369
  }
361
370
  if (options.action === "list" && options.machine) {
362
371
  const listing = await remoteSessionClient.listRemoteSessions(options.machine, { tag: options.tag, limit: options.limit });
@@ -369,7 +378,7 @@ async function handleSessionsCommand(args) {
369
378
  console.log(chalk.dim(`machine ${listing.host} (${listing.machineId})`));
370
379
  for (const summary of sessions) console.log(formatSummaryLine(summary));
371
380
  }
372
- process.exit(0);
381
+ return 0;
373
382
  }
374
383
  if (options.action === "list") {
375
384
  const sessions = await sessionOps.listSessions({ tag: options.tag, recentLimit: options.limit });
@@ -380,7 +389,7 @@ async function handleSessionsCommand(args) {
380
389
  } else {
381
390
  for (const summary of sessions) console.log(formatSummaryLine(summary));
382
391
  }
383
- process.exit(0);
392
+ return 0;
384
393
  }
385
394
  if (options.action === "peers" || options.action === "message") {
386
395
  const cwd = options.cwd ? path.resolve(options.cwd) : process.cwd();
@@ -393,7 +402,7 @@ async function handleSessionsCommand(args) {
393
402
  else if (!listing.project) console.log(`Not in a project (${self.sessionId}).`);
394
403
  else if (listing.peers.length === 0) console.log(`No other sessions in project "${listing.project.name}".`);
395
404
  else for (const peer of listing.peers) console.log([peer.sessionId, `[${peer.state ?? "?"}]`, peer.title ? `title="${peer.title}"` : "", peer.agent ? `agent=${peer.agent}` : "", peer.machine ? `machine=${peer.machine}` : "", peer.doing ? `doing="${peer.doing}"` : "", peer.url].filter(Boolean).join(" "));
396
- process.exit(0);
405
+ return 0;
397
406
  }
398
407
  if (options.action === "peers") {
399
408
  const scope = options.scope === "project" ? void 0 : options.scope;
@@ -414,7 +423,7 @@ async function handleSessionsCommand(args) {
414
423
  for (const edit of peer.edits) console.log(chalk.dim(` ${edit.tool} ${edit.path} (${Math.round((Date.now() - edit.at) / 6e4)}m ago)`));
415
424
  }
416
425
  }
417
- process.exit(0);
426
+ return 0;
418
427
  }
419
428
  const target = options.sessionId;
420
429
  try {
@@ -425,7 +434,7 @@ ${result.url}`);
425
434
  else if (result.status === "offline-stored") console.log(`Message ${result.messageId} ${result.note ?? "stored"} (${target} is not running; same project)
426
435
  ${result.url}`);
427
436
  else console.error(chalk.yellow("Not delivered:"), result.error ?? `session is ${result.status}`, result.stored ? "(stored server-side, unread)" : "");
428
- process.exit(peerMessageExitCode(result));
437
+ return peerMessageExitCode(result);
429
438
  } catch (error) {
430
439
  if (options.json) console.log(JSON.stringify({ delivered: false, to: target, error: error instanceof Error ? error.message : String(error) }));
431
440
  throw error;
@@ -476,18 +485,18 @@ ${result.url}`);
476
485
  const turn = result.turn;
477
486
  console.log(chalk.dim(`--- latest turn: ${turn.ended ? `ended (${turn.status ?? "unknown"})` : "running"}${turn.error ? ` \u2014 ${turn.error}` : ""} ---`));
478
487
  }
479
- process.exit(timedOut ? 2 : 0);
488
+ return timedOut ? 2 : 0;
480
489
  }
481
490
  if (options.action === "stop") {
482
491
  const stopped = await sessionOps.stopSession(sessionId);
483
492
  if (!stopped) {
484
493
  if (options.json) console.log(JSON.stringify({ sessionId, stopped: false }));
485
494
  console.error(chalk.red("Error:"), `Session ${sessionId} is not among the daemon's running sessions.`);
486
- process.exit(1);
495
+ return 1;
487
496
  }
488
497
  if (options.json) console.log(JSON.stringify({ sessionId, stopped: true }));
489
498
  else console.log(`Stopped ${sessionId}`);
490
- process.exit(0);
499
+ return 0;
491
500
  }
492
501
  if (options.action === "approve" || options.action === "deny") {
493
502
  const requestId = options.requestId;
@@ -509,7 +518,7 @@ ${result.url}`);
509
518
  if (options.json) console.log(JSON.stringify(result));
510
519
  const hint = result.outcome.status === "rate-limited" ? ` \u2014 the request is still pending; re-run in ~${Math.ceil(result.outcome.retryAfterMs / 1e3)}s` : "";
511
520
  console.error(chalk.red("Error:"), `${options.action} of ${requestId} on ${sessionId} was not delivered (${result.outcome.status}): ${result.outcome.message}${hint}`);
512
- process.exit(1);
521
+ return 1;
513
522
  }
514
523
  if (options.json) {
515
524
  console.log(JSON.stringify(result));
@@ -517,19 +526,21 @@ ${result.url}`);
517
526
  const verb = options.action === "approve" ? "Approved" : "Denied";
518
527
  console.log(`${verb} ${requestId} on ${sessionId} (${result.payload.decision})${result.settled ? "" : " \u2014 wrapper acknowledged, but the request was still listed as pending when we stopped waiting"}`);
519
528
  }
520
- process.exit(0);
529
+ return 0;
521
530
  }
522
531
  await sessionOps.archiveSession(sessionId);
523
532
  if (options.json) console.log(JSON.stringify({ sessionId, archived: true }));
524
533
  else console.log(`Archived ${sessionId}`);
525
- process.exit(0);
534
+ return 0;
526
535
  } catch (error) {
527
536
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : String(error));
528
- process.exit(1);
537
+ return 1;
529
538
  }
530
539
  }
531
540
 
532
541
  exports.SESSIONS_HELP = SESSIONS_HELP;
542
+ exports.formatAccountSummaryLine = formatAccountSummaryLine;
543
+ exports.formatSummaryLine = formatSummaryLine;
533
544
  exports.handleSessionsCommand = handleSessionsCommand;
534
545
  exports.parseSessionsArgs = parseSessionsArgs;
535
546
  exports.peerMessageExitCode = peerMessageExitCode;
@@ -1,5 +1,5 @@
1
- import { c as configuration } from './configuration-1FabKklB.mjs';
2
- import { s as startOfflineReconnection } from './api-B0yN68XH.mjs';
1
+ import { c as configuration } from './configuration-Dechcvd-.mjs';
2
+ import { s as startOfflineReconnection } from './api-Dw8gFsQi.mjs';
3
3
 
4
4
  function createOfflineSessionStub(sessionTag) {
5
5
  return {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var configuration = require('./configuration-C0ctLGW2.cjs');
4
- var api = require('./api-BDuuyys8.cjs');
3
+ var configuration = require('./configuration-Dt5lKW3P.cjs');
4
+ var api = require('./api-CXL6jp-p.cjs');
5
5
 
6
6
  function createOfflineSessionStub(sessionTag) {
7
7
  return {
@@ -1,21 +1,21 @@
1
1
  'use strict';
2
2
 
3
3
  var spawnAgents = require('./spawnAgents-C1-4m7aN.cjs');
4
- var client = require('./client-DIfxYk7B.cjs');
4
+ var client = require('./client-CMKGrnmT.cjs');
5
5
  var chalk = require('chalk');
6
6
  var node_fs = require('node:fs');
7
7
  var path$1 = require('node:path');
8
- var controlClient = require('./controlClient-F7hAEEy2.cjs');
9
- var persistence = require('./persistence-CrzC7yr_.cjs');
8
+ var controlClient = require('./controlClient-BRk65BRO.cjs');
9
+ var persistence = require('./persistence-Bl5S3TLB.cjs');
10
10
  var index = require('./index-BOe6dKnL.cjs');
11
- var configuration = require('./configuration-C0ctLGW2.cjs');
11
+ var configuration = require('./configuration-Dt5lKW3P.cjs');
12
12
  var path = require('./path-B7zW-WwE.cjs');
13
- var claudeSessionFork = require('./claudeSessionFork-DsbcuDEJ.cjs');
14
- var codexAppServerClient = require('./codexAppServerClient-CO9f4Jr8.cjs');
15
- var codexThreadFork = require('./codexThreadFork-DNekT4nQ.cjs');
16
- var sessionOps = require('./sessionOps-BzeOKIEF.cjs');
17
- var createSessionMetadata = require('./createSessionMetadata-DezS33OM.cjs');
18
- var logger = require('./logger-BP1SW7Cs.cjs');
13
+ var claudeSessionFork = require('./claudeSessionFork-DTLZ2rek.cjs');
14
+ var codexAppServerClient = require('./codexAppServerClient-CpT9F6EM.cjs');
15
+ var codexThreadFork = require('./codexThreadFork-5kwoKjMu.cjs');
16
+ var sessionOps = require('./sessionOps-DeWVqpe4.cjs');
17
+ var createSessionMetadata = require('./createSessionMetadata-B_HZCDj_.cjs');
18
+ var logger = require('./logger-BBRTTVsQ.cjs');
19
19
  var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
20
20
  require('node:fs/promises');
21
21
  require('zod');
@@ -24,17 +24,17 @@ require('node:crypto');
24
24
  require('tweetnacl');
25
25
  require('@paralleldrive/cuid2');
26
26
  require('node:os');
27
- require('./package-CYDdLA6R.cjs');
27
+ require('./package-DrY090nZ.cjs');
28
28
  require('node:readline');
29
29
  require('node:child_process');
30
30
  require('cross-spawn');
31
31
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
32
32
  require('./manager-HrEj442o.cjs');
33
33
  require('@anthropic-ai/sandbox-runtime');
34
- require('./rateLimitWindows-Cs56YJCH.cjs');
34
+ require('./rateLimitWindows-Bx3ROBP5.cjs');
35
35
  require('./processTree-CMHWlVse.cjs');
36
36
  require('axios');
37
- require('./time-XwEZxKGc.cjs');
37
+ require('./time-gPD_EmA-.cjs');
38
38
  require('./specialCommands-J3JFOq0J.cjs');
39
39
  require('socket.io-client');
40
40
  require('./backgroundTaskActivity-CBvUdj39.cjs');
@@ -1,19 +1,19 @@
1
- import { r as resolveSpawnPermissionMode, c as chooseProject, j as joinProject, a as resolveFirstMessageMeta, w as waitsForModelCatalog, s as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES, S as SPAWN_AGENTS } from './spawnAgents-Bh1RPShN.mjs';
2
- import { s as sharedProjectsClient } from './client-B161HwAk.mjs';
1
+ import { r as resolveSpawnPermissionMode, c as chooseProject, j as joinProject, a as resolveFirstMessageMeta, w as waitsForModelCatalog, s as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES, S as SPAWN_AGENTS } from './spawnAgents-DWCDYCQ1.mjs';
2
+ import { s as sharedProjectsClient } from './client-CnGNYidN.mjs';
3
3
  import chalk from 'chalk';
4
4
  import { readFileSync, statSync } from 'node:fs';
5
5
  import { resolve } from 'node:path';
6
- import { b as checkIfDaemonRunningAndCleanupStaleState, g as spawnDaemonSession, f as stopDaemonSession } from './controlClient-DwNnNAUx.mjs';
7
- import { c as readPersistedSessions } from './persistence-0INrP3aB.mjs';
8
- import { p as parseLatestModelTable } from './index-WKyN-bNy.mjs';
9
- import { c as configuration } from './configuration-1FabKklB.mjs';
6
+ import { b as checkIfDaemonRunningAndCleanupStaleState, g as spawnDaemonSession, f as stopDaemonSession } from './controlClient-D7NGfmtq.mjs';
7
+ import { c as readPersistedSessions } from './persistence-Dogj7JIp.mjs';
8
+ import { p as parseLatestModelTable } from './index-DmqsRnV7.mjs';
9
+ import { c as configuration } from './configuration-Dechcvd-.mjs';
10
10
  import { g as getProjectPath } from './path-D2wdaNSk.mjs';
11
- import { f as forkSession, F as ForkSourceMissingError } from './claudeSessionFork-DzecSBO4.mjs';
12
- import { C as CodexAppServerClient } from './codexAppServerClient-BlVmpjR-.mjs';
13
- import { f as forkCodexThread } from './codexThreadFork-R76RU5H0.mjs';
14
- import { e as sendUserMessage, f as readSessionMetadata, g as waitForSessionKey, s as sessionWebUrl } from './sessionOps-CljctDs5.mjs';
15
- import { i as isValidSpawnOrigin } from './createSessionMetadata-CG6Klinp.mjs';
16
- import { l as logger } from './logger-DOKH3Zbh.mjs';
11
+ import { f as forkSession, F as ForkSourceMissingError } from './claudeSessionFork-D2GI7P59.mjs';
12
+ import { C as CodexAppServerClient } from './codexAppServerClient-CLc5nhLT.mjs';
13
+ import { f as forkCodexThread } from './codexThreadFork-DobPd19R.mjs';
14
+ import { e as sendUserMessage, f as readSessionMetadata, g as waitForSessionKey, s as sessionWebUrl } from './sessionOps-CA2kpm66.mjs';
15
+ import { i as isValidSpawnOrigin } from './createSessionMetadata-DyhFKAby.mjs';
16
+ import { l as logger } from './logger-CL7pin9b.mjs';
17
17
  import { w as waitForForkBackfill } from './forkBackfill-DYIjlN1Z.mjs';
18
18
  import 'node:fs/promises';
19
19
  import 'zod';
@@ -22,17 +22,17 @@ import 'node:crypto';
22
22
  import 'tweetnacl';
23
23
  import '@paralleldrive/cuid2';
24
24
  import 'node:os';
25
- import './package-DTcaIhjW.mjs';
25
+ import './package-C6uiXULx.mjs';
26
26
  import 'node:readline';
27
27
  import 'node:child_process';
28
28
  import 'cross-spawn';
29
29
  import './contentLogMetadata-BlWI0egu.mjs';
30
30
  import './manager-BEsI4qt3.mjs';
31
31
  import '@anthropic-ai/sandbox-runtime';
32
- import './rateLimitWindows-5vIuNjko.mjs';
32
+ import './rateLimitWindows-CEn0DXaX.mjs';
33
33
  import './processTree-CP5IvQ2Z.mjs';
34
34
  import 'axios';
35
- import './time-CUK37wiV.mjs';
35
+ import './time-CN3TuSVG.mjs';
36
36
  import './specialCommands-MXUN0wfI.mjs';
37
37
  import 'socket.io-client';
38
38
  import './backgroundTaskActivity-8PdPxrvy.mjs';
@@ -1,4 +1,4 @@
1
- import { k as getAgentCodeDefaults, l as isLatestModelMode, m as resolveLatestModel, n as normalizeAgentKey } from './index-WKyN-bNy.mjs';
1
+ import { k as getAgentCodeDefaults, l as isLatestModelMode, m as resolveLatestModel, n as normalizeAgentKey } from './index-DmqsRnV7.mjs';
2
2
 
3
3
  function chooseProject(opts) {
4
4
  if (opts.project) return { kind: "explicit", projectId: opts.project };
@@ -3,7 +3,7 @@
3
3
  var spawn = require('cross-spawn');
4
4
  var path = require('node:path');
5
5
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
6
- var logger = require('./logger-BP1SW7Cs.cjs');
6
+ var logger = require('./logger-BBRTTVsQ.cjs');
7
7
  var node_fs = require('node:fs');
8
8
 
9
9
  let cachedRuntime = null;
@@ -1,7 +1,7 @@
1
1
  import { spawn } from 'cross-spawn';
2
2
  import { join } from 'node:path';
3
3
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
4
- import { l as logger } from './logger-DOKH3Zbh.mjs';
4
+ import { l as logger } from './logger-CL7pin9b.mjs';
5
5
  import { existsSync } from 'node:fs';
6
6
 
7
7
  let cachedRuntime = null;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-BP1SW7Cs.cjs');
3
+ var logger = require('./logger-BBRTTVsQ.cjs');
4
4
  var fs = require('fs/promises');
5
5
 
6
6
  function startFileWatcher(file, onFileChange, options = {}) {
@@ -1,4 +1,4 @@
1
- import { l as logger } from './logger-DOKH3Zbh.mjs';
1
+ import { l as logger } from './logger-CL7pin9b.mjs';
2
2
  import { watch } from 'fs/promises';
3
3
 
4
4
  function startFileWatcher(file, onFileChange, options = {}) {
@@ -1,5 +1,6 @@
1
- import { l as logger } from './logger-DOKH3Zbh.mjs';
2
- import { e as evaluateWrapperIdle, j as HIBERNATION_UNSUPPORTED_BACKOFF_MS } from './persistence-0INrP3aB.mjs';
1
+ import { l as logger } from './logger-CL7pin9b.mjs';
2
+ import { e as evaluateWrapperIdle, j as isQuiescent, k as HIBERNATION_UNSUPPORTED_BACKOFF_MS } from './persistence-Dogj7JIp.mjs';
3
+ import { c as connectionState } from './api-Dw8gFsQi.mjs';
3
4
 
4
5
  const PRESENCE_SETTLE_MS = 6e3;
5
6
  async function commitHibernation(deps) {
@@ -110,7 +111,7 @@ class HibernationProbe {
110
111
  const now = (this.deps.now ?? Date.now)();
111
112
  const snapshot = this.deps.snapshot();
112
113
  const local = evaluateWrapperIdle(snapshot, 1, now);
113
- if (!local.ok && local.reason !== "keep-awake") {
114
+ if (!local.ok && local.reason !== "keep-awake" && !isQuiescent(snapshot)) {
114
115
  this.schedule(this.deps.checkMs);
115
116
  return this.deps.checkMs;
116
117
  }
@@ -185,7 +186,25 @@ class HibernationExitLatch {
185
186
  }
186
187
  }
187
188
 
188
- const DEFAULT_CLAUDE_PERMISSION_MODE = "default";
189
- const DEFAULT_CODEX_PERMISSION_MODE = "default";
189
+ const DAEMON_SESSION_CREATE_RETRY_DELAYS_MS = [500, 1e3, 2e3, 3e3];
190
+ class SessionStartupError extends Error {
191
+ constructor(message) {
192
+ super(message);
193
+ this.name = "SessionStartupError";
194
+ }
195
+ }
196
+ async function createSessionForStartup(create, opts) {
197
+ if (opts.startedBy !== "daemon") return create();
198
+ const delays = opts.delaysMs ?? DAEMON_SESSION_CREATE_RETRY_DELAYS_MS;
199
+ const sleep = opts.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
200
+ for (let attempt = 0; ; attempt++) {
201
+ const session = await create();
202
+ if (session) return session;
203
+ if (attempt >= delays.length) break;
204
+ opts.log?.(`[START] Session create attempt ${attempt + 1} failed (${connectionState.describe("Session creation") ?? "server unavailable"}); retrying in ${delays[attempt]}ms`);
205
+ await sleep(delays[attempt]);
206
+ }
207
+ throw new SessionStartupError(`Could not create the session on the server after ${delays.length + 1} attempts: ${connectionState.describe("Session creation") ?? "server unavailable"}`);
208
+ }
190
209
 
191
- export { DEFAULT_CLAUDE_PERMISSION_MODE as D, HibernationProbe as H, HibernationExitLatch as a, DEFAULT_CODEX_PERMISSION_MODE as b, commitHibernation as c };
210
+ export { HibernationProbe as H, commitHibernation as a, HibernationExitLatch as b, createSessionForStartup as c };
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-BP1SW7Cs.cjs');
4
- var persistence = require('./persistence-CrzC7yr_.cjs');
3
+ var logger = require('./logger-BBRTTVsQ.cjs');
4
+ var persistence = require('./persistence-Bl5S3TLB.cjs');
5
+ var api = require('./api-CXL6jp-p.cjs');
5
6
 
6
7
  const PRESENCE_SETTLE_MS = 6e3;
7
8
  async function commitHibernation(deps) {
@@ -112,7 +113,7 @@ class HibernationProbe {
112
113
  const now = (this.deps.now ?? Date.now)();
113
114
  const snapshot = this.deps.snapshot();
114
115
  const local = persistence.evaluateWrapperIdle(snapshot, 1, now);
115
- if (!local.ok && local.reason !== "keep-awake") {
116
+ if (!local.ok && local.reason !== "keep-awake" && !persistence.isQuiescent(snapshot)) {
116
117
  this.schedule(this.deps.checkMs);
117
118
  return this.deps.checkMs;
118
119
  }
@@ -187,11 +188,28 @@ class HibernationExitLatch {
187
188
  }
188
189
  }
189
190
 
190
- const DEFAULT_CLAUDE_PERMISSION_MODE = "default";
191
- const DEFAULT_CODEX_PERMISSION_MODE = "default";
191
+ const DAEMON_SESSION_CREATE_RETRY_DELAYS_MS = [500, 1e3, 2e3, 3e3];
192
+ class SessionStartupError extends Error {
193
+ constructor(message) {
194
+ super(message);
195
+ this.name = "SessionStartupError";
196
+ }
197
+ }
198
+ async function createSessionForStartup(create, opts) {
199
+ if (opts.startedBy !== "daemon") return create();
200
+ const delays = opts.delaysMs ?? DAEMON_SESSION_CREATE_RETRY_DELAYS_MS;
201
+ const sleep = opts.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
202
+ for (let attempt = 0; ; attempt++) {
203
+ const session = await create();
204
+ if (session) return session;
205
+ if (attempt >= delays.length) break;
206
+ opts.log?.(`[START] Session create attempt ${attempt + 1} failed (${api.connectionState.describe("Session creation") ?? "server unavailable"}); retrying in ${delays[attempt]}ms`);
207
+ await sleep(delays[attempt]);
208
+ }
209
+ throw new SessionStartupError(`Could not create the session on the server after ${delays.length + 1} attempts: ${api.connectionState.describe("Session creation") ?? "server unavailable"}`);
210
+ }
192
211
 
193
- exports.DEFAULT_CLAUDE_PERMISSION_MODE = DEFAULT_CLAUDE_PERMISSION_MODE;
194
- exports.DEFAULT_CODEX_PERMISSION_MODE = DEFAULT_CODEX_PERMISSION_MODE;
195
212
  exports.HibernationExitLatch = HibernationExitLatch;
196
213
  exports.HibernationProbe = HibernationProbe;
197
214
  exports.commitHibernation = commitHibernation;
215
+ exports.createSessionForStartup = createSessionForStartup;
@@ -1,4 +1,4 @@
1
- import { S as STREAM_DELTA_MAX_CHARS } from './index-WKyN-bNy.mjs';
1
+ import { S as STREAM_DELTA_MAX_CHARS } from './index-DmqsRnV7.mjs';
2
2
 
3
3
  const STREAM_FLUSH_MS = 80;
4
4
  const PROGRESS_FLUSH_MS = 250;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var time = require('./time-XwEZxKGc.cjs');
3
+ var time = require('./time-gPD_EmA-.cjs');
4
4
 
5
5
  class InvalidateSync {
6
6
  _invalidated = false;
@@ -1,4 +1,4 @@
1
- import { b as backoff } from './time-CUK37wiV.mjs';
1
+ import { b as backoff } from './time-CN3TuSVG.mjs';
2
2
 
3
3
  class InvalidateSync {
4
4
  _invalidated = false;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-BP1SW7Cs.cjs');
3
+ var logger = require('./logger-BBRTTVsQ.cjs');
4
4
  var node_fs = require('node:fs');
5
5
  var path$1 = require('node:path');
6
6
  var path = require('./path-B7zW-WwE.cjs');
@@ -1,8 +1,8 @@
1
- import { l as logger } from './logger-DOKH3Zbh.mjs';
1
+ import { l as logger } from './logger-CL7pin9b.mjs';
2
2
  import { existsSync, readFileSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
4
  import { g as getProjectPath } from './path-D2wdaNSk.mjs';
5
- import { j as BUILTIN_TODO_DISCOVERY } from './index-WKyN-bNy.mjs';
5
+ import { j as BUILTIN_TODO_DISCOVERY } from './index-DmqsRnV7.mjs';
6
6
  import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
7
7
  import { homedir } from 'node:os';
8
8
  import { A as AGENT_GUIDANCE } from './agentGuidance-BDYt2Qy2.mjs';
@@ -4,21 +4,21 @@ var os = require('node:os');
4
4
  var promises = require('node:fs/promises');
5
5
  var z = require('zod');
6
6
  var node_crypto = require('node:crypto');
7
- var client = require('./client-BNmFaRXZ.cjs');
8
- var persistence = require('./persistence-CrzC7yr_.cjs');
7
+ var client = require('./client-CARZ_lNS.cjs');
8
+ var persistence = require('./persistence-Bl5S3TLB.cjs');
9
9
  var install = require('./install-BOHlqewf.cjs');
10
10
  require('node:child_process');
11
11
  require('node:util');
12
12
  require('node:path');
13
13
  require('./index-BOe6dKnL.cjs');
14
14
  require('@paralleldrive/cuid2');
15
- require('./configuration-C0ctLGW2.cjs');
15
+ require('./configuration-Dt5lKW3P.cjs');
16
16
  require('node:fs');
17
- require('./package-CYDdLA6R.cjs');
18
- require('./context-D-hEk5pC.cjs');
17
+ require('./package-DrY090nZ.cjs');
18
+ require('./context-BdZssgF0.cjs');
19
19
  require('./authRelay-Dy1qU9td.cjs');
20
20
  require('tweetnacl');
21
- require('./logger-BP1SW7Cs.cjs');
21
+ require('./logger-BBRTTVsQ.cjs');
22
22
  require('chalk');
23
23
  require('./resources-BZ_Be0qM.cjs');
24
24
 
@@ -2,21 +2,21 @@ import { homedir } from 'node:os';
2
2
  import { readFile } from 'node:fs/promises';
3
3
  import { z } from 'zod';
4
4
  import { randomUUID } from 'node:crypto';
5
- import { t as teamRequest, c as createTeamsClient } from './client-C9Ecbtko.mjs';
6
- import { b as readCredentialsForConfiguredRelay } from './persistence-0INrP3aB.mjs';
5
+ import { t as teamRequest, c as createTeamsClient } from './client-CtL0Vtww.mjs';
6
+ import { b as readCredentialsForConfiguredRelay } from './persistence-Dogj7JIp.mjs';
7
7
  import { a as installTeamSkill, i as installAutomationSkill } from './install-B8O1JpJH.mjs';
8
8
  import 'node:child_process';
9
9
  import 'node:util';
10
10
  import 'node:path';
11
- import './index-WKyN-bNy.mjs';
11
+ import './index-DmqsRnV7.mjs';
12
12
  import '@paralleldrive/cuid2';
13
- import './configuration-1FabKklB.mjs';
13
+ import './configuration-Dechcvd-.mjs';
14
14
  import 'node:fs';
15
- import './package-DTcaIhjW.mjs';
16
- import './context-BgxbXWKS.mjs';
15
+ import './package-C6uiXULx.mjs';
16
+ import './context-C9JbJoNe.mjs';
17
17
  import './authRelay-DhQhkBvX.mjs';
18
18
  import 'tweetnacl';
19
- import './logger-DOKH3Zbh.mjs';
19
+ import './logger-CL7pin9b.mjs';
20
20
  import 'chalk';
21
21
  import './resources-CLP_MpK4.mjs';
22
22
 
@@ -1,4 +1,4 @@
1
- import { d as AUTOMATION_ATTENTION_REASON_MAX_CHARS, e as AUTOMATION_SUMMARY_MAX_CHARS } from './index-WKyN-bNy.mjs';
1
+ import { d as AUTOMATION_ATTENTION_REASON_MAX_CHARS, e as AUTOMATION_SUMMARY_MAX_CHARS } from './index-DmqsRnV7.mjs';
2
2
 
3
3
  function payloadJson(payload) {
4
4
  if (!payload) return void 0;
@@ -1,4 +1,4 @@
1
- import { l as logger } from './logger-DOKH3Zbh.mjs';
1
+ import { l as logger } from './logger-CL7pin9b.mjs';
2
2
 
3
3
  async function delay(ms) {
4
4
  return new Promise((resolve) => setTimeout(resolve, ms));
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-BP1SW7Cs.cjs');
3
+ var logger = require('./logger-BBRTTVsQ.cjs');
4
4
 
5
5
  async function delay(ms) {
6
6
  return new Promise((resolve) => setTimeout(resolve, ms));
@@ -3,7 +3,7 @@ import { createRequire } from 'node:module';
3
3
  import { T as TITLE_PROMPT_PREFIX } from './oneShotPrompts-DT4p6RNd.mjs';
4
4
  import { randomUUID } from 'node:crypto';
5
5
  import { resolve, join } from 'node:path';
6
- import { l as logger } from './logger-DOKH3Zbh.mjs';
6
+ import { l as logger } from './logger-CL7pin9b.mjs';
7
7
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
8
8
 
9
9
  const MAX_PROMPT_SAMPLE_CHARS = 500;
@@ -5,7 +5,7 @@ var module$1 = require('node:module');
5
5
  var oneShotPrompts = require('./oneShotPrompts-CL0dip9C.cjs');
6
6
  var node_crypto = require('node:crypto');
7
7
  var path = require('node:path');
8
- var logger = require('./logger-BP1SW7Cs.cjs');
8
+ var logger = require('./logger-BBRTTVsQ.cjs');
9
9
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
10
10
 
11
11
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
@@ -13,7 +13,7 @@ const MAX_PROMPT_SAMPLE_CHARS = 500;
13
13
  const MAX_TITLE_CHARS = 60;
14
14
  const GENERATION_TIMEOUT_MS = 3e4;
15
15
  function loadClaudeVersionUtils() {
16
- const require$1 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('titleGenerator-DVX0NZUn.cjs', document.baseURI).href)));
16
+ const require$1 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('titleGenerator-lT5ldPuN.cjs', document.baseURI).href)));
17
17
  return require$1(path.resolve(path.join(projectPath.projectPath(), "scripts", "claude_version_utils.cjs")));
18
18
  }
19
19
  function resolveClaudeBinary(loadUtils = loadClaudeVersionUtils) {