very-happy-cli 0.2.188 → 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 (190) hide show
  1. package/dist/{AcpBackend-B8AYkp5n.cjs → AcpBackend-DRPJ2g9G.cjs} +3 -3
  2. package/dist/{AcpBackend-2loP7MpF.mjs → AcpBackend-fj16v_cf.mjs} +3 -3
  3. package/dist/{AcpSessionManager-C17doAoR.mjs → AcpSessionManager-BZPmUDL5.mjs} +3 -3
  4. package/dist/{AcpSessionManager-CLqo9R9Y.cjs → AcpSessionManager-DM-KKg6v.cjs} +3 -3
  5. package/dist/{BasePermissionHandler-CrfyUmqO.mjs → BasePermissionHandler-CVtH-snr.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-C8UEcFz0.cjs → BasePermissionHandler-DjM16uJz.cjs} +1 -1
  7. package/dist/{acpSessionResume-OuYlLGxL.cjs → acpSessionResume-2BTMsB7_.cjs} +1 -1
  8. package/dist/{acpSessionResume-F705a1cF.mjs → acpSessionResume-Dxl1LRAT.mjs} +1 -1
  9. package/dist/{agentHome-Dc7LYF3d.mjs → agentHome-CHctmMzZ.mjs} +4 -4
  10. package/dist/{agentHome-DsKHJ_Sf.cjs → agentHome-W17n1gnH.cjs} +4 -4
  11. package/dist/{api-DNKa7kVy.mjs → api-B0yN68XH.mjs} +9 -9
  12. package/dist/{api-BOqjYd5r.cjs → api-BDuuyys8.cjs} +9 -9
  13. package/dist/{apiMachine--rcPpMmt.cjs → apiMachine-iddD-F19.cjs} +13 -13
  14. package/dist/{apiMachine-Di1G9ECW.mjs → apiMachine-mc9CsKuS.mjs} +13 -13
  15. package/dist/{attachmentContent-BFRMLong.cjs → attachmentContent-Cc5b7TPr.cjs} +2 -2
  16. package/dist/{attachmentContent-C9S4ekAz.mjs → attachmentContent-CcIdMfAx.mjs} +2 -2
  17. package/dist/{auth-CQtfznF0.cjs → auth-B7tVmyfX.cjs} +8 -8
  18. package/dist/{auth-BNhhk2Fr.mjs → auth-CyrVvWHF.mjs} +5 -5
  19. package/dist/{auth-Bzwo_vOM.mjs → auth-DNAgkUkB.mjs} +8 -8
  20. package/dist/{auth-CXmI92aj.cjs → auth-DQKSpaEf.cjs} +5 -5
  21. package/dist/{auto-DHYOLnXB.mjs → auto-BklCipw1.mjs} +16 -15
  22. package/dist/{auto-DXLdaX5O.cjs → auto-CetlumDo.cjs} +16 -15
  23. package/dist/{bootstrap-eJ1l7VYl.cjs → bootstrap-CDY-Vz8q.cjs} +2 -2
  24. package/dist/{bootstrap-Di38SnpN.mjs → bootstrap-DfXwkUQb.mjs} +2 -2
  25. package/dist/{browser-D3uBFRQu.cjs → browser-D1yzC0Tu.cjs} +1 -1
  26. package/dist/{browser-6Cg7G6bb.mjs → browser-vb0k1zfI.mjs} +1 -1
  27. package/dist/{claudeLocal-BBaE4QF_.cjs → claudeLocal-2dJIiTIq.cjs} +4 -4
  28. package/dist/{claudeLocal-CqaEs-81.mjs → claudeLocal-Bid_rC_v.mjs} +4 -4
  29. package/dist/{claudeLocalLauncher-BDUPxtsI.mjs → claudeLocalLauncher-5pzpETxd.mjs} +9 -9
  30. package/dist/{claudeLocalLauncher-wPxKtH_P.cjs → claudeLocalLauncher-Jm5oQX5Z.cjs} +9 -9
  31. package/dist/{claudeSessionFork-CmY25Fl3.cjs → claudeSessionFork-DsbcuDEJ.cjs} +1 -1
  32. package/dist/{claudeSessionFork-DzWFzj9m.mjs → claudeSessionFork-DzecSBO4.mjs} +1 -1
  33. package/dist/{client-DWws_aQK.mjs → client-B161HwAk.mjs} +2 -2
  34. package/dist/{client-C2HcMqRF.cjs → client-BNmFaRXZ.cjs} +3 -3
  35. package/dist/{client-qJ0y8fus.mjs → client-C9Ecbtko.mjs} +3 -3
  36. package/dist/{client-DcDE6Ifk.mjs → client-CvjjadIE.mjs} +2 -2
  37. package/dist/{client-DmY03OZZ.cjs → client-D0aYWt53.cjs} +2 -2
  38. package/dist/{client-agH03Irm.cjs → client-DIfxYk7B.cjs} +2 -2
  39. package/dist/codex/happyMcpStdioBridge.cjs +16 -15
  40. package/dist/codex/happyMcpStdioBridge.mjs +16 -15
  41. package/dist/{codexAppServerClient-DgE99i7X.mjs → codexAppServerClient-BlVmpjR-.mjs} +27 -3
  42. package/dist/{codexAppServerClient-DwzC8LR0.cjs → codexAppServerClient-CO9f4Jr8.cjs} +27 -3
  43. package/dist/{codexCommand-1vFEA1KT.cjs → codexCommand-BfoRP6E9.cjs} +117 -54
  44. package/dist/{codexCommand-DUSVzbKh.mjs → codexCommand-CAMR4g5o.mjs} +115 -52
  45. package/dist/{codexTermination-Bybovr2z.mjs → codexTermination-BvGlN02_.mjs} +1 -1
  46. package/dist/{codexTermination-DuDPyBRR.cjs → codexTermination-IrLZQzKC.cjs} +1 -1
  47. package/dist/{config-C4xOL5bH.cjs → config-BGFqQGvh.cjs} +3 -3
  48. package/dist/{config-BrzZ0O-6.mjs → config-CtMgGPvf.mjs} +3 -3
  49. package/dist/{configuration-BZHpFD7K.mjs → configuration-1FabKklB.mjs} +1 -1
  50. package/dist/{configuration-DyPW9mVa.cjs → configuration-C0ctLGW2.cjs} +1 -1
  51. package/dist/{connect-Cw_INlj8.mjs → connect-0lSugpjf.mjs} +12 -12
  52. package/dist/{connect-DurKwMEo.cjs → connect-DSw-2f52.cjs} +12 -12
  53. package/dist/{context-t7YV0aZc.mjs → context-BgxbXWKS.mjs} +1 -1
  54. package/dist/{context-2xDvjkQp.cjs → context-D-hEk5pC.cjs} +1 -1
  55. package/dist/{controlClient-Bw56NIrj.mjs → controlClient-DwNnNAUx.mjs} +3 -3
  56. package/dist/{controlClient-DvFaPsg6.cjs → controlClient-F7hAEEy2.cjs} +3 -3
  57. package/dist/{createSessionMetadata-Dn5BkLfU.mjs → createSessionMetadata-CG6Klinp.mjs} +2 -2
  58. package/dist/{createSessionMetadata-Dpg6bV6f.cjs → createSessionMetadata-DezS33OM.cjs} +2 -2
  59. package/dist/{defaultPermissionMode-Dlm0q1m0.cjs → defaultPermissionMode-5EvgRq38.cjs} +2 -2
  60. package/dist/{defaultPermissionMode-DMTnlccv.mjs → defaultPermissionMode-e2bIIJG4.mjs} +2 -2
  61. package/dist/{deterministicJson-CsRckxVq.mjs → deterministicJson-BMwgK21e.mjs} +12 -12
  62. package/dist/{deterministicJson-D0BrV1FD.cjs → deterministicJson-D0LU_XbO.cjs} +12 -12
  63. package/dist/{doctor-B4HQiW6j.mjs → doctor-D16hySse.mjs} +7 -7
  64. package/dist/{doctor-CYe4d9kU.cjs → doctor-wVNvRarN.cjs} +7 -7
  65. package/dist/{downloadTarget-tYMV_VHo.mjs → downloadTarget-C6tqaXGm.mjs} +6 -6
  66. package/dist/{downloadTarget-CuhBVvuC.cjs → downloadTarget-aNcCxVRL.cjs} +6 -6
  67. package/dist/{ensureDaemonRunning-Ce3BlWiR.cjs → ensureDaemonRunning-CIghxgDR.cjs} +5 -5
  68. package/dist/{ensureDaemonRunning-DVtIG9z7.mjs → ensureDaemonRunning-DZq8bvsp.mjs} +5 -5
  69. package/dist/{handleResumeCommand-BU1uMNyv.mjs → handleResumeCommand-BNnD7EuD.mjs} +5 -5
  70. package/dist/{handleResumeCommand-CLxsmAW0.cjs → handleResumeCommand-CMUTygsm.cjs} +5 -5
  71. package/dist/{index-DoXbGEAi.cjs → index-4TpmBb2Q.cjs} +3 -3
  72. package/dist/{index-wWJJAQRk.cjs → index-B81qV_F_.cjs} +4 -4
  73. package/dist/{index-DDz0Ftoy.mjs → index-BCQr-5Ei.mjs} +4 -4
  74. package/dist/{index-ChX0eVXw.mjs → index-BuiG8hmg.mjs} +47 -44
  75. package/dist/{index-B1OxWiNG.mjs → index-CKd20r1W.mjs} +3 -3
  76. package/dist/{index-DG1kGjkF.cjs → index-CnzsOD19.cjs} +48 -45
  77. package/dist/{index-KwuXqLwe.cjs → index-De02DNu5.cjs} +4 -4
  78. package/dist/{index-CVHRt3SS.mjs → index-Df0bc_et.mjs} +4 -4
  79. package/dist/index.cjs +2 -2
  80. package/dist/index.mjs +2 -2
  81. package/dist/{install-CMa_FOWu.mjs → install-23ehAdTD.mjs} +3 -3
  82. package/dist/{install-cAYvHxXR.cjs → install-DNbIEJUk.cjs} +3 -3
  83. package/dist/lib.cjs +11 -11
  84. package/dist/lib.d.cts +8 -0
  85. package/dist/lib.d.mts +8 -0
  86. package/dist/lib.mjs +11 -11
  87. package/dist/{lidState-d1vgQ3n7.cjs → lidState-B4dHJCeS.cjs} +1 -1
  88. package/dist/{lidState-D-lsD1FS.mjs → lidState-q5Its2Hm.mjs} +1 -1
  89. package/dist/{localHappyAgentAuth-DucSnCg3.cjs → localHappyAgentAuth-CG2nPD_H.cjs} +1 -1
  90. package/dist/{localHappyAgentAuth-wvDp-nGj.mjs → localHappyAgentAuth-C_G5u5lY.mjs} +1 -1
  91. package/dist/{logger-C3vZG6Q0.cjs → logger-BP1SW7Cs.cjs} +2 -2
  92. package/dist/{logger-RpzJ4d8V.mjs → logger-DOKH3Zbh.mjs} +2 -2
  93. package/dist/{machineMetadata-CAvFq1Jg.cjs → machineMetadata-BKX3ov9g.cjs} +3 -3
  94. package/dist/{machineMetadata-CiQ2_1Mq.mjs → machineMetadata-D-5qeIqd.mjs} +3 -3
  95. package/dist/{main-IPhaImjm.mjs → main-DODz8DQE.mjs} +46 -46
  96. package/dist/{main-ChpYcFZi.cjs → main-ndpVIaSG.cjs} +46 -46
  97. package/dist/{mcp-CWnMvju6.mjs → mcp-BBwbSODp.mjs} +15 -14
  98. package/dist/{mcp-2xF232hL.cjs → mcp-Bc4U4exu.cjs} +15 -14
  99. package/dist/{mirrorProtocol-CVzPObON.cjs → mirrorProtocol-CiA3hO2y.cjs} +2 -2
  100. package/dist/{mirrorProtocol-Dr7fNq8V.mjs → mirrorProtocol-D2vTWteS.mjs} +2 -2
  101. package/dist/{package-Gnf_935w.cjs → package-CYDdLA6R.cjs} +7 -7
  102. package/dist/{package-CwB8rFJt.mjs → package-DTcaIhjW.mjs} +7 -7
  103. package/dist/{panels-DTlTsndU.cjs → panels-C2xZ8rqU.cjs} +5 -5
  104. package/dist/{panels-L1mSkC-y.mjs → panels-DCaLxlSL.mjs} +5 -5
  105. package/dist/{peerTools-C1E5cQ86.cjs → peerTools-B4315xjX.cjs} +5 -5
  106. package/dist/{peerTools-2_8Bw9PU.mjs → peerTools-BtrUnSwz.mjs} +5 -5
  107. package/dist/{persistence-Bn4qEbDg.mjs → persistence-0INrP3aB.mjs} +2 -2
  108. package/dist/{persistence-CqtjFiD1.cjs → persistence-CrzC7yr_.cjs} +2 -2
  109. package/dist/{piRunnerArgs-BI8yQRBZ.cjs → piRunnerArgs-BtzW_kfh.cjs} +1 -1
  110. package/dist/{piRunnerArgs-DWBb63W9.mjs → piRunnerArgs-DRuxMlX1.mjs} +1 -1
  111. package/dist/{piRuntime-Do8oqbm3.mjs → piRuntime-BMAFpIBV.mjs} +1 -1
  112. package/dist/{piRuntime--mQ43MSM.cjs → piRuntime-DEbPE_kW.cjs} +1 -1
  113. package/dist/{piTerminal-GC1KHTYQ.mjs → piTerminal-DQXV8_we.mjs} +17 -16
  114. package/dist/{piTerminal-BzcvLFsP.cjs → piTerminal-MtxDtBE2.cjs} +17 -16
  115. package/dist/{pushNotifications-Bb-QSqXw.cjs → pushNotifications-CalIS9sq.cjs} +2 -2
  116. package/dist/{pushNotifications-BThg4nVd.mjs → pushNotifications-Cq1s8YVK.mjs} +2 -2
  117. package/dist/{query-CkgIJ_Dy.mjs → query-BYiPBHPC.mjs} +1 -1
  118. package/dist/{query-Bz3pocKH.cjs → query-CE2XDhhw.cjs} +1 -1
  119. package/dist/{rateLimitReporter-BkHyvLru.cjs → rateLimitReporter-BKmoOZQi.cjs} +3 -3
  120. package/dist/{rateLimitReporter-Iw4k3Bbr.mjs → rateLimitReporter-DR5LXuiQ.mjs} +3 -3
  121. package/dist/{rateLimitWindows-CQ4tIQnx.mjs → rateLimitWindows-5vIuNjko.mjs} +1 -1
  122. package/dist/{rateLimitWindows-Bm_dcQGW.cjs → rateLimitWindows-Cs56YJCH.cjs} +1 -1
  123. package/dist/{registerCommonHandlers-CaWl9ll1.mjs → registerCommonHandlers-DWkTysjD.mjs} +2 -2
  124. package/dist/{registerCommonHandlers-CIs6H2DV.cjs → registerCommonHandlers-DZPozYxc.cjs} +2 -2
  125. package/dist/{specialCommands-DHU7TNeK.mjs → registerKillSessionHandler-CSCTRIbI.mjs} +6 -59
  126. package/dist/{specialCommands-BsvSoDhC.cjs → registerKillSessionHandler-DhCjrs44.cjs} +5 -62
  127. package/dist/{remoteSessionClient-DgUMfPW4.cjs → remoteSessionClient-Dq8XTLQP.cjs} +5 -5
  128. package/dist/{remoteSessionClient-uPj7omsw.mjs → remoteSessionClient-Vfj_5g2-.mjs} +5 -5
  129. package/dist/{reportProgressTool-DUEq3xAL.mjs → reportProgressTool-B7zmX7NJ.mjs} +2 -2
  130. package/dist/{reportProgressTool-CaJ8EwLq.cjs → reportProgressTool-DznxPKES.cjs} +2 -2
  131. package/dist/{run-DyyGMqND.cjs → run-Ca8BiNCp.cjs} +34 -33
  132. package/dist/{run-DTUJBD6p.mjs → run-DSfNcR62.mjs} +34 -33
  133. package/dist/{runClaude-8JDaPoGQ.cjs → runClaude-ClQQcgoO.cjs} +21 -21
  134. package/dist/{runClaude-DTNvIz2J.mjs → runClaude-hoepv-0X.mjs} +21 -21
  135. package/dist/{runClaudeDeps-CgGkgg7e.mjs → runClaudeDeps-D_v8t2SK.mjs} +46 -43
  136. package/dist/{runClaudeDeps-BeLo5zss.cjs → runClaudeDeps-ck5_GYlP.cjs} +43 -39
  137. package/dist/{runGemini-eU8UOzfc.mjs → runGemini-CTr2-cYG.mjs} +48 -47
  138. package/dist/{runGemini-BSOdU563.cjs → runGemini-Cj0XsMiM.cjs} +50 -49
  139. package/dist/{runOpenClaw-CYyFoGRZ.cjs → runOpenClaw-BoN1e3lP.cjs} +26 -25
  140. package/dist/{runOpenClaw-D8RZiA1e.mjs → runOpenClaw-CdDMntiV.mjs} +24 -23
  141. package/dist/{sandbox-C8zfNX-4.cjs → sandbox-BY2h19gc.cjs} +4 -4
  142. package/dist/{sandbox-DlPahdhl.mjs → sandbox-DcaWB-Ou.mjs} +4 -4
  143. package/dist/selfCheck-BQ_H2Sns.mjs +86 -0
  144. package/dist/{selfCheck-D28nvuPJ.cjs → selfCheck-DFS_GUaQ.cjs} +37 -37
  145. package/dist/{send-C58kX4qz.cjs → send-BMsUYU6g.cjs} +9 -8
  146. package/dist/{send-DBpv-1eh.mjs → send-UBTHHNvZ.mjs} +9 -8
  147. package/dist/{server-J5K6pOox.mjs → server-Dt3mCtfQ.mjs} +4 -4
  148. package/dist/{server-I_CETZzn.cjs → server-YrHMHNz1.cjs} +6 -6
  149. package/dist/{sessionLock-DjE7O0LS.cjs → sessionLock-DSqiP2lH.cjs} +3 -3
  150. package/dist/{sessionLock-C7Wg1RVd.mjs → sessionLock-tEFvFXLD.mjs} +3 -3
  151. package/dist/{sessionOps-DGMpl9NB.cjs → sessionOps-BzeOKIEF.cjs} +27 -4
  152. package/dist/{sessionOps-CYjMT7Ad.mjs → sessionOps-CljctDs5.mjs} +27 -4
  153. package/dist/{sessionProvider-TLiFn9kD.mjs → sessionProvider-BnUFSJXM.mjs} +5 -5
  154. package/dist/{sessionProvider-DVtxrOuM.cjs → sessionProvider-ORgzmkXy.cjs} +5 -5
  155. package/dist/{sessionScanner-BZ1ZSn6I.cjs → sessionScanner-Cr6PJ3PT.cjs} +3 -3
  156. package/dist/{sessionScanner-CknV1IlN.mjs → sessionScanner-DZUlkdF6.mjs} +3 -3
  157. package/dist/{sessions-DU4bxkap.mjs → sessions-15cag-su.mjs} +11 -10
  158. package/dist/{sessions-CTkBKs5U.cjs → sessions-aIo_HjmY.cjs} +11 -10
  159. package/dist/{setupOfflineReconnection-DaOXnGuH.mjs → setupOfflineReconnection-B7I8R2Ex.mjs} +2 -2
  160. package/dist/{setupOfflineReconnection-CQHNuP_0.cjs → setupOfflineReconnection-tV0Q1dgR.cjs} +2 -2
  161. package/dist/{spawn-DdnYTtQe.mjs → spawn-ByrQgruJ.mjs} +16 -15
  162. package/dist/{spawn-C0wZc03S.cjs → spawn-VG-HjJiR.cjs} +16 -15
  163. package/dist/{spawnAgents-D-7wMw-a.mjs → spawnAgents-Bh1RPShN.mjs} +3 -1
  164. package/dist/{spawnAgents-BjyU78Ue.cjs → spawnAgents-C1-4m7aN.cjs} +3 -1
  165. package/dist/{spawnHappyCLI-CnyyJk74.mjs → spawnHappyCLI-CEsXwz5V.mjs} +1 -1
  166. package/dist/{spawnHappyCLI-BJUd974I.cjs → spawnHappyCLI-CxiR2Qoy.cjs} +1 -1
  167. package/dist/specialCommands-J3JFOq0J.cjs +60 -0
  168. package/dist/specialCommands-MXUN0wfI.mjs +54 -0
  169. package/dist/{startFileWatcher-DBboREco.cjs → startFileWatcher-C-XCZ5t2.cjs} +1 -1
  170. package/dist/{startFileWatcher-CpO5Mwbr.mjs → startFileWatcher-DkEeeAtL.mjs} +1 -1
  171. package/dist/{startupSessionCreate-C1u2dtz8.cjs → startupSessionCreate-CYc8mra-.cjs} +1 -1
  172. package/dist/{startupSessionCreate-BgaVuvQp.mjs → startupSessionCreate-npXe2TdN.mjs} +1 -1
  173. package/dist/{sync-I8NYmycF.mjs → sync-BvDMkKAN.mjs} +1 -1
  174. package/dist/{sync-6HFRJP1h.cjs → sync-CoChLEIg.cjs} +1 -1
  175. package/dist/{systemPrompt-C1RSY_60.mjs → systemPrompt-CgDaPigN.mjs} +1 -1
  176. package/dist/{systemPrompt-BDWj5QSL.cjs → systemPrompt-Dy_Rf-0Z.cjs} +1 -1
  177. package/dist/{teams-GpLFbXXE.mjs → teams-BC4_e5hR.mjs} +6 -6
  178. package/dist/{teams-eUD7ymif.cjs → teams-DPvfLAk8.cjs} +6 -6
  179. package/dist/{time-umG7yHkb.mjs → time-CUK37wiV.mjs} +1 -1
  180. package/dist/{time-BAJRbB6U.cjs → time-XwEZxKGc.cjs} +1 -1
  181. package/dist/{titleGenerator-iqb2jOF1.cjs → titleGenerator-DVX0NZUn.cjs} +2 -2
  182. package/dist/{titleGenerator-dmFlxkRs.mjs → titleGenerator-DWRVdqMU.mjs} +1 -1
  183. package/dist/{todo-CT4AJ3sH.mjs → todo-BNMGXneA.mjs} +5 -5
  184. package/dist/{todo-DsR7WnQS.cjs → todo-CKGrSrRE.cjs} +5 -5
  185. package/dist/{tools-BOWazSD6.mjs → tools-CCIEAVbB.mjs} +1 -1
  186. package/dist/{tools-30E66QL_.cjs → tools-CjMafO_D.cjs} +1 -1
  187. package/dist/{uninstall-BtTc9hHa.cjs → uninstall-BdFbTXnL.cjs} +3 -3
  188. package/dist/{uninstall-DImXs6VZ.mjs → uninstall-CJvJ7gjr.mjs} +3 -3
  189. package/package.json +7 -7
  190. package/dist/selfCheck-4bcdHPFQ.mjs +0 -86
