very-happy-cli 0.2.187 → 0.2.189

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 (196) hide show
  1. package/dist/{AcpBackend-B2-ReWTo.cjs → AcpBackend-DRPJ2g9G.cjs} +3 -3
  2. package/dist/{AcpBackend-C4Emg-H3.mjs → AcpBackend-fj16v_cf.mjs} +3 -3
  3. package/dist/{AcpSessionManager-Nard_zFS.mjs → AcpSessionManager-BZPmUDL5.mjs} +4 -4
  4. package/dist/{AcpSessionManager-DR4-oZCz.cjs → AcpSessionManager-DM-KKg6v.cjs} +4 -4
  5. package/dist/{BasePermissionHandler-Bk9DmVZH.mjs → BasePermissionHandler-CVtH-snr.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-CZ19WzsP.cjs → BasePermissionHandler-DjM16uJz.cjs} +1 -1
  7. package/dist/{acpSessionResume-Hto_b8MK.cjs → acpSessionResume-2BTMsB7_.cjs} +1 -1
  8. package/dist/{acpSessionResume-DPSfMe7r.mjs → acpSessionResume-Dxl1LRAT.mjs} +1 -1
  9. package/dist/{agentHome-4-odnrAk.mjs → agentHome-CHctmMzZ.mjs} +4 -4
  10. package/dist/{agentHome-Mveyfa24.cjs → agentHome-W17n1gnH.cjs} +4 -4
  11. package/dist/{api-cVvbFZVK.mjs → api-B0yN68XH.mjs} +10 -10
  12. package/dist/{api-DVEzYcoy.cjs → api-BDuuyys8.cjs} +10 -10
  13. package/dist/{apiMachine-Bd1C_JN6.cjs → apiMachine-iddD-F19.cjs} +14 -14
  14. package/dist/{apiMachine-M7qY1izH.mjs → apiMachine-mc9CsKuS.mjs} +14 -14
  15. package/dist/{attachmentContent-D8hViGiA.cjs → attachmentContent-Cc5b7TPr.cjs} +2 -2
  16. package/dist/{attachmentContent-NNF-Eo4O.mjs → attachmentContent-CcIdMfAx.mjs} +2 -2
  17. package/dist/{auth-BHw8be0X.cjs → auth-B7tVmyfX.cjs} +8 -8
  18. package/dist/{auth-BCHL8Fx5.mjs → auth-CyrVvWHF.mjs} +5 -5
  19. package/dist/{auth-CKNEKwEV.mjs → auth-DNAgkUkB.mjs} +8 -8
  20. package/dist/{auth-b_1h0677.cjs → auth-DQKSpaEf.cjs} +5 -5
  21. package/dist/{auto-D716QYa3.mjs → auto-BklCipw1.mjs} +18 -17
  22. package/dist/{auto-Da4rCLal.cjs → auto-CetlumDo.cjs} +18 -17
  23. package/dist/{bootstrap-j2RuoHVy.cjs → bootstrap-CDY-Vz8q.cjs} +2 -2
  24. package/dist/{bootstrap-CndcegDb.mjs → bootstrap-DfXwkUQb.mjs} +2 -2
  25. package/dist/{browser-DIYTnD_T.cjs → browser-D1yzC0Tu.cjs} +1 -1
  26. package/dist/{browser-CLsM513o.mjs → browser-vb0k1zfI.mjs} +1 -1
  27. package/dist/{claudeLocal-C_uUbEO_.cjs → claudeLocal-2dJIiTIq.cjs} +5 -5
  28. package/dist/{claudeLocal-3HbTx7K-.mjs → claudeLocal-Bid_rC_v.mjs} +5 -5
  29. package/dist/{claudeLocalLauncher-DXh2chq3.mjs → claudeLocalLauncher-5pzpETxd.mjs} +10 -10
  30. package/dist/{claudeLocalLauncher-BxWouVYk.cjs → claudeLocalLauncher-Jm5oQX5Z.cjs} +10 -10
  31. package/dist/{claudeSessionFork-CsU96yXX.cjs → claudeSessionFork-DsbcuDEJ.cjs} +1 -1
  32. package/dist/{claudeSessionFork-B4olbwfj.mjs → claudeSessionFork-DzecSBO4.mjs} +1 -1
  33. package/dist/{client-C8w9aQYe.mjs → client-B161HwAk.mjs} +2 -2
  34. package/dist/{client-CCy72Phz.cjs → client-BNmFaRXZ.cjs} +4 -4
  35. package/dist/{client-D8p1YjVt.mjs → client-C9Ecbtko.mjs} +4 -4
  36. package/dist/{client-Zqg7DXHl.mjs → client-CvjjadIE.mjs} +2 -2
  37. package/dist/{client-CWSfPlGD.cjs → client-D0aYWt53.cjs} +2 -2
  38. package/dist/{client-q1aNOKgy.cjs → client-DIfxYk7B.cjs} +2 -2
  39. package/dist/codex/happyMcpStdioBridge.cjs +17 -16
  40. package/dist/codex/happyMcpStdioBridge.mjs +17 -16
  41. package/dist/{codexAppServerClient-Csc-XsRV.mjs → codexAppServerClient-BlVmpjR-.mjs} +63 -5
  42. package/dist/{codexAppServerClient-g8npaIU9.cjs → codexAppServerClient-CO9f4Jr8.cjs} +63 -5
  43. package/dist/{codexCommand-BV8pTAtv.cjs → codexCommand-BfoRP6E9.cjs} +189 -68
  44. package/dist/{codexCommand-BS-foS_R.mjs → codexCommand-CAMR4g5o.mjs} +188 -67
  45. package/dist/{codexTermination-lOO15mt2.mjs → codexTermination-BvGlN02_.mjs} +1 -1
  46. package/dist/{codexTermination-B5WgZAWO.cjs → codexTermination-IrLZQzKC.cjs} +1 -1
  47. package/dist/{config-BOnZRJIG.cjs → config-BGFqQGvh.cjs} +3 -3
  48. package/dist/{config-Ba5ufl-D.mjs → config-CtMgGPvf.mjs} +3 -3
  49. package/dist/{configuration-8EAa2X9P.mjs → configuration-1FabKklB.mjs} +1 -1
  50. package/dist/{configuration-CAfdO4IC.cjs → configuration-C0ctLGW2.cjs} +1 -1
  51. package/dist/{connect-BHWHNe54.mjs → connect-0lSugpjf.mjs} +13 -13
  52. package/dist/{connect-2hWuvxRM.cjs → connect-DSw-2f52.cjs} +13 -13
  53. package/dist/{context-B-jybQhf.mjs → context-BgxbXWKS.mjs} +1 -1
  54. package/dist/{context-BtCz06PX.cjs → context-D-hEk5pC.cjs} +1 -1
  55. package/dist/{controlClient-O-vf2MkJ.mjs → controlClient-DwNnNAUx.mjs} +4 -4
  56. package/dist/{controlClient-mH9AxBwT.cjs → controlClient-F7hAEEy2.cjs} +3 -3
  57. package/dist/{createSessionMetadata-HlzlfP0U.mjs → createSessionMetadata-CG6Klinp.mjs} +2 -2
  58. package/dist/{createSessionMetadata-Bcn7b8QB.cjs → createSessionMetadata-DezS33OM.cjs} +2 -2
  59. package/dist/{defaultPermissionMode-BN3PdltF.cjs → defaultPermissionMode-5EvgRq38.cjs} +2 -2
  60. package/dist/{defaultPermissionMode-BPDeX4S8.mjs → defaultPermissionMode-e2bIIJG4.mjs} +2 -2
  61. package/dist/{deterministicJson-CruOxFA6.mjs → deterministicJson-BMwgK21e.mjs} +13 -13
  62. package/dist/{deterministicJson-D9pZQhU9.cjs → deterministicJson-D0LU_XbO.cjs} +13 -13
  63. package/dist/{doctor-BNhLBBTK.mjs → doctor-D16hySse.mjs} +7 -7
  64. package/dist/{doctor-lHD1YZH6.cjs → doctor-wVNvRarN.cjs} +7 -7
  65. package/dist/{downloadTarget-ByTxs_N5.mjs → downloadTarget-C6tqaXGm.mjs} +6 -6
  66. package/dist/{downloadTarget-BhkQxTa8.cjs → downloadTarget-aNcCxVRL.cjs} +6 -6
  67. package/dist/{ensureDaemonRunning-BiCK6RiS.cjs → ensureDaemonRunning-CIghxgDR.cjs} +5 -5
  68. package/dist/{ensureDaemonRunning-Cv0AMaHK.mjs → ensureDaemonRunning-DZq8bvsp.mjs} +5 -5
  69. package/dist/{handleResumeCommand-Cy_KW0LN.mjs → handleResumeCommand-BNnD7EuD.mjs} +5 -5
  70. package/dist/{handleResumeCommand-WB4VDeKk.cjs → handleResumeCommand-CMUTygsm.cjs} +5 -5
  71. package/dist/{index-BpWESchl.cjs → index-4TpmBb2Q.cjs} +3 -3
  72. package/dist/{index-Vtcax4oD.cjs → index-B81qV_F_.cjs} +4 -4
  73. package/dist/{index-CVMbboXv.mjs → index-BCQr-5Ei.mjs} +4 -4
  74. package/dist/{index-BumVulwx.cjs → index-BOe6dKnL.cjs} +215 -18
  75. package/dist/{index-CdOz1uDl.mjs → index-BuiG8hmg.mjs} +94 -45
  76. package/dist/{index-BpSpw6jG.mjs → index-CKd20r1W.mjs} +3 -3
  77. package/dist/{index-B44ft-m4.cjs → index-CnzsOD19.cjs} +93 -44
  78. package/dist/{index-Bcp-PEGc.cjs → index-De02DNu5.cjs} +4 -4
  79. package/dist/{index-lWXWV0H2.mjs → index-Df0bc_et.mjs} +4 -4
  80. package/dist/{index-B9f1vKcC.mjs → index-WKyN-bNy.mjs} +212 -17
  81. package/dist/index.cjs +2 -2
  82. package/dist/index.mjs +2 -2
  83. package/dist/{install-mK93DJ6L.mjs → install-23ehAdTD.mjs} +3 -3
  84. package/dist/{install-DdRVv9IS.cjs → install-DNbIEJUk.cjs} +3 -3
  85. package/dist/lib.cjs +12 -12
  86. package/dist/lib.d.cts +14 -0
  87. package/dist/lib.d.mts +14 -0
  88. package/dist/lib.mjs +12 -12
  89. package/dist/{lidState-XyjQaZtU.cjs → lidState-B4dHJCeS.cjs} +1 -1
  90. package/dist/{lidState-LtdUCXi-.mjs → lidState-q5Its2Hm.mjs} +1 -1
  91. package/dist/{localHappyAgentAuth-C9Aj_wGD.cjs → localHappyAgentAuth-CG2nPD_H.cjs} +1 -1
  92. package/dist/{localHappyAgentAuth-DqFE0Adr.mjs → localHappyAgentAuth-C_G5u5lY.mjs} +1 -1
  93. package/dist/{logger-BILSzq2s.cjs → logger-BP1SW7Cs.cjs} +2 -2
  94. package/dist/{logger-SAU4uSs4.mjs → logger-DOKH3Zbh.mjs} +2 -2
  95. package/dist/{machineMetadata-C5TgUTpD.cjs → machineMetadata-BKX3ov9g.cjs} +3 -3
  96. package/dist/{machineMetadata-ZVnihOuL.mjs → machineMetadata-D-5qeIqd.mjs} +3 -3
  97. package/dist/{main-BjOHtX8u.mjs → main-DODz8DQE.mjs} +46 -46
  98. package/dist/{main-CVfx_-l7.cjs → main-ndpVIaSG.cjs} +46 -46
  99. package/dist/{mcp-CWVr7KbQ.mjs → mcp-BBwbSODp.mjs} +16 -15
  100. package/dist/{mcp-By9XK193.cjs → mcp-Bc4U4exu.cjs} +16 -15
  101. package/dist/{mirrorProtocol-C0wyaesn.cjs → mirrorProtocol-CiA3hO2y.cjs} +3 -3
  102. package/dist/{mirrorProtocol-BI6XbokT.mjs → mirrorProtocol-D2vTWteS.mjs} +3 -3
  103. package/dist/{package-Bbfq2KR7.cjs → package-CYDdLA6R.cjs} +7 -7
  104. package/dist/{package-BMBwnCn3.mjs → package-DTcaIhjW.mjs} +7 -7
  105. package/dist/{panels-rQmysHlY.cjs → panels-C2xZ8rqU.cjs} +5 -5
  106. package/dist/{panels-CbIUwV6q.mjs → panels-DCaLxlSL.mjs} +5 -5
  107. package/dist/{peerTools-CZfiq_Dx.cjs → peerTools-B4315xjX.cjs} +5 -5
  108. package/dist/{peerTools-CyruQrOo.mjs → peerTools-BtrUnSwz.mjs} +5 -5
  109. package/dist/{persistence-C7T3HYjq.mjs → persistence-0INrP3aB.mjs} +2 -2
  110. package/dist/{persistence-DPeSC0SK.cjs → persistence-CrzC7yr_.cjs} +2 -2
  111. package/dist/{piRunnerArgs-DAq8vIpP.cjs → piRunnerArgs-BtzW_kfh.cjs} +1 -1
  112. package/dist/{piRunnerArgs-CsWompo8.mjs → piRunnerArgs-DRuxMlX1.mjs} +1 -1
  113. package/dist/{piRuntime-Dxd8Gfun.mjs → piRuntime-BMAFpIBV.mjs} +1 -1
  114. package/dist/{piRuntime-CFqlQFoz.cjs → piRuntime-DEbPE_kW.cjs} +1 -1
  115. package/dist/{piTerminal-BssuKDtJ.mjs → piTerminal-DQXV8_we.mjs} +18 -17
  116. package/dist/{piTerminal-DHG3Kzve.cjs → piTerminal-MtxDtBE2.cjs} +18 -17
  117. package/dist/{pushNotifications-CsSyhnHu.cjs → pushNotifications-CalIS9sq.cjs} +3 -3
  118. package/dist/{pushNotifications-Bi72c41d.mjs → pushNotifications-Cq1s8YVK.mjs} +3 -3
  119. package/dist/{query-BQOwsKS1.mjs → query-BYiPBHPC.mjs} +1 -1
  120. package/dist/{query-Cuef299f.cjs → query-CE2XDhhw.cjs} +1 -1
  121. package/dist/{specialCommands-35KxDNE8.cjs → rateLimitReporter-BKmoOZQi.cjs} +3 -55
  122. package/dist/{specialCommands-CTtmGCCf.mjs → rateLimitReporter-DR5LXuiQ.mjs} +4 -55
  123. package/dist/{rateLimitWindows-B6IAWYN5.mjs → rateLimitWindows-5vIuNjko.mjs} +1 -1
  124. package/dist/{rateLimitWindows-bfwC81Z-.cjs → rateLimitWindows-Cs56YJCH.cjs} +1 -1
  125. package/dist/{registerCommonHandlers-qzb6TQqo.mjs → registerCommonHandlers-DWkTysjD.mjs} +2 -2
  126. package/dist/{registerCommonHandlers-CQC04iF3.cjs → registerCommonHandlers-DZPozYxc.cjs} +2 -2
  127. package/dist/{registerKillSessionHandler-DMPrrNKX.mjs → registerKillSessionHandler-CSCTRIbI.mjs} +34 -6
  128. package/dist/{registerKillSessionHandler-BraKB5Ks.cjs → registerKillSessionHandler-DhCjrs44.cjs} +34 -6
  129. package/dist/{remoteSessionClient-DffolBcQ.cjs → remoteSessionClient-Dq8XTLQP.cjs} +5 -5
  130. package/dist/{remoteSessionClient-D3XhN_sd.mjs → remoteSessionClient-Vfj_5g2-.mjs} +5 -5
  131. package/dist/{reportProgressTool-irHR-XEW.mjs → reportProgressTool-B7zmX7NJ.mjs} +3 -3
  132. package/dist/{reportProgressTool-BieTXE_R.cjs → reportProgressTool-DznxPKES.cjs} +3 -3
  133. package/dist/{run-Ck_WA6Nj.cjs → run-Ca8BiNCp.cjs} +36 -35
  134. package/dist/{run-DCUaxe2S.mjs → run-DSfNcR62.mjs} +36 -35
  135. package/dist/{runClaude-BUGku2Qp.cjs → runClaude-ClQQcgoO.cjs} +22 -22
  136. package/dist/{runClaude-BryAvfNV.mjs → runClaude-hoepv-0X.mjs} +22 -22
  137. package/dist/{runClaudeDeps-BZkWM9_u.mjs → runClaudeDeps-D_v8t2SK.mjs} +88 -55
  138. package/dist/{runClaudeDeps-Dbk1VrOW.cjs → runClaudeDeps-ck5_GYlP.cjs} +85 -52
  139. package/dist/{runGemini-DT379gpi.mjs → runGemini-CTr2-cYG.mjs} +38 -33
  140. package/dist/{runGemini-B6AZ2bv0.cjs → runGemini-Cj0XsMiM.cjs} +38 -33
  141. package/dist/{runOpenClaw-eBUYlIVJ.cjs → runOpenClaw-BoN1e3lP.cjs} +23 -18
  142. package/dist/{runOpenClaw-Bpp9mkyO.mjs → runOpenClaw-CdDMntiV.mjs} +23 -18
  143. package/dist/{sandbox-Bv4H1P6u.cjs → sandbox-BY2h19gc.cjs} +4 -4
  144. package/dist/{sandbox-Z8TM9eUg.mjs → sandbox-DcaWB-Ou.mjs} +4 -4
  145. package/dist/selfCheck-BQ_H2Sns.mjs +86 -0
  146. package/dist/{selfCheck--1k2Ptf6.cjs → selfCheck-DFS_GUaQ.cjs} +37 -37
  147. package/dist/{send-BG4KYe6f.cjs → send-BMsUYU6g.cjs} +9 -8
  148. package/dist/{send-CKTovWuQ.mjs → send-UBTHHNvZ.mjs} +9 -8
  149. package/dist/{server-DLpXtoiZ.mjs → server-Dt3mCtfQ.mjs} +4 -4
  150. package/dist/{server-BTNwH-sA.cjs → server-YrHMHNz1.cjs} +6 -6
  151. package/dist/{sessionLock-Cf6RlgfF.cjs → sessionLock-DSqiP2lH.cjs} +3 -3
  152. package/dist/{sessionLock-DhzB5ZI9.mjs → sessionLock-tEFvFXLD.mjs} +3 -3
  153. package/dist/{sessionOps-R52JWMnX.cjs → sessionOps-BzeOKIEF.cjs} +27 -4
  154. package/dist/{sessionOps-CiFjBCMa.mjs → sessionOps-CljctDs5.mjs} +27 -4
  155. package/dist/{sessionProvider-f2tUhwBc.mjs → sessionProvider-BnUFSJXM.mjs} +5 -5
  156. package/dist/{sessionProvider-LATn-lZL.cjs → sessionProvider-ORgzmkXy.cjs} +5 -5
  157. package/dist/{sessionScanner-DRzZtGtu.cjs → sessionScanner-Cr6PJ3PT.cjs} +3 -3
  158. package/dist/{sessionScanner-lS1puA5H.mjs → sessionScanner-DZUlkdF6.mjs} +3 -3
  159. package/dist/{sessions-D01nnjOE.mjs → sessions-15cag-su.mjs} +11 -10
  160. package/dist/{sessions-DGd8Fin6.cjs → sessions-aIo_HjmY.cjs} +11 -10
  161. package/dist/{setupOfflineReconnection-UApZjcU5.mjs → setupOfflineReconnection-B7I8R2Ex.mjs} +2 -2
  162. package/dist/{setupOfflineReconnection-Ds7ywGwR.cjs → setupOfflineReconnection-tV0Q1dgR.cjs} +2 -2
  163. package/dist/{spawn-ct8aSMA8.mjs → spawn-ByrQgruJ.mjs} +70 -28
  164. package/dist/{spawn-CT3g4p8A.cjs → spawn-VG-HjJiR.cjs} +70 -27
  165. package/dist/{spawnAgents-f2q31uUV.mjs → spawnAgents-Bh1RPShN.mjs} +24 -11
  166. package/dist/{spawnAgents-DsJSyLDl.cjs → spawnAgents-C1-4m7aN.cjs} +24 -10
  167. package/dist/{spawnHappyCLI-Dp05fHcp.mjs → spawnHappyCLI-CEsXwz5V.mjs} +1 -1
  168. package/dist/{spawnHappyCLI-DedrWByd.cjs → spawnHappyCLI-CxiR2Qoy.cjs} +1 -1
  169. package/dist/specialCommands-J3JFOq0J.cjs +60 -0
  170. package/dist/specialCommands-MXUN0wfI.mjs +54 -0
  171. package/dist/{startFileWatcher-72w11DP_.cjs → startFileWatcher-C-XCZ5t2.cjs} +1 -1
  172. package/dist/{startFileWatcher-BLdxJdgu.mjs → startFileWatcher-DkEeeAtL.mjs} +1 -1
  173. package/dist/{startupSessionCreate-Cy4J4-Ep.cjs → startupSessionCreate-CYc8mra-.cjs} +1 -1
  174. package/dist/{startupSessionCreate-CJFR_Zom.mjs → startupSessionCreate-npXe2TdN.mjs} +1 -1
  175. package/dist/{streamRelay-B3FloUTT.mjs → streamRelay-CqBynIon.mjs} +1 -1
  176. package/dist/{streamRelay-Cn_uGG6m.cjs → streamRelay-D9a4cBEa.cjs} +1 -1
  177. package/dist/{sync-BWX1OVQi.mjs → sync-BvDMkKAN.mjs} +1 -1
  178. package/dist/{sync-lxDpbIh3.cjs → sync-CoChLEIg.cjs} +1 -1
  179. package/dist/{systemPrompt-BIilbjt_.mjs → systemPrompt-CgDaPigN.mjs} +2 -2
  180. package/dist/{systemPrompt-0DqWPGY6.cjs → systemPrompt-Dy_Rf-0Z.cjs} +2 -2
  181. package/dist/{teams-CvpB8Rdm.mjs → teams-BC4_e5hR.mjs} +7 -7
  182. package/dist/{teams-CImmJLlM.cjs → teams-DPvfLAk8.cjs} +7 -7
  183. package/dist/{template-DPsqlHJQ.cjs → template-17HATY_Y.cjs} +1 -1
  184. package/dist/{template-DuKZw-Sz.mjs → template-CEK8MEjo.mjs} +1 -1
  185. package/dist/{time-DjS5me2q.mjs → time-CUK37wiV.mjs} +1 -1
  186. package/dist/{time-BbQJi3Eh.cjs → time-XwEZxKGc.cjs} +1 -1
  187. package/dist/{titleGenerator-CfJme6ep.cjs → titleGenerator-DVX0NZUn.cjs} +2 -2
  188. package/dist/{titleGenerator-CGdBp5lQ.mjs → titleGenerator-DWRVdqMU.mjs} +1 -1
  189. package/dist/{todo-BxfUKwTM.mjs → todo-BNMGXneA.mjs} +6 -6
  190. package/dist/{todo-rN20m9lT.cjs → todo-CKGrSrRE.cjs} +6 -6
  191. package/dist/{tools-B_W7xJNh.mjs → tools-CCIEAVbB.mjs} +1 -1
  192. package/dist/{tools-kGtSjG8h.cjs → tools-CjMafO_D.cjs} +1 -1
  193. package/dist/{uninstall-CBQsxEmD.cjs → uninstall-BdFbTXnL.cjs} +3 -3
  194. package/dist/{uninstall-DUjvgLlg.mjs → uninstall-CJvJ7gjr.mjs} +3 -3
  195. package/package.json +7 -7
  196. package/dist/selfCheck-DIGghfQz.mjs +0 -86
