very-happy-cli 0.2.206 → 0.2.208
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-dO5GAvaj.cjs → AcpBackend-Bi1lwlYT.cjs} +3 -3
- package/dist/{AcpBackend-CfTTWCK_.mjs → AcpBackend-DzhaCmBY.mjs} +3 -3
- package/dist/{AcpSessionManager-DpT9znny.cjs → AcpSessionManager-CMVLdPbj.cjs} +1 -1
- package/dist/{AcpSessionManager-a-A4YDP7.mjs → AcpSessionManager-DkaQ_APH.mjs} +1 -1
- package/dist/{BasePermissionHandler-C917oi-W.cjs → BasePermissionHandler-CvLAw0Oc.cjs} +1 -1
- package/dist/{BasePermissionHandler-Cg2py7Mi.mjs → BasePermissionHandler-pWG2_iEy.mjs} +1 -1
- package/dist/{account-BpEOGAi-.cjs → account-CPqnFWmL.cjs} +5 -5
- package/dist/{account-CY_3dfMO.mjs → account-CdqfSY_p.mjs} +5 -5
- package/dist/{acpSessionResume-D1v1ZqjL.mjs → acpSessionResume-BhITqLyG.mjs} +1 -1
- package/dist/{acpSessionResume-BTchDv4R.cjs → acpSessionResume-CJkt6Lb3.cjs} +1 -1
- package/dist/{agentHome-B8Fp21kp.cjs → agentHome-DNBlAPo7.cjs} +4 -4
- package/dist/{agentHome-Bb0sGzgt.mjs → agentHome-s35ZR8h2.mjs} +4 -4
- package/dist/{api-DGJVcaIF.mjs → api-CSqHDB2c.mjs} +9 -9
- package/dist/{api-B-u-Mk6V.cjs → api-DD2Kb6PC.cjs} +9 -9
- package/dist/{apiMachine-Bi15f6YB.cjs → apiMachine-B120yCAC.cjs} +111 -18
- package/dist/{apiMachine-B-GyYD22.mjs → apiMachine-glpowPBP.mjs} +112 -19
- package/dist/{attachmentContent-BvGKA5QH.cjs → attachmentContent-DaAXfnD3.cjs} +2 -2
- package/dist/{attachmentContent-C-qFMirp.mjs → attachmentContent-Dz1Klp7p.mjs} +2 -2
- package/dist/{auth-CT2084Ag.cjs → auth-CsFFmyP7.cjs} +8 -8
- package/dist/{auth-CP7a7YqH.mjs → auth-D20iF90G.mjs} +5 -5
- package/dist/{auth-FRjFFR7K.mjs → auth-DGORGC8x.mjs} +8 -8
- package/dist/{auth-Bnj_x4XN.cjs → auth-r1hltcyI.cjs} +5 -5
- package/dist/{auto-DaADkeaT.cjs → auto-Ciz46Iqn.cjs} +14 -14
- package/dist/{auto-CxItjek7.mjs → auto-DbrbFKf9.mjs} +15 -15
- package/dist/{bootstrap-BCuF4Kla.mjs → bootstrap-BNtlEESB.mjs} +2 -2
- package/dist/{bootstrap-Cq_W1C3z.cjs → bootstrap-W09l0EHC.cjs} +2 -2
- package/dist/{browser-C-PWxfCE.mjs → browser-C9mNP2Jk.mjs} +1 -1
- package/dist/{browser-CHC75A5J.cjs → browser-dRvYvuKK.cjs} +1 -1
- package/dist/{claudeLocal-XsMte9X2.mjs → claudeLocal-DReeJSNX.mjs} +5 -5
- package/dist/{claudeLocal-TVtTBsHi.cjs → claudeLocal-pk26w0aA.cjs} +4 -4
- package/dist/{claudeLocalLauncher-DDU1kyxO.mjs → claudeLocalLauncher-BXg1eVkk.mjs} +10 -10
- package/dist/{claudeLocalLauncher-D5XU298r.cjs → claudeLocalLauncher-ENxo2qLu.cjs} +9 -9
- package/dist/{claudeSessionFork-CZpugNK3.mjs → claudeSessionFork-BJgKcXCZ.mjs} +1 -1
- package/dist/{claudeSessionFork-CzzRjCFN.cjs → claudeSessionFork-Dkza0l7k.cjs} +1 -1
- package/dist/{client-Cdax95Aw.cjs → client-B-1f7vJk.cjs} +2 -2
- package/dist/{client-Bqyfl2t0.mjs → client-BcJGDe88.mjs} +4 -4
- package/dist/{client-DizbJlbC.mjs → client-CHusuUpK.mjs} +2 -2
- package/dist/{client-C2F0G1gB.cjs → client-CiMpU3hu.cjs} +4 -4
- package/dist/{client-jlIx75iG.cjs → client-CikaTA8m.cjs} +2 -2
- package/dist/{client-D9viv5fT.cjs → client-CqswQ5dm.cjs} +2 -2
- package/dist/{client-5ekzs8hv.mjs → client-D79GAZdH.mjs} +2 -2
- package/dist/{client-ztj20uaj.mjs → client-DM4LAJtu.mjs} +2 -2
- package/dist/codex/happyMcpStdioBridge.cjs +18 -18
- package/dist/codex/happyMcpStdioBridge.mjs +18 -18
- package/dist/{codexAppServerClient-oSG91fFK.cjs → codexAppServerClient-1UQzZZVz.cjs} +107 -5
- package/dist/{codexAppServerClient-DFRZ__3w.mjs → codexAppServerClient-4OO0KZot.mjs} +105 -7
- package/dist/{codexCommand-BE__EfSf.mjs → codexCommand-DXD9hMjf.mjs} +119 -106
- package/dist/{codexCommand-BNjxG3C_.cjs → codexCommand-NEGUEjNu.cjs} +122 -109
- package/dist/{codexTermination-DuGPgcGv.mjs → codexTermination-CVq2OFB8.mjs} +1 -1
- package/dist/{codexTermination-_YHZVugN.cjs → codexTermination-PerhM3_A.cjs} +1 -1
- package/dist/{config-BH7N9kZX.cjs → config-BWInnJrU.cjs} +3 -3
- package/dist/{config-DXO9RUqb.mjs → config-ut95-JvJ.mjs} +3 -3
- package/dist/{configuration-Da2jFKHx.cjs → configuration-DjajVIcC.cjs} +1 -1
- package/dist/{configuration-BreL0beF.mjs → configuration-DyUL3r3_.mjs} +1 -1
- package/dist/{connect-B_UrNMnp.mjs → connect-BUjKAnlC.mjs} +12 -12
- package/dist/{connect-BIIxh5a9.cjs → connect-CsdM0x3Z.cjs} +12 -12
- package/dist/{context-n1LlNbjT.cjs → context-Cr3K4S2w.cjs} +1 -1
- package/dist/{context-DFudPCad.mjs → context-D2H9Axdp.mjs} +1 -1
- package/dist/{controlClient-Dlait4BW.cjs → controlClient-BpIuQ1Ns.cjs} +3 -3
- package/dist/{controlClient-DwiujrH8.mjs → controlClient-HuyeDWsu.mjs} +3 -3
- package/dist/{createSessionMetadata-83WjQzAt.cjs → createSessionMetadata-B18g5IaB.cjs} +2 -2
- package/dist/{createSessionMetadata-B0wB4nIY.mjs → createSessionMetadata-ysHgFXAk.mjs} +2 -2
- package/dist/{deterministicJson-BUtDwjAU.mjs → deterministicJson-9MtfxFkH.mjs} +14 -14
- package/dist/{deterministicJson-Dppskedb.cjs → deterministicJson-CjoGQVig.cjs} +14 -14
- package/dist/{doctor-QQS5dGqG.mjs → doctor-3F1VRGNQ.mjs} +7 -7
- package/dist/{doctor-BtVympkn.cjs → doctor-B5X_WgW5.cjs} +7 -7
- package/dist/{downloadTarget-CVm8ey3W.mjs → downloadTarget-Bphxqzlj.mjs} +6 -6
- package/dist/{downloadTarget-CxGQUh-7.cjs → downloadTarget-Da5r5bmz.cjs} +6 -6
- package/dist/{ensureDaemonRunning-CjD9jtqp.cjs → ensureDaemonRunning-B5KACtnt.cjs} +5 -5
- package/dist/{ensureDaemonRunning-m6Kd3BM7.mjs → ensureDaemonRunning-CfWwG5sk.mjs} +5 -5
- package/dist/{exitNotice-HOwYf-97.mjs → exitNotice-BhE9UKcS.mjs} +2 -2
- package/dist/{exitNotice-bUdz2C4L.cjs → exitNotice-DZXhuGy_.cjs} +2 -2
- package/dist/{format-2GqpXiRX.mjs → format-CNxQ0daG.mjs} +1 -1
- package/dist/{format-BXxqj69f.cjs → format-VdzxFoPn.cjs} +1 -1
- package/dist/{handleResumeCommand-D_NUSPvz.cjs → handleResumeCommand-CqCDmme6.cjs} +5 -5
- package/dist/{handleResumeCommand-CTT8lfhV.mjs → handleResumeCommand-D7_cvcc9.mjs} +5 -5
- package/dist/{index-TDGlRjkn.cjs → index-Bw7x7m6a.cjs} +4 -4
- package/dist/{index-CIWLX_eM.mjs → index-BzsL5LN5.mjs} +4 -4
- package/dist/{index-B2xEPLkK.cjs → index-CFCunVeQ.cjs} +40 -40
- package/dist/{index-BLL_KBUA.mjs → index-CNW2-T1Y.mjs} +3 -3
- package/dist/{index-CDO9rljT.mjs → index-CPRRUQzg.mjs} +41 -41
- package/dist/{index-C2PX_W49.mjs → index-CdEG8IE-.mjs} +4 -4
- package/dist/{index-BrvS8Bor.cjs → index-DJ8lYOQz.cjs} +4 -4
- package/dist/{index-CJXPB8kU.cjs → index-DY6iQHV4.cjs} +3 -3
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-BaUw2G6E.cjs → install-C3VX-lFh.cjs} +3 -3
- package/dist/{install-DDfCEbu9.mjs → install-DXc3VEgr.mjs} +3 -3
- package/dist/{issue-BrxmnVRr.cjs → issue-16qqmyzu.cjs} +7 -7
- package/dist/{issue-Mh6p_OMm.mjs → issue-Du98oR1Q.mjs} +7 -7
- package/dist/lib.cjs +11 -11
- package/dist/lib.d.cts +8 -0
- package/dist/lib.d.mts +8 -0
- package/dist/lib.mjs +11 -11
- package/dist/{localHappyAgentAuth-B2bOV9RF.mjs → localHappyAgentAuth-3xKBQJOa.mjs} +1 -1
- package/dist/{localHappyAgentAuth-BtDypYZb.cjs → localHappyAgentAuth-B_P4c1Gm.cjs} +1 -1
- package/dist/{logger-DOp6YYAW.mjs → logger-B3uJyacO.mjs} +2 -2
- package/dist/{logger-B_GiBdoD.cjs → logger-el0cE85h.cjs} +2 -2
- package/dist/{machineMetadata-8PjdzhIk.mjs → machineMetadata-CO2nMt0D.mjs} +3 -3
- package/dist/{machineMetadata-rjOkg7or.cjs → machineMetadata-HmfiZ6TU.cjs} +3 -3
- package/dist/{main-Dxj1sGm3.cjs → main-Czhmne4w.cjs} +48 -48
- package/dist/{main-BfSuibka.mjs → main-NKVfJrjR.mjs} +48 -48
- package/dist/{manager-BEsI4qt3.mjs → manager-2Il8XJVq.mjs} +1 -1
- package/dist/{mcp-C_G7MsCo.mjs → mcp-6E6MzmHX.mjs} +15 -15
- package/dist/{mcp-DmRG6Yyk.cjs → mcp-Dt7Xv0aE.cjs} +15 -15
- package/dist/{mirrorProtocol-N8M4o7UD.mjs → mirrorProtocol-BqPADAVi.mjs} +2 -2
- package/dist/{mirrorProtocol-C8ZsCJzM.cjs → mirrorProtocol-D02HTC80.cjs} +2 -2
- package/dist/{package-CJeweE1o.mjs → package-BObPhT96.mjs} +7 -7
- package/dist/{package-DTEEvw5V.cjs → package-COEvA5iY.cjs} +7 -7
- package/dist/{panels-D9DTAY7b.cjs → panels-8gxstFem.cjs} +5 -5
- package/dist/{panels-BJGEusTH.mjs → panels-B8SzSCYI.mjs} +5 -5
- package/dist/{peerTools-Cs7_fbtQ.cjs → peerTools-BsHkjxPt.cjs} +5 -5
- package/dist/{peerTools-D66WcwUZ.mjs → peerTools-D0rxyRcF.mjs} +5 -5
- package/dist/{persistence-DURvN3Hm.mjs → persistence-Bqjt2vfj.mjs} +2 -2
- package/dist/{persistence-_HpJ8Xqx.cjs → persistence-Cuh7Fmqq.cjs} +2 -2
- package/dist/{piRunnerArgs-BqqnRbD2.cjs → piRunnerArgs-BM4IL7-Q.cjs} +1 -1
- package/dist/{piRunnerArgs-Q9_OZpgB.mjs → piRunnerArgs-CrRB06Q-.mjs} +1 -1
- package/dist/{piRuntime-DVfBZwGV.mjs → piRuntime-C5J-NcI-.mjs} +1 -1
- package/dist/{piRuntime-CfymNU4r.cjs → piRuntime-Cxax5MJ9.cjs} +1 -1
- package/dist/{piTerminal-SWzeud-Y.cjs → piTerminal-B6FmRG-j.cjs} +17 -17
- package/dist/{piTerminal-BmVTobWw.mjs → piTerminal-CDNQVXeX.mjs} +17 -17
- package/dist/{pushNotifications-DzWubbyC.cjs → pushNotifications-B-NnyAOy.cjs} +2 -2
- package/dist/{pushNotifications-CrN3Ja_a.mjs → pushNotifications-C4KS8SZe.mjs} +2 -2
- package/dist/{query-CcFiFfJ8.mjs → query-B9_vGm55.mjs} +1 -1
- package/dist/{query-DXKQY4gV.cjs → query-O39pVPly.cjs} +1 -1
- package/dist/{rateLimitWindows-BmZ6gZY8.cjs → rateLimitWindows-CnmV6sQI.cjs} +1 -1
- package/dist/{rateLimitWindows-BrCPAQCV.mjs → rateLimitWindows-CrWlGKPl.mjs} +1 -1
- package/dist/{reconnectGate-BbxwTsar.mjs → reconnectGate-4HRVraOQ.mjs} +1 -1
- package/dist/{reconnectGate-DBf3oDWw.cjs → reconnectGate-CetSTiP3.cjs} +1 -1
- package/dist/{registerCommonHandlers-DJcGS4eV.cjs → registerCommonHandlers-BQQSEBbH.cjs} +2 -2
- package/dist/{registerCommonHandlers-Dd5Ld0CL.mjs → registerCommonHandlers-CZJBrvGH.mjs} +2 -2
- package/dist/{registerKillSessionHandler-CCpSkYc2.cjs → registerKillSessionHandler-CRt4C583.cjs} +5 -5
- package/dist/{registerKillSessionHandler-DNLUoqKq.mjs → registerKillSessionHandler-UkuPaLm6.mjs} +5 -5
- package/dist/{registerSideQuestionHandler-D7zu0Z-I.cjs → registerSideQuestionHandler-ChnSNcv4.cjs} +4 -4
- package/dist/{registerSideQuestionHandler-_YMnEk1L.mjs → registerSideQuestionHandler-zuvmCRN8.mjs} +4 -4
- package/dist/{remoteSessionClient-Don4DO6r.cjs → remoteSessionClient-CLzIiMIY.cjs} +5 -5
- package/dist/{remoteSessionClient-iIWEgwCP.mjs → remoteSessionClient-DHuh-nj5.mjs} +5 -5
- package/dist/{reportProgressTool-B9DJTgdO.mjs → reportProgressTool-dSJwAO7H.mjs} +4 -4
- package/dist/{reportProgressTool-DwHrvFHn.cjs → reportProgressTool-ikM2aqgu.cjs} +4 -4
- package/dist/{run-CbsSCESl.cjs → run-9AiIc6rL.cjs} +34 -34
- package/dist/{run-RKaV1s5m.mjs → run-BO0aCF9F.mjs} +34 -34
- package/dist/{runClaude-B4hSm06m.cjs → runClaude-D6TktbLM.cjs} +20 -20
- package/dist/{runClaude-BnMkhjUP.mjs → runClaude-DF4b_nnj.mjs} +20 -20
- package/dist/{runClaudeDeps-BrS568YD.cjs → runClaudeDeps-B5_HGZVN.cjs} +38 -38
- package/dist/{runClaudeDeps-jlxTi74f.mjs → runClaudeDeps-CljBZRuq.mjs} +44 -44
- package/dist/{runGemini-D34l_LpW.mjs → runGemini-B4R_gBKP.mjs} +35 -35
- package/dist/{runGemini-DMLMq-y1.cjs → runGemini-CtuKMFr2.cjs} +35 -35
- package/dist/{runOpenClaw-BGKlUFHd.cjs → runOpenClaw-9AXOnCW3.cjs} +17 -17
- package/dist/{runOpenClaw-Dezk2LNe.mjs → runOpenClaw-Dvu4yTbZ.mjs} +17 -17
- package/dist/{sandbox-Db7g31zm.mjs → sandbox-B3YL-SmJ.mjs} +4 -4
- package/dist/{sandbox-C70ODcxh.cjs → sandbox-C0Aresqc.cjs} +4 -4
- package/dist/{selfCheck-UKA82vpj.cjs → selfCheck-CsteE3NU.cjs} +39 -39
- package/dist/selfCheck-ZpXxm1nH.mjs +89 -0
- package/dist/{send-BD8y_Dvq.cjs → send-CTi1xuRM.cjs} +8 -8
- package/dist/{send-8-CnqJTX.mjs → send-hCtrYHjk.mjs} +8 -8
- package/dist/{server-B-0TJW4B.cjs → server-BC1WoqwX.cjs} +6 -6
- package/dist/{server-CxmH3n3Y.mjs → server-C73IJReH.mjs} +4 -4
- package/dist/{sessionLock-BRaWaYhl.cjs → sessionLock-B78eUsZn.cjs} +3 -3
- package/dist/{sessionLock-Cg33c_Um.mjs → sessionLock-D5Mt-kl0.mjs} +3 -3
- package/dist/{sessionOps-1_wWgsXG.mjs → sessionOps-IQlrlpXx.mjs} +4 -4
- package/dist/{sessionOps-C-ms5bYE.cjs → sessionOps-Z0t9Sy6x.cjs} +4 -4
- package/dist/{sessionProvider-BKJ7EW-9.mjs → sessionProvider-8T4aF-U7.mjs} +5 -5
- package/dist/{sessionProvider-nbK5DYvh.cjs → sessionProvider-C0oC0cQ0.cjs} +5 -5
- package/dist/{sessionScanner-S7FsjWqu.cjs → sessionScanner-BHdRInLC.cjs} +3 -3
- package/dist/{sessionScanner-CGP1nnOy.mjs → sessionScanner-DW1TZj2O.mjs} +3 -3
- package/dist/{sessions-7B68T5D2.mjs → sessions-COgEytKt.mjs} +10 -10
- package/dist/{sessions-CwC-s7iA.cjs → sessions-iFR3MR2E.cjs} +10 -10
- package/dist/{setupOfflineReconnection-DSlXZLP9.mjs → setupOfflineReconnection-DXZKHKXk.mjs} +2 -2
- package/dist/{setupOfflineReconnection-D9BD_Cha.cjs → setupOfflineReconnection-YFeqV96O.cjs} +2 -2
- package/dist/{spawn-D4gyZP6A.cjs → spawn-8_ucIJAi.cjs} +12 -12
- package/dist/{spawn-CJ6ow1Et.mjs → spawn-Diu7Dy6k.mjs} +13 -13
- package/dist/{spawnHappyCLI-CKgAt8NU.cjs → spawnHappyCLI-BuzhxaUb.cjs} +1 -1
- package/dist/{spawnHappyCLI-BRcxn8Ui.mjs → spawnHappyCLI-CKOV5SN4.mjs} +1 -1
- package/dist/{startFileWatcher-DJ_IPi0y.mjs → startFileWatcher-BEiKblzC.mjs} +1 -1
- package/dist/{startFileWatcher-Baw_dgs_.cjs → startFileWatcher-YhoX-sbf.cjs} +1 -1
- package/dist/{startupSessionCreate-DeJNxWtb.mjs → startupSessionCreate-DZOZ_d4O.mjs} +3 -3
- package/dist/{startupSessionCreate-Cjl3wk3-.cjs → startupSessionCreate-mjEPEPs_.cjs} +3 -3
- package/dist/{sync-COxP1DF-.mjs → sync-BHsEZG8-.mjs} +1 -1
- package/dist/{sync-BqlAL8Iu.cjs → sync-BkxVNbmG.cjs} +1 -1
- package/dist/{systemPrompt-Ch052UGr.cjs → systemPrompt-CF39MlXL.cjs} +1 -1
- package/dist/{systemPrompt-bX3lhFwJ.mjs → systemPrompt-DVKEL0KU.mjs} +1 -1
- package/dist/{teams-B15InkZ8.cjs → teams-hkfoYZYl.cjs} +8 -8
- package/dist/{teams-DCCFeNBI.mjs → teams-zF_HSHny.mjs} +8 -8
- package/dist/{time-COyPPTSV.cjs → time-C1eHsyYl.cjs} +1 -1
- package/dist/{time-BHGz6WMO.mjs → time-PLmNnNT8.mjs} +1 -1
- package/dist/{titleGenerator-J99R5x-_.mjs → titleGenerator-B_9QYPm2.mjs} +1 -1
- package/dist/{titleGenerator-D4FFE3Mo.cjs → titleGenerator-DhB7M-Go.cjs} +2 -2
- package/dist/{todo-BZAJpKe1.mjs → todo-OkokZjAB.mjs} +7 -7
- package/dist/{todo-BHGF7oHm.cjs → todo-RDZfI_KT.cjs} +7 -7
- package/dist/{tools-Ck6hDYQh.mjs → tools-BrtfEQhr.mjs} +1 -1
- package/dist/{tools-DswZApdy.cjs → tools-bCceLykM.cjs} +1 -1
- package/dist/{uninstall-DUBwOYXT.cjs → uninstall-Cz7mXpuS.cjs} +3 -3
- package/dist/{uninstall-33r_D-SV.mjs → uninstall-pLwbtTh8.mjs} +3 -3
- package/package.json +7 -7
- package/dist/selfCheck-CUVp2nQo.mjs +0 -89
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
import { a as authAndSetupMachineIfNeeded } from './auth-
|
|
1
|
+
import { a as authAndSetupMachineIfNeeded } from './auth-D20iF90G.mjs';
|
|
2
2
|
import { t as createEnvelope, M as BUILTIN_TODO_DISCOVERY, I as ISSUE_SESSION_CAPABILITY, r as restoredEffort, x as readEffortIntent, Y as EFFORT_INTENT_AUTO, P as PROMPT_QUEUE_CAPABILITY, ai as CODEX_STEER_CAPABILITY, a as PROJECT_SESSION_CAPABILITY, aj as CODEX_COMPACT_CAPABILITY, R as RUN_INTENT_CAPABILITY, A as AGENT_PROFILE_SESSION_CAPABILITY, ak as CODEX_BTW_CAPABILITY, al as CODEX_LIVE_PERMISSION_CAPABILITY } from './index-DWk-WTU-.mjs';
|
|
3
3
|
import { i as issueSessionMetadata } from './sessionMetadata-C1eoAi89.mjs';
|
|
4
4
|
import { a as recordRunIntents, w as withoutEffort, r as registerRunIntentRpc, b as DEFAULT_CODEX_PERMISSION_MODE } from './defaultPermissionMode-CYQi7vqJ.mjs';
|
|
5
|
-
import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-
|
|
6
|
-
import { s as sharedProjectsClient } from './client-
|
|
5
|
+
import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-9MtfxFkH.mjs';
|
|
6
|
+
import { s as sharedProjectsClient } from './client-CHusuUpK.mjs';
|
|
7
7
|
import { unlink } from 'node:fs/promises';
|
|
8
8
|
import { a as announceForkBackfill, p as publishForkBackfillWhenCommitted, F as FORK_BACKFILL_CAPABILITY } from './forkBackfill-C9EfJ64O.mjs';
|
|
9
9
|
import { randomUUID } from 'node:crypto';
|
|
10
10
|
import { createId } from '@paralleldrive/cuid2';
|
|
11
|
-
import { t as textResultPayload, d as toolResultContentText, c as connectionState, A as ApiClient } from './api-
|
|
11
|
+
import { t as textResultPayload, d as toolResultContentText, c as connectionState, A as ApiClient } from './api-CSqHDB2c.mjs';
|
|
12
12
|
import { r as registerAgentAttachmentDownloads, H as HeldInput } from './heldInput-C69lA2dH.mjs';
|
|
13
|
-
import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-
|
|
13
|
+
import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-Dz1Klp7p.mjs';
|
|
14
14
|
import { useStdout, useInput, Box, Text, render } from 'ink';
|
|
15
|
-
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-
|
|
15
|
+
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-D5Mt-kl0.mjs';
|
|
16
16
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
17
|
-
import { C as CodexAppServerClient } from './codexAppServerClient-
|
|
18
|
-
import { S as SIDE_QUESTION_SYSTEM_PROMPT, b as buildSideQuestionPrompt, t as toolAttemptNotice, r as registerSideQuestionHandler, d as describePendingApprovals, w as wrapperRateLimitReporter } from './registerSideQuestionHandler-
|
|
19
|
-
import { l as logger } from './logger-
|
|
20
|
-
import { B as BasePermissionHandler } from './BasePermissionHandler-
|
|
21
|
-
import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-
|
|
17
|
+
import { C as CodexAppServerClient, d as describeCodexFailure, a as describeCodexRetry, b as describeThrownTurnError, p as processLossMessage } from './codexAppServerClient-4OO0KZot.mjs';
|
|
18
|
+
import { S as SIDE_QUESTION_SYSTEM_PROMPT, b as buildSideQuestionPrompt, t as toolAttemptNotice, r as registerSideQuestionHandler, d as describePendingApprovals, w as wrapperRateLimitReporter } from './registerSideQuestionHandler-zuvmCRN8.mjs';
|
|
19
|
+
import { l as logger } from './logger-B3uJyacO.mjs';
|
|
20
|
+
import { B as BasePermissionHandler } from './BasePermissionHandler-pWG2_iEy.mjs';
|
|
21
|
+
import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-CVq2OFB8.mjs';
|
|
22
22
|
import { execSync } from 'node:child_process';
|
|
23
|
-
import { r as readSettings, l as latchKeepAwake, e as evaluateWrapperIdle, a as resolveCheckMs, H as HIBERNATION_CAPABILITY } from './persistence-
|
|
24
|
-
import { g as getInitialMachineMetadata } from './machineMetadata-
|
|
25
|
-
import { c as configuration } from './configuration-
|
|
26
|
-
import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-
|
|
23
|
+
import { r as readSettings, l as latchKeepAwake, e as evaluateWrapperIdle, a as resolveCheckMs, H as HIBERNATION_CAPABILITY } from './persistence-Bqjt2vfj.mjs';
|
|
24
|
+
import { g as getInitialMachineMetadata } from './machineMetadata-CO2nMt0D.mjs';
|
|
25
|
+
import { c as configuration } from './configuration-DyUL3r3_.mjs';
|
|
26
|
+
import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-UkuPaLm6.mjs';
|
|
27
27
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
28
28
|
import { dirname, join } from 'node:path';
|
|
29
|
-
import { c as createSessionMetadata } from './createSessionMetadata-
|
|
29
|
+
import { c as createSessionMetadata } from './createSessionMetadata-ysHgFXAk.mjs';
|
|
30
30
|
import { M as MessageBuffer } from './sessionExitLifecycle-iAtZN9sa.mjs';
|
|
31
|
-
import { n as notifyDaemonSessionStarted, q as reportSessionEditToDaemon, c as checkDaemonHibernation } from './controlClient-
|
|
32
|
-
import { c as createSessionForStartup, b as HibernationExitLatch, H as HibernationProbe, a as commitHibernation } from './startupSessionCreate-
|
|
31
|
+
import { n as notifyDaemonSessionStarted, q as reportSessionEditToDaemon, c as checkDaemonHibernation } from './controlClient-HuyeDWsu.mjs';
|
|
32
|
+
import { c as createSessionForStartup, b as HibernationExitLatch, H as HibernationProbe, a as commitHibernation } from './startupSessionCreate-DZOZ_d4O.mjs';
|
|
33
33
|
import { d as decodeBase64, e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
|
|
34
|
-
import { s as setupOfflineReconnection } from './setupOfflineReconnection-
|
|
34
|
+
import { s as setupOfflineReconnection } from './setupOfflineReconnection-DXZKHKXk.mjs';
|
|
35
35
|
import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
|
|
36
36
|
import { a as parseSpecialCommand, c as compactCommandText, b as parseCompact } from './specialCommands-MXUN0wfI.mjs';
|
|
37
37
|
import { C as CHANGE_TITLE_INSTRUCTION } from './constants-BC4St0xd.mjs';
|
|
@@ -41,77 +41,77 @@ import { r as readSessionBindings, w as writeSessionBinding, d as defaultSecretP
|
|
|
41
41
|
import { mkdirSync, writeFileSync, chmodSync, rmSync } from 'node:fs';
|
|
42
42
|
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-BPQ-lPhH.mjs';
|
|
43
43
|
import { s as shouldRecordSpawnAccount, u as unavailableNotice } from './wrapperAccount-CwaA-n1S.mjs';
|
|
44
|
-
import { a as extractNoSandboxFlag, e as ensureDaemonRunning } from './ensureDaemonRunning-
|
|
44
|
+
import { a as extractNoSandboxFlag, e as ensureDaemonRunning } from './ensureDaemonRunning-CfWwG5sk.mjs';
|
|
45
45
|
import 'tweetnacl';
|
|
46
46
|
import 'axios';
|
|
47
|
-
import './time-
|
|
48
|
-
import './browser-
|
|
47
|
+
import './time-PLmNnNT8.mjs';
|
|
48
|
+
import './browser-C9mNP2Jk.mjs';
|
|
49
49
|
import 'open';
|
|
50
50
|
import 'zod';
|
|
51
51
|
import './prompt-QHuFx9j6.mjs';
|
|
52
|
-
import './client-
|
|
53
|
-
import './exitNotice-
|
|
54
|
-
import './reportProgressTool-
|
|
55
|
-
import './client-
|
|
52
|
+
import './client-D79GAZdH.mjs';
|
|
53
|
+
import './exitNotice-BhE9UKcS.mjs';
|
|
54
|
+
import './reportProgressTool-dSJwAO7H.mjs';
|
|
55
|
+
import './client-DM4LAJtu.mjs';
|
|
56
56
|
import './precheckCompat-DeEbilbr.mjs';
|
|
57
|
-
import './format-
|
|
57
|
+
import './format-CNxQ0daG.mjs';
|
|
58
58
|
import './agentGuidance-BDYt2Qy2.mjs';
|
|
59
59
|
import 'node:os';
|
|
60
60
|
import './pi-CqyoZMjI.mjs';
|
|
61
61
|
import './fileStore-5qpetZS0.mjs';
|
|
62
|
-
import './client-
|
|
62
|
+
import './client-BcJGDe88.mjs';
|
|
63
63
|
import 'node:util';
|
|
64
|
-
import './context-
|
|
65
|
-
import './sessionOps-
|
|
64
|
+
import './context-D2H9Axdp.mjs';
|
|
65
|
+
import './sessionOps-IQlrlpXx.mjs';
|
|
66
66
|
import 'socket.io-client';
|
|
67
67
|
import './backgroundTaskActivity-8PdPxrvy.mjs';
|
|
68
68
|
import './resources-CLP_MpK4.mjs';
|
|
69
|
-
import './tools-
|
|
70
|
-
import './peerTools-
|
|
69
|
+
import './tools-BrtfEQhr.mjs';
|
|
70
|
+
import './peerTools-D0rxyRcF.mjs';
|
|
71
71
|
import './ids-DU6sLx4C.mjs';
|
|
72
|
-
import './remoteSessionClient-
|
|
72
|
+
import './remoteSessionClient-DHuh-nj5.mjs';
|
|
73
73
|
import '@modelcontextprotocol/sdk/server/mcp.js';
|
|
74
74
|
import 'node:http';
|
|
75
75
|
import '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
76
76
|
import './limits-DIo7rEBR.mjs';
|
|
77
|
-
import './downloadTarget-
|
|
77
|
+
import './downloadTarget-Bphxqzlj.mjs';
|
|
78
78
|
import './terminals-Dc38XmZv.mjs';
|
|
79
79
|
import './terminalTitleSuggest-CeKsX_V6.mjs';
|
|
80
80
|
import './tmuxSocket-BmZyixRM.mjs';
|
|
81
|
-
import './bootstrap-
|
|
82
|
-
import './package-
|
|
81
|
+
import './bootstrap-BNtlEESB.mjs';
|
|
82
|
+
import './package-BObPhT96.mjs';
|
|
83
83
|
import './webPanels-B2_C2-3g.mjs';
|
|
84
|
-
import './pushNotifications-
|
|
84
|
+
import './pushNotifications-C4KS8SZe.mjs';
|
|
85
85
|
import './contentLogMetadata-BlWI0egu.mjs';
|
|
86
86
|
import './previewPath-CXN4Vag0.mjs';
|
|
87
87
|
import 'crypto';
|
|
88
|
-
import './reconnectGate-
|
|
88
|
+
import './reconnectGate-4HRVraOQ.mjs';
|
|
89
89
|
import 'os';
|
|
90
90
|
import 'child_process';
|
|
91
91
|
import 'node:events';
|
|
92
|
-
import './registerCommonHandlers-
|
|
92
|
+
import './registerCommonHandlers-CZJBrvGH.mjs';
|
|
93
93
|
import 'util';
|
|
94
94
|
import 'fs/promises';
|
|
95
95
|
import 'path';
|
|
96
96
|
import 'cross-spawn';
|
|
97
|
-
import './sync-
|
|
97
|
+
import './sync-BHsEZG8-.mjs';
|
|
98
98
|
import 'chalk';
|
|
99
99
|
import './cliUpdate-Y34VGe9Y.mjs';
|
|
100
100
|
import './processTermination-ChJG5SLW.mjs';
|
|
101
101
|
import './processTreeSnapshot-fuwxC0fr.mjs';
|
|
102
102
|
import 'node:readline';
|
|
103
|
-
import './manager-
|
|
103
|
+
import './manager-2Il8XJVq.mjs';
|
|
104
104
|
import '@anthropic-ai/sandbox-runtime';
|
|
105
|
-
import './rateLimitWindows-
|
|
105
|
+
import './rateLimitWindows-CrWlGKPl.mjs';
|
|
106
106
|
import './processTree-CP5IvQ2Z.mjs';
|
|
107
107
|
import './detectCLI-CSGMlV51.mjs';
|
|
108
108
|
import 'fs';
|
|
109
|
-
import './localHappyAgentAuth-
|
|
109
|
+
import './localHappyAgentAuth-3xKBQJOa.mjs';
|
|
110
110
|
import './fsMkdir-DumgLTzR.mjs';
|
|
111
111
|
import './types-CkqAACXx.mjs';
|
|
112
112
|
import 'url';
|
|
113
113
|
import './claudeAccountEnv-C6Wl-ZbT.mjs';
|
|
114
|
-
import './spawnHappyCLI-
|
|
114
|
+
import './spawnHappyCLI-CKOV5SN4.mjs';
|
|
115
115
|
import './doctorReadiness-C208SMN9.mjs';
|
|
116
116
|
|
|
117
117
|
function getStartedSubagents(state) {
|
|
@@ -1126,66 +1126,39 @@ function codexModelFacts(input) {
|
|
|
1126
1126
|
};
|
|
1127
1127
|
}
|
|
1128
1128
|
|
|
1129
|
-
const
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1129
|
+
const CRASH_LOOP_LIMIT = 2;
|
|
1130
|
+
const STREAK_WINDOW_MS = 6 * 60 * 60 * 1e3;
|
|
1131
|
+
const CODEX_CRASH_LOOP_PREFIX = "Codex thread crash loop:";
|
|
1132
|
+
function readCodexResumeCrash(value) {
|
|
1133
|
+
const v = value;
|
|
1134
|
+
if (!v || typeof v !== "object" || typeof v.threadId !== "string" || !v.threadId) return null;
|
|
1135
|
+
if (typeof v.count !== "number" || !Number.isFinite(v.count) || v.count < 1) return null;
|
|
1136
|
+
if (typeof v.at !== "number" || !Number.isFinite(v.at)) return null;
|
|
1137
|
+
return {
|
|
1138
|
+
threadId: v.threadId,
|
|
1139
|
+
count: Math.floor(v.count),
|
|
1140
|
+
at: v.at,
|
|
1141
|
+
...typeof v.signal === "string" ? { signal: v.signal } : {},
|
|
1142
|
+
...typeof v.code === "number" ? { code: v.code } : {}
|
|
1143
|
+
};
|
|
1144
|
+
}
|
|
1145
|
+
function recordCodexCrash(previous, exit, now) {
|
|
1146
|
+
if (!exit.threadId || exit.servedTurn) return null;
|
|
1147
|
+
const continues = previous && previous.threadId === exit.threadId && now - previous.at < STREAK_WINDOW_MS;
|
|
1148
|
+
return {
|
|
1149
|
+
threadId: exit.threadId,
|
|
1150
|
+
count: continues ? previous.count + 1 : 1,
|
|
1151
|
+
at: now,
|
|
1152
|
+
signal: exit.signal,
|
|
1153
|
+
code: exit.code
|
|
1154
|
+
};
|
|
1151
1155
|
}
|
|
1152
|
-
function
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
}
|
|
1158
|
-
body = body.replace(/\s+/g, " ").trim();
|
|
1159
|
-
if (!body) return null;
|
|
1160
|
-
const normalize = (value) => value.toLowerCase().replace(/[^a-z0-9]/g, "");
|
|
1161
|
-
if (normalize(body) === normalize(statusLine)) return null;
|
|
1162
|
-
return body.length > 240 ? `${body.slice(0, 240)}\u2026` : body;
|
|
1163
|
-
}
|
|
1164
|
-
function describeCodexFailure(msg) {
|
|
1165
|
-
const hasFailure = msg?.status === "failed" || msg?.error !== void 0 && msg?.error !== null;
|
|
1166
|
-
if (!hasFailure) return null;
|
|
1167
|
-
const err = msg.error;
|
|
1168
|
-
if (typeof err === "string" && err.length > 0) return readableCodexErrorText(err);
|
|
1169
|
-
if (err && typeof err === "object" && typeof err.message === "string" && err.message.length > 0) {
|
|
1170
|
-
return readableCodexErrorText(err.message);
|
|
1171
|
-
}
|
|
1172
|
-
return "Unknown error";
|
|
1173
|
-
}
|
|
1174
|
-
function describeCodexRetry(msg) {
|
|
1175
|
-
const message = typeof msg?.message === "string" ? msg.message.trim() : "";
|
|
1176
|
-
const status = typeof msg?.http_status === "number" ? msg.http_status : null;
|
|
1177
|
-
const cause = status ? `HTTP ${status} from the model API` : "a model API error";
|
|
1178
|
-
return message ? `Codex is retrying after ${cause} (${message})` : `Codex is retrying after ${cause}`;
|
|
1179
|
-
}
|
|
1180
|
-
function codexStderrTailOf(error) {
|
|
1181
|
-
const tail = error?.codexStderrTail;
|
|
1182
|
-
return typeof tail === "string" && tail.trim() ? tail.trim() : null;
|
|
1183
|
-
}
|
|
1184
|
-
const TRANSPORT_LOSS = /^Codex process (exited|disconnected)\b|stdin not writable| timed out after \d+ms/;
|
|
1185
|
-
function describeThrownTurnError(error) {
|
|
1186
|
-
const message = error instanceof Error ? error.message : typeof error === "string" ? error : "";
|
|
1187
|
-
if (!message.trim() || TRANSPORT_LOSS.test(message)) return null;
|
|
1188
|
-
return readableCodexErrorText(message);
|
|
1156
|
+
function isCrashLoopBlocked(streak, threadId, now) {
|
|
1157
|
+
return !!streak && !!threadId && streak.threadId === threadId && streak.count >= CRASH_LOOP_LIMIT && now - streak.at < STREAK_WINDOW_MS;
|
|
1158
|
+
}
|
|
1159
|
+
function crashLoopNotice(streak) {
|
|
1160
|
+
const how = streak.signal === "SIGKILL" ? "it was killed (SIGKILL), most likely out of memory" : streak.signal ? `it exited (signal=${streak.signal})` : `it exited (code=${streak.code ?? "null"})`;
|
|
1161
|
+
return `${CODEX_CRASH_LOOP_PREFIX} Codex died ${streak.count} times in a row while loading this thread \u2014 ${how}. Very Happy stopped restarting it. Start a new Codex session with a summary of this one to continue.`;
|
|
1189
1162
|
}
|
|
1190
1163
|
|
|
1191
1164
|
async function resumeExistingThread(opts) {
|
|
@@ -2221,6 +2194,32 @@ async function runCodex(opts) {
|
|
|
2221
2194
|
});
|
|
2222
2195
|
const editThrottle = new EditReportThrottle();
|
|
2223
2196
|
client.setRateLimitHandler((snapshot) => wrapperRateLimitReporter().observeCodex(snapshot));
|
|
2197
|
+
let crashStreakNow = readCodexResumeCrash(session.getMetadata()?.codexResumeCrash);
|
|
2198
|
+
const crashStreak = () => crashStreakNow;
|
|
2199
|
+
let blockedResumeThreadId = null;
|
|
2200
|
+
const crashLoopBlocked = () => isCrashLoopBlocked(crashStreak(), client.threadId ?? blockedResumeThreadId, Date.now());
|
|
2201
|
+
const sendCrashLoopNotice = () => {
|
|
2202
|
+
const streak = crashStreak();
|
|
2203
|
+
if (!streak) return;
|
|
2204
|
+
messageBuffer.addMessage("Codex keeps dying while loading this thread; not restarting it", "status");
|
|
2205
|
+
session.sendSessionEvent({ type: "message", message: crashLoopNotice(streak) });
|
|
2206
|
+
};
|
|
2207
|
+
client.setUnexpectedExitHandler((exit) => {
|
|
2208
|
+
const next = recordCodexCrash(crashStreak(), exit, Date.now());
|
|
2209
|
+
logger.debug(`[Codex] App-server died: code=${exit.code} signal=${exit.signal} servedTurn=${exit.servedTurn} streak=${next?.count ?? 0}`);
|
|
2210
|
+
if (!next) return;
|
|
2211
|
+
crashStreakNow = next;
|
|
2212
|
+
session.updateMetadata((currentMetadata) => ({ ...currentMetadata, codexResumeCrash: next }));
|
|
2213
|
+
});
|
|
2214
|
+
const clearCrashStreak = () => {
|
|
2215
|
+
if (!crashStreakNow) return;
|
|
2216
|
+
crashStreakNow = null;
|
|
2217
|
+
session.updateMetadata((currentMetadata) => {
|
|
2218
|
+
const nextMetadata = { ...currentMetadata };
|
|
2219
|
+
delete nextMetadata.codexResumeCrash;
|
|
2220
|
+
return nextMetadata;
|
|
2221
|
+
});
|
|
2222
|
+
};
|
|
2224
2223
|
client.setEventHandler((msg) => {
|
|
2225
2224
|
if (msg.type === "token_count") {
|
|
2226
2225
|
session.sendAgentUsageSnapshot("codex", msg);
|
|
@@ -2386,7 +2385,13 @@ async function runCodex(opts) {
|
|
|
2386
2385
|
} catch (error) {
|
|
2387
2386
|
logger.debug("[Codex] Model discovery unavailable; using compatibility fallback", safeCodexErrorMetadata(error));
|
|
2388
2387
|
}
|
|
2389
|
-
if (opts.resumeThreadId && !codexAccount.unavailable) {
|
|
2388
|
+
if (opts.resumeThreadId && !codexAccount.unavailable && isCrashLoopBlocked(crashStreak(), opts.resumeThreadId, Date.now())) {
|
|
2389
|
+
blockedResumeThreadId = opts.resumeThreadId;
|
|
2390
|
+
logger.debug("[Codex] Not resuming a thread in a crash loop");
|
|
2391
|
+
sendCrashLoopNotice();
|
|
2392
|
+
first = false;
|
|
2393
|
+
appendSystemPromptInjected = true;
|
|
2394
|
+
} else if (opts.resumeThreadId && !codexAccount.unavailable) {
|
|
2390
2395
|
try {
|
|
2391
2396
|
await resumeExistingThread({
|
|
2392
2397
|
client,
|
|
@@ -2528,6 +2533,7 @@ async function runCodex(opts) {
|
|
|
2528
2533
|
logger.debug("[Codex] Handling /clear command - resetting Codex thread state");
|
|
2529
2534
|
heldInput.delivered();
|
|
2530
2535
|
client.clearThreadState();
|
|
2536
|
+
blockedResumeThreadId = null;
|
|
2531
2537
|
currentTurnId = null;
|
|
2532
2538
|
codexStartedSubagents = /* @__PURE__ */ new Set();
|
|
2533
2539
|
codexActiveSubagents = /* @__PURE__ */ new Set();
|
|
@@ -2561,6 +2567,11 @@ async function runCodex(opts) {
|
|
|
2561
2567
|
messageBuffer.addMessage(message.message, "user");
|
|
2562
2568
|
const compactCommand = codexCompactCommand(message.message);
|
|
2563
2569
|
try {
|
|
2570
|
+
if (crashLoopBlocked()) {
|
|
2571
|
+
heldInput.drop("failed");
|
|
2572
|
+
sendCrashLoopNotice();
|
|
2573
|
+
continue;
|
|
2574
|
+
}
|
|
2564
2575
|
if (compactCommand !== null) {
|
|
2565
2576
|
await client.ensureConnected();
|
|
2566
2577
|
heldInput.delivered();
|
|
@@ -2646,6 +2657,7 @@ async function runCodex(opts) {
|
|
|
2646
2657
|
});
|
|
2647
2658
|
reportModeFacts();
|
|
2648
2659
|
first = false;
|
|
2660
|
+
if (!result.aborted) clearCrashStreak();
|
|
2649
2661
|
if (includeAppendSystemPrompt) {
|
|
2650
2662
|
appendSystemPromptInjected = true;
|
|
2651
2663
|
}
|
|
@@ -2661,9 +2673,10 @@ async function runCodex(opts) {
|
|
|
2661
2673
|
session.sendSessionEvent({ type: "message", message: `Codex error: ${reason}` });
|
|
2662
2674
|
noteAccountFailure(reason);
|
|
2663
2675
|
} else {
|
|
2664
|
-
const tail = codexStderrTailOf(error);
|
|
2665
2676
|
messageBuffer.addMessage("Process exited unexpectedly", "status");
|
|
2666
|
-
session.sendSessionEvent({ type: "message", message:
|
|
2677
|
+
session.sendSessionEvent({ type: "message", message: processLossMessage(error) });
|
|
2678
|
+
logger.debug(`[Codex] Crash-loop check: streak=${crashStreak()?.count ?? 0} thread=${client.threadId ?? blockedResumeThreadId ?? "none"} blocked=${crashLoopBlocked()}`);
|
|
2679
|
+
if (crashLoopBlocked()) sendCrashLoopNotice();
|
|
2667
2680
|
}
|
|
2668
2681
|
} finally {
|
|
2669
2682
|
permissionHandler.reset();
|