very-happy-cli 0.2.165 → 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 (198) hide show
  1. package/README.md +1 -1
  2. package/dist/{AcpBackend-DCfNt9bD.cjs → AcpBackend-D1IKJGz_.cjs} +3 -3
  3. package/dist/{AcpBackend-C11FnVw5.mjs → AcpBackend-kFZlee5E.mjs} +3 -3
  4. package/dist/{AcpSessionManager-BQnDJvct.mjs → AcpSessionManager-B7FIrsys.mjs} +1 -1
  5. package/dist/{AcpSessionManager-9yN2iH4b.cjs → AcpSessionManager-Zf00QnlL.cjs} +1 -1
  6. package/dist/{BasePermissionHandler-BwQHxl6M.cjs → BasePermissionHandler-DHxYAK5L.cjs} +1 -1
  7. package/dist/{BasePermissionHandler-CwJ48yiB.mjs → BasePermissionHandler-DS0kRTNI.mjs} +1 -1
  8. package/dist/{BaseReasoningProcessor-ClF2g1qz.mjs → BaseReasoningProcessor-BRtCCt7q.mjs} +1 -1
  9. package/dist/{BaseReasoningProcessor-81lf_M8G.cjs → BaseReasoningProcessor-CsjVdt_H.cjs} +1 -1
  10. package/dist/{agentGuidance-CQuNlNx8.mjs → agentGuidance-BDYt2Qy2.mjs} +4 -2
  11. package/dist/{agentGuidance-B5NATuFa.cjs → agentGuidance-BtBx2xxE.cjs} +4 -1
  12. package/dist/{agentHome-DvR176E5.mjs → agentHome-Ct-VXFeG.mjs} +4 -4
  13. package/dist/{agentHome-D3Nn82kI.cjs → agentHome-DeAWzhSe.cjs} +4 -4
  14. package/dist/{api-AzdzTKFs.cjs → api-BZYLRDM9.cjs} +93 -13
  15. package/dist/{api-DTVPUE7g.mjs → api-CReZazeT.mjs} +93 -13
  16. package/dist/{apiMachine-B_cJldfa.cjs → apiMachine-BgMxGPsR.cjs} +2173 -66
  17. package/dist/{apiMachine-BQ-b4Lu3.mjs → apiMachine-CWndf1Vn.mjs} +2176 -69
  18. package/dist/{attachmentContent-muDCe4Gy.cjs → attachmentContent-HcJqFQW8.cjs} +2 -2
  19. package/dist/{attachmentContent-dzIs-wis.mjs → attachmentContent-j875mwU7.mjs} +2 -2
  20. package/dist/{attachmentLimits-eJZ4ZBjF.cjs → attachmentLimits-BEYEEBm8.cjs} +40 -2
  21. package/dist/{attachmentLimits-B8nzhw-i.mjs → attachmentLimits-CxG3T18E.mjs} +40 -2
  22. package/dist/{auth-Jtmvh1w4.mjs → auth-BIHuc7vY.mjs} +10 -10
  23. package/dist/{auth-BY5ujhGn.mjs → auth-CFS9Lfgv.mjs} +5 -5
  24. package/dist/{auth-DtP-B4gf.cjs → auth-Myr2Q42x.cjs} +10 -10
  25. package/dist/{auth-CfLd3phE.cjs → auth-VzWpbo5P.cjs} +5 -5
  26. package/dist/{auto-ClNnbSoF.cjs → auto-Bf6Dr7_o.cjs} +85 -21
  27. package/dist/{auto-DjWfR1UB.mjs → auto-Df9-zmuN.mjs} +84 -22
  28. package/dist/{bootstrap-D_ExGrY2.mjs → bootstrap-BSOxYpaP.mjs} +2 -2
  29. package/dist/{bootstrap-B1dMZA-u.cjs → bootstrap-Dj8WBiR2.cjs} +2 -2
  30. package/dist/{browser-mwzpOmcw.mjs → browser-BCFIHOvo.mjs} +1 -1
  31. package/dist/{browser-_gV7tcPs.cjs → browser-BoCV40yC.cjs} +1 -1
  32. package/dist/{claudeLocal-G5UmJ81F.cjs → claudeLocal-CGsq7Kul.cjs} +7 -7
  33. package/dist/{claudeLocal-BeHToEK5.mjs → claudeLocal-D5-eA9SC.mjs} +7 -7
  34. package/dist/{claudeLocalLauncher-Cq6bqAT4.mjs → claudeLocalLauncher-C9Cc438l.mjs} +15 -12
  35. package/dist/{claudeLocalLauncher-B4y2BsmO.cjs → claudeLocalLauncher-Cf9QeYDT.cjs} +15 -12
  36. package/dist/{claudeSessionFork-CDJq_b9r.cjs → claudeSessionFork-Byd8zD1U.cjs} +1 -1
  37. package/dist/{claudeSessionFork-CokUhS4r.mjs → claudeSessionFork-CMzAva8G.mjs} +1 -1
  38. package/dist/{client-Do7cGPEq.cjs → client-BKnKRLSt.cjs} +3 -3
  39. package/dist/{client-CJZKBZCE.mjs → client-C7FYMer0.mjs} +2 -2
  40. package/dist/{client-uN9d6Git.cjs → client-D0T5-6Ds.cjs} +2 -2
  41. package/dist/{client-BwaWdlCm.mjs → client-Dsfy_SAb.mjs} +3 -3
  42. package/dist/codex/happyMcpStdioBridge.cjs +23 -18
  43. package/dist/codex/happyMcpStdioBridge.mjs +22 -17
  44. package/dist/{codexAppServerClient-B0QaMQsC.mjs → codexAppServerClient-Dd_4TxHv.mjs} +48 -4
  45. package/dist/{codexAppServerClient-BuSdeUxT.cjs → codexAppServerClient-TiW9OBk4.cjs} +47 -3
  46. package/dist/{codexCommand-C3gdjMAw.mjs → codexCommand-BZSr4MKI.mjs} +170 -69
  47. package/dist/{codexCommand-YdYmykAR.cjs → codexCommand-Bxryqh90.cjs} +170 -69
  48. package/dist/{config-CGCIFRCN.mjs → config-C_Pj7yxV.mjs} +3 -3
  49. package/dist/{config-ChoHFnfO.cjs → config-DXPash-r.cjs} +3 -3
  50. package/dist/{configuration-BE61XNsg.cjs → configuration-C3piBtxY.cjs} +1 -1
  51. package/dist/{configuration-L1qcGTFM.mjs → configuration-WspKd2C2.mjs} +2 -2
  52. package/dist/{connect-D5IKfcfd.cjs → connect-BN-IBElA.cjs} +14 -14
  53. package/dist/{connect-CFD0Em6a.mjs → connect-DGPZs5px.mjs} +14 -14
  54. package/dist/{context-DaCCB4cm.mjs → context-Cr6a3NTg.mjs} +1 -1
  55. package/dist/{context-3WVw8qPz.cjs → context-Jrq4-eCZ.cjs} +1 -1
  56. package/dist/{controlClient-RWTlQA4_.cjs → controlClient-BI6Fw3fQ.cjs} +28 -5
  57. package/dist/{controlClient-Ci7HTMII.mjs → controlClient-DTheOlvC.mjs} +27 -6
  58. package/dist/{createSessionMetadata-CWR-AB2A.mjs → createSessionMetadata-BEZ4DIDA.mjs} +57 -5
  59. package/dist/{createSessionMetadata-CPGTztXP.cjs → createSessionMetadata-zQSz3hgk.cjs} +56 -3
  60. package/dist/defaultPermissionMode-Cif_RHGb.mjs +191 -0
  61. package/dist/defaultPermissionMode-DNKNzk7l.cjs +197 -0
  62. package/dist/{deterministicJson-BBwG-Ase.mjs → deterministicJson-BMMifViN.mjs} +36 -52
  63. package/dist/{deterministicJson-C4Jo2RWy.cjs → deterministicJson-C7O2ulKY.cjs} +41 -59
  64. package/dist/{doctor-ZOQLE5AH.cjs → doctor-BykBaMTr.cjs} +6 -6
  65. package/dist/{doctor-CAC6qY9Z.mjs → doctor-D1KKyPzB.mjs} +6 -6
  66. package/dist/{assistantTools-BsrG3PD-.cjs → downloadTarget-CWTb2-EM.cjs} +44 -6
  67. package/dist/{assistantTools-DPGga5lM.mjs → downloadTarget-Cp48jrIP.mjs} +45 -8
  68. package/dist/{ensureDaemonRunning-b1pvEFcS.mjs → ensureDaemonRunning-Ba5fYoxb.mjs} +5 -5
  69. package/dist/{ensureDaemonRunning-mIgX2vnc.cjs → ensureDaemonRunning-CCxX7MoP.cjs} +5 -5
  70. package/dist/{handleResumeCommand-CTGbZkCL.mjs → handleResumeCommand-BTUGlNjB.mjs} +5 -5
  71. package/dist/{handleResumeCommand-DGNhbv-3.cjs → handleResumeCommand-yPdDQHqz.cjs} +5 -5
  72. package/dist/{index-vVWpCoTr.mjs → index-B0HEEYGh.mjs} +22 -5
  73. package/dist/{index-BzIxE0Eu.cjs → index-BjhKqDa0.cjs} +3 -3
  74. package/dist/{index-BgzjPv07.mjs → index-C3_83bqS.mjs} +3 -3
  75. package/dist/{index-DqlyNgt4.cjs → index-C9hI8a10.cjs} +26 -4
  76. package/dist/{index-DjtBengz.mjs → index-CE2GgPbr.mjs} +40 -39
  77. package/dist/{index-Diu6HdWH.mjs → index-D8m8Ripb.mjs} +4 -4
  78. package/dist/{index-DrSPR59N.cjs → index-DifM62wX.cjs} +39 -38
  79. package/dist/{index-DIodyAqF.cjs → index-PNMQPKhz.cjs} +4 -4
  80. package/dist/index.cjs +2 -2
  81. package/dist/index.mjs +2 -2
  82. package/dist/{install-BO_W7VhL.mjs → install-BdvKiOQw.mjs} +2 -0
  83. package/dist/{install-Cp_aB-NQ.mjs → install-C0-QFn9s.mjs} +3 -3
  84. package/dist/{install-Cs5qAPrB.cjs → install-Cf6AFSWC.cjs} +2 -0
  85. package/dist/{install-DrUQk2DJ.cjs → install-CqZVeze8.cjs} +3 -3
  86. package/dist/lib.cjs +12 -12
  87. package/dist/lib.d.cts +116 -2
  88. package/dist/lib.d.mts +116 -2
  89. package/dist/lib.mjs +12 -12
  90. package/dist/{lidState-BLHLmhwd.mjs → lidState-B2ZxdREe.mjs} +1 -1
  91. package/dist/{lidState-z9ekRpZu.cjs → lidState-Bc2K9H9l.cjs} +1 -1
  92. package/dist/{localHappyAgentAuth-BWvmc_Hg.mjs → localHappyAgentAuth-B5XPEMwk.mjs} +1 -1
  93. package/dist/{localHappyAgentAuth-BCx0y1qW.cjs → localHappyAgentAuth-T5GOvRha.cjs} +1 -1
  94. package/dist/{logger-D0hkk7Vo.cjs → logger-B_MWPbZz.cjs} +2 -2
  95. package/dist/{logger-CknSVkIe.mjs → logger-CbBv3q_b.mjs} +2 -2
  96. package/dist/{machineMetadata-BDCYOXQg.cjs → machineMetadata-BafS4JY8.cjs} +4 -3
  97. package/dist/{machineMetadata-Cj1DoFot.mjs → machineMetadata-DHg238U4.mjs} +4 -3
  98. package/dist/{main-COAPGIso.cjs → main-DNrA0qBy.cjs} +45 -45
  99. package/dist/{main-CKUfkVG_.mjs → main-DXAK0n7x.mjs} +45 -45
  100. package/dist/{manager-BQ4flvQZ.mjs → manager-BEsI4qt3.mjs} +9 -3
  101. package/dist/{manager-Cly8xVIR.cjs → manager-HrEj442o.cjs} +8 -2
  102. package/dist/{mcp-BILnw4si.cjs → mcp-AvPOhDXy.cjs} +24 -19
  103. package/dist/{mcp-DeYUfpo8.mjs → mcp-BotAjCdD.mjs} +23 -18
  104. package/dist/mirrorProtocol-BdcN6QlN.cjs +1270 -0
  105. package/dist/mirrorProtocol-BwHm8odn.mjs +1247 -0
  106. package/dist/{package-UkmvSFsg.cjs → package-C9ZP9bpX.cjs} +7 -7
  107. package/dist/{package-VIUXrYZ1.mjs → package-DU1DxhH9.mjs} +7 -7
  108. package/dist/{peerTools-CttfOxti.cjs → peerTools-Dkbu7gag.cjs} +4 -4
  109. package/dist/{peerTools-SWITnkqz.mjs → peerTools-os2DVjA0.mjs} +4 -4
  110. package/dist/{persistence-C6ztVW1W.cjs → persistence-BYGl0QYw.cjs} +147 -25
  111. package/dist/{persistence-DujtUH94.mjs → persistence-ON0zpHfb.mjs} +123 -12
  112. package/dist/{piRunnerArgs-BVJHIjlk.mjs → piRunnerArgs-CYsnT9sV.mjs} +1 -1
  113. package/dist/{piRunnerArgs-tBQg6xDw.cjs → piRunnerArgs-DpbvstUX.cjs} +1 -1
  114. package/dist/{piRuntime-DZzjF9It.cjs → piRuntime-CDnILlCd.cjs} +1 -1
  115. package/dist/{piRuntime-DKFA8u8t.mjs → piRuntime-CmEid-wu.mjs} +1 -1
  116. package/dist/{piTerminal-BTSaFlpV.mjs → piTerminal-0eNlXSlL.mjs} +17 -17
  117. package/dist/{piTerminal-t5pQHCPT.cjs → piTerminal-B57TgMON.cjs} +17 -17
  118. package/dist/precheckCompat-CWOi5c9L.cjs +29 -0
  119. package/dist/precheckCompat-DeEbilbr.mjs +26 -0
  120. package/dist/rateLimitWindows-CusGIqlq.cjs +258 -0
  121. package/dist/rateLimitWindows-vZ9Bo7aT.mjs +248 -0
  122. package/dist/{registerCommonHandlers-BR0J4g64.mjs → registerCommonHandlers-B0PVff2U.mjs} +2 -2
  123. package/dist/{registerCommonHandlers--8ds2auE.cjs → registerCommonHandlers-DVYB3iVn.cjs} +2 -2
  124. package/dist/{registerKillSessionHandler-Czz0tdki.mjs → registerKillSessionHandler-BJMHJHXe.mjs} +15 -10
  125. package/dist/{registerKillSessionHandler-CI23l8aJ.cjs → registerKillSessionHandler-BwXGKtg_.cjs} +15 -10
  126. package/dist/{remoteSessionClient-DCAUHgPz.mjs → remoteSessionClient-BzPXSC21.mjs} +5 -5
  127. package/dist/{remoteSessionClient-BAkIwM2S.cjs → remoteSessionClient-PyUAIhwK.cjs} +5 -5
  128. package/dist/{tools-BVRoGcQH.mjs → reportProgressTool-BvB13EwC.mjs} +67 -10
  129. package/dist/{tools-mWqsE6ji.cjs → reportProgressTool-D4KB_4cP.cjs} +73 -9
  130. package/dist/{run-CkKujjn8.cjs → run-BC8jzq_h.cjs} +558 -122
  131. package/dist/{run-B75qm2I6.mjs → run-O2M8LsWf.mjs} +556 -120
  132. package/dist/{runClaude-B1T9DLLi.cjs → runClaude-C7jPa8VP.cjs} +93 -26
  133. package/dist/{runClaude-aBfBweec.mjs → runClaude-DGkr5E7s.mjs} +93 -26
  134. package/dist/{runClaudeDeps-BGjNGfuZ.cjs → runClaudeDeps-5kzncqME.cjs} +113 -35
  135. package/dist/{runClaudeDeps-BOrPP4J1.mjs → runClaudeDeps-CX_TxS78.mjs} +116 -37
  136. package/dist/{runGemini-BuAA_OQb.cjs → runGemini-BfYA4Uqc.cjs} +43 -36
  137. package/dist/{runGemini-a-V7JE-J.mjs → runGemini-CwmGBH3L.mjs} +43 -36
  138. package/dist/{runOpenClaw-DUSwXg1A.mjs → runOpenClaw-BYAPYFyL.mjs} +18 -18
  139. package/dist/{runOpenClaw-BBVffIh9.cjs → runOpenClaw-C72jut7v.cjs} +18 -18
  140. package/dist/{sandbox-Fd2G5yaq.cjs → sandbox-Bqkp8IT7.cjs} +4 -4
  141. package/dist/{sandbox-Brb_5wzc.mjs → sandbox-DlVnK1Vi.mjs} +4 -4
  142. package/dist/{selfCheck-NuJKMInJ.cjs → selfCheck-B4lLZplk.cjs} +34 -34
  143. package/dist/selfCheck-DYTGBdIO.mjs +84 -0
  144. package/dist/{send-DEQJiq_x.mjs → send-B5bWW9Tl.mjs} +8 -8
  145. package/dist/{send-4dgHKC3u.cjs → send-BCwS6n_s.cjs} +8 -8
  146. package/dist/{server-C6AlUFkw.mjs → server-CEJfRQfj.mjs} +4 -4
  147. package/dist/{server-DWGcDmHG.cjs → server-CFWZehnC.cjs} +6 -6
  148. package/dist/{sessionLock-Dm8QyGo4.mjs → sessionLock-AwOYsKT7.mjs} +12 -4
  149. package/dist/{sessionLock-B1GgaO1q.cjs → sessionLock-LBWNjpHf.cjs} +12 -3
  150. package/dist/{sessionModeFile-BvOEJ4Fl.cjs → sessionModeFile-CyPuZRIU.cjs} +1 -1
  151. package/dist/{sessionModeFile-CuNAWCKL.mjs → sessionModeFile-fvFn1JVG.mjs} +1 -1
  152. package/dist/{sessionOps-DG5MMEp_.mjs → sessionOps-DZRH4-hV.mjs} +4 -4
  153. package/dist/{sessionOps-JP64uJmc.cjs → sessionOps-DzbZI3Eq.cjs} +4 -4
  154. package/dist/{sessionScanner-DqSk5Ol_.mjs → sessionScanner-Q_Ei2flB.mjs} +75 -19
  155. package/dist/{sessionScanner-BBPEgJ5S.cjs → sessionScanner-i-cgwFVw.cjs} +75 -19
  156. package/dist/{sessions-4isbBAWi.mjs → sessions-DAmjMAZN.mjs} +9 -9
  157. package/dist/{sessions-DgJuw_i0.cjs → sessions-DYK5hD4T.cjs} +9 -9
  158. package/dist/{setupOfflineReconnection-_MoZtsro.mjs → setupOfflineReconnection-BfDBxNdo.mjs} +2 -2
  159. package/dist/{setupOfflineReconnection-CKJKVIUS.cjs → setupOfflineReconnection-C2LO3hSP.cjs} +2 -2
  160. package/dist/{spawn-BTOG4tTm.mjs → spawn-BmjG5j5Y.mjs} +15 -14
  161. package/dist/{spawn-CshERWbY.cjs → spawn-GK_sXE8h.cjs} +15 -14
  162. package/dist/{spawnAgents-Czi2VDzj.mjs → spawnAgents-HDaE3C0-.mjs} +1 -1
  163. package/dist/{spawnAgents-McixdtV1.cjs → spawnAgents-vglexX9N.cjs} +1 -1
  164. package/dist/{spawnHappyCLI-Dc4xYm8P.mjs → spawnHappyCLI-B2h0P4b5.mjs} +1 -1
  165. package/dist/{spawnHappyCLI-Dd5_8Vex.cjs → spawnHappyCLI-J4iEhfyZ.cjs} +1 -1
  166. package/dist/specialCommands-DisVxagO.mjs +93 -0
  167. package/dist/specialCommands-DmJMKspE.cjs +96 -0
  168. package/dist/{startFileWatcher-B0VlG-Fn.mjs → startFileWatcher-CeK1k5gt.mjs} +1 -1
  169. package/dist/{startFileWatcher-1LedLBY-.cjs → startFileWatcher-xKo8AoYl.cjs} +1 -1
  170. package/dist/{streamRelay-C0AffuX6.cjs → streamRelay-Ce9sgcOV.cjs} +1 -1
  171. package/dist/{streamRelay-BzMEEvJU.mjs → streamRelay-Iogsh51a.mjs} +1 -1
  172. package/dist/{sync-DwUUGGFz.cjs → sync-Bvc-vh6C.cjs} +1 -1
  173. package/dist/{sync-Dfm6K2te.mjs → sync-CCwYpJMS.mjs} +1 -1
  174. package/dist/{systemPrompt-D41Zw1a3.mjs → systemPrompt-BNIkP3tR.mjs} +3 -3
  175. package/dist/{systemPrompt-CB1Ls0AE.cjs → systemPrompt-DwOddbuG.cjs} +3 -3
  176. package/dist/{teams-D8Ly3i6u.mjs → teams-DRrLBcys.mjs} +7 -7
  177. package/dist/{teams-NWv2ji16.cjs → teams-GHMCRZOw.cjs} +7 -7
  178. package/dist/{time-BbzJ7PJQ.cjs → time-BXvtjhe9.cjs} +1 -1
  179. package/dist/{time-v1Y_qEJp.mjs → time-PG5Dfwdv.mjs} +1 -1
  180. package/dist/{titleGenerator-cH6IkPRi.cjs → titleGenerator-B07bZA0V.cjs} +2 -2
  181. package/dist/{titleGenerator-BhoblAQY.mjs → titleGenerator-CIzfpfZW.mjs} +1 -1
  182. package/dist/{todo-D1hgWV6d.cjs → todo-B0aeoNu3.cjs} +6 -6
  183. package/dist/{todo-CuNct-fw.mjs → todo-CfL7SBFc.mjs} +6 -6
  184. package/dist/{tools-jof0Bu54.mjs → tools-D91mq5Ib.mjs} +1 -1
  185. package/dist/{tools-c2fb0CF5.cjs → tools-DJIANHSh.cjs} +1 -1
  186. package/dist/transcriptCursor-B7T_gkQ0.mjs +102 -0
  187. package/dist/transcriptCursor-DcXGLeSc.cjs +106 -0
  188. package/dist/{uninstall-BB7WYYAk.mjs → uninstall-5xz3Xvhf.mjs} +3 -3
  189. package/dist/{uninstall-VPH5GfrA.cjs → uninstall-AtzOfdrj.cjs} +3 -3
  190. package/package.json +7 -7
  191. package/scripts/terminal_status_forwarder.cjs +89 -0
  192. package/dist/defaultPermissionMode-BnxJPVHT.mjs +0 -4
  193. package/dist/defaultPermissionMode-CxmTXUQR.cjs +0 -7
  194. package/dist/mirrorProtocol-BNLtoWjO.mjs +0 -170
  195. package/dist/mirrorProtocol-BUtmg1ws.cjs +0 -186
  196. package/dist/selfCheck-BgwJ3NGS.mjs +0 -84
  197. package/dist/specialCommands-BSqhYg5X.mjs +0 -52
  198. package/dist/specialCommands-DSsTeRej.cjs +0 -54