@@ -6,15 +6,15 @@ import { createRequire } from 'node:module';
6
6
  import { randomBytes } from 'node:crypto';
7
7
  import { spawn } from 'node:child_process';
8
8
  import { createInterface } from 'node:readline/promises';
9
- import { c as configuration } from './configuration-BZHpFD7K.mjs';
10
- import { u as updateSettings } from './persistence-Bn4qEbDg.mjs';
9
+ import { c as configuration } from './configuration-1FabKklB.mjs';
10
+ import { u as updateSettings } from './persistence-0INrP3aB.mjs';
11
11
  import 'node:os';
12
- import './package-CwB8rFJt.mjs';
12
+ import './package-DTcaIhjW.mjs';
13
13
  import 'node:fs/promises';
14
14
  import 'zod';
15
15
  import './authRelay-DhQhkBvX.mjs';
16
16
  import 'tweetnacl';
17
- import './logger-RpzJ4d8V.mjs';
17
+ import './logger-DOKH3Zbh.mjs';
18
18
  import 'node:util';
19
19
 
20
20
  function resolveLocalSignupBootstrap(configuredMode, configuredInviteCodes, generatedInviteCode) {
@@ -8,15 +8,15 @@ var module$1 = require('node:module');
8
8
  var node_crypto = require('node:crypto');
9
9
  var node_child_process = require('node:child_process');
10
10
  var promises = require('node:readline/promises');
11
- var configuration = require('./configuration-DyPW9mVa.cjs');
12
- var persistence = require('./persistence-CqtjFiD1.cjs');
11
+ var configuration = require('./configuration-C0ctLGW2.cjs');
12
+ var persistence = require('./persistence-CrzC7yr_.cjs');
13
13
  require('node:os');
14
- require('./package-Gnf_935w.cjs');
14
+ require('./package-CYDdLA6R.cjs');
15
15
  require('node:fs/promises');
16
16
  require('zod');
17
17
  require('./authRelay-Dy1qU9td.cjs');
18
18
  require('tweetnacl');
19
- require('./logger-C3vZG6Q0.cjs');
19
+ require('./logger-BP1SW7Cs.cjs');
20
20
  require('node:util');
21
21
 
22
22
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
@@ -33,9 +33,9 @@ function resolveLocalSignupBootstrap(configuredMode, configuredInviteCodes, gene
33
33
  };
34
34
  }
