very-happy-cli 0.2.179 → 0.2.181

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 (214) hide show
  1. package/dist/{AcpBackend-DFipFF7-.cjs → AcpBackend-CgHb_ya5.cjs} +3 -3
  2. package/dist/{AcpBackend-CHp3y7cb.mjs → AcpBackend-DZGCSuXF.mjs} +3 -3
  3. package/dist/{AcpSessionManager-0zpvRJXc.cjs → AcpSessionManager-CacC2EVn.cjs} +1 -1
  4. package/dist/{AcpSessionManager-d2-rKWWa.mjs → AcpSessionManager-DwuPzWBh.mjs} +1 -1
  5. package/dist/{BasePermissionHandler-CH3zuEkA.cjs → BasePermissionHandler-DCP8ZEB4.cjs} +1 -1
  6. package/dist/{BasePermissionHandler-DdZBYIR4.mjs → BasePermissionHandler-Uo-GUjbb.mjs} +1 -1
  7. package/dist/{acpSessionResume-DTGmAPLt.mjs → acpSessionResume-9OLTD6kT.mjs} +1 -1
  8. package/dist/{acpSessionResume-oiCBnAVA.cjs → acpSessionResume-BaVMD80f.cjs} +1 -1
  9. package/dist/{agentHome-CghLvL_1.mjs → agentHome-B1BsKeqD.mjs} +4 -4
  10. package/dist/{agentHome-BWcz8mz0.cjs → agentHome-BtUmGcPX.cjs} +4 -4
  11. package/dist/{api-Cmjfr8Z7.cjs → api-COHFAkb_.cjs} +20 -12
  12. package/dist/{api-CzwFpJQc.mjs → api-Dr3wXL_7.mjs} +21 -13
  13. package/dist/{apiMachine-DJkTEiqy.mjs → apiMachine-CHEzPQdS.mjs} +73 -32
  14. package/dist/{apiMachine-G6OogT08.cjs → apiMachine-D8H7CXaz.cjs} +75 -34
  15. package/dist/{attachmentContent-B2os4HbA.mjs → attachmentContent-1YwtKgWl.mjs} +2 -2
  16. package/dist/{attachmentContent-Bo0UAsSu.cjs → attachmentContent-mIhbtRKl.cjs} +2 -2
  17. package/dist/{auth-DMX0xPNK.mjs → auth-CbZkcMAb.mjs} +8 -8
  18. package/dist/{auth-D6bBUwZa.cjs → auth-CgQP7d0q.cjs} +5 -5
  19. package/dist/{auth-BS6PaOOG.mjs → auth-DZsthtSk.mjs} +5 -5
  20. package/dist/{auth-HEhRaNgL.cjs → auth-Fg8fLadK.cjs} +8 -8
  21. package/dist/{auto-C6I55iOh.cjs → auto-BB7kqSh5.cjs} +19 -19
  22. package/dist/{auto-Cl1SEDcD.mjs → auto-_T-Ud-z5.mjs} +19 -19
  23. package/dist/{backgroundTaskActivity-BVwJBl02.mjs → backgroundTaskActivity-8PdPxrvy.mjs} +1 -1
  24. package/dist/{bootstrap-iuyufnp3.mjs → bootstrap-B6EkZh4u.mjs} +2 -2
  25. package/dist/{bootstrap-exVucYav.cjs → bootstrap-CYtOtbi7.cjs} +2 -2
  26. package/dist/{browser-CSYum7xH.mjs → browser-C2qhUHSE.mjs} +1 -1
  27. package/dist/{browser-BohJK12g.cjs → browser-DjNNQQk2.cjs} +1 -1
  28. package/dist/{claudeCliPath-U4HHmV4r.cjs → claudeCliPath-GaP3UUz1.cjs} +1 -1
  29. package/dist/{claudeLocal-Dq_R3Ax_.mjs → claudeLocal-BAFjWhZ8.mjs} +6 -6
  30. package/dist/{claudeLocal-re4yjSTx.cjs → claudeLocal-O_w7-fBh.cjs} +8 -8
  31. package/dist/{claudeLocalLauncher-CN67lN7-.mjs → claudeLocalLauncher-CWn30LZR.mjs} +11 -11
  32. package/dist/{claudeLocalLauncher-B4hJHpCA.cjs → claudeLocalLauncher-Df3zg1q0.cjs} +13 -13
  33. package/dist/{claudeSessionFork-BihfD0Ik.mjs → claudeSessionFork-2ZkSTOGn.mjs} +1 -1
  34. package/dist/{claudeSessionFork-DiSMYerV.cjs → claudeSessionFork-pwcKqB-e.cjs} +1 -1
  35. package/dist/{client-BhoEBnuN.mjs → client-BKyU66lg.mjs} +2 -2
  36. package/dist/{client-BKcK1Bi-.cjs → client-CUO3ItoB.cjs} +34 -8
  37. package/dist/{client-wo9nbxuf.mjs → client-CXOnzuOy.mjs} +2 -2
  38. package/dist/{client-ZjOsn6nZ.cjs → client-DWs6k041.cjs} +2 -2
  39. package/dist/{client-CuVdN6PP.cjs → client-D_U2VjO3.cjs} +2 -2
  40. package/dist/{client-DuTDwWSQ.mjs → client-DsQcxVUV.mjs} +34 -9
  41. package/dist/codex/happyMcpStdioBridge.cjs +17 -17
  42. package/dist/codex/happyMcpStdioBridge.mjs +18 -18
  43. package/dist/{codexAppServerClient-Dt5zxrun.cjs → codexAppServerClient-BRX3JZ_5.cjs} +3 -3
  44. package/dist/{codexAppServerClient-BK3zra_1.mjs → codexAppServerClient-C3JO3pwM.mjs} +3 -3
  45. package/dist/{codexCommand-B6pY7CMh.mjs → codexCommand-BZIAAqKS.mjs} +59 -51
  46. package/dist/{codexCommand-CAZ1SLjg.cjs → codexCommand-dKOc5iQl.cjs} +85 -77
  47. package/dist/{codexTermination-DmGbHxcD.cjs → codexTermination-BVR9HeVI.cjs} +7 -2
  48. package/dist/{codexTermination-Cd1Eon_4.mjs → codexTermination-ztFkwHrG.mjs} +7 -2
  49. package/dist/{config-2oMG_fEI.mjs → config-NbHjx8ge.mjs} +3 -3
  50. package/dist/{config-B0uK6K7n.cjs → config-cftYxLC7.cjs} +26 -26
  51. package/dist/{configuration-WMi4idBB.mjs → configuration-BPrfb17M.mjs} +1 -1
  52. package/dist/{configuration-CMHZnp6G.cjs → configuration-C8JgseHy.cjs} +1 -1
  53. package/dist/{connect-uaglGrde.cjs → connect-Br8VMrK1.cjs} +27 -27
  54. package/dist/{connect-BLVHhHzA.mjs → connect-CLD1ai0k.mjs} +14 -14
  55. package/dist/{context-DXzU5bFM.cjs → context-D1lgQTJC.cjs} +1 -1
  56. package/dist/{context-DploEcoN.mjs → context-_YGq8xdH.mjs} +1 -1
  57. package/dist/{controlClient-BWUJrj3t.mjs → controlClient-CkNpT5zS.mjs} +4 -4
  58. package/dist/{controlClient-C-5qCt8W.cjs → controlClient-D68Zj7Q-.cjs} +3 -3
  59. package/dist/{createSessionMetadata-3uXrJgOW.mjs → createSessionMetadata-3WAj3_xl.mjs} +2 -2
  60. package/dist/{createSessionMetadata-BkIzHALd.cjs → createSessionMetadata-DNIbKLHg.cjs} +3 -3
  61. package/dist/{defaultPermissionMode-pS3vmiSg.cjs → defaultPermissionMode-BmvjP32v.cjs} +2 -2
  62. package/dist/{defaultPermissionMode-BzxLh20a.mjs → defaultPermissionMode-DXMznl8v.mjs} +2 -2
  63. package/dist/{detectCLI-DR9ZaN6B.cjs → detectCLI-BuYR_Qxe.cjs} +4 -4
  64. package/dist/{deterministicJson-B8z2GPi9.cjs → deterministicJson-BS7D7URE.cjs} +89 -24
  65. package/dist/{deterministicJson-D_whDMFd.mjs → deterministicJson-BcBIKKf1.mjs} +87 -24
  66. package/dist/{doctor-Br1Kcy2J.cjs → doctor-Be7zC0AF.cjs} +10 -9
  67. package/dist/{doctor-CmtSsR2-.mjs → doctor-CoOaPq6w.mjs} +8 -8
  68. package/dist/{doctorReadiness-BCZGcN0a.cjs → doctorReadiness-Dl6yRQCy.cjs} +1 -1
  69. package/dist/{downloadTarget-BoNwTIH_.mjs → downloadTarget-CeaAXdJj.mjs} +6 -6
  70. package/dist/{downloadTarget-BQJK_6oH.cjs → downloadTarget-LyOiucn_.cjs} +6 -6
  71. package/dist/{ensureDaemonRunning-Czo9IHJQ.mjs → ensureDaemonRunning--98j7-17.mjs} +5 -5
  72. package/dist/{ensureDaemonRunning-BRUmsq6J.cjs → ensureDaemonRunning-B8z37VKD.cjs} +6 -6
  73. package/dist/fileStore-5qpetZS0.mjs +146 -0
  74. package/dist/fileStore-7qhnbs6N.cjs +152 -0
  75. package/dist/{handleResumeCommand-tKD_Hpxc.cjs → handleResumeCommand-BFZlrFVH.cjs} +7 -7
  76. package/dist/{handleResumeCommand-C8thKjqf.mjs → handleResumeCommand-gO8I4keP.mjs} +6 -6
  77. package/dist/{index-DMqDMT1Q.cjs → index-B5PXbZjW.cjs} +80 -62
  78. package/dist/{index-D09T1m8Y.cjs → index-BRMq9gOe.cjs} +3 -3
  79. package/dist/{index-B0UjHlAe.cjs → index-BkluinoS.cjs} +4 -4
  80. package/dist/{index-CdQI0C9p.mjs → index-CO0n9ue6.mjs} +4 -4
  81. package/dist/{index-DPOa4NhL.mjs → index-CeRXrGnH.mjs} +41 -6
  82. package/dist/{index-C6O2vVjm.cjs → index-Df2eHm3O.cjs} +42 -6
  83. package/dist/{index-BTxHphpV.mjs → index-DneHoQXf.mjs} +80 -62
  84. package/dist/{index-BiyC7cZ3.mjs → index-WUj3954m.mjs} +4 -4
  85. package/dist/{index-D3bidoG8.mjs → index-hQ8LP1C2.mjs} +3 -3
  86. package/dist/{index-CUuc6iCn.cjs → index-jF2t3ACW.cjs} +4 -4
  87. package/dist/index.cjs +2 -2
  88. package/dist/index.mjs +2 -2
  89. package/dist/{install-BX3lv3NO.mjs → install-D0inLCv-.mjs} +1 -1
  90. package/dist/{install-BXvf2E3o.cjs → install-D2NCbeJ-.cjs} +1 -1
  91. package/dist/{install-hnve_9vq.mjs → install-DkYFiVK4.mjs} +3 -3
  92. package/dist/{install-CYRZxS87.cjs → install-FqkSUjPC.cjs} +7 -7
  93. package/dist/{installPiTools-BKnXjrVu.cjs → installPiTools-CL_axh_6.cjs} +1 -1
  94. package/dist/{installTerminalHooks-BQZbvxsZ.cjs → installTerminalHooks-BETLKAtd.cjs} +3 -3
  95. package/dist/lib.cjs +13 -13
  96. package/dist/lib.d.cts +216 -2
  97. package/dist/lib.d.mts +216 -2
  98. package/dist/lib.mjs +13 -13
  99. package/dist/{lidState-Bb8fgXg3.mjs → lidState-DghbfRbr.mjs} +1 -1
  100. package/dist/{lidState-Dv2wwFTj.cjs → lidState-x8cJ8J_9.cjs} +1 -1
  101. package/dist/{localHappyAgentAuth-DjYvkXvV.cjs → localHappyAgentAuth-DZ2kb9uq.cjs} +1 -1
  102. package/dist/{localHappyAgentAuth-NEU7fax7.mjs → localHappyAgentAuth-IKmeRpuQ.mjs} +1 -1
  103. package/dist/{logger-C1GWx3gi.cjs → logger-DgBwUSgS.cjs} +2 -2
  104. package/dist/{logger-BtVhHnD8.mjs → logger-LFr8iPgl.mjs} +2 -2
  105. package/dist/machineMetadata-BglCsfvf.mjs +75 -0
  106. package/dist/machineMetadata-DB03ez4K.cjs +87 -0
  107. package/dist/{main-CWhSsbtU.cjs → main-YQ-Vkakw.cjs} +99 -132
  108. package/dist/{main-B2LWV8DI.mjs → main-_1LSzlLv.mjs} +93 -126
  109. package/dist/{mcp-CARUsXHV.cjs → mcp-BIY80jSc.cjs} +15 -15
  110. package/dist/{mcp-ext92q3Y.mjs → mcp-Csj-mT5Y.mjs} +15 -15
  111. package/dist/{mirrorProtocol-DEy2g1CB.cjs → mirrorProtocol-BphKIAK9.cjs} +15 -6
  112. package/dist/{mirrorProtocol-BwYibqry.mjs → mirrorProtocol-CAxOMBkb.mjs} +15 -6
  113. package/dist/{package-BPPebGQF.mjs → package-DYGwlmXl.mjs} +9 -8
  114. package/dist/{package-SgqTYsjn.cjs → package-NoD8QOOM.cjs} +9 -8
  115. package/dist/{panels-BZ0_Tt7B.mjs → panels-B8zRm7_d.mjs} +5 -5
  116. package/dist/{panels-D1c7q2dD.cjs → panels-DYEc1NyQ.cjs} +5 -5
  117. package/dist/{peerTools-CWKzcQ7u.mjs → peerTools-CK3JYu1k.mjs} +5 -5
  118. package/dist/{peerTools-DRQETXaz.cjs → peerTools-CP-x-Peu.cjs} +5 -5
  119. package/dist/{persistence-BegE7NPa.cjs → persistence-BY-D00wT.cjs} +2 -2
  120. package/dist/{persistence-Cr-wutZ4.mjs → persistence-D2Djrf7t.mjs} +2 -2
  121. package/dist/pi-CqyoZMjI.mjs +380 -0
  122. package/dist/pi-DlsrPCTa.cjs +400 -0
  123. package/dist/{piRunnerArgs-DwvM_yWA.mjs → piRunnerArgs-IZLoL7TG.mjs} +1 -1
  124. package/dist/{piRunnerArgs-Cs-378Vz.cjs → piRunnerArgs-gxLYIZH4.cjs} +1 -1
  125. package/dist/{piRuntime-Bue5mnlc.mjs → piRuntime-D7Y4oHVL.mjs} +2 -2
  126. package/dist/{piRuntime-BG-1td_n.cjs → piRuntime-o5L8uX-W.cjs} +2 -2
  127. package/dist/{piTerminal-G4z-xVyy.cjs → piTerminal-C_-JDkLN.cjs} +18 -18
  128. package/dist/{piTerminal-B5x9X5yV.mjs → piTerminal-Kphx8Uhw.mjs} +18 -18
  129. package/dist/projectPath-C3ioB4Bu.cjs +13 -0
  130. package/dist/{prompt-lgF9IE82.cjs → prompt-Bof2aQkI.cjs} +7 -2
  131. package/dist/{prompt-BOouDaTM.mjs → prompt-QHuFx9j6.mjs} +7 -2
  132. package/dist/{pushNotifications-DaLQUyi0.cjs → pushNotifications-BXoOSq_G.cjs} +14 -4
  133. package/dist/{pushNotifications-BdFjDjQe.mjs → pushNotifications-DXGIhE-A.mjs} +14 -4
  134. package/dist/{query-DYP_W1wp.mjs → query-CcA6DVZK.mjs} +1 -1
  135. package/dist/{query-Ctfg-5gy.cjs → query-CdCxzuaB.cjs} +1 -1
  136. package/dist/{rateLimitWindows-Dj_8voBK.cjs → rateLimitWindows-OpAmdOtC.cjs} +1 -1
  137. package/dist/{rateLimitWindows-CuEqk_0g.mjs → rateLimitWindows-ZtHZHe-l.mjs} +1 -1
  138. package/dist/{registerCommonHandlers-Cj084Sg7.cjs → registerCommonHandlers-CRjBoJLK.cjs} +30 -30
  139. package/dist/{registerCommonHandlers-BAlP7SGc.mjs → registerCommonHandlers-DF6bdDtd.mjs} +2 -2
  140. package/dist/{registerKillSessionHandler-qMju0ZfF.cjs → registerKillSessionHandler-7fOm6ooh.cjs} +6 -6
  141. package/dist/{registerKillSessionHandler-PD0jWtQo.mjs → registerKillSessionHandler-DDCKL3wf.mjs} +6 -6
  142. package/dist/{remoteSessionClient-Bn2qu5C5.mjs → remoteSessionClient-B2POSKFT.mjs} +5 -5
  143. package/dist/{remoteSessionClient-B7i7MkYV.cjs → remoteSessionClient-CFCn42bs.cjs} +5 -5
  144. package/dist/{reportProgressTool-gHItlSzz.mjs → reportProgressTool-tPxEvh6x.mjs} +4 -4
  145. package/dist/{reportProgressTool-CM1JFAHg.cjs → reportProgressTool-th4trcET.cjs} +4 -4
  146. package/dist/{resources-CvIlkzpP.cjs → resources-BPyN59Iv.cjs} +23 -2
  147. package/dist/{resources-y9jfyO-_.mjs → resources-CH1iP6Cv.mjs} +22 -3
  148. package/dist/{run-CNXwIe0A.cjs → run-C_FumCQk.cjs} +2767 -183
  149. package/dist/{run-BM4TxiyN.mjs → run-cKQBbVi4.mjs} +2762 -178
  150. package/dist/{runClaude-C_3I8hvR.mjs → runClaude-CYnM6krL.mjs} +34 -28
  151. package/dist/{runClaude-CWhj2V4Q.cjs → runClaude-z_2YC_aa.cjs} +35 -29
  152. package/dist/{runClaudeDeps-B81cOKnH.cjs → runClaudeDeps-CLubzWnA.cjs} +59 -122
  153. package/dist/{runClaudeDeps-QGrOeDe2.mjs → runClaudeDeps-duS06Pb4.mjs} +52 -114
  154. package/dist/{runGemini-BEdWEZLR.mjs → runGemini-C_Pc2EhH.mjs} +39 -37
  155. package/dist/{runGemini-CgRLYbt5.cjs → runGemini-vEoXV6qT.cjs} +67 -65
  156. package/dist/{runOpenClaw-C1NVmzOL.cjs → runOpenClaw-CXJCtMgB.cjs} +20 -20
  157. package/dist/{runOpenClaw-DdQZAYj1.mjs → runOpenClaw-Cxun1qLC.mjs} +19 -19
  158. package/dist/{sandbox-nocIjliq.cjs → sandbox-CO46H2tK.cjs} +4 -4
  159. package/dist/{sandbox-DjQUdCMG.mjs → sandbox-CsvPnTmz.mjs} +4 -4
  160. package/dist/{selfCheck-DCt4Uzbq.cjs → selfCheck-DIr7Gc0i.cjs} +39 -39
  161. package/dist/selfCheck-NamtBHVB.mjs +85 -0
  162. package/dist/{send-Ct7X4pPU.mjs → send-DMoFg6F1.mjs} +9 -9
  163. package/dist/{send-Dydf_hwZ.cjs → send-X2mfVEyr.cjs} +8 -8
  164. package/dist/{server-CosABFbd.cjs → server-BwTEdbkr.cjs} +6 -6
  165. package/dist/{server-DTQGZMxh.mjs → server-CkqQ0sRH.mjs} +4 -4
  166. package/dist/sessionExitLifecycle-CzkLIgNZ.mjs +142 -0
  167. package/dist/sessionExitLifecycle-DFltxXU8.cjs +148 -0
  168. package/dist/{sessionLock-DokGab2R.cjs → sessionLock-CdIRJlHH.cjs} +25 -5
  169. package/dist/{sessionLock-WYIyaVO4.mjs → sessionLock-JIfwCqMk.mjs} +24 -5
  170. package/dist/{sessionOps-S-qPBLFf.cjs → sessionOps-DVA-00nR.cjs} +4 -4
  171. package/dist/{sessionOps-BIGgRube.mjs → sessionOps-DqlftXxe.mjs} +5 -5
  172. package/dist/{sessionScanner-o5hnMi5e.mjs → sessionScanner-BI0Vo1xT.mjs} +3 -3
  173. package/dist/{sessionScanner-CIMM2hvZ.cjs → sessionScanner-BMwgGAhY.cjs} +3 -3
  174. package/dist/{sessions-BJHEZpi2.mjs → sessions-D6IimX7b.mjs} +11 -11
  175. package/dist/{sessions-JchI1w3z.cjs → sessions-DjgEcHaT.cjs} +10 -10
  176. package/dist/{setupOfflineReconnection-CNiAt5ZP.cjs → setupOfflineReconnection-CjuCiKY3.cjs} +2 -2
  177. package/dist/{setupOfflineReconnection-DMiBO2y9.mjs → setupOfflineReconnection-DgJK_4m1.mjs} +2 -2
  178. package/dist/{spawn-DgvUNYEo.mjs → spawn-Dvzy-tzc.mjs} +15 -15
  179. package/dist/{spawn-6PD7nnoC.cjs → spawn-rhF28shY.cjs} +15 -15
  180. package/dist/{spawnAgents-P006Hqio.mjs → spawnAgents-CCnlq-FI.mjs} +1 -1
  181. package/dist/{spawnAgents-DsXgegHM.cjs → spawnAgents-iwuqrgR9.cjs} +1 -1
  182. package/dist/{spawnHappyCLI-Dywezwk6.cjs → spawnHappyCLI-DnKmIsEt.cjs} +2 -2
  183. package/dist/{spawnHappyCLI-CCOrEtf9.mjs → spawnHappyCLI-Dq3LLXLb.mjs} +1 -1
  184. package/dist/{specialCommands-DPcd9edP.mjs → specialCommands-CcyZ1hGA.mjs} +3 -3
  185. package/dist/{specialCommands-QxPpkGKf.cjs → specialCommands-Zwr2C6A2.cjs} +3 -3
  186. package/dist/{startFileWatcher-DghDOCO4.mjs → startFileWatcher-4thXDK9d.mjs} +1 -1
  187. package/dist/{startFileWatcher-RECH5qY8.cjs → startFileWatcher-K6hJSyiR.cjs} +1 -1
  188. package/dist/startupSessionCreate-BfByJ16A.mjs +24 -0
  189. package/dist/startupSessionCreate-CKEbq0tL.cjs +26 -0
  190. package/dist/{streamRelay-DlUWKUpo.cjs → streamRelay-Gy8Xfnon.cjs} +1 -1
  191. package/dist/{streamRelay-DMV_TXfS.mjs → streamRelay-LcDvyEjK.mjs} +1 -1
  192. package/dist/{sync-D23jbqVa.cjs → sync-1hQ5KHpL.cjs} +1 -1
  193. package/dist/{sync-CSe0Rf45.mjs → sync-DO-2PU45.mjs} +1 -1
  194. package/dist/{systemPrompt-CFNKnh65.mjs → systemPrompt-BctLfMZs.mjs} +3 -3
  195. package/dist/{systemPrompt-BOy4kU4P.cjs → systemPrompt-Dj7pgkMK.cjs} +3 -3
  196. package/dist/{teams-DyY669f0.mjs → teams-Bu8YeOoF.mjs} +8 -8
  197. package/dist/{teams-Ov2BDT-A.cjs → teams-uQxUlyyz.cjs} +8 -8
  198. package/dist/{time-65DcU6Jx.mjs → time-BcoJaG8E.mjs} +1 -1
  199. package/dist/{time-CrwIMHta.cjs → time-nqa9shu8.cjs} +1 -1
  200. package/dist/{titleGenerator-CS_rh2_J.cjs → titleGenerator-D09XyYYG.cjs} +3 -3
  201. package/dist/{titleGenerator-CiAMxf7s.mjs → titleGenerator-D5r06bhf.mjs} +1 -1
  202. package/dist/{todo-KY-okGii.cjs → todo-CCOnL7pT.cjs} +6 -6
  203. package/dist/{todo-BDONw0sK.mjs → todo-D1q8146q.mjs} +6 -6
  204. package/dist/{tools-D8-PnZEG.mjs → tools-D2E--n1x.mjs} +3 -3
  205. package/dist/{tools-_w52DZG6.cjs → tools-DiCXnAC5.cjs} +3 -3
  206. package/dist/{uninstall-8vnLN-IE.cjs → uninstall-BrNwwwSD.cjs} +6 -6
  207. package/dist/{uninstall-_fjGRP9b.mjs → uninstall-CtwXi1Rt.mjs} +3 -3
  208. package/package.json +9 -8
  209. package/dist/machineMetadata-CLHS9sv_.cjs +0 -42
  210. package/dist/machineMetadata-D-g--oU_.mjs +0 -39
  211. package/dist/messageBuffer-BWlGgR3A.mjs +0 -71
  212. package/dist/messageBuffer-fJMH6uY8.cjs +0 -73
  213. package/dist/projectPath-ChLhdOyt.cjs +0 -13
  214. package/dist/selfCheck-CjCF4C3v.mjs +0 -85