@@ -1,96 +1,98 @@
1
1
  'use strict';
2
2
 
3
- var auth = require('./auth-CfLd3phE.cjs');
4
- var index = require('./index-DqlyNgt4.cjs');
3
+ var auth = require('./auth-VzWpbo5P.cjs');
4
+ var index = require('./index-C9hI8a10.cjs');
5
5
  var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
6
6
  var node_crypto = require('node:crypto');
7
7
  var cuid2 = require('@paralleldrive/cuid2');
8
8
  var agentAttachments = require('./agentAttachments-Dbw8iMCZ.cjs');
9
- var attachmentContent = require('./attachmentContent-muDCe4Gy.cjs');
9
+ var attachmentContent = require('./attachmentContent-HcJqFQW8.cjs');
10
10
  var ink = require('ink');
11
- var sessionLock = require('./sessionLock-B1GgaO1q.cjs');
11
+ var sessionLock = require('./sessionLock-LBWNjpHf.cjs');
12
12
  var React = require('react');
13
- var api = require('./api-AzdzTKFs.cjs');
14
- var codexAppServerClient = require('./codexAppServerClient-BuSdeUxT.cjs');
15
- var logger = require('./logger-D0hkk7Vo.cjs');
16
- var BasePermissionHandler = require('./BasePermissionHandler-BwQHxl6M.cjs');
17
- var BaseReasoningProcessor = require('./BaseReasoningProcessor-81lf_M8G.cjs');
13
+ var api = require('./api-BZYLRDM9.cjs');
14
+ var codexAppServerClient = require('./codexAppServerClient-TiW9OBk4.cjs');
15
+ var specialCommands = require('./specialCommands-DmJMKspE.cjs');
16
+ var logger = require('./logger-B_MWPbZz.cjs');
17
+ var BasePermissionHandler = require('./BasePermissionHandler-DHxYAK5L.cjs');
18
+ var BaseReasoningProcessor = require('./BaseReasoningProcessor-CsjVdt_H.cjs');
18
19
  var node_child_process = require('node:child_process');
