very-happy-cli 0.2.177 → 0.2.179

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 (203) hide show
  1. package/dist/{AcpBackend-B0K0WrtW.mjs → AcpBackend-CHp3y7cb.mjs} +135 -16
  2. package/dist/{AcpBackend-B-ny68XM.cjs → AcpBackend-DFipFF7-.cjs} +135 -16
  3. package/dist/{AcpSessionManager-CjdJLofq.cjs → AcpSessionManager-0zpvRJXc.cjs} +38 -4
  4. package/dist/{AcpSessionManager-DykjzBM4.mjs → AcpSessionManager-d2-rKWWa.mjs} +38 -4
  5. package/dist/{BasePermissionHandler-DR6nxuEn.cjs → BasePermissionHandler-CH3zuEkA.cjs} +5 -2
  6. package/dist/{BasePermissionHandler-hdY7kTqX.mjs → BasePermissionHandler-DdZBYIR4.mjs} +5 -2
  7. package/dist/acpSessionResume-DTGmAPLt.mjs +67 -0
  8. package/dist/acpSessionResume-oiCBnAVA.cjs +74 -0
  9. package/dist/{agentHome-BdTXEUPe.cjs → agentHome-BWcz8mz0.cjs} +5 -5
  10. package/dist/{agentHome-GRN2VfHv.mjs → agentHome-CghLvL_1.mjs} +5 -5
  11. package/dist/{api-BWX10o97.cjs → api-Cmjfr8Z7.cjs} +29 -261
  12. package/dist/{api-CKBViqI3.mjs → api-CzwFpJQc.mjs} +22 -254
  13. package/dist/{apiMachine-DttO4UFj.mjs → apiMachine-DJkTEiqy.mjs} +53 -16
  14. package/dist/{apiMachine-BYYFGgFs.cjs → apiMachine-G6OogT08.cjs} +53 -16
  15. package/dist/{attachmentContent-cPVF463_.mjs → attachmentContent-B2os4HbA.mjs} +2 -2
  16. package/dist/{attachmentContent-kJKXpkMX.cjs → attachmentContent-Bo0UAsSu.cjs} +4 -4
  17. package/dist/{auth-BmESeKuM.mjs → auth-BS6PaOOG.mjs} +6 -6
  18. package/dist/{auth-CTECt2Oz.cjs → auth-D6bBUwZa.cjs} +6 -6
  19. package/dist/{auth-CKdXb9zp.mjs → auth-DMX0xPNK.mjs} +9 -9
  20. package/dist/{auth-DNxVmVbn.cjs → auth-HEhRaNgL.cjs} +9 -9
  21. package/dist/{authRelay-DSAvg1uv.mjs → authRelay-DhQhkBvX.mjs} +1 -1
  22. package/dist/{authRelay-BdYkC1Po.cjs → authRelay-Dy1qU9td.cjs} +1 -0
  23. package/dist/{auto-D1ypjjfx.cjs → auto-C6I55iOh.cjs} +19 -18
  24. package/dist/{auto-Ch3203qd.mjs → auto-Cl1SEDcD.mjs} +19 -18
  25. package/dist/{bootstrap-6OI698q9.cjs → bootstrap-exVucYav.cjs} +2 -2
  26. package/dist/{bootstrap-C0s2bPFQ.mjs → bootstrap-iuyufnp3.mjs} +2 -2
  27. package/dist/{browser-DG6Uof5O.cjs → browser-BohJK12g.cjs} +1 -1
  28. package/dist/{browser-BlLWZUMx.mjs → browser-CSYum7xH.mjs} +1 -1
  29. package/dist/{claudeLocal-CcWcKnoo.mjs → claudeLocal-Dq_R3Ax_.mjs} +6 -5
  30. package/dist/{claudeLocal-CemsIArT.cjs → claudeLocal-re4yjSTx.cjs} +6 -5
  31. package/dist/{claudeLocalLauncher-A4VuevIi.cjs → claudeLocalLauncher-B4hJHpCA.cjs} +11 -10
  32. package/dist/{claudeLocalLauncher-7p6y88nj.mjs → claudeLocalLauncher-CN67lN7-.mjs} +11 -10
  33. package/dist/{claudeSessionFork-BtROOjqf.mjs → claudeSessionFork-BihfD0Ik.mjs} +1 -1
  34. package/dist/{claudeSessionFork-CbDfm8Fz.cjs → claudeSessionFork-DiSMYerV.cjs} +1 -1
  35. package/dist/{client-DyvBTYee.cjs → client-BKcK1Bi-.cjs} +3 -3
  36. package/dist/client-BhoEBnuN.mjs +71 -0
  37. package/dist/{client-COmgDDy0.cjs → client-CuVdN6PP.cjs} +2 -2
  38. package/dist/{client-BPMWutfs.mjs → client-DuTDwWSQ.mjs} +3 -3
  39. package/dist/client-ZjOsn6nZ.cjs +76 -0
  40. package/dist/{client-DG5ndWLw.mjs → client-wo9nbxuf.mjs} +2 -2
  41. package/dist/codex/happyMcpStdioBridge.cjs +25 -16
  42. package/dist/codex/happyMcpStdioBridge.mjs +25 -16
  43. package/dist/{codexAppServerClient-D-Z8qSfI.mjs → codexAppServerClient-BK3zra_1.mjs} +3 -3
  44. package/dist/{codexAppServerClient-R24WZZfg.cjs → codexAppServerClient-Dt5zxrun.cjs} +3 -3
  45. package/dist/{codexCommand-CVTkZJ1o.mjs → codexCommand-B6pY7CMh.mjs} +66 -61
  46. package/dist/{codexCommand-6hW19gsq.cjs → codexCommand-CAZ1SLjg.cjs} +89 -84
  47. package/dist/{codexTermination-CCIfwzcx.mjs → codexTermination-Cd1Eon_4.mjs} +1 -1
  48. package/dist/{codexTermination-BBU7e92y.cjs → codexTermination-DmGbHxcD.cjs} +1 -1
  49. package/dist/{config-CvsNChKX.mjs → config-2oMG_fEI.mjs} +3 -3
  50. package/dist/{config-DhdrvOLV.cjs → config-B0uK6K7n.cjs} +3 -3
  51. package/dist/{configuration-DZPy0T9Z.cjs → configuration-CMHZnp6G.cjs} +1 -1
  52. package/dist/{configuration-D55F0t16.mjs → configuration-WMi4idBB.mjs} +1 -1
  53. package/dist/{connect-CwCXMRmD.mjs → connect-BLVHhHzA.mjs} +15 -15
  54. package/dist/{connect-Wz-XZYXW.cjs → connect-uaglGrde.cjs} +15 -15
  55. package/dist/{context-BKbrZ55r.cjs → context-DXzU5bFM.cjs} +1 -1
  56. package/dist/{context-CCRpVXFo.mjs → context-DploEcoN.mjs} +1 -1
  57. package/dist/{controlClient-C4xB5J6O.mjs → controlClient-BWUJrj3t.mjs} +3 -3
  58. package/dist/{controlClient-SX8gSza2.cjs → controlClient-C-5qCt8W.cjs} +3 -3
  59. package/dist/{createSessionMetadata-Bi-m0Y_O.mjs → createSessionMetadata-3uXrJgOW.mjs} +2 -2
  60. package/dist/{createSessionMetadata-BCFmYlBo.cjs → createSessionMetadata-BkIzHALd.cjs} +2 -2
  61. package/dist/{defaultPermissionMode-wBcbBezm.mjs → defaultPermissionMode-BzxLh20a.mjs} +2 -2
  62. package/dist/{defaultPermissionMode-DMBEnXll.cjs → defaultPermissionMode-pS3vmiSg.cjs} +2 -2
  63. package/dist/{deterministicJson-ChGfQEF6.cjs → deterministicJson-B8z2GPi9.cjs} +220 -14
  64. package/dist/{deterministicJson-BkQETt8_.mjs → deterministicJson-D_whDMFd.mjs} +217 -12
  65. package/dist/{doctor-BsN3JZJn.cjs → doctor-Br1Kcy2J.cjs} +8 -8
  66. package/dist/{doctor-B9c2C9dF.mjs → doctor-CmtSsR2-.mjs} +8 -8
  67. package/dist/{downloadTarget-Dj3WoVJa.cjs → downloadTarget-BQJK_6oH.cjs} +6 -6
  68. package/dist/{downloadTarget-ByXzbDK4.mjs → downloadTarget-BoNwTIH_.mjs} +6 -6
  69. package/dist/{ensureDaemonRunning-7Wb8M7Lv.cjs → ensureDaemonRunning-BRUmsq6J.cjs} +5 -5
  70. package/dist/{ensureDaemonRunning--HYzs5Ce.mjs → ensureDaemonRunning-Czo9IHJQ.mjs} +5 -5
  71. package/dist/{handleResumeCommand-DHddBkNJ.mjs → handleResumeCommand-C8thKjqf.mjs} +22 -6
  72. package/dist/{handleResumeCommand-OmuUGYjQ.cjs → handleResumeCommand-tKD_Hpxc.cjs} +22 -6
  73. package/dist/{index-CrR4JISa.cjs → index-B0UjHlAe.cjs} +5 -5
  74. package/dist/{index-BzJNDsJq.mjs → index-BTxHphpV.mjs} +254 -49
  75. package/dist/index-BiyC7cZ3.mjs +18 -0
  76. package/dist/{index-De8L5lFK.cjs → index-C6O2vVjm.cjs} +156 -34
  77. package/dist/index-CUuc6iCn.cjs +24 -0
  78. package/dist/{index-Dhl6_bw7.mjs → index-CdQI0C9p.mjs} +5 -5
  79. package/dist/{index-D9NoYc5I.cjs → index-D09T1m8Y.cjs} +3 -3
  80. package/dist/{index-CEm0MYiS.mjs → index-D3bidoG8.mjs} +3 -3
  81. package/dist/{index-BRJzH4sc.cjs → index-DMqDMT1Q.cjs} +257 -52
  82. package/dist/{index-DMy3OCBe.mjs → index-DPOa4NhL.mjs} +154 -35
  83. package/dist/index.cjs +2 -2
  84. package/dist/index.mjs +2 -2
  85. package/dist/{install-BdvKiOQw.mjs → install-BX3lv3NO.mjs} +1 -1
  86. package/dist/{install-Cf6AFSWC.cjs → install-BXvf2E3o.cjs} +1 -1
  87. package/dist/{install-1qn-D9FS.cjs → install-CYRZxS87.cjs} +3 -3
  88. package/dist/{install-BDIUtPXi.mjs → install-hnve_9vq.mjs} +3 -3
  89. package/dist/lib.cjs +14 -14
  90. package/dist/lib.d.cts +65 -1
  91. package/dist/lib.d.mts +65 -1
  92. package/dist/lib.mjs +14 -14
  93. package/dist/{lidState-BqVsw7H1.mjs → lidState-Bb8fgXg3.mjs} +2 -2
  94. package/dist/{lidState-DxbK0qfu.cjs → lidState-Dv2wwFTj.cjs} +2 -2
  95. package/dist/{localHappyAgentAuth-D5tANdRD.cjs → localHappyAgentAuth-DjYvkXvV.cjs} +2 -2
  96. package/dist/{localHappyAgentAuth-Ce8kO2yc.mjs → localHappyAgentAuth-NEU7fax7.mjs} +2 -2
  97. package/dist/{logger-13cBr_ew.mjs → logger-BtVhHnD8.mjs} +2 -2
  98. package/dist/{logger-LvwVeATU.cjs → logger-C1GWx3gi.cjs} +2 -2
  99. package/dist/{machineMetadata-29h7vgf4.cjs → machineMetadata-CLHS9sv_.cjs} +3 -3
  100. package/dist/{machineMetadata-dMida2qq.mjs → machineMetadata-D-g--oU_.mjs} +3 -3
  101. package/dist/{main-x4nAhdH5.mjs → main-B2LWV8DI.mjs} +59 -46
  102. package/dist/{main-DpM5jaFH.cjs → main-CWhSsbtU.cjs} +59 -46
  103. package/dist/{mcp-DQv3caXs.cjs → mcp-CARUsXHV.cjs} +15 -15
  104. package/dist/{mcp-DMiFGYMT.mjs → mcp-ext92q3Y.mjs} +15 -15
  105. package/dist/{mirrorProtocol-Bz8tEabR.mjs → mirrorProtocol-BwYibqry.mjs} +3 -3
  106. package/dist/{mirrorProtocol-BfrERW7Z.cjs → mirrorProtocol-DEy2g1CB.cjs} +3 -3
  107. package/dist/{package-CjlsAaRe.mjs → package-BPPebGQF.mjs} +7 -7
  108. package/dist/{package-Ch9WGDV_.cjs → package-SgqTYsjn.cjs} +7 -7
  109. package/dist/panels-BZ0_Tt7B.mjs +137 -0
  110. package/dist/panels-D1c7q2dD.cjs +142 -0
  111. package/dist/{peerTools-CxmrKnfV.mjs → peerTools-CWKzcQ7u.mjs} +60 -10
  112. package/dist/{peerTools-DtGKWli5.cjs → peerTools-DRQETXaz.cjs} +60 -9
  113. package/dist/{persistence-DXbKOHxl.cjs → persistence-BegE7NPa.cjs} +14 -3
  114. package/dist/{persistence-C_tYtOqK.mjs → persistence-Cr-wutZ4.mjs} +14 -4
  115. package/dist/{piRunnerArgs-BVRZe2AR.cjs → piRunnerArgs-Cs-378Vz.cjs} +8 -2
  116. package/dist/{piRunnerArgs-BpHc-JZl.mjs → piRunnerArgs-DwvM_yWA.mjs} +7 -1
  117. package/dist/{piRuntime-D7eio8Ix.cjs → piRuntime-BG-1td_n.cjs} +2 -2
  118. package/dist/{piRuntime-DOdGF395.mjs → piRuntime-Bue5mnlc.mjs} +2 -2
  119. package/dist/{piTerminal-dpxz4Q8D.mjs → piTerminal-B5x9X5yV.mjs} +18 -18
  120. package/dist/{piTerminal-y_PRo2NY.cjs → piTerminal-G4z-xVyy.cjs} +18 -18
  121. package/dist/processTreeSnapshot-CuLJDNC-.mjs +101 -0
  122. package/dist/processTreeSnapshot-mDbnuojn.cjs +105 -0
  123. package/dist/prompt-BOouDaTM.mjs +99 -0
  124. package/dist/prompt-lgF9IE82.cjs +105 -0
  125. package/dist/{attachmentLimits-Di1Z93lN.mjs → pushNotifications-BdFjDjQe.mjs} +303 -3
  126. package/dist/{attachmentLimits-DtFqqiwR.cjs → pushNotifications-DaLQUyi0.cjs} +304 -2
  127. package/dist/{index-DFPT4HOO.cjs → query-Ctfg-5gy.cjs} +25 -5
  128. package/dist/{index-CEjJnq05.mjs → query-DYP_W1wp.mjs} +26 -3
  129. package/dist/{rateLimitWindows-DYHDGuzQ.mjs → rateLimitWindows-CuEqk_0g.mjs} +1 -1
  130. package/dist/{rateLimitWindows-DFnMU2Vt.cjs → rateLimitWindows-Dj_8voBK.cjs} +1 -1
  131. package/dist/{registerCommonHandlers-D8OMpBbQ.mjs → registerCommonHandlers-BAlP7SGc.mjs} +2 -2
  132. package/dist/{registerCommonHandlers-60VuTkdg.cjs → registerCommonHandlers-Cj084Sg7.cjs} +2 -2
  133. package/dist/{registerKillSessionHandler-Drhf7-Vz.mjs → registerKillSessionHandler-PD0jWtQo.mjs} +6 -6
  134. package/dist/{registerKillSessionHandler-pqChBKwO.cjs → registerKillSessionHandler-qMju0ZfF.cjs} +6 -6
  135. package/dist/{remoteSessionClient-B7NvjHD3.cjs → remoteSessionClient-B7i7MkYV.cjs} +5 -5
  136. package/dist/{remoteSessionClient-D01Hso2-.mjs → remoteSessionClient-Bn2qu5C5.mjs} +5 -5
  137. package/dist/{reportProgressTool-Du_zAK4h.cjs → reportProgressTool-CM1JFAHg.cjs} +84 -2
  138. package/dist/{reportProgressTool-B203EZCR.mjs → reportProgressTool-gHItlSzz.mjs} +82 -3
  139. package/dist/{resources-JDPugcDq.cjs → resources-CvIlkzpP.cjs} +30 -0
  140. package/dist/{resources-BdFBQi8r.mjs → resources-y9jfyO-_.mjs} +30 -0
  141. package/dist/{run-DX4Zs3Ug.mjs → run-BM4TxiyN.mjs} +249 -45
  142. package/dist/{run-DZ5jU53c.cjs → run-CNXwIe0A.cjs} +263 -59
  143. package/dist/{runClaude-ClRhHpwR.cjs → runClaude-CWhj2V4Q.cjs} +37 -41
  144. package/dist/{runClaude-CgPHXP0L.mjs → runClaude-C_3I8hvR.mjs} +37 -41
  145. package/dist/{runClaudeDeps-D2v_WDSL.cjs → runClaudeDeps-B81cOKnH.cjs} +295 -157
  146. package/dist/{runClaudeDeps-Dz2iydq4.mjs → runClaudeDeps-QGrOeDe2.mjs} +295 -160
  147. package/dist/{runGemini-DBXxpoY8.mjs → runGemini-BEdWEZLR.mjs} +61 -55
  148. package/dist/{runGemini-BtZqGFkp.cjs → runGemini-CgRLYbt5.cjs} +61 -55
  149. package/dist/{runOpenClaw-D8q8G57u.cjs → runOpenClaw-C1NVmzOL.cjs} +19 -19
  150. package/dist/{runOpenClaw-BOHpzCEU.mjs → runOpenClaw-DdQZAYj1.mjs} +19 -19
  151. package/dist/{sandbox-C452Vrsc.mjs → sandbox-DjQUdCMG.mjs} +5 -5
  152. package/dist/{sandbox-Cu9mMzjx.cjs → sandbox-nocIjliq.cjs} +5 -5
  153. package/dist/selfCheck-CjCF4C3v.mjs +85 -0
  154. package/dist/{selfCheck-gKa3uVr1.cjs → selfCheck-DCt4Uzbq.cjs} +36 -35
  155. package/dist/{send-B8HARi7x.mjs → send-Ct7X4pPU.mjs} +9 -9
  156. package/dist/{send-2Vb5eppI.cjs → send-Dydf_hwZ.cjs} +9 -9
  157. package/dist/{server-Db9Wuam3.cjs → server-CosABFbd.cjs} +7 -7
  158. package/dist/{server-BBWCIZyS.mjs → server-DTQGZMxh.mjs} +5 -5
  159. package/dist/{sessionLock-6qL_N6Rn.cjs → sessionLock-DokGab2R.cjs} +16 -3
  160. package/dist/{sessionLock-ZfvFVdUi.mjs → sessionLock-WYIyaVO4.mjs} +16 -4
  161. package/dist/{sessionOps-CdgbEJgf.mjs → sessionOps-BIGgRube.mjs} +11 -6
  162. package/dist/{sessionOps-Dmt7WUUs.cjs → sessionOps-S-qPBLFf.cjs} +11 -6
  163. package/dist/{sessionScanner-CQL_WSaC.cjs → sessionScanner-CIMM2hvZ.cjs} +3 -3
  164. package/dist/{sessionScanner-CNVaSNOn.mjs → sessionScanner-o5hnMi5e.mjs} +3 -3
  165. package/dist/{sessions-DTomHfFg.mjs → sessions-BJHEZpi2.mjs} +40 -18
  166. package/dist/{sessions-BJblG_Hx.cjs → sessions-JchI1w3z.cjs} +40 -17
  167. package/dist/{setupOfflineReconnection-DVA0VpQL.cjs → setupOfflineReconnection-CNiAt5ZP.cjs} +2 -2
  168. package/dist/{setupOfflineReconnection-C5trsV-j.mjs → setupOfflineReconnection-DMiBO2y9.mjs} +2 -2
  169. package/dist/{spawn-DRyNAqD8.cjs → spawn-6PD7nnoC.cjs} +49 -18
  170. package/dist/{spawn-CQJFgoOq.mjs → spawn-DgvUNYEo.mjs} +49 -18
  171. package/dist/{spawnAgents-CCjJifAW.cjs → spawnAgents-DsXgegHM.cjs} +37 -1
  172. package/dist/spawnAgents-P006Hqio.mjs +79 -0
  173. package/dist/{spawnHappyCLI-B_0RWxD4.mjs → spawnHappyCLI-CCOrEtf9.mjs} +1 -1
  174. package/dist/{spawnHappyCLI-ChniczJ5.cjs → spawnHappyCLI-Dywezwk6.cjs} +1 -1
  175. package/dist/{specialCommands-DkdFJi4N.mjs → specialCommands-DPcd9edP.mjs} +3 -3
  176. package/dist/{specialCommands-DbntVs0d.cjs → specialCommands-QxPpkGKf.cjs} +3 -3
  177. package/dist/{startFileWatcher-UQyTSRAP.mjs → startFileWatcher-DghDOCO4.mjs} +1 -1
  178. package/dist/{startFileWatcher-C292fhra.cjs → startFileWatcher-RECH5qY8.cjs} +1 -1
  179. package/dist/{streamRelay-_qCd873P.mjs → streamRelay-DMV_TXfS.mjs} +1 -1
  180. package/dist/{streamRelay-Cx01enfe.cjs → streamRelay-DlUWKUpo.cjs} +1 -1
  181. package/dist/{sync-C3p7-KLn.mjs → sync-CSe0Rf45.mjs} +1 -1
  182. package/dist/{sync-C7sxoUYG.cjs → sync-D23jbqVa.cjs} +1 -1
  183. package/dist/{systemPrompt-DtibzbRU.cjs → systemPrompt-BOy4kU4P.cjs} +4 -3
  184. package/dist/{systemPrompt-CdHOlyVW.mjs → systemPrompt-CFNKnh65.mjs} +4 -3
  185. package/dist/{teams-ujXr3AFn.mjs → teams-DyY669f0.mjs} +9 -9
  186. package/dist/{teams-D7O7TpVU.cjs → teams-Ov2BDT-A.cjs} +9 -9
  187. package/dist/{time-yEL6wHUF.mjs → time-65DcU6Jx.mjs} +1 -1
  188. package/dist/{time-Dg5tVB8S.cjs → time-CrwIMHta.cjs} +1 -1
  189. package/dist/{titleGenerator-BMEaDTwU.cjs → titleGenerator-CS_rh2_J.cjs} +9 -8
  190. package/dist/{titleGenerator-Dr-BtjzO.mjs → titleGenerator-CiAMxf7s.mjs} +9 -8
  191. package/dist/{todo-CvJe4M2C.mjs → todo-BDONw0sK.mjs} +7 -7
  192. package/dist/{todo-CUcFamGs.cjs → todo-KY-okGii.cjs} +7 -7
  193. package/dist/{tools-BrM3bZW5.mjs → tools-D8-PnZEG.mjs} +1 -1
  194. package/dist/{tools-DDKTB5aQ.cjs → tools-_w52DZG6.cjs} +1 -1
  195. package/dist/{uninstall-7oLuhYIu.cjs → uninstall-8vnLN-IE.cjs} +3 -3
  196. package/dist/{uninstall-CEcMMQGz.mjs → uninstall-_fjGRP9b.mjs} +3 -3
  197. package/dist/webPanels-B2_C2-3g.mjs +49 -0
  198. package/dist/webPanels-FCgFKvVe.cjs +53 -0
  199. package/package.json +7 -7
  200. package/dist/selfCheck-BAvqBwBR.mjs +0 -84
  201. package/dist/sessionModeFile-CWVq8AT9.mjs +0 -32
  202. package/dist/sessionModeFile-CsLtn_PL.cjs +0 -36
  203. package/dist/spawnAgents-BjtmjBvP.mjs +0 -45