@@ -1,101 +1,104 @@
1
- import { a as authAndSetupMachineIfNeeded } from './auth-BS6PaOOG.mjs';
2
- import { d as createEnvelope, f as BUILTIN_TODO_DISCOVERY, P as PROMPT_QUEUE_CAPABILITY, u as CODEX_STEER_CAPABILITY, a as PROJECT_SESSION_CAPABILITY } from './index-DPOa4NhL.mjs';
3
- import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-D_whDMFd.mjs';
4
- import { s as sharedProjectsClient } from './client-BhoEBnuN.mjs';
1
+ import { a as authAndSetupMachineIfNeeded } from './auth-DZsthtSk.mjs';
2
+ import { d as createEnvelope, f as BUILTIN_TODO_DISCOVERY, P as PROMPT_QUEUE_CAPABILITY, C as CODEX_STEER_CAPABILITY, a as PROJECT_SESSION_CAPABILITY } from './index-CeRXrGnH.mjs';
3
+ import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-BcBIKKf1.mjs';
4
+ import { s as sharedProjectsClient } from './client-BKyU66lg.mjs';
5
5
  import { unlink } from 'node:fs/promises';
6
6
  import { p as publishForkBackfillWhenCommitted, F as FORK_BACKFILL_CAPABILITY } from './forkBackfill-DYIjlN1Z.mjs';
