very-happy-cli 0.2.179 → 0.2.180

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/dist/{AcpBackend-CHp3y7cb.mjs → AcpBackend-B8Zi30Zh.mjs} +3 -3
  2. package/dist/{AcpBackend-DFipFF7-.cjs → AcpBackend-DfRDtMcG.cjs} +3 -3
  3. package/dist/{AcpSessionManager-0zpvRJXc.cjs → AcpSessionManager-CASKOnOj.cjs} +1 -1
  4. package/dist/{AcpSessionManager-d2-rKWWa.mjs → AcpSessionManager-i8Rab0xT.mjs} +1 -1
  5. package/dist/{BasePermissionHandler-DdZBYIR4.mjs → BasePermissionHandler-26fKbRCm.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-CH3zuEkA.cjs → BasePermissionHandler-BlM_tfej.cjs} +1 -1
  7. package/dist/{acpSessionResume-DTGmAPLt.mjs → acpSessionResume-B9l54P-X.mjs} +1 -1
  8. package/dist/{acpSessionResume-oiCBnAVA.cjs → acpSessionResume-CR5pmgVo.cjs} +1 -1
  9. package/dist/{agentHome-BWcz8mz0.cjs → agentHome-C7Sb7-Tz.cjs} +4 -4
  10. package/dist/{agentHome-CghLvL_1.mjs → agentHome-CmGy0NWv.mjs} +4 -4
  11. package/dist/{api-Cmjfr8Z7.cjs → api-DM7b1OKj.cjs} +20 -12
  12. package/dist/{api-CzwFpJQc.mjs → api-Hov8p7CA.mjs} +21 -13
  13. package/dist/{apiMachine-DJkTEiqy.mjs → apiMachine-CwGEhQDT.mjs} +33 -14
  14. package/dist/{apiMachine-G6OogT08.cjs → apiMachine-DkGRj-Ai.cjs} +35 -16
  15. package/dist/{attachmentContent-Bo0UAsSu.cjs → attachmentContent-CEm13_gF.cjs} +2 -2
  16. package/dist/{attachmentContent-B2os4HbA.mjs → attachmentContent-CIn4iPEk.mjs} +2 -2
  17. package/dist/{auth-BS6PaOOG.mjs → auth-BG1DY0gj.mjs} +5 -5
  18. package/dist/{auth-D6bBUwZa.cjs → auth-CBXnm-Mj.cjs} +5 -5
  19. package/dist/{auth-HEhRaNgL.cjs → auth-Dawj7pP5.cjs} +8 -8
  20. package/dist/{auth-DMX0xPNK.mjs → auth-rggxMpEE.mjs} +8 -8
  21. package/dist/{auto-Cl1SEDcD.mjs → auto-CXXLXGeL.mjs} +17 -17
  22. package/dist/{auto-C6I55iOh.cjs → auto-CbYOfoPS.cjs} +17 -17
  23. package/dist/{backgroundTaskActivity-BVwJBl02.mjs → backgroundTaskActivity-8PdPxrvy.mjs} +1 -1
  24. package/dist/{bootstrap-exVucYav.cjs → bootstrap-DoA7okld.cjs} +2 -2
  25. package/dist/{bootstrap-iuyufnp3.mjs → bootstrap-Dt5I1SOl.mjs} +2 -2
  26. package/dist/{browser-CSYum7xH.mjs → browser-DUNetFT4.mjs} +1 -1
  27. package/dist/{browser-BohJK12g.cjs → browser-DZ6qRtfH.cjs} +1 -1
  28. package/dist/{claudeCliPath-U4HHmV4r.cjs → claudeCliPath-GaP3UUz1.cjs} +1 -1
  29. package/dist/{claudeLocal-re4yjSTx.cjs → claudeLocal--DNyMOSv.cjs} +7 -7
  30. package/dist/{claudeLocal-Dq_R3Ax_.mjs → claudeLocal-OHWQigCl.mjs} +5 -5
  31. package/dist/{claudeLocalLauncher-CN67lN7-.mjs → claudeLocalLauncher-BStvfa7M.mjs} +10 -10
  32. package/dist/{claudeLocalLauncher-B4hJHpCA.cjs → claudeLocalLauncher-BhvPbcyH.cjs} +12 -12
  33. package/dist/{claudeSessionFork-DiSMYerV.cjs → claudeSessionFork-Be16vzGc.cjs} +1 -1
  34. package/dist/{claudeSessionFork-BihfD0Ik.mjs → claudeSessionFork-GAVWhiKG.mjs} +1 -1
  35. package/dist/{client-CuVdN6PP.cjs → client-BWjaHKtj.cjs} +2 -2
  36. package/dist/{client-BhoEBnuN.mjs → client-Ca5Pcgy_.mjs} +2 -2
  37. package/dist/{client-wo9nbxuf.mjs → client-CnB7kRCT.mjs} +2 -2
  38. package/dist/{client-DuTDwWSQ.mjs → client-D4uPb1uu.mjs} +3 -3
  39. package/dist/{client-ZjOsn6nZ.cjs → client-DJplzPjD.cjs} +2 -2
  40. package/dist/{client-BKcK1Bi-.cjs → client-D_loZ9IK.cjs} +3 -3
  41. package/dist/codex/happyMcpStdioBridge.cjs +16 -16
  42. package/dist/codex/happyMcpStdioBridge.mjs +17 -17
  43. package/dist/{codexAppServerClient-BK3zra_1.mjs → codexAppServerClient-CO4G6OS4.mjs} +3 -3
  44. package/dist/{codexAppServerClient-Dt5zxrun.cjs → codexAppServerClient-PE-12AsW.cjs} +3 -3
  45. package/dist/{codexCommand-CAZ1SLjg.cjs → codexCommand-BNoD1t1C.cjs} +80 -74
  46. package/dist/{codexCommand-B6pY7CMh.mjs → codexCommand-B_xUH79E.mjs} +54 -48
  47. package/dist/{codexTermination-DmGbHxcD.cjs → codexTermination-BmBbizFK.cjs} +7 -2
  48. package/dist/{codexTermination-Cd1Eon_4.mjs → codexTermination-Dx48ma6e.mjs} +7 -2
  49. package/dist/{config-B0uK6K7n.cjs → config-CtwEUxUP.cjs} +26 -26
  50. package/dist/{config-2oMG_fEI.mjs → config-DSu0Blos.mjs} +3 -3
  51. package/dist/{configuration-CMHZnp6G.cjs → configuration-CYO-kPOS.cjs} +1 -1
  52. package/dist/{configuration-WMi4idBB.mjs → configuration-PxzEJumr.mjs} +1 -1
  53. package/dist/{connect-BLVHhHzA.mjs → connect-BQrg3TB6.mjs} +14 -14
  54. package/dist/{connect-uaglGrde.cjs → connect-Dq7wndzR.cjs} +27 -27
  55. package/dist/{context-DXzU5bFM.cjs → context-6TP-iz_c.cjs} +1 -1
  56. package/dist/{context-DploEcoN.mjs → context-CJGRRGWW.mjs} +1 -1
  57. package/dist/{controlClient-C-5qCt8W.cjs → controlClient-Bqv5v5OM.cjs} +3 -3
  58. package/dist/{controlClient-BWUJrj3t.mjs → controlClient-DoeYovwP.mjs} +4 -4
  59. package/dist/{createSessionMetadata-3uXrJgOW.mjs → createSessionMetadata-DDIChCx8.mjs} +2 -2
  60. package/dist/{createSessionMetadata-BkIzHALd.cjs → createSessionMetadata-xz767pcG.cjs} +3 -3
  61. package/dist/{defaultPermissionMode-pS3vmiSg.cjs → defaultPermissionMode-PkZGsQDk.cjs} +2 -2
  62. package/dist/{defaultPermissionMode-BzxLh20a.mjs → defaultPermissionMode-i5KzdK09.mjs} +2 -2
  63. package/dist/{detectCLI-DR9ZaN6B.cjs → detectCLI-BuYR_Qxe.cjs} +4 -4
  64. package/dist/{deterministicJson-D_whDMFd.mjs → deterministicJson-CTEJDqtS.mjs} +12 -12
  65. package/dist/{deterministicJson-B8z2GPi9.cjs → deterministicJson-xqA6DaOm.cjs} +14 -14
  66. package/dist/{doctor-Br1Kcy2J.cjs → doctor-BrgSlfXn.cjs} +9 -9
  67. package/dist/{doctor-CmtSsR2-.mjs → doctor-IctjVh9T.mjs} +8 -8
  68. package/dist/{doctorReadiness-BCZGcN0a.cjs → doctorReadiness-Dl6yRQCy.cjs} +1 -1
  69. package/dist/{downloadTarget-BQJK_6oH.cjs → downloadTarget-CEb9che-.cjs} +6 -6
  70. package/dist/{downloadTarget-BoNwTIH_.mjs → downloadTarget-jbOz1egC.mjs} +6 -6
  71. package/dist/{ensureDaemonRunning-BRUmsq6J.cjs → ensureDaemonRunning-D-HyjGIX.cjs} +6 -6
  72. package/dist/{ensureDaemonRunning-Czo9IHJQ.mjs → ensureDaemonRunning-b1e8LCSM.mjs} +5 -5
  73. package/dist/{handleResumeCommand-tKD_Hpxc.cjs → handleResumeCommand-BvWVuRwH.cjs} +7 -7
  74. package/dist/{handleResumeCommand-C8thKjqf.mjs → handleResumeCommand-DpaZvm2c.mjs} +6 -6
  75. package/dist/{index-DMqDMT1Q.cjs → index-B2p2Mut7.cjs} +42 -41
  76. package/dist/{index-BTxHphpV.mjs → index-BUNnpGFF.mjs} +42 -41
  77. package/dist/{index-CdQI0C9p.mjs → index-Bsvbgh9e.mjs} +4 -4
  78. package/dist/{index-B0UjHlAe.cjs → index-C64Ufj4D.cjs} +4 -4
  79. package/dist/{index-DPOa4NhL.mjs → index-C6Vn5Eac.mjs} +2 -0
  80. package/dist/{index-BiyC7cZ3.mjs → index-CMf5VbzG.mjs} +4 -4
  81. package/dist/{index-CUuc6iCn.cjs → index-DmTlDRSL.cjs} +4 -4
  82. package/dist/{index-C6O2vVjm.cjs → index-Dv0Q48P3.cjs} +2 -0
  83. package/dist/{index-D09T1m8Y.cjs → index-F2UejqYs.cjs} +3 -3
  84. package/dist/{index-D3bidoG8.mjs → index-wCbtF4BK.mjs} +3 -3
  85. package/dist/index.cjs +2 -2
  86. package/dist/index.mjs +2 -2
  87. package/dist/{install-CYRZxS87.cjs → install-C0ANcEAW.cjs} +7 -7
  88. package/dist/{install-hnve_9vq.mjs → install-CdzSV7qO.mjs} +3 -3
  89. package/dist/{installPiTools-BKnXjrVu.cjs → installPiTools-CL_axh_6.cjs} +1 -1
  90. package/dist/{installTerminalHooks-BQZbvxsZ.cjs → installTerminalHooks-BETLKAtd.cjs} +3 -3
  91. package/dist/lib.cjs +13 -13
  92. package/dist/lib.d.cts +177 -1
  93. package/dist/lib.d.mts +177 -1
  94. package/dist/lib.mjs +13 -13
  95. package/dist/{lidState-Dv2wwFTj.cjs → lidState-DWGnm2H4.cjs} +1 -1
  96. package/dist/{lidState-Bb8fgXg3.mjs → lidState-bBrmaQd2.mjs} +1 -1
  97. package/dist/{localHappyAgentAuth-DjYvkXvV.cjs → localHappyAgentAuth-DZHQnIW9.cjs} +1 -1
  98. package/dist/{localHappyAgentAuth-NEU7fax7.mjs → localHappyAgentAuth-Dn1jYDpt.mjs} +1 -1
  99. package/dist/{logger-BtVhHnD8.mjs → logger-BUngm5Xg.mjs} +2 -2
  100. package/dist/{logger-C1GWx3gi.cjs → logger-CphW5nUE.cjs} +2 -2
  101. package/dist/machineMetadata-BQm9YTcI.cjs +79 -0
  102. package/dist/machineMetadata-BXN_bKU3.mjs +68 -0
  103. package/dist/{main-CWhSsbtU.cjs → main-B2UV51nK.cjs} +99 -132
  104. package/dist/{main-B2LWV8DI.mjs → main-DGkdYfEq.mjs} +93 -126
  105. package/dist/{mcp-CARUsXHV.cjs → mcp-BFvAEIRz.cjs} +15 -15
  106. package/dist/{mcp-ext92q3Y.mjs → mcp-CbTtbs0f.mjs} +15 -15
  107. package/dist/{mirrorProtocol-BwYibqry.mjs → mirrorProtocol-BR4luBC0.mjs} +148 -7
  108. package/dist/{mirrorProtocol-DEy2g1CB.cjs → mirrorProtocol-HKPivs5o.cjs} +150 -4
  109. package/dist/{package-BPPebGQF.mjs → package-7Ld1YMhh.mjs} +8 -7
  110. package/dist/{package-SgqTYsjn.cjs → package-KhLqBDX9.cjs} +8 -7
  111. package/dist/{panels-BZ0_Tt7B.mjs → panels-C7IVqpJk.mjs} +5 -5
  112. package/dist/{panels-D1c7q2dD.cjs → panels-Njf6GelF.cjs} +5 -5
  113. package/dist/{peerTools-CWKzcQ7u.mjs → peerTools-BOlDRyhi.mjs} +5 -5
  114. package/dist/{peerTools-DRQETXaz.cjs → peerTools-DQNlrcqM.cjs} +5 -5
  115. package/dist/{persistence-BegE7NPa.cjs → persistence-9BMYspxG.cjs} +2 -2
  116. package/dist/{persistence-Cr-wutZ4.mjs → persistence-BFUOHW5h.mjs} +2 -2
  117. package/dist/{piRunnerArgs-Cs-378Vz.cjs → piRunnerArgs-DGaq6VYM.cjs} +1 -1
  118. package/dist/{piRunnerArgs-DwvM_yWA.mjs → piRunnerArgs-H2pgpA5z.mjs} +1 -1
  119. package/dist/{piRuntime-BG-1td_n.cjs → piRuntime-CT5xv_3h.cjs} +1 -1
  120. package/dist/{piRuntime-Bue5mnlc.mjs → piRuntime-CdN0JAsa.mjs} +1 -1
  121. package/dist/{piTerminal-G4z-xVyy.cjs → piTerminal-0FBtXTHK.cjs} +17 -17
  122. package/dist/{piTerminal-B5x9X5yV.mjs → piTerminal-C4m9YXAV.mjs} +17 -17
  123. package/dist/projectPath-C3ioB4Bu.cjs +13 -0
  124. package/dist/{pushNotifications-BdFjDjQe.mjs → pushNotifications-DCiBEVeC.mjs} +7 -3
  125. package/dist/{pushNotifications-DaLQUyi0.cjs → pushNotifications-DI92havG.cjs} +7 -3
  126. package/dist/{query-Ctfg-5gy.cjs → query-BETKBrnz.cjs} +1 -1
  127. package/dist/{query-DYP_W1wp.mjs → query-ywZbQUzR.mjs} +1 -1
  128. package/dist/{rateLimitWindows-CuEqk_0g.mjs → rateLimitWindows-BkfuUB1a.mjs} +1 -1
  129. package/dist/{rateLimitWindows-Dj_8voBK.cjs → rateLimitWindows-YRIYVdo4.cjs} +1 -1
  130. package/dist/{registerCommonHandlers-Cj084Sg7.cjs → registerCommonHandlers-C7a_dUWs.cjs} +30 -30
  131. package/dist/{registerCommonHandlers-BAlP7SGc.mjs → registerCommonHandlers-CTkCvjxt.mjs} +2 -2
  132. package/dist/{registerKillSessionHandler-qMju0ZfF.cjs → registerKillSessionHandler-CIsvBrVe.cjs} +6 -6
  133. package/dist/{registerKillSessionHandler-PD0jWtQo.mjs → registerKillSessionHandler-CaqqRYq6.mjs} +6 -6
  134. package/dist/{remoteSessionClient-B7i7MkYV.cjs → remoteSessionClient-D843fkzL.cjs} +5 -5
  135. package/dist/{remoteSessionClient-Bn2qu5C5.mjs → remoteSessionClient-PP-mOKmw.mjs} +5 -5
  136. package/dist/{reportProgressTool-CM1JFAHg.cjs → reportProgressTool-14AXr959.cjs} +3 -3
  137. package/dist/{reportProgressTool-gHItlSzz.mjs → reportProgressTool-ZOCNjWHr.mjs} +3 -3
  138. package/dist/{run-CNXwIe0A.cjs → run-CAOCYYfT.cjs} +2650 -90
  139. package/dist/{run-BM4TxiyN.mjs → run-Dajw2E5j.mjs} +2644 -84
  140. package/dist/{runClaude-C_3I8hvR.mjs → runClaude-C6oxWYbp.mjs} +34 -28
  141. package/dist/{runClaude-CWhj2V4Q.cjs → runClaude-CRRKt-tm.cjs} +35 -29
  142. package/dist/{runClaudeDeps-B81cOKnH.cjs → runClaudeDeps-B1ysqTvx.cjs} +54 -119
  143. package/dist/{runClaudeDeps-QGrOeDe2.mjs → runClaudeDeps-BcZ68cX3.mjs} +47 -111
  144. package/dist/{runGemini-BEdWEZLR.mjs → runGemini-D7yKc4wD.mjs} +35 -35
  145. package/dist/{runGemini-CgRLYbt5.cjs → runGemini-DtKFXqf-.cjs} +63 -63
  146. package/dist/{runOpenClaw-DdQZAYj1.mjs → runOpenClaw-C8ilyLP9.mjs} +19 -19
  147. package/dist/{runOpenClaw-C1NVmzOL.cjs → runOpenClaw-Cq29mryb.cjs} +20 -20
  148. package/dist/{sandbox-DjQUdCMG.mjs → sandbox-CbCutma4.mjs} +4 -4
  149. package/dist/{sandbox-nocIjliq.cjs → sandbox-gIj-EuF4.cjs} +4 -4
  150. package/dist/{selfCheck-DCt4Uzbq.cjs → selfCheck-BTGBVthv.cjs} +39 -39
  151. package/dist/selfCheck-Smt-5Xiq.mjs +85 -0
  152. package/dist/{send-Dydf_hwZ.cjs → send-CZf5lLw_.cjs} +8 -8
  153. package/dist/{send-Ct7X4pPU.mjs → send-YZRMQvMJ.mjs} +9 -9
  154. package/dist/{server-DTQGZMxh.mjs → server-BqwXRzFZ.mjs} +4 -4
  155. package/dist/{server-CosABFbd.cjs → server-CknFq6xG.cjs} +6 -6
  156. package/dist/sessionExitLifecycle-CzkLIgNZ.mjs +142 -0
  157. package/dist/sessionExitLifecycle-DFltxXU8.cjs +148 -0
  158. package/dist/{sessionLock-DokGab2R.cjs → sessionLock-DRZUcKHT.cjs} +25 -5
  159. package/dist/{sessionLock-WYIyaVO4.mjs → sessionLock-nBXdJxJm.mjs} +24 -5
  160. package/dist/{sessionOps-S-qPBLFf.cjs → sessionOps-BrGiU9-s.cjs} +4 -4
  161. package/dist/{sessionOps-BIGgRube.mjs → sessionOps-C58iDeD5.mjs} +5 -5
  162. package/dist/{sessionScanner-o5hnMi5e.mjs → sessionScanner-Bm57LEXe.mjs} +3 -3
  163. package/dist/{sessionScanner-CIMM2hvZ.cjs → sessionScanner-CaO8bLaG.cjs} +3 -3
  164. package/dist/{sessions-BJHEZpi2.mjs → sessions-BXyBHo8n.mjs} +11 -11
  165. package/dist/{sessions-JchI1w3z.cjs → sessions-uzqPCc37.cjs} +10 -10
  166. package/dist/{setupOfflineReconnection-DMiBO2y9.mjs → setupOfflineReconnection-1Qlek3wl.mjs} +2 -2
  167. package/dist/{setupOfflineReconnection-CNiAt5ZP.cjs → setupOfflineReconnection-DvvVX3TB.cjs} +2 -2
  168. package/dist/{spawn-6PD7nnoC.cjs → spawn-DBkodJEO.cjs} +15 -15
  169. package/dist/{spawn-DgvUNYEo.mjs → spawn-vn93PhYL.mjs} +15 -15
  170. package/dist/{spawnAgents-P006Hqio.mjs → spawnAgents-CgPMWexP.mjs} +1 -1
  171. package/dist/{spawnAgents-DsXgegHM.cjs → spawnAgents-DLNMlhWJ.cjs} +1 -1
  172. package/dist/{spawnHappyCLI-CCOrEtf9.mjs → spawnHappyCLI-BjFZc_7V.mjs} +1 -1
  173. package/dist/{spawnHappyCLI-Dywezwk6.cjs → spawnHappyCLI-DnUZv0X2.cjs} +2 -2
  174. package/dist/{specialCommands-QxPpkGKf.cjs → specialCommands-BRufxlqe.cjs} +3 -3
  175. package/dist/{specialCommands-DPcd9edP.mjs → specialCommands-D3ND9bdg.mjs} +3 -3
  176. package/dist/{startFileWatcher-RECH5qY8.cjs → startFileWatcher-D9cYzZOq.cjs} +1 -1
  177. package/dist/{startFileWatcher-DghDOCO4.mjs → startFileWatcher-DXJ7yB5v.mjs} +1 -1
  178. package/dist/startupSessionCreate-kdr3m1uX.cjs +26 -0
  179. package/dist/startupSessionCreate-uZ6BM0ty.mjs +24 -0
  180. package/dist/{streamRelay-DMV_TXfS.mjs → streamRelay-DnMCMMfV.mjs} +1 -1
  181. package/dist/{streamRelay-DlUWKUpo.cjs → streamRelay-Dy6amlzx.cjs} +1 -1
  182. package/dist/{sync-D23jbqVa.cjs → sync-Bn-idAoy.cjs} +1 -1
  183. package/dist/{sync-CSe0Rf45.mjs → sync-BvVhDO40.mjs} +1 -1
  184. package/dist/{systemPrompt-CFNKnh65.mjs → systemPrompt-CIZcJuJF.mjs} +2 -2
  185. package/dist/{systemPrompt-BOy4kU4P.cjs → systemPrompt-DlyEk35T.cjs} +2 -2
  186. package/dist/{teams-Ov2BDT-A.cjs → teams-BLeRpDxv.cjs} +6 -6
  187. package/dist/{teams-DyY669f0.mjs → teams-DLY3B5yi.mjs} +6 -6
  188. package/dist/{time-CrwIMHta.cjs → time-Cjv0zxQO.cjs} +1 -1
  189. package/dist/{time-65DcU6Jx.mjs → time-D3ETL7Jb.mjs} +1 -1
  190. package/dist/{titleGenerator-CS_rh2_J.cjs → titleGenerator-Cgp5ihFb.cjs} +3 -3
  191. package/dist/{titleGenerator-CiAMxf7s.mjs → titleGenerator-Uzbd4utr.mjs} +1 -1
  192. package/dist/{todo-BDONw0sK.mjs → todo-C9Ga-oEM.mjs} +6 -6
  193. package/dist/{todo-KY-okGii.cjs → todo-pOMcEECE.cjs} +6 -6
  194. package/dist/{tools-_w52DZG6.cjs → tools-BL7Byl_x.cjs} +1 -1
  195. package/dist/{tools-D8-PnZEG.mjs → tools-Cho7iIWf.mjs} +1 -1
  196. package/dist/{uninstall-8vnLN-IE.cjs → uninstall-CbayEVoV.cjs} +6 -6
  197. package/dist/{uninstall-_fjGRP9b.mjs → uninstall-CvZHVY9C.mjs} +3 -3
  198. package/package.json +8 -7
  199. package/dist/machineMetadata-CLHS9sv_.cjs +0 -42
  200. package/dist/machineMetadata-D-g--oU_.mjs +0 -39
  201. package/dist/messageBuffer-BWlGgR3A.mjs +0 -71
  202. package/dist/messageBuffer-fJMH6uY8.cjs +0 -73
  203. package/dist/projectPath-ChLhdOyt.cjs +0 -13
  204. package/dist/selfCheck-CjCF4C3v.mjs +0 -85
