very-happy-cli 0.2.193 → 0.2.195

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 (210) hide show
  1. package/dist/{AcpBackend-B4PwjqHt.mjs → AcpBackend-BTIF87yb.mjs} +3 -3
  2. package/dist/{AcpBackend-DtJCgftG.cjs → AcpBackend-CXSV6FF5.cjs} +3 -3
  3. package/dist/{AcpSessionManager-D4qshX_H.cjs → AcpSessionManager-BbWODxSp.cjs} +2 -2
  4. package/dist/{AcpSessionManager-BzKWgkdP.mjs → AcpSessionManager-CEpU_GVk.mjs} +2 -2
  5. package/dist/{BasePermissionHandler-DV6UM6e9.mjs → BasePermissionHandler-B5ka7Aaf.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-5iG-cvA2.cjs → BasePermissionHandler-C6iF28Ct.cjs} +1 -1
  7. package/dist/{account-DvpA60oU.cjs → account-Bvcdk9CH.cjs} +11 -11
  8. package/dist/{account-Dco_nGT4.mjs → account-WSJcdMGl.mjs} +11 -11
  9. package/dist/{accountService-Cd7bnkfd.mjs → accountService-BtEgv0fC.mjs} +4 -4
  10. package/dist/{accountService-CuUSJDhP.cjs → accountService-DL6xhVUa.cjs} +4 -4
  11. package/dist/{acpSessionResume-Bk9mjXZ9.cjs → acpSessionResume-B2hd1Wub.cjs} +1 -1
  12. package/dist/{acpSessionResume-TQwN9ZZE.mjs → acpSessionResume-BYMm4w8Q.mjs} +1 -1
  13. package/dist/{agentHome-c2dlgcw1.cjs → agentHome-CVM15_3U.cjs} +4 -4
  14. package/dist/{agentHome-Bep8semY.mjs → agentHome-Jl8yWAjF.mjs} +4 -4
  15. package/dist/{api-DUfunY3x.mjs → api-DOzNOoVJ.mjs} +10 -10
  16. package/dist/{api-CBE_a88I.cjs → api-TpjZJXV-.cjs} +10 -10
  17. package/dist/{apiMachine-BqtG0IWm.cjs → apiMachine-COkvJAmd.cjs} +35 -19
  18. package/dist/{apiMachine-CU_bw5nV.mjs → apiMachine-M-Fs9g5Y.mjs} +35 -19
  19. package/dist/{attachmentContent-B3AzuYqk.cjs → attachmentContent-BiBOjTXX.cjs} +2 -2
  20. package/dist/{attachmentContent-KNIZxwlu.mjs → attachmentContent-D6PjMVDq.mjs} +2 -2
  21. package/dist/{auth-SJ_dPw7H.cjs → auth-BOceB8cL.cjs} +8 -8
  22. package/dist/{auth-CZ7pKS-j.mjs → auth-BfHLe1gU.mjs} +8 -8
  23. package/dist/{auth-jN5dNqTO.mjs → auth-Bfe3Ue_B.mjs} +5 -5
  24. package/dist/{auth-DCjxpI6Z.cjs → auth-DfcdjMUp.cjs} +5 -5
  25. package/dist/{auto-DC0Sq-qB.mjs → auto-CDeivd5V.mjs} +18 -18
  26. package/dist/{auto-B_59RYH1.cjs → auto-CnTitokD.cjs} +18 -18
  27. package/dist/{bootstrap-B3gMpU9e.mjs → bootstrap-BxcKrgR9.mjs} +2 -2
  28. package/dist/{bootstrap-CoJu9VnB.cjs → bootstrap-DpyP22Wx.cjs} +2 -2
  29. package/dist/{browser-LHW2hBH8.mjs → browser-Bb0Gqffc.mjs} +1 -1
  30. package/dist/{browser-v1pdPP1E.cjs → browser-ac0aPrVE.cjs} +1 -1
  31. package/dist/{claudeAccountEnv-BL1pR_37.mjs → claudeAccountEnv-NyoxjLuJ.mjs} +1 -1
  32. package/dist/{claudeAccountEnv-CEX_EMZr.cjs → claudeAccountEnv-_O3x5AJ1.cjs} +1 -1
  33. package/dist/{claudeLocal-BrzM2RBI.cjs → claudeLocal-RGWhplSr.cjs} +5 -5
  34. package/dist/{claudeLocal-BZUgA5G2.mjs → claudeLocal-otwxWF6e.mjs} +5 -5
  35. package/dist/{claudeLocalLauncher-A0AQyHFi.mjs → claudeLocalLauncher-CTibA4cU.mjs} +10 -10
  36. package/dist/{claudeLocalLauncher-XAMpXUM7.cjs → claudeLocalLauncher-yG-MBhY7.cjs} +10 -10
  37. package/dist/{claudeSessionFork-Mhn2fYe_.cjs → claudeSessionFork-DH_Su4uO.cjs} +104 -38
  38. package/dist/{claudeSessionFork-_GwIlmMB.mjs → claudeSessionFork-HFFwivGY.mjs} +105 -40
  39. package/dist/{client-DwbhrX6D.mjs → client-BhAjEv8Z.mjs} +4 -4
  40. package/dist/{client-D2GWkd-T.cjs → client-BlV73Gbw.cjs} +2 -2
  41. package/dist/{client-Bde4QVIn.mjs → client-CydHzidF.mjs} +2 -2
  42. package/dist/{client-CJr8Pjwm.cjs → client-DcXLNaF2.cjs} +2 -2
  43. package/dist/{client-7RnI9J0W.mjs → client-DpTk1S7C.mjs} +2 -2
  44. package/dist/{client-DLlnmAPL.cjs → client-DxjYsJ8d.cjs} +4 -4
  45. package/dist/codex/happyMcpStdioBridge.cjs +16 -16
  46. package/dist/codex/happyMcpStdioBridge.mjs +16 -16
  47. package/dist/{codexAccount-NOX5pmQf.mjs → codexAccount-CKXpXq0B.mjs} +1 -1
  48. package/dist/{codexAccount-BDQjRbtI.cjs → codexAccount-CYhQir50.cjs} +1 -1
  49. package/dist/{codexAppServerClient-DWEsZUC4.cjs → codexAppServerClient-C1xBSuVk.cjs} +60 -3
  50. package/dist/{codexAppServerClient-B3QJV6Ey.mjs → codexAppServerClient-mln0W8vT.mjs} +60 -3
  51. package/dist/{codexCommand-D1xlj4sT.mjs → codexCommand-CmWhYduF.mjs} +136 -47
  52. package/dist/{codexCommand-Bg8AmxVm.cjs → codexCommand-Plm-_aRy.cjs} +137 -48
  53. package/dist/{codexTermination-ByX9GcEJ.cjs → codexTermination-C9c80lIF.cjs} +1 -1
  54. package/dist/{codexTermination-CaWAVQjZ.mjs → codexTermination-QltAvFpq.mjs} +1 -1
  55. package/dist/{codexThreadFork-5kwoKjMu.cjs → codexThreadFork-C6ZmcT2z.cjs} +22 -1
  56. package/dist/{codexThreadFork-DobPd19R.mjs → codexThreadFork-CVzAqELg.mjs} +22 -2
  57. package/dist/{config-B2GGbiTv.cjs → config-BH75enfT.cjs} +3 -3
  58. package/dist/{config-C2XYEwXz.mjs → config-DK27kWTT.mjs} +3 -3
  59. package/dist/{configuration-BBK0rmmj.cjs → configuration-CKaq0tNe.cjs} +1 -1
  60. package/dist/{configuration-ThKBP_zY.mjs → configuration-CwfgJZKs.mjs} +1 -1
  61. package/dist/{connect-C3tZs_NC.cjs → connect-_QkCFMxO.cjs} +13 -13
  62. package/dist/{connect-BirnCl9q.mjs → connect-h3_VMJst.mjs} +13 -13
  63. package/dist/{context-wDp0aZBK.cjs → context-DbENnaVc.cjs} +1 -1
  64. package/dist/{context-C0EFLnOg.mjs → context-DcOpvIiR.mjs} +1 -1
  65. package/dist/{controlClient-DwWTns3A.cjs → controlClient-D_HIbnnS.cjs} +3 -3
  66. package/dist/{controlClient-Ckl8N1MS.mjs → controlClient-Dv6IvvUq.mjs} +4 -4
  67. package/dist/{createSessionMetadata-DqZ6h02H.cjs → createSessionMetadata-CusO22Am.cjs} +2 -2
  68. package/dist/{createSessionMetadata-vug4Cv8z.mjs → createSessionMetadata-DimBsfVG.mjs} +2 -2
  69. package/dist/{daemonAccounts-CpGDY_4k.cjs → daemonAccounts-CxMJw7x2.cjs} +2 -2
  70. package/dist/{daemonAccounts-DwPwKxvv.mjs → daemonAccounts-QT-RDDEp.mjs} +3 -3
  71. package/dist/{defaultPermissionMode-DF5AfeBb.mjs → defaultPermissionMode-B-Vt8ECY.mjs} +1 -1
  72. package/dist/{defaultPermissionMode-BakXiqRr.cjs → defaultPermissionMode-BCWCMONI.cjs} +1 -1
  73. package/dist/{deterministicJson-t33SsuRC.cjs → deterministicJson-BYqRKTmL.cjs} +13 -13
  74. package/dist/{deterministicJson-BzX94gi3.mjs → deterministicJson-CMApF2Rl.mjs} +13 -13
  75. package/dist/{doctor-C1zyOSXw.mjs → doctor-BkyoZ0Uw.mjs} +7 -7
  76. package/dist/{doctor-B9ug1LZb.cjs → doctor-Czbl7gk2.cjs} +7 -7
  77. package/dist/{downloadTarget-T1id2Gh6.cjs → downloadTarget-C5BzZ_bz.cjs} +6 -6
  78. package/dist/{downloadTarget-Baslc6jW.mjs → downloadTarget-CM0BZNSY.mjs} +6 -6
  79. package/dist/{ensureDaemonRunning-CoAg11Zi.cjs → ensureDaemonRunning-D508DmcP.cjs} +5 -5
  80. package/dist/{ensureDaemonRunning-C6ERYK-O.mjs → ensureDaemonRunning-P399ot_C.mjs} +5 -5
  81. package/dist/{handleResumeCommand-CrlqDuz7.mjs → handleResumeCommand-BK_2ShBf.mjs} +5 -5
  82. package/dist/{handleResumeCommand-DPi-sPm7.cjs → handleResumeCommand-CCgK7-0v.cjs} +5 -5
  83. package/dist/{index-Cn73rdtQ.mjs → index-BENDk1i9.mjs} +4 -4
  84. package/dist/{index-rocrvOYG.cjs → index-BalJgriQ.cjs} +4 -4
  85. package/dist/{index-D1YnIih6.mjs → index-BlWyEpMw.mjs} +2 -1
  86. package/dist/{index-B2dJA8VG.cjs → index-Bz9Bj7l1.cjs} +3 -3
  87. package/dist/{index-B1swQJUS.cjs → index-CGKn-GTK.cjs} +4 -4
  88. package/dist/{index-Bkslzin5.cjs → index-CSO1-mZ9.cjs} +42 -42
  89. package/dist/{index-BUFrKZeQ.cjs → index-D9Hidq-g.cjs} +2 -0
  90. package/dist/{index-BcSPg3c5.mjs → index-DR3NJLVk.mjs} +4 -4
  91. package/dist/{index-BbdV2mzy.mjs → index-QSAckvNv.mjs} +3 -3
  92. package/dist/{index-fZO4nF6e.mjs → index-_DRVKtSd.mjs} +43 -43
  93. package/dist/index.cjs +2 -2
  94. package/dist/index.mjs +2 -2
  95. package/dist/{install-CArXjPfW.cjs → install-CqXaN7_C.cjs} +3 -3
  96. package/dist/{install-CChhyV2G.mjs → install-DMTvEPrB.mjs} +3 -3
  97. package/dist/lib.cjs +12 -12
  98. package/dist/lib.mjs +12 -12
  99. package/dist/{lidState-B_v6qgfE.cjs → lidState-Btv4N_B8.cjs} +1 -1
  100. package/dist/{lidState-B6yYKjNK.mjs → lidState-Cb3TbhPb.mjs} +1 -1
  101. package/dist/{localHappyAgentAuth-jJH0n67S.cjs → localHappyAgentAuth-B3Q5DNLR.cjs} +1 -1
  102. package/dist/{localHappyAgentAuth-KRlg_aI0.mjs → localHappyAgentAuth-CAAIUJyY.mjs} +1 -1
  103. package/dist/{logger-CX3x2eI4.cjs → logger-BZ5TcbEh.cjs} +2 -2
  104. package/dist/{logger-JV7-4Q_6.mjs → logger-UgDpJA2u.mjs} +2 -2
  105. package/dist/{machineMetadata-D5-SW9kv.mjs → machineMetadata-BYHC-3Vx.mjs} +3 -3
  106. package/dist/{machineMetadata-DhZuM0iB.cjs → machineMetadata-DLb-m4fL.cjs} +3 -3
  107. package/dist/{main-CFOdXbPD.mjs → main-CwW6lHIw.mjs} +47 -47
  108. package/dist/{main-1x1HGQEy.cjs → main-LavPb80B.cjs} +47 -47
  109. package/dist/{mcp-BnKBSEh7.cjs → mcp-BQbWhqUh.cjs} +18 -18
  110. package/dist/{mcp-R6lMcFLO.mjs → mcp-BjYz5Ymf.mjs} +18 -18
  111. package/dist/{mirrorProtocol-CD4ntuZJ.mjs → mirrorProtocol-BH5eT99U.mjs} +3 -3
  112. package/dist/{mirrorProtocol-DO-KtvAL.cjs → mirrorProtocol-Ci9YmCEV.cjs} +3 -3
  113. package/dist/{package-uzlvxa5S.cjs → package-B61-BBlh.cjs} +7 -7
  114. package/dist/{package-Bw3H6VLn.mjs → package-C4OfB2YF.mjs} +7 -7
  115. package/dist/{panels-C46FxjmH.cjs → panels-ByprLJag.cjs} +5 -5
  116. package/dist/{panels-BamhZCoZ.mjs → panels-cBJT5Up1.mjs} +5 -5
  117. package/dist/{peerTools-D-VNNFw-.cjs → peerTools-BXSjS8lB.cjs} +5 -5
  118. package/dist/{peerTools-WtRgTSqG.mjs → peerTools-DS6GqJcn.mjs} +5 -5
  119. package/dist/{persistence-Cg4sfjQV.mjs → persistence-CQhmtobL.mjs} +2 -2
  120. package/dist/{persistence-CsmAgN-C.cjs → persistence-DBmeYlwT.cjs} +2 -2
  121. package/dist/{piRunnerArgs-vnFygygF.cjs → piRunnerArgs-CmEE058l.cjs} +1 -1
  122. package/dist/{piRunnerArgs-BbaAQvb4.mjs → piRunnerArgs-Dy-3vN_Q.mjs} +1 -1
  123. package/dist/{piRuntime-C2uj5Ucx.cjs → piRuntime-BCXjC4__.cjs} +1 -1
  124. package/dist/{piRuntime-Bid7TBf5.mjs → piRuntime-Rq9v4M4e.mjs} +1 -1
  125. package/dist/{piTerminal-CqxgrI13.mjs → piTerminal-CRhDUqX7.mjs} +20 -20
  126. package/dist/{piTerminal-Ckpjfoqa.cjs → piTerminal-ehNQOvLL.cjs} +20 -20
  127. package/dist/{pushNotifications-BbE-qV9I.mjs → pushNotifications-67GmbVfE.mjs} +3 -3
  128. package/dist/{pushNotifications-BCg7YAiu.cjs → pushNotifications-qCS7_tDF.cjs} +3 -3
  129. package/dist/{query-vQ-HG394.cjs → query-B4QIiI7e.cjs} +1 -1
  130. package/dist/{query-Bfr9O_62.mjs → query-CIDBGnv6.mjs} +1 -1
  131. package/dist/{rateLimitWindows-CRARnKaI.mjs → rateLimitWindows-8-khalzj.mjs} +1 -1
  132. package/dist/{rateLimitWindows-BZl6GMwQ.cjs → rateLimitWindows-BIfLMxOk.cjs} +1 -1
  133. package/dist/{registerCommonHandlers-Cj3Nl9y-.mjs → registerCommonHandlers-C7hlztAO.mjs} +2 -2
  134. package/dist/{registerCommonHandlers-CZGmrPbT.cjs → registerCommonHandlers-G2p0MJu4.cjs} +2 -2
  135. package/dist/{registerKillSessionHandler-C3EDnW4F.cjs → registerKillSessionHandler-BWvl6wro.cjs} +6 -6
  136. package/dist/{registerKillSessionHandler-Bg9t45Ub.mjs → registerKillSessionHandler-rwXdO0t0.mjs} +6 -6
  137. package/dist/registerSideQuestionHandler-CsyPnjce.cjs +366 -0
  138. package/dist/registerSideQuestionHandler-Xg46gSVh.mjs +358 -0
  139. package/dist/{remoteSessionClient-CcSP24Zq.cjs → remoteSessionClient-D6_7vNKc.cjs} +5 -5
  140. package/dist/{remoteSessionClient--0vfA7I5.mjs → remoteSessionClient-DQSnC7ox.mjs} +5 -5
  141. package/dist/{reportProgressTool-Ddg1yVq2.cjs → reportProgressTool-CIHGKraF.cjs} +3 -3
  142. package/dist/{reportProgressTool-DVru7jc_.mjs → reportProgressTool-HjzV5y_2.mjs} +3 -3
  143. package/dist/{run-HtvH6BLi.mjs → run-M06F1958.mjs} +40 -40
  144. package/dist/{run-BTrIT_jU.cjs → run-tQ4bFkHu.cjs} +40 -40
  145. package/dist/{runClaude-ipjwAHPI.cjs → runClaude-Ct0_mShC.cjs} +28 -26
  146. package/dist/{runClaude-DsHTk5Bu.mjs → runClaude-Dm9kQZ-w.mjs} +28 -26
  147. package/dist/{runClaudeDeps-BKpwL6ln.cjs → runClaudeDeps-BT2kWCrQ.cjs} +44 -333
  148. package/dist/{runClaudeDeps-BV3vpeyY.mjs → runClaudeDeps-DNOzXjc3.mjs} +47 -336
  149. package/dist/{runGemini-DhjK6_Fp.mjs → runGemini-BvN-yeQR.mjs} +33 -33
  150. package/dist/{runGemini-B-G0_7Ab.cjs → runGemini-cua7_iuR.cjs} +33 -33
  151. package/dist/{runOpenClaw-B6lawk8n.mjs → runOpenClaw-C9E2XzmX.mjs} +18 -18
  152. package/dist/{runOpenClaw-BHIo8tkn.cjs → runOpenClaw-NpYFRhKm.cjs} +18 -18
  153. package/dist/{sandbox-CKb7pCXg.mjs → sandbox-C-BXZbt9.mjs} +4 -4
  154. package/dist/{sandbox-BAsO0ILe.cjs → sandbox-hImfD0-T.cjs} +4 -4
  155. package/dist/{selfCheck-D4VvVZNi.cjs → selfCheck-B3ulijQM.cjs} +39 -39
  156. package/dist/selfCheck-D-e9kVhc.mjs +88 -0
  157. package/dist/{send-Cz5m39QR.cjs → send-BCVQkTOl.cjs} +8 -8
  158. package/dist/{send-D8ipLKMY.mjs → send-Dv2L8IRW.mjs} +8 -8
  159. package/dist/{server-CjvgT3N9.mjs → server-BBBfuSB-.mjs} +4 -4
  160. package/dist/{server-CySyJKPH.cjs → server-DYxyCyYF.cjs} +6 -6
  161. package/dist/{sessionLock-DdDCuNUs.cjs → sessionLock-B8fsnpZD.cjs} +3 -3
  162. package/dist/{sessionLock-B73fhgQN.mjs → sessionLock-BexUoWhZ.mjs} +3 -3
  163. package/dist/{sessionOps-XSEjIqNq.cjs → sessionOps-74pSDXoS.cjs} +4 -4
  164. package/dist/{sessionOps-C65Iej_C.mjs → sessionOps-BkEgNA2O.mjs} +5 -5
  165. package/dist/{sessionProvider-Dgsty8z_.cjs → sessionProvider-CWgHsZUA.cjs} +10 -10
  166. package/dist/{sessionProvider-CLVNkfji.mjs → sessionProvider-DXkhlJE6.mjs} +10 -10
  167. package/dist/{sessionScanner-D8IVXMMH.cjs → sessionScanner-D56EkcIj.cjs} +3 -3
  168. package/dist/{sessionScanner-MW1P9Pm9.mjs → sessionScanner-Dhh1wREW.mjs} +3 -3
  169. package/dist/{sessions-BKz7gZqg.cjs → sessions-C1zRTjUe.cjs} +10 -10
  170. package/dist/{sessions-Dtk_agUL.mjs → sessions-dJR6k3JY.mjs} +10 -10
  171. package/dist/{setupOfflineReconnection-DxMiW7OV.cjs → setupOfflineReconnection-CMUdHtFT.cjs} +2 -2
  172. package/dist/{setupOfflineReconnection-Bvdy-2xd.mjs → setupOfflineReconnection-Dp1rC-eP.mjs} +2 -2
  173. package/dist/{spawn-Dm4xsZBX.mjs → spawn-D3-Weoiq.mjs} +54 -20
  174. package/dist/{spawn-DiPkJcrQ.cjs → spawn-kMKI09Kh.cjs} +54 -20
  175. package/dist/{spawnAgents-B9olJ8xn.cjs → spawnAgents-Cm23BW-D.cjs} +1 -1
  176. package/dist/{spawnAgents-I29H9nO8.mjs → spawnAgents-hKFGQaSJ.mjs} +1 -1
  177. package/dist/{spawnHappyCLI-CnMwzjWX.mjs → spawnHappyCLI-CgjpjSTT.mjs} +1 -1
  178. package/dist/{spawnHappyCLI-BYGOUda1.cjs → spawnHappyCLI-Du1IgJGA.cjs} +1 -1
  179. package/dist/{startFileWatcher-D14W6gn-.cjs → startFileWatcher-DGOnF95-.cjs} +1 -1
  180. package/dist/{startFileWatcher-DePAY1T5.mjs → startFileWatcher-DapvIGxp.mjs} +1 -1
  181. package/dist/{startupSessionCreate-DoK0IvJG.mjs → startupSessionCreate-CSi60oo_.mjs} +3 -3
  182. package/dist/{startupSessionCreate-rBHd4tc1.cjs → startupSessionCreate-rkIMVGJW.cjs} +3 -3
  183. package/dist/{store-Vej_738f.mjs → store-Tf-r1ouq.mjs} +1 -1
  184. package/dist/{store-CkNa6oj4.cjs → store-aa3CVNwS.cjs} +1 -1
  185. package/dist/{streamRelay-C0G1HOOd.cjs → streamRelay-C2Lb2z39.cjs} +1 -1
  186. package/dist/{streamRelay-C5U-C4GS.mjs → streamRelay-C9lzMo0V.mjs} +1 -1
  187. package/dist/{sync-WYBwkJvG.cjs → sync-Cj8Vhltg.cjs} +1 -1
  188. package/dist/{sync-BP6vnxVP.mjs → sync-GJkf-HGu.mjs} +1 -1
  189. package/dist/{systemPrompt-aRqBmkpw.mjs → systemPrompt-BEagRbDZ.mjs} +2 -2
  190. package/dist/{systemPrompt-BkQlCk5_.cjs → systemPrompt-Cne9i1SE.cjs} +2 -2
  191. package/dist/{teams-CGmC4ygu.mjs → teams-C_18IMNM.mjs} +7 -7
  192. package/dist/{teams-phbpwAGD.cjs → teams-ClTg6hQ1.cjs} +7 -7
  193. package/dist/{template-B9pLEP8v.cjs → template-B1AORlgU.cjs} +1 -1
  194. package/dist/{template-CL9EvQLQ.mjs → template-Ci-cyigF.mjs} +1 -1
  195. package/dist/{time-BTLcO8jp.cjs → time-BPPTQ_sE.cjs} +1 -1
  196. package/dist/{time-Cw0liIqB.mjs → time-CIkdLyza.mjs} +1 -1
  197. package/dist/{titleGenerator-Y1_7ceJC.cjs → titleGenerator-B_OgL9Pd.cjs} +3 -3
  198. package/dist/{titleGenerator-h6TmFe-c.mjs → titleGenerator-DnwTdTB_.mjs} +2 -2
  199. package/dist/{todo-BxiPiCvB.cjs → todo-DPQHtZVM.cjs} +6 -6
  200. package/dist/{todo-OKcTC_VC.mjs → todo-DmHolFRy.mjs} +6 -6
  201. package/dist/{tools-CcebYtLj.cjs → tools-B3KGMSU5.cjs} +1 -1
  202. package/dist/{tools-BR-drXZ8.mjs → tools-DqjPHq9I.mjs} +1 -1
  203. package/dist/{uninstall-D3stWKD2.mjs → uninstall-Cm97eybp.mjs} +3 -3
  204. package/dist/{uninstall-CnDeCC-M.cjs → uninstall-CrK5dgx8.cjs} +3 -3
  205. package/dist/{wrapperAccount-D2A4DuZy.cjs → wrapperAccount-BubTurHU.cjs} +2 -2
  206. package/dist/{wrapperAccount-BkufO_9g.mjs → wrapperAccount-Cq7eZRMx.mjs} +2 -2
  207. package/package.json +7 -7
  208. package/dist/rateLimitReporter-BZ8x0-6-.cjs +0 -44
  209. package/dist/rateLimitReporter-CAz7VMw4.mjs +0 -42
  210. package/dist/selfCheck-CZ-t1Xzq.mjs +0 -88
