activeclaw 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-C2elk6PC.js → accounts-xJh3pJei.js} +9 -9
- package/dist/{acp-cli-BHTkhOOK.js → acp-cli-BpJwIyLl.js} +4 -4
- package/dist/{acp-cli-BOqmKps_.js → acp-cli-D_40K9Gr.js} +15 -15
- package/dist/{agent-CVe9csik.js → agent-DkZpDQJb.js} +12 -12
- package/dist/{agent-DplJM2iA.js → agent-FTQXFOHA.js} +10 -10
- package/dist/{agent-scope-GWSAY_lJ.js → agent-scope-BEf5crnU.js} +1 -1
- package/dist/{agent-scope-bNHJh30H.js → agent-scope-CPiO6Aw7.js} +12 -12
- package/dist/{agent-scope-3Vx285VQ.js → agent-scope-D8miw9q_.js} +1 -1
- package/dist/{agent-scope-D3me2AZa.js → agent-scope-DQuy3dwI.js} +1 -1
- package/dist/{archive-CXhvR9nU.js → archive-BixfOVSf.js} +9 -9
- package/dist/{audit-VCa9vZUY.js → audit-CGlFTiEB.js} +23 -23
- package/dist/{audit-DZUtH-Nt.js → audit-CY-yopxa.js} +8 -8
- package/dist/{auth-BvIPpm7G.js → auth-D_PS9etv.js} +1 -1
- package/dist/{auth-health-CToniips.js → auth-health-BGd7tGq0.js} +1 -1
- package/dist/{auth-health-Cx5exPMV.js → auth-health-d7BMZlWG.js} +1 -1
- package/dist/{auth-profiles-FJ3VY25a.js → auth-profiles-Bv1AEm-Y.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +10 -10
- package/dist/bundled/session-memory/handler.js +10 -10
- package/dist/{call-BLDHRggD.js → call-7yrB6v4I.js} +1 -1
- package/dist/{call-LDoK5_Jv.js → call-Ccyb4kQR.js} +11 -11
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-_MKOfqan.js → channel-options-DwA7SVbf.js} +7 -7
- package/dist/{channel-options-ByiQNOTJ.js → channel-options-DwTe763m.js} +3 -3
- package/dist/{channel-selection-DqqM1jFv.js → channel-selection-La1tQIxQ.js} +2 -2
- package/dist/{channel-selection-DAHCVAX4.js → channel-selection-RZimme3j.js} +1 -1
- package/dist/{channels-cli-Cc7g9t97.js → channels-cli-CsLF44Xf.js} +26 -26
- package/dist/{channels-cli-dHm4C9tg.js → channels-cli-ENsD3dK4.js} +48 -48
- package/dist/{channels-status-issues-CIvi5Dko.js → channels-status-issues-B3KkflfR.js} +1 -1
- package/dist/{channels-status-issues-DFhI_u0p.js → channels-status-issues-DmIFbKRs.js} +1 -1
- package/dist/{chrome-CF16STk9.js → chrome-BN9o1yns.js} +7 -7
- package/dist/{chrome-UrBfjc6F.js → chrome-Db7w64LF.js} +7 -7
- package/dist/{chrome-Dm-EgOjJ.js → chrome-XHJ9uNgs.js} +5 -5
- package/dist/{clack-prompter-BCiBkJVr.js → clack-prompter-IfLZ3uDJ.js} +4 -4
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-BXVQxcpm.js → cli-CBL6jLH_.js} +21 -21
- package/dist/{cli-ChBVn7aR.js → cli-Dxi8xMCj.js} +36 -36
- package/dist/{client-6xKrRC-1.js → client-Cam-Cwyu.js} +2 -2
- package/dist/{command-options-Zeat4Qbm.js → command-options-_12DJE1t.js} +3 -3
- package/dist/{commands-BFfaY2r9.js → commands-CjEGXOZ_.js} +3 -3
- package/dist/{completion-cli-BYQOTb3_.js → completion-cli-DZlpcsto.js} +40 -40
- package/dist/{completion-cli-DyCmQ6EC.js → completion-cli-DeeDoOCJ.js} +1 -1
- package/dist/{config-DuOV0jZh.js → config-B00lvFac.js} +2 -2
- package/dist/{config-C6Od01-b.js → config-BqGVMf1y.js} +2 -2
- package/dist/{config-5nrp_Vu5.js → config-DiNnQcwe.js} +10 -10
- package/dist/{config-DssMzgXt.js → config-XBdA0ciN.js} +2 -2
- package/dist/{config-guard-DJuKG5j3.js → config-guard-CmgZJTGV.js} +21 -21
- package/dist/{configure-BsYuK_Kc.js → configure-89VjxHbW.js} +18 -18
- package/dist/{configure-DAraHgDw.js → configure-DB_qIT8D.js} +8 -8
- package/dist/{control-service-BNpv08hT.js → control-service-CAXvnE0u.js} +5 -5
- package/dist/{control-service-BL9NP7JP.js → control-service-IRAmbcbN.js} +1 -1
- package/dist/{cron-cli-E_r-cKMN.js → cron-cli-DKp-JxRS.js} +16 -16
- package/dist/{cron-cli-CyYUj-LH.js → cron-cli-DhUWcYdk.js} +6 -6
- package/dist/{daemon-cli-DZDIZ0M-.js → daemon-cli-Ctp4o7qg.js} +16 -16
- package/dist/{daemon-cli-MGPsiBcm.js → daemon-cli-DfLos4-7.js} +7 -7
- package/dist/{daemon-runtime-DJzKTLqv.js → daemon-runtime-CVte5WIX.js} +11 -11
- package/dist/{daemon-runtime-CxQ1vIcj.js → daemon-runtime-c0uXH4Dl.js} +1 -1
- package/dist/{deliver-DD8Syx3t.js → deliver-B-MU3Szq.js} +10 -10
- package/dist/{deliver-ClNVlrrz.js → deliver-BXVnDeja.js} +3 -3
- package/dist/{deliver-DRy_Piku.js → deliver-CT6KiDqO.js} +2 -2
- package/dist/{deliver-CUzkySCA.js → deliver-hf-WKyWd.js} +5 -5
- package/dist/{deps-CMw5TIE3.js → deps-BoJcAXaY.js} +2 -2
- package/dist/{deps-C0FUEdGv.js → deps-CaDXl7AZ.js} +2 -2
- package/dist/{devices-cli-B343ESvy.js → devices-cli-Cm7U1py9.js} +4 -4
- package/dist/{devices-cli-Dlpp2Bpf.js → devices-cli-DQJuKnqz.js} +13 -13
- package/dist/{directory-cli-DgdU5RWy.js → directory-cli-67kzd4I5.js} +5 -5
- package/dist/{directory-cli-DStVmSxy.js → directory-cli-BqVg6pQq.js} +14 -14
- package/dist/{dispatcher-BMY38O6j.js → dispatcher-Rf7W2dBd.js} +4 -4
- package/dist/{dns-cli-C1-d9JM_.js → dns-cli-BXAWgd6S.js} +11 -11
- package/dist/{dns-cli-edebp5SN.js → dns-cli-Dqj7O6Q_.js} +3 -3
- package/dist/{docs-cli-BxHh0OdP.js → docs-cli-CamBqzb5.js} +1 -1
- package/dist/{docs-cli-krgDVS3d.js → docs-cli-NONeCqqB.js} +6 -6
- package/dist/{doctor-B5xT9CV4.js → doctor-BkGTzeZj.js} +43 -43
- package/dist/{doctor-DuML_miY.js → doctor-Bytc7n21.js} +18 -18
- package/dist/entry.js +1 -1
- package/dist/{env-BxRc6wWv.js → env-DqiOM57_.js} +1 -1
- package/dist/{exec-Cv_Ofd1m.js → exec-BSMwiIMp.js} +1 -1
- package/dist/{exec-approvals-cli-QKMXtfNU.js → exec-approvals-cli-Bn-YY4Vi.js} +23 -23
- package/dist/{exec-approvals-cli-CmXG5_Q5.js → exec-approvals-cli-DhXj3hQX.js} +6 -6
- package/dist/extensionAPI.js +22 -22
- package/dist/{gateway-cli-V_dvW_hJ.js → gateway-cli-DRJQ8rTD.js} +135 -135
- package/dist/{gateway-cli-BpaPqRTM.js → gateway-cli-KkK4A0D8.js} +44 -44
- package/dist/{gateway-rpc-BHAE9xXJ.js → gateway-rpc-3B5y445n.js} +1 -1
- package/dist/{gateway-rpc-B4Wurkir.js → gateway-rpc-sLO5Psk7.js} +3 -3
- package/dist/{github-copilot-auth-CmgVG7Gb.js → github-copilot-auth-BJOEuPdX.js} +8 -8
- package/dist/{github-copilot-auth-BenHcDDG.js → github-copilot-auth-BtMu5l0m.js} +5 -5
- package/dist/{gmail-setup-utils-DSktB6l0.js → gmail-setup-utils-CHcssBOA.js} +1 -1
- package/dist/{gmail-setup-utils-TwmZ8mMs.js → gmail-setup-utils-CTDfMXTW.js} +3 -3
- package/dist/{health-format-DFhzeh1b.js → health-format-D6ogrdc9.js} +8 -8
- package/dist/{health-format-D151p64n.js → health-format-I_hcV0x3.js} +14 -14
- package/dist/{help-format-DAj7l5uV.js → help-format-rtF4QeRM.js} +1 -1
- package/dist/{hooks-cli-mEq9e_de.js → hooks-cli-BbeYZaya.js} +23 -23
- package/dist/{hooks-cli-CUjjzKcp.js → hooks-cli-rwazn-4_.js} +61 -61
- package/dist/{hooks-status-U2JQ8wza.js → hooks-status-B3y3_Ypf.js} +5 -5
- package/dist/{hooks-status-BrIvQK2p.js → hooks-status-Br-2bK2G.js} +1 -1
- package/dist/{image-BGhlwUcs.js → image-BVLNmAgW.js} +3 -3
- package/dist/{image-BByTK3t0.js → image-Ds4NLGPR.js} +3 -3
- package/dist/{image-k4cY_IKa.js → image-DxmrpIUn.js} +10 -10
- package/dist/{image-CHRalJF2.js → image-rOFfK3PJ.js} +3 -3
- package/dist/index.js +88 -88
- package/dist/{installs-CRSjQxbR.js → installs-C9WW834H.js} +21 -21
- package/dist/{links-C591fM9M.js → links-D6CUlrWZ.js} +1 -1
- package/dist/llm-slug-generator.js +10 -10
- package/dist/{loader-BTR4VGE9.js → loader-CZRfriRQ.js} +29 -29
- package/dist/{logging-MMRGFxGI.js → logging-BhXRnaAc.js} +1 -1
- package/dist/{login-qr-CYGosTZf.js → login-qr-CGEu5TU-.js} +1 -1
- package/dist/{login-qr-DxwM3Wcw.js → login-qr-CPEsT6dN.js} +1 -1
- package/dist/{login-qr-C2zCFC0_.js → login-qr-DH150tTp.js} +1 -1
- package/dist/{login-qr-CQLEtsFG.js → login-qr-DXiuhBc8.js} +5 -5
- package/dist/{logs-cli-D065Q9Ej.js → logs-cli-ClgkHnfT.js} +5 -5
- package/dist/{logs-cli-BJm2UpZ1.js → logs-cli-CoWZ_Lzs.js} +14 -14
- package/dist/{manager-CMTN4ZRM.js → manager-CcVYv0N5.js} +2 -2
- package/dist/{manager-C6GZI3No.js → manager-D6EbxDV4.js} +4 -4
- package/dist/{manager-BHbv6kNQ.js → manager-DOqexxfO.js} +15 -15
- package/dist/{manager-DM_QdSUV.js → manager-DYo4PlVM.js} +2 -2
- package/dist/{manifest-registry-3It8Z8yN.js → manifest-registry-C0ApY9d8.js} +1 -1
- package/dist/{message-channel-Cu61-7H6.js → message-channel-DIvXZ2w4.js} +1 -1
- package/dist/{model-auth-SZQ9GSFA.js → model-auth-ioeR_zLX.js} +1 -1
- package/dist/{model-selection-DSXkS3Uu.js → model-selection-CezC36lH.js} +1 -1
- package/dist/{model-selection-NPMD6wNp.js → model-selection-lT7g9ysC.js} +4 -4
- package/dist/{models-cli-BtWKT0MB.js → models-cli-C0_ekrlc.js} +45 -45
- package/dist/{models-cli-DcuyUIwv.js → models-cli-CwqJkYET.js} +23 -23
- package/dist/{node-cli-CO2WOpKq.js → node-cli-BxBGSuPE.js} +7 -7
- package/dist/{node-cli-CTm9wM4m.js → node-cli-SEsdX8-y.js} +29 -29
- package/dist/{node-service-CM5vkdIo.js → node-service-OjXvN5Ee.js} +1 -1
- package/dist/{nodes-cli-CCcFmR_s.js → nodes-cli-By6yeCTB.js} +5 -5
- package/dist/{nodes-cli-C8Lamzfr.js → nodes-cli-jihJL52P.js} +18 -18
- package/dist/{nodes-screen-lykd2cny.js → nodes-screen-A8K8mlHX.js} +2 -2
- package/dist/{note-5WqioBRA.js → note-B5QlVszL.js} +2 -2
- package/dist/{onboard-channels-B_k5nbDK.js → onboard-channels-DNlBXz4a.js} +7 -7
- package/dist/{onboard-channels-B_nZbDqG.js → onboard-channels-DYUwMESI.js} +4 -4
- package/dist/{onboard-skills-BeyUY0aV.js → onboard-skills-Djn43Fx2.js} +12 -12
- package/dist/{onboard-skills-BXZ4QIB4.js → onboard-skills-DwIf2ayU.js} +8 -8
- package/dist/{onboarding-C0eU8uVL.js → onboarding-DzjDuLJ0.js} +37 -37
- package/dist/{openclaw-root-9ILYSmJ9.js → openclaw-root-CBSq79BF.js} +5 -5
- package/dist/{openclaw-root-93W6UrUK.js → openclaw-root-Dw6gumSU.js} +3 -3
- package/dist/{pairing-cli-j81iKxmQ.js → pairing-cli-CRQDpj8f.js} +6 -6
- package/dist/{pairing-cli-CV3Fi8Ul.js → pairing-cli-XrcX3iD7.js} +14 -14
- package/dist/{pairing-labels-C1gYNpBx.js → pairing-labels-CWFEtSc3.js} +1 -1
- package/dist/{pairing-labels-CHxlh3tT.js → pairing-labels-K_6MMQA_.js} +1 -1
- package/dist/{pairing-store-C5bI2uOn.js → pairing-store-C6EhvkMA.js} +2 -2
- package/dist/{pairing-store-CO6umWFP.js → pairing-store-CgXR3ZWJ.js} +1 -1
- package/dist/{path-env-BgLvMbz_.js → path-env-CvL55Ntz.js} +1 -1
- package/dist/{paths-BIFtPbjx.js → paths-DL6EIRTw.js} +1 -1
- package/dist/{pi-embedded-CLZcbynY.js → pi-embedded-BtNK8X-L.js} +20 -20
- package/dist/{pi-embedded-helpers-DswdoKvB.js → pi-embedded-helpers-BbWRSUnc.js} +7 -7
- package/dist/{pi-embedded-helpers-aRE0ahwI.js → pi-embedded-helpers-Bkpd4fTr.js} +2 -2
- package/dist/{pi-embedded-helpers-C-Q-0H33.js → pi-embedded-helpers-Dx2dOx7N.js} +8 -8
- package/dist/{pi-embedded-helpers-DDVMJlkH.js → pi-embedded-helpers-WA1Uq3tV.js} +7 -7
- package/dist/{pi-tools.policy-B5XNSHCf.js → pi-tools.policy-CCQVTuZw.js} +4 -4
- package/dist/{plugin-auto-enable-DOx-bCgl.js → plugin-auto-enable-BvBr0yMV.js} +5 -5
- package/dist/{plugin-auto-enable-DwytyoHT.js → plugin-auto-enable-lZwe2yX5.js} +1 -1
- package/dist/{plugins-CXDOnert.js → plugins-5W5E71Ut.js} +4 -4
- package/dist/{plugins-B7F0Ly9G.js → plugins-Db5BiELK.js} +1 -1
- package/dist/{plugins-cli-CjittBBs.js → plugins-cli-l1TkWMZx.js} +42 -42
- package/dist/{plugins-cli-trxh13-k.js → plugins-cli-mSMFtuzL.js} +22 -22
- package/dist/{program-c0kZz_nN.js → program-CaHfkQ0p.js} +46 -46
- package/dist/{progress-DIQJt9Va.js → progress-COZ_ycun.js} +1 -1
- package/dist/{prompt-style-CjQRlDx4.js → prompt-style-CghhrkxS.js} +1 -1
- package/dist/{pw-ai-COWYvUfG.js → pw-ai-BtArcIEo.js} +7 -7
- package/dist/{pw-ai-C9e4lsYZ.js → pw-ai-BxJ-KCIy.js} +1 -1
- package/dist/{pw-ai-CsvaObGM.js → pw-ai-DMeydD_d.js} +1 -1
- package/dist/{qmd-manager-CAXjRwd6.js → qmd-manager-2PsT4eTr.js} +19 -19
- package/dist/{qmd-manager-BQh8e-46.js → qmd-manager-BzY2LQTT.js} +3 -3
- package/dist/{qmd-manager-BM-1x46_.js → qmd-manager-C9YWFeG6.js} +1 -1
- package/dist/{qmd-manager-Bs18wYIN.js → qmd-manager-CpsjQyaZ.js} +1 -1
- package/dist/{register.subclis-CFcnR7W8.js → register.subclis-C0SIOLju.js} +28 -28
- package/dist/{reply-BUHI5pXf.js → reply-swCg9iXH.js} +127 -127
- package/dist/{routes-CSlSTRsY.js → routes-B4QQiFju.js} +1 -1
- package/dist/{routes-CserrUab.js → routes-BqZyywjQ.js} +19 -19
- package/dist/{rpc-Bag0Uule.js → rpc-Blt6MJ4F.js} +1 -1
- package/dist/{rpc-C3XyDrXa.js → rpc-D_Pp8HB_.js} +3 -3
- package/dist/{run-main-DN34y3WG.js → run-main-D9PO9-U8.js} +49 -49
- package/dist/{sandbox-CTZxQzEn.js → sandbox-Aks-9EcZ.js} +5 -5
- package/dist/{sandbox-CGlEY-RT.js → sandbox-DxAKZfZd.js} +26 -26
- package/dist/{sandbox-cli-BzGe2cWN.js → sandbox-cli-149xhJPJ.js} +18 -18
- package/dist/{sandbox-cli-Cb18XBXE.js → sandbox-cli-C99Thxi8.js} +7 -7
- package/dist/{security-cli-BUg11RRK.js → security-cli-BclMtAZ6.js} +33 -33
- package/dist/{security-cli-CXyvz9Fo.js → security-cli-iqYLMOz3.js} +11 -11
- package/dist/{server-context-8Qt35QdF.js → server-context-DT3SRl5J.js} +5 -5
- package/dist/{server-node-events-BNw4w95N.js → server-node-events-BbWvPZe5.js} +23 -23
- package/dist/{server-node-events-D5itxoZj.js → server-node-events-CUQHYPok.js} +39 -39
- package/dist/{service-Cd4BxKuo.js → service-DPsnpYzk.js} +16 -16
- package/dist/{service-audit-BRMQq36C.js → service-audit-DWlZlYl6.js} +13 -13
- package/dist/{service-audit-BpQrn5Ks.js → service-audit-x6jCN-6a.js} +1 -1
- package/dist/{shared-ILguacOr.js → shared-DQO8Xdjp.js} +2 -2
- package/dist/{shared-gOyV38rM.js → shared-DvAp_MsR.js} +2 -2
- package/dist/{skill-scanner-DrVEHfC6.js → skill-scanner-zYmZ2Coy.js} +5 -5
- package/dist/{skills-C_rNI0Jc.js → skills-D5UZZZSY.js} +1 -1
- package/dist/{skills-cli-DHghbc62.js → skills-cli-3PxJU4R0.js} +12 -12
- package/dist/{skills-cli-vaRLo4cS.js → skills-cli-ggyLBtAY.js} +5 -5
- package/dist/{skills-Bau1zXIA.js → skills-pqbmJf1e.js} +6 -6
- package/dist/{skills-status-CJMt5NLm.js → skills-status-DjtPPMnY.js} +1 -1
- package/dist/{skills-status-BkAjWh29.js → skills-status-d-tVLIaC.js} +3 -3
- package/dist/{sqlite-Btrgi7-j.js → sqlite-CDfAET9Y.js} +12 -12
- package/dist/{sqlite-BSGTqtyx.js → sqlite-HepBVDoX.js} +1 -1
- package/dist/{status-DZ9rJ3dY.js → status-BoK_Exgh.js} +20 -20
- package/dist/{status-BjRAcHpu.js → status-DADQEBbg.js} +3 -3
- package/dist/{status-BiwDwls4.js → status-DJYrqIJa.js} +4 -4
- package/dist/{subsystem-Bh1Y_6Uv.js → subsystem-BbfPHMjH.js} +2 -2
- package/dist/{system-cli-CdXY44WQ.js → system-cli-Clqsx8U5.js} +5 -5
- package/dist/{system-cli-DVES5fvn.js → system-cli-JNECg6i0.js} +14 -14
- package/dist/{systemd-D6wTPnHi.js → systemd-Dd6y2wnN.js} +7 -7
- package/dist/{systemd-linger-BxjTrgoH.js → systemd-linger-CblmG_UI.js} +2 -2
- package/dist/{table-DEnmtvl5.js → table-DTm1PXe-.js} +2 -2
- package/dist/{tailscale-Cu-2HNvU.js → tailscale-WFi900xf.js} +2 -2
- package/dist/{tool-display-DskiU8Kt.js → tool-display-DwOJbBjC.js} +1 -1
- package/dist/{tui-Dvvu-l5k.js → tui-BdJWZdto.js} +5 -5
- package/dist/{tui-_kotMBV7.js → tui-CJPKiYWz.js} +9 -9
- package/dist/{tui-cli-Cr_Ne_S0.js → tui-cli-D3n-O9zB.js} +11 -11
- package/dist/{tui-cli-BenxYvT_.js → tui-cli-DuNJ1OqY.js} +23 -23
- package/dist/{tui-formatters-B4pCnF0N.js → tui-formatters-C-dAVvRi.js} +4 -4
- package/dist/{tui-formatters-BxM6uwtn.js → tui-formatters-C3NarH24.js} +3 -3
- package/dist/{update-JB16aPIY.js → update-DymgbepH.js} +5 -5
- package/dist/{update-cli-C-TWZbOn.js → update-cli-AcMtIZbG.js} +69 -69
- package/dist/{update-cli-BHKdzY2U.js → update-cli-B-3XbteQ.js} +36 -36
- package/dist/{update-runner-7YSPb3A4.js → update-runner-B7twibOm.js} +8 -8
- package/dist/{update-runner-D0k9HftN.js → update-runner-BiHI3sto.js} +29 -29
- package/dist/{utils-es4ygvQ-.js → utils-l-o5S4c-.js} +1 -1
- package/dist/{webhooks-cli-BvkUb4ZO.js → webhooks-cli-CVIE9TtX.js} +5 -5
- package/dist/{webhooks-cli-CZKnZxrS.js → webhooks-cli-DjdfcB16.js} +11 -11
- package/dist/{widearea-dns-2ah0bkAj.js → widearea-dns-mquEd9kr.js} +1 -1
- package/dist/{ws-log-D7MkvKhg.js → ws-log-B2H596h5.js} +1 -1
- package/dist/{wsl-uqfIGnkl.js → wsl-Cwo7X0Un.js} +1 -1
- package/package.json +1 -1
|
@@ -1,103 +1,103 @@
|
|
|
1
1
|
import { _ as expandHomePrefix, g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-DVBShlw6.js";
|
|
2
|
-
import { B as getLogger, C as getActivePluginRegistry, I as colorize, L as isRich, M as setVerbose, R as theme, V as getResolvedLoggerSettings, a as setConsoleTimestampPrefix, c as defaultRuntime, h as DEFAULT_CHAT_CHANNEL, i as setConsoleSubsystemFilter, n as runtimeForLogger, p as CHANNEL_IDS, t as createSubsystemLogger, z as getChildLogger } from "./subsystem-
|
|
3
|
-
import { C as shortenHomePath, D as truncateUtf16Safe, b as resolveUserPath, c as ensureDir, d as isPlainObject, r as clamp, t as CONFIG_DIR } from "./utils-
|
|
4
|
-
import { B as normalizeElevatedLevel, H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, U as normalizeUsageDisplay, V as normalizeReasoningLevel, W as normalizeVerboseLevel } from "./pi-embedded-helpers-
|
|
5
|
-
import { $ as inferLegacyName, $n as isTtsEnabled, $t as getSkillsSnapshotVersion, An as runSubagentAnnounceFlow, Ar as registerUnhandledRejectionHandler, B as consumeGatewaySigusr1RestartAuthorization, Br as DEFAULT_INPUT_TIMEOUT_MS, Bt as getRemoteSkillEligibility, C as readSessionMessages, Cr as applyVerboseOverride, Dn as isAbortTrigger, E as stripEnvelopeFromMessages, En as formatZonedTimestamp, Er as isSystemEventContextChanged, F as resetDirectoryCache, Fn as onAgentEvent, Fr as DEFAULT_INPUT_IMAGE_MIMES, G as formatDoctorNonInteractiveHint, Gn as resolveUserTimezone, Gr as resolveAgentTimeoutMs, Gt as setSkillsRemoteRegistry, H as scheduleGatewaySigusr1Restart, Hn as resolveMemoryBackendConfig, Hr as extractImageContentFromSource, Ht as recordRemoteNodeInfo, In as registerAgentRunContext, Ir as DEFAULT_INPUT_MAX_REDIRECTS, It as CONTROL_UI_AVATAR_PREFIX, J as summarizeRestartSentinel, Jn as registerInternalHook, Jt as rejectNodePairing, K as formatRestartSentinelMessage, Kn as clearInternalHooks, Kt as approveNodePairing, L as runWithModelFallback, Lr as DEFAULT_INPUT_PDF_MAX_PAGES, Lt as buildControlUiAvatarUrl, M as resolveOutboundTarget, Mn as clearAgentRunContext, Mr as DEFAULT_INPUT_FILE_MAX_CHARS, N as resolveSessionDeliveryTarget, Nn as emitAgentEvent, Nr as DEFAULT_INPUT_FILE_MIMES, O as ensureOutboundSessionEntry, On as stopSubagentsForRequester, Or as loadModelCatalog, Pn as getAgentRunContext, Pr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Q as normalizeCronJobPatch, Qn as getTtsProvider, Qt as verifyNodeToken, Rn as normalizePollInput, Rr as DEFAULT_INPUT_PDF_MAX_PIXELS, Rt as normalizeControlUiBasePath, S as capArrayByJsonBytes, Sr as applyModelOverrideToSessionEntry, T as resolveSessionTranscriptCandidates, Tn as createReplyDispatcher, Tr as enqueueSystemEvent, Tt as handleReset, U as setGatewaySigusr1RestartPolicy, Un as resolveAgentIdentity, Ur as normalizeMimeList, Ut as refreshRemoteBinsForConnectedNodes, V as isGatewaySigusr1RestartExternallyAllowed, Vn as getMemorySearchManager, Vr as extractFileContentFromSource, Vt as primeRemoteSkillsCache, W as consumeRestartSentinel, Wt as refreshRemoteNodeBins, X as writeRestartSentinel, Xn as OPENAI_TTS_MODELS, Xt as requestNodePairing, Yn as triggerInternalHook, Yt as renamePairedNode, Z as normalizeCronJobCreate, Zn as OPENAI_TTS_VOICES, Zt as updatePairedNodeMetadata, _ as loadCombinedSessionStoreForGateway, ar as resolveTtsProviderOrder, b as resolveSessionModelRef, br as lookupContextTokens, c as clearSessionQueues, cn as createReplyPrefixOptions, cr as textToSpeech, d as waitForEmbeddedPiRunEnd, dn as buildHistoryContextFromEntries, dr as CommandLane, dt as loadProviderUsageSummary, en as registerSkillsChangeListener, er as isTtsProviderConfigured, et as normalizeOptionalAgentId, fn as resolveHeartbeatVisibility, fr as startDiagnosticHeartbeat, g as listSessionsFromStore, gt as handleSlackHttpRequest, h as listAgentsForGateway, hn as onHeartbeatEvent, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, i as runCliAgent, in as isExternalHookSession, ir as resolveTtsPrefsPath, it as migrateLegacyCronPayload, jr as DEFAULT_INPUT_FILE_MAX_BYTES, k as resolveOutboundSessionRoute, kn as initSubagentRegistry, l as runEmbeddedPiAgent, ln as normalizeGroupActivation, lt as getPluginToolMeta, m as resolveAnnounceTargetFromKey, mn as getLastHeartbeatEvent, mr as isDiagnosticsEnabled, n as getCliSessionId, nn as detectSuspiciousPatterns, nr as resolveTtsAutoMode, nt as normalizePayloadToSystemText, o as normalizeSendPolicy, or as setTtsEnabled, p as createOpenClawTools, pr as stopDiagnosticHeartbeat, qn as createInternalHookEvent, qt as listNodePairing, r as setCliSessionId, rn as getHookType, rr as resolveTtsConfig, rt as normalizeRequiredName, s as resolveSendPolicy, sr as setTtsProvider, st as requestHeartbeatNow, tn as buildSafeExternalPrompt, tr as resolveTtsApiKey, tt as normalizeOptionalText, u as abortEmbeddedPiRun, ur as setCommandLaneConcurrency, ut as loadOpenClawPlugins, v as loadSessionEntry, vn as resolveCronStyleNow, w as readSessionPreviewItemsFromTranscript, wn as dispatchInboundMessage, wr as parseVerboseOverride, x as archiveFileOnDisk, xn as getChannelActivity, y as resolveGatewaySessionStoreTarget, yr as stripHeartbeatToken, z as authorizeGatewaySigusr1Restart, zr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, zt as resolveAssistantAvatarUrl } from "./reply-
|
|
2
|
+
import { B as getLogger, C as getActivePluginRegistry, I as colorize, L as isRich, M as setVerbose, R as theme, V as getResolvedLoggerSettings, a as setConsoleTimestampPrefix, c as defaultRuntime, h as DEFAULT_CHAT_CHANNEL, i as setConsoleSubsystemFilter, n as runtimeForLogger, p as CHANNEL_IDS, t as createSubsystemLogger, z as getChildLogger } from "./subsystem-BbfPHMjH.js";
|
|
3
|
+
import { C as shortenHomePath, D as truncateUtf16Safe, b as resolveUserPath, c as ensureDir, d as isPlainObject, r as clamp, t as CONFIG_DIR } from "./utils-l-o5S4c-.js";
|
|
4
|
+
import { B as normalizeElevatedLevel, H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, U as normalizeUsageDisplay, V as normalizeReasoningLevel, W as normalizeVerboseLevel } from "./pi-embedded-helpers-WA1Uq3tV.js";
|
|
5
|
+
import { $ as inferLegacyName, $n as isTtsEnabled, $t as getSkillsSnapshotVersion, An as runSubagentAnnounceFlow, Ar as registerUnhandledRejectionHandler, B as consumeGatewaySigusr1RestartAuthorization, Br as DEFAULT_INPUT_TIMEOUT_MS, Bt as getRemoteSkillEligibility, C as readSessionMessages, Cr as applyVerboseOverride, Dn as isAbortTrigger, E as stripEnvelopeFromMessages, En as formatZonedTimestamp, Er as isSystemEventContextChanged, F as resetDirectoryCache, Fn as onAgentEvent, Fr as DEFAULT_INPUT_IMAGE_MIMES, G as formatDoctorNonInteractiveHint, Gn as resolveUserTimezone, Gr as resolveAgentTimeoutMs, Gt as setSkillsRemoteRegistry, H as scheduleGatewaySigusr1Restart, Hn as resolveMemoryBackendConfig, Hr as extractImageContentFromSource, Ht as recordRemoteNodeInfo, In as registerAgentRunContext, Ir as DEFAULT_INPUT_MAX_REDIRECTS, It as CONTROL_UI_AVATAR_PREFIX, J as summarizeRestartSentinel, Jn as registerInternalHook, Jt as rejectNodePairing, K as formatRestartSentinelMessage, Kn as clearInternalHooks, Kt as approveNodePairing, L as runWithModelFallback, Lr as DEFAULT_INPUT_PDF_MAX_PAGES, Lt as buildControlUiAvatarUrl, M as resolveOutboundTarget, Mn as clearAgentRunContext, Mr as DEFAULT_INPUT_FILE_MAX_CHARS, N as resolveSessionDeliveryTarget, Nn as emitAgentEvent, Nr as DEFAULT_INPUT_FILE_MIMES, O as ensureOutboundSessionEntry, On as stopSubagentsForRequester, Or as loadModelCatalog, Pn as getAgentRunContext, Pr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Q as normalizeCronJobPatch, Qn as getTtsProvider, Qt as verifyNodeToken, Rn as normalizePollInput, Rr as DEFAULT_INPUT_PDF_MAX_PIXELS, Rt as normalizeControlUiBasePath, S as capArrayByJsonBytes, Sr as applyModelOverrideToSessionEntry, T as resolveSessionTranscriptCandidates, Tn as createReplyDispatcher, Tr as enqueueSystemEvent, Tt as handleReset, U as setGatewaySigusr1RestartPolicy, Un as resolveAgentIdentity, Ur as normalizeMimeList, Ut as refreshRemoteBinsForConnectedNodes, V as isGatewaySigusr1RestartExternallyAllowed, Vn as getMemorySearchManager, Vr as extractFileContentFromSource, Vt as primeRemoteSkillsCache, W as consumeRestartSentinel, Wt as refreshRemoteNodeBins, X as writeRestartSentinel, Xn as OPENAI_TTS_MODELS, Xt as requestNodePairing, Yn as triggerInternalHook, Yt as renamePairedNode, Z as normalizeCronJobCreate, Zn as OPENAI_TTS_VOICES, Zt as updatePairedNodeMetadata, _ as loadCombinedSessionStoreForGateway, ar as resolveTtsProviderOrder, b as resolveSessionModelRef, br as lookupContextTokens, c as clearSessionQueues, cn as createReplyPrefixOptions, cr as textToSpeech, d as waitForEmbeddedPiRunEnd, dn as buildHistoryContextFromEntries, dr as CommandLane, dt as loadProviderUsageSummary, en as registerSkillsChangeListener, er as isTtsProviderConfigured, et as normalizeOptionalAgentId, fn as resolveHeartbeatVisibility, fr as startDiagnosticHeartbeat, g as listSessionsFromStore, gt as handleSlackHttpRequest, h as listAgentsForGateway, hn as onHeartbeatEvent, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, i as runCliAgent, in as isExternalHookSession, ir as resolveTtsPrefsPath, it as migrateLegacyCronPayload, jr as DEFAULT_INPUT_FILE_MAX_BYTES, k as resolveOutboundSessionRoute, kn as initSubagentRegistry, l as runEmbeddedPiAgent, ln as normalizeGroupActivation, lt as getPluginToolMeta, m as resolveAnnounceTargetFromKey, mn as getLastHeartbeatEvent, mr as isDiagnosticsEnabled, n as getCliSessionId, nn as detectSuspiciousPatterns, nr as resolveTtsAutoMode, nt as normalizePayloadToSystemText, o as normalizeSendPolicy, or as setTtsEnabled, p as createOpenClawTools, pr as stopDiagnosticHeartbeat, qn as createInternalHookEvent, qt as listNodePairing, r as setCliSessionId, rn as getHookType, rr as resolveTtsConfig, rt as normalizeRequiredName, s as resolveSendPolicy, sr as setTtsProvider, st as requestHeartbeatNow, tn as buildSafeExternalPrompt, tr as resolveTtsApiKey, tt as normalizeOptionalText, u as abortEmbeddedPiRun, ur as setCommandLaneConcurrency, ut as loadOpenClawPlugins, v as loadSessionEntry, vn as resolveCronStyleNow, w as readSessionPreviewItemsFromTranscript, wn as dispatchInboundMessage, wr as parseVerboseOverride, x as archiveFileOnDisk, xn as getChannelActivity, y as resolveGatewaySessionStoreTarget, yr as stripHeartbeatToken, z as authorizeGatewaySigusr1Restart, zr as DEFAULT_INPUT_PDF_MIN_TEXT_CHARS, zt as resolveAssistantAvatarUrl } from "./reply-swCg9iXH.js";
|
|
6
6
|
import { _ as isCronRunSessionKey, 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 isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-BWxPj0z_.js";
|
|
7
|
-
import { a as logDebug, c as logWarn, n as runExec, t as runCommandWithTimeout } from "./exec-
|
|
8
|
-
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-
|
|
9
|
-
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-
|
|
10
|
-
import { Dt as DEFAULT_MODEL, Et as DEFAULT_CONTEXT_TOKENS, Ot as DEFAULT_PROVIDER, St as normalizeSecretInput, a as isCliProvider, d as resolveConfiguredModelRef, f as resolveDefaultModelForAgent, h as resolveThinkingDefault, i as getModelRefStatus, l as resolveAllowedModelRef, p as resolveHooksGmailModel } from "./model-selection-
|
|
7
|
+
import { a as logDebug, c as logWarn, n as runExec, t as runCommandWithTimeout } from "./exec-BSMwiIMp.js";
|
|
8
|
+
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-CBSq79BF.js";
|
|
9
|
+
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-CPiO6Aw7.js";
|
|
10
|
+
import { Dt as DEFAULT_MODEL, Et as DEFAULT_CONTEXT_TOKENS, Ot as DEFAULT_PROVIDER, St as normalizeSecretInput, a as isCliProvider, d as resolveConfiguredModelRef, f as resolveDefaultModelForAgent, h as resolveThinkingDefault, i as getModelRefStatus, l as resolveAllowedModelRef, p as resolveHooksGmailModel } from "./model-selection-lT7g9ysC.js";
|
|
11
11
|
import "./github-copilot-token-BW-SEg7E.js";
|
|
12
12
|
import { t as formatCliCommand } from "./command-format-ChfKqObn.js";
|
|
13
13
|
import "./boolean-BgXe2hyu.js";
|
|
14
|
-
import { n as logAcceptedEnvOption, t as isTruthyEnvValue } from "./env-
|
|
15
|
-
import { A as resolveAgentMaxConcurrent, E as applyLegacyMigrations, M as VERSION, a as parseConfigJson5, c as writeConfigFile, g as parseDurationMs, i as loadConfig, j as resolveSubagentMaxConcurrent, l as validateConfigObjectWithPlugins, n as migrateLegacyConfig, o as readConfigFileSnapshot, r as createConfigIO, s as resolveConfigSnapshotHash, u as OpenClawSchema } from "./config-
|
|
16
|
-
import { s as isTestDefaultMemorySlotDisabled } from "./manifest-registry-
|
|
17
|
-
import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-
|
|
18
|
-
import { B as snapshotSessionOrigin, F as resolveAgentMainSessionKey, I as resolveExplicitAgentSessionKey, L as resolveMainSessionKey, R as resolveMainSessionKeyFromConfig, S as mergeDeliveryContext, at as normalizeToolName, b as deliveryContextFromSession, d as loadSessionStore, g as updateSessionStore, nt as collectExplicitAllowlist, ot as resolveToolProfilePolicy, rt as expandPolicyWithPluginGroups, st as stripPluginOnlyAllowlist, tt as buildPluginToolGroups, w as normalizeSessionDeliveryFields } from "./sandbox-
|
|
19
|
-
import "./image-
|
|
14
|
+
import { n as logAcceptedEnvOption, t as isTruthyEnvValue } from "./env-DqiOM57_.js";
|
|
15
|
+
import { A as resolveAgentMaxConcurrent, E as applyLegacyMigrations, M as VERSION, a as parseConfigJson5, c as writeConfigFile, g as parseDurationMs, i as loadConfig, j as resolveSubagentMaxConcurrent, l as validateConfigObjectWithPlugins, n as migrateLegacyConfig, o as readConfigFileSnapshot, r as createConfigIO, s as resolveConfigSnapshotHash, u as OpenClawSchema } from "./config-DiNnQcwe.js";
|
|
16
|
+
import { s as isTestDefaultMemorySlotDisabled } from "./manifest-registry-C0ApY9d8.js";
|
|
17
|
+
import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-5W5E71Ut.js";
|
|
18
|
+
import { B as snapshotSessionOrigin, F as resolveAgentMainSessionKey, I as resolveExplicitAgentSessionKey, L as resolveMainSessionKey, R as resolveMainSessionKeyFromConfig, S as mergeDeliveryContext, at as normalizeToolName, b as deliveryContextFromSession, d as loadSessionStore, g as updateSessionStore, nt as collectExplicitAllowlist, ot as resolveToolProfilePolicy, rt as expandPolicyWithPluginGroups, st as stripPluginOnlyAllowlist, tt as buildPluginToolGroups, w as normalizeSessionDeliveryFields } from "./sandbox-DxAKZfZd.js";
|
|
19
|
+
import "./image-DxmrpIUn.js";
|
|
20
20
|
import "./pi-model-discovery-CV2V1HHz.js";
|
|
21
|
-
import { d as inspectPortUsage, l as ensurePortAvailable, p as formatPortDiagnostics } from "./chrome-
|
|
22
|
-
import { d as hasBinary, i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-
|
|
23
|
-
import { c as saveMediaBuffer, l as detectMime } from "./routes-
|
|
21
|
+
import { d as inspectPortUsage, l as ensurePortAvailable, p as formatPortDiagnostics } from "./chrome-XHJ9uNgs.js";
|
|
22
|
+
import { d as hasBinary, i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-pqbmJf1e.js";
|
|
23
|
+
import { c as saveMediaBuffer, l as detectMime } from "./routes-BqZyywjQ.js";
|
|
24
24
|
import { a as isErrno, n as formatErrorMessage } from "./errors-B0eT3jVv.js";
|
|
25
|
-
import { n as movePathToTrash } from "./server-context-
|
|
25
|
+
import { n as movePathToTrash } from "./server-context-DT3SRl5J.js";
|
|
26
26
|
import { n as pickPrimaryTailnetIPv6, t as pickPrimaryTailnetIPv4 } from "./tailnet-DGRSvYuQ.js";
|
|
27
27
|
import { c as resolveGatewayBindHost, i as isTrustedProxyAddress, l as resolveGatewayClientIp, n as isLoopbackAddress, r as isLoopbackHost, t as rawDataToString, u as resolveGatewayListenHosts } from "./ws-DtDKpbLR.js";
|
|
28
|
-
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-
|
|
28
|
+
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-DIvXZ2w4.js";
|
|
29
29
|
import "./logging-BzvBIA3Y.js";
|
|
30
|
-
import "./accounts-
|
|
30
|
+
import "./accounts-xJh3pJei.js";
|
|
31
31
|
import { a as resolveSessionTranscriptsDirForAgent, n as resolveSessionFilePath, o as resolveStorePath, r as resolveSessionTranscriptPath } from "./paths-Bkhd_qY8.js";
|
|
32
32
|
import "./redact-DAKeu7PA.js";
|
|
33
|
-
import "./tool-display-
|
|
34
|
-
import { o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-
|
|
35
|
-
import { i as getMachineDisplayName, t as createBrowserRouteDispatcher } from "./dispatcher-
|
|
36
|
-
import "./manager-
|
|
37
|
-
import "./sqlite-
|
|
38
|
-
import "./tui-formatters-
|
|
39
|
-
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-
|
|
40
|
-
import { n as callGateway, o as loadGatewayTlsRuntime$1 } from "./call-
|
|
41
|
-
import "./login-qr-
|
|
42
|
-
import "./pairing-store-
|
|
43
|
-
import { t as formatDocsLink } from "./links-
|
|
33
|
+
import "./tool-display-DwOJbBjC.js";
|
|
34
|
+
import { o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-B-MU3Szq.js";
|
|
35
|
+
import { i as getMachineDisplayName, t as createBrowserRouteDispatcher } from "./dispatcher-Rf7W2dBd.js";
|
|
36
|
+
import "./manager-DOqexxfO.js";
|
|
37
|
+
import "./sqlite-CDfAET9Y.js";
|
|
38
|
+
import "./tui-formatters-C-dAVvRi.js";
|
|
39
|
+
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-Cam-Cwyu.js";
|
|
40
|
+
import { n as callGateway, o as loadGatewayTlsRuntime$1 } from "./call-Ccyb4kQR.js";
|
|
41
|
+
import "./login-qr-DXiuhBc8.js";
|
|
42
|
+
import "./pairing-store-C6EhvkMA.js";
|
|
43
|
+
import { t as formatDocsLink } from "./links-D6CUlrWZ.js";
|
|
44
44
|
import { n as runCommandWithRuntime } from "./cli-utils-R-ECs5cY.js";
|
|
45
|
-
import { n as withProgress } from "./progress-
|
|
46
|
-
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-
|
|
47
|
-
import "./prompt-style-
|
|
48
|
-
import "./pairing-labels-
|
|
45
|
+
import { n as withProgress } from "./progress-COZ_ycun.js";
|
|
46
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-CCQVTuZw.js";
|
|
47
|
+
import "./prompt-style-CghhrkxS.js";
|
|
48
|
+
import "./pairing-labels-K_6MMQA_.js";
|
|
49
49
|
import { i as loadSessionUsageTimeSeries, l as deriveSessionTotalTokens, n as loadCostUsageSummary, r as loadSessionCostSummary, t as discoverAllSessions, u as hasNonzeroUsage } from "./session-cost-usage-PvyVZz-g.js";
|
|
50
50
|
import { n as formatTokenCount, r as formatUsd } from "./usage-format-hd37en6b.js";
|
|
51
51
|
import { c as normalizeExecApprovals, g as saveExecApprovals, l as readExecApprovalsSnapshot, m as resolveExecApprovalsSocketPath, r as ensureExecApprovals } from "./exec-approvals-DGPTjO0N.js";
|
|
52
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
52
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-CAXvnE0u.js";
|
|
53
53
|
import { t as parseAbsoluteTimeMs } from "./parse-DqAvJRIf.js";
|
|
54
|
-
import { n as resolveMessageChannelSelection } from "./channel-selection-
|
|
55
|
-
import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-
|
|
56
|
-
import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-
|
|
57
|
-
import { t as ensureOpenClawCliOnPath } from "./path-env-
|
|
58
|
-
import "./daemon-runtime-
|
|
59
|
-
import { c as loadAgentIdentity, d as loadAgentIdentityFromWorkspace, i as applyAgentConfig, l as pruneAgentConfig, o as findAgentEntryIndex, p as forceFreePortAndWait, r as getStatusSummary, s as listAgentEntries, t as runOnboardingWizard } from "./onboarding-
|
|
54
|
+
import { n as resolveMessageChannelSelection } from "./channel-selection-La1tQIxQ.js";
|
|
55
|
+
import { n as createOutboundSendDeps, t as createDefaultDeps } from "./deps-CaDXl7AZ.js";
|
|
56
|
+
import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-WFi900xf.js";
|
|
57
|
+
import { t as ensureOpenClawCliOnPath } from "./path-env-CvL55Ntz.js";
|
|
58
|
+
import "./daemon-runtime-CVte5WIX.js";
|
|
59
|
+
import { c as loadAgentIdentity, d as loadAgentIdentityFromWorkspace, i as applyAgentConfig, l as pruneAgentConfig, o as findAgentEntryIndex, p as forceFreePortAndWait, r as getStatusSummary, s as listAgentEntries, t as runOnboardingWizard } from "./onboarding-DzjDuLJ0.js";
|
|
60
60
|
import { t as resolveChannelDefaultAccountId } from "./helpers-C89IG08W.js";
|
|
61
|
-
import "./logging-
|
|
62
|
-
import "./note-
|
|
61
|
+
import "./logging-BhXRnaAc.js";
|
|
62
|
+
import "./note-B5QlVszL.js";
|
|
63
63
|
import { t as WizardCancelledError } from "./prompts--d-6l5Ln.js";
|
|
64
|
-
import { i as discoverGatewayBeacons, n as installSkill } from "./onboard-skills-
|
|
65
|
-
import "./github-copilot-auth-
|
|
66
|
-
import "./onboard-channels-
|
|
67
|
-
import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-
|
|
68
|
-
import "./archive-
|
|
69
|
-
import "./skill-scanner-
|
|
70
|
-
import "./installs-
|
|
71
|
-
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-
|
|
72
|
-
import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-
|
|
73
|
-
import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDirectRequest, t as assertGatewayAuthConfigured } from "./auth-
|
|
74
|
-
import { i as probeGateway } from "./audit-
|
|
75
|
-
import "./table-
|
|
76
|
-
import { t as buildWorkspaceSkillStatus } from "./skills-status-
|
|
77
|
-
import "./service-
|
|
78
|
-
import "./systemd-
|
|
79
|
-
import "./service-audit-
|
|
80
|
-
import "./node-service-
|
|
81
|
-
import "./channels-status-issues-
|
|
82
|
-
import "./completion-cli-
|
|
83
|
-
import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-
|
|
84
|
-
import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-
|
|
85
|
-
import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-
|
|
86
|
-
import "./tui-
|
|
64
|
+
import { i as discoverGatewayBeacons, n as installSkill } from "./onboard-skills-Djn43Fx2.js";
|
|
65
|
+
import "./github-copilot-auth-BJOEuPdX.js";
|
|
66
|
+
import "./onboard-channels-DNlBXz4a.js";
|
|
67
|
+
import { r as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-BvBr0yMV.js";
|
|
68
|
+
import "./archive-BixfOVSf.js";
|
|
69
|
+
import "./skill-scanner-zYmZ2Coy.js";
|
|
70
|
+
import "./installs-C9WW834H.js";
|
|
71
|
+
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-I_hcV0x3.js";
|
|
72
|
+
import { S as normalizeUpdateChannel, _ as resolveNpmChannelTag, h as compareSemverStrings, m as checkUpdateStatus, t as runGatewayUpdate, y as DEFAULT_PACKAGE_CHANNEL } from "./update-runner-BiHI3sto.js";
|
|
73
|
+
import { i as resolveGatewayAuth, n as authorizeGatewayConnect, r as isLocalDirectRequest, t as assertGatewayAuthConfigured } from "./auth-D_PS9etv.js";
|
|
74
|
+
import { i as probeGateway } from "./audit-CGlFTiEB.js";
|
|
75
|
+
import "./table-DTm1PXe-.js";
|
|
76
|
+
import { t as buildWorkspaceSkillStatus } from "./skills-status-d-tVLIaC.js";
|
|
77
|
+
import "./service-DPsnpYzk.js";
|
|
78
|
+
import "./systemd-Dd6y2wnN.js";
|
|
79
|
+
import "./service-audit-DWlZlYl6.js";
|
|
80
|
+
import "./node-service-OjXvN5Ee.js";
|
|
81
|
+
import "./channels-status-issues-DmIFbKRs.js";
|
|
82
|
+
import "./completion-cli-DZlpcsto.js";
|
|
83
|
+
import { a as createOutboundSendDeps$1, i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-DkZpDQJb.js";
|
|
84
|
+
import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-mquEd9kr.js";
|
|
85
|
+
import { i as shouldIncludeHook, n as loadWorkspaceHookEntries, r as resolveHookConfig } from "./hooks-status-B3y3_Ypf.js";
|
|
86
|
+
import "./tui-CJPKiYWz.js";
|
|
87
87
|
import { t as buildChannelAccountSnapshot } from "./status-Cv36yYdi.js";
|
|
88
|
-
import "./shared-
|
|
89
|
-
import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-
|
|
90
|
-
import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-
|
|
91
|
-
import { i as setGatewayWsLogStyle, n as logWs, r as summarizeAgentEventForWsLog, t as formatForLog } from "./ws-log-
|
|
92
|
-
import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-
|
|
88
|
+
import "./shared-DvAp_MsR.js";
|
|
89
|
+
import { a as runDaemonStop, i as runDaemonStart, n as runDaemonStatus, o as runDaemonUninstall, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-Ctp4o7qg.js";
|
|
90
|
+
import { a as toOptionString, i as parsePort$1, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-DQO8Xdjp.js";
|
|
91
|
+
import { i as setGatewayWsLogStyle, n as logWs, r as summarizeAgentEventForWsLog, t as formatForLog } from "./ws-log-B2H596h5.js";
|
|
92
|
+
import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-CTDfMXTW.js";
|
|
93
93
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
94
94
|
import * as fsSync from "node:fs";
|
|
95
95
|
import fs, { constants } from "node:fs";
|
|
96
96
|
import os from "node:os";
|
|
97
97
|
import path from "node:path";
|
|
98
|
-
import
|
|
98
|
+
import json5 from "json5";
|
|
99
99
|
import chalk from "chalk";
|
|
100
|
-
import
|
|
100
|
+
import fsPromises from "node:fs/promises";
|
|
101
101
|
import { spawn, spawnSync } from "node:child_process";
|
|
102
102
|
import crypto, { createHash, randomUUID } from "node:crypto";
|
|
103
103
|
import { z } from "zod";
|
|
@@ -1095,7 +1095,7 @@ function shouldSkipCheck(allowInTests) {
|
|
|
1095
1095
|
}
|
|
1096
1096
|
async function readState(statePath) {
|
|
1097
1097
|
try {
|
|
1098
|
-
const raw = await
|
|
1098
|
+
const raw = await fsPromises.readFile(statePath, "utf-8");
|
|
1099
1099
|
const parsed = JSON.parse(raw);
|
|
1100
1100
|
return parsed && typeof parsed === "object" ? parsed : {};
|
|
1101
1101
|
} catch {
|
|
@@ -1103,8 +1103,8 @@ async function readState(statePath) {
|
|
|
1103
1103
|
}
|
|
1104
1104
|
}
|
|
1105
1105
|
async function writeState(statePath, state) {
|
|
1106
|
-
await
|
|
1107
|
-
await
|
|
1106
|
+
await fsPromises.mkdir(path.dirname(statePath), { recursive: true });
|
|
1107
|
+
await fsPromises.writeFile(statePath, JSON.stringify(state, null, 2), "utf-8");
|
|
1108
1108
|
}
|
|
1109
1109
|
async function runGatewayUpdateCheck(params) {
|
|
1110
1110
|
if (shouldSkipCheck(Boolean(params.allowInTests))) return;
|
|
@@ -2961,19 +2961,19 @@ function resolveCronRunLogPath(params) {
|
|
|
2961
2961
|
}
|
|
2962
2962
|
const writesByPath = /* @__PURE__ */ new Map();
|
|
2963
2963
|
async function pruneIfNeeded(filePath, opts) {
|
|
2964
|
-
const stat = await
|
|
2964
|
+
const stat = await fsPromises.stat(filePath).catch(() => null);
|
|
2965
2965
|
if (!stat || stat.size <= opts.maxBytes) return;
|
|
2966
|
-
const lines = (await
|
|
2966
|
+
const lines = (await fsPromises.readFile(filePath, "utf-8").catch(() => "")).split("\n").map((l) => l.trim()).filter(Boolean);
|
|
2967
2967
|
const kept = lines.slice(Math.max(0, lines.length - opts.keepLines));
|
|
2968
2968
|
const tmp = `${filePath}.${process.pid}.${Math.random().toString(16).slice(2)}.tmp`;
|
|
2969
|
-
await
|
|
2970
|
-
await
|
|
2969
|
+
await fsPromises.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
|
|
2970
|
+
await fsPromises.rename(tmp, filePath);
|
|
2971
2971
|
}
|
|
2972
2972
|
async function appendCronRunLog(filePath, entry, opts) {
|
|
2973
2973
|
const resolved = path.resolve(filePath);
|
|
2974
2974
|
const next = (writesByPath.get(resolved) ?? Promise.resolve()).catch(() => void 0).then(async () => {
|
|
2975
|
-
await
|
|
2976
|
-
await
|
|
2975
|
+
await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
|
|
2976
|
+
await fsPromises.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
|
|
2977
2977
|
await pruneIfNeeded(resolved, {
|
|
2978
2978
|
maxBytes: opts?.maxBytes ?? 2e6,
|
|
2979
2979
|
keepLines: opts?.keepLines ?? 2e3
|
|
@@ -2985,7 +2985,7 @@ async function appendCronRunLog(filePath, entry, opts) {
|
|
|
2985
2985
|
async function readCronRunLogEntries(filePath, opts) {
|
|
2986
2986
|
const limit = Math.max(1, Math.min(5e3, Math.floor(opts?.limit ?? 200)));
|
|
2987
2987
|
const jobId = opts?.jobId?.trim() || void 0;
|
|
2988
|
-
const raw = await
|
|
2988
|
+
const raw = await fsPromises.readFile(path.resolve(filePath), "utf-8").catch(() => "");
|
|
2989
2989
|
if (!raw.trim()) return [];
|
|
2990
2990
|
const parsed = [];
|
|
2991
2991
|
const lines = raw.split("\n");
|
|
@@ -3327,7 +3327,7 @@ async function loadCronStore(storePath) {
|
|
|
3327
3327
|
const raw = await fs.promises.readFile(storePath, "utf-8");
|
|
3328
3328
|
let parsed;
|
|
3329
3329
|
try {
|
|
3330
|
-
parsed =
|
|
3330
|
+
parsed = json5.parse(raw);
|
|
3331
3331
|
} catch (err) {
|
|
3332
3332
|
throw new Error(`Failed to parse cron store at ${storePath}: ${String(err)}`, { cause: err });
|
|
3333
3333
|
}
|
|
@@ -4817,7 +4817,7 @@ function sanitizeTriggers(triggers) {
|
|
|
4817
4817
|
}
|
|
4818
4818
|
async function readJSON$1(filePath) {
|
|
4819
4819
|
try {
|
|
4820
|
-
const raw = await
|
|
4820
|
+
const raw = await fsPromises.readFile(filePath, "utf8");
|
|
4821
4821
|
return JSON.parse(raw);
|
|
4822
4822
|
} catch {
|
|
4823
4823
|
return null;
|
|
@@ -4825,10 +4825,10 @@ async function readJSON$1(filePath) {
|
|
|
4825
4825
|
}
|
|
4826
4826
|
async function writeJSONAtomic$1(filePath, value) {
|
|
4827
4827
|
const dir = path.dirname(filePath);
|
|
4828
|
-
await
|
|
4828
|
+
await fsPromises.mkdir(dir, { recursive: true });
|
|
4829
4829
|
const tmp = `${filePath}.${randomUUID()}.tmp`;
|
|
4830
|
-
await
|
|
4831
|
-
await
|
|
4830
|
+
await fsPromises.writeFile(tmp, JSON.stringify(value, null, 2), "utf8");
|
|
4831
|
+
await fsPromises.rename(tmp, filePath);
|
|
4832
4832
|
}
|
|
4833
4833
|
let lock$1 = Promise.resolve();
|
|
4834
4834
|
async function withLock$1(fn) {
|
|
@@ -5937,7 +5937,7 @@ const MEMORY_FILE_NAMES = [DEFAULT_MEMORY_FILENAME, DEFAULT_MEMORY_ALT_FILENAME]
|
|
|
5937
5937
|
const ALLOWED_FILE_NAMES = new Set([...BOOTSTRAP_FILE_NAMES, ...MEMORY_FILE_NAMES]);
|
|
5938
5938
|
async function statFile(filePath) {
|
|
5939
5939
|
try {
|
|
5940
|
-
const stat = await
|
|
5940
|
+
const stat = await fsPromises.stat(filePath);
|
|
5941
5941
|
if (!stat.isFile()) return null;
|
|
5942
5942
|
return {
|
|
5943
5943
|
size: stat.size,
|
|
@@ -6006,7 +6006,7 @@ function resolveOptionalStringParam(value) {
|
|
|
6006
6006
|
async function moveToTrashBestEffort(pathname) {
|
|
6007
6007
|
if (!pathname) return;
|
|
6008
6008
|
try {
|
|
6009
|
-
await
|
|
6009
|
+
await fsPromises.access(pathname);
|
|
6010
6010
|
} catch {
|
|
6011
6011
|
return;
|
|
6012
6012
|
}
|
|
@@ -6053,7 +6053,7 @@ const agentsHandlers = {
|
|
|
6053
6053
|
dir: workspaceDir,
|
|
6054
6054
|
ensureBootstrapFiles: !Boolean(nextConfig.agents?.defaults?.skipBootstrap)
|
|
6055
6055
|
});
|
|
6056
|
-
await
|
|
6056
|
+
await fsPromises.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
|
|
6057
6057
|
await writeConfigFile(nextConfig);
|
|
6058
6058
|
const safeName = sanitizeIdentityLine(rawName);
|
|
6059
6059
|
const emoji = resolveOptionalStringParam(params.emoji);
|
|
@@ -6066,7 +6066,7 @@ const agentsHandlers = {
|
|
|
6066
6066
|
...avatar ? [`- Avatar: ${sanitizeIdentityLine(avatar)}`] : [],
|
|
6067
6067
|
""
|
|
6068
6068
|
];
|
|
6069
|
-
await
|
|
6069
|
+
await fsPromises.appendFile(identityPath, lines.join("\n"), "utf-8");
|
|
6070
6070
|
respond(true, {
|
|
6071
6071
|
ok: true,
|
|
6072
6072
|
agentId,
|
|
@@ -6101,9 +6101,9 @@ const agentsHandlers = {
|
|
|
6101
6101
|
});
|
|
6102
6102
|
if (avatar) {
|
|
6103
6103
|
const workspace = workspaceDir ?? resolveAgentWorkspaceDir(nextConfig, agentId);
|
|
6104
|
-
await
|
|
6104
|
+
await fsPromises.mkdir(workspace, { recursive: true });
|
|
6105
6105
|
const identityPath = path.join(workspace, DEFAULT_IDENTITY_FILENAME);
|
|
6106
|
-
await
|
|
6106
|
+
await fsPromises.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
|
|
6107
6107
|
}
|
|
6108
6108
|
respond(true, {
|
|
6109
6109
|
ok: true,
|
|
@@ -6191,7 +6191,7 @@ const agentsHandlers = {
|
|
|
6191
6191
|
}, void 0);
|
|
6192
6192
|
return;
|
|
6193
6193
|
}
|
|
6194
|
-
const content = await
|
|
6194
|
+
const content = await fsPromises.readFile(filePath, "utf-8");
|
|
6195
6195
|
respond(true, {
|
|
6196
6196
|
agentId,
|
|
6197
6197
|
workspace: workspaceDir,
|
|
@@ -6222,10 +6222,10 @@ const agentsHandlers = {
|
|
|
6222
6222
|
return;
|
|
6223
6223
|
}
|
|
6224
6224
|
const workspaceDir = resolveAgentWorkspaceDir(cfg, agentId);
|
|
6225
|
-
await
|
|
6225
|
+
await fsPromises.mkdir(workspaceDir, { recursive: true });
|
|
6226
6226
|
const filePath = path.join(workspaceDir, name);
|
|
6227
6227
|
const content = String(params.content ?? "");
|
|
6228
|
-
await
|
|
6228
|
+
await fsPromises.writeFile(filePath, content, "utf-8");
|
|
6229
6229
|
const meta = await statFile(filePath);
|
|
6230
6230
|
respond(true, {
|
|
6231
6231
|
ok: true,
|
|
@@ -8666,7 +8666,7 @@ function resolvePaths(baseDir) {
|
|
|
8666
8666
|
}
|
|
8667
8667
|
async function readJSON(filePath) {
|
|
8668
8668
|
try {
|
|
8669
|
-
const raw = await
|
|
8669
|
+
const raw = await fsPromises.readFile(filePath, "utf8");
|
|
8670
8670
|
return JSON.parse(raw);
|
|
8671
8671
|
} catch {
|
|
8672
8672
|
return null;
|
|
@@ -8674,15 +8674,15 @@ async function readJSON(filePath) {
|
|
|
8674
8674
|
}
|
|
8675
8675
|
async function writeJSONAtomic(filePath, value) {
|
|
8676
8676
|
const dir = path.dirname(filePath);
|
|
8677
|
-
await
|
|
8677
|
+
await fsPromises.mkdir(dir, { recursive: true });
|
|
8678
8678
|
const tmp = `${filePath}.${randomUUID()}.tmp`;
|
|
8679
|
-
await
|
|
8679
|
+
await fsPromises.writeFile(tmp, JSON.stringify(value, null, 2), "utf8");
|
|
8680
8680
|
try {
|
|
8681
|
-
await
|
|
8681
|
+
await fsPromises.chmod(tmp, 384);
|
|
8682
8682
|
} catch {}
|
|
8683
|
-
await
|
|
8683
|
+
await fsPromises.rename(tmp, filePath);
|
|
8684
8684
|
try {
|
|
8685
|
-
await
|
|
8685
|
+
await fsPromises.chmod(filePath, 384);
|
|
8686
8686
|
} catch {}
|
|
8687
8687
|
}
|
|
8688
8688
|
function pruneExpiredPending(pendingById, nowMs) {
|
|
@@ -9305,14 +9305,14 @@ function isRollingLogFile(file) {
|
|
|
9305
9305
|
return ROLLING_LOG_RE.test(path.basename(file));
|
|
9306
9306
|
}
|
|
9307
9307
|
async function resolveLogFile(file) {
|
|
9308
|
-
if (await
|
|
9308
|
+
if (await fsPromises.stat(file).catch(() => null)) return file;
|
|
9309
9309
|
if (!isRollingLogFile(file)) return file;
|
|
9310
9310
|
const dir = path.dirname(file);
|
|
9311
|
-
const entries = await
|
|
9311
|
+
const entries = await fsPromises.readdir(dir, { withFileTypes: true }).catch(() => null);
|
|
9312
9312
|
if (!entries) return file;
|
|
9313
9313
|
return (await Promise.all(entries.filter((entry) => entry.isFile() && ROLLING_LOG_RE.test(entry.name)).map(async (entry) => {
|
|
9314
9314
|
const fullPath = path.join(dir, entry.name);
|
|
9315
|
-
const fileStat = await
|
|
9315
|
+
const fileStat = await fsPromises.stat(fullPath).catch(() => null);
|
|
9316
9316
|
return fileStat ? {
|
|
9317
9317
|
path: fullPath,
|
|
9318
9318
|
mtimeMs: fileStat.mtimeMs
|
|
@@ -9320,7 +9320,7 @@ async function resolveLogFile(file) {
|
|
|
9320
9320
|
}))).filter((entry) => Boolean(entry)).toSorted((a, b) => b.mtimeMs - a.mtimeMs)[0]?.path ?? file;
|
|
9321
9321
|
}
|
|
9322
9322
|
async function readLogSlice(params) {
|
|
9323
|
-
const stat = await
|
|
9323
|
+
const stat = await fsPromises.stat(params.file).catch(() => null);
|
|
9324
9324
|
if (!stat) return {
|
|
9325
9325
|
cursor: 0,
|
|
9326
9326
|
size: 0,
|
|
@@ -9358,7 +9358,7 @@ async function readLogSlice(params) {
|
|
|
9358
9358
|
truncated,
|
|
9359
9359
|
reset
|
|
9360
9360
|
};
|
|
9361
|
-
const handle = await
|
|
9361
|
+
const handle = await fsPromises.open(params.file, "r");
|
|
9362
9362
|
try {
|
|
9363
9363
|
let prefix = "";
|
|
9364
9364
|
if (start > 0) {
|
|
@@ -9784,7 +9784,7 @@ const nodeHandlers = {
|
|
|
9784
9784
|
const p = params;
|
|
9785
9785
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
9786
9786
|
await respondUnavailableOnThrow(respond, async () => {
|
|
9787
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
9787
|
+
const { handleNodeEvent } = await import("./server-node-events-CUQHYPok.js");
|
|
9788
9788
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
9789
9789
|
await handleNodeEvent({
|
|
9790
9790
|
deps: context.deps,
|
|
@@ -12864,7 +12864,7 @@ function normalizeAgentPayload(payload, opts) {
|
|
|
12864
12864
|
async function startBrowserControlServerIfEnabled() {
|
|
12865
12865
|
if (isTruthyEnvValue(process.env.OPENCLAW_SKIP_BROWSER_CONTROL_SERVER)) return null;
|
|
12866
12866
|
const override = process.env.OPENCLAW_BROWSER_CONTROL_MODULE?.trim();
|
|
12867
|
-
const mod = override ? await import(override) : await import("./control-service-
|
|
12867
|
+
const mod = override ? await import(override) : await import("./control-service-CAXvnE0u.js").then((n) => n.t);
|
|
12868
12868
|
const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
|
|
12869
12869
|
const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
|
|
12870
12870
|
if (!start) return null;
|
|
@@ -13027,8 +13027,8 @@ async function resolveA2uiRoot() {
|
|
|
13027
13027
|
for (const dir of candidates) try {
|
|
13028
13028
|
const indexPath = path.join(dir, "index.html");
|
|
13029
13029
|
const bundlePath = path.join(dir, "a2ui.bundle.js");
|
|
13030
|
-
await
|
|
13031
|
-
await
|
|
13030
|
+
await fsPromises.stat(indexPath);
|
|
13031
|
+
await fsPromises.stat(bundlePath);
|
|
13032
13032
|
return dir;
|
|
13033
13033
|
} catch {}
|
|
13034
13034
|
return null;
|
|
@@ -13037,7 +13037,7 @@ async function resolveA2uiRootReal() {
|
|
|
13037
13037
|
if (cachedA2uiRootReal !== void 0) return cachedA2uiRootReal;
|
|
13038
13038
|
if (!resolvingA2uiRoot) resolvingA2uiRoot = (async () => {
|
|
13039
13039
|
const root = await resolveA2uiRoot();
|
|
13040
|
-
cachedA2uiRootReal = root ? await
|
|
13040
|
+
cachedA2uiRootReal = root ? await fsPromises.realpath(root) : null;
|
|
13041
13041
|
return cachedA2uiRootReal;
|
|
13042
13042
|
})();
|
|
13043
13043
|
return resolvingA2uiRoot;
|
|
@@ -13054,12 +13054,12 @@ async function resolveA2uiFilePath(rootReal, urlPath) {
|
|
|
13054
13054
|
let candidate = path.join(rootReal, rel);
|
|
13055
13055
|
if (normalized.endsWith("/")) candidate = path.join(candidate, "index.html");
|
|
13056
13056
|
try {
|
|
13057
|
-
if ((await
|
|
13057
|
+
if ((await fsPromises.stat(candidate)).isDirectory()) candidate = path.join(candidate, "index.html");
|
|
13058
13058
|
} catch {}
|
|
13059
13059
|
const rootPrefix = rootReal.endsWith(path.sep) ? rootReal : `${rootReal}${path.sep}`;
|
|
13060
13060
|
try {
|
|
13061
|
-
if ((await
|
|
13062
|
-
const real = await
|
|
13061
|
+
if ((await fsPromises.lstat(candidate)).isSymbolicLink()) return null;
|
|
13062
|
+
const real = await fsPromises.realpath(candidate);
|
|
13063
13063
|
if (!real.startsWith(rootPrefix)) return null;
|
|
13064
13064
|
return real;
|
|
13065
13065
|
} catch {
|
|
@@ -13151,13 +13151,13 @@ async function handleA2uiHttpRequest(req, res) {
|
|
|
13151
13151
|
const mime = lower.endsWith(".html") || lower.endsWith(".htm") ? "text/html" : await detectMime({ filePath }) ?? "application/octet-stream";
|
|
13152
13152
|
res.setHeader("Cache-Control", "no-store");
|
|
13153
13153
|
if (mime === "text/html") {
|
|
13154
|
-
const html = await
|
|
13154
|
+
const html = await fsPromises.readFile(filePath, "utf8");
|
|
13155
13155
|
res.setHeader("Content-Type", "text/html; charset=utf-8");
|
|
13156
13156
|
res.end(injectCanvasLiveReload(html));
|
|
13157
13157
|
return true;
|
|
13158
13158
|
}
|
|
13159
13159
|
res.setHeader("Content-Type", mime);
|
|
13160
|
-
res.end(await
|
|
13160
|
+
res.end(await fsPromises.readFile(filePath));
|
|
13161
13161
|
return true;
|
|
13162
13162
|
}
|
|
13163
13163
|
|
|
@@ -13178,7 +13178,7 @@ const isSymlinkOpenError = (err) => isNodeError(err) && (err.code === "ELOOP" ||
|
|
|
13178
13178
|
async function openFileWithinRoot(params) {
|
|
13179
13179
|
let rootReal;
|
|
13180
13180
|
try {
|
|
13181
|
-
rootReal = await
|
|
13181
|
+
rootReal = await fsPromises.realpath(params.rootDir);
|
|
13182
13182
|
} catch (err) {
|
|
13183
13183
|
if (isNotFoundError(err)) throw new SafeOpenError("not-found", "root dir not found");
|
|
13184
13184
|
throw err;
|
|
@@ -13190,19 +13190,19 @@ async function openFileWithinRoot(params) {
|
|
|
13190
13190
|
const flags = constants.O_RDONLY | (supportsNoFollow ? constants.O_NOFOLLOW : 0);
|
|
13191
13191
|
let handle;
|
|
13192
13192
|
try {
|
|
13193
|
-
handle = await
|
|
13193
|
+
handle = await fsPromises.open(resolved, flags);
|
|
13194
13194
|
} catch (err) {
|
|
13195
13195
|
if (isNotFoundError(err)) throw new SafeOpenError("not-found", "file not found");
|
|
13196
13196
|
if (isSymlinkOpenError(err)) throw new SafeOpenError("invalid-path", "symlink open blocked");
|
|
13197
13197
|
throw err;
|
|
13198
13198
|
}
|
|
13199
13199
|
try {
|
|
13200
|
-
if ((await
|
|
13201
|
-
const realPath = await
|
|
13200
|
+
if ((await fsPromises.lstat(resolved).catch(() => null))?.isSymbolicLink()) throw new SafeOpenError("invalid-path", "symlink not allowed");
|
|
13201
|
+
const realPath = await fsPromises.realpath(resolved);
|
|
13202
13202
|
if (!realPath.startsWith(rootWithSep)) throw new SafeOpenError("invalid-path", "path escapes root");
|
|
13203
13203
|
const stat = await handle.stat();
|
|
13204
13204
|
if (!stat.isFile()) throw new SafeOpenError("invalid-path", "not a file");
|
|
13205
|
-
const realStat = await
|
|
13205
|
+
const realStat = await fsPromises.stat(realPath);
|
|
13206
13206
|
if (stat.ino !== realStat.ino || stat.dev !== realStat.dev) throw new SafeOpenError("invalid-path", "path mismatch");
|
|
13207
13207
|
return {
|
|
13208
13208
|
handle,
|
|
@@ -13335,7 +13335,7 @@ async function resolveFilePath(rootReal, urlPath) {
|
|
|
13335
13335
|
if (normalized.endsWith("/")) return await tryOpen(path.posix.join(rel, "index.html"));
|
|
13336
13336
|
const candidate = path.join(rootReal, rel);
|
|
13337
13337
|
try {
|
|
13338
|
-
const st = await
|
|
13338
|
+
const st = await fsPromises.lstat(candidate);
|
|
13339
13339
|
if (st.isSymbolicLink()) return null;
|
|
13340
13340
|
if (st.isDirectory()) return await tryOpen(path.posix.join(rel, "index.html"));
|
|
13341
13341
|
} catch {}
|
|
@@ -13354,13 +13354,13 @@ function normalizeBasePath(rawPath) {
|
|
|
13354
13354
|
}
|
|
13355
13355
|
async function prepareCanvasRoot(rootDir) {
|
|
13356
13356
|
await ensureDir(rootDir);
|
|
13357
|
-
const rootReal = await
|
|
13357
|
+
const rootReal = await fsPromises.realpath(rootDir);
|
|
13358
13358
|
try {
|
|
13359
13359
|
const indexPath = path.join(rootReal, "index.html");
|
|
13360
|
-
await
|
|
13360
|
+
await fsPromises.stat(indexPath);
|
|
13361
13361
|
} catch {
|
|
13362
13362
|
try {
|
|
13363
|
-
await
|
|
13363
|
+
await fsPromises.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
|
|
13364
13364
|
} catch {}
|
|
13365
13365
|
}
|
|
13366
13366
|
return rootReal;
|
|
@@ -15759,7 +15759,7 @@ function resolveGatewayOwnerStatus(pid, payload, platform) {
|
|
|
15759
15759
|
}
|
|
15760
15760
|
async function readLockPayload(lockPath) {
|
|
15761
15761
|
try {
|
|
15762
|
-
const raw = await
|
|
15762
|
+
const raw = await fsPromises.readFile(lockPath, "utf8");
|
|
15763
15763
|
const parsed = JSON.parse(raw);
|
|
15764
15764
|
if (typeof parsed.pid !== "number") return null;
|
|
15765
15765
|
if (typeof parsed.createdAt !== "string") return null;
|
|
@@ -15793,11 +15793,11 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
15793
15793
|
const staleMs = opts.staleMs ?? DEFAULT_STALE_MS;
|
|
15794
15794
|
const platform = opts.platform ?? process.platform;
|
|
15795
15795
|
const { lockPath, configPath } = resolveGatewayLockPath(env);
|
|
15796
|
-
await
|
|
15796
|
+
await fsPromises.mkdir(path.dirname(lockPath), { recursive: true });
|
|
15797
15797
|
const startedAt = Date.now();
|
|
15798
15798
|
let lastPayload = null;
|
|
15799
15799
|
while (Date.now() - startedAt < timeoutMs) try {
|
|
15800
|
-
const handle = await
|
|
15800
|
+
const handle = await fsPromises.open(lockPath, "wx");
|
|
15801
15801
|
const startTime = platform === "linux" ? readLinuxStartTime(process.pid) : null;
|
|
15802
15802
|
const payload = {
|
|
15803
15803
|
pid: process.pid,
|
|
@@ -15811,7 +15811,7 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
15811
15811
|
configPath,
|
|
15812
15812
|
release: async () => {
|
|
15813
15813
|
await handle.close().catch(() => void 0);
|
|
15814
|
-
await
|
|
15814
|
+
await fsPromises.rm(lockPath, { force: true });
|
|
15815
15815
|
}
|
|
15816
15816
|
};
|
|
15817
15817
|
} catch (err) {
|
|
@@ -15820,7 +15820,7 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
15820
15820
|
const ownerPid = lastPayload?.pid;
|
|
15821
15821
|
const ownerStatus = ownerPid ? resolveGatewayOwnerStatus(ownerPid, lastPayload, platform) : "unknown";
|
|
15822
15822
|
if (ownerStatus === "dead" && ownerPid) {
|
|
15823
|
-
await
|
|
15823
|
+
await fsPromises.rm(lockPath, { force: true });
|
|
15824
15824
|
continue;
|
|
15825
15825
|
}
|
|
15826
15826
|
if (ownerStatus !== "alive") {
|
|
@@ -15830,13 +15830,13 @@ async function acquireGatewayLock(opts = {}) {
|
|
|
15830
15830
|
stale = Number.isFinite(createdAt) ? Date.now() - createdAt > staleMs : false;
|
|
15831
15831
|
}
|
|
15832
15832
|
if (!stale) try {
|
|
15833
|
-
const st = await
|
|
15833
|
+
const st = await fsPromises.stat(lockPath);
|
|
15834
15834
|
stale = Date.now() - st.mtimeMs > staleMs;
|
|
15835
15835
|
} catch {
|
|
15836
15836
|
stale = true;
|
|
15837
15837
|
}
|
|
15838
15838
|
if (stale) {
|
|
15839
|
-
await
|
|
15839
|
+
await fsPromises.rm(lockPath, { force: true });
|
|
15840
15840
|
continue;
|
|
15841
15841
|
}
|
|
15842
15842
|
}
|