19
- var persistence = require('./persistence-C6ztVW1W.cjs');
20
- var machineMetadata = require('./machineMetadata-BDCYOXQg.cjs');
21
- var configuration = require('./configuration-BE61XNsg.cjs');
22
- var registerKillSessionHandler = require('./registerKillSessionHandler-CI23l8aJ.cjs');
20
+ var persistence = require('./persistence-BYGl0QYw.cjs');
21
+ var machineMetadata = require('./machineMetadata-BafS4JY8.cjs');
22
+ var configuration = require('./configuration-C3piBtxY.cjs');
23
+ var registerKillSessionHandler = require('./registerKillSessionHandler-BwXGKtg_.cjs');
23
24
  var projectPath = require('./projectPath-ChLhdOyt.cjs');
24
25
  var path = require('node:path');
25
- var createSessionMetadata = require('./createSessionMetadata-CPGTztXP.cjs');
26
- var deterministicJson = require('./deterministicJson-C4Jo2RWy.cjs');
26
+ var createSessionMetadata = require('./createSessionMetadata-zQSz3hgk.cjs');
27
+ var deterministicJson = require('./deterministicJson-C7O2ulKY.cjs');
27
28
  var messageBuffer = require('./messageBuffer-fJMH6uY8.cjs');
28
- var controlClient = require('./controlClient-RWTlQA4_.cjs');
29
+ var controlClient = require('./controlClient-BI6Fw3fQ.cjs');
30
+ var defaultPermissionMode = require('./defaultPermissionMode-DNKNzk7l.cjs');
29
31
  var authRelay = require('./authRelay-BdYkC1Po.cjs');
