very-happy-cli 0.2.178 → 0.2.180
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-DCQXHRzT.mjs → AcpBackend-B8Zi30Zh.mjs} +135 -16
- package/dist/{AcpBackend-CDkAQXYf.cjs → AcpBackend-DfRDtMcG.cjs} +135 -16
- package/dist/{AcpSessionManager-DckmUZza.cjs → AcpSessionManager-CASKOnOj.cjs} +38 -4
- package/dist/{AcpSessionManager-BXrQcqwC.mjs → AcpSessionManager-i8Rab0xT.mjs} +38 -4
- package/dist/{BasePermissionHandler-BVlrEhIi.mjs → BasePermissionHandler-26fKbRCm.mjs} +5 -2
- package/dist/{BasePermissionHandler-DyLmKKtO.cjs → BasePermissionHandler-BlM_tfej.cjs} +5 -2
- package/dist/acpSessionResume-B9l54P-X.mjs +67 -0
- package/dist/acpSessionResume-CR5pmgVo.cjs +74 -0
- package/dist/{agentHome-CEp9RMyK.cjs → agentHome-C7Sb7-Tz.cjs} +4 -4
- package/dist/{agentHome-C1xi37as.mjs → agentHome-CmGy0NWv.mjs} +4 -4
- package/dist/{api-JANhFdZV.cjs → api-DM7b1OKj.cjs} +38 -262
- package/dist/{api-Dib0dmqC.mjs → api-Hov8p7CA.mjs} +32 -256
- package/dist/{apiMachine-DNTJidYH.mjs → apiMachine-CwGEhQDT.mjs} +62 -15
- package/dist/{apiMachine-QhK-sKcr.cjs → apiMachine-DkGRj-Ai.cjs} +64 -17
- package/dist/{attachmentContent-bpQTBJ0y.cjs → attachmentContent-CEm13_gF.cjs} +4 -4
- package/dist/{attachmentContent-DkkdpSSJ.mjs → attachmentContent-CIn4iPEk.mjs} +2 -2
- package/dist/{auth-BRjd2esb.mjs → auth-BG1DY0gj.mjs} +5 -5
- package/dist/{auth-DgIV0Cvt.cjs → auth-CBXnm-Mj.cjs} +5 -5
- package/dist/{auth-omWDtgR8.cjs → auth-Dawj7pP5.cjs} +8 -8
- package/dist/{auth-DNct7VUi.mjs → auth-rggxMpEE.mjs} +8 -8
- package/dist/{auto-DKGFOJBo.mjs → auto-CXXLXGeL.mjs} +19 -18
- package/dist/{auto-CI16FZmX.cjs → auto-CbYOfoPS.cjs} +19 -18
- package/dist/{backgroundTaskActivity-BVwJBl02.mjs → backgroundTaskActivity-8PdPxrvy.mjs} +1 -1
- package/dist/{bootstrap-DCQ87Aan.cjs → bootstrap-DoA7okld.cjs} +2 -2
- package/dist/{bootstrap-BUagGC_-.mjs → bootstrap-Dt5I1SOl.mjs} +2 -2
- package/dist/{browser-Dj_DYQEh.mjs → browser-DUNetFT4.mjs} +1 -1
- package/dist/{browser-CSKhc0Bl.cjs → browser-DZ6qRtfH.cjs} +1 -1
- package/dist/{claudeCliPath-U4HHmV4r.cjs → claudeCliPath-GaP3UUz1.cjs} +1 -1
- package/dist/{claudeLocal-CdIVnOZp.cjs → claudeLocal--DNyMOSv.cjs} +8 -7
- package/dist/{claudeLocal-CCCvAeMd.mjs → claudeLocal-OHWQigCl.mjs} +6 -5
- package/dist/{claudeLocalLauncher-BmrpaRYJ.mjs → claudeLocalLauncher-BStvfa7M.mjs} +11 -10
- package/dist/{claudeLocalLauncher-21-xh5gc.cjs → claudeLocalLauncher-BhvPbcyH.cjs} +13 -12
- package/dist/{claudeSessionFork-kYCP1IJB.cjs → claudeSessionFork-Be16vzGc.cjs} +1 -1
- package/dist/{claudeSessionFork-DvxMKAmY.mjs → claudeSessionFork-GAVWhiKG.mjs} +1 -1
- package/dist/{client-C4zKGjiJ.cjs → client-BWjaHKtj.cjs} +2 -2
- package/dist/client-Ca5Pcgy_.mjs +71 -0
- package/dist/{client-CnlkkrZO.mjs → client-CnB7kRCT.mjs} +2 -2
- package/dist/{client-BTX9hsbr.mjs → client-D4uPb1uu.mjs} +3 -3
- package/dist/client-DJplzPjD.cjs +76 -0
- package/dist/{client-Dnza1hgN.cjs → client-D_loZ9IK.cjs} +3 -3
- package/dist/codex/happyMcpStdioBridge.cjs +24 -15
- package/dist/codex/happyMcpStdioBridge.mjs +25 -16
- package/dist/{codexAppServerClient-DvkpQgyv.mjs → codexAppServerClient-CO4G6OS4.mjs} +3 -3
- package/dist/{codexAppServerClient-CRlBWGn3.cjs → codexAppServerClient-PE-12AsW.cjs} +3 -3
- package/dist/{codexCommand-DzxIWXIT.cjs → codexCommand-BNoD1t1C.cjs} +127 -116
- package/dist/{codexCommand-BxjogBzU.mjs → codexCommand-B_xUH79E.mjs} +77 -66
- package/dist/{codexTermination-C28FzlLb.cjs → codexTermination-BmBbizFK.cjs} +7 -2
- package/dist/{codexTermination-ySDNMEhd.mjs → codexTermination-Dx48ma6e.mjs} +7 -2
- package/dist/{config-BFB5uJ4t.cjs → config-CtwEUxUP.cjs} +26 -26
- package/dist/{config-DwfEpFr3.mjs → config-DSu0Blos.mjs} +3 -3
- package/dist/{configuration-4TGMrjul.cjs → configuration-CYO-kPOS.cjs} +1 -1
- package/dist/{configuration-DVrb61aY.mjs → configuration-PxzEJumr.mjs} +1 -1
- package/dist/{connect-C7FPY0PI.mjs → connect-BQrg3TB6.mjs} +15 -15
- package/dist/{connect-QH2VJGBG.cjs → connect-Dq7wndzR.cjs} +28 -28
- package/dist/{context-JoKu0V54.cjs → context-6TP-iz_c.cjs} +1 -1
- package/dist/{context-B3XPVJlj.mjs → context-CJGRRGWW.mjs} +1 -1
- package/dist/{controlClient-BTaZlbC6.cjs → controlClient-Bqv5v5OM.cjs} +3 -3
- package/dist/{controlClient-BYKyGyxj.mjs → controlClient-DoeYovwP.mjs} +4 -4
- package/dist/{createSessionMetadata-8Fuj2-IV.mjs → createSessionMetadata-DDIChCx8.mjs} +2 -2
- package/dist/{createSessionMetadata-B2NynaWZ.cjs → createSessionMetadata-xz767pcG.cjs} +3 -3
- package/dist/{defaultPermissionMode-BEWCqJU-.cjs → defaultPermissionMode-PkZGsQDk.cjs} +2 -2
- package/dist/{defaultPermissionMode-B8kJG9uI.mjs → defaultPermissionMode-i5KzdK09.mjs} +2 -2
- package/dist/{detectCLI-DR9ZaN6B.cjs → detectCLI-BuYR_Qxe.cjs} +4 -4
- package/dist/{deterministicJson-C5ZwZ7hu.mjs → deterministicJson-CTEJDqtS.mjs} +217 -12
- package/dist/{deterministicJson-BjNQsAjO.cjs → deterministicJson-xqA6DaOm.cjs} +222 -16
- package/dist/{doctor-BshRnjLi.cjs → doctor-BrgSlfXn.cjs} +9 -9
- package/dist/{doctor-0BiGwJXk.mjs → doctor-IctjVh9T.mjs} +8 -8
- package/dist/{doctorReadiness-BCZGcN0a.cjs → doctorReadiness-Dl6yRQCy.cjs} +1 -1
- package/dist/{downloadTarget-BN5vZt3K.cjs → downloadTarget-CEb9che-.cjs} +6 -6
- package/dist/{downloadTarget-DJPwAZlu.mjs → downloadTarget-jbOz1egC.mjs} +6 -6
- package/dist/{ensureDaemonRunning-C5QfToCe.cjs → ensureDaemonRunning-D-HyjGIX.cjs} +6 -6
- package/dist/{ensureDaemonRunning-CSmb_mqt.mjs → ensureDaemonRunning-b1e8LCSM.mjs} +5 -5
- package/dist/{handleResumeCommand-BwnUZmbo.cjs → handleResumeCommand-BvWVuRwH.cjs} +23 -7
- package/dist/{handleResumeCommand-CgjpsdDe.mjs → handleResumeCommand-DpaZvm2c.mjs} +22 -6
- package/dist/{index-piJPsTsm.cjs → index-B2p2Mut7.cjs} +259 -53
- package/dist/{index-BehVbAsA.mjs → index-BUNnpGFF.mjs} +256 -50
- package/dist/{index-Bvldtdny.mjs → index-Bsvbgh9e.mjs} +4 -4
- package/dist/{index-BYOZ_8WZ.cjs → index-C64Ufj4D.cjs} +4 -4
- package/dist/{index-Clqlu17M.mjs → index-C6Vn5Eac.mjs} +155 -34
- package/dist/index-CMf5VbzG.mjs +18 -0
- package/dist/index-DmTlDRSL.cjs +24 -0
- package/dist/{index-_l1Sdmbi.cjs → index-Dv0Q48P3.cjs} +156 -33
- package/dist/{index-BRClDe07.cjs → index-F2UejqYs.cjs} +3 -3
- package/dist/{index-BYgfern_.mjs → index-wCbtF4BK.mjs} +3 -3
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-BdvKiOQw.mjs → install-BX3lv3NO.mjs} +1 -1
- package/dist/{install-Cf6AFSWC.cjs → install-BXvf2E3o.cjs} +1 -1
- package/dist/{install-TO4taKW7.cjs → install-C0ANcEAW.cjs} +7 -7
- package/dist/{install-fYWHrPcC.mjs → install-CdzSV7qO.mjs} +3 -3
- package/dist/{installPiTools-BKnXjrVu.cjs → installPiTools-CL_axh_6.cjs} +1 -1
- package/dist/{installTerminalHooks-BQZbvxsZ.cjs → installTerminalHooks-BETLKAtd.cjs} +3 -3
- package/dist/lib.cjs +14 -14
- package/dist/lib.d.cts +239 -2
- package/dist/lib.d.mts +239 -2
- package/dist/lib.mjs +14 -14
- package/dist/{lidState-BeOwj6eW.cjs → lidState-DWGnm2H4.cjs} +1 -1
- package/dist/{lidState-DNMlIhX0.mjs → lidState-bBrmaQd2.mjs} +1 -1
- package/dist/{localHappyAgentAuth-Br-mgogg.cjs → localHappyAgentAuth-DZHQnIW9.cjs} +1 -1
- package/dist/{localHappyAgentAuth-BezKSFDi.mjs → localHappyAgentAuth-Dn1jYDpt.mjs} +1 -1
- package/dist/{logger--vAVtXB_.mjs → logger-BUngm5Xg.mjs} +2 -2
- package/dist/{logger-DXTWlPzP.cjs → logger-CphW5nUE.cjs} +2 -2
- package/dist/machineMetadata-BQm9YTcI.cjs +79 -0
- package/dist/machineMetadata-BXN_bKU3.mjs +68 -0
- package/dist/{main-DoMFJ2Cl.cjs → main-B2UV51nK.cjs} +112 -132
- package/dist/{main-CshDb5-1.mjs → main-DGkdYfEq.mjs} +106 -126
- package/dist/{mcp-pNc1EbQf.cjs → mcp-BFvAEIRz.cjs} +15 -15
- package/dist/{mcp-DKT_lrvQ.mjs → mcp-CbTtbs0f.mjs} +15 -15
- package/dist/{mirrorProtocol-6IFGPpjJ.mjs → mirrorProtocol-BR4luBC0.mjs} +148 -7
- package/dist/{mirrorProtocol-qKflWTX_.cjs → mirrorProtocol-HKPivs5o.cjs} +150 -4
- package/dist/{package-B7B03ejW.mjs → package-7Ld1YMhh.mjs} +8 -7
- package/dist/{package-DY4zTbKS.cjs → package-KhLqBDX9.cjs} +8 -7
- package/dist/panels-C7IVqpJk.mjs +137 -0
- package/dist/panels-Njf6GelF.cjs +142 -0
- package/dist/{peerTools-3R9RUARX.mjs → peerTools-BOlDRyhi.mjs} +60 -10
- package/dist/{peerTools-iy3_6Yc5.cjs → peerTools-DQNlrcqM.cjs} +60 -9
- package/dist/{persistence-BfX72dne.cjs → persistence-9BMYspxG.cjs} +2 -2
- package/dist/{persistence-DTk4sNpd.mjs → persistence-BFUOHW5h.mjs} +3 -3
- package/dist/{piRunnerArgs-CRQVR9o-.cjs → piRunnerArgs-DGaq6VYM.cjs} +8 -2
- package/dist/{piRunnerArgs-AT8QJY7x.mjs → piRunnerArgs-H2pgpA5z.mjs} +7 -1
- package/dist/{piRuntime-BHRT5MKO.cjs → piRuntime-CT5xv_3h.cjs} +2 -2
- package/dist/{piRuntime-E44qTVQ4.mjs → piRuntime-CdN0JAsa.mjs} +2 -2
- package/dist/{piTerminal-hI4WFdWm.cjs → piTerminal-0FBtXTHK.cjs} +18 -18
- package/dist/{piTerminal-De8nbciM.mjs → piTerminal-C4m9YXAV.mjs} +18 -18
- package/dist/processTreeSnapshot-CuLJDNC-.mjs +101 -0
- package/dist/processTreeSnapshot-mDbnuojn.cjs +105 -0
- package/dist/projectPath-C3ioB4Bu.cjs +13 -0
- package/dist/prompt-BOouDaTM.mjs +99 -0
- package/dist/prompt-lgF9IE82.cjs +105 -0
- package/dist/{attachmentLimits-UyFn8fkQ.mjs → pushNotifications-DCiBEVeC.mjs} +307 -3
- package/dist/{attachmentLimits-SqeAHrVC.cjs → pushNotifications-DI92havG.cjs} +308 -2
- package/dist/{index-DFPT4HOO.cjs → query-BETKBrnz.cjs} +25 -5
- package/dist/{index-CEjJnq05.mjs → query-ywZbQUzR.mjs} +26 -3
- package/dist/{rateLimitWindows-XrJiiBpU.mjs → rateLimitWindows-BkfuUB1a.mjs} +1 -1
- package/dist/{rateLimitWindows-Czb7_7cK.cjs → rateLimitWindows-YRIYVdo4.cjs} +1 -1
- package/dist/{registerCommonHandlers-C0_fyBQ0.cjs → registerCommonHandlers-C7a_dUWs.cjs} +30 -30
- package/dist/{registerCommonHandlers-CvIedVRf.mjs → registerCommonHandlers-CTkCvjxt.mjs} +2 -2
- package/dist/{registerKillSessionHandler-DYl7l4Ts.cjs → registerKillSessionHandler-CIsvBrVe.cjs} +6 -6
- package/dist/{registerKillSessionHandler-gwJ5lTf0.mjs → registerKillSessionHandler-CaqqRYq6.mjs} +6 -6
- package/dist/{remoteSessionClient-BRTIOX5b.cjs → remoteSessionClient-D843fkzL.cjs} +5 -5
- package/dist/{remoteSessionClient-DRb2Jr5s.mjs → remoteSessionClient-PP-mOKmw.mjs} +5 -5
- package/dist/{reportProgressTool-B9nCzbkL.cjs → reportProgressTool-14AXr959.cjs} +84 -2
- package/dist/{reportProgressTool-D5tEoXMW.mjs → reportProgressTool-ZOCNjWHr.mjs} +82 -3
- package/dist/{resources-JDPugcDq.cjs → resources-CvIlkzpP.cjs} +30 -0
- package/dist/{resources-BdFBQi8r.mjs → resources-y9jfyO-_.mjs} +30 -0
- package/dist/{run-CKe_WeLW.cjs → run-CAOCYYfT.cjs} +2806 -110
- package/dist/{run-BQ_FGaOL.mjs → run-Dajw2E5j.mjs} +2787 -91
- package/dist/{runClaude-zrrNcQC_.mjs → runClaude-C6oxWYbp.mjs} +49 -47
- package/dist/{runClaude-MHI5IKM-.cjs → runClaude-CRRKt-tm.cjs} +50 -48
- package/dist/{runClaudeDeps-RRw-Nusc.cjs → runClaudeDeps-B1ysqTvx.cjs} +310 -237
- package/dist/{runClaudeDeps-CVBCokOS.mjs → runClaudeDeps-BcZ68cX3.mjs} +297 -226
- package/dist/{runGemini-kipag2ag.mjs → runGemini-D7yKc4wD.mjs} +61 -55
- package/dist/{runGemini-D7Lg9yCr.cjs → runGemini-DtKFXqf-.cjs} +89 -83
- package/dist/{runOpenClaw-C_lRY3Do.mjs → runOpenClaw-C8ilyLP9.mjs} +19 -19
- package/dist/{runOpenClaw-DCcQ0L2N.cjs → runOpenClaw-Cq29mryb.cjs} +20 -20
- package/dist/{sandbox-BSyXFVFp.mjs → sandbox-CbCutma4.mjs} +4 -4
- package/dist/{sandbox-dMwPTmjm.cjs → sandbox-gIj-EuF4.cjs} +4 -4
- package/dist/{selfCheck-DkzDDUsE.cjs → selfCheck-BTGBVthv.cjs} +39 -38
- package/dist/selfCheck-Smt-5Xiq.mjs +85 -0
- package/dist/{send-dxC0miIA.cjs → send-CZf5lLw_.cjs} +8 -8
- package/dist/{send-C-k9nsd3.mjs → send-YZRMQvMJ.mjs} +9 -9
- package/dist/{server-DxoTYNlw.mjs → server-BqwXRzFZ.mjs} +4 -4
- package/dist/{server-B-W6P7Qr.cjs → server-CknFq6xG.cjs} +6 -6
- package/dist/sessionExitLifecycle-CzkLIgNZ.mjs +142 -0
- package/dist/sessionExitLifecycle-DFltxXU8.cjs +148 -0
- package/dist/{sessionLock-DWX6BbiU.cjs → sessionLock-DRZUcKHT.cjs} +38 -5
- package/dist/{sessionLock-DBdtZGOL.mjs → sessionLock-nBXdJxJm.mjs} +36 -5
- package/dist/{sessionOps-BAnr7n8t.cjs → sessionOps-BrGiU9-s.cjs} +10 -5
- package/dist/{sessionOps-BVoXe12O.mjs → sessionOps-C58iDeD5.mjs} +11 -6
- package/dist/{sessionScanner-BtxoeluY.mjs → sessionScanner-Bm57LEXe.mjs} +3 -3
- package/dist/{sessionScanner-CDOYsEUD.cjs → sessionScanner-CaO8bLaG.cjs} +3 -3
- package/dist/{sessions-C3sZJkzI.mjs → sessions-BXyBHo8n.mjs} +40 -18
- package/dist/{sessions-hAitoN-m.cjs → sessions-uzqPCc37.cjs} +39 -16
- package/dist/{setupOfflineReconnection-_eD4cuUT.mjs → setupOfflineReconnection-1Qlek3wl.mjs} +2 -2
- package/dist/{setupOfflineReconnection-C2EeYTFH.cjs → setupOfflineReconnection-DvvVX3TB.cjs} +2 -2
- package/dist/{spawn-Bc9v7pIf.cjs → spawn-DBkodJEO.cjs} +49 -18
- package/dist/{spawn-qNrB2CD_.mjs → spawn-vn93PhYL.mjs} +49 -18
- package/dist/spawnAgents-CgPMWexP.mjs +79 -0
- package/dist/{spawnAgents-BVEaz35W.cjs → spawnAgents-DLNMlhWJ.cjs} +37 -1
- package/dist/{spawnHappyCLI-C2stUioM.mjs → spawnHappyCLI-BjFZc_7V.mjs} +1 -1
- package/dist/{spawnHappyCLI-fzUagkKV.cjs → spawnHappyCLI-DnUZv0X2.cjs} +2 -2
- package/dist/{specialCommands-BJ-nqY4s.cjs → specialCommands-BRufxlqe.cjs} +3 -3
- package/dist/{specialCommands-C6W-rVyh.mjs → specialCommands-D3ND9bdg.mjs} +3 -3
- package/dist/{startFileWatcher-Bqlqjt93.cjs → startFileWatcher-D9cYzZOq.cjs} +1 -1
- package/dist/{startFileWatcher-CR09Snmz.mjs → startFileWatcher-DXJ7yB5v.mjs} +1 -1
- package/dist/startupSessionCreate-kdr3m1uX.cjs +26 -0
- package/dist/startupSessionCreate-uZ6BM0ty.mjs +24 -0
- package/dist/{streamRelay-CJoMk_d2.mjs → streamRelay-DnMCMMfV.mjs} +1 -1
- package/dist/{streamRelay-9kBPpbvU.cjs → streamRelay-Dy6amlzx.cjs} +1 -1
- package/dist/{sync-Dhmtk66S.cjs → sync-Bn-idAoy.cjs} +1 -1
- package/dist/{sync-DbW07iQS.mjs → sync-BvVhDO40.mjs} +1 -1
- package/dist/{systemPrompt-CQcuUmVp.mjs → systemPrompt-CIZcJuJF.mjs} +4 -3
- package/dist/{systemPrompt-3PYi3EUY.cjs → systemPrompt-DlyEk35T.cjs} +4 -3
- package/dist/{teams-DpxLcUU_.cjs → teams-BLeRpDxv.cjs} +8 -8
- package/dist/{teams-CwF4Z2fA.mjs → teams-DLY3B5yi.mjs} +8 -8
- package/dist/{time-A6zR3Iy6.cjs → time-Cjv0zxQO.cjs} +1 -1
- package/dist/{time-BuGWTVP6.mjs → time-D3ETL7Jb.mjs} +1 -1
- package/dist/{titleGenerator-D26gvNaS.cjs → titleGenerator-Cgp5ihFb.cjs} +10 -9
- package/dist/{titleGenerator-BGEzNWC9.mjs → titleGenerator-Uzbd4utr.mjs} +9 -8
- package/dist/{todo-DrZc76H5.mjs → todo-C9Ga-oEM.mjs} +6 -6
- package/dist/{todo-73g3NCIO.cjs → todo-pOMcEECE.cjs} +6 -6
- package/dist/{tools-CxJp4T1T.cjs → tools-BL7Byl_x.cjs} +1 -1
- package/dist/{tools-BtsrQnNS.mjs → tools-Cho7iIWf.mjs} +1 -1
- package/dist/{uninstall-DWNYvewQ.cjs → uninstall-CbayEVoV.cjs} +6 -6
- package/dist/{uninstall-DOb2mTwV.mjs → uninstall-CvZHVY9C.mjs} +3 -3
- package/dist/webPanels-B2_C2-3g.mjs +49 -0
- package/dist/webPanels-FCgFKvVe.cjs +53 -0
- package/package.json +8 -7
- package/dist/machineMetadata-B1H9gNbN.mjs +0 -39
- package/dist/machineMetadata-DcUupMje.cjs +0 -42
- package/dist/messageBuffer-BWlGgR3A.mjs +0 -71
- package/dist/messageBuffer-fJMH6uY8.cjs +0 -73
- package/dist/projectPath-ChLhdOyt.cjs +0 -13
- package/dist/selfCheck-CF7XGJPb.mjs +0 -84
- package/dist/sessionModeFile-ByLbXTbg.mjs +0 -32
- package/dist/sessionModeFile-CLLdidiJ.cjs +0 -36
- package/dist/spawnAgents-Bw6j4tqz.mjs +0 -45
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var axios = require('axios');
|
|
4
|
-
var logger = require('./logger-
|
|
5
|
-
var lidState = require('./lidState-
|
|
4
|
+
var logger = require('./logger-CphW5nUE.cjs');
|
|
5
|
+
var lidState = require('./lidState-DWGnm2H4.cjs');
|
|
6
6
|
var node_events = require('node:events');
|
|
7
7
|
var socket_ioClient = require('socket.io-client');
|
|
8
|
-
var
|
|
8
|
+
var pushNotifications = require('./pushNotifications-DI92havG.cjs');
|
|
9
9
|
var authRelay = require('./authRelay-Dy1qU9td.cjs');
|
|
10
10
|
var limits = require('./limits-C-a7gr04.cjs');
|
|
11
|
-
var time = require('./time-
|
|
12
|
-
var configuration = require('./configuration-
|
|
11
|
+
var time = require('./time-Cjv0zxQO.cjs');
|
|
12
|
+
var configuration = require('./configuration-CYO-kPOS.cjs');
|
|
13
13
|
var node_crypto = require('node:crypto');
|
|
14
|
-
var index = require('./index-
|
|
15
|
-
var registerCommonHandlers = require('./registerCommonHandlers-
|
|
14
|
+
var index = require('./index-Dv0Q48P3.cjs');
|
|
15
|
+
var registerCommonHandlers = require('./registerCommonHandlers-C7a_dUWs.cjs');
|
|
16
16
|
var cuid2 = require('@paralleldrive/cuid2');
|
|
17
|
-
var sync = require('./sync-
|
|
17
|
+
var sync = require('./sync-Bn-idAoy.cjs');
|
|
18
18
|
var backgroundTaskActivity = require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
19
|
-
var controlClient = require('./controlClient-
|
|
20
|
-
var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
19
|
+
var controlClient = require('./controlClient-Bqv5v5OM.cjs');
|
|
21
20
|
var chalk = require('chalk');
|
|
22
21
|
|
|
23
22
|
async function hmac_sha512(key, data) {
|
|
@@ -883,6 +882,7 @@ function isQueuedUserText(body) {
|
|
|
883
882
|
return record.role === "user" && record.content?.type === "text" && typeof record.meta?.queuedAt === "number";
|
|
884
883
|
}
|
|
885
884
|
function scanUndeliveredQueuedInputs(records, prior) {
|
|
885
|
+
const replayAboveSeq = prior?.replayAboveSeq;
|
|
886
886
|
const canceled = prior?.canceled ?? /* @__PURE__ */ new Set();
|
|
887
887
|
const undelivered = [];
|
|
888
888
|
let reachedBoundary = false;
|
|
@@ -901,6 +901,7 @@ function scanUndeliveredQueuedInputs(records, prior) {
|
|
|
901
901
|
}
|
|
902
902
|
continue;
|
|
903
903
|
}
|
|
904
|
+
if (replayAboveSeq !== void 0 && record.seq > replayAboveSeq) continue;
|
|
904
905
|
if (isQueuedUserText(record.body) && record.localId && !canceled.has(record.localId)) {
|
|
905
906
|
undelivered.push(record.localId);
|
|
906
907
|
}
|
|
@@ -1176,8 +1177,8 @@ class ApiSessionClient extends node_events.EventEmitter {
|
|
|
1176
1177
|
*/
|
|
1177
1178
|
pendingDownloads = [];
|
|
1178
1179
|
rpcHandlerManager;
|
|
1179
|
-
agentStateLock = new
|
|
1180
|
-
metadataLock = new
|
|
1180
|
+
agentStateLock = new pushNotifications.AsyncLock();
|
|
1181
|
+
metadataLock = new pushNotifications.AsyncLock();
|
|
1181
1182
|
encryptionKey;
|
|
1182
1183
|
encryptionVariant;
|
|
1183
1184
|
reconnectInterval = null;
|
|
@@ -1502,8 +1503,8 @@ class ApiSessionClient extends node_events.EventEmitter {
|
|
|
1502
1503
|
responseType: "arraybuffer",
|
|
1503
1504
|
timeout: 6e4,
|
|
1504
1505
|
maxRedirects: 5,
|
|
1505
|
-
maxContentLength:
|
|
1506
|
-
maxBodyLength:
|
|
1506
|
+
maxContentLength: pushNotifications.MAX_CHAT_ATTACHMENT_ENCRYPTED_BYTES,
|
|
1507
|
+
maxBodyLength: pushNotifications.MAX_CHAT_ATTACHMENT_ENCRYPTED_BYTES
|
|
1507
1508
|
});
|
|
1508
1509
|
return new Uint8Array(response.data);
|
|
1509
1510
|
}
|
|
@@ -1600,7 +1601,7 @@ class ApiSessionClient extends node_events.EventEmitter {
|
|
|
1600
1601
|
this.noteActivity();
|
|
1601
1602
|
if (sourceLocalId) this.promptQueueDrain?.onInbound(sourceLocalId);
|
|
1602
1603
|
const messageWithSource = sourceLocalId && typeof message === "object" && message !== null ? { ...message, localKey: message.localKey ?? sourceLocalId } : message;
|
|
1603
|
-
const userResult =
|
|
1604
|
+
const userResult = pushNotifications.UserMessageSchema.safeParse(messageWithSource);
|
|
1604
1605
|
if (userResult.success) {
|
|
1605
1606
|
if (this.pendingMessageCallback) {
|
|
1606
1607
|
this.pendingMessageCallback(userResult.data);
|
|
@@ -1609,7 +1610,7 @@ class ApiSessionClient extends node_events.EventEmitter {
|
|
|
1609
1610
|
}
|
|
1610
1611
|
return;
|
|
1611
1612
|
}
|
|
1612
|
-
const fileResult =
|
|
1613
|
+
const fileResult = pushNotifications.FileEventMessageSchema.safeParse(message);
|
|
1613
1614
|
if (fileResult.success) {
|
|
1614
1615
|
logger.logger.debug(`[API] Received file event: ${fileResult.data.content.data.ev.name} (ref: ${fileResult.data.content.data.ev.ref})`);
|
|
1615
1616
|
if (this.pendingFileEventCallback) {
|
|
@@ -1875,7 +1876,7 @@ class ApiSessionClient extends node_events.EventEmitter {
|
|
|
1875
1876
|
* session down. Needs no socket; POSTs through the same session-message
|
|
1876
1877
|
* channel so the web receives it identically to a cancel-button tombstone.
|
|
1877
1878
|
*/
|
|
1878
|
-
async cancelUndeliveredQueuedInputs() {
|
|
1879
|
+
async cancelUndeliveredQueuedInputs(opts) {
|
|
1879
1880
|
const MAX_SCAN_PAGES = 10;
|
|
1880
1881
|
const canceled = /* @__PURE__ */ new Set();
|
|
1881
1882
|
const undelivered = [];
|
|
@@ -1904,7 +1905,7 @@ class ApiSessionClient extends node_events.EventEmitter {
|
|
|
1904
1905
|
}
|
|
1905
1906
|
return { seq: message.seq, localId: message.localId, body };
|
|
1906
1907
|
});
|
|
1907
|
-
const scan = scanUndeliveredQueuedInputs(records, { canceled });
|
|
1908
|
+
const scan = scanUndeliveredQueuedInputs(records, { canceled, replayAboveSeq: opts?.maxSeq });
|
|
1908
1909
|
for (const key of scan.canceled) canceled.add(key);
|
|
1909
1910
|
undelivered.push(...scan.undeliveredLocalKeys);
|
|
1910
1911
|
reachedBoundary = scan.reachedBoundary;
|
|
@@ -1958,6 +1959,17 @@ class ApiSessionClient extends node_events.EventEmitter {
|
|
|
1958
1959
|
* own line, so a launcher sends the matching session event only when this
|
|
1959
1960
|
* says the turn-end did not carry it).
|
|
1960
1961
|
*/
|
|
1962
|
+
/**
|
|
1963
|
+
* B-495: close the turn a fork backfill left open. History, not a live
|
|
1964
|
+
* turn end — so no `turn-ended` tap (board analyzer, completion hooks).
|
|
1965
|
+
*/
|
|
1966
|
+
closeReplayedClaudeTurn() {
|
|
1967
|
+
const mapped = closeClaudeTurnWithStatus(this.claudeSessionProtocolState, "completed");
|
|
1968
|
+
this.claudeSessionProtocolState.currentTurnId = mapped.currentTurnId;
|
|
1969
|
+
for (const envelope of mapped.envelopes) {
|
|
1970
|
+
this.sendSessionProtocolMessage(envelope);
|
|
1971
|
+
}
|
|
1972
|
+
}
|
|
1961
1973
|
closeClaudeSessionTurn(status = "completed", meta) {
|
|
1962
1974
|
this.emit("turn-ended", status);
|
|
1963
1975
|
const mapped = closeClaudeTurnWithStatus(this.claudeSessionProtocolState, status, meta);
|
|
@@ -2437,248 +2449,6 @@ class ApiSessionClient extends node_events.EventEmitter {
|
|
|
2437
2449
|
}
|
|
2438
2450
|
}
|
|
2439
2451
|
|
|
2440
|
-
function getSessionTitle(metadata) {
|
|
2441
|
-
const summaryText = metadata?.summary?.text?.trim();
|
|
2442
|
-
if (summaryText) {
|
|
2443
|
-
return summaryText;
|
|
2444
|
-
}
|
|
2445
|
-
const path = metadata?.path?.trim();
|
|
2446
|
-
if (!path) {
|
|
2447
|
-
return "Session";
|
|
2448
|
-
}
|
|
2449
|
-
const segments = path.split(/[\\/]/).filter(Boolean);
|
|
2450
|
-
return segments[segments.length - 1] || "Session";
|
|
2451
|
-
}
|
|
2452
|
-
function getSessionNotificationUrl(data) {
|
|
2453
|
-
const sessionId = data?.sessionId;
|
|
2454
|
-
if (typeof sessionId !== "string") {
|
|
2455
|
-
return null;
|
|
2456
|
-
}
|
|
2457
|
-
const trimmedSessionId = sessionId.trim();
|
|
2458
|
-
if (!trimmedSessionId) {
|
|
2459
|
-
return null;
|
|
2460
|
-
}
|
|
2461
|
-
return `/session/${encodeURIComponent(trimmedSessionId)}`;
|
|
2462
|
-
}
|
|
2463
|
-
function getSessionNotificationTitle(kind) {
|
|
2464
|
-
switch (kind) {
|
|
2465
|
-
case "done":
|
|
2466
|
-
return "It's ready!";
|
|
2467
|
-
case "permission":
|
|
2468
|
-
return "Permission request";
|
|
2469
|
-
case "question":
|
|
2470
|
-
return "Clarification needed";
|
|
2471
|
-
}
|
|
2472
|
-
}
|
|
2473
|
-
function getSessionNotificationBody(metadata) {
|
|
2474
|
-
return getSessionTitle(metadata);
|
|
2475
|
-
}
|
|
2476
|
-
function getSessionNotificationCopy(kind, metadata) {
|
|
2477
|
-
return {
|
|
2478
|
-
title: getSessionNotificationTitle(kind),
|
|
2479
|
-
body: getSessionNotificationBody(metadata)
|
|
2480
|
-
};
|
|
2481
|
-
}
|
|
2482
|
-
class PushNotificationClient {
|
|
2483
|
-
token;
|
|
2484
|
-
baseUrl;
|
|
2485
|
-
expoLoad = null;
|
|
2486
|
-
constructor(token, baseUrl = "https://api.cluster-fluster.com") {
|
|
2487
|
-
this.token = token;
|
|
2488
|
-
this.baseUrl = baseUrl;
|
|
2489
|
-
}
|
|
2490
|
-
loadExpo() {
|
|
2491
|
-
if (!this.expoLoad) {
|
|
2492
|
-
const load = import('expo-server-sdk').then(({ Expo }) => ({ Expo, expo: new Expo() }));
|
|
2493
|
-
load.catch(() => {
|
|
2494
|
-
if (this.expoLoad === load) this.expoLoad = null;
|
|
2495
|
-
});
|
|
2496
|
-
this.expoLoad = load;
|
|
2497
|
-
}
|
|
2498
|
-
return this.expoLoad;
|
|
2499
|
-
}
|
|
2500
|
-
/**
|
|
2501
|
-
* Fetch all push tokens for the authenticated user.
|
|
2502
|
-
* Retries up to 3 times with exponential backoff on transient errors.
|
|
2503
|
-
*/
|
|
2504
|
-
async fetchPushTokens() {
|
|
2505
|
-
const maxAttempts = 3;
|
|
2506
|
-
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
2507
|
-
try {
|
|
2508
|
-
const response = await axios.get(
|
|
2509
|
-
`${this.baseUrl}/v1/push-tokens`,
|
|
2510
|
-
{
|
|
2511
|
-
headers: {
|
|
2512
|
-
"Authorization": `Bearer ${this.token}`,
|
|
2513
|
-
"Content-Type": "application/json",
|
|
2514
|
-
"X-Happy-Client": `cli-daemon/${configuration.configuration.currentCliVersion}`
|
|
2515
|
-
}
|
|
2516
|
-
}
|
|
2517
|
-
);
|
|
2518
|
-
logger.logger.debug(`Fetched ${response.data.tokens.length} push tokens`);
|
|
2519
|
-
response.data.tokens.forEach((token, index) => {
|
|
2520
|
-
logger.logger.debug(`[PUSH] Token ${index + 1}: id=${token.id}, created=${new Date(token.createdAt).toISOString()}, updated=${new Date(token.updatedAt).toISOString()}`);
|
|
2521
|
-
});
|
|
2522
|
-
return response.data.tokens;
|
|
2523
|
-
} catch (error) {
|
|
2524
|
-
logger.logger.debug(`[PUSH] [ERROR] Failed to fetch push tokens (attempt ${attempt}/${maxAttempts}):`, error);
|
|
2525
|
-
if (attempt < maxAttempts) {
|
|
2526
|
-
const delay = 1e3 * Math.pow(2, attempt - 1);
|
|
2527
|
-
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
2528
|
-
}
|
|
2529
|
-
}
|
|
2530
|
-
}
|
|
2531
|
-
logger.logger.debug("[PUSH] [ERROR] All push token fetch attempts failed");
|
|
2532
|
-
return [];
|
|
2533
|
-
}
|
|
2534
|
-
/**
|
|
2535
|
-
* Send push notification via Expo Push API with retry
|
|
2536
|
-
* @param messages - Array of push messages to send
|
|
2537
|
-
*/
|
|
2538
|
-
async sendPushNotifications(messages) {
|
|
2539
|
-
logger.logger.debug(`Sending ${messages.length} push notifications`);
|
|
2540
|
-
const { Expo, expo } = await this.loadExpo();
|
|
2541
|
-
const validMessages = messages.filter((message) => {
|
|
2542
|
-
if (Array.isArray(message.to)) {
|
|
2543
|
-
return message.to.every((token) => Expo.isExpoPushToken(token));
|
|
2544
|
-
}
|
|
2545
|
-
return Expo.isExpoPushToken(message.to);
|
|
2546
|
-
});
|
|
2547
|
-
if (validMessages.length === 0) {
|
|
2548
|
-
logger.logger.debug("No valid Expo push tokens found");
|
|
2549
|
-
return;
|
|
2550
|
-
}
|
|
2551
|
-
const chunks = expo.chunkPushNotifications(validMessages);
|
|
2552
|
-
for (const chunk of chunks) {
|
|
2553
|
-
const startTime = Date.now();
|
|
2554
|
-
const timeout = 3e5;
|
|
2555
|
-
let attempt = 0;
|
|
2556
|
-
while (true) {
|
|
2557
|
-
try {
|
|
2558
|
-
const ticketChunk = await expo.sendPushNotificationsAsync(chunk);
|
|
2559
|
-
const errors = ticketChunk.filter((ticket) => ticket.status === "error");
|
|
2560
|
-
if (errors.length > 0) {
|
|
2561
|
-
const errorDetails = errors.map((e) => ({ message: e.message, details: e.details }));
|
|
2562
|
-
logger.logger.debug("[PUSH] Some notifications failed:", errorDetails);
|
|
2563
|
-
}
|
|
2564
|
-
if (errors.length === ticketChunk.length) {
|
|
2565
|
-
throw new Error("All push notifications in chunk failed");
|
|
2566
|
-
}
|
|
2567
|
-
break;
|
|
2568
|
-
} catch (error) {
|
|
2569
|
-
const elapsed = Date.now() - startTime;
|
|
2570
|
-
if (elapsed >= timeout) {
|
|
2571
|
-
logger.logger.debug("[PUSH] Timeout reached after 5 minutes, giving up on chunk");
|
|
2572
|
-
break;
|
|
2573
|
-
}
|
|
2574
|
-
attempt++;
|
|
2575
|
-
const delay = Math.min(1e3 * Math.pow(2, attempt), 3e4);
|
|
2576
|
-
const remainingTime = timeout - elapsed;
|
|
2577
|
-
const waitTime = Math.min(delay, remainingTime);
|
|
2578
|
-
if (waitTime > 0) {
|
|
2579
|
-
logger.logger.debug(`[PUSH] Retrying in ${waitTime}ms (attempt ${attempt})`);
|
|
2580
|
-
await new Promise((resolve) => setTimeout(resolve, waitTime));
|
|
2581
|
-
}
|
|
2582
|
-
}
|
|
2583
|
-
}
|
|
2584
|
-
}
|
|
2585
|
-
logger.logger.debug(`Push notifications sent successfully`);
|
|
2586
|
-
}
|
|
2587
|
-
/**
|
|
2588
|
-
* Send a push notification to all registered devices for the user
|
|
2589
|
-
* @param title - Notification title
|
|
2590
|
-
* @param body - Notification body
|
|
2591
|
-
* @param data - Additional data to send with the notification
|
|
2592
|
-
*/
|
|
2593
|
-
sendToAllDevices(title, body, data) {
|
|
2594
|
-
logger.logger.debug("[PUSH] sendToAllDevices called:", {
|
|
2595
|
-
title: contentLogMetadata.contentLogMetadata(title),
|
|
2596
|
-
body: contentLogMetadata.contentLogMetadata(body),
|
|
2597
|
-
dataKeyCount: data ? Object.keys(data).length : 0
|
|
2598
|
-
});
|
|
2599
|
-
(async () => {
|
|
2600
|
-
try {
|
|
2601
|
-
logger.logger.debug("[PUSH] Fetching push tokens...");
|
|
2602
|
-
const tokens = await this.fetchPushTokens();
|
|
2603
|
-
logger.logger.debug(`[PUSH] Fetched ${tokens.length} push tokens`);
|
|
2604
|
-
tokens.forEach((token, index) => {
|
|
2605
|
-
logger.logger.debug(`[PUSH] Using token ${index + 1}: id=${token.id}`);
|
|
2606
|
-
});
|
|
2607
|
-
if (tokens.length === 0) {
|
|
2608
|
-
logger.logger.debug("No push tokens found for user");
|
|
2609
|
-
return;
|
|
2610
|
-
}
|
|
2611
|
-
const messages = tokens.map((token, index) => {
|
|
2612
|
-
logger.logger.debug(`[PUSH] Creating message ${index + 1} for token`);
|
|
2613
|
-
return {
|
|
2614
|
-
to: token.token,
|
|
2615
|
-
title,
|
|
2616
|
-
body: body && body.length > 0 ? body : void 0,
|
|
2617
|
-
data,
|
|
2618
|
-
// TODO: For brutalist session artwork, attach rich media via a public HTTPS image URL.
|
|
2619
|
-
// Bundled app asset paths / require(...) / local file paths will not work in push payloads.
|
|
2620
|
-
// iOS also needs a Notification Service Extension to render richContent.image reliably.
|
|
2621
|
-
sound: "default",
|
|
2622
|
-
priority: "high"
|
|
2623
|
-
};
|
|
2624
|
-
});
|
|
2625
|
-
logger.logger.debug(`[PUSH] Sending ${messages.length} push notifications...`);
|
|
2626
|
-
await this.sendPushNotifications(messages);
|
|
2627
|
-
logger.logger.debug("[PUSH] Push notifications sent successfully");
|
|
2628
|
-
} catch (error) {
|
|
2629
|
-
logger.logger.debug("[PUSH] Error sending to all devices:", error);
|
|
2630
|
-
}
|
|
2631
|
-
})();
|
|
2632
|
-
}
|
|
2633
|
-
/**
|
|
2634
|
-
* Routes session-event pushes through the server so it can apply
|
|
2635
|
-
* presence-based suppression (active desktop/web, mobile foreground).
|
|
2636
|
-
* Falls back to direct Expo send only when sessionId is missing — that
|
|
2637
|
-
* shouldn't happen for session notifications but guards against regressions.
|
|
2638
|
-
*/
|
|
2639
|
-
sendSessionNotification(params) {
|
|
2640
|
-
const { title, body } = getSessionNotificationCopy(params.kind, params.metadata);
|
|
2641
|
-
const sessionTitle = getSessionNotificationBody(params.metadata);
|
|
2642
|
-
const url = getSessionNotificationUrl(params.data);
|
|
2643
|
-
const payloadData = {
|
|
2644
|
-
...params.data,
|
|
2645
|
-
kind: params.kind,
|
|
2646
|
-
sessionTitle,
|
|
2647
|
-
...url ? { url } : {}
|
|
2648
|
-
};
|
|
2649
|
-
const sessionId = typeof params.data?.sessionId === "string" ? params.data.sessionId : null;
|
|
2650
|
-
if (!sessionId) {
|
|
2651
|
-
logger.logger.debug("[PUSH] sendSessionNotification: missing sessionId, falling back to direct send");
|
|
2652
|
-
this.sendToAllDevices(title, body, payloadData);
|
|
2653
|
-
return;
|
|
2654
|
-
}
|
|
2655
|
-
void (async () => {
|
|
2656
|
-
try {
|
|
2657
|
-
await axios.post(
|
|
2658
|
-
`${this.baseUrl}/v1/sessions/${encodeURIComponent(sessionId)}/push-event`,
|
|
2659
|
-
{
|
|
2660
|
-
kind: params.kind,
|
|
2661
|
-
title,
|
|
2662
|
-
body,
|
|
2663
|
-
data: payloadData
|
|
2664
|
-
},
|
|
2665
|
-
{
|
|
2666
|
-
headers: {
|
|
2667
|
-
"Authorization": `Bearer ${this.token}`,
|
|
2668
|
-
"Content-Type": "application/json",
|
|
2669
|
-
"X-Happy-Client": `cli-daemon/${configuration.configuration.currentCliVersion}`
|
|
2670
|
-
},
|
|
2671
|
-
timeout: 15e3
|
|
2672
|
-
}
|
|
2673
|
-
);
|
|
2674
|
-
logger.logger.debug(`[PUSH] sendSessionNotification dispatched via server (kind=${params.kind})`);
|
|
2675
|
-
} catch (error) {
|
|
2676
|
-
logger.logger.debug("[PUSH] sendSessionNotification failed:", error);
|
|
2677
|
-
}
|
|
2678
|
-
})();
|
|
2679
|
-
}
|
|
2680
|
-
}
|
|
2681
|
-
|
|
2682
2452
|
function startOfflineReconnection(config) {
|
|
2683
2453
|
let reconnected = false;
|
|
2684
2454
|
let session = null;
|
|
@@ -2789,6 +2559,12 @@ class OfflineState {
|
|
|
2789
2559
|
isOffline() {
|
|
2790
2560
|
return this.state === "offline";
|
|
2791
2561
|
}
|
|
2562
|
+
/** B-689: one-line cause of the last failure of `operation` (for exit reasons). */
|
|
2563
|
+
describe(operation) {
|
|
2564
|
+
const f = this.failures.get(operation);
|
|
2565
|
+
if (!f) return void 0;
|
|
2566
|
+
return f.errorCode ? `${f.errorCode} - ${ERROR_DESCRIPTIONS[f.errorCode] || "unknown error"}` : "unknown error";
|
|
2567
|
+
}
|
|
2792
2568
|
/** Reset for testing - clears all state */
|
|
2793
2569
|
reset() {
|
|
2794
2570
|
this.state = "online";
|
|
@@ -2957,7 +2733,7 @@ class ApiClient {
|
|
|
2957
2733
|
pushClient;
|
|
2958
2734
|
constructor(credential) {
|
|
2959
2735
|
this.credential = credential;
|
|
2960
|
-
this.pushClient = new PushNotificationClient(credential.token, configuration.configuration.serverUrl);
|
|
2736
|
+
this.pushClient = new pushNotifications.PushNotificationClient(credential.token, configuration.configuration.serverUrl);
|
|
2961
2737
|
}
|
|
2962
2738
|
/**
|
|
2963
2739
|
* Create a new session or load existing one with the given tag
|
|
@@ -3173,7 +2949,7 @@ class ApiClient {
|
|
|
3173
2949
|
return new ApiSessionClient(this.credential.token, session, opts);
|
|
3174
2950
|
}
|
|
3175
2951
|
async machineSyncClient(machine) {
|
|
3176
|
-
const { ApiMachineClient } = await Promise.resolve().then(function () { return require('./apiMachine-
|
|
2952
|
+
const { ApiMachineClient } = await Promise.resolve().then(function () { return require('./apiMachine-DkGRj-Ai.cjs'); });
|
|
3177
2953
|
return new ApiMachineClient(this.credential.token, machine);
|
|
3178
2954
|
}
|
|
3179
2955
|
push() {
|