very-happy-cli 0.2.187 → 0.2.189
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-B2-ReWTo.cjs → AcpBackend-DRPJ2g9G.cjs} +3 -3
- package/dist/{AcpBackend-C4Emg-H3.mjs → AcpBackend-fj16v_cf.mjs} +3 -3
- package/dist/{AcpSessionManager-Nard_zFS.mjs → AcpSessionManager-BZPmUDL5.mjs} +4 -4
- package/dist/{AcpSessionManager-DR4-oZCz.cjs → AcpSessionManager-DM-KKg6v.cjs} +4 -4
- package/dist/{BasePermissionHandler-Bk9DmVZH.mjs → BasePermissionHandler-CVtH-snr.mjs} +1 -1
- package/dist/{BasePermissionHandler-CZ19WzsP.cjs → BasePermissionHandler-DjM16uJz.cjs} +1 -1
- package/dist/{acpSessionResume-Hto_b8MK.cjs → acpSessionResume-2BTMsB7_.cjs} +1 -1
- package/dist/{acpSessionResume-DPSfMe7r.mjs → acpSessionResume-Dxl1LRAT.mjs} +1 -1
- package/dist/{agentHome-4-odnrAk.mjs → agentHome-CHctmMzZ.mjs} +4 -4
- package/dist/{agentHome-Mveyfa24.cjs → agentHome-W17n1gnH.cjs} +4 -4
- package/dist/{api-cVvbFZVK.mjs → api-B0yN68XH.mjs} +10 -10
- package/dist/{api-DVEzYcoy.cjs → api-BDuuyys8.cjs} +10 -10
- package/dist/{apiMachine-Bd1C_JN6.cjs → apiMachine-iddD-F19.cjs} +14 -14
- package/dist/{apiMachine-M7qY1izH.mjs → apiMachine-mc9CsKuS.mjs} +14 -14
- package/dist/{attachmentContent-D8hViGiA.cjs → attachmentContent-Cc5b7TPr.cjs} +2 -2
- package/dist/{attachmentContent-NNF-Eo4O.mjs → attachmentContent-CcIdMfAx.mjs} +2 -2
- package/dist/{auth-BHw8be0X.cjs → auth-B7tVmyfX.cjs} +8 -8
- package/dist/{auth-BCHL8Fx5.mjs → auth-CyrVvWHF.mjs} +5 -5
- package/dist/{auth-CKNEKwEV.mjs → auth-DNAgkUkB.mjs} +8 -8
- package/dist/{auth-b_1h0677.cjs → auth-DQKSpaEf.cjs} +5 -5
- package/dist/{auto-D716QYa3.mjs → auto-BklCipw1.mjs} +18 -17
- package/dist/{auto-Da4rCLal.cjs → auto-CetlumDo.cjs} +18 -17
- package/dist/{bootstrap-j2RuoHVy.cjs → bootstrap-CDY-Vz8q.cjs} +2 -2
- package/dist/{bootstrap-CndcegDb.mjs → bootstrap-DfXwkUQb.mjs} +2 -2
- package/dist/{browser-DIYTnD_T.cjs → browser-D1yzC0Tu.cjs} +1 -1
- package/dist/{browser-CLsM513o.mjs → browser-vb0k1zfI.mjs} +1 -1
- package/dist/{claudeLocal-C_uUbEO_.cjs → claudeLocal-2dJIiTIq.cjs} +5 -5
- package/dist/{claudeLocal-3HbTx7K-.mjs → claudeLocal-Bid_rC_v.mjs} +5 -5
- package/dist/{claudeLocalLauncher-DXh2chq3.mjs → claudeLocalLauncher-5pzpETxd.mjs} +10 -10
- package/dist/{claudeLocalLauncher-BxWouVYk.cjs → claudeLocalLauncher-Jm5oQX5Z.cjs} +10 -10
- package/dist/{claudeSessionFork-CsU96yXX.cjs → claudeSessionFork-DsbcuDEJ.cjs} +1 -1
- package/dist/{claudeSessionFork-B4olbwfj.mjs → claudeSessionFork-DzecSBO4.mjs} +1 -1
- package/dist/{client-C8w9aQYe.mjs → client-B161HwAk.mjs} +2 -2
- package/dist/{client-CCy72Phz.cjs → client-BNmFaRXZ.cjs} +4 -4
- package/dist/{client-D8p1YjVt.mjs → client-C9Ecbtko.mjs} +4 -4
- package/dist/{client-Zqg7DXHl.mjs → client-CvjjadIE.mjs} +2 -2
- package/dist/{client-CWSfPlGD.cjs → client-D0aYWt53.cjs} +2 -2
- package/dist/{client-q1aNOKgy.cjs → client-DIfxYk7B.cjs} +2 -2
- package/dist/codex/happyMcpStdioBridge.cjs +17 -16
- package/dist/codex/happyMcpStdioBridge.mjs +17 -16
- package/dist/{codexAppServerClient-Csc-XsRV.mjs → codexAppServerClient-BlVmpjR-.mjs} +63 -5
- package/dist/{codexAppServerClient-g8npaIU9.cjs → codexAppServerClient-CO9f4Jr8.cjs} +63 -5
- package/dist/{codexCommand-BV8pTAtv.cjs → codexCommand-BfoRP6E9.cjs} +189 -68
- package/dist/{codexCommand-BS-foS_R.mjs → codexCommand-CAMR4g5o.mjs} +188 -67
- package/dist/{codexTermination-lOO15mt2.mjs → codexTermination-BvGlN02_.mjs} +1 -1
- package/dist/{codexTermination-B5WgZAWO.cjs → codexTermination-IrLZQzKC.cjs} +1 -1
- package/dist/{config-BOnZRJIG.cjs → config-BGFqQGvh.cjs} +3 -3
- package/dist/{config-Ba5ufl-D.mjs → config-CtMgGPvf.mjs} +3 -3
- package/dist/{configuration-8EAa2X9P.mjs → configuration-1FabKklB.mjs} +1 -1
- package/dist/{configuration-CAfdO4IC.cjs → configuration-C0ctLGW2.cjs} +1 -1
- package/dist/{connect-BHWHNe54.mjs → connect-0lSugpjf.mjs} +13 -13
- package/dist/{connect-2hWuvxRM.cjs → connect-DSw-2f52.cjs} +13 -13
- package/dist/{context-B-jybQhf.mjs → context-BgxbXWKS.mjs} +1 -1
- package/dist/{context-BtCz06PX.cjs → context-D-hEk5pC.cjs} +1 -1
- package/dist/{controlClient-O-vf2MkJ.mjs → controlClient-DwNnNAUx.mjs} +4 -4
- package/dist/{controlClient-mH9AxBwT.cjs → controlClient-F7hAEEy2.cjs} +3 -3
- package/dist/{createSessionMetadata-HlzlfP0U.mjs → createSessionMetadata-CG6Klinp.mjs} +2 -2
- package/dist/{createSessionMetadata-Bcn7b8QB.cjs → createSessionMetadata-DezS33OM.cjs} +2 -2
- package/dist/{defaultPermissionMode-BN3PdltF.cjs → defaultPermissionMode-5EvgRq38.cjs} +2 -2
- package/dist/{defaultPermissionMode-BPDeX4S8.mjs → defaultPermissionMode-e2bIIJG4.mjs} +2 -2
- package/dist/{deterministicJson-CruOxFA6.mjs → deterministicJson-BMwgK21e.mjs} +13 -13
- package/dist/{deterministicJson-D9pZQhU9.cjs → deterministicJson-D0LU_XbO.cjs} +13 -13
- package/dist/{doctor-BNhLBBTK.mjs → doctor-D16hySse.mjs} +7 -7
- package/dist/{doctor-lHD1YZH6.cjs → doctor-wVNvRarN.cjs} +7 -7
- package/dist/{downloadTarget-ByTxs_N5.mjs → downloadTarget-C6tqaXGm.mjs} +6 -6
- package/dist/{downloadTarget-BhkQxTa8.cjs → downloadTarget-aNcCxVRL.cjs} +6 -6
- package/dist/{ensureDaemonRunning-BiCK6RiS.cjs → ensureDaemonRunning-CIghxgDR.cjs} +5 -5
- package/dist/{ensureDaemonRunning-Cv0AMaHK.mjs → ensureDaemonRunning-DZq8bvsp.mjs} +5 -5
- package/dist/{handleResumeCommand-Cy_KW0LN.mjs → handleResumeCommand-BNnD7EuD.mjs} +5 -5
- package/dist/{handleResumeCommand-WB4VDeKk.cjs → handleResumeCommand-CMUTygsm.cjs} +5 -5
- package/dist/{index-BpWESchl.cjs → index-4TpmBb2Q.cjs} +3 -3
- package/dist/{index-Vtcax4oD.cjs → index-B81qV_F_.cjs} +4 -4
- package/dist/{index-CVMbboXv.mjs → index-BCQr-5Ei.mjs} +4 -4
- package/dist/{index-BumVulwx.cjs → index-BOe6dKnL.cjs} +215 -18
- package/dist/{index-CdOz1uDl.mjs → index-BuiG8hmg.mjs} +94 -45
- package/dist/{index-BpSpw6jG.mjs → index-CKd20r1W.mjs} +3 -3
- package/dist/{index-B44ft-m4.cjs → index-CnzsOD19.cjs} +93 -44
- package/dist/{index-Bcp-PEGc.cjs → index-De02DNu5.cjs} +4 -4
- package/dist/{index-lWXWV0H2.mjs → index-Df0bc_et.mjs} +4 -4
- package/dist/{index-B9f1vKcC.mjs → index-WKyN-bNy.mjs} +212 -17
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-mK93DJ6L.mjs → install-23ehAdTD.mjs} +3 -3
- package/dist/{install-DdRVv9IS.cjs → install-DNbIEJUk.cjs} +3 -3
- package/dist/lib.cjs +12 -12
- package/dist/lib.d.cts +14 -0
- package/dist/lib.d.mts +14 -0
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-XyjQaZtU.cjs → lidState-B4dHJCeS.cjs} +1 -1
- package/dist/{lidState-LtdUCXi-.mjs → lidState-q5Its2Hm.mjs} +1 -1
- package/dist/{localHappyAgentAuth-C9Aj_wGD.cjs → localHappyAgentAuth-CG2nPD_H.cjs} +1 -1
- package/dist/{localHappyAgentAuth-DqFE0Adr.mjs → localHappyAgentAuth-C_G5u5lY.mjs} +1 -1
- package/dist/{logger-BILSzq2s.cjs → logger-BP1SW7Cs.cjs} +2 -2
- package/dist/{logger-SAU4uSs4.mjs → logger-DOKH3Zbh.mjs} +2 -2
- package/dist/{machineMetadata-C5TgUTpD.cjs → machineMetadata-BKX3ov9g.cjs} +3 -3
- package/dist/{machineMetadata-ZVnihOuL.mjs → machineMetadata-D-5qeIqd.mjs} +3 -3
- package/dist/{main-BjOHtX8u.mjs → main-DODz8DQE.mjs} +46 -46
- package/dist/{main-CVfx_-l7.cjs → main-ndpVIaSG.cjs} +46 -46
- package/dist/{mcp-CWVr7KbQ.mjs → mcp-BBwbSODp.mjs} +16 -15
- package/dist/{mcp-By9XK193.cjs → mcp-Bc4U4exu.cjs} +16 -15
- package/dist/{mirrorProtocol-C0wyaesn.cjs → mirrorProtocol-CiA3hO2y.cjs} +3 -3
- package/dist/{mirrorProtocol-BI6XbokT.mjs → mirrorProtocol-D2vTWteS.mjs} +3 -3
- package/dist/{package-Bbfq2KR7.cjs → package-CYDdLA6R.cjs} +7 -7
- package/dist/{package-BMBwnCn3.mjs → package-DTcaIhjW.mjs} +7 -7
- package/dist/{panels-rQmysHlY.cjs → panels-C2xZ8rqU.cjs} +5 -5
- package/dist/{panels-CbIUwV6q.mjs → panels-DCaLxlSL.mjs} +5 -5
- package/dist/{peerTools-CZfiq_Dx.cjs → peerTools-B4315xjX.cjs} +5 -5
- package/dist/{peerTools-CyruQrOo.mjs → peerTools-BtrUnSwz.mjs} +5 -5
- package/dist/{persistence-C7T3HYjq.mjs → persistence-0INrP3aB.mjs} +2 -2
- package/dist/{persistence-DPeSC0SK.cjs → persistence-CrzC7yr_.cjs} +2 -2
- package/dist/{piRunnerArgs-DAq8vIpP.cjs → piRunnerArgs-BtzW_kfh.cjs} +1 -1
- package/dist/{piRunnerArgs-CsWompo8.mjs → piRunnerArgs-DRuxMlX1.mjs} +1 -1
- package/dist/{piRuntime-Dxd8Gfun.mjs → piRuntime-BMAFpIBV.mjs} +1 -1
- package/dist/{piRuntime-CFqlQFoz.cjs → piRuntime-DEbPE_kW.cjs} +1 -1
- package/dist/{piTerminal-BssuKDtJ.mjs → piTerminal-DQXV8_we.mjs} +18 -17
- package/dist/{piTerminal-DHG3Kzve.cjs → piTerminal-MtxDtBE2.cjs} +18 -17
- package/dist/{pushNotifications-CsSyhnHu.cjs → pushNotifications-CalIS9sq.cjs} +3 -3
- package/dist/{pushNotifications-Bi72c41d.mjs → pushNotifications-Cq1s8YVK.mjs} +3 -3
- package/dist/{query-BQOwsKS1.mjs → query-BYiPBHPC.mjs} +1 -1
- package/dist/{query-Cuef299f.cjs → query-CE2XDhhw.cjs} +1 -1
- package/dist/{specialCommands-35KxDNE8.cjs → rateLimitReporter-BKmoOZQi.cjs} +3 -55
- package/dist/{specialCommands-CTtmGCCf.mjs → rateLimitReporter-DR5LXuiQ.mjs} +4 -55
- package/dist/{rateLimitWindows-B6IAWYN5.mjs → rateLimitWindows-5vIuNjko.mjs} +1 -1
- package/dist/{rateLimitWindows-bfwC81Z-.cjs → rateLimitWindows-Cs56YJCH.cjs} +1 -1
- package/dist/{registerCommonHandlers-qzb6TQqo.mjs → registerCommonHandlers-DWkTysjD.mjs} +2 -2
- package/dist/{registerCommonHandlers-CQC04iF3.cjs → registerCommonHandlers-DZPozYxc.cjs} +2 -2
- package/dist/{registerKillSessionHandler-DMPrrNKX.mjs → registerKillSessionHandler-CSCTRIbI.mjs} +34 -6
- package/dist/{registerKillSessionHandler-BraKB5Ks.cjs → registerKillSessionHandler-DhCjrs44.cjs} +34 -6
- package/dist/{remoteSessionClient-DffolBcQ.cjs → remoteSessionClient-Dq8XTLQP.cjs} +5 -5
- package/dist/{remoteSessionClient-D3XhN_sd.mjs → remoteSessionClient-Vfj_5g2-.mjs} +5 -5
- package/dist/{reportProgressTool-irHR-XEW.mjs → reportProgressTool-B7zmX7NJ.mjs} +3 -3
- package/dist/{reportProgressTool-BieTXE_R.cjs → reportProgressTool-DznxPKES.cjs} +3 -3
- package/dist/{run-Ck_WA6Nj.cjs → run-Ca8BiNCp.cjs} +36 -35
- package/dist/{run-DCUaxe2S.mjs → run-DSfNcR62.mjs} +36 -35
- package/dist/{runClaude-BUGku2Qp.cjs → runClaude-ClQQcgoO.cjs} +22 -22
- package/dist/{runClaude-BryAvfNV.mjs → runClaude-hoepv-0X.mjs} +22 -22
- package/dist/{runClaudeDeps-BZkWM9_u.mjs → runClaudeDeps-D_v8t2SK.mjs} +88 -55
- package/dist/{runClaudeDeps-Dbk1VrOW.cjs → runClaudeDeps-ck5_GYlP.cjs} +85 -52
- package/dist/{runGemini-DT379gpi.mjs → runGemini-CTr2-cYG.mjs} +38 -33
- package/dist/{runGemini-B6AZ2bv0.cjs → runGemini-Cj0XsMiM.cjs} +38 -33
- package/dist/{runOpenClaw-eBUYlIVJ.cjs → runOpenClaw-BoN1e3lP.cjs} +23 -18
- package/dist/{runOpenClaw-Bpp9mkyO.mjs → runOpenClaw-CdDMntiV.mjs} +23 -18
- package/dist/{sandbox-Bv4H1P6u.cjs → sandbox-BY2h19gc.cjs} +4 -4
- package/dist/{sandbox-Z8TM9eUg.mjs → sandbox-DcaWB-Ou.mjs} +4 -4
- package/dist/selfCheck-BQ_H2Sns.mjs +86 -0
- package/dist/{selfCheck--1k2Ptf6.cjs → selfCheck-DFS_GUaQ.cjs} +37 -37
- package/dist/{send-BG4KYe6f.cjs → send-BMsUYU6g.cjs} +9 -8
- package/dist/{send-CKTovWuQ.mjs → send-UBTHHNvZ.mjs} +9 -8
- package/dist/{server-DLpXtoiZ.mjs → server-Dt3mCtfQ.mjs} +4 -4
- package/dist/{server-BTNwH-sA.cjs → server-YrHMHNz1.cjs} +6 -6
- package/dist/{sessionLock-Cf6RlgfF.cjs → sessionLock-DSqiP2lH.cjs} +3 -3
- package/dist/{sessionLock-DhzB5ZI9.mjs → sessionLock-tEFvFXLD.mjs} +3 -3
- package/dist/{sessionOps-R52JWMnX.cjs → sessionOps-BzeOKIEF.cjs} +27 -4
- package/dist/{sessionOps-CiFjBCMa.mjs → sessionOps-CljctDs5.mjs} +27 -4
- package/dist/{sessionProvider-f2tUhwBc.mjs → sessionProvider-BnUFSJXM.mjs} +5 -5
- package/dist/{sessionProvider-LATn-lZL.cjs → sessionProvider-ORgzmkXy.cjs} +5 -5
- package/dist/{sessionScanner-DRzZtGtu.cjs → sessionScanner-Cr6PJ3PT.cjs} +3 -3
- package/dist/{sessionScanner-lS1puA5H.mjs → sessionScanner-DZUlkdF6.mjs} +3 -3
- package/dist/{sessions-D01nnjOE.mjs → sessions-15cag-su.mjs} +11 -10
- package/dist/{sessions-DGd8Fin6.cjs → sessions-aIo_HjmY.cjs} +11 -10
- package/dist/{setupOfflineReconnection-UApZjcU5.mjs → setupOfflineReconnection-B7I8R2Ex.mjs} +2 -2
- package/dist/{setupOfflineReconnection-Ds7ywGwR.cjs → setupOfflineReconnection-tV0Q1dgR.cjs} +2 -2
- package/dist/{spawn-ct8aSMA8.mjs → spawn-ByrQgruJ.mjs} +70 -28
- package/dist/{spawn-CT3g4p8A.cjs → spawn-VG-HjJiR.cjs} +70 -27
- package/dist/{spawnAgents-f2q31uUV.mjs → spawnAgents-Bh1RPShN.mjs} +24 -11
- package/dist/{spawnAgents-DsJSyLDl.cjs → spawnAgents-C1-4m7aN.cjs} +24 -10
- package/dist/{spawnHappyCLI-Dp05fHcp.mjs → spawnHappyCLI-CEsXwz5V.mjs} +1 -1
- package/dist/{spawnHappyCLI-DedrWByd.cjs → spawnHappyCLI-CxiR2Qoy.cjs} +1 -1
- package/dist/specialCommands-J3JFOq0J.cjs +60 -0
- package/dist/specialCommands-MXUN0wfI.mjs +54 -0
- package/dist/{startFileWatcher-72w11DP_.cjs → startFileWatcher-C-XCZ5t2.cjs} +1 -1
- package/dist/{startFileWatcher-BLdxJdgu.mjs → startFileWatcher-DkEeeAtL.mjs} +1 -1
- package/dist/{startupSessionCreate-Cy4J4-Ep.cjs → startupSessionCreate-CYc8mra-.cjs} +1 -1
- package/dist/{startupSessionCreate-CJFR_Zom.mjs → startupSessionCreate-npXe2TdN.mjs} +1 -1
- package/dist/{streamRelay-B3FloUTT.mjs → streamRelay-CqBynIon.mjs} +1 -1
- package/dist/{streamRelay-Cn_uGG6m.cjs → streamRelay-D9a4cBEa.cjs} +1 -1
- package/dist/{sync-BWX1OVQi.mjs → sync-BvDMkKAN.mjs} +1 -1
- package/dist/{sync-lxDpbIh3.cjs → sync-CoChLEIg.cjs} +1 -1
- package/dist/{systemPrompt-BIilbjt_.mjs → systemPrompt-CgDaPigN.mjs} +2 -2
- package/dist/{systemPrompt-0DqWPGY6.cjs → systemPrompt-Dy_Rf-0Z.cjs} +2 -2
- package/dist/{teams-CvpB8Rdm.mjs → teams-BC4_e5hR.mjs} +7 -7
- package/dist/{teams-CImmJLlM.cjs → teams-DPvfLAk8.cjs} +7 -7
- package/dist/{template-DPsqlHJQ.cjs → template-17HATY_Y.cjs} +1 -1
- package/dist/{template-DuKZw-Sz.mjs → template-CEK8MEjo.mjs} +1 -1
- package/dist/{time-DjS5me2q.mjs → time-CUK37wiV.mjs} +1 -1
- package/dist/{time-BbQJi3Eh.cjs → time-XwEZxKGc.cjs} +1 -1
- package/dist/{titleGenerator-CfJme6ep.cjs → titleGenerator-DVX0NZUn.cjs} +2 -2
- package/dist/{titleGenerator-CGdBp5lQ.mjs → titleGenerator-DWRVdqMU.mjs} +1 -1
- package/dist/{todo-BxfUKwTM.mjs → todo-BNMGXneA.mjs} +6 -6
- package/dist/{todo-rN20m9lT.cjs → todo-CKGrSrRE.cjs} +6 -6
- package/dist/{tools-B_W7xJNh.mjs → tools-CCIEAVbB.mjs} +1 -1
- package/dist/{tools-kGtSjG8h.cjs → tools-CjMafO_D.cjs} +1 -1
- package/dist/{uninstall-CBQsxEmD.cjs → uninstall-BdFbTXnL.cjs} +3 -3
- package/dist/{uninstall-DUjvgLlg.mjs → uninstall-CJvJ7gjr.mjs} +3 -3
- package/package.json +7 -7
- package/dist/selfCheck-DIGghfQz.mjs +0 -86
|
@@ -1,38 +1,39 @@
|
|
|
1
|
-
import { r as resolveSpawnPermissionMode, c as chooseProject, j as joinProject, a as resolveFirstMessageMeta, s as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES, S as SPAWN_AGENTS } from './spawnAgents-
|
|
2
|
-
import { s as sharedProjectsClient } from './client-
|
|
1
|
+
import { r as resolveSpawnPermissionMode, c as chooseProject, j as joinProject, a as resolveFirstMessageMeta, w as waitsForModelCatalog, s as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES, S as SPAWN_AGENTS } from './spawnAgents-Bh1RPShN.mjs';
|
|
2
|
+
import { s as sharedProjectsClient } from './client-B161HwAk.mjs';
|
|
3
3
|
import chalk from 'chalk';
|
|
4
4
|
import { readFileSync, statSync } from 'node:fs';
|
|
5
5
|
import { resolve } from 'node:path';
|
|
6
|
-
import {
|
|
7
|
-
import { c as readPersistedSessions } from './persistence-
|
|
6
|
+
import { b as checkIfDaemonRunningAndCleanupStaleState, g as spawnDaemonSession, f as stopDaemonSession } from './controlClient-DwNnNAUx.mjs';
|
|
7
|
+
import { c as readPersistedSessions } from './persistence-0INrP3aB.mjs';
|
|
8
|
+
import { p as parseLatestModelTable } from './index-WKyN-bNy.mjs';
|
|
9
|
+
import { c as configuration } from './configuration-1FabKklB.mjs';
|
|
8
10
|
import { g as getProjectPath } from './path-D2wdaNSk.mjs';
|
|
9
|
-
import { f as forkSession, F as ForkSourceMissingError } from './claudeSessionFork-
|
|
10
|
-
import { C as CodexAppServerClient } from './codexAppServerClient-
|
|
11
|
+
import { f as forkSession, F as ForkSourceMissingError } from './claudeSessionFork-DzecSBO4.mjs';
|
|
12
|
+
import { C as CodexAppServerClient } from './codexAppServerClient-BlVmpjR-.mjs';
|
|
11
13
|
import { f as forkCodexThread } from './codexThreadFork-R76RU5H0.mjs';
|
|
12
|
-
import { e as sendUserMessage, f as readSessionMetadata, g as waitForSessionKey, s as sessionWebUrl } from './sessionOps-
|
|
13
|
-
import { i as isValidSpawnOrigin } from './createSessionMetadata-
|
|
14
|
-
import { l as logger } from './logger-
|
|
14
|
+
import { e as sendUserMessage, f as readSessionMetadata, g as waitForSessionKey, s as sessionWebUrl } from './sessionOps-CljctDs5.mjs';
|
|
15
|
+
import { i as isValidSpawnOrigin } from './createSessionMetadata-CG6Klinp.mjs';
|
|
16
|
+
import { l as logger } from './logger-DOKH3Zbh.mjs';
|
|
15
17
|
import { w as waitForForkBackfill } from './forkBackfill-DYIjlN1Z.mjs';
|
|
16
|
-
import './index-B9f1vKcC.mjs';
|
|
17
|
-
import 'zod';
|
|
18
|
-
import '@paralleldrive/cuid2';
|
|
19
|
-
import './configuration-8EAa2X9P.mjs';
|
|
20
|
-
import 'node:os';
|
|
21
|
-
import './package-BMBwnCn3.mjs';
|
|
22
18
|
import 'node:fs/promises';
|
|
19
|
+
import 'zod';
|
|
23
20
|
import './authRelay-DhQhkBvX.mjs';
|
|
24
21
|
import 'node:crypto';
|
|
25
22
|
import 'tweetnacl';
|
|
23
|
+
import '@paralleldrive/cuid2';
|
|
24
|
+
import 'node:os';
|
|
25
|
+
import './package-DTcaIhjW.mjs';
|
|
26
26
|
import 'node:readline';
|
|
27
27
|
import 'node:child_process';
|
|
28
28
|
import 'cross-spawn';
|
|
29
29
|
import './contentLogMetadata-BlWI0egu.mjs';
|
|
30
30
|
import './manager-BEsI4qt3.mjs';
|
|
31
31
|
import '@anthropic-ai/sandbox-runtime';
|
|
32
|
-
import './rateLimitWindows-
|
|
32
|
+
import './rateLimitWindows-5vIuNjko.mjs';
|
|
33
33
|
import './processTree-CP5IvQ2Z.mjs';
|
|
34
34
|
import 'axios';
|
|
35
|
-
import './time-
|
|
35
|
+
import './time-CUK37wiV.mjs';
|
|
36
|
+
import './specialCommands-MXUN0wfI.mjs';
|
|
36
37
|
import 'socket.io-client';
|
|
37
38
|
import './backgroundTaskActivity-8PdPxrvy.mjs';
|
|
38
39
|
import './projectPath-BTBIMB57.mjs';
|
|
@@ -40,6 +41,24 @@ import 'path';
|
|
|
40
41
|
import 'url';
|
|
41
42
|
import 'node:util';
|
|
42
43
|
|
|
44
|
+
async function fetchLatestModelTable(serverUrl, fetcher = fetch, timeoutMs = 2e3) {
|
|
45
|
+
const controller = new AbortController();
|
|
46
|
+
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
47
|
+
try {
|
|
48
|
+
const response = await fetcher(`${serverUrl}/v1/models/latest`, {
|
|
49
|
+
signal: controller.signal,
|
|
50
|
+
headers: { accept: "application/json" }
|
|
51
|
+
});
|
|
52
|
+
if (!response.ok) return null;
|
|
53
|
+
const body = await response.json();
|
|
54
|
+
return parseLatestModelTable(body?.table);
|
|
55
|
+
} catch {
|
|
56
|
+
return null;
|
|
57
|
+
} finally {
|
|
58
|
+
clearTimeout(timeout);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
43
62
|
function nonEmpty(value) {
|
|
44
63
|
return typeof value === "string" && value.trim().length > 0;
|
|
45
64
|
}
|
|
@@ -185,8 +204,8 @@ ${chalk.bold("Options:")}
|
|
|
185
204
|
1-24 chars: [a-z0-9] plus - or _. Shows as a chip in
|
|
186
205
|
the web list and is searchable as #<name>.
|
|
187
206
|
--permission-mode <m> Permission mode for the new session: default,
|
|
188
|
-
acceptEdits, plan, yolo, bypassPermissions
|
|
189
|
-
Default = the web launcher's: yolo for claude /
|
|
207
|
+
acceptEdits, plan, yolo, bypassPermissions (Codex
|
|
208
|
+
also read-only, safe-yolo). Default = the web launcher's: yolo for claude /
|
|
190
209
|
codex / pi, 'default' for gemini / openclaw. A fork
|
|
191
210
|
keeps its source's mode. 'default' stops at the first
|
|
192
211
|
un-allowlisted tool until someone approves it (see
|
|
@@ -194,10 +213,11 @@ ${chalk.bold("Options:")}
|
|
|
194
213
|
--agent <name> Backend to run: claude (default), codex, gemini,
|
|
195
214
|
openclaw, pi (needs pi-acp on the daemon's PATH).
|
|
196
215
|
--model, -m <id> Model for the session, sent with the first message
|
|
197
|
-
(needs --prompt). Default = the web launcher's
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
216
|
+
(needs --prompt). Default = the web launcher's
|
|
217
|
+
'latest': the newest model of the agent's tier this
|
|
218
|
+
machine runs (claude: newest Opus; codex: newest
|
|
219
|
+
sol its Codex lists; gemini: newest pro), else the
|
|
220
|
+
machine default. 'default' = the machine default.
|
|
201
221
|
--fork <sessionId> Fork an existing session of THIS machine (same as the
|
|
202
222
|
web's fork): copies its conversation and continues
|
|
203
223
|
it in a new session, in the same directory and with
|
|
@@ -236,6 +256,23 @@ const defaultFirstMessageDeps = {
|
|
|
236
256
|
sendUserMessage,
|
|
237
257
|
warn: (message) => console.error(chalk.yellow("Warning:"), message)
|
|
238
258
|
};
|
|
259
|
+
async function waitForModelCatalog(readMetadata, initial, knobs = {}) {
|
|
260
|
+
const timeoutMs = knobs.timeoutMs ?? 8e3;
|
|
261
|
+
const pollMs = knobs.pollMs ?? 400;
|
|
262
|
+
const sleep = knobs.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
|
|
263
|
+
const now = knobs.now ?? Date.now;
|
|
264
|
+
let current = initial;
|
|
265
|
+
const deadline = now() + timeoutMs;
|
|
266
|
+
while (!(current?.models && current.models.length > 0) && current?.configuredModel === void 0 && now() < deadline) {
|
|
267
|
+
await sleep(pollMs);
|
|
268
|
+
try {
|
|
269
|
+
const read = await readMetadata();
|
|
270
|
+
if (read) current = read;
|
|
271
|
+
} catch {
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return current;
|
|
275
|
+
}
|
|
239
276
|
async function sendFirstMessage(sessionId, text, metaFor, opts, deps = defaultFirstMessageDeps) {
|
|
240
277
|
const persisted = await deps.waitForSessionKey(sessionId, 15e3);
|
|
241
278
|
if (opts.fork) {
|
|
@@ -248,7 +285,8 @@ async function sendFirstMessage(sessionId, text, metaFor, opts, deps = defaultFi
|
|
|
248
285
|
deps.warn?.("the forked session runs an older wrapper that cannot confirm its replayed history is uploaded; sending now, so the first message may appear inside that history. Restart the daemon on this CLI version to fix.");
|
|
249
286
|
}
|
|
250
287
|
}
|
|
251
|
-
const
|
|
288
|
+
const metadata = opts.waitForCatalog ? await waitForModelCatalog(() => deps.readSessionMetadata(sessionId, persisted), persisted.metadata, deps.catalogWait) : persisted.metadata;
|
|
289
|
+
const meta = metaFor(metadata);
|
|
252
290
|
await deps.sendUserMessage(sessionId, persisted, text, "cli-spawn", meta);
|
|
253
291
|
return meta;
|
|
254
292
|
}
|
|
@@ -369,12 +407,16 @@ async function handleSpawnCommand(args) {
|
|
|
369
407
|
let sentMeta = null;
|
|
370
408
|
if (prompt !== void 0) {
|
|
371
409
|
try {
|
|
372
|
-
|
|
410
|
+
const latestTable = await fetchLatestModelTable(configuration.serverUrl);
|
|
411
|
+
sentMeta = await sendFirstMessage(sessionId, prompt, (metadata) => resolveFirstMessageMeta({
|
|
373
412
|
agent,
|
|
374
413
|
permissionMode,
|
|
375
414
|
explicitModel: options.model,
|
|
376
|
-
capabilities
|
|
377
|
-
|
|
415
|
+
capabilities: metadata?.capabilities ?? null,
|
|
416
|
+
catalog: metadata?.models ?? null,
|
|
417
|
+
configuredModel: metadata?.configuredModel,
|
|
418
|
+
latestTable
|
|
419
|
+
}), { fork: forkSource !== null, waitForCatalog: waitsForModelCatalog(agent, options.model) });
|
|
378
420
|
} catch (error) {
|
|
379
421
|
promptError = error instanceof Error ? error.message : String(error);
|
|
380
422
|
}
|
|
@@ -418,4 +460,4 @@ async function handleSpawnCommand(args) {
|
|
|
418
460
|
process.exit(0);
|
|
419
461
|
}
|
|
420
462
|
|
|
421
|
-
export { SPAWN_AGENTS, handleSpawnCommand, parseEnvAssignment, parseSpawnArgs, sendFirstMessage, sessionWebUrl, spawnEnvironmentVariables };
|
|
463
|
+
export { SPAWN_AGENTS, handleSpawnCommand, parseEnvAssignment, parseSpawnArgs, sendFirstMessage, sessionWebUrl, spawnEnvironmentVariables, waitForModelCatalog };
|
|
@@ -1,40 +1,41 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var spawnAgents = require('./spawnAgents-
|
|
4
|
-
var client = require('./client-
|
|
3
|
+
var spawnAgents = require('./spawnAgents-C1-4m7aN.cjs');
|
|
4
|
+
var client = require('./client-DIfxYk7B.cjs');
|
|
5
5
|
var chalk = require('chalk');
|
|
6
6
|
var node_fs = require('node:fs');
|
|
7
7
|
var path$1 = require('node:path');
|
|
8
|
-
var controlClient = require('./controlClient-
|
|
9
|
-
var persistence = require('./persistence-
|
|
8
|
+
var controlClient = require('./controlClient-F7hAEEy2.cjs');
|
|
9
|
+
var persistence = require('./persistence-CrzC7yr_.cjs');
|
|
10
|
+
var index = require('./index-BOe6dKnL.cjs');
|
|
11
|
+
var configuration = require('./configuration-C0ctLGW2.cjs');
|
|
10
12
|
var path = require('./path-B7zW-WwE.cjs');
|
|
11
|
-
var claudeSessionFork = require('./claudeSessionFork-
|
|
12
|
-
var codexAppServerClient = require('./codexAppServerClient-
|
|
13
|
+
var claudeSessionFork = require('./claudeSessionFork-DsbcuDEJ.cjs');
|
|
14
|
+
var codexAppServerClient = require('./codexAppServerClient-CO9f4Jr8.cjs');
|
|
13
15
|
var codexThreadFork = require('./codexThreadFork-DNekT4nQ.cjs');
|
|
14
|
-
var sessionOps = require('./sessionOps-
|
|
15
|
-
var createSessionMetadata = require('./createSessionMetadata-
|
|
16
|
-
var logger = require('./logger-
|
|
16
|
+
var sessionOps = require('./sessionOps-BzeOKIEF.cjs');
|
|
17
|
+
var createSessionMetadata = require('./createSessionMetadata-DezS33OM.cjs');
|
|
18
|
+
var logger = require('./logger-BP1SW7Cs.cjs');
|
|
17
19
|
var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
|
|
18
|
-
require('./index-BumVulwx.cjs');
|
|
19
|
-
require('zod');
|
|
20
|
-
require('@paralleldrive/cuid2');
|
|
21
|
-
require('./configuration-CAfdO4IC.cjs');
|
|
22
|
-
require('node:os');
|
|
23
|
-
require('./package-Bbfq2KR7.cjs');
|
|
24
20
|
require('node:fs/promises');
|
|
21
|
+
require('zod');
|
|
25
22
|
require('./authRelay-Dy1qU9td.cjs');
|
|
26
23
|
require('node:crypto');
|
|
27
24
|
require('tweetnacl');
|
|
25
|
+
require('@paralleldrive/cuid2');
|
|
26
|
+
require('node:os');
|
|
27
|
+
require('./package-CYDdLA6R.cjs');
|
|
28
28
|
require('node:readline');
|
|
29
29
|
require('node:child_process');
|
|
30
30
|
require('cross-spawn');
|
|
31
31
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
32
32
|
require('./manager-HrEj442o.cjs');
|
|
33
33
|
require('@anthropic-ai/sandbox-runtime');
|
|
34
|
-
require('./rateLimitWindows-
|
|
34
|
+
require('./rateLimitWindows-Cs56YJCH.cjs');
|
|
35
35
|
require('./processTree-CMHWlVse.cjs');
|
|
36
36
|
require('axios');
|
|
37
|
-
require('./time-
|
|
37
|
+
require('./time-XwEZxKGc.cjs');
|
|
38
|
+
require('./specialCommands-J3JFOq0J.cjs');
|
|
38
39
|
require('socket.io-client');
|
|
39
40
|
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
40
41
|
require('./projectPath-C3ioB4Bu.cjs');
|
|
@@ -42,6 +43,24 @@ require('path');
|
|
|
42
43
|
require('url');
|
|
43
44
|
require('node:util');
|
|
44
45
|
|
|
46
|
+
async function fetchLatestModelTable(serverUrl, fetcher = fetch, timeoutMs = 2e3) {
|
|
47
|
+
const controller = new AbortController();
|
|
48
|
+
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
49
|
+
try {
|
|
50
|
+
const response = await fetcher(`${serverUrl}/v1/models/latest`, {
|
|
51
|
+
signal: controller.signal,
|
|
52
|
+
headers: { accept: "application/json" }
|
|
53
|
+
});
|
|
54
|
+
if (!response.ok) return null;
|
|
55
|
+
const body = await response.json();
|
|
56
|
+
return index.parseLatestModelTable(body?.table);
|
|
57
|
+
} catch {
|
|
58
|
+
return null;
|
|
59
|
+
} finally {
|
|
60
|
+
clearTimeout(timeout);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
45
64
|
function nonEmpty(value) {
|
|
46
65
|
return typeof value === "string" && value.trim().length > 0;
|
|
47
66
|
}
|
|
@@ -187,8 +206,8 @@ ${chalk.bold("Options:")}
|
|
|
187
206
|
1-24 chars: [a-z0-9] plus - or _. Shows as a chip in
|
|
188
207
|
the web list and is searchable as #<name>.
|
|
189
208
|
--permission-mode <m> Permission mode for the new session: default,
|
|
190
|
-
acceptEdits, plan, yolo, bypassPermissions
|
|
191
|
-
Default = the web launcher's: yolo for claude /
|
|
209
|
+
acceptEdits, plan, yolo, bypassPermissions (Codex
|
|
210
|
+
also read-only, safe-yolo). Default = the web launcher's: yolo for claude /
|
|
192
211
|
codex / pi, 'default' for gemini / openclaw. A fork
|
|
193
212
|
keeps its source's mode. 'default' stops at the first
|
|
194
213
|
un-allowlisted tool until someone approves it (see
|
|
@@ -196,10 +215,11 @@ ${chalk.bold("Options:")}
|
|
|
196
215
|
--agent <name> Backend to run: claude (default), codex, gemini,
|
|
197
216
|
openclaw, pi (needs pi-acp on the daemon's PATH).
|
|
198
217
|
--model, -m <id> Model for the session, sent with the first message
|
|
199
|
-
(needs --prompt). Default = the web launcher's
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
218
|
+
(needs --prompt). Default = the web launcher's
|
|
219
|
+
'latest': the newest model of the agent's tier this
|
|
220
|
+
machine runs (claude: newest Opus; codex: newest
|
|
221
|
+
sol its Codex lists; gemini: newest pro), else the
|
|
222
|
+
machine default. 'default' = the machine default.
|
|
203
223
|
--fork <sessionId> Fork an existing session of THIS machine (same as the
|
|
204
224
|
web's fork): copies its conversation and continues
|
|
205
225
|
it in a new session, in the same directory and with
|
|
@@ -238,6 +258,23 @@ const defaultFirstMessageDeps = {
|
|
|
238
258
|
sendUserMessage: sessionOps.sendUserMessage,
|
|
239
259
|
warn: (message) => console.error(chalk.yellow("Warning:"), message)
|
|
240
260
|
};
|
|
261
|
+
async function waitForModelCatalog(readMetadata, initial, knobs = {}) {
|
|
262
|
+
const timeoutMs = knobs.timeoutMs ?? 8e3;
|
|
263
|
+
const pollMs = knobs.pollMs ?? 400;
|
|
264
|
+
const sleep = knobs.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
|
|
265
|
+
const now = knobs.now ?? Date.now;
|
|
266
|
+
let current = initial;
|
|
267
|
+
const deadline = now() + timeoutMs;
|
|
268
|
+
while (!(current?.models && current.models.length > 0) && current?.configuredModel === void 0 && now() < deadline) {
|
|
269
|
+
await sleep(pollMs);
|
|
270
|
+
try {
|
|
271
|
+
const read = await readMetadata();
|
|
272
|
+
if (read) current = read;
|
|
273
|
+
} catch {
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
return current;
|
|
277
|
+
}
|
|
241
278
|
async function sendFirstMessage(sessionId, text, metaFor, opts, deps = defaultFirstMessageDeps) {
|
|
242
279
|
const persisted = await deps.waitForSessionKey(sessionId, 15e3);
|
|
243
280
|
if (opts.fork) {
|
|
@@ -250,7 +287,8 @@ async function sendFirstMessage(sessionId, text, metaFor, opts, deps = defaultFi
|
|
|
250
287
|
deps.warn?.("the forked session runs an older wrapper that cannot confirm its replayed history is uploaded; sending now, so the first message may appear inside that history. Restart the daemon on this CLI version to fix.");
|
|
251
288
|
}
|
|
252
289
|
}
|
|
253
|
-
const
|
|
290
|
+
const metadata = opts.waitForCatalog ? await waitForModelCatalog(() => deps.readSessionMetadata(sessionId, persisted), persisted.metadata, deps.catalogWait) : persisted.metadata;
|
|
291
|
+
const meta = metaFor(metadata);
|
|
254
292
|
await deps.sendUserMessage(sessionId, persisted, text, "cli-spawn", meta);
|
|
255
293
|
return meta;
|
|
256
294
|
}
|
|
@@ -371,12 +409,16 @@ async function handleSpawnCommand(args) {
|
|
|
371
409
|
let sentMeta = null;
|
|
372
410
|
if (prompt !== void 0) {
|
|
373
411
|
try {
|
|
374
|
-
|
|
412
|
+
const latestTable = await fetchLatestModelTable(configuration.configuration.serverUrl);
|
|
413
|
+
sentMeta = await sendFirstMessage(sessionId, prompt, (metadata) => spawnAgents.resolveFirstMessageMeta({
|
|
375
414
|
agent,
|
|
376
415
|
permissionMode,
|
|
377
416
|
explicitModel: options.model,
|
|
378
|
-
capabilities
|
|
379
|
-
|
|
417
|
+
capabilities: metadata?.capabilities ?? null,
|
|
418
|
+
catalog: metadata?.models ?? null,
|
|
419
|
+
configuredModel: metadata?.configuredModel,
|
|
420
|
+
latestTable
|
|
421
|
+
}), { fork: forkSource !== null, waitForCatalog: spawnAgents.waitsForModelCatalog(agent, options.model) });
|
|
380
422
|
} catch (error) {
|
|
381
423
|
promptError = error instanceof Error ? error.message : String(error);
|
|
382
424
|
}
|
|
@@ -427,3 +469,4 @@ exports.parseEnvAssignment = parseEnvAssignment;
|
|
|
427
469
|
exports.parseSpawnArgs = parseSpawnArgs;
|
|
428
470
|
exports.sendFirstMessage = sendFirstMessage;
|
|
429
471
|
exports.spawnEnvironmentVariables = spawnEnvironmentVariables;
|
|
472
|
+
exports.waitForModelCatalog = waitForModelCatalog;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { k as getAgentCodeDefaults,
|
|
1
|
+
import { k as getAgentCodeDefaults, l as isLatestModelMode, m as resolveLatestModel, n as normalizeAgentKey } from './index-WKyN-bNy.mjs';
|
|
2
2
|
|
|
3
3
|
function chooseProject(opts) {
|
|
4
4
|
if (opts.project) return { kind: "explicit", projectId: opts.project };
|
|
@@ -46,25 +46,38 @@ function resolveFirstMessageMeta(input) {
|
|
|
46
46
|
const meta = {
|
|
47
47
|
permissionMode: outboundPermissionMode(input.agent, input.permissionMode)
|
|
48
48
|
};
|
|
49
|
-
|
|
49
|
+
const key = normalizeAgentKey(input.agent ?? "claude");
|
|
50
|
+
const wanted = input.explicitModel ?? getAgentCodeDefaults(key).modelMode;
|
|
51
|
+
if (isLatestModelMode(wanted)) {
|
|
52
|
+
const resolved = resolveLatestModel(input.latestTable, key, {
|
|
53
|
+
capabilities: input.capabilities ?? null,
|
|
54
|
+
catalog: input.catalog ?? null,
|
|
55
|
+
configuredModel: input.configuredModel
|
|
56
|
+
}).model;
|
|
57
|
+
if (resolved) meta.model = resolved;
|
|
58
|
+
else if (key === "claude" || input.explicitModel !== void 0) meta.model = null;
|
|
59
|
+
} else if (input.explicitModel !== void 0) {
|
|
50
60
|
meta.model = input.explicitModel === "default" ? null : input.explicitModel;
|
|
61
|
+
} else if (key === "claude") {
|
|
62
|
+
meta.model = wanted === "default" ? null : wanted;
|
|
51
63
|
}
|
|
52
|
-
if (
|
|
53
|
-
if (meta.model === void 0) {
|
|
54
|
-
const model = getAgentCodeDefaults("claude").modelMode;
|
|
55
|
-
const runnable = !isClaudeOpus55Model(model) || supportsClaudeOpus55({ capabilities: input.capabilities ?? null });
|
|
56
|
-
meta.model = runnable && model !== "default" ? model : null;
|
|
57
|
-
}
|
|
58
|
-
meta.effort = null;
|
|
64
|
+
if (key === "claude") meta.effort = null;
|
|
59
65
|
return meta;
|
|
60
66
|
}
|
|
67
|
+
function waitsForModelCatalog(agent, explicitModel) {
|
|
68
|
+
const key = normalizeAgentKey(agent ?? "claude");
|
|
69
|
+
if (key !== "codex" && key !== "gemini") return false;
|
|
70
|
+
return isLatestModelMode(explicitModel ?? getAgentCodeDefaults(key).modelMode);
|
|
71
|
+
}
|
|
61
72
|
|
|
62
73
|
const ALLOWED_SPAWN_PERMISSION_MODES = [
|
|
63
74
|
"default",
|
|
64
75
|
"acceptEdits",
|
|
65
76
|
"plan",
|
|
66
77
|
"yolo",
|
|
67
|
-
"bypassPermissions"
|
|
78
|
+
"bypassPermissions",
|
|
79
|
+
"read-only",
|
|
80
|
+
"safe-yolo"
|
|
68
81
|
];
|
|
69
82
|
function sanitizeSpawnPermissionMode(value) {
|
|
70
83
|
if (typeof value !== "string") return null;
|
|
@@ -76,4 +89,4 @@ function isSpawnAgent(value) {
|
|
|
76
89
|
return typeof value === "string" && SPAWN_AGENTS.includes(value);
|
|
77
90
|
}
|
|
78
91
|
|
|
79
|
-
export { ALLOWED_SPAWN_PERMISSION_MODES as A, SPAWN_AGENTS as S, resolveFirstMessageMeta as a, chooseProject as c, isSpawnAgent as i, joinProject as j, resolveSpawnPermissionMode as r, sanitizeSpawnPermissionMode as s };
|
|
92
|
+
export { ALLOWED_SPAWN_PERMISSION_MODES as A, SPAWN_AGENTS as S, resolveFirstMessageMeta as a, chooseProject as c, isSpawnAgent as i, joinProject as j, resolveSpawnPermissionMode as r, sanitizeSpawnPermissionMode as s, waitsForModelCatalog as w };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-BOe6dKnL.cjs');
|
|
4
4
|
|
|
5
5
|
function chooseProject(opts) {
|
|
6
6
|
if (opts.project) return { kind: "explicit", projectId: opts.project };
|
|
@@ -48,25 +48,38 @@ function resolveFirstMessageMeta(input) {
|
|
|
48
48
|
const meta = {
|
|
49
49
|
permissionMode: outboundPermissionMode(input.agent, input.permissionMode)
|
|
50
50
|
};
|
|
51
|
-
|
|
51
|
+
const key = index.normalizeAgentKey(input.agent ?? "claude");
|
|
52
|
+
const wanted = input.explicitModel ?? index.getAgentCodeDefaults(key).modelMode;
|
|
53
|
+
if (index.isLatestModelMode(wanted)) {
|
|
54
|
+
const resolved = index.resolveLatestModel(input.latestTable, key, {
|
|
55
|
+
capabilities: input.capabilities ?? null,
|
|
56
|
+
catalog: input.catalog ?? null,
|
|
57
|
+
configuredModel: input.configuredModel
|
|
58
|
+
}).model;
|
|
59
|
+
if (resolved) meta.model = resolved;
|
|
60
|
+
else if (key === "claude" || input.explicitModel !== void 0) meta.model = null;
|
|
61
|
+
} else if (input.explicitModel !== void 0) {
|
|
52
62
|
meta.model = input.explicitModel === "default" ? null : input.explicitModel;
|
|
63
|
+
} else if (key === "claude") {
|
|
64
|
+
meta.model = wanted === "default" ? null : wanted;
|
|
53
65
|
}
|
|
54
|
-
if (
|
|
55
|
-
if (meta.model === void 0) {
|
|
56
|
-
const model = index.getAgentCodeDefaults("claude").modelMode;
|
|
57
|
-
const runnable = !index.isClaudeOpus55Model(model) || index.supportsClaudeOpus55({ capabilities: input.capabilities ?? null });
|
|
58
|
-
meta.model = runnable && model !== "default" ? model : null;
|
|
59
|
-
}
|
|
60
|
-
meta.effort = null;
|
|
66
|
+
if (key === "claude") meta.effort = null;
|
|
61
67
|
return meta;
|
|
62
68
|
}
|
|
69
|
+
function waitsForModelCatalog(agent, explicitModel) {
|
|
70
|
+
const key = index.normalizeAgentKey(agent ?? "claude");
|
|
71
|
+
if (key !== "codex" && key !== "gemini") return false;
|
|
72
|
+
return index.isLatestModelMode(explicitModel ?? index.getAgentCodeDefaults(key).modelMode);
|
|
73
|
+
}
|
|
63
74
|
|
|
64
75
|
const ALLOWED_SPAWN_PERMISSION_MODES = [
|
|
65
76
|
"default",
|
|
66
77
|
"acceptEdits",
|
|
67
78
|
"plan",
|
|
68
79
|
"yolo",
|
|
69
|
-
"bypassPermissions"
|
|
80
|
+
"bypassPermissions",
|
|
81
|
+
"read-only",
|
|
82
|
+
"safe-yolo"
|
|
70
83
|
];
|
|
71
84
|
function sanitizeSpawnPermissionMode(value) {
|
|
72
85
|
if (typeof value !== "string") return null;
|
|
@@ -86,3 +99,4 @@ exports.joinProject = joinProject;
|
|
|
86
99
|
exports.resolveFirstMessageMeta = resolveFirstMessageMeta;
|
|
87
100
|
exports.resolveSpawnPermissionMode = resolveSpawnPermissionMode;
|
|
88
101
|
exports.sanitizeSpawnPermissionMode = sanitizeSpawnPermissionMode;
|
|
102
|
+
exports.waitsForModelCatalog = waitsForModelCatalog;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { spawn } from 'cross-spawn';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
4
|
-
import { l as logger } from './logger-
|
|
4
|
+
import { l as logger } from './logger-DOKH3Zbh.mjs';
|
|
5
5
|
import { existsSync } from 'node:fs';
|
|
6
6
|
|
|
7
7
|
let cachedRuntime = null;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var spawn = require('cross-spawn');
|
|
4
4
|
var path = require('node:path');
|
|
5
5
|
var projectPath = require('./projectPath-C3ioB4Bu.cjs');
|
|
6
|
-
var logger = require('./logger-
|
|
6
|
+
var logger = require('./logger-BP1SW7Cs.cjs');
|
|
7
7
|
var node_fs = require('node:fs');
|
|
8
8
|
|
|
9
9
|
let cachedRuntime = null;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const COMPACT_RE = /^[/\uFF0F]compact(?![A-Za-z0-9_:-])([\s\S]*)$/i;
|
|
4
|
+
const LEADING_SPACE_RE = /^[\s\u3000\uFEFF\u200B]+/;
|
|
5
|
+
function parseCompact(message) {
|
|
6
|
+
const match = message.replace(LEADING_SPACE_RE, "").match(COMPACT_RE);
|
|
7
|
+
if (!match) {
|
|
8
|
+
return {
|
|
9
|
+
isCompact: false,
|
|
10
|
+
originalMessage: message
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
const instructions = match[1].replace(/\u3000/g, " ").trim();
|
|
14
|
+
return {
|
|
15
|
+
isCompact: true,
|
|
16
|
+
originalMessage: instructions ? `/compact ${instructions}` : "/compact"
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function compactCommandText(message) {
|
|
20
|
+
const result = parseCompact(message);
|
|
21
|
+
return result.isCompact ? result.originalMessage : null;
|
|
22
|
+
}
|
|
23
|
+
function parseClear(message) {
|
|
24
|
+
const trimmed = message.trim();
|
|
25
|
+
return {
|
|
26
|
+
isClear: trimmed === "/clear"
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function parseSpecialCommand(message) {
|
|
30
|
+
const compactResult = parseCompact(message);
|
|
31
|
+
if (compactResult.isCompact) {
|
|
32
|
+
return {
|
|
33
|
+
type: "compact",
|
|
34
|
+
originalMessage: compactResult.originalMessage
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const clearResult = parseClear(message);
|
|
38
|
+
if (clearResult.isClear) {
|
|
39
|
+
return {
|
|
40
|
+
type: "clear"
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const trimmed = message.trim().toLowerCase();
|
|
44
|
+
if (trimmed === "/mcp") {
|
|
45
|
+
return { type: "mcp" };
|
|
46
|
+
}
|
|
47
|
+
if (trimmed === "/skills") {
|
|
48
|
+
return { type: "skills" };
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
type: null
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
const COMPACT_UNSUPPORTED_NOTICE = "This session type does not support /compact";
|
|
55
|
+
|
|
56
|
+
exports.COMPACT_UNSUPPORTED_NOTICE = COMPACT_UNSUPPORTED_NOTICE;
|
|
57
|
+
exports.compactCommandText = compactCommandText;
|
|
58
|
+
exports.parseClear = parseClear;
|
|
59
|
+
exports.parseCompact = parseCompact;
|
|
60
|
+
exports.parseSpecialCommand = parseSpecialCommand;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const COMPACT_RE = /^[/\uFF0F]compact(?![A-Za-z0-9_:-])([\s\S]*)$/i;
|
|
2
|
+
const LEADING_SPACE_RE = /^[\s\u3000\uFEFF\u200B]+/;
|
|
3
|
+
function parseCompact(message) {
|
|
4
|
+
const match = message.replace(LEADING_SPACE_RE, "").match(COMPACT_RE);
|
|
5
|
+
if (!match) {
|
|
6
|
+
return {
|
|
7
|
+
isCompact: false,
|
|
8
|
+
originalMessage: message
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
const instructions = match[1].replace(/\u3000/g, " ").trim();
|
|
12
|
+
return {
|
|
13
|
+
isCompact: true,
|
|
14
|
+
originalMessage: instructions ? `/compact ${instructions}` : "/compact"
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function compactCommandText(message) {
|
|
18
|
+
const result = parseCompact(message);
|
|
19
|
+
return result.isCompact ? result.originalMessage : null;
|
|
20
|
+
}
|
|
21
|
+
function parseClear(message) {
|
|
22
|
+
const trimmed = message.trim();
|
|
23
|
+
return {
|
|
24
|
+
isClear: trimmed === "/clear"
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function parseSpecialCommand(message) {
|
|
28
|
+
const compactResult = parseCompact(message);
|
|
29
|
+
if (compactResult.isCompact) {
|
|
30
|
+
return {
|
|
31
|
+
type: "compact",
|
|
32
|
+
originalMessage: compactResult.originalMessage
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
const clearResult = parseClear(message);
|
|
36
|
+
if (clearResult.isClear) {
|
|
37
|
+
return {
|
|
38
|
+
type: "clear"
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const trimmed = message.trim().toLowerCase();
|
|
42
|
+
if (trimmed === "/mcp") {
|
|
43
|
+
return { type: "mcp" };
|
|
44
|
+
}
|
|
45
|
+
if (trimmed === "/skills") {
|
|
46
|
+
return { type: "skills" };
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
type: null
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const COMPACT_UNSUPPORTED_NOTICE = "This session type does not support /compact";
|
|
53
|
+
|
|
54
|
+
export { COMPACT_UNSUPPORTED_NOTICE as C, parseSpecialCommand as a, parseCompact as b, compactCommandText as c, parseClear as p };
|