7
7
  import { randomUUID } from 'node:crypto';
8
8
  import { createId } from '@paralleldrive/cuid2';
9
9
  import { r as registerAgentAttachmentDownloads } from './agentAttachments-M_B5qEF2.mjs';
10
- import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-B2os4HbA.mjs';
10
+ import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-1YwtKgWl.mjs';
11
11
  import { useStdout, useInput, Box, Text, render } from 'ink';
12
- import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyHibernationReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata } from './sessionLock-WYIyaVO4.mjs';
12
+ import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, e as exitCursorStamp } from './sessionLock-JIfwCqMk.mjs';
13
13
  import React, { useState, useRef, useEffect, useCallback } from 'react';
14
- import { c as connectionState, A as ApiClient } from './api-CzwFpJQc.mjs';
15
- import { C as CodexAppServerClient } from './codexAppServerClient-BK3zra_1.mjs';
16
- import { p as parseSpecialCommand, w as wrapperRateLimitReporter } from './specialCommands-DPcd9edP.mjs';
17
- import { l as logger } from './logger-BtVhHnD8.mjs';
18
- import { B as BasePermissionHandler } from './BasePermissionHandler-DdZBYIR4.mjs';
19
- import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-Cd1Eon_4.mjs';
14
+ import { c as connectionState, A as ApiClient } from './api-Dr3wXL_7.mjs';
15
+ import { C as CodexAppServerClient } from './codexAppServerClient-C3JO3pwM.mjs';
16
+ import { p as parseSpecialCommand, w as wrapperRateLimitReporter } from './specialCommands-CcyZ1hGA.mjs';
17
+ import { l as logger } from './logger-LFr8iPgl.mjs';
18
+ import { B as BasePermissionHandler } from './BasePermissionHandler-Uo-GUjbb.mjs';
19
+ import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-ztFkwHrG.mjs';
20
20
  import { execSync } from 'node:child_process';