@@ -1,59 +1,61 @@
1
1
  'use strict';
2
2
 
3
3
  var os = require('node:os');
4
- var sessionLock = require('./sessionLock-6qL_N6Rn.cjs');
5
- var persistence = require('./persistence-DXbKOHxl.cjs');
6
- var defaultPermissionMode = require('./defaultPermissionMode-DMBEnXll.cjs');
4
+ var sessionLock = require('./sessionLock-DokGab2R.cjs');
5
+ var persistence = require('./persistence-BegE7NPa.cjs');
6
+ var defaultPermissionMode = require('./defaultPermissionMode-pS3vmiSg.cjs');
7
7
  var node_crypto = require('node:crypto');
8
- var api = require('./api-BWX10o97.cjs');
9
- var logger = require('./logger-LvwVeATU.cjs');
10
- var createSessionMetadata = require('./createSessionMetadata-BCFmYlBo.cjs');
11
- var _package = require('./package-Ch9WGDV_.cjs');
12
- var index = require('./index-De8L5lFK.cjs');
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');
13
13
  var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
14
- var configuration = require('./configuration-DZPy0T9Z.cjs');
15
- var controlClient = require('./controlClient-SX8gSza2.cjs');
16
- var machineMetadata = require('./machineMetadata-29h7vgf4.cjs');
14
+ var configuration = require('./configuration-CMHZnp6G.cjs');
15
+ var controlClient = require('./controlClient-C-5qCt8W.cjs');
16
+ var machineMetadata = require('./machineMetadata-CLHS9sv_.cjs');
17
17
  var projectPath = require('./projectPath-ChLhdOyt.cjs');
