very-happy-cli 0.2.179 → 0.2.180

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 (204) hide show
  1. package/dist/{AcpBackend-CHp3y7cb.mjs → AcpBackend-B8Zi30Zh.mjs} +3 -3
  2. package/dist/{AcpBackend-DFipFF7-.cjs → AcpBackend-DfRDtMcG.cjs} +3 -3
  3. package/dist/{AcpSessionManager-0zpvRJXc.cjs → AcpSessionManager-CASKOnOj.cjs} +1 -1
  4. package/dist/{AcpSessionManager-d2-rKWWa.mjs → AcpSessionManager-i8Rab0xT.mjs} +1 -1
  5. package/dist/{BasePermissionHandler-DdZBYIR4.mjs → BasePermissionHandler-26fKbRCm.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-CH3zuEkA.cjs → BasePermissionHandler-BlM_tfej.cjs} +1 -1
  7. package/dist/{acpSessionResume-DTGmAPLt.mjs → acpSessionResume-B9l54P-X.mjs} +1 -1
  8. package/dist/{acpSessionResume-oiCBnAVA.cjs → acpSessionResume-CR5pmgVo.cjs} +1 -1
  9. package/dist/{agentHome-BWcz8mz0.cjs → agentHome-C7Sb7-Tz.cjs} +4 -4
  10. package/dist/{agentHome-CghLvL_1.mjs → agentHome-CmGy0NWv.mjs} +4 -4
  11. package/dist/{api-Cmjfr8Z7.cjs → api-DM7b1OKj.cjs} +20 -12
  12. package/dist/{api-CzwFpJQc.mjs → api-Hov8p7CA.mjs} +21 -13
  13. package/dist/{apiMachine-DJkTEiqy.mjs → apiMachine-CwGEhQDT.mjs} +33 -14
  14. package/dist/{apiMachine-G6OogT08.cjs → apiMachine-DkGRj-Ai.cjs} +35 -16
  15. package/dist/{attachmentContent-Bo0UAsSu.cjs → attachmentContent-CEm13_gF.cjs} +2 -2
  16. package/dist/{attachmentContent-B2os4HbA.mjs → attachmentContent-CIn4iPEk.mjs} +2 -2
  17. package/dist/{auth-BS6PaOOG.mjs → auth-BG1DY0gj.mjs} +5 -5
  18. package/dist/{auth-D6bBUwZa.cjs → auth-CBXnm-Mj.cjs} +5 -5
  19. package/dist/{auth-HEhRaNgL.cjs → auth-Dawj7pP5.cjs} +8 -8
  20. package/dist/{auth-DMX0xPNK.mjs → auth-rggxMpEE.mjs} +8 -8
  21. package/dist/{auto-Cl1SEDcD.mjs → auto-CXXLXGeL.mjs} +17 -17
  22. package/dist/{auto-C6I55iOh.cjs → auto-CbYOfoPS.cjs} +17 -17
  23. package/dist/{backgroundTaskActivity-BVwJBl02.mjs → backgroundTaskActivity-8PdPxrvy.mjs} +1 -1
  24. package/dist/{bootstrap-exVucYav.cjs → bootstrap-DoA7okld.cjs} +2 -2
  25. package/dist/{bootstrap-iuyufnp3.mjs → bootstrap-Dt5I1SOl.mjs} +2 -2
  26. package/dist/{browser-CSYum7xH.mjs → browser-DUNetFT4.mjs} +1 -1
  27. package/dist/{browser-BohJK12g.cjs → browser-DZ6qRtfH.cjs} +1 -1
  28. package/dist/{claudeCliPath-U4HHmV4r.cjs → claudeCliPath-GaP3UUz1.cjs} +1 -1
  29. package/dist/{claudeLocal-re4yjSTx.cjs → claudeLocal--DNyMOSv.cjs} +7 -7
  30. package/dist/{claudeLocal-Dq_R3Ax_.mjs → claudeLocal-OHWQigCl.mjs} +5 -5
  31. package/dist/{claudeLocalLauncher-CN67lN7-.mjs → claudeLocalLauncher-BStvfa7M.mjs} +10 -10
  32. package/dist/{claudeLocalLauncher-B4hJHpCA.cjs → claudeLocalLauncher-BhvPbcyH.cjs} +12 -12
  33. package/dist/{claudeSessionFork-DiSMYerV.cjs → claudeSessionFork-Be16vzGc.cjs} +1 -1
  34. package/dist/{claudeSessionFork-BihfD0Ik.mjs → claudeSessionFork-GAVWhiKG.mjs} +1 -1
  35. package/dist/{client-CuVdN6PP.cjs → client-BWjaHKtj.cjs} +2 -2
  36. package/dist/{client-BhoEBnuN.mjs → client-Ca5Pcgy_.mjs} +2 -2
  37. package/dist/{client-wo9nbxuf.mjs → client-CnB7kRCT.mjs} +2 -2
  38. package/dist/{client-DuTDwWSQ.mjs → client-D4uPb1uu.mjs} +3 -3
  39. package/dist/{client-ZjOsn6nZ.cjs → client-DJplzPjD.cjs} +2 -2
  40. package/dist/{client-BKcK1Bi-.cjs → client-D_loZ9IK.cjs} +3 -3
  41. package/dist/codex/happyMcpStdioBridge.cjs +16 -16
  42. package/dist/codex/happyMcpStdioBridge.mjs +17 -17
  43. package/dist/{codexAppServerClient-BK3zra_1.mjs → codexAppServerClient-CO4G6OS4.mjs} +3 -3
  44. package/dist/{codexAppServerClient-Dt5zxrun.cjs → codexAppServerClient-PE-12AsW.cjs} +3 -3
  45. package/dist/{codexCommand-CAZ1SLjg.cjs → codexCommand-BNoD1t1C.cjs} +80 -74
  46. package/dist/{codexCommand-B6pY7CMh.mjs → codexCommand-B_xUH79E.mjs} +54 -48
  47. package/dist/{codexTermination-DmGbHxcD.cjs → codexTermination-BmBbizFK.cjs} +7 -2
  48. package/dist/{codexTermination-Cd1Eon_4.mjs → codexTermination-Dx48ma6e.mjs} +7 -2
  49. package/dist/{config-B0uK6K7n.cjs → config-CtwEUxUP.cjs} +26 -26
  50. package/dist/{config-2oMG_fEI.mjs → config-DSu0Blos.mjs} +3 -3
  51. package/dist/{configuration-CMHZnp6G.cjs → configuration-CYO-kPOS.cjs} +1 -1
  52. package/dist/{configuration-WMi4idBB.mjs → configuration-PxzEJumr.mjs} +1 -1
  53. package/dist/{connect-BLVHhHzA.mjs → connect-BQrg3TB6.mjs} +14 -14
  54. package/dist/{connect-uaglGrde.cjs → connect-Dq7wndzR.cjs} +27 -27
  55. package/dist/{context-DXzU5bFM.cjs → context-6TP-iz_c.cjs} +1 -1
  56. package/dist/{context-DploEcoN.mjs → context-CJGRRGWW.mjs} +1 -1
  57. package/dist/{controlClient-C-5qCt8W.cjs → controlClient-Bqv5v5OM.cjs} +3 -3
  58. package/dist/{controlClient-BWUJrj3t.mjs → controlClient-DoeYovwP.mjs} +4 -4
  59. package/dist/{createSessionMetadata-3uXrJgOW.mjs → createSessionMetadata-DDIChCx8.mjs} +2 -2
  60. package/dist/{createSessionMetadata-BkIzHALd.cjs → createSessionMetadata-xz767pcG.cjs} +3 -3
  61. package/dist/{defaultPermissionMode-pS3vmiSg.cjs → defaultPermissionMode-PkZGsQDk.cjs} +2 -2
  62. package/dist/{defaultPermissionMode-BzxLh20a.mjs → defaultPermissionMode-i5KzdK09.mjs} +2 -2
  63. package/dist/{detectCLI-DR9ZaN6B.cjs → detectCLI-BuYR_Qxe.cjs} +4 -4
  64. package/dist/{deterministicJson-D_whDMFd.mjs → deterministicJson-CTEJDqtS.mjs} +12 -12
  65. package/dist/{deterministicJson-B8z2GPi9.cjs → deterministicJson-xqA6DaOm.cjs} +14 -14
  66. package/dist/{doctor-Br1Kcy2J.cjs → doctor-BrgSlfXn.cjs} +9 -9
  67. package/dist/{doctor-CmtSsR2-.mjs → doctor-IctjVh9T.mjs} +8 -8
  68. package/dist/{doctorReadiness-BCZGcN0a.cjs → doctorReadiness-Dl6yRQCy.cjs} +1 -1
  69. package/dist/{downloadTarget-BQJK_6oH.cjs → downloadTarget-CEb9che-.cjs} +6 -6
  70. package/dist/{downloadTarget-BoNwTIH_.mjs → downloadTarget-jbOz1egC.mjs} +6 -6
  71. package/dist/{ensureDaemonRunning-BRUmsq6J.cjs → ensureDaemonRunning-D-HyjGIX.cjs} +6 -6
  72. package/dist/{ensureDaemonRunning-Czo9IHJQ.mjs → ensureDaemonRunning-b1e8LCSM.mjs} +5 -5
  73. package/dist/{handleResumeCommand-tKD_Hpxc.cjs → handleResumeCommand-BvWVuRwH.cjs} +7 -7
  74. package/dist/{handleResumeCommand-C8thKjqf.mjs → handleResumeCommand-DpaZvm2c.mjs} +6 -6
  75. package/dist/{index-DMqDMT1Q.cjs → index-B2p2Mut7.cjs} +42 -41
  76. package/dist/{index-BTxHphpV.mjs → index-BUNnpGFF.mjs} +42 -41
  77. package/dist/{index-CdQI0C9p.mjs → index-Bsvbgh9e.mjs} +4 -4
  78. package/dist/{index-B0UjHlAe.cjs → index-C64Ufj4D.cjs} +4 -4
  79. package/dist/{index-DPOa4NhL.mjs → index-C6Vn5Eac.mjs} +2 -0
  80. package/dist/{index-BiyC7cZ3.mjs → index-CMf5VbzG.mjs} +4 -4
  81. package/dist/{index-CUuc6iCn.cjs → index-DmTlDRSL.cjs} +4 -4
  82. package/dist/{index-C6O2vVjm.cjs → index-Dv0Q48P3.cjs} +2 -0
  83. package/dist/{index-D09T1m8Y.cjs → index-F2UejqYs.cjs} +3 -3
  84. package/dist/{index-D3bidoG8.mjs → index-wCbtF4BK.mjs} +3 -3
  85. package/dist/index.cjs +2 -2
  86. package/dist/index.mjs +2 -2
  87. package/dist/{install-CYRZxS87.cjs → install-C0ANcEAW.cjs} +7 -7
  88. package/dist/{install-hnve_9vq.mjs → install-CdzSV7qO.mjs} +3 -3
  89. package/dist/{installPiTools-BKnXjrVu.cjs → installPiTools-CL_axh_6.cjs} +1 -1
  90. package/dist/{installTerminalHooks-BQZbvxsZ.cjs → installTerminalHooks-BETLKAtd.cjs} +3 -3
  91. package/dist/lib.cjs +13 -13
  92. package/dist/lib.d.cts +177 -1
  93. package/dist/lib.d.mts +177 -1
  94. package/dist/lib.mjs +13 -13
  95. package/dist/{lidState-Dv2wwFTj.cjs → lidState-DWGnm2H4.cjs} +1 -1
  96. package/dist/{lidState-Bb8fgXg3.mjs → lidState-bBrmaQd2.mjs} +1 -1
  97. package/dist/{localHappyAgentAuth-DjYvkXvV.cjs → localHappyAgentAuth-DZHQnIW9.cjs} +1 -1
  98. package/dist/{localHappyAgentAuth-NEU7fax7.mjs → localHappyAgentAuth-Dn1jYDpt.mjs} +1 -1
  99. package/dist/{logger-BtVhHnD8.mjs → logger-BUngm5Xg.mjs} +2 -2
  100. package/dist/{logger-C1GWx3gi.cjs → logger-CphW5nUE.cjs} +2 -2
  101. package/dist/machineMetadata-BQm9YTcI.cjs +79 -0
  102. package/dist/machineMetadata-BXN_bKU3.mjs +68 -0
  103. package/dist/{main-CWhSsbtU.cjs → main-B2UV51nK.cjs} +99 -132
  104. package/dist/{main-B2LWV8DI.mjs → main-DGkdYfEq.mjs} +93 -126
  105. package/dist/{mcp-CARUsXHV.cjs → mcp-BFvAEIRz.cjs} +15 -15
  106. package/dist/{mcp-ext92q3Y.mjs → mcp-CbTtbs0f.mjs} +15 -15
  107. package/dist/{mirrorProtocol-BwYibqry.mjs → mirrorProtocol-BR4luBC0.mjs} +148 -7
  108. package/dist/{mirrorProtocol-DEy2g1CB.cjs → mirrorProtocol-HKPivs5o.cjs} +150 -4
  109. package/dist/{package-BPPebGQF.mjs → package-7Ld1YMhh.mjs} +8 -7
  110. package/dist/{package-SgqTYsjn.cjs → package-KhLqBDX9.cjs} +8 -7
  111. package/dist/{panels-BZ0_Tt7B.mjs → panels-C7IVqpJk.mjs} +5 -5
  112. package/dist/{panels-D1c7q2dD.cjs → panels-Njf6GelF.cjs} +5 -5
  113. package/dist/{peerTools-CWKzcQ7u.mjs → peerTools-BOlDRyhi.mjs} +5 -5
  114. package/dist/{peerTools-DRQETXaz.cjs → peerTools-DQNlrcqM.cjs} +5 -5
  115. package/dist/{persistence-BegE7NPa.cjs → persistence-9BMYspxG.cjs} +2 -2
  116. package/dist/{persistence-Cr-wutZ4.mjs → persistence-BFUOHW5h.mjs} +2 -2
  117. package/dist/{piRunnerArgs-Cs-378Vz.cjs → piRunnerArgs-DGaq6VYM.cjs} +1 -1
  118. package/dist/{piRunnerArgs-DwvM_yWA.mjs → piRunnerArgs-H2pgpA5z.mjs} +1 -1
  119. package/dist/{piRuntime-BG-1td_n.cjs → piRuntime-CT5xv_3h.cjs} +1 -1
  120. package/dist/{piRuntime-Bue5mnlc.mjs → piRuntime-CdN0JAsa.mjs} +1 -1
  121. package/dist/{piTerminal-G4z-xVyy.cjs → piTerminal-0FBtXTHK.cjs} +17 -17
  122. package/dist/{piTerminal-B5x9X5yV.mjs → piTerminal-C4m9YXAV.mjs} +17 -17
  123. package/dist/projectPath-C3ioB4Bu.cjs +13 -0
  124. package/dist/{pushNotifications-BdFjDjQe.mjs → pushNotifications-DCiBEVeC.mjs} +7 -3
  125. package/dist/{pushNotifications-DaLQUyi0.cjs → pushNotifications-DI92havG.cjs} +7 -3
  126. package/dist/{query-Ctfg-5gy.cjs → query-BETKBrnz.cjs} +1 -1
  127. package/dist/{query-DYP_W1wp.mjs → query-ywZbQUzR.mjs} +1 -1
  128. package/dist/{rateLimitWindows-CuEqk_0g.mjs → rateLimitWindows-BkfuUB1a.mjs} +1 -1
  129. package/dist/{rateLimitWindows-Dj_8voBK.cjs → rateLimitWindows-YRIYVdo4.cjs} +1 -1
  130. package/dist/{registerCommonHandlers-Cj084Sg7.cjs → registerCommonHandlers-C7a_dUWs.cjs} +30 -30
  131. package/dist/{registerCommonHandlers-BAlP7SGc.mjs → registerCommonHandlers-CTkCvjxt.mjs} +2 -2
  132. package/dist/{registerKillSessionHandler-qMju0ZfF.cjs → registerKillSessionHandler-CIsvBrVe.cjs} +6 -6
  133. package/dist/{registerKillSessionHandler-PD0jWtQo.mjs → registerKillSessionHandler-CaqqRYq6.mjs} +6 -6
  134. package/dist/{remoteSessionClient-B7i7MkYV.cjs → remoteSessionClient-D843fkzL.cjs} +5 -5
  135. package/dist/{remoteSessionClient-Bn2qu5C5.mjs → remoteSessionClient-PP-mOKmw.mjs} +5 -5
  136. package/dist/{reportProgressTool-CM1JFAHg.cjs → reportProgressTool-14AXr959.cjs} +3 -3
  137. package/dist/{reportProgressTool-gHItlSzz.mjs → reportProgressTool-ZOCNjWHr.mjs} +3 -3
  138. package/dist/{run-CNXwIe0A.cjs → run-CAOCYYfT.cjs} +2650 -90
  139. package/dist/{run-BM4TxiyN.mjs → run-Dajw2E5j.mjs} +2644 -84
  140. package/dist/{runClaude-C_3I8hvR.mjs → runClaude-C6oxWYbp.mjs} +34 -28
  141. package/dist/{runClaude-CWhj2V4Q.cjs → runClaude-CRRKt-tm.cjs} +35 -29
  142. package/dist/{runClaudeDeps-B81cOKnH.cjs → runClaudeDeps-B1ysqTvx.cjs} +54 -119
  143. package/dist/{runClaudeDeps-QGrOeDe2.mjs → runClaudeDeps-BcZ68cX3.mjs} +47 -111
  144. package/dist/{runGemini-BEdWEZLR.mjs → runGemini-D7yKc4wD.mjs} +35 -35
  145. package/dist/{runGemini-CgRLYbt5.cjs → runGemini-DtKFXqf-.cjs} +63 -63
  146. package/dist/{runOpenClaw-DdQZAYj1.mjs → runOpenClaw-C8ilyLP9.mjs} +19 -19
  147. package/dist/{runOpenClaw-C1NVmzOL.cjs → runOpenClaw-Cq29mryb.cjs} +20 -20
  148. package/dist/{sandbox-DjQUdCMG.mjs → sandbox-CbCutma4.mjs} +4 -4
  149. package/dist/{sandbox-nocIjliq.cjs → sandbox-gIj-EuF4.cjs} +4 -4
  150. package/dist/{selfCheck-DCt4Uzbq.cjs → selfCheck-BTGBVthv.cjs} +39 -39
  151. package/dist/selfCheck-Smt-5Xiq.mjs +85 -0
  152. package/dist/{send-Dydf_hwZ.cjs → send-CZf5lLw_.cjs} +8 -8
  153. package/dist/{send-Ct7X4pPU.mjs → send-YZRMQvMJ.mjs} +9 -9
  154. package/dist/{server-DTQGZMxh.mjs → server-BqwXRzFZ.mjs} +4 -4
  155. package/dist/{server-CosABFbd.cjs → server-CknFq6xG.cjs} +6 -6
  156. package/dist/sessionExitLifecycle-CzkLIgNZ.mjs +142 -0
  157. package/dist/sessionExitLifecycle-DFltxXU8.cjs +148 -0
  158. package/dist/{sessionLock-DokGab2R.cjs → sessionLock-DRZUcKHT.cjs} +25 -5
  159. package/dist/{sessionLock-WYIyaVO4.mjs → sessionLock-nBXdJxJm.mjs} +24 -5
  160. package/dist/{sessionOps-S-qPBLFf.cjs → sessionOps-BrGiU9-s.cjs} +4 -4
  161. package/dist/{sessionOps-BIGgRube.mjs → sessionOps-C58iDeD5.mjs} +5 -5
  162. package/dist/{sessionScanner-o5hnMi5e.mjs → sessionScanner-Bm57LEXe.mjs} +3 -3
  163. package/dist/{sessionScanner-CIMM2hvZ.cjs → sessionScanner-CaO8bLaG.cjs} +3 -3
  164. package/dist/{sessions-BJHEZpi2.mjs → sessions-BXyBHo8n.mjs} +11 -11
  165. package/dist/{sessions-JchI1w3z.cjs → sessions-uzqPCc37.cjs} +10 -10
  166. package/dist/{setupOfflineReconnection-DMiBO2y9.mjs → setupOfflineReconnection-1Qlek3wl.mjs} +2 -2
  167. package/dist/{setupOfflineReconnection-CNiAt5ZP.cjs → setupOfflineReconnection-DvvVX3TB.cjs} +2 -2
  168. package/dist/{spawn-6PD7nnoC.cjs → spawn-DBkodJEO.cjs} +15 -15
  169. package/dist/{spawn-DgvUNYEo.mjs → spawn-vn93PhYL.mjs} +15 -15
  170. package/dist/{spawnAgents-P006Hqio.mjs → spawnAgents-CgPMWexP.mjs} +1 -1
  171. package/dist/{spawnAgents-DsXgegHM.cjs → spawnAgents-DLNMlhWJ.cjs} +1 -1
  172. package/dist/{spawnHappyCLI-CCOrEtf9.mjs → spawnHappyCLI-BjFZc_7V.mjs} +1 -1
  173. package/dist/{spawnHappyCLI-Dywezwk6.cjs → spawnHappyCLI-DnUZv0X2.cjs} +2 -2
  174. package/dist/{specialCommands-QxPpkGKf.cjs → specialCommands-BRufxlqe.cjs} +3 -3
  175. package/dist/{specialCommands-DPcd9edP.mjs → specialCommands-D3ND9bdg.mjs} +3 -3
  176. package/dist/{startFileWatcher-RECH5qY8.cjs → startFileWatcher-D9cYzZOq.cjs} +1 -1
  177. package/dist/{startFileWatcher-DghDOCO4.mjs → startFileWatcher-DXJ7yB5v.mjs} +1 -1
  178. package/dist/startupSessionCreate-kdr3m1uX.cjs +26 -0
  179. package/dist/startupSessionCreate-uZ6BM0ty.mjs +24 -0
  180. package/dist/{streamRelay-DMV_TXfS.mjs → streamRelay-DnMCMMfV.mjs} +1 -1
  181. package/dist/{streamRelay-DlUWKUpo.cjs → streamRelay-Dy6amlzx.cjs} +1 -1
  182. package/dist/{sync-D23jbqVa.cjs → sync-Bn-idAoy.cjs} +1 -1
  183. package/dist/{sync-CSe0Rf45.mjs → sync-BvVhDO40.mjs} +1 -1
  184. package/dist/{systemPrompt-CFNKnh65.mjs → systemPrompt-CIZcJuJF.mjs} +2 -2
  185. package/dist/{systemPrompt-BOy4kU4P.cjs → systemPrompt-DlyEk35T.cjs} +2 -2
  186. package/dist/{teams-Ov2BDT-A.cjs → teams-BLeRpDxv.cjs} +6 -6
  187. package/dist/{teams-DyY669f0.mjs → teams-DLY3B5yi.mjs} +6 -6
  188. package/dist/{time-CrwIMHta.cjs → time-Cjv0zxQO.cjs} +1 -1
  189. package/dist/{time-65DcU6Jx.mjs → time-D3ETL7Jb.mjs} +1 -1
  190. package/dist/{titleGenerator-CS_rh2_J.cjs → titleGenerator-Cgp5ihFb.cjs} +3 -3
  191. package/dist/{titleGenerator-CiAMxf7s.mjs → titleGenerator-Uzbd4utr.mjs} +1 -1
  192. package/dist/{todo-BDONw0sK.mjs → todo-C9Ga-oEM.mjs} +6 -6
  193. package/dist/{todo-KY-okGii.cjs → todo-pOMcEECE.cjs} +6 -6
  194. package/dist/{tools-_w52DZG6.cjs → tools-BL7Byl_x.cjs} +1 -1
  195. package/dist/{tools-D8-PnZEG.mjs → tools-Cho7iIWf.mjs} +1 -1
  196. package/dist/{uninstall-8vnLN-IE.cjs → uninstall-CbayEVoV.cjs} +6 -6
  197. package/dist/{uninstall-_fjGRP9b.mjs → uninstall-CvZHVY9C.mjs} +3 -3
  198. package/package.json +8 -7
  199. package/dist/machineMetadata-CLHS9sv_.cjs +0 -42
  200. package/dist/machineMetadata-D-g--oU_.mjs +0 -39
  201. package/dist/messageBuffer-BWlGgR3A.mjs +0 -71
  202. package/dist/messageBuffer-fJMH6uY8.cjs +0 -73
  203. package/dist/projectPath-ChLhdOyt.cjs +0 -13
  204. package/dist/selfCheck-CjCF4C3v.mjs +0 -85
