very-happy-cli 0.2.184 → 0.2.186
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-Csg7Sy2P.mjs → AcpBackend-ConXUH67.mjs} +3 -3
- package/dist/{AcpBackend-DOzn74zn.cjs → AcpBackend-aVv-_nH_.cjs} +3 -3
- package/dist/{AcpSessionManager-BRK2F2yN.mjs → AcpSessionManager-BxD1AQ8L.mjs} +2 -2
- package/dist/{AcpSessionManager-CJXDNNtq.cjs → AcpSessionManager-aRdzf_6R.cjs} +2 -2
- package/dist/{BasePermissionHandler-CfrnkG3v.cjs → BasePermissionHandler-BsOLZCNB.cjs} +1 -1
- package/dist/{BasePermissionHandler-BqYwrCra.mjs → BasePermissionHandler-Hj7Qregq.mjs} +1 -1
- package/dist/{acpSessionResume-Dz1myMbR.mjs → acpSessionResume-CKacrrHV.mjs} +1 -1
- package/dist/{acpSessionResume-DZ65DBeE.cjs → acpSessionResume-CpPNoxaW.cjs} +1 -1
- package/dist/{agentHome-B_tu3tFJ.mjs → agentHome-CawmLuWV.mjs} +4 -4
- package/dist/{agentHome-CKAXhc8P.cjs → agentHome-VS7FrFQZ.cjs} +4 -4
- package/dist/{api-BpTDU2BO.mjs → api-DUFy21Nf.mjs} +67 -17
- package/dist/{api-rw5xkzxo.cjs → api-DjqQTT16.cjs} +67 -17
- package/dist/{apiMachine-wp0hWG3F.mjs → apiMachine-B0sBCHNZ.mjs} +14 -14
- package/dist/{apiMachine-Bs1XXHKs.cjs → apiMachine-D2BrVBYu.cjs} +14 -14
- package/dist/{attachmentContent-K_Up4InS.cjs → attachmentContent-2kInPZrP.cjs} +2 -2
- package/dist/{attachmentContent-CWSSGMMo.mjs → attachmentContent-D01-pLOB.mjs} +2 -2
- package/dist/{auth-CBESCCCn.mjs → auth-B-CqTcVh.mjs} +8 -8
- package/dist/{auth-gGryJImw.cjs → auth-CImUXAjH.cjs} +5 -5
- package/dist/{auth-C4_mXYgj.cjs → auth-CujfCIv-.cjs} +8 -8
- package/dist/{auth-D6kSt2sR.mjs → auth-DP3eN2Fv.mjs} +5 -5
- package/dist/{auto-CEucVmFR.mjs → auto-D4KRQIBu.mjs} +17 -17
- package/dist/{auto-Do43AOza.cjs → auto-oWgZl7mM.cjs} +17 -17
- package/dist/{bootstrap-BPz1iX77.cjs → bootstrap-B7YvJcVK.cjs} +2 -2
- package/dist/{bootstrap-CodyCmGt.mjs → bootstrap-MFmMruyB.mjs} +2 -2
- package/dist/{browser-D9D-1eqa.cjs → browser-C19iD31j.cjs} +1 -1
- package/dist/{browser-CqMhj8Gm.mjs → browser-CfFbN1Us.mjs} +1 -1
- package/dist/{claudeLocal-Dywp8NKr.cjs → claudeLocal-C4A7-BmS.cjs} +5 -5
- package/dist/{claudeLocal-BgIRtT3Q.mjs → claudeLocal-C6wNx9qH.mjs} +5 -5
- package/dist/{claudeLocalLauncher-_TOL73g5.cjs → claudeLocalLauncher-BfCKs7Le.cjs} +10 -10
- package/dist/{claudeLocalLauncher-CaHjZ8HW.mjs → claudeLocalLauncher-DdPfufcS.mjs} +10 -10
- package/dist/{claudeSessionFork-jq-_WiAu.cjs → claudeSessionFork-B8NjdHYD.cjs} +1 -1
- package/dist/{claudeSessionFork-C9nB7fs5.mjs → claudeSessionFork-D8XT48Lf.mjs} +1 -1
- package/dist/{client-BdbVizjk.mjs → client-BfGuTBMO.mjs} +2 -2
- package/dist/{client-DwlYk8uJ.mjs → client-CKM07bJH.mjs} +4 -4
- package/dist/{client-BFDji81N.cjs → client-CMIhQ32m.cjs} +2 -2
- package/dist/{client-C49zFRkX.cjs → client-CTNxuHVc.cjs} +2 -2
- package/dist/{client-CX-_2myt.mjs → client-DAnQqPmc.mjs} +2 -2
- package/dist/{client-ByZFACEw.cjs → client-jAdkYZRf.cjs} +4 -4
- package/dist/codex/happyMcpStdioBridge.cjs +16 -16
- package/dist/codex/happyMcpStdioBridge.mjs +16 -16
- package/dist/{codexAppServerClient-CmOIqiNQ.mjs → codexAppServerClient-DhOC61k9.mjs} +3 -3
- package/dist/{codexAppServerClient-DF12ZSw1.cjs → codexAppServerClient-Dv1Mh3MS.cjs} +3 -3
- package/dist/{codexCommand-H-ObWTtx.cjs → codexCommand-CWrFt3Ne.cjs} +42 -42
- package/dist/{codexCommand-BN05uEyv.mjs → codexCommand-D3_i93Rm.mjs} +42 -42
- package/dist/{codexTermination-Byohgj8h.mjs → codexTermination-B08GgahL.mjs} +1 -1
- package/dist/{codexTermination-RwKa8pKk.cjs → codexTermination-DErS0cGt.cjs} +1 -1
- package/dist/{config-ChHLh-hf.mjs → config-D3OBduhj.mjs} +3 -3
- package/dist/{config-D_wNqwxX.cjs → config-D_aj3xgw.cjs} +3 -3
- package/dist/{configuration-C9Sx-Foo.cjs → configuration-CI0GWwaT.cjs} +1 -1
- package/dist/{configuration-CVgUe2qN.mjs → configuration-DbCHeEeP.mjs} +1 -1
- package/dist/{connect-B61xJDRq.cjs → connect-839tEkPN.cjs} +13 -13
- package/dist/{connect-DJEQjS7C.mjs → connect-BuwVpjkZ.mjs} +13 -13
- package/dist/{context-CDPfhHTo.mjs → context-D2Y_qLs0.mjs} +1 -1
- package/dist/{context-Bf3BG7w8.cjs → context-zhirgqSw.cjs} +1 -1
- package/dist/{controlClient-BLO1_pPx.cjs → controlClient-BIi1tzEo.cjs} +3 -3
- package/dist/{controlClient-DMCxtwq2.mjs → controlClient-Dv80mB_j.mjs} +3 -3
- package/dist/{createSessionMetadata-5Mde6Dfh.cjs → createSessionMetadata-DT24NjY2.cjs} +2 -2
- package/dist/{createSessionMetadata-BYroCdrU.mjs → createSessionMetadata-Dqy_DfoF.mjs} +2 -2
- package/dist/{daemonSupervisor-DfzrtNhM.mjs → daemonSupervisor-BxohggqN.mjs} +40 -1
- package/dist/{daemonSupervisor-57JYYzMf.cjs → daemonSupervisor-alqGPANc.cjs} +43 -1
- package/dist/{defaultPermissionMode-B7mjHQKp.cjs → defaultPermissionMode-BYqJbPhc.cjs} +2 -2
- package/dist/{defaultPermissionMode-CTdxUV_3.mjs → defaultPermissionMode-yR27mevc.mjs} +2 -2
- package/dist/{deterministicJson-C3QXOc1N.mjs → deterministicJson-COiJcmUR.mjs} +13 -13
- package/dist/{deterministicJson-C1Z9MlDX.cjs → deterministicJson-CoWlyn_X.cjs} +13 -13
- package/dist/{doctor-DRdV3thy.cjs → doctor-DI6aIOne.cjs} +7 -7
- package/dist/{doctor-OwNmTpYh.mjs → doctor-Ymj096qP.mjs} +7 -7
- package/dist/{downloadTarget-Di5bf7r0.cjs → downloadTarget-BOXHrxbm.cjs} +6 -6
- package/dist/{downloadTarget-CNtQ8rhV.mjs → downloadTarget-DRXCRDub.mjs} +6 -6
- package/dist/{ensureDaemonRunning-CMY--T9Q.cjs → ensureDaemonRunning-BqNjYnar.cjs} +5 -5
- package/dist/{ensureDaemonRunning-IRV-w0wH.mjs → ensureDaemonRunning-DTrrXAdz.mjs} +5 -5
- package/dist/{handleResumeCommand-z7wY7QVM.cjs → handleResumeCommand-BBKUGhCv.cjs} +5 -5
- package/dist/{handleResumeCommand-BO00SYjG.mjs → handleResumeCommand-DW_MRgtz.mjs} +5 -5
- package/dist/{index-C7zgeuLP.mjs → index-04pYyzsJ.mjs} +4 -4
- package/dist/{index-DisBaRvM.mjs → index-B9f1vKcC.mjs} +96 -0
- package/dist/{index-BsoUsrKS.cjs → index-Bq6VHNdk.cjs} +4 -4
- package/dist/{index-Ub-5xbcU.cjs → index-BumVulwx.cjs} +96 -0
- package/dist/{index-wYJu2yGc.cjs → index-CY573fnz.cjs} +4 -4
- package/dist/{index-DZvi6_tB.mjs → index-CmlAXizv.mjs} +4 -4
- package/dist/{index-CVUiytNq.mjs → index-Cyu_8WAd.mjs} +3 -3
- package/dist/{index-B4cyX2by.cjs → index-D9lJhXUk.cjs} +39 -39
- package/dist/{index-NhmqjrGv.cjs → index-W8wlfp57.cjs} +3 -3
- package/dist/{index-_LfuIz-O.mjs → index-WW17yjQO.mjs} +40 -40
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-CGYDeYes.cjs → install-C1y_g7kj.cjs} +3 -3
- package/dist/{install-DeUM6h8X.mjs → install-C5XCDwgD.mjs} +3 -3
- package/dist/lib.cjs +12 -12
- package/dist/lib.d.cts +11 -0
- package/dist/lib.d.mts +11 -0
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-C4YgPn6y.cjs → lidState-BxHu6dus.cjs} +1 -1
- package/dist/{lidState-CBjQEwTt.mjs → lidState-CZ1ggYiB.mjs} +1 -1
- package/dist/{localHappyAgentAuth-BzCuIkzi.cjs → localHappyAgentAuth-BHklNDKQ.cjs} +1 -1
- package/dist/{localHappyAgentAuth-CcWGU_lS.mjs → localHappyAgentAuth-OJk4xDwg.mjs} +1 -1
- package/dist/{logger-D2qd0mMg.mjs → logger-CpaeM90D.mjs} +2 -2
- package/dist/{logger-CrtT0opS.cjs → logger-L0pLBOLK.cjs} +2 -2
- package/dist/{machineMetadata-D1hlm_oF.cjs → machineMetadata-YeHF4gSY.cjs} +3 -3
- package/dist/{machineMetadata-B2czDiTd.mjs → machineMetadata-ukaYmmlK.mjs} +3 -3
- package/dist/{main-BWgWN5d1.cjs → main-VyiAJXfb.cjs} +47 -47
- package/dist/{main-BNYWELul.mjs → main-pkH_VRP-.mjs} +47 -47
- package/dist/{mcp-ColtiH23.mjs → mcp-BwoAhEnN.mjs} +15 -15
- package/dist/{mcp-C18unjs1.cjs → mcp-Y8Xsr2Xh.cjs} +15 -15
- package/dist/{mirrorProtocol-D4CR5I5W.cjs → mirrorProtocol-Did0-1jn.cjs} +3 -3
- package/dist/{mirrorProtocol-DTHWtAE5.mjs → mirrorProtocol-DukUp2Bj.mjs} +3 -3
- package/dist/{package-DczR1k0c.cjs → package-BuATIMpK.cjs} +7 -7
- package/dist/{package-Ek5FOyEo.mjs → package-DagIeOhi.mjs} +7 -7
- package/dist/{panels-BIQ7FrCB.mjs → panels-C3dUoUbA.mjs} +5 -5
- package/dist/{panels-DYSMHhdb.cjs → panels-CZ_CRUbM.cjs} +5 -5
- package/dist/{peerTools-CABQ6iKd.mjs → peerTools-CUCqJ83-.mjs} +5 -5
- package/dist/{peerTools-Cufh4Qp_.cjs → peerTools-Cs3Ln6d0.cjs} +5 -5
- package/dist/{persistence-IYH6bAXY.cjs → persistence-CIzOAWK6.cjs} +2 -2
- package/dist/{persistence-DFtgQvr6.mjs → persistence-FgtDuVAP.mjs} +2 -2
- package/dist/{piRunnerArgs-Dgjmj8KL.cjs → piRunnerArgs-CJhXFPM9.cjs} +1 -1
- package/dist/{piRunnerArgs-CIWprC1S.mjs → piRunnerArgs-YbYkfixz.mjs} +1 -1
- package/dist/{piRuntime-C_nX977w.cjs → piRuntime-CEzoAYHe.cjs} +1 -1
- package/dist/{piRuntime-K6o4GPZ9.mjs → piRuntime-CShuw-1A.mjs} +1 -1
- package/dist/{piTerminal-CRl0EZc3.mjs → piTerminal-BvvcgVoW.mjs} +17 -17
- package/dist/{piTerminal-CYhcmkyi.cjs → piTerminal-DVr2W6bI.cjs} +17 -17
- package/dist/{pushNotifications-gVJWGFBP.mjs → pushNotifications-2CyhYAte.mjs} +3 -3
- package/dist/{pushNotifications-BgQ_QTgS.cjs → pushNotifications-OtQY-Mfa.cjs} +3 -3
- package/dist/{query-CGp9vY4e.mjs → query-B7DvMlYM.mjs} +1 -1
- package/dist/{query-DFreaScb.cjs → query-DimRl61I.cjs} +1 -1
- package/dist/{rateLimitWindows-DM_gshI4.mjs → rateLimitWindows-C0zbGT7K.mjs} +1 -1
- package/dist/{rateLimitWindows-CeogT1b6.cjs → rateLimitWindows-DwhrA5wy.cjs} +1 -1
- package/dist/{registerCommonHandlers-CRqKXwQt.cjs → registerCommonHandlers-De54jKz8.cjs} +2 -2
- package/dist/{registerCommonHandlers-CyAtDNvs.mjs → registerCommonHandlers-X9lnO2TF.mjs} +2 -2
- package/dist/{registerKillSessionHandler-CX49N52L.cjs → registerKillSessionHandler-CAif4Uz4.cjs} +6 -6
- package/dist/{registerKillSessionHandler-DGWADNla.mjs → registerKillSessionHandler-CrLsN5m3.mjs} +6 -6
- package/dist/{remoteSessionClient-CuAkp19e.cjs → remoteSessionClient-9j3N_bzV.cjs} +5 -5
- package/dist/{remoteSessionClient-1nycIdrG.mjs → remoteSessionClient-BApor-c2.mjs} +5 -5
- package/dist/{reportProgressTool-CdSi-uSC.mjs → reportProgressTool-6mDoxKuq.mjs} +3 -3
- package/dist/{reportProgressTool-BS7TkeEk.cjs → reportProgressTool-RR5VkbDf.cjs} +3 -3
- package/dist/{run-gVwkplx0.cjs → run-B2ZorDI7.cjs} +216 -44
- package/dist/{run-DqjEj8M2.mjs → run-CmA3cPD_.mjs} +219 -47
- package/dist/{runClaude-CtVoFstP.cjs → runClaude-Dk73bQ0n.cjs} +22 -22
- package/dist/{runClaude-CuSjrZSf.mjs → runClaude-bxwea9mX.mjs} +22 -22
- package/dist/{runClaudeDeps-eazOhb6g.mjs → runClaudeDeps-DoaYM017.mjs} +43 -43
- package/dist/{runClaudeDeps-DqOgRuKq.cjs → runClaudeDeps-dVfReVd4.cjs} +38 -38
- package/dist/{runGemini-81wkPvMv.cjs → runGemini-BD-wQe5q.cjs} +33 -33
- package/dist/{runGemini-B4EqAd1U.mjs → runGemini-Dq2iv4UF.mjs} +33 -33
- package/dist/{runOpenClaw-BK7ZQEKj.cjs → runOpenClaw-BXLv_bvU.cjs} +18 -18
- package/dist/{runOpenClaw-Brb1KKAA.mjs → runOpenClaw-C1NB1aLx.mjs} +18 -18
- package/dist/{sandbox-DFD6an8o.cjs → sandbox-9MIBf8kS.cjs} +4 -4
- package/dist/{sandbox-t43Exd4t.mjs → sandbox-Dqs_T8Jw.mjs} +4 -4
- package/dist/{selfCheck-Bel50SH3.cjs → selfCheck-CkUezhrg.cjs} +37 -37
- package/dist/selfCheck-Dz_Sm7w8.mjs +86 -0
- package/dist/{send-Co9jxmc4.mjs → send-4q066vij.mjs} +8 -8
- package/dist/{send-IR5DnG9V.cjs → send-rdhpycNB.cjs} +8 -8
- package/dist/{server-KnIeKeTb.mjs → server-DN6TvjhP.mjs} +4 -4
- package/dist/{server-CAo6a3Vw.cjs → server-DxTjt1mK.cjs} +6 -6
- package/dist/{sessionLock-ha9gsQEn.mjs → sessionLock-DOsE5UUf.mjs} +3 -3
- package/dist/{sessionLock-DNGDn9oj.cjs → sessionLock-h4162Jrf.cjs} +3 -3
- package/dist/{sessionOps-Di9MC0FP.mjs → sessionOps--9p2IzVA.mjs} +4 -4
- package/dist/{sessionOps-hRqzcMXB.cjs → sessionOps-tmBKG5qg.cjs} +4 -4
- package/dist/{sessionProvider-LqE7Y_cf.cjs → sessionProvider-B9w7rFDR.cjs} +5 -5
- package/dist/{sessionProvider-4Nn6e9Kd.mjs → sessionProvider-C6MHJZ9Z.mjs} +5 -5
- package/dist/{sessionScanner-DKFKDsrW.mjs → sessionScanner-B6hzp5R9.mjs} +3 -3
- package/dist/{sessionScanner-BzEtrHB8.cjs → sessionScanner-Bgvz8Uiy.cjs} +3 -3
- package/dist/{sessions-CmLiagcb.cjs → sessions-DJMVXKRz.cjs} +10 -10
- package/dist/{sessions-DzgMNXo5.mjs → sessions-iItaUQAF.mjs} +10 -10
- package/dist/{setupOfflineReconnection-D4NGi3Jf.mjs → setupOfflineReconnection-DF78nz1N.mjs} +2 -2
- package/dist/{setupOfflineReconnection-Dq4N2Txp.cjs → setupOfflineReconnection-DL4HUMDJ.cjs} +2 -2
- package/dist/{spawn-tmoekkOW.cjs → spawn-CL9A8dBJ.cjs} +14 -14
- package/dist/{spawn-C6CE5PsI.mjs → spawn-CoYfACsc.mjs} +14 -14
- package/dist/{spawnAgents-D15n6tAj.cjs → spawnAgents-DsJSyLDl.cjs} +1 -1
- package/dist/{spawnAgents-jXo9jIYo.mjs → spawnAgents-f2q31uUV.mjs} +1 -1
- package/dist/{spawnHappyCLI-8NcKgkuy.cjs → spawnHappyCLI-BWOub_Uf.cjs} +1 -1
- package/dist/{spawnHappyCLI-66grqHO0.mjs → spawnHappyCLI-BcSO1rF6.mjs} +1 -1
- package/dist/{specialCommands-BO8ipH0n.mjs → specialCommands-B-DAeFrU.mjs} +3 -3
- package/dist/{specialCommands-Dq0TmY1Z.cjs → specialCommands-ByrcSYSh.cjs} +3 -3
- package/dist/{startFileWatcher-CjgKvec9.cjs → startFileWatcher-BZrpUz7_.cjs} +1 -1
- package/dist/{startFileWatcher-BLDkieUW.mjs → startFileWatcher-DVia64Vg.mjs} +1 -1
- package/dist/{startupSessionCreate-CXRVahaU.cjs → startupSessionCreate-63ABDnfJ.cjs} +1 -1
- package/dist/{startupSessionCreate-B60THeNz.mjs → startupSessionCreate-CY4tPjlZ.mjs} +1 -1
- package/dist/{streamRelay-GzHxvMem.mjs → streamRelay-B3FloUTT.mjs} +1 -1
- package/dist/{streamRelay-CtTpf-Li.cjs → streamRelay-Cn_uGG6m.cjs} +1 -1
- package/dist/{sync-DKSZOi6w.cjs → sync-CKSmwxec.cjs} +1 -1
- package/dist/{sync-DJvx7RbO.mjs → sync-CZjyTC4v.mjs} +1 -1
- package/dist/{systemPrompt-dOOpz8L7.mjs → systemPrompt-BKUVX-fd.mjs} +2 -2
- package/dist/{systemPrompt-Duos1BtM.cjs → systemPrompt-BPzhf5d5.cjs} +2 -2
- package/dist/{teams-uWiMJEe1.mjs → teams-B2-KPjRg.mjs} +7 -7
- package/dist/{teams-pO5rjvPO.cjs → teams-CHBszdmc.cjs} +7 -7
- package/dist/{template-BLJxflCH.cjs → template-DPsqlHJQ.cjs} +1 -1
- package/dist/{template-YlpbYGeQ.mjs → template-DuKZw-Sz.mjs} +1 -1
- package/dist/{time-Du0scQeJ.mjs → time-BsNUVcKH.mjs} +1 -1
- package/dist/{time-D-8GFCE7.cjs → time-DcICfW0N.cjs} +1 -1
- package/dist/{titleGenerator-DKYj8rLY.mjs → titleGenerator-B4b4ah--.mjs} +1 -1
- package/dist/{titleGenerator-DnKygjBP.cjs → titleGenerator-Bvk1mx7G.cjs} +2 -2
- package/dist/{todo-BFDb7O8q.cjs → todo-BN4hhun6.cjs} +6 -6
- package/dist/{todo-Du5dAwnt.mjs → todo-C7--CBge.mjs} +6 -6
- package/dist/{tools-DHvMVL0a.mjs → tools-BILbS8Hh.mjs} +1 -1
- package/dist/{tools-DK_x86Kl.cjs → tools-Bl5Q_6Nr.cjs} +1 -1
- package/dist/{uninstall-CLDEXir0.mjs → uninstall-Bjwl9bqK.mjs} +3 -3
- package/dist/{uninstall-c3zjum2o.cjs → uninstall-_qDbgdxh.cjs} +3 -3
- package/package.json +7 -7
- package/dist/selfCheck-CwpZepG-.mjs +0 -86
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { i as isClaudeSessionId, g as extractCompleteLines, h as decideBackfill, j as parseTerminalHookPayload, k as decideMirrorBinding, M as MIRROR_BACKFILL_LINES_DEFAULT, m as mirrorLineKey, n as mirrorLocalId, o as initializeOwnedWorktree, e as summarizeSpawnSessionForLog, q as startAgentVersionChecks, W as WORKTREE_CAPABILITY_VERSION, t as currentWorktreeService } from './mirrorProtocol-
|
|
1
|
+
import { i as isClaudeSessionId, g as extractCompleteLines, h as decideBackfill, j as parseTerminalHookPayload, k as decideMirrorBinding, M as MIRROR_BACKFILL_LINES_DEFAULT, m as mirrorLineKey, n as mirrorLocalId, o as initializeOwnedWorktree, e as summarizeSpawnSessionForLog, q as startAgentVersionChecks, W as WORKTREE_CAPABILITY_VERSION, t as currentWorktreeService } from './mirrorProtocol-DukUp2Bj.mjs';
|
|
2
2
|
import { F as FS_MKDIR_CAPABILITY_VERSION } from './fsMkdir-DumgLTzR.mjs';
|
|
3
|
-
import { P as PI_ADAPTER_INSTALL_HINT, s as sanitizeSpawnModel } from './piRunnerArgs-
|
|
3
|
+
import { P as PI_ADAPTER_INSTALL_HINT, s as sanitizeSpawnModel } from './piRunnerArgs-YbYkfixz.mjs';
|
|
4
4
|
import fs from 'fs/promises';
|
|
5
5
|
import os from 'os';
|
|
6
6
|
import * as tmp from 'tmp';
|
|
7
7
|
import axios from 'axios';
|
|
8
|
-
import { readFileSync, openSync, fsyncSync, closeSync, renameSync, existsSync, readdirSync, statSync, unlinkSync, realpathSync, promises, writeFileSync, mkdirSync, accessSync,
|
|
9
|
-
import { join, isAbsolute, resolve, dirname, sep, basename } from 'node:path';
|
|
10
|
-
import { f as ensurePrivateDirectorySync, w as writePrivateFileSync, c as configuration } from './configuration-
|
|
11
|
-
import { T as TurnActivityTracker, A as ApiClient } from './api-
|
|
12
|
-
import { S as SPAWN_AGENTS, i as isSpawnAgent, s as sanitizeSpawnPermissionMode, r as resolveSpawnPermissionMode, a as resolveFirstMessageMeta, j as joinProject } from './spawnAgents-
|
|
13
|
-
import { l as logger } from './logger-
|
|
14
|
-
import { p as pruneStaleCompileCaches } from './index-
|
|
15
|
-
import { a as authAndSetupMachineIfNeeded } from './auth-
|
|
8
|
+
import { readFileSync, openSync, fsyncSync, closeSync, renameSync, existsSync, readdirSync, statSync, unlinkSync, realpathSync, promises, constants as constants$1, writeFileSync, mkdirSync, accessSync, readSync, rmdirSync } from 'node:fs';
|
|
9
|
+
import { join, isAbsolute, resolve, dirname, sep, basename, relative } from 'node:path';
|
|
10
|
+
import { f as ensurePrivateDirectorySync, w as writePrivateFileSync, c as configuration } from './configuration-DbCHeEeP.mjs';
|
|
11
|
+
import { T as TurnActivityTracker, A as ApiClient } from './api-DUFy21Nf.mjs';
|
|
12
|
+
import { S as SPAWN_AGENTS, i as isSpawnAgent, s as sanitizeSpawnPermissionMode, r as resolveSpawnPermissionMode, a as resolveFirstMessageMeta, j as joinProject } from './spawnAgents-f2q31uUV.mjs';
|
|
13
|
+
import { l as logger } from './logger-CpaeM90D.mjs';
|
|
14
|
+
import { p as pruneStaleCompileCaches } from './index-Cyu_8WAd.mjs';
|
|
15
|
+
import { a as authAndSetupMachineIfNeeded } from './auth-DP3eN2Fv.mjs';
|
|
16
16
|
import { spawn, execSync } from 'child_process';
|
|
17
|
-
import { p as packageJson } from './package-
|
|
18
|
-
import { a as globalPrefixForPackage, N as NPM_SAFE_ARG, g as getEnvironmentInfo } from './doctor-
|
|
19
|
-
import { s as spawnHappyCLI } from './spawnHappyCLI-
|
|
20
|
-
import { c as readPersistedSessions, r as readSettings, l as latchKeepAwake, q as reportSignature, s as decideDaemonHibernation, t as nextCheckDelay, v as persistSession, d as readDaemonState, x as acquireDaemonLock, a as resolveCheckMs, y as resolveIdleMs, z as deletePersistedSessions, A as writeDaemonState, B as writeSettings, C as settingIdleMs, u as updateSettings, D as rewriteCredentialsForRelay, g as readCredentials, E as releaseDaemonLock } from './persistence-
|
|
21
|
-
import { i as isDaemonRunningCurrentlyInstalledHappyVersion, s as stopDaemon, u as cleanupDaemonState } from './controlClient-
|
|
22
|
-
import { e as sendUserMessage, f as readSessionMetadata, r as readSessionTranscript, l as listAccountSessions, a as listSessions, M as MAX_READ_LIMIT, s as sessionWebUrl, g as waitForSessionKey, d as archiveSession, j as analyzeLatestTurn, k as readSessionLog, m as TURN_WINDOW, n as userPromptText } from './sessionOps
|
|
17
|
+
import { p as packageJson } from './package-DagIeOhi.mjs';
|
|
18
|
+
import { a as globalPrefixForPackage, N as NPM_SAFE_ARG, g as getEnvironmentInfo } from './doctor-Ymj096qP.mjs';
|
|
19
|
+
import { s as spawnHappyCLI } from './spawnHappyCLI-BcSO1rF6.mjs';
|
|
20
|
+
import { c as readPersistedSessions, r as readSettings, l as latchKeepAwake, q as reportSignature, s as decideDaemonHibernation, t as nextCheckDelay, v as persistSession, d as readDaemonState, x as acquireDaemonLock, a as resolveCheckMs, y as resolveIdleMs, z as deletePersistedSessions, A as writeDaemonState, B as writeSettings, C as settingIdleMs, u as updateSettings, D as rewriteCredentialsForRelay, g as readCredentials, E as releaseDaemonLock } from './persistence-FgtDuVAP.mjs';
|
|
21
|
+
import { i as isDaemonRunningCurrentlyInstalledHappyVersion, s as stopDaemon, u as cleanupDaemonState } from './controlClient-Dv80mB_j.mjs';
|
|
22
|
+
import { e as sendUserMessage, f as readSessionMetadata, r as readSessionTranscript, l as listAccountSessions, a as listSessions, M as MAX_READ_LIMIT, s as sessionWebUrl, g as waitForSessionKey, d as archiveSession, j as analyzeLatestTurn, k as readSessionLog, m as TURN_WINDOW, n as userPromptText } from './sessionOps--9p2IzVA.mjs';
|
|
23
23
|
import fastify from 'fastify';
|
|
24
24
|
import { z } from 'zod';
|
|
25
25
|
import { validatorCompiler, serializerCompiler } from 'fastify-type-provider-zod';
|
|
@@ -27,62 +27,62 @@ import { d as decodeBase64, s as sameRelay, e as encodeBase64, h as decrypt } fr
|
|
|
27
27
|
import { randomBytes, createHash, timingSafeEqual, randomUUID } from 'node:crypto';
|
|
28
28
|
import { c as checkPreviewPath } from './previewPath-CXN4Vag0.mjs';
|
|
29
29
|
import { a as BACKGROUND_TASKS_MAX, d as BACKGROUND_TASK_DESCRIPTION_MAX, e as BackgroundTaskTracker } from './backgroundTaskActivity-8PdPxrvy.mjs';
|
|
30
|
-
import { b as sanitizeRateLimitReport } from './rateLimitWindows-
|
|
31
|
-
import { f as formatEditConflictNotice, b as SESSION_PEER_SENT_FROM, s as sendPeerMessage, l as listPeerSessions, C as CLI_PEER_SENDER_ID } from './peerTools-
|
|
30
|
+
import { b as sanitizeRateLimitReport } from './rateLimitWindows-C0zbGT7K.mjs';
|
|
31
|
+
import { f as formatEditConflictNotice, b as SESSION_PEER_SENT_FROM, s as sendPeerMessage, l as listPeerSessions, C as CLI_PEER_SENDER_ID } from './peerTools-CUCqJ83-.mjs';
|
|
32
32
|
import os$1, { hostname, homedir, tmpdir } from 'node:os';
|
|
33
|
-
import { c as RemoteCallBudget, e as REMOTE_WRITE_CALLS_PER_MINUTE, d as deliverToSession, g as guardRemoteSessionOpsRequest, h as remoteError, i as REMOTE_OP_DEADLINE_MS, j as formatRemoteAuditLine, k as REMOTE_SEND_COMMIT_DEADLINE_MS, m as REMOTE_RESUME_WAIT_MS, n as capRemoteTranscript, o as capRemoteText, p as REMOTE_ANSWER_MAX_BYTES, q as REMOTE_TITLE_MAX_BYTES } from './remoteSessionClient-
|
|
34
|
-
import { assistantHome, bootstrapAssistantHome } from './bootstrap-
|
|
35
|
-
import { refreshAgentHomes, locateClaudeConversation, agentHomeSpawnEnv } from './index-
|
|
33
|
+
import { c as RemoteCallBudget, e as REMOTE_WRITE_CALLS_PER_MINUTE, d as deliverToSession, g as guardRemoteSessionOpsRequest, h as remoteError, i as REMOTE_OP_DEADLINE_MS, j as formatRemoteAuditLine, k as REMOTE_SEND_COMMIT_DEADLINE_MS, m as REMOTE_RESUME_WAIT_MS, n as capRemoteTranscript, o as capRemoteText, p as REMOTE_ANSWER_MAX_BYTES, q as REMOTE_TITLE_MAX_BYTES } from './remoteSessionClient-BApor-c2.mjs';
|
|
34
|
+
import { assistantHome, bootstrapAssistantHome } from './bootstrap-MFmMruyB.mjs';
|
|
35
|
+
import { refreshAgentHomes, locateClaudeConversation, agentHomeSpawnEnv } from './index-04pYyzsJ.mjs';
|
|
36
36
|
import require$$0, { existsSync as existsSync$1, statSync as statSync$1, mkdtempSync, rmSync } from 'fs';
|
|
37
37
|
import require$$1, { join as join$1 } from 'path';
|
|
38
38
|
import { spawn as spawn$1, execFile, spawnSync } from 'node:child_process';
|
|
39
39
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
40
40
|
import { d as daemonEndpointsMatch, r as resolveClaudeCredentialReadiness } from './doctorReadiness-C208SMN9.mjs';
|
|
41
|
-
import { o as ownerRetryPending, c as consumeOwnerRetry, s as spawnGate, a as afterStartupFailure, b as startupFailureMessage, T as TEAM_SPAWN_MAX_ATTEMPTS, d as TEAM_CLEANUP_RETRY_MS, g as getInitialMachineMetadata, e as getStartupCliAvailability, f as TEAM_RETRY_CAPABILITY_VERSION, w as withRunningCliFacts } from './machineMetadata-
|
|
41
|
+
import { o as ownerRetryPending, c as consumeOwnerRetry, s as spawnGate, a as afterStartupFailure, b as startupFailureMessage, T as TEAM_SPAWN_MAX_ATTEMPTS, d as TEAM_CLEANUP_RETRY_MS, g as getInitialMachineMetadata, e as getStartupCliAvailability, f as TEAM_RETRY_CAPABILITY_VERSION, w as withRunningCliFacts } from './machineMetadata-ukaYmmlK.mjs';
|
|
42
42
|
import { M as ModelConfigError, B as BackupStore, r as readConfigFile, s as sha256, a as atomicWriteFile } from './fileStore-5qpetZS0.mjs';
|
|
43
43
|
import { c as collectSecretValues, a as parseJsonObject, b as childObject, s as setOrDelete, d as changedPaths, e as stringifyLike, f as fail, n as normalizeModelList, g as normalizeModelId, h as normalizeSecret, i as normalizeBaseUrl, u as uniq, j as baseUrlWarnings, m as maskSecret, k as getPath$1, l as normalizeProviderId, o as piAdapter, r as redactText } from './pi-CqyoZMjI.mjs';
|
|
44
44
|
import require$$3 from 'crypto';
|
|
45
45
|
import { c as commandOnPath } from './detectCLI-CSGMlV51.mjs';
|
|
46
|
-
import { buildResumeLaunch } from './handleResumeCommand-
|
|
46
|
+
import { buildResumeLaunch } from './handleResumeCommand-DW_MRgtz.mjs';
|
|
47
47
|
import { n as normalizeWebPanels } from './webPanels-B2_C2-3g.mjs';
|
|
48
|
-
import { K as ServerMigrateNoticeSchema, L as isHarnessInstallId, e as AUTOMATION_SUMMARY_MAX_CHARS, M as AUTOMATION_PRECHECK_OUTPUT_MAX_CHARS, N as AUTOMATION_PRECHECK_DEFAULT_TIMEOUT_MS, b as AUTOMATION_PRECHECK_MAX_TIMEOUT_MS, Q as AUTOMATION_CLAIM_MAX_RUNS, T as AUTOMATION_DAEMON_CAPABILITY_PRECHECK, U as AUTOMATION_DEFAULT_LEASE_MS, i as isAutomationRunTerminal, V as HARNESS_INSTALL_CAPABILITY_VERSION } from './index-
|
|
49
|
-
import { access, symlink, readFile, rm, unlink, readlink, lstat, constants, stat, open } from 'node:fs/promises';
|
|
48
|
+
import { K as ServerMigrateNoticeSchema, L as isHarnessInstallId, e as AUTOMATION_SUMMARY_MAX_CHARS, M as AUTOMATION_PRECHECK_OUTPUT_MAX_CHARS, N as AUTOMATION_PRECHECK_DEFAULT_TIMEOUT_MS, b as AUTOMATION_PRECHECK_MAX_TIMEOUT_MS, Q as AUTOMATION_CLAIM_MAX_RUNS, T as AUTOMATION_DAEMON_CAPABILITY_PRECHECK, U as AUTOMATION_DEFAULT_LEASE_MS, i as isAutomationRunTerminal, V as HARNESS_INSTALL_CAPABILITY_VERSION } from './index-B9f1vKcC.mjs';
|
|
49
|
+
import { access, symlink, readFile, rm, unlink, readlink, lstat, constants, rename, mkdir, copyFile, readdir, stat, open } from 'node:fs/promises';
|
|
50
50
|
import { p as parseExactVersion, c as compareExactVersions, f as fetchCliUpdateState, r as resolveCliUpdateCheckInterval, D as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS } from './cliUpdate-Y34VGe9Y.mjs';
|
|
51
|
-
import { P as ProjectsUnsupportedError, c as createProjectsClient } from './client-
|
|
52
|
-
import { c as createAutomationsClient, i as isAutomationsUnavailable, d as AutomationsRequestError } from './client-
|
|
53
|
-
import { w as withKeychainOffPath, a as keychainIdentityFor, i as interpretSecurityRead, s as securityReadArgs, b as securityDeleteArgs, c as keychainOffShimDir, d as interpretCredentialsFile, C as CREDENTIALS_REJECTED_DETAIL, e as buildClaudeAuthState, f as claudeAuthStateChanged, r as resolveSdkClaudeBinary, g as classifyAuthStatus, h as diagnoseStores, p as parseLaunchctlPid, H as HAPPY_DAEMON_LAUNCHD_LABEL, j as classifyLineage, l as probeLaunchdJob, m as detectDaemonSupervisor, n as daemonLineage } from './daemonSupervisor-
|
|
51
|
+
import { P as ProjectsUnsupportedError, c as createProjectsClient } from './client-DAnQqPmc.mjs';
|
|
52
|
+
import { c as createAutomationsClient, i as isAutomationsUnavailable, d as AutomationsRequestError } from './client-BfGuTBMO.mjs';
|
|
53
|
+
import { w as withKeychainOffPath, a as keychainIdentityFor, i as interpretSecurityRead, s as securityReadArgs, b as securityDeleteArgs, c as keychainOffShimDir, d as interpretCredentialsFile, C as CREDENTIALS_REJECTED_DETAIL, e as buildClaudeAuthState, f as claudeAuthStateChanged, r as resolveSdkClaudeBinary, g as classifyAuthStatus, h as diagnoseStores, p as parseLaunchctlPid, H as HAPPY_DAEMON_LAUNCHD_LABEL, j as classifyLineage, l as probeLaunchdJob, m as detectDaemonSupervisor, n as daemonLineage, o as probeSystemdKillMode, q as wrappersSurviveHandover, t as handoverWaitsForSessions } from './daemonSupervisor-BxohggqN.mjs';
|
|
54
54
|
import { g as getProjectPath } from './path-D2wdaNSk.mjs';
|
|
55
55
|
import { b as extractClaudeEditPaths } from './editPaths-BVfS_FFL.mjs';
|
|
56
|
-
import { s as startFileWatcher } from './startFileWatcher-
|
|
57
|
-
import { I as InvalidateSync } from './sync-
|
|
56
|
+
import { s as startFileWatcher } from './startFileWatcher-DVia64Vg.mjs';
|
|
57
|
+
import { I as InvalidateSync } from './sync-CZjyTC4v.mjs';
|
|
58
58
|
import { R as RawJSONLinesSchema } from './types-CkqAACXx.mjs';
|
|
59
59
|
import { t as tmuxArgs, a as scrubTmuxClientEnv, s as shellescape } from './tmuxSocket-B8Yx20sT.mjs';
|
|
60
|
-
import { p as processIdentityFields, r as readSessionLock, t as terminateProcess, d as terminateProcessTree } from './sessionLock-
|
|
60
|
+
import { p as processIdentityFields, r as readSessionLock, t as terminateProcess, d as terminateProcessTree } from './sessionLock-DOsE5UUf.mjs';
|
|
61
61
|
import { findAllHappyProcesses } from './doctor-BPkYWSuq.mjs';
|
|
62
62
|
import { T as TEAM_SKILL, a as TEAM_LEAD_PLAYBOOK, b as TEAM_MEMBER_RULES } from './resources-CLdQfe3b.mjs';
|
|
63
63
|
import { promisify } from 'node:util';
|
|
64
|
-
import { b as clipText, r as renderAction, c as clipAutomationReport, e as renderTemplate } from './template-
|
|
64
|
+
import { b as clipText, r as renderAction, c as clipAutomationReport, e as renderTemplate } from './template-DuKZw-Sz.mjs';
|
|
65
65
|
import { d as describeAgentHome } from './loginShellEnv-Dw8M7tkI.mjs';
|
|
66
|
-
import './acpSessionResume-
|
|
67
|
-
import './lidState-
|
|
66
|
+
import './acpSessionResume-CKacrrHV.mjs';
|
|
67
|
+
import './lidState-CZ1ggYiB.mjs';
|
|
68
68
|
import 'node:events';
|
|
69
69
|
import 'socket.io-client';
|
|
70
|
-
import './pushNotifications-
|
|
70
|
+
import './pushNotifications-2CyhYAte.mjs';
|
|
71
71
|
import './contentLogMetadata-BlWI0egu.mjs';
|
|
72
72
|
import './limits-DIo7rEBR.mjs';
|
|
73
|
-
import './time-
|
|
74
|
-
import './registerCommonHandlers-
|
|
73
|
+
import './time-BsNUVcKH.mjs';
|
|
74
|
+
import './registerCommonHandlers-X9lnO2TF.mjs';
|
|
75
75
|
import 'util';
|
|
76
76
|
import 'cross-spawn';
|
|
77
77
|
import '@paralleldrive/cuid2';
|
|
78
78
|
import 'chalk';
|
|
79
79
|
import 'node:module';
|
|
80
80
|
import 'tweetnacl';
|
|
81
|
-
import './browser-
|
|
81
|
+
import './browser-CfFbN1Us.mjs';
|
|
82
82
|
import 'open';
|
|
83
83
|
import './ids-DU6sLx4C.mjs';
|
|
84
84
|
import 'url';
|
|
85
|
-
import './localHappyAgentAuth-
|
|
85
|
+
import './localHappyAgentAuth-OJk4xDwg.mjs';
|
|
86
86
|
import './processTreeSnapshot-CuLJDNC-.mjs';
|
|
87
87
|
import 'ps-list';
|
|
88
88
|
|
|
@@ -4410,7 +4410,7 @@ const runNpmProcess = (args, deps = processDefaults) => new Promise((resolveResu
|
|
|
4410
4410
|
child.on("close", (code) => done({ code: timedOut ? null : code, stdout, stderr, terminationConfirmed: !timedOut || treeKilled }));
|
|
4411
4411
|
});
|
|
4412
4412
|
const runNpm = (args) => runNpmProcess(args);
|
|
4413
|
-
const defaults = {
|
|
4413
|
+
const defaults$1 = {
|
|
4414
4414
|
npm: runNpm,
|
|
4415
4415
|
fs: { lstat, readlink, unlink, rm, readFile, symlink, access },
|
|
4416
4416
|
platform: process.platform,
|
|
@@ -4442,7 +4442,7 @@ function ownedCliLink(link, target, packageDir) {
|
|
|
4442
4442
|
const resolved = resolve(dirname(link), target);
|
|
4443
4443
|
return resolved.startsWith(join(packageDir, "bin") + sep);
|
|
4444
4444
|
}
|
|
4445
|
-
async function installCliSafely(version, deps = defaults) {
|
|
4445
|
+
async function installCliSafely(version, deps = defaults$1) {
|
|
4446
4446
|
const parsed = parseExactVersion(version);
|
|
4447
4447
|
if (!parsed) throw new Error("Invalid exact CLI version");
|
|
4448
4448
|
if (deps.platform === "win32") {
|
|
@@ -4539,6 +4539,12 @@ async function installCliSafely(version, deps = defaults) {
|
|
|
4539
4539
|
}
|
|
4540
4540
|
}
|
|
4541
4541
|
|
|
4542
|
+
const DEFAULT_BUSY_INSTALL_GRACE_MS = 15 * 6e4;
|
|
4543
|
+
function resolveBusyInstallGrace(raw) {
|
|
4544
|
+
if (raw === void 0 || raw.trim() === "") return DEFAULT_BUSY_INSTALL_GRACE_MS;
|
|
4545
|
+
const value = Number(raw);
|
|
4546
|
+
return Number.isInteger(value) && value >= 0 && value <= 24 * 60 * 6e4 ? value : DEFAULT_BUSY_INSTALL_GRACE_MS;
|
|
4547
|
+
}
|
|
4542
4548
|
function createUpdateController(deps) {
|
|
4543
4549
|
let policy = null;
|
|
4544
4550
|
let outcome = null;
|
|
@@ -4549,6 +4555,8 @@ function createUpdateController(deps) {
|
|
|
4549
4555
|
let handoverHold;
|
|
4550
4556
|
let lastPublished = "";
|
|
4551
4557
|
let autoUpdateEnabled;
|
|
4558
|
+
let busySince = null;
|
|
4559
|
+
let busyDeferred = null;
|
|
4552
4560
|
let lastInstall = (() => {
|
|
4553
4561
|
try {
|
|
4554
4562
|
return deps.lastInstall?.read() ?? null;
|
|
@@ -4615,14 +4623,29 @@ function createUpdateController(deps) {
|
|
|
4615
4623
|
publish(order === null ? "policy_stale" : "current", target);
|
|
4616
4624
|
return;
|
|
4617
4625
|
}
|
|
4626
|
+
let whileBusy = false;
|
|
4618
4627
|
if (!deps.idle()) {
|
|
4619
|
-
|
|
4620
|
-
|
|
4628
|
+
if (busySince?.version !== target) busySince = { version: target, at: now() };
|
|
4629
|
+
whileBusy = !!deps.installWhileBusy && busyDeferred?.version !== target && !deps.installFenced?.() && now() - busySince.at >= (deps.busyGraceMs ?? DEFAULT_BUSY_INSTALL_GRACE_MS);
|
|
4630
|
+
if (!whileBusy) {
|
|
4631
|
+
publish("waiting_idle", target, busyDeferred?.version === target ? busyDeferred.reason : void 0);
|
|
4632
|
+
return;
|
|
4633
|
+
}
|
|
4621
4634
|
}
|
|
4622
4635
|
running = true;
|
|
4623
|
-
publish("installing", target);
|
|
4636
|
+
publish("installing", target, whileBusy ? "while_busy" : void 0);
|
|
4624
4637
|
try {
|
|
4625
|
-
const code = await deps.install(target);
|
|
4638
|
+
const code = whileBusy ? await deps.installWhileBusy(target) : await deps.install(target);
|
|
4639
|
+
if (code && typeof code === "object" && "deferred" in code) {
|
|
4640
|
+
busyDeferred = { version: target, reason: code.deferred };
|
|
4641
|
+
publish("waiting_idle", target, code.deferred);
|
|
4642
|
+
return;
|
|
4643
|
+
}
|
|
4644
|
+
if (code && typeof code === "object" && "blocked" in code) {
|
|
4645
|
+
blocked = true;
|
|
4646
|
+
publish("manual_required", target, code.blocked);
|
|
4647
|
+
return;
|
|
4648
|
+
}
|
|
4626
4649
|
if (code && typeof code === "object") {
|
|
4627
4650
|
if ("manual" in code) publish("manual_required", target, code.manual);
|
|
4628
4651
|
else publish("failed", target, code.failed);
|
|
@@ -4740,6 +4763,134 @@ function createUpdateController(deps) {
|
|
|
4740
4763
|
return { refresh, retry, request, tick, withHandover, holdHandover, isRunning: () => running, currentTarget: () => policy?.autoUpdateVersion ?? null };
|
|
4741
4764
|
}
|
|
4742
4765
|
|
|
4766
|
+
const defaults = {
|
|
4767
|
+
npm: runNpm,
|
|
4768
|
+
fs: { lstat, readlink, readFile, readdir, copyFile, mkdir, rename, rm, access },
|
|
4769
|
+
platform: process.platform,
|
|
4770
|
+
runningPackageDir: projectPath(),
|
|
4771
|
+
now: Date.now
|
|
4772
|
+
};
|
|
4773
|
+
const MANAGED_BINS = ["very-happy", "very-happy-mcp"];
|
|
4774
|
+
async function manifest(dir, deps) {
|
|
4775
|
+
try {
|
|
4776
|
+
return JSON.parse(await deps.fs.readFile(join(dir, "package.json"), "utf8"));
|
|
4777
|
+
} catch {
|
|
4778
|
+
return null;
|
|
4779
|
+
}
|
|
4780
|
+
}
|
|
4781
|
+
async function isFile(path, deps) {
|
|
4782
|
+
const stat = await deps.fs.lstat(path).catch(() => null);
|
|
4783
|
+
return !!stat?.isFile();
|
|
4784
|
+
}
|
|
4785
|
+
function packageRelative(path) {
|
|
4786
|
+
const normalized = relative("/pkg", resolve("/pkg", path));
|
|
4787
|
+
return normalized && !normalized.startsWith("..") && !normalized.startsWith(sep) ? normalized : null;
|
|
4788
|
+
}
|
|
4789
|
+
async function binsUnchanged(stagedDir, liveDir, prefix, deps) {
|
|
4790
|
+
const staged = await manifest(stagedDir, deps);
|
|
4791
|
+
const bin = staged?.bin;
|
|
4792
|
+
if (!bin || typeof bin !== "object") return "staged_bin_map_unreadable";
|
|
4793
|
+
const names = Object.keys(bin).sort();
|
|
4794
|
+
if (names.join(",") !== [...MANAGED_BINS].sort().join(",")) return "staged_bin_map_changed";
|
|
4795
|
+
for (const name of MANAGED_BINS) {
|
|
4796
|
+
const target = packageRelative(String(bin[name]));
|
|
4797
|
+
if (!target || !await isFile(join(stagedDir, target), deps)) return "staged_bin_missing";
|
|
4798
|
+
const link = join(prefix, "bin", name);
|
|
4799
|
+
const stat = await deps.fs.lstat(link).catch(() => null);
|
|
4800
|
+
if (!stat?.isSymbolicLink()) return "live_bin_not_linked";
|
|
4801
|
+
const linkTarget = await deps.fs.readlink(link);
|
|
4802
|
+
if (!ownedCliLink(link, linkTarget, liveDir)) return "live_bin_not_owned";
|
|
4803
|
+
if (relative(liveDir, resolve(dirname(link), linkTarget)) !== target) return "staged_bin_map_changed";
|
|
4804
|
+
}
|
|
4805
|
+
return null;
|
|
4806
|
+
}
|
|
4807
|
+
async function keepOldChunks(liveDir, stagedDir, deps, sub = "dist") {
|
|
4808
|
+
const live = await deps.fs.readdir(join(liveDir, sub)).catch(() => []);
|
|
4809
|
+
const staged = new Set(await deps.fs.readdir(join(stagedDir, sub)).catch(() => []));
|
|
4810
|
+
let kept = 0;
|
|
4811
|
+
for (const name of live) {
|
|
4812
|
+
if (basename(name) !== name) continue;
|
|
4813
|
+
const from = join(liveDir, sub, name);
|
|
4814
|
+
const stat = await deps.fs.lstat(from).catch(() => null);
|
|
4815
|
+
if (stat?.isDirectory()) {
|
|
4816
|
+
if (!staged.has(name)) await deps.fs.mkdir(join(stagedDir, sub, name));
|
|
4817
|
+
kept += await keepOldChunks(liveDir, stagedDir, deps, join(sub, name));
|
|
4818
|
+
continue;
|
|
4819
|
+
}
|
|
4820
|
+
if (staged.has(name) || !stat?.isFile()) continue;
|
|
4821
|
+
await deps.fs.copyFile(from, join(stagedDir, sub, name), constants$1.COPYFILE_EXCL);
|
|
4822
|
+
kept++;
|
|
4823
|
+
}
|
|
4824
|
+
return kept;
|
|
4825
|
+
}
|
|
4826
|
+
async function installCliStaged(version, deps = defaults) {
|
|
4827
|
+
const parsed = parseExactVersion(version);
|
|
4828
|
+
if (!parsed) throw new Error("Invalid exact CLI version");
|
|
4829
|
+
if (deps.platform === "win32") return { outcome: { deferred: "staged_install_unsupported" } };
|
|
4830
|
+
const liveDir = deps.runningPackageDir;
|
|
4831
|
+
const prefix = liveDir ? globalPrefixForPackage(liveDir) : null;
|
|
4832
|
+
if (!liveDir || !prefix) return { outcome: { manual: "install_location_unverified" } };
|
|
4833
|
+
const liveStat = await deps.fs.lstat(liveDir).catch(() => null);
|
|
4834
|
+
const live = await manifest(liveDir, deps);
|
|
4835
|
+
if (!liveStat?.isDirectory() || liveStat.isSymbolicLink() || live?.name !== "very-happy-cli" || typeof live.version !== "string") {
|
|
4836
|
+
return { outcome: { manual: "install_location_unverified" } };
|
|
4837
|
+
}
|
|
4838
|
+
const root = dirname(liveDir);
|
|
4839
|
+
try {
|
|
4840
|
+
await deps.fs.access(root, constants$1.W_OK);
|
|
4841
|
+
await deps.fs.access(liveDir, constants$1.W_OK);
|
|
4842
|
+
} catch {
|
|
4843
|
+
return { outcome: { manual: "install_location_not_writable" } };
|
|
4844
|
+
}
|
|
4845
|
+
const stagePrefix = join(root, `.very-happy-cli-stage-${parsed.exact}`);
|
|
4846
|
+
const stagedDir = join(stagePrefix, "lib", "node_modules", "very-happy-cli");
|
|
4847
|
+
const retiredDir = join(root, `.very-happy-cli-retired-${live.version}-${deps.now()}`);
|
|
4848
|
+
const cleanup = async (path) => {
|
|
4849
|
+
await deps.fs.rm(path, { recursive: true, force: true }).catch(() => void 0);
|
|
4850
|
+
};
|
|
4851
|
+
await cleanup(stagePrefix);
|
|
4852
|
+
let swapped = false;
|
|
4853
|
+
try {
|
|
4854
|
+
const result = await deps.npm(autoUpdateInstallArgs(parsed.exact, stagePrefix));
|
|
4855
|
+
if (result.terminationConfirmed === false) return { outcome: "blocked" };
|
|
4856
|
+
if (result.code !== 0) return { outcome: result.code };
|
|
4857
|
+
const staged = await manifest(stagedDir, deps);
|
|
4858
|
+
if (staged?.name !== "very-happy-cli" || staged.version !== parsed.exact) return { outcome: { deferred: "staged_package_unverified" } };
|
|
4859
|
+
const binProblem = await binsUnchanged(stagedDir, liveDir, prefix, deps);
|
|
4860
|
+
if (binProblem) return { outcome: { deferred: binProblem } };
|
|
4861
|
+
let keptChunks;
|
|
4862
|
+
try {
|
|
4863
|
+
keptChunks = await keepOldChunks(liveDir, stagedDir, deps);
|
|
4864
|
+
} catch {
|
|
4865
|
+
return { outcome: { deferred: "staged_copy_failed" } };
|
|
4866
|
+
}
|
|
4867
|
+
try {
|
|
4868
|
+
await deps.fs.rename(liveDir, retiredDir);
|
|
4869
|
+
} catch {
|
|
4870
|
+
return { outcome: { deferred: "staged_retire_failed" } };
|
|
4871
|
+
}
|
|
4872
|
+
try {
|
|
4873
|
+
await deps.fs.rename(stagedDir, liveDir);
|
|
4874
|
+
} catch {
|
|
4875
|
+
try {
|
|
4876
|
+
await deps.fs.rename(retiredDir, liveDir);
|
|
4877
|
+
} catch {
|
|
4878
|
+
return { outcome: { blocked: "staged_rollback_failed", retiredDir }, keptChunks };
|
|
4879
|
+
}
|
|
4880
|
+
return { outcome: { deferred: "staged_swap_failed" } };
|
|
4881
|
+
}
|
|
4882
|
+
swapped = true;
|
|
4883
|
+
const installed = await manifest(liveDir, deps);
|
|
4884
|
+
return { outcome: installed?.version === parsed.exact ? 0 : { failed: "installed_elsewhere" }, keptChunks };
|
|
4885
|
+
} finally {
|
|
4886
|
+
await cleanup(stagePrefix);
|
|
4887
|
+
if (swapped) {
|
|
4888
|
+
await cleanup(retiredDir);
|
|
4889
|
+
await cleanup(join(root, ".package-lock.json"));
|
|
4890
|
+
}
|
|
4891
|
+
}
|
|
4892
|
+
}
|
|
4893
|
+
|
|
4743
4894
|
function parseLastInstall(raw) {
|
|
4744
4895
|
if (!raw || typeof raw !== "object") return null;
|
|
4745
4896
|
const { from, to, at, source } = raw;
|
|
@@ -8425,6 +8576,17 @@ async function startDaemon() {
|
|
|
8425
8576
|
const daemonSupervisor = detectDaemonSupervisor(process.env, process.platform, launchdJob);
|
|
8426
8577
|
const lineage = daemonLineage(daemonSupervisor, process.env, process.platform, launchdJob);
|
|
8427
8578
|
logger.debug(`[DAEMON RUN] Supervisor: ${daemonSupervisor} (lineage ${lineage}${launchdJob ? `, launchd job pid ${launchdJob.jobPid ?? "-"}` : ""})`);
|
|
8579
|
+
const systemdKillMode = daemonSupervisor === "systemd" ? await probeSystemdKillMode() : null;
|
|
8580
|
+
const handoverSparesWrappers = wrappersSurviveHandover({
|
|
8581
|
+
supervisor: daemonSupervisor,
|
|
8582
|
+
env: process.env,
|
|
8583
|
+
platform: process.platform,
|
|
8584
|
+
pid: process.pid,
|
|
8585
|
+
ppid: process.ppid,
|
|
8586
|
+
inContainer: existsSync$1("/.dockerenv") || existsSync$1("/run/.containerenv"),
|
|
8587
|
+
systemdKillMode
|
|
8588
|
+
});
|
|
8589
|
+
logger.debug(`[DAEMON RUN] Handover spares wrappers: ${handoverSparesWrappers}${daemonSupervisor === "systemd" ? ` (KillMode ${systemdKillMode ?? "unknown"})` : ""}`);
|
|
8428
8590
|
let fileState = {
|
|
8429
8591
|
pid: process.pid,
|
|
8430
8592
|
httpPort: controlPort,
|
|
@@ -8558,6 +8720,15 @@ async function startDaemon() {
|
|
|
8558
8720
|
// whose turn ended but still has background tasks is busy too.
|
|
8559
8721
|
idle: () => !turnActivity.hasActiveTurn() && !backgroundTasks.hasAny() && !harnessInstaller?.isRunning(),
|
|
8560
8722
|
install: installCliSafely,
|
|
8723
|
+
// B-817: a machine that is never idle installs after the grace period
|
|
8724
|
+
// through the staged path, which never leaves the live tree incomplete.
|
|
8725
|
+
installWhileBusy: async (version) => {
|
|
8726
|
+
const report = await installCliStaged(version);
|
|
8727
|
+
logger.warn(`[DAEMON RUN] CLI update: staged install while busy -> ${JSON.stringify(report.outcome)} keptChunks=${report.keptChunks ?? 0}`);
|
|
8728
|
+
return report.outcome;
|
|
8729
|
+
},
|
|
8730
|
+
installFenced: () => !!harnessInstaller?.isRunning(),
|
|
8731
|
+
busyGraceMs: resolveBusyInstallGrace(process.env.HAPPY_CLI_UPDATE_BUSY_GRACE_MS),
|
|
8561
8732
|
lastInstall: lastInstallStore(configuration.happyHomeDir),
|
|
8562
8733
|
publish: (state) => {
|
|
8563
8734
|
cliUpdateStateRef = state;
|
|
@@ -8659,7 +8830,8 @@ async function startDaemon() {
|
|
|
8659
8830
|
}
|
|
8660
8831
|
}
|
|
8661
8832
|
const relayMove = pendingRelayMove;
|
|
8662
|
-
|
|
8833
|
+
const sessionsHold = () => handoverWaitsForSessions({ bundleReplaced, relayMove: !!relayMove, sparesWrappers: handoverSparesWrappers }) && (turnActivity.hasActiveTurn() || backgroundTasks.hasAny());
|
|
8834
|
+
if ((bundleReplaced || relayMove) && !teamWorker?.busy && !automationRunner?.busy && !updateController.isRunning() && !harnessInstaller?.isRunning() && !sessionsHold()) {
|
|
8663
8835
|
const preflight = bundleReplaced ? await preflightNewBundle(bundlePath) : { action: "proceed" };
|
|
8664
8836
|
if (preflight.action === "hold") {
|
|
8665
8837
|
if (lastHandoverHold !== preflight.reason) {
|
|
@@ -8669,7 +8841,7 @@ async function startDaemon() {
|
|
|
8669
8841
|
updateController.holdHandover(preflight.reason);
|
|
8670
8842
|
return;
|
|
8671
8843
|
}
|
|
8672
|
-
if (teamWorker?.busy || automationRunner?.busy || updateController.isRunning() || harnessInstaller?.isRunning() ||
|
|
8844
|
+
if (teamWorker?.busy || automationRunner?.busy || updateController.isRunning() || harnessInstaller?.isRunning() || sessionsHold()) return;
|
|
8673
8845
|
lastHandoverHold = null;
|
|
8674
8846
|
logger.debug(relayMove ? `[DAEMON RUN] Relay moved to ${relayMove.serverUrl}; handing off to a new daemon on the new settings` : "[DAEMON RUN] Daemon bundle replaced on disk and verified, handing off to new daemon");
|
|
8675
8847
|
teamWorker?.stop();
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var os = require('node:os');
|
|
4
|
-
var sessionLock = require('./sessionLock-
|
|
5
|
-
var persistence = require('./persistence-
|
|
6
|
-
var defaultPermissionMode = require('./defaultPermissionMode-
|
|
4
|
+
var sessionLock = require('./sessionLock-h4162Jrf.cjs');
|
|
5
|
+
var persistence = require('./persistence-CIzOAWK6.cjs');
|
|
6
|
+
var defaultPermissionMode = require('./defaultPermissionMode-BYqJbPhc.cjs');
|
|
7
7
|
var node_crypto = require('node:crypto');
|
|
8
|
-
var api = require('./api-
|
|
9
|
-
var logger = require('./logger-
|
|
10
|
-
var createSessionMetadata = require('./createSessionMetadata-
|
|
11
|
-
var _package = require('./package-
|
|
12
|
-
var index = require('./index-
|
|
8
|
+
var api = require('./api-DjqQTT16.cjs');
|
|
9
|
+
var logger = require('./logger-L0pLBOLK.cjs');
|
|
10
|
+
var createSessionMetadata = require('./createSessionMetadata-DT24NjY2.cjs');
|
|
11
|
+
var _package = require('./package-BuATIMpK.cjs');
|
|
12
|
+
var index = require('./index-BumVulwx.cjs');
|
|
13
13
|
var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
|
|
14
|
-
var configuration = require('./configuration-
|
|
14
|
+
var configuration = require('./configuration-CI0GWwaT.cjs');
|
|
15
15
|
var providerBinding = require('./providerBinding-B-Qbx9W2.cjs');
|
|
16
|
-
var controlClient = require('./controlClient-
|
|
17
|
-
var machineMetadata = require('./machineMetadata-
|
|
16
|
+
var controlClient = require('./controlClient-BIi1tzEo.cjs');
|
|
17
|
+
var machineMetadata = require('./machineMetadata-YeHF4gSY.cjs');
|
|
18
18
|
var projectPath = require('./projectPath-C3ioB4Bu.cjs');
|
|
19
19
|
var path = require('node:path');
|
|
20
|
-
var startupSessionCreate = require('./startupSessionCreate-
|
|
20
|
+
var startupSessionCreate = require('./startupSessionCreate-63ABDnfJ.cjs');
|
|
21
21
|
var permissionMode = require('./permissionMode-CrV-XuMs.cjs');
|
|
22
22
|
var authRelay = require('./authRelay-Dy1qU9td.cjs');
|
|
23
23
|
var promises = require('node:fs/promises');
|
|
24
|
-
var attachmentContent = require('./attachmentContent-
|
|
24
|
+
var attachmentContent = require('./attachmentContent-2kInPZrP.cjs');
|
|
25
25
|
var transcriptCursor = require('./transcriptCursor-DcXGLeSc.cjs');
|
|
26
26
|
var startupPlan = require('./startupPlan-BLMbfQIH.cjs');
|
|
27
27
|
require('node:fs');
|
|
@@ -29,36 +29,36 @@ require('./processTreeSnapshot-mDbnuojn.cjs');
|
|
|
29
29
|
require('node:child_process');
|
|
30
30
|
require('zod');
|
|
31
31
|
require('axios');
|
|
32
|
-
require('./lidState-
|
|
32
|
+
require('./lidState-BxHu6dus.cjs');
|
|
33
33
|
require('os');
|
|
34
34
|
require('child_process');
|
|
35
35
|
require('node:events');
|
|
36
36
|
require('socket.io-client');
|
|
37
|
-
require('./pushNotifications-
|
|
37
|
+
require('./pushNotifications-OtQY-Mfa.cjs');
|
|
38
38
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
39
39
|
require('./limits-C-a7gr04.cjs');
|
|
40
|
-
require('./time-
|
|
41
|
-
require('./registerCommonHandlers-
|
|
40
|
+
require('./time-DcICfW0N.cjs');
|
|
41
|
+
require('./registerCommonHandlers-De54jKz8.cjs');
|
|
42
42
|
require('util');
|
|
43
43
|
require('fs/promises');
|
|
44
44
|
require('crypto');
|
|
45
45
|
require('path');
|
|
46
46
|
require('cross-spawn');
|
|
47
47
|
require('@paralleldrive/cuid2');
|
|
48
|
-
require('./sync-
|
|
48
|
+
require('./sync-CKSmwxec.cjs');
|
|
49
49
|
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
50
50
|
require('chalk');
|
|
51
51
|
require('node:util');
|
|
52
52
|
require('./detectCLI-BuYR_Qxe.cjs');
|
|
53
53
|
require('fs');
|
|
54
|
-
require('./localHappyAgentAuth-
|
|
54
|
+
require('./localHappyAgentAuth-BHklNDKQ.cjs');
|
|
55
55
|
require('tweetnacl');
|
|
56
56
|
require('./fsMkdir-0K3yENml.cjs');
|
|
57
57
|
require('url');
|
|
58
58
|
|
|
59
59
|
const DEFAULT_CLAUDE_MODEL = void 0;
|
|
60
60
|
const DEFAULT_CLAUDE_EFFORT = void 0;
|
|
61
|
-
const importRunClaudeDeps = () => Promise.resolve().then(function () { return require('./runClaudeDeps-
|
|
61
|
+
const importRunClaudeDeps = () => Promise.resolve().then(function () { return require('./runClaudeDeps-dVfReVd4.cjs'); });
|
|
62
62
|
async function runClaude(credentials, options = {}) {
|
|
63
63
|
logger.logger.debug(`[CLAUDE] ===== CLAUDE MODE STARTING =====`);
|
|
64
64
|
logger.logger.debug(`[CLAUDE] This is the Claude agent, NOT Gemini`);
|
|
@@ -72,7 +72,7 @@ async function runClaude(credentials, options = {}) {
|
|
|
72
72
|
const isAssistantVariant = process.env.HAPPY_SESSION_VARIANT === "assistant";
|
|
73
73
|
if (isAssistantVariant) {
|
|
74
74
|
try {
|
|
75
|
-
const { bootstrapAssistantHome } = await Promise.resolve().then(function () { return require('./bootstrap-
|
|
75
|
+
const { bootstrapAssistantHome } = await Promise.resolve().then(function () { return require('./bootstrap-B7YvJcVK.cjs'); });
|
|
76
76
|
await bootstrapAssistantHome();
|
|
77
77
|
} catch (error) {
|
|
78
78
|
logger.logger.debug("[START] Assistant home bootstrap failed:", error);
|
|
@@ -192,7 +192,7 @@ async function runClaude(credentials, options = {}) {
|
|
|
192
192
|
}
|
|
193
193
|
if (!response) {
|
|
194
194
|
let offlineSessionId = null;
|
|
195
|
-
const { claudeLocal } = await Promise.resolve().then(function () { return require('./claudeLocal-
|
|
195
|
+
const { claudeLocal } = await Promise.resolve().then(function () { return require('./claudeLocal-C4A7-BmS.cjs'); });
|
|
196
196
|
const { createSessionScanner: createSessionScanner2 } = await loadDeps();
|
|
197
197
|
const reconnection = api.startOfflineReconnection({
|
|
198
198
|
serverUrl: configuration.configuration.serverUrl,
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import os from 'node:os';
|
|
2
|
-
import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, e as exitCursorStamp } from './sessionLock-
|
|
3
|
-
import { r as readSettings, H as HIBERNATION_CAPABILITY, a as resolveCheckMs, l as latchKeepAwake, e as evaluateWrapperIdle } from './persistence-
|
|
4
|
-
import { D as DEFAULT_CLAUDE_PERMISSION_MODE, H as HibernationProbe, c as commitHibernation } from './defaultPermissionMode-
|
|
2
|
+
import { c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, e as exitCursorStamp } from './sessionLock-DOsE5UUf.mjs';
|
|
3
|
+
import { r as readSettings, H as HIBERNATION_CAPABILITY, a as resolveCheckMs, l as latchKeepAwake, e as evaluateWrapperIdle } from './persistence-FgtDuVAP.mjs';
|
|
4
|
+
import { D as DEFAULT_CLAUDE_PERMISSION_MODE, H as HibernationProbe, c as commitHibernation } from './defaultPermissionMode-yR27mevc.mjs';
|
|
5
5
|
import { randomUUID } from 'node:crypto';
|
|
6
|
-
import { c as connectionState, A as ApiClient, s as startOfflineReconnection } from './api-
|
|
7
|
-
import { l as logger } from './logger-
|
|
8
|
-
import { s as spawnOriginTags, a as sessionWorktreeMetadata } from './createSessionMetadata-
|
|
9
|
-
import { p as packageJson } from './package-
|
|
10
|
-
import { P as PROMPT_QUEUE_CAPABILITY, a as PROJECT_SESSION_CAPABILITY } from './index-
|
|
6
|
+
import { c as connectionState, A as ApiClient, s as startOfflineReconnection } from './api-DUFy21Nf.mjs';
|
|
7
|
+
import { l as logger } from './logger-CpaeM90D.mjs';
|
|
8
|
+
import { s as spawnOriginTags, a as sessionWorktreeMetadata } from './createSessionMetadata-Dqy_DfoF.mjs';
|
|
9
|
+
import { p as packageJson } from './package-DagIeOhi.mjs';
|
|
10
|
+
import { P as PROMPT_QUEUE_CAPABILITY, a as PROJECT_SESSION_CAPABILITY } from './index-B9f1vKcC.mjs';
|
|
11
11
|
import { F as FORK_BACKFILL_CAPABILITY, p as publishForkBackfillWhenCommitted } from './forkBackfill-DYIjlN1Z.mjs';
|
|
12
|
-
import { c as configuration } from './configuration-
|
|
12
|
+
import { c as configuration } from './configuration-DbCHeEeP.mjs';
|
|
13
13
|
import { l as loadSessionProvider, a as applyProviderEnv } from './providerBinding-CYubGg-Z.mjs';
|
|
14
|
-
import { n as notifyDaemonSessionStarted, c as checkDaemonHibernation } from './controlClient-
|
|
15
|
-
import { g as getInitialMachineMetadata } from './machineMetadata-
|
|
14
|
+
import { n as notifyDaemonSessionStarted, c as checkDaemonHibernation } from './controlClient-Dv80mB_j.mjs';
|
|
15
|
+
import { g as getInitialMachineMetadata } from './machineMetadata-ukaYmmlK.mjs';
|
|
16
16
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
17
17
|
import { resolve, join } from 'node:path';
|
|
18
|
-
import { c as createSessionForStartup } from './startupSessionCreate-
|
|
18
|
+
import { c as createSessionForStartup } from './startupSessionCreate-CY4tPjlZ.mjs';
|
|
19
19
|
import { a as applySandboxPermissionPolicy, r as resolveInitialClaudePermissionMode, m as mapToClaudeMode, b as reconcilePublishedPermissionMode } from './permissionMode-CH4FoZfU.mjs';
|
|
20
20
|
import { d as decodeBase64, e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
|
|
21
21
|
import { readFile } from 'node:fs/promises';
|
|
22
|
-
import { C as CLAUDE_ATTACHMENT_KINDS, s as stripAttachmentManifest } from './attachmentContent-
|
|
22
|
+
import { C as CLAUDE_ATTACHMENT_KINDS, s as stripAttachmentManifest } from './attachmentContent-D01-pLOB.mjs';
|
|
23
23
|
import { T as TranscriptPathHints } from './transcriptCursor-B7T_gkQ0.mjs';
|
|
24
24
|
import { p as planClaudeStartup } from './startupPlan-DFMyNgAs.mjs';
|
|
25
25
|
import 'node:fs';
|
|
@@ -27,36 +27,36 @@ import './processTreeSnapshot-CuLJDNC-.mjs';
|
|
|
27
27
|
import 'node:child_process';
|
|
28
28
|
import 'zod';
|
|
29
29
|
import 'axios';
|
|
30
|
-
import './lidState-
|
|
30
|
+
import './lidState-CZ1ggYiB.mjs';
|
|
31
31
|
import 'os';
|
|
32
32
|
import 'child_process';
|
|
33
33
|
import 'node:events';
|
|
34
34
|
import 'socket.io-client';
|
|
35
|
-
import './pushNotifications-
|
|
35
|
+
import './pushNotifications-2CyhYAte.mjs';
|
|
36
36
|
import './contentLogMetadata-BlWI0egu.mjs';
|
|
37
37
|
import './limits-DIo7rEBR.mjs';
|
|
38
|
-
import './time-
|
|
39
|
-
import './registerCommonHandlers-
|
|
38
|
+
import './time-BsNUVcKH.mjs';
|
|
39
|
+
import './registerCommonHandlers-X9lnO2TF.mjs';
|
|
40
40
|
import 'util';
|
|
41
41
|
import 'fs/promises';
|
|
42
42
|
import 'crypto';
|
|
43
43
|
import 'path';
|
|
44
44
|
import 'cross-spawn';
|
|
45
45
|
import '@paralleldrive/cuid2';
|
|
46
|
-
import './sync-
|
|
46
|
+
import './sync-CZjyTC4v.mjs';
|
|
47
47
|
import './backgroundTaskActivity-8PdPxrvy.mjs';
|
|
48
48
|
import 'chalk';
|
|
49
49
|
import 'node:util';
|
|
50
50
|
import './detectCLI-CSGMlV51.mjs';
|
|
51
51
|
import 'fs';
|
|
52
|
-
import './localHappyAgentAuth-
|
|
52
|
+
import './localHappyAgentAuth-OJk4xDwg.mjs';
|
|
53
53
|
import 'tweetnacl';
|
|
54
54
|
import './fsMkdir-DumgLTzR.mjs';
|
|
55
55
|
import 'url';
|
|
56
56
|
|
|
57
57
|
const DEFAULT_CLAUDE_MODEL = void 0;
|
|
58
58
|
const DEFAULT_CLAUDE_EFFORT = void 0;
|
|
59
|
-
const importRunClaudeDeps = () => import('./runClaudeDeps-
|
|
59
|
+
const importRunClaudeDeps = () => import('./runClaudeDeps-DoaYM017.mjs');
|
|
60
60
|
async function runClaude(credentials, options = {}) {
|
|
61
61
|
logger.debug(`[CLAUDE] ===== CLAUDE MODE STARTING =====`);
|
|
62
62
|
logger.debug(`[CLAUDE] This is the Claude agent, NOT Gemini`);
|
|
@@ -70,7 +70,7 @@ async function runClaude(credentials, options = {}) {
|
|
|
70
70
|
const isAssistantVariant = process.env.HAPPY_SESSION_VARIANT === "assistant";
|
|
71
71
|
if (isAssistantVariant) {
|
|
72
72
|
try {
|
|
73
|
-
const { bootstrapAssistantHome } = await import('./bootstrap-
|
|
73
|
+
const { bootstrapAssistantHome } = await import('./bootstrap-MFmMruyB.mjs');
|
|
74
74
|
await bootstrapAssistantHome();
|
|
75
75
|
} catch (error) {
|
|
76
76
|
logger.debug("[START] Assistant home bootstrap failed:", error);
|
|
@@ -190,7 +190,7 @@ async function runClaude(credentials, options = {}) {
|
|
|
190
190
|
}
|
|
191
191
|
if (!response) {
|
|
192
192
|
let offlineSessionId = null;
|
|
193
|
-
const { claudeLocal } = await import('./claudeLocal-
|
|
193
|
+
const { claudeLocal } = await import('./claudeLocal-C6wNx9qH.mjs');
|
|
194
194
|
const { createSessionScanner: createSessionScanner2 } = await loadDeps();
|
|
195
195
|
const reconnection = startOfflineReconnection({
|
|
196
196
|
serverUrl: configuration.serverUrl,
|