@@ -1,82 +1,83 @@
1
- import { l as logger } from './logger-JV7-4Q_6.mjs';
2
- import { u as notifyDaemonSessionEvent, v as notifyDaemonClaudeAuthFailed } from './controlClient-Ckl8N1MS.mjs';
3
- export { o as reportSessionEditToDaemon } from './controlClient-Ckl8N1MS.mjs';
1
+ import { l as logger } from './logger-UgDpJA2u.mjs';
2
+ import { u as notifyDaemonSessionEvent, v as notifyDaemonClaudeAuthFailed } from './controlClient-Dv6IvvUq.mjs';
3
+ export { o as reportSessionEditToDaemon } from './controlClient-Dv6IvvUq.mjs';
4
4
  import { s as sameBackgroundTasks, c as createBackgroundTaskTracker } from './backgroundTaskActivity-8PdPxrvy.mjs';
5
- import { c as createProjectInjector, h as hashObject, l as leadBoardFor } from './deterministicJson-BzX94gi3.mjs';
6
- export { s as startHappyServer } from './deterministicJson-BzX94gi3.mjs';
7
- import { s as sharedProjectsClient } from './client-Bde4QVIn.mjs';
5
+ import { c as createProjectInjector, h as hashObject, l as leadBoardFor } from './deterministicJson-CMApF2Rl.mjs';
6
+ export { s as startHappyServer } from './deterministicJson-CMApF2Rl.mjs';
7
+ import { s as sharedProjectsClient } from './client-CydHzidF.mjs';
8
8
  import { randomInt, randomUUID, createHash } from 'node:crypto';