@@ -1,23 +1,24 @@
1
1
  import os from 'node:os';
2
- import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyHibernationReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata } from './sessionLock-WYIyaVO4.mjs';
3
- import { r as readSettings, H as HIBERNATION_CAPABILITY, a as resolveCheckMs, l as latchKeepAwake, e as evaluateWrapperIdle } from './persistence-Cr-wutZ4.mjs';
4
- import { D as DEFAULT_CLAUDE_PERMISSION_MODE, H as HibernationProbe, c as commitHibernation } from './defaultPermissionMode-BzxLh20a.mjs';
2
+ import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, e as exitCursorStamp } from './sessionLock-nBXdJxJm.mjs';
3
+ import { r as readSettings, H as HIBERNATION_CAPABILITY, a as resolveCheckMs, l as latchKeepAwake, e as evaluateWrapperIdle } from './persistence-BFUOHW5h.mjs';
4
+ import { D as DEFAULT_CLAUDE_PERMISSION_MODE, H as HibernationProbe, c as commitHibernation } from './defaultPermissionMode-i5KzdK09.mjs';
5
5
  import { randomUUID } from 'node:crypto';
6
- import { c as connectionState, A as ApiClient, s as startOfflineReconnection } from './api-CzwFpJQc.mjs';
7
- import { l as logger } from './logger-BtVhHnD8.mjs';
8
- import { s as spawnOriginTags, a as sessionWorktreeMetadata } from './createSessionMetadata-3uXrJgOW.mjs';
9
- import { p as packageJson } from './package-BPPebGQF.mjs';
10
- import { P as PROMPT_QUEUE_CAPABILITY, a as PROJECT_SESSION_CAPABILITY } from './index-DPOa4NhL.mjs';
6
+ import { c as connectionState, A as ApiClient, s as startOfflineReconnection } from './api-Hov8p7CA.mjs';
7
+ import { l as logger } from './logger-BUngm5Xg.mjs';
8
+ import { s as spawnOriginTags, a as sessionWorktreeMetadata } from './createSessionMetadata-DDIChCx8.mjs';
9
+ import { p as packageJson } from './package-7Ld1YMhh.mjs';
10
+ import { P as PROMPT_QUEUE_CAPABILITY, a as PROJECT_SESSION_CAPABILITY } from './index-C6Vn5Eac.mjs';
11
11
  import { F as FORK_BACKFILL_CAPABILITY, p as publishForkBackfillWhenCommitted } from './forkBackfill-DYIjlN1Z.mjs';