30
- var setupOfflineReconnection = require('./setupOfflineReconnection-CKJKVIUS.cjs');
32
+ var setupOfflineReconnection = require('./setupOfflineReconnection-C2LO3hSP.cjs');
31
33
  var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
32
- var specialCommands = require('./specialCommands-DSsTeRej.cjs');
33
34
  var constants = require('./constants-VJ0N6WuG.cjs');
34
- var defaultPermissionMode = require('./defaultPermissionMode-CxmTXUQR.cjs');
35
35
  var editPaths = require('./editPaths-Bqp4OFPw.cjs');
36
- var ensureDaemonRunning = require('./ensureDaemonRunning-mIgX2vnc.cjs');
36
+ var ensureDaemonRunning = require('./ensureDaemonRunning-CCxX7MoP.cjs');
37
37
  require('tweetnacl');
38
38
  require('axios');
39
- require('./time-BbzJ7PJQ.cjs');
40
- require('./browser-_gV7tcPs.cjs');
39
+ require('./time-BXvtjhe9.cjs');
40
+ require('./browser-BoCV40yC.cjs');
41
41
  require('open');
42
42
  require('zod');
43
43
  require('node:fs/promises');
44
- require('./attachmentLimits-eJZ4ZBjF.cjs');
44
+ require('./attachmentLimits-BEYEEBm8.cjs');
45
45
  require('node:fs');
46
- require('./lidState-z9ekRpZu.cjs');
46
+ require('./lidState-Bc2K9H9l.cjs');
47
47
  require('os');
48
48
  require('child_process');
49
49
  require('node:events');
50
50
  require('socket.io-client');
51
51
  require('./limits-C-a7gr04.cjs');
52
- require('./registerCommonHandlers--8ds2auE.cjs');
52
+ require('./registerCommonHandlers-DVYB3iVn.cjs');
53
53
  require('util');
54
54
  require('fs/promises');
55
55
  require('crypto');
56
56
  require('path');
57
57
  require('cross-spawn');
58
- require('./sync-DwUUGGFz.cjs');
58
+ require('./sync-Bvc-vh6C.cjs');
59
59
  require('./backgroundTaskActivity-CBvUdj39.cjs');
60
60
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
61
61
  require('chalk');
62
62
  require('node:readline');
63
- require('./manager-Cly8xVIR.cjs');
63
+ require('./manager-HrEj442o.cjs');
64
64
  require('@anthropic-ai/sandbox-runtime');
65
65
  require('node:os');
66
- require('./package-UkmvSFsg.cjs');
66
+ require('./package-C9ZP9bpX.cjs');
67
+ require('./rateLimitWindows-CusGIqlq.cjs');
67
68
  require('node:util');
68
69
  require('./detectCLI-DR9ZaN6B.cjs');
69
70
  require('fs');
70
- require('./localHappyAgentAuth-BCx0y1qW.cjs');
71
+ require('./localHappyAgentAuth-T5GOvRha.cjs');
71
72
  require('./types-CRS-srZK.cjs');
72
73
  require('url');