9
9
  import { a as parseSpecialCommand } from './specialCommands-MXUN0wfI.mjs';
10
10
  import { M as MessageBuffer } from './sessionExitLifecycle-CzkLIgNZ.mjs';
11
11
  export { S as SessionExitGate, e as exitIntentFromArchiveFlag, s as settleSessionOnExit } from './sessionExitLifecycle-CzkLIgNZ.mjs';
12
- import { q as query } from './query-Bfr9O_62.mjs';
12
+ import { q as query } from './query-CIDBGnv6.mjs';
13
13
  import { AbortError } from '@anthropic-ai/claude-agent-sdk';
14
14
  import { m as mapToClaudeMode, p as parseClaudePermissionMode, c as resolveRemoteClaudePermissionMode } from './permissionMode-CH4FoZfU.mjs';
15
- import { c as claudeCheckSession, s as systemPrompt } from './systemPrompt-aRqBmkpw.mjs';
15
+ import { c as claudeCheckSession, s as systemPrompt } from './systemPrompt-BEagRbDZ.mjs';
16
16
  import { join, resolve, dirname } from 'node:path';
17
17
  import 'axios';
18
18
  import 'node:events';
19
19
  import 'socket.io-client';
20
- import { A as AsyncLock } from './pushNotifications-BbE-qV9I.mjs';
20
+ import { A as AsyncLock } from './pushNotifications-67GmbVfE.mjs';
21
21
  import 'tweetnacl';
