very-happy-cli 0.2.166 → 0.2.167

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 (178) hide show
  1. package/dist/{AcpBackend-20VHOXwb.cjs → AcpBackend-D1IKJGz_.cjs} +3 -3
  2. package/dist/{AcpBackend-tRWk7yi7.mjs → AcpBackend-kFZlee5E.mjs} +3 -3
  3. package/dist/{BasePermissionHandler-COKc4pmt.cjs → BasePermissionHandler-DHxYAK5L.cjs} +1 -1
  4. package/dist/{BasePermissionHandler-CDCLIrZJ.mjs → BasePermissionHandler-DS0kRTNI.mjs} +1 -1
  5. package/dist/{BaseReasoningProcessor-BDVKvooR.mjs → BaseReasoningProcessor-BRtCCt7q.mjs} +1 -1
  6. package/dist/{BaseReasoningProcessor-DAGQdkNp.cjs → BaseReasoningProcessor-CsjVdt_H.cjs} +1 -1
  7. package/dist/{agentHome-2IbIjKCa.mjs → agentHome-Ct-VXFeG.mjs} +4 -4
  8. package/dist/{agentHome-KVWj6nCl.cjs → agentHome-DeAWzhSe.cjs} +4 -4
  9. package/dist/{api-DnNL5fLw.cjs → api-BZYLRDM9.cjs} +88 -10
  10. package/dist/{api-Cmz3XS4P.mjs → api-CReZazeT.mjs} +88 -10
  11. package/dist/{apiMachine-DeoQ8QbZ.cjs → apiMachine-BgMxGPsR.cjs} +50 -15
  12. package/dist/{apiMachine-B6ySCFe0.mjs → apiMachine-CWndf1Vn.mjs} +50 -15
  13. package/dist/{attachmentContent-DPWxHgX4.cjs → attachmentContent-HcJqFQW8.cjs} +2 -2
  14. package/dist/{attachmentContent-CTXapi-_.mjs → attachmentContent-j875mwU7.mjs} +2 -2
  15. package/dist/{attachmentLimits-BfgKV5iE.cjs → attachmentLimits-BEYEEBm8.cjs} +13 -1
  16. package/dist/{attachmentLimits-C1PCCM79.mjs → attachmentLimits-CxG3T18E.mjs} +13 -1
  17. package/dist/{auth-BMaBjRAj.mjs → auth-BIHuc7vY.mjs} +10 -10
  18. package/dist/{auth-pzWIFdOD.mjs → auth-CFS9Lfgv.mjs} +5 -5
  19. package/dist/{auth-D4-eQz85.cjs → auth-Myr2Q42x.cjs} +10 -10
  20. package/dist/{auth-ietHtvwu.cjs → auth-VzWpbo5P.cjs} +5 -5
  21. package/dist/{auto-DOWTQDPa.cjs → auto-Bf6Dr7_o.cjs} +14 -14
  22. package/dist/{auto-DL75Dx3I.mjs → auto-Df9-zmuN.mjs} +14 -14
  23. package/dist/{bootstrap-XE8A7Ut2.mjs → bootstrap-BSOxYpaP.mjs} +2 -2
  24. package/dist/{bootstrap-BpXIc2wn.cjs → bootstrap-Dj8WBiR2.cjs} +2 -2
  25. package/dist/{browser-DDFi1T8C.mjs → browser-BCFIHOvo.mjs} +1 -1
  26. package/dist/{browser-CcG8GLRV.cjs → browser-BoCV40yC.cjs} +1 -1
  27. package/dist/{claudeLocal-DXBXwIOG.cjs → claudeLocal-CGsq7Kul.cjs} +5 -5
  28. package/dist/{claudeLocal-DmM5Oyhv.mjs → claudeLocal-D5-eA9SC.mjs} +5 -5
  29. package/dist/{claudeLocalLauncher-Cs4eUC3P.mjs → claudeLocalLauncher-C9Cc438l.mjs} +10 -10
  30. package/dist/{claudeLocalLauncher-C41Y6Kp4.cjs → claudeLocalLauncher-Cf9QeYDT.cjs} +10 -10
  31. package/dist/{claudeSessionFork-Cs0I3eGI.cjs → claudeSessionFork-Byd8zD1U.cjs} +1 -1
  32. package/dist/{claudeSessionFork-BdLnc2Hv.mjs → claudeSessionFork-CMzAva8G.mjs} +1 -1
  33. package/dist/{client-JISJx2f-.cjs → client-BKnKRLSt.cjs} +3 -3
  34. package/dist/{client-GjTnsq6F.mjs → client-C7FYMer0.mjs} +2 -2
  35. package/dist/{client-DJ0kX_8M.cjs → client-D0T5-6Ds.cjs} +2 -2
  36. package/dist/{client-CbK33y_s.mjs → client-Dsfy_SAb.mjs} +3 -3
  37. package/dist/codex/happyMcpStdioBridge.cjs +14 -14
  38. package/dist/codex/happyMcpStdioBridge.mjs +14 -14
  39. package/dist/{codexAppServerClient-CldXEojt.mjs → codexAppServerClient-Dd_4TxHv.mjs} +4 -4
  40. package/dist/{codexAppServerClient-BTjn2ZCZ.cjs → codexAppServerClient-TiW9OBk4.cjs} +4 -4
  41. package/dist/{codexCommand-DjMU-Ijf.mjs → codexCommand-BZSr4MKI.mjs} +137 -56
  42. package/dist/{codexCommand-BpD0N1F7.cjs → codexCommand-Bxryqh90.cjs} +137 -56
  43. package/dist/{config-DjSJKatx.mjs → config-C_Pj7yxV.mjs} +3 -3
  44. package/dist/{config-DuLL0Ppe.cjs → config-DXPash-r.cjs} +3 -3
  45. package/dist/{configuration-B0cb3xA3.cjs → configuration-C3piBtxY.cjs} +1 -1
  46. package/dist/{configuration-D2v3puap.mjs → configuration-WspKd2C2.mjs} +2 -2
  47. package/dist/{connect-B7JWEzyg.cjs → connect-BN-IBElA.cjs} +13 -13
  48. package/dist/{connect-CnNNyM9I.mjs → connect-DGPZs5px.mjs} +13 -13
  49. package/dist/{context-DjfqLWzE.mjs → context-Cr6a3NTg.mjs} +1 -1
  50. package/dist/{context-BFUpYT39.cjs → context-Jrq4-eCZ.cjs} +1 -1
  51. package/dist/{controlClient-CmnHGcyl.cjs → controlClient-BI6Fw3fQ.cjs} +18 -3
  52. package/dist/{controlClient-BMUJfUeF.mjs → controlClient-DTheOlvC.mjs} +18 -4
  53. package/dist/{createSessionMetadata-DU0bCg2m.mjs → createSessionMetadata-BEZ4DIDA.mjs} +57 -5
  54. package/dist/{createSessionMetadata-DbfRBhRu.cjs → createSessionMetadata-zQSz3hgk.cjs} +56 -3
  55. package/dist/defaultPermissionMode-Cif_RHGb.mjs +191 -0
  56. package/dist/defaultPermissionMode-DNKNzk7l.cjs +197 -0
  57. package/dist/{deterministicJson-D-WPUrZb.mjs → deterministicJson-BMMifViN.mjs} +8 -8
  58. package/dist/{deterministicJson-Dp3TVyap.cjs → deterministicJson-C7O2ulKY.cjs} +8 -8
  59. package/dist/{doctor-CkJmdPbi.cjs → doctor-BykBaMTr.cjs} +6 -6
  60. package/dist/{doctor-BlXXyQ1L.mjs → doctor-D1KKyPzB.mjs} +6 -6
  61. package/dist/{downloadTarget-CiQqRIc-.cjs → downloadTarget-CWTb2-EM.cjs} +6 -6
  62. package/dist/{downloadTarget-DjSwMHun.mjs → downloadTarget-Cp48jrIP.mjs} +6 -6
  63. package/dist/{ensureDaemonRunning-CAQag1zE.mjs → ensureDaemonRunning-Ba5fYoxb.mjs} +5 -5
  64. package/dist/{ensureDaemonRunning-C_aIOhgG.cjs → ensureDaemonRunning-CCxX7MoP.cjs} +5 -5
  65. package/dist/{handleResumeCommand-Ci7wacT-.mjs → handleResumeCommand-BTUGlNjB.mjs} +5 -5
  66. package/dist/{handleResumeCommand-6KzBGDnl.cjs → handleResumeCommand-yPdDQHqz.cjs} +5 -5
  67. package/dist/{index-CaFCAlX8.cjs → index-BjhKqDa0.cjs} +3 -3
  68. package/dist/{index-HQsigW_J.mjs → index-C3_83bqS.mjs} +3 -3
  69. package/dist/{index-WGCT6SSV.mjs → index-CE2GgPbr.mjs} +34 -34
  70. package/dist/{index-DQplgo0W.mjs → index-D8m8Ripb.mjs} +4 -4
  71. package/dist/{index-DBmNwMX9.cjs → index-DifM62wX.cjs} +33 -33
  72. package/dist/{index-DEKIgZUo.cjs → index-PNMQPKhz.cjs} +4 -4
  73. package/dist/index.cjs +2 -2
  74. package/dist/index.mjs +2 -2
  75. package/dist/{install-oJUvsFu9.mjs → install-C0-QFn9s.mjs} +3 -3
  76. package/dist/{install-CejEiRGW.cjs → install-CqZVeze8.cjs} +3 -3
  77. package/dist/lib.cjs +11 -11
  78. package/dist/lib.d.cts +61 -0
  79. package/dist/lib.d.mts +61 -0
  80. package/dist/lib.mjs +11 -11
  81. package/dist/{lidState-BfximpjX.mjs → lidState-B2ZxdREe.mjs} +1 -1
  82. package/dist/{lidState-D8BmnJV1.cjs → lidState-Bc2K9H9l.cjs} +1 -1
  83. package/dist/{localHappyAgentAuth-Ct1aXwqd.mjs → localHappyAgentAuth-B5XPEMwk.mjs} +1 -1
  84. package/dist/{localHappyAgentAuth-d7B6S_o7.cjs → localHappyAgentAuth-T5GOvRha.cjs} +1 -1
  85. package/dist/{logger-JTcJU-uL.cjs → logger-B_MWPbZz.cjs} +2 -2
  86. package/dist/{logger-BpQcwNnt.mjs → logger-CbBv3q_b.mjs} +2 -2
  87. package/dist/{machineMetadata-BBg_Njw3.cjs → machineMetadata-BafS4JY8.cjs} +4 -3
  88. package/dist/{machineMetadata-CBdxABeI.mjs → machineMetadata-DHg238U4.mjs} +4 -3
  89. package/dist/{main-C16fOGgn.cjs → main-DNrA0qBy.cjs} +45 -45
  90. package/dist/{main-B5b1gA3K.mjs → main-DXAK0n7x.mjs} +45 -45
  91. package/dist/{manager-BQ4flvQZ.mjs → manager-BEsI4qt3.mjs} +9 -3
  92. package/dist/{manager-Cly8xVIR.cjs → manager-HrEj442o.cjs} +8 -2
  93. package/dist/{mcp-BnNiBBax.cjs → mcp-AvPOhDXy.cjs} +14 -14
  94. package/dist/{mcp-DGNWgVdv.mjs → mcp-BotAjCdD.mjs} +14 -14
  95. package/dist/mirrorProtocol-BdcN6QlN.cjs +1270 -0
  96. package/dist/mirrorProtocol-BwHm8odn.mjs +1247 -0
  97. package/dist/{package-C1XvUQFy.cjs → package-C9ZP9bpX.cjs} +7 -7
  98. package/dist/{package-BqwrPxL0.mjs → package-DU1DxhH9.mjs} +7 -7
  99. package/dist/{peerTools-DPvbcs8V.cjs → peerTools-Dkbu7gag.cjs} +4 -4
  100. package/dist/{peerTools-CeCe-3lk.mjs → peerTools-os2DVjA0.mjs} +4 -4
  101. package/dist/{persistence-2Xp_o6x6.cjs → persistence-BYGl0QYw.cjs} +147 -25
  102. package/dist/{persistence-B9LmhAE2.mjs → persistence-ON0zpHfb.mjs} +123 -12
  103. package/dist/{piRunnerArgs-7FaTyNOq.mjs → piRunnerArgs-CYsnT9sV.mjs} +1 -1
  104. package/dist/{piRunnerArgs-DI29dDNo.cjs → piRunnerArgs-DpbvstUX.cjs} +1 -1
  105. package/dist/{piRuntime-R8XVChxK.cjs → piRuntime-CDnILlCd.cjs} +1 -1
  106. package/dist/{piRuntime-0qEK5AqE.mjs → piRuntime-CmEid-wu.mjs} +1 -1
  107. package/dist/{piTerminal-zcQKc8Sp.mjs → piTerminal-0eNlXSlL.mjs} +16 -16
  108. package/dist/{piTerminal-Ccj0KNPr.cjs → piTerminal-B57TgMON.cjs} +16 -16
  109. package/dist/{rateLimitWindows-C2Jk3Ih7.cjs → rateLimitWindows-CusGIqlq.cjs} +1 -1
  110. package/dist/{rateLimitWindows-Dhfhbtqu.mjs → rateLimitWindows-vZ9Bo7aT.mjs} +1 -1
  111. package/dist/{registerCommonHandlers-DdfGsFbM.mjs → registerCommonHandlers-B0PVff2U.mjs} +2 -2
  112. package/dist/{registerCommonHandlers-Aha_KfM3.cjs → registerCommonHandlers-DVYB3iVn.cjs} +2 -2
  113. package/dist/{registerKillSessionHandler-DboQlGcH.mjs → registerKillSessionHandler-BJMHJHXe.mjs} +14 -9
  114. package/dist/{registerKillSessionHandler-CjitOpUA.cjs → registerKillSessionHandler-BwXGKtg_.cjs} +14 -9
  115. package/dist/{remoteSessionClient-B2DtWuNP.mjs → remoteSessionClient-BzPXSC21.mjs} +5 -5
  116. package/dist/{remoteSessionClient-BwI8rpQw.cjs → remoteSessionClient-PyUAIhwK.cjs} +5 -5
  117. package/dist/{reportProgressTool-DnAD8wOa.mjs → reportProgressTool-BvB13EwC.mjs} +1 -1
  118. package/dist/{reportProgressTool-B-Rcy0s3.cjs → reportProgressTool-D4KB_4cP.cjs} +1 -1
  119. package/dist/{run-Bh66Xs40.cjs → run-BC8jzq_h.cjs} +323 -37
  120. package/dist/{run-DPEwJpQR.mjs → run-O2M8LsWf.mjs} +322 -36
  121. package/dist/{runClaude-C-lJdAKD.cjs → runClaude-C7jPa8VP.cjs} +87 -25
  122. package/dist/{runClaude-DLr_nBzw.mjs → runClaude-DGkr5E7s.mjs} +87 -25
  123. package/dist/{runClaudeDeps-vWWLod7J.cjs → runClaudeDeps-5kzncqME.cjs} +100 -31
  124. package/dist/{runClaudeDeps-C7JV7nXG.mjs → runClaudeDeps-CX_TxS78.mjs} +105 -36
  125. package/dist/{runGemini-o-CUSayc.cjs → runGemini-BfYA4Uqc.cjs} +32 -32
  126. package/dist/{runGemini-tH6sLw-G.mjs → runGemini-CwmGBH3L.mjs} +32 -32
  127. package/dist/{runOpenClaw-C5DZvVhn.mjs → runOpenClaw-BYAPYFyL.mjs} +16 -16
  128. package/dist/{runOpenClaw-D24f35l0.cjs → runOpenClaw-C72jut7v.cjs} +16 -16
  129. package/dist/{sandbox-TJZJ6ngw.cjs → sandbox-Bqkp8IT7.cjs} +4 -4
  130. package/dist/{sandbox-BaL1aslA.mjs → sandbox-DlVnK1Vi.mjs} +4 -4
  131. package/dist/{selfCheck-Dugi0Nk_.cjs → selfCheck-B4lLZplk.cjs} +34 -34
  132. package/dist/selfCheck-DYTGBdIO.mjs +84 -0
  133. package/dist/{send-DDcJ3ayi.mjs → send-B5bWW9Tl.mjs} +8 -8
  134. package/dist/{send-CkWOSYmU.cjs → send-BCwS6n_s.cjs} +8 -8
  135. package/dist/{server-CUjRvQSd.mjs → server-CEJfRQfj.mjs} +4 -4
  136. package/dist/{server-7qFQ8J2u.cjs → server-CFWZehnC.cjs} +6 -6
  137. package/dist/{sessionLock-DqVyHFAQ.mjs → sessionLock-AwOYsKT7.mjs} +12 -4
  138. package/dist/{sessionLock-DfhNICyS.cjs → sessionLock-LBWNjpHf.cjs} +12 -3
  139. package/dist/{sessionModeFile-CIznKD7O.cjs → sessionModeFile-CyPuZRIU.cjs} +1 -1
  140. package/dist/{sessionModeFile-M4OpiyrF.mjs → sessionModeFile-fvFn1JVG.mjs} +1 -1
  141. package/dist/{sessionOps-BnaEaOKs.mjs → sessionOps-DZRH4-hV.mjs} +4 -4
  142. package/dist/{sessionOps-DOyy4gkY.cjs → sessionOps-DzbZI3Eq.cjs} +4 -4
  143. package/dist/{sessionScanner-CcuOn9uU.mjs → sessionScanner-Q_Ei2flB.mjs} +3 -3
  144. package/dist/{sessionScanner-Cu1yKlj4.cjs → sessionScanner-i-cgwFVw.cjs} +3 -3
  145. package/dist/{sessions-C9O91rL1.mjs → sessions-DAmjMAZN.mjs} +9 -9
  146. package/dist/{sessions-BQgk5Kw8.cjs → sessions-DYK5hD4T.cjs} +9 -9
  147. package/dist/{setupOfflineReconnection-Byy8aeKT.mjs → setupOfflineReconnection-BfDBxNdo.mjs} +2 -2
  148. package/dist/{setupOfflineReconnection-DFmQ8s6I.cjs → setupOfflineReconnection-C2LO3hSP.cjs} +2 -2
  149. package/dist/{spawn-EZ2yrtWd.mjs → spawn-BmjG5j5Y.mjs} +13 -13
  150. package/dist/{spawn-BS7LPmSm.cjs → spawn-GK_sXE8h.cjs} +13 -13
  151. package/dist/{spawnHappyCLI-BAa49m0q.mjs → spawnHappyCLI-B2h0P4b5.mjs} +1 -1
  152. package/dist/{spawnHappyCLI-DyaldIe5.cjs → spawnHappyCLI-J4iEhfyZ.cjs} +1 -1
  153. package/dist/{specialCommands-CCWtwIGZ.mjs → specialCommands-DisVxagO.mjs} +3 -3
  154. package/dist/{specialCommands-DouFaJ_0.cjs → specialCommands-DmJMKspE.cjs} +3 -3
  155. package/dist/{startFileWatcher-Dfs4whzr.mjs → startFileWatcher-CeK1k5gt.mjs} +1 -1
  156. package/dist/{startFileWatcher-DQbbypJv.cjs → startFileWatcher-xKo8AoYl.cjs} +1 -1
  157. package/dist/{sync-x_lI_3j_.cjs → sync-Bvc-vh6C.cjs} +1 -1
  158. package/dist/{sync-BLpH13Kb.mjs → sync-CCwYpJMS.mjs} +1 -1
  159. package/dist/{systemPrompt-BanyDihy.mjs → systemPrompt-BNIkP3tR.mjs} +1 -1
  160. package/dist/{systemPrompt-4erwILTB.cjs → systemPrompt-DwOddbuG.cjs} +1 -1
  161. package/dist/{teams-D6BOT3lR.mjs → teams-DRrLBcys.mjs} +6 -6
  162. package/dist/{teams-DzetlGWC.cjs → teams-GHMCRZOw.cjs} +6 -6
  163. package/dist/{time-T0YmeOhS.cjs → time-BXvtjhe9.cjs} +1 -1
  164. package/dist/{time-CfDKj6Bx.mjs → time-PG5Dfwdv.mjs} +1 -1
  165. package/dist/{titleGenerator-CoMxqKfP.cjs → titleGenerator-B07bZA0V.cjs} +2 -2
  166. package/dist/{titleGenerator-ChImQ4q-.mjs → titleGenerator-CIzfpfZW.mjs} +1 -1
  167. package/dist/{todo-CZZebKZg.cjs → todo-B0aeoNu3.cjs} +5 -5
  168. package/dist/{todo-SVtYxGON.mjs → todo-CfL7SBFc.mjs} +5 -5
  169. package/dist/{tools-3X2z3YDe.mjs → tools-D91mq5Ib.mjs} +1 -1
  170. package/dist/{tools-IJ0TAcJs.cjs → tools-DJIANHSh.cjs} +1 -1
  171. package/dist/{uninstall-CypD-kr1.mjs → uninstall-5xz3Xvhf.mjs} +3 -3
  172. package/dist/{uninstall-CqqCWj7w.cjs → uninstall-AtzOfdrj.cjs} +3 -3
  173. package/package.json +7 -7
  174. package/dist/defaultPermissionMode-BnxJPVHT.mjs +0 -4
  175. package/dist/defaultPermissionMode-CxmTXUQR.cjs +0 -7
  176. package/dist/mirrorProtocol-BEGk2--0.cjs +0 -266
  177. package/dist/mirrorProtocol-h5WHpdhh.mjs +0 -248
  178. package/dist/selfCheck-DPi4lqme.mjs +0 -84
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var name = "very-happy-cli";
4
- var version = "0.2.166";
4
+ var version = "0.2.167";
5
5
  var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