@@ -1,93 +1,94 @@
1
1
  'use strict';
2
2
 
3
- var AcpBackend = require('./AcpBackend-B2-ReWTo.cjs');
4
- var logger = require('./logger-BILSzq2s.cjs');
5
- var AcpSessionManager = require('./AcpSessionManager-DR4-oZCz.cjs');
6
- var index = require('./index-BumVulwx.cjs');
7
- var deterministicJson = require('./deterministicJson-D9pZQhU9.cjs');
3
+ var AcpBackend = require('./AcpBackend-DRPJ2g9G.cjs');
4
+ var logger = require('./logger-BP1SW7Cs.cjs');
5
+ var AcpSessionManager = require('./AcpSessionManager-DM-KKg6v.cjs');
6
+ var index = require('./index-BOe6dKnL.cjs');
7
+ var deterministicJson = require('./deterministicJson-D0LU_XbO.cjs');
8
+ var specialCommands = require('./specialCommands-J3JFOq0J.cjs');
8
9
  var agentAttachments = require('./agentAttachments-Dbw8iMCZ.cjs');
9
- var configuration = require('./configuration-CAfdO4IC.cjs');
10
- var attachmentContent = require('./attachmentContent-D8hViGiA.cjs');
11
- var piRuntime = require('./piRuntime-CFqlQFoz.cjs');
10
+ var configuration = require('./configuration-C0ctLGW2.cjs');
11
+ var attachmentContent = require('./attachmentContent-Cc5b7TPr.cjs');
12
+ var piRuntime = require('./piRuntime-DEbPE_kW.cjs');
12
13
  var node_crypto = require('node:crypto');
