very-happy-cli 0.2.165 → 0.2.167
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/README.md +1 -1
- package/dist/{AcpBackend-DCfNt9bD.cjs → AcpBackend-D1IKJGz_.cjs} +3 -3
- package/dist/{AcpBackend-C11FnVw5.mjs → AcpBackend-kFZlee5E.mjs} +3 -3
- package/dist/{AcpSessionManager-BQnDJvct.mjs → AcpSessionManager-B7FIrsys.mjs} +1 -1
- package/dist/{AcpSessionManager-9yN2iH4b.cjs → AcpSessionManager-Zf00QnlL.cjs} +1 -1
- package/dist/{BasePermissionHandler-BwQHxl6M.cjs → BasePermissionHandler-DHxYAK5L.cjs} +1 -1
- package/dist/{BasePermissionHandler-CwJ48yiB.mjs → BasePermissionHandler-DS0kRTNI.mjs} +1 -1
- package/dist/{BaseReasoningProcessor-ClF2g1qz.mjs → BaseReasoningProcessor-BRtCCt7q.mjs} +1 -1
- package/dist/{BaseReasoningProcessor-81lf_M8G.cjs → BaseReasoningProcessor-CsjVdt_H.cjs} +1 -1
- package/dist/{agentGuidance-CQuNlNx8.mjs → agentGuidance-BDYt2Qy2.mjs} +4 -2
- package/dist/{agentGuidance-B5NATuFa.cjs → agentGuidance-BtBx2xxE.cjs} +4 -1
- package/dist/{agentHome-DvR176E5.mjs → agentHome-Ct-VXFeG.mjs} +4 -4
- package/dist/{agentHome-D3Nn82kI.cjs → agentHome-DeAWzhSe.cjs} +4 -4
- package/dist/{api-AzdzTKFs.cjs → api-BZYLRDM9.cjs} +93 -13
- package/dist/{api-DTVPUE7g.mjs → api-CReZazeT.mjs} +93 -13
- package/dist/{apiMachine-B_cJldfa.cjs → apiMachine-BgMxGPsR.cjs} +2173 -66
- package/dist/{apiMachine-BQ-b4Lu3.mjs → apiMachine-CWndf1Vn.mjs} +2176 -69
- package/dist/{attachmentContent-muDCe4Gy.cjs → attachmentContent-HcJqFQW8.cjs} +2 -2
- package/dist/{attachmentContent-dzIs-wis.mjs → attachmentContent-j875mwU7.mjs} +2 -2
- package/dist/{attachmentLimits-eJZ4ZBjF.cjs → attachmentLimits-BEYEEBm8.cjs} +40 -2
- package/dist/{attachmentLimits-B8nzhw-i.mjs → attachmentLimits-CxG3T18E.mjs} +40 -2
- package/dist/{auth-Jtmvh1w4.mjs → auth-BIHuc7vY.mjs} +10 -10
- package/dist/{auth-BY5ujhGn.mjs → auth-CFS9Lfgv.mjs} +5 -5
- package/dist/{auth-DtP-B4gf.cjs → auth-Myr2Q42x.cjs} +10 -10
- package/dist/{auth-CfLd3phE.cjs → auth-VzWpbo5P.cjs} +5 -5
- package/dist/{auto-ClNnbSoF.cjs → auto-Bf6Dr7_o.cjs} +85 -21
- package/dist/{auto-DjWfR1UB.mjs → auto-Df9-zmuN.mjs} +84 -22
- package/dist/{bootstrap-D_ExGrY2.mjs → bootstrap-BSOxYpaP.mjs} +2 -2
- package/dist/{bootstrap-B1dMZA-u.cjs → bootstrap-Dj8WBiR2.cjs} +2 -2
- package/dist/{browser-mwzpOmcw.mjs → browser-BCFIHOvo.mjs} +1 -1
- package/dist/{browser-_gV7tcPs.cjs → browser-BoCV40yC.cjs} +1 -1
- package/dist/{claudeLocal-G5UmJ81F.cjs → claudeLocal-CGsq7Kul.cjs} +7 -7
- package/dist/{claudeLocal-BeHToEK5.mjs → claudeLocal-D5-eA9SC.mjs} +7 -7
- package/dist/{claudeLocalLauncher-Cq6bqAT4.mjs → claudeLocalLauncher-C9Cc438l.mjs} +15 -12
- package/dist/{claudeLocalLauncher-B4y2BsmO.cjs → claudeLocalLauncher-Cf9QeYDT.cjs} +15 -12
- package/dist/{claudeSessionFork-CDJq_b9r.cjs → claudeSessionFork-Byd8zD1U.cjs} +1 -1
- package/dist/{claudeSessionFork-CokUhS4r.mjs → claudeSessionFork-CMzAva8G.mjs} +1 -1
- package/dist/{client-Do7cGPEq.cjs → client-BKnKRLSt.cjs} +3 -3
- package/dist/{client-CJZKBZCE.mjs → client-C7FYMer0.mjs} +2 -2
- package/dist/{client-uN9d6Git.cjs → client-D0T5-6Ds.cjs} +2 -2
- package/dist/{client-BwaWdlCm.mjs → client-Dsfy_SAb.mjs} +3 -3
- package/dist/codex/happyMcpStdioBridge.cjs +23 -18
- package/dist/codex/happyMcpStdioBridge.mjs +22 -17
- package/dist/{codexAppServerClient-B0QaMQsC.mjs → codexAppServerClient-Dd_4TxHv.mjs} +48 -4
- package/dist/{codexAppServerClient-BuSdeUxT.cjs → codexAppServerClient-TiW9OBk4.cjs} +47 -3
- package/dist/{codexCommand-C3gdjMAw.mjs → codexCommand-BZSr4MKI.mjs} +170 -69
- package/dist/{codexCommand-YdYmykAR.cjs → codexCommand-Bxryqh90.cjs} +170 -69
- package/dist/{config-CGCIFRCN.mjs → config-C_Pj7yxV.mjs} +3 -3
- package/dist/{config-ChoHFnfO.cjs → config-DXPash-r.cjs} +3 -3
- package/dist/{configuration-BE61XNsg.cjs → configuration-C3piBtxY.cjs} +1 -1
- package/dist/{configuration-L1qcGTFM.mjs → configuration-WspKd2C2.mjs} +2 -2
- package/dist/{connect-D5IKfcfd.cjs → connect-BN-IBElA.cjs} +14 -14
- package/dist/{connect-CFD0Em6a.mjs → connect-DGPZs5px.mjs} +14 -14
- package/dist/{context-DaCCB4cm.mjs → context-Cr6a3NTg.mjs} +1 -1
- package/dist/{context-3WVw8qPz.cjs → context-Jrq4-eCZ.cjs} +1 -1
- package/dist/{controlClient-RWTlQA4_.cjs → controlClient-BI6Fw3fQ.cjs} +28 -5
- package/dist/{controlClient-Ci7HTMII.mjs → controlClient-DTheOlvC.mjs} +27 -6
- package/dist/{createSessionMetadata-CWR-AB2A.mjs → createSessionMetadata-BEZ4DIDA.mjs} +57 -5
- package/dist/{createSessionMetadata-CPGTztXP.cjs → createSessionMetadata-zQSz3hgk.cjs} +56 -3
- package/dist/defaultPermissionMode-Cif_RHGb.mjs +191 -0
- package/dist/defaultPermissionMode-DNKNzk7l.cjs +197 -0
- package/dist/{deterministicJson-BBwG-Ase.mjs → deterministicJson-BMMifViN.mjs} +36 -52
- package/dist/{deterministicJson-C4Jo2RWy.cjs → deterministicJson-C7O2ulKY.cjs} +41 -59
- package/dist/{doctor-ZOQLE5AH.cjs → doctor-BykBaMTr.cjs} +6 -6
- package/dist/{doctor-CAC6qY9Z.mjs → doctor-D1KKyPzB.mjs} +6 -6
- package/dist/{assistantTools-BsrG3PD-.cjs → downloadTarget-CWTb2-EM.cjs} +44 -6
- package/dist/{assistantTools-DPGga5lM.mjs → downloadTarget-Cp48jrIP.mjs} +45 -8
- package/dist/{ensureDaemonRunning-b1pvEFcS.mjs → ensureDaemonRunning-Ba5fYoxb.mjs} +5 -5
- package/dist/{ensureDaemonRunning-mIgX2vnc.cjs → ensureDaemonRunning-CCxX7MoP.cjs} +5 -5
- package/dist/{handleResumeCommand-CTGbZkCL.mjs → handleResumeCommand-BTUGlNjB.mjs} +5 -5
- package/dist/{handleResumeCommand-DGNhbv-3.cjs → handleResumeCommand-yPdDQHqz.cjs} +5 -5
- package/dist/{index-vVWpCoTr.mjs → index-B0HEEYGh.mjs} +22 -5
- package/dist/{index-BzIxE0Eu.cjs → index-BjhKqDa0.cjs} +3 -3
- package/dist/{index-BgzjPv07.mjs → index-C3_83bqS.mjs} +3 -3
- package/dist/{index-DqlyNgt4.cjs → index-C9hI8a10.cjs} +26 -4
- package/dist/{index-DjtBengz.mjs → index-CE2GgPbr.mjs} +40 -39
- package/dist/{index-Diu6HdWH.mjs → index-D8m8Ripb.mjs} +4 -4
- package/dist/{index-DrSPR59N.cjs → index-DifM62wX.cjs} +39 -38
- package/dist/{index-DIodyAqF.cjs → index-PNMQPKhz.cjs} +4 -4
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-BO_W7VhL.mjs → install-BdvKiOQw.mjs} +2 -0
- package/dist/{install-Cp_aB-NQ.mjs → install-C0-QFn9s.mjs} +3 -3
- package/dist/{install-Cs5qAPrB.cjs → install-Cf6AFSWC.cjs} +2 -0
- package/dist/{install-DrUQk2DJ.cjs → install-CqZVeze8.cjs} +3 -3
- package/dist/lib.cjs +12 -12
- package/dist/lib.d.cts +116 -2
- package/dist/lib.d.mts +116 -2
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-BLHLmhwd.mjs → lidState-B2ZxdREe.mjs} +1 -1
- package/dist/{lidState-z9ekRpZu.cjs → lidState-Bc2K9H9l.cjs} +1 -1
- package/dist/{localHappyAgentAuth-BWvmc_Hg.mjs → localHappyAgentAuth-B5XPEMwk.mjs} +1 -1
- package/dist/{localHappyAgentAuth-BCx0y1qW.cjs → localHappyAgentAuth-T5GOvRha.cjs} +1 -1
- package/dist/{logger-D0hkk7Vo.cjs → logger-B_MWPbZz.cjs} +2 -2
- package/dist/{logger-CknSVkIe.mjs → logger-CbBv3q_b.mjs} +2 -2
- package/dist/{machineMetadata-BDCYOXQg.cjs → machineMetadata-BafS4JY8.cjs} +4 -3
- package/dist/{machineMetadata-Cj1DoFot.mjs → machineMetadata-DHg238U4.mjs} +4 -3
- package/dist/{main-COAPGIso.cjs → main-DNrA0qBy.cjs} +45 -45
- package/dist/{main-CKUfkVG_.mjs → main-DXAK0n7x.mjs} +45 -45
- package/dist/{manager-BQ4flvQZ.mjs → manager-BEsI4qt3.mjs} +9 -3
- package/dist/{manager-Cly8xVIR.cjs → manager-HrEj442o.cjs} +8 -2
- package/dist/{mcp-BILnw4si.cjs → mcp-AvPOhDXy.cjs} +24 -19
- package/dist/{mcp-DeYUfpo8.mjs → mcp-BotAjCdD.mjs} +23 -18
- package/dist/mirrorProtocol-BdcN6QlN.cjs +1270 -0
- package/dist/mirrorProtocol-BwHm8odn.mjs +1247 -0
- package/dist/{package-UkmvSFsg.cjs → package-C9ZP9bpX.cjs} +7 -7
- package/dist/{package-VIUXrYZ1.mjs → package-DU1DxhH9.mjs} +7 -7
- package/dist/{peerTools-CttfOxti.cjs → peerTools-Dkbu7gag.cjs} +4 -4
- package/dist/{peerTools-SWITnkqz.mjs → peerTools-os2DVjA0.mjs} +4 -4
- package/dist/{persistence-C6ztVW1W.cjs → persistence-BYGl0QYw.cjs} +147 -25
- package/dist/{persistence-DujtUH94.mjs → persistence-ON0zpHfb.mjs} +123 -12
- package/dist/{piRunnerArgs-BVJHIjlk.mjs → piRunnerArgs-CYsnT9sV.mjs} +1 -1
- package/dist/{piRunnerArgs-tBQg6xDw.cjs → piRunnerArgs-DpbvstUX.cjs} +1 -1
- package/dist/{piRuntime-DZzjF9It.cjs → piRuntime-CDnILlCd.cjs} +1 -1
- package/dist/{piRuntime-DKFA8u8t.mjs → piRuntime-CmEid-wu.mjs} +1 -1
- package/dist/{piTerminal-BTSaFlpV.mjs → piTerminal-0eNlXSlL.mjs} +17 -17
- package/dist/{piTerminal-t5pQHCPT.cjs → piTerminal-B57TgMON.cjs} +17 -17
- package/dist/precheckCompat-CWOi5c9L.cjs +29 -0
- package/dist/precheckCompat-DeEbilbr.mjs +26 -0
- package/dist/rateLimitWindows-CusGIqlq.cjs +258 -0
- package/dist/rateLimitWindows-vZ9Bo7aT.mjs +248 -0
- package/dist/{registerCommonHandlers-BR0J4g64.mjs → registerCommonHandlers-B0PVff2U.mjs} +2 -2
- package/dist/{registerCommonHandlers--8ds2auE.cjs → registerCommonHandlers-DVYB3iVn.cjs} +2 -2
- package/dist/{registerKillSessionHandler-Czz0tdki.mjs → registerKillSessionHandler-BJMHJHXe.mjs} +15 -10
- package/dist/{registerKillSessionHandler-CI23l8aJ.cjs → registerKillSessionHandler-BwXGKtg_.cjs} +15 -10
- package/dist/{remoteSessionClient-DCAUHgPz.mjs → remoteSessionClient-BzPXSC21.mjs} +5 -5
- package/dist/{remoteSessionClient-BAkIwM2S.cjs → remoteSessionClient-PyUAIhwK.cjs} +5 -5
- package/dist/{tools-BVRoGcQH.mjs → reportProgressTool-BvB13EwC.mjs} +67 -10
- package/dist/{tools-mWqsE6ji.cjs → reportProgressTool-D4KB_4cP.cjs} +73 -9
- package/dist/{run-CkKujjn8.cjs → run-BC8jzq_h.cjs} +558 -122
- package/dist/{run-B75qm2I6.mjs → run-O2M8LsWf.mjs} +556 -120
- package/dist/{runClaude-B1T9DLLi.cjs → runClaude-C7jPa8VP.cjs} +93 -26
- package/dist/{runClaude-aBfBweec.mjs → runClaude-DGkr5E7s.mjs} +93 -26
- package/dist/{runClaudeDeps-BGjNGfuZ.cjs → runClaudeDeps-5kzncqME.cjs} +113 -35
- package/dist/{runClaudeDeps-BOrPP4J1.mjs → runClaudeDeps-CX_TxS78.mjs} +116 -37
- package/dist/{runGemini-BuAA_OQb.cjs → runGemini-BfYA4Uqc.cjs} +43 -36
- package/dist/{runGemini-a-V7JE-J.mjs → runGemini-CwmGBH3L.mjs} +43 -36
- package/dist/{runOpenClaw-DUSwXg1A.mjs → runOpenClaw-BYAPYFyL.mjs} +18 -18
- package/dist/{runOpenClaw-BBVffIh9.cjs → runOpenClaw-C72jut7v.cjs} +18 -18
- package/dist/{sandbox-Fd2G5yaq.cjs → sandbox-Bqkp8IT7.cjs} +4 -4
- package/dist/{sandbox-Brb_5wzc.mjs → sandbox-DlVnK1Vi.mjs} +4 -4
- package/dist/{selfCheck-NuJKMInJ.cjs → selfCheck-B4lLZplk.cjs} +34 -34
- package/dist/selfCheck-DYTGBdIO.mjs +84 -0
- package/dist/{send-DEQJiq_x.mjs → send-B5bWW9Tl.mjs} +8 -8
- package/dist/{send-4dgHKC3u.cjs → send-BCwS6n_s.cjs} +8 -8
- package/dist/{server-C6AlUFkw.mjs → server-CEJfRQfj.mjs} +4 -4
- package/dist/{server-DWGcDmHG.cjs → server-CFWZehnC.cjs} +6 -6
- package/dist/{sessionLock-Dm8QyGo4.mjs → sessionLock-AwOYsKT7.mjs} +12 -4
- package/dist/{sessionLock-B1GgaO1q.cjs → sessionLock-LBWNjpHf.cjs} +12 -3
- package/dist/{sessionModeFile-BvOEJ4Fl.cjs → sessionModeFile-CyPuZRIU.cjs} +1 -1
- package/dist/{sessionModeFile-CuNAWCKL.mjs → sessionModeFile-fvFn1JVG.mjs} +1 -1
- package/dist/{sessionOps-DG5MMEp_.mjs → sessionOps-DZRH4-hV.mjs} +4 -4
- package/dist/{sessionOps-JP64uJmc.cjs → sessionOps-DzbZI3Eq.cjs} +4 -4
- package/dist/{sessionScanner-DqSk5Ol_.mjs → sessionScanner-Q_Ei2flB.mjs} +75 -19
- package/dist/{sessionScanner-BBPEgJ5S.cjs → sessionScanner-i-cgwFVw.cjs} +75 -19
- package/dist/{sessions-4isbBAWi.mjs → sessions-DAmjMAZN.mjs} +9 -9
- package/dist/{sessions-DgJuw_i0.cjs → sessions-DYK5hD4T.cjs} +9 -9
- package/dist/{setupOfflineReconnection-_MoZtsro.mjs → setupOfflineReconnection-BfDBxNdo.mjs} +2 -2
- package/dist/{setupOfflineReconnection-CKJKVIUS.cjs → setupOfflineReconnection-C2LO3hSP.cjs} +2 -2
- package/dist/{spawn-BTOG4tTm.mjs → spawn-BmjG5j5Y.mjs} +15 -14
- package/dist/{spawn-CshERWbY.cjs → spawn-GK_sXE8h.cjs} +15 -14
- package/dist/{spawnAgents-Czi2VDzj.mjs → spawnAgents-HDaE3C0-.mjs} +1 -1
- package/dist/{spawnAgents-McixdtV1.cjs → spawnAgents-vglexX9N.cjs} +1 -1
- package/dist/{spawnHappyCLI-Dc4xYm8P.mjs → spawnHappyCLI-B2h0P4b5.mjs} +1 -1
- package/dist/{spawnHappyCLI-Dd5_8Vex.cjs → spawnHappyCLI-J4iEhfyZ.cjs} +1 -1
- package/dist/specialCommands-DisVxagO.mjs +93 -0
- package/dist/specialCommands-DmJMKspE.cjs +96 -0
- package/dist/{startFileWatcher-B0VlG-Fn.mjs → startFileWatcher-CeK1k5gt.mjs} +1 -1
- package/dist/{startFileWatcher-1LedLBY-.cjs → startFileWatcher-xKo8AoYl.cjs} +1 -1
- package/dist/{streamRelay-C0AffuX6.cjs → streamRelay-Ce9sgcOV.cjs} +1 -1
- package/dist/{streamRelay-BzMEEvJU.mjs → streamRelay-Iogsh51a.mjs} +1 -1
- package/dist/{sync-DwUUGGFz.cjs → sync-Bvc-vh6C.cjs} +1 -1
- package/dist/{sync-Dfm6K2te.mjs → sync-CCwYpJMS.mjs} +1 -1
- package/dist/{systemPrompt-D41Zw1a3.mjs → systemPrompt-BNIkP3tR.mjs} +3 -3
- package/dist/{systemPrompt-CB1Ls0AE.cjs → systemPrompt-DwOddbuG.cjs} +3 -3
- package/dist/{teams-D8Ly3i6u.mjs → teams-DRrLBcys.mjs} +7 -7
- package/dist/{teams-NWv2ji16.cjs → teams-GHMCRZOw.cjs} +7 -7
- package/dist/{time-BbzJ7PJQ.cjs → time-BXvtjhe9.cjs} +1 -1
- package/dist/{time-v1Y_qEJp.mjs → time-PG5Dfwdv.mjs} +1 -1
- package/dist/{titleGenerator-cH6IkPRi.cjs → titleGenerator-B07bZA0V.cjs} +2 -2
- package/dist/{titleGenerator-BhoblAQY.mjs → titleGenerator-CIzfpfZW.mjs} +1 -1
- package/dist/{todo-D1hgWV6d.cjs → todo-B0aeoNu3.cjs} +6 -6
- package/dist/{todo-CuNct-fw.mjs → todo-CfL7SBFc.mjs} +6 -6
- package/dist/{tools-jof0Bu54.mjs → tools-D91mq5Ib.mjs} +1 -1
- package/dist/{tools-c2fb0CF5.cjs → tools-DJIANHSh.cjs} +1 -1
- package/dist/transcriptCursor-B7T_gkQ0.mjs +102 -0
- package/dist/transcriptCursor-DcXGLeSc.cjs +106 -0
- package/dist/{uninstall-BB7WYYAk.mjs → uninstall-5xz3Xvhf.mjs} +3 -3
- package/dist/{uninstall-VPH5GfrA.cjs → uninstall-AtzOfdrj.cjs} +3 -3
- package/package.json +7 -7
- package/scripts/terminal_status_forwarder.cjs +89 -0
- package/dist/defaultPermissionMode-BnxJPVHT.mjs +0 -4
- package/dist/defaultPermissionMode-CxmTXUQR.cjs +0 -7
- package/dist/mirrorProtocol-BNLtoWjO.mjs +0 -170
- package/dist/mirrorProtocol-BUtmg1ws.cjs +0 -186
- package/dist/selfCheck-BgwJ3NGS.mjs +0 -84
- package/dist/specialCommands-BSqhYg5X.mjs +0 -52
- package/dist/specialCommands-DSsTeRej.cjs +0 -54
|
@@ -1,39 +1,40 @@
|
|
|
1
|
-
import { r as registerTeamsTools } from '../tools-
|
|
2
|
-
import { r as registerAutomationTools } from '../
|
|
3
|
-
import { r as registerSessionPeerTools } from '../peerTools-
|
|
1
|
+
import { r as registerTeamsTools } from '../tools-D91mq5Ib.mjs';
|
|
2
|
+
import { r as registerAutomationTools, a as registerReportProgressTool } from '../reportProgressTool-BvB13EwC.mjs';
|
|
3
|
+
import { r as registerSessionPeerTools } from '../peerTools-os2DVjA0.mjs';
|
|
4
|
+
import { P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, c as PREVIEW_DOWNLOAD_PARAM_DESCRIPTION, R as REPORT_PROGRESS_TOOL_NAME } from '../agentGuidance-BDYt2Qy2.mjs';
|
|
4
5
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
6
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
6
7
|
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
7
8
|
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
8
9
|
import { z } from 'zod';
|
|
9
10
|
import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION } from '../limits-DIo7rEBR.mjs';
|
|
10
|
-
import
|
|
11
|
-
import '../client-BwaWdlCm.mjs';
|
|
11
|
+
import '../client-Dsfy_SAb.mjs';
|
|
12
12
|
import 'node:crypto';
|
|
13
|
-
import '../configuration-
|
|
13
|
+
import '../configuration-WspKd2C2.mjs';
|
|
14
14
|
import 'node:fs';
|
|
15
15
|
import 'node:os';
|
|
16
16
|
import 'node:path';
|
|
17
|
-
import '../package-
|
|
17
|
+
import '../package-DU1DxhH9.mjs';
|
|
18
18
|
import 'node:fs/promises';
|
|
19
|
-
import '../persistence-
|
|
19
|
+
import '../persistence-ON0zpHfb.mjs';
|
|
20
20
|
import '../authRelay-DSAvg1uv.mjs';
|
|
21
21
|
import 'tweetnacl';
|
|
22
|
-
import '../logger-
|
|
22
|
+
import '../logger-CbBv3q_b.mjs';
|
|
23
23
|
import 'chalk';
|
|
24
24
|
import 'node:util';
|
|
25
|
-
import '../context-
|
|
26
|
-
import '../index-
|
|
25
|
+
import '../context-Cr6a3NTg.mjs';
|
|
26
|
+
import '../index-B0HEEYGh.mjs';
|
|
27
27
|
import '@paralleldrive/cuid2';
|
|
28
|
-
import '../client-
|
|
28
|
+
import '../client-C7FYMer0.mjs';
|
|
29
|
+
import '../precheckCompat-DeEbilbr.mjs';
|
|
29
30
|
import '../ids-DU6sLx4C.mjs';
|
|
30
|
-
import '../controlClient-
|
|
31
|
-
import '../sessionOps-
|
|
31
|
+
import '../controlClient-DTheOlvC.mjs';
|
|
32
|
+
import '../sessionOps-DZRH4-hV.mjs';
|
|
32
33
|
import 'axios';
|
|
33
|
-
import '../time-
|
|
34
|
+
import '../time-PG5Dfwdv.mjs';
|
|
34
35
|
import 'socket.io-client';
|
|
35
36
|
import '../backgroundTaskActivity-8PdPxrvy.mjs';
|
|
36
|
-
import '../remoteSessionClient-
|
|
37
|
+
import '../remoteSessionClient-BzPXSC21.mjs';
|
|
37
38
|
import '../trimIdent-BAjmv_TG.mjs';
|
|
38
39
|
|
|
39
40
|
function parseArgs(argv) {
|
|
@@ -103,7 +104,10 @@ async function main() {
|
|
|
103
104
|
title: PREVIEW_TOOL_TITLE,
|
|
104
105
|
inputSchema: {
|
|
105
106
|
path: z.string().describe("Absolute path (or ~/\u2026) of the file to show the user"),
|
|
106
|
-
mode: z.enum(["file", "diff"]).optional()
|
|
107
|
+
mode: z.enum(["file", "diff"]).optional(),
|
|
108
|
+
// B-562: must be declared here too — the SDK strips undeclared arguments
|
|
109
|
+
// before they reach the forwarded callTool.
|
|
110
|
+
download: z.boolean().optional().describe(PREVIEW_DOWNLOAD_PARAM_DESCRIPTION)
|
|
107
111
|
}
|
|
108
112
|
},
|
|
109
113
|
async (args) => {
|
|
@@ -162,6 +166,7 @@ async function main() {
|
|
|
162
166
|
});
|
|
163
167
|
registerAutomationTools(server, (name, args) => forwardTeam(name, args));
|
|
164
168
|
registerSessionPeerTools(server, (name, args) => forwardTeam(name, args));
|
|
169
|
+
registerReportProgressTool(server, async (args) => (await ensureHttpClient()).callTool({ name: REPORT_PROGRESS_TOOL_NAME, arguments: args }));
|
|
165
170
|
const stdio = new StdioServerTransport();
|
|
166
171
|
await server.connect(stdio);
|
|
167
172
|
}
|
|
@@ -1,10 +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-
|
|
5
|
-
import {
|
|
6
|
-
import { i as initializeSandbox, w as wrapForMcpTransport } from './manager-
|
|
7
|
-
import { p as packageJson } from './package-
|
|
4
|
+
import { l as logger } from './logger-CbBv3q_b.mjs';
|
|
5
|
+
import { e as errorLogMetadata, c as contentLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
|
|
6
|
+
import { i as initializeSandbox, w as wrapForMcpTransport } from './manager-BEsI4qt3.mjs';
|
|
7
|
+
import { p as packageJson } from './package-DU1DxhH9.mjs';
|
|
8
|
+
import { s as shouldReadCodexRateLimits, i as isUnsupportedCodexMethodError } from './rateLimitWindows-vZ9Bo7aT.mjs';
|
|
8
9
|
|
|
9
10
|
function isAppServerAvailable() {
|
|
10
11
|
try {
|
|
@@ -102,6 +103,11 @@ class CodexAppServerClient {
|
|
|
102
103
|
// Handlers set by the consumer (runCodex.ts)
|
|
103
104
|
eventHandler = null;
|
|
104
105
|
approvalHandler = null;
|
|
106
|
+
// B-555: subscription rate-limit snapshots (sparse notifications + throttled reads).
|
|
107
|
+
rateLimitHandler = null;
|
|
108
|
+
rateLimitReadAt = 0;
|
|
109
|
+
rateLimitReadInFlight = false;
|
|
110
|
+
rateLimitReadUnsupported = false;
|
|
105
111
|
constructor(sandboxConfig) {
|
|
106
112
|
this.sandboxConfig = sandboxConfig;
|
|
107
113
|
}
|
|
@@ -117,6 +123,36 @@ class CodexAppServerClient {
|
|
|
117
123
|
setApprovalHandler(handler) {
|
|
118
124
|
this.approvalHandler = handler;
|
|
119
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* B-555: receive Codex `RateLimitSnapshot`s — from `account/rateLimits/updated`
|
|
128
|
+
* (sparse: null windows mean "not in this update") and from a throttled
|
|
129
|
+
* `account/rateLimits/read` after connect / each finished turn. Codex does
|
|
130
|
+
* the fetch with its own login; we never touch its credentials.
|
|
131
|
+
*/
|
|
132
|
+
setRateLimitHandler(handler) {
|
|
133
|
+
this.rateLimitHandler = handler;
|
|
134
|
+
this.maybeRefreshRateLimits();
|
|
135
|
+
}
|
|
136
|
+
maybeRefreshRateLimits() {
|
|
137
|
+
if (!this.rateLimitHandler || !this.connected) return;
|
|
138
|
+
if (!shouldReadCodexRateLimits({
|
|
139
|
+
now: Date.now(),
|
|
140
|
+
lastReadAt: this.rateLimitReadAt,
|
|
141
|
+
inFlight: this.rateLimitReadInFlight,
|
|
142
|
+
unsupported: this.rateLimitReadUnsupported
|
|
143
|
+
})) return;
|
|
144
|
+
this.rateLimitReadAt = Date.now();
|
|
145
|
+
this.rateLimitReadInFlight = true;
|
|
146
|
+
this.request("account/rateLimits/read", {}, 15e3).then((result) => {
|
|
147
|
+
const snapshot = result?.rateLimits;
|
|
148
|
+
if (snapshot) this.rateLimitHandler?.(snapshot);
|
|
149
|
+
}).catch((error) => {
|
|
150
|
+
if (isUnsupportedCodexMethodError(error)) this.rateLimitReadUnsupported = true;
|
|
151
|
+
logger.debug("[CodexAppServer] account/rateLimits/read failed:", errorLogMetadata(error));
|
|
152
|
+
}).finally(() => {
|
|
153
|
+
this.rateLimitReadInFlight = false;
|
|
154
|
+
});
|
|
155
|
+
}
|
|
120
156
|
extractTurnId(params) {
|
|
121
157
|
const turnId = params?.turn?.id ?? params?.turnId ?? params?.turn_id ?? null;
|
|
122
158
|
return typeof turnId === "string" && turnId.length > 0 ? turnId : null;
|
|
@@ -142,6 +178,7 @@ class CodexAppServerClient {
|
|
|
142
178
|
const aborted = status === "cancelled" || status === "canceled" || status === "aborted" || status === "interrupted";
|
|
143
179
|
this.tryResolvePendingTurn(aborted, turnId, source);
|
|
144
180
|
this._turnId = null;
|
|
181
|
+
this.maybeRefreshRateLimits();
|
|
145
182
|
if (turnId && this.completedTurnIds.has(turnId)) {
|
|
146
183
|
return;
|
|
147
184
|
}
|
|
@@ -377,6 +414,7 @@ class CodexAppServerClient {
|
|
|
377
414
|
this.notify("initialized");
|
|
378
415
|
this.connected = true;
|
|
379
416
|
logger.debug("[CodexAppServer] Connected and initialized");
|
|
417
|
+
this.maybeRefreshRateLimits();
|
|
380
418
|
}
|
|
381
419
|
async disconnectInternal(opts) {
|
|
382
420
|
if (!this.connected && !this.process) return;
|
|
@@ -1050,6 +1088,7 @@ class CodexAppServerClient {
|
|
|
1050
1088
|
`codex/event/${msg.type}`
|
|
1051
1089
|
);
|
|
1052
1090
|
this._turnId = null;
|
|
1091
|
+
this.maybeRefreshRateLimits();
|
|
1053
1092
|
}
|
|
1054
1093
|
}
|
|
1055
1094
|
return;
|
|
@@ -1077,6 +1116,11 @@ class CodexAppServerClient {
|
|
|
1077
1116
|
}
|
|
1078
1117
|
return;
|
|
1079
1118
|
}
|
|
1119
|
+
if (method === "account/rateLimits/updated") {
|
|
1120
|
+
const snapshot = params?.rateLimits;
|
|
1121
|
+
if (snapshot) this.rateLimitHandler?.(snapshot);
|
|
1122
|
+
return;
|
|
1123
|
+
}
|
|
1080
1124
|
if (method === "mcpServer/startupStatus/updated") {
|
|
1081
1125
|
logger.debug(`[CodexAppServer] mcpServer startup status:`, params);
|
|
1082
1126
|
return;
|
|
@@ -3,10 +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-B_MWPbZz.cjs');
|
|
7
7
|
var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
8
|
-
var manager = require('./manager-
|
|
9
|
-
var _package = require('./package-
|
|
8
|
+
var manager = require('./manager-HrEj442o.cjs');
|
|
9
|
+
var _package = require('./package-C9ZP9bpX.cjs');
|
|
10
|
+
var rateLimitWindows = require('./rateLimitWindows-CusGIqlq.cjs');
|
|
10
11
|
|
|
11
12
|
function isAppServerAvailable() {
|
|
12
13
|
try {
|
|
@@ -104,6 +105,11 @@ class CodexAppServerClient {
|
|
|
104
105
|
// Handlers set by the consumer (runCodex.ts)
|
|
105
106
|
eventHandler = null;
|
|
106
107
|
approvalHandler = null;
|
|
108
|
+
// B-555: subscription rate-limit snapshots (sparse notifications + throttled reads).
|
|
109
|
+
rateLimitHandler = null;
|
|
110
|
+
rateLimitReadAt = 0;
|
|
111
|
+
rateLimitReadInFlight = false;
|
|
112
|
+
rateLimitReadUnsupported = false;
|
|
107
113
|
constructor(sandboxConfig) {
|
|
108
114
|
this.sandboxConfig = sandboxConfig;
|
|
109
115
|
}
|
|
@@ -119,6 +125,36 @@ class CodexAppServerClient {
|
|
|
119
125
|
setApprovalHandler(handler) {
|
|
120
126
|
this.approvalHandler = handler;
|
|
121
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* B-555: receive Codex `RateLimitSnapshot`s — from `account/rateLimits/updated`
|
|
130
|
+
* (sparse: null windows mean "not in this update") and from a throttled
|
|
131
|
+
* `account/rateLimits/read` after connect / each finished turn. Codex does
|
|
132
|
+
* the fetch with its own login; we never touch its credentials.
|
|
133
|
+
*/
|
|
134
|
+
setRateLimitHandler(handler) {
|
|
135
|
+
this.rateLimitHandler = handler;
|
|
136
|
+
this.maybeRefreshRateLimits();
|
|
137
|
+
}
|
|
138
|
+
maybeRefreshRateLimits() {
|
|
139
|
+
if (!this.rateLimitHandler || !this.connected) return;
|
|
140
|
+
if (!rateLimitWindows.shouldReadCodexRateLimits({
|
|
141
|
+
now: Date.now(),
|
|
142
|
+
lastReadAt: this.rateLimitReadAt,
|
|
143
|
+
inFlight: this.rateLimitReadInFlight,
|
|
144
|
+
unsupported: this.rateLimitReadUnsupported
|
|
145
|
+
})) return;
|
|
146
|
+
this.rateLimitReadAt = Date.now();
|
|
147
|
+
this.rateLimitReadInFlight = true;
|
|
148
|
+
this.request("account/rateLimits/read", {}, 15e3).then((result) => {
|
|
149
|
+
const snapshot = result?.rateLimits;
|
|
150
|
+
if (snapshot) this.rateLimitHandler?.(snapshot);
|
|
151
|
+
}).catch((error) => {
|
|
152
|
+
if (rateLimitWindows.isUnsupportedCodexMethodError(error)) this.rateLimitReadUnsupported = true;
|
|
153
|
+
logger.logger.debug("[CodexAppServer] account/rateLimits/read failed:", contentLogMetadata.errorLogMetadata(error));
|
|
154
|
+
}).finally(() => {
|
|
155
|
+
this.rateLimitReadInFlight = false;
|
|
156
|
+
});
|
|
157
|
+
}
|
|
122
158
|
extractTurnId(params) {
|
|
123
159
|
const turnId = params?.turn?.id ?? params?.turnId ?? params?.turn_id ?? null;
|
|
124
160
|
return typeof turnId === "string" && turnId.length > 0 ? turnId : null;
|
|
@@ -144,6 +180,7 @@ class CodexAppServerClient {
|
|
|
144
180
|
const aborted = status === "cancelled" || status === "canceled" || status === "aborted" || status === "interrupted";
|
|
145
181
|
this.tryResolvePendingTurn(aborted, turnId, source);
|
|
146
182
|
this._turnId = null;
|
|
183
|
+
this.maybeRefreshRateLimits();
|
|
147
184
|
if (turnId && this.completedTurnIds.has(turnId)) {
|
|
148
185
|
return;
|
|
149
186
|
}
|
|
@@ -379,6 +416,7 @@ class CodexAppServerClient {
|
|
|
379
416
|
this.notify("initialized");
|
|
380
417
|
this.connected = true;
|
|
381
418
|
logger.logger.debug("[CodexAppServer] Connected and initialized");
|
|
419
|
+
this.maybeRefreshRateLimits();
|
|
382
420
|
}
|
|
383
421
|
async disconnectInternal(opts) {
|
|
384
422
|
if (!this.connected && !this.process) return;
|
|
@@ -1052,6 +1090,7 @@ class CodexAppServerClient {
|
|
|
1052
1090
|
`codex/event/${msg.type}`
|
|
1053
1091
|
);
|
|
1054
1092
|
this._turnId = null;
|
|
1093
|
+
this.maybeRefreshRateLimits();
|
|
1055
1094
|
}
|
|
1056
1095
|
}
|
|
1057
1096
|
return;
|
|
@@ -1079,6 +1118,11 @@ class CodexAppServerClient {
|
|
|
1079
1118
|
}
|
|
1080
1119
|
return;
|
|
1081
1120
|
}
|
|
1121
|
+
if (method === "account/rateLimits/updated") {
|
|
1122
|
+
const snapshot = params?.rateLimits;
|
|
1123
|
+
if (snapshot) this.rateLimitHandler?.(snapshot);
|
|
1124
|
+
return;
|
|
1125
|
+
}
|
|
1082
1126
|
if (method === "mcpServer/startupStatus/updated") {
|
|
1083
1127
|
logger.logger.debug(`[CodexAppServer] mcpServer startup status:`, params);
|
|
1084
1128
|
return;
|