6
6
  var author = "Kirill Dubovitskiy";
7
7
  var contributors = [
@@ -118,12 +118,12 @@ var dependencies = {
118
118
  zod: "^4.0.0"
119
119
  };
120
120
  var optionalDependencies = {
121
- "very-happy-tools-arm64-darwin": "0.2.166",
122
- "very-happy-tools-x64-darwin": "0.2.166",
123
- "very-happy-tools-arm64-linux": "0.2.166",
124
- "very-happy-tools-x64-linux": "0.2.166",
125
- "very-happy-tools-arm64-win32": "0.2.166",
126
- "very-happy-tools-x64-win32": "0.2.166"
121
+ "very-happy-tools-arm64-darwin": "0.2.167",
122
+ "very-happy-tools-x64-darwin": "0.2.167",
123
+ "very-happy-tools-arm64-linux": "0.2.167",
124
+ "very-happy-tools-x64-linux": "0.2.167",
125
+ "very-happy-tools-arm64-win32": "0.2.167",
126
+ "very-happy-tools-x64-win32": "0.2.167"
127
127
  };
128
128
  var devDependencies = {
129
129
  "@slopus/happy-wire": "workspace:*",
@@ -1,5 +1,5 @@
1
1
  var name = "very-happy-cli";
2
- var version = "0.2.166";
2
+ var version = "0.2.167";
3
3
  var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
4
4
  var author = "Kirill Dubovitskiy";
5
5
  var contributors = [
@@ -116,12 +116,12 @@ var dependencies = {
116
116
  zod: "^4.0.0"
117
117
  };
118
118
  var optionalDependencies = {
119
- "very-happy-tools-arm64-darwin": "0.2.166",
120
- "very-happy-tools-x64-darwin": "0.2.166",
121
- "very-happy-tools-arm64-linux": "0.2.166",
122
- "very-happy-tools-x64-linux": "0.2.166",
123
- "very-happy-tools-arm64-win32": "0.2.166",
124
- "very-happy-tools-x64-win32": "0.2.166"
119
+ "very-happy-tools-arm64-darwin": "0.2.167",
120
+ "very-happy-tools-x64-darwin": "0.2.167",
121
+ "very-happy-tools-arm64-linux": "0.2.167",
122
+ "very-happy-tools-x64-linux": "0.2.167",
123
+ "very-happy-tools-arm64-win32": "0.2.167",
124
+ "very-happy-tools-x64-win32": "0.2.167"
125
125
  };
126
126
  var devDependencies = {
127
127
  "@slopus/happy-wire": "workspace:*",
@@ -4,10 +4,10 @@ var node_crypto = require('node:crypto');
4
4
  var os = require('node:os');
5
5
  var z = require('zod');
6
6
  var ids = require('./ids-B6ZC0HGt.cjs');
7
- var controlClient = require('./controlClient-CmnHGcyl.cjs');
8
- var persistence = require('./persistence-2Xp_o6x6.cjs');
9
- var sessionOps = require('./sessionOps-DOyy4gkY.cjs');
10
- var remoteSessionClient = require('./remoteSessionClient-BwI8rpQw.cjs');
7
+ var controlClient = require('./controlClient-BI6Fw3fQ.cjs');
8
+ var persistence = require('./persistence-BYGl0QYw.cjs');
9
+ var sessionOps = require('./sessionOps-DzbZI3Eq.cjs');
10
+ var remoteSessionClient = require('./remoteSessionClient-PyUAIhwK.cjs');
11
11
  var node_fs = require('node:fs');
12
12
  var path = require('node:path');
13
13
 
@@ -2,10 +2,10 @@ import { randomUUID } from 'node:crypto';
2
2
  import { userInfo, hostname } from 'node:os';
3
3
  import { z } from 'zod';
4
4
  import { i as isValidSessionId } from './ids-DU6sLx4C.mjs';
5
- import { f as listDaemonPeers } from './controlClient-BMUJfUeF.mjs';
6
- import { readPersistedSessions } from './persistence-B9LmhAE2.mjs';
7
- import { s as sessionWebUrl, e as sendUserMessage } from './sessionOps-BnaEaOKs.mjs';
8
- import { b as sendRemotePeerMessage, d as deliverToSession, a as listRemotePeers } from './remoteSessionClient-B2DtWuNP.mjs';
5
+ import { g as listDaemonPeers } from './controlClient-DTheOlvC.mjs';
6
+ import { b as readPersistedSessions } from './persistence-ON0zpHfb.mjs';
7
+ import { s as sessionWebUrl, e as sendUserMessage } from './sessionOps-DZRH4-hV.mjs';
8
+ import { b as sendRemotePeerMessage, d as deliverToSession, a as listRemotePeers } from './remoteSessionClient-BzPXSC21.mjs';
9
9
  import { existsSync, readFileSync, statSync } from 'node:fs';
10
10
  import { resolve, isAbsolute, dirname } from 'node:path';
11
11
 
@@ -2,37 +2,120 @@
2
2
 
3
3
  var promises = require('node:fs/promises');
4
4
  var node_fs = require('node:fs');
5
- var configuration = require('./configuration-B0cb3xA3.cjs');
5
+ var configuration = require('./configuration-C3piBtxY.cjs');
6
6
  var z = require('zod');
7
7
  var authRelay = require('./authRelay-BdYkC1Po.cjs');
8
- var logger = require('./logger-JTcJU-uL.cjs');
9
- require('node:os');
10
- require('node:path');
11
- require('./package-C1XvUQFy.cjs');
12
- require('node:crypto');
13
- require('tweetnacl');
14
- require('chalk');
15
- require('node:util');
8
+ var logger = require('./logger-B_MWPbZz.cjs');
16
9
 
17
10
  function _interopNamespaceDefault(e) {
18
- var n = Object.create(null);
19
- if (e) {
20
- Object.keys(e).forEach(function (k) {
21
- if (k !== 'default') {
22
- var d = Object.getOwnPropertyDescriptor(e, k);
23
- Object.defineProperty(n, k, d.get ? d : {
24
- enumerable: true,
25
- get: function () { return e[k]; }
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
26
21
  });
27
- }
28
- });
29
- }
30
- n.default = e;
31
- return Object.freeze(n);
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
32
25
  }
33
26
 
34
27
  var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
35
28
 
29
+ const HIBERNATION_CAPABILITY = "agent-hibernation-v1";
30
+ const HOUR_MS = 60 * 60 * 1e3;
31
+ const DEFAULT_HIBERNATION_IDLE_MS = 6 * HOUR_MS;
32
+ const MIN_SETTING_IDLE_MS = HOUR_MS;
33
+ const MAX_SETTING_IDLE_MS = 24 * HOUR_MS;
34
+ const DEFAULT_HIBERNATION_CHECK_MS = 5 * 60 * 1e3;
35
+ const HIBERNATION_UNSUPPORTED_BACKOFF_MS = 30 * 60 * 1e3;
36
+ const HIBERNATED_RECORD_MAX_AGE_MS = 90 * 24 * HOUR_MS;
37
+ const HIBERNATABLE_FLAVORS = ["claude", "codex"];
38
+ const NON_UI_ORIGIN_TAGS = ["teams", "automation", "assistant"];
39
+ function settingIdleMs(setting) {
40
+ if (setting === void 0 || setting === null) return DEFAULT_HIBERNATION_IDLE_MS;
41
+ if (typeof setting !== "number" || !Number.isFinite(setting)) return DEFAULT_HIBERNATION_IDLE_MS;
42
+ if (setting <= 0) return 0;
43
+ return Math.min(MAX_SETTING_IDLE_MS, Math.max(MIN_SETTING_IDLE_MS, Math.round(setting)));
44
+ }
45
+ function resolveIdleMs(setting, env = process.env) {
46
+ const raw = env.HAPPY_HIBERNATE_IDLE_MS;
47
+ if (raw !== void 0 && raw.trim() !== "") {
48
+ const value = Number(raw);
49
+ if (Number.isFinite(value) && value >= 0) return Math.round(value);
50
+ }
51
+ return settingIdleMs(setting);
52
+ }
53
+ function resolveCheckMs(env = process.env) {
54
+ const value = Number(env.HAPPY_HIBERNATE_CHECK_MS);
55
+ if (Number.isFinite(value) && value >= 1e3) return Math.round(value);
56
+ return DEFAULT_HIBERNATION_CHECK_MS;
57
+ }
58
+ function evaluateWrapperIdle(snapshot, idleMs, now) {
59
+ if (!(idleMs > 0)) return { ok: false, reason: "disabled" };
60
+ if (snapshot.exiting) return { ok: false, reason: "exiting" };
61
+ if (!snapshot.uiSession || snapshot.variant) return { ok: false, reason: "not-ui-session" };
62
+ if (!HIBERNATABLE_FLAVORS.includes(snapshot.flavor)) return { ok: false, reason: "unsupported-flavor" };
63
+ if (!snapshot.resumable) return { ok: false, reason: "not-resumable" };
64
+ if (snapshot.spawnedBy && snapshot.spawnedBy.trim()) return { ok: false, reason: "spawn-origin" };
65
+ if ((snapshot.tags ?? []).some((tag) => NON_UI_ORIGIN_TAGS.includes(tag))) return { ok: false, reason: "spawn-origin" };
66
+ if (snapshot.keepAwake) return { ok: false, reason: "keep-awake" };
67
+ if (snapshot.thinking) return { ok: false, reason: "turn-active" };
68
+ if (snapshot.queuedInputs > 0 || !snapshot.waitingForInput) return { ok: false, reason: "queued-input" };
69
+ if (snapshot.pendingRequests > 0) return { ok: false, reason: "pending-request" };
70
+ if (snapshot.backgroundTasks > 0) return { ok: false, reason: "background-tasks" };
71
+ if ((snapshot.scheduledWakeups ?? 0) > 0) return { ok: false, reason: "scheduled-wakeup" };
72
+ if (!(now - snapshot.lastActivityAt >= idleMs)) return { ok: false, reason: "recent-activity" };
73
+ return { ok: true };
74
+ }
75
+ function latchKeepAwake(raw, latched) {
76
+ if (raw === true) return true;
77
+ if (raw === false) return false;
78
+ return latched;
79
+ }
80
+ function reportSignature(report) {
81
+ return [report.flavor, report.lastActivityAt, report.keepAwake ? 1 : 0, report.pendingRequests, report.backgroundTasks].join("|");
82
+ }
83
+ function decideDaemonHibernation(input) {
84
+ const { report } = input;
85
+ if (!(input.idleMs > 0)) return { ok: false, reason: "disabled" };
86
+ if (!input.trackedLive) return { ok: false, reason: "not-tracked" };
87
+ if (input.teamsMember || input.trackedSpawnedBy === "teams") return { ok: false, reason: "teams" };
88
+ if (input.trackedSpawnedBy && input.trackedSpawnedBy.trim()) return { ok: false, reason: "spawn-origin" };
89
+ const local = evaluateWrapperIdle(report, input.idleMs, input.now);
90
+ if (!local.ok) return local;
91
+ if (input.turnActive) return { ok: false, reason: "turn-active" };
92
+ if (input.backgroundTasks > 0) return { ok: false, reason: "background-tasks" };
93
+ if (input.automationBound === null) return { ok: false, reason: "automations-unknown" };
94
+ if (input.automationBound.has(input.sessionId)) return { ok: false, reason: "automation-bound" };
95
+ if (input.previousSignature !== reportSignature(report)) return { ok: false, reason: "unconfirmed" };
96
+ if (input.hibernationInFlight) return { ok: false, reason: "busy" };
97
+ return { ok: true };
98
+ }
99
+ function nextCheckDelay(verdict, report, idleMs, checkMs, now) {
100
+ if (verdict.ok) return checkMs;
101
+ if (verdict.reason === "disabled") return Math.max(checkMs, HIBERNATION_UNSUPPORTED_BACKOFF_MS);
102
+ if (verdict.reason === "recent-activity") return Math.max(checkMs, report.lastActivityAt + idleMs - now);
103
+ return checkMs;
104
+ }
105
+ function readHibernationStamp(metadata) {
106
+ const raw = metadata?.hibernation;
107
+ if (!raw || typeof raw !== "object") return null;
108
+ const stamp = raw;
109
+ if (typeof stamp.at !== "number" || typeof stamp.seq !== "number" || !Number.isInteger(stamp.seq) || stamp.seq < 0) return null;
110
+ return { at: stamp.at, seq: stamp.seq, idleMs: typeof stamp.idleMs === "number" ? stamp.idleMs : 0, v: 1 };
111
+ }
112
+ function hibernationReplaySeq(metadata, serverSeq) {
113
+ const stamp = readHibernationStamp(metadata);
114
+ if (!stamp) return null;
115
+ if (stamp.seq >= serverSeq) return null;
116
+ return stamp.seq;
117
+ }
118
+
36
119
  const SandboxConfigSchema = z__namespace.object({
37
120
  enabled: z__namespace.boolean().default(false),
38
121
  workspaceRoot: z__namespace.string().optional(),
@@ -315,7 +398,8 @@ function readPersistedSessions() {
315
398
  const now = Date.now();
316
399
  const sessions = {};
317
400
  for (const [id, session] of Object.entries(data.sessions)) {
318
- if (now - session.savedAt < SESSION_MAX_AGE_MS) {
401
+ const maxAge = typeof session.hibernatedAt === "number" && session.hibernatedAt >= session.savedAt ? HIBERNATED_RECORD_MAX_AGE_MS : SESSION_MAX_AGE_MS;
402
+ if (now - session.savedAt < maxAge) {
319
403
  sessions[id] = session;
320
404
  }
321
405
  }
@@ -361,7 +445,8 @@ function readTrackedCodexThreadIds() {
361
445
  function persistSession(sessionId, session) {
362
446
  try {
363
447
  const existing = readPersistedSessions();
364
- existing[sessionId] = session;
448
+ const prior = existing[sessionId];
449
+ existing[sessionId] = !("keepAwake" in session) && prior?.keepAwake ? { ...session, keepAwake: true } : session;
365
450
  const tmpFile = configuration.configuration.sessionsFile + ".tmp";
366
451
  configuration.writePrivateFileSync(tmpFile, JSON.stringify({ sessions: existing }, null, 2));
367
452
  node_fs.renameSync(tmpFile, configuration.configuration.sessionsFile);
@@ -390,14 +475,47 @@ function deletePersistedSessions(sessionIds) {
390
475
  }
391
476
  }
392
477
 
393
- exports.SUPPORTED_SCHEMA_VERSION = SUPPORTED_SCHEMA_VERSION;
478
+ var persistence = /*#__PURE__*/Object.freeze({
479
+ __proto__: null,
480
+ SUPPORTED_SCHEMA_VERSION: SUPPORTED_SCHEMA_VERSION,
481
+ SandboxConfigSchema: SandboxConfigSchema,
482
+ acquireDaemonLock: acquireDaemonLock,
483
+ clearCredentials: clearCredentials,
484
+ clearDaemonState: clearDaemonState,
485
+ clearMachineId: clearMachineId,
486
+ deletePersistedSessions: deletePersistedSessions,
487
+ persistSession: persistSession,
488
+ readCredentials: readCredentials,
489
+ readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay,
490
+ readDaemonState: readDaemonState,
491
+ readPersistedSessions: readPersistedSessions,
492
+ readSettings: readSettings,
493
+ readSettingsOutcome: readSettingsOutcome,
494
+ readTrackedClaudeSessionIds: readTrackedClaudeSessionIds,
495
+ readTrackedCodexThreadIds: readTrackedCodexThreadIds,
496
+ releaseDaemonLock: releaseDaemonLock,
497
+ updateSettings: updateSettings,
498
+ writeCredentialsDataKey: writeCredentialsDataKey,
499
+ writeCredentialsLegacy: writeCredentialsLegacy,
500
+ writeDaemonState: writeDaemonState,
501
+ writeSettings: writeSettings
502
+ });
503
+
504
+ exports.HIBERNATION_CAPABILITY = HIBERNATION_CAPABILITY;
505
+ exports.HIBERNATION_UNSUPPORTED_BACKOFF_MS = HIBERNATION_UNSUPPORTED_BACKOFF_MS;
394
506
  exports.SandboxConfigSchema = SandboxConfigSchema;
395
507
  exports.acquireDaemonLock = acquireDaemonLock;
396
508
  exports.clearCredentials = clearCredentials;
397
509
  exports.clearDaemonState = clearDaemonState;
398
510
  exports.clearMachineId = clearMachineId;
511
+ exports.decideDaemonHibernation = decideDaemonHibernation;
399
512
  exports.deletePersistedSessions = deletePersistedSessions;
513
+ exports.evaluateWrapperIdle = evaluateWrapperIdle;
514
+ exports.hibernationReplaySeq = hibernationReplaySeq;
515
+ exports.latchKeepAwake = latchKeepAwake;
516
+ exports.nextCheckDelay = nextCheckDelay;
400
517
  exports.persistSession = persistSession;
518
+ exports.persistence = persistence;
401
519
  exports.readCredentials = readCredentials;
402
520
  exports.readCredentialsForConfiguredRelay = readCredentialsForConfiguredRelay;
403
521
  exports.readDaemonState = readDaemonState;
@@ -407,6 +525,10 @@ exports.readSettingsOutcome = readSettingsOutcome;
407
525
  exports.readTrackedClaudeSessionIds = readTrackedClaudeSessionIds;
408
526
  exports.readTrackedCodexThreadIds = readTrackedCodexThreadIds;
409
527
  exports.releaseDaemonLock = releaseDaemonLock;
528
+ exports.reportSignature = reportSignature;
529
+ exports.resolveCheckMs = resolveCheckMs;
530
+ exports.resolveIdleMs = resolveIdleMs;
531
+ exports.settingIdleMs = settingIdleMs;
410
532
  exports.updateSettings = updateSettings;
411
533
  exports.writeCredentialsDataKey = writeCredentialsDataKey;
412
534
  exports.writeCredentialsLegacy = writeCredentialsLegacy;
@@ -1,16 +1,99 @@
1
1
  import { readFile, open, unlink, stat, rename } from 'node:fs/promises';
2
2
  import { existsSync, constants, readFileSync, unlinkSync, renameSync } from 'node:fs';
3
- import { c as configuration, P as PRIVATE_FILE_MODE, w as writePrivateFileSync, h as hardenPrivateFileSync, e as ensurePrivateDirectory, a as writePrivateFile, b as hardenPrivateFile } from './configuration-D2v3puap.mjs';
3
+ import { c as configuration, P as PRIVATE_FILE_MODE, w as writePrivateFileSync, a as hardenPrivateFileSync, e as ensurePrivateDirectory, b as writePrivateFile, h as hardenPrivateFile } from './configuration-WspKd2C2.mjs';
4
4
  import * as z from 'zod';
5
5
  import { c as credentialRelayProblem, e as encodeBase64 } from './authRelay-DSAvg1uv.mjs';
6
- import { l as logger } from './logger-BpQcwNnt.mjs';
7
- import 'node:os';
8
- import 'node:path';
9
- import './package-BqwrPxL0.mjs';
10
- import 'node:crypto';
11
- import 'tweetnacl';
12
- import 'chalk';
13
- import 'node:util';
6
+ import { l as logger } from './logger-CbBv3q_b.mjs';
7
+
8
+ const HIBERNATION_CAPABILITY = "agent-hibernation-v1";
9
+ const HOUR_MS = 60 * 60 * 1e3;
10
+ const DEFAULT_HIBERNATION_IDLE_MS = 6 * HOUR_MS;
11
+ const MIN_SETTING_IDLE_MS = HOUR_MS;
12
+ const MAX_SETTING_IDLE_MS = 24 * HOUR_MS;
13
+ const DEFAULT_HIBERNATION_CHECK_MS = 5 * 60 * 1e3;
14
+ const HIBERNATION_UNSUPPORTED_BACKOFF_MS = 30 * 60 * 1e3;
15
+ const HIBERNATED_RECORD_MAX_AGE_MS = 90 * 24 * HOUR_MS;
16
+ const HIBERNATABLE_FLAVORS = ["claude", "codex"];
17
+ const NON_UI_ORIGIN_TAGS = ["teams", "automation", "assistant"];
18
+ function settingIdleMs(setting) {
19
+ if (setting === void 0 || setting === null) return DEFAULT_HIBERNATION_IDLE_MS;
20
+ if (typeof setting !== "number" || !Number.isFinite(setting)) return DEFAULT_HIBERNATION_IDLE_MS;
21
+ if (setting <= 0) return 0;
22
+ return Math.min(MAX_SETTING_IDLE_MS, Math.max(MIN_SETTING_IDLE_MS, Math.round(setting)));
23
+ }
24
+ function resolveIdleMs(setting, env = process.env) {
25
+ const raw = env.HAPPY_HIBERNATE_IDLE_MS;
26
+ if (raw !== void 0 && raw.trim() !== "") {
27
+ const value = Number(raw);
28
+ if (Number.isFinite(value) && value >= 0) return Math.round(value);
29
+ }
30
+ return settingIdleMs(setting);
31
+ }
32
+ function resolveCheckMs(env = process.env) {
33
+ const value = Number(env.HAPPY_HIBERNATE_CHECK_MS);
34
+ if (Number.isFinite(value) && value >= 1e3) return Math.round(value);
35
+ return DEFAULT_HIBERNATION_CHECK_MS;
36
+ }
37
+ function evaluateWrapperIdle(snapshot, idleMs, now) {
38
+ if (!(idleMs > 0)) return { ok: false, reason: "disabled" };
39
+ if (snapshot.exiting) return { ok: false, reason: "exiting" };
40
+ if (!snapshot.uiSession || snapshot.variant) return { ok: false, reason: "not-ui-session" };
41
+ if (!HIBERNATABLE_FLAVORS.includes(snapshot.flavor)) return { ok: false, reason: "unsupported-flavor" };
42
+ if (!snapshot.resumable) return { ok: false, reason: "not-resumable" };
43
+ if (snapshot.spawnedBy && snapshot.spawnedBy.trim()) return { ok: false, reason: "spawn-origin" };
44
+ if ((snapshot.tags ?? []).some((tag) => NON_UI_ORIGIN_TAGS.includes(tag))) return { ok: false, reason: "spawn-origin" };
45
+ if (snapshot.keepAwake) return { ok: false, reason: "keep-awake" };
46
+ if (snapshot.thinking) return { ok: false, reason: "turn-active" };
47
+ if (snapshot.queuedInputs > 0 || !snapshot.waitingForInput) return { ok: false, reason: "queued-input" };
48
+ if (snapshot.pendingRequests > 0) return { ok: false, reason: "pending-request" };
49
+ if (snapshot.backgroundTasks > 0) return { ok: false, reason: "background-tasks" };
50
+ if ((snapshot.scheduledWakeups ?? 0) > 0) return { ok: false, reason: "scheduled-wakeup" };
51
+ if (!(now - snapshot.lastActivityAt >= idleMs)) return { ok: false, reason: "recent-activity" };
52
+ return { ok: true };
53
+ }
54
+ function latchKeepAwake(raw, latched) {
55
+ if (raw === true) return true;
56
+ if (raw === false) return false;
57
+ return latched;
58
+ }
59
+ function reportSignature(report) {
60
+ return [report.flavor, report.lastActivityAt, report.keepAwake ? 1 : 0, report.pendingRequests, report.backgroundTasks].join("|");
61
+ }
62
+ function decideDaemonHibernation(input) {
63
+ const { report } = input;
64
+ if (!(input.idleMs > 0)) return { ok: false, reason: "disabled" };
65
+ if (!input.trackedLive) return { ok: false, reason: "not-tracked" };
66
+ if (input.teamsMember || input.trackedSpawnedBy === "teams") return { ok: false, reason: "teams" };
67
+ if (input.trackedSpawnedBy && input.trackedSpawnedBy.trim()) return { ok: false, reason: "spawn-origin" };
68
+ const local = evaluateWrapperIdle(report, input.idleMs, input.now);
69
+ if (!local.ok) return local;
70
+ if (input.turnActive) return { ok: false, reason: "turn-active" };
71
+ if (input.backgroundTasks > 0) return { ok: false, reason: "background-tasks" };
72
+ if (input.automationBound === null) return { ok: false, reason: "automations-unknown" };
73
+ if (input.automationBound.has(input.sessionId)) return { ok: false, reason: "automation-bound" };
74
+ if (input.previousSignature !== reportSignature(report)) return { ok: false, reason: "unconfirmed" };
75
+ if (input.hibernationInFlight) return { ok: false, reason: "busy" };
76
+ return { ok: true };
77
+ }
78
+ function nextCheckDelay(verdict, report, idleMs, checkMs, now) {
79
+ if (verdict.ok) return checkMs;
80
+ if (verdict.reason === "disabled") return Math.max(checkMs, HIBERNATION_UNSUPPORTED_BACKOFF_MS);
81
+ if (verdict.reason === "recent-activity") return Math.max(checkMs, report.lastActivityAt + idleMs - now);
82
+ return checkMs;
83
+ }
84
+ function readHibernationStamp(metadata) {
85
+ const raw = metadata?.hibernation;
86
+ if (!raw || typeof raw !== "object") return null;
87
+ const stamp = raw;
88
+ if (typeof stamp.at !== "number" || typeof stamp.seq !== "number" || !Number.isInteger(stamp.seq) || stamp.seq < 0) return null;
89
+ return { at: stamp.at, seq: stamp.seq, idleMs: typeof stamp.idleMs === "number" ? stamp.idleMs : 0, v: 1 };
90
+ }
91
+ function hibernationReplaySeq(metadata, serverSeq) {
92
+ const stamp = readHibernationStamp(metadata);
93
+ if (!stamp) return null;
94
+ if (stamp.seq >= serverSeq) return null;
95
+ return stamp.seq;
96
+ }
14
97
 
15
98
  const SandboxConfigSchema = z.object({
16
99
  enabled: z.boolean().default(false),
@@ -294,7 +377,8 @@ function readPersistedSessions() {
294
377
  const now = Date.now();
295
378
  const sessions = {};
296
379
  for (const [id, session] of Object.entries(data.sessions)) {
297
- if (now - session.savedAt < SESSION_MAX_AGE_MS) {
380
+ const maxAge = typeof session.hibernatedAt === "number" && session.hibernatedAt >= session.savedAt ? HIBERNATED_RECORD_MAX_AGE_MS : SESSION_MAX_AGE_MS;
381
+ if (now - session.savedAt < maxAge) {
298
382
  sessions[id] = session;
299
383
  }
300
384
  }
@@ -340,7 +424,8 @@ function readTrackedCodexThreadIds() {
340
424
  function persistSession(sessionId, session) {
341
425
  try {
342
426
  const existing = readPersistedSessions();
343
- existing[sessionId] = session;
427
+ const prior = existing[sessionId];
428
+ existing[sessionId] = !("keepAwake" in session) && prior?.keepAwake ? { ...session, keepAwake: true } : session;
344
429
  const tmpFile = configuration.sessionsFile + ".tmp";
345
430
  writePrivateFileSync(tmpFile, JSON.stringify({ sessions: existing }, null, 2));
346
431
  renameSync(tmpFile, configuration.sessionsFile);
@@ -369,4 +454,30 @@ function deletePersistedSessions(sessionIds) {
369
454
  }
370
455
  }
371
456
 
372
- export { SUPPORTED_SCHEMA_VERSION, SandboxConfigSchema, acquireDaemonLock, clearCredentials, clearDaemonState, clearMachineId, deletePersistedSessions, persistSession, readCredentials, readCredentialsForConfiguredRelay, readDaemonState, readPersistedSessions, readSettings, readSettingsOutcome, readTrackedClaudeSessionIds, readTrackedCodexThreadIds, releaseDaemonLock, updateSettings, writeCredentialsDataKey, writeCredentialsLegacy, writeDaemonState, writeSettings };
457
+ var persistence = /*#__PURE__*/Object.freeze({
458
+ __proto__: null,
459
+ SUPPORTED_SCHEMA_VERSION: SUPPORTED_SCHEMA_VERSION,
460
+ SandboxConfigSchema: SandboxConfigSchema,
461
+ acquireDaemonLock: acquireDaemonLock,
462
+ clearCredentials: clearCredentials,
463
+ clearDaemonState: clearDaemonState,
464
+ clearMachineId: clearMachineId,
465
+ deletePersistedSessions: deletePersistedSessions,
466
+ persistSession: persistSession,
467
+ readCredentials: readCredentials,
468
+ readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay,
469
+ readDaemonState: readDaemonState,
470
+ readPersistedSessions: readPersistedSessions,
471
+ readSettings: readSettings,
472
+ readSettingsOutcome: readSettingsOutcome,
473
+ readTrackedClaudeSessionIds: readTrackedClaudeSessionIds,
474
+ readTrackedCodexThreadIds: readTrackedCodexThreadIds,
475
+ releaseDaemonLock: releaseDaemonLock,
476
+ updateSettings: updateSettings,
477
+ writeCredentialsDataKey: writeCredentialsDataKey,
478
+ writeCredentialsLegacy: writeCredentialsLegacy,
479
+ writeDaemonState: writeDaemonState,
480
+ writeSettings: writeSettings
481
+ });
482
+
483
+ export { writeDaemonState as A, writeSettings as B, settingIdleMs as C, releaseDaemonLock as D, persistence as E, HIBERNATION_CAPABILITY as H, SandboxConfigSchema as S, resolveCheckMs as a, readPersistedSessions as b, readCredentialsForConfiguredRelay as c, readDaemonState as d, evaluateWrapperIdle as e, clearDaemonState as f, readCredentials as g, clearCredentials as h, clearMachineId as i, HIBERNATION_UNSUPPORTED_BACKOFF_MS as j, hibernationReplaySeq as k, latchKeepAwake as l, readSettingsOutcome as m, writeCredentialsDataKey as n, readTrackedClaudeSessionIds as o, readTrackedCodexThreadIds as p, reportSignature as q, readSettings as r, decideDaemonHibernation as s, nextCheckDelay as t, updateSettings as u, persistSession as v, writeCredentialsLegacy as w, acquireDaemonLock as x, resolveIdleMs as y, deletePersistedSessions as z };
@@ -1,4 +1,4 @@
1
- import { n as normalizeAcpPermissionMode } from './sessionModeFile-M4OpiyrF.mjs';
1
+ import { n as normalizeAcpPermissionMode } from './sessionModeFile-fvFn1JVG.mjs';
2
2
 
3
3
  function detectDaemonSupervisor(env, platform = process.platform) {
4
4
  const explicit = env.HAPPY_DAEMON_SUPERVISOR?.trim().toLowerCase();
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var sessionModeFile = require('./sessionModeFile-CIznKD7O.cjs');
3
+ var sessionModeFile = require('./sessionModeFile-CyPuZRIU.cjs');
4
4
 
5
5
  function detectDaemonSupervisor(env, platform = process.platform) {
6
6
  const explicit = env.HAPPY_DAEMON_SUPERVISOR?.trim().toLowerCase();
@@ -3,7 +3,7 @@
3
3
  var promises = require('node:fs/promises');
4
4
  var node_crypto = require('node:crypto');
5
5
  var path = require('node:path');
6
- var configuration = require('./configuration-B0cb3xA3.cjs');
6
+ var configuration = require('./configuration-C3piBtxY.cjs');
7
7
  var resources = require('./resources-JDPugcDq.cjs');
8
8
 
9
9
  async function publish(path, content, mode) {
@@ -1,7 +1,7 @@
1
1
  import { mkdir, chmod, writeFile, rename } from 'node:fs/promises';
2
2
  import { randomUUID } from 'node:crypto';
3
3
  import { join } from 'node:path';
4
- import { c as configuration } from './configuration-D2v3puap.mjs';
4
+ import { c as configuration } from './configuration-WspKd2C2.mjs';
5
5
  import { P as PI_TEAMS_EXTENSION } from './resources-BdFBQi8r.mjs';
6
6
 
7
7
  async function publish(path, content, mode) {
@@ -3,15 +3,15 @@ import { randomUUID } from 'node:crypto';
3
3
  import { createServer } from 'node:http';
4
4
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
5
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
6
- import { p as preparePiTeamsRuntime } from './piRuntime-0qEK5AqE.mjs';
7
- import { registerMcpTools, registerTerminalTitleSuggest } from './mcp-DGNWgVdv.mjs';
6
+ import { p as preparePiTeamsRuntime } from './piRuntime-CmEid-wu.mjs';
7
+ import { registerMcpTools, registerTerminalTitleSuggest } from './mcp-BotAjCdD.mjs';
8
8
  import './agentGuidance-BDYt2Qy2.mjs';
9
9
  import 'node:fs/promises';
10
10
  import 'node:os';
11
11
  import 'zod';
12
- import './logger-BpQcwNnt.mjs';
13
- import './persistence-B9LmhAE2.mjs';
14
- import './configuration-D2v3puap.mjs';
12
+ import './logger-CbBv3q_b.mjs';
13
+ import './persistence-ON0zpHfb.mjs';
14
+ import './configuration-WspKd2C2.mjs';
15
15
  import 'axios';
16
16
  import 'tweetnacl';
17
17
  import 'socket.io-client';
@@ -20,23 +20,23 @@ import 'node:fs';
20
20
  import 'node:path';
21
21
  import { r as resolveMcpTerminalId } from './terminalToolContext-CFeGeaNm.mjs';
22
22
  import './resources-BdFBQi8r.mjs';
23
- import './tools-3X2z3YDe.mjs';
24
- import './client-CbK33y_s.mjs';
25
- import './context-DjfqLWzE.mjs';
23
+ import './tools-D91mq5Ib.mjs';
24
+ import './client-Dsfy_SAb.mjs';
25
+ import './context-Cr6a3NTg.mjs';
26
26
  import '@modelcontextprotocol/sdk/server/stdio.js';
27
- import './controlClient-BMUJfUeF.mjs';
27
+ import './controlClient-DTheOlvC.mjs';
28
28
  import './limits-DIo7rEBR.mjs';
29
- import './downloadTarget-DjSwMHun.mjs';
30
- import './sessionOps-BnaEaOKs.mjs';
29
+ import './downloadTarget-Cp48jrIP.mjs';
30
+ import './sessionOps-DZRH4-hV.mjs';
31
31
  import './authRelay-DSAvg1uv.mjs';
32
- import './time-CfDKj6Bx.mjs';
32
+ import './time-PG5Dfwdv.mjs';
33
33
  import './backgroundTaskActivity-8PdPxrvy.mjs';
34
- import './remoteSessionClient-B2DtWuNP.mjs';
34
+ import './remoteSessionClient-BzPXSC21.mjs';
35
35
  import './ids-DU6sLx4C.mjs';
36
- import './bootstrap-XE8A7Ut2.mjs';
36
+ import './bootstrap-BSOxYpaP.mjs';
37
37
  import './previewPath-CXN4Vag0.mjs';
38
38
  import './terminalTitleSuggest-CeKsX_V6.mjs';
39
- import './titleGenerator-ChImQ4q-.mjs';
39
+ import './titleGenerator-CIzfpfZW.mjs';
40
40
  import 'node:module';
41
41
  import './oneShotPrompts-DT4p6RNd.mjs';
42
42
  import './projectPath-BTBIMB57.mjs';
@@ -45,7 +45,7 @@ import 'url';
45
45
  import './trimIdent-BAjmv_TG.mjs';
46
46
  import 'chalk';
47
47
  import 'node:util';
48
- import './package-BqwrPxL0.mjs';
48
+ import './package-DU1DxhH9.mjs';
49
49
  import './tmuxSocket-B8Yx20sT.mjs';
50
50
 
51
51
  async function startPiTerminalTools(terminalId) {
@@ -5,15 +5,15 @@ var node_crypto = require('node:crypto');
5
5
  var node_http = require('node:http');
6
6
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
7
7
  var streamableHttp_js = require('@modelcontextprotocol/sdk/server/streamableHttp.js');
8
- var piRuntime = require('./piRuntime-R8XVChxK.cjs');
9
- var mcp = require('./mcp-BnNiBBax.cjs');
8
+ var piRuntime = require('./piRuntime-CDnILlCd.cjs');
9
+ var mcp = require('./mcp-AvPOhDXy.cjs');
10
10
  require('./agentGuidance-BtBx2xxE.cjs');
11
11
  require('node:fs/promises');
12
12
  require('node:os');
13
13
  require('zod');
14
- require('./logger-JTcJU-uL.cjs');
15
- require('./persistence-2Xp_o6x6.cjs');
16
- require('./configuration-B0cb3xA3.cjs');
14
+ require('./logger-B_MWPbZz.cjs');
15
+ require('./persistence-BYGl0QYw.cjs');
16
+ require('./configuration-C3piBtxY.cjs');
17
17
  require('axios');
18
18
  require('tweetnacl');
19
19
  require('socket.io-client');
@@ -22,23 +22,23 @@ require('node:fs');
22
22
  require('node:path');
23
23
  var terminalToolContext = require('./terminalToolContext-DoV9Gs7K.cjs');
24
24
  require('./resources-JDPugcDq.cjs');
25
- require('./tools-IJ0TAcJs.cjs');
26
- require('./client-JISJx2f-.cjs');
27
- require('./context-BFUpYT39.cjs');
25
+ require('./tools-DJIANHSh.cjs');
26
+ require('./client-BKnKRLSt.cjs');
27
+ require('./context-Jrq4-eCZ.cjs');
28
28
  require('@modelcontextprotocol/sdk/server/stdio.js');
29
- require('./controlClient-CmnHGcyl.cjs');
29
+ require('./controlClient-BI6Fw3fQ.cjs');
30
30
  require('./limits-C-a7gr04.cjs');
31
- require('./downloadTarget-CiQqRIc-.cjs');
32
- require('./sessionOps-DOyy4gkY.cjs');
31
+ require('./downloadTarget-CWTb2-EM.cjs');
32
+ require('./sessionOps-DzbZI3Eq.cjs');
33
33
  require('./authRelay-BdYkC1Po.cjs');
34
- require('./time-T0YmeOhS.cjs');
34
+ require('./time-BXvtjhe9.cjs');
35
35
  require('./backgroundTaskActivity-CBvUdj39.cjs');
36
- require('./remoteSessionClient-BwI8rpQw.cjs');
36
+ require('./remoteSessionClient-PyUAIhwK.cjs');
37
37
  require('./ids-B6ZC0HGt.cjs');
38
- require('./bootstrap-BpXIc2wn.cjs');
38
+ require('./bootstrap-Dj8WBiR2.cjs');
39
39
  require('./previewPath-B0rBdhy1.cjs');
40
40
  require('./terminalTitleSuggest-DhvRFX3H.cjs');
41
- require('./titleGenerator-CoMxqKfP.cjs');
41
+ require('./titleGenerator-B07bZA0V.cjs');
42
42
  require('node:module');
43
43
  require('./oneShotPrompts-CL0dip9C.cjs');
44
44
  require('./projectPath-ChLhdOyt.cjs');
@@ -47,7 +47,7 @@ require('url');
47
47
  require('./trimIdent-4gvk9Wk6.cjs');
48
48
  require('chalk');
49
49
  require('node:util');
50
- require('./package-C1XvUQFy.cjs');
50
+ require('./package-C9ZP9bpX.cjs');
51
51
  require('./tmuxSocket-D-Xt6Vn-.cjs');
52
52
 
53
53
  async function startPiTerminalTools(terminalId) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-JTcJU-uL.cjs');
3
+ var logger = require('./logger-B_MWPbZz.cjs');
4
4
 
5
5
  const MAX_WINDOWS_PER_PROVIDER = 8;
6
6
  function finite(value) {
@@ -1,4 +1,4 @@
1
- import { l as logger } from './logger-BpQcwNnt.mjs';
1
+ import { l as logger } from './logger-CbBv3q_b.mjs';
2
2
 
3
3
  const MAX_WINDOWS_PER_PROVIDER = 8;
4
4
  function finite(value) {