13
14
  var path = require('node:path');
14
- var api = require('./api-DVEzYcoy.cjs');
15
- var client = require('./client-q1aNOKgy.cjs');
16
- var registerKillSessionHandler = require('./registerKillSessionHandler-BraKB5Ks.cjs');
17
- var persistence = require('./persistence-DPeSC0SK.cjs');
18
- var machineMetadata = require('./machineMetadata-C5TgUTpD.cjs');
19
- var createSessionMetadata = require('./createSessionMetadata-Bcn7b8QB.cjs');
20
- var setupOfflineReconnection = require('./setupOfflineReconnection-Ds7ywGwR.cjs');
21
- var startupSessionCreate = require('./startupSessionCreate-Cy4J4-Ep.cjs');
22
- var controlClient = require('./controlClient-mH9AxBwT.cjs');
15
+ var api = require('./api-BDuuyys8.cjs');
16
+ var client = require('./client-DIfxYk7B.cjs');
17
+ var registerKillSessionHandler = require('./registerKillSessionHandler-DhCjrs44.cjs');
18
+ var persistence = require('./persistence-CrzC7yr_.cjs');
19
+ var machineMetadata = require('./machineMetadata-BKX3ov9g.cjs');
20
+ var createSessionMetadata = require('./createSessionMetadata-DezS33OM.cjs');
21
+ var setupOfflineReconnection = require('./setupOfflineReconnection-tV0Q1dgR.cjs');
22
+ var startupSessionCreate = require('./startupSessionCreate-CYc8mra-.cjs');
23
+ var controlClient = require('./controlClient-F7hAEEy2.cjs');
23
24
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
24
- var sessionLock = require('./sessionLock-Cf6RlgfF.cjs');
25
- var acpSessionResume = require('./acpSessionResume-Hto_b8MK.cjs');
26
- var streamRelay = require('./streamRelay-Cn_uGG6m.cjs');
25
+ var sessionLock = require('./sessionLock-DSqiP2lH.cjs');
26
+ var acpSessionResume = require('./acpSessionResume-2BTMsB7_.cjs');
27
+ var streamRelay = require('./streamRelay-D9a4cBEa.cjs');
27
28
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
28
- var BasePermissionHandler = require('./BasePermissionHandler-CZ19WzsP.cjs');
29
- var titleGenerator = require('./titleGenerator-CfJme6ep.cjs');
29
+ var BasePermissionHandler = require('./BasePermissionHandler-DjM16uJz.cjs');
30
+ var titleGenerator = require('./titleGenerator-DVX0NZUn.cjs');
30
31
  var editPaths = require('./editPaths-Bqp4OFPw.cjs');