18
18
  var path = require('node:path');
19
19
  var permissionMode = require('./permissionMode-CrV-XuMs.cjs');
20
- var authRelay = require('./authRelay-BdYkC1Po.cjs');
20
+ var authRelay = require('./authRelay-Dy1qU9td.cjs');
21
21
  var promises = require('node:fs/promises');
22
- var attachmentContent = require('./attachmentContent-kJKXpkMX.cjs');
22
+ var attachmentContent = require('./attachmentContent-Bo0UAsSu.cjs');
23
23
  var transcriptCursor = require('./transcriptCursor-DcXGLeSc.cjs');
24
24
  var startupPlan = require('./startupPlan-BLMbfQIH.cjs');
25
25
  require('node:fs');
26
+ require('./processTreeSnapshot-mDbnuojn.cjs');
27
+ require('node:child_process');
26
28
  require('zod');
27
29
  require('axios');
28
- require('./lidState-DxbK0qfu.cjs');
30
+ require('./lidState-Dv2wwFTj.cjs');
29
31
  require('os');
30
32
  require('child_process');
31
33
  require('node:events');
32
34
  require('socket.io-client');
33
- require('./attachmentLimits-DtFqqiwR.cjs');
35
+ require('./pushNotifications-DaLQUyi0.cjs');
36
+ require('./contentLogMetadata-ZSFk_NjQ.cjs');
34
37
  require('./limits-C-a7gr04.cjs');