73
- require('./client-Do7cGPEq.cjs');
74
- require('./context-3WVw8qPz.cjs');
75
- require('./sessionOps-JP64uJmc.cjs');
74
+ require('./client-BKnKRLSt.cjs');
75
+ require('./context-Jrq4-eCZ.cjs');
76
+ require('./sessionOps-DzbZI3Eq.cjs');
76
77
  require('./resources-JDPugcDq.cjs');
77
- require('./tools-c2fb0CF5.cjs');
78
- require('./tools-mWqsE6ji.cjs');
79
- require('./client-uN9d6Git.cjs');
80
- require('./peerTools-CttfOxti.cjs');
78
+ require('./tools-DJIANHSh.cjs');
79
+ require('./reportProgressTool-D4KB_4cP.cjs');
80
+ require('./client-D0T5-6Ds.cjs');
81
+ require('./precheckCompat-CWOi5c9L.cjs');
82
+ require('./agentGuidance-BtBx2xxE.cjs');
83
+ require('./peerTools-Dkbu7gag.cjs');
81
84
  require('./ids-B6ZC0HGt.cjs');
82
- require('./remoteSessionClient-BAkIwM2S.cjs');
85
+ require('./remoteSessionClient-PyUAIhwK.cjs');
83
86
  require('@modelcontextprotocol/sdk/server/mcp.js');
84
87
  require('node:http');
85
88
  require('@modelcontextprotocol/sdk/server/streamableHttp.js');
86
- require('./assistantTools-BsrG3PD-.cjs');
89
+ require('./downloadTarget-CWTb2-EM.cjs');
87
90
  require('./terminals-B_bfC9c2.cjs');
88
91
  require('./terminalTitleSuggest-DhvRFX3H.cjs');
89
92
  require('./tmuxSocket-D-Xt6Vn-.cjs');
90
- require('./bootstrap-B1dMZA-u.cjs');
91
- require('./agentGuidance-B5NATuFa.cjs');
93
+ require('./bootstrap-Dj8WBiR2.cjs');
92
94
  require('./previewPath-B0rBdhy1.cjs');
93
- require('./spawnHappyCLI-Dd5_8Vex.cjs');
95
+ require('./spawnHappyCLI-J4iEhfyZ.cjs');
94
96
  require('./doctorReadiness-BCZGcN0a.cjs');
95
97
 