32
+ var node_fs = require('node:fs');
33
+ var os = require('node:os');
31
34
  require('node:child_process');
32
35
  require('@agentclientprotocol/sdk');
33
- require('./time-BbQJi3Eh.cjs');
36
+ require('./time-XwEZxKGc.cjs');
34
37
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
35
38
  require('./processTree-CMHWlVse.cjs');
36
- require('./package-Bbfq2KR7.cjs');
39
+ require('./package-CYDdLA6R.cjs');
37
40
  require('chalk');
38
41
  require('node:util');
39
- require('node:fs');
40
42
  require('@paralleldrive/cuid2');
41
43
  require('zod');
42
44
  require('./prompt-Bof2aQkI.cjs');
43
- require('./reportProgressTool-BieTXE_R.cjs');
44
- require('./client-CWSfPlGD.cjs');
45
+ require('./reportProgressTool-DznxPKES.cjs');
46
+ require('./client-D0aYWt53.cjs');
45
47
  require('./precheckCompat-CWOi5c9L.cjs');
46
48
  require('./agentGuidance-BtBx2xxE.cjs');
47
49
  require('./trimIdent-4gvk9Wk6.cjs');
48
- require('node:os');
49
50
  require('./pi-DlsrPCTa.cjs');
50
51
  require('./fileStore-7qhnbs6N.cjs');
51
52
  require('node:fs/promises');
52
- require('./client-CCy72Phz.cjs');
53
- require('./context-BtCz06PX.cjs');
54
- require('./sessionOps-R52JWMnX.cjs');
53
+ require('./client-BNmFaRXZ.cjs');
54
+ require('./context-D-hEk5pC.cjs');
55
+ require('./sessionOps-BzeOKIEF.cjs');
55
56
  require('axios');
56
57
  require('socket.io-client');
57
58
  require('./backgroundTaskActivity-CBvUdj39.cjs');
58
59
  require('./resources-BZ_Be0qM.cjs');
59
- require('./tools-kGtSjG8h.cjs');
60
- require('./peerTools-CZfiq_Dx.cjs');
60
+ require('./tools-CjMafO_D.cjs');
61
+ require('./peerTools-B4315xjX.cjs');
61
62
  require('./ids-B6ZC0HGt.cjs');
62
- require('./remoteSessionClient-DffolBcQ.cjs');
63
+ require('./remoteSessionClient-Dq8XTLQP.cjs');
63
64
  require('@modelcontextprotocol/sdk/server/mcp.js');
64
65
  require('node:http');