12
- import { c as configuration } from './configuration-WMi4idBB.mjs';
13
- import { n as notifyDaemonSessionStarted, c as checkDaemonHibernation } from './controlClient-BWUJrj3t.mjs';
14
- import { g as getInitialMachineMetadata } from './machineMetadata-D-g--oU_.mjs';
12
+ import { c as configuration } from './configuration-PxzEJumr.mjs';
13
+ import { n as notifyDaemonSessionStarted, c as checkDaemonHibernation } from './controlClient-DoeYovwP.mjs';
14
+ import { g as getInitialMachineMetadata } from './machineMetadata-BXN_bKU3.mjs';
15
15
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
16
16
  import { resolve, join } from 'node:path';
17
+ import { c as createSessionForStartup } from './startupSessionCreate-uZ6BM0ty.mjs';
17
18
  import { a as applySandboxPermissionPolicy, r as resolveInitialClaudePermissionMode, m as mapToClaudeMode, b as reconcilePublishedPermissionMode } from './permissionMode-CH4FoZfU.mjs';
18
19
  import { d as decodeBase64, e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
19
20
  import { readFile } from 'node:fs/promises';
20
- import { C as CLAUDE_ATTACHMENT_KINDS, s as stripAttachmentManifest } from './attachmentContent-B2os4HbA.mjs';
21
+ import { C as CLAUDE_ATTACHMENT_KINDS, s as stripAttachmentManifest } from './attachmentContent-CIn4iPEk.mjs';
21
22
  import { T as TranscriptPathHints } from './transcriptCursor-B7T_gkQ0.mjs';
22
23
  import { p as planClaudeStartup } from './startupPlan-DFMyNgAs.mjs';
23
24
  import 'node:fs';
@@ -25,35 +26,35 @@ import './processTreeSnapshot-CuLJDNC-.mjs';
25
26
  import 'node:child_process';
26
27
  import 'zod';
27
28
  import 'axios';
28
- import './lidState-Bb8fgXg3.mjs';
29
+ import './lidState-bBrmaQd2.mjs';
29
30
  import 'os';
30
31
  import 'child_process';
31
32
  import 'node:events';
32
33
  import 'socket.io-client';
33
- import './pushNotifications-BdFjDjQe.mjs';
34
+ import './pushNotifications-DCiBEVeC.mjs';
34
35
  import './contentLogMetadata-BlWI0egu.mjs';
35
36
  import './limits-DIo7rEBR.mjs';
36
- import './time-65DcU6Jx.mjs';
37
- import './registerCommonHandlers-BAlP7SGc.mjs';
37
+ import './time-D3ETL7Jb.mjs';
38
+ import './registerCommonHandlers-CTkCvjxt.mjs';
38
39
  import 'util';
39
40
  import 'fs/promises';
40
41
  import 'crypto';
41
42
  import 'path';
42
43
  import 'cross-spawn';
43
44
  import '@paralleldrive/cuid2';
44
- import './sync-CSe0Rf45.mjs';
45
- import './backgroundTaskActivity-BVwJBl02.mjs';
45
+ import './sync-BvVhDO40.mjs';
46
+ import './backgroundTaskActivity-8PdPxrvy.mjs';
46
47
  import 'chalk';
47
48
  import 'node:util';
48
49
  import './detectCLI-CSGMlV51.mjs';
49
50
  import 'fs';
50
- import './localHappyAgentAuth-NEU7fax7.mjs';
51
+ import './localHappyAgentAuth-Dn1jYDpt.mjs';
51
52
  import 'tweetnacl';
52
53
  import 'url';
53
54
 
54
55
  const DEFAULT_CLAUDE_MODEL = void 0;
55
56
  const DEFAULT_CLAUDE_EFFORT = void 0;
56
- const importRunClaudeDeps = () => import('./runClaudeDeps-QGrOeDe2.mjs');
57
+ const importRunClaudeDeps = () => import('./runClaudeDeps-BcZ68cX3.mjs');
57
58
  async function runClaude(credentials, options = {}) {
58
59
  logger.debug(`[CLAUDE] ===== CLAUDE MODE STARTING =====`);
59
60
  logger.debug(`[CLAUDE] This is the Claude agent, NOT Gemini`);
@@ -67,7 +68,7 @@ async function runClaude(credentials, options = {}) {
67
68
  const isAssistantVariant = process.env.HAPPY_SESSION_VARIANT === "assistant";
68
69
  if (isAssistantVariant) {
69
70
  try {
70
- const { bootstrapAssistantHome } = await import('./bootstrap-iuyufnp3.mjs');
71
+ const { bootstrapAssistantHome } = await import('./bootstrap-Dt5I1SOl.mjs');
71
72
  await bootstrapAssistantHome();
72
73
  } catch (error) {
73
74
  logger.debug("[START] Assistant home bootstrap failed:", error);
@@ -183,11 +184,11 @@ async function runClaude(credentials, options = {}) {
183
184
  agentStateVersion: parseInt(reconnectAgentStateVersion || "0", 10)
184
185
  };
185
186
  } else {
186
- response = await api.getOrCreateSession({ tag: sessionTag, metadata, state });
187
+ response = await createSessionForStartup(() => api.getOrCreateSession({ tag: sessionTag, metadata, state }), { startedBy: options.startedBy, log: (m) => logger.debug(m) });
187
188
  }
188
189
  if (!response) {
189
190
  let offlineSessionId = null;
190
- const { claudeLocal } = await import('./claudeLocal-Dq_R3Ax_.mjs');
191
+ const { claudeLocal } = await import('./claudeLocal-OHWQigCl.mjs');
191
192
  const { createSessionScanner: createSessionScanner2 } = await loadDeps();
192
193
  const reconnection = startOfflineReconnection({
193
194
  serverUrl: configuration.serverUrl,
@@ -235,16 +236,18 @@ async function runClaude(credentials, options = {}) {
235
236
  }
236
237
  let reconnectSeeded = false;
237
238
  let wakingFromHibernation = false;
239
+ let reconnectReplay = null;
238
240
  if (reconnectSessionId) {
239
241
  const snapshot = await api.getSession(response.id, response.encryptionKey, response.encryptionVariant);
240
242
  if (snapshot.ok) {
241
243
  response = applyServerSnapshot(response, snapshot.session);
242
244
  reconnectSeeded = true;
243
245
  logger.debug(`[START] Reconnect seeded from server: seq=${snapshot.session.seq} metadataVersion=${snapshot.session.metadataVersion}`);
244
- const wake = applyHibernationReplay(response);
246
+ const wake = applyReconnectReplay(response);
245
247
  response = wake.response;
246
- wakingFromHibernation = wake.replaying;
247
- if (wake.replaying) logger.debug(`[START] Waking from hibernation: replaying records after seq=${response.seq}`);
248
+ reconnectReplay = wake.replay;
249
+ wakingFromHibernation = wake.replay?.source === "hibernation";
250
+ if (wake.replay) logger.debug(`[START] Resuming (${wake.replay.source}): replaying records after seq=${response.seq}`);
248
251
  } else {
249
252
  response = withoutServerSnapshot(response);
250
253
  logger.debug(`[START] Reconnect without server snapshot (${snapshot.reason}); skipping existing messages`);
@@ -338,7 +341,7 @@ async function runClaude(credentials, options = {}) {
338
341
  if (reconnectSessionId) {
339
342
  session.suppressNextArchiveSignal();
340
343
  if (!reconnectSeeded) session.skipExistingMessages();
341
- if (!wakingFromHibernation) void session.cancelUndeliveredQueuedInputs();
344
+ if (!wakingFromHibernation) void session.cancelUndeliveredQueuedInputs(reconnectReplay ? { maxSeq: reconnectReplay.seq } : void 0);
342
345
  session.updateMetadata((meta) => ({
343
346
  ...mergeReconnectMetadata(meta, metadata, Date.now()),
344
347
  queueCancellation: true,
@@ -797,10 +800,13 @@ async function runClaude(credentials, options = {}) {
797
800
  const wrapperTree = snapshotTree(process.pid);
798
801
  try {
799
802
  if (session) {
803
+ const exitCursor = intent === "offline" ? exitCursorStamp(session.messageCursor, Date.now()) : void 0;
804
+ if (exitCursor) session.freezeInbound();
800
805
  currentSession?.cleanup();
801
806
  await settleSessionOnExit(session.sessionId, intent, {
802
807
  updateMetadata: (handler) => session.updateMetadata(handler),
803
- updateMetadataAndWait: (handler) => session.updateMetadataAndWait(handler),
808
+ updateMetadataAndWait: (handler, timeoutMs) => session.updateMetadataAndWait(handler, timeoutMs),
809
+ exitCursor,
804
810
  sendSessionDeath: () => session.sendSessionDeath(),
805
811
  archiveSession: (id) => api.archiveSession(id),
806
812
  deactivateSession: (id) => api.deactivateSession(id),
@@ -1,25 +1,26 @@
1
1
  'use strict';
2
2
 
3
3
  var os = require('node:os');
4
- var sessionLock = require('./sessionLock-DokGab2R.cjs');
5
- var persistence = require('./persistence-BegE7NPa.cjs');
6
- var defaultPermissionMode = require('./defaultPermissionMode-pS3vmiSg.cjs');
4
+ var sessionLock = require('./sessionLock-DRZUcKHT.cjs');
5
+ var persistence = require('./persistence-9BMYspxG.cjs');
6
+ var defaultPermissionMode = require('./defaultPermissionMode-PkZGsQDk.cjs');
7
7
  var node_crypto = require('node:crypto');
8
- var api = require('./api-Cmjfr8Z7.cjs');
9
- var logger = require('./logger-C1GWx3gi.cjs');
10
- var createSessionMetadata = require('./createSessionMetadata-BkIzHALd.cjs');
11
- var _package = require('./package-SgqTYsjn.cjs');
12
- var index = require('./index-C6O2vVjm.cjs');
8
+ var api = require('./api-DM7b1OKj.cjs');
9
+ var logger = require('./logger-CphW5nUE.cjs');
10
+ var createSessionMetadata = require('./createSessionMetadata-xz767pcG.cjs');
11
+ var _package = require('./package-KhLqBDX9.cjs');
12
+ var index = require('./index-Dv0Q48P3.cjs');
13
13
  var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
14
- var configuration = require('./configuration-CMHZnp6G.cjs');
15
- var controlClient = require('./controlClient-C-5qCt8W.cjs');
16
- var machineMetadata = require('./machineMetadata-CLHS9sv_.cjs');
17
- var projectPath = require('./projectPath-ChLhdOyt.cjs');
14
+ var configuration = require('./configuration-CYO-kPOS.cjs');
15
+ var controlClient = require('./controlClient-Bqv5v5OM.cjs');
16
+ var machineMetadata = require('./machineMetadata-BQm9YTcI.cjs');
17
+ var projectPath = require('./projectPath-C3ioB4Bu.cjs');
18
18
  var path = require('node:path');
19
+ var startupSessionCreate = require('./startupSessionCreate-kdr3m1uX.cjs');
19
20
  var permissionMode = require('./permissionMode-CrV-XuMs.cjs');
20
21
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
21
22
  var promises = require('node:fs/promises');
22
- var attachmentContent = require('./attachmentContent-Bo0UAsSu.cjs');
23
+ var attachmentContent = require('./attachmentContent-CEm13_gF.cjs');
23
24
  var transcriptCursor = require('./transcriptCursor-DcXGLeSc.cjs');
24
25
  var startupPlan = require('./startupPlan-BLMbfQIH.cjs');
25
26
  require('node:fs');
@@ -27,35 +28,35 @@ require('./processTreeSnapshot-mDbnuojn.cjs');
27
28
  require('node:child_process');
28
29
  require('zod');
29
30
  require('axios');
30
- require('./lidState-Dv2wwFTj.cjs');
31
+ require('./lidState-DWGnm2H4.cjs');
31
32
  require('os');
32
33
  require('child_process');
33
34
  require('node:events');
34
35
  require('socket.io-client');
35
- require('./pushNotifications-DaLQUyi0.cjs');
36
+ require('./pushNotifications-DI92havG.cjs');
36
37
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
37
38
  require('./limits-C-a7gr04.cjs');
38
- require('./time-CrwIMHta.cjs');
39
- require('./registerCommonHandlers-Cj084Sg7.cjs');
39
+ require('./time-Cjv0zxQO.cjs');
40
+ require('./registerCommonHandlers-C7a_dUWs.cjs');
40
41
  require('util');
41
42
  require('fs/promises');
42
43
  require('crypto');
43
44
  require('path');
44
45
  require('cross-spawn');
45
46
  require('@paralleldrive/cuid2');
46
- require('./sync-D23jbqVa.cjs');
47
+ require('./sync-Bn-idAoy.cjs');
47
48
  require('./backgroundTaskActivity-CBvUdj39.cjs');
48
49
  require('chalk');
49
50
  require('node:util');
50
- require('./detectCLI-DR9ZaN6B.cjs');
51
+ require('./detectCLI-BuYR_Qxe.cjs');
51
52
  require('fs');
52
- require('./localHappyAgentAuth-DjYvkXvV.cjs');
53
+ require('./localHappyAgentAuth-DZHQnIW9.cjs');
53
54
  require('tweetnacl');
54
55
  require('url');
55
56
 
56
57
  const DEFAULT_CLAUDE_MODEL = void 0;
57
58
  const DEFAULT_CLAUDE_EFFORT = void 0;
58
- const importRunClaudeDeps = () => Promise.resolve().then(function () { return require('./runClaudeDeps-B81cOKnH.cjs'); });
59
+ const importRunClaudeDeps = () => Promise.resolve().then(function () { return require('./runClaudeDeps-B1ysqTvx.cjs'); });
59
60
  async function runClaude(credentials, options = {}) {
60
61
  logger.logger.debug(`[CLAUDE] ===== CLAUDE MODE STARTING =====`);
61
62
  logger.logger.debug(`[CLAUDE] This is the Claude agent, NOT Gemini`);
@@ -69,7 +70,7 @@ async function runClaude(credentials, options = {}) {
69
70
  const isAssistantVariant = process.env.HAPPY_SESSION_VARIANT === "assistant";
70
71
  if (isAssistantVariant) {
71
72
  try {
72
- const { bootstrapAssistantHome } = await Promise.resolve().then(function () { return require('./bootstrap-exVucYav.cjs'); });
73
+ const { bootstrapAssistantHome } = await Promise.resolve().then(function () { return require('./bootstrap-DoA7okld.cjs'); });
73
74
  await bootstrapAssistantHome();
74
75
  } catch (error) {
75
76
  logger.logger.debug("[START] Assistant home bootstrap failed:", error);
@@ -185,11 +186,11 @@ async function runClaude(credentials, options = {}) {
185
186
  agentStateVersion: parseInt(reconnectAgentStateVersion || "0", 10)
186
187
  };
187
188
  } else {
188
- response = await api$1.getOrCreateSession({ tag: sessionTag, metadata, state });
189
+ response = await startupSessionCreate.createSessionForStartup(() => api$1.getOrCreateSession({ tag: sessionTag, metadata, state }), { startedBy: options.startedBy, log: (m) => logger.logger.debug(m) });
189
190
  }
190
191
  if (!response) {
191
192
  let offlineSessionId = null;
192
- const { claudeLocal } = await Promise.resolve().then(function () { return require('./claudeLocal-re4yjSTx.cjs'); });
193
+ const { claudeLocal } = await Promise.resolve().then(function () { return require('./claudeLocal--DNyMOSv.cjs'); });
193
194
  const { createSessionScanner: createSessionScanner2 } = await loadDeps();
194
195
  const reconnection = api.startOfflineReconnection({
195
196
  serverUrl: configuration.configuration.serverUrl,
@@ -237,16 +238,18 @@ async function runClaude(credentials, options = {}) {
237
238
  }
238
239
  let reconnectSeeded = false;
239
240
  let wakingFromHibernation = false;
241
+ let reconnectReplay = null;
240
242
  if (reconnectSessionId) {
241
243
  const snapshot = await api$1.getSession(response.id, response.encryptionKey, response.encryptionVariant);
242
244
  if (snapshot.ok) {
243
245
  response = sessionLock.applyServerSnapshot(response, snapshot.session);
244
246
  reconnectSeeded = true;
245
247
  logger.logger.debug(`[START] Reconnect seeded from server: seq=${snapshot.session.seq} metadataVersion=${snapshot.session.metadataVersion}`);
246
- const wake = sessionLock.applyHibernationReplay(response);
248
+ const wake = sessionLock.applyReconnectReplay(response);
247
249
  response = wake.response;
248
- wakingFromHibernation = wake.replaying;
249
- if (wake.replaying) logger.logger.debug(`[START] Waking from hibernation: replaying records after seq=${response.seq}`);
250
+ reconnectReplay = wake.replay;
251
+ wakingFromHibernation = wake.replay?.source === "hibernation";
252
+ if (wake.replay) logger.logger.debug(`[START] Resuming (${wake.replay.source}): replaying records after seq=${response.seq}`);
250
253
  } else {
251
254
  response = sessionLock.withoutServerSnapshot(response);
252
255
  logger.logger.debug(`[START] Reconnect without server snapshot (${snapshot.reason}); skipping existing messages`);
@@ -340,7 +343,7 @@ async function runClaude(credentials, options = {}) {
340
343
  if (reconnectSessionId) {
341
344
  session.suppressNextArchiveSignal();
342
345
  if (!reconnectSeeded) session.skipExistingMessages();
343
- if (!wakingFromHibernation) void session.cancelUndeliveredQueuedInputs();
346
+ if (!wakingFromHibernation) void session.cancelUndeliveredQueuedInputs(reconnectReplay ? { maxSeq: reconnectReplay.seq } : void 0);
344
347
  session.updateMetadata((meta) => ({
345
348
  ...sessionLock.mergeReconnectMetadata(meta, metadata, Date.now()),
346
349
  queueCancellation: true,
@@ -799,10 +802,13 @@ async function runClaude(credentials, options = {}) {
799
802
  const wrapperTree = snapshotTree(process.pid);
800
803
  try {
801
804
  if (session) {
805
+ const exitCursor = intent === "offline" ? sessionLock.exitCursorStamp(session.messageCursor, Date.now()) : void 0;
806
+ if (exitCursor) session.freezeInbound();
802
807
  currentSession?.cleanup();
803
808
  await settleSessionOnExit(session.sessionId, intent, {
804
809
  updateMetadata: (handler) => session.updateMetadata(handler),
805
- updateMetadataAndWait: (handler) => session.updateMetadataAndWait(handler),
810
+ updateMetadataAndWait: (handler, timeoutMs) => session.updateMetadataAndWait(handler, timeoutMs),
811
+ exitCursor,
806
812
  sendSessionDeath: () => session.sendSessionDeath(),
807
813
  archiveSession: (id) => api$1.archiveSession(id),
808
814
  deactivateSession: (id) => api$1.deactivateSession(id),
@@ -1,99 +1,99 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-C1GWx3gi.cjs');
4
- var controlClient = require('./controlClient-C-5qCt8W.cjs');
3
+ var logger = require('./logger-CphW5nUE.cjs');
4
+ var controlClient = require('./controlClient-Bqv5v5OM.cjs');
5
5
  var backgroundTaskActivity = require('./backgroundTaskActivity-CBvUdj39.cjs');
6
- var deterministicJson = require('./deterministicJson-B8z2GPi9.cjs');
7
- var client = require('./client-ZjOsn6nZ.cjs');
6
+ var deterministicJson = require('./deterministicJson-xqA6DaOm.cjs');
7
+ var client = require('./client-DJplzPjD.cjs');
8
8
  var node_crypto = require('node:crypto');
9
- var messageBuffer = require('./messageBuffer-fJMH6uY8.cjs');
10
- var query = require('./query-Ctfg-5gy.cjs');
9
+ var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
10
+ var query = require('./query-BETKBrnz.cjs');
11
11
  var claudeAgentSdk = require('@anthropic-ai/claude-agent-sdk');
12
12
  var permissionMode = require('./permissionMode-CrV-XuMs.cjs');
13
- var systemPrompt = require('./systemPrompt-BOy4kU4P.cjs');
13
+ var systemPrompt = require('./systemPrompt-DlyEk35T.cjs');
14
14
  var path$1 = require('node:path');
15
- var specialCommands = require('./specialCommands-QxPpkGKf.cjs');
15
+ var specialCommands = require('./specialCommands-BRufxlqe.cjs');
16
16
  require('axios');
17
17
  require('node:events');
18
18
  require('socket.io-client');
19
- var pushNotifications = require('./pushNotifications-DaLQUyi0.cjs');
19
+ var pushNotifications = require('./pushNotifications-DI92havG.cjs');
20
20
  require('tweetnacl');
21
- var configuration = require('./configuration-CMHZnp6G.cjs');
22
- require('./index-C6O2vVjm.cjs');
23
- require('./registerCommonHandlers-Cj084Sg7.cjs');
21
+ var configuration = require('./configuration-CYO-kPOS.cjs');
22
+ require('./index-Dv0Q48P3.cjs');
23
+ require('./registerCommonHandlers-C7a_dUWs.cjs');
24
24
  require('os');
25
25
  require('child_process');
26
26
  require('@paralleldrive/cuid2');
27
- require('./persistence-BegE7NPa.cjs');
27
+ require('./persistence-9BMYspxG.cjs');
28
28
  var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
29
29
  require('chalk');
30
30
  var types = require('./types-CRS-srZK.cjs');
31
31
  var path = require('./path-B7zW-WwE.cjs');
32
32
  var fs = require('fs/promises');
33
- var time = require('./time-CrwIMHta.cjs');
33
+ var time = require('./time-Cjv0zxQO.cjs');
34
34
  var node_fs = require('node:fs');
35
- var sessionScanner = require('./sessionScanner-CIMM2hvZ.cjs');
35
+ var sessionScanner = require('./sessionScanner-CaO8bLaG.cjs');
36
36
  var node_child_process = require('node:child_process');
37
- var streamRelay = require('./streamRelay-DlUWKUpo.cjs');
38
- var attachmentContent = require('./attachmentContent-Bo0UAsSu.cjs');
37
+ var streamRelay = require('./streamRelay-Dy6amlzx.cjs');
38
+ var attachmentContent = require('./attachmentContent-CEm13_gF.cjs');
39
39
  var promises = require('node:fs/promises');
40
- var claudeSessionFork = require('./claudeSessionFork-DiSMYerV.cjs');
41
- var registerKillSessionHandler = require('./registerKillSessionHandler-qMju0ZfF.cjs');
42
- var doctor = require('./doctor-Br1Kcy2J.cjs');
40
+ var claudeSessionFork = require('./claudeSessionFork-Be16vzGc.cjs');
41
+ var registerKillSessionHandler = require('./registerKillSessionHandler-CIsvBrVe.cjs');
42
+ var doctor = require('./doctor-BrgSlfXn.cjs');
43
43
  var node_http = require('node:http');
44
44
  var editPaths = require('./editPaths-Bqp4OFPw.cjs');
45
- var projectPath = require('./projectPath-ChLhdOyt.cjs');
45
+ var projectPath = require('./projectPath-C3ioB4Bu.cjs');
46
46
  var processTreeSnapshot = require('./processTreeSnapshot-mDbnuojn.cjs');
47
- var titleGenerator = require('./titleGenerator-CS_rh2_J.cjs');
47
+ var titleGenerator = require('./titleGenerator-Cgp5ihFb.cjs');
48
48
  var oneShotPrompts = require('./oneShotPrompts-CL0dip9C.cjs');
49
- var reportProgressTool = require('./reportProgressTool-CM1JFAHg.cjs');
49
+ var reportProgressTool = require('./reportProgressTool-14AXr959.cjs');
50
50
  require('node:util');
51
51
  require('./prompt-lgF9IE82.cjs');
52
52
  require('zod');
53
- require('./client-BKcK1Bi-.cjs');
54
- require('./context-DXzU5bFM.cjs');
55
- require('./sessionOps-S-qPBLFf.cjs');
53
+ require('./client-D_loZ9IK.cjs');
54
+ require('./context-6TP-iz_c.cjs');
55
+ require('./sessionOps-BrGiU9-s.cjs');
56
56
  require('./authRelay-Dy1qU9td.cjs');
57
57
  require('./resources-CvIlkzpP.cjs');
58
- require('./tools-_w52DZG6.cjs');
59
- require('./peerTools-DRQETXaz.cjs');
58
+ require('./tools-BL7Byl_x.cjs');
59
+ require('./peerTools-DQNlrcqM.cjs');
60
60
  require('node:os');
61
61
  require('./ids-B6ZC0HGt.cjs');
62
- require('./remoteSessionClient-B7i7MkYV.cjs');
62
+ require('./remoteSessionClient-D843fkzL.cjs');
63
63
  require('@modelcontextprotocol/sdk/server/mcp.js');
64
64
  require('@modelcontextprotocol/sdk/server/streamableHttp.js');
65
65
  require('./limits-C-a7gr04.cjs');
66
- require('./downloadTarget-BQJK_6oH.cjs');
66
+ require('./downloadTarget-CEb9che-.cjs');
67
67
  require('./terminals-B_bfC9c2.cjs');
68
68
  require('./terminalTitleSuggest-DhvRFX3H.cjs');
69
69
  require('./tmuxSocket-D-Xt6Vn-.cjs');
70
- require('./bootstrap-exVucYav.cjs');
71
- require('./package-SgqTYsjn.cjs');
70
+ require('./bootstrap-DoA7okld.cjs');
71
+ require('./package-KhLqBDX9.cjs');
72
72
  require('./agentGuidance-BtBx2xxE.cjs');
73
73
  require('./trimIdent-4gvk9Wk6.cjs');
74
74
  require('./webPanels-FCgFKvVe.cjs');
75
75
  require('./previewPath-B0rBdhy1.cjs');
76
76
  require('crypto');
77
77
  require('./smallFastModel-D_uxGMo3.cjs');
78
- require('./rateLimitWindows-Dj_8voBK.cjs');
78
+ require('./rateLimitWindows-YRIYVdo4.cjs');
79
79
  require('util');
80
80
  require('path');
81
81
  require('cross-spawn');
82
- require('./sync-D23jbqVa.cjs');
82
+ require('./sync-Bn-idAoy.cjs');
83
83
  require('./transcriptCursor-DcXGLeSc.cjs');
84
- require('./startFileWatcher-RECH5qY8.cjs');
84
+ require('./startFileWatcher-D9cYzZOq.cjs');
85
85
  require('node:readline');
86
86
  require('./doctor-u46qYYKX.cjs');
87
87
  require('ps-list');
88
- require('./doctorReadiness-BCZGcN0a.cjs');
89
- require('./detectCLI-DR9ZaN6B.cjs');
88
+ require('./doctorReadiness-Dl6yRQCy.cjs');
89
+ require('./detectCLI-BuYR_Qxe.cjs');
90
90
  require('fs');
91
91
  require('./cliUpdate-DsKXPFYp.cjs');
92
- require('./piRunnerArgs-Cs-378Vz.cjs');
93
- require('./acpSessionResume-oiCBnAVA.cjs');
92
+ require('./piRunnerArgs-DGaq6VYM.cjs');
93
+ require('./acpSessionResume-CR5pmgVo.cjs');
94
94
  require('url');
95
95
  require('node:module');
96
- require('./client-CuVdN6PP.cjs');
96
+ require('./client-BWjaHKtj.cjs');
97
97
  require('./precheckCompat-CWOi5c9L.cjs');
98
98
 
99
99
  const SCHEDULE_WAKEUP_GRACE_MS = 6e4;
@@ -3729,7 +3729,7 @@ async function claudeRemoteLauncher(session, onPermissionModeChange, onEffective
3729
3729
  logger.logger.debug("[claudeRemoteLauncher] Starting remote launcher");
3730
3730
  const hasTTY = process.stdout.isTTY && process.stdin.isTTY;
3731
3731
  logger.logger.debug(`[claudeRemoteLauncher] TTY available: ${hasTTY}`);
3732
- let messageBuffer$1 = new messageBuffer.MessageBuffer();
3732
+ let messageBuffer = new sessionExitLifecycle.MessageBuffer();
3733
3733
  let inkInstance = null;
3734
3734
  if (hasTTY) {
3735
3735
  const [{ render }, { default: React }, { RemoteModeDisplay }] = await Promise.all([
@@ -3739,7 +3739,7 @@ async function claudeRemoteLauncher(session, onPermissionModeChange, onEffective
3739
3739
  ]);
3740
3740
  console.clear();
3741
3741
  inkInstance = render(React.createElement(RemoteModeDisplay, {
3742
- messageBuffer: messageBuffer$1,
3742
+ messageBuffer,
3743
3743
  logPath: process.env.DEBUG ? session.logPath : void 0,
3744
3744
  onExit: async () => {
3745
3745
  logger.logger.debug("[remote]: Exiting client via Ctrl-C");
@@ -3913,14 +3913,14 @@ async function claudeRemoteLauncher(session, onPermissionModeChange, onEffective
3913
3913
  session.scheduledWakeups.observe(message);
3914
3914
  if (message.type === "system" && message.subtype === "api_retry") {
3915
3915
  const notice = describeClaudeApiRetry(message);
3916
- messageBuffer$1.addMessage(notice, "status");
3916
+ messageBuffer.addMessage(notice, "status");
3917
3917
  if (apiRetryGate.observe(message, Date.now())) {
3918
3918
  session.client.sendSessionEvent({ type: "message", message: notice, kind: "claude-api-retry" });
3919
3919
  }
3920
3920
  } else if (message.type === "system" && message.subtype === "informational") {
3921
3921
  const warning = describeClaudeInformational(message);
3922
3922
  if (warning) {
3923
- messageBuffer$1.addMessage(warning, "status");
3923
+ messageBuffer.addMessage(warning, "status");
3924
3924
  session.client.sendSessionEvent({ type: "message", message: warning, kind: "claude-warning" });
3925
3925
  }
3926
3926
  } else if (message.type === "result") {
@@ -3931,7 +3931,7 @@ async function claudeRemoteLauncher(session, onPermissionModeChange, onEffective
3931
3931
  sdkToLogConverter.convert(message);
3932
3932
  return;
3933
3933
  }
3934
- formatClaudeMessageForInk(message, messageBuffer$1);
3934
+ formatClaudeMessageForInk(message, messageBuffer);
3935
3935
  if (message.type === "assistant") {
3936
3936
  let umessage = message;
3937
3937
  if (umessage.message.content && Array.isArray(umessage.message.content)) {
@@ -4049,15 +4049,15 @@ async function claudeRemoteLauncher(session, onPermissionModeChange, onEffective
4049
4049
  ]);
4050
4050
  while (!exitReason) {
4051
4051
  logger.logger.debug("[remote]: launch");
4052
- messageBuffer$1.addMessage("\u2550".repeat(40), "status");
4052
+ messageBuffer.addMessage("\u2550".repeat(40), "status");
4053
4053
  const isNewSession = session.sessionId !== previousSessionId;
4054
4054
  if (isNewSession) {
4055
- messageBuffer$1.addMessage("Starting new Claude session...", "status");
4055
+ messageBuffer.addMessage("Starting new Claude session...", "status");
4056
4056
  permissionHandler.reset();
4057
4057
  sdkToLogConverter.resetParentChain();
4058
4058
  logger.logger.debug(`[remote]: New session detected (previous: ${previousSessionId}, current: ${session.sessionId})`);
4059
4059
  } else {
4060
- messageBuffer$1.addMessage("Continuing Claude session...", "status");
4060
+ messageBuffer.addMessage("Continuing Claude session...", "status");
4061
4061
  logger.logger.debug(`[remote]: Continuing existing session: ${session.sessionId}`);
4062
4062
  }
4063
4063
  previousSessionId = session.sessionId;
@@ -4345,7 +4345,7 @@ async function claudeRemoteLauncher(session, onPermissionModeChange, onEffective
4345
4345
  }
4346
4346
  });
4347
4347
  logger.logger.debug(`[remote]: cleanup done +${Date.now() - t0}ms rawMode=${process.stdin.isRaw}`);
4348
- messageBuffer$1.clear();
4348
+ messageBuffer.clear();
4349
4349
  if (abortFuture) {
4350
4350
  abortFuture.resolve(void 0);
4351
4351
  }
@@ -4379,7 +4379,7 @@ async function loop(opts) {
4379
4379
  logger.logger.debug(`[loop] Iteration with mode: ${mode}`);
4380
4380
  switch (mode) {
4381
4381
  case "local": {
4382
- const { claudeLocalLauncher } = await Promise.resolve().then(function () { return require('./claudeLocalLauncher-B4hJHpCA.cjs'); });
4382
+ const { claudeLocalLauncher } = await Promise.resolve().then(function () { return require('./claudeLocalLauncher-BhvPbcyH.cjs'); });
4383
4383
  const result = await claudeLocalLauncher(session);
4384
4384
  switch (result.type) {
4385
4385
  case "switch":
@@ -4544,71 +4544,6 @@ function cleanupHookSettingsFile(filepath) {
4544
4544
  }
4545
4545
  }
4546
4546
 
4547
- async function settleSessionOnExit(sessionId, intent, deps) {
4548
- if (intent === "archive") {
4549
- deps.updateMetadata((currentMetadata) => ({
4550
- ...currentMetadata,
4551
- lifecycleState: "archived",
4552
- lifecycleStateSince: Date.now(),
4553
- archivedBy: "cli",
4554
- archiveReason: "User terminated"
4555
- }));
4556
- }
4557
- if (intent === "hibernate" && deps.hibernation) {
4558
- const stamp = deps.hibernation;
4559
- const handler = (currentMetadata) => ({ ...currentMetadata, hibernation: stamp });
4560
- const landed = deps.updateMetadataAndWait ? await deps.updateMetadataAndWait(handler) : (deps.updateMetadata(handler), false);
4561
- if (!landed) deps.log?.("[START] hibernation stamp not confirmed before going offline");
4562
- }
4563
- deps.sendSessionDeath();
4564
- try {
4565
- if (intent === "archive") await deps.archiveSession(sessionId);
4566
- else await deps.deactivateSession(sessionId);
4567
- } catch (error) {
4568
- deps.log?.(`[START] ${intent === "archive" ? "archiveSession" : "deactivateSession"} during cleanup failed:`, error);
4569
- }
4570
- }
4571
- class SessionExitGate {
4572
- decided = null;
4573
- hibernateCommitted = false;
4574
- deferred = null;
4575
- /** Returns the intent to act on, or null when cleanup already started. */
4576
- claim(intent) {
4577
- if (this.decided === "hibernate" && !this.hibernateCommitted && intent !== "hibernate") {
4578
- if (this.deferred !== "archive") this.deferred = intent;
4579
- return null;
4580
- }
4581
- if (this.decided !== null) return null;
4582
- this.decided = intent;
4583
- return intent;
4584
- }
4585
- get current() {
4586
- return this.decided;
4587
- }
4588
- /** B-587: an exit was requested while the hibernation was deciding. */
4589
- get exitRequested() {
4590
- return this.deferred !== null;
4591
- }
4592
- /** B-587: the hibernation passed its last check — no more deferral. */
4593
- commitHibernate() {
4594
- if (this.decided === "hibernate") this.hibernateCommitted = true;
4595
- }
4596
- /**
4597
- * B-587: a hibernation that aborted hands the exit back. Returns the exit
4598
- * deferred meanwhile (the caller must run it now), or null.
4599
- */
4600
- release(intent) {
4601
- if (this.decided !== intent || intent === "hibernate" && this.hibernateCommitted) return null;
4602
- this.decided = null;
4603
- const deferred = this.deferred;
4604
- this.deferred = null;
4605
- return deferred;
4606
- }
4607
- }
4608
- function exitIntentFromArchiveFlag(archive) {
4609
- return archive ?? true ? "archive" : "offline";
4610
- }
4611
-
4612
4547
  function isUnsupportedSideQuestionError(error) {
4613
4548
  const message = error instanceof Error ? error.message : String(error);
4614
4549
  return /unknown|unsupported|not supported|unrecognized|invalid.*subtype/i.test(message);
@@ -4785,7 +4720,7 @@ function registerSideQuestionHandler(rpc, deps) {
4785
4720
  const retainMs = deps.retainMs ?? SIDE_QUESTION_RETAIN_MS;
4786
4721
  const maxRunMs = deps.maxRunMs ?? SIDE_QUESTION_MAX_RUN_MS;
4787
4722
  const fork = deps.run ?? (async (input) => {
4788
- const { query } = await Promise.resolve().then(function () { return require('./index-CUuc6iCn.cjs'); });
4723
+ const { query } = await Promise.resolve().then(function () { return require('./index-DmTlDRSL.cjs'); });
4789
4724
  return runSideQuestion(query, input);
4790
4725
  });
4791
4726
  const run = async (input, live) => {
@@ -5208,6 +5143,9 @@ function resolveMessageMode(current, meta, ctx) {
5208
5143
 
5209
5144
  exports.reportSessionEditToDaemon = controlClient.reportSessionEditToDaemon;
5210
5145
  exports.startHappyServer = deterministicJson.startHappyServer;
5146
+ exports.SessionExitGate = sessionExitLifecycle.SessionExitGate;
5147
+ exports.exitIntentFromArchiveFlag = sessionExitLifecycle.exitIntentFromArchiveFlag;
5148
+ exports.settleSessionOnExit = sessionExitLifecycle.settleSessionOnExit;
5211
5149
  exports.claudeCheckSession = systemPrompt.claudeCheckSession;
5212
5150
  exports.parseSpecialCommand = specialCommands.parseSpecialCommand;
5213
5151
  exports.contentLogMetadata = contentLogMetadata.contentLogMetadata;
@@ -5226,7 +5164,6 @@ exports.createSelfReportState = reportProgressTool.createSelfReportState;
5226
5164
  exports.BoardAnalyzer = BoardAnalyzer;
5227
5165
  exports.FileRateLimiter = FileRateLimiter;
5228
5166
  exports.PrewarmHookGate = PrewarmHookGate;
5229
- exports.SessionExitGate = SessionExitGate;
5230
5167
  exports.acquirePrewarmSlot = acquirePrewarmSlot;
5231
5168
  exports.claudeModeHash = claudeModeHash;
5232
5169
  exports.claudePrewarmEligibility = claudePrewarmEligibility;
@@ -5235,7 +5172,6 @@ exports.cleanupHookSettingsFile = cleanupHookSettingsFile;
5235
5172
  exports.createClaudePrewarmLease = createClaudePrewarmLease;
5236
5173
  exports.disposeAllClaudePrewarms = disposeAllClaudePrewarms;
5237
5174
  exports.evaluatePrewarmPrediction = evaluatePrewarmPrediction;
5238
- exports.exitIntentFromArchiveFlag = exitIntentFromArchiveFlag;
5239
5175
  exports.formatPrewarmLine = formatPrewarmLine;
5240
5176
  exports.generateHookSettingsFile = generateHookSettingsFile;
5241
5177
  exports.loop = loop;
@@ -5246,7 +5182,6 @@ exports.readPrewarmCache = readPrewarmCache;
5246
5182
  exports.registerSideQuestionHandler = registerSideQuestionHandler;
5247
5183
  exports.replayClaudeForkJsonl = replayClaudeForkJsonl;
5248
5184
  exports.resolveMessageMode = resolveMessageMode;
5249
- exports.settleSessionOnExit = settleSessionOnExit;
5250
5185
  exports.startHookServer = startHookServer;
5251
5186
  exports.withAssistantDenylist = withAssistantDenylist;
5252
5187
  exports.writePrewarmCache = writePrewarmCache;