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.
- package/dist/{AcpBackend-B4PwjqHt.mjs → AcpBackend-BTIF87yb.mjs} +3 -3
- package/dist/{AcpBackend-DtJCgftG.cjs → AcpBackend-CXSV6FF5.cjs} +3 -3
- package/dist/{AcpSessionManager-D4qshX_H.cjs → AcpSessionManager-BbWODxSp.cjs} +2 -2
- package/dist/{AcpSessionManager-BzKWgkdP.mjs → AcpSessionManager-CEpU_GVk.mjs} +2 -2
- package/dist/{BasePermissionHandler-DV6UM6e9.mjs → BasePermissionHandler-B5ka7Aaf.mjs} +1 -1
- package/dist/{BasePermissionHandler-5iG-cvA2.cjs → BasePermissionHandler-C6iF28Ct.cjs} +1 -1
- package/dist/{account-DvpA60oU.cjs → account-Bvcdk9CH.cjs} +11 -11
- package/dist/{account-Dco_nGT4.mjs → account-WSJcdMGl.mjs} +11 -11
- package/dist/{accountService-Cd7bnkfd.mjs → accountService-BtEgv0fC.mjs} +4 -4
- package/dist/{accountService-CuUSJDhP.cjs → accountService-DL6xhVUa.cjs} +4 -4
- package/dist/{acpSessionResume-Bk9mjXZ9.cjs → acpSessionResume-B2hd1Wub.cjs} +1 -1
- package/dist/{acpSessionResume-TQwN9ZZE.mjs → acpSessionResume-BYMm4w8Q.mjs} +1 -1
- package/dist/{agentHome-c2dlgcw1.cjs → agentHome-CVM15_3U.cjs} +4 -4
- package/dist/{agentHome-Bep8semY.mjs → agentHome-Jl8yWAjF.mjs} +4 -4
- package/dist/{api-DUfunY3x.mjs → api-DOzNOoVJ.mjs} +10 -10
- package/dist/{api-CBE_a88I.cjs → api-TpjZJXV-.cjs} +10 -10
- package/dist/{apiMachine-BqtG0IWm.cjs → apiMachine-COkvJAmd.cjs} +35 -19
- package/dist/{apiMachine-CU_bw5nV.mjs → apiMachine-M-Fs9g5Y.mjs} +35 -19
- package/dist/{attachmentContent-B3AzuYqk.cjs → attachmentContent-BiBOjTXX.cjs} +2 -2
- package/dist/{attachmentContent-KNIZxwlu.mjs → attachmentContent-D6PjMVDq.mjs} +2 -2
- package/dist/{auth-SJ_dPw7H.cjs → auth-BOceB8cL.cjs} +8 -8
- package/dist/{auth-CZ7pKS-j.mjs → auth-BfHLe1gU.mjs} +8 -8
- package/dist/{auth-jN5dNqTO.mjs → auth-Bfe3Ue_B.mjs} +5 -5
- package/dist/{auth-DCjxpI6Z.cjs → auth-DfcdjMUp.cjs} +5 -5
- package/dist/{auto-DC0Sq-qB.mjs → auto-CDeivd5V.mjs} +18 -18
- package/dist/{auto-B_59RYH1.cjs → auto-CnTitokD.cjs} +18 -18
- package/dist/{bootstrap-B3gMpU9e.mjs → bootstrap-BxcKrgR9.mjs} +2 -2
- package/dist/{bootstrap-CoJu9VnB.cjs → bootstrap-DpyP22Wx.cjs} +2 -2
- package/dist/{browser-LHW2hBH8.mjs → browser-Bb0Gqffc.mjs} +1 -1
- package/dist/{browser-v1pdPP1E.cjs → browser-ac0aPrVE.cjs} +1 -1
- package/dist/{claudeAccountEnv-BL1pR_37.mjs → claudeAccountEnv-NyoxjLuJ.mjs} +1 -1
- package/dist/{claudeAccountEnv-CEX_EMZr.cjs → claudeAccountEnv-_O3x5AJ1.cjs} +1 -1
- package/dist/{claudeLocal-BrzM2RBI.cjs → claudeLocal-RGWhplSr.cjs} +5 -5
- package/dist/{claudeLocal-BZUgA5G2.mjs → claudeLocal-otwxWF6e.mjs} +5 -5
- package/dist/{claudeLocalLauncher-A0AQyHFi.mjs → claudeLocalLauncher-CTibA4cU.mjs} +10 -10
- package/dist/{claudeLocalLauncher-XAMpXUM7.cjs → claudeLocalLauncher-yG-MBhY7.cjs} +10 -10
- package/dist/{claudeSessionFork-Mhn2fYe_.cjs → claudeSessionFork-DH_Su4uO.cjs} +104 -38
- package/dist/{claudeSessionFork-_GwIlmMB.mjs → claudeSessionFork-HFFwivGY.mjs} +105 -40
- package/dist/{client-DwbhrX6D.mjs → client-BhAjEv8Z.mjs} +4 -4
- package/dist/{client-D2GWkd-T.cjs → client-BlV73Gbw.cjs} +2 -2
- package/dist/{client-Bde4QVIn.mjs → client-CydHzidF.mjs} +2 -2
- package/dist/{client-CJr8Pjwm.cjs → client-DcXLNaF2.cjs} +2 -2
- package/dist/{client-7RnI9J0W.mjs → client-DpTk1S7C.mjs} +2 -2
- package/dist/{client-DLlnmAPL.cjs → client-DxjYsJ8d.cjs} +4 -4
- package/dist/codex/happyMcpStdioBridge.cjs +16 -16
- package/dist/codex/happyMcpStdioBridge.mjs +16 -16
- package/dist/{codexAccount-NOX5pmQf.mjs → codexAccount-CKXpXq0B.mjs} +1 -1
- package/dist/{codexAccount-BDQjRbtI.cjs → codexAccount-CYhQir50.cjs} +1 -1
- package/dist/{codexAppServerClient-DWEsZUC4.cjs → codexAppServerClient-C1xBSuVk.cjs} +60 -3
- package/dist/{codexAppServerClient-B3QJV6Ey.mjs → codexAppServerClient-mln0W8vT.mjs} +60 -3
- package/dist/{codexCommand-D1xlj4sT.mjs → codexCommand-CmWhYduF.mjs} +136 -47
- package/dist/{codexCommand-Bg8AmxVm.cjs → codexCommand-Plm-_aRy.cjs} +137 -48
- package/dist/{codexTermination-ByX9GcEJ.cjs → codexTermination-C9c80lIF.cjs} +1 -1
- package/dist/{codexTermination-CaWAVQjZ.mjs → codexTermination-QltAvFpq.mjs} +1 -1
- package/dist/{codexThreadFork-5kwoKjMu.cjs → codexThreadFork-C6ZmcT2z.cjs} +22 -1
- package/dist/{codexThreadFork-DobPd19R.mjs → codexThreadFork-CVzAqELg.mjs} +22 -2
- package/dist/{config-B2GGbiTv.cjs → config-BH75enfT.cjs} +3 -3
- package/dist/{config-C2XYEwXz.mjs → config-DK27kWTT.mjs} +3 -3
- package/dist/{configuration-BBK0rmmj.cjs → configuration-CKaq0tNe.cjs} +1 -1
- package/dist/{configuration-ThKBP_zY.mjs → configuration-CwfgJZKs.mjs} +1 -1
- package/dist/{connect-C3tZs_NC.cjs → connect-_QkCFMxO.cjs} +13 -13
- package/dist/{connect-BirnCl9q.mjs → connect-h3_VMJst.mjs} +13 -13
- package/dist/{context-wDp0aZBK.cjs → context-DbENnaVc.cjs} +1 -1
- package/dist/{context-C0EFLnOg.mjs → context-DcOpvIiR.mjs} +1 -1
- package/dist/{controlClient-DwWTns3A.cjs → controlClient-D_HIbnnS.cjs} +3 -3
- package/dist/{controlClient-Ckl8N1MS.mjs → controlClient-Dv6IvvUq.mjs} +4 -4
- package/dist/{createSessionMetadata-DqZ6h02H.cjs → createSessionMetadata-CusO22Am.cjs} +2 -2
- package/dist/{createSessionMetadata-vug4Cv8z.mjs → createSessionMetadata-DimBsfVG.mjs} +2 -2
- package/dist/{daemonAccounts-CpGDY_4k.cjs → daemonAccounts-CxMJw7x2.cjs} +2 -2
- package/dist/{daemonAccounts-DwPwKxvv.mjs → daemonAccounts-QT-RDDEp.mjs} +3 -3
- package/dist/{defaultPermissionMode-DF5AfeBb.mjs → defaultPermissionMode-B-Vt8ECY.mjs} +1 -1
- package/dist/{defaultPermissionMode-BakXiqRr.cjs → defaultPermissionMode-BCWCMONI.cjs} +1 -1
- package/dist/{deterministicJson-t33SsuRC.cjs → deterministicJson-BYqRKTmL.cjs} +13 -13
- package/dist/{deterministicJson-BzX94gi3.mjs → deterministicJson-CMApF2Rl.mjs} +13 -13
- package/dist/{doctor-C1zyOSXw.mjs → doctor-BkyoZ0Uw.mjs} +7 -7
- package/dist/{doctor-B9ug1LZb.cjs → doctor-Czbl7gk2.cjs} +7 -7
- package/dist/{downloadTarget-T1id2Gh6.cjs → downloadTarget-C5BzZ_bz.cjs} +6 -6
- package/dist/{downloadTarget-Baslc6jW.mjs → downloadTarget-CM0BZNSY.mjs} +6 -6
- package/dist/{ensureDaemonRunning-CoAg11Zi.cjs → ensureDaemonRunning-D508DmcP.cjs} +5 -5
- package/dist/{ensureDaemonRunning-C6ERYK-O.mjs → ensureDaemonRunning-P399ot_C.mjs} +5 -5
- package/dist/{handleResumeCommand-CrlqDuz7.mjs → handleResumeCommand-BK_2ShBf.mjs} +5 -5
- package/dist/{handleResumeCommand-DPi-sPm7.cjs → handleResumeCommand-CCgK7-0v.cjs} +5 -5
- package/dist/{index-Cn73rdtQ.mjs → index-BENDk1i9.mjs} +4 -4
- package/dist/{index-rocrvOYG.cjs → index-BalJgriQ.cjs} +4 -4
- package/dist/{index-D1YnIih6.mjs → index-BlWyEpMw.mjs} +2 -1
- package/dist/{index-B2dJA8VG.cjs → index-Bz9Bj7l1.cjs} +3 -3
- package/dist/{index-B1swQJUS.cjs → index-CGKn-GTK.cjs} +4 -4
- package/dist/{index-Bkslzin5.cjs → index-CSO1-mZ9.cjs} +42 -42
- package/dist/{index-BUFrKZeQ.cjs → index-D9Hidq-g.cjs} +2 -0
- package/dist/{index-BcSPg3c5.mjs → index-DR3NJLVk.mjs} +4 -4
- package/dist/{index-BbdV2mzy.mjs → index-QSAckvNv.mjs} +3 -3
- package/dist/{index-fZO4nF6e.mjs → index-_DRVKtSd.mjs} +43 -43
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-CArXjPfW.cjs → install-CqXaN7_C.cjs} +3 -3
- package/dist/{install-CChhyV2G.mjs → install-DMTvEPrB.mjs} +3 -3
- package/dist/lib.cjs +12 -12
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-B_v6qgfE.cjs → lidState-Btv4N_B8.cjs} +1 -1
- package/dist/{lidState-B6yYKjNK.mjs → lidState-Cb3TbhPb.mjs} +1 -1
- package/dist/{localHappyAgentAuth-jJH0n67S.cjs → localHappyAgentAuth-B3Q5DNLR.cjs} +1 -1
- package/dist/{localHappyAgentAuth-KRlg_aI0.mjs → localHappyAgentAuth-CAAIUJyY.mjs} +1 -1
- package/dist/{logger-CX3x2eI4.cjs → logger-BZ5TcbEh.cjs} +2 -2
- package/dist/{logger-JV7-4Q_6.mjs → logger-UgDpJA2u.mjs} +2 -2
- package/dist/{machineMetadata-D5-SW9kv.mjs → machineMetadata-BYHC-3Vx.mjs} +3 -3
- package/dist/{machineMetadata-DhZuM0iB.cjs → machineMetadata-DLb-m4fL.cjs} +3 -3
- package/dist/{main-CFOdXbPD.mjs → main-CwW6lHIw.mjs} +47 -47
- package/dist/{main-1x1HGQEy.cjs → main-LavPb80B.cjs} +47 -47
- package/dist/{mcp-BnKBSEh7.cjs → mcp-BQbWhqUh.cjs} +18 -18
- package/dist/{mcp-R6lMcFLO.mjs → mcp-BjYz5Ymf.mjs} +18 -18
- package/dist/{mirrorProtocol-CD4ntuZJ.mjs → mirrorProtocol-BH5eT99U.mjs} +3 -3
- package/dist/{mirrorProtocol-DO-KtvAL.cjs → mirrorProtocol-Ci9YmCEV.cjs} +3 -3
- package/dist/{package-uzlvxa5S.cjs → package-B61-BBlh.cjs} +7 -7
- package/dist/{package-Bw3H6VLn.mjs → package-C4OfB2YF.mjs} +7 -7
- package/dist/{panels-C46FxjmH.cjs → panels-ByprLJag.cjs} +5 -5
- package/dist/{panels-BamhZCoZ.mjs → panels-cBJT5Up1.mjs} +5 -5
- package/dist/{peerTools-D-VNNFw-.cjs → peerTools-BXSjS8lB.cjs} +5 -5
- package/dist/{peerTools-WtRgTSqG.mjs → peerTools-DS6GqJcn.mjs} +5 -5
- package/dist/{persistence-Cg4sfjQV.mjs → persistence-CQhmtobL.mjs} +2 -2
- package/dist/{persistence-CsmAgN-C.cjs → persistence-DBmeYlwT.cjs} +2 -2
- package/dist/{piRunnerArgs-vnFygygF.cjs → piRunnerArgs-CmEE058l.cjs} +1 -1
- package/dist/{piRunnerArgs-BbaAQvb4.mjs → piRunnerArgs-Dy-3vN_Q.mjs} +1 -1
- package/dist/{piRuntime-C2uj5Ucx.cjs → piRuntime-BCXjC4__.cjs} +1 -1
- package/dist/{piRuntime-Bid7TBf5.mjs → piRuntime-Rq9v4M4e.mjs} +1 -1
- package/dist/{piTerminal-CqxgrI13.mjs → piTerminal-CRhDUqX7.mjs} +20 -20
- package/dist/{piTerminal-Ckpjfoqa.cjs → piTerminal-ehNQOvLL.cjs} +20 -20
- package/dist/{pushNotifications-BbE-qV9I.mjs → pushNotifications-67GmbVfE.mjs} +3 -3
- package/dist/{pushNotifications-BCg7YAiu.cjs → pushNotifications-qCS7_tDF.cjs} +3 -3
- package/dist/{query-vQ-HG394.cjs → query-B4QIiI7e.cjs} +1 -1
- package/dist/{query-Bfr9O_62.mjs → query-CIDBGnv6.mjs} +1 -1
- package/dist/{rateLimitWindows-CRARnKaI.mjs → rateLimitWindows-8-khalzj.mjs} +1 -1
- package/dist/{rateLimitWindows-BZl6GMwQ.cjs → rateLimitWindows-BIfLMxOk.cjs} +1 -1
- package/dist/{registerCommonHandlers-Cj3Nl9y-.mjs → registerCommonHandlers-C7hlztAO.mjs} +2 -2
- package/dist/{registerCommonHandlers-CZGmrPbT.cjs → registerCommonHandlers-G2p0MJu4.cjs} +2 -2
- package/dist/{registerKillSessionHandler-C3EDnW4F.cjs → registerKillSessionHandler-BWvl6wro.cjs} +6 -6
- package/dist/{registerKillSessionHandler-Bg9t45Ub.mjs → registerKillSessionHandler-rwXdO0t0.mjs} +6 -6
- package/dist/registerSideQuestionHandler-CsyPnjce.cjs +366 -0
- package/dist/registerSideQuestionHandler-Xg46gSVh.mjs +358 -0
- package/dist/{remoteSessionClient-CcSP24Zq.cjs → remoteSessionClient-D6_7vNKc.cjs} +5 -5
- package/dist/{remoteSessionClient--0vfA7I5.mjs → remoteSessionClient-DQSnC7ox.mjs} +5 -5
- package/dist/{reportProgressTool-Ddg1yVq2.cjs → reportProgressTool-CIHGKraF.cjs} +3 -3
- package/dist/{reportProgressTool-DVru7jc_.mjs → reportProgressTool-HjzV5y_2.mjs} +3 -3
- package/dist/{run-HtvH6BLi.mjs → run-M06F1958.mjs} +40 -40
- package/dist/{run-BTrIT_jU.cjs → run-tQ4bFkHu.cjs} +40 -40
- package/dist/{runClaude-ipjwAHPI.cjs → runClaude-Ct0_mShC.cjs} +28 -26
- package/dist/{runClaude-DsHTk5Bu.mjs → runClaude-Dm9kQZ-w.mjs} +28 -26
- package/dist/{runClaudeDeps-BKpwL6ln.cjs → runClaudeDeps-BT2kWCrQ.cjs} +44 -333
- package/dist/{runClaudeDeps-BV3vpeyY.mjs → runClaudeDeps-DNOzXjc3.mjs} +47 -336
- package/dist/{runGemini-DhjK6_Fp.mjs → runGemini-BvN-yeQR.mjs} +33 -33
- package/dist/{runGemini-B-G0_7Ab.cjs → runGemini-cua7_iuR.cjs} +33 -33
- package/dist/{runOpenClaw-B6lawk8n.mjs → runOpenClaw-C9E2XzmX.mjs} +18 -18
- package/dist/{runOpenClaw-BHIo8tkn.cjs → runOpenClaw-NpYFRhKm.cjs} +18 -18
- package/dist/{sandbox-CKb7pCXg.mjs → sandbox-C-BXZbt9.mjs} +4 -4
- package/dist/{sandbox-BAsO0ILe.cjs → sandbox-hImfD0-T.cjs} +4 -4
- package/dist/{selfCheck-D4VvVZNi.cjs → selfCheck-B3ulijQM.cjs} +39 -39
- package/dist/selfCheck-D-e9kVhc.mjs +88 -0
- package/dist/{send-Cz5m39QR.cjs → send-BCVQkTOl.cjs} +8 -8
- package/dist/{send-D8ipLKMY.mjs → send-Dv2L8IRW.mjs} +8 -8
- package/dist/{server-CjvgT3N9.mjs → server-BBBfuSB-.mjs} +4 -4
- package/dist/{server-CySyJKPH.cjs → server-DYxyCyYF.cjs} +6 -6
- package/dist/{sessionLock-DdDCuNUs.cjs → sessionLock-B8fsnpZD.cjs} +3 -3
- package/dist/{sessionLock-B73fhgQN.mjs → sessionLock-BexUoWhZ.mjs} +3 -3
- package/dist/{sessionOps-XSEjIqNq.cjs → sessionOps-74pSDXoS.cjs} +4 -4
- package/dist/{sessionOps-C65Iej_C.mjs → sessionOps-BkEgNA2O.mjs} +5 -5
- package/dist/{sessionProvider-Dgsty8z_.cjs → sessionProvider-CWgHsZUA.cjs} +10 -10
- package/dist/{sessionProvider-CLVNkfji.mjs → sessionProvider-DXkhlJE6.mjs} +10 -10
- package/dist/{sessionScanner-D8IVXMMH.cjs → sessionScanner-D56EkcIj.cjs} +3 -3
- package/dist/{sessionScanner-MW1P9Pm9.mjs → sessionScanner-Dhh1wREW.mjs} +3 -3
- package/dist/{sessions-BKz7gZqg.cjs → sessions-C1zRTjUe.cjs} +10 -10
- package/dist/{sessions-Dtk_agUL.mjs → sessions-dJR6k3JY.mjs} +10 -10
- package/dist/{setupOfflineReconnection-DxMiW7OV.cjs → setupOfflineReconnection-CMUdHtFT.cjs} +2 -2
- package/dist/{setupOfflineReconnection-Bvdy-2xd.mjs → setupOfflineReconnection-Dp1rC-eP.mjs} +2 -2
- package/dist/{spawn-Dm4xsZBX.mjs → spawn-D3-Weoiq.mjs} +54 -20
- package/dist/{spawn-DiPkJcrQ.cjs → spawn-kMKI09Kh.cjs} +54 -20
- package/dist/{spawnAgents-B9olJ8xn.cjs → spawnAgents-Cm23BW-D.cjs} +1 -1
- package/dist/{spawnAgents-I29H9nO8.mjs → spawnAgents-hKFGQaSJ.mjs} +1 -1
- package/dist/{spawnHappyCLI-CnMwzjWX.mjs → spawnHappyCLI-CgjpjSTT.mjs} +1 -1
- package/dist/{spawnHappyCLI-BYGOUda1.cjs → spawnHappyCLI-Du1IgJGA.cjs} +1 -1
- package/dist/{startFileWatcher-D14W6gn-.cjs → startFileWatcher-DGOnF95-.cjs} +1 -1
- package/dist/{startFileWatcher-DePAY1T5.mjs → startFileWatcher-DapvIGxp.mjs} +1 -1
- package/dist/{startupSessionCreate-DoK0IvJG.mjs → startupSessionCreate-CSi60oo_.mjs} +3 -3
- package/dist/{startupSessionCreate-rBHd4tc1.cjs → startupSessionCreate-rkIMVGJW.cjs} +3 -3
- package/dist/{store-Vej_738f.mjs → store-Tf-r1ouq.mjs} +1 -1
- package/dist/{store-CkNa6oj4.cjs → store-aa3CVNwS.cjs} +1 -1
- package/dist/{streamRelay-C0G1HOOd.cjs → streamRelay-C2Lb2z39.cjs} +1 -1
- package/dist/{streamRelay-C5U-C4GS.mjs → streamRelay-C9lzMo0V.mjs} +1 -1
- package/dist/{sync-WYBwkJvG.cjs → sync-Cj8Vhltg.cjs} +1 -1
- package/dist/{sync-BP6vnxVP.mjs → sync-GJkf-HGu.mjs} +1 -1
- package/dist/{systemPrompt-aRqBmkpw.mjs → systemPrompt-BEagRbDZ.mjs} +2 -2
- package/dist/{systemPrompt-BkQlCk5_.cjs → systemPrompt-Cne9i1SE.cjs} +2 -2
- package/dist/{teams-CGmC4ygu.mjs → teams-C_18IMNM.mjs} +7 -7
- package/dist/{teams-phbpwAGD.cjs → teams-ClTg6hQ1.cjs} +7 -7
- package/dist/{template-B9pLEP8v.cjs → template-B1AORlgU.cjs} +1 -1
- package/dist/{template-CL9EvQLQ.mjs → template-Ci-cyigF.mjs} +1 -1
- package/dist/{time-BTLcO8jp.cjs → time-BPPTQ_sE.cjs} +1 -1
- package/dist/{time-Cw0liIqB.mjs → time-CIkdLyza.mjs} +1 -1
- package/dist/{titleGenerator-Y1_7ceJC.cjs → titleGenerator-B_OgL9Pd.cjs} +3 -3
- package/dist/{titleGenerator-h6TmFe-c.mjs → titleGenerator-DnwTdTB_.mjs} +2 -2
- package/dist/{todo-BxiPiCvB.cjs → todo-DPQHtZVM.cjs} +6 -6
- package/dist/{todo-OKcTC_VC.mjs → todo-DmHolFRy.mjs} +6 -6
- package/dist/{tools-CcebYtLj.cjs → tools-B3KGMSU5.cjs} +1 -1
- package/dist/{tools-BR-drXZ8.mjs → tools-DqjPHq9I.mjs} +1 -1
- package/dist/{uninstall-D3stWKD2.mjs → uninstall-Cm97eybp.mjs} +3 -3
- package/dist/{uninstall-CnDeCC-M.cjs → uninstall-CrK5dgx8.cjs} +3 -3
- package/dist/{wrapperAccount-D2A4DuZy.cjs → wrapperAccount-BubTurHU.cjs} +2 -2
- package/dist/{wrapperAccount-BkufO_9g.mjs → wrapperAccount-Cq7eZRMx.mjs} +2 -2
- package/package.json +7 -7
- package/dist/rateLimitReporter-BZ8x0-6-.cjs +0 -44
- package/dist/rateLimitReporter-CAz7VMw4.mjs +0 -42
- package/dist/selfCheck-CZ-t1Xzq.mjs +0 -88
|
@@ -1,82 +1,83 @@
|
|
|
1
|
-
import { l as logger } from './logger-
|
|
2
|
-
import { u as notifyDaemonSessionEvent, v as notifyDaemonClaudeAuthFailed } from './controlClient-
|
|
3
|
-
export { o as reportSessionEditToDaemon } from './controlClient-
|
|
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-
|
|
6
|
-
export { s as startHappyServer } from './deterministicJson-
|
|
7
|
-
import { s as sharedProjectsClient } from './client-
|
|
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-
|
|
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-
|
|
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-
|
|
20
|
+
import { A as AsyncLock } from './pushNotifications-67GmbVfE.mjs';
|
|
21
21
|
import 'tweetnacl';
|
|
22
|
-
import { c as configuration, e as ensurePrivateDirectory } from './configuration-
|
|
23
|
-
import './index-
|
|
24
|
-
import './registerCommonHandlers-
|
|
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-
|
|
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-
|
|
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-
|
|
37
|
-
export { c as createSessionScanner } from './sessionScanner-
|
|
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-
|
|
40
|
-
import { C as CLAUDE_ATTACHMENT_KINDS, c as chatAttachmentDirectory, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-
|
|
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-
|
|
43
|
-
import { w as wrapperRateLimitReporter } from './
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
export {
|
|
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-
|
|
52
|
-
export { T as TitleGenerator } from './titleGenerator-
|
|
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-
|
|
55
|
-
export { c as createSelfReportState } from './reportProgressTool-
|
|
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-
|
|
63
|
-
import './context-
|
|
64
|
-
import './sessionOps-
|
|
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-
|
|
68
|
-
import './peerTools-
|
|
68
|
+
import './tools-DqjPHq9I.mjs';
|
|
69
|
+
import './peerTools-DS6GqJcn.mjs';
|
|
69
70
|
import './ids-DU6sLx4C.mjs';
|
|
70
|
-
import './remoteSessionClient
|
|
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-
|
|
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-
|
|
79
|
-
import './package-
|
|
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-
|
|
90
|
+
import './sync-GJkf-HGu.mjs';
|
|
90
91
|
import './transcriptCursor-B7T_gkQ0.mjs';
|
|
91
|
-
import './startFileWatcher-
|
|
92
|
+
import './startFileWatcher-DapvIGxp.mjs';
|
|
92
93
|
import 'node:readline';
|
|
93
|
-
import './rateLimitWindows-
|
|
94
|
-
import './claudeAccountEnv-
|
|
95
|
-
import './store-
|
|
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-
|
|
103
|
-
import './acpSessionResume-
|
|
103
|
+
import './piRunnerArgs-Dy-3vN_Q.mjs';
|
|
104
|
+
import './acpSessionResume-BYMm4w8Q.mjs';
|
|
104
105
|
import 'url';
|
|
105
106
|
import 'node:module';
|
|
106
|
-
import './client-
|
|
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-
|
|
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,
|
|
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-
|
|
6
|
-
import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-
|
|
7
|
-
import { s as sharedProjectsClient } from './client-
|
|
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-
|
|
10
|
-
import { l as logger } from './logger-
|
|
11
|
-
import { r as readSettings } from './persistence-
|
|
12
|
-
import { c as createSessionMetadata } from './createSessionMetadata-
|
|
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-
|
|
15
|
-
import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-
|
|
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-
|
|
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-
|
|
21
|
-
import { A as AcpBackend, i as isAgentExitError } from './AcpBackend-
|
|
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-
|
|
24
|
-
import { B as BasePermissionHandler } from './BasePermissionHandler-
|
|
25
|
-
import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-
|
|
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-
|
|
30
|
-
import './client-
|
|
31
|
-
import './configuration-
|
|
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-
|
|
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-
|
|
41
|
+
import './client-BhAjEv8Z.mjs';
|
|
42
42
|
import 'node:child_process';
|
|
43
43
|
import 'node:util';
|
|
44
|
-
import './context-
|
|
45
|
-
import './sessionOps-
|
|
44
|
+
import './context-DcOpvIiR.mjs';
|
|
45
|
+
import './sessionOps-BkEgNA2O.mjs';
|
|
46
46
|
import 'axios';
|
|
47
|
-
import './time-
|
|
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-
|
|
52
|
-
import './peerTools-
|
|
51
|
+
import './tools-DqjPHq9I.mjs';
|
|
52
|
+
import './peerTools-DS6GqJcn.mjs';
|
|
53
53
|
import './ids-DU6sLx4C.mjs';
|
|
54
|
-
import './remoteSessionClient
|
|
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-
|
|
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-
|
|
63
|
+
import './bootstrap-BxcKrgR9.mjs';
|
|
64
64
|
import './webPanels-B2_C2-3g.mjs';
|
|
65
|
-
import './pushNotifications-
|
|
65
|
+
import './pushNotifications-67GmbVfE.mjs';
|
|
66
66
|
import './previewPath-CXN4Vag0.mjs';
|
|
67
67
|
import 'crypto';
|
|
68
|
-
import './lidState-
|
|
68
|
+
import './lidState-Cb3TbhPb.mjs';
|
|
69
69
|
import 'os';
|
|
70
70
|
import 'child_process';
|
|
71
71
|
import 'node:events';
|
|
72
|
-
import './registerCommonHandlers-
|
|
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-
|
|
77
|
+
import './sync-GJkf-HGu.mjs';
|
|
78
78
|
import 'chalk';
|
|
79
79
|
import './detectCLI-CSGMlV51.mjs';
|
|
80
80
|
import 'fs';
|
|
81
|
-
import './localHappyAgentAuth-
|
|
81
|
+
import './localHappyAgentAuth-CAAIUJyY.mjs';
|
|
82
82
|
import 'tweetnacl';
|
|
83
83
|
import './fsMkdir-DumgLTzR.mjs';
|
|
84
84
|
import './types-CkqAACXx.mjs';
|