@guadskill/openclaw-proxy 2026.2.9 → 2026.2.10
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/{accounts-x7cMEV1E.js → accounts-Dx4aJi3x.js} +7 -7
- package/dist/{acp-cli-0GGdXLLK.js → acp-cli-B0GEswoT.js} +4 -4
- package/dist/{acp-cli-D1H6dacV.js → acp-cli-OHiTwyKP.js} +4 -4
- package/dist/{agent-2SW8ZCfI.js → agent-CVUy1Thi.js} +10 -10
- package/dist/{agent-DU-T91C5.js → agent-D-ZY5Ay1.js} +10 -10
- package/dist/{agent-scope-DiPc4_Q2.js → agent-scope-Bxl1Ieu_.js} +1 -1
- package/dist/{agent-scope-BUn6DjX7.js → agent-scope-C7vPz4km.js} +1 -1
- package/dist/{agent-scope-CjgJmjE6.js → agent-scope-DUR7NPNo.js} +1 -1
- package/dist/{agent-scope--25ynMc2.js → agent-scope-QnsNO5IK.js} +11 -11
- package/dist/{archive-D0z3LZDK.js → archive-1r-XD_by.js} +9 -9
- package/dist/{audit-CqsOSGgc.js → audit-DJRS7Nza.js} +8 -8
- package/dist/{audit-CLbFGfQc.js → audit-Dnyfbisl.js} +16 -16
- package/dist/{auth-health-6CQOjiY2.js → auth-health-CE7uy9mo.js} +1 -1
- package/dist/{auth-health-BA7lqVxs.js → auth-health-ov3toXHm.js} +1 -1
- package/dist/{auth-profiles-Dg1lg7TZ.js → auth-profiles-kZZY0kCW.js} +1 -1
- package/dist/build-info.json +2 -2
- package/dist/bundled/boot-md/handler.js +9 -9
- package/dist/bundled/session-memory/handler.js +9 -9
- package/dist/{call-DfFtEDcF.js → call-BUcaYa5a.js} +8 -8
- package/dist/{call-BRBaanei.js → call-D_Z9T8iV.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-DxeLpgAW.js → channel-options-P2xeFf1J.js} +5 -5
- package/dist/{channel-options-lyL-8lwT.js → channel-options-oOUobhHQ.js} +3 -3
- package/dist/{channel-selection-KB-Du2K8.js → channel-selection-CmhD8GeJ.js} +1 -1
- package/dist/{channel-selection-Cm-kszg3.js → channel-selection-Dc2O9U87.js} +1 -1
- package/dist/{channels-cli-CwCvT3wp.js → channels-cli-BYZOMEVn.js} +25 -25
- package/dist/{channels-cli-D8NQgCvh.js → channels-cli-C-TQm_--.js} +36 -36
- package/dist/{channels-status-issues-CtDHK5Hb.js → channels-status-issues-CZVE---T.js} +1 -1
- package/dist/{channels-status-issues-D4zjQ5gR.js → channels-status-issues-CftEAWF4.js} +1 -1
- package/dist/{chrome-CBxye_ED.js → chrome-FITXsKSB.js} +7 -7
- package/dist/{chrome-y0SuEptk.js → chrome-No6wyyAY.js} +2 -2
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-BhOaKx0R.js → cli-98b8BoLE.js} +25 -25
- package/dist/{cli-BdLB0dU9.js → cli-9Gs7jI45.js} +21 -21
- package/dist/{command-options-BsaSCNbW.js → command-options-DFbsypaU.js} +3 -3
- package/dist/{commands-D1Vz_pbj.js → commands-DoVIOYAz.js} +3 -3
- package/dist/{completion-cli-B8UeXoAi.js → completion-cli-DBmFb2Zz.js} +27 -27
- package/dist/{completion-cli-DSp3IYfG.js → completion-cli-DrFgqXz-.js} +13 -13
- package/dist/{config-BiUz0L4n.js → config-C_ZMbYir.js} +2 -2
- package/dist/{config-DBR-pg8M.js → config-DFgdMueL.js} +2 -2
- package/dist/{config-Cq5jWpQW.js → config-NtjUezp5.js} +2 -2
- package/dist/{config-guard-BIEzm1Di.js → config-guard-B_Hef8AW.js} +34 -34
- package/dist/{config-JotyqXJB.js → config-yg3MNzIZ.js} +2 -2
- package/dist/{configure-Cec4HsdK.js → configure-BShkc6Iy.js} +8 -8
- package/dist/{configure-CupQ7QSD.js → configure-CnH4eas2.js} +10 -10
- package/dist/{control-service-CH6Bbr0T.js → control-service-CzkpRVn7.js} +4 -4
- package/dist/{control-service-YHi9oKDx.js → control-service-_2M8iCv6.js} +1 -1
- package/dist/{cron-cli-DQ37nGTc.js → cron-cli-Bkwkuduu.js} +7 -7
- package/dist/{cron-cli-BPtSqQjc.js → cron-cli-sBpc08kN.js} +6 -6
- package/dist/{daemon-cli-BwvNtNCH.js → daemon-cli-BQFZUZXG.js} +7 -7
- package/dist/{daemon-cli-ByQDMi6B.js → daemon-cli-D7bFcRv4.js} +11 -11
- package/dist/{daemon-runtime-Dg88Ac7J.js → daemon-runtime-DLtjWz00.js} +10 -10
- package/dist/{daemon-runtime-LePuvITk.js → daemon-runtime-q4XITAGg.js} +1 -1
- package/dist/{deliver-BpcYe8zG.js → deliver-BFZRT50l.js} +7 -7
- package/dist/{deliver-Dpg3LSwN.js → deliver-BRCyIScz.js} +5 -5
- package/dist/{deliver-D4rMk52D.js → deliver-BssKD-vg.js} +3 -3
- package/dist/{deliver-C9Vwdw7k.js → deliver-D_PB5CG5.js} +2 -2
- package/dist/{deps-DWlD7Lyt.js → deps-BBw98Cve.js} +2 -2
- package/dist/{deps-qtgH7RGM.js → deps-Dlhl7sML.js} +2 -2
- package/dist/{devices-cli-CcGB1MVD.js → devices-cli-3aLFbDvW.js} +4 -4
- package/dist/{devices-cli-p9SUggMY.js → devices-cli-Dn5X9lnL.js} +4 -4
- package/dist/{directory-cli-CixpfARf.js → directory-cli-Cc06wNL1.js} +5 -5
- package/dist/{directory-cli-CgKDzRjU.js → directory-cli-Dj48rao9.js} +6 -6
- package/dist/{dispatcher-DsTwmVoy.js → dispatcher-DLLOC08H.js} +1 -1
- package/dist/{dns-cli-y3RAyaeD.js → dns-cli-CugZCOE9.js} +3 -3
- package/dist/{dns-cli--ew6Hcon.js → dns-cli-kXKz4kmo.js} +3 -3
- package/dist/{docs-cli-BPPPY68C.js → docs-cli-BUeU34DD.js} +1 -1
- package/dist/{docs-cli-B8ZWuZdG.js → docs-cli-DPM7sbYQ.js} +1 -1
- package/dist/{doctor-CqYHOc7o.js → doctor-Bb0C7PCD.js} +18 -18
- package/dist/{doctor--sUBhPRM.js → doctor-C5EhTQAn.js} +33 -33
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-AoKQ4upV.js → exec-approvals-cli-DTdAAPIs.js} +11 -11
- package/dist/{exec-approvals-cli-C2XQFrdV.js → exec-approvals-cli-DyvEEBBB.js} +6 -6
- package/dist/extensionAPI.js +20 -20
- package/dist/{gateway-cli-FFlyXx90.js → gateway-cli-BQvs5yMg.js} +116 -116
- package/dist/{gateway-cli-x9uFfaiq.js → gateway-cli-ClF2zEog.js} +43 -43
- package/dist/{gateway-rpc-CpSS8vbu.js → gateway-rpc-CUNihWum.js} +1 -1
- package/dist/{gateway-rpc-BUee5Dv6.js → gateway-rpc-ftABAYn5.js} +1 -1
- package/dist/{github-copilot-auth-C9U7LmQC.js → github-copilot-auth-DbUZnSyk.js} +5 -5
- package/dist/{github-copilot-auth-DhRqdPvp.js → github-copilot-auth-TxtjXx5m.js} +5 -5
- package/dist/{gmail-setup-utils-DwjED-x8.js → gmail-setup-utils-CBKE602c.js} +1 -1
- package/dist/{gmail-setup-utils-BElJpBPG.js → gmail-setup-utils-DFeZNixL.js} +1 -1
- package/dist/{health-format-BB0NTRxV.js → health-format-BOaLA7v1.js} +10 -10
- package/dist/{health-format-xY8AE8iJ.js → health-format-i1geK3KG.js} +8 -8
- package/dist/{hooks-cli-LD-Df2Bi.js → hooks-cli-BoczEJfK.js} +23 -23
- package/dist/{hooks-cli-D0QnfArE.js → hooks-cli-DoLBB8PN.js} +49 -49
- package/dist/{hooks-status-DzV884al.js → hooks-status-Dbj4IlQS.js} +1 -1
- package/dist/{hooks-status-B-1h3DT9.js → hooks-status-Dr9j7oSo.js} +1 -1
- package/dist/{image-zzNMmsKZ.js → image-CE9CeS1j.js} +3 -3
- package/dist/{image-D1s2KO45.js → image-CY3Qb62D.js} +8 -8
- package/dist/{image-A6XShsr8.js → image-Crv76CGv.js} +3 -3
- package/dist/{image-C19aQZmj.js → image-DaoVwbBU.js} +3 -3
- package/dist/index.js +44 -44
- package/dist/{installs-lwst-G4F.js → installs-CJqCIvn4.js} +18 -18
- package/dist/llm-slug-generator.js +9 -9
- package/dist/{loader-t5G-bNh2.js → loader-BNGc0TMW.js} +115 -115
- package/dist/{login-qr-dW3zLPde.js → login-qr-BJHBXw2B.js} +1 -1
- package/dist/{login-qr-fi3WTytg.js → login-qr-BoEpQD7W.js} +2 -2
- package/dist/{login-qr-zHjaf-a-.js → login-qr-CojPlIrx.js} +1 -1
- package/dist/{login-qr-zBlKORpc.js → login-qr-O0Sg-Lht.js} +1 -1
- package/dist/{logs-cli-CNG1ybOs.js → logs-cli-BkQZaLP1.js} +5 -5
- package/dist/{logs-cli-BrwNjHyP.js → logs-cli-DbqvSWfV.js} +5 -5
- package/dist/{manager-BG8ogneZ.js → manager-BLQprOme.js} +3 -3
- package/dist/{manager-D1OOirj8.js → manager-DBEZGESO.js} +2 -2
- package/dist/{manager-CdFcVnZR.js → manager-DLK8bAAA.js} +15 -15
- package/dist/{manager-Bctrvc9j.js → manager-DQXILjKz.js} +2 -2
- package/dist/{model-auth-DisTMlNO.js → model-auth-B3m7mkvr.js} +1 -1
- package/dist/{model-selection-GZFHUD7x.js → model-selection-9N1nn0U_.js} +1 -1
- package/dist/{model-selection-Dcc6YSVW.js → model-selection-BqJ7D4pt.js} +1 -1
- package/dist/{models-cli-B2zLu81b.js → models-cli-DKJ429Km.js} +23 -23
- package/dist/{models-cli-DAT-ArET.js → models-cli-tBSLfpEB.js} +30 -30
- package/dist/{node-cli-ClBB_NxA.js → node-cli-az-8UhFP.js} +20 -20
- package/dist/{node-cli-etrHRm1x.js → node-cli-xTfEqY2t.js} +7 -7
- package/dist/{node-service-BDoNNRp-.js → node-service-CkPOvRv0.js} +1 -1
- package/dist/{nodes-cli-BaBGaJqV.js → nodes-cli-DfTrE8mE.js} +8 -8
- package/dist/{nodes-cli-CGt1ECiI.js → nodes-cli-U9s_odmo.js} +5 -5
- package/dist/{nodes-screen-DGlNPbk4.js → nodes-screen-DufGlxX3.js} +2 -2
- package/dist/{onboard-channels-CCcLnNq7.js → onboard-channels-B12vl_Fz.js} +5 -5
- package/dist/{onboard-channels-BTsEmF84.js → onboard-channels-Bi5gN7Cg.js} +4 -4
- package/dist/{onboard-skills-DTqkozry.js → onboard-skills-Cli5aapW.js} +9 -9
- package/dist/{onboard-skills-COOhVMtI.js → onboard-skills-bQdrzd5W.js} +8 -8
- package/dist/{onboarding-B_hfq1-Z.js → onboarding-o9D1SpDa.js} +20 -20
- package/dist/{openclaw-root-93W6UrUK.js → openclaw-root-BTW4x2Wd.js} +1 -1
- package/dist/{openclaw-root-9ILYSmJ9.js → openclaw-root-zKi4apQH.js} +3 -3
- package/dist/{pairing-cli-IMM6zTxT.js → pairing-cli-ByfGNmaZ.js} +7 -7
- package/dist/{pairing-cli-A-97MaNg.js → pairing-cli-C_IQMrN0.js} +6 -6
- package/dist/{pairing-labels-Bb4yiJHg.js → pairing-labels-B6MQ_Hha.js} +1 -1
- package/dist/{pairing-labels-DP5H8gf6.js → pairing-labels-B6ViJi8r.js} +1 -1
- package/dist/{pairing-store-DnhpK1SH.js → pairing-store-Cc67v-m7.js} +1 -1
- package/dist/{pairing-store-DiCaUGXP.js → pairing-store-DKhgYwjg.js} +1 -1
- package/dist/{paths-fJtAVDc0.js → paths-BifbScbU.js} +1 -1
- package/dist/{pi-embedded-DQydpubI.js → pi-embedded-DPQwlpO6.js} +15 -15
- package/dist/{pi-embedded-helpers-BJ-cu3iK.js → pi-embedded-helpers-CcE0hKxw.js} +8 -8
- package/dist/{pi-embedded-helpers-4Lpm0TfW.js → pi-embedded-helpers-DwhRDCwp.js} +2 -2
- package/dist/{pi-embedded-helpers-B8LSSkHe.js → pi-embedded-helpers-Z2gqd4I2.js} +3 -3
- package/dist/{pi-embedded-helpers-DadKWPQE.js → pi-embedded-helpers-n7o6YJmY.js} +6 -6
- package/dist/{pi-tools.policy-DLLm-j7M.js → pi-tools.policy-CiKYFXrw.js} +3 -3
- package/dist/{plugin-auto-enable-B78nMu3L.js → plugin-auto-enable-CTA5rOU5.js} +1 -1
- package/dist/{plugin-auto-enable-Arz-7wiT.js → plugin-auto-enable-CrzdP1Nz.js} +2 -2
- package/dist/{plugins-CRUvG4uT.js → plugins-CO1rgH0r.js} +1 -1
- package/dist/{plugins-cli-CjpTlFhI.js → plugins-cli-BKilQedx.js} +22 -22
- package/dist/{plugins-cli-DrQ1Deuw.js → plugins-cli-CkZgCEVA.js} +30 -30
- package/dist/{plugins-U0QQZWlW.js → plugins-ia9SOGpI.js} +1 -1
- package/dist/{ports-BcNVanDX.js → ports-DbnuiZZO.js} +1 -1
- package/dist/{program-CDSRl7eR.js → program-3AvELN6H.js} +58 -58
- package/dist/{pw-ai-Bpd-iaBB.js → pw-ai-BOyUF0Kj.js} +4 -4
- package/dist/{pw-ai-C3QEyFGj.js → pw-ai-kZMIzSdQ.js} +1 -1
- package/dist/{qmd-manager-DZhFcVTt.js → qmd-manager-BM5DP4s8.js} +1 -1
- package/dist/{qmd-manager-CjTG-nW_.js → qmd-manager-BRXyEw0a.js} +19 -19
- package/dist/{qmd-manager-qe1SLQy3.js → qmd-manager-CWFe938c.js} +1 -1
- package/dist/{qmd-manager-D4W1VfWC.js → qmd-manager-h50GTfkl.js} +2 -2
- package/dist/{register.subclis-COUZSGkI.js → register.subclis-gkkP8-Yx.js} +28 -28
- package/dist/{reply-CcYZSt6t.js → reply-CH7VZ1jT.js} +28 -28
- package/dist/{routes-CnhRELg3.js → routes-BUDqG0bE.js} +17 -17
- package/dist/{routes-Sj0W9JUC.js → routes-dtswuSI-.js} +1 -1
- package/dist/{rpc-wf5KzhJ_.js → rpc-BeN1YXM7.js} +1 -1
- package/dist/{rpc-BlzExEft.js → rpc-CUy4VHNF.js} +1 -1
- package/dist/{run-main-CadL0LaU.js → run-main-DM5TUpMe.js} +60 -60
- package/dist/{sandbox-CXXC0AOA.js → sandbox-D889a-F8.js} +21 -21
- package/dist/{sandbox-cli-B-c6pLqW.js → sandbox-cli-BNvoe8W3.js} +10 -10
- package/dist/{sandbox-cli-CEQpi4Wb.js → sandbox-cli-DACJb2g8.js} +7 -7
- package/dist/{sandbox-BR9JVXBT.js → sandbox-nFkFFEb7.js} +5 -5
- package/dist/{security-cli-MV9q0KXT.js → security-cli-DvqT9LWk.js} +11 -11
- package/dist/{security-cli-CxnkY7T2.js → security-cli-m_PAeVLY.js} +21 -21
- package/dist/{server-context-B0LbMz_e.js → server-context-qxpb5Ln6.js} +4 -4
- package/dist/{server-node-events-ClBp_ky8.js → server-node-events-Cb6KgBy9.js} +23 -23
- package/dist/{server-node-events-DZQVhZjc.js → server-node-events-Cz7z8PCq.js} +27 -27
- package/dist/{service-DQwKxszE.js → service-CJ_9zG2c.js} +15 -15
- package/dist/{service-audit-D6Jk8jFU.js → service-audit-CURwIRFh.js} +13 -13
- package/dist/{service-audit-JR0RZ8xC.js → service-audit-DtmRGU4O.js} +1 -1
- package/dist/{shared-C_dY3J1K.js → shared-BFnl2Cjh.js} +1 -1
- package/dist/{shared-DN6M8u_S.js → shared-CXK7Zt_F.js} +1 -1
- package/dist/{skill-scanner-C_fQzVDu.js → skill-scanner-BT7PBklM.js} +5 -5
- package/dist/{skills-C1QRKLvh.js → skills-Cgy3X3tK.js} +1 -1
- package/dist/{skills-cli-DDTkkerI.js → skills-cli-B2zxU_2n.js} +5 -5
- package/dist/{skills-cli-DbqgzF80.js → skills-cli-Bg8bkl9E.js} +5 -5
- package/dist/{skills-status-GulhEBnV.js → skills-status-8m5p33dD.js} +1 -1
- package/dist/{skills-status-C_QDsl6j.js → skills-status-BA2DOmHk.js} +1 -1
- package/dist/{skills-CwXLq-nk.js → skills-w-kwwPb2.js} +1 -1
- package/dist/{sqlite-DODNHWJb.js → sqlite-DmufeXxk.js} +8 -8
- package/dist/{status-Y2KMsWuk.js → status-BX5HXftW.js} +3 -3
- package/dist/{status-CErwIaup.js → status-Bcl2H-Cb.js} +31 -31
- package/dist/{status-CtFS7XRr.js → status-CTMeUEYd.js} +3 -3
- package/dist/{system-cli-C0JWELUD.js → system-cli-BzCBKn-l.js} +5 -5
- package/dist/{system-cli-BVweBOhJ.js → system-cli-C886Ufmu.js} +5 -5
- package/dist/{systemd-aL_mEluy.js → systemd-D8TmVYdf.js} +5 -5
- package/dist/{systemd-linger-CEPF4JN6.js → systemd-linger-C57Dz7hA.js} +1 -1
- package/dist/{tui-B9ggfGhy.js → tui-B8ryM4-q.js} +5 -5
- package/dist/{tui-C_gTxPke.js → tui-DMtfTPeq.js} +5 -5
- package/dist/{tui-cli-Zj_x6Bvj.js → tui-cli-BBTZ6Uea.js} +14 -14
- package/dist/{tui-cli-CYc8ZHxI.js → tui-cli-CainEme8.js} +11 -11
- package/dist/{tui-formatters-C1oQXn1l.js → tui-formatters-6nR_zzUg.js} +3 -3
- package/dist/{tui-formatters-CCOWLfCX.js → tui-formatters-Cmrdmcx8.js} +3 -3
- package/dist/{update-C-9KsS1m.js → update-DkJ6rvG7.js} +3 -3
- package/dist/{update-cli-ClAzvLLE.js → update-cli-B44pCOmM.js} +34 -34
- package/dist/{update-cli-Cyh2BgJf.js → update-cli-CeCOtfHd.js} +53 -53
- package/dist/{update-runner-BT3WGHmf.js → update-runner-BZsT7ZyA.js} +6 -6
- package/dist/{update-runner-Br_pa9Xw.js → update-runner-CkoLrD4r.js} +25 -25
- package/dist/{webhooks-cli-Ch9h1RT2.js → webhooks-cli-BH_Y2RXv.js} +5 -5
- package/dist/{webhooks-cli-DBWL77uP.js → webhooks-cli-DZaS4YoE.js} +5 -5
- package/dist/{wsl-CtSDIi51.js → wsl-C-eVEqs4.js} +3 -3
- package/package.json +1 -1
- package/dist/control-ui/apple-touch-icon.png +0 -0
- package/dist/control-ui/assets/index-BeKTXH1m.js +0 -7601
- package/dist/control-ui/assets/index-BeKTXH1m.js.map +0 -1
- package/dist/control-ui/assets/index-DWhx-9JL.css +0 -1
- package/dist/control-ui/favicon-32.png +0 -0
- package/dist/control-ui/favicon.ico +0 -0
- package/dist/control-ui/favicon.svg +0 -22
- package/dist/control-ui/index.html +0 -17
|
@@ -1,94 +1,94 @@
|
|
|
1
1
|
import { $ as DEFAULT_CHAT_CHANNEL, A as getChildLogger, B as resolveConfigPath, C as setVerbose, D as colorize, F as CONFIG_PATH, L as STATE_DIR, M as getResolvedLoggerSettings, O as isRich, R as isNixMode, U as resolveGatewayLockDir, W as resolveGatewayPort, X as resolveStateDir, Z as CHANNEL_IDS, dt as expandHomePrefix, j as getLogger, k as theme, l as setConsoleSubsystemFilter, n as isTruthyEnvValue, o as createSubsystemLogger, p as defaultRuntime, r as logAcceptedEnvOption, s as runtimeForLogger, st as getActivePluginRegistry, u as setConsoleTimestampPrefix } from "./entry.js";
|
|
2
|
-
import { Ct as DEFAULT_CONTEXT_TOKENS, D as isCliProvider, E as getModelRefStatus, F as resolveHooksGmailModel, L as resolveThinkingDefault, N as resolveConfiguredModelRef, P as resolveDefaultModelForAgent, Tt as DEFAULT_PROVIDER, j as resolveAllowedModelRef, pt as normalizeSecretInput, wt as DEFAULT_MODEL } from "./auth-profiles-
|
|
2
|
+
import { Ct as DEFAULT_CONTEXT_TOKENS, D as isCliProvider, E as getModelRefStatus, F as resolveHooksGmailModel, L as resolveThinkingDefault, N as resolveConfiguredModelRef, P as resolveDefaultModelForAgent, Tt as DEFAULT_PROVIDER, j as resolveAllowedModelRef, pt as normalizeSecretInput, wt as DEFAULT_MODEL } from "./auth-profiles-kZZY0kCW.js";
|
|
3
3
|
import { t as formatCliCommand } from "./command-format-ayFsmwwz.js";
|
|
4
4
|
import { _ as isSubagentSessionKey, d as resolveAgentIdFromSessionKey, i as buildAgentMainSessionKey, l as normalizeAgentId, m as toAgentRequestSessionKey, n as DEFAULT_AGENT_ID, t as DEFAULT_ACCOUNT_ID, u as normalizeMainKey, v as parseAgentSessionKey } from "./session-key-BRdRr5Ah.js";
|
|
5
5
|
import { T as truncateUtf16Safe, n as clamp, s as ensureDir, t as CONFIG_DIR, u as isPlainObject, v as resolveUserPath, x as shortenHomePath } from "./utils-Bx1WKTCk.js";
|
|
6
6
|
import { a as logDebug, c as logWarn, n as runExec, t as runCommandWithTimeout } from "./exec-B8JKbXKW.js";
|
|
7
|
-
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-
|
|
8
|
-
import { T as resolveWorkspaceTemplateDir, _ as DEFAULT_MEMORY_FILENAME, b as DEFAULT_USER_FILENAME, c as resolveDefaultAgentId, d as DEFAULT_AGENTS_FILENAME, g as DEFAULT_MEMORY_ALT_FILENAME, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, l as resolveSessionAgentId, m as DEFAULT_HEARTBEAT_FILENAME, n as resolveAgentConfig, p as DEFAULT_BOOTSTRAP_FILENAME, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, v as DEFAULT_SOUL_FILENAME, w as resolveDefaultAgentWorkspaceDir, x as ensureAgentWorkspace, y as DEFAULT_TOOLS_FILENAME } from "./agent-scope
|
|
7
|
+
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-zKi4apQH.js";
|
|
8
|
+
import { T as resolveWorkspaceTemplateDir, _ as DEFAULT_MEMORY_FILENAME, b as DEFAULT_USER_FILENAME, c as resolveDefaultAgentId, d as DEFAULT_AGENTS_FILENAME, g as DEFAULT_MEMORY_ALT_FILENAME, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, l as resolveSessionAgentId, m as DEFAULT_HEARTBEAT_FILENAME, n as resolveAgentConfig, p as DEFAULT_BOOTSTRAP_FILENAME, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, v as DEFAULT_SOUL_FILENAME, w as resolveDefaultAgentWorkspaceDir, x as ensureAgentWorkspace, y as DEFAULT_TOOLS_FILENAME } from "./agent-scope-QnsNO5IK.js";
|
|
9
9
|
import "./github-copilot-token-SLWintYd.js";
|
|
10
10
|
import "./pi-model-discovery-DzEIEgHL.js";
|
|
11
|
-
import { A as resolveSubagentMaxConcurrent, T as applyLegacyMigrations, a as parseConfigJson5, c as writeConfigFile, i as loadConfig, j as VERSION, k as resolveAgentMaxConcurrent, l as validateConfigObjectWithPlugins, n as migrateLegacyConfig, o as readConfigFileSnapshot, r as createConfigIO, s as resolveConfigSnapshotHash, u as OpenClawSchema } from "./config-
|
|
11
|
+
import { A as resolveSubagentMaxConcurrent, T as applyLegacyMigrations, a as parseConfigJson5, c as writeConfigFile, i as loadConfig, j as VERSION, k as resolveAgentMaxConcurrent, l as validateConfigObjectWithPlugins, n as migrateLegacyConfig, o as readConfigFileSnapshot, r as createConfigIO, s as resolveConfigSnapshotHash, u as OpenClawSchema } from "./config-DFgdMueL.js";
|
|
12
12
|
import { s as isTestDefaultMemorySlotDisabled } from "./manifest-registry-C_FL6H2P.js";
|
|
13
|
-
import { n as movePathToTrash } from "./server-context-
|
|
13
|
+
import { n as movePathToTrash } from "./server-context-qxpb5Ln6.js";
|
|
14
14
|
import { n as pickPrimaryTailnetIPv6, t as pickPrimaryTailnetIPv4 } from "./tailnet-CL5GtL7t.js";
|
|
15
15
|
import { c as resolveGatewayClientIp, i as isTrustedProxyAddress, l as resolveGatewayListenHosts, n as isLoopbackAddress, r as isLoopbackHost, s as resolveGatewayBindHost, t as rawDataToString } from "./ws-CtFyzK73.js";
|
|
16
|
-
import { c as ensurePortAvailable, d as formatPortDiagnostics, l as inspectPortUsage } from "./chrome-
|
|
16
|
+
import { c as ensurePortAvailable, d as formatPortDiagnostics, l as inspectPortUsage } from "./chrome-No6wyyAY.js";
|
|
17
17
|
import { a as isErrno, n as formatErrorMessage } from "./errors-x4NYs-1P.js";
|
|
18
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
18
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-CzkpRVn7.js";
|
|
19
19
|
import { t as ensureOpenClawCliOnPath } from "./path-env-CXWUFfFv.js";
|
|
20
20
|
import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-DU6DgqVy.js";
|
|
21
21
|
import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDirectRequest, t as assertGatewayAuthConfigured } from "./auth-5C498YKH.js";
|
|
22
22
|
import { $ as validateNodePairRequestParams, A as validateCronStatusParams, At as parseSessionLabel, B as validateExecApprovalsNodeGetParams, C as validateConfigSetParams, Ct as validateWizardNextParams, D as validateCronRemoveParams, Dt as ErrorCodes, E as validateCronListParams, Et as PROTOCOL_VERSION, F as validateDeviceTokenRevokeParams, Ft as normalizeDevicePublicKeyBase64Url, G as validateNodeDescribeParams, H as validateExecApprovalsSetParams, I as validateDeviceTokenRotateParams, It as verifyDeviceSignature, J as validateNodeInvokeResultParams, K as validateNodeEventParams, L as validateExecApprovalRequestParams, M as validateDevicePairApproveParams, N as validateDevicePairListParams, Nt as deriveDeviceIdFromPublicKey, O as validateCronRunParams, Ot as errorShape, P as validateDevicePairRejectParams, Q as validateNodePairRejectParams, R as validateExecApprovalResolveParams, S as validateConfigSchemaParams, St as validateWizardCancelParams, T as validateCronAddParams, Tt as validateWizardStatusParams, U as validateLogsTailParams, V as validateExecApprovalsNodeSetParams, W as validateModelsListParams, X as validateNodePairApproveParams, Y as validateNodeListParams, Z as validateNodePairListParams, _ as validateChatInjectParams, _t as validateTalkModeParams, a as validateAgentWaitParams, at as validateSessionsCompactParams, b as validateConfigGetParams, bt as validateWebLoginStartParams, c as validateAgentsFilesGetParams, ct as validateSessionsPatchParams, d as validateAgentsListParams, dt as validateSessionsResolveParams, et as validateNodePairVerifyParams, f as validateAgentsUpdateParams, ft as validateSessionsUsageParams, g as validateChatHistoryParams, gt as validateSkillsUpdateParams, h as validateChatAbortParams, ht as validateSkillsStatusParams, i as validateAgentParams, it as validateSendParams, j as validateCronUpdateParams, jt as buildDeviceAuthPayload, k as validateCronRunsParams, l as validateAgentsFilesListParams, lt as validateSessionsPreviewParams, m as validateChannelsStatusParams, mt as validateSkillsInstallParams, n as formatValidationErrors, nt as validatePollParams, o as validateAgentsCreateParams, ot as validateSessionsDeleteParams, p as validateChannelsLogoutParams, pt as validateSkillsBinsParams, q as validateNodeInvokeParams, r as validateAgentIdentityParams, rt as validateRequestFrame, s as validateAgentsDeleteParams, st as validateSessionsListParams, tt as validateNodeRenameParams, u as validateAgentsFilesSetParams, ut as validateSessionsResetParams, v as validateChatSendParams, vt as validateUpdateRunParams, w as validateConnectParams, wt as validateWizardStartParams, x as validateConfigPatchParams, xt as validateWebLoginWaitParams, y as validateConfigApplyParams, yt as validateWakeParams, z as validateExecApprovalsGetParams } from "./client-BCOZgvlo.js";
|
|
23
|
-
import { n as callGateway, o as loadGatewayTlsRuntime$1 } from "./call-
|
|
23
|
+
import { n as callGateway, o as loadGatewayTlsRuntime$1 } from "./call-BUcaYa5a.js";
|
|
24
24
|
import { f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, p as GATEWAY_CLIENT_IDS, r as isGatewayCliClient, s as isWebchatClient, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-BlgPSDAh.js";
|
|
25
25
|
import { t as formatDocsLink } from "./links-CSYf2PwL.js";
|
|
26
|
-
import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-
|
|
27
|
-
import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-
|
|
26
|
+
import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-CrzdP1Nz.js";
|
|
27
|
+
import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CO1rgH0r.js";
|
|
28
28
|
import "./logging-CfEk_PnX.js";
|
|
29
|
-
import "./accounts-
|
|
30
|
-
import { $ as setSkillsRemoteRegistry, $n as isSystemEventContextChanged, A as resolveHeartbeatVisibility, An as authorizeGatewaySigusr1Restart, Ar as formatUserTime, At as waitForEmbeddedPiRunEnd, B as createReplyDispatcher, Br as registerInternalHook, Bt as resolveAgentTimeoutMs, C as buildControlUiAvatarUrl, Cn as resolveOutboundTarget, Cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Ct as extractImageContentFromSource, Dr as stripHeartbeatToken, Dt as stopSubagentsForRequester, En as resetDirectoryCache, Et as isAbortTrigger, Fn as consumeRestartSentinel, Ft as buildSafeExternalPrompt, Gn as normalizeOptionalAgentId, Gt as registerAgentRunContext, H as getCliSessionId, Hn as normalizeCronJobCreate, Ht as emitAgentEvent, In as formatDoctorNonInteractiveHint, Ir as resolveAgentIdentity, It as detectSuspiciousPatterns, J as getRemoteSkillEligibility, Jn as normalizeRequiredName, K as normalizeSendPolicy, Kn as normalizeOptionalText, Kt as runSubagentAnnounceFlow, L as getChannelActivity, Ln as formatRestartSentinelMessage, Lt as getHookType, M as getLastHeartbeatEvent, Mn as isGatewaySigusr1RestartExternallyAllowed, Mr as resolveUserTimezone, N as onHeartbeatEvent, Nn as scheduleGatewaySigusr1Restart, Nt as registerUnhandledRejectionHandler, O as createReplyPrefixOptions, On as runWithModelFallback, Ot as runEmbeddedPiAgent, Pn as setGatewaySigusr1RestartPolicy, Pt as createOpenClawTools, Q as refreshRemoteNodeBins, Qn as enqueueSystemEvent, Rr as clearInternalHooks, Rt as isExternalHookSession, S as CONTROL_UI_AVATAR_PREFIX, Sr as isDiagnosticsEnabled, St as extractFileContentFromSource, T as resolveAssistantAvatarUrl, Tt as formatZonedTimestamp, U as setCliSessionId, Un as normalizeCronJobPatch, Ut as getAgentRunContext, Vn as writeRestartSentinel, Vr as triggerInternalHook, Vt as clearAgentRunContext, W as runCliAgent, Wn as inferLegacyName, Wt as onAgentEvent, X as recordRemoteNodeInfo, Xt as applyModelOverrideToSessionEntry, Y as primeRemoteSkillsCache, Yn as migrateLegacyCronPayload, Yt as loadModelCatalog, Z as refreshRemoteBinsForConnectedNodes, Zt as loadProviderUsageSummary, _t as DEFAULT_INPUT_MAX_REDIRECTS, an as resolveGatewaySessionStoreTarget, ar as OPENAI_TTS_VOICES, at as updatePairedNodeMetadata, br as startDiagnosticHeartbeat, bt as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, cn as capArrayByJsonBytes, cr as isTtsProviderConfigured, ct as registerSkillsChangeListener, d as handleReset, dn as resolveSessionTranscriptCandidates, dr as resolveTtsConfig, dt as parseVerboseOverride, et as approveNodePairing, fn as stripEnvelopeFromMessages, fr as resolveTtsPrefsPath, ft as DEFAULT_INPUT_FILE_MAX_BYTES, gn as normalizeGroupActivation, gr as textToSpeech, gt as DEFAULT_INPUT_IMAGE_MIMES, hn as clearSessionQueues, hr as setTtsProvider, ht as DEFAULT_INPUT_IMAGE_MAX_BYTES, in as loadSessionEntry, ir as OPENAI_TTS_MODELS, it as requestNodePairing, jn as consumeGatewaySigusr1RestartAuthorization, jr as resolveUserTimeFormat, k as buildHistoryContextFromEntries, kr as normalizePollInput, kt as abortEmbeddedPiRun, ln as readSessionMessages, lr as resolveTtsApiKey, mn as lookupContextTokens, mr as setTtsEnabled, mt as DEFAULT_INPUT_FILE_MIMES, n as handleSlackHttpRequest, nn as listSessionsFromStore, nt as rejectNodePairing, on as resolveSessionModelRef, or as getTtsProvider, ot as verifyNodeToken, pr as resolveTtsProviderOrder, pt as DEFAULT_INPUT_FILE_MAX_CHARS, q as resolveSendPolicy, qn as normalizePayloadToSystemText, qt as resolveAnnounceTargetFromKey, rn as loadCombinedSessionStoreForGateway, rr as getPluginToolMeta, rt as renamePairedNode, sn as archiveFileOnDisk, sr as isTtsEnabled, st as getSkillsSnapshotVersion, t as loadOpenClawPlugins, tn as listAgentsForGateway, tr as requestHeartbeatNow, tt as listNodePairing, un as readSessionPreviewItemsFromTranscript, ur as resolveTtsAutoMode, ut as applyVerboseOverride, vn as ensureOutboundSessionEntry, vr as setCommandLaneConcurrency, vt as DEFAULT_INPUT_PDF_MAX_PAGES, w as normalizeControlUiBasePath, wn as resolveSessionDeliveryTarget, wt as normalizeMimeList, xr as stopDiagnosticHeartbeat, xt as DEFAULT_INPUT_TIMEOUT_MS, yn as resolveOutboundSessionRoute, yr as CommandLane, yt as DEFAULT_INPUT_PDF_MAX_PIXELS, z as dispatchInboundMessage, zn as summarizeRestartSentinel, zr as createInternalHookEvent, zt as initSubagentRegistry } from "./loader-
|
|
29
|
+
import "./accounts-Dx4aJi3x.js";
|
|
30
|
+
import { $ as setSkillsRemoteRegistry, $n as isSystemEventContextChanged, A as resolveHeartbeatVisibility, An as authorizeGatewaySigusr1Restart, Ar as formatUserTime, At as waitForEmbeddedPiRunEnd, B as createReplyDispatcher, Br as registerInternalHook, Bt as resolveAgentTimeoutMs, C as buildControlUiAvatarUrl, Cn as resolveOutboundTarget, Cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Ct as extractImageContentFromSource, Dr as stripHeartbeatToken, Dt as stopSubagentsForRequester, En as resetDirectoryCache, Et as isAbortTrigger, Fn as consumeRestartSentinel, Ft as buildSafeExternalPrompt, Gn as normalizeOptionalAgentId, Gt as registerAgentRunContext, H as getCliSessionId, Hn as normalizeCronJobCreate, Ht as emitAgentEvent, In as formatDoctorNonInteractiveHint, Ir as resolveAgentIdentity, It as detectSuspiciousPatterns, J as getRemoteSkillEligibility, Jn as normalizeRequiredName, K as normalizeSendPolicy, Kn as normalizeOptionalText, Kt as runSubagentAnnounceFlow, L as getChannelActivity, Ln as formatRestartSentinelMessage, Lt as getHookType, M as getLastHeartbeatEvent, Mn as isGatewaySigusr1RestartExternallyAllowed, Mr as resolveUserTimezone, N as onHeartbeatEvent, Nn as scheduleGatewaySigusr1Restart, Nt as registerUnhandledRejectionHandler, O as createReplyPrefixOptions, On as runWithModelFallback, Ot as runEmbeddedPiAgent, Pn as setGatewaySigusr1RestartPolicy, Pt as createOpenClawTools, Q as refreshRemoteNodeBins, Qn as enqueueSystemEvent, Rr as clearInternalHooks, Rt as isExternalHookSession, S as CONTROL_UI_AVATAR_PREFIX, Sr as isDiagnosticsEnabled, St as extractFileContentFromSource, T as resolveAssistantAvatarUrl, Tt as formatZonedTimestamp, U as setCliSessionId, Un as normalizeCronJobPatch, Ut as getAgentRunContext, Vn as writeRestartSentinel, Vr as triggerInternalHook, Vt as clearAgentRunContext, W as runCliAgent, Wn as inferLegacyName, Wt as onAgentEvent, X as recordRemoteNodeInfo, Xt as applyModelOverrideToSessionEntry, Y as primeRemoteSkillsCache, Yn as migrateLegacyCronPayload, Yt as loadModelCatalog, Z as refreshRemoteBinsForConnectedNodes, Zt as loadProviderUsageSummary, _t as DEFAULT_INPUT_MAX_REDIRECTS, an as resolveGatewaySessionStoreTarget, ar as OPENAI_TTS_VOICES, at as updatePairedNodeMetadata, br as startDiagnosticHeartbeat, bt as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, cn as capArrayByJsonBytes, cr as isTtsProviderConfigured, ct as registerSkillsChangeListener, d as handleReset, dn as resolveSessionTranscriptCandidates, dr as resolveTtsConfig, dt as parseVerboseOverride, et as approveNodePairing, fn as stripEnvelopeFromMessages, fr as resolveTtsPrefsPath, ft as DEFAULT_INPUT_FILE_MAX_BYTES, gn as normalizeGroupActivation, gr as textToSpeech, gt as DEFAULT_INPUT_IMAGE_MIMES, hn as clearSessionQueues, hr as setTtsProvider, ht as DEFAULT_INPUT_IMAGE_MAX_BYTES, in as loadSessionEntry, ir as OPENAI_TTS_MODELS, it as requestNodePairing, jn as consumeGatewaySigusr1RestartAuthorization, jr as resolveUserTimeFormat, k as buildHistoryContextFromEntries, kr as normalizePollInput, kt as abortEmbeddedPiRun, ln as readSessionMessages, lr as resolveTtsApiKey, mn as lookupContextTokens, mr as setTtsEnabled, mt as DEFAULT_INPUT_FILE_MIMES, n as handleSlackHttpRequest, nn as listSessionsFromStore, nt as rejectNodePairing, on as resolveSessionModelRef, or as getTtsProvider, ot as verifyNodeToken, pr as resolveTtsProviderOrder, pt as DEFAULT_INPUT_FILE_MAX_CHARS, q as resolveSendPolicy, qn as normalizePayloadToSystemText, qt as resolveAnnounceTargetFromKey, rn as loadCombinedSessionStoreForGateway, rr as getPluginToolMeta, rt as renamePairedNode, sn as archiveFileOnDisk, sr as isTtsEnabled, st as getSkillsSnapshotVersion, t as loadOpenClawPlugins, tn as listAgentsForGateway, tr as requestHeartbeatNow, tt as listNodePairing, un as readSessionPreviewItemsFromTranscript, ur as resolveTtsAutoMode, ut as applyVerboseOverride, vn as ensureOutboundSessionEntry, vr as setCommandLaneConcurrency, vt as DEFAULT_INPUT_PDF_MAX_PAGES, w as normalizeControlUiBasePath, wn as resolveSessionDeliveryTarget, wt as normalizeMimeList, xr as stopDiagnosticHeartbeat, xt as DEFAULT_INPUT_TIMEOUT_MS, yn as resolveOutboundSessionRoute, yr as CommandLane, yt as DEFAULT_INPUT_PDF_MAX_PIXELS, z as dispatchInboundMessage, zn as summarizeRestartSentinel, zr as createInternalHookEvent, zt as initSubagentRegistry } from "./loader-BNGc0TMW.js";
|
|
31
31
|
import { n as withProgress } from "./progress-Da1ehW-x.js";
|
|
32
32
|
import "./prompt-style-Dc0C5HC9.js";
|
|
33
33
|
import "./note-Ci08TSbV.js";
|
|
34
34
|
import { t as WizardCancelledError } from "./prompts-CXLLIBwP.js";
|
|
35
35
|
import { t as resolveChannelDefaultAccountId } from "./helpers-D4gM-kkY.js";
|
|
36
|
-
import "./onboard-channels-
|
|
37
|
-
import "./archive-
|
|
38
|
-
import "./skill-scanner-
|
|
39
|
-
import "./installs-
|
|
40
|
-
import "./manager-
|
|
36
|
+
import "./onboard-channels-B12vl_Fz.js";
|
|
37
|
+
import "./archive-1r-XD_by.js";
|
|
38
|
+
import "./skill-scanner-BT7PBklM.js";
|
|
39
|
+
import "./installs-CJqCIvn4.js";
|
|
40
|
+
import "./manager-DLK8bAAA.js";
|
|
41
41
|
import { a as resolveSessionTranscriptsDirForAgent, n as resolveSessionFilePath, o as resolveStorePath, r as resolveSessionTranscriptPath } from "./paths-C27OFaz1.js";
|
|
42
|
-
import "./sqlite-
|
|
43
|
-
import { m as detectMime, r as saveMediaBuffer } from "./routes-
|
|
44
|
-
import { B as normalizeThinkLevel, F as formatXHighModelHint, H as normalizeVerboseLevel, P as formatThinkingLevels, R as normalizeElevatedLevel, V as normalizeUsageDisplay, W as supportsXHighThinking, z as normalizeReasoningLevel } from "./pi-embedded-helpers-
|
|
45
|
-
import { o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-
|
|
46
|
-
import { $ as stripPluginOnlyAllowlist, F as resolveExplicitAgentSessionKey, I as resolveMainSessionKey, J as collectExplicitAllowlist, L as resolveMainSessionKeyFromConfig, P as resolveAgentMainSessionKey, Q as resolveToolProfilePolicy, S as mergeDeliveryContext, Y as expandPolicyWithPluginGroups, Z as normalizeToolName, b as deliveryContextFromSession, d as loadSessionStore, g as updateSessionStore, q as buildPluginToolGroups, w as normalizeSessionDeliveryFields, z as snapshotSessionOrigin } from "./sandbox-
|
|
47
|
-
import "./tui-formatters-
|
|
48
|
-
import { i as getMachineDisplayName, r as createBrowserRouteDispatcher } from "./wsl-
|
|
49
|
-
import { d as hasBinary, i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-
|
|
50
|
-
import "./image-
|
|
42
|
+
import "./sqlite-DmufeXxk.js";
|
|
43
|
+
import { m as detectMime, r as saveMediaBuffer } from "./routes-BUDqG0bE.js";
|
|
44
|
+
import { B as normalizeThinkLevel, F as formatXHighModelHint, H as normalizeVerboseLevel, P as formatThinkingLevels, R as normalizeElevatedLevel, V as normalizeUsageDisplay, W as supportsXHighThinking, z as normalizeReasoningLevel } from "./pi-embedded-helpers-n7o6YJmY.js";
|
|
45
|
+
import { o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-BFZRT50l.js";
|
|
46
|
+
import { $ as stripPluginOnlyAllowlist, F as resolveExplicitAgentSessionKey, I as resolveMainSessionKey, J as collectExplicitAllowlist, L as resolveMainSessionKeyFromConfig, P as resolveAgentMainSessionKey, Q as resolveToolProfilePolicy, S as mergeDeliveryContext, Y as expandPolicyWithPluginGroups, Z as normalizeToolName, b as deliveryContextFromSession, d as loadSessionStore, g as updateSessionStore, q as buildPluginToolGroups, w as normalizeSessionDeliveryFields, z as snapshotSessionOrigin } from "./sandbox-D889a-F8.js";
|
|
47
|
+
import "./tui-formatters-Cmrdmcx8.js";
|
|
48
|
+
import { i as getMachineDisplayName, r as createBrowserRouteDispatcher } from "./wsl-C-eVEqs4.js";
|
|
49
|
+
import { d as hasBinary, i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-w-kwwPb2.js";
|
|
50
|
+
import "./image-CY3Qb62D.js";
|
|
51
51
|
import { c as normalizeExecApprovals, g as saveExecApprovals, l as readExecApprovalsSnapshot, m as resolveExecApprovalsSocketPath, r as ensureExecApprovals } from "./exec-approvals-BrCstKZw.js";
|
|
52
52
|
import "./redact-BHmk44DI.js";
|
|
53
53
|
import "./tool-display-Ds0HgmMB.js";
|
|
54
54
|
import { t as parseAbsoluteTimeMs } from "./parse-Cjiudy6x.js";
|
|
55
|
-
import { n as resolveMessageChannelSelection } from "./channel-selection-
|
|
55
|
+
import { n as resolveMessageChannelSelection } from "./channel-selection-Dc2O9U87.js";
|
|
56
56
|
import { i as loadSessionUsageTimeSeries, l as deriveSessionTotalTokens, n as loadCostUsageSummary, r as loadSessionCostSummary, t as discoverAllSessions, u as hasNonzeroUsage } from "./session-cost-usage-LOtSLoh7.js";
|
|
57
57
|
import { n as formatTokenCount, r as formatUsd } from "./usage-format-C4JfTbSp.js";
|
|
58
|
-
import { c as resolveSubagentToolPolicy, i as filterToolsByPolicy, o as resolveEffectiveToolPolicy, s as resolveGroupToolPolicy } from "./commands-
|
|
59
|
-
import "./pairing-store-
|
|
60
|
-
import "./login-qr-
|
|
58
|
+
import { c as resolveSubagentToolPolicy, i as filterToolsByPolicy, o as resolveEffectiveToolPolicy, s as resolveGroupToolPolicy } from "./commands-DoVIOYAz.js";
|
|
59
|
+
import "./pairing-store-DKhgYwjg.js";
|
|
60
|
+
import "./login-qr-BoEpQD7W.js";
|
|
61
61
|
import { n as runCommandWithRuntime } from "./cli-utils-DKF-leO3.js";
|
|
62
|
-
import "./pairing-labels-
|
|
62
|
+
import "./pairing-labels-B6ViJi8r.js";
|
|
63
63
|
import { t as buildChannelAccountSnapshot } from "./status-BggorVtQ.js";
|
|
64
|
-
import "./channels-status-issues-
|
|
65
|
-
import "./register.subclis-
|
|
66
|
-
import "./completion-cli-
|
|
67
|
-
import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-
|
|
68
|
-
import "./daemon-runtime-
|
|
69
|
-
import "./service-
|
|
70
|
-
import "./systemd-
|
|
71
|
-
import "./shared-
|
|
72
|
-
import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-
|
|
73
|
-
import "./service-audit-
|
|
64
|
+
import "./channels-status-issues-CftEAWF4.js";
|
|
65
|
+
import "./register.subclis-gkkP8-Yx.js";
|
|
66
|
+
import "./completion-cli-DrFgqXz-.js";
|
|
67
|
+
import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-BBw98Cve.js";
|
|
68
|
+
import "./daemon-runtime-DLtjWz00.js";
|
|
69
|
+
import "./service-CJ_9zG2c.js";
|
|
70
|
+
import "./systemd-D8TmVYdf.js";
|
|
71
|
+
import "./shared-BFnl2Cjh.js";
|
|
72
|
+
import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-D7bFcRv4.js";
|
|
73
|
+
import "./service-audit-CURwIRFh.js";
|
|
74
74
|
import "./table--JAk2fhT.js";
|
|
75
75
|
import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-DaX8jMWT.js";
|
|
76
|
-
import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-
|
|
77
|
-
import { i as probeGateway } from "./audit-
|
|
78
|
-
import { g as discoverGatewayBeacons, n as installSkill } from "./onboard-skills-
|
|
79
|
-
import { a as resolveControlUiRootOverrideSync, c as getHealthSnapshot, d as runHeartbeatOnce, f as setHeartbeatsEnabled, n as ensureControlUiAssetsBuilt, o as resolveControlUiRootSync, p as startHeartbeatRunner, s as formatHealthChannelLines } from "./health-format-
|
|
80
|
-
import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-
|
|
81
|
-
import "./github-copilot-auth-
|
|
76
|
+
import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-CXK7Zt_F.js";
|
|
77
|
+
import { i as probeGateway } from "./audit-Dnyfbisl.js";
|
|
78
|
+
import { g as discoverGatewayBeacons, n as installSkill } from "./onboard-skills-Cli5aapW.js";
|
|
79
|
+
import { a as resolveControlUiRootOverrideSync, c as getHealthSnapshot, d as runHeartbeatOnce, f as setHeartbeatsEnabled, n as ensureControlUiAssetsBuilt, o as resolveControlUiRootSync, p as startHeartbeatRunner, s as formatHealthChannelLines } from "./health-format-BOaLA7v1.js";
|
|
80
|
+
import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-CkoLrD4r.js";
|
|
81
|
+
import "./github-copilot-auth-TxtjXx5m.js";
|
|
82
82
|
import "./logging-BENMfvo0.js";
|
|
83
|
-
import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-
|
|
84
|
-
import { a as findAgentEntryIndex, c as pruneAgentConfig, f as runOnboardingWizard, n as getStatusSummary, o as listAgentEntries, r as applyAgentConfig, s as loadAgentIdentity, u as loadAgentIdentityFromWorkspace } from "./status-
|
|
85
|
-
import { t as buildWorkspaceSkillStatus } from "./skills-status-
|
|
86
|
-
import "./tui-
|
|
83
|
+
import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-Dr9j7oSo.js";
|
|
84
|
+
import { a as findAgentEntryIndex, c as pruneAgentConfig, f as runOnboardingWizard, n as getStatusSummary, o as listAgentEntries, r as applyAgentConfig, s as loadAgentIdentity, u as loadAgentIdentityFromWorkspace } from "./status-Bcl2H-Cb.js";
|
|
85
|
+
import { t as buildWorkspaceSkillStatus } from "./skills-status-BA2DOmHk.js";
|
|
86
|
+
import "./tui-B8ryM4-q.js";
|
|
87
87
|
import { i as setGatewayWsLogStyle, n as logWs, r as summarizeAgentEventForWsLog, t as formatForLog } from "./ws-log-61vWaDj3.js";
|
|
88
|
-
import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-
|
|
89
|
-
import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-
|
|
90
|
-
import "./node-service-
|
|
91
|
-
import { n as forceFreePortAndWait } from "./ports-
|
|
88
|
+
import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-DFeZNixL.js";
|
|
89
|
+
import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-D-ZY5Ay1.js";
|
|
90
|
+
import "./node-service-CkPOvRv0.js";
|
|
91
|
+
import { n as forceFreePortAndWait } from "./ports-DbnuiZZO.js";
|
|
92
92
|
import { spawn, spawnSync } from "node:child_process";
|
|
93
93
|
import path from "node:path";
|
|
94
94
|
import os from "node:os";
|
|
@@ -96,7 +96,7 @@ import chalk from "chalk";
|
|
|
96
96
|
import * as fsSync from "node:fs";
|
|
97
97
|
import fs, { constants } from "node:fs";
|
|
98
98
|
import JSON5 from "json5";
|
|
99
|
-
import
|
|
99
|
+
import fsPromises from "node:fs/promises";
|
|
100
100
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
101
101
|
import crypto, { createHash, randomUUID } from "node:crypto";
|
|
102
102
|
import { CURRENT_SESSION_VERSION, SessionManager } from "@mariozechner/pi-coding-agent";
|
|
@@ -1094,7 +1094,7 @@ function shouldSkipCheck(allowInTests) {
|
|
|
1094
1094
|
}
|
|
1095
1095
|
async function readState(statePath) {
|
|
1096
1096
|
try {
|
|
1097
|
-
const raw = await
|
|
1097
|
+
const raw = await fsPromises.readFile(statePath, "utf-8");
|
|
1098
1098
|
const parsed = JSON.parse(raw);
|
|
1099
1099
|
return parsed && typeof parsed === "object" ? parsed : {};
|
|
1100
1100
|
} catch {
|
|
@@ -1102,8 +1102,8 @@ async function readState(statePath) {
|
|
|
1102
1102
|
}
|
|
1103
1103
|
}
|
|
1104
1104
|
async function writeState(statePath, state) {
|
|
1105
|
-
await
|
|
1106
|
-
await
|
|
1105
|
+
await fsPromises.mkdir(path.dirname(statePath), { recursive: true });
|
|
1106
|
+
await fsPromises.writeFile(statePath, JSON.stringify(state, null, 2), "utf-8");
|
|
1107
1107
|
}
|
|
1108
1108
|
async function runGatewayUpdateCheck(params) {
|
|
1109
1109
|
if (shouldSkipCheck(Boolean(params.allowInTests))) return;
|
|
@@ -2967,19 +2967,19 @@ function resolveCronRunLogPath(params) {
|
|
|
2967
2967
|
}
|
|
2968
2968
|
const writesByPath = /* @__PURE__ */ new Map();
|
|
2969
2969
|
async function pruneIfNeeded(filePath, opts) {
|
|
2970
|
-
const stat = await
|
|
2970
|
+
const stat = await fsPromises.stat(filePath).catch(() => null);
|
|
2971
2971
|
if (!stat || stat.size <= opts.maxBytes) return;
|
|
2972
|
-
const lines = (await
|
|
2972
|
+
const lines = (await fsPromises.readFile(filePath, "utf-8").catch(() => "")).split("\n").map((l) => l.trim()).filter(Boolean);
|
|
2973
2973
|
const kept = lines.slice(Math.max(0, lines.length - opts.keepLines));
|
|
2974
2974
|
const tmp = `${filePath}.${process.pid}.${Math.random().toString(16).slice(2)}.tmp`;
|
|
2975
|
-
await
|
|
2976
|
-
await
|
|
2975
|
+
await fsPromises.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
|
|
2976
|
+
await fsPromises.rename(tmp, filePath);
|
|
2977
2977
|
}
|
|
2978
2978
|
async function appendCronRunLog(filePath, entry, opts) {
|
|
2979
2979
|
const resolved = path.resolve(filePath);
|
|
2980
2980
|
const next = (writesByPath.get(resolved) ?? Promise.resolve()).catch(() => void 0).then(async () => {
|
|
2981
|
-
await
|
|
2982
|
-
await
|
|
2981
|
+
await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
|
|
2982
|
+
await fsPromises.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
|
|
2983
2983
|
await pruneIfNeeded(resolved, {
|
|
2984
2984
|
maxBytes: opts?.maxBytes ?? 2e6,
|
|
2985
2985
|
keepLines: opts?.keepLines ?? 2e3
|
|
@@ -2991,7 +2991,7 @@ async function appendCronRunLog(filePath, entry, opts) {
|
|
|
2991
2991
|
async function readCronRunLogEntries(filePath, opts) {
|
|
2992
2992
|
const limit = Math.max(1, Math.min(5e3, Math.floor(opts?.limit ?? 200)));
|
|
2993
2993
|
const jobId = opts?.jobId?.trim() || void 0;
|
|
2994
|
-
const raw = await
|
|
2994
|
+
const raw = await fsPromises.readFile(path.resolve(filePath), "utf-8").catch(() => "");
|
|
2995
2995
|
if (!raw.trim()) return [];
|
|
2996
2996
|
const parsed = [];
|
|
2997
2997
|
const lines = raw.split("\n");
|
|
@@ -4717,7 +4717,7 @@ function sanitizeTriggers(triggers) {
|
|
|
4717
4717
|
}
|
|
4718
4718
|
async function readJSON$1(filePath) {
|
|
4719
4719
|
try {
|
|
4720
|
-
const raw = await
|
|
4720
|
+
const raw = await fsPromises.readFile(filePath, "utf8");
|
|
4721
4721
|
return JSON.parse(raw);
|
|
4722
4722
|
} catch {
|
|
4723
4723
|
return null;
|
|
@@ -4725,10 +4725,10 @@ async function readJSON$1(filePath) {
|
|
|
4725
4725
|
}
|
|
4726
4726
|
async function writeJSONAtomic$1(filePath, value) {
|
|
4727
4727
|
const dir = path.dirname(filePath);
|
|
4728
|
-
await
|
|
4728
|
+
await fsPromises.mkdir(dir, { recursive: true });
|
|
4729
4729
|
const tmp = `${filePath}.${randomUUID()}.tmp`;
|
|
4730
|
-
await
|
|
4731
|
-
await
|
|
4730
|
+
await fsPromises.writeFile(tmp, JSON.stringify(value, null, 2), "utf8");
|
|
4731
|
+
await fsPromises.rename(tmp, filePath);
|
|
4732
4732
|
}
|
|
4733
4733
|
let lock$1 = Promise.resolve();
|
|
4734
4734
|
async function withLock$1(fn) {
|
|
@@ -5834,7 +5834,7 @@ const MEMORY_FILE_NAMES = [DEFAULT_MEMORY_FILENAME, DEFAULT_MEMORY_ALT_FILENAME]
|
|
|
5834
5834
|
const ALLOWED_FILE_NAMES = new Set([...BOOTSTRAP_FILE_NAMES, ...MEMORY_FILE_NAMES]);
|
|
5835
5835
|
async function statFile(filePath) {
|
|
5836
5836
|
try {
|
|
5837
|
-
const stat = await
|
|
5837
|
+
const stat = await fsPromises.stat(filePath);
|
|
5838
5838
|
if (!stat.isFile()) return null;
|
|
5839
5839
|
return {
|
|
5840
5840
|
size: stat.size,
|
|
@@ -5903,7 +5903,7 @@ function resolveOptionalStringParam(value) {
|
|
|
5903
5903
|
async function moveToTrashBestEffort(pathname) {
|
|
5904
5904
|
if (!pathname) return;
|
|
5905
5905
|
try {
|
|
5906
|
-
await
|
|
5906
|
+
await fsPromises.access(pathname);
|
|
5907
5907
|
} catch {
|
|
5908
5908
|
return;
|
|
5909
5909
|
}
|
|
@@ -5950,7 +5950,7 @@ const agentsHandlers = {
|
|
|
5950
5950
|
dir: workspaceDir,
|
|
5951
5951
|
ensureBootstrapFiles: !Boolean(nextConfig.agents?.defaults?.skipBootstrap)
|
|
5952
5952
|
});
|
|
5953
|
-
await
|
|
5953
|
+
await fsPromises.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
|
|
5954
5954
|
await writeConfigFile(nextConfig);
|
|
5955
5955
|
const safeName = sanitizeIdentityLine(rawName);
|
|
5956
5956
|
const emoji = resolveOptionalStringParam(params.emoji);
|
|
@@ -5963,7 +5963,7 @@ const agentsHandlers = {
|
|
|
5963
5963
|
...avatar ? [`- Avatar: ${sanitizeIdentityLine(avatar)}`] : [],
|
|
5964
5964
|
""
|
|
5965
5965
|
];
|
|
5966
|
-
await
|
|
5966
|
+
await fsPromises.appendFile(identityPath, lines.join("\n"), "utf-8");
|
|
5967
5967
|
respond(true, {
|
|
5968
5968
|
ok: true,
|
|
5969
5969
|
agentId,
|
|
@@ -5998,9 +5998,9 @@ const agentsHandlers = {
|
|
|
5998
5998
|
});
|
|
5999
5999
|
if (avatar) {
|
|
6000
6000
|
const workspace = workspaceDir ?? resolveAgentWorkspaceDir(nextConfig, agentId);
|
|
6001
|
-
await
|
|
6001
|
+
await fsPromises.mkdir(workspace, { recursive: true });
|
|
6002
6002
|
const identityPath = path.join(workspace, DEFAULT_IDENTITY_FILENAME);
|
|
6003
|
-
await
|
|
6003
|
+
await fsPromises.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
|
|
6004
6004
|
}
|
|
6005
6005
|
respond(true, {
|
|
6006
6006
|
ok: true,
|
|
@@ -6088,7 +6088,7 @@ const agentsHandlers = {
|
|
|
6088
6088
|
}, void 0);
|
|
6089
6089
|
return;
|
|
6090
6090
|
}
|
|
6091
|
-
const content = await
|
|
6091
|
+
const content = await fsPromises.readFile(filePath, "utf-8");
|
|
6092
6092
|
respond(true, {
|
|
6093
6093
|
agentId,
|
|
6094
6094
|
workspace: workspaceDir,
|
|
@@ -6119,10 +6119,10 @@ const agentsHandlers = {
|
|
|
6119
6119
|
return;
|
|
6120
6120
|
}
|
|
6121
6121
|
const workspaceDir = resolveAgentWorkspaceDir(cfg, agentId);
|
|
6122
|
-
await
|
|
6122
|
+
await fsPromises.mkdir(workspaceDir, { recursive: true });
|
|
6123
6123
|
const filePath = path.join(workspaceDir, name);
|
|
6124
6124
|
const content = String(params.content ?? "");
|
|
6125
|
-
await
|
|
6125
|
+
await fsPromises.writeFile(filePath, content, "utf-8");
|
|
6126
6126
|
const meta = await statFile(filePath);
|
|
6127
6127
|
respond(true, {
|
|
6128
6128
|
ok: true,
|
|
@@ -8533,7 +8533,7 @@ function resolvePaths(baseDir) {
|
|
|
8533
8533
|
}
|
|
8534
8534
|
async function readJSON(filePath) {
|
|
8535
8535
|
try {
|
|
8536
|
-
const raw = await
|
|
8536
|
+
const raw = await fsPromises.readFile(filePath, "utf8");
|
|
8537
8537
|
return JSON.parse(raw);
|
|
8538
8538
|
} catch {
|
|
8539
8539
|
return null;
|
|
@@ -8541,15 +8541,15 @@ async function readJSON(filePath) {
|
|
|
8541
8541
|
}
|
|
8542
8542
|
async function writeJSONAtomic(filePath, value) {
|
|
8543
8543
|
const dir = path.dirname(filePath);
|
|
8544
|
-
await
|
|
8544
|
+
await fsPromises.mkdir(dir, { recursive: true });
|
|
8545
8545
|
const tmp = `${filePath}.${randomUUID()}.tmp`;
|
|
8546
|
-
await
|
|
8546
|
+
await fsPromises.writeFile(tmp, JSON.stringify(value, null, 2), "utf8");
|
|
8547
8547
|
try {
|
|
8548
|
-
await
|
|
8548
|
+
await fsPromises.chmod(tmp, 384);
|
|
8549
8549
|
} catch {}
|
|
8550
|
-
await
|
|
8550
|
+
await fsPromises.rename(tmp, filePath);
|
|
8551
8551
|
try {
|
|
8552
|
-
await
|
|
8552
|
+
await fsPromises.chmod(filePath, 384);
|
|
8553
8553
|
} catch {}
|
|
8554
8554
|
}
|
|
8555
8555
|
function pruneExpiredPending(pendingById, nowMs) {
|
|
@@ -9172,14 +9172,14 @@ function isRollingLogFile(file) {
|
|
|
9172
9172
|
return ROLLING_LOG_RE.test(path.basename(file));
|
|
9173
9173
|
}
|
|
9174
9174
|
async function resolveLogFile(file) {
|
|
9175
|
-
if (await
|
|
9175
|
+
if (await fsPromises.stat(file).catch(() => null)) return file;
|
|
9176
9176
|
if (!isRollingLogFile(file)) return file;
|
|
9177
9177
|
const dir = path.dirname(file);
|
|
9178
|
-
const entries = await
|
|
9178
|
+
const entries = await fsPromises.readdir(dir, { withFileTypes: true }).catch(() => null);
|
|
9179
9179
|
if (!entries) return file;
|
|
9180
9180
|
return (await Promise.all(entries.filter((entry) => entry.isFile() && ROLLING_LOG_RE.test(entry.name)).map(async (entry) => {
|
|
9181
9181
|
const fullPath = path.join(dir, entry.name);
|
|
9182
|
-
const fileStat = await
|
|
9182
|
+
const fileStat = await fsPromises.stat(fullPath).catch(() => null);
|
|
9183
9183
|
return fileStat ? {
|
|
9184
9184
|
path: fullPath,
|
|
9185
9185
|
mtimeMs: fileStat.mtimeMs
|
|
@@ -9187,7 +9187,7 @@ async function resolveLogFile(file) {
|
|
|
9187
9187
|
}))).filter((entry) => Boolean(entry)).toSorted((a, b) => b.mtimeMs - a.mtimeMs)[0]?.path ?? file;
|
|
9188
9188
|
}
|
|
9189
9189
|
async function readLogSlice(params) {
|
|
9190
|
-
const stat = await
|
|
9190
|
+
const stat = await fsPromises.stat(params.file).catch(() => null);
|
|
9191
9191
|
if (!stat) return {
|
|
9192
9192
|
cursor: 0,
|
|
9193
9193
|
size: 0,
|
|
@@ -9225,7 +9225,7 @@ async function readLogSlice(params) {
|
|
|
9225
9225
|
truncated,
|
|
9226
9226
|
reset
|
|
9227
9227
|
};
|
|
9228
|
-
const handle = await
|
|
9228
|
+
const handle = await fsPromises.open(params.file, "r");
|
|
9229
9229
|
try {
|
|
9230
9230
|
let prefix = "";
|
|
9231
9231
|
if (start > 0) {
|
|
@@ -9651,7 +9651,7 @@ const nodeHandlers = {
|
|
|
9651
9651
|
const p = params;
|
|
9652
9652
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
9653
9653
|
await respondUnavailableOnThrow(respond, async () => {
|
|
9654
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
9654
|
+
const { handleNodeEvent } = await import("./server-node-events-Cz7z8PCq.js");
|
|
9655
9655
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
9656
9656
|
await handleNodeEvent({
|
|
9657
9657
|
deps: context.deps,
|
|
@@ -12680,7 +12680,7 @@ function normalizeAgentPayload(payload, opts) {
|
|
|
12680
12680
|
async function startBrowserControlServerIfEnabled() {
|
|
12681
12681
|
if (isTruthyEnvValue(process.env.OPENCLAW_SKIP_BROWSER_CONTROL_SERVER)) return null;
|
|
12682
12682
|
const override = process.env.OPENCLAW_BROWSER_CONTROL_MODULE?.trim();
|
|
12683
|
-
const mod = override ? await import(override) : await import("./control-service-
|
|
12683
|
+
const mod = override ? await import(override) : await import("./control-service-CzkpRVn7.js").then((n) => n.t);
|
|
12684
12684
|
const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
|
|
12685
12685
|
const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
|
|
12686
12686
|
if (!start) return null;
|
|
@@ -12843,8 +12843,8 @@ async function resolveA2uiRoot() {
|
|
|
12843
12843
|
for (const dir of candidates) try {
|
|
12844
12844
|
const indexPath = path.join(dir, "index.html");
|
|
12845
12845
|
const bundlePath = path.join(dir, "a2ui.bundle.js");
|
|
12846
|
-
await
|
|
12847
|
-
await
|
|
12846
|
+
await fsPromises.stat(indexPath);
|
|
12847
|
+
await fsPromises.stat(bundlePath);
|
|
12848
12848
|
return dir;
|
|
12849
12849
|
} catch {}
|
|
12850
12850
|
return null;
|
|
@@ -12853,7 +12853,7 @@ async function resolveA2uiRootReal() {
|
|
|
12853
12853
|
if (cachedA2uiRootReal !== void 0) return cachedA2uiRootReal;
|
|
12854
12854
|
if (!resolvingA2uiRoot) resolvingA2uiRoot = (async () => {
|
|
12855
12855
|
const root = await resolveA2uiRoot();
|
|
12856
|
-
cachedA2uiRootReal = root ? await
|
|
12856
|
+
cachedA2uiRootReal = root ? await fsPromises.realpath(root) : null;
|
|
12857
12857
|
return cachedA2uiRootReal;
|
|
12858
12858
|
})();
|
|
12859
12859
|
return resolvingA2uiRoot;
|
|
@@ -12870,12 +12870,12 @@ async function resolveA2uiFilePath(rootReal, urlPath) {
|
|
|
12870
12870
|
let candidate = path.join(rootReal, rel);
|
|
12871
12871
|
if (normalized.endsWith("/")) candidate = path.join(candidate, "index.html");
|
|
12872
12872
|
try {
|
|
12873
|
-
if ((await
|
|
12873
|
+
if ((await fsPromises.stat(candidate)).isDirectory()) candidate = path.join(candidate, "index.html");
|
|
12874
12874
|
} catch {}
|
|
12875
12875
|
const rootPrefix = rootReal.endsWith(path.sep) ? rootReal : `${rootReal}${path.sep}`;
|
|
12876
12876
|
try {
|
|
12877
|
-
if ((await
|
|
12878
|
-
const real = await
|
|
12877
|
+
if ((await fsPromises.lstat(candidate)).isSymbolicLink()) return null;
|
|
12878
|
+
const real = await fsPromises.realpath(candidate);
|
|
12879
12879
|
if (!real.startsWith(rootPrefix)) return null;
|
|
12880
12880
|
return real;
|
|
12881
12881
|
} catch {
|
|
@@ -12967,13 +12967,13 @@ async function handleA2uiHttpRequest(req, res) {
|
|
|
12967
12967
|
const mime = lower.endsWith(".html") || lower.endsWith(".htm") ? "text/html" : await detectMime({ filePath }) ?? "application/octet-stream";
|
|
12968
12968
|
res.setHeader("Cache-Control", "no-store");
|
|
12969
12969
|
if (mime === "text/html") {
|
|
12970
|
-
const html = await
|
|
12970
|
+
const html = await fsPromises.readFile(filePath, "utf8");
|
|
12971
12971
|
res.setHeader("Content-Type", "text/html; charset=utf-8");
|
|
12972
12972
|
res.end(injectCanvasLiveReload(html));
|
|
12973
12973
|
return true;
|
|
12974
12974
|
}
|
|
12975
12975
|
res.setHeader("Content-Type", mime);
|
|
12976
|
-
res.end(await
|
|
12976
|
+
res.end(await fsPromises.readFile(filePath));
|
|
12977
12977
|
return true;
|
|
12978
12978
|
}
|
|
12979
12979
|
|
|
@@ -12994,7 +12994,7 @@ const isSymlinkOpenError = (err) => isNodeError(err) && (err.code === "ELOOP" ||
|
|
|
12994
12994
|
async function openFileWithinRoot(params) {
|
|
12995
12995
|
let rootReal;
|
|
12996
12996
|
try {
|
|
12997
|
-
rootReal = await
|
|
12997
|
+
rootReal = await fsPromises.realpath(params.rootDir);
|
|
12998
12998
|
} catch (err) {
|
|
12999
12999
|
if (isNotFoundError(err)) throw new SafeOpenError("not-found", "root dir not found");
|
|
13000
13000
|
throw err;
|
|
@@ -13006,19 +13006,19 @@ async function openFileWithinRoot(params) {
|
|
|
13006
13006
|
const flags = constants.O_RDONLY | (supportsNoFollow ? constants.O_NOFOLLOW : 0);
|
|
13007
13007
|
let handle;
|
|
13008
13008
|
try {
|
|
13009
|
-
handle = await
|
|
13009
|
+
handle = await fsPromises.open(resolved, flags);
|
|
13010
13010
|
} catch (err) {
|
|
13011
13011
|
if (isNotFoundError(err)) throw new SafeOpenError("not-found", "file not found");
|
|
13012
13012
|
if (isSymlinkOpenError(err)) throw new SafeOpenError("invalid-path", "symlink open blocked");
|
|
13013
13013
|
throw err;
|
|
13014
13014
|
}
|
|
13015
13015
|
try {
|
|
13016
|
-
if ((await
|
|
13017
|
-
const realPath = await
|
|
13016
|
+
if ((await fsPromises.lstat(resolved).catch(() => null))?.isSymbolicLink()) throw new SafeOpenError("invalid-path", "symlink not allowed");
|
|
13017
|
+
const realPath = await fsPromises.realpath(resolved);
|
|
13018
13018
|
if (!realPath.startsWith(rootWithSep)) throw new SafeOpenError("invalid-path", "path escapes root");
|
|
13019
13019
|
const stat = await handle.stat();
|
|
13020
13020
|
if (!stat.isFile()) throw new SafeOpenError("invalid-path", "not a file");
|
|
13021
|
-
const realStat = await
|
|
13021
|
+
const realStat = await fsPromises.stat(realPath);
|
|
13022
13022
|
if (stat.ino !== realStat.ino || stat.dev !== realStat.dev) throw new SafeOpenError("invalid-path", "path mismatch");
|
|
13023
13023
|
return {
|
|
13024
13024
|
handle,
|
|
@@ -13151,7 +13151,7 @@ async function resolveFilePath(rootReal, urlPath) {
|
|
|
13151
13151
|
if (normalized.endsWith("/")) return await tryOpen(path.posix.join(rel, "index.html"));
|
|
13152
13152
|
const candidate = path.join(rootReal, rel);
|
|
13153
13153
|
try {
|
|
13154
|
-
const st = await
|
|
13154
|
+
const st = await fsPromises.lstat(candidate);
|
|
13155
13155
|
if (st.isSymbolicLink()) return null;
|
|
13156
13156
|
if (st.isDirectory()) return await tryOpen(path.posix.join(rel, "index.html"));
|
|
13157
13157
|
} catch {}
|
|
@@ -13170,13 +13170,13 @@ function normalizeBasePath(rawPath) {
|
|
|
13170
13170
|
}
|
|
13171
13171
|
async function prepareCanvasRoot(rootDir) {
|
|
13172
13172
|
await ensureDir(rootDir);
|
|
13173
|
-
const rootReal = await
|
|
13173
|
+
const rootReal = await fsPromises.realpath(rootDir);
|
|
13174
13174
|
try {
|
|
13175
13175
|
const indexPath = path.join(rootReal, "index.html");
|
|
13176
|
-
await
|
|
13176
|
+
await fsPromises.stat(indexPath);
|
|
13177
13177
|
} catch {
|
|
13178
13178
|
try {
|
|
13179
|
-
await
|
|
13179
|
+
await fsPromises.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
|
|
13180
13180
|
} catch {}
|
|
13181
13181
|
}
|
|
13182
13182
|
return rootReal;
|
|
@@ -15556,7 +15556,7 @@ function resolveGatewayOwnerStatus(pid, payload, platform) {
|
|
|
15556
15556
|
}
|
|
15557
15557
|
async function readLockPayload(lockPath) {
|
|
15558
15558
|
try {
|
|
15559
|
-
const raw = await
|
|
15559
|
+
const raw = await fsPromises.readFile(lockPath, "utf8");
|
|
15560
15560
|
const parsed = JSON.parse(raw);
|
|
15561
15561
|
if (typeof parsed.pid !== "number") return null;
|
|
15562
15562
|
if (typeof parsed.createdAt !== "string") return null;
|
|
@@ -15590,11 +15590,11 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
15590
15590
|
const staleMs = opts.staleMs ?? DEFAULT_STALE_MS;
|
|
15591
15591
|
const platform = opts.platform ?? process.platform;
|
|
15592
15592
|
const { lockPath, configPath } = resolveGatewayLockPath(env);
|
|
15593
|
-
await
|
|
15593
|
+
await fsPromises.mkdir(path.dirname(lockPath), { recursive: true });
|
|
15594
15594
|
const startedAt = Date.now();
|
|
15595
15595
|
let lastPayload = null;
|
|
15596
15596
|
while (Date.now() - startedAt < timeoutMs) try {
|
|
15597
|
-
const handle = await
|
|
15597
|
+
const handle = await fsPromises.open(lockPath, "wx");
|
|
15598
15598
|
const startTime = platform === "linux" ? readLinuxStartTime(process.pid) : null;
|
|
15599
15599
|
const payload = {
|
|
15600
15600
|
pid: process.pid,
|
|
@@ -15608,7 +15608,7 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
15608
15608
|
configPath,
|
|
15609
15609
|
release: async () => {
|
|
15610
15610
|
await handle.close().catch(() => void 0);
|
|
15611
|
-
await
|
|
15611
|
+
await fsPromises.rm(lockPath, { force: true });
|
|
15612
15612
|
}
|
|
15613
15613
|
};
|
|
15614
15614
|
} catch (err) {
|
|
@@ -15617,7 +15617,7 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
15617
15617
|
const ownerPid = lastPayload?.pid;
|
|
15618
15618
|
const ownerStatus = ownerPid ? resolveGatewayOwnerStatus(ownerPid, lastPayload, platform) : "unknown";
|
|
15619
15619
|
if (ownerStatus === "dead" && ownerPid) {
|
|
15620
|
-
await
|
|
15620
|
+
await fsPromises.rm(lockPath, { force: true });
|
|
15621
15621
|
continue;
|
|
15622
15622
|
}
|
|
15623
15623
|
if (ownerStatus !== "alive") {
|
|
@@ -15627,13 +15627,13 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
15627
15627
|
stale = Number.isFinite(createdAt) ? Date.now() - createdAt > staleMs : false;
|
|
15628
15628
|
}
|
|
15629
15629
|
if (!stale) try {
|
|
15630
|
-
const st = await
|
|
15630
|
+
const st = await fsPromises.stat(lockPath);
|
|
15631
15631
|
stale = Date.now() - st.mtimeMs > staleMs;
|
|
15632
15632
|
} catch {
|
|
15633
15633
|
stale = true;
|
|
15634
15634
|
}
|
|
15635
15635
|
if (stale) {
|
|
15636
|
-
await
|
|
15636
|
+
await fsPromises.rm(lockPath, { force: true });
|
|
15637
15637
|
continue;
|
|
15638
15638
|
}
|
|
15639
15639
|
}
|