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,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({
|
|
@@ -1,114 +1,114 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var auth = require('./auth-
|
|
4
|
-
var index = require('./index-
|
|
5
|
-
var defaultPermissionMode = require('./defaultPermissionMode-
|
|
6
|
-
var deterministicJson = require('./deterministicJson-
|
|
7
|
-
var client = require('./client-
|
|
3
|
+
var auth = require('./auth-DfcdjMUp.cjs');
|
|
4
|
+
var index = require('./index-D9Hidq-g.cjs');
|
|
5
|
+
var defaultPermissionMode = require('./defaultPermissionMode-BCWCMONI.cjs');
|
|
6
|
+
var deterministicJson = require('./deterministicJson-BYqRKTmL.cjs');
|
|
7
|
+
var client = require('./client-DcXLNaF2.cjs');
|
|
8
8
|
var promises = require('node:fs/promises');
|
|
9
9
|
var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
|
|
10
10
|
var node_crypto = require('node:crypto');
|
|
11
11
|
var cuid2 = require('@paralleldrive/cuid2');
|
|
12
|
-
var api = require('./api-
|
|
12
|
+
var api = require('./api-TpjZJXV-.cjs');
|
|
13
13
|
var heldInput = require('./heldInput-BOtqFO2r.cjs');
|
|
14
|
-
var attachmentContent = require('./attachmentContent-
|
|
14
|
+
var attachmentContent = require('./attachmentContent-BiBOjTXX.cjs');
|
|
15
15
|
var ink = require('ink');
|
|
16
|
-
var sessionLock = require('./sessionLock-
|
|
16
|
+
var sessionLock = require('./sessionLock-B8fsnpZD.cjs');
|
|
17
17
|
var React = require('react');
|
|
18
|
-
var codexAppServerClient = require('./codexAppServerClient-
|
|
19
|
-
var
|
|
20
|
-
var logger = require('./logger-
|
|
21
|
-
var BasePermissionHandler = require('./BasePermissionHandler-
|
|
22
|
-
var codexTermination = require('./codexTermination-
|
|
18
|
+
var codexAppServerClient = require('./codexAppServerClient-C1xBSuVk.cjs');
|
|
19
|
+
var registerSideQuestionHandler = require('./registerSideQuestionHandler-CsyPnjce.cjs');
|
|
20
|
+
var logger = require('./logger-BZ5TcbEh.cjs');
|
|
21
|
+
var BasePermissionHandler = require('./BasePermissionHandler-C6iF28Ct.cjs');
|
|
22
|
+
var codexTermination = require('./codexTermination-C9c80lIF.cjs');
|
|
23
23
|
var node_child_process = require('node:child_process');
|
|
24
|
-
var persistence = require('./persistence-
|
|
25
|
-
var machineMetadata = require('./machineMetadata-
|
|
26
|
-
var configuration = require('./configuration-
|
|
27
|
-
var registerKillSessionHandler = require('./registerKillSessionHandler-
|
|
24
|
+
var persistence = require('./persistence-DBmeYlwT.cjs');
|
|
25
|
+
var machineMetadata = require('./machineMetadata-DLb-m4fL.cjs');
|
|
26
|
+
var configuration = require('./configuration-CKaq0tNe.cjs');
|
|
27
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-BWvl6wro.cjs');
|
|
28
28
|
var projectPath = require('./projectPath-C3ioB4Bu.cjs');
|
|
29
29
|
var path = require('node:path');
|
|
30
|
-
var createSessionMetadata = require('./createSessionMetadata-
|
|
30
|
+
var createSessionMetadata = require('./createSessionMetadata-CusO22Am.cjs');
|
|
31
31
|
var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
|
|
32
|
-
var controlClient = require('./controlClient-
|
|
33
|
-
var startupSessionCreate = require('./startupSessionCreate-
|
|
32
|
+
var controlClient = require('./controlClient-D_HIbnnS.cjs');
|
|
33
|
+
var startupSessionCreate = require('./startupSessionCreate-rkIMVGJW.cjs');
|
|
34
34
|
var authRelay = require('./authRelay-Dy1qU9td.cjs');
|
|
35
|
-
var setupOfflineReconnection = require('./setupOfflineReconnection-
|
|
35
|
+
var setupOfflineReconnection = require('./setupOfflineReconnection-CMUdHtFT.cjs');
|
|
36
36
|
var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
|
|
37
37
|
var specialCommands = require('./specialCommands-J3JFOq0J.cjs');
|
|
38
38
|
var constants = require('./constants-VJ0N6WuG.cjs');
|
|
39
39
|
var editPaths = require('./editPaths-Bqp4OFPw.cjs');
|
|
40
40
|
var reconnectEnv = require('./reconnectEnv-B31lY4nR.cjs');
|
|
41
|
-
var store = require('./store-
|
|
41
|
+
var store = require('./store-aa3CVNwS.cjs');
|
|
42
42
|
var node_fs = require('node:fs');
|
|
43
|
-
var codexAccount = require('./codexAccount-
|
|
44
|
-
var wrapperAccount = require('./wrapperAccount-
|
|
45
|
-
var ensureDaemonRunning = require('./ensureDaemonRunning-
|
|
43
|
+
var codexAccount = require('./codexAccount-CYhQir50.cjs');
|
|
44
|
+
var wrapperAccount = require('./wrapperAccount-BubTurHU.cjs');
|
|
45
|
+
var ensureDaemonRunning = require('./ensureDaemonRunning-D508DmcP.cjs');
|
|
46
46
|
require('tweetnacl');
|
|
47
47
|
require('axios');
|
|
48
|
-
require('./time-
|
|
49
|
-
require('./browser-
|
|
48
|
+
require('./time-BPPTQ_sE.cjs');
|
|
49
|
+
require('./browser-ac0aPrVE.cjs');
|
|
50
50
|
require('open');
|
|
51
51
|
require('zod');
|
|
52
52
|
require('./prompt-Bof2aQkI.cjs');
|
|
53
|
-
require('./reportProgressTool-
|
|
54
|
-
require('./client-
|
|
53
|
+
require('./reportProgressTool-CIHGKraF.cjs');
|
|
54
|
+
require('./client-BlV73Gbw.cjs');
|
|
55
55
|
require('./precheckCompat-CWOi5c9L.cjs');
|
|
56
56
|
require('./agentGuidance-BtBx2xxE.cjs');
|
|
57
57
|
require('node:os');
|
|
58
58
|
require('./pi-DlsrPCTa.cjs');
|
|
59
59
|
require('./fileStore-7qhnbs6N.cjs');
|
|
60
|
-
require('./client-
|
|
60
|
+
require('./client-DxjYsJ8d.cjs');
|
|
61
61
|
require('node:util');
|
|
62
|
-
require('./context-
|
|
63
|
-
require('./sessionOps-
|
|
62
|
+
require('./context-DbENnaVc.cjs');
|
|
63
|
+
require('./sessionOps-74pSDXoS.cjs');
|
|
64
64
|
require('socket.io-client');
|
|
65
65
|
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
66
66
|
require('./resources-BZ_Be0qM.cjs');
|
|
67
|
-
require('./tools-
|
|
68
|
-
require('./peerTools-
|
|
67
|
+
require('./tools-B3KGMSU5.cjs');
|
|
68
|
+
require('./peerTools-BXSjS8lB.cjs');
|
|
69
69
|
require('./ids-B6ZC0HGt.cjs');
|
|
70
|
-
require('./remoteSessionClient-
|
|
70
|
+
require('./remoteSessionClient-D6_7vNKc.cjs');
|
|
71
71
|
require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
72
72
|
require('node:http');
|
|
73
73
|
require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
74
74
|
require('./limits-C-a7gr04.cjs');
|
|
75
|
-
require('./downloadTarget-
|
|
75
|
+
require('./downloadTarget-C5BzZ_bz.cjs');
|
|
76
76
|
require('./terminals-B_bfC9c2.cjs');
|
|
77
77
|
require('./terminalTitleSuggest-DhvRFX3H.cjs');
|
|
78
78
|
require('./tmuxSocket-D-Xt6Vn-.cjs');
|
|
79
|
-
require('./bootstrap-
|
|
80
|
-
require('./package-
|
|
79
|
+
require('./bootstrap-DpyP22Wx.cjs');
|
|
80
|
+
require('./package-B61-BBlh.cjs');
|
|
81
81
|
require('./webPanels-FCgFKvVe.cjs');
|
|
82
|
-
require('./pushNotifications-
|
|
82
|
+
require('./pushNotifications-qCS7_tDF.cjs');
|
|
83
83
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
84
84
|
require('./previewPath-B0rBdhy1.cjs');
|
|
85
85
|
require('crypto');
|
|
86
|
-
require('./lidState-
|
|
86
|
+
require('./lidState-Btv4N_B8.cjs');
|
|
87
87
|
require('os');
|
|
88
88
|
require('child_process');
|
|
89
89
|
require('node:events');
|
|
90
|
-
require('./registerCommonHandlers-
|
|
90
|
+
require('./registerCommonHandlers-G2p0MJu4.cjs');
|
|
91
91
|
require('util');
|
|
92
92
|
require('fs/promises');
|
|
93
93
|
require('path');
|
|
94
94
|
require('cross-spawn');
|
|
95
|
-
require('./sync-
|
|
95
|
+
require('./sync-Cj8Vhltg.cjs');
|
|
96
96
|
require('chalk');
|
|
97
97
|
require('./cliUpdate-DsKXPFYp.cjs');
|
|
98
98
|
require('./processTreeSnapshot-mDbnuojn.cjs');
|
|
99
99
|
require('node:readline');
|
|
100
100
|
require('./manager-HrEj442o.cjs');
|
|
101
101
|
require('@anthropic-ai/sandbox-runtime');
|
|
102
|
-
require('./rateLimitWindows-
|
|
102
|
+
require('./rateLimitWindows-BIfLMxOk.cjs');
|
|
103
103
|
require('./processTree-CMHWlVse.cjs');
|
|
104
104
|
require('./detectCLI-BuYR_Qxe.cjs');
|
|
105
105
|
require('fs');
|
|
106
|
-
require('./localHappyAgentAuth-
|
|
106
|
+
require('./localHappyAgentAuth-B3Q5DNLR.cjs');
|
|
107
107
|
require('./fsMkdir-0K3yENml.cjs');
|
|
108
108
|
require('./types-CRS-srZK.cjs');
|
|
109
109
|
require('url');
|
|
110
|
-
require('./claudeAccountEnv-
|
|
111
|
-
require('./spawnHappyCLI-
|
|
110
|
+
require('./claudeAccountEnv-_O3x5AJ1.cjs');
|
|
111
|
+
require('./spawnHappyCLI-Du1IgJGA.cjs');
|
|
112
112
|
require('./doctorReadiness-Dl6yRQCy.cjs');
|
|
113
113
|
|
|
114
114
|
function getStartedSubagents(state) {
|
|
@@ -1401,6 +1401,84 @@ async function steerIntoRunningTurn(deps, text, attachments, localKey) {
|
|
|
1401
1401
|
return false;
|
|
1402
1402
|
}
|
|
1403
1403
|
|
|
1404
|
+
const CODEX_SIDE_QUESTION_INSTRUCTIONS = `${registerSideQuestionHandler.SIDE_QUESTION_SYSTEM_PROMPT} Do not run commands or call tools.`;
|
|
1405
|
+
const ANSWER_ITEMS = /* @__PURE__ */ new Set(["userMessage", "agentMessage", "reasoning"]);
|
|
1406
|
+
function toolName(item) {
|
|
1407
|
+
if (item.type === "commandExecution") return "a shell command";
|
|
1408
|
+
if (item.type === "mcpToolCall" && typeof item.tool === "string") return typeof item.server === "string" ? `${item.server}.${item.tool}` : item.tool;
|
|
1409
|
+
return typeof item.type === "string" ? item.type : "a tool";
|
|
1410
|
+
}
|
|
1411
|
+
function turnError(turn) {
|
|
1412
|
+
if (!turn || turn.status === "completed") return null;
|
|
1413
|
+
const message = turn.error && typeof turn.error.message === "string" ? turn.error.message : "";
|
|
1414
|
+
return message || `Side question ended (${String(turn.status ?? "unknown")})`;
|
|
1415
|
+
}
|
|
1416
|
+
async function runCodexSideQuestion(createClient, input) {
|
|
1417
|
+
const client = createClient();
|
|
1418
|
+
const signal = input.signal;
|
|
1419
|
+
if (signal?.aborted) throw new Error("Side question cancelled");
|
|
1420
|
+
let threadId = null;
|
|
1421
|
+
let turnId = null;
|
|
1422
|
+
let streamed = "";
|
|
1423
|
+
const messages = /* @__PURE__ */ new Map();
|
|
1424
|
+
let toolAttempt = null;
|
|
1425
|
+
let settle;
|
|
1426
|
+
const done = new Promise((resolve) => {
|
|
1427
|
+
settle = resolve;
|
|
1428
|
+
});
|
|
1429
|
+
const interrupt = () => {
|
|
1430
|
+
if (threadId && turnId) void client.interruptSideTurn(threadId, turnId).catch(() => {
|
|
1431
|
+
});
|
|
1432
|
+
};
|
|
1433
|
+
const off = client.onRawNotification((method, params) => {
|
|
1434
|
+
if (!threadId || params?.threadId !== threadId) return;
|
|
1435
|
+
if (!turnId && typeof params.turnId === "string") turnId = params.turnId;
|
|
1436
|
+
if (method === "item/agentMessage/delta" && typeof params.delta === "string") {
|
|
1437
|
+
streamed += params.delta;
|
|
1438
|
+
input.onText?.(streamed);
|
|
1439
|
+
} else if (method === "item/started" && params.item && !ANSWER_ITEMS.has(params.item.type)) {
|
|
1440
|
+
toolAttempt ??= toolName(params.item);
|
|
1441
|
+
interrupt();
|
|
1442
|
+
} else if (method === "item/completed" && params.item?.type === "agentMessage" && typeof params.item.text === "string") {
|
|
1443
|
+
messages.set(params.item.id ?? String(messages.size), params.item.text);
|
|
1444
|
+
} else if (method === "turn/completed") {
|
|
1445
|
+
settle({ error: toolAttempt ? void 0 : turnError(params.turn) ?? void 0 });
|
|
1446
|
+
}
|
|
1447
|
+
});
|
|
1448
|
+
const onAbort = () => {
|
|
1449
|
+
interrupt();
|
|
1450
|
+
settle({ error: "Side question cancelled" });
|
|
1451
|
+
};
|
|
1452
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
1453
|
+
try {
|
|
1454
|
+
await client.connect();
|
|
1455
|
+
let hadContext = Boolean(input.resumeSessionId);
|
|
1456
|
+
try {
|
|
1457
|
+
({ threadId } = await client.openSideThread({ sourceThreadId: input.resumeSessionId, cwd: input.cwd, model: input.model, developerInstructions: CODEX_SIDE_QUESTION_INSTRUCTIONS }));
|
|
1458
|
+
} catch (error) {
|
|
1459
|
+
if (!input.resumeSessionId || signal?.aborted) throw error;
|
|
1460
|
+
hadContext = false;
|
|
1461
|
+
({ threadId } = await client.openSideThread({ sourceThreadId: null, cwd: input.cwd, model: input.model, developerInstructions: CODEX_SIDE_QUESTION_INSTRUCTIONS }));
|
|
1462
|
+
}
|
|
1463
|
+
if (signal?.aborted) throw new Error("Side question cancelled");
|
|
1464
|
+
turnId = await client.startSideTurn(threadId, registerSideQuestionHandler.buildSideQuestionPrompt(input.question, input.history, input.mainStatus)) ?? turnId;
|
|
1465
|
+
if (signal?.aborted || toolAttempt) interrupt();
|
|
1466
|
+
const outcome = await done;
|
|
1467
|
+
if (signal?.aborted) throw new Error("Side question cancelled");
|
|
1468
|
+
if (outcome.error) throw new Error(outcome.error);
|
|
1469
|
+
const final = [...messages.values()].filter((text) => text.trim()).join("\n\n") || streamed;
|
|
1470
|
+
const answer = toolAttempt ? [final.trim(), registerSideQuestionHandler.toolAttemptNotice(toolAttempt)].filter(Boolean).join("\n\n") : final;
|
|
1471
|
+
if (!answer.trim()) throw new Error("Side question ended without a result");
|
|
1472
|
+
input.onText?.(answer);
|
|
1473
|
+
return { answer, hadContext, mode: "fork" };
|
|
1474
|
+
} finally {
|
|
1475
|
+
off();
|
|
1476
|
+
signal?.removeEventListener("abort", onAbort);
|
|
1477
|
+
await client.disconnect().catch(() => {
|
|
1478
|
+
});
|
|
1479
|
+
}
|
|
1480
|
+
}
|
|
1481
|
+
|
|
1404
1482
|
function hashCodexEnhancedMode(mode) {
|
|
1405
1483
|
return deterministicJson.hashObject({
|
|
1406
1484
|
permissionMode: mode.permissionMode,
|
|
@@ -1579,7 +1657,7 @@ async function runCodex(opts) {
|
|
|
1579
1657
|
dangerouslySkipPermissions: initialPermissionMode === "yolo" || initialPermissionMode === "bypassPermissions",
|
|
1580
1658
|
...forkedFromSessionId ? { parentSessionId: forkedFromSessionId } : {},
|
|
1581
1659
|
...forkedFromMessageId ? { forkedFromMessageId } : {},
|
|
1582
|
-
capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY, sessionLock.AUTO_RESTART_CAPABILITY, index.CODEX_STEER_CAPABILITY, index.PROJECT_SESSION_CAPABILITY, index.CODEX_COMPACT_CAPABILITY, index.RUN_INTENT_CAPABILITY, index.AGENT_PROFILE_SESSION_CAPABILITY]
|
|
1660
|
+
capabilities: [index.PROMPT_QUEUE_CAPABILITY, forkBackfill.FORK_BACKFILL_CAPABILITY, persistence.HIBERNATION_CAPABILITY, sessionLock.AUTO_RESTART_CAPABILITY, index.CODEX_STEER_CAPABILITY, index.PROJECT_SESSION_CAPABILITY, index.CODEX_COMPACT_CAPABILITY, index.RUN_INTENT_CAPABILITY, index.AGENT_PROFILE_SESSION_CAPABILITY, index.CODEX_BTW_CAPABILITY]
|
|
1583
1661
|
});
|
|
1584
1662
|
metadata.attachmentKinds = [...attachmentContent.CLAUDE_ATTACHMENT_KINDS];
|
|
1585
1663
|
metadata.stickyModel = null;
|
|
@@ -2065,6 +2143,17 @@ async function runCodex(opts) {
|
|
|
2065
2143
|
}
|
|
2066
2144
|
client$1 = new codexAppServerClient.CodexAppServerClient(sandboxConfig);
|
|
2067
2145
|
client$1.setAccountOverrides(codexAccount$1.overrides);
|
|
2146
|
+
registerSideQuestionHandler.registerSideQuestionHandler(session.rpcHandlerManager, {
|
|
2147
|
+
getClaudeSessionId: () => client$1?.threadId ?? null,
|
|
2148
|
+
getModel: () => currentModel ?? client$1?.threadModel ?? void 0,
|
|
2149
|
+
cwd: process.cwd(),
|
|
2150
|
+
getMainStatus: () => registerSideQuestionHandler.describePendingApprovals(session.getAgentState()?.requests),
|
|
2151
|
+
run: (input) => runCodexSideQuestion(() => {
|
|
2152
|
+
const side = new codexAppServerClient.CodexAppServerClient(sandboxConfig);
|
|
2153
|
+
side.setAccountOverrides(codexAccount$1.overrides);
|
|
2154
|
+
return side;
|
|
2155
|
+
}, input)
|
|
2156
|
+
});
|
|
2068
2157
|
const idleRelease = new CodexIdleReleaseTimer({
|
|
2069
2158
|
delayMs: resolveCodexIdleReleaseMs(process.env[CODEX_IDLE_RELEASE_ENV]),
|
|
2070
2159
|
isIdle: () => shouldReleaseIdleCodex({
|
|
@@ -2108,7 +2197,7 @@ async function runCodex(opts) {
|
|
|
2108
2197
|
}
|
|
2109
2198
|
});
|
|
2110
2199
|
const editThrottle = new editPaths.EditReportThrottle();
|
|
2111
|
-
client$1.setRateLimitHandler((snapshot) =>
|
|
2200
|
+
client$1.setRateLimitHandler((snapshot) => registerSideQuestionHandler.wrapperRateLimitReporter().observeCodex(snapshot));
|
|
2112
2201
|
client$1.setEventHandler((msg) => {
|
|
2113
2202
|
if (msg.type === "token_count") {
|
|
2114
2203
|
session.sendAgentUsageSnapshot("codex", msg);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var node_crypto = require('node:crypto');
|
|
4
|
-
var logger = require('./logger-
|
|
4
|
+
var logger = require('./logger-BZ5TcbEh.cjs');
|
|
5
5
|
var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
|
|
6
6
|
|
|
7
7
|
class BaseReasoningProcessor {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
-
import { l as logger } from './logger-
|
|
2
|
+
import { l as logger } from './logger-UgDpJA2u.mjs';
|
|
3
3
|
import { O as OFFLINE_EXIT_STAMP_TIMEOUT_MS } from './sessionExitLifecycle-CzkLIgNZ.mjs';
|
|
4
4
|
|
|
5
5
|
class BaseReasoningProcessor {
|
|
@@ -112,7 +112,9 @@ async function forkCodexBeforeUserMessage(client, opts) {
|
|
|
112
112
|
throw new Error("Cannot safely rewind a user message inside an existing turn");
|
|
113
113
|
}
|
|
114
114
|
if (sourceCut.index === 0) return { type: "success", startFresh: true };
|
|
115
|
-
|
|
115
|
+
return forkThroughTurns(client, opts, (source.turns ?? []).slice(0, sourceCut.index));
|
|
116
|
+
}
|
|
117
|
+
async function forkThroughTurns(client, opts, kept) {
|
|
116
118
|
const expected = kept.map(firstItemId);
|
|
117
119
|
const forked = await client.forkThread({ threadId: opts.threadId, cwd: opts.cwd, lastTurnId: kept[kept.length - 1].id });
|
|
118
120
|
if (forked.threadId === opts.threadId) throw new Error("Codex did not create an independent fork");
|
|
@@ -125,8 +127,27 @@ async function forkCodexBeforeUserMessage(client, opts) {
|
|
|
125
127
|
}
|
|
126
128
|
return { type: "success", newCodexThreadId: forked.threadId };
|
|
127
129
|
}
|
|
130
|
+
function isUnfinishedTurn(turn) {
|
|
131
|
+
return turn?.status === "inProgress" || turn?.status === "interrupted";
|
|
132
|
+
}
|
|
133
|
+
async function forkCodexCompletedTurns(client, opts) {
|
|
134
|
+
const { thread: source } = await client.readThread({ threadId: opts.threadId, includeTurns: true });
|
|
135
|
+
const turns = source.turns ?? [];
|
|
136
|
+
const last = turns[turns.length - 1];
|
|
137
|
+
if (!isUnfinishedTurn(last)) {
|
|
138
|
+
return { ...await forkCodexThread(client, opts), excludedPrompts: [] };
|
|
139
|
+
}
|
|
140
|
+
const excludedPrompts = (last.items ?? []).flatMap((item) => {
|
|
141
|
+
const text = textFromUserItem(item);
|
|
142
|
+
return text ? [text] : [];
|
|
143
|
+
});
|
|
144
|
+
const kept = turns.slice(0, -1);
|
|
145
|
+
if (kept.length === 0) return { type: "success", startFresh: true, excludedPrompts };
|
|
146
|
+
return { ...await forkThroughTurns(client, opts, kept), excludedPrompts };
|
|
147
|
+
}
|
|
128
148
|
|
|
129
149
|
exports.CodexForkRewindPointNotFoundError = CodexForkRewindPointNotFoundError;
|
|
130
150
|
exports.forkCodexBeforeUserMessage = forkCodexBeforeUserMessage;
|
|
151
|
+
exports.forkCodexCompletedTurns = forkCodexCompletedTurns;
|
|
131
152
|
exports.forkCodexThread = forkCodexThread;
|
|
132
153
|
exports.listCodexRewindPoints = listCodexRewindPoints;
|