65
66
  require('@modelcontextprotocol/sdk/server/streamableHttp.js');
66
67
  require('./limits-C-a7gr04.cjs');
67
- require('./downloadTarget-BhkQxTa8.cjs');
68
+ require('./downloadTarget-aNcCxVRL.cjs');
68
69
  require('./terminals-B_bfC9c2.cjs');
69
70
  require('./terminalTitleSuggest-DhvRFX3H.cjs');
70
71
  require('./tmuxSocket-D-Xt6Vn-.cjs');
71
- require('./bootstrap-j2RuoHVy.cjs');
72
+ require('./bootstrap-CDY-Vz8q.cjs');
72
73
  require('./webPanels-FCgFKvVe.cjs');
73
- require('./pushNotifications-CsSyhnHu.cjs');
74
+ require('./pushNotifications-CalIS9sq.cjs');
74
75
  require('./previewPath-B0rBdhy1.cjs');
75
76
  require('crypto');
76
- require('./lidState-XyjQaZtU.cjs');
77
+ require('./lidState-B4dHJCeS.cjs');
77
78
  require('os');
78
79
  require('child_process');
79
80
  require('node:events');
80
- require('./registerCommonHandlers-CQC04iF3.cjs');
81
+ require('./registerCommonHandlers-DZPozYxc.cjs');
81
82
  require('util');
82
83
  require('fs/promises');
83
84
  require('path');
84
85
  require('cross-spawn');
85
- require('./sync-lxDpbIh3.cjs');
86
+ require('./sync-CoChLEIg.cjs');
86
87
  require('tweetnacl');
87
88
  require('./types-CRS-srZK.cjs');
88
89
  require('./detectCLI-BuYR_Qxe.cjs');
89
90
  require('fs');
90
- require('./localHappyAgentAuth-C9Aj_wGD.cjs');
91
+ require('./localHappyAgentAuth-CG2nPD_H.cjs');
91
92
  require('./fsMkdir-0K3yENml.cjs');
92
93
  require('./processTreeSnapshot-mDbnuojn.cjs');
93
94
  require('url');