35
- require('./time-Dg5tVB8S.cjs');
36
- require('./registerCommonHandlers-60VuTkdg.cjs');
38
+ require('./time-CrwIMHta.cjs');
39
+ require('./registerCommonHandlers-Cj084Sg7.cjs');
37
40
  require('util');
38
41
  require('fs/promises');
39
42
  require('crypto');
40
43
  require('path');
41
44
  require('cross-spawn');
42
45
  require('@paralleldrive/cuid2');
43
- require('./sync-C7sxoUYG.cjs');
46
+ require('./sync-D23jbqVa.cjs');
44
47
  require('./backgroundTaskActivity-CBvUdj39.cjs');
45
- require('./contentLogMetadata-ZSFk_NjQ.cjs');
46
48
  require('chalk');
47
49
  require('node:util');
48
50
  require('./detectCLI-DR9ZaN6B.cjs');
49
51
  require('fs');
50
- require('./localHappyAgentAuth-D5tANdRD.cjs');
52
+ require('./localHappyAgentAuth-DjYvkXvV.cjs');
51
53
  require('tweetnacl');
52
54
  require('url');
53
55
 
54
56
  const DEFAULT_CLAUDE_MODEL = void 0;
55
57
  const DEFAULT_CLAUDE_EFFORT = void 0;
