very-happy-cli 0.2.201 → 0.2.202
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-CMFlng3C.cjs → AcpBackend-BRcPXur6.cjs} +3 -3
- package/dist/{AcpBackend-BNinFMHZ.mjs → AcpBackend-Z51picBa.mjs} +3 -3
- package/dist/{AcpSessionManager-Dg6gKavf.mjs → AcpSessionManager-BCGqL1Em.mjs} +1 -1
- package/dist/{AcpSessionManager-CPgoICjp.cjs → AcpSessionManager-BckOYH3I.cjs} +1 -1
- package/dist/{BasePermissionHandler-c-NaRa_E.cjs → BasePermissionHandler-BYIY3kxs.cjs} +1 -1
- package/dist/{BasePermissionHandler-DwcfWUjr.mjs → BasePermissionHandler-BhJjr-wB.mjs} +1 -1
- package/dist/{account-pzgzyIXW.mjs → account-B-HTHZKw.mjs} +5 -5
- package/dist/{account-D23SGj7p.cjs → account-B0Wu7rJR.cjs} +5 -5
- package/dist/{acpSessionResume-urFpnGsk.mjs → acpSessionResume-BKjQRT4V.mjs} +1 -1
- package/dist/{acpSessionResume-DklOhwir.cjs → acpSessionResume-C8Kd8eK6.cjs} +1 -1
- package/dist/{agentHome-DyrLqr8b.mjs → agentHome-BXiCouR4.mjs} +4 -4
- package/dist/{agentHome-BTwMaYw1.cjs → agentHome-DnxSf1ox.cjs} +4 -4
- package/dist/{api-KVVs-GkM.cjs → api-B-FB-s4z.cjs} +9 -9
- package/dist/{api-1CD4oRSW.mjs → api-Cu1OFHDM.mjs} +9 -9
- package/dist/{apiMachine-1sd5IVIB.cjs → apiMachine-DCWgI1l_.cjs} +23 -13
- package/dist/{apiMachine-BDVE6MOn.mjs → apiMachine-DYGPILVb.mjs} +23 -13
- package/dist/{attachmentContent-CeF54XeO.mjs → attachmentContent-Dq8P5ODq.mjs} +2 -2
- package/dist/{attachmentContent-f3BbOKqz.cjs → attachmentContent-dXwHB_3C.cjs} +2 -2
- package/dist/{auth-eielZ6Sc.cjs → auth-BVNBE4B1.cjs} +8 -8
- package/dist/{auth-WCd2S1zA.mjs → auth-CgdE-j7z.mjs} +5 -5
- package/dist/{auth-CV2H-smf.mjs → auth-D11uvx2P.mjs} +8 -8
- package/dist/{auth-CXCX-iJ-.cjs → auth-DpIHm7Lb.cjs} +5 -5
- package/dist/{auto-49cRCADN.cjs → auto-Ba2b-il4.cjs} +14 -14
- package/dist/{auto-BsCE_UHT.mjs → auto-WdjHKP9R.mjs} +14 -14
- package/dist/{bootstrap-D_1MskAl.mjs → bootstrap-BTYJf2w8.mjs} +2 -2
- package/dist/{bootstrap-N1PY4ypX.cjs → bootstrap-CsZO_jkL.cjs} +2 -2
- package/dist/{browser-B0SEB6r3.cjs → browser-DgufCq1K.cjs} +1 -1
- package/dist/{browser-DL3QIQLS.mjs → browser-Dx3UOVPP.mjs} +1 -1
- package/dist/{claudeLocal-Ix69XJ1t.cjs → claudeLocal-Q0FgzhTu.cjs} +4 -4
- package/dist/{claudeLocal-DRMWkdCC.mjs → claudeLocal-ylDKcvX0.mjs} +4 -4
- package/dist/{claudeLocalLauncher-D4tU6R5n.mjs → claudeLocalLauncher-CtybsaR8.mjs} +9 -9
- package/dist/{claudeLocalLauncher-rDojqNoa.cjs → claudeLocalLauncher-D2rZvuaW.cjs} +9 -9
- package/dist/{claudeSessionFork-C_X08LFh.cjs → claudeSessionFork-BrstQPE4.cjs} +1 -1
- package/dist/{claudeSessionFork-H0ZVQALg.mjs → claudeSessionFork-DRLxmv9j.mjs} +1 -1
- package/dist/{client-BoymtYLP.cjs → client-CNWx72ZT.cjs} +2 -2
- package/dist/{client-DGqnrSg4.cjs → client-Ch4Azlny.cjs} +3 -3
- package/dist/{client-CMUlpYcy.mjs → client-Cj7D61by.mjs} +2 -2
- package/dist/{client-4YWjreN3.mjs → client-D0oBXuEe.mjs} +2 -2
- package/dist/{client-CK-jvgM1.mjs → client-DJsXNJWO.mjs} +3 -3
- package/dist/{client-BgInTvr6.mjs → client-DfT_CRwl.mjs} +2 -2
- package/dist/{client-P1VkI76z.cjs → client-Dq7jaxb2.cjs} +2 -2
- package/dist/{client-DI8Rxsbw.cjs → client-xV99weGP.cjs} +2 -2
- package/dist/codex/happyMcpStdioBridge.cjs +17 -17
- package/dist/codex/happyMcpStdioBridge.mjs +17 -17
- package/dist/{codexAppServerClient-BnMR-DRn.cjs → codexAppServerClient-BwBPZonh.cjs} +3 -3
- package/dist/{codexAppServerClient-aDrsSyjS.mjs → codexAppServerClient-DtdCZ7_b.mjs} +3 -3
- package/dist/{codexCommand-C3oEEpOa.cjs → codexCommand-CsY9YFiG.cjs} +42 -42
- package/dist/{codexCommand-BCpJzf3q.mjs → codexCommand-D92AQCLU.mjs} +42 -42
- package/dist/{codexTermination-DXhw5Pzi.cjs → codexTermination-BbXG2oFT.cjs} +1 -1
- package/dist/{codexTermination-B5haG5wJ.mjs → codexTermination-rhIxjRMJ.mjs} +1 -1
- package/dist/{config-D9wjo4oa.mjs → config-BnN1yFyi.mjs} +3 -3
- package/dist/{config-CdGiZZKy.cjs → config-Zhkmfb3O.cjs} +3 -3
- package/dist/{configuration-DhEqAYzz.mjs → configuration-CQaLZMa-.mjs} +1 -1
- package/dist/{configuration-LWFmTxty.cjs → configuration-DZUnfWp2.cjs} +1 -1
- package/dist/{connect-BZLD0aVm.cjs → connect-BToTf3Gy.cjs} +12 -12
- package/dist/{connect-CY_EMXQs.mjs → connect-DY5QLfbI.mjs} +12 -12
- package/dist/{context-BbZ18lX0.cjs → context-BHydzPZw.cjs} +1 -1
- package/dist/{context-UzqWaA7f.mjs → context-ByTvtMXZ.mjs} +1 -1
- package/dist/{controlClient-TVMpETsR.cjs → controlClient-Bfwe0Xpt.cjs} +3 -3
- package/dist/{controlClient-PaIiDxM6.mjs → controlClient-Cqhd8ynk.mjs} +3 -3
- package/dist/{createSessionMetadata-hGZeo_nR.cjs → createSessionMetadata-D_qa01wq.cjs} +2 -2
- package/dist/{createSessionMetadata-BWb81WZg.mjs → createSessionMetadata-tmhDzhJZ.mjs} +2 -2
- package/dist/{deterministicJson-BpDDS7c9.cjs → deterministicJson-CbUdClvO.cjs} +13 -13
- package/dist/{deterministicJson-Cg3z7uUX.mjs → deterministicJson-DRL1Gs_c.mjs} +13 -13
- package/dist/{doctor-DOzji0f7.cjs → doctor-DHCmWcwR.cjs} +7 -7
- package/dist/{doctor-BanQ3jQg.mjs → doctor-Wu0yZ80l.mjs} +7 -7
- package/dist/{downloadTarget-BhIAhyEV.cjs → downloadTarget-BoJrjpEe.cjs} +6 -6
- package/dist/{downloadTarget-BCSXmPRE.mjs → downloadTarget-G72yKQcM.mjs} +6 -6
- package/dist/{ensureDaemonRunning-BZGBE838.mjs → ensureDaemonRunning-BKGybp3s.mjs} +5 -5
- package/dist/{ensureDaemonRunning-DMOCzvQP.cjs → ensureDaemonRunning-CnkyGd9x.cjs} +5 -5
- package/dist/{format-BxGkJUki.mjs → format-BSx-Nv2p.mjs} +1 -1
- package/dist/{format-CgiY6uup.cjs → format-DePME4uu.cjs} +1 -1
- package/dist/{handleResumeCommand-BRV-9h0o.mjs → handleResumeCommand-DrJdhjLD.mjs} +5 -5
- package/dist/{handleResumeCommand-ChnR-12l.cjs → handleResumeCommand-uKzhaOVC.cjs} +5 -5
- package/dist/{index-B7HlUXOX.cjs → index-BKXqaux4.cjs} +4 -4
- package/dist/{index-C_Y9426m.mjs → index-BcYJJV-f.mjs} +3 -3
- package/dist/{index-DuOthh8V.cjs → index-Bi7Lmykl.cjs} +39 -39
- package/dist/{index-Do1r62PF.mjs → index-C-eSUhXW.mjs} +4 -4
- package/dist/{index-DnEgpRo4.cjs → index-CoBaGAA4.cjs} +3 -3
- package/dist/{index-D5abHQNL.mjs → index-CowtCbZ_.mjs} +40 -40
- package/dist/{index-BuOzDU17.cjs → index-DDOCSeEj.cjs} +4 -4
- package/dist/{index-HJFzeG0B.mjs → index-fNsf-8K-.mjs} +4 -4
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-BurTXawL.mjs → install-0TkucJrC.mjs} +3 -3
- package/dist/{install-CUAUG3u4.cjs → install-Ddc8TlWE.cjs} +3 -3
- package/dist/{issue-feEUrjV0.cjs → issue-CIfzJuaS.cjs} +7 -7
- package/dist/{issue-DpMsnOFm.mjs → issue-CML2xa46.mjs} +7 -7
- package/dist/lib.cjs +11 -11
- package/dist/lib.d.cts +3 -0
- package/dist/lib.d.mts +3 -0
- package/dist/lib.mjs +11 -11
- package/dist/{localHappyAgentAuth-kg2RFvOy.mjs → localHappyAgentAuth-BUX4E1ug.mjs} +1 -1
- package/dist/{localHappyAgentAuth-DxlQgaer.cjs → localHappyAgentAuth-WLqXQbc6.cjs} +1 -1
- package/dist/{logger-CFrzcRHD.mjs → logger-BEVIGYKL.mjs} +2 -2
- package/dist/{logger-Hyhy2boA.cjs → logger-Dhc0l3xH.cjs} +2 -2
- package/dist/{machineMetadata-DiStbYik.mjs → machineMetadata-BQdp_ihk.mjs} +3 -3
- package/dist/{machineMetadata-BLymhM03.cjs → machineMetadata-ixKckJ7k.cjs} +3 -3
- package/dist/{main-7G17Noc3.cjs → main-BNBYOcQb.cjs} +48 -48
- package/dist/{main-D1rk-68I.mjs → main-BzQSe4Zu.mjs} +48 -48
- package/dist/{mcp-C0DMPeTt.mjs → mcp-BueI4Bel.mjs} +14 -14
- package/dist/{mcp-DUeAS-D6.cjs → mcp-BwskAxOK.cjs} +14 -14
- package/dist/{mirrorProtocol-dRyartIG.mjs → mirrorProtocol-5aFYsCCe.mjs} +2 -2
- package/dist/{mirrorProtocol-YUoEuIYO.cjs → mirrorProtocol-DGMmhArw.cjs} +2 -2
- package/dist/{package-06cGlmeD.cjs → package-CAmlKYcH.cjs} +7 -7
- package/dist/{package-DxE8PttX.mjs → package-aOUtHYRZ.mjs} +7 -7
- package/dist/{panels-BUqmsRE0.mjs → panels-BeVMgmRW.mjs} +5 -5
- package/dist/{panels-D0GHfIJC.cjs → panels-By2IDfXv.cjs} +5 -5
- package/dist/{peerTools-BiFpxXdf.mjs → peerTools-BkRgJomj.mjs} +5 -5
- package/dist/{peerTools-CTCyRdg2.cjs → peerTools-dgllF1wT.cjs} +5 -5
- package/dist/{persistence-_W9tE-bW.cjs → persistence-05BAS4Ou.cjs} +12 -2
- package/dist/{persistence-CF7oV1oH.mjs → persistence-EuUaQKL7.mjs} +12 -3
- package/dist/{piRunnerArgs-Cfc-F-FJ.mjs → piRunnerArgs-CygWrAwY.mjs} +1 -1
- package/dist/{piRunnerArgs-T2cAiaGW.cjs → piRunnerArgs-DkjCRPYn.cjs} +1 -1
- package/dist/{piRuntime-CzYkZrYV.mjs → piRuntime-LRW_t6ME.mjs} +1 -1
- package/dist/{piRuntime-BzECTca4.cjs → piRuntime-zY2jIQod.cjs} +1 -1
- package/dist/{piTerminal-WF--dHaC.cjs → piTerminal-BfZshXGh.cjs} +16 -16
- package/dist/{piTerminal-0tOAYsFm.mjs → piTerminal-BhlPA1HR.mjs} +16 -16
- package/dist/{pushNotifications-CxX10K6n.mjs → pushNotifications-B7Ga8Zyf.mjs} +2 -2
- package/dist/{pushNotifications-DdzTbrA3.cjs → pushNotifications-DaVlLe7N.cjs} +2 -2
- package/dist/{query-Bkh7d52V.mjs → query-BQLtwpr9.mjs} +1 -1
- package/dist/{query-Cwx4pv91.cjs → query-CX0Of89i.cjs} +1 -1
- package/dist/{rateLimitWindows-DjJjgjt4.cjs → rateLimitWindows-CpSOlXBt.cjs} +1 -1
- package/dist/{rateLimitWindows-DdUMUEoy.mjs → rateLimitWindows-hv2zLYid.mjs} +1 -1
- package/dist/{reconnectGate-DeDhtQJW.cjs → reconnectGate-B_aJrehH.cjs} +1 -1
- package/dist/{reconnectGate-uTLj82tS.mjs → reconnectGate-DO_ZQmJE.mjs} +1 -1
- package/dist/{registerCommonHandlers-BYrmi-A4.mjs → registerCommonHandlers-BEpK4WD2.mjs} +2 -2
- package/dist/{registerCommonHandlers-BrEtSwNk.cjs → registerCommonHandlers-em2elV3l.cjs} +2 -2
- package/dist/{registerKillSessionHandler-Cuzq6ecP.mjs → registerKillSessionHandler-D-dDzI2n.mjs} +5 -5
- package/dist/{registerKillSessionHandler-Bp3g11wW.cjs → registerKillSessionHandler-D4ZQvsH2.cjs} +5 -5
- package/dist/{registerSideQuestionHandler-ChIbHl_g.cjs → registerSideQuestionHandler-BIOLUe2U.cjs} +4 -4
- package/dist/{registerSideQuestionHandler-BmEWWaZW.mjs → registerSideQuestionHandler-okUy9Q_-.mjs} +4 -4
- package/dist/{remoteSessionClient-DoxfnpnK.cjs → remoteSessionClient-BLWFXMBo.cjs} +5 -5
- package/dist/{remoteSessionClient-Dj2rV8Az.mjs → remoteSessionClient-CzjLyL9c.mjs} +5 -5
- package/dist/{reportProgressTool-qo0QIFNd.mjs → reportProgressTool-CNi0Vqqm.mjs} +4 -4
- package/dist/{reportProgressTool-DvZhaEiN.cjs → reportProgressTool-DcNBXBw8.cjs} +4 -4
- package/dist/{run-mHeOSOEt.mjs → run-D59Gb4SQ.mjs} +196 -45
- package/dist/{run-BqlWdDTL.cjs → run-bzlz4DI1.cjs} +196 -45
- package/dist/{runClaude-Z4BVFEdC.mjs → runClaude-DZtdmcXK.mjs} +20 -20
- package/dist/{runClaude-MjIrNrxT.cjs → runClaude-kVp1PKab.cjs} +20 -20
- package/dist/{runClaudeDeps-tPqwAl_m.cjs → runClaudeDeps-BHv9FkVz.cjs} +37 -37
- package/dist/{runClaudeDeps-8RXtu0Zc.mjs → runClaudeDeps-D83tR1KP.mjs} +43 -43
- package/dist/{runGemini-DG3jIxWv.mjs → runGemini-DLc_bL4E.mjs} +34 -34
- package/dist/{runGemini-uc-fViXY.cjs → runGemini-W-0t7skM.cjs} +34 -34
- package/dist/{runOpenClaw-DZtoCmSG.cjs → runOpenClaw-BsqbOw8R.cjs} +17 -17
- package/dist/{runOpenClaw-C4676Sdl.mjs → runOpenClaw-mm-hKxMC.mjs} +17 -17
- package/dist/{sandbox-r29ys6I4.mjs → sandbox-DXbKl-Os.mjs} +4 -4
- package/dist/{sandbox-DS7uZ71y.cjs → sandbox-DrWJss7J.cjs} +4 -4
- package/dist/selfCheck-B1XdrEbN.mjs +89 -0
- package/dist/{selfCheck-CSZ-wx1W.cjs → selfCheck-CVXucSXR.cjs} +39 -39
- package/dist/{send-BGApHm-z.mjs → send-Cdda78Iw.mjs} +8 -8
- package/dist/{send-CrmLy9lW.cjs → send-D7pRBaht.cjs} +8 -8
- package/dist/{server-CjwXsTKP.cjs → server-BI6defPs.cjs} +6 -6
- package/dist/{server-hutEAAn1.mjs → server-CNilQcJK.mjs} +4 -4
- package/dist/{sessionLock-unMOEniJ.cjs → sessionLock-Bjsy90aM.cjs} +3 -3
- package/dist/{sessionLock-Dj9_lShU.mjs → sessionLock-CVjlaRSL.mjs} +3 -3
- package/dist/{sessionOps-BmhqmPPd.mjs → sessionOps-CV5RUpwG.mjs} +4 -4
- package/dist/{sessionOps-SxZr9veq.cjs → sessionOps-CvmOHwGP.cjs} +4 -4
- package/dist/{sessionProvider-DLlqS4y6.cjs → sessionProvider-4sWr0Myr.cjs} +5 -5
- package/dist/{sessionProvider-CPlvR0nT.mjs → sessionProvider-BmO4ahnt.mjs} +5 -5
- package/dist/{sessionScanner-DvVZpLHG.mjs → sessionScanner-34Q0vTR3.mjs} +3 -3
- package/dist/{sessionScanner-B7nZ1i40.cjs → sessionScanner-DZBiEOyb.cjs} +3 -3
- package/dist/{sessions-BIYm43CM.mjs → sessions-Cl435KQT.mjs} +10 -10
- package/dist/{sessions-CQQW7u6X.cjs → sessions-DjAXZWTX.cjs} +10 -10
- package/dist/{setupOfflineReconnection-BELrtMGG.mjs → setupOfflineReconnection-BC5FJTkc.mjs} +2 -2
- package/dist/{setupOfflineReconnection-D7WJTAi_.cjs → setupOfflineReconnection-zebrb6U_.cjs} +2 -2
- package/dist/{spawn-CuWcPkkN.cjs → spawn-C8cJK9-m.cjs} +12 -12
- package/dist/{spawn-DnPu7h2o.mjs → spawn-DqWdgMt_.mjs} +12 -12
- package/dist/{spawnHappyCLI-D6OcgFDR.mjs → spawnHappyCLI-BckHSjR0.mjs} +1 -1
- package/dist/{spawnHappyCLI-CI7Ax4mF.cjs → spawnHappyCLI-CeWgULMt.cjs} +1 -1
- package/dist/{startFileWatcher-BiWGhlGW.mjs → startFileWatcher-BXiBlfVr.mjs} +1 -1
- package/dist/{startFileWatcher-DBW14aP2.cjs → startFileWatcher-CXZYt0y9.cjs} +1 -1
- package/dist/{startupSessionCreate-DFl54ozj.cjs → startupSessionCreate-CycB-kwu.cjs} +3 -3
- package/dist/{startupSessionCreate-DbBpGQo9.mjs → startupSessionCreate-D8hODW7I.mjs} +3 -3
- package/dist/{sync-CcBrziWp.mjs → sync-BfM5OKSS.mjs} +1 -1
- package/dist/{sync-C764ZzE6.cjs → sync-CyUWevwD.cjs} +1 -1
- package/dist/{systemPrompt-Xy3Dfj1l.cjs → systemPrompt-BUZQDf4k.cjs} +1 -1
- package/dist/{systemPrompt-9i7bQypR.mjs → systemPrompt-Tu_2ixE3.mjs} +1 -1
- package/dist/{teams-BAWOVbdF.mjs → teams-Cpdqvfe3.mjs} +6 -6
- package/dist/{teams-VlmzLDSs.cjs → teams-KjHee0Vg.cjs} +6 -6
- package/dist/{time-DJF2csbV.mjs → time-BQWf06hA.mjs} +1 -1
- package/dist/{time-CDBZWYDb.cjs → time-CbOTVtAt.cjs} +1 -1
- package/dist/{titleGenerator-BYP3fNFo.cjs → titleGenerator-CpiQkf_r.cjs} +2 -2
- package/dist/{titleGenerator-DR9evHBh.mjs → titleGenerator-DYnqd0oI.mjs} +1 -1
- package/dist/{todo-BkFvwx_z.cjs → todo-Cp6bRp62.cjs} +7 -7
- package/dist/{todo-DDDQdB-G.mjs → todo-DVrsXyKn.mjs} +7 -7
- package/dist/{tools-BjiRW_Rg.cjs → tools-BFQm7xny.cjs} +1 -1
- package/dist/{tools-CDktvjWL.mjs → tools-XGAJepvT.mjs} +1 -1
- package/dist/{uninstall-BcMGkwJ0.mjs → uninstall-C2LF0vtR.mjs} +3 -3
- package/dist/{uninstall-D5INt3TC.cjs → uninstall-Cyqq90JW.cjs} +3 -3
- package/package.json +7 -7
- package/dist/selfCheck-BmT9ihpR.mjs +0 -89
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var mirrorProtocol = require('./mirrorProtocol-
|
|
3
|
+
var mirrorProtocol = require('./mirrorProtocol-DGMmhArw.cjs');
|
|
4
4
|
var fsMkdir = require('./fsMkdir-0K3yENml.cjs');
|
|
5
|
-
var piRunnerArgs = require('./piRunnerArgs-
|
|
5
|
+
var piRunnerArgs = require('./piRunnerArgs-DkjCRPYn.cjs');
|
|
6
6
|
var fs = require('fs/promises');
|
|
7
7
|
var os$1 = require('os');
|
|
8
8
|
var tmp = require('tmp');
|
|
@@ -10,19 +10,19 @@ var axios = require('axios');
|
|
|
10
10
|
var sessionMetadata = require('./sessionMetadata-B44cL4Xj.cjs');
|
|
11
11
|
var node_fs = require('node:fs');
|
|
12
12
|
var path = require('node:path');
|
|
13
|
-
var configuration = require('./configuration-
|
|
14
|
-
var api = require('./api-
|
|
13
|
+
var configuration = require('./configuration-DZUnfWp2.cjs');
|
|
14
|
+
var api = require('./api-B-FB-s4z.cjs');
|
|
15
15
|
var spawnAgents = require('./spawnAgents-DvbEDCIq.cjs');
|
|
16
|
-
var logger = require('./logger-
|
|
17
|
-
var index$2 = require('./index-
|
|
18
|
-
var auth = require('./auth-
|
|
16
|
+
var logger = require('./logger-Dhc0l3xH.cjs');
|
|
17
|
+
var index$2 = require('./index-CoBaGAA4.cjs');
|
|
18
|
+
var auth = require('./auth-DpIHm7Lb.cjs');
|
|
19
19
|
var child_process = require('child_process');
|
|
20
|
-
var _package = require('./package-
|
|
21
|
-
var doctor = require('./doctor-
|
|
22
|
-
var spawnHappyCLI = require('./spawnHappyCLI-
|
|
23
|
-
var persistence = require('./persistence-
|
|
24
|
-
var controlClient = require('./controlClient-
|
|
25
|
-
var sessionOps = require('./sessionOps-
|
|
20
|
+
var _package = require('./package-CAmlKYcH.cjs');
|
|
21
|
+
var doctor = require('./doctor-DHCmWcwR.cjs');
|
|
22
|
+
var spawnHappyCLI = require('./spawnHappyCLI-CeWgULMt.cjs');
|
|
23
|
+
var persistence = require('./persistence-05BAS4Ou.cjs');
|
|
24
|
+
var controlClient = require('./controlClient-Bfwe0Xpt.cjs');
|
|
25
|
+
var sessionOps = require('./sessionOps-CvmOHwGP.cjs');
|
|
26
26
|
var index = require('./index-44o_qMvE.cjs');
|
|
27
27
|
var fastify = require('fastify');
|
|
28
28
|
var z = require('zod');
|
|
@@ -31,37 +31,37 @@ var authRelay = require('./authRelay-Dy1qU9td.cjs');
|
|
|
31
31
|
var node_crypto = require('node:crypto');
|
|
32
32
|
var previewPath = require('./previewPath-B0rBdhy1.cjs');
|
|
33
33
|
var backgroundTaskActivity = require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
34
|
-
var rateLimitWindows = require('./rateLimitWindows-
|
|
35
|
-
var peerTools = require('./peerTools-
|
|
34
|
+
var rateLimitWindows = require('./rateLimitWindows-CpSOlXBt.cjs');
|
|
35
|
+
var peerTools = require('./peerTools-dgllF1wT.cjs');
|
|
36
36
|
var os = require('node:os');
|
|
37
|
-
var remoteSessionClient = require('./remoteSessionClient-
|
|
38
|
-
var bootstrap = require('./bootstrap-
|
|
39
|
-
var index$1 = require('./index-
|
|
37
|
+
var remoteSessionClient = require('./remoteSessionClient-BLWFXMBo.cjs');
|
|
38
|
+
var bootstrap = require('./bootstrap-CsZO_jkL.cjs');
|
|
39
|
+
var index$1 = require('./index-DDOCSeEj.cjs');
|
|
40
40
|
var require$$0 = require('fs');
|
|
41
41
|
var require$$1 = require('path');
|
|
42
42
|
var node_child_process = require('node:child_process');
|
|
43
43
|
var projectPath = require('./projectPath-C3ioB4Bu.cjs');
|
|
44
44
|
var doctorReadiness = require('./doctorReadiness-Dl6yRQCy.cjs');
|
|
45
|
-
var machineMetadata = require('./machineMetadata-
|
|
45
|
+
var machineMetadata = require('./machineMetadata-ixKckJ7k.cjs');
|
|
46
46
|
var fileStore = require('./fileStore-7qhnbs6N.cjs');
|
|
47
47
|
var pi = require('./pi-DlsrPCTa.cjs');
|
|
48
48
|
var codexAccount = require('./codexAccount-D-OBY29W.cjs');
|
|
49
49
|
var require$$3 = require('crypto');
|
|
50
50
|
var detectCLI = require('./detectCLI-BuYR_Qxe.cjs');
|
|
51
|
-
var handleResumeCommand = require('./handleResumeCommand-
|
|
51
|
+
var handleResumeCommand = require('./handleResumeCommand-uKzhaOVC.cjs');
|
|
52
52
|
var webPanels = require('./webPanels-FCgFKvVe.cjs');
|
|
53
53
|
var promises = require('node:fs/promises');
|
|
54
54
|
var cliUpdate = require('./cliUpdate-DsKXPFYp.cjs');
|
|
55
|
-
var client = require('./client-
|
|
56
|
-
var sessionLock = require('./sessionLock-
|
|
57
|
-
var client$1 = require('./client-
|
|
55
|
+
var client = require('./client-CNWx72ZT.cjs');
|
|
56
|
+
var sessionLock = require('./sessionLock-Bjsy90aM.cjs');
|
|
57
|
+
var client$1 = require('./client-Dq7jaxb2.cjs');
|
|
58
58
|
var daemonSupervisor = require('./daemonSupervisor-alqGPANc.cjs');
|
|
59
59
|
var accountService = require('./accountService-Cns8UYGI.cjs');
|
|
60
60
|
var daemonAccounts = require('./daemonAccounts-ciidbU2h.cjs');
|
|
61
61
|
var path$1 = require('./path-B7zW-WwE.cjs');
|
|
62
62
|
var editPaths = require('./editPaths-Bqp4OFPw.cjs');
|
|
63
|
-
var startFileWatcher = require('./startFileWatcher-
|
|
64
|
-
var sync = require('./sync-
|
|
63
|
+
var startFileWatcher = require('./startFileWatcher-CXZYt0y9.cjs');
|
|
64
|
+
var sync = require('./sync-CyUWevwD.cjs');
|
|
65
65
|
var types = require('./types-CRS-srZK.cjs');
|
|
66
66
|
var tmuxSocket = require('./tmuxSocket-Dg11Olx0.cjs');
|
|
67
67
|
var processTermination = require('./processTermination-f17wxlMb.cjs');
|
|
@@ -69,30 +69,30 @@ var doctor$1 = require('./doctor-CJpFhHoK.cjs');
|
|
|
69
69
|
var resources = require('./resources-BZ_Be0qM.cjs');
|
|
70
70
|
var node_util = require('node:util');
|
|
71
71
|
var template = require('./template-3fV9bi0X.cjs');
|
|
72
|
-
var client$2 = require('./client-
|
|
72
|
+
var client$2 = require('./client-xV99weGP.cjs');
|
|
73
73
|
var loginShellEnv = require('./loginShellEnv-BkuYtExZ.cjs');
|
|
74
74
|
var store = require('./store-Cpb1LMNW.cjs');
|
|
75
|
-
require('./acpSessionResume-
|
|
76
|
-
require('./pushNotifications-
|
|
75
|
+
require('./acpSessionResume-C8Kd8eK6.cjs');
|
|
76
|
+
require('./pushNotifications-DaVlLe7N.cjs');
|
|
77
77
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
78
|
-
require('./reconnectGate-
|
|
78
|
+
require('./reconnectGate-B_aJrehH.cjs');
|
|
79
79
|
require('node:events');
|
|
80
80
|
require('socket.io-client');
|
|
81
81
|
require('./limits-C-a7gr04.cjs');
|
|
82
|
-
require('./time-
|
|
83
|
-
require('./registerCommonHandlers-
|
|
82
|
+
require('./time-CbOTVtAt.cjs');
|
|
83
|
+
require('./registerCommonHandlers-em2elV3l.cjs');
|
|
84
84
|
require('util');
|
|
85
85
|
require('cross-spawn');
|
|
86
86
|
require('@paralleldrive/cuid2');
|
|
87
87
|
require('chalk');
|
|
88
88
|
require('node:module');
|
|
89
89
|
require('tweetnacl');
|
|
90
|
-
require('./browser-
|
|
90
|
+
require('./browser-DgufCq1K.cjs');
|
|
91
91
|
require('open');
|
|
92
92
|
require('./specialCommands-J3JFOq0J.cjs');
|
|
93
93
|
require('./ids-B6ZC0HGt.cjs');
|
|
94
94
|
require('url');
|
|
95
|
-
require('./localHappyAgentAuth-
|
|
95
|
+
require('./localHappyAgentAuth-WLqXQbc6.cjs');
|
|
96
96
|
require('./claudeAccountEnv-Btp39mfa.cjs');
|
|
97
97
|
require('node:readline');
|
|
98
98
|
require('node-pty');
|
|
@@ -3915,8 +3915,9 @@ function createUpdateController(deps) {
|
|
|
3915
3915
|
outcome = { state, version, detail, at: now(), ...manualVersion ? { source: "manual" } : {} };
|
|
3916
3916
|
deps.publish(snapshot());
|
|
3917
3917
|
}
|
|
3918
|
+
const superseded = () => !!deps.owned && !deps.owned();
|
|
3918
3919
|
async function evaluate() {
|
|
3919
|
-
if (!policy || running) return;
|
|
3920
|
+
if (!policy || running || superseded()) return;
|
|
3920
3921
|
const target = manualVersion ?? policy.autoUpdateVersion ?? null;
|
|
3921
3922
|
if (outcome?.version === target && ["failed", "installed", "manual_required"].includes(outcome.state)) {
|
|
3922
3923
|
const fingerprint = JSON.stringify([policy.checkedAt, outcome.state, outcome.version, outcome.detail, manualVersion, autoUpdateEnabled]);
|
|
@@ -4008,19 +4009,23 @@ function createUpdateController(deps) {
|
|
|
4008
4009
|
}
|
|
4009
4010
|
}
|
|
4010
4011
|
async function refresh() {
|
|
4011
|
-
if (
|
|
4012
|
+
if (superseded()) return "superseded";
|
|
4013
|
+
if (blocked) return "blocked";
|
|
4014
|
+
if (operation) return "busy";
|
|
4012
4015
|
operation = "refresh";
|
|
4013
4016
|
try {
|
|
4014
4017
|
const next = await deps.policy();
|
|
4015
|
-
if (!next) return;
|
|
4018
|
+
if (!next) return "unavailable";
|
|
4016
4019
|
if (manualVersion && !validManualTarget(next, manualVersion)) manualVersion = null;
|
|
4017
4020
|
policy = next;
|
|
4018
4021
|
await evaluate();
|
|
4022
|
+
return policyStale() ? "stale" : "ok";
|
|
4019
4023
|
} finally {
|
|
4020
4024
|
operation = null;
|
|
4021
4025
|
}
|
|
4022
4026
|
}
|
|
4023
4027
|
async function retry(version) {
|
|
4028
|
+
if (superseded()) return { error: "daemon_superseded" };
|
|
4024
4029
|
if (operation || blocked) return { error: blocked ? "manual_recovery_required" : "update_in_progress" };
|
|
4025
4030
|
if (typeof version !== "string" || outcome?.state !== "failed" || outcome.version !== version) {
|
|
4026
4031
|
return { error: "no_matching_failed_update" };
|
|
@@ -4045,6 +4050,7 @@ function createUpdateController(deps) {
|
|
|
4045
4050
|
}
|
|
4046
4051
|
}
|
|
4047
4052
|
async function request(version) {
|
|
4053
|
+
if (superseded()) return { error: "daemon_superseded" };
|
|
4048
4054
|
if (operation || blocked) return { error: blocked ? "manual_recovery_required" : "update_in_progress" };
|
|
4049
4055
|
operation = "request";
|
|
4050
4056
|
try {
|
|
@@ -4088,7 +4094,8 @@ function createUpdateController(deps) {
|
|
|
4088
4094
|
handoverHold = { reason, at: now() };
|
|
4089
4095
|
publish("failed", manualVersion ?? policy?.autoUpdateVersion ?? null, "handover_preflight_failed");
|
|
4090
4096
|
}
|
|
4091
|
-
|
|
4097
|
+
const policyStale = () => !policy || now() - policy.checkedAt > 65 * 6e4;
|
|
4098
|
+
return { refresh, retry, request, tick, withHandover, holdHandover, policyStale, isRunning: () => running, currentTarget: () => policy?.autoUpdateVersion ?? null };
|
|
4092
4099
|
}
|
|
4093
4100
|
|
|
4094
4101
|
const defaults = {
|
|
@@ -4297,6 +4304,132 @@ function createPolicyAnnouncementHandler(deps) {
|
|
|
4297
4304
|
};
|
|
4298
4305
|
}
|
|
4299
4306
|
|
|
4307
|
+
const POLICY_REFRESH_MIN_INTERVAL_MS = 5 * 6e4;
|
|
4308
|
+
const POLICY_REFRESH_RETRY_MS = 3e4;
|
|
4309
|
+
const POLICY_REFRESH_MAX_BACKOFF_MS = 30 * 6e4;
|
|
4310
|
+
const WAKE_GAP_SLACK_MS = 2 * 6e4;
|
|
4311
|
+
function createPolicyRefreshTrigger(deps) {
|
|
4312
|
+
const now = deps.now ?? Date.now;
|
|
4313
|
+
const minIntervalMs = deps.minIntervalMs ?? POLICY_REFRESH_MIN_INTERVAL_MS;
|
|
4314
|
+
const retryMs = deps.retryMs ?? POLICY_REFRESH_RETRY_MS;
|
|
4315
|
+
const maxBackoffMs = deps.maxBackoffMs ?? POLICY_REFRESH_MAX_BACKOFF_MS;
|
|
4316
|
+
const setTimer = deps.setTimer ?? ((fn, ms) => {
|
|
4317
|
+
const t = setTimeout(fn, ms);
|
|
4318
|
+
t.unref?.();
|
|
4319
|
+
return t;
|
|
4320
|
+
});
|
|
4321
|
+
const clearTimer = deps.clearTimer ?? ((handle) => clearTimeout(handle));
|
|
4322
|
+
const log = (message, level) => deps.log?.(message, level);
|
|
4323
|
+
let lastSuccessAt = null;
|
|
4324
|
+
let lastAttemptAt = null;
|
|
4325
|
+
let lastBypassAt = null;
|
|
4326
|
+
let failures = 0;
|
|
4327
|
+
let inFlight = false;
|
|
4328
|
+
let timer = null;
|
|
4329
|
+
let stopped = false;
|
|
4330
|
+
const backoff = (n) => n <= 0 ? retryMs : Math.min(retryMs * 2 ** (n - 1), maxBackoffMs);
|
|
4331
|
+
function earliestRun(reason) {
|
|
4332
|
+
const windowEnd = lastSuccessAt === null ? 0 : lastSuccessAt + minIntervalMs;
|
|
4333
|
+
const retryAt = lastAttemptAt === null ? 0 : lastAttemptAt + backoff(failures);
|
|
4334
|
+
if (retryAt <= Math.max(windowEnd, now())) return { at: windowEnd, bypass: false };
|
|
4335
|
+
const mayBypass = (reason === "connect" || reason === "wake") && (lastBypassAt === null || now() - lastBypassAt >= minIntervalMs);
|
|
4336
|
+
return mayBypass ? { at: windowEnd, bypass: true } : { at: retryAt, bypass: false };
|
|
4337
|
+
}
|
|
4338
|
+
function defer(ms) {
|
|
4339
|
+
if (timer !== null) return;
|
|
4340
|
+
timer = setTimer(() => {
|
|
4341
|
+
timer = null;
|
|
4342
|
+
request("scheduled");
|
|
4343
|
+
}, Math.max(0, ms));
|
|
4344
|
+
}
|
|
4345
|
+
function run(reason) {
|
|
4346
|
+
inFlight = true;
|
|
4347
|
+
lastAttemptAt = now();
|
|
4348
|
+
log(`CLI update policy refresh (${reason})`, failures === 0 ? "warn" : "debug");
|
|
4349
|
+
void deps.refresh().catch(() => "unavailable").then((result) => {
|
|
4350
|
+
inFlight = false;
|
|
4351
|
+
if (result === "superseded") {
|
|
4352
|
+
stop();
|
|
4353
|
+
return;
|
|
4354
|
+
}
|
|
4355
|
+
if (result === "ok") {
|
|
4356
|
+
if (failures > 0) log(`CLI update policy refresh recovered after ${failures} failed attempt(s)`, "warn");
|
|
4357
|
+
lastSuccessAt = now();
|
|
4358
|
+
failures = 0;
|
|
4359
|
+
return;
|
|
4360
|
+
}
|
|
4361
|
+
if (result === "busy") lastAttemptAt = now();
|
|
4362
|
+
else {
|
|
4363
|
+
if (result === "stale") lastSuccessAt = now();
|
|
4364
|
+
failures += 1;
|
|
4365
|
+
const stepUp = failures === 1 || backoff(failures) > backoff(failures - 1);
|
|
4366
|
+
const next = result === "blocked" ? "waiting for the next connect / wake / hourly check" : `next try in ${Math.round(backoff(failures) / 1e3)}s`;
|
|
4367
|
+
log(`CLI update policy refresh (${reason}) read no fresh policy (${result}, ${failures} in a row); ${next}`, stepUp ? "warn" : "debug");
|
|
4368
|
+
}
|
|
4369
|
+
if (stopped || result === "blocked") return;
|
|
4370
|
+
defer(earliestRun("scheduled").at - now());
|
|
4371
|
+
});
|
|
4372
|
+
}
|
|
4373
|
+
function request(reason) {
|
|
4374
|
+
if (stopped) return "stopped";
|
|
4375
|
+
if (inFlight) return "in-flight";
|
|
4376
|
+
const { at, bypass } = earliestRun(reason);
|
|
4377
|
+
const wait = at - now();
|
|
4378
|
+
if (wait > 0) {
|
|
4379
|
+
defer(wait);
|
|
4380
|
+
return "deferred";
|
|
4381
|
+
}
|
|
4382
|
+
if (bypass) lastBypassAt = now();
|
|
4383
|
+
if (timer !== null) {
|
|
4384
|
+
clearTimer(timer);
|
|
4385
|
+
timer = null;
|
|
4386
|
+
}
|
|
4387
|
+
run(reason);
|
|
4388
|
+
return "run";
|
|
4389
|
+
}
|
|
4390
|
+
function stop() {
|
|
4391
|
+
stopped = true;
|
|
4392
|
+
if (timer !== null) clearTimer(timer);
|
|
4393
|
+
timer = null;
|
|
4394
|
+
}
|
|
4395
|
+
return {
|
|
4396
|
+
request,
|
|
4397
|
+
/** Any other refresh (startup, hourly, announcement) that read a policy restarts the window (and a fresh one ends the backoff); one that found us superseded stops it. */
|
|
4398
|
+
noteRefreshed(result) {
|
|
4399
|
+
if (result === "ok" || result === "stale") lastSuccessAt = now();
|
|
4400
|
+
if (result === "ok") failures = 0;
|
|
4401
|
+
else if (result === "superseded") stop();
|
|
4402
|
+
},
|
|
4403
|
+
stop
|
|
4404
|
+
};
|
|
4405
|
+
}
|
|
4406
|
+
function createWakeDetector(intervalMs, now = Date.now, slackMs = WAKE_GAP_SLACK_MS) {
|
|
4407
|
+
let last = null;
|
|
4408
|
+
return {
|
|
4409
|
+
/** Call once per heartbeat; true when the process was just suspended. */
|
|
4410
|
+
beat() {
|
|
4411
|
+
const at = now();
|
|
4412
|
+
const woke = last !== null && at - last > intervalMs + slackMs;
|
|
4413
|
+
last = at;
|
|
4414
|
+
return woke;
|
|
4415
|
+
}
|
|
4416
|
+
};
|
|
4417
|
+
}
|
|
4418
|
+
|
|
4419
|
+
function createDaemonOwnership(deps) {
|
|
4420
|
+
let superseded = false;
|
|
4421
|
+
return {
|
|
4422
|
+
owns() {
|
|
4423
|
+
if (superseded) return false;
|
|
4424
|
+
const ownerPid = deps.statePid();
|
|
4425
|
+
if (ownerPid === null || ownerPid === deps.pid) return true;
|
|
4426
|
+
superseded = true;
|
|
4427
|
+
deps.onSuperseded(ownerPid);
|
|
4428
|
+
return false;
|
|
4429
|
+
}
|
|
4430
|
+
};
|
|
4431
|
+
}
|
|
4432
|
+
|
|
4300
4433
|
const HARNESS_INSTALL_CATALOG = Object.freeze({
|
|
4301
4434
|
claude: Object.freeze({ packages: [{ name: "@anthropic-ai/claude-code", spec: "latest" }], commands: ["claude"], minNode: "22.0.0", scripts: true }),
|
|
4302
4435
|
codex: Object.freeze({ packages: [{ name: "@openai/codex", spec: "latest" }], commands: ["codex"], minNode: "16.0.0", scripts: false }),
|
|
@@ -8919,6 +9052,14 @@ async function startDaemon() {
|
|
|
8919
9052
|
host: initialMachineMetadata.host
|
|
8920
9053
|
})).then(() => logger.logger.debug(`[DAEMON RUN] claimed the machine record for host ${initialMachineMetadata.host}`)).catch((error) => logger.logger.debug("[DAEMON RUN] could not refresh the recorded host:", error));
|
|
8921
9054
|
}
|
|
9055
|
+
const daemonOwnership = createDaemonOwnership({
|
|
9056
|
+
pid: process.pid,
|
|
9057
|
+
statePid: persistence.readDaemonStatePidSync,
|
|
9058
|
+
onSuperseded: (ownerPid) => {
|
|
9059
|
+
logger.logger.debug(`[DAEMON RUN] Somehow a different daemon (pid ${ownerPid}) was started without killing us. We should kill ourselves.`);
|
|
9060
|
+
requestShutdown("exception", "A different daemon was started without killing us. We should kill ourselves.");
|
|
9061
|
+
}
|
|
9062
|
+
});
|
|
8922
9063
|
let lastUpdateLog = "";
|
|
8923
9064
|
let harnessInstaller = null;
|
|
8924
9065
|
let handoverInFlight = false;
|
|
@@ -8941,7 +9082,9 @@ async function startDaemon() {
|
|
|
8941
9082
|
installFenced: () => !!harnessInstaller?.isRunning(),
|
|
8942
9083
|
busyGraceMs: resolveBusyInstallGrace(process.env.HAPPY_CLI_UPDATE_BUSY_GRACE_MS),
|
|
8943
9084
|
lastInstall: lastInstallStore(configuration.configuration.happyHomeDir),
|
|
9085
|
+
owned: daemonOwnership.owns,
|
|
8944
9086
|
publish: (state) => {
|
|
9087
|
+
if (!daemonOwnership.owns()) return;
|
|
8945
9088
|
cliUpdateStateRef = state;
|
|
8946
9089
|
fileState = { ...fileState, cliUpdate: state };
|
|
8947
9090
|
persistence.writeDaemonState(fileState);
|
|
@@ -8978,10 +9121,17 @@ async function startDaemon() {
|
|
|
8978
9121
|
relayMoveInFlight = null;
|
|
8979
9122
|
});
|
|
8980
9123
|
});
|
|
8981
|
-
const
|
|
9124
|
+
const policyRefresh = createPolicyRefreshTrigger({
|
|
9125
|
+
refresh: () => updateController.refresh(),
|
|
9126
|
+
log: (message, level) => level === "warn" ? logger.logger.warn(`[DAEMON RUN] ${message}`) : logger.logger.debug(`[DAEMON RUN] ${message}`)
|
|
9127
|
+
});
|
|
9128
|
+
const refreshCliUpdate = () => updateController.refresh().then(policyRefresh.noteRefreshed).catch((error) => {
|
|
8982
9129
|
logger.logger.debug("[DAEMON RUN] CLI update policy check failed:", error);
|
|
8983
9130
|
});
|
|
8984
|
-
|
|
9131
|
+
apiMachine.setControlConnectedHandler(() => {
|
|
9132
|
+
policyRefresh.request("connect");
|
|
9133
|
+
});
|
|
9134
|
+
policyRefresh.request("startup");
|
|
8985
9135
|
const cliUpdateIntervalMs = cliUpdate.resolveCliUpdateCheckInterval(process.env.HAPPY_CLI_UPDATE_CHECK_INTERVAL);
|
|
8986
9136
|
if (process.env.HAPPY_CLI_UPDATE_CHECK_INTERVAL && cliUpdateIntervalMs === cliUpdate.DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS && process.env.HAPPY_CLI_UPDATE_CHECK_INTERVAL.trim() !== String(cliUpdate.DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS)) {
|
|
8987
9137
|
logger.logger.warn(`[DAEMON RUN] Ignoring invalid HAPPY_CLI_UPDATE_CHECK_INTERVAL; using ${cliUpdate.DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS}ms`);
|
|
@@ -9018,6 +9168,7 @@ async function startDaemon() {
|
|
|
9018
9168
|
});
|
|
9019
9169
|
apiMachine.setHarnessInstallHandler((params) => harnessInstaller.request(params));
|
|
9020
9170
|
const heartbeatIntervalMs = parseInt(process.env.HAPPY_DAEMON_HEARTBEAT_INTERVAL || "60000");
|
|
9171
|
+
const wakeDetector = createWakeDetector(heartbeatIntervalMs);
|
|
9021
9172
|
const restartOnStaleVersionAndHeartbeat = setInterval(serialTask(async () => {
|
|
9022
9173
|
try {
|
|
9023
9174
|
if (process.env.DEBUG) {
|
|
@@ -9029,6 +9180,7 @@ async function startDaemon() {
|
|
|
9029
9180
|
onChildExited(pid);
|
|
9030
9181
|
}
|
|
9031
9182
|
}
|
|
9183
|
+
if (!daemonOwnership.owns()) return;
|
|
9032
9184
|
await updateController.tick();
|
|
9033
9185
|
await updateController.withHandover(async () => {
|
|
9034
9186
|
handoverInFlight = true;
|
|
@@ -9065,6 +9217,7 @@ async function startDaemon() {
|
|
|
9065
9217
|
clearInterval(restartOnStaleVersionAndHeartbeat);
|
|
9066
9218
|
clearInterval(cliUpdateInterval);
|
|
9067
9219
|
policyAnnouncements.stop();
|
|
9220
|
+
policyRefresh.stop();
|
|
9068
9221
|
stopAgentVersionChecks();
|
|
9069
9222
|
claudeAuthService.stop();
|
|
9070
9223
|
stopAccountWatch();
|
|
@@ -9092,12 +9245,9 @@ async function startDaemon() {
|
|
|
9092
9245
|
handoverInFlight = false;
|
|
9093
9246
|
}
|
|
9094
9247
|
});
|
|
9095
|
-
|
|
9096
|
-
|
|
9097
|
-
|
|
9098
|
-
requestShutdown("exception", "A different daemon was started without killing us. We should kill ourselves.");
|
|
9099
|
-
return;
|
|
9100
|
-
}
|
|
9248
|
+
if (!daemonOwnership.owns()) return;
|
|
9249
|
+
const woke = wakeDetector.beat();
|
|
9250
|
+
if (woke || updateController.policyStale()) policyRefresh.request(woke ? "wake" : "stale");
|
|
9101
9251
|
try {
|
|
9102
9252
|
fileState = withDaemonHeartbeat(fileState, (/* @__PURE__ */ new Date()).toLocaleString());
|
|
9103
9253
|
persistence.writeDaemonState(fileState);
|
|
@@ -9209,6 +9359,7 @@ async function startDaemon() {
|
|
|
9209
9359
|
clearInterval(cliUpdateInterval);
|
|
9210
9360
|
clearInterval(autoRestartSweep);
|
|
9211
9361
|
policyAnnouncements.stop();
|
|
9362
|
+
policyRefresh.stop();
|
|
9212
9363
|
stopAgentVersionChecks();
|
|
9213
9364
|
await apiMachine.updateDaemonState((state) => ({
|
|
9214
9365
|
...state,
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import os from 'node:os';
|
|
2
|
-
import { A as AUTO_RESTART_CAPABILITY, c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, t as takeAutoRestartedEvent, 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 { c as createSessionForStartup, H as HibernationProbe, a as commitHibernation } from './startupSessionCreate-
|
|
2
|
+
import { A as AUTO_RESTART_CAPABILITY, c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, t as takeAutoRestartedEvent, e as exitCursorStamp } from './sessionLock-CVjlaRSL.mjs';
|
|
3
|
+
import { r as readSettings, H as HIBERNATION_CAPABILITY, a as resolveCheckMs, l as latchKeepAwake, e as evaluateWrapperIdle } from './persistence-EuUaQKL7.mjs';
|
|
4
|
+
import { c as createSessionForStartup, H as HibernationProbe, a as commitHibernation } from './startupSessionCreate-D8hODW7I.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-
|
|
6
|
+
import { c as connectionState, A as ApiClient, s as startOfflineReconnection } from './api-Cu1OFHDM.mjs';
|
|
7
|
+
import { l as logger } from './logger-BEVIGYKL.mjs';
|
|
8
|
+
import { s as spawnOriginTags, a as sessionWorktreeMetadata } from './createSessionMetadata-tmhDzhJZ.mjs';
|
|
9
|
+
import { p as packageJson } from './package-aOUtHYRZ.mjs';
|
|
10
10
|
import { P as PROMPT_QUEUE_CAPABILITY, a as PROJECT_SESSION_CAPABILITY, R as RUN_INTENT_CAPABILITY, C as CLAUDE_CONFIG_MODEL_CAPABILITY, A as AGENT_PROFILE_SESSION_CAPABILITY, I as ISSUE_SESSION_CAPABILITY, r as restoredEffort, b as restoredModel } from './index-CiRMvS73.mjs';
|
|
11
11
|
import { D as DEFAULT_CLAUDE_PERMISSION_MODE, r as registerRunIntentRpc, a as recordRunIntents, w as withoutEffort } from './defaultPermissionMode-DgeiMMqy.mjs';
|
|
12
12
|
import { F as FORK_BACKFILL_CAPABILITY, p as publishForkBackfillWhenCommitted } from './forkBackfill-DYIjlN1Z.mjs';
|
|
13
|
-
import { c as configuration } from './configuration-
|
|
13
|
+
import { c as configuration } from './configuration-CQaLZMa-.mjs';
|
|
14
14
|
import { l as loadWrapperAccount } from './wrapperAccount-z8Swrd08.mjs';
|
|
15
15
|
import { S as SPAWN_ACCOUNT_ENV } from './store-DWmjM4Ex.mjs';
|
|
16
|
-
import { n as notifyDaemonSessionStarted, c as checkDaemonHibernation } from './controlClient-
|
|
17
|
-
import { g as getInitialMachineMetadata } from './machineMetadata-
|
|
16
|
+
import { n as notifyDaemonSessionStarted, c as checkDaemonHibernation } from './controlClient-Cqhd8ynk.mjs';
|
|
17
|
+
import { g as getInitialMachineMetadata } from './machineMetadata-BQdp_ihk.mjs';
|
|
18
18
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
19
19
|
import { resolve, join } from 'node:path';
|
|
20
20
|
import { a as applySandboxPermissionPolicy, r as resolveInitialClaudePermissionMode, m as mapToClaudeMode, b as reconcilePublishedPermissionMode } from './permissionMode-CH4FoZfU.mjs';
|
|
21
21
|
import { d as decodeBase64, e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
|
|
22
22
|
import { readFile } from 'node:fs/promises';
|
|
23
|
-
import { C as CLAUDE_ATTACHMENT_KINDS, s as stripAttachmentManifest } from './attachmentContent-
|
|
23
|
+
import { C as CLAUDE_ATTACHMENT_KINDS, s as stripAttachmentManifest } from './attachmentContent-Dq8P5ODq.mjs';
|
|
24
24
|
import { T as TranscriptPathHints } from './transcriptCursor-B7T_gkQ0.mjs';
|
|
25
25
|
import { p as planClaudeStartup } from './startupPlan-DFMyNgAs.mjs';
|
|
26
26
|
import { t as takeReconnectEnv } from './reconnectEnv-DeSvHl3q.mjs';
|
|
@@ -32,30 +32,30 @@ import 'node:child_process';
|
|
|
32
32
|
import './processTreeSnapshot-fuwxC0fr.mjs';
|
|
33
33
|
import 'zod';
|
|
34
34
|
import 'axios';
|
|
35
|
-
import './pushNotifications-
|
|
35
|
+
import './pushNotifications-B7Ga8Zyf.mjs';
|
|
36
36
|
import './contentLogMetadata-BlWI0egu.mjs';
|
|
37
|
-
import './reconnectGate-
|
|
37
|
+
import './reconnectGate-DO_ZQmJE.mjs';
|
|
38
38
|
import 'os';
|
|
39
39
|
import 'child_process';
|
|
40
40
|
import 'node:events';
|
|
41
41
|
import 'socket.io-client';
|
|
42
42
|
import './limits-DIo7rEBR.mjs';
|
|
43
|
-
import './time-
|
|
44
|
-
import './registerCommonHandlers-
|
|
43
|
+
import './time-BQWf06hA.mjs';
|
|
44
|
+
import './registerCommonHandlers-BEpK4WD2.mjs';
|
|
45
45
|
import 'util';
|
|
46
46
|
import 'fs/promises';
|
|
47
47
|
import 'crypto';
|
|
48
48
|
import 'path';
|
|
49
49
|
import 'cross-spawn';
|
|
50
50
|
import '@paralleldrive/cuid2';
|
|
51
|
-
import './sync-
|
|
51
|
+
import './sync-BfM5OKSS.mjs';
|
|
52
52
|
import './backgroundTaskActivity-8PdPxrvy.mjs';
|
|
53
53
|
import 'chalk';
|
|
54
54
|
import 'node:util';
|
|
55
55
|
import './claudeAccountEnv-DowsOlDB.mjs';
|
|
56
56
|
import './detectCLI-CSGMlV51.mjs';
|
|
57
57
|
import 'fs';
|
|
58
|
-
import './localHappyAgentAuth-
|
|
58
|
+
import './localHappyAgentAuth-BUX4E1ug.mjs';
|
|
59
59
|
import 'tweetnacl';
|
|
60
60
|
import './fsMkdir-DumgLTzR.mjs';
|
|
61
61
|
import 'url';
|
|
@@ -66,7 +66,7 @@ const CLAUDE_EFFORTS = ["low", "medium", "high", "xhigh", "max"];
|
|
|
66
66
|
function restoredClaudeEffort(effort) {
|
|
67
67
|
return CLAUDE_EFFORTS.includes(effort ?? "") ? effort : void 0;
|
|
68
68
|
}
|
|
69
|
-
const importRunClaudeDeps = () => import('./runClaudeDeps-
|
|
69
|
+
const importRunClaudeDeps = () => import('./runClaudeDeps-D83tR1KP.mjs');
|
|
70
70
|
async function runClaude(credentials, options = {}) {
|
|
71
71
|
logger.debug(`[CLAUDE] ===== CLAUDE MODE STARTING =====`);
|
|
72
72
|
logger.debug(`[CLAUDE] This is the Claude agent, NOT Gemini`);
|
|
@@ -82,7 +82,7 @@ async function runClaude(credentials, options = {}) {
|
|
|
82
82
|
const isAssistantVariant = process.env.HAPPY_SESSION_VARIANT === "assistant";
|
|
83
83
|
if (isAssistantVariant) {
|
|
84
84
|
try {
|
|
85
|
-
const { bootstrapAssistantHome } = await import('./bootstrap-
|
|
85
|
+
const { bootstrapAssistantHome } = await import('./bootstrap-BTYJf2w8.mjs');
|
|
86
86
|
await bootstrapAssistantHome();
|
|
87
87
|
} catch (error) {
|
|
88
88
|
logger.debug("[START] Assistant home bootstrap failed:", error);
|
|
@@ -210,7 +210,7 @@ async function runClaude(credentials, options = {}) {
|
|
|
210
210
|
}
|
|
211
211
|
if (!response) {
|
|
212
212
|
let offlineSessionId = null;
|
|
213
|
-
const { claudeLocal } = await import('./claudeLocal-
|
|
213
|
+
const { claudeLocal } = await import('./claudeLocal-ylDKcvX0.mjs');
|
|
214
214
|
const { createSessionScanner: createSessionScanner2 } = await loadDeps();
|
|
215
215
|
const reconnection = startOfflineReconnection({
|
|
216
216
|
serverUrl: configuration.serverUrl,
|
|
@@ -1,28 +1,28 @@
|
|
|
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 startupSessionCreate = require('./startupSessionCreate-
|
|
4
|
+
var sessionLock = require('./sessionLock-Bjsy90aM.cjs');
|
|
5
|
+
var persistence = require('./persistence-05BAS4Ou.cjs');
|
|
6
|
+
var startupSessionCreate = require('./startupSessionCreate-CycB-kwu.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-
|
|
8
|
+
var api = require('./api-B-FB-s4z.cjs');
|
|
9
|
+
var logger = require('./logger-Dhc0l3xH.cjs');
|
|
10
|
+
var createSessionMetadata = require('./createSessionMetadata-D_qa01wq.cjs');
|
|
11
|
+
var _package = require('./package-CAmlKYcH.cjs');
|
|
12
12
|
var index = require('./index-44o_qMvE.cjs');
|
|
13
13
|
var defaultPermissionMode = require('./defaultPermissionMode-Cs_Tv83b.cjs');
|
|
14
14
|
var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
|
|
15
|
-
var configuration = require('./configuration-
|
|
15
|
+
var configuration = require('./configuration-DZUnfWp2.cjs');
|
|
16
16
|
var wrapperAccount = require('./wrapperAccount-nGGMJDBF.cjs');
|
|
17
17
|
var store = require('./store-Cpb1LMNW.cjs');
|
|
18
|
-
var controlClient = require('./controlClient-
|
|
19
|
-
var machineMetadata = require('./machineMetadata-
|
|
18
|
+
var controlClient = require('./controlClient-Bfwe0Xpt.cjs');
|
|
19
|
+
var machineMetadata = require('./machineMetadata-ixKckJ7k.cjs');
|
|
20
20
|
var projectPath = require('./projectPath-C3ioB4Bu.cjs');
|
|
21
21
|
var path = require('node:path');
|
|
22
22
|
var permissionMode = require('./permissionMode-CrV-XuMs.cjs');
|
|
23
23
|
var authRelay = require('./authRelay-Dy1qU9td.cjs');
|
|
24
24
|
var promises = require('node:fs/promises');
|
|
25
|
-
var attachmentContent = require('./attachmentContent-
|
|
25
|
+
var attachmentContent = require('./attachmentContent-dXwHB_3C.cjs');
|
|
26
26
|
var transcriptCursor = require('./transcriptCursor-DcXGLeSc.cjs');
|
|
27
27
|
var startupPlan = require('./startupPlan-BLMbfQIH.cjs');
|
|
28
28
|
var reconnectEnv = require('./reconnectEnv-B31lY4nR.cjs');
|
|
@@ -34,30 +34,30 @@ require('node:child_process');
|
|
|
34
34
|
require('./processTreeSnapshot-D5iNblp6.cjs');
|
|
35
35
|
require('zod');
|
|
36
36
|
require('axios');
|
|
37
|
-
require('./pushNotifications-
|
|
37
|
+
require('./pushNotifications-DaVlLe7N.cjs');
|
|
38
38
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
39
|
-
require('./reconnectGate-
|
|
39
|
+
require('./reconnectGate-B_aJrehH.cjs');
|
|
40
40
|
require('os');
|
|
41
41
|
require('child_process');
|
|
42
42
|
require('node:events');
|
|
43
43
|
require('socket.io-client');
|
|
44
44
|
require('./limits-C-a7gr04.cjs');
|
|
45
|
-
require('./time-
|
|
46
|
-
require('./registerCommonHandlers-
|
|
45
|
+
require('./time-CbOTVtAt.cjs');
|
|
46
|
+
require('./registerCommonHandlers-em2elV3l.cjs');
|
|
47
47
|
require('util');
|
|
48
48
|
require('fs/promises');
|
|
49
49
|
require('crypto');
|
|
50
50
|
require('path');
|
|
51
51
|
require('cross-spawn');
|
|
52
52
|
require('@paralleldrive/cuid2');
|
|
53
|
-
require('./sync-
|
|
53
|
+
require('./sync-CyUWevwD.cjs');
|
|
54
54
|
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
55
55
|
require('chalk');
|
|
56
56
|
require('node:util');
|
|
57
57
|
require('./claudeAccountEnv-Btp39mfa.cjs');
|
|
58
58
|
require('./detectCLI-BuYR_Qxe.cjs');
|
|
59
59
|
require('fs');
|
|
60
|
-
require('./localHappyAgentAuth-
|
|
60
|
+
require('./localHappyAgentAuth-WLqXQbc6.cjs');
|
|
61
61
|
require('tweetnacl');
|
|
62
62
|
require('./fsMkdir-0K3yENml.cjs');
|
|
63
63
|
require('url');
|
|
@@ -68,7 +68,7 @@ const CLAUDE_EFFORTS = ["low", "medium", "high", "xhigh", "max"];
|
|
|
68
68
|
function restoredClaudeEffort(effort) {
|
|
69
69
|
return CLAUDE_EFFORTS.includes(effort ?? "") ? effort : void 0;
|
|
70
70
|
}
|
|
71
|
-
const importRunClaudeDeps = () => Promise.resolve().then(function () { return require('./runClaudeDeps-
|
|
71
|
+
const importRunClaudeDeps = () => Promise.resolve().then(function () { return require('./runClaudeDeps-BHv9FkVz.cjs'); });
|
|
72
72
|
async function runClaude(credentials, options = {}) {
|
|
73
73
|
logger.logger.debug(`[CLAUDE] ===== CLAUDE MODE STARTING =====`);
|
|
74
74
|
logger.logger.debug(`[CLAUDE] This is the Claude agent, NOT Gemini`);
|
|
@@ -84,7 +84,7 @@ async function runClaude(credentials, options = {}) {
|
|
|
84
84
|
const isAssistantVariant = process.env.HAPPY_SESSION_VARIANT === "assistant";
|
|
85
85
|
if (isAssistantVariant) {
|
|
86
86
|
try {
|
|
87
|
-
const { bootstrapAssistantHome } = await Promise.resolve().then(function () { return require('./bootstrap-
|
|
87
|
+
const { bootstrapAssistantHome } = await Promise.resolve().then(function () { return require('./bootstrap-CsZO_jkL.cjs'); });
|
|
88
88
|
await bootstrapAssistantHome();
|
|
89
89
|
} catch (error) {
|
|
90
90
|
logger.logger.debug("[START] Assistant home bootstrap failed:", error);
|
|
@@ -212,7 +212,7 @@ async function runClaude(credentials, options = {}) {
|
|
|
212
212
|
}
|
|
213
213
|
if (!response) {
|
|
214
214
|
let offlineSessionId = null;
|
|
215
|
-
const { claudeLocal } = await Promise.resolve().then(function () { return require('./claudeLocal-
|
|
215
|
+
const { claudeLocal } = await Promise.resolve().then(function () { return require('./claudeLocal-Q0FgzhTu.cjs'); });
|
|
216
216
|
const { createSessionScanner: createSessionScanner2 } = await loadDeps();
|
|
217
217
|
const reconnection = api.startOfflineReconnection({
|
|
218
218
|
serverUrl: configuration.configuration.serverUrl,
|