@@ -1,11 +1,11 @@
1
1
  import { spawn } from 'node:child_process';
2
2
  import { ndJsonStream, ClientSideConnection } from '@agentclientprotocol/sdk';
3
3
  import { randomUUID } from 'node:crypto';
4
- import { l as logger } from './logger-BtVhHnD8.mjs';
5
- import { d as delay } from './time-65DcU6Jx.mjs';
4
+ import { l as logger } from './logger-BUngm5Xg.mjs';
5
+ import { d as delay } from './time-D3ETL7Jb.mjs';
6
6
  import { c as contentLogMetadata, e as errorLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
7
7
  import { r as readableStderrTail, a as appendStderrRing, s as stopProcessGracefully, k as killProcessTree } from './processTree-CP5IvQ2Z.mjs';
8
- import { p as packageJson } from './package-BPPebGQF.mjs';
8
+ import { p as packageJson } from './package-7Ld1YMhh.mjs';
9
9
 
10
10
  function acpImageBlocks(attachments, supportsImages) {
11
11
  return attachments.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => {
@@ -3,11 +3,11 @@
3
3
  var node_child_process = require('node:child_process');
4
4
  var sdk = require('@agentclientprotocol/sdk');
5
5
  var node_crypto = require('node:crypto');
6
- var logger = require('./logger-C1GWx3gi.cjs');
7
- var time = require('./time-CrwIMHta.cjs');
6
+ var logger = require('./logger-CphW5nUE.cjs');
7
+ var time = require('./time-Cjv0zxQO.cjs');
8
8
  var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
9
9
  var processTree = require('./processTree-CMHWlVse.cjs');
10
- var _package = require('./package-SgqTYsjn.cjs');
10
+ var _package = require('./package-KhLqBDX9.cjs');
11
11
 
12
12
  function acpImageBlocks(attachments, supportsImages) {
13
13
  return attachments.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var cuid2 = require('@paralleldrive/cuid2');
4
- var index = require('./index-C6O2vVjm.cjs');
4
+ var index = require('./index-Dv0Q48P3.cjs');
5
5
 
6
6
  function turnOptions(turnId, time) {
7
7
  return turnId ? { turn: turnId, time } : { time };
@@ -1,5 +1,5 @@
1
1
  import { createId } from '@paralleldrive/cuid2';
2
- import { s as streamKeyOf, d as createEnvelope } from './index-DPOa4NhL.mjs';
2
+ import { s as streamKeyOf, d as createEnvelope } from './index-C6Vn5Eac.mjs';
3
3
 
4
4
  function turnOptions(turnId, time) {
5
5
  return turnId ? { turn: turnId, time } : { time };
@@ -1,4 +1,4 @@
1
- import { l as logger } from './logger-BtVhHnD8.mjs';
1
+ import { l as logger } from './logger-BUngm5Xg.mjs';
2
2
 
3
3
  class BasePermissionHandler {
4
4
  pendingRequests = /* @__PURE__ */ new Map();
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-C1GWx3gi.cjs');
3
+ var logger = require('./logger-CphW5nUE.cjs');
4
4
 
5
5
  class BasePermissionHandler {
6
6
  pendingRequests = /* @__PURE__ */ new Map();
@@ -1,6 +1,6 @@
1
1
  import { mkdirSync, renameSync, existsSync, unlinkSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
- import { w as writePrivateFileSync, c as configuration } from './configuration-WMi4idBB.mjs';
3
+ import { w as writePrivateFileSync, c as configuration } from './configuration-PxzEJumr.mjs';
4
4
 
5
5
  const SESSION_MODE_DIR = "session-modes";
6
6
  const ACP_PERMISSION_MODES = ["default", "acceptEdits", "plan", "bypassPermissions"];
@@ -2,7 +2,7 @@
2
2
 
3
3
  var node_fs = require('node:fs');
4
4
  var path = require('node:path');
5
- var configuration = require('./configuration-CMHZnp6G.cjs');
5
+ var configuration = require('./configuration-CYO-kPOS.cjs');
6
6
 
7
7
  const SESSION_MODE_DIR = "session-modes";
8
8
  const ACP_PERMISSION_MODES = ["default", "acceptEdits", "plan", "bypassPermissions"];
@@ -2,14 +2,14 @@
2
2
 
3
3
  var chalk = require('chalk');
4
4
  var os = require('node:os');
5
- var persistence = require('./persistence-BegE7NPa.cjs');
5
+ var persistence = require('./persistence-9BMYspxG.cjs');
6
6
  require('node:fs');
7
- require('./logger-C1GWx3gi.cjs');
7
+ require('./logger-CphW5nUE.cjs');
8
8
  var loginShellEnv = require('./loginShellEnv-BkuYtExZ.cjs');
9
9
  require('node:fs/promises');
10
- require('./configuration-CMHZnp6G.cjs');
10
+ require('./configuration-CYO-kPOS.cjs');
11
11
  require('node:path');
12
- require('./package-SgqTYsjn.cjs');
12
+ require('./package-KhLqBDX9.cjs');
13
13
  require('zod');
14
14
  require('./authRelay-Dy1qU9td.cjs');
15
15
  require('node:crypto');
@@ -1,13 +1,13 @@
1
1
  import chalk from 'chalk';
2
2
  import { homedir } from 'node:os';
3
- import { r as readSettings, u as updateSettings } from './persistence-Cr-wutZ4.mjs';
3
+ import { r as readSettings, u as updateSettings } from './persistence-BFUOHW5h.mjs';
4
4
  import 'node:fs';
5
- import './logger-BtVhHnD8.mjs';
5
+ import './logger-BUngm5Xg.mjs';
6
6
  import { d as describeAgentHome, p as probeLoginShellEnv, r as resolveAgentHomes, e as expandHomePath, A as AGENT_HOME_ENV_NAMES } from './loginShellEnv-Dw8M7tkI.mjs';
7
7
  import 'node:fs/promises';
8
- import './configuration-WMi4idBB.mjs';
8
+ import './configuration-PxzEJumr.mjs';
9
9
  import 'node:path';
10
- import './package-BPPebGQF.mjs';
10
+ import './package-7Ld1YMhh.mjs';
11
11
  import 'zod';
12
12
  import './authRelay-DhQhkBvX.mjs';
13
13
  import 'node:crypto';
@@ -1,22 +1,22 @@
1
1
  'use strict';
2
2
 
3
3
  var axios = require('axios');
4
- var logger = require('./logger-C1GWx3gi.cjs');
5
- var lidState = require('./lidState-Dv2wwFTj.cjs');
4
+ var logger = require('./logger-CphW5nUE.cjs');
5
+ var lidState = require('./lidState-DWGnm2H4.cjs');
6
6
  var node_events = require('node:events');
7
7
  var socket_ioClient = require('socket.io-client');
8
- var pushNotifications = require('./pushNotifications-DaLQUyi0.cjs');
8
+ var pushNotifications = require('./pushNotifications-DI92havG.cjs');
9
9
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
10
10
  var limits = require('./limits-C-a7gr04.cjs');
11
- var time = require('./time-CrwIMHta.cjs');
12
- var configuration = require('./configuration-CMHZnp6G.cjs');
11
+ var time = require('./time-Cjv0zxQO.cjs');
12
+ var configuration = require('./configuration-CYO-kPOS.cjs');
13
13
  var node_crypto = require('node:crypto');
14
- var index = require('./index-C6O2vVjm.cjs');
15
- var registerCommonHandlers = require('./registerCommonHandlers-Cj084Sg7.cjs');
14
+ var index = require('./index-Dv0Q48P3.cjs');
15
+ var registerCommonHandlers = require('./registerCommonHandlers-C7a_dUWs.cjs');
16
16
  var cuid2 = require('@paralleldrive/cuid2');
17
- var sync = require('./sync-D23jbqVa.cjs');
17
+ var sync = require('./sync-Bn-idAoy.cjs');
18
18
  var backgroundTaskActivity = require('./backgroundTaskActivity-CBvUdj39.cjs');
19
- var controlClient = require('./controlClient-C-5qCt8W.cjs');
19
+ var controlClient = require('./controlClient-Bqv5v5OM.cjs');
20
20
  var chalk = require('chalk');
21
21
 
22
22
  async function hmac_sha512(key, data) {
@@ -882,6 +882,7 @@ function isQueuedUserText(body) {
882
882
  return record.role === "user" && record.content?.type === "text" && typeof record.meta?.queuedAt === "number";
883
883
  }
884
884
  function scanUndeliveredQueuedInputs(records, prior) {
885
+ const replayAboveSeq = prior?.replayAboveSeq;
885
886
  const canceled = prior?.canceled ?? /* @__PURE__ */ new Set();
886
887
  const undelivered = [];
887
888
  let reachedBoundary = false;
@@ -900,6 +901,7 @@ function scanUndeliveredQueuedInputs(records, prior) {
900
901
  }
901
902
  continue;
902
903
  }
904
+ if (replayAboveSeq !== void 0 && record.seq > replayAboveSeq) continue;
903
905
  if (isQueuedUserText(record.body) && record.localId && !canceled.has(record.localId)) {
904
906
  undelivered.push(record.localId);
905
907
  }
@@ -1874,7 +1876,7 @@ class ApiSessionClient extends node_events.EventEmitter {
1874
1876
  * session down. Needs no socket; POSTs through the same session-message
1875
1877
  * channel so the web receives it identically to a cancel-button tombstone.
1876
1878
  */
1877
- async cancelUndeliveredQueuedInputs() {
1879
+ async cancelUndeliveredQueuedInputs(opts) {
1878
1880
  const MAX_SCAN_PAGES = 10;
1879
1881
  const canceled = /* @__PURE__ */ new Set();
1880
1882
  const undelivered = [];
@@ -1903,7 +1905,7 @@ class ApiSessionClient extends node_events.EventEmitter {
1903
1905
  }
1904
1906
  return { seq: message.seq, localId: message.localId, body };
1905
1907
  });
1906
- const scan = scanUndeliveredQueuedInputs(records, { canceled });
1908
+ const scan = scanUndeliveredQueuedInputs(records, { canceled, replayAboveSeq: opts?.maxSeq });
1907
1909
  for (const key of scan.canceled) canceled.add(key);
1908
1910
  undelivered.push(...scan.undeliveredLocalKeys);
1909
1911
  reachedBoundary = scan.reachedBoundary;
@@ -2557,6 +2559,12 @@ class OfflineState {
2557
2559
  isOffline() {
2558
2560
  return this.state === "offline";
2559
2561
  }
2562
+ /** B-689: one-line cause of the last failure of `operation` (for exit reasons). */
2563
+ describe(operation) {
2564
+ const f = this.failures.get(operation);
2565
+ if (!f) return void 0;
2566
+ return f.errorCode ? `${f.errorCode} - ${ERROR_DESCRIPTIONS[f.errorCode] || "unknown error"}` : "unknown error";
2567
+ }
2560
2568
  /** Reset for testing - clears all state */
2561
2569
  reset() {
2562
2570
  this.state = "online";
@@ -2941,7 +2949,7 @@ class ApiClient {
2941
2949
  return new ApiSessionClient(this.credential.token, session, opts);
2942
2950
  }
2943
2951
  async machineSyncClient(machine) {
2944
- const { ApiMachineClient } = await Promise.resolve().then(function () { return require('./apiMachine-G6OogT08.cjs'); });
2952
+ const { ApiMachineClient } = await Promise.resolve().then(function () { return require('./apiMachine-DkGRj-Ai.cjs'); });
2945
2953
  return new ApiMachineClient(this.credential.token, machine);
2946
2954
  }
2947
2955
  push() {
@@ -1,20 +1,20 @@
1
1
  import axios from 'axios';
2
- import { l as logger, r as redactLogValue } from './logger-BtVhHnD8.mjs';
3
- import { R as RpcHandlerManager, a as answerSocketRequest, c as connectGuarded, s as socketConnectGuard, d as describeSocketAckDrop, b as safeAck, i as isRateQuotaCode, p as pauseForRateQuota, e as shouldReconnect } from './lidState-Bb8fgXg3.mjs';
2
+ import { l as logger, r as redactLogValue } from './logger-BUngm5Xg.mjs';
3
+ import { R as RpcHandlerManager, a as answerSocketRequest, c as connectGuarded, s as socketConnectGuard, d as describeSocketAckDrop, b as safeAck, i as isRateQuotaCode, p as pauseForRateQuota, e as shouldReconnect } from './lidState-bBrmaQd2.mjs';
4
4
  import { EventEmitter } from 'node:events';
5
5
  import { io } from 'socket.io-client';
6
- import { A as AsyncLock, a as MAX_CHAT_ATTACHMENT_ENCRYPTED_BYTES, U as UserMessageSchema, F as FileEventMessageSchema, P as PushNotificationClient } from './pushNotifications-BdFjDjQe.mjs';
6
+ import { A as AsyncLock, a as MAX_CHAT_ATTACHMENT_ENCRYPTED_BYTES, U as UserMessageSchema, F as FileEventMessageSchema, P as PushNotificationClient } from './pushNotifications-DCiBEVeC.mjs';
7
7
  import { h as decrypt, d as decodeBase64, i as decryptBlob, e as encodeBase64, g as encrypt, l as libsodiumEncryptForPublicKey, j as libsodiumPublicKeyFromSecretKey, k as getRandomBytes } from './authRelay-DhQhkBvX.mjs';
8
8
  import { p as prepareClipboardText, d as prepareClipboardHistoryText } from './limits-DIo7rEBR.mjs';
9
- import { b as backoff, d as delay, e as exponentialBackoffDelay } from './time-65DcU6Jx.mjs';
10
- import { c as configuration } from './configuration-WMi4idBB.mjs';
9
+ import { b as backoff, d as delay, e as exponentialBackoffDelay } from './time-D3ETL7Jb.mjs';
10
+ import { c as configuration } from './configuration-PxzEJumr.mjs';
11
11
  import { createHmac, randomUUID } from 'node:crypto';
12
- import { d as createEnvelope, s as streamKeyOf, R as ReleaseDrainNoticeSchema, t as RelayAssignmentResponseSchema } from './index-DPOa4NhL.mjs';
13
- import { r as registerCommonHandlers } from './registerCommonHandlers-BAlP7SGc.mjs';
12
+ import { d as createEnvelope, s as streamKeyOf, R as ReleaseDrainNoticeSchema, t as RelayAssignmentResponseSchema } from './index-C6Vn5Eac.mjs';
13
+ import { r as registerCommonHandlers } from './registerCommonHandlers-CTkCvjxt.mjs';
14
14
  import { createId } from '@paralleldrive/cuid2';
15
- import { I as InvalidateSync } from './sync-CSe0Rf45.mjs';
16
- import { B as BackgroundTaskReporter } from './backgroundTaskActivity-BVwJBl02.mjs';
17
- import { k as notifyDaemonTurnEvent, m as notifyDaemonBackgroundTasks } from './controlClient-BWUJrj3t.mjs';
15
+ import { I as InvalidateSync } from './sync-BvVhDO40.mjs';
16
+ import { B as BackgroundTaskReporter } from './backgroundTaskActivity-8PdPxrvy.mjs';
17
+ import { k as notifyDaemonTurnEvent, m as notifyDaemonBackgroundTasks } from './controlClient-DoeYovwP.mjs';
18
18
  import chalk from 'chalk';
19
19
 
20
20
  async function hmac_sha512(key, data) {
@@ -880,6 +880,7 @@ function isQueuedUserText(body) {
880
880
  return record.role === "user" && record.content?.type === "text" && typeof record.meta?.queuedAt === "number";
881
881
  }
882
882
  function scanUndeliveredQueuedInputs(records, prior) {
883
+ const replayAboveSeq = prior?.replayAboveSeq;
883
884
  const canceled = prior?.canceled ?? /* @__PURE__ */ new Set();
884
885
  const undelivered = [];
885
886
  let reachedBoundary = false;
@@ -898,6 +899,7 @@ function scanUndeliveredQueuedInputs(records, prior) {
898
899
  }
899
900
  continue;
900
901
  }
902
+ if (replayAboveSeq !== void 0 && record.seq > replayAboveSeq) continue;
901
903
  if (isQueuedUserText(record.body) && record.localId && !canceled.has(record.localId)) {
902
904
  undelivered.push(record.localId);
903
905
  }
@@ -1872,7 +1874,7 @@ class ApiSessionClient extends EventEmitter {
1872
1874
  * session down. Needs no socket; POSTs through the same session-message
1873
1875
  * channel so the web receives it identically to a cancel-button tombstone.
1874
1876
  */
1875
- async cancelUndeliveredQueuedInputs() {
1877
+ async cancelUndeliveredQueuedInputs(opts) {
1876
1878
  const MAX_SCAN_PAGES = 10;
1877
1879
  const canceled = /* @__PURE__ */ new Set();
1878
1880
  const undelivered = [];
@@ -1901,7 +1903,7 @@ class ApiSessionClient extends EventEmitter {
1901
1903
  }
1902
1904
  return { seq: message.seq, localId: message.localId, body };
1903
1905
  });
1904
- const scan = scanUndeliveredQueuedInputs(records, { canceled });
1906
+ const scan = scanUndeliveredQueuedInputs(records, { canceled, replayAboveSeq: opts?.maxSeq });
1905
1907
  for (const key of scan.canceled) canceled.add(key);
1906
1908
  undelivered.push(...scan.undeliveredLocalKeys);
1907
1909
  reachedBoundary = scan.reachedBoundary;
@@ -2555,6 +2557,12 @@ class OfflineState {
2555
2557
  isOffline() {
2556
2558
  return this.state === "offline";
2557
2559
  }
2560
+ /** B-689: one-line cause of the last failure of `operation` (for exit reasons). */
2561
+ describe(operation) {
2562
+ const f = this.failures.get(operation);
2563
+ if (!f) return void 0;
2564
+ return f.errorCode ? `${f.errorCode} - ${ERROR_DESCRIPTIONS[f.errorCode] || "unknown error"}` : "unknown error";
2565
+ }
2558
2566
  /** Reset for testing - clears all state */
2559
2567
  reset() {
2560
2568
  this.state = "online";
@@ -2939,7 +2947,7 @@ class ApiClient {
2939
2947
  return new ApiSessionClient(this.credential.token, session, opts);
2940
2948
  }
2941
2949
  async machineSyncClient(machine) {
2942
- const { ApiMachineClient } = await import('./apiMachine-DJkTEiqy.mjs');
2950
+ const { ApiMachineClient } = await import('./apiMachine-CwGEhQDT.mjs');
2943
2951
  return new ApiMachineClient(this.credential.token, machine);
2944
2952
  }
2945
2953
  push() {
@@ -1,42 +1,42 @@
1
1
  import { io } from 'socket.io-client';
2
2
  import { a as webPanelsSignature } from './webPanels-B2_C2-3g.mjs';
3
- import { l as logger } from './logger-BtVhHnD8.mjs';
4
- import { R as RpcHandlerManager, i as isRateQuotaCode, p as pauseForRateQuota, s as socketConnectGuard, c as connectGuarded, a as answerSocketRequest, e as shouldReconnect, d as describeSocketAckDrop } from './lidState-Bb8fgXg3.mjs';
5
- import { i as isClaudeSessionId, s as stableVersion, a as sanitizeTagList, p as pickMirrorForTerminal, l as liveSnapshotChanged, b as sanitizeLiveSnapshot, c as serializeLiveSnapshot, r as registerWorktreeHandlers, d as configureWorktreeService, e as summarizeSpawnSessionForLog, f as parseMirrorSendParams } from './mirrorProtocol-BwYibqry.mjs';
6
- import { c as configuration } from './configuration-WMi4idBB.mjs';
3
+ import { l as logger } from './logger-BUngm5Xg.mjs';
4
+ import { R as RpcHandlerManager, i as isRateQuotaCode, p as pauseForRateQuota, s as socketConnectGuard, c as connectGuarded, a as answerSocketRequest, e as shouldReconnect, d as describeSocketAckDrop } from './lidState-bBrmaQd2.mjs';
5
+ import { M as ModelConfigError, i as isClaudeSessionId, s as stableVersion, a as sanitizeTagList, p as pickMirrorForTerminal, l as liveSnapshotChanged, b as sanitizeLiveSnapshot, c as serializeLiveSnapshot, r as registerWorktreeHandlers, d as configureWorktreeService, e as summarizeSpawnSessionForLog, f as parseMirrorSendParams } from './mirrorProtocol-BR4luBC0.mjs';
6
+ import { c as configuration } from './configuration-PxzEJumr.mjs';
7
7
  import { w as withCurrentCliUpdateState } from './cliUpdate-Y34VGe9Y.mjs';
8
- import { r as registerCommonHandlers } from './registerCommonHandlers-BAlP7SGc.mjs';
8
+ import { r as registerCommonHandlers } from './registerCommonHandlers-CTkCvjxt.mjs';
9
9
  import { stat, readdir, lstat, open, readFile, rm, mkdir, chmod, writeFile, rename } from 'node:fs/promises';
10
10
  import { join, isAbsolute, resolve } from 'node:path';
11
11
  import os, { homedir } from 'node:os';
12
12
  import { spawn, execFile, spawnSync } from 'node:child_process';
13
- import { r as readSettings, c as readPersistedSessions, o as readTrackedClaudeSessionIds, p as readTrackedCodexThreadIds } from './persistence-Cr-wutZ4.mjs';
13
+ import { r as readSettings, c as readPersistedSessions, o as readTrackedClaudeSessionIds, p as readTrackedCodexThreadIds } from './persistence-BFUOHW5h.mjs';
14
14
  import { e as encodeBase64, g as encrypt, h as decrypt, d as decodeBase64 } from './authRelay-DhQhkBvX.mjs';
15
15
  import { p as prepareClipboardText, d as prepareClipboardHistoryText } from './limits-DIo7rEBR.mjs';
16
- import { b as backoff, d as delay } from './time-65DcU6Jx.mjs';
16
+ import { b as backoff, d as delay } from './time-D3ETL7Jb.mjs';
17
17
  import * as pty from 'node-pty';
18
18
  import { a as attachStartupCommand, v as validateTerminalTags, d as deriveAutoTitle, T as TMUX_SESSION_ID_RE, i as isSafeTmuxSessionName, b as isVhSessionName, U as USER_SESSIONS_FORMAT, p as parseUserSessions, L as LIST_SESSIONS_FORMAT, c as parseSessionListLine, e as LIST_FIELD_SEP, s as sendToVhTerminal } from './terminals-Dlg0x3nY.mjs';
19
19
  import { t as tmuxArgs, V as VH_TMUX_SOCKET_ENV, a as scrubTmuxClientEnv } from './tmuxSocket-B8Yx20sT.mjs';
20
- import { locateClaudeConversation, refreshAgentHomes } from './index-CdQI0C9p.mjs';
20
+ import { locateClaudeConversation, refreshAgentHomes } from './index-Bsvbgh9e.mjs';
21
21
  import { randomBytes } from 'node:crypto';
22
22
  import { readdirSync, unlinkSync, existsSync, mkdirSync, writeFileSync, readFileSync, statSync, chmodSync, renameSync, rmSync, accessSync, constants } from 'node:fs';
23
23
  import axios from 'axios';
24
24
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
25
25
  import { a as isValidTerminalId } from './ids-DU6sLx4C.mjs';
26
26
  import { d as detectCLIAvailability } from './detectCLI-CSGMlV51.mjs';
27
- import { d as detectResumeSupport } from './localHappyAgentAuth-NEU7fax7.mjs';
27
+ import { d as detectResumeSupport } from './localHappyAgentAuth-Dn1jYDpt.mjs';
28
28
  import { g as getProjectPath, a as getClaudeProjectsRoot } from './path-D2wdaNSk.mjs';
29
29
  import { i as isVeryHappyOneShotPrompt } from './oneShotPrompts-DT4p6RNd.mjs';
30
- import { f as forkSession, F as ForkSourceMissingError, d as discardForkedSession, l as listClaudeRewindPoints, a as forkAndTruncateSession, b as ForkTruncateUuidNotFoundError, c as forkBeforeUserMessage } from './claudeSessionFork-BihfD0Ik.mjs';
31
- import { C as CodexAppServerClient } from './codexAppServerClient-BK3zra_1.mjs';
32
- import { v as RelayCandidatesResponseSchema, t as RelayAssignmentResponseSchema, R as ReleaseDrainNoticeSchema } from './index-DPOa4NhL.mjs';
30
+ import { f as forkSession, F as ForkSourceMissingError, d as discardForkedSession, l as listClaudeRewindPoints, a as forkAndTruncateSession, b as ForkTruncateUuidNotFoundError, c as forkBeforeUserMessage } from './claudeSessionFork-GAVWhiKG.mjs';
31
+ import { C as CodexAppServerClient } from './codexAppServerClient-CO4G6OS4.mjs';
32
+ import { v as RelayCandidatesResponseSchema, t as RelayAssignmentResponseSchema, R as ReleaseDrainNoticeSchema } from './index-C6Vn5Eac.mjs';
33
33
  import { f as forkCodexThread, C as CodexForkRewindPointNotFoundError, l as listCodexRewindPoints, a as forkCodexBeforeUserMessage } from './codexThreadFork-R76RU5H0.mjs';
34
- import { p as planRateLimitWrite, m as mergeRateLimitReports } from './rateLimitWindows-CuEqk_0g.mjs';
34
+ import { p as planRateLimitWrite, m as mergeRateLimitReports } from './rateLimitWindows-BkfuUB1a.mjs';
35
35
  import 'chalk';
36
36
  import 'node:util';
37
37
  import 'os';
38
38
  import 'child_process';
39
- import './package-BPPebGQF.mjs';
39
+ import './package-7Ld1YMhh.mjs';
40
40
  import 'util';
41
41
  import 'fs/promises';
42
42
  import 'crypto';
@@ -346,6 +346,21 @@ function registerTodoHandlers(manager) {
346
346
  });
347
347
  }
348
348
 
349
+ const obj = (value) => value && typeof value === "object" ? value : {};
350
+ async function guarded(fn) {
351
+ try {
352
+ return await fn();
353
+ } catch (error) {
354
+ if (error instanceof ModelConfigError) return { error: error.message, code: error.code };
355
+ return { error: error instanceof Error ? error.message : "Unknown error", code: "internal" };
356
+ }
357
+ }
358
+ function registerModelConfigHandlers(rpc, service) {
359
+ rpc.registerHandler("model-config-read", (params) => guarded(() => service.read(obj(params))));
360
+ rpc.registerHandler("model-config-apply", (params) => guarded(() => service.apply(obj(params))));
361
+ rpc.registerHandler("model-config-restore", (params) => guarded(() => service.restore(obj(params))));
362
+ }
363
+
349
364
  function codingAgentFromProcessTree(panePid, snapshot) {
350
365
  const rows = snapshot.split("\n").flatMap((line) => {
351
366
  const m = line.trim().match(/^(\d+)\s+(\d+)\s+(.+)$/);
@@ -10702,6 +10717,10 @@ class ApiMachineClient {
10702
10717
  return { claudeAuth };
10703
10718
  });
10704
10719
  }
10720
+ /** B-688 machine RPCs `model-config-*` (modules/modelConfig/modelConfigRpc.ts). */
10721
+ setModelConfigService(service) {
10722
+ registerModelConfigHandlers(this.rpcHandlerManager, service);
10723
+ }
10705
10724
  /**
10706
10725
  * B-506: the five `sessions.*` methods a CLI on ANOTHER machine of this
10707
10726
  * account calls to read / message sessions this daemon spawned. Plaintext
@@ -2,43 +2,43 @@
2
2
 
3
3
  var socket_ioClient = require('socket.io-client');
4
4
  var webPanels = require('./webPanels-FCgFKvVe.cjs');
5
- var logger = require('./logger-C1GWx3gi.cjs');
6
- var lidState = require('./lidState-Dv2wwFTj.cjs');
7
- var mirrorProtocol = require('./mirrorProtocol-DEy2g1CB.cjs');
8
- var configuration = require('./configuration-CMHZnp6G.cjs');
5
+ var logger = require('./logger-CphW5nUE.cjs');
6
+ var lidState = require('./lidState-DWGnm2H4.cjs');
7
+ var mirrorProtocol = require('./mirrorProtocol-HKPivs5o.cjs');
8
+ var configuration = require('./configuration-CYO-kPOS.cjs');
9
9
  var cliUpdate = require('./cliUpdate-DsKXPFYp.cjs');
10
- var registerCommonHandlers = require('./registerCommonHandlers-Cj084Sg7.cjs');
10
+ var registerCommonHandlers = require('./registerCommonHandlers-C7a_dUWs.cjs');
11
11
  var promises = require('node:fs/promises');
12
12
  var path = require('node:path');
13
13
  var os = require('node:os');
14
14
  var node_child_process = require('node:child_process');
15
- var persistence = require('./persistence-BegE7NPa.cjs');
15
+ var persistence = require('./persistence-9BMYspxG.cjs');
16
16
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
17
17
  var limits = require('./limits-C-a7gr04.cjs');
18
- var time = require('./time-CrwIMHta.cjs');
18
+ var time = require('./time-Cjv0zxQO.cjs');
19
19
  var pty = require('node-pty');
20
20
  var terminals = require('./terminals-B_bfC9c2.cjs');
21
21
  var tmuxSocket = require('./tmuxSocket-D-Xt6Vn-.cjs');
22
- var index = require('./index-B0UjHlAe.cjs');
22
+ var index = require('./index-C64Ufj4D.cjs');
23
23
  var node_crypto = require('node:crypto');
24
24
  var node_fs = require('node:fs');
25
25
  var axios = require('axios');
26
- var projectPath = require('./projectPath-ChLhdOyt.cjs');
26
+ var projectPath = require('./projectPath-C3ioB4Bu.cjs');
27
27
  var ids = require('./ids-B6ZC0HGt.cjs');
28
- var detectCLI = require('./detectCLI-DR9ZaN6B.cjs');
29
- var localHappyAgentAuth = require('./localHappyAgentAuth-DjYvkXvV.cjs');
28
+ var detectCLI = require('./detectCLI-BuYR_Qxe.cjs');
29
+ var localHappyAgentAuth = require('./localHappyAgentAuth-DZHQnIW9.cjs');
30
30
  var path$1 = require('./path-B7zW-WwE.cjs');
31
31
  var oneShotPrompts = require('./oneShotPrompts-CL0dip9C.cjs');
32
- var claudeSessionFork = require('./claudeSessionFork-DiSMYerV.cjs');
33
- var codexAppServerClient = require('./codexAppServerClient-Dt5zxrun.cjs');
34
- var index$1 = require('./index-C6O2vVjm.cjs');
32
+ var claudeSessionFork = require('./claudeSessionFork-Be16vzGc.cjs');
33
+ var codexAppServerClient = require('./codexAppServerClient-PE-12AsW.cjs');
34
+ var index$1 = require('./index-Dv0Q48P3.cjs');
35
35
  var codexThreadFork = require('./codexThreadFork-DNekT4nQ.cjs');
36
- var rateLimitWindows = require('./rateLimitWindows-Dj_8voBK.cjs');
36
+ var rateLimitWindows = require('./rateLimitWindows-YRIYVdo4.cjs');
37
37
  require('chalk');
38
38
  require('node:util');
39
39
  require('os');
40
40
  require('child_process');
41
- require('./package-SgqTYsjn.cjs');
41
+ require('./package-KhLqBDX9.cjs');
42
42
  require('util');
43
43
  require('fs/promises');
44
44
  require('crypto');
@@ -367,6 +367,21 @@ function registerTodoHandlers(manager) {
367
367
  });
368
368
  }
369
369
 
370
+ const obj = (value) => value && typeof value === "object" ? value : {};
371
+ async function guarded(fn) {
372
+ try {
373
+ return await fn();
374
+ } catch (error) {
375
+ if (error instanceof mirrorProtocol.ModelConfigError) return { error: error.message, code: error.code };
376
+ return { error: error instanceof Error ? error.message : "Unknown error", code: "internal" };
377
+ }
378
+ }
379
+ function registerModelConfigHandlers(rpc, service) {
380
+ rpc.registerHandler("model-config-read", (params) => guarded(() => service.read(obj(params))));
381
+ rpc.registerHandler("model-config-apply", (params) => guarded(() => service.apply(obj(params))));
382
+ rpc.registerHandler("model-config-restore", (params) => guarded(() => service.restore(obj(params))));
383
+ }
384
+
370
385
  function codingAgentFromProcessTree(panePid, snapshot) {
371
386
  const rows = snapshot.split("\n").flatMap((line) => {
372
387
  const m = line.trim().match(/^(\d+)\s+(\d+)\s+(.+)$/);
@@ -10723,6 +10738,10 @@ class ApiMachineClient {
10723
10738
  return { claudeAuth };
10724
10739
  });
10725
10740
  }
10741
+ /** B-688 machine RPCs `model-config-*` (modules/modelConfig/modelConfigRpc.ts). */
10742
+ setModelConfigService(service) {
10743
+ registerModelConfigHandlers(this.rpcHandlerManager, service);
10744
+ }
10726
10745
  /**
10727
10746
  * B-506: the five `sessions.*` methods a CLI on ANOTHER machine of this
10728
10747
  * account calls to read / message sessions this daemon spawned. Plaintext
@@ -3,8 +3,8 @@
3
3
  var node_crypto = require('node:crypto');
4
4
  var promises = require('node:fs/promises');
5
5
  var path = require('node:path');
6
- var pushNotifications = require('./pushNotifications-DaLQUyi0.cjs');
7
- var configuration = require('./configuration-CMHZnp6G.cjs');
6
+ var pushNotifications = require('./pushNotifications-DI92havG.cjs');
7
+ var configuration = require('./configuration-CYO-kPOS.cjs');
8
8
 
9
9
  const CLAUDE_ATTACHMENT_KINDS = [
10
10
  "image/jpeg",
@@ -1,8 +1,8 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { writeFile, rename, unlink } from 'node:fs/promises';
3
3
  import { join, basename } from 'node:path';
4
- import { M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES } from './pushNotifications-BdFjDjQe.mjs';
5
- import { e as ensurePrivateDirectory, h as hardenPrivateFile } from './configuration-WMi4idBB.mjs';
4
+ import { M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES } from './pushNotifications-DCiBEVeC.mjs';
5
+ import { e as ensurePrivateDirectory, h as hardenPrivateFile } from './configuration-PxzEJumr.mjs';
6
6
 
7
7
  const CLAUDE_ATTACHMENT_KINDS = [
8
8
  "image/jpeg",
@@ -1,12 +1,12 @@
1
1
  import { e as encodeBase64, c as credentialRelayProblem, f as encodeBase64Url, d as decodeBase64 } from './authRelay-DhQhkBvX.mjs';
2
- import { c as configuration } from './configuration-WMi4idBB.mjs';
2
+ import { c as configuration } from './configuration-PxzEJumr.mjs';
3
3
  import { randomUUID, randomBytes } from 'node:crypto';
4
4
  import tweetnacl from 'tweetnacl';
5
5
  import axios from 'axios';
6
- import { d as delay } from './time-65DcU6Jx.mjs';
7
- import { g as readCredentials, k as readSettingsOutcome, u as updateSettings, w as writeCredentialsLegacy, m as writeCredentialsDataKey } from './persistence-Cr-wutZ4.mjs';
8
- import { o as openBrowser } from './browser-CSYum7xH.mjs';
9
- import { l as logger } from './logger-BtVhHnD8.mjs';
6
+ import { d as delay } from './time-D3ETL7Jb.mjs';
7
+ import { g as readCredentials, k as readSettingsOutcome, u as updateSettings, w as writeCredentialsLegacy, m as writeCredentialsDataKey } from './persistence-BFUOHW5h.mjs';
8
+ import { o as openBrowser } from './browser-DUNetFT4.mjs';
9
+ import { l as logger } from './logger-BUngm5Xg.mjs';
10
10
 
11
11
  function generateWebAuthUrl(publicKey) {
12
12
  const publicKeyBase64 = encodeBase64(publicKey, "base64url");
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
3
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
4
- var configuration = require('./configuration-CMHZnp6G.cjs');
4
+ var configuration = require('./configuration-CYO-kPOS.cjs');
5
5
  var node_crypto = require('node:crypto');
6
6
  var tweetnacl = require('tweetnacl');
7
7
  var axios = require('axios');
8
- var time = require('./time-CrwIMHta.cjs');
9
- var persistence = require('./persistence-BegE7NPa.cjs');
10
- var browser = require('./browser-BohJK12g.cjs');
11
- var logger = require('./logger-C1GWx3gi.cjs');
8
+ var time = require('./time-Cjv0zxQO.cjs');
9
+ var persistence = require('./persistence-9BMYspxG.cjs');
10
+ var browser = require('./browser-DZ6qRtfH.cjs');
11
+ var logger = require('./logger-CphW5nUE.cjs');
12
12
 
13
13
  function generateWebAuthUrl(publicKey) {
14
14
  const publicKeyBase64 = authRelay.encodeBase64(publicKey, "base64url");
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var persistence = require('./persistence-BegE7NPa.cjs');
5
- var auth = require('./auth-D6bBUwZa.cjs');
6
- var configuration = require('./configuration-CMHZnp6G.cjs');
4
+ var persistence = require('./persistence-9BMYspxG.cjs');
5
+ var auth = require('./auth-CBXnm-Mj.cjs');
6
+ var configuration = require('./configuration-CYO-kPOS.cjs');
7
7
  var node_fs = require('node:fs');
8
8
  var node_readline = require('node:readline');
9
- var controlClient = require('./controlClient-C-5qCt8W.cjs');
10
- var logger = require('./logger-C1GWx3gi.cjs');
9
+ var controlClient = require('./controlClient-Bqv5v5OM.cjs');
10
+ var logger = require('./logger-CphW5nUE.cjs');
11
11
  var os = require('node:os');
12
12
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
13
13
  require('node:fs/promises');
@@ -15,11 +15,11 @@ require('zod');
15
15
  require('node:crypto');
16
16
  require('tweetnacl');
17
17
  require('axios');
18
- require('./time-CrwIMHta.cjs');
19
- require('./browser-BohJK12g.cjs');
18
+ require('./time-Cjv0zxQO.cjs');
19
+ require('./browser-DZ6qRtfH.cjs');
20
20
  require('open');
21
21
  require('node:path');
22
- require('./package-SgqTYsjn.cjs');
22
+ require('./package-KhLqBDX9.cjs');
23
23
  require('node:util');
24
24
 
25
25
  function localMachineIdentityStatus(machineId) {
@@ -1,11 +1,11 @@
1
1
  import chalk from 'chalk';
2
- import { g as readCredentials, r as readSettings, h as clearCredentials, i as clearMachineId } from './persistence-Cr-wutZ4.mjs';
3
- import { a as authAndSetupMachineIfNeeded } from './auth-BS6PaOOG.mjs';
4
- import { c as configuration } from './configuration-WMi4idBB.mjs';
2
+ import { g as readCredentials, r as readSettings, h as clearCredentials, i as clearMachineId } from './persistence-BFUOHW5h.mjs';
3
+ import { a as authAndSetupMachineIfNeeded } from './auth-BG1DY0gj.mjs';
4
+ import { c as configuration } from './configuration-PxzEJumr.mjs';
5
5
  import { existsSync, rmSync } from 'node:fs';
6
6
  import { createInterface } from 'node:readline';
7
- import { a as checkIfDaemonRunningAndCleanupStaleState, b as stopDaemon } from './controlClient-BWUJrj3t.mjs';
8
- import { l as logger } from './logger-BtVhHnD8.mjs';
7
+ import { a as checkIfDaemonRunningAndCleanupStaleState, s as stopDaemon } from './controlClient-DoeYovwP.mjs';
8
+ import { l as logger } from './logger-BUngm5Xg.mjs';
9
9
  import os from 'node:os';
10
10
  import { c as credentialRelayProblem } from './authRelay-DhQhkBvX.mjs';
11
11
  import 'node:fs/promises';
@@ -13,11 +13,11 @@ import 'zod';
13
13
  import 'node:crypto';
14
14
  import 'tweetnacl';
15
15
  import 'axios';
16
- import './time-65DcU6Jx.mjs';
17
- import './browser-CSYum7xH.mjs';
16
+ import './time-D3ETL7Jb.mjs';
17
+ import './browser-DUNetFT4.mjs';
18
18
  import 'open';
19
19
  import 'node:path';
20
- import './package-BPPebGQF.mjs';
20
+ import './package-7Ld1YMhh.mjs';
21
21
  import 'node:util';
22
22
 
23
23
  function localMachineIdentityStatus(machineId) {