35
35
 
36
- const __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('server-I_CETZzn.cjs', document.baseURI).href)));
36
+ const __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('server-YrHMHNz1.cjs', document.baseURI).href)));
37
37
  const __dirname$1 = path.dirname(__filename$1);
38
- const require_ = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('server-I_CETZzn.cjs', document.baseURI).href)));
38
+ const require_ = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('server-YrHMHNz1.cjs', document.baseURI).href)));
39
39
  const PRISMA_QUERY_ENGINE_FILES = {
40
40
  "arm64-darwin": "libquery_engine-darwin-arm64.dylib.node",
41
41
  "x64-darwin": "libquery_engine-darwin.dylib.node",
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var persistence = require('./persistence-CqtjFiD1.cjs');
3
+ var persistence = require('./persistence-CrzC7yr_.cjs');
4
4
  var node_fs = require('node:fs');
5
5
  var path = require('node:path');
6
- var configuration = require('./configuration-DyPW9mVa.cjs');
7
- var logger = require('./logger-C3vZG6Q0.cjs');
6
+ var configuration = require('./configuration-C0ctLGW2.cjs');
7
+ var logger = require('./logger-BP1SW7Cs.cjs');
8
8
  var processTreeSnapshot = require('./processTreeSnapshot-mDbnuojn.cjs');
9
9
 
10
10
  const PROCESS_IDENTITY_FIELDS = [
@@ -1,8 +1,8 @@
1
- import { n as hibernationReplaySeq } from './persistence-Bn4qEbDg.mjs';
1
+ import { n as hibernationReplaySeq } from './persistence-0INrP3aB.mjs';
2
2
  import { existsSync, readFileSync, unlinkSync, mkdirSync, renameSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
- import { c as configuration, w as writePrivateFileSync } from './configuration-BZHpFD7K.mjs';
5
- import { l as logger } from './logger-RpzJ4d8V.mjs';
4
+ import { c as configuration, w as writePrivateFileSync } from './configuration-1FabKklB.mjs';
5
+ import { l as logger } from './logger-DOKH3Zbh.mjs';
6
6
  import { s as snapshotTree, k as killSurvivors } from './processTreeSnapshot-CuLJDNC-.mjs';
7
7
 
8
8
  const PROCESS_IDENTITY_FIELDS = [
@@ -1,12 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  var axios = require('axios');
4
- var configuration = require('./configuration-DyPW9mVa.cjs');
4
+ var configuration = require('./configuration-C0ctLGW2.cjs');
5
5
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
6
- var controlClient = require('./controlClient-DvFaPsg6.cjs');
7
- var persistence = require('./persistence-CqtjFiD1.cjs');
6
+ var controlClient = require('./controlClient-F7hAEEy2.cjs');
7
+ var persistence = require('./persistence-CrzC7yr_.cjs');
8
8
  var node_crypto = require('node:crypto');
9
- var time = require('./time-BAJRbB6U.cjs');
9
+ var time = require('./time-XwEZxKGc.cjs');
10
+ var specialCommands = require('./specialCommands-J3JFOq0J.cjs');
10
11
  var socket_ioClient = require('socket.io-client');
11
12
  var backgroundTaskActivity = require('./backgroundTaskActivity-CBvUdj39.cjs');
12
13
 
@@ -199,6 +200,19 @@ function isSteerPrompt(body) {
199
200
  const b = asRecord(body);
200
201
  return !!b && asRecord(b.meta)?.delivery === "steer";
201
202
  }
203
+ function isControlCommand(text) {
204
+ return specialCommands.compactCommandText(text) !== null || specialCommands.parseClear(text).isClear;
205
+ }
206
+ const COMPACTION_FAILED = "Compaction failed:";
207
+ function controlCommandVerdict(body) {
208
+ const b = asRecord(body);
209
+ const data = b?.role === "agent" && b.content?.type === "event" ? asRecord(b.content.data) : null;
210
+ if (data?.type !== "message" || typeof data.message !== "string") return null;
211
+ const text = data.message.trim();
212
+ if (text === "Compaction completed" || text === "Context was reset") return { status: "completed", error: null };
213
+ if (text.startsWith(COMPACTION_FAILED)) return { status: "failed", error: text.slice(COMPACTION_FAILED.length).trim() || null };
214
+ return null;
215
+ }
202
216
  function userPromptText(body) {
203
217
  return isUserPrompt(body) ? body.content.text : null;
204
218
  }
@@ -219,6 +233,8 @@ function analyzeLatestTurn(entries, options = {}) {
219
233
  let startedAfterPrompt = false;
220
234
  const emitsStarts = entries.some((entry) => sessionEnvelope(entry.body)?.ev?.t === "turn-start");
221
235
  const steerAnchor = userIndex >= 0 && isSteerPrompt(entries[userIndex].body);
236
+ const anchorText = userIndex >= 0 ? userPromptText(entries[userIndex].body) : null;
237
+ const commandAnchor = anchorText !== null && isControlCommand(anchorText);
222
238
  for (let i = userIndex + 1; i < entries.length; i++) {
223
239
  const body = entries[i].body;
224
240
  if (options.anchor && isUserPrompt(body)) {
@@ -243,6 +259,13 @@ function analyzeLatestTurn(entries, options = {}) {
243
259
  error = typeof env.ev.error === "string" ? env.ev.error : null;
244
260
  continue;
245
261
  }
262
+ const verdict = commandAnchor && !ended ? controlCommandVerdict(body) : null;
263
+ if (verdict) {
264
+ ended = true;
265
+ status = verdict.status;
266
+ error = verdict.error;
267
+ continue;
268
+ }
246
269
  const piece = agentPiece(body);
247
270
  if (!piece) continue;
248
271
  if (piece.kind === "tool") texts = [];
@@ -1,10 +1,11 @@
1
1
  import axios from 'axios';
2
- import { c as configuration } from './configuration-BZHpFD7K.mjs';
2
+ import { c as configuration } from './configuration-1FabKklB.mjs';
3
3
  import { e as encodeBase64, g as encrypt, d as decodeBase64, h as decrypt } from './authRelay-DhQhkBvX.mjs';
4
- import { l as listDaemonSessions, f as stopDaemonSession } from './controlClient-Bw56NIrj.mjs';
5
- import { b as readCredentialsForConfiguredRelay, c as readPersistedSessions } from './persistence-Bn4qEbDg.mjs';
4
+ import { l as listDaemonSessions, f as stopDaemonSession } from './controlClient-DwNnNAUx.mjs';
5
+ import { b as readCredentialsForConfiguredRelay, c as readPersistedSessions } from './persistence-0INrP3aB.mjs';
6
6
  import { randomUUID } from 'node:crypto';
7
- import { d as delay } from './time-umG7yHkb.mjs';
7
+ import { d as delay } from './time-CUK37wiV.mjs';
8
+ import { c as compactCommandText, p as parseClear } from './specialCommands-MXUN0wfI.mjs';
8
9
  import { io } from 'socket.io-client';
9
10
  import { b as backgroundTasksReport } from './backgroundTaskActivity-8PdPxrvy.mjs';
10
11
 
@@ -197,6 +198,19 @@ function isSteerPrompt(body) {
197
198
  const b = asRecord(body);
198
199
  return !!b && asRecord(b.meta)?.delivery === "steer";
199
200
  }
201
+ function isControlCommand(text) {
202
+ return compactCommandText(text) !== null || parseClear(text).isClear;
203
+ }
204
+ const COMPACTION_FAILED = "Compaction failed:";
205
+ function controlCommandVerdict(body) {
206
+ const b = asRecord(body);
207
+ const data = b?.role === "agent" && b.content?.type === "event" ? asRecord(b.content.data) : null;
208
+ if (data?.type !== "message" || typeof data.message !== "string") return null;
209
+ const text = data.message.trim();
210
+ if (text === "Compaction completed" || text === "Context was reset") return { status: "completed", error: null };
211
+ if (text.startsWith(COMPACTION_FAILED)) return { status: "failed", error: text.slice(COMPACTION_FAILED.length).trim() || null };
212
+ return null;
213
+ }
200
214
  function userPromptText(body) {
201
215
  return isUserPrompt(body) ? body.content.text : null;
202
216
  }
@@ -217,6 +231,8 @@ function analyzeLatestTurn(entries, options = {}) {
217
231
  let startedAfterPrompt = false;
218
232
  const emitsStarts = entries.some((entry) => sessionEnvelope(entry.body)?.ev?.t === "turn-start");
219
233
  const steerAnchor = userIndex >= 0 && isSteerPrompt(entries[userIndex].body);
234
+ const anchorText = userIndex >= 0 ? userPromptText(entries[userIndex].body) : null;
235
+ const commandAnchor = anchorText !== null && isControlCommand(anchorText);
220
236
  for (let i = userIndex + 1; i < entries.length; i++) {
221
237
  const body = entries[i].body;
222
238
  if (options.anchor && isUserPrompt(body)) {
@@ -241,6 +257,13 @@ function analyzeLatestTurn(entries, options = {}) {
241
257
  error = typeof env.ev.error === "string" ? env.ev.error : null;
242
258
  continue;
243
259
  }
260
+ const verdict = commandAnchor && !ended ? controlCommandVerdict(body) : null;
261
+ if (verdict) {
262
+ ended = true;
263
+ status = verdict.status;
264
+ error = verdict.error;
265
+ continue;
266
+ }
244
267
  const piece = agentPiece(body);
245
268
  if (!piece) continue;
246
269
  if (piece.kind === "tool") texts = [];
@@ -1,15 +1,15 @@
1
1
  import chalk from 'chalk';
2
- import { c as configuration } from './configuration-BZHpFD7K.mjs';
3
- import { r as restartDaemonSession } from './controlClient-Bw56NIrj.mjs';
2
+ import { c as configuration } from './configuration-1FabKklB.mjs';
3
+ import { r as restartDaemonSession } from './controlClient-DwNnNAUx.mjs';
4
4
  import { r as readSessionProviders, b as readProviders, w as writeSessionProviders, u as updateBindings, s as sessionProvidersPath } from './providerBinding-CYubGg-Z.mjs';
5
5
  import 'node:fs';
6
6
  import 'node:os';
7
7
  import 'node:path';
8
- import './package-CwB8rFJt.mjs';
8
+ import './package-DTcaIhjW.mjs';
9
9
  import 'node:fs/promises';
10
- import './logger-RpzJ4d8V.mjs';
10
+ import './logger-DOKH3Zbh.mjs';
11
11
  import 'node:util';
12
- import './persistence-Bn4qEbDg.mjs';
12
+ import './persistence-0INrP3aB.mjs';
13
13
  import 'zod';
14
14
  import './authRelay-DhQhkBvX.mjs';
15
15
  import 'node:crypto';
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var configuration = require('./configuration-DyPW9mVa.cjs');
5
- var controlClient = require('./controlClient-DvFaPsg6.cjs');
4
+ var configuration = require('./configuration-C0ctLGW2.cjs');
5
+ var controlClient = require('./controlClient-F7hAEEy2.cjs');
6
6
  var providerBinding = require('./providerBinding-B-Qbx9W2.cjs');
7
7
  require('node:fs');
8
8
  require('node:os');
9
9
  require('node:path');
10
- require('./package-Gnf_935w.cjs');
10
+ require('./package-CYDdLA6R.cjs');
11
11
  require('node:fs/promises');
12
- require('./logger-C3vZG6Q0.cjs');
12
+ require('./logger-BP1SW7Cs.cjs');
13
13
  require('node:util');
14
- require('./persistence-CqtjFiD1.cjs');
14
+ require('./persistence-CrzC7yr_.cjs');
15
15
  require('zod');
16
16
  require('./authRelay-Dy1qU9td.cjs');
17
17
  require('node:crypto');
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var sync = require('./sync-6HFRJP1h.cjs');
3
+ var sync = require('./sync-CoChLEIg.cjs');
4
4
  var types = require('./types-CRS-srZK.cjs');
5
5
  var path$1 = require('node:path');
6
6
  var node_fs = require('node:fs');
7
7
  var transcriptCursor = require('./transcriptCursor-DcXGLeSc.cjs');
8
- var logger = require('./logger-C3vZG6Q0.cjs');
9
- var startFileWatcher = require('./startFileWatcher-DBboREco.cjs');
8
+ var logger = require('./logger-BP1SW7Cs.cjs');
9
+ var startFileWatcher = require('./startFileWatcher-C-XCZ5t2.cjs');
10
10
  var path = require('./path-B7zW-WwE.cjs');
11
11
 
12
12
  class Future {
@@ -1,10 +1,10 @@
1
- import { I as InvalidateSync } from './sync-I8NYmycF.mjs';
1
+ import { I as InvalidateSync } from './sync-BvDMkKAN.mjs';
2
2
  import { R as RawJSONLinesSchema } from './types-CkqAACXx.mjs';
3
3
  import { join } from 'node:path';
4
4
  import { statSync } from 'node:fs';
5
5
  import { r as readTranscriptIncrement, i as isValidTranscriptHint } from './transcriptCursor-B7T_gkQ0.mjs';
6
- import { l as logger } from './logger-RpzJ4d8V.mjs';
7
- import { s as startFileWatcher } from './startFileWatcher-CpO5Mwbr.mjs';
6
+ import { l as logger } from './logger-DOKH3Zbh.mjs';
7
+ import { s as startFileWatcher } from './startFileWatcher-DkEeeAtL.mjs';
8
8
  import { g as getProjectPath } from './path-D2wdaNSk.mjs';
9
9
 
10
10
  class Future {
@@ -1,27 +1,28 @@
1
1
  import chalk from 'chalk';
2
- import { D as DEFAULT_RECENT_LIMIT, M as MAX_READ_LIMIT, l as listAccountSessions, a as listSessions, w as waitForTurnEnd, T as TurnWaitTimeoutError, r as readSessionTranscript, b as stopSession, c as resolvePermissionRequest, d as archiveSession } from './sessionOps-CYjMT7Ad.mjs';
2
+ import { D as DEFAULT_RECENT_LIMIT, M as MAX_READ_LIMIT, l as listAccountSessions, a as listSessions, w as waitForTurnEnd, T as TurnWaitTimeoutError, r as readSessionTranscript, b as stopSession, c as resolvePermissionRequest, d as archiveSession } from './sessionOps-CljctDs5.mjs';
3
3
  import { i as isValidSessionId } from './ids-DU6sLx4C.mjs';
4
- import { c as cliPeerSelf, e as executeSessionPeerTool, l as listPeerSessions, s as sendPeerMessage, P as PEER_SCOPES } from './peerTools-2_8Bw9PU.mjs';
5
- import { c as readPersistedSessions } from './persistence-Bn4qEbDg.mjs';
4
+ import { c as cliPeerSelf, e as executeSessionPeerTool, l as listPeerSessions, s as sendPeerMessage, P as PEER_SCOPES } from './peerTools-BtrUnSwz.mjs';
5
+ import { c as readPersistedSessions } from './persistence-0INrP3aB.mjs';
6
6
  import { resolve } from 'node:path';
7
- import { f as fillForeignAccountRows, l as listRemoteSessions, a as listRemotePeers, w as waitForRemoteTurnEnd, r as readRemoteTranscript } from './remoteSessionClient-uPj7omsw.mjs';
7
+ import { f as fillForeignAccountRows, l as listRemoteSessions, a as listRemotePeers, w as waitForRemoteTurnEnd, r as readRemoteTranscript } from './remoteSessionClient-Vfj_5g2-.mjs';
8
8
  import 'axios';
9
- import './configuration-BZHpFD7K.mjs';
9
+ import './configuration-1FabKklB.mjs';
10
10
  import 'node:fs';
11
11
  import 'node:os';
12
- import './package-CwB8rFJt.mjs';
12
+ import './package-DTcaIhjW.mjs';
13
13
  import 'node:fs/promises';
14
14
  import './authRelay-DhQhkBvX.mjs';
15
15
  import 'node:crypto';
16
16
  import 'tweetnacl';
17
- import './controlClient-Bw56NIrj.mjs';
18
- import './logger-RpzJ4d8V.mjs';
17
+ import './controlClient-DwNnNAUx.mjs';
18
+ import './logger-DOKH3Zbh.mjs';
19
19
  import 'node:util';
20
- import './time-umG7yHkb.mjs';
20
+ import './time-CUK37wiV.mjs';
21
+ import './specialCommands-MXUN0wfI.mjs';
21
22
  import 'socket.io-client';
22
23
  import './backgroundTaskActivity-8PdPxrvy.mjs';
23
24
  import 'zod';
24
- import './client-DWws_aQK.mjs';
25
+ import './client-B161HwAk.mjs';
25
26
 
26
27
  const MACHINE_ID_RE = /^[a-zA-Z0-9_-]{1,128}$/;
27
28
  const ACTIONS = ["list", "read", "stop", "archive", "approve", "deny", "peers", "message"];
@@ -1,29 +1,30 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var sessionOps = require('./sessionOps-DGMpl9NB.cjs');
4
+ var sessionOps = require('./sessionOps-BzeOKIEF.cjs');
5
5
  var ids = require('./ids-B6ZC0HGt.cjs');
6
- var peerTools = require('./peerTools-C1E5cQ86.cjs');
7
- var persistence = require('./persistence-CqtjFiD1.cjs');
6
+ var peerTools = require('./peerTools-B4315xjX.cjs');
7
+ var persistence = require('./persistence-CrzC7yr_.cjs');
8
8
  var path = require('node:path');
9
- var remoteSessionClient = require('./remoteSessionClient-DgUMfPW4.cjs');
9
+ var remoteSessionClient = require('./remoteSessionClient-Dq8XTLQP.cjs');
10
10
  require('axios');
11
- require('./configuration-DyPW9mVa.cjs');
11
+ require('./configuration-C0ctLGW2.cjs');
12
12
  require('node:fs');
13
13
  require('node:os');
14
- require('./package-Gnf_935w.cjs');
14
+ require('./package-CYDdLA6R.cjs');
15
15
  require('node:fs/promises');
16
16
  require('./authRelay-Dy1qU9td.cjs');
17
17
  require('node:crypto');
18
18
  require('tweetnacl');
19
- require('./controlClient-DvFaPsg6.cjs');
20
- require('./logger-C3vZG6Q0.cjs');
19
+ require('./controlClient-F7hAEEy2.cjs');
20
+ require('./logger-BP1SW7Cs.cjs');
21
21
  require('node:util');
22
- require('./time-BAJRbB6U.cjs');
22
+ require('./time-XwEZxKGc.cjs');
23
+ require('./specialCommands-J3JFOq0J.cjs');
23
24
  require('socket.io-client');
24
25
  require('./backgroundTaskActivity-CBvUdj39.cjs');
25
26
  require('zod');
26
- require('./client-agH03Irm.cjs');
27
+ require('./client-DIfxYk7B.cjs');
27
28
 
28
29
  const MACHINE_ID_RE = /^[a-zA-Z0-9_-]{1,128}$/;
29
30
  const ACTIONS = ["list", "read", "stop", "archive", "approve", "deny", "peers", "message"];
@@ -1,5 +1,5 @@
1
- import { c as configuration } from './configuration-BZHpFD7K.mjs';
2
- import { s as startOfflineReconnection } from './api-DNKa7kVy.mjs';
1
+ import { c as configuration } from './configuration-1FabKklB.mjs';
2
+ import { s as startOfflineReconnection } from './api-B0yN68XH.mjs';
3
3
 
4
4
  function createOfflineSessionStub(sessionTag) {
5
5
  return {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var configuration = require('./configuration-DyPW9mVa.cjs');
4
- var api = require('./api-BOqjYd5r.cjs');
3
+ var configuration = require('./configuration-C0ctLGW2.cjs');
4
+ var api = require('./api-BDuuyys8.cjs');
5
5
 
6
6
  function createOfflineSessionStub(sessionTag) {
7
7
  return {
@@ -1,19 +1,19 @@
1
- import { r as resolveSpawnPermissionMode, c as chooseProject, j as joinProject, a as resolveFirstMessageMeta, w as waitsForModelCatalog, s as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES, S as SPAWN_AGENTS } from './spawnAgents-D-7wMw-a.mjs';
2
- import { s as sharedProjectsClient } from './client-DWws_aQK.mjs';
1
+ import { r as resolveSpawnPermissionMode, c as chooseProject, j as joinProject, a as resolveFirstMessageMeta, w as waitsForModelCatalog, s as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES, S as SPAWN_AGENTS } from './spawnAgents-Bh1RPShN.mjs';
2
+ import { s as sharedProjectsClient } from './client-B161HwAk.mjs';
3
3
  import chalk from 'chalk';
4
4
  import { readFileSync, statSync } from 'node:fs';
5
5
  import { resolve } from 'node:path';
6
- import { b as checkIfDaemonRunningAndCleanupStaleState, g as spawnDaemonSession, f as stopDaemonSession } from './controlClient-Bw56NIrj.mjs';
7
- import { c as readPersistedSessions } from './persistence-Bn4qEbDg.mjs';
6
+ import { b as checkIfDaemonRunningAndCleanupStaleState, g as spawnDaemonSession, f as stopDaemonSession } from './controlClient-DwNnNAUx.mjs';
7
+ import { c as readPersistedSessions } from './persistence-0INrP3aB.mjs';
8
8
  import { p as parseLatestModelTable } from './index-WKyN-bNy.mjs';
9
- import { c as configuration } from './configuration-BZHpFD7K.mjs';
9
+ import { c as configuration } from './configuration-1FabKklB.mjs';
10
10
  import { g as getProjectPath } from './path-D2wdaNSk.mjs';
11
- import { f as forkSession, F as ForkSourceMissingError } from './claudeSessionFork-DzWFzj9m.mjs';
12
- import { C as CodexAppServerClient } from './codexAppServerClient-DgE99i7X.mjs';
11
+ import { f as forkSession, F as ForkSourceMissingError } from './claudeSessionFork-DzecSBO4.mjs';
12
+ import { C as CodexAppServerClient } from './codexAppServerClient-BlVmpjR-.mjs';
13
13
  import { f as forkCodexThread } from './codexThreadFork-R76RU5H0.mjs';
14
- import { e as sendUserMessage, f as readSessionMetadata, g as waitForSessionKey, s as sessionWebUrl } from './sessionOps-CYjMT7Ad.mjs';
15
- import { i as isValidSpawnOrigin } from './createSessionMetadata-Dn5BkLfU.mjs';
16
- import { l as logger } from './logger-RpzJ4d8V.mjs';
14
+ import { e as sendUserMessage, f as readSessionMetadata, g as waitForSessionKey, s as sessionWebUrl } from './sessionOps-CljctDs5.mjs';
15
+ import { i as isValidSpawnOrigin } from './createSessionMetadata-CG6Klinp.mjs';
16
+ import { l as logger } from './logger-DOKH3Zbh.mjs';
17
17
  import { w as waitForForkBackfill } from './forkBackfill-DYIjlN1Z.mjs';
18
18
  import 'node:fs/promises';
19
19
  import 'zod';
@@ -22,17 +22,18 @@ import 'node:crypto';
22
22
  import 'tweetnacl';
23
23
  import '@paralleldrive/cuid2';
24
24
  import 'node:os';
25
- import './package-CwB8rFJt.mjs';
25
+ import './package-DTcaIhjW.mjs';
26
26
  import 'node:readline';
27
27
  import 'node:child_process';
28
28
  import 'cross-spawn';
29
29
  import './contentLogMetadata-BlWI0egu.mjs';
30
30
  import './manager-BEsI4qt3.mjs';
31
31
  import '@anthropic-ai/sandbox-runtime';
32
- import './rateLimitWindows-CQ4tIQnx.mjs';
32
+ import './rateLimitWindows-5vIuNjko.mjs';
33
33
  import './processTree-CP5IvQ2Z.mjs';
34
34
  import 'axios';
35
- import './time-umG7yHkb.mjs';
35
+ import './time-CUK37wiV.mjs';
36
+ import './specialCommands-MXUN0wfI.mjs';
36
37
  import 'socket.io-client';
37
38
  import './backgroundTaskActivity-8PdPxrvy.mjs';
38
39
  import './projectPath-BTBIMB57.mjs';
@@ -203,8 +204,8 @@ ${chalk.bold("Options:")}
203
204
  1-24 chars: [a-z0-9] plus - or _. Shows as a chip in
204
205
  the web list and is searchable as #<name>.
205
206
  --permission-mode <m> Permission mode for the new session: default,
206
- acceptEdits, plan, yolo, bypassPermissions.
207
- Default = the web launcher's: yolo for claude /
207
+ acceptEdits, plan, yolo, bypassPermissions (Codex
208
+ also read-only, safe-yolo). Default = the web launcher's: yolo for claude /
208
209
  codex / pi, 'default' for gemini / openclaw. A fork
209
210
  keeps its source's mode. 'default' stops at the first
210
211
  un-allowlisted tool until someone approves it (see
@@ -1,21 +1,21 @@
1
1
  'use strict';
2
2
 
3
- var spawnAgents = require('./spawnAgents-BjyU78Ue.cjs');
4
- var client = require('./client-agH03Irm.cjs');
3
+ var spawnAgents = require('./spawnAgents-C1-4m7aN.cjs');
4
+ var client = require('./client-DIfxYk7B.cjs');
5
5
  var chalk = require('chalk');
6
6
  var node_fs = require('node:fs');
7
7
  var path$1 = require('node:path');
8
- var controlClient = require('./controlClient-DvFaPsg6.cjs');
9
- var persistence = require('./persistence-CqtjFiD1.cjs');
8
+ var controlClient = require('./controlClient-F7hAEEy2.cjs');
9
+ var persistence = require('./persistence-CrzC7yr_.cjs');
10
10
  var index = require('./index-BOe6dKnL.cjs');
11
- var configuration = require('./configuration-DyPW9mVa.cjs');
11
+ var configuration = require('./configuration-C0ctLGW2.cjs');
12
12
  var path = require('./path-B7zW-WwE.cjs');
13
- var claudeSessionFork = require('./claudeSessionFork-CmY25Fl3.cjs');
14
- var codexAppServerClient = require('./codexAppServerClient-DwzC8LR0.cjs');
13
+ var claudeSessionFork = require('./claudeSessionFork-DsbcuDEJ.cjs');
14
+ var codexAppServerClient = require('./codexAppServerClient-CO9f4Jr8.cjs');
15
15
  var codexThreadFork = require('./codexThreadFork-DNekT4nQ.cjs');
16
- var sessionOps = require('./sessionOps-DGMpl9NB.cjs');
17
- var createSessionMetadata = require('./createSessionMetadata-Dpg6bV6f.cjs');
18
- var logger = require('./logger-C3vZG6Q0.cjs');
16
+ var sessionOps = require('./sessionOps-BzeOKIEF.cjs');
17
+ var createSessionMetadata = require('./createSessionMetadata-DezS33OM.cjs');
18
+ var logger = require('./logger-BP1SW7Cs.cjs');
19
19
  var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
20
20
  require('node:fs/promises');
21
21
  require('zod');
@@ -24,17 +24,18 @@ require('node:crypto');
24
24
  require('tweetnacl');
25
25
  require('@paralleldrive/cuid2');
26
26
  require('node:os');
27
- require('./package-Gnf_935w.cjs');
27
+ require('./package-CYDdLA6R.cjs');
28
28
  require('node:readline');
29
29
  require('node:child_process');
30
30
  require('cross-spawn');
31
31
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
32
32
  require('./manager-HrEj442o.cjs');
33
33
  require('@anthropic-ai/sandbox-runtime');
34
- require('./rateLimitWindows-Bm_dcQGW.cjs');
34
+ require('./rateLimitWindows-Cs56YJCH.cjs');
35
35
  require('./processTree-CMHWlVse.cjs');
36
36
  require('axios');
37
- require('./time-BAJRbB6U.cjs');
37
+ require('./time-XwEZxKGc.cjs');
38
+ require('./specialCommands-J3JFOq0J.cjs');
38
39
  require('socket.io-client');
39
40
  require('./backgroundTaskActivity-CBvUdj39.cjs');
40
41
  require('./projectPath-C3ioB4Bu.cjs');
@@ -205,8 +206,8 @@ ${chalk.bold("Options:")}
205
206
  1-24 chars: [a-z0-9] plus - or _. Shows as a chip in
206
207
  the web list and is searchable as #<name>.
207
208
  --permission-mode <m> Permission mode for the new session: default,
208
- acceptEdits, plan, yolo, bypassPermissions.
209
- Default = the web launcher's: yolo for claude /
209
+ acceptEdits, plan, yolo, bypassPermissions (Codex
210
+ also read-only, safe-yolo). Default = the web launcher's: yolo for claude /
210
211
  codex / pi, 'default' for gemini / openclaw. A fork
211
212
  keeps its source's mode. 'default' stops at the first
212
213
  un-allowlisted tool until someone approves it (see
@@ -75,7 +75,9 @@ const ALLOWED_SPAWN_PERMISSION_MODES = [
75
75
  "acceptEdits",
76
76
  "plan",
77
77
  "yolo",
78
- "bypassPermissions"
78
+ "bypassPermissions",
79
+ "read-only",
80
+ "safe-yolo"
79
81
  ];
80
82
  function sanitizeSpawnPermissionMode(value) {
81
83
  if (typeof value !== "string") return null;
@@ -77,7 +77,9 @@ const ALLOWED_SPAWN_PERMISSION_MODES = [
77
77
  "acceptEdits",
78
78
  "plan",
79
79
  "yolo",
80
- "bypassPermissions"
80
+ "bypassPermissions",
81
+ "read-only",
82
+ "safe-yolo"
81
83
  ];
82
84
  function sanitizeSpawnPermissionMode(value) {
83
85
  if (typeof value !== "string") return null;
@@ -1,7 +1,7 @@
1
1
  import { spawn } from 'cross-spawn';
2
2
  import { join } from 'node:path';
3
3
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
4
- import { l as logger } from './logger-RpzJ4d8V.mjs';
4
+ import { l as logger } from './logger-DOKH3Zbh.mjs';
5
5
  import { existsSync } from 'node:fs';
6
6
 
7
7
  let cachedRuntime = null;
@@ -3,7 +3,7 @@
3
3
  var spawn = require('cross-spawn');
4
4
  var path = require('node:path');
5
5
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
6
- var logger = require('./logger-C3vZG6Q0.cjs');
6
+ var logger = require('./logger-BP1SW7Cs.cjs');
7
7
  var node_fs = require('node:fs');
8
8
 
9
9
  let cachedRuntime = null;
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ const COMPACT_RE = /^[/\uFF0F]compact(?![A-Za-z0-9_:-])([\s\S]*)$/i;
4
+ const LEADING_SPACE_RE = /^[\s\u3000\uFEFF\u200B]+/;
5
+ function parseCompact(message) {
6
+ const match = message.replace(LEADING_SPACE_RE, "").match(COMPACT_RE);
7
+ if (!match) {
8
+ return {
9
+ isCompact: false,
10
+ originalMessage: message
11
+ };
12
+ }
13
+ const instructions = match[1].replace(/\u3000/g, " ").trim();
14
+ return {
15
+ isCompact: true,
16
+ originalMessage: instructions ? `/compact ${instructions}` : "/compact"
17
+ };
18
+ }
19
+ function compactCommandText(message) {
20
+ const result = parseCompact(message);
21
+ return result.isCompact ? result.originalMessage : null;
22
+ }
23
+ function parseClear(message) {
24
+ const trimmed = message.trim();
25
+ return {
26
+ isClear: trimmed === "/clear"
27
+ };
28
+ }
29
+ function parseSpecialCommand(message) {
30
+ const compactResult = parseCompact(message);
31
+ if (compactResult.isCompact) {
32
+ return {
33
+ type: "compact",
34
+ originalMessage: compactResult.originalMessage
35
+ };
36
+ }
37
+ const clearResult = parseClear(message);
38
+ if (clearResult.isClear) {
39
+ return {
40
+ type: "clear"
41
+ };
42
+ }
43
+ const trimmed = message.trim().toLowerCase();
44
+ if (trimmed === "/mcp") {
45
+ return { type: "mcp" };
46
+ }
47
+ if (trimmed === "/skills") {
48
+ return { type: "skills" };
49
+ }
50
+ return {
51
+ type: null
52
+ };
53
+ }
54
+ const COMPACT_UNSUPPORTED_NOTICE = "This session type does not support /compact";
55
+
56
+ exports.COMPACT_UNSUPPORTED_NOTICE = COMPACT_UNSUPPORTED_NOTICE;
57
+ exports.compactCommandText = compactCommandText;
58
+ exports.parseClear = parseClear;
59
+ exports.parseCompact = parseCompact;
60
+ exports.parseSpecialCommand = parseSpecialCommand;