96
98
  function getStartedSubagents(state) {
@@ -652,20 +654,29 @@ async function readChildThread(client, childId) {
652
654
  return { envelopes: mapCodexThreadToSessionEnvelopes(thread) };
653
655
  }
654
656
 
657
+ const HAPPY_MCP_SERVER_NAME = "happy";
655
658
  class CodexPermissionHandler extends BasePermissionHandler.BasePermissionHandler {
656
659
  // Exact tool names that should always be auto-approved. Include the bare
657
660
  // form (used by Codex elicitation messages like `tool "change_title"`)
658
- // and the MCP-qualified form for defense in depth.
661
+ // and the MCP-qualified form for defense in depth. A BARE name (and an ID
662
+ // prefix) only counts when the request comes from our own server: any
663
+ // other MCP server may expose a tool with the same name.
664
+ // B-556: report_progress only writes this session's own board line (same
665
+ // trust as change_title); an approval prompt per report would park the
666
+ // session in "waiting for you" at every milestone.
659
667
  static ALWAYS_AUTO_APPROVE_NAMES = /* @__PURE__ */ new Set([
660
668
  "change_title",
661
- "mcp__happy__change_title"
669
+ "mcp__happy__change_title",
670
+ "report_progress",
671
+ "mcp__happy__report_progress"
662
672
  ]);
663
673
  // Tool-call IDs that should auto-approve when they exactly match one of
664
674
  // these values or start with `<name>-` (e.g. `change_title-1765385846663`).
665
675
  // Substring matching was a bypass vector — any tool whose ID happened to
666
676
  // contain `change_title` as a substring would be silently approved.
667
677
  static ALWAYS_AUTO_APPROVE_ID_PREFIXES = [
668
- "change_title"
678
+ "change_title",
679
+ "report_progress"
669
680
  ];
670
681
  constructor(session) {
671
682
  super(session);
@@ -673,7 +684,11 @@ class CodexPermissionHandler extends BasePermissionHandler.BasePermissionHandler
673
684
  getLogPrefix() {
674
685
  return "[Codex]";
675
686
  }
676
- shouldAutoApprove(toolName, toolCallId) {
687
+ shouldAutoApprove(toolName, toolCallId, serverName) {
688
+ if (toolName.startsWith(`mcp__${HAPPY_MCP_SERVER_NAME}__`)) {
689
+ return CodexPermissionHandler.ALWAYS_AUTO_APPROVE_NAMES.has(toolName);
690
+ }
691
+ if (serverName !== HAPPY_MCP_SERVER_NAME) return false;
677
692
  if (CodexPermissionHandler.ALWAYS_AUTO_APPROVE_NAMES.has(toolName)) {
678
693
  return true;
679
694
  }
@@ -689,10 +704,11 @@ class CodexPermissionHandler extends BasePermissionHandler.BasePermissionHandler
689
704
  * @param toolCallId - The unique ID of the tool call
690
705
  * @param toolName - The name of the tool being called
691
706
  * @param input - The input parameters for the tool
707
+ * @param serverName - MCP server of an elicitation (`mcpServer/elicitation/request`); undefined for exec/patch
692
708
  * @returns Promise resolving to permission result
693
709
  */
694
- async handleToolCall(toolCallId, toolName, input) {
695
- if (this.shouldAutoApprove(toolName, toolCallId)) {
710
+ async handleToolCall(toolCallId, toolName, input, serverName) {
711
+ if (this.shouldAutoApprove(toolName, toolCallId, serverName)) {
696
712
  logger.logger.debug(`${this.getLogPrefix()} Auto-approving tool ${toolName} (${toolCallId})`);
697
713
  this.session.updateAgentState((currentState) => ({
698
714
  ...currentState,
@@ -915,6 +931,29 @@ const CodexDisplay = ({ messageBuffer, logPath, onExit }) => {
915
931
  ));
916
932
  };
917
933
 
934
+ async function settleCodexSession(session, intent, deactivate, log = () => {
935
+ }) {
936
+ if (intent === "archive") {
937
+ session.updateMetadata((currentMetadata) => ({
938
+ ...currentMetadata,
939
+ lifecycleState: "archived",
940
+ lifecycleStateSince: Date.now(),
941
+ archivedBy: "cli",
942
+ archiveReason: "User terminated"
943
+ }));
944
+ }
945
+ session.sendSessionDeath();
946
+ await session.flush();
947
+ if (intent === "offline") {
948
+ try {
949
+ await deactivate(session.sessionId);
950
+ } catch (error) {
951
+ log("[Codex] deactivate on signal failed", error);
952
+ }
953
+ }
954
+ await session.close();
955
+ }
956
+
918
957
  function resolveCodexExecutionPolicy(permissionMode, sandboxManagedByHappy) {
919
958
  if (sandboxManagedByHappy) {
920
959
  return {
@@ -1279,7 +1318,7 @@ async function runCodex(opts) {
1279
1318
  dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
1280
1319
  ...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
1281
1320
  ...forkedFromMessageId ? { forkedFromMessageId } : {},
1282
- capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY]
1321
+ capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY]
1283
1322
  });
1284
1323
  metadata.attachmentKinds = [...attachmentContent.CLAUDE_ATTACHMENT_KINDS];
1285
1324
  const importCodexThreadId = process.env[IMPORT_CODEX_THREAD_ENV];
@@ -1317,12 +1356,16 @@ async function runCodex(opts) {
1317
1356
  throw new Error(`Failed to reactivate archived session ${response.id}`);
1318
1357
  }
1319
1358
  let reconnectSeeded = false;
1359
+ let wakingFromHibernation = false;
1320
1360
  if (reconnectSessionId && response) {
1321
1361
  const snapshot = await api$1.getSession(response.id, response.encryptionKey, response.encryptionVariant);
1322
1362
  if (snapshot.ok) {
1323
1363
  response = sessionLock.applyServerSnapshot(response, snapshot.session);
1324
1364
  reconnectSeeded = true;
1325
1365
  logger.logger.debug(`[START] Reconnect seeded from server: seq=${snapshot.session.seq} metadataVersion=${snapshot.session.metadataVersion}`);
1366
+ const wake = sessionLock.applyHibernationReplay(response);
1367
+ response = wake.response;
1368
+ wakingFromHibernation = wake.replaying;
1326
1369
  } else {
1327
1370
  response = sessionLock.withoutServerSnapshot(response);
1328
1371
  logger.logger.debug(`[START] Reconnect without server snapshot (${snapshot.reason}); skipping existing messages`);
@@ -1353,7 +1396,7 @@ async function runCodex(opts) {
1353
1396
  if (reconnectSessionId) {
1354
1397
  session.suppressNextArchiveSignal();
1355
1398
  if (!reconnectSeeded) session.skipExistingMessages();
1356
- void session.cancelUndeliveredQueuedInputs();
1399
+ if (!wakingFromHibernation) void session.cancelUndeliveredQueuedInputs();
1357
1400
  session.updateMetadata((meta) => sessionLock.mergeReconnectMetadata(meta, metadata, Date.now()));
1358
1401
  }
1359
1402
  if (response) {
@@ -1517,7 +1560,10 @@ async function runCodex(opts) {
1517
1560
  }
1518
1561
  let abortController = new AbortController();
1519
1562
  let shouldExit = false;
1520
- async function handleAbort() {
1563
+ const hibernationExit = new defaultPermissionMode.HibernationExitLatch((a, b) => a === "archive" && b !== "archive");
1564
+ let hibernationStamp = null;
1565
+ let hibernationProbe = null;
1566
+ async function handleAbort(source) {
1521
1567
  if (abortInProgress) {
1522
1568
  await abortInProgress;
1523
1569
  return;
@@ -1533,6 +1579,9 @@ async function runCodex(opts) {
1533
1579
  gracePeriodMs: 3e3,
1534
1580
  forceRestartOnTimeout: true
1535
1581
  });
1582
+ if (source === "user" && abortResult.hadActiveTurn && abortResult.aborted) {
1583
+ session.sendSessionEvent({ type: "message", message: "Aborted by user" });
1584
+ }
1536
1585
  if (abortResult.forcedRestart) {
1537
1586
  logger.logger.warn("[Codex] Forced app-server restart after interrupt timeout");
1538
1587
  session.sendSessionEvent({
@@ -1556,23 +1605,16 @@ async function runCodex(opts) {
1556
1605
  await abortInProgress;
1557
1606
  abortInProgress = null;
1558
1607
  }
1559
- const handleKillSession = async () => {
1608
+ const handleKillSession = async (intent = "archive") => {
1609
+ if (hibernationExit.intercept(intent)) {
1610
+ logger.logger.debug(`[Codex] ${intent} exit deferred: hibernation in progress`);
1611
+ return;
1612
+ }
1560
1613
  logger.logger.debug("[Codex] Kill session requested - terminating process");
1561
- await handleAbort();
1614
+ await handleAbort("kill");
1562
1615
  logger.logger.debug("[Codex] Abort completed, proceeding with termination");
1563
1616
  try {
1564
- if (session) {
1565
- session.updateMetadata((currentMetadata) => ({
1566
- ...currentMetadata,
1567
- lifecycleState: "archived",
1568
- lifecycleStateSince: Date.now(),
1569
- archivedBy: "cli",
1570
- archiveReason: "User terminated"
1571
- }));
1572
- session.sendSessionDeath();
1573
- await session.flush();
1574
- await session.close();
1575
- }
1617
+ if (session) await settleCodexSession(session, intent, (id) => api$1.deactivateSession(id), (m, e) => logger.logger.debug(m, safeCodexErrorMetadata(e)));
1576
1618
  try {
1577
1619
  await client.disconnect();
1578
1620
  } catch (e) {
@@ -1593,8 +1635,8 @@ async function runCodex(opts) {
1593
1635
  return { error: error instanceof Error ? error.message : "Child read failed" };
1594
1636
  }
1595
1637
  });
1596
- session.rpcHandlerManager.registerHandler("abort", handleAbort);
1597
- const disposeTermination = registerKillSessionHandler.registerKillSessionHandler(session.rpcHandlerManager, handleKillSession, session, { processSignals: true });
1638
+ session.rpcHandlerManager.registerHandler("abort", () => handleAbort("user"));
1639
+ const disposeTermination = registerKillSessionHandler.registerKillSessionHandler(session.rpcHandlerManager, () => handleKillSession("archive"), session, { processSignals: true, onSignal: () => handleKillSession("offline") });
1598
1640
  const messageBuffer$1 = new messageBuffer.MessageBuffer();
1599
1641
  const hasTTY = process.stdout.isTTY && process.stdin.isTTY;
1600
1642
  let inkInstance = null;
@@ -1606,7 +1648,7 @@ async function runCodex(opts) {
1606
1648
  onExit: async () => {
1607
1649
  logger.logger.debug("[codex]: Exiting agent via Ctrl-C");
1608
1650
  shouldExit = true;
1609
- await handleAbort();
1651
+ await handleAbort("exit");
1610
1652
  }
1611
1653
  }), {
1612
1654
  exitOnCtrlC: false,
@@ -1655,7 +1697,7 @@ async function runCodex(opts) {
1655
1697
  const toolName = params.type === "exec" ? "CodexBash" : params.type === "patch" ? "CodexPatch" : params.toolName ?? "McpTool";
1656
1698
  const input = params.type === "exec" ? { command: params.command, cwd: params.cwd } : params.type === "patch" ? { changes: params.fileChanges } : params.input ?? {};
1657
1699
  try {
1658
- const result = await permissionHandler.handleToolCall(params.callId, toolName, input);
1700
+ const result = await permissionHandler.handleToolCall(params.callId, toolName, input, params.type === "mcp" ? params.serverName : void 0);
1659
1701
  logger.logger.debug("[Codex] Permission request resolved");
1660
1702
  return result.decision;
1661
1703
  } catch (error) {
@@ -1664,6 +1706,7 @@ async function runCodex(opts) {
1664
1706
  }
1665
1707
  });
1666
1708
  const editThrottle = new editPaths.EditReportThrottle();
1709
+ client.setRateLimitHandler((snapshot) => specialCommands.wrapperRateLimitReporter().observeCodex(snapshot));
1667
1710
  client.setEventHandler((msg) => {
1668
1711
  if (msg.type === "token_count") {
1669
1712
  session.sendAgentUsageSnapshot("codex", msg);
@@ -1768,7 +1811,7 @@ async function runCodex(opts) {
1768
1811
  const happyServer = await deterministicJson.startHappyServer(session);
1769
1812
  const bridgeEntrypoint = path.join(projectPath.projectPath(), "bin", "very-happy-mcp.mjs");
1770
1813
  const mcpServers = {
1771
- happy: {
1814
+ [HAPPY_MCP_SERVER_NAME]: {
1772
1815
  command: process.execPath,
1773
1816
  args: ["--no-warnings", "--no-deprecation", bridgeEntrypoint, "--url", happyServer.url]
1774
1817
  }
@@ -1845,6 +1888,54 @@ async function runCodex(opts) {
1845
1888
  }
1846
1889
  }
1847
1890
  let pending = null;
1891
+ if (opts.startedBy === "daemon" && !hasTTY && process.env.HAPPY_SESSION_VARIANT !== "assistant") {
1892
+ let keepAwakeLatch = false;
1893
+ const hibernationSnapshot = () => {
1894
+ const meta = session.getMetadata();
1895
+ return {
1896
+ flavor: "codex",
1897
+ resumable: typeof meta?.codexThreadId === "string" && meta.codexThreadId.length > 0,
1898
+ uiSession: true,
1899
+ ...process.env.HAPPY_SPAWNED_BY ? { spawnedBy: process.env.HAPPY_SPAWNED_BY } : {},
1900
+ ...meta?.tags ? { tags: meta.tags } : {},
1901
+ keepAwake: keepAwakeLatch = persistence.latchKeepAwake(meta?.keepAwake, keepAwakeLatch),
1902
+ ...typeof meta?.keepAwake === "boolean" ? { keepAwakeSetting: meta.keepAwake } : {},
1903
+ thinking: thinking || turnActive,
1904
+ queuedInputs: messageQueue.size() + (session.promptQueueHasPending() ? 1 : 0),
1905
+ waitingForInput: messageQueue.isWaiting(),
1906
+ pendingRequests: Object.keys(session.getAgentState()?.requests ?? {}).length,
1907
+ backgroundTasks: codexActiveSubagents.size,
1908
+ lastActivityAt: session.lastActivityAt,
1909
+ ...shouldExit && !hibernationExit.hibernating ? { exiting: true } : {}
1910
+ };
1911
+ };
1912
+ hibernationProbe = new defaultPermissionMode.HibernationProbe({
1913
+ onKeepAwakeLatched: () => {
1914
+ if (session.getMetadata()?.keepAwake === void 0) session.updateMetadata((m) => m.keepAwake === void 0 ? { ...m, keepAwake: true } : m);
1915
+ },
1916
+ checkMs: persistence.resolveCheckMs(),
1917
+ snapshot: hibernationSnapshot,
1918
+ ask: (report) => controlClient.checkDaemonHibernation({ sessionId: session.sessionId, pid: process.pid, report }),
1919
+ commit: (idleMs) => defaultPermissionMode.commitHibernation({
1920
+ client: session,
1921
+ claimExit: () => !shouldExit && hibernationExit.begin(),
1922
+ exitRequested: () => hibernationExit.exitRequested,
1923
+ markCommitted: () => hibernationExit.commit(),
1924
+ releaseExit: () => {
1925
+ const deferred = hibernationExit.release();
1926
+ if (deferred) void handleKillSession(deferred);
1927
+ },
1928
+ recheck: () => persistence.evaluateWrapperIdle(hibernationSnapshot(), idleMs, Date.now()),
1929
+ idleMs,
1930
+ finish: async (stamp) => {
1931
+ hibernationStamp = stamp;
1932
+ shouldExit = true;
1933
+ abortController.abort();
1934
+ }
1935
+ })
1936
+ });
1937
+ hibernationProbe.start();
1938
+ }
1848
1939
  idleRelease.arm();
1849
1940
  while (!shouldExit) {
1850
1941
  logActiveHandles("loop-top");
@@ -1981,6 +2072,7 @@ async function runCodex(opts) {
1981
2072
  }
1982
2073
  } finally {
1983
2074
  disposeTermination?.();
2075
+ hibernationProbe?.stop();
1984
2076
  session.closePromptQueueDrain();
1985
2077
  logger.logger.debug("[codex]: Final cleanup start");
1986
2078
  logActiveHandles("cleanup-start");
@@ -2029,6 +2121,15 @@ async function runCodex(opts) {
2029
2121
  messageBuffer$1.clear();
2030
2122
  logActiveHandles("cleanup-end");
2031
2123
  logger.logger.debug("[codex]: Final cleanup completed");
2124
+ if (hibernationExit.hibernating && hibernationStamp) {
2125
+ try {
2126
+ await api$1.deactivateSession(session.sessionId);
2127
+ } catch (error) {
2128
+ logger.logger.debug("[codex]: deactivate after hibernation failed", safeCodexErrorMetadata(error));
2129
+ }
2130
+ logger.logger.debug("[codex]: hibernated; exiting");
2131
+ process.exit(0);
2132
+ }
2032
2133
  }
2033
2134
  }
2034
2135
 
@@ -2,15 +2,15 @@ import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
2
2
  import { join } from 'path';
3
3
  import { homedir } from 'os';
4
4
  import { execSync } from 'child_process';
5
- import { l as logger } from './logger-CknSVkIe.mjs';
5
+ import { l as logger } from './logger-CbBv3q_b.mjs';
6
6
  import { D as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './constants-BC4St0xd.mjs';
7
7
  import 'chalk';
8
8
  import 'node:util';
9
- import './configuration-L1qcGTFM.mjs';
9
+ import './configuration-WspKd2C2.mjs';
10
10
  import 'node:fs';
11
11
  import 'node:os';
12
12
  import 'node:path';
13
- import './package-VIUXrYZ1.mjs';
13
+ import './package-DU1DxhH9.mjs';
14
14
  import 'node:fs/promises';
15
15
  import './trimIdent-BAjmv_TG.mjs';
16
16
 
@@ -4,15 +4,15 @@ var fs = require('fs');
4
4
  var path = require('path');
5
5
  var os = require('os');
6
6
  var child_process = require('child_process');
7
- var logger = require('./logger-D0hkk7Vo.cjs');
7
+ var logger = require('./logger-B_MWPbZz.cjs');
8
8
  var constants = require('./constants-VJ0N6WuG.cjs');
9
9
  require('chalk');
10
10
  require('node:util');
11
- require('./configuration-BE61XNsg.cjs');
11
+ require('./configuration-C3piBtxY.cjs');
12
12
  require('node:fs');
13
13
  require('node:os');
14
14
  require('node:path');
15
- require('./package-UkmvSFsg.cjs');
15
+ require('./package-C9ZP9bpX.cjs');
16
16
  require('node:fs/promises');
17
17
  require('./trimIdent-4gvk9Wk6.cjs');
18
18
 
@@ -3,7 +3,7 @@
3
3
  var node_fs = require('node:fs');
4
4
  var os = require('node:os');
5
5
  var path = require('node:path');
6
- var _package = require('./package-UkmvSFsg.cjs');
6
+ var _package = require('./package-C9ZP9bpX.cjs');
7
7
  var promises = require('node:fs/promises');
8
8
 
9
9
  const PRIVATE_DIRECTORY_MODE = 448;
@@ -1,7 +1,7 @@
1
1
  import { mkdirSync, chmodSync, readdirSync, statSync, appendFileSync, writeFileSync, existsSync, readFileSync } from 'node:fs';
2
2
  import { homedir } from 'node:os';
3
3
  import { join } from 'node:path';
4
- import { p as packageJson } from './package-VIUXrYZ1.mjs';
4
+ import { p as packageJson } from './package-DU1DxhH9.mjs';
5
5
  import { mkdir, chmod, writeFile } from 'node:fs/promises';
6
6
 
7
7
  const PRIVATE_DIRECTORY_MODE = 448;
@@ -167,4 +167,4 @@ function readSettingsStringSync(settingsFile, key) {
167
167
  }
168
168
  const configuration = new Configuration();
169
169
 
170
- export { PRIVATE_FILE_MODE as P, writePrivateFile as a, hardenPrivateFile as b, configuration as c, appendPrivateFileSync as d, ensurePrivateDirectory as e, ensurePrivateDirectorySync as f, hardenPrivateFileSync as h, normalizeHttpEndpoint as n, writePrivateFileSync as w };
170
+ export { PRIVATE_FILE_MODE as P, hardenPrivateFileSync as a, writePrivateFile as b, configuration as c, appendPrivateFileSync as d, ensurePrivateDirectory as e, ensurePrivateDirectorySync as f, hardenPrivateFile as h, normalizeHttpEndpoint as n, writePrivateFileSync as w };
@@ -3,12 +3,12 @@
3
3
  var chalk = require('chalk');
4
4
  var os = require('os');
5
5
  var path = require('path');
6
- var persistence = require('./persistence-C6ztVW1W.cjs');
7
- var api = require('./api-AzdzTKFs.cjs');
8
- var configuration = require('./configuration-BE61XNsg.cjs');
6
+ var persistence = require('./persistence-BYGl0QYw.cjs');
7
+ var api = require('./api-BZYLRDM9.cjs');
8
+ var configuration = require('./configuration-C3piBtxY.cjs');
9
9
  var http = require('http');
10
10
  var crypto = require('crypto');
11
- var browser = require('./browser-_gV7tcPs.cjs');
11
+ var browser = require('./browser-BoCV40yC.cjs');
12
12
  var child_process = require('child_process');
13
13
  var util = require('util');
14
14
  require('node:fs/promises');
@@ -17,29 +17,29 @@ require('zod');
17
17
  require('./authRelay-BdYkC1Po.cjs');
18
18
  require('node:crypto');
19
19
  require('tweetnacl');
20
- require('./logger-D0hkk7Vo.cjs');
20
+ require('./logger-B_MWPbZz.cjs');
21
21
  require('node:util');
22
22
  require('node:path');
23
- require('node:os');
24
- require('./package-UkmvSFsg.cjs');
25
23
  require('axios');
26
- require('./lidState-z9ekRpZu.cjs');
24
+ require('./lidState-Bc2K9H9l.cjs');
27
25
  require('node:events');
28
26
  require('socket.io-client');
29
- require('./attachmentLimits-eJZ4ZBjF.cjs');
30
- require('./index-DqlyNgt4.cjs');
27
+ require('./attachmentLimits-BEYEEBm8.cjs');
28
+ require('./index-C9hI8a10.cjs');
31
29
  require('@paralleldrive/cuid2');
32
30
  require('./limits-C-a7gr04.cjs');
33
- require('./time-BbzJ7PJQ.cjs');
34
- require('./registerCommonHandlers--8ds2auE.cjs');
31
+ require('./time-BXvtjhe9.cjs');
32
+ require('./registerCommonHandlers-DVYB3iVn.cjs');
35
33
  require('fs/promises');
36
34
  require('cross-spawn');
37
35
  require('./projectPath-ChLhdOyt.cjs');
38
36
  require('url');
39
- require('./sync-DwUUGGFz.cjs');
37
+ require('./sync-Bvc-vh6C.cjs');
40
38
  require('./backgroundTaskActivity-CBvUdj39.cjs');
41
- require('./controlClient-RWTlQA4_.cjs');
39
+ require('./controlClient-BI6Fw3fQ.cjs');
42
40
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
41
+ require('node:os');
42
+ require('./package-C9ZP9bpX.cjs');
43
43
  require('open');
44
44
 
45
45
  const CLIENT_ID$2 = "app_EMoamEEZ73f0CkXaXp7hrann";
@@ -1,12 +1,12 @@
1
1
  import chalk from 'chalk';
2
2
  import { homedir } from 'os';
3
3
  import { join } from 'path';
4
- import { readCredentialsForConfiguredRelay } from './persistence-DujtUH94.mjs';
5
- import { A as ApiClient } from './api-DTVPUE7g.mjs';
6
- import { f as ensurePrivateDirectorySync, w as writePrivateFileSync } from './configuration-L1qcGTFM.mjs';
4
+ import { c as readCredentialsForConfiguredRelay } from './persistence-ON0zpHfb.mjs';
5
+ import { A as ApiClient } from './api-CReZazeT.mjs';
6
+ import { f as ensurePrivateDirectorySync, w as writePrivateFileSync } from './configuration-WspKd2C2.mjs';
7
7
  import { createServer } from 'http';
8
8
  import { randomBytes, createHash } from 'crypto';
9
- import { o as openBrowser } from './browser-mwzpOmcw.mjs';
9
+ import { o as openBrowser } from './browser-BCFIHOvo.mjs';
10
10
  import { exec } from 'child_process';
11
11
  import { promisify } from 'util';
12
12
  import 'node:fs/promises';
@@ -15,29 +15,29 @@ import 'zod';
15
15
  import './authRelay-DSAvg1uv.mjs';
16
16
  import 'node:crypto';
17
17
  import 'tweetnacl';
18
- import './logger-CknSVkIe.mjs';
18
+ import './logger-CbBv3q_b.mjs';
19
19
  import 'node:util';
20
20
  import 'node:path';
21
- import 'node:os';
22
- import './package-VIUXrYZ1.mjs';
23
21
  import 'axios';
24
- import './lidState-BLHLmhwd.mjs';
22
+ import './lidState-B2ZxdREe.mjs';
25
23
  import 'node:events';
26
24
  import 'socket.io-client';
27
- import './attachmentLimits-B8nzhw-i.mjs';
28
- import './index-vVWpCoTr.mjs';
25
+ import './attachmentLimits-CxG3T18E.mjs';
26
+ import './index-B0HEEYGh.mjs';
29
27
  import '@paralleldrive/cuid2';
30
28
  import './limits-DIo7rEBR.mjs';
31
- import './time-v1Y_qEJp.mjs';
32
- import './registerCommonHandlers-BR0J4g64.mjs';
29
+ import './time-PG5Dfwdv.mjs';
30
+ import './registerCommonHandlers-B0PVff2U.mjs';
33
31
  import 'fs/promises';
34
32
  import 'cross-spawn';
35
33
  import './projectPath-BTBIMB57.mjs';
36
34
  import 'url';
37
- import './sync-Dfm6K2te.mjs';
35
+ import './sync-CCwYpJMS.mjs';
38
36
  import './backgroundTaskActivity-8PdPxrvy.mjs';
39
- import './controlClient-Ci7HTMII.mjs';
37
+ import './controlClient-DTheOlvC.mjs';
40
38
  import './contentLogMetadata-BlWI0egu.mjs';
39
+ import 'node:os';
40
+ import './package-DU1DxhH9.mjs';
41
41
  import 'open';
42
42
 
43
43
  const CLIENT_ID$2 = "app_EMoamEEZ73f0CkXaXp7hrann";
@@ -3,7 +3,7 @@ import { constants } from 'node:fs';
3
3
  import { isAbsolute, join, dirname } from 'node:path';
4
4
  import { randomUUID } from 'node:crypto';
5
5
  import { z } from 'zod';
6
- import { n as normalizeHttpEndpoint, c as configuration } from './configuration-L1qcGTFM.mjs';
6
+ import { n as normalizeHttpEndpoint, c as configuration } from './configuration-WspKd2C2.mjs';
7
7
 
8
8
  const TeamScopeSchema = z.object({
9
9
  serverUrl: z.string(),
@@ -5,7 +5,7 @@ var node_fs = require('node:fs');
5
5
  var path = require('node:path');
6
6
  var node_crypto = require('node:crypto');
7
7
  var z = require('zod');
8
- var configuration = require('./configuration-BE61XNsg.cjs');
8
+ var configuration = require('./configuration-C3piBtxY.cjs');
9
9
 
10
10
  const TeamScopeSchema = z.z.object({
11
11
  serverUrl: z.z.string(),