21
- import { r as readSettings, l as latchKeepAwake, e as evaluateWrapperIdle, a as resolveCheckMs, H as HIBERNATION_CAPABILITY } from './persistence-Cr-wutZ4.mjs';
22
- import { g as getInitialMachineMetadata } from './machineMetadata-D-g--oU_.mjs';
23
- import { c as configuration } from './configuration-WMi4idBB.mjs';
24
- import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-PD0jWtQo.mjs';
21
+ import { r as readSettings, l as latchKeepAwake, e as evaluateWrapperIdle, a as resolveCheckMs, H as HIBERNATION_CAPABILITY } from './persistence-D2Djrf7t.mjs';
22
+ import { g as getInitialMachineMetadata } from './machineMetadata-BglCsfvf.mjs';
23
+ import { c as configuration } from './configuration-BPrfb17M.mjs';
24
+ import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-DDCKL3wf.mjs';
25
25
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
26
26
  import { join } from 'node:path';
27
- import { c as createSessionMetadata } from './createSessionMetadata-3uXrJgOW.mjs';
28
- import { M as MessageBuffer } from './messageBuffer-BWlGgR3A.mjs';
29
- import { n as notifyDaemonSessionStarted, j as reportSessionEditToDaemon, c as checkDaemonHibernation } from './controlClient-BWUJrj3t.mjs';
30
- import { a as HibernationExitLatch, H as HibernationProbe, c as commitHibernation, b as DEFAULT_CODEX_PERMISSION_MODE } from './defaultPermissionMode-BzxLh20a.mjs';
27
+ import { c as createSessionMetadata } from './createSessionMetadata-3WAj3_xl.mjs';
28
+ import { M as MessageBuffer } from './sessionExitLifecycle-CzkLIgNZ.mjs';
29
+ import { n as notifyDaemonSessionStarted, j as reportSessionEditToDaemon, c as checkDaemonHibernation } from './controlClient-CkNpT5zS.mjs';
30
+ import { a as HibernationExitLatch, H as HibernationProbe, c as commitHibernation, b as DEFAULT_CODEX_PERMISSION_MODE } from './defaultPermissionMode-DXMznl8v.mjs';
31
31
  import { d as decodeBase64, e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
32
- import { s as setupOfflineReconnection } from './setupOfflineReconnection-DMiBO2y9.mjs';
32
+ import { s as setupOfflineReconnection } from './setupOfflineReconnection-DgJK_4m1.mjs';
33
+ import { c as createSessionForStartup } from './startupSessionCreate-BfByJ16A.mjs';
33
34
  import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
34
35
  import { C as CHANGE_TITLE_INSTRUCTION } from './constants-BC4St0xd.mjs';
35
36
  import { E as EditReportThrottle, a as extractCodexPatchPaths } from './editPaths-BVfS_FFL.mjs';
36
- import { a as extractNoSandboxFlag, e as ensureDaemonRunning } from './ensureDaemonRunning-Czo9IHJQ.mjs';
37
+ import { a as extractNoSandboxFlag, e as ensureDaemonRunning } from './ensureDaemonRunning--98j7-17.mjs';
37
38
  import 'tweetnacl';
38
39
  import 'axios';
39
- import './time-65DcU6Jx.mjs';
40
- import './browser-CSYum7xH.mjs';
40
+ import './time-BcoJaG8E.mjs';
41
+ import './browser-C2qhUHSE.mjs';
41
42
  import 'open';
42
43
  import 'zod';
43
- import './prompt-BOouDaTM.mjs';
44
- import './reportProgressTool-gHItlSzz.mjs';
45
- import './client-wo9nbxuf.mjs';
44
+ import './prompt-QHuFx9j6.mjs';
45
+ import './reportProgressTool-tPxEvh6x.mjs';
46
+ import './client-CXOnzuOy.mjs';
46
47
  import './precheckCompat-DeEbilbr.mjs';
47
48
  import './agentGuidance-BDYt2Qy2.mjs';
48
49
  import 'node:fs';
49
- import './client-DuTDwWSQ.mjs';
50
- import './context-DploEcoN.mjs';
51
- import './sessionOps-BIGgRube.mjs';
52
- import 'socket.io-client';
53
- import './backgroundTaskActivity-BVwJBl02.mjs';
54
- import './resources-y9jfyO-_.mjs';
55
- import './tools-D8-PnZEG.mjs';
56
- import './peerTools-CWKzcQ7u.mjs';
57
50
  import 'node:os';
51
+ import './pi-CqyoZMjI.mjs';
52
+ import './fileStore-5qpetZS0.mjs';
53
+ import './client-DsQcxVUV.mjs';
54
+ import './context-_YGq8xdH.mjs';
55
+ import './sessionOps-DqlftXxe.mjs';
56
+ import 'socket.io-client';
57
+ import './backgroundTaskActivity-8PdPxrvy.mjs';
58
+ import './resources-CH1iP6Cv.mjs';
59
+ import './tools-D2E--n1x.mjs';
60
+ import './peerTools-CK3JYu1k.mjs';
58
61
  import './ids-DU6sLx4C.mjs';
59
- import './remoteSessionClient-Bn2qu5C5.mjs';
62
+ import './remoteSessionClient-B2POSKFT.mjs';
60
63
  import '@modelcontextprotocol/sdk/server/mcp.js';
61
64
  import 'node:http';
62
65
  import '@modelcontextprotocol/sdk/server/streamableHttp.js';
63
66
  import './limits-DIo7rEBR.mjs';
64
- import './downloadTarget-BoNwTIH_.mjs';
67
+ import './downloadTarget-CeaAXdJj.mjs';
65
68
  import './terminals-Dlg0x3nY.mjs';
66
69
  import './terminalTitleSuggest-CeKsX_V6.mjs';
67
70
  import './tmuxSocket-B8Yx20sT.mjs';
68
- import './bootstrap-iuyufnp3.mjs';
69
- import './package-BPPebGQF.mjs';
71
+ import './bootstrap-B6EkZh4u.mjs';
72
+ import './package-DYGwlmXl.mjs';
70
73
  import './webPanels-B2_C2-3g.mjs';
71
- import './pushNotifications-BdFjDjQe.mjs';
74
+ import './pushNotifications-DXGIhE-A.mjs';
72
75
  import './contentLogMetadata-BlWI0egu.mjs';
73
76
  import './previewPath-CXN4Vag0.mjs';
74
77
  import 'crypto';
75
78
  import './processTreeSnapshot-CuLJDNC-.mjs';
76
- import './lidState-Bb8fgXg3.mjs';
79
+ import './lidState-DghbfRbr.mjs';
77
80
  import 'os';
78
81
  import 'child_process';
79
82
  import 'node:events';
80
- import './registerCommonHandlers-BAlP7SGc.mjs';
83
+ import './registerCommonHandlers-DF6bdDtd.mjs';
81
84
  import 'util';
82
85
  import 'fs/promises';
83
86
  import 'path';
84
87
  import 'cross-spawn';
85
- import './sync-CSe0Rf45.mjs';
88
+ import './sync-DO-2PU45.mjs';
86
89
  import 'chalk';
87
90
  import 'node:readline';
88
91
  import './manager-BEsI4qt3.mjs';
89
92
  import '@anthropic-ai/sandbox-runtime';
90
- import './rateLimitWindows-CuEqk_0g.mjs';
93
+ import './rateLimitWindows-ZtHZHe-l.mjs';
91
94
  import './processTree-CP5IvQ2Z.mjs';
92
95
  import 'node:util';
93
96
  import './detectCLI-CSGMlV51.mjs';
94
97
  import 'fs';
95
- import './localHappyAgentAuth-NEU7fax7.mjs';
98
+ import './localHappyAgentAuth-IKmeRpuQ.mjs';
96
99
  import './types-CkqAACXx.mjs';
97
100
  import 'url';
98
- import './spawnHappyCLI-CCOrEtf9.mjs';
101
+ import './spawnHappyCLI-Dq3LLXLb.mjs';
99
102
  import './doctorReadiness-C208SMN9.mjs';
100
103
 
101
104
  function getStartedSubagents(state) {
@@ -1427,7 +1430,7 @@ async function runCodex(opts) {
1427
1430
  agentStateVersion: parseInt(reconnectAgentStateVersion || "0", 10)
1428
1431
  };
1429
1432
  } else {
1430
- response = await api.getOrCreateSession({ tag: sessionTag, metadata, state });
1433
+ response = await createSessionForStartup(() => api.getOrCreateSession({ tag: sessionTag, metadata, state }), { startedBy: opts.startedBy, log: (m) => logger.debug(m) });
1431
1434
  }
1432
1435
  if (response) {
1433
1436
  await claimSessionOrExit(response.id, { takeover: !!reconnectSessionId, flavor: "codex" });
@@ -1437,15 +1440,18 @@ async function runCodex(opts) {
1437
1440
  }
1438
1441
  let reconnectSeeded = false;
1439
1442
  let wakingFromHibernation = false;
1443
+ let reconnectReplay = null;
1440
1444
  if (reconnectSessionId && response) {
1441
1445
  const snapshot = await api.getSession(response.id, response.encryptionKey, response.encryptionVariant);
1442
1446
  if (snapshot.ok) {
1443
1447
  response = applyServerSnapshot(response, snapshot.session);
1444
1448
  reconnectSeeded = true;
1445
1449
  logger.debug(`[START] Reconnect seeded from server: seq=${snapshot.session.seq} metadataVersion=${snapshot.session.metadataVersion}`);
1446
- const wake = applyHibernationReplay(response);
1450
+ const wake = applyReconnectReplay(response);
1447
1451
  response = wake.response;
1448
- wakingFromHibernation = wake.replaying;
1452
+ reconnectReplay = wake.replay;
1453
+ wakingFromHibernation = wake.replay?.source === "hibernation";
1454
+ if (wake.replay) logger.debug(`[START] Resuming (${wake.replay.source}): replaying records after seq=${response.seq}`);
1449
1455
  } else {
1450
1456
  response = withoutServerSnapshot(response);
1451
1457
  logger.debug(`[START] Reconnect without server snapshot (${snapshot.reason}); skipping existing messages`);
@@ -1476,7 +1482,7 @@ async function runCodex(opts) {
1476
1482
  if (reconnectSessionId) {
1477
1483
  session.suppressNextArchiveSignal();
1478
1484
  if (!reconnectSeeded) session.skipExistingMessages();
1479
- if (!wakingFromHibernation) void session.cancelUndeliveredQueuedInputs();
1485
+ if (!wakingFromHibernation) void session.cancelUndeliveredQueuedInputs(reconnectReplay ? { maxSeq: reconnectReplay.seq } : void 0);
1480
1486
  session.updateMetadata((meta) => mergeReconnectMetadata(meta, metadata, Date.now()));
1481
1487
  }
1482
1488
  if (response) {
@@ -1712,10 +1718,12 @@ async function runCodex(opts) {
1712
1718
  return;
1713
1719
  }
1714
1720
  logger.debug("[Codex] Kill session requested - terminating process");
1721
+ const exitCursor = intent === "offline" && session ? exitCursorStamp(session.messageCursor, Date.now()) : void 0;
1722
+ if (exitCursor) session.freezeInbound();
1715
1723
  await handleAbort("kill");
1716
1724
  logger.debug("[Codex] Abort completed, proceeding with termination");
1717
1725
  try {
1718
- if (session) await settleCodexSession(session, intent, (id) => api.deactivateSession(id), (m, e) => logger.debug(m, safeCodexErrorMetadata(e)));
1726
+ if (session) await settleCodexSession(session, intent, (id) => api.deactivateSession(id), (m, e) => logger.debug(m, safeCodexErrorMetadata(e)), exitCursor);
1719
1727
  try {
1720
1728
  await client.disconnect();
1721
1729
  } catch (e) {
@@ -1,104 +1,107 @@
1
1
  'use strict';
2
2
 
3
- var auth = require('./auth-D6bBUwZa.cjs');
4
- var index = require('./index-C6O2vVjm.cjs');
5
- var deterministicJson = require('./deterministicJson-B8z2GPi9.cjs');
6
- var client = require('./client-ZjOsn6nZ.cjs');
3
+ var auth = require('./auth-CgQP7d0q.cjs');
4
+ var index = require('./index-Df2eHm3O.cjs');
5
+ var deterministicJson = require('./deterministicJson-BS7D7URE.cjs');
6
+ var client = require('./client-DWs6k041.cjs');
7
7
  var promises = require('node:fs/promises');
8
8
  var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
9
9
  var node_crypto = require('node:crypto');
10
10
  var cuid2 = require('@paralleldrive/cuid2');
11
11
  var agentAttachments = require('./agentAttachments-Dbw8iMCZ.cjs');
12
- var attachmentContent = require('./attachmentContent-Bo0UAsSu.cjs');
12
+ var attachmentContent = require('./attachmentContent-mIhbtRKl.cjs');
13
13
  var ink = require('ink');
14
- var sessionLock = require('./sessionLock-DokGab2R.cjs');
14
+ var sessionLock = require('./sessionLock-CdIRJlHH.cjs');
15
15
  var React = require('react');
16
- var api = require('./api-Cmjfr8Z7.cjs');
17
- var codexAppServerClient = require('./codexAppServerClient-Dt5zxrun.cjs');
18
- var specialCommands = require('./specialCommands-QxPpkGKf.cjs');
19
- var logger = require('./logger-C1GWx3gi.cjs');
20
- var BasePermissionHandler = require('./BasePermissionHandler-CH3zuEkA.cjs');
21
- var codexTermination = require('./codexTermination-DmGbHxcD.cjs');
16
+ var api = require('./api-COHFAkb_.cjs');
17
+ var codexAppServerClient = require('./codexAppServerClient-BRX3JZ_5.cjs');
18
+ var specialCommands = require('./specialCommands-Zwr2C6A2.cjs');
19
+ var logger = require('./logger-DgBwUSgS.cjs');
20
+ var BasePermissionHandler = require('./BasePermissionHandler-DCP8ZEB4.cjs');
21
+ var codexTermination = require('./codexTermination-BVR9HeVI.cjs');
22
22
  var node_child_process = require('node:child_process');
23
- var persistence = require('./persistence-BegE7NPa.cjs');
24
- var machineMetadata = require('./machineMetadata-CLHS9sv_.cjs');
25
- var configuration = require('./configuration-CMHZnp6G.cjs');
26
- var registerKillSessionHandler = require('./registerKillSessionHandler-qMju0ZfF.cjs');
27
- var projectPath = require('./projectPath-ChLhdOyt.cjs');
23
+ var persistence = require('./persistence-BY-D00wT.cjs');
24
+ var machineMetadata = require('./machineMetadata-DB03ez4K.cjs');
25
+ var configuration = require('./configuration-C8JgseHy.cjs');
26
+ var registerKillSessionHandler = require('./registerKillSessionHandler-7fOm6ooh.cjs');
27
+ var projectPath = require('./projectPath-C3ioB4Bu.cjs');
28
28
  var path = require('node:path');
29
- var createSessionMetadata = require('./createSessionMetadata-BkIzHALd.cjs');
30
- var messageBuffer = require('./messageBuffer-fJMH6uY8.cjs');
31
- var controlClient = require('./controlClient-C-5qCt8W.cjs');
32
- var defaultPermissionMode = require('./defaultPermissionMode-pS3vmiSg.cjs');
29
+ var createSessionMetadata = require('./createSessionMetadata-DNIbKLHg.cjs');
30
+ var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
31
+ var controlClient = require('./controlClient-D68Zj7Q-.cjs');
32
+ var defaultPermissionMode = require('./defaultPermissionMode-BmvjP32v.cjs');
33
33
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
34
- var setupOfflineReconnection = require('./setupOfflineReconnection-CNiAt5ZP.cjs');
34
+ var setupOfflineReconnection = require('./setupOfflineReconnection-CjuCiKY3.cjs');
35
+ var startupSessionCreate = require('./startupSessionCreate-CKEbq0tL.cjs');
35
36
  var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
36
37
  var constants = require('./constants-VJ0N6WuG.cjs');
37
38
  var editPaths = require('./editPaths-Bqp4OFPw.cjs');
38
- var ensureDaemonRunning = require('./ensureDaemonRunning-BRUmsq6J.cjs');
39
+ var ensureDaemonRunning = require('./ensureDaemonRunning-B8z37VKD.cjs');
39
40
  require('tweetnacl');
40
41
  require('axios');
41
- require('./time-CrwIMHta.cjs');
42
- require('./browser-BohJK12g.cjs');
42
+ require('./time-nqa9shu8.cjs');
43
+ require('./browser-DjNNQQk2.cjs');
43
44
  require('open');
44
45
  require('zod');
45
- require('./prompt-lgF9IE82.cjs');
46
- require('./reportProgressTool-CM1JFAHg.cjs');
47
- require('./client-CuVdN6PP.cjs');
46
+ require('./prompt-Bof2aQkI.cjs');
47
+ require('./reportProgressTool-th4trcET.cjs');
48
+ require('./client-D_U2VjO3.cjs');
48
49
  require('./precheckCompat-CWOi5c9L.cjs');
49
50
  require('./agentGuidance-BtBx2xxE.cjs');
50
51
  require('node:fs');
51
- require('./client-BKcK1Bi-.cjs');
52
- require('./context-DXzU5bFM.cjs');
53
- require('./sessionOps-S-qPBLFf.cjs');
52
+ require('node:os');
53
+ require('./pi-DlsrPCTa.cjs');
54
+ require('./fileStore-7qhnbs6N.cjs');
55
+ require('./client-CUO3ItoB.cjs');
56
+ require('./context-D1lgQTJC.cjs');
57
+ require('./sessionOps-DVA-00nR.cjs');
54
58
  require('socket.io-client');
55
59
  require('./backgroundTaskActivity-CBvUdj39.cjs');
56
- require('./resources-CvIlkzpP.cjs');
57
- require('./tools-_w52DZG6.cjs');
58
- require('./peerTools-DRQETXaz.cjs');
59
- require('node:os');
60
+ require('./resources-BPyN59Iv.cjs');
61
+ require('./tools-DiCXnAC5.cjs');
62
+ require('./peerTools-CP-x-Peu.cjs');
60
63
  require('./ids-B6ZC0HGt.cjs');
61
- require('./remoteSessionClient-B7i7MkYV.cjs');
64
+ require('./remoteSessionClient-CFCn42bs.cjs');
62
65
  require('@modelcontextprotocol/sdk/server/mcp.js');
63
66
  require('node:http');
64
67
  require('@modelcontextprotocol/sdk/server/streamableHttp.js');
65
68
  require('./limits-C-a7gr04.cjs');
66
- require('./downloadTarget-BQJK_6oH.cjs');
69
+ require('./downloadTarget-LyOiucn_.cjs');
67
70
  require('./terminals-B_bfC9c2.cjs');
68
71
  require('./terminalTitleSuggest-DhvRFX3H.cjs');
69
72
  require('./tmuxSocket-D-Xt6Vn-.cjs');
70
- require('./bootstrap-exVucYav.cjs');
71
- require('./package-SgqTYsjn.cjs');
73
+ require('./bootstrap-CYtOtbi7.cjs');
74
+ require('./package-NoD8QOOM.cjs');
72
75
  require('./webPanels-FCgFKvVe.cjs');
73
- require('./pushNotifications-DaLQUyi0.cjs');
76
+ require('./pushNotifications-BXoOSq_G.cjs');
74
77
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
75
78
  require('./previewPath-B0rBdhy1.cjs');
76
79
  require('crypto');
77
80
  require('./processTreeSnapshot-mDbnuojn.cjs');
78
- require('./lidState-Dv2wwFTj.cjs');
81
+ require('./lidState-x8cJ8J_9.cjs');
79
82
  require('os');
80
83
  require('child_process');
81
84
  require('node:events');
82
- require('./registerCommonHandlers-Cj084Sg7.cjs');
85
+ require('./registerCommonHandlers-CRjBoJLK.cjs');
83
86
  require('util');
84
87
  require('fs/promises');
85
88
  require('path');
86
89
  require('cross-spawn');
87
- require('./sync-D23jbqVa.cjs');
90
+ require('./sync-1hQ5KHpL.cjs');
88
91
  require('chalk');
89
92
  require('node:readline');
90
93
  require('./manager-HrEj442o.cjs');
91
94
  require('@anthropic-ai/sandbox-runtime');
92
- require('./rateLimitWindows-Dj_8voBK.cjs');
95
+ require('./rateLimitWindows-OpAmdOtC.cjs');
93
96
  require('./processTree-CMHWlVse.cjs');
94
97
  require('node:util');
95
- require('./detectCLI-DR9ZaN6B.cjs');
98
+ require('./detectCLI-BuYR_Qxe.cjs');
96
99
  require('fs');
97
- require('./localHappyAgentAuth-DjYvkXvV.cjs');
100
+ require('./localHappyAgentAuth-DZ2kb9uq.cjs');
98
101
  require('./types-CRS-srZK.cjs');
99
102
  require('url');
100
- require('./spawnHappyCLI-Dywezwk6.cjs');
101
- require('./doctorReadiness-BCZGcN0a.cjs');
103
+ require('./spawnHappyCLI-DnKmIsEt.cjs');
104
+ require('./doctorReadiness-Dl6yRQCy.cjs');
102
105
 
103
106
  function getStartedSubagents(state) {
104
107
  return state.startedSubagents ?? /* @__PURE__ */ new Set();
@@ -1429,7 +1432,7 @@ async function runCodex(opts) {
1429
1432
  agentStateVersion: parseInt(reconnectAgentStateVersion || "0", 10)
1430
1433
  };
1431
1434
  } else {
1432
- response = await api$1.getOrCreateSession({ tag: sessionTag, metadata, state });
1435
+ response = await startupSessionCreate.createSessionForStartup(() => api$1.getOrCreateSession({ tag: sessionTag, metadata, state }), { startedBy: opts.startedBy, log: (m) => logger.logger.debug(m) });
1433
1436
  }
1434
1437
  if (response) {
1435
1438
  await sessionLock.claimSessionOrExit(response.id, { takeover: !!reconnectSessionId, flavor: "codex" });
@@ -1439,15 +1442,18 @@ async function runCodex(opts) {
1439
1442
  }
1440
1443
  let reconnectSeeded = false;
1441
1444
  let wakingFromHibernation = false;
1445
+ let reconnectReplay = null;
1442
1446
  if (reconnectSessionId && response) {
1443
1447
  const snapshot = await api$1.getSession(response.id, response.encryptionKey, response.encryptionVariant);
1444
1448
  if (snapshot.ok) {
1445
1449
  response = sessionLock.applyServerSnapshot(response, snapshot.session);
1446
1450
  reconnectSeeded = true;
1447
1451
  logger.logger.debug(`[START] Reconnect seeded from server: seq=${snapshot.session.seq} metadataVersion=${snapshot.session.metadataVersion}`);
1448
- const wake = sessionLock.applyHibernationReplay(response);
1452
+ const wake = sessionLock.applyReconnectReplay(response);
1449
1453
  response = wake.response;
1450
- wakingFromHibernation = wake.replaying;
1454
+ reconnectReplay = wake.replay;
1455
+ wakingFromHibernation = wake.replay?.source === "hibernation";
1456
+ if (wake.replay) logger.logger.debug(`[START] Resuming (${wake.replay.source}): replaying records after seq=${response.seq}`);
1451
1457
  } else {
1452
1458
  response = sessionLock.withoutServerSnapshot(response);
1453
1459
  logger.logger.debug(`[START] Reconnect without server snapshot (${snapshot.reason}); skipping existing messages`);
@@ -1478,7 +1484,7 @@ async function runCodex(opts) {
1478
1484
  if (reconnectSessionId) {
1479
1485
  session.suppressNextArchiveSignal();
1480
1486
  if (!reconnectSeeded) session.skipExistingMessages();
1481
- if (!wakingFromHibernation) void session.cancelUndeliveredQueuedInputs();
1487
+ if (!wakingFromHibernation) void session.cancelUndeliveredQueuedInputs(reconnectReplay ? { maxSeq: reconnectReplay.seq } : void 0);
1482
1488
  session.updateMetadata((meta) => sessionLock.mergeReconnectMetadata(meta, metadata, Date.now()));
1483
1489
  }
1484
1490
  if (response) {
@@ -1542,7 +1548,7 @@ async function runCodex(opts) {
1542
1548
  withAttachments: attachmentContent.appendStagedAttachmentsToPrompt,
1543
1549
  unlink: (path) => promises.unlink(path),
1544
1550
  isImage: (file) => CODEX_IMAGE_MIME_TYPES.includes(file.mimeType),
1545
- onSteered: (text) => messageBuffer$1.addMessage(text, "user"),
1551
+ onSteered: (text) => messageBuffer.addMessage(text, "user"),
1546
1552
  log: (message) => logger.logger.debug(message)
1547
1553
  };
1548
1554
  let userMessageDelivery = Promise.resolve();
@@ -1714,10 +1720,12 @@ async function runCodex(opts) {
1714
1720
  return;
1715
1721
  }
1716
1722
  logger.logger.debug("[Codex] Kill session requested - terminating process");
1723
+ const exitCursor = intent === "offline" && session ? sessionLock.exitCursorStamp(session.messageCursor, Date.now()) : void 0;
1724
+ if (exitCursor) session.freezeInbound();
1717
1725
  await handleAbort("kill");
1718
1726
  logger.logger.debug("[Codex] Abort completed, proceeding with termination");
1719
1727
  try {
1720
- if (session) await codexTermination.settleCodexSession(session, intent, (id) => api$1.deactivateSession(id), (m, e) => logger.logger.debug(m, safeCodexErrorMetadata(e)));
1728
+ if (session) await codexTermination.settleCodexSession(session, intent, (id) => api$1.deactivateSession(id), (m, e) => logger.logger.debug(m, safeCodexErrorMetadata(e)), exitCursor);
1721
1729
  try {
1722
1730
  await client$1.disconnect();
1723
1731
  } catch (e) {
@@ -1740,13 +1748,13 @@ async function runCodex(opts) {
1740
1748
  });
1741
1749
  session.rpcHandlerManager.registerHandler("abort", () => handleAbort("user"));
1742
1750
  const disposeTermination = registerKillSessionHandler.registerKillSessionHandler(session.rpcHandlerManager, () => handleKillSession("archive"), session, { processSignals: true, onSignal: () => handleKillSession("offline") });
1743
- const messageBuffer$1 = new messageBuffer.MessageBuffer();
1751
+ const messageBuffer = new sessionExitLifecycle.MessageBuffer();
1744
1752
  const hasTTY = process.stdout.isTTY && process.stdin.isTTY;
1745
1753
  let inkInstance = null;
1746
1754
  if (hasTTY) {
1747
1755
  console.clear();
1748
1756
  inkInstance = ink.render(React.createElement(CodexDisplay, {
1749
- messageBuffer: messageBuffer$1,
1757
+ messageBuffer,
1750
1758
  logPath: process.env.DEBUG ? logger.logger.getLogPath() : void 0,
1751
1759
  onExit: async () => {
1752
1760
  logger.logger.debug("[codex]: Exiting agent via Ctrl-C");
@@ -1816,45 +1824,45 @@ async function runCodex(opts) {
1816
1824
  }
1817
1825
  logger.logger.debug("[Codex] Event metadata", codexEventLogMetadata(msg));
1818
1826
  if (msg.type === "agent_message") {
1819
- messageBuffer$1.addMessage(msg.message, "assistant");
1827
+ messageBuffer.addMessage(msg.message, "assistant");
1820
1828
  } else if (msg.type === "agent_reasoning_delta") ; else if (msg.type === "agent_reasoning") {
1821
- messageBuffer$1.addMessage(`[Thinking] ${msg.text.substring(0, 100)}...`, "system");
1829
+ messageBuffer.addMessage(`[Thinking] ${msg.text.substring(0, 100)}...`, "system");
1822
1830
  } else if (msg.type === "exec_command_begin") {
1823
- messageBuffer$1.addMessage(`Executing: ${msg.command}`, "tool");
1831
+ messageBuffer.addMessage(`Executing: ${msg.command}`, "tool");
1824
1832
  } else if (msg.type === "exec_command_end") {
1825
1833
  const output = msg.output || msg.error || "Command completed";
1826
1834
  const truncatedOutput = output.substring(0, 200);
1827
- messageBuffer$1.addMessage(
1835
+ messageBuffer.addMessage(
1828
1836
  `Result: ${truncatedOutput}${output.length > 200 ? "..." : ""}`,
1829
1837
  "result"
1830
1838
  );
1831
1839
  } else if (msg.type === "task_started") {
1832
- messageBuffer$1.addMessage("Starting task...", "status");
1840
+ messageBuffer.addMessage("Starting task...", "status");
1833
1841
  } else if (msg.type === "task_complete") {
1834
1842
  const failure = describeCodexFailure(msg);
1835
1843
  if (failure) {
1836
- messageBuffer$1.addMessage(`Task failed: ${failure}`, "status");
1844
+ messageBuffer.addMessage(`Task failed: ${failure}`, "status");
1837
1845
  session.sendSessionEvent({ type: "message", message: `Codex error: ${failure}` });
1838
1846
  } else {
1839
- messageBuffer$1.addMessage("Task completed", "status");
1847
+ messageBuffer.addMessage("Task completed", "status");
1840
1848
  }
1841
1849
  } else if (msg.type === "turn_aborted") {
1842
1850
  const failure = describeCodexFailure(msg);
1843
1851
  if (failure) {
1844
- messageBuffer$1.addMessage(`Turn aborted: ${failure}`, "status");
1852
+ messageBuffer.addMessage(`Turn aborted: ${failure}`, "status");
1845
1853
  session.sendSessionEvent({ type: "message", message: `Codex error: ${failure}` });
1846
1854
  } else {
1847
- messageBuffer$1.addMessage("Turn aborted", "status");
1855
+ messageBuffer.addMessage("Turn aborted", "status");
1848
1856
  }
1849
1857
  } else if (msg.type === "turn_retry") {
1850
1858
  const notice = describeCodexRetry(msg);
1851
- messageBuffer$1.addMessage(notice, "status");
1859
+ messageBuffer.addMessage(notice, "status");
1852
1860
  session.sendSessionEvent({ type: "message", message: notice });
1853
1861
  } else if (msg.type === "steer_dropped") {
1854
1862
  const clientIds = Array.isArray(msg.client_ids) ? msg.client_ids.filter((id) => typeof id === "string" && id.length > 0) : [];
1855
1863
  if (clientIds.length > 0) {
1856
1864
  session.sendQueueCancelReason(clientIds, "aborted");
1857
- messageBuffer$1.addMessage("A steered message was not read before the turn ended", "status");
1865
+ messageBuffer.addMessage("A steered message was not read before the turn ended", "status");
1858
1866
  }
1859
1867
  }
1860
1868
  if (msg.type === "task_started") {
@@ -1888,16 +1896,16 @@ async function runCodex(opts) {
1888
1896
  }
1889
1897
  const changeCount = Object.keys(changes).length;
1890
1898
  const filesMsg = changeCount === 1 ? "1 file" : `${changeCount} files`;
1891
- messageBuffer$1.addMessage(`Modifying ${filesMsg}...`, "tool");
1899
+ messageBuffer.addMessage(`Modifying ${filesMsg}...`, "tool");
1892
1900
  }
1893
1901
  if (msg.type === "patch_apply_end") {
1894
1902
  const { stdout, stderr, success } = msg;
1895
1903
  if (success) {
1896
1904
  const message = stdout || "Files modified successfully";
1897
- messageBuffer$1.addMessage(message.substring(0, 200), "result");
1905
+ messageBuffer.addMessage(message.substring(0, 200), "result");
1898
1906
  } else {
1899
1907
  const errorMsg = stderr || "Failed to modify files";
1900
- messageBuffer$1.addMessage(`Error: ${errorMsg.substring(0, 200)}`, "result");
1908
+ messageBuffer.addMessage(`Error: ${errorMsg.substring(0, 200)}`, "result");
1901
1909
  }
1902
1910
  }
1903
1911
  if (msg.type === "turn_diff") {
@@ -1961,7 +1969,7 @@ async function runCodex(opts) {
1961
1969
  await resumeExistingThread({
1962
1970
  client: client$1,
1963
1971
  session,
1964
- messageBuffer: messageBuffer$1,
1972
+ messageBuffer,
1965
1973
  threadId: opts.resumeThreadId,
1966
1974
  cwd: process.cwd(),
1967
1975
  mcpServers
@@ -1973,7 +1981,7 @@ async function runCodex(opts) {
1973
1981
  await importCodexThread({
1974
1982
  client: client$1,
1975
1983
  session,
1976
- messageBuffer: messageBuffer$1,
1984
+ messageBuffer,
1977
1985
  threadId: importCodexThreadId,
1978
1986
  cwd: process.cwd(),
1979
1987
  mcpServers
@@ -2093,7 +2101,7 @@ async function runCodex(opts) {
2093
2101
  appendSystemPromptInjected = false;
2094
2102
  thinking = false;
2095
2103
  session.keepAlive(thinking, "remote");
2096
- messageBuffer$1.addMessage("Context was reset", "status");
2104
+ messageBuffer.addMessage("Context was reset", "status");
2097
2105
  session.sendSessionEvent({ type: "message", message: "Context was reset" });
2098
2106
  session.updateMetadata((currentMetadata) => {
2099
2107
  const nextMetadata = { ...currentMetadata };
@@ -2111,7 +2119,7 @@ async function runCodex(opts) {
2111
2119
  idleRelease.arm();
2112
2120
  continue;
2113
2121
  }
2114
- messageBuffer$1.addMessage(message.message, "user");
2122
+ messageBuffer.addMessage(message.message, "user");
2115
2123
  try {
2116
2124
  await client$1.ensureConnected();
2117
2125
  const sandboxManagedByHappy = client$1.sandboxEnabled;
@@ -2167,11 +2175,11 @@ async function runCodex(opts) {
2167
2175
  logger.logger.warn("Error in codex session", safeCodexErrorMetadata(error));
2168
2176
  const reason = describeThrownTurnError(error);
2169
2177
  if (reason) {
2170
- messageBuffer$1.addMessage(`Task failed: ${reason}`, "status");
2178
+ messageBuffer.addMessage(`Task failed: ${reason}`, "status");
2171
2179
  session.sendSessionEvent({ type: "message", message: `Codex error: ${reason}` });
2172
2180
  } else {
2173
2181
  const tail = codexStderrTailOf(error);
2174
- messageBuffer$1.addMessage("Process exited unexpectedly", "status");
2182
+ messageBuffer.addMessage("Process exited unexpectedly", "status");
2175
2183
  session.sendSessionEvent({ type: "message", message: tail ? `Process exited unexpectedly: ${tail}` : "Process exited unexpectedly" });
2176
2184
  }
2177
2185
  } finally {
@@ -2240,7 +2248,7 @@ async function runCodex(opts) {
2240
2248
  logger.logger.debug("[codex]: inkInstance.unmount()");
2241
2249
  inkInstance.unmount();
2242
2250
  }
2243
- messageBuffer$1.clear();
2251
+ messageBuffer.clear();
2244
2252
  logActiveHandles("cleanup-end");
2245
2253
  logger.logger.debug("[codex]: Final cleanup completed");
2246
2254
  if (hibernationExit.hibernating && hibernationStamp) {
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var node_crypto = require('node:crypto');
4
- var logger = require('./logger-C1GWx3gi.cjs');
4
+ var logger = require('./logger-DgBwUSgS.cjs');
5
+ var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
5
6
 
6
7
  class BaseReasoningProcessor {
7
8
  accumulator = "";
@@ -198,7 +199,11 @@ class BaseReasoningProcessor {
198
199
  }
199
200
 
200
201
  async function settleCodexSession(session, intent, deactivate, log = () => {
201
- }) {
202
+ }, exitCursor) {
203
+ if (intent === "offline" && exitCursor && session.updateMetadataAndWait) {
204
+ const landed = await session.updateMetadataAndWait((currentMetadata) => ({ ...currentMetadata, exitCursor }), sessionExitLifecycle.OFFLINE_EXIT_STAMP_TIMEOUT_MS);
205
+ if (!landed) log("[Codex] offline exit cursor not confirmed before going offline");
206
+ }
202
207
  if (intent === "archive") {
203
208
  session.updateMetadata((currentMetadata) => ({
204
209
  ...currentMetadata,
@@ -1,5 +1,6 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { l as logger } from './logger-BtVhHnD8.mjs';
2
+ import { l as logger } from './logger-LFr8iPgl.mjs';
3
+ import { O as OFFLINE_EXIT_STAMP_TIMEOUT_MS } from './sessionExitLifecycle-CzkLIgNZ.mjs';
3
4
 
4
5
  class BaseReasoningProcessor {
5
6
  accumulator = "";
@@ -196,7 +197,11 @@ class BaseReasoningProcessor {
196
197
  }
197
198
 
198
199
  async function settleCodexSession(session, intent, deactivate, log = () => {
199
- }) {
200
+ }, exitCursor) {
201
+ if (intent === "offline" && exitCursor && session.updateMetadataAndWait) {
202
+ const landed = await session.updateMetadataAndWait((currentMetadata) => ({ ...currentMetadata, exitCursor }), OFFLINE_EXIT_STAMP_TIMEOUT_MS);
203
+ if (!landed) log("[Codex] offline exit cursor not confirmed before going offline");
204
+ }
200
205
  if (intent === "archive") {
201
206
  session.updateMetadata((currentMetadata) => ({
202
207
  ...currentMetadata,
@@ -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-BtVhHnD8.mjs';
5
+ import { l as logger } from './logger-LFr8iPgl.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-WMi4idBB.mjs';
9
+ import './configuration-BPrfb17M.mjs';
10
10
  import 'node:fs';
11
11
  import 'node:os';
12
12
  import 'node:path';
13
- import './package-BPPebGQF.mjs';
13
+ import './package-DYGwlmXl.mjs';
14
14
  import 'node:fs/promises';
15
15
  import './trimIdent-BAjmv_TG.mjs';
16
16