56
- const importRunClaudeDeps = () => Promise.resolve().then(function () { return require('./runClaudeDeps-D2v_WDSL.cjs'); });
58
+ const importRunClaudeDeps = () => Promise.resolve().then(function () { return require('./runClaudeDeps-B81cOKnH.cjs'); });
57
59
  async function runClaude(credentials, options = {}) {
58
60
  logger.logger.debug(`[CLAUDE] ===== CLAUDE MODE STARTING =====`);
59
61
  logger.logger.debug(`[CLAUDE] This is the Claude agent, NOT Gemini`);
@@ -67,7 +69,7 @@ async function runClaude(credentials, options = {}) {
67
69
  const isAssistantVariant = process.env.HAPPY_SESSION_VARIANT === "assistant";
68
70
  if (isAssistantVariant) {
69
71
  try {
70
- const { bootstrapAssistantHome } = await Promise.resolve().then(function () { return require('./bootstrap-6OI698q9.cjs'); });
72
+ const { bootstrapAssistantHome } = await Promise.resolve().then(function () { return require('./bootstrap-exVucYav.cjs'); });
71
73
  await bootstrapAssistantHome();
72
74
  } catch (error) {
73
75
  logger.logger.debug("[START] Assistant home bootstrap failed:", error);
@@ -142,7 +144,7 @@ async function runClaude(credentials, options = {}) {
142
144
  // a brand-new session cannot pick a PDF until after sending once.
143
145
  attachmentKinds: [...attachmentContent.CLAUDE_ATTACHMENT_KINDS],
144
146
  queueCancellation: true,
145
- capabilities: ["claude-steer-v1", "claude-live-permission-v1", "claude-live-permission-v2", "claude-btw-v1", "claude-runtime-controls-v1", "claude-opus-5-5-v1", index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY],
147
+ capabilities: ["claude-steer-v1", "claude-live-permission-v1", "claude-live-permission-v2", "claude-btw-v1", "claude-runtime-controls-v1", "claude-opus-5-5-v1", index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY, index.PROJECT_SESSION_CAPABILITY],
146
148
  // Effective mode this process enforces. Kept current by
147
149
  // publishPermissionMode below; the web renders it instead of guessing.
148
150
  permissionMode: permissionMode.mapToClaudeMode(initialPermissionMode ?? "default"),
@@ -187,7 +189,7 @@ async function runClaude(credentials, options = {}) {
187
189
  }
188
190
  if (!response) {
189
191
  let offlineSessionId = null;
190
- const { claudeLocal } = await Promise.resolve().then(function () { return require('./claudeLocal-CemsIArT.cjs'); });
192
+ const { claudeLocal } = await Promise.resolve().then(function () { return require('./claudeLocal-re4yjSTx.cjs'); });
191
193
  const { createSessionScanner: createSessionScanner2 } = await loadDeps();
192
194
  const reconnection = api.startOfflineReconnection({
193
195
  serverUrl: configuration.configuration.serverUrl,
@@ -309,7 +311,9 @@ async function runClaude(credentials, options = {}) {
309
311
  claudeCheckSession,
310
312
  createSessionScanner,
311
313
  getProjectPath,
312
- RawJSONLinesSchema,
314
+ replayClaudeForkJsonl,
315
+ snapshotTree,
316
+ terminateSurvivors,
313
317
  TitleGenerator,
314
318
  BoardAnalyzer,
315
319
  FileRateLimiter,
@@ -351,21 +355,10 @@ async function runClaude(credentials, options = {}) {
351
355
  const jsonlPath = path.join(getProjectPath(workingDirectory), `${forkClaudeSessionId}.jsonl`);
352
356
  try {
353
357
  const file = await promises.readFile(jsonlPath, "utf-8");
354
- const lines = file.split("\n");
355
- let backfilled = 0;
356
- for (const line of lines) {
357
- if (line.trim().length === 0) continue;
358
- let parsed;
359
- try {
360
- parsed = JSON.parse(line);
361
- } catch {
362
- continue;
363
- }
364
- const result = RawJSONLinesSchema.safeParse(parsed);
365
- if (!result.success) continue;
366
- session.sendClaudeSessionMessage(result.data);
367
- backfilled += 1;
368
- }
358
+ const backfilled = replayClaudeForkJsonl(file, {
359
+ send: (line) => session.sendClaudeSessionMessage(line),
360
+ closeTurn: () => session.closeReplayedClaudeTurn()
361
+ });
369
362
  logger.logger.debug(`[FORK BACKFILL] Replayed ${backfilled} historical messages from ${jsonlPath}`);
370
363
  session.updateMetadata((meta) => ({ ...meta, claudeSessionId: forkClaudeSessionId }));
371
364
  void forkBackfill.publishForkBackfillWhenCommitted(session, { count: backfilled }).then((published) => logger.logger.debug(`[FORK BACKFILL] ${published ? "Committed" : "Session closed before commit of"} ${backfilled} replayed messages`));
@@ -449,7 +442,7 @@ async function runClaude(credentials, options = {}) {
449
442
  session.sendClaudeSessionMessage(raw);
450
443
  }
451
444
  });
452
- const happyServer = await startHappyServer(session, { assistant: isAssistantVariant, selfReportState: boardSelfReport });
445
+ const happyServer = await startHappyServer(session, { assistant: isAssistantVariant, selfReportState: boardSelfReport, push: { sendAttention: (input) => api$1.push().sendAttention(input) } });
453
446
  logger.logger.debug(`[START] Happy MCP server started at ${happyServer.url}`);
454
447
  let currentSession = null;
455
448
  const prewarmHookGate = new PrewarmHookGate();
@@ -803,6 +796,7 @@ async function runClaude(credentials, options = {}) {
803
796
  logger.logger.debug(`[START] Received termination signal, cleaning up (archive=${intent === "archive"})...`);
804
797
  promptQueueDrain.close();
805
798
  cleanupPrewarm();
799
+ const wrapperTree = snapshotTree(process.pid);
806
800
  try {
807
801
  if (session) {
808
802
  currentSession?.cleanup();
@@ -822,9 +816,11 @@ async function runClaude(credentials, options = {}) {
822
816
  cleanupHookSettingsFile(hookSettingsPath);
823
817
  await remoteScanner.cleanup();
824
818
  logger.logger.debug("[START] Cleanup complete, exiting");
819
+ await terminateSurvivors(wrapperTree);
825
820
  process.exit(0);
826
821
  } catch (error) {
827
822
  logger.logger.debug("[START] Error during cleanup:", error);
823
+ await terminateSurvivors(wrapperTree).catch(() => void 0);
828
824
  process.exit(1);
829
825
  }
830
826
  };
@@ -1,57 +1,59 @@
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-ZfvFVdUi.mjs';
3
- import { r as readSettings, H as HIBERNATION_CAPABILITY, a as resolveCheckMs, l as latchKeepAwake, e as evaluateWrapperIdle } from './persistence-C_tYtOqK.mjs';
4
- import { D as DEFAULT_CLAUDE_PERMISSION_MODE, H as HibernationProbe, c as commitHibernation } from './defaultPermissionMode-wBcbBezm.mjs';
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';
5
5
  import { randomUUID } from 'node:crypto';
6
- import { c as connectionState, A as ApiClient, s as startOfflineReconnection } from './api-CKBViqI3.mjs';
7
- import { l as logger } from './logger-13cBr_ew.mjs';
8
- import { s as spawnOriginTags, a as sessionWorktreeMetadata } from './createSessionMetadata-Bi-m0Y_O.mjs';
9
- import { p as packageJson } from './package-CjlsAaRe.mjs';
10
- import { P as PROMPT_QUEUE_CAPABILITY } from './index-DMy3OCBe.mjs';
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';
11
11
  import { F as FORK_BACKFILL_CAPABILITY, p as publishForkBackfillWhenCommitted } from './forkBackfill-DYIjlN1Z.mjs';
12
- import { c as configuration } from './configuration-D55F0t16.mjs';
13
- import { n as notifyDaemonSessionStarted, c as checkDaemonHibernation } from './controlClient-C4xB5J6O.mjs';
14
- import { g as getInitialMachineMetadata } from './machineMetadata-dMida2qq.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';
15
15
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
16
16
  import { resolve, join } from 'node:path';
17
17
  import { a as applySandboxPermissionPolicy, r as resolveInitialClaudePermissionMode, m as mapToClaudeMode, b as reconcilePublishedPermissionMode } from './permissionMode-CH4FoZfU.mjs';
18
- import { d as decodeBase64, e as encodeBase64 } from './authRelay-DSAvg1uv.mjs';
18
+ import { d as decodeBase64, e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
19
19
  import { readFile } from 'node:fs/promises';
20
- import { C as CLAUDE_ATTACHMENT_KINDS, s as stripAttachmentManifest } from './attachmentContent-cPVF463_.mjs';
20
+ import { C as CLAUDE_ATTACHMENT_KINDS, s as stripAttachmentManifest } from './attachmentContent-B2os4HbA.mjs';
21
21
  import { T as TranscriptPathHints } from './transcriptCursor-B7T_gkQ0.mjs';
22
22
  import { p as planClaudeStartup } from './startupPlan-DFMyNgAs.mjs';
23
23
  import 'node:fs';
24
+ import './processTreeSnapshot-CuLJDNC-.mjs';
25
+ import 'node:child_process';
24
26
  import 'zod';
25
27
  import 'axios';
26
- import './lidState-BqVsw7H1.mjs';
28
+ import './lidState-Bb8fgXg3.mjs';
27
29
  import 'os';
28
30
  import 'child_process';
29
31
  import 'node:events';
30
32
  import 'socket.io-client';
31
- import './attachmentLimits-Di1Z93lN.mjs';
33
+ import './pushNotifications-BdFjDjQe.mjs';
34
+ import './contentLogMetadata-BlWI0egu.mjs';
32
35
  import './limits-DIo7rEBR.mjs';
33
- import './time-yEL6wHUF.mjs';
34
- import './registerCommonHandlers-D8OMpBbQ.mjs';
36
+ import './time-65DcU6Jx.mjs';
37
+ import './registerCommonHandlers-BAlP7SGc.mjs';
35
38
  import 'util';
36
39
  import 'fs/promises';
37
40
  import 'crypto';
38
41
  import 'path';
39
42
  import 'cross-spawn';
40
43
  import '@paralleldrive/cuid2';
41
- import './sync-C3p7-KLn.mjs';
44
+ import './sync-CSe0Rf45.mjs';
42
45
  import './backgroundTaskActivity-BVwJBl02.mjs';
43
- import './contentLogMetadata-BlWI0egu.mjs';
44
46
  import 'chalk';
45
47
  import 'node:util';
46
48
  import './detectCLI-CSGMlV51.mjs';
47
49
  import 'fs';
48
- import './localHappyAgentAuth-Ce8kO2yc.mjs';
50
+ import './localHappyAgentAuth-NEU7fax7.mjs';
49
51
  import 'tweetnacl';
50
52
  import 'url';
51
53
 
52
54
  const DEFAULT_CLAUDE_MODEL = void 0;
53
55
  const DEFAULT_CLAUDE_EFFORT = void 0;
54
- const importRunClaudeDeps = () => import('./runClaudeDeps-Dz2iydq4.mjs');
56
+ const importRunClaudeDeps = () => import('./runClaudeDeps-QGrOeDe2.mjs');
55
57
  async function runClaude(credentials, options = {}) {
56
58
  logger.debug(`[CLAUDE] ===== CLAUDE MODE STARTING =====`);
57
59
  logger.debug(`[CLAUDE] This is the Claude agent, NOT Gemini`);
@@ -65,7 +67,7 @@ async function runClaude(credentials, options = {}) {
65
67
  const isAssistantVariant = process.env.HAPPY_SESSION_VARIANT === "assistant";
66
68
  if (isAssistantVariant) {
67
69
  try {
68
- const { bootstrapAssistantHome } = await import('./bootstrap-C0s2bPFQ.mjs');
70
+ const { bootstrapAssistantHome } = await import('./bootstrap-iuyufnp3.mjs');
69
71
  await bootstrapAssistantHome();
70
72
  } catch (error) {
71
73
  logger.debug("[START] Assistant home bootstrap failed:", error);
@@ -140,7 +142,7 @@ async function runClaude(credentials, options = {}) {
140
142
  // a brand-new session cannot pick a PDF until after sending once.
141
143
  attachmentKinds: [...CLAUDE_ATTACHMENT_KINDS],
142
144
  queueCancellation: true,
143
- capabilities: ["claude-steer-v1", "claude-live-permission-v1", "claude-live-permission-v2", "claude-btw-v1", "claude-runtime-controls-v1", "claude-opus-5-5-v1", PROMPT_QUEUE_CAPABILITY, FORK_BACKFILL_CAPABILITY, HIBERNATION_CAPABILITY],
145
+ capabilities: ["claude-steer-v1", "claude-live-permission-v1", "claude-live-permission-v2", "claude-btw-v1", "claude-runtime-controls-v1", "claude-opus-5-5-v1", PROMPT_QUEUE_CAPABILITY, FORK_BACKFILL_CAPABILITY, HIBERNATION_CAPABILITY, PROJECT_SESSION_CAPABILITY],
144
146
  // Effective mode this process enforces. Kept current by
145
147
  // publishPermissionMode below; the web renders it instead of guessing.
146
148
  permissionMode: mapToClaudeMode(initialPermissionMode ?? "default"),
@@ -185,7 +187,7 @@ async function runClaude(credentials, options = {}) {
185
187
  }
186
188
  if (!response) {
187
189
  let offlineSessionId = null;
188
- const { claudeLocal } = await import('./claudeLocal-CcWcKnoo.mjs');
190
+ const { claudeLocal } = await import('./claudeLocal-Dq_R3Ax_.mjs');
189
191
  const { createSessionScanner: createSessionScanner2 } = await loadDeps();
190
192
  const reconnection = startOfflineReconnection({
191
193
  serverUrl: configuration.serverUrl,
@@ -307,7 +309,9 @@ async function runClaude(credentials, options = {}) {
307
309
  claudeCheckSession,
308
310
  createSessionScanner,
309
311
  getProjectPath,
310
- RawJSONLinesSchema,
312
+ replayClaudeForkJsonl,
313
+ snapshotTree,
314
+ terminateSurvivors,
311
315
  TitleGenerator,
312
316
  BoardAnalyzer,
313
317
  FileRateLimiter,
@@ -349,21 +353,10 @@ async function runClaude(credentials, options = {}) {
349
353
  const jsonlPath = join(getProjectPath(workingDirectory), `${forkClaudeSessionId}.jsonl`);
350
354
  try {
351
355
  const file = await readFile(jsonlPath, "utf-8");
352
- const lines = file.split("\n");
353
- let backfilled = 0;
354
- for (const line of lines) {
355
- if (line.trim().length === 0) continue;
356
- let parsed;
357
- try {
358
- parsed = JSON.parse(line);
359
- } catch {
360
- continue;
361
- }
362
- const result = RawJSONLinesSchema.safeParse(parsed);
363
- if (!result.success) continue;
364
- session.sendClaudeSessionMessage(result.data);
365
- backfilled += 1;
366
- }
356
+ const backfilled = replayClaudeForkJsonl(file, {
357
+ send: (line) => session.sendClaudeSessionMessage(line),
358
+ closeTurn: () => session.closeReplayedClaudeTurn()
359
+ });
367
360
  logger.debug(`[FORK BACKFILL] Replayed ${backfilled} historical messages from ${jsonlPath}`);
368
361
  session.updateMetadata((meta) => ({ ...meta, claudeSessionId: forkClaudeSessionId }));
369
362
  void publishForkBackfillWhenCommitted(session, { count: backfilled }).then((published) => logger.debug(`[FORK BACKFILL] ${published ? "Committed" : "Session closed before commit of"} ${backfilled} replayed messages`));
@@ -447,7 +440,7 @@ async function runClaude(credentials, options = {}) {
447
440
  session.sendClaudeSessionMessage(raw);
448
441
  }
449
442
  });
450
- const happyServer = await startHappyServer(session, { assistant: isAssistantVariant, selfReportState: boardSelfReport });
443
+ const happyServer = await startHappyServer(session, { assistant: isAssistantVariant, selfReportState: boardSelfReport, push: { sendAttention: (input) => api.push().sendAttention(input) } });
451
444
  logger.debug(`[START] Happy MCP server started at ${happyServer.url}`);
452
445
  let currentSession = null;
453
446
  const prewarmHookGate = new PrewarmHookGate();
@@ -801,6 +794,7 @@ async function runClaude(credentials, options = {}) {
801
794
  logger.debug(`[START] Received termination signal, cleaning up (archive=${intent === "archive"})...`);
802
795
  promptQueueDrain.close();
803
796
  cleanupPrewarm();
797
+ const wrapperTree = snapshotTree(process.pid);
804
798
  try {
805
799
  if (session) {
806
800
  currentSession?.cleanup();
@@ -820,9 +814,11 @@ async function runClaude(credentials, options = {}) {
820
814
  cleanupHookSettingsFile(hookSettingsPath);
821
815
  await remoteScanner.cleanup();
822
816
  logger.debug("[START] Cleanup complete, exiting");
817
+ await terminateSurvivors(wrapperTree);
823
818
  process.exit(0);
824
819
  } catch (error) {
825
820
  logger.debug("[START] Error during cleanup:", error);
821
+ await terminateSurvivors(wrapperTree).catch(() => void 0);
826
822
  process.exit(1);
827
823
  }
828
824
  };