very-happy-cli 0.2.194 → 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-C3Kx0QJb.mjs → AcpBackend-BTIF87yb.mjs} +3 -3
- package/dist/{AcpBackend-DJzsue14.cjs → AcpBackend-CXSV6FF5.cjs} +3 -3
- package/dist/{AcpSessionManager-Bc3iafB1.cjs → AcpSessionManager-BbWODxSp.cjs} +2 -2
- package/dist/{AcpSessionManager-SteuoqMY.mjs → AcpSessionManager-CEpU_GVk.mjs} +2 -2
- package/dist/{BasePermissionHandler-D2pNcAXn.mjs → BasePermissionHandler-B5ka7Aaf.mjs} +1 -1
- package/dist/{BasePermissionHandler-DKzNFVCh.cjs → BasePermissionHandler-C6iF28Ct.cjs} +1 -1
- package/dist/{account-ByVjlvFj.cjs → account-Bvcdk9CH.cjs} +11 -11
- package/dist/{account-DC2YyU24.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-DHHgbNnk.cjs → acpSessionResume-B2hd1Wub.cjs} +1 -1
- package/dist/{acpSessionResume-B6VClxKQ.mjs → acpSessionResume-BYMm4w8Q.mjs} +1 -1
- package/dist/{agentHome-Bov1aHYS.cjs → agentHome-CVM15_3U.cjs} +4 -4
- package/dist/{agentHome-9caXwo7k.mjs → agentHome-Jl8yWAjF.mjs} +4 -4
- package/dist/{api-aE60mNjs.mjs → api-DOzNOoVJ.mjs} +10 -10
- package/dist/{api-wYwQCJml.cjs → api-TpjZJXV-.cjs} +10 -10
- package/dist/{apiMachine-DwaqfM9Q.cjs → apiMachine-COkvJAmd.cjs} +18 -18
- package/dist/{apiMachine-CvNB38Xg.mjs → apiMachine-M-Fs9g5Y.mjs} +18 -18
- package/dist/{attachmentContent-DB8ZsxGE.cjs → attachmentContent-BiBOjTXX.cjs} +2 -2
- package/dist/{attachmentContent-C2ymY_-w.mjs → attachmentContent-D6PjMVDq.mjs} +2 -2
- package/dist/{auth-Bce0Zk3q.cjs → auth-BOceB8cL.cjs} +8 -8
- package/dist/{auth-BYtmGgE1.mjs → auth-BfHLe1gU.mjs} +8 -8
- package/dist/{auth-CWO6cQ4G.mjs → auth-Bfe3Ue_B.mjs} +5 -5
- package/dist/{auth-boIcb7iq.cjs → auth-DfcdjMUp.cjs} +5 -5
- package/dist/{auto-B-kopWQx.mjs → auto-CDeivd5V.mjs} +17 -17
- package/dist/{auto-AaggdihK.cjs → auto-CnTitokD.cjs} +17 -17
- package/dist/{bootstrap-CiWwfHB2.mjs → bootstrap-BxcKrgR9.mjs} +2 -2
- package/dist/{bootstrap-kywZ0tvD.cjs → bootstrap-DpyP22Wx.cjs} +2 -2
- package/dist/{browser-CFfZM3yg.mjs → browser-Bb0Gqffc.mjs} +1 -1
- package/dist/{browser-Do2MFdq6.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-DLd8ogcH.cjs → claudeLocal-RGWhplSr.cjs} +5 -5
- package/dist/{claudeLocal-B47NjZfB.mjs → claudeLocal-otwxWF6e.mjs} +5 -5
- package/dist/{claudeLocalLauncher-5DDuHpCD.mjs → claudeLocalLauncher-CTibA4cU.mjs} +10 -10
- package/dist/{claudeLocalLauncher-D_UTQ4o_.cjs → claudeLocalLauncher-yG-MBhY7.cjs} +10 -10
- package/dist/{claudeSessionFork-4g6-Sk3Q.cjs → claudeSessionFork-DH_Su4uO.cjs} +1 -1
- package/dist/{claudeSessionFork-BrJTncNL.mjs → claudeSessionFork-HFFwivGY.mjs} +1 -1
- package/dist/{client-DS5JEsHs.mjs → client-BhAjEv8Z.mjs} +4 -4
- package/dist/{client-BIg2LPVx.cjs → client-BlV73Gbw.cjs} +2 -2
- package/dist/{client-Cbxr9VUE.mjs → client-CydHzidF.mjs} +2 -2
- package/dist/{client-CsfPUxLy.cjs → client-DcXLNaF2.cjs} +2 -2
- package/dist/{client-OjYRPhZs.mjs → client-DpTk1S7C.mjs} +2 -2
- package/dist/{client-BfDga3xi.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-Bj5vN7sb.cjs → codexAppServerClient-C1xBSuVk.cjs} +60 -3
- package/dist/{codexAppServerClient-HKAm8f_D.mjs → codexAppServerClient-mln0W8vT.mjs} +60 -3
- package/dist/{codexCommand-655pR6CR.mjs → codexCommand-CmWhYduF.mjs} +136 -47
- package/dist/{codexCommand-DtbDjHZp.cjs → codexCommand-Plm-_aRy.cjs} +137 -48
- package/dist/{codexTermination-CX_FHKT5.cjs → codexTermination-C9c80lIF.cjs} +1 -1
- package/dist/{codexTermination-DxLR-bb5.mjs → codexTermination-QltAvFpq.mjs} +1 -1
- package/dist/{config-Cv-A-Bw0.cjs → config-BH75enfT.cjs} +3 -3
- package/dist/{config-CIvXVGlP.mjs → config-DK27kWTT.mjs} +3 -3
- package/dist/{configuration-2Pbg3a0H.cjs → configuration-CKaq0tNe.cjs} +1 -1
- package/dist/{configuration-rTcdHkhE.mjs → configuration-CwfgJZKs.mjs} +1 -1
- package/dist/{connect-BAYNAE8A.cjs → connect-_QkCFMxO.cjs} +13 -13
- package/dist/{connect-B9Bl68PF.mjs → connect-h3_VMJst.mjs} +13 -13
- package/dist/{context-CLTyu_tQ.cjs → context-DbENnaVc.cjs} +1 -1
- package/dist/{context-C7QarZMk.mjs → context-DcOpvIiR.mjs} +1 -1
- package/dist/{controlClient-CIqHL07h.cjs → controlClient-D_HIbnnS.cjs} +3 -3
- package/dist/{controlClient-BIdGnYBo.mjs → controlClient-Dv6IvvUq.mjs} +4 -4
- package/dist/{createSessionMetadata-BHjzRzPc.cjs → createSessionMetadata-CusO22Am.cjs} +2 -2
- package/dist/{createSessionMetadata-PrN-dT7K.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-ZBFn1jtS.cjs → deterministicJson-BYqRKTmL.cjs} +13 -13
- package/dist/{deterministicJson-DFwJ57jR.mjs → deterministicJson-CMApF2Rl.mjs} +13 -13
- package/dist/{doctor-CFYpAXvt.mjs → doctor-BkyoZ0Uw.mjs} +7 -7
- package/dist/{doctor-yyM-zii7.cjs → doctor-Czbl7gk2.cjs} +7 -7
- package/dist/{downloadTarget-DlmqPQp9.cjs → downloadTarget-C5BzZ_bz.cjs} +6 -6
- package/dist/{downloadTarget-CVPBZMnY.mjs → downloadTarget-CM0BZNSY.mjs} +6 -6
- package/dist/{ensureDaemonRunning-D2ny0yon.cjs → ensureDaemonRunning-D508DmcP.cjs} +5 -5
- package/dist/{ensureDaemonRunning-B6Y-CMWe.mjs → ensureDaemonRunning-P399ot_C.mjs} +5 -5
- package/dist/{handleResumeCommand-DlrDcV5B.mjs → handleResumeCommand-BK_2ShBf.mjs} +5 -5
- package/dist/{handleResumeCommand-D-mGugcu.cjs → handleResumeCommand-CCgK7-0v.cjs} +5 -5
- package/dist/{index-Bi3dVJ0S.mjs → index-BENDk1i9.mjs} +4 -4
- package/dist/{index-5c33fqLQ.cjs → index-BalJgriQ.cjs} +4 -4
- package/dist/{index-D1YnIih6.mjs → index-BlWyEpMw.mjs} +2 -1
- package/dist/{index-2Fcq3AGX.cjs → index-Bz9Bj7l1.cjs} +3 -3
- package/dist/{index-CPkSLWP_.cjs → index-CGKn-GTK.cjs} +4 -4
- package/dist/{index-BWvmUCQF.cjs → index-CSO1-mZ9.cjs} +42 -42
- package/dist/{index-BUFrKZeQ.cjs → index-D9Hidq-g.cjs} +2 -0
- package/dist/{index-DEN6vfEY.mjs → index-DR3NJLVk.mjs} +4 -4
- package/dist/{index-BJsenPFp.mjs → index-QSAckvNv.mjs} +3 -3
- package/dist/{index-DuDD9khO.mjs → index-_DRVKtSd.mjs} +43 -43
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-BOA4nEbm.cjs → install-CqXaN7_C.cjs} +3 -3
- package/dist/{install-BVYL-wSO.mjs → install-DMTvEPrB.mjs} +3 -3
- package/dist/lib.cjs +12 -12
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-DYeb7Wud.cjs → lidState-Btv4N_B8.cjs} +1 -1
- package/dist/{lidState-zy20u7T3.mjs → lidState-Cb3TbhPb.mjs} +1 -1
- package/dist/{localHappyAgentAuth-CScN2McN.cjs → localHappyAgentAuth-B3Q5DNLR.cjs} +1 -1
- package/dist/{localHappyAgentAuth-CBsX08VJ.mjs → localHappyAgentAuth-CAAIUJyY.mjs} +1 -1
- package/dist/{logger-CepF8C5Z.cjs → logger-BZ5TcbEh.cjs} +2 -2
- package/dist/{logger-SGCwRIV5.mjs → logger-UgDpJA2u.mjs} +2 -2
- package/dist/{machineMetadata-ClJfd7ay.mjs → machineMetadata-BYHC-3Vx.mjs} +3 -3
- package/dist/{machineMetadata-ObK4hjF0.cjs → machineMetadata-DLb-m4fL.cjs} +3 -3
- package/dist/{main-C7ZcZVBY.mjs → main-CwW6lHIw.mjs} +47 -47
- package/dist/{main-mhXOpUV7.cjs → main-LavPb80B.cjs} +47 -47
- package/dist/{mcp-Zz7m0j8A.cjs → mcp-BQbWhqUh.cjs} +18 -18
- package/dist/{mcp-BuCpkYTY.mjs → mcp-BjYz5Ymf.mjs} +18 -18
- package/dist/{mirrorProtocol-B0H9UTBM.mjs → mirrorProtocol-BH5eT99U.mjs} +3 -3
- package/dist/{mirrorProtocol-IhICxf0K.cjs → mirrorProtocol-Ci9YmCEV.cjs} +3 -3
- package/dist/{package-C7WgesIw.cjs → package-B61-BBlh.cjs} +7 -7
- package/dist/{package-Q_ELj5DL.mjs → package-C4OfB2YF.mjs} +7 -7
- package/dist/{panels-yyxpwZnk.cjs → panels-ByprLJag.cjs} +5 -5
- package/dist/{panels-Cm69UXgE.mjs → panels-cBJT5Up1.mjs} +5 -5
- package/dist/{peerTools-BcZAbqBL.cjs → peerTools-BXSjS8lB.cjs} +5 -5
- package/dist/{peerTools-DUg9RduG.mjs → peerTools-DS6GqJcn.mjs} +5 -5
- package/dist/{persistence-mr4Y484W.mjs → persistence-CQhmtobL.mjs} +2 -2
- package/dist/{persistence-D0gNvqXe.cjs → persistence-DBmeYlwT.cjs} +2 -2
- package/dist/{piRunnerArgs-DK_DDkYW.cjs → piRunnerArgs-CmEE058l.cjs} +1 -1
- package/dist/{piRunnerArgs-CGjpl4iF.mjs → piRunnerArgs-Dy-3vN_Q.mjs} +1 -1
- package/dist/{piRuntime-CtZRNOEb.cjs → piRuntime-BCXjC4__.cjs} +1 -1
- package/dist/{piRuntime-HUA19wG8.mjs → piRuntime-Rq9v4M4e.mjs} +1 -1
- package/dist/{piTerminal-Bgy1W9mA.mjs → piTerminal-CRhDUqX7.mjs} +20 -20
- package/dist/{piTerminal-D9OPouek.cjs → piTerminal-ehNQOvLL.cjs} +20 -20
- package/dist/{pushNotifications-DjEl8G0a.mjs → pushNotifications-67GmbVfE.mjs} +3 -3
- package/dist/{pushNotifications-CH0XVPQe.cjs → pushNotifications-qCS7_tDF.cjs} +3 -3
- package/dist/{query-Df3WhSA0.cjs → query-B4QIiI7e.cjs} +1 -1
- package/dist/{query-DmIo5OXf.mjs → query-CIDBGnv6.mjs} +1 -1
- package/dist/{rateLimitWindows-a2yE3kCv.mjs → rateLimitWindows-8-khalzj.mjs} +1 -1
- package/dist/{rateLimitWindows-B9PERFm1.cjs → rateLimitWindows-BIfLMxOk.cjs} +1 -1
- package/dist/{registerCommonHandlers-CND00Dpj.mjs → registerCommonHandlers-C7hlztAO.mjs} +2 -2
- package/dist/{registerCommonHandlers-D4uXC0he.cjs → registerCommonHandlers-G2p0MJu4.cjs} +2 -2
- package/dist/{registerKillSessionHandler-DQKsD9CW.cjs → registerKillSessionHandler-BWvl6wro.cjs} +6 -6
- package/dist/{registerKillSessionHandler-CwyHwm_n.mjs → registerKillSessionHandler-rwXdO0t0.mjs} +6 -6
- package/dist/registerSideQuestionHandler-CsyPnjce.cjs +366 -0
- package/dist/registerSideQuestionHandler-Xg46gSVh.mjs +358 -0
- package/dist/{remoteSessionClient-DOWgca08.cjs → remoteSessionClient-D6_7vNKc.cjs} +5 -5
- package/dist/{remoteSessionClient-mIr_9OL_.mjs → remoteSessionClient-DQSnC7ox.mjs} +5 -5
- package/dist/{reportProgressTool-BLw2_Ohi.cjs → reportProgressTool-CIHGKraF.cjs} +3 -3
- package/dist/{reportProgressTool-DTKlUlHv.mjs → reportProgressTool-HjzV5y_2.mjs} +3 -3
- package/dist/{run-bfxXYL5N.mjs → run-M06F1958.mjs} +40 -40
- package/dist/{run-1V6DLzTY.cjs → run-tQ4bFkHu.cjs} +40 -40
- package/dist/{runClaude-DuFgZZwO.cjs → runClaude-Ct0_mShC.cjs} +28 -26
- package/dist/{runClaude-BgvDhl2p.mjs → runClaude-Dm9kQZ-w.mjs} +28 -26
- package/dist/{runClaudeDeps-DeVinBmE.cjs → runClaudeDeps-BT2kWCrQ.cjs} +44 -333
- package/dist/{runClaudeDeps-CX7GtH7O.mjs → runClaudeDeps-DNOzXjc3.mjs} +47 -336
- package/dist/{runGemini-Cd27u-7R.mjs → runGemini-BvN-yeQR.mjs} +33 -33
- package/dist/{runGemini-DiYSk3s1.cjs → runGemini-cua7_iuR.cjs} +33 -33
- package/dist/{runOpenClaw-CWkkfRSo.mjs → runOpenClaw-C9E2XzmX.mjs} +18 -18
- package/dist/{runOpenClaw-DyQnBzpy.cjs → runOpenClaw-NpYFRhKm.cjs} +18 -18
- package/dist/{sandbox-C35zDrkc.mjs → sandbox-C-BXZbt9.mjs} +4 -4
- package/dist/{sandbox-BAXXYewR.cjs → sandbox-hImfD0-T.cjs} +4 -4
- package/dist/{selfCheck-R71q-x7u.cjs → selfCheck-B3ulijQM.cjs} +39 -39
- package/dist/selfCheck-D-e9kVhc.mjs +88 -0
- package/dist/{send-3Wa9th3D.cjs → send-BCVQkTOl.cjs} +8 -8
- package/dist/{send-DiSaR5Bk.mjs → send-Dv2L8IRW.mjs} +8 -8
- package/dist/{server-BxMJxaE6.mjs → server-BBBfuSB-.mjs} +4 -4
- package/dist/{server-BJu2bFBy.cjs → server-DYxyCyYF.cjs} +6 -6
- package/dist/{sessionLock-BJ1ngLgm.cjs → sessionLock-B8fsnpZD.cjs} +3 -3
- package/dist/{sessionLock-dbi4JPhP.mjs → sessionLock-BexUoWhZ.mjs} +3 -3
- package/dist/{sessionOps-BUlpeaUe.cjs → sessionOps-74pSDXoS.cjs} +4 -4
- package/dist/{sessionOps-C9wRmCBg.mjs → sessionOps-BkEgNA2O.mjs} +4 -4
- package/dist/{sessionProvider-DYD6JepE.cjs → sessionProvider-CWgHsZUA.cjs} +10 -10
- package/dist/{sessionProvider-BEHfI5gs.mjs → sessionProvider-DXkhlJE6.mjs} +10 -10
- package/dist/{sessionScanner-BwbjEoSf.cjs → sessionScanner-D56EkcIj.cjs} +3 -3
- package/dist/{sessionScanner-CFITViIZ.mjs → sessionScanner-Dhh1wREW.mjs} +3 -3
- package/dist/{sessions-C-wBd0fN.cjs → sessions-C1zRTjUe.cjs} +10 -10
- package/dist/{sessions-wOcO2X-k.mjs → sessions-dJR6k3JY.mjs} +10 -10
- package/dist/{setupOfflineReconnection-Bd6XsWhA.cjs → setupOfflineReconnection-CMUdHtFT.cjs} +2 -2
- package/dist/{setupOfflineReconnection-BrljmbqX.mjs → setupOfflineReconnection-Dp1rC-eP.mjs} +2 -2
- package/dist/{spawn-BPioepNz.mjs → spawn-D3-Weoiq.mjs} +14 -14
- package/dist/{spawn-Crprnq9Z.cjs → spawn-kMKI09Kh.cjs} +14 -14
- package/dist/{spawnAgents-B9olJ8xn.cjs → spawnAgents-Cm23BW-D.cjs} +1 -1
- package/dist/{spawnAgents-I29H9nO8.mjs → spawnAgents-hKFGQaSJ.mjs} +1 -1
- package/dist/{spawnHappyCLI-BA1bTIiO.mjs → spawnHappyCLI-CgjpjSTT.mjs} +1 -1
- package/dist/{spawnHappyCLI-C0XAWy8V.cjs → spawnHappyCLI-Du1IgJGA.cjs} +1 -1
- package/dist/{startFileWatcher-Ca5izs24.cjs → startFileWatcher-DGOnF95-.cjs} +1 -1
- package/dist/{startFileWatcher-COCEjNT8.mjs → startFileWatcher-DapvIGxp.mjs} +1 -1
- package/dist/{startupSessionCreate-BnEPBxsJ.mjs → startupSessionCreate-CSi60oo_.mjs} +3 -3
- package/dist/{startupSessionCreate-Cmg1gkKS.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-BfrnSdL1.cjs → sync-Cj8Vhltg.cjs} +1 -1
- package/dist/{sync-DVcNkv8e.mjs → sync-GJkf-HGu.mjs} +1 -1
- package/dist/{systemPrompt-BxZebU75.mjs → systemPrompt-BEagRbDZ.mjs} +2 -2
- package/dist/{systemPrompt-Os5ca7pu.cjs → systemPrompt-Cne9i1SE.cjs} +2 -2
- package/dist/{teams-CNB3DE_n.mjs → teams-C_18IMNM.mjs} +7 -7
- package/dist/{teams--pv0QFMA.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-Da5GIiCa.cjs → time-BPPTQ_sE.cjs} +1 -1
- package/dist/{time-0Ru4clBD.mjs → time-CIkdLyza.mjs} +1 -1
- package/dist/{titleGenerator-9xIXHA5K.cjs → titleGenerator-B_OgL9Pd.cjs} +3 -3
- package/dist/{titleGenerator-CaCzpYyA.mjs → titleGenerator-DnwTdTB_.mjs} +2 -2
- package/dist/{todo-DUY_J3l_.cjs → todo-DPQHtZVM.cjs} +6 -6
- package/dist/{todo-CZXHl2Lg.mjs → todo-DmHolFRy.mjs} +6 -6
- package/dist/{tools-hPD2Hvei.cjs → tools-B3KGMSU5.cjs} +1 -1
- package/dist/{tools-DqA2Jt2R.mjs → tools-DqjPHq9I.mjs} +1 -1
- package/dist/{uninstall-CjMzELYw.mjs → uninstall-Cm97eybp.mjs} +3 -3
- package/dist/{uninstall-rTvdpRLt.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-B_PZClib.mjs +0 -42
- package/dist/rateLimitReporter-M_IKRRS7.cjs +0 -44
- package/dist/selfCheck-DKMF0Dyu.mjs +0 -88
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
var node_child_process = require('node:child_process');
|
|
4
4
|
var spawn = require('cross-spawn');
|
|
5
5
|
var node_readline = require('node:readline');
|
|
6
|
-
var logger = require('./logger-
|
|
6
|
+
var logger = require('./logger-BZ5TcbEh.cjs');
|
|
7
7
|
var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
8
8
|
var manager = require('./manager-HrEj442o.cjs');
|
|
9
|
-
var _package = require('./package-
|
|
10
|
-
var rateLimitWindows = require('./rateLimitWindows-
|
|
9
|
+
var _package = require('./package-B61-BBlh.cjs');
|
|
10
|
+
var rateLimitWindows = require('./rateLimitWindows-BIfLMxOk.cjs');
|
|
11
11
|
var processTree = require('./processTree-CMHWlVse.cjs');
|
|
12
12
|
|
|
13
13
|
const CODEX_HELPER_LABEL_MAX_CHARS = 80;
|
|
@@ -191,6 +191,7 @@ class CodexAppServerClient {
|
|
|
191
191
|
static MAX_CHILD_LABELS = 128;
|
|
192
192
|
// Handlers set by the consumer (runCodex.ts)
|
|
193
193
|
eventHandler = null;
|
|
194
|
+
rawNotificationListeners = /* @__PURE__ */ new Set();
|
|
194
195
|
approvalHandler = null;
|
|
195
196
|
// B-555: subscription rate-limit snapshots (sparse notifications + throttled reads).
|
|
196
197
|
rateLimitHandler = null;
|
|
@@ -868,6 +869,55 @@ ${text}`.slice(-400);
|
|
|
868
869
|
};
|
|
869
870
|
return await this.request("thread/inject_items", params);
|
|
870
871
|
}
|
|
872
|
+
// ─── B-861 side questions ───────────────────────────────────
|
|
873
|
+
// A side client (its own app-server process) drives a throwaway thread
|
|
874
|
+
// with these; none of them touch `_threadId` / `_turnId`, so the client's
|
|
875
|
+
// turn tracking and reconnect-resume stay out of it.
|
|
876
|
+
/** Every app-server notification, raw. Returns the unsubscribe. */
|
|
877
|
+
onRawNotification(listener) {
|
|
878
|
+
this.rawNotificationListeners.add(listener);
|
|
879
|
+
return () => {
|
|
880
|
+
this.rawNotificationListeners.delete(listener);
|
|
881
|
+
};
|
|
882
|
+
}
|
|
883
|
+
/**
|
|
884
|
+
* An ephemeral (never persisted) thread for one side question. With
|
|
885
|
+
* `sourceThreadId`: `thread/fork` of the main thread — Codex 0.154 forks a
|
|
886
|
+
* running thread from a second app-server with the turn in flight as
|
|
887
|
+
* `interrupted`, and writes nothing to the source rollout
|
|
888
|
+
* (vh-team-B-861/codex-probe1.log). `excludeTurns` is required for an
|
|
889
|
+
* ephemeral fork of a paginated thread. Read-only sandbox, approval never.
|
|
890
|
+
*/
|
|
891
|
+
async openSideThread(opts) {
|
|
892
|
+
await this.ensureConnected();
|
|
893
|
+
const common = {
|
|
894
|
+
model: opts.model ?? null,
|
|
895
|
+
modelProvider: this.accountOverrides.modelProvider ?? null,
|
|
896
|
+
cwd: opts.cwd,
|
|
897
|
+
approvalPolicy: "never",
|
|
898
|
+
sandbox: "read-only",
|
|
899
|
+
config: { ...this.accountOverrides.config, "features.hooks": false },
|
|
900
|
+
baseInstructions: null,
|
|
901
|
+
developerInstructions: opts.developerInstructions,
|
|
902
|
+
ephemeral: true,
|
|
903
|
+
persistExtendedHistory: false
|
|
904
|
+
};
|
|
905
|
+
const result = opts.sourceThreadId ? await this.request("thread/fork", { ...common, threadId: opts.sourceThreadId, excludeTurns: true, threadSource: null }) : await this.request("thread/start", { ...common, profile: null, compactPrompt: null, includeApplyPatchTool: false, experimentalRawEvents: false });
|
|
906
|
+
return { threadId: result.thread.id };
|
|
907
|
+
}
|
|
908
|
+
/** `turn/start` on a side thread; resolves with the turn id once accepted. */
|
|
909
|
+
async startSideTurn(threadId, text) {
|
|
910
|
+
const result = await this.request("turn/start", {
|
|
911
|
+
threadId,
|
|
912
|
+
input: [{ type: "text", text }],
|
|
913
|
+
approvalPolicy: "never",
|
|
914
|
+
sandboxPolicy: { type: "readOnly" }
|
|
915
|
+
});
|
|
916
|
+
return typeof result?.turn?.id === "string" ? result.turn.id : null;
|
|
917
|
+
}
|
|
918
|
+
async interruptSideTurn(threadId, turnId) {
|
|
919
|
+
await this.request("turn/interrupt", { threadId, turnId });
|
|
920
|
+
}
|
|
871
921
|
async reconnectAndResumeThread() {
|
|
872
922
|
const threadId = this._threadId;
|
|
873
923
|
await this.disconnectInternal({ preserveThreadState: !!threadId });
|
|
@@ -1505,6 +1555,13 @@ ${text}`.slice(-400);
|
|
|
1505
1555
|
}
|
|
1506
1556
|
handleNotification(method, params) {
|
|
1507
1557
|
this.touchTurnWatchdog();
|
|
1558
|
+
for (const listener of this.rawNotificationListeners) {
|
|
1559
|
+
try {
|
|
1560
|
+
listener(method, params);
|
|
1561
|
+
} catch (error) {
|
|
1562
|
+
logger.logger.debug("[CodexAppServer] raw notification listener failed", contentLogMetadata.errorLogMetadata(error));
|
|
1563
|
+
}
|
|
1564
|
+
}
|
|
1508
1565
|
if (method === "codex/event" || method.startsWith("codex/event/")) {
|
|
1509
1566
|
this.notificationProtocol = "legacy";
|
|
1510
1567
|
const msg = params?.msg;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { execSync } from 'node:child_process';
|
|
2
2
|
import { spawn } from 'cross-spawn';
|
|
3
3
|
import { createInterface } from 'node:readline';
|
|
4
|
-
import { l as logger } from './logger-
|
|
4
|
+
import { l as logger } from './logger-UgDpJA2u.mjs';
|
|
5
5
|
import { e as errorLogMetadata, c as contentLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
|
|
6
6
|
import { i as initializeSandbox, w as wrapForMcpTransport } from './manager-BEsI4qt3.mjs';
|
|
7
|
-
import { p as packageJson } from './package-
|
|
8
|
-
import { s as shouldReadCodexRateLimits, i as isUnsupportedCodexMethodError } from './rateLimitWindows-
|
|
7
|
+
import { p as packageJson } from './package-C4OfB2YF.mjs';
|
|
8
|
+
import { s as shouldReadCodexRateLimits, i as isUnsupportedCodexMethodError } from './rateLimitWindows-8-khalzj.mjs';
|
|
9
9
|
import { s as stopProcessGracefully, k as killProcessTree } from './processTree-CP5IvQ2Z.mjs';
|
|
10
10
|
|
|
11
11
|
const CODEX_HELPER_LABEL_MAX_CHARS = 80;
|
|
@@ -189,6 +189,7 @@ class CodexAppServerClient {
|
|
|
189
189
|
static MAX_CHILD_LABELS = 128;
|
|
190
190
|
// Handlers set by the consumer (runCodex.ts)
|
|
191
191
|
eventHandler = null;
|
|
192
|
+
rawNotificationListeners = /* @__PURE__ */ new Set();
|
|
192
193
|
approvalHandler = null;
|
|
193
194
|
// B-555: subscription rate-limit snapshots (sparse notifications + throttled reads).
|
|
194
195
|
rateLimitHandler = null;
|
|
@@ -866,6 +867,55 @@ ${text}`.slice(-400);
|
|
|
866
867
|
};
|
|
867
868
|
return await this.request("thread/inject_items", params);
|
|
868
869
|
}
|
|
870
|
+
// ─── B-861 side questions ───────────────────────────────────
|
|
871
|
+
// A side client (its own app-server process) drives a throwaway thread
|
|
872
|
+
// with these; none of them touch `_threadId` / `_turnId`, so the client's
|
|
873
|
+
// turn tracking and reconnect-resume stay out of it.
|
|
874
|
+
/** Every app-server notification, raw. Returns the unsubscribe. */
|
|
875
|
+
onRawNotification(listener) {
|
|
876
|
+
this.rawNotificationListeners.add(listener);
|
|
877
|
+
return () => {
|
|
878
|
+
this.rawNotificationListeners.delete(listener);
|
|
879
|
+
};
|
|
880
|
+
}
|
|
881
|
+
/**
|
|
882
|
+
* An ephemeral (never persisted) thread for one side question. With
|
|
883
|
+
* `sourceThreadId`: `thread/fork` of the main thread — Codex 0.154 forks a
|
|
884
|
+
* running thread from a second app-server with the turn in flight as
|
|
885
|
+
* `interrupted`, and writes nothing to the source rollout
|
|
886
|
+
* (vh-team-B-861/codex-probe1.log). `excludeTurns` is required for an
|
|
887
|
+
* ephemeral fork of a paginated thread. Read-only sandbox, approval never.
|
|
888
|
+
*/
|
|
889
|
+
async openSideThread(opts) {
|
|
890
|
+
await this.ensureConnected();
|
|
891
|
+
const common = {
|
|
892
|
+
model: opts.model ?? null,
|
|
893
|
+
modelProvider: this.accountOverrides.modelProvider ?? null,
|
|
894
|
+
cwd: opts.cwd,
|
|
895
|
+
approvalPolicy: "never",
|
|
896
|
+
sandbox: "read-only",
|
|
897
|
+
config: { ...this.accountOverrides.config, "features.hooks": false },
|
|
898
|
+
baseInstructions: null,
|
|
899
|
+
developerInstructions: opts.developerInstructions,
|
|
900
|
+
ephemeral: true,
|
|
901
|
+
persistExtendedHistory: false
|
|
902
|
+
};
|
|
903
|
+
const result = opts.sourceThreadId ? await this.request("thread/fork", { ...common, threadId: opts.sourceThreadId, excludeTurns: true, threadSource: null }) : await this.request("thread/start", { ...common, profile: null, compactPrompt: null, includeApplyPatchTool: false, experimentalRawEvents: false });
|
|
904
|
+
return { threadId: result.thread.id };
|
|
905
|
+
}
|
|
906
|
+
/** `turn/start` on a side thread; resolves with the turn id once accepted. */
|
|
907
|
+
async startSideTurn(threadId, text) {
|
|
908
|
+
const result = await this.request("turn/start", {
|
|
909
|
+
threadId,
|
|
910
|
+
input: [{ type: "text", text }],
|
|
911
|
+
approvalPolicy: "never",
|
|
912
|
+
sandboxPolicy: { type: "readOnly" }
|
|
913
|
+
});
|
|
914
|
+
return typeof result?.turn?.id === "string" ? result.turn.id : null;
|
|
915
|
+
}
|
|
916
|
+
async interruptSideTurn(threadId, turnId) {
|
|
917
|
+
await this.request("turn/interrupt", { threadId, turnId });
|
|
918
|
+
}
|
|
869
919
|
async reconnectAndResumeThread() {
|
|
870
920
|
const threadId = this._threadId;
|
|
871
921
|
await this.disconnectInternal({ preserveThreadState: !!threadId });
|
|
@@ -1503,6 +1553,13 @@ ${text}`.slice(-400);
|
|
|
1503
1553
|
}
|
|
1504
1554
|
handleNotification(method, params) {
|
|
1505
1555
|
this.touchTurnWatchdog();
|
|
1556
|
+
for (const listener of this.rawNotificationListeners) {
|
|
1557
|
+
try {
|
|
1558
|
+
listener(method, params);
|
|
1559
|
+
} catch (error) {
|
|
1560
|
+
logger.debug("[CodexAppServer] raw notification listener failed", errorLogMetadata(error));
|
|
1561
|
+
}
|
|
1562
|
+
}
|
|
1506
1563
|
if (method === "codex/event" || method.startsWith("codex/event/")) {
|
|
1507
1564
|
this.notificationProtocol = "legacy";
|
|
1508
1565
|
const msg = params?.msg;
|
|
@@ -1,112 +1,112 @@
|
|
|
1
|
-
import { a as authAndSetupMachineIfNeeded } from './auth-
|
|
2
|
-
import { k as createEnvelope, w as BUILTIN_TODO_DISCOVERY, r as restoredEffort, o as readEffortIntent, Q as EFFORT_INTENT_AUTO, P as PROMPT_QUEUE_CAPABILITY, a5 as CODEX_STEER_CAPABILITY, a as PROJECT_SESSION_CAPABILITY, a6 as CODEX_COMPACT_CAPABILITY, R as RUN_INTENT_CAPABILITY, A as AGENT_PROFILE_SESSION_CAPABILITY } from './index-
|
|
3
|
-
import { a as recordRunIntents, w as withoutEffort, r as registerRunIntentRpc, b as DEFAULT_CODEX_PERMISSION_MODE } from './defaultPermissionMode-
|
|
4
|
-
import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-
|
|
5
|
-
import { s as sharedProjectsClient } from './client-
|
|
1
|
+
import { a as authAndSetupMachineIfNeeded } from './auth-Bfe3Ue_B.mjs';
|
|
2
|
+
import { k as createEnvelope, w as BUILTIN_TODO_DISCOVERY, r as restoredEffort, o as readEffortIntent, Q as EFFORT_INTENT_AUTO, P as PROMPT_QUEUE_CAPABILITY, a5 as CODEX_STEER_CAPABILITY, a as PROJECT_SESSION_CAPABILITY, a6 as CODEX_COMPACT_CAPABILITY, R as RUN_INTENT_CAPABILITY, A as AGENT_PROFILE_SESSION_CAPABILITY, a7 as CODEX_BTW_CAPABILITY } from './index-BlWyEpMw.mjs';
|
|
3
|
+
import { a as recordRunIntents, w as withoutEffort, r as registerRunIntentRpc, b as DEFAULT_CODEX_PERMISSION_MODE } from './defaultPermissionMode-B-Vt8ECY.mjs';
|
|
4
|
+
import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-CMApF2Rl.mjs';
|
|
5
|
+
import { s as sharedProjectsClient } from './client-CydHzidF.mjs';
|
|
6
6
|
import { unlink } from 'node:fs/promises';
|
|
7
7
|
import { p as publishForkBackfillWhenCommitted, F as FORK_BACKFILL_CAPABILITY } from './forkBackfill-DYIjlN1Z.mjs';
|
|
8
8
|
import { randomUUID } from 'node:crypto';
|
|
9
9
|
import { createId } from '@paralleldrive/cuid2';
|
|
10
|
-
import { t as textResultPayload, d as toolResultContentText, c as connectionState, A as ApiClient } from './api-
|
|
10
|
+
import { t as textResultPayload, d as toolResultContentText, c as connectionState, A as ApiClient } from './api-DOzNOoVJ.mjs';
|
|
11
11
|
import { r as registerAgentAttachmentDownloads, H as HeldInput } from './heldInput-C69lA2dH.mjs';
|
|
12
|
-
import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-
|
|
12
|
+
import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-D6PjMVDq.mjs';
|
|
13
13
|
import { useStdout, useInput, Box, Text, render } from 'ink';
|
|
14
|
-
import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, t as takeAutoRestartedEvent, A as AUTO_RESTART_CAPABILITY, e as exitCursorStamp } from './sessionLock-
|
|
14
|
+
import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, t as takeAutoRestartedEvent, A as AUTO_RESTART_CAPABILITY, e as exitCursorStamp } from './sessionLock-BexUoWhZ.mjs';
|
|
15
15
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
16
|
-
import { C as CodexAppServerClient } from './codexAppServerClient-
|
|
17
|
-
import { w as wrapperRateLimitReporter } from './
|
|
18
|
-
import { l as logger } from './logger-
|
|
19
|
-
import { B as BasePermissionHandler } from './BasePermissionHandler-
|
|
20
|
-
import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-
|
|
16
|
+
import { C as CodexAppServerClient } from './codexAppServerClient-mln0W8vT.mjs';
|
|
17
|
+
import { S as SIDE_QUESTION_SYSTEM_PROMPT, b as buildSideQuestionPrompt, t as toolAttemptNotice, r as registerSideQuestionHandler, d as describePendingApprovals, w as wrapperRateLimitReporter } from './registerSideQuestionHandler-Xg46gSVh.mjs';
|
|
18
|
+
import { l as logger } from './logger-UgDpJA2u.mjs';
|
|
19
|
+
import { B as BasePermissionHandler } from './BasePermissionHandler-B5ka7Aaf.mjs';
|
|
20
|
+
import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-QltAvFpq.mjs';
|
|
21
21
|
import { execSync } from 'node:child_process';
|
|
22
|
-
import { r as readSettings, l as latchKeepAwake, e as evaluateWrapperIdle, a as resolveCheckMs, H as HIBERNATION_CAPABILITY } from './persistence-
|
|
23
|
-
import { g as getInitialMachineMetadata } from './machineMetadata-
|
|
24
|
-
import { c as configuration } from './configuration-
|
|
25
|
-
import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-
|
|
22
|
+
import { r as readSettings, l as latchKeepAwake, e as evaluateWrapperIdle, a as resolveCheckMs, H as HIBERNATION_CAPABILITY } from './persistence-CQhmtobL.mjs';
|
|
23
|
+
import { g as getInitialMachineMetadata } from './machineMetadata-BYHC-3Vx.mjs';
|
|
24
|
+
import { c as configuration } from './configuration-CwfgJZKs.mjs';
|
|
25
|
+
import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-rwXdO0t0.mjs';
|
|
26
26
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
27
27
|
import { dirname, join } from 'node:path';
|
|
28
|
-
import { c as createSessionMetadata } from './createSessionMetadata-
|
|
28
|
+
import { c as createSessionMetadata } from './createSessionMetadata-DimBsfVG.mjs';
|
|
29
29
|
import { M as MessageBuffer } from './sessionExitLifecycle-CzkLIgNZ.mjs';
|
|
30
|
-
import { n as notifyDaemonSessionStarted, o as reportSessionEditToDaemon, c as checkDaemonHibernation } from './controlClient-
|
|
31
|
-
import { c as createSessionForStartup, b as HibernationExitLatch, H as HibernationProbe, a as commitHibernation } from './startupSessionCreate-
|
|
30
|
+
import { n as notifyDaemonSessionStarted, o as reportSessionEditToDaemon, c as checkDaemonHibernation } from './controlClient-Dv6IvvUq.mjs';
|
|
31
|
+
import { c as createSessionForStartup, b as HibernationExitLatch, H as HibernationProbe, a as commitHibernation } from './startupSessionCreate-CSi60oo_.mjs';
|
|
32
32
|
import { d as decodeBase64, e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
|
|
33
|
-
import { s as setupOfflineReconnection } from './setupOfflineReconnection-
|
|
33
|
+
import { s as setupOfflineReconnection } from './setupOfflineReconnection-Dp1rC-eP.mjs';
|
|
34
34
|
import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
|
|
35
35
|
import { a as parseSpecialCommand, c as compactCommandText, b as parseCompact } from './specialCommands-MXUN0wfI.mjs';
|
|
36
36
|
import { C as CHANGE_TITLE_INSTRUCTION } from './constants-BC4St0xd.mjs';
|
|
37
37
|
import { E as EditReportThrottle, a as extractCodexPatchPaths } from './editPaths-BVfS_FFL.mjs';
|
|
38
38
|
import { t as takeReconnectEnv } from './reconnectEnv-DeSvHl3q.mjs';
|
|
39
|
-
import { r as readSessionBindings, w as writeSessionBinding, d as defaultSecretProbe, a as readAccounts, c as readAccountsFileV2, f as writeAccountsFile, S as SPAWN_ACCOUNT_ENV } from './store-
|
|
39
|
+
import { r as readSessionBindings, w as writeSessionBinding, d as defaultSecretProbe, a as readAccounts, c as readAccountsFileV2, f as writeAccountsFile, S as SPAWN_ACCOUNT_ENV } from './store-Tf-r1ouq.mjs';
|
|
40
40
|
import { mkdirSync, writeFileSync, chmodSync, rmSync } from 'node:fs';
|
|
41
|
-
import { a as resolveCodexAccount, r as readCodexProviders, s as syncCodexOverlay, b as baseCodexHome, c as codexAccountSwitched, d as readCodexDefaultProvider, e as codexAccountDefaultModel, f as accountModelsAsCatalog, i as isHistoryRejectedError, g as isCodexAuthRejection } from './codexAccount-
|
|
42
|
-
import { s as shouldRecordSpawnAccount, u as unavailableNotice } from './wrapperAccount-
|
|
43
|
-
import { a as extractNoSandboxFlag, e as ensureDaemonRunning } from './ensureDaemonRunning-
|
|
41
|
+
import { a as resolveCodexAccount, r as readCodexProviders, s as syncCodexOverlay, b as baseCodexHome, c as codexAccountSwitched, d as readCodexDefaultProvider, e as codexAccountDefaultModel, f as accountModelsAsCatalog, i as isHistoryRejectedError, g as isCodexAuthRejection } from './codexAccount-CKXpXq0B.mjs';
|
|
42
|
+
import { s as shouldRecordSpawnAccount, u as unavailableNotice } from './wrapperAccount-Cq7eZRMx.mjs';
|
|
43
|
+
import { a as extractNoSandboxFlag, e as ensureDaemonRunning } from './ensureDaemonRunning-P399ot_C.mjs';
|
|
44
44
|
import 'tweetnacl';
|
|
45
45
|
import 'axios';
|
|
46
|
-
import './time-
|
|
47
|
-
import './browser-
|
|
46
|
+
import './time-CIkdLyza.mjs';
|
|
47
|
+
import './browser-Bb0Gqffc.mjs';
|
|
48
48
|
import 'open';
|
|
49
49
|
import 'zod';
|
|
50
50
|
import './prompt-QHuFx9j6.mjs';
|
|
51
|
-
import './reportProgressTool-
|
|
52
|
-
import './client-
|
|
51
|
+
import './reportProgressTool-HjzV5y_2.mjs';
|
|
52
|
+
import './client-DpTk1S7C.mjs';
|
|
53
53
|
import './precheckCompat-DeEbilbr.mjs';
|
|
54
54
|
import './agentGuidance-BDYt2Qy2.mjs';
|
|
55
55
|
import 'node:os';
|
|
56
56
|
import './pi-CqyoZMjI.mjs';
|
|
57
57
|
import './fileStore-5qpetZS0.mjs';
|
|
58
|
-
import './client-
|
|
58
|
+
import './client-BhAjEv8Z.mjs';
|
|
59
59
|
import 'node:util';
|
|
60
|
-
import './context-
|
|
61
|
-
import './sessionOps-
|
|
60
|
+
import './context-DcOpvIiR.mjs';
|
|
61
|
+
import './sessionOps-BkEgNA2O.mjs';
|
|
62
62
|
import 'socket.io-client';
|
|
63
63
|
import './backgroundTaskActivity-8PdPxrvy.mjs';
|
|
64
64
|
import './resources-CLP_MpK4.mjs';
|
|
65
|
-
import './tools-
|
|
66
|
-
import './peerTools-
|
|
65
|
+
import './tools-DqjPHq9I.mjs';
|
|
66
|
+
import './peerTools-DS6GqJcn.mjs';
|
|
67
67
|
import './ids-DU6sLx4C.mjs';
|
|
68
|
-
import './remoteSessionClient-
|
|
68
|
+
import './remoteSessionClient-DQSnC7ox.mjs';
|
|
69
69
|
import '@modelcontextprotocol/sdk/server/mcp.js';
|
|
70
70
|
import 'node:http';
|
|
71
71
|
import '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
72
72
|
import './limits-DIo7rEBR.mjs';
|
|
73
|
-
import './downloadTarget-
|
|
73
|
+
import './downloadTarget-CM0BZNSY.mjs';
|
|
74
74
|
import './terminals-Dlg0x3nY.mjs';
|
|
75
75
|
import './terminalTitleSuggest-CeKsX_V6.mjs';
|
|
76
76
|
import './tmuxSocket-B8Yx20sT.mjs';
|
|
77
|
-
import './bootstrap-
|
|
78
|
-
import './package-
|
|
77
|
+
import './bootstrap-BxcKrgR9.mjs';
|
|
78
|
+
import './package-C4OfB2YF.mjs';
|
|
79
79
|
import './webPanels-B2_C2-3g.mjs';
|
|
80
|
-
import './pushNotifications-
|
|
80
|
+
import './pushNotifications-67GmbVfE.mjs';
|
|
81
81
|
import './contentLogMetadata-BlWI0egu.mjs';
|
|
82
82
|
import './previewPath-CXN4Vag0.mjs';
|
|
83
83
|
import 'crypto';
|
|
84
|
-
import './lidState-
|
|
84
|
+
import './lidState-Cb3TbhPb.mjs';
|
|
85
85
|
import 'os';
|
|
86
86
|
import 'child_process';
|
|
87
87
|
import 'node:events';
|
|
88
|
-
import './registerCommonHandlers-
|
|
88
|
+
import './registerCommonHandlers-C7hlztAO.mjs';
|
|
89
89
|
import 'util';
|
|
90
90
|
import 'fs/promises';
|
|
91
91
|
import 'path';
|
|
92
92
|
import 'cross-spawn';
|
|
93
|
-
import './sync-
|
|
93
|
+
import './sync-GJkf-HGu.mjs';
|
|
94
94
|
import 'chalk';
|
|
95
95
|
import './cliUpdate-Y34VGe9Y.mjs';
|
|
96
96
|
import './processTreeSnapshot-CuLJDNC-.mjs';
|
|
97
97
|
import 'node:readline';
|
|
98
98
|
import './manager-BEsI4qt3.mjs';
|
|
99
99
|
import '@anthropic-ai/sandbox-runtime';
|
|
100
|
-
import './rateLimitWindows-
|
|
100
|
+
import './rateLimitWindows-8-khalzj.mjs';
|
|
101
101
|
import './processTree-CP5IvQ2Z.mjs';
|
|
102
102
|
import './detectCLI-CSGMlV51.mjs';
|
|
103
103
|
import 'fs';
|
|
104
|
-
import './localHappyAgentAuth-
|
|
104
|
+
import './localHappyAgentAuth-CAAIUJyY.mjs';
|
|
105
105
|
import './fsMkdir-DumgLTzR.mjs';
|
|
106
106
|
import './types-CkqAACXx.mjs';
|
|
107
107
|
import 'url';
|
|
108
|
-
import './claudeAccountEnv-
|
|
109
|
-
import './spawnHappyCLI-
|
|
108
|
+
import './claudeAccountEnv-NyoxjLuJ.mjs';
|
|
109
|
+
import './spawnHappyCLI-CgjpjSTT.mjs';
|
|
110
110
|
import './doctorReadiness-C208SMN9.mjs';
|
|
111
111
|
|
|
112
112
|
function getStartedSubagents(state) {
|
|
@@ -1399,6 +1399,84 @@ async function steerIntoRunningTurn(deps, text, attachments, localKey) {
|
|
|
1399
1399
|
return false;
|
|
1400
1400
|
}
|
|
1401
1401
|
|
|
1402
|
+
const CODEX_SIDE_QUESTION_INSTRUCTIONS = `${SIDE_QUESTION_SYSTEM_PROMPT} Do not run commands or call tools.`;
|
|
1403
|
+
const ANSWER_ITEMS = /* @__PURE__ */ new Set(["userMessage", "agentMessage", "reasoning"]);
|
|
1404
|
+
function toolName(item) {
|
|
1405
|
+
if (item.type === "commandExecution") return "a shell command";
|
|
1406
|
+
if (item.type === "mcpToolCall" && typeof item.tool === "string") return typeof item.server === "string" ? `${item.server}.${item.tool}` : item.tool;
|
|
1407
|
+
return typeof item.type === "string" ? item.type : "a tool";
|
|
1408
|
+
}
|
|
1409
|
+
function turnError(turn) {
|
|
1410
|
+
if (!turn || turn.status === "completed") return null;
|
|
1411
|
+
const message = turn.error && typeof turn.error.message === "string" ? turn.error.message : "";
|
|
1412
|
+
return message || `Side question ended (${String(turn.status ?? "unknown")})`;
|
|
1413
|
+
}
|
|
1414
|
+
async function runCodexSideQuestion(createClient, input) {
|
|
1415
|
+
const client = createClient();
|
|
1416
|
+
const signal = input.signal;
|
|
1417
|
+
if (signal?.aborted) throw new Error("Side question cancelled");
|
|
1418
|
+
let threadId = null;
|
|
1419
|
+
let turnId = null;
|
|
1420
|
+
let streamed = "";
|
|
1421
|
+
const messages = /* @__PURE__ */ new Map();
|
|
1422
|
+
let toolAttempt = null;
|
|
1423
|
+
let settle;
|
|
1424
|
+
const done = new Promise((resolve) => {
|
|
1425
|
+
settle = resolve;
|
|
1426
|
+
});
|
|
1427
|
+
const interrupt = () => {
|
|
1428
|
+
if (threadId && turnId) void client.interruptSideTurn(threadId, turnId).catch(() => {
|
|
1429
|
+
});
|
|
1430
|
+
};
|
|
1431
|
+
const off = client.onRawNotification((method, params) => {
|
|
1432
|
+
if (!threadId || params?.threadId !== threadId) return;
|
|
1433
|
+
if (!turnId && typeof params.turnId === "string") turnId = params.turnId;
|
|
1434
|
+
if (method === "item/agentMessage/delta" && typeof params.delta === "string") {
|
|
1435
|
+
streamed += params.delta;
|
|
1436
|
+
input.onText?.(streamed);
|
|
1437
|
+
} else if (method === "item/started" && params.item && !ANSWER_ITEMS.has(params.item.type)) {
|
|
1438
|
+
toolAttempt ??= toolName(params.item);
|
|
1439
|
+
interrupt();
|
|
1440
|
+
} else if (method === "item/completed" && params.item?.type === "agentMessage" && typeof params.item.text === "string") {
|
|
1441
|
+
messages.set(params.item.id ?? String(messages.size), params.item.text);
|
|
1442
|
+
} else if (method === "turn/completed") {
|
|
1443
|
+
settle({ error: toolAttempt ? void 0 : turnError(params.turn) ?? void 0 });
|
|
1444
|
+
}
|
|
1445
|
+
});
|
|
1446
|
+
const onAbort = () => {
|
|
1447
|
+
interrupt();
|
|
1448
|
+
settle({ error: "Side question cancelled" });
|
|
1449
|
+
};
|
|
1450
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
1451
|
+
try {
|
|
1452
|
+
await client.connect();
|
|
1453
|
+
let hadContext = Boolean(input.resumeSessionId);
|
|
1454
|
+
try {
|
|
1455
|
+
({ threadId } = await client.openSideThread({ sourceThreadId: input.resumeSessionId, cwd: input.cwd, model: input.model, developerInstructions: CODEX_SIDE_QUESTION_INSTRUCTIONS }));
|
|
1456
|
+
} catch (error) {
|
|
1457
|
+
if (!input.resumeSessionId || signal?.aborted) throw error;
|
|
1458
|
+
hadContext = false;
|
|
1459
|
+
({ threadId } = await client.openSideThread({ sourceThreadId: null, cwd: input.cwd, model: input.model, developerInstructions: CODEX_SIDE_QUESTION_INSTRUCTIONS }));
|
|
1460
|
+
}
|
|
1461
|
+
if (signal?.aborted) throw new Error("Side question cancelled");
|
|
1462
|
+
turnId = await client.startSideTurn(threadId, buildSideQuestionPrompt(input.question, input.history, input.mainStatus)) ?? turnId;
|
|
1463
|
+
if (signal?.aborted || toolAttempt) interrupt();
|
|
1464
|
+
const outcome = await done;
|
|
1465
|
+
if (signal?.aborted) throw new Error("Side question cancelled");
|
|
1466
|
+
if (outcome.error) throw new Error(outcome.error);
|
|
1467
|
+
const final = [...messages.values()].filter((text) => text.trim()).join("\n\n") || streamed;
|
|
1468
|
+
const answer = toolAttempt ? [final.trim(), toolAttemptNotice(toolAttempt)].filter(Boolean).join("\n\n") : final;
|
|
1469
|
+
if (!answer.trim()) throw new Error("Side question ended without a result");
|
|
1470
|
+
input.onText?.(answer);
|
|
1471
|
+
return { answer, hadContext, mode: "fork" };
|
|
1472
|
+
} finally {
|
|
1473
|
+
off();
|
|
1474
|
+
signal?.removeEventListener("abort", onAbort);
|
|
1475
|
+
await client.disconnect().catch(() => {
|
|
1476
|
+
});
|
|
1477
|
+
}
|
|
1478
|
+
}
|
|
1479
|
+
|
|
1402
1480
|
function hashCodexEnhancedMode(mode) {
|
|
1403
1481
|
return hashObject({
|
|
1404
1482
|
permissionMode: mode.permissionMode,
|
|
@@ -1577,7 +1655,7 @@ async function runCodex(opts) {
|
|
|
1577
1655
|
dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
|
|
1578
1656
|
...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
|
|
1579
1657
|
...forkedFromMessageId ? { forkedFromMessageId } : {},
|
|
1580
|
-
capabilities: [PROMPT_QUEUE_CAPABILITY, FORK_BACKFILL_CAPABILITY, HIBERNATION_CAPABILITY, AUTO_RESTART_CAPABILITY, CODEX_STEER_CAPABILITY, PROJECT_SESSION_CAPABILITY, CODEX_COMPACT_CAPABILITY, RUN_INTENT_CAPABILITY, AGENT_PROFILE_SESSION_CAPABILITY]
|
|
1658
|
+
capabilities: [PROMPT_QUEUE_CAPABILITY, FORK_BACKFILL_CAPABILITY, HIBERNATION_CAPABILITY, AUTO_RESTART_CAPABILITY, CODEX_STEER_CAPABILITY, PROJECT_SESSION_CAPABILITY, CODEX_COMPACT_CAPABILITY, RUN_INTENT_CAPABILITY, AGENT_PROFILE_SESSION_CAPABILITY, CODEX_BTW_CAPABILITY]
|
|
1581
1659
|
});
|
|
1582
1660
|
metadata.attachmentKinds = [...CLAUDE_ATTACHMENT_KINDS];
|
|
1583
1661
|
metadata.stickyModel = null;
|
|
@@ -2063,6 +2141,17 @@ async function runCodex(opts) {
|
|
|
2063
2141
|
}
|
|
2064
2142
|
client = new CodexAppServerClient(sandboxConfig);
|
|
2065
2143
|
client.setAccountOverrides(codexAccount.overrides);
|
|
2144
|
+
registerSideQuestionHandler(session.rpcHandlerManager, {
|
|
2145
|
+
getClaudeSessionId: () => client?.threadId ?? null,
|
|
2146
|
+
getModel: () => currentModel ?? client?.threadModel ?? void 0,
|
|
2147
|
+
cwd: process.cwd(),
|
|
2148
|
+
getMainStatus: () => describePendingApprovals(session.getAgentState()?.requests),
|
|
2149
|
+
run: (input) => runCodexSideQuestion(() => {
|
|
2150
|
+
const side = new CodexAppServerClient(sandboxConfig);
|
|
2151
|
+
side.setAccountOverrides(codexAccount.overrides);
|
|
2152
|
+
return side;
|
|
2153
|
+
}, input)
|
|
2154
|
+
});
|
|
2066
2155
|
const idleRelease = new CodexIdleReleaseTimer({
|
|
2067
2156
|
delayMs: resolveCodexIdleReleaseMs(process.env[CODEX_IDLE_RELEASE_ENV]),
|
|
2068
2157
|
isIdle: () => shouldReleaseIdleCodex({
|