very-happy-cli 0.2.188 → 0.2.190
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-2loP7MpF.mjs → AcpBackend-Dd1h-Rgt.mjs} +3 -3
- package/dist/{AcpBackend-B8AYkp5n.cjs → AcpBackend-dkRv9QHm.cjs} +3 -3
- package/dist/{AcpSessionManager-CLqo9R9Y.cjs → AcpSessionManager-AqWAqahm.cjs} +3 -3
- package/dist/{AcpSessionManager-C17doAoR.mjs → AcpSessionManager-QBZ-CIf7.mjs} +4 -4
- package/dist/{BasePermissionHandler-CrfyUmqO.mjs → BasePermissionHandler-CLp1ge-4.mjs} +1 -1
- package/dist/{BasePermissionHandler-C8UEcFz0.cjs → BasePermissionHandler-CpSugp7Z.cjs} +1 -1
- package/dist/{acpSessionResume-OuYlLGxL.cjs → acpSessionResume-CZao6QEd.cjs} +1 -1
- package/dist/{acpSessionResume-F705a1cF.mjs → acpSessionResume-CcpDuIO5.mjs} +1 -1
- package/dist/{agentHome-Dc7LYF3d.mjs → agentHome-BJGRA2Kx.mjs} +4 -4
- package/dist/{agentHome-DsKHJ_Sf.cjs → agentHome-fIUqT-pn.cjs} +4 -4
- package/dist/{api-BOqjYd5r.cjs → api-CXL6jp-p.cjs} +18 -9
- package/dist/{api-DNKa7kVy.mjs → api-Dw8gFsQi.mjs} +19 -10
- package/dist/{apiMachine-Di1G9ECW.mjs → apiMachine-BBNEtjf7.mjs} +56 -15
- package/dist/{apiMachine--rcPpMmt.cjs → apiMachine-C6UqHoPF.cjs} +55 -14
- package/dist/{attachmentContent-C9S4ekAz.mjs → attachmentContent-CC4yIrSm.mjs} +2 -2
- package/dist/{attachmentContent-BFRMLong.cjs → attachmentContent-NmVfKp-B.cjs} +2 -2
- package/dist/{auth-CXmI92aj.cjs → auth-Bb_SL2os.cjs} +5 -5
- package/dist/{auth-Bzwo_vOM.mjs → auth-Bh6SUoGi.mjs} +8 -8
- package/dist/{auth-BNhhk2Fr.mjs → auth-Bj0psrD2.mjs} +5 -5
- package/dist/{auth-CQtfznF0.cjs → auth-DKa4MsAi.cjs} +8 -8
- package/dist/{auto-DXLdaX5O.cjs → auto-C9Qohh0P.cjs} +17 -16
- package/dist/{auto-DHYOLnXB.mjs → auto-DK7pbCnV.mjs} +19 -18
- package/dist/{bootstrap-Di38SnpN.mjs → bootstrap-Ct9Nb4sv.mjs} +2 -2
- package/dist/{bootstrap-eJ1l7VYl.cjs → bootstrap-DBJB0y-H.cjs} +2 -2
- package/dist/{browser-6Cg7G6bb.mjs → browser-BGxDRhHy.mjs} +1 -1
- package/dist/{browser-D3uBFRQu.cjs → browser-CLJWcodR.cjs} +1 -1
- package/dist/{claudeLocal-BBaE4QF_.cjs → claudeLocal-B6YDYlnY.cjs} +4 -4
- package/dist/{claudeLocal-CqaEs-81.mjs → claudeLocal-Ux31hZyC.mjs} +5 -5
- package/dist/{claudeLocalLauncher-BDUPxtsI.mjs → claudeLocalLauncher-D06QijMw.mjs} +10 -10
- package/dist/{claudeLocalLauncher-wPxKtH_P.cjs → claudeLocalLauncher-DFvmF8rC.cjs} +9 -9
- package/dist/{claudeSessionFork-DzWFzj9m.mjs → claudeSessionFork-D2GI7P59.mjs} +1 -1
- package/dist/{claudeSessionFork-CmY25Fl3.cjs → claudeSessionFork-DTLZ2rek.cjs} +1 -1
- package/dist/{client-DmY03OZZ.cjs → client-Bffkrs5p.cjs} +2 -2
- package/dist/{client-C2HcMqRF.cjs → client-CARZ_lNS.cjs} +3 -3
- package/dist/{client-agH03Irm.cjs → client-CMKGrnmT.cjs} +2 -2
- package/dist/{client-DWws_aQK.mjs → client-CnGNYidN.mjs} +2 -2
- package/dist/{client-qJ0y8fus.mjs → client-CtL0Vtww.mjs} +4 -4
- package/dist/{client-DcDE6Ifk.mjs → client-DZkBUoh9.mjs} +2 -2
- package/dist/codex/happyMcpStdioBridge.cjs +16 -15
- package/dist/codex/happyMcpStdioBridge.mjs +17 -16
- package/dist/{codexAppServerClient-DgE99i7X.mjs → codexAppServerClient-CLc5nhLT.mjs} +37 -6
- package/dist/{codexAppServerClient-DwzC8LR0.cjs → codexAppServerClient-CpT9F6EM.cjs} +37 -6
- package/dist/{codexCommand-1vFEA1KT.cjs → codexCommand-39kH99SJ.cjs} +148 -61
- package/dist/{codexCommand-DUSVzbKh.mjs → codexCommand-Dliq3EBv.mjs} +143 -56
- package/dist/{codexTermination-DuDPyBRR.cjs → codexTermination-ByW7tRjr.cjs} +1 -1
- package/dist/{codexTermination-Bybovr2z.mjs → codexTermination-ORIw0gpU.mjs} +1 -1
- package/dist/{codexThreadFork-DNekT4nQ.cjs → codexThreadFork-5kwoKjMu.cjs} +11 -17
- package/dist/{codexThreadFork-R76RU5H0.mjs → codexThreadFork-DobPd19R.mjs} +11 -17
- package/dist/{config-C4xOL5bH.cjs → config-CeIzCsfj.cjs} +3 -3
- package/dist/{config-BrzZ0O-6.mjs → config-CxSsGO1Z.mjs} +3 -3
- package/dist/{configuration-BZHpFD7K.mjs → configuration-Dechcvd-.mjs} +1 -1
- package/dist/{configuration-DyPW9mVa.cjs → configuration-Dt5lKW3P.cjs} +1 -1
- package/dist/{connect-DurKwMEo.cjs → connect-NPDzIVC6.cjs} +12 -12
- package/dist/{connect-Cw_INlj8.mjs → connect-UwQHvCpR.mjs} +13 -13
- package/dist/{context-2xDvjkQp.cjs → context-BdZssgF0.cjs} +1 -1
- package/dist/{context-t7YV0aZc.mjs → context-C9JbJoNe.mjs} +1 -1
- package/dist/{controlClient-DvFaPsg6.cjs → controlClient-BRk65BRO.cjs} +3 -3
- package/dist/{controlClient-Bw56NIrj.mjs → controlClient-D7NGfmtq.mjs} +3 -3
- package/dist/{createSessionMetadata-Dpg6bV6f.cjs → createSessionMetadata-B_HZCDj_.cjs} +2 -2
- package/dist/{createSessionMetadata-Dn5BkLfU.mjs → createSessionMetadata-DyhFKAby.mjs} +2 -2
- package/dist/defaultPermissionMode-BnxJPVHT.mjs +4 -0
- package/dist/defaultPermissionMode-CxmTXUQR.cjs +7 -0
- package/dist/{deterministicJson-D0BrV1FD.cjs → deterministicJson-BEygolBQ.cjs} +12 -12
- package/dist/{deterministicJson-CsRckxVq.mjs → deterministicJson-DNmMVhFu.mjs} +13 -13
- package/dist/{doctor-CYe4d9kU.cjs → doctor-B9lW1WlG.cjs} +7 -7
- package/dist/{doctor-B4HQiW6j.mjs → doctor-BdBi7TFZ.mjs} +7 -7
- package/dist/{downloadTarget-tYMV_VHo.mjs → downloadTarget-CGojGjaN.mjs} +6 -6
- package/dist/{downloadTarget-CuhBVvuC.cjs → downloadTarget-DS0zT2AU.cjs} +6 -6
- package/dist/{ensureDaemonRunning-DVtIG9z7.mjs → ensureDaemonRunning-BOdbryDM.mjs} +5 -5
- package/dist/{ensureDaemonRunning-Ce3BlWiR.cjs → ensureDaemonRunning-Bibp6vhe.cjs} +5 -5
- package/dist/exitAfterFlush-AbKNZM0N.mjs +23 -0
- package/dist/exitAfterFlush-DIT_sIxR.cjs +25 -0
- package/dist/{handleResumeCommand-BU1uMNyv.mjs → handleResumeCommand-CgLzBYne.mjs} +5 -5
- package/dist/{handleResumeCommand-CLxsmAW0.cjs → handleResumeCommand-DXOuWr4p.cjs} +5 -5
- package/dist/{agentAttachments-Dbw8iMCZ.cjs → heldInput-BOtqFO2r.cjs} +27 -0
- package/dist/heldInput-C69lA2dH.mjs +44 -0
- package/dist/{index-KwuXqLwe.cjs → index-Bs5FD8JF.cjs} +4 -4
- package/dist/{index-ChX0eVXw.mjs → index-CBHfkQNY.mjs} +142 -60
- package/dist/{index-DoXbGEAi.cjs → index-CwRW11hT.cjs} +3 -3
- package/dist/{index-CVHRt3SS.mjs → index-DUByZsKe.mjs} +4 -4
- package/dist/{index-wWJJAQRk.cjs → index-DXSIi6j_.cjs} +4 -4
- package/dist/{index-DDz0Ftoy.mjs → index-Db0HIC-k.mjs} +4 -4
- package/dist/{index-WKyN-bNy.mjs → index-DmqsRnV7.mjs} +1 -1
- package/dist/{index-DG1kGjkF.cjs → index-f8oDidjV.cjs} +142 -60
- package/dist/{index-B1OxWiNG.mjs → index-rNTX33in.mjs} +3 -3
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-cAYvHxXR.cjs → install-CXIL_FYx.cjs} +3 -3
- package/dist/{install-CMa_FOWu.mjs → install-DfPrEWGG.mjs} +3 -3
- package/dist/lib.cjs +11 -11
- package/dist/lib.d.cts +61 -1
- package/dist/lib.d.mts +61 -1
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-D-lsD1FS.mjs → lidState-D0DF20oG.mjs} +1 -1
- package/dist/{lidState-d1vgQ3n7.cjs → lidState-q_XFYg33.cjs} +1 -1
- package/dist/{localHappyAgentAuth-wvDp-nGj.mjs → localHappyAgentAuth-BBhM4Qk1.mjs} +1 -1
- package/dist/{localHappyAgentAuth-DucSnCg3.cjs → localHappyAgentAuth-CKNW-MXw.cjs} +1 -1
- package/dist/{logger-C3vZG6Q0.cjs → logger-BBRTTVsQ.cjs} +2 -2
- package/dist/{logger-RpzJ4d8V.mjs → logger-CL7pin9b.mjs} +2 -2
- package/dist/{machineMetadata-CiQ2_1Mq.mjs → machineMetadata-DP06qdBk.mjs} +3 -3
- package/dist/{machineMetadata-CAvFq1Jg.cjs → machineMetadata-DnFNlrVK.cjs} +3 -3
- package/dist/{main-ChpYcFZi.cjs → main-DLOXykOR.cjs} +49 -48
- package/dist/{main-IPhaImjm.mjs → main-DO7nRvhf.mjs} +49 -48
- package/dist/{mcp-CWnMvju6.mjs → mcp-C-4sPTae.mjs} +16 -15
- package/dist/{mcp-2xF232hL.cjs → mcp-Du0MgR7e.cjs} +15 -14
- package/dist/{mirrorProtocol-CVzPObON.cjs → mirrorProtocol-GuWMxLkh.cjs} +2 -2
- package/dist/{mirrorProtocol-Dr7fNq8V.mjs → mirrorProtocol-dkq2ZENA.mjs} +3 -3
- package/dist/{package-CwB8rFJt.mjs → package-C6uiXULx.mjs} +7 -7
- package/dist/{package-Gnf_935w.cjs → package-DrY090nZ.cjs} +7 -7
- package/dist/{panels-DTlTsndU.cjs → panels-4DRBKHZP.cjs} +5 -5
- package/dist/{panels-L1mSkC-y.mjs → panels-DXYdJA6n.mjs} +5 -5
- package/dist/{peerTools-C1E5cQ86.cjs → peerTools-5ZM4spcZ.cjs} +5 -5
- package/dist/{peerTools-2_8Bw9PU.mjs → peerTools-dY1aJez4.mjs} +5 -5
- package/dist/{persistence-CqtjFiD1.cjs → persistence-Bl5S3TLB.cjs} +6 -2
- package/dist/{persistence-Bn4qEbDg.mjs → persistence-Dogj7JIp.mjs} +6 -3
- package/dist/{piRunnerArgs-BI8yQRBZ.cjs → piRunnerArgs-C3jZ1M6b.cjs} +1 -1
- package/dist/{piRunnerArgs-DWBb63W9.mjs → piRunnerArgs-D8nN_Iit.mjs} +1 -1
- package/dist/{piRuntime--mQ43MSM.cjs → piRuntime-Bd9-eq6M.cjs} +1 -1
- package/dist/{piRuntime-Do8oqbm3.mjs → piRuntime-BoeMsAXK.mjs} +1 -1
- package/dist/{piTerminal-BzcvLFsP.cjs → piTerminal-C3j1ca3x.cjs} +17 -16
- package/dist/{piTerminal-GC1KHTYQ.mjs → piTerminal-GEPkIGD4.mjs} +18 -17
- package/dist/{pushNotifications-Bb-QSqXw.cjs → pushNotifications-CfspRcl-.cjs} +20 -2
- package/dist/{pushNotifications-BThg4nVd.mjs → pushNotifications-dUceOIni.mjs} +21 -3
- package/dist/{query-Bz3pocKH.cjs → query-DjsVgG3E.cjs} +1 -1
- package/dist/{query-CkgIJ_Dy.mjs → query-iYH-tm7L.mjs} +1 -1
- package/dist/{rateLimitReporter-BkHyvLru.cjs → rateLimitReporter-DUu2KydZ.cjs} +3 -3
- package/dist/{rateLimitReporter-Iw4k3Bbr.mjs → rateLimitReporter-jeVi-fym.mjs} +3 -3
- package/dist/{rateLimitWindows-Bm_dcQGW.cjs → rateLimitWindows-Bx3ROBP5.cjs} +1 -1
- package/dist/{rateLimitWindows-CQ4tIQnx.mjs → rateLimitWindows-CEn0DXaX.mjs} +1 -1
- package/dist/{registerCommonHandlers-CIs6H2DV.cjs → registerCommonHandlers-Beun-cQv.cjs} +2 -2
- package/dist/{registerCommonHandlers-CaWl9ll1.mjs → registerCommonHandlers-DWZ7mfdt.mjs} +2 -2
- package/dist/{specialCommands-BsvSoDhC.cjs → registerKillSessionHandler-CA1FFr_F.cjs} +15 -62
- package/dist/{specialCommands-DHU7TNeK.mjs → registerKillSessionHandler-CzgklwLG.mjs} +17 -60
- package/dist/{remoteSessionClient-uPj7omsw.mjs → remoteSessionClient-BiC2KDew.mjs} +5 -5
- package/dist/{remoteSessionClient-DgUMfPW4.cjs → remoteSessionClient-DGFI__5Z.cjs} +5 -5
- package/dist/{reportProgressTool-DUEq3xAL.mjs → reportProgressTool-CgPy6n_7.mjs} +3 -3
- package/dist/{reportProgressTool-CaJ8EwLq.cjs → reportProgressTool-CvPGov1F.cjs} +2 -2
- package/dist/{run-DTUJBD6p.mjs → run-B_gFgJVB.mjs} +393 -42
- package/dist/{run-DyyGMqND.cjs → run-rPqQwDi_.cjs} +391 -40
- package/dist/{runClaude-DTNvIz2J.mjs → runClaude-CykqeXK7.mjs} +26 -23
- package/dist/{runClaude-8JDaPoGQ.cjs → runClaude-DM8gm8iu.cjs} +27 -24
- package/dist/{runClaudeDeps-CgGkgg7e.mjs → runClaudeDeps-D2phXGut.mjs} +106 -46
- package/dist/{runClaudeDeps-BeLo5zss.cjs → runClaudeDeps-DGAomimZ.cjs} +101 -40
- package/dist/{runGemini-BSOdU563.cjs → runGemini-CXTeSOZp.cjs} +50 -49
- package/dist/{runGemini-eU8UOzfc.mjs → runGemini-CtWCVkj5.mjs} +49 -48
- package/dist/{runOpenClaw-D8RZiA1e.mjs → runOpenClaw-BBdjlViJ.mjs} +25 -24
- package/dist/{runOpenClaw-CYyFoGRZ.cjs → runOpenClaw-CH_9_RyZ.cjs} +26 -25
- package/dist/{sandbox-C8zfNX-4.cjs → sandbox-Bb5IMun3.cjs} +4 -4
- package/dist/{sandbox-DlPahdhl.mjs → sandbox-DGmXZ6Zz.mjs} +4 -4
- package/dist/selfCheck-BfK945YQ.mjs +86 -0
- package/dist/{selfCheck-D28nvuPJ.cjs → selfCheck-CccwNTTK.cjs} +37 -37
- package/dist/{send-DBpv-1eh.mjs → send-B6rHg8GT.mjs} +9 -8
- package/dist/{send-C58kX4qz.cjs → send-BpiXPkDo.cjs} +9 -8
- package/dist/{server-J5K6pOox.mjs → server-BkdAyHhC.mjs} +4 -4
- package/dist/{server-I_CETZzn.cjs → server-DHUzjApC.cjs} +6 -6
- package/dist/{sessionLock-DjE7O0LS.cjs → sessionLock-BFBReiKq.cjs} +134 -3
- package/dist/{sessionLock-C7Wg1RVd.mjs → sessionLock-Ca_bIo50.mjs} +121 -4
- package/dist/{sessionOps-CYjMT7Ad.mjs → sessionOps-CA2kpm66.mjs} +36 -5
- package/dist/{sessionOps-DGMpl9NB.cjs → sessionOps-DeWVqpe4.cjs} +36 -4
- package/dist/{sessionProvider-DVtxrOuM.cjs → sessionProvider-VFbtUmMR.cjs} +5 -5
- package/dist/{sessionProvider-TLiFn9kD.mjs → sessionProvider-g18IiK74.mjs} +5 -5
- package/dist/{sessionScanner-BZ1ZSn6I.cjs → sessionScanner-CGzsN8V6.cjs} +3 -3
- package/dist/{sessionScanner-CknV1IlN.mjs → sessionScanner-DDDud5re.mjs} +3 -3
- package/dist/{sessions-DU4bxkap.mjs → sessions-B4d50sCI.mjs} +36 -26
- package/dist/{sessions-CTkBKs5U.cjs → sessions-CKJPWFgu.cjs} +37 -25
- package/dist/{setupOfflineReconnection-DaOXnGuH.mjs → setupOfflineReconnection-CyPNgyCe.mjs} +2 -2
- package/dist/{setupOfflineReconnection-CQHNuP_0.cjs → setupOfflineReconnection-DPXRo_zf.cjs} +2 -2
- package/dist/{spawn-C0wZc03S.cjs → spawn-CgSJzzWS.cjs} +17 -16
- package/dist/{spawn-DdnYTtQe.mjs → spawn-CrYN_OOT.mjs} +18 -17
- package/dist/{spawnAgents-BjyU78Ue.cjs → spawnAgents-C1-4m7aN.cjs} +3 -1
- package/dist/{spawnAgents-D-7wMw-a.mjs → spawnAgents-DWCDYCQ1.mjs} +4 -2
- package/dist/{spawnHappyCLI-BJUd974I.cjs → spawnHappyCLI-CTy3p6V_.cjs} +1 -1
- package/dist/{spawnHappyCLI-CnyyJk74.mjs → spawnHappyCLI-DjbkiSH1.mjs} +1 -1
- package/dist/specialCommands-J3JFOq0J.cjs +60 -0
- package/dist/specialCommands-MXUN0wfI.mjs +54 -0
- package/dist/{startFileWatcher-DBboREco.cjs → startFileWatcher-BQs0cJA-.cjs} +1 -1
- package/dist/{startFileWatcher-CpO5Mwbr.mjs → startFileWatcher-Dedtu1vq.mjs} +1 -1
- package/dist/{defaultPermissionMode-DMTnlccv.mjs → startupSessionCreate-BKFU4v_h.mjs} +25 -6
- package/dist/{defaultPermissionMode-Dlm0q1m0.cjs → startupSessionCreate-Dxy3X4DG.cjs} +25 -7
- package/dist/{streamRelay-CqBynIon.mjs → streamRelay-P9e7Sohm.mjs} +1 -1
- package/dist/{sync-6HFRJP1h.cjs → sync-DtWB7RzA.cjs} +1 -1
- package/dist/{sync-I8NYmycF.mjs → sync-eZkXnsW_.mjs} +1 -1
- package/dist/{systemPrompt-BDWj5QSL.cjs → systemPrompt-2XOpZ1j6.cjs} +1 -1
- package/dist/{systemPrompt-C1RSY_60.mjs → systemPrompt-Bn6g6aCH.mjs} +2 -2
- package/dist/{teams-eUD7ymif.cjs → teams-ecFay4Gn.cjs} +6 -6
- package/dist/{teams-GpLFbXXE.mjs → teams-nadkqrbW.mjs} +7 -7
- package/dist/{template-CEK8MEjo.mjs → template-BiTD-jI9.mjs} +1 -1
- package/dist/{time-umG7yHkb.mjs → time-CN3TuSVG.mjs} +1 -1
- package/dist/{time-BAJRbB6U.cjs → time-gPD_EmA-.cjs} +1 -1
- package/dist/{titleGenerator-dmFlxkRs.mjs → titleGenerator-DgzTQdn2.mjs} +1 -1
- package/dist/{titleGenerator-iqb2jOF1.cjs → titleGenerator-lT5ldPuN.cjs} +2 -2
- package/dist/{todo-DsR7WnQS.cjs → todo-B1VeMk5A.cjs} +5 -5
- package/dist/{todo-CT4AJ3sH.mjs → todo-BIxd7l2Q.mjs} +6 -6
- package/dist/{tools-30E66QL_.cjs → tools-DvqbLsCF.cjs} +1 -1
- package/dist/{tools-BOWazSD6.mjs → tools-zXJpxiG_.mjs} +1 -1
- package/dist/{uninstall-DImXs6VZ.mjs → uninstall-9htK6mb7.mjs} +3 -3
- package/dist/{uninstall-BtTc9hHa.cjs → uninstall-CvIOpwB5.cjs} +3 -3
- package/package.json +7 -7
- package/dist/agentAttachments-M_B5qEF2.mjs +0 -18
- package/dist/selfCheck-4bcdHPFQ.mjs +0 -86
- package/dist/startupSessionCreate-BgaVuvQp.mjs +0 -24
- package/dist/startupSessionCreate-C1u2dtz8.cjs +0 -26
|
@@ -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-CL7pin9b.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-C6uiXULx.mjs';
|
|
8
|
+
import { s as shouldReadCodexRateLimits, i as isUnsupportedCodexMethodError } from './rateLimitWindows-CEn0DXaX.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;
|
|
@@ -47,6 +47,10 @@ function jsonRpcErrorCodeOf(error) {
|
|
|
47
47
|
const code = error?.jsonRpcCode;
|
|
48
48
|
return typeof code === "number" ? code : null;
|
|
49
49
|
}
|
|
50
|
+
function threadModelOf(result) {
|
|
51
|
+
const model = result?.model ?? result?.thread?.model;
|
|
52
|
+
return typeof model === "string" && model.trim() ? model.trim() : null;
|
|
53
|
+
}
|
|
50
54
|
function isAppServerAvailable() {
|
|
51
55
|
try {
|
|
52
56
|
const version = execSync("codex --version", { encoding: "utf8", windowsHide: true }).trim();
|
|
@@ -121,12 +125,20 @@ class CodexAppServerClient {
|
|
|
121
125
|
pending = /* @__PURE__ */ new Map();
|
|
122
126
|
processEpoch = 0;
|
|
123
127
|
connected = false;
|
|
128
|
+
/** B-852: agent version from the last `initialize` (null = unknown). */
|
|
129
|
+
serverVersion = null;
|
|
124
130
|
sandboxConfig;
|
|
125
131
|
sandboxCleanup = null;
|
|
126
132
|
sandboxEnabled = false;
|
|
127
133
|
// Session state
|
|
128
134
|
_threadId = null;
|
|
129
135
|
_turnId = null;
|
|
136
|
+
/**
|
|
137
|
+
* B-844d: the model the thread really runs. Codex keeps a thread's model
|
|
138
|
+
* (thread/start, thread/resume, a turn/start that named one) for every
|
|
139
|
+
* later turn that omits it, and reports it on start/resume/fork.
|
|
140
|
+
*/
|
|
141
|
+
_threadModel = null;
|
|
130
142
|
threadDefaults = null;
|
|
131
143
|
// Turn completion tracking for the currently active sendTurnAndWait call.
|
|
132
144
|
pendingTurnCompletion = null;
|
|
@@ -192,6 +204,10 @@ class CodexAppServerClient {
|
|
|
192
204
|
get turnId() {
|
|
193
205
|
return this._turnId;
|
|
194
206
|
}
|
|
207
|
+
/** B-844d: the model the current thread runs for turns that name none (null = unknown). */
|
|
208
|
+
get threadModel() {
|
|
209
|
+
return this._threadModel;
|
|
210
|
+
}
|
|
195
211
|
setEventHandler(handler) {
|
|
196
212
|
this.eventHandler = handler;
|
|
197
213
|
}
|
|
@@ -611,7 +627,8 @@ ${text}`.slice(-400);
|
|
|
611
627
|
experimentalApi: true
|
|
612
628
|
}
|
|
613
629
|
};
|
|
614
|
-
await this.request("initialize", initParams);
|
|
630
|
+
const initialized = await this.request("initialize", initParams);
|
|
631
|
+
this.serverVersion = typeof initialized?.userAgent === "string" ? initialized.userAgent.match(/\/(\d+\.\d+\.\d+)\b/)?.[1] ?? null : null;
|
|
615
632
|
this.notify("initialized");
|
|
616
633
|
this.connected = true;
|
|
617
634
|
logger.debug("[CodexAppServer] Connected and initialized");
|
|
@@ -642,6 +659,7 @@ ${text}`.slice(-400);
|
|
|
642
659
|
this.clearThreadStopGrace();
|
|
643
660
|
if (!opts?.preserveThreadState) {
|
|
644
661
|
this._threadId = null;
|
|
662
|
+
this._threadModel = null;
|
|
645
663
|
this.threadDefaults = null;
|
|
646
664
|
}
|
|
647
665
|
for (const [id, req] of this.pending) {
|
|
@@ -744,6 +762,7 @@ ${text}`.slice(-400);
|
|
|
744
762
|
const result = await this.request("thread/start", params);
|
|
745
763
|
this._threadId = result.thread.id;
|
|
746
764
|
this._turnId = null;
|
|
765
|
+
this._threadModel = threadModelOf(result);
|
|
747
766
|
this.rememberThreadDefaults(opts);
|
|
748
767
|
logger.debug("[CodexAppServer] Thread started:", this._threadId);
|
|
749
768
|
return { threadId: result.thread.id, model: result.model };
|
|
@@ -770,6 +789,7 @@ ${text}`.slice(-400);
|
|
|
770
789
|
const result = await this.request("thread/resume", params);
|
|
771
790
|
this._threadId = result.thread.id;
|
|
772
791
|
this._turnId = null;
|
|
792
|
+
this._threadModel = threadModelOf(result);
|
|
773
793
|
this.rememberThreadDefaults({
|
|
774
794
|
model: opts?.model ?? defaults.model,
|
|
775
795
|
cwd: opts?.cwd ?? defaults.cwd,
|
|
@@ -794,11 +814,13 @@ ${text}`.slice(-400);
|
|
|
794
814
|
baseInstructions: null,
|
|
795
815
|
developerInstructions: null,
|
|
796
816
|
ephemeral: false,
|
|
797
|
-
threadSource: null
|
|
817
|
+
threadSource: null,
|
|
818
|
+
...opts.lastTurnId ? { lastTurnId: opts.lastTurnId } : {}
|
|
798
819
|
};
|
|
799
820
|
const result = await this.request("thread/fork", params);
|
|
800
821
|
this._threadId = result.thread.id;
|
|
801
822
|
this._turnId = null;
|
|
823
|
+
this._threadModel = threadModelOf(result);
|
|
802
824
|
this.rememberThreadDefaults({
|
|
803
825
|
model: opts.model ?? defaults.model,
|
|
804
826
|
cwd: opts.cwd ?? defaults.cwd,
|
|
@@ -846,6 +868,7 @@ ${text}`.slice(-400);
|
|
|
846
868
|
} catch (error) {
|
|
847
869
|
logger.warn("[CodexAppServer] Failed to resume thread after reconnect", error);
|
|
848
870
|
this._threadId = null;
|
|
871
|
+
this._threadModel = null;
|
|
849
872
|
this.threadDefaults = null;
|
|
850
873
|
return false;
|
|
851
874
|
}
|
|
@@ -1078,6 +1101,10 @@ ${text}`.slice(-400);
|
|
|
1078
1101
|
}
|
|
1079
1102
|
}
|
|
1080
1103
|
const result = await this.request("turn/start", params);
|
|
1104
|
+
if (opts?.model) {
|
|
1105
|
+
this._threadModel = opts.model;
|
|
1106
|
+
if (this.threadDefaults) this.threadDefaults.model = opts.model;
|
|
1107
|
+
}
|
|
1081
1108
|
const turnId = result?.turn?.id;
|
|
1082
1109
|
if (typeof turnId === "string" && turnId.length > 0) {
|
|
1083
1110
|
this._turnId = turnId;
|
|
@@ -1095,7 +1122,10 @@ ${text}`.slice(-400);
|
|
|
1095
1122
|
* Returns { aborted: true } if the turn was aborted (user cancel, permission reject, etc.).
|
|
1096
1123
|
*/
|
|
1097
1124
|
async sendTurnAndWait(prompt, opts) {
|
|
1098
|
-
const { aborted } = await this.runTurnAndWait(() =>
|
|
1125
|
+
const { aborted } = await this.runTurnAndWait(async () => {
|
|
1126
|
+
await this.sendTurn(prompt, opts);
|
|
1127
|
+
opts?.onTurnStarted?.();
|
|
1128
|
+
}, opts);
|
|
1099
1129
|
return { aborted };
|
|
1100
1130
|
}
|
|
1101
1131
|
/**
|
|
@@ -1208,6 +1238,7 @@ ${text}`.slice(-400);
|
|
|
1208
1238
|
this.resolvePendingTurn(true);
|
|
1209
1239
|
this._threadId = null;
|
|
1210
1240
|
this._turnId = null;
|
|
1241
|
+
this._threadModel = null;
|
|
1211
1242
|
this.threadDefaults = null;
|
|
1212
1243
|
this.completedTurnIds.clear();
|
|
1213
1244
|
this.failedTurnIds.clear();
|
|
@@ -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-BBRTTVsQ.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-DrY090nZ.cjs');
|
|
10
|
+
var rateLimitWindows = require('./rateLimitWindows-Bx3ROBP5.cjs');
|
|
11
11
|
var processTree = require('./processTree-CMHWlVse.cjs');
|
|
12
12
|
|
|
13
13
|
const CODEX_HELPER_LABEL_MAX_CHARS = 80;
|
|
@@ -49,6 +49,10 @@ function jsonRpcErrorCodeOf(error) {
|
|
|
49
49
|
const code = error?.jsonRpcCode;
|
|
50
50
|
return typeof code === "number" ? code : null;
|
|
51
51
|
}
|
|
52
|
+
function threadModelOf(result) {
|
|
53
|
+
const model = result?.model ?? result?.thread?.model;
|
|
54
|
+
return typeof model === "string" && model.trim() ? model.trim() : null;
|
|
55
|
+
}
|
|
52
56
|
function isAppServerAvailable() {
|
|
53
57
|
try {
|
|
54
58
|
const version = node_child_process.execSync("codex --version", { encoding: "utf8", windowsHide: true }).trim();
|
|
@@ -123,12 +127,20 @@ class CodexAppServerClient {
|
|
|
123
127
|
pending = /* @__PURE__ */ new Map();
|
|
124
128
|
processEpoch = 0;
|
|
125
129
|
connected = false;
|
|
130
|
+
/** B-852: agent version from the last `initialize` (null = unknown). */
|
|
131
|
+
serverVersion = null;
|
|
126
132
|
sandboxConfig;
|
|
127
133
|
sandboxCleanup = null;
|
|
128
134
|
sandboxEnabled = false;
|
|
129
135
|
// Session state
|
|
130
136
|
_threadId = null;
|
|
131
137
|
_turnId = null;
|
|
138
|
+
/**
|
|
139
|
+
* B-844d: the model the thread really runs. Codex keeps a thread's model
|
|
140
|
+
* (thread/start, thread/resume, a turn/start that named one) for every
|
|
141
|
+
* later turn that omits it, and reports it on start/resume/fork.
|
|
142
|
+
*/
|
|
143
|
+
_threadModel = null;
|
|
132
144
|
threadDefaults = null;
|
|
133
145
|
// Turn completion tracking for the currently active sendTurnAndWait call.
|
|
134
146
|
pendingTurnCompletion = null;
|
|
@@ -194,6 +206,10 @@ class CodexAppServerClient {
|
|
|
194
206
|
get turnId() {
|
|
195
207
|
return this._turnId;
|
|
196
208
|
}
|
|
209
|
+
/** B-844d: the model the current thread runs for turns that name none (null = unknown). */
|
|
210
|
+
get threadModel() {
|
|
211
|
+
return this._threadModel;
|
|
212
|
+
}
|
|
197
213
|
setEventHandler(handler) {
|
|
198
214
|
this.eventHandler = handler;
|
|
199
215
|
}
|
|
@@ -613,7 +629,8 @@ ${text}`.slice(-400);
|
|
|
613
629
|
experimentalApi: true
|
|
614
630
|
}
|
|
615
631
|
};
|
|
616
|
-
await this.request("initialize", initParams);
|
|
632
|
+
const initialized = await this.request("initialize", initParams);
|
|
633
|
+
this.serverVersion = typeof initialized?.userAgent === "string" ? initialized.userAgent.match(/\/(\d+\.\d+\.\d+)\b/)?.[1] ?? null : null;
|
|
617
634
|
this.notify("initialized");
|
|
618
635
|
this.connected = true;
|
|
619
636
|
logger.logger.debug("[CodexAppServer] Connected and initialized");
|
|
@@ -644,6 +661,7 @@ ${text}`.slice(-400);
|
|
|
644
661
|
this.clearThreadStopGrace();
|
|
645
662
|
if (!opts?.preserveThreadState) {
|
|
646
663
|
this._threadId = null;
|
|
664
|
+
this._threadModel = null;
|
|
647
665
|
this.threadDefaults = null;
|
|
648
666
|
}
|
|
649
667
|
for (const [id, req] of this.pending) {
|
|
@@ -746,6 +764,7 @@ ${text}`.slice(-400);
|
|
|
746
764
|
const result = await this.request("thread/start", params);
|
|
747
765
|
this._threadId = result.thread.id;
|
|
748
766
|
this._turnId = null;
|
|
767
|
+
this._threadModel = threadModelOf(result);
|
|
749
768
|
this.rememberThreadDefaults(opts);
|
|
750
769
|
logger.logger.debug("[CodexAppServer] Thread started:", this._threadId);
|
|
751
770
|
return { threadId: result.thread.id, model: result.model };
|
|
@@ -772,6 +791,7 @@ ${text}`.slice(-400);
|
|
|
772
791
|
const result = await this.request("thread/resume", params);
|
|
773
792
|
this._threadId = result.thread.id;
|
|
774
793
|
this._turnId = null;
|
|
794
|
+
this._threadModel = threadModelOf(result);
|
|
775
795
|
this.rememberThreadDefaults({
|
|
776
796
|
model: opts?.model ?? defaults.model,
|
|
777
797
|
cwd: opts?.cwd ?? defaults.cwd,
|
|
@@ -796,11 +816,13 @@ ${text}`.slice(-400);
|
|
|
796
816
|
baseInstructions: null,
|
|
797
817
|
developerInstructions: null,
|
|
798
818
|
ephemeral: false,
|
|
799
|
-
threadSource: null
|
|
819
|
+
threadSource: null,
|
|
820
|
+
...opts.lastTurnId ? { lastTurnId: opts.lastTurnId } : {}
|
|
800
821
|
};
|
|
801
822
|
const result = await this.request("thread/fork", params);
|
|
802
823
|
this._threadId = result.thread.id;
|
|
803
824
|
this._turnId = null;
|
|
825
|
+
this._threadModel = threadModelOf(result);
|
|
804
826
|
this.rememberThreadDefaults({
|
|
805
827
|
model: opts.model ?? defaults.model,
|
|
806
828
|
cwd: opts.cwd ?? defaults.cwd,
|
|
@@ -848,6 +870,7 @@ ${text}`.slice(-400);
|
|
|
848
870
|
} catch (error) {
|
|
849
871
|
logger.logger.warn("[CodexAppServer] Failed to resume thread after reconnect", error);
|
|
850
872
|
this._threadId = null;
|
|
873
|
+
this._threadModel = null;
|
|
851
874
|
this.threadDefaults = null;
|
|
852
875
|
return false;
|
|
853
876
|
}
|
|
@@ -1080,6 +1103,10 @@ ${text}`.slice(-400);
|
|
|
1080
1103
|
}
|
|
1081
1104
|
}
|
|
1082
1105
|
const result = await this.request("turn/start", params);
|
|
1106
|
+
if (opts?.model) {
|
|
1107
|
+
this._threadModel = opts.model;
|
|
1108
|
+
if (this.threadDefaults) this.threadDefaults.model = opts.model;
|
|
1109
|
+
}
|
|
1083
1110
|
const turnId = result?.turn?.id;
|
|
1084
1111
|
if (typeof turnId === "string" && turnId.length > 0) {
|
|
1085
1112
|
this._turnId = turnId;
|
|
@@ -1097,7 +1124,10 @@ ${text}`.slice(-400);
|
|
|
1097
1124
|
* Returns { aborted: true } if the turn was aborted (user cancel, permission reject, etc.).
|
|
1098
1125
|
*/
|
|
1099
1126
|
async sendTurnAndWait(prompt, opts) {
|
|
1100
|
-
const { aborted } = await this.runTurnAndWait(() =>
|
|
1127
|
+
const { aborted } = await this.runTurnAndWait(async () => {
|
|
1128
|
+
await this.sendTurn(prompt, opts);
|
|
1129
|
+
opts?.onTurnStarted?.();
|
|
1130
|
+
}, opts);
|
|
1101
1131
|
return { aborted };
|
|
1102
1132
|
}
|
|
1103
1133
|
/**
|
|
@@ -1210,6 +1240,7 @@ ${text}`.slice(-400);
|
|
|
1210
1240
|
this.resolvePendingTurn(true);
|
|
1211
1241
|
this._threadId = null;
|
|
1212
1242
|
this._turnId = null;
|
|
1243
|
+
this._threadModel = null;
|
|
1213
1244
|
this.threadDefaults = null;
|
|
1214
1245
|
this.completedTurnIds.clear();
|
|
1215
1246
|
this.failedTurnIds.clear();
|