@@ -119,6 +120,16 @@ async function buildAcpPrompt(message, opts) {
119
120
 
120
121
  ${opts.todoNote}`, slashCommand: false };
121
122
  }
123
+ function routeAcpUserText(text, advertisedCommands) {
124
+ const compact = specialCommands.compactCommandText(text);
125
+ if (compact !== null) {
126
+ if (advertisedCommands && advertisedCommands.length > 0 && !advertisedCommands.includes("compact")) {
127
+ return { kind: "unsupported", notice: specialCommands.COMPACT_UNSUPPORTED_NOTICE };
128
+ }
129
+ return { kind: "command", text: compact };
130
+ }
131
+ return isAgentSlashCommand(text) ? { kind: "command", text } : { kind: "prompt", text };
132
+ }
122
133
 
123
134
  const MAX_DETAIL_CHARS = 400;
124
135
  function detailOf(error) {
@@ -144,9 +155,11 @@ function oneLine(text) {
144
155
  }
145
156
  function describeAcpTurnFailure(agentName, error) {
146
157
  if (AcpBackend.isAgentExitError(error)) {
147
- return { message: `Process exited unexpectedly: ${oneLine(error.message)}`, exited: true };
158
+ const detail2 = oneLine(error.message);
159
+ return { message: `Process exited unexpectedly: ${detail2}`, error: detail2, exited: true };
148
160
  }
149
- return { message: `${agentName} error: ${oneLine(detailOf(error))}`, exited: false };
161
+ const detail = oneLine(detailOf(error));
162
+ return { message: `${agentName} error: ${detail}`, error: detail, exited: false };
150
163
  }
151
164
 
152
165
  const OUT_OF_TURN_QUIET_MS = 6e4;
@@ -423,6 +436,26 @@ function mergeAcpSessionConfigIntoMetadata(metadata, snapshot) {
423
436
  return next;
424
437
  }
425
438
 
439
+ function readGeminiConfiguredModel(opts = {}) {
440
+ const env = opts.env ?? process.env;
441
+ const fromEnv = env.GEMINI_MODEL?.trim();
442
+ if (fromEnv) return fromEnv;
443
+ const read = opts.readFile ?? ((path) => node_fs.readFileSync(path, "utf8"));
444
+ const home = env.GEMINI_CLI_HOME?.trim() || opts.home || os.homedir();
445
+ for (const file of [path.join(opts.cwd ?? process.cwd(), ".gemini", "settings.json"), path.join(home, ".gemini", "settings.json")]) {
446
+ let parsed;
447
+ try {
448
+ parsed = JSON.parse(read(file));
449
+ } catch {
450
+ continue;
451
+ }
452
+ const model = parsed?.model;
453
+ const name = typeof model === "string" ? model : model?.name;
454
+ if (typeof name === "string" && name.trim()) return name.trim();
455
+ }
456
+ return null;
457
+ }
458
+
426
459
  const ACP_EVENT_PREVIEW_CHARS = 240;
427
460
  const ACP_RAW_PREVIEW_CHARS = 2e3;
428
461
  const ACP_COLOR_RESET = "\x1B[0m";
@@ -797,6 +830,7 @@ async function runAcp(opts) {
797
830
  capabilities: [index.PROMPT_QUEUE_CAPABILITY, index.PROJECT_SESSION_CAPABILITY]
798
831
  });
799
832
  metadata.attachmentKinds = [];
833
+ if (opts.agentName === "gemini") metadata.configuredModel = readGeminiConfiguredModel();
800
834
  const reconnect = acpSessionResume.readAcpReconnectEnv(process.env);
801
835
  let response;
802
836
  if (reconnect) {
@@ -895,6 +929,7 @@ async function runAcp(opts) {
895
929
  let legacyModes = null;
896
930
  let legacyModels = null;
897
931
  let sawSlashCommands = false;
932
+ let agentCommands = null;
898
933
  let sawModes = false;
899
934
  let sawModels = false;
900
935
  const initialPermissionMode = opts.permissionMode ?? resumedPermissionMode ?? "default";
@@ -1147,6 +1182,7 @@ async function runAcp(opts) {
1147
1182
  const commands = msg.payload;
1148
1183
  const commandNames = commands.map((c) => c.name);
1149
1184
  sawSlashCommands = commands.length > 0;
1185
+ agentCommands = commandNames;
1150
1186
  if (verbose) {
1151
1187
  logAcp("muted", `Outgoing slash commands from ${opts.agentName} (${commands.length}):`);
1152
1188
  for (const command of commands) {
@@ -1319,6 +1355,19 @@ async function runAcp(opts) {
1319
1355
  if (message.meta && Object.prototype.hasOwnProperty.call(message.meta, "effort")) {
1320
1356
  currentEffort = message.meta.effort ?? null;
1321
1357
  }
1358
+ const route = routeAcpUserText(message.content.text, agentCommands);
1359
+ if (route.kind === "unsupported") {
1360
+ session.sendSessionEvent({ type: "message", message: route.notice });
1361
+ return;
1362
+ }
1363
+ if (route.kind === "command") {
1364
+ messageQueue.pushIsolate(route.text, {
1365
+ permissionMode: currentPermissionMode,
1366
+ model: currentModel,
1367
+ effort: currentEffort
1368
+ }, attachments, message.localKey);
1369
+ return;
1370
+ }
1322
1371
  if (message.meta?.delivery === "steer" && piSteer?.ready && thinking && !attachments?.length) {
1323
1372
  if (await piSteer.offer(message.content.text, PI_STEER_OFFER_TIMEOUT_MS)) {
1324
1373
  logger.logger.debug(`[${opts.agentName}] User message steered into the running turn`);
@@ -1508,7 +1557,7 @@ async function runAcp(opts) {
1508
1557
  } catch (error) {
1509
1558
  const failure = describeAcpTurnFailure(opts.agentName, error);
1510
1559
  session.sendSessionEvent({ type: "message", message: failure.message });
1511
- sendEnvelopes(sessionManager.endTurn("failed"));
1560
+ sendEnvelopes(sessionManager.endTurn("failed", failure.error));
1512
1561
  streamRelay$1.endTurn();
1513
1562
  setThinking(false);
1514
1563
  session.sendSessionEvent({ type: "ready" });
@@ -2,14 +2,14 @@
2
2
 
3
3
  var node_fs = require('node:fs');
4
4
  var os = require('node:os');
5
- var logger = require('./logger-BILSzq2s.cjs');
6
- var persistence = require('./persistence-DPeSC0SK.cjs');
5
+ var logger = require('./logger-BP1SW7Cs.cjs');
6
+ var persistence = require('./persistence-CrzC7yr_.cjs');
7
7
  var loginShellEnv = require('./loginShellEnv-BkuYtExZ.cjs');
8
8
  require('chalk');
9
9
  require('node:util');
10
- require('./configuration-CAfdO4IC.cjs');
10
+ require('./configuration-C0ctLGW2.cjs');
11
11
  require('node:path');
12
- require('./package-Bbfq2KR7.cjs');
12
+ require('./package-CYDdLA6R.cjs');
13
13
  require('node:fs/promises');
14
14
  require('zod');
15
15
  require('./authRelay-Dy1qU9td.cjs');
@@ -1,14 +1,14 @@
1
1
  import { statSync, readdirSync } from 'node:fs';
2
2
  import { homedir } from 'node:os';
3
- import { l as logger } from './logger-SAU4uSs4.mjs';
4
- import { r as readSettings } from './persistence-C7T3HYjq.mjs';
3
+ import { l as logger } from './logger-DOKH3Zbh.mjs';
4
+ import { r as readSettings } from './persistence-0INrP3aB.mjs';
5
5
  import { d as describeAgentHome, C as CLAUDE_CONFIG_DIR_ENV, a as CODEX_HOME_ENV, f as findClaudeConversation, b as agentHomeCandidates, c as findCodexThread, r as resolveAgentHomes, A as AGENT_HOME_ENV_NAMES, g as agentHomeEnv, p as probeLoginShellEnv } from './loginShellEnv-Dw8M7tkI.mjs';
6
6
  export { h as claudeConversationPath, i as claudeProjectDirName, j as codexRolloutFileMatches, e as expandHomePath } from './loginShellEnv-Dw8M7tkI.mjs';
7
7
  import 'chalk';
8
8
  import 'node:util';
9
- import './configuration-8EAa2X9P.mjs';
9
+ import './configuration-1FabKklB.mjs';
10
10
  import 'node:path';
11
- import './package-BMBwnCn3.mjs';
11
+ import './package-DTcaIhjW.mjs';
12
12
  import 'node:fs/promises';
13
13
  import 'zod';
14
14
  import './authRelay-DhQhkBvX.mjs';
@@ -3,6 +3,7 @@ import { z as z$1 } from 'zod';
3
3
  import { isCuid, createId } from '@paralleldrive/cuid2';
4
4
 
5
5
  const CODEX_STEER_CAPABILITY = "codex-steer-v1";
6
+ const CODEX_COMPACT_CAPABILITY = "codex-compact-v1";
6
7
  const PI_STEER_CAPABILITY = "pi-steer-v1";
7
8
  const sessionRoleSchema = z.enum(["user", "agent"]);
8
9
  const sessionTextEventSchema = z.object({
@@ -994,9 +995,9 @@ function createBuiltinTodoClient(credentials, options2) {
994
995
  throw new BuiltinTodoError("order-collision", "These Todos share an order that cannot safely be changed");
995
996
  }
996
997
  }
997
- const updatedAt = Date.now();
998
- const nextRecord = { ...record, order: recordOrder, updatedAt };
999
- const nextNeighbor = { ...neighbor, order: neighborOrder, updatedAt };
998
+ const updatedAt2 = Date.now();
999
+ const nextRecord = { ...record, order: recordOrder, updatedAt: updatedAt2 };
1000
+ const nextNeighbor = { ...neighbor, order: neighborOrder, updatedAt: updatedAt2 };
1000
1001
  const versions = await mutate([mutation(record, nextRecord), mutation(neighbor, nextNeighbor)]);
1001
1002
  return [{ ...nextRecord, version: versions[0] }, { ...nextNeighbor, version: versions[1] }];
1002
1003
  }
@@ -1086,24 +1087,218 @@ z$1.object({
1086
1087
  startedAt: z$1.number(),
1087
1088
  at: z$1.number()
1088
1089
  });
1089
- const CLAUDE_OPUS_55_MODEL = "claude-opus-5-5";
1090
- const CLAUDE_OPUS_55_CAPABILITY = "claude-opus-5-5-v1";
1091
- function supportsClaudeOpus55(metadata) {
1092
- return metadata?.capabilities?.includes(CLAUDE_OPUS_55_CAPABILITY) === true;
1090
+ var version = 1;
1091
+ var updatedAt = "2026-10-30";
1092
+ var agents = {
1093
+ claude: {
1094
+ tier: "opus",
1095
+ pattern: "^claude-opus-(\\d+)(?:-(\\d{1,2}))?$",
1096
+ models: [
1097
+ {
1098
+ model: "claude-opus-5-5",
1099
+ label: "Opus 5.5",
1100
+ requires: {
1101
+ capability: "claude-opus-5-5-v1",
1102
+ cliVersion: "0.2.149"
1103
+ }
1104
+ }
1105
+ ]
1106
+ },
1107
+ codex: {
1108
+ tier: "sol",
1109
+ pattern: "^gpt-(\\d+)(?:\\.(\\d+))?-sol$",
1110
+ models: [
1111
+ {
1112
+ model: "gpt-6.1-sol",
1113
+ label: "gpt-6.1-sol",
1114
+ requires: {
1115
+ agentVersion: "0.160.0"
1116
+ }
1117
+ },
1118
+ {
1119
+ model: "gpt-6-sol",
1120
+ label: "gpt-6-sol",
1121
+ requires: {
1122
+ agentVersion: "0.157.0"
1123
+ }
1124
+ },
1125
+ {
1126
+ model: "gpt-5.6-sol",
1127
+ label: "gpt-5.6-sol",
1128
+ requires: {
1129
+ agentVersion: "0.150.0"
1130
+ }
1131
+ }
1132
+ ]
1133
+ },
1134
+ gemini: {
1135
+ tier: "pro",
1136
+ pattern: "^gemini-(\\d+)(?:\\.(\\d+))?-pro(?:-preview)?$",
1137
+ models: [
1138
+ {
1139
+ model: "gemini-3.1-pro-preview",
1140
+ label: "gemini 3.1 pro"
1141
+ },
1142
+ {
1143
+ model: "gemini-2.5-pro",
1144
+ label: "gemini 2.5 pro"
1145
+ }
1146
+ ]
1147
+ }
1148
+ };
1149
+ var bundledLatestModels = {
1150
+ version,
1151
+ updatedAt,
1152
+ agents
1153
+ };
1154
+ const LATEST_MODEL_MODE = "latest";
1155
+ function isLatestModelMode(model) {
1156
+ return model === LATEST_MODEL_MODE;
1157
+ }
1158
+ const LATEST_MODEL_AGENTS = ["claude", "codex", "gemini"];
1159
+ const LatestModelEntrySchema = z$1.object({
1160
+ model: z$1.string().min(1),
1161
+ label: z$1.string().optional(),
1162
+ /** What a machine/wrapper must have to run it. Absent = nothing provable
1163
+ * without the session's own catalog. */
1164
+ requires: z$1.object({
1165
+ /** Wrapper capability (session metadata.capabilities) — AGENTS.md rule 14. */
1166
+ capability: z$1.string().optional(),
1167
+ /** very-happy-cli version that first advertises `capability`; only used
1168
+ * before a session exists (launcher label). */
1169
+ cliVersion: z$1.string().optional(),
1170
+ /** First agent CLI (codex) whose bundled `model/list` carries the model. */
1171
+ agentVersion: z$1.string().optional()
1172
+ }).optional()
1173
+ });
1174
+ const LatestModelTierSchema = z$1.object({
1175
+ tier: z$1.string(),
1176
+ /** Regex source matching every id of the tier; its capture groups are the
1177
+ * version (`claude-opus-5-5` → 5,5; `gpt-6.1-sol` → 6.1). */
1178
+ pattern: z$1.string(),
1179
+ /** Known models of the tier, newest first. */
1180
+ models: z$1.array(LatestModelEntrySchema)
1181
+ });
1182
+ const LatestModelTableSchema = z$1.object({
1183
+ version: z$1.number(),
1184
+ updatedAt: z$1.string().optional(),
1185
+ agents: z$1.object({
1186
+ claude: LatestModelTierSchema.optional(),
1187
+ codex: LatestModelTierSchema.optional(),
1188
+ gemini: LatestModelTierSchema.optional()
1189
+ }).passthrough()
1190
+ }).passthrough();
1191
+ z$1.object({
1192
+ table: LatestModelTableSchema,
1193
+ source: z$1.enum(["bundled", "configured"])
1194
+ });
1195
+ const BUNDLED_LATEST_MODELS = LatestModelTableSchema.parse(bundledLatestModels);
1196
+ const MACHINE_CONFIG_AGENTS = ["codex", "gemini"];
1197
+ function compilePattern(source) {
1198
+ try {
1199
+ return new RegExp(source);
1200
+ } catch {
1201
+ return null;
1202
+ }
1203
+ }
1204
+ function tierVersion(tier, model) {
1205
+ const match = compilePattern(tier.pattern)?.exec(model);
1206
+ if (!match) return null;
1207
+ return match.slice(1).filter((part) => part !== void 0).map((part) => Number(part));
1093
1208
  }
1094
- function isClaudeOpus55Model(model) {
1095
- return model === CLAUDE_OPUS_55_MODEL || model === `${CLAUDE_OPUS_55_MODEL}[1m]`;
1209
+ function compareTierVersions(a, b) {
1210
+ for (let i = 0; i < Math.max(a.length, b.length); i++) {
1211
+ const diff = (a[i] ?? 0) - (b[i] ?? 0);
1212
+ if (diff !== 0) return diff;
1213
+ }
1214
+ return 0;
1215
+ }
1216
+ function catalogTierIds(tier, catalog) {
1217
+ const ids = /* @__PURE__ */ new Map();
1218
+ for (const entry of catalog ?? []) {
1219
+ for (const id2 of [entry.resolvedModel, entry.code]) {
1220
+ if (typeof id2 === "string" && tierVersion(tier, id2) && !ids.has(id2)) {
1221
+ ids.set(id2, entry.code === id2 && entry.value ? entry.value : id2);
1222
+ }
1223
+ }
1224
+ }
1225
+ return ids;
1226
+ }
1227
+ function entryRunnable(entry, ctx, catalogIds) {
1228
+ if (catalogIds.has(entry.model)) return true;
1229
+ const requires = entry.requires;
1230
+ {
1231
+ return !!requires?.capability && (ctx.capabilities ?? []).includes(requires.capability);
1232
+ }
1233
+ }
1234
+ function getLatestModelTier(table, agent) {
1235
+ if (agent !== "claude" && agent !== "codex" && agent !== "gemini") return null;
1236
+ const tier = table?.agents?.[agent] ?? BUNDLED_LATEST_MODELS.agents[agent];
1237
+ return tier && compilePattern(tier.pattern) ? tier : BUNDLED_LATEST_MODELS.agents[agent] ?? null;
1238
+ }
1239
+ function resolveLatestModel(table, agent, ctx) {
1240
+ const tier = getLatestModelTier(table, agent);
1241
+ if (!tier) return { model: null, newest: null, label: null, limited: false, configured: null };
1242
+ const catalogIds = catalogTierIds(tier, ctx.catalog);
1243
+ const labels = /* @__PURE__ */ new Map();
1244
+ const known = [];
1245
+ const runnable = [];
1246
+ for (const entry of tier.models) {
1247
+ if (!tierVersion(tier, entry.model)) continue;
1248
+ labels.set(entry.model, entry.label ?? entry.model);
1249
+ known.push(entry.model);
1250
+ if (entryRunnable(entry, ctx, catalogIds)) runnable.push(entry.model);
1251
+ }
1252
+ for (const [id2, label] of catalogIds) {
1253
+ if (!labels.has(id2)) labels.set(id2, label);
1254
+ known.push(id2);
1255
+ runnable.push(id2);
1256
+ }
1257
+ const newestOf = (ids) => {
1258
+ let best = null;
1259
+ for (const id2 of ids) {
1260
+ const version2 = tierVersion(tier, id2);
1261
+ if (!best || compareTierVersions(version2, best.version) > 0) best = { id: id2, version: version2 };
1262
+ }
1263
+ return best?.id ?? null;
1264
+ };
1265
+ const newest = newestOf(known);
1266
+ if (MACHINE_CONFIG_AGENTS.includes(agent ?? "")) {
1267
+ const configured = typeof ctx.configuredModel === "string" && ctx.configuredModel.trim() ? ctx.configuredModel.trim() : null;
1268
+ if (configured || ctx.configuredModel === void 0) {
1269
+ return { model: null, newest, label: configured, limited: false, configured };
1270
+ }
1271
+ }
1272
+ const model = newestOf(runnable);
1273
+ const sameVersion = model !== null && newest !== null && compareTierVersions(tierVersion(tier, model), tierVersion(tier, newest)) === 0;
1274
+ return {
1275
+ model,
1276
+ newest,
1277
+ label: model ? labels.get(model) ?? model : null,
1278
+ limited: newest !== null && !sameVersion,
1279
+ configured: null
1280
+ };
1281
+ }
1282
+ function parseLatestModelTable(value) {
1283
+ const parsed = LatestModelTableSchema.safeParse(value);
1284
+ if (!parsed.success) return null;
1285
+ for (const agent of LATEST_MODEL_AGENTS) {
1286
+ const tier = parsed.data.agents[agent];
1287
+ if (tier && !compilePattern(tier.pattern)) return null;
1288
+ }
1289
+ return parsed.data;
1096
1290
  }
1097
1291
  const AGENT_CODE_DEFAULTS = {
1098
1292
  // The Claude UI key for YOLO is `bypassPermissions`; the CLI also accepts
1099
1293
  // `yolo` and maps it to the Claude SDK's bypass mode.
1100
- // model defaults to the pinned Opus 5.5 id (not the `opus` alias, whose
1101
- // target depends on the wrapper's bundled Claude Code). Wrappers that
1102
- // cannot run it fall back to 'default' (see supportsClaudeOpus55).
1103
- // effort null = don't send effort.
1104
- claude: { permissionMode: "bypassPermissions", modelMode: CLAUDE_OPUS_55_MODEL, effortLevel: null },
1105
- codex: { permissionMode: "yolo", modelMode: "gpt-5.5", effortLevel: "medium" },
1106
- gemini: { permissionMode: "default", modelMode: "gemini-2.5-pro", effortLevel: null },
1294
+ // model: `latest` (B-844) = the newest model of the agent's tier that the
1295
+ // session's wrapper can run, resolved at send time (modelLatest.ts) and
1296
+ // never sent as is. Today: Claude → claude-opus-5-5 (pinned id, not the
1297
+ // `opus` alias), Codex → gpt-6.1-sol on Codex >= 0.160, Gemini → the
1298
+ // newest pro its session catalog lists. effort null = don't send effort.
1299
+ claude: { permissionMode: "bypassPermissions", modelMode: LATEST_MODEL_MODE, effortLevel: null },
1300
+ codex: { permissionMode: "yolo", modelMode: LATEST_MODEL_MODE, effortLevel: "medium" },
1301
+ gemini: { permissionMode: "default", modelMode: LATEST_MODEL_MODE, effortLevel: null },
1107
1302
  openclaw: { permissionMode: "default", modelMode: "default", effortLevel: null },
1108
1303
  // pi: the runner keeps Claude's permission vocabulary (B-350 — HAPPY_PERMISSION_MODE +
1109
1304
  // session-modes file, enforced by the pi-side gate; `bypassPermissions` = auto-allow every
@@ -1449,4 +1644,4 @@ z.object({
1449
1644
  reason: z.string()
1450
1645
  });
1451
1646
 
1452
- export { AUTOMATION_NAME_PATTERN as A, BUILTIN_TODO_SKILL as B, isAttentionBoardLocalId as C, OwnerBoardUpdateInputSchema as D, OwnerBoardResolveInputSchema as E, OwnerBoardListInputSchema as F, ATTENTION_SESSION_CAPABILITY as G, RelayAssignmentResponseSchema as H, CODEX_STEER_CAPABILITY as I, RelayCandidatesResponseSchema as J, ServerMigrateNoticeSchema as K, isHarnessInstallId as L, AUTOMATION_PRECHECK_OUTPUT_MAX_CHARS as M, AUTOMATION_PRECHECK_DEFAULT_TIMEOUT_MS as N, OwnerBoardPostInputSchema as O, PROMPT_QUEUE_CAPABILITY as P, AUTOMATION_CLAIM_MAX_RUNS as Q, ReleaseDrainNoticeSchema as R, STREAM_DELTA_MAX_CHARS as S, AUTOMATION_DAEMON_CAPABILITY_PRECHECK as T, AUTOMATION_DEFAULT_LEASE_MS as U, HARNESS_INSTALL_CAPABILITY_VERSION as V, PROJECT_SESSION_CAPABILITY as a, AUTOMATION_PRECHECK_MAX_TIMEOUT_MS as b, AutomationPrecheckSchema as c, AUTOMATION_ATTENTION_REASON_MAX_CHARS as d, AUTOMATION_SUMMARY_MAX_CHARS as e, isInsideTeamWorktree as f, createEnvelope as g, createBuiltinTodoClient as h, isAutomationRunTerminal as i, BUILTIN_TODO_DISCOVERY as j, getAgentCodeDefaults as k, isClaudeOpus55Model as l, supportsClaudeOpus55 as m, normalizeAgentKey as n, AutomationNameSchema as o, AutomationConcurrencySchema as p, AutomationActionSchema as q, rebaseTeamWorktreePath as r, streamKeyOf as s, AutomationTriggerSchema as t, AgentVersionsSchema as u, PI_STEER_CAPABILITY as v, AGENT_VERSION_SOURCES as w, ATTENTION_DISABLED_ERROR as x, ATTENTION_LIMITS as y, ownerBoardPostToRest as z };
1647
+ export { AUTOMATION_NAME_PATTERN as A, BUILTIN_TODO_SKILL as B, ownerBoardPostToRest as C, isAttentionBoardLocalId as D, OwnerBoardUpdateInputSchema as E, OwnerBoardResolveInputSchema as F, OwnerBoardListInputSchema as G, ATTENTION_SESSION_CAPABILITY as H, RelayAssignmentResponseSchema as I, CODEX_STEER_CAPABILITY as J, CODEX_COMPACT_CAPABILITY as K, RelayCandidatesResponseSchema as L, ServerMigrateNoticeSchema as M, isHarnessInstallId as N, OwnerBoardPostInputSchema as O, PROMPT_QUEUE_CAPABILITY as P, AUTOMATION_PRECHECK_OUTPUT_MAX_CHARS as Q, ReleaseDrainNoticeSchema as R, STREAM_DELTA_MAX_CHARS as S, AUTOMATION_PRECHECK_DEFAULT_TIMEOUT_MS as T, AUTOMATION_CLAIM_MAX_RUNS as U, AUTOMATION_DAEMON_CAPABILITY_PRECHECK as V, AUTOMATION_DEFAULT_LEASE_MS as W, HARNESS_INSTALL_CAPABILITY_VERSION as X, PROJECT_SESSION_CAPABILITY as a, AUTOMATION_PRECHECK_MAX_TIMEOUT_MS as b, AutomationPrecheckSchema as c, AUTOMATION_ATTENTION_REASON_MAX_CHARS as d, AUTOMATION_SUMMARY_MAX_CHARS as e, isInsideTeamWorktree as f, createEnvelope as g, createBuiltinTodoClient as h, isAutomationRunTerminal as i, BUILTIN_TODO_DISCOVERY as j, getAgentCodeDefaults as k, isLatestModelMode as l, resolveLatestModel as m, normalizeAgentKey as n, AutomationNameSchema as o, parseLatestModelTable as p, AutomationConcurrencySchema as q, rebaseTeamWorktreePath as r, streamKeyOf as s, AutomationActionSchema as t, AutomationTriggerSchema as u, AgentVersionsSchema as v, PI_STEER_CAPABILITY as w, AGENT_VERSION_SOURCES as x, ATTENTION_DISABLED_ERROR as y, ATTENTION_LIMITS as z };
package/dist/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- require('./package-Bbfq2KR7.cjs');
4
- require('./index-BpWESchl.cjs');
3
+ require('./package-CYDdLA6R.cjs');
4
+ require('./index-4TpmBb2Q.cjs');
5
5
  require('node:module');
6
6
  require('node:fs');
7
7
  require('node:fs/promises');
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import './package-BMBwnCn3.mjs';
2
- import './index-BpSpw6jG.mjs';
1
+ import './package-DTcaIhjW.mjs';
2
+ import './index-CKd20r1W.mjs';
3
3
  import 'node:module';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
@@ -1,15 +1,15 @@
1
- import { l as logger } from './logger-SAU4uSs4.mjs';
1
+ import { l as logger } from './logger-DOKH3Zbh.mjs';
2
2
  import { existsSync, writeFileSync, chmodSync } from 'fs';
3
3
  import { execSync } from 'child_process';
4
4
  import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
5
5
  import os from 'os';
6
6
  import 'chalk';
7
7
  import 'node:util';
8
- import './configuration-8EAa2X9P.mjs';
8
+ import './configuration-1FabKklB.mjs';
9
9
  import 'node:fs';
10
10
  import 'node:os';
11
11
  import 'node:path';
12
- import './package-BMBwnCn3.mjs';
12
+ import './package-DTcaIhjW.mjs';
13
13
  import 'node:fs/promises';
14
14
 
15
15
  const PLIST_LABEL = "com.happy-cli.daemon";
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-BILSzq2s.cjs');
3
+ var logger = require('./logger-BP1SW7Cs.cjs');
4
4
  var require$$0 = require('fs');
5
5
  var child_process = require('child_process');
6
6
  var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
7
7
  var os = require('os');
8
8
  require('chalk');
9
9
  require('node:util');
10
- require('./configuration-CAfdO4IC.cjs');
10
+ require('./configuration-C0ctLGW2.cjs');
11
11
  require('node:fs');
12
12
  require('node:os');
13
13
  require('node:path');
14
- require('./package-Bbfq2KR7.cjs');
14
+ require('./package-CYDdLA6R.cjs');
15
15
  require('node:fs/promises');
16
16
 
17
17
  const PLIST_LABEL = "com.happy-cli.daemon";