22
- import { c as configuration, e as ensurePrivateDirectory } from './configuration-ThKBP_zY.mjs';
23
- import './index-D1YnIih6.mjs';
24
- import './registerCommonHandlers-Cj3Nl9y-.mjs';
22
+ import { c as configuration, e as ensurePrivateDirectory } from './configuration-CwfgJZKs.mjs';
23
+ import './index-BlWyEpMw.mjs';
24
+ import './registerCommonHandlers-C7hlztAO.mjs';
25
25
  import 'os';
26
26
  import 'child_process';
27
27
  import '@paralleldrive/cuid2';
28
- import './persistence-Cg4sfjQV.mjs';
28
+ import './persistence-CQhmtobL.mjs';
29
29
  import { c as contentLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
30
30
  import 'chalk';
31
31
  import { R as RawJSONLinesSchema } from './types-CkqAACXx.mjs';
32
32
  import { g as getProjectPath } from './path-D2wdaNSk.mjs';
33
33
  import { access } from 'fs/promises';
34
- import { d as delay } from './time-Cw0liIqB.mjs';
34
+ import { d as delay } from './time-CIkdLyza.mjs';
35
35
  import { mkdirSync, writeFileSync, readFileSync, unlinkSync, renameSync, statSync, existsSync } from 'node:fs';
36
- import { F as Future, d as describeClaudeProcessExit } from './sessionScanner-MW1P9Pm9.mjs';
37
- export { c as createSessionScanner } from './sessionScanner-MW1P9Pm9.mjs';
36
+ import { F as Future, d as describeClaudeProcessExit } from './sessionScanner-Dhh1wREW.mjs';
37
+ export { c as createSessionScanner } from './sessionScanner-Dhh1wREW.mjs';
38
38
  import { execSync } from 'node:child_process';
39
- import { S as StreamRelay } from './streamRelay-C5U-C4GS.mjs';
40
- import { C as CLAUDE_ATTACHMENT_KINDS, c as chatAttachmentDirectory, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-KNIZxwlu.mjs';
39
+ import { S as StreamRelay } from './streamRelay-C9lzMo0V.mjs';
40
+ import { C as CLAUDE_ATTACHMENT_KINDS, c as chatAttachmentDirectory, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-D6PjMVDq.mjs';
41
41
  import { writeFile, rename, unlink, readFile } from 'node:fs/promises';
42
- import { F as ForkSourceMissingError } from './claudeSessionFork-_GwIlmMB.mjs';
43
- import { w as wrapperRateLimitReporter } from './rateLimitReporter-CAz7VMw4.mjs';
44
- import { n as noteAccountAuthFailure } from './wrapperAccount-BkufO_9g.mjs';
45
- export { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-Bg9t45Ub.mjs';
46
- export { g as getEnvironmentInfo } from './doctor-C1zyOSXw.mjs';
42
+ import { F as ForkSourceMissingError } from './claudeSessionFork-HFFwivGY.mjs';
43
+ import { w as wrapperRateLimitReporter } from './registerSideQuestionHandler-Xg46gSVh.mjs';
44
+ export { d as describePendingApprovals, r as registerSideQuestionHandler, a as writeSideQuestionSettingsFile } from './registerSideQuestionHandler-Xg46gSVh.mjs';
45
+ import { n as noteAccountAuthFailure } from './wrapperAccount-Cq7eZRMx.mjs';
46
+ export { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-rwXdO0t0.mjs';
47
+ export { g as getEnvironmentInfo } from './doctor-BkyoZ0Uw.mjs';
47
48
  import { createServer } from 'node:http';
48
49
  export { E as EditReportThrottle, b as extractClaudeEditPaths } from './editPaths-BVfS_FFL.mjs';
49
50
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
50
51
  export { s as snapshotTree, t as terminateSurvivors } from './processTreeSnapshot-CuLJDNC-.mjs';
51
- import { r as resolveClaudeBinary, a as runClaudeOneShot } from './titleGenerator-h6TmFe-c.mjs';
52
- export { T as TitleGenerator } from './titleGenerator-h6TmFe-c.mjs';
52
+ import { r as resolveClaudeBinary, a as runClaudeOneShot } from './titleGenerator-DnwTdTB_.mjs';
53
+ export { T as TitleGenerator } from './titleGenerator-DnwTdTB_.mjs';
53
54
  import { B as BOARD_ANALYZER_PROMPT_PREFIX } from './oneShotPrompts-DT4p6RNd.mjs';
54
- import { i as isSelfReportFresh } from './reportProgressTool-DVru7jc_.mjs';
55
- export { c as createSelfReportState } from './reportProgressTool-DVru7jc_.mjs';
55
+ import { i as isSelfReportFresh } from './reportProgressTool-HjzV5y_2.mjs';
56
+ export { c as createSelfReportState } from './reportProgressTool-HjzV5y_2.mjs';
56
57
  import 'node:util';
57
58
  import './prompt-QHuFx9j6.mjs';
58
59
  import 'node:os';
59
60
  import 'zod';
60
61
  import './pi-CqyoZMjI.mjs';
61
62
  import './fileStore-5qpetZS0.mjs';
62
- import './client-DwbhrX6D.mjs';
63
- import './context-C0EFLnOg.mjs';
64
- import './sessionOps-C65Iej_C.mjs';
63
+ import './client-BhAjEv8Z.mjs';
64
+ import './context-DcOpvIiR.mjs';
65
+ import './sessionOps-BkEgNA2O.mjs';
65
66
  import './authRelay-DhQhkBvX.mjs';
66
67
  import './resources-CLP_MpK4.mjs';
67
- import './tools-BR-drXZ8.mjs';
68
- import './peerTools-WtRgTSqG.mjs';
68
+ import './tools-DqjPHq9I.mjs';
69
+ import './peerTools-DS6GqJcn.mjs';
69
70
  import './ids-DU6sLx4C.mjs';
70
- import './remoteSessionClient--0vfA7I5.mjs';
71
+ import './remoteSessionClient-DQSnC7ox.mjs';
71
72
  import '@modelcontextprotocol/sdk/server/mcp.js';
72
73
  import '@modelcontextprotocol/sdk/server/streamableHttp.js';
73
74
  import './limits-DIo7rEBR.mjs';
74
- import './downloadTarget-Baslc6jW.mjs';
75
+ import './downloadTarget-CM0BZNSY.mjs';
75
76
  import './terminals-Dlg0x3nY.mjs';
76
77
  import './terminalTitleSuggest-CeKsX_V6.mjs';
77
78
  import './tmuxSocket-B8Yx20sT.mjs';
78
- import './bootstrap-B3gMpU9e.mjs';
79
- import './package-Bw3H6VLn.mjs';
79
+ import './bootstrap-BxcKrgR9.mjs';
80
+ import './package-C4OfB2YF.mjs';
80
81
  import './agentGuidance-BDYt2Qy2.mjs';
81
82
  import './trimIdent-BAjmv_TG.mjs';
82
83
  import './webPanels-B2_C2-3g.mjs';
@@ -86,24 +87,24 @@ import './promptCacheTtl-Ce0TVbrx.mjs';
86
87
  import 'util';
87
88
  import 'path';
88
89
  import 'cross-spawn';
89
- import './sync-BP6vnxVP.mjs';
90
+ import './sync-GJkf-HGu.mjs';
90
91
  import './transcriptCursor-B7T_gkQ0.mjs';
91
- import './startFileWatcher-DePAY1T5.mjs';
92
+ import './startFileWatcher-DapvIGxp.mjs';
92
93
  import 'node:readline';
93
- import './rateLimitWindows-CRARnKaI.mjs';
94
- import './claudeAccountEnv-BL1pR_37.mjs';
95
- import './store-Vej_738f.mjs';
94
+ import './rateLimitWindows-8-khalzj.mjs';
95
+ import './claudeAccountEnv-NyoxjLuJ.mjs';
96
+ import './store-Tf-r1ouq.mjs';
96
97
  import './doctor-BPkYWSuq.mjs';
97
98
  import 'ps-list';
98
99
  import './doctorReadiness-C208SMN9.mjs';
99
100
  import './detectCLI-CSGMlV51.mjs';
100
101
  import 'fs';
101
102
  import './cliUpdate-Y34VGe9Y.mjs';
102
- import './piRunnerArgs-BbaAQvb4.mjs';
103
- import './acpSessionResume-TQwN9ZZE.mjs';
103
+ import './piRunnerArgs-Dy-3vN_Q.mjs';
104
+ import './acpSessionResume-BYMm4w8Q.mjs';
104
105
  import 'url';
105
106
  import 'node:module';
106
- import './client-7RnI9J0W.mjs';
107
+ import './client-DpTk1S7C.mjs';
107
108
  import './precheckCompat-DeEbilbr.mjs';
108
109
 
109
110
  const SCHEDULE_WAKEUP_GRACE_MS = 6e4;
@@ -4557,7 +4558,7 @@ async function loop(opts) {
4557
4558
  logger.debug(`[loop] Iteration with mode: ${mode}`);
4558
4559
  switch (mode) {
4559
4560
  case "local": {
4560
- const { claudeLocalLauncher } = await import('./claudeLocalLauncher-A0AQyHFi.mjs');
4561
+ const { claudeLocalLauncher } = await import('./claudeLocalLauncher-CTibA4cU.mjs');
4561
4562
  const result = await claudeLocalLauncher(session);
4562
4563
  switch (result.type) {
4563
4564
  case "switch":
@@ -4723,296 +4724,6 @@ function cleanupHookSettingsFile(filepath) {
4723
4724
  }
4724
4725
  }
4725
4726
 
4726
- function isUnsupportedSideQuestionError(error) {
4727
- const message = error instanceof Error ? error.message : String(error);
4728
- return /unknown|unsupported|not supported|unrecognized|invalid.*subtype/i.test(message);
4729
- }
4730
- async function runSideQuestionLive(ask, input) {
4731
- const history = (input.history ?? []).filter((h) => h.question.trim() && h.answer.trim()).slice(-12).map((h) => ({ question: clip(h.question.trim(), MAX_HISTORY_CHARS), response: clip(h.answer.trim(), MAX_HISTORY_CHARS) }));
4732
- const result = await ask({ question: input.question.trim(), ...history.length ? { history } : {} }, input.signal);
4733
- if (input.signal?.aborted) throw new Error("Side question cancelled");
4734
- const text = typeof result?.response === "string" ? result.response : "";
4735
- if (!text.trim()) throw new Error("Side question ended without a result");
4736
- const fallback = result.refusal_fallback?.content;
4737
- const answer = fallback ? `\u26A0 ${fallback}
4738
-
4739
- ${text}` : text;
4740
- input.onText?.(answer);
4741
- return { answer, hadContext: true, mode: "live" };
4742
- }
4743
- const SIDE_QUESTION_SYSTEM_PROMPT = [
4744
- "A user message wrapped in a side-question system-reminder is a SIDE QUESTION: answer it",
4745
- "directly in one response from the conversation context, with no tools and no action on the main task."
4746
- ].join(" ");
4747
- const SIDE_QUESTION_REMINDER = [
4748
- "<system-reminder>This is a side question from the user. You must answer this question directly in a single response.",
4749
- "",
4750
- "IMPORTANT CONTEXT:",
4751
- "- You are a separate, lightweight agent spawned to answer this one question",
4752
- "- The main agent is NOT interrupted - it continues working independently in the background",
4753
- "- You share the conversation context but are a completely separate instance",
4754
- '- Do NOT reference being interrupted or what you were "previously doing" - that framing is incorrect',
4755
- "",
4756
- "CRITICAL CONSTRAINTS:",
4757
- "- You have NO tools available - you cannot read files, run commands, search, or take any actions",
4758
- "- This is a one-off response - there will be no follow-up turns",
4759
- "- You can ONLY provide information based on what you already know from the conversation context",
4760
- `- NEVER say things like "Let me try...", "I'll now...", "Let me check...", or promise to take any action`,
4761
- "- If you don't know the answer, say so - do not offer to look it up or investigate",
4762
- "",
4763
- "Simply answer the question with the information you have.</system-reminder>"
4764
- ].join("\n");
4765
- const MAX_HISTORY_CHARS = 2e3;
4766
- function clip(text, max) {
4767
- return text.length > max ? `${text.slice(0, max)}\u2026` : text;
4768
- }
4769
- function buildSideQuestionPrompt(question, history = []) {
4770
- const trimmed = question.trim();
4771
- const prior = history.filter((h) => h.question.trim() && h.answer.trim()).slice(-12);
4772
- const body = `${SIDE_QUESTION_REMINDER}
4773
-
4774
- ${trimmed}`;
4775
- if (prior.length === 0) return body;
4776
- const lines = prior.map((h) => `Q: ${clip(h.question.trim(), MAX_HISTORY_CHARS)}
4777
- A: ${clip(h.answer.trim(), MAX_HISTORY_CHARS)}`);
4778
- return `<earlier-side-questions>
4779
- ${lines.join("\n\n")}
4780
- </earlier-side-questions>
4781
-
4782
- ${body}`;
4783
- }
4784
- function sideQuestionQueryOptions(input) {
4785
- return {
4786
- cwd: input.cwd,
4787
- ...input.resumeSessionId ? { resume: input.resumeSessionId, forkSession: true } : {},
4788
- persistSession: false,
4789
- tools: [],
4790
- mcpServers: {},
4791
- strictMcpConfig: true,
4792
- maxTurns: 1,
4793
- includePartialMessages: true,
4794
- permissionMode: "default",
4795
- model: input.model,
4796
- env: input.env,
4797
- settingsPath: input.settingsPath,
4798
- appendSystemPrompt: SIDE_QUESTION_SYSTEM_PROMPT,
4799
- canCallTool: async () => ({ behavior: "deny", message: "Side questions cannot use tools" }),
4800
- abort: input.signal
4801
- };
4802
- }
4803
- function assistantBlocks(message) {
4804
- if (message.type !== "assistant") return [];
4805
- const content = message.message?.content;
4806
- return Array.isArray(content) ? content.filter((b) => Boolean(b) && typeof b === "object") : [];
4807
- }
4808
- function textFromAssistant(message) {
4809
- return assistantBlocks(message).map((block) => block.type === "text" ? String(block.text ?? "") : "").join("");
4810
- }
4811
- function toolUseFromAssistant(message) {
4812
- const block = assistantBlocks(message).find((b) => b.type === "tool_use");
4813
- return block ? String(block.name ?? "a tool") : null;
4814
- }
4815
- function toolAttemptNotice(toolName) {
4816
- return `(The model tried to call ${toolName} instead of answering directly. Try rephrasing or ask in the main conversation.)`;
4817
- }
4818
- function apiErrorFromSystem(message) {
4819
- if (message.type !== "system") return null;
4820
- const m = message;
4821
- if (m.subtype !== "api_error") return null;
4822
- if (typeof m.error === "string") return m.error;
4823
- const detail = m.error?.formatted ?? m.error?.message;
4824
- return typeof detail === "string" && detail ? detail : "API error";
4825
- }
4826
- async function runSideQuestion(query, input) {
4827
- const options = sideQuestionQueryOptions(input);
4828
- const stream = query({ prompt: buildSideQuestionPrompt(input.question, input.history), options });
4829
- let streamed = "";
4830
- let final = "";
4831
- let toolAttempt = null;
4832
- let lastApiError = null;
4833
- let resultSeen = false;
4834
- for await (const message of stream) {
4835
- if (message.type === "stream_event") {
4836
- const event = message.event;
4837
- if (event?.type === "content_block_delta" && event.delta?.type === "text_delta" && event.delta.text) {
4838
- streamed += event.delta.text;
4839
- input.onText?.(streamed);
4840
- }
4841
- continue;
4842
- }
4843
- if (message.type === "assistant") {
4844
- const text = textFromAssistant(message);
4845
- if (text) {
4846
- final = final ? `${final}
4847
-
4848
- ${text}` : text;
4849
- input.onText?.(final);
4850
- }
4851
- toolAttempt ??= toolUseFromAssistant(message);
4852
- continue;
4853
- }
4854
- if (message.type === "system") {
4855
- lastApiError = apiErrorFromSystem(message) ?? lastApiError;
4856
- continue;
4857
- }
4858
- if (message.type === "result") {
4859
- resultSeen = true;
4860
- const result = message;
4861
- if (result.subtype !== "success") {
4862
- if (toolAttempt && result.subtype === "error_max_turns") break;
4863
- const detail = Array.isArray(result.errors) && result.errors.length > 0 ? String(result.errors[0]) : typeof result.result === "string" && result.result ? result.result : lastApiError ?? result.subtype ?? "unknown";
4864
- throw new Error(`Side question failed: ${detail}`);
4865
- }
4866
- if (!final && typeof result.result === "string") final = result.result;
4867
- }
4868
- }
4869
- if (input.signal?.aborted) throw new Error("Side question cancelled");
4870
- if (toolAttempt && !final.trim() && !streamed.trim()) {
4871
- const notice = toolAttemptNotice(toolAttempt);
4872
- input.onText?.(notice);
4873
- return { answer: notice, hadContext: Boolean(input.resumeSessionId), mode: "fork" };
4874
- }
4875
- if (!resultSeen && !final && !streamed) throw new Error(`Side question ended without a result${lastApiError ? `: ${lastApiError}` : ""}`);
4876
- return { answer: final || streamed, hadContext: Boolean(input.resumeSessionId), mode: "fork" };
4877
- }
4878
-
4879
- const SIDE_QUESTION_RETAIN_MS = 5 * 6e4;
4880
- const SIDE_QUESTION_MAX_CHARS = 8e3;
4881
- const SIDE_QUESTION_MAX_RUN_MS = 10 * 6e4;
4882
- function writeSideQuestionSettingsFile(homeDir, extra = {}) {
4883
- const dir = join(homeDir, "tmp", "hooks");
4884
- mkdirSync(dir, { recursive: true });
4885
- const file = join(dir, `side-question-${process.pid}.json`);
4886
- writeFileSync(file, JSON.stringify({ ...extra, disableAllHooks: true }));
4887
- return file;
4888
- }
4889
- function parseHistory(raw) {
4890
- if (!Array.isArray(raw)) return [];
4891
- return raw.flatMap((item) => {
4892
- if (!item || typeof item !== "object") return [];
4893
- const { question, answer } = item;
4894
- return typeof question === "string" && typeof answer === "string" ? [{ question, answer }] : [];
4895
- });
4896
- }
4897
- function registerSideQuestionHandler(rpc, deps) {
4898
- const now = deps.now ?? (() => Date.now());
4899
- const retainMs = deps.retainMs ?? SIDE_QUESTION_RETAIN_MS;
4900
- const maxRunMs = deps.maxRunMs ?? SIDE_QUESTION_MAX_RUN_MS;
4901
- const fork = deps.run ?? (async (input) => {
4902
- const { query } = await import('./index-BcSPg3c5.mjs');
4903
- return runSideQuestion(query, input);
4904
- });
4905
- const run = async (input, live) => {
4906
- if (!live) return fork(input);
4907
- try {
4908
- return await runSideQuestionLive(live.ask, input);
4909
- } catch (error) {
4910
- if (input.signal?.aborted || !isUnsupportedSideQuestionError(error)) throw error;
4911
- logger.debug(`[btw] live side question unsupported by this CLI, forking instead: ${error instanceof Error ? error.message : String(error)}`);
4912
- return fork(input);
4913
- }
4914
- };
4915
- const slots = /* @__PURE__ */ new Map();
4916
- let active = null;
4917
- const prune = () => {
4918
- const t = now();
4919
- for (const [id, slot] of slots) {
4920
- if (slot.status !== "running" && slot.finishedAt !== void 0 && t - slot.finishedAt > retainMs) slots.delete(id);
4921
- }
4922
- };
4923
- const finish = (slot, status, error) => {
4924
- if (slot.status !== "running") return;
4925
- slot.status = status;
4926
- slot.error = error;
4927
- slot.finishedAt = now();
4928
- if (active === slot) active = null;
4929
- };
4930
- rpc.registerHandler("btw-ask", async (request) => {
4931
- const question = typeof request?.question === "string" ? request.question.trim() : "";
4932
- if (!question) throw new Error("Side question is empty");
4933
- if (question.length > SIDE_QUESTION_MAX_CHARS) throw new Error("Side question is too long");
4934
- prune();
4935
- if (active) {
4936
- const stale = active;
4937
- stale.abort.abort("superseded");
4938
- finish(stale, "cancelled");
4939
- logger.debug(`[btw] side question ${stale.requestId} superseded by a new ask`);
4940
- }
4941
- const candidate = deps.getLiveQuery?.() ?? null;
4942
- const live = candidate && candidate.canControl() ? candidate : null;
4943
- const resumeSessionId = deps.getClaudeSessionId() ?? null;
4944
- const slot = {
4945
- requestId: randomUUID(),
4946
- status: "running",
4947
- text: "",
4948
- startedAt: now(),
4949
- abort: new AbortController()
4950
- };
4951
- slots.set(slot.requestId, slot);
4952
- active = slot;
4953
- logger.debug(`[btw] side question ${slot.requestId} start (${live ? "live" : resumeSessionId ? "fork" : "no-context"})`);
4954
- const deadline = setTimeout(() => {
4955
- if (slot.status !== "running") return;
4956
- slot.abort.abort("timeout");
4957
- finish(slot, "error", "Side question timed out");
4958
- logger.debug(`[btw] side question ${slot.requestId} timed out after ${maxRunMs}ms`);
4959
- }, maxRunMs);
4960
- deadline.unref?.();
4961
- void run({
4962
- question,
4963
- history: parseHistory(request.history),
4964
- resumeSessionId,
4965
- cwd: deps.cwd,
4966
- model: deps.getModel(),
4967
- env: deps.getEnv?.(),
4968
- settingsPath: deps.settingsPath,
4969
- signal: slot.abort.signal,
4970
- onText: (text) => {
4971
- if (slot.status === "running") slot.text = text;
4972
- }
4973
- }, live).then((result) => {
4974
- slot.text = result.answer;
4975
- finish(slot, "done");
4976
- logger.debug(`[btw] side question ${slot.requestId} done (${result.mode ?? "fork"}, ${result.answer.length} chars)`);
4977
- }).catch((error) => {
4978
- const message = error instanceof Error ? error.message : String(error);
4979
- if (slot.abort.signal.aborted) {
4980
- finish(slot, "cancelled");
4981
- } else {
4982
- finish(slot, "error", message);
4983
- logger.debug(`[btw] side question ${slot.requestId} failed: ${message}`);
4984
- }
4985
- }).finally(() => clearTimeout(deadline));
4986
- return { requestId: slot.requestId, hadContext: live ? true : Boolean(resumeSessionId), mode: live ? "live" : "fork" };
4987
- });
4988
- rpc.registerHandler("btw-poll", async (request) => {
4989
- prune();
4990
- const id = typeof request?.requestId === "string" ? request.requestId : "";
4991
- const slot = slots.get(id);
4992
- if (!slot) throw new Error("Unknown side question");
4993
- return {
4994
- requestId: slot.requestId,
4995
- status: slot.status,
4996
- text: slot.text,
4997
- error: slot.error,
4998
- startedAt: slot.startedAt,
4999
- finishedAt: slot.finishedAt
5000
- };
5001
- });
5002
- rpc.registerHandler("btw-cancel", async (request) => {
5003
- const id = typeof request?.requestId === "string" ? request.requestId : "";
5004
- const slot = slots.get(id);
5005
- if (!slot || slot.status !== "running") return { cancelled: false };
5006
- slot.abort.abort("cancelled by user");
5007
- finish(slot, "cancelled");
5008
- return { cancelled: true };
5009
- });
5010
- return {
5011
- /** Test/introspection hook. */
5012
- _slots: slots
5013
- };
5014
- }
5015
-
5016
4727
  function replayClaudeForkJsonl(file, sink) {
5017
4728
  let replayed = 0;
5018
4729
  for (const line of file.split("\n")) {
@@ -5324,4 +5035,4 @@ function resolveMessageMode(current, meta, ctx) {
5324
5035
  };
5325
5036
  }
5326
5037
 
5327
- export { BoardAnalyzer, FileRateLimiter, PrewarmHookGate, RawJSONLinesSchema, acquirePrewarmSlot, claudeCheckSession, claudeModeHash, claudePrewarmEligibility, claudePrewarmSessionEligibility, cleanupHookSettingsFile, contentLogMetadata, createClaudePrewarmLease, disposeAllClaudePrewarms, evaluatePrewarmPrediction, formatPrewarmLine, generateHookSettingsFile, getProjectPath, loop, parseSpecialCommand, prewarmCacheFile, prewarmPredictionMeta, prewarmSlotDir, readPrewarmCache, registerSideQuestionHandler, replayClaudeForkJsonl, resolveMessageMode, startHookServer, withAssistantDenylist, writePrewarmCache, writeSideQuestionSettingsFile };
5038
+ export { BoardAnalyzer, FileRateLimiter, PrewarmHookGate, RawJSONLinesSchema, acquirePrewarmSlot, claudeCheckSession, claudeModeHash, claudePrewarmEligibility, claudePrewarmSessionEligibility, cleanupHookSettingsFile, contentLogMetadata, createClaudePrewarmLease, disposeAllClaudePrewarms, evaluatePrewarmPrediction, formatPrewarmLine, generateHookSettingsFile, getProjectPath, loop, parseSpecialCommand, prewarmCacheFile, prewarmPredictionMeta, prewarmSlotDir, readPrewarmCache, replayClaudeForkJsonl, resolveMessageMode, startHookServer, withAssistantDenylist, writePrewarmCache };
@@ -2,83 +2,83 @@ import { c as compactCommandText, C as COMPACT_UNSUPPORTED_NOTICE } from './spec
2
2
  import { useStdout, useInput, Box, Text, render } from 'ink';
3
3
  import React, { useState, useRef, useEffect, useCallback } from 'react';
4
4
  import { randomUUID } from 'node:crypto';
5
- import { a as PROJECT_SESSION_CAPABILITY } from './index-D1YnIih6.mjs';
6
- import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-BzX94gi3.mjs';
7
- import { s as sharedProjectsClient } from './client-Bde4QVIn.mjs';
5
+ import { a as PROJECT_SESSION_CAPABILITY } from './index-BlWyEpMw.mjs';
6
+ import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-CMApF2Rl.mjs';
7
+ import { s as sharedProjectsClient } from './client-CydHzidF.mjs';
8
8
  import { join } from 'node:path';
9
- import { c as connectionState, A as ApiClient } from './api-DUfunY3x.mjs';
10
- import { l as logger } from './logger-JV7-4Q_6.mjs';
11
- import { r as readSettings } from './persistence-Cg4sfjQV.mjs';
12
- import { c as createSessionMetadata } from './createSessionMetadata-vug4Cv8z.mjs';
9
+ import { c as connectionState, A as ApiClient } from './api-DOzNOoVJ.mjs';
10
+ import { l as logger } from './logger-UgDpJA2u.mjs';
11
+ import { r as readSettings } from './persistence-CQhmtobL.mjs';
12
+ import { c as createSessionMetadata } from './createSessionMetadata-DimBsfVG.mjs';
13
13
  import { e as errorLogMetadata, c as contentLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
14
- import { g as getInitialMachineMetadata } from './machineMetadata-D5-SW9kv.mjs';
15
- import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-Bg9t45Ub.mjs';
14
+ import { g as getInitialMachineMetadata } from './machineMetadata-BYHC-3Vx.mjs';
15
+ import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-rwXdO0t0.mjs';
16
16
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
17
17
  import { M as MessageBuffer } from './sessionExitLifecycle-CzkLIgNZ.mjs';
18
- import { n as notifyDaemonSessionStarted } from './controlClient-Ckl8N1MS.mjs';
18
+ import { n as notifyDaemonSessionStarted } from './controlClient-Dv6IvvUq.mjs';
19
19
  import { e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
20
- import { s as setupOfflineReconnection } from './setupOfflineReconnection-Bvdy-2xd.mjs';
21
- import { A as AcpBackend, i as isAgentExitError } from './AcpBackend-B4PwjqHt.mjs';
20
+ import { s as setupOfflineReconnection } from './setupOfflineReconnection-Dp1rC-eP.mjs';
21
+ import { A as AcpBackend, i as isAgentExitError } from './AcpBackend-BTIF87yb.mjs';
22
22
  import { a as GEMINI_API_KEY_ENV, b as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, C as CHANGE_TITLE_INSTRUCTION } from './constants-BC4St0xd.mjs';
23
- import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-C2XYEwXz.mjs';
24
- import { B as BasePermissionHandler } from './BasePermissionHandler-DV6UM6e9.mjs';
25
- import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-CaWAVQjZ.mjs';
23
+ import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-DK27kWTT.mjs';
24
+ import { B as BasePermissionHandler } from './BasePermissionHandler-B5ka7Aaf.mjs';
25
+ import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-QltAvFpq.mjs';
26
26
  import 'zod';
27
27
  import '@paralleldrive/cuid2';
28
28
  import './prompt-QHuFx9j6.mjs';
29
- import './reportProgressTool-DVru7jc_.mjs';
30
- import './client-7RnI9J0W.mjs';
31
- import './configuration-ThKBP_zY.mjs';
29
+ import './reportProgressTool-HjzV5y_2.mjs';
30
+ import './client-DpTk1S7C.mjs';
31
+ import './configuration-CwfgJZKs.mjs';
32
32
  import 'node:fs';
33
33
  import 'node:os';
34
- import './package-Bw3H6VLn.mjs';
34
+ import './package-C4OfB2YF.mjs';
35
35
  import 'node:fs/promises';
36
36
  import './precheckCompat-DeEbilbr.mjs';
37
37
  import './agentGuidance-BDYt2Qy2.mjs';
38
38
  import './trimIdent-BAjmv_TG.mjs';
39
39
  import './pi-CqyoZMjI.mjs';
40
40
  import './fileStore-5qpetZS0.mjs';
41
- import './client-DwbhrX6D.mjs';
41
+ import './client-BhAjEv8Z.mjs';
42
42
  import 'node:child_process';
43
43
  import 'node:util';
44
- import './context-C0EFLnOg.mjs';
45
- import './sessionOps-C65Iej_C.mjs';
44
+ import './context-DcOpvIiR.mjs';
45
+ import './sessionOps-BkEgNA2O.mjs';
46
46
  import 'axios';
47
- import './time-Cw0liIqB.mjs';
47
+ import './time-CIkdLyza.mjs';
48
48
  import 'socket.io-client';
49
49
  import './backgroundTaskActivity-8PdPxrvy.mjs';
50
50
  import './resources-CLP_MpK4.mjs';
51
- import './tools-BR-drXZ8.mjs';
52
- import './peerTools-WtRgTSqG.mjs';
51
+ import './tools-DqjPHq9I.mjs';
52
+ import './peerTools-DS6GqJcn.mjs';
53
53
  import './ids-DU6sLx4C.mjs';
54
- import './remoteSessionClient--0vfA7I5.mjs';
54
+ import './remoteSessionClient-DQSnC7ox.mjs';
55
55
  import '@modelcontextprotocol/sdk/server/mcp.js';
56
56
  import 'node:http';
57
57
  import '@modelcontextprotocol/sdk/server/streamableHttp.js';
58
58
  import './limits-DIo7rEBR.mjs';
59
- import './downloadTarget-Baslc6jW.mjs';
59
+ import './downloadTarget-CM0BZNSY.mjs';
60
60
  import './terminals-Dlg0x3nY.mjs';
61
61
  import './terminalTitleSuggest-CeKsX_V6.mjs';
62
62
  import './tmuxSocket-B8Yx20sT.mjs';
63
- import './bootstrap-B3gMpU9e.mjs';
63
+ import './bootstrap-BxcKrgR9.mjs';
64
64
  import './webPanels-B2_C2-3g.mjs';
65
- import './pushNotifications-BbE-qV9I.mjs';
65
+ import './pushNotifications-67GmbVfE.mjs';
66
66
  import './previewPath-CXN4Vag0.mjs';
67
67
  import 'crypto';
68
- import './lidState-B6yYKjNK.mjs';
68
+ import './lidState-Cb3TbhPb.mjs';
69
69
  import 'os';
70
70
  import 'child_process';
71
71
  import 'node:events';
72
- import './registerCommonHandlers-Cj3Nl9y-.mjs';
72
+ import './registerCommonHandlers-C7hlztAO.mjs';
73
73
  import 'util';
74
74
  import 'fs/promises';
75
75
  import 'path';
76
76
  import 'cross-spawn';
77
- import './sync-BP6vnxVP.mjs';
77
+ import './sync-GJkf-HGu.mjs';
78
78
  import 'chalk';
79
79
  import './detectCLI-CSGMlV51.mjs';
80
80
  import 'fs';
81
- import './localHappyAgentAuth-KRlg_aI0.mjs';
81
+ import './localHappyAgentAuth-CAAIUJyY.mjs';
82
82
  import 'tweetnacl';
83
83
  import './fsMkdir-DumgLTzR.mjs';
84
84
  import './types-CkqAACXx.mjs';