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,60 +1,60 @@
|
|
|
1
1
|
import { g as resolveStateDir, r as STATE_DIR, t as CONFIG_PATH, y as resolveRequiredHomeDir } from "./paths-DVBShlw6.js";
|
|
2
|
-
import { A as logVerbose, D as info, E as danger, F as warn, I as colorize, L as isRich, M as setVerbose, N as shouldLogVerbose, P as success, R as theme, T as setActivePluginRegistry, U as normalizeLogLevel, b as normalizeAnyChannelId, c as defaultRuntime, m as CHAT_CHANNEL_ORDER, t as createSubsystemLogger, w as requireActivePluginRegistry, x as normalizeChannelId, z as getChildLogger } from "./subsystem-
|
|
3
|
-
import { C as shortenHomePath, D as truncateUtf16Safe, E as toWhatsappJid, S as shortenHomeInString, T as sliceUtf16Safe, b as resolveUserPath, d as isPlainObject, f as isRecord, h as normalizeE164, i as clampInt, l as escapeRegExp, m as jidToE164, p as isSelfChatMode, r as clamp, t as CONFIG_DIR, w as sleep, y as resolveJidToE164 } from "./utils-
|
|
4
|
-
import { A as parseImageSizeError, B as normalizeElevatedLevel, C as isFailoverAssistantError, D as isRawApiErrorPayload, E as isRateLimitAssistantError, F as sanitizeGoogleTurnOrdering, G as resolveResponseUsageMode, H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, M as buildBootstrapContextFiles, N as ensureSessionHeader, O as isTimeoutErrorMessage, P as resolveBootstrapMaxChars, S as isContextOverflowError, T as isLikelyContextOverflowError, U as normalizeUsageDisplay, V as normalizeReasoningLevel, W as normalizeVerboseLevel, _ as getApiErrorPayloadFingerprint, a as isMessagingToolDuplicateNormalized, b as isCloudCodeAssistFormatError, c as sanitizeImageBlocks, d as isAntigravityClaude, f as isGoogleModelApi, g as formatRawAssistantErrorForUi, h as formatAssistantErrorText, j as sanitizeUserFacingText, k as parseImageDimensionError, l as sanitizeToolResultImages, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as isAuthAssistantError, w as isFailoverErrorMessage, x as isCompactionFailureError, y as isBillingAssistantError } from "./pi-embedded-helpers-
|
|
2
|
+
import { A as logVerbose, D as info, E as danger, F as warn, I as colorize, L as isRich, M as setVerbose, N as shouldLogVerbose, P as success, R as theme, T as setActivePluginRegistry, U as normalizeLogLevel, b as normalizeAnyChannelId, c as defaultRuntime, m as CHAT_CHANNEL_ORDER, t as createSubsystemLogger, w as requireActivePluginRegistry, x as normalizeChannelId, z as getChildLogger } from "./subsystem-BbfPHMjH.js";
|
|
3
|
+
import { C as shortenHomePath, D as truncateUtf16Safe, E as toWhatsappJid, S as shortenHomeInString, T as sliceUtf16Safe, b as resolveUserPath, d as isPlainObject, f as isRecord, h as normalizeE164, i as clampInt, l as escapeRegExp, m as jidToE164, p as isSelfChatMode, r as clamp, t as CONFIG_DIR, w as sleep, y as resolveJidToE164 } from "./utils-l-o5S4c-.js";
|
|
4
|
+
import { A as parseImageSizeError, B as normalizeElevatedLevel, C as isFailoverAssistantError, D as isRawApiErrorPayload, E as isRateLimitAssistantError, F as sanitizeGoogleTurnOrdering, G as resolveResponseUsageMode, H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, M as buildBootstrapContextFiles, N as ensureSessionHeader, O as isTimeoutErrorMessage, P as resolveBootstrapMaxChars, S as isContextOverflowError, T as isLikelyContextOverflowError, U as normalizeUsageDisplay, V as normalizeReasoningLevel, W as normalizeVerboseLevel, _ as getApiErrorPayloadFingerprint, a as isMessagingToolDuplicateNormalized, b as isCloudCodeAssistFormatError, c as sanitizeImageBlocks, d as isAntigravityClaude, f as isGoogleModelApi, g as formatRawAssistantErrorForUi, h as formatAssistantErrorText, j as sanitizeUserFacingText, k as parseImageDimensionError, l as sanitizeToolResultImages, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as isAuthAssistantError, w as isFailoverErrorMessage, x as isCompactionFailureError, y as isBillingAssistantError } from "./pi-embedded-helpers-WA1Uq3tV.js";
|
|
5
5
|
import { _ as isCronRunSessionKey, a as buildAgentPeerSessionKey, b as resolveThreadParentSessionKey, c as normalizeAccountId$3, d as resolveAgentIdFromSessionKey, f as resolveThreadSessionKeys, g as isAcpSessionKey, i as buildAgentMainSessionKey, l as normalizeAgentId, n as DEFAULT_AGENT_ID, o as buildGroupHistoryKey, p as sanitizeAgentId, r as DEFAULT_MAIN_KEY, s as classifySessionKeyShape, t as DEFAULT_ACCOUNT_ID$1, u as normalizeMainKey, v as isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-BWxPj0z_.js";
|
|
6
|
-
import { a as logDebug, c as logWarn, i as spawnWithFallback, n as runExec, o as logError, r as formatSpawnError, s as logInfo, t as runCommandWithTimeout } from "./exec-
|
|
7
|
-
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-
|
|
8
|
-
import { C as loadWorkspaceBootstrapFiles, S as filterBootstrapFilesForSession, c as resolveDefaultAgentId, f as DEFAULT_AGENT_WORKSPACE_DIR, i as resolveAgentModelFallbacksOverride, l as resolveSessionAgentId, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_BOOTSTRAP_FILENAME, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentIds, x as ensureAgentWorkspace } from "./agent-scope-
|
|
9
|
-
import { B as resolveApiKeyForProvider, Ct as resolveAuthProfileDisplayLabel, Dt as DEFAULT_MODEL, Et as DEFAULT_CONTEXT_TOKENS, G as getShellPathFromLoginShell, H as resolveEnvApiKey, L as getApiKeyForModel, Ot as DEFAULT_PROVIDER, R as getCustomProviderApiKey, St as normalizeSecretInput, U as resolveModelAuthMode, a as isCliProvider, at as resolveApiKeyForProfile, bt as resolveOpenClawAgentDir, d as resolveConfiguredModelRef, dt as listProfilesForProvider, et as resolveAuthProfileOrder, f as resolveDefaultModelForAgent, ft as markAuthProfileGood, h as resolveThinkingDefault, ht as ensureAuthProfileStore, m as resolveModelRefFromString, n as buildConfiguredAllowlistKeys, nt as markAuthProfileFailure, o as modelKey, q as resolveShellEnvFallbackTimeoutMs, r as buildModelAliasIndex, rt as markAuthProfileUsed, s as normalizeProviderId, t as buildAllowedModelSet, tt as isProfileInCooldown, x as normalizeGoogleModelId, yt as resolveAuthStorePathForDisplay, z as requireApiKey } from "./model-selection-
|
|
6
|
+
import { a as logDebug, c as logWarn, i as spawnWithFallback, n as runExec, o as logError, r as formatSpawnError, s as logInfo, t as runCommandWithTimeout } from "./exec-BSMwiIMp.js";
|
|
7
|
+
import { t as resolveOpenClawPackageRoot } from "./openclaw-root-CBSq79BF.js";
|
|
8
|
+
import { C as loadWorkspaceBootstrapFiles, S as filterBootstrapFilesForSession, c as resolveDefaultAgentId, f as DEFAULT_AGENT_WORKSPACE_DIR, i as resolveAgentModelFallbacksOverride, l as resolveSessionAgentId, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_BOOTSTRAP_FILENAME, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentIds, x as ensureAgentWorkspace } from "./agent-scope-CPiO6Aw7.js";
|
|
9
|
+
import { B as resolveApiKeyForProvider, Ct as resolveAuthProfileDisplayLabel, Dt as DEFAULT_MODEL, Et as DEFAULT_CONTEXT_TOKENS, G as getShellPathFromLoginShell, H as resolveEnvApiKey, L as getApiKeyForModel, Ot as DEFAULT_PROVIDER, R as getCustomProviderApiKey, St as normalizeSecretInput, U as resolveModelAuthMode, a as isCliProvider, at as resolveApiKeyForProfile, bt as resolveOpenClawAgentDir, d as resolveConfiguredModelRef, dt as listProfilesForProvider, et as resolveAuthProfileOrder, f as resolveDefaultModelForAgent, ft as markAuthProfileGood, h as resolveThinkingDefault, ht as ensureAuthProfileStore, m as resolveModelRefFromString, n as buildConfiguredAllowlistKeys, nt as markAuthProfileFailure, o as modelKey, q as resolveShellEnvFallbackTimeoutMs, r as buildModelAliasIndex, rt as markAuthProfileUsed, s as normalizeProviderId, t as buildAllowedModelSet, tt as isProfileInCooldown, x as normalizeGoogleModelId, yt as resolveAuthStorePathForDisplay, z as requireApiKey } from "./model-selection-lT7g9ysC.js";
|
|
10
10
|
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-BW-SEg7E.js";
|
|
11
11
|
import { t as formatCliCommand } from "./command-format-ChfKqObn.js";
|
|
12
12
|
import { t as parseBooleanValue$1 } from "./boolean-BgXe2hyu.js";
|
|
13
|
-
import { t as isTruthyEnvValue } from "./env-
|
|
14
|
-
import { A as resolveAgentMaxConcurrent, C as parseConfigPath, M as VERSION, S as getConfigValueAtPath, T as unsetConfigValueAtPath, _ as validateJsonSchemaValue, b as setConfigOverride, c as writeConfigFile, f as TELEGRAM_COMMAND_NAME_PATTERN, g as parseDurationMs, h as isSafeExecutableValue, i as loadConfig, l as validateConfigObjectWithPlugins, m as resolveTelegramCustomCommands, o as readConfigFileSnapshot, p as normalizeTelegramCommandName, s as resolveConfigSnapshotHash, v as getConfigOverrides, w as setConfigValueAtPath, x as unsetConfigOverride, y as resetConfigOverrides } from "./config-
|
|
15
|
-
import { c as normalizePluginsConfig, l as resolveEnableState, n as discoverOpenClawPlugins, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-
|
|
16
|
-
import { _ as listEnabledDiscordAccounts, a as normalizeWhatsAppTarget, b as normalizeChatType, c as resolveTelegramAccount, d as listBindings, g as resolveSlackBotToken, h as resolveSlackAppToken, i as isWhatsAppGroupJid, l as resolveTelegramToken, n as listChannelPlugins, o as listEnabledTelegramAccounts, p as resolveSlackAccount, r as normalizeChannelId$1, s as listTelegramAccountIds, t as getChannelPlugin, v as resolveDiscordAccount, y as normalizeDiscordToken } from "./plugins-
|
|
17
|
-
import { A as resolveSessionResetPolicy, C as normalizeDeliveryContext, D as resolveSessionKey$1, G as resolveIMessageAccount, H as listChannelDocks, K as resolveChannelGroupPolicy, L as resolveMainSessionKey, M as resolveThreadFlag, N as DEFAULT_RESET_TRIGGERS, O as evaluateSessionFreshness, P as canonicalizeMainSessionAlias, S as mergeDeliveryContext, U as listEnabledSignalAccounts, V as getChannelDock, W as resolveSignalAccount, X as resolveGroupSessionKey, Y as buildGroupDisplayName, Z as resolveSandboxConfigForAgent, _ as updateSessionStoreEntry, a as ensureSandboxWorkspaceForSession, at as normalizeToolName, b as deliveryContextFromSession, c as resolveSandboxRuntimeStatus, d as loadSessionStore, dt as resolveConversationLabel, et as applyOwnerOnlyToolPolicy, f as readSessionUpdatedAt, g as updateSessionStore, h as updateLastRoute, j as resolveSessionResetType, k as resolveChannelResetConfig, l as appendAssistantMessageToSessionTranscript, nt as collectExplicitAllowlist, o as resolveSandboxContext, ot as resolveToolProfilePolicy, p as recordSessionMetaFromInbound, q as resolveChannelGroupRequireMention, rt as expandPolicyWithPluginGroups, st as stripPluginOnlyAllowlist, tt as buildPluginToolGroups, v as isCacheEnabled, w as normalizeSessionDeliveryFields, x as deliveryContextKey, y as resolveCacheTtlMs$1, z as deriveSessionMetaPatch } from "./sandbox-
|
|
18
|
-
import { _ as stripReasoningTagsFromText, a as decodeDataUrl, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as stripDowngradedToolCallText, o as resolveProviderVisionModelFromConfig, p as promoteThinkingTagsToBlocks, r as coerceImageAssistantText, s as extractAssistantText$1, t as describeImageWithModel, u as extractThinkingFromTaggedText, v as ensureOpenClawModelsJson, y as minimaxUnderstandImage } from "./image-
|
|
13
|
+
import { t as isTruthyEnvValue } from "./env-DqiOM57_.js";
|
|
14
|
+
import { A as resolveAgentMaxConcurrent, C as parseConfigPath, M as VERSION, S as getConfigValueAtPath, T as unsetConfigValueAtPath, _ as validateJsonSchemaValue, b as setConfigOverride, c as writeConfigFile, f as TELEGRAM_COMMAND_NAME_PATTERN, g as parseDurationMs, h as isSafeExecutableValue, i as loadConfig, l as validateConfigObjectWithPlugins, m as resolveTelegramCustomCommands, o as readConfigFileSnapshot, p as normalizeTelegramCommandName, s as resolveConfigSnapshotHash, v as getConfigOverrides, w as setConfigValueAtPath, x as unsetConfigOverride, y as resetConfigOverrides } from "./config-DiNnQcwe.js";
|
|
15
|
+
import { c as normalizePluginsConfig, l as resolveEnableState, n as discoverOpenClawPlugins, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-C0ApY9d8.js";
|
|
16
|
+
import { _ as listEnabledDiscordAccounts, a as normalizeWhatsAppTarget, b as normalizeChatType, c as resolveTelegramAccount, d as listBindings, g as resolveSlackBotToken, h as resolveSlackAppToken, i as isWhatsAppGroupJid, l as resolveTelegramToken, n as listChannelPlugins, o as listEnabledTelegramAccounts, p as resolveSlackAccount, r as normalizeChannelId$1, s as listTelegramAccountIds, t as getChannelPlugin, v as resolveDiscordAccount, y as normalizeDiscordToken } from "./plugins-5W5E71Ut.js";
|
|
17
|
+
import { A as resolveSessionResetPolicy, C as normalizeDeliveryContext, D as resolveSessionKey$1, G as resolveIMessageAccount, H as listChannelDocks, K as resolveChannelGroupPolicy, L as resolveMainSessionKey, M as resolveThreadFlag, N as DEFAULT_RESET_TRIGGERS, O as evaluateSessionFreshness, P as canonicalizeMainSessionAlias, S as mergeDeliveryContext, U as listEnabledSignalAccounts, V as getChannelDock, W as resolveSignalAccount, X as resolveGroupSessionKey, Y as buildGroupDisplayName, Z as resolveSandboxConfigForAgent, _ as updateSessionStoreEntry, a as ensureSandboxWorkspaceForSession, at as normalizeToolName, b as deliveryContextFromSession, c as resolveSandboxRuntimeStatus, d as loadSessionStore, dt as resolveConversationLabel, et as applyOwnerOnlyToolPolicy, f as readSessionUpdatedAt, g as updateSessionStore, h as updateLastRoute, j as resolveSessionResetType, k as resolveChannelResetConfig, l as appendAssistantMessageToSessionTranscript, nt as collectExplicitAllowlist, o as resolveSandboxContext, ot as resolveToolProfilePolicy, p as recordSessionMetaFromInbound, q as resolveChannelGroupRequireMention, rt as expandPolicyWithPluginGroups, st as stripPluginOnlyAllowlist, tt as buildPluginToolGroups, v as isCacheEnabled, w as normalizeSessionDeliveryFields, x as deliveryContextKey, y as resolveCacheTtlMs$1, z as deriveSessionMetaPatch } from "./sandbox-DxAKZfZd.js";
|
|
18
|
+
import { _ as stripReasoningTagsFromText, a as decodeDataUrl, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as stripDowngradedToolCallText, o as resolveProviderVisionModelFromConfig, p as promoteThinkingTagsToBlocks, r as coerceImageAssistantText, s as extractAssistantText$1, t as describeImageWithModel, u as extractThinkingFromTaggedText, v as ensureOpenClawModelsJson, y as minimaxUnderstandImage } from "./image-DxmrpIUn.js";
|
|
19
19
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-CV2V1HHz.js";
|
|
20
|
-
import { O as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-
|
|
21
|
-
import { a as resolveSkillsPromptForRun, i as loadWorkspaceSkillEntries, l as applySkillEnvOverrides, n as buildWorkspaceSkillCommandSpecs, r as buildWorkspaceSkillSnapshot, s as resolvePluginSkillDirs, u as applySkillEnvOverridesFromSnapshot } from "./skills-
|
|
22
|
-
import { c as saveMediaBuffer, d as getFileExtension, f as imageMimeFromFormat, g as MAX_IMAGE_BYTES, h as kindFromMime, l as detectMime, m as isGifMedia, o as resizeToJpeg, p as isAudioFileName, r as getImageMetadata, s as getMediaDir, u as extensionForMime, v as mediaKindFromMime, y as SsrFBlockedError } from "./routes-
|
|
20
|
+
import { O as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-XHJ9uNgs.js";
|
|
21
|
+
import { a as resolveSkillsPromptForRun, i as loadWorkspaceSkillEntries, l as applySkillEnvOverrides, n as buildWorkspaceSkillCommandSpecs, r as buildWorkspaceSkillSnapshot, s as resolvePluginSkillDirs, u as applySkillEnvOverridesFromSnapshot } from "./skills-pqbmJf1e.js";
|
|
22
|
+
import { c as saveMediaBuffer, d as getFileExtension, f as imageMimeFromFormat, g as MAX_IMAGE_BYTES, h as kindFromMime, l as detectMime, m as isGifMedia, o as resizeToJpeg, p as isAudioFileName, r as getImageMetadata, s as getMediaDir, u as extensionForMime, v as mediaKindFromMime, y as SsrFBlockedError } from "./routes-BqZyywjQ.js";
|
|
23
23
|
import { n as formatErrorMessage, r as formatUncaughtError, t as extractErrorCode } from "./errors-B0eT3jVv.js";
|
|
24
|
-
import { i as resolveBrowserConfig } from "./server-context-
|
|
24
|
+
import { i as resolveBrowserConfig } from "./server-context-DT3SRl5J.js";
|
|
25
25
|
import { t as pickPrimaryTailnetIPv4 } from "./tailnet-DGRSvYuQ.js";
|
|
26
26
|
import { a as isValidIPv4, s as pickPrimaryLanIPv4 } from "./ws-DtDKpbLR.js";
|
|
27
|
-
import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-
|
|
28
|
-
import { a as logoutWeb, d as webAuthExists, i as logWebSelfId, n as resolveWhatsAppAccount, r as getWebAuthAgeMs, s as readWebSelfId } from "./accounts-
|
|
27
|
+
import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-DIvXZ2w4.js";
|
|
28
|
+
import { a as logoutWeb, d as webAuthExists, i as logWebSelfId, n as resolveWhatsAppAccount, r as getWebAuthAgeMs, s as readWebSelfId } from "./accounts-xJh3pJei.js";
|
|
29
29
|
import { a as resolveSessionTranscriptsDirForAgent, n as resolveSessionFilePath, o as resolveStorePath, r as resolveSessionTranscriptPath } from "./paths-Bkhd_qY8.js";
|
|
30
30
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-C1hdue6u.js";
|
|
31
31
|
import { n as redactSensitiveText } from "./redact-DAKeu7PA.js";
|
|
32
|
-
import { n as resolveToolDisplay } from "./tool-display-
|
|
33
|
-
import { A as markdownToIR, B as resolveChunkMode, C as sendTypingSignal, D as resolveFetch, E as streamSignalEvents, F as chunkByNewline, G as HEARTBEAT_TOKEN, H as findFenceSpanAt, I as chunkMarkdownText, J as MediaFetchError, K as SILENT_REPLY_TOKEN, L as chunkMarkdownTextWithMode, M as loadWebMedia, N as loadWebMediaRaw, O as wrapFetchWithAbortSignal, P as resolveMarkdownTableMode, R as chunkText, S as sendReadReceiptSignal, T as signalRpcRequest, U as isSafeFenceBreak, V as resolveTextChunkLimit, W as parseFenceSpans, X as fetchWithTimeout, Y as fetchRemoteMedia, Z as fetchWithSsrFGuard, _ as throwIfAborted, b as parseInlineDirectives$1, c as applyReplyThreading, d as shouldSuppressMessagingToolReplies, f as createReplyToModeFilterForChannel, g as normalizeTargetForProvider, h as normalizeChannelTargetInput, j as markdownToIRWithMeta, k as chunkMarkdownIR, l as filterMessagingToolDuplicates, m as buildTargetResolverSignature, o as normalizeReplyPayloadsForDelivery, p as resolveReplyToMode, q as isSilentReplyText, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as isRenderablePayload, v as parseReplyDirectives, w as signalCheck, x as sendMessageSignal, y as splitMediaFromOutput, z as chunkTextWithMode } from "./deliver-
|
|
34
|
-
import { i as getMachineDisplayName, n as isWSL, t as createBrowserRouteDispatcher } from "./dispatcher-
|
|
35
|
-
import { i as resolveMemorySearchConfig, n as resolveRetryConfig, r as retryAsync } from "./manager-
|
|
36
|
-
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths } from "./sqlite-
|
|
37
|
-
import { _ as parseCommandArgs, b as serializeCommandArgs, d as findCommandByNativeName, f as listChatCommands, g as normalizeCommandBody, h as listNativeCommandSpecsForConfig, i as extractTextFromMessage, m as listNativeCommandSpecs, p as listChatCommandsForConfig, u as buildCommandTextFromArgs, v as resolveCommandArgChoices, x as shouldHandleTextCommands, y as resolveCommandArgMenu } from "./tui-formatters-
|
|
38
|
-
import { kt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-
|
|
39
|
-
import { i as randomIdempotencyKey, n as callGateway } from "./call-
|
|
32
|
+
import { n as resolveToolDisplay } from "./tool-display-DwOJbBjC.js";
|
|
33
|
+
import { A as markdownToIR, B as resolveChunkMode, C as sendTypingSignal, D as resolveFetch, E as streamSignalEvents, F as chunkByNewline, G as HEARTBEAT_TOKEN, H as findFenceSpanAt, I as chunkMarkdownText, J as MediaFetchError, K as SILENT_REPLY_TOKEN, L as chunkMarkdownTextWithMode, M as loadWebMedia, N as loadWebMediaRaw, O as wrapFetchWithAbortSignal, P as resolveMarkdownTableMode, R as chunkText, S as sendReadReceiptSignal, T as signalRpcRequest, U as isSafeFenceBreak, V as resolveTextChunkLimit, W as parseFenceSpans, X as fetchWithTimeout, Y as fetchRemoteMedia, Z as fetchWithSsrFGuard, _ as throwIfAborted, b as parseInlineDirectives$1, c as applyReplyThreading, d as shouldSuppressMessagingToolReplies, f as createReplyToModeFilterForChannel, g as normalizeTargetForProvider, h as normalizeChannelTargetInput, j as markdownToIRWithMeta, k as chunkMarkdownIR, l as filterMessagingToolDuplicates, m as buildTargetResolverSignature, o as normalizeReplyPayloadsForDelivery, p as resolveReplyToMode, q as isSilentReplyText, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as isRenderablePayload, v as parseReplyDirectives, w as signalCheck, x as sendMessageSignal, y as splitMediaFromOutput, z as chunkTextWithMode } from "./deliver-B-MU3Szq.js";
|
|
34
|
+
import { i as getMachineDisplayName, n as isWSL, t as createBrowserRouteDispatcher } from "./dispatcher-Rf7W2dBd.js";
|
|
35
|
+
import { i as resolveMemorySearchConfig, n as resolveRetryConfig, r as retryAsync } from "./manager-DOqexxfO.js";
|
|
36
|
+
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths } from "./sqlite-CDfAET9Y.js";
|
|
37
|
+
import { _ as parseCommandArgs, b as serializeCommandArgs, d as findCommandByNativeName, f as listChatCommands, g as normalizeCommandBody, h as listNativeCommandSpecsForConfig, i as extractTextFromMessage, m as listNativeCommandSpecs, p as listChatCommandsForConfig, u as buildCommandTextFromArgs, v as resolveCommandArgChoices, x as shouldHandleTextCommands, y as resolveCommandArgMenu } from "./tui-formatters-C-dAVvRi.js";
|
|
38
|
+
import { kt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-Cam-Cwyu.js";
|
|
39
|
+
import { i as randomIdempotencyKey, n as callGateway } from "./call-Ccyb4kQR.js";
|
|
40
40
|
import { i as formatDurationSeconds, r as formatDurationPrecise, t as formatDurationCompact } from "./format-duration-CEmFWLyX.js";
|
|
41
41
|
import { n as formatTimeAgo } from "./format-relative-Db7eqEu8.js";
|
|
42
|
-
import { a as formatError$1, i as createWaSocket, n as startWebLoginWithQr, o as getStatusCode$1, r as waitForWebLogin, s as waitForWaConnection } from "./login-qr-
|
|
43
|
-
import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-
|
|
44
|
-
import { t as formatDocsLink } from "./links-
|
|
42
|
+
import { a as formatError$1, i as createWaSocket, n as startWebLoginWithQr, o as getStatusCode$1, r as waitForWebLogin, s as waitForWaConnection } from "./login-qr-DXiuhBc8.js";
|
|
43
|
+
import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-C6EhvkMA.js";
|
|
44
|
+
import { t as formatDocsLink } from "./links-D6CUlrWZ.js";
|
|
45
45
|
import { r as withManager } from "./cli-utils-R-ECs5cY.js";
|
|
46
|
-
import { n as withProgress, r as withProgressTotals } from "./progress-
|
|
47
|
-
import { a as resolveSubagentToolPolicy, c as resolveNativeSkillsEnabled, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, o as isNativeCommandsExplicitlyDisabled, r as resolveEffectiveToolPolicy, s as resolveNativeCommandsEnabled, t as filterToolsByPolicy } from "./pi-tools.policy-
|
|
48
|
-
import { r as stylePromptTitle } from "./prompt-style-
|
|
49
|
-
import { t as resolvePairingIdLabel } from "./pairing-labels-
|
|
46
|
+
import { n as withProgress, r as withProgressTotals } from "./progress-COZ_ycun.js";
|
|
47
|
+
import { a as resolveSubagentToolPolicy, c as resolveNativeSkillsEnabled, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, o as isNativeCommandsExplicitlyDisabled, r as resolveEffectiveToolPolicy, s as resolveNativeCommandsEnabled, t as filterToolsByPolicy } from "./pi-tools.policy-CCQVTuZw.js";
|
|
48
|
+
import { r as stylePromptTitle } from "./prompt-style-CghhrkxS.js";
|
|
49
|
+
import { t as resolvePairingIdLabel } from "./pairing-labels-K_6MMQA_.js";
|
|
50
50
|
import { c as derivePromptTokens, d as normalizeUsage, l as deriveSessionTotalTokens, n as loadCostUsageSummary, o as extractToolCallNames, r as loadSessionCostSummary, s as hasToolCall, u as hasNonzeroUsage } from "./session-cost-usage-PvyVZz-g.js";
|
|
51
51
|
import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd$1, t as estimateUsageCost } from "./usage-format-hd37en6b.js";
|
|
52
52
|
import { a as evaluateShellAllowlist, d as requiresExecApproval, f as resolveExecApprovals, h as resolveSafeBins, o as maxAsk, p as resolveExecApprovalsFromFile, s as minSecurity, t as addAllowlistEntry, u as recordAllowlistUse } from "./exec-approvals-DGPTjO0N.js";
|
|
53
|
-
import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as buildNodeShellCommand, i as parseEnvPairs, l as parseCameraSnapPayload, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-
|
|
54
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
53
|
+
import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as buildNodeShellCommand, i as parseEnvPairs, l as parseCameraSnapPayload, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-A8K8mlHX.js";
|
|
54
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-CAXvnE0u.js";
|
|
55
55
|
import { t as parseAbsoluteTimeMs } from "./parse-DqAvJRIf.js";
|
|
56
56
|
import { d as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-CNTiY-ZN.js";
|
|
57
|
-
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-
|
|
57
|
+
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-La1tQIxQ.js";
|
|
58
58
|
import { t as parseTimeoutMs } from "./parse-timeout-DV8NQQWk.js";
|
|
59
59
|
import { createRequire } from "node:module";
|
|
60
60
|
import process$1 from "node:process";
|
|
@@ -62,7 +62,7 @@ import { fileURLToPath } from "node:url";
|
|
|
62
62
|
import fs, { constants, existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
|
|
63
63
|
import os, { homedir, tmpdir } from "node:os";
|
|
64
64
|
import path from "node:path";
|
|
65
|
-
import
|
|
65
|
+
import fsPromises from "node:fs/promises";
|
|
66
66
|
import { execSync, spawn, spawnSync } from "node:child_process";
|
|
67
67
|
import { inspect } from "node:util";
|
|
68
68
|
import crypto, { randomUUID } from "node:crypto";
|
|
@@ -1766,7 +1766,7 @@ var MediaAttachmentCache = class {
|
|
|
1766
1766
|
const size = await this.ensureLocalStat(entry);
|
|
1767
1767
|
if (entry.resolvedPath) {
|
|
1768
1768
|
if (size !== void 0 && size > params.maxBytes) throw new MediaUnderstandingSkipError("maxBytes", `Attachment ${params.attachmentIndex + 1} exceeds maxBytes ${params.maxBytes}`);
|
|
1769
|
-
const buffer = await
|
|
1769
|
+
const buffer = await fsPromises.readFile(entry.resolvedPath);
|
|
1770
1770
|
entry.buffer = buffer;
|
|
1771
1771
|
entry.bufferMime = entry.bufferMime ?? entry.attachment.mime ?? await detectMime({
|
|
1772
1772
|
buffer,
|
|
@@ -1834,10 +1834,10 @@ var MediaAttachmentCache = class {
|
|
|
1834
1834
|
});
|
|
1835
1835
|
const extension = path.extname(bufferResult.fileName || "") || "";
|
|
1836
1836
|
const tmpPath = path.join(os.tmpdir(), `openclaw-media-${crypto.randomUUID()}${extension}`);
|
|
1837
|
-
await
|
|
1837
|
+
await fsPromises.writeFile(tmpPath, bufferResult.buffer);
|
|
1838
1838
|
entry.tempPath = tmpPath;
|
|
1839
1839
|
entry.tempCleanup = async () => {
|
|
1840
|
-
await
|
|
1840
|
+
await fsPromises.unlink(tmpPath).catch(() => {});
|
|
1841
1841
|
};
|
|
1842
1842
|
return {
|
|
1843
1843
|
path: tmpPath,
|
|
@@ -1875,7 +1875,7 @@ var MediaAttachmentCache = class {
|
|
|
1875
1875
|
if (!entry.resolvedPath) return;
|
|
1876
1876
|
if (entry.statSize !== void 0) return entry.statSize;
|
|
1877
1877
|
try {
|
|
1878
|
-
const stat = await
|
|
1878
|
+
const stat = await fsPromises.stat(entry.resolvedPath);
|
|
1879
1879
|
if (!stat.isFile()) {
|
|
1880
1880
|
entry.resolvedPath = void 0;
|
|
1881
1881
|
return;
|
|
@@ -2072,9 +2072,9 @@ function candidateBinaryNames(name) {
|
|
|
2072
2072
|
}
|
|
2073
2073
|
async function isExecutable(filePath) {
|
|
2074
2074
|
try {
|
|
2075
|
-
if (!(await
|
|
2075
|
+
if (!(await fsPromises.stat(filePath)).isFile()) return false;
|
|
2076
2076
|
if (process.platform === "win32") return true;
|
|
2077
|
-
await
|
|
2077
|
+
await fsPromises.access(filePath, constants.X_OK);
|
|
2078
2078
|
return true;
|
|
2079
2079
|
} catch {
|
|
2080
2080
|
return false;
|
|
@@ -2111,7 +2111,7 @@ async function hasBinary(name) {
|
|
|
2111
2111
|
async function fileExists(filePath) {
|
|
2112
2112
|
if (!filePath) return false;
|
|
2113
2113
|
try {
|
|
2114
|
-
await
|
|
2114
|
+
await fsPromises.stat(filePath);
|
|
2115
2115
|
return true;
|
|
2116
2116
|
} catch {
|
|
2117
2117
|
return false;
|
|
@@ -2426,7 +2426,7 @@ async function resolveCliOutput(params) {
|
|
|
2426
2426
|
const commandId = commandBase(params.command);
|
|
2427
2427
|
const fileOutput = commandId === "whisper-cli" ? resolveWhisperCppOutputPath(params.args) : commandId === "whisper" ? resolveWhisperOutputPath(params.args, params.mediaPath) : null;
|
|
2428
2428
|
if (fileOutput && await fileExists(fileOutput)) try {
|
|
2429
|
-
const content = await
|
|
2429
|
+
const content = await fsPromises.readFile(fileOutput, "utf8");
|
|
2430
2430
|
if (content.trim()) return content.trim();
|
|
2431
2431
|
} catch {}
|
|
2432
2432
|
if (commandId === "gemini") {
|
|
@@ -2690,7 +2690,7 @@ async function runCliEntry(params) {
|
|
|
2690
2690
|
maxBytes,
|
|
2691
2691
|
timeoutMs
|
|
2692
2692
|
});
|
|
2693
|
-
const outputDir = await
|
|
2693
|
+
const outputDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "openclaw-media-cli-"));
|
|
2694
2694
|
const mediaPath = pathResult.path;
|
|
2695
2695
|
const outputBase = path.join(outputDir, path.parse(mediaPath).name);
|
|
2696
2696
|
const templCtx = {
|
|
@@ -2724,7 +2724,7 @@ async function runCliEntry(params) {
|
|
|
2724
2724
|
model: command
|
|
2725
2725
|
};
|
|
2726
2726
|
} finally {
|
|
2727
|
-
await
|
|
2727
|
+
await fsPromises.rm(outputDir, {
|
|
2728
2728
|
recursive: true,
|
|
2729
2729
|
force: true
|
|
2730
2730
|
}).catch(() => {});
|
|
@@ -4463,7 +4463,7 @@ async function createModelSelectionState(params) {
|
|
|
4463
4463
|
}
|
|
4464
4464
|
}
|
|
4465
4465
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
4466
|
-
const { ensureAuthProfileStore } = await import("./model-selection-
|
|
4466
|
+
const { ensureAuthProfileStore } = await import("./model-selection-lT7g9ysC.js").then((n) => n.$);
|
|
4467
4467
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
4468
4468
|
const providerKey = normalizeProviderId(provider);
|
|
4469
4469
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -8285,7 +8285,7 @@ async function getMemorySearchManager(params) {
|
|
|
8285
8285
|
const cached = QMD_MANAGER_CACHE.get(cacheKey);
|
|
8286
8286
|
if (cached) return { manager: cached };
|
|
8287
8287
|
try {
|
|
8288
|
-
const { QmdMemoryManager } = await import("./qmd-manager-
|
|
8288
|
+
const { QmdMemoryManager } = await import("./qmd-manager-2PsT4eTr.js");
|
|
8289
8289
|
const primary = await QmdMemoryManager.create({
|
|
8290
8290
|
cfg: params.cfg,
|
|
8291
8291
|
agentId: params.agentId,
|
|
@@ -8295,7 +8295,7 @@ async function getMemorySearchManager(params) {
|
|
|
8295
8295
|
const wrapper = new FallbackMemoryManager({
|
|
8296
8296
|
primary,
|
|
8297
8297
|
fallbackFactory: async () => {
|
|
8298
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
8298
|
+
const { MemoryIndexManager } = await import("./manager-DOqexxfO.js").then((n) => n.t);
|
|
8299
8299
|
return await MemoryIndexManager.get(params);
|
|
8300
8300
|
}
|
|
8301
8301
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -8308,7 +8308,7 @@ async function getMemorySearchManager(params) {
|
|
|
8308
8308
|
}
|
|
8309
8309
|
}
|
|
8310
8310
|
try {
|
|
8311
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
8311
|
+
const { MemoryIndexManager } = await import("./manager-DOqexxfO.js").then((n) => n.t);
|
|
8312
8312
|
return { manager: await MemoryIndexManager.get(params) };
|
|
8313
8313
|
} catch (err) {
|
|
8314
8314
|
return {
|
|
@@ -8549,7 +8549,7 @@ async function imageResult(params) {
|
|
|
8549
8549
|
}, params.label);
|
|
8550
8550
|
}
|
|
8551
8551
|
async function imageResultFromFile(params) {
|
|
8552
|
-
const buf = await
|
|
8552
|
+
const buf = await fsPromises.readFile(params.path);
|
|
8553
8553
|
const mimeType = await detectMime({ buffer: buf.slice(0, 256) }) ?? "image/png";
|
|
8554
8554
|
return await imageResult({
|
|
8555
8555
|
label: params.label,
|
|
@@ -12634,7 +12634,7 @@ async function routeReply(params) {
|
|
|
12634
12634
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
12635
12635
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
12636
12636
|
try {
|
|
12637
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
12637
|
+
const { deliverOutboundPayloads } = await import("./deliver-B-MU3Szq.js").then((n) => n.n);
|
|
12638
12638
|
return {
|
|
12639
12639
|
ok: true,
|
|
12640
12640
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -17612,8 +17612,8 @@ async function describeStickerImage(params) {
|
|
|
17612
17612
|
const { provider, model } = resolved;
|
|
17613
17613
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
17614
17614
|
try {
|
|
17615
|
-
const buffer = await
|
|
17616
|
-
const { describeImageWithModel } = await import("./image-
|
|
17615
|
+
const buffer = await fsPromises.readFile(imagePath);
|
|
17616
|
+
const { describeImageWithModel } = await import("./image-DxmrpIUn.js").then((n) => n.n);
|
|
17617
17617
|
return (await describeImageWithModel({
|
|
17618
17618
|
buffer,
|
|
17619
17619
|
fileName: "sticker.webp",
|
|
@@ -17970,7 +17970,7 @@ function createWhatsAppLoginTool() {
|
|
|
17970
17970
|
force: Type.Optional(Type.Boolean())
|
|
17971
17971
|
}),
|
|
17972
17972
|
execute: async (_toolCallId, args) => {
|
|
17973
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
17973
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DXiuhBc8.js").then((n) => n.t);
|
|
17974
17974
|
if ((args?.action ?? "start") === "wait") {
|
|
17975
17975
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
17976
17976
|
return {
|
|
@@ -20574,7 +20574,7 @@ function formatExtraPaths(workspaceDir, extraPaths) {
|
|
|
20574
20574
|
}
|
|
20575
20575
|
async function checkReadableFile(pathname) {
|
|
20576
20576
|
try {
|
|
20577
|
-
await
|
|
20577
|
+
await fsPromises.access(pathname, fs.constants.R_OK);
|
|
20578
20578
|
return { exists: true };
|
|
20579
20579
|
} catch (err) {
|
|
20580
20580
|
const code = err.code;
|
|
@@ -20591,7 +20591,7 @@ async function scanSessionFiles(agentId) {
|
|
|
20591
20591
|
try {
|
|
20592
20592
|
return {
|
|
20593
20593
|
source: "sessions",
|
|
20594
|
-
totalFiles: (await
|
|
20594
|
+
totalFiles: (await fsPromises.readdir(sessionsDir, { withFileTypes: true })).filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).length,
|
|
20595
20595
|
issues
|
|
20596
20596
|
};
|
|
20597
20597
|
} catch (err) {
|
|
@@ -20623,7 +20623,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
|
|
|
20623
20623
|
if (alt.issue) issues.push(alt.issue);
|
|
20624
20624
|
const resolvedExtraPaths = normalizeExtraMemoryPaths(workspaceDir, extraPaths);
|
|
20625
20625
|
for (const extraPath of resolvedExtraPaths) try {
|
|
20626
|
-
if ((await
|
|
20626
|
+
if ((await fsPromises.lstat(extraPath)).isSymbolicLink()) continue;
|
|
20627
20627
|
const extraCheck = await checkReadableFile(extraPath);
|
|
20628
20628
|
if (extraCheck.issue) issues.push(extraCheck.issue);
|
|
20629
20629
|
} catch (err) {
|
|
@@ -20633,7 +20633,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
|
|
|
20633
20633
|
}
|
|
20634
20634
|
let dirReadable = null;
|
|
20635
20635
|
try {
|
|
20636
|
-
await
|
|
20636
|
+
await fsPromises.access(memoryDir, fs.constants.R_OK);
|
|
20637
20637
|
dirReadable = true;
|
|
20638
20638
|
} catch (err) {
|
|
20639
20639
|
const code = err.code;
|
|
@@ -23612,7 +23612,7 @@ function resolvePaths(baseDir) {
|
|
|
23612
23612
|
}
|
|
23613
23613
|
async function readJSON(filePath) {
|
|
23614
23614
|
try {
|
|
23615
|
-
const raw = await
|
|
23615
|
+
const raw = await fsPromises.readFile(filePath, "utf8");
|
|
23616
23616
|
return JSON.parse(raw);
|
|
23617
23617
|
} catch {
|
|
23618
23618
|
return null;
|
|
@@ -23620,15 +23620,15 @@ async function readJSON(filePath) {
|
|
|
23620
23620
|
}
|
|
23621
23621
|
async function writeJSONAtomic(filePath, value) {
|
|
23622
23622
|
const dir = path.dirname(filePath);
|
|
23623
|
-
await
|
|
23623
|
+
await fsPromises.mkdir(dir, { recursive: true });
|
|
23624
23624
|
const tmp = `${filePath}.${randomUUID()}.tmp`;
|
|
23625
|
-
await
|
|
23625
|
+
await fsPromises.writeFile(tmp, JSON.stringify(value, null, 2), "utf8");
|
|
23626
23626
|
try {
|
|
23627
|
-
await
|
|
23627
|
+
await fsPromises.chmod(tmp, 384);
|
|
23628
23628
|
} catch {}
|
|
23629
|
-
await
|
|
23629
|
+
await fsPromises.rename(tmp, filePath);
|
|
23630
23630
|
try {
|
|
23631
|
-
await
|
|
23631
|
+
await fsPromises.chmod(filePath, 384);
|
|
23632
23632
|
} catch {}
|
|
23633
23633
|
}
|
|
23634
23634
|
function pruneExpiredPending(pendingById, nowMs) {
|
|
@@ -26196,7 +26196,7 @@ async function ensureWorkspaceAndSessions(workspaceDir, runtime, options) {
|
|
|
26196
26196
|
});
|
|
26197
26197
|
runtime.log(`Workspace OK: ${shortenHomePath(ws.dir)}`);
|
|
26198
26198
|
const sessionsDir = resolveSessionTranscriptsDirForAgent(options?.agentId);
|
|
26199
|
-
await
|
|
26199
|
+
await fsPromises.mkdir(sessionsDir, { recursive: true });
|
|
26200
26200
|
runtime.log(`Sessions OK: ${shortenHomePath(sessionsDir)}`);
|
|
26201
26201
|
}
|
|
26202
26202
|
function resolveNodeManagerOptions() {
|
|
@@ -26218,7 +26218,7 @@ function resolveNodeManagerOptions() {
|
|
|
26218
26218
|
async function moveToTrash(pathname, runtime) {
|
|
26219
26219
|
if (!pathname) return;
|
|
26220
26220
|
try {
|
|
26221
|
-
await
|
|
26221
|
+
await fsPromises.access(pathname);
|
|
26222
26222
|
} catch {
|
|
26223
26223
|
return;
|
|
26224
26224
|
}
|
|
@@ -26241,7 +26241,7 @@ async function detectBinary(name) {
|
|
|
26241
26241
|
if (!isSafeExecutableValue(name)) return false;
|
|
26242
26242
|
const resolved = name.startsWith("~") ? resolveUserPath(name) : name;
|
|
26243
26243
|
if (path.isAbsolute(resolved) || resolved.startsWith(".") || resolved.includes("/") || resolved.includes("\\")) try {
|
|
26244
|
-
await
|
|
26244
|
+
await fsPromises.access(resolved);
|
|
26245
26245
|
return true;
|
|
26246
26246
|
} catch {
|
|
26247
26247
|
return false;
|
|
@@ -26715,7 +26715,7 @@ function normalizeAllowList$2(list) {
|
|
|
26715
26715
|
async function detectRemoteHostFromCliPath(cliPath) {
|
|
26716
26716
|
try {
|
|
26717
26717
|
const expanded = cliPath.startsWith("~") ? cliPath.replace(/^~/, process.env.HOME ?? "") : cliPath;
|
|
26718
|
-
const content = await
|
|
26718
|
+
const content = await fsPromises.readFile(expanded, "utf8");
|
|
26719
26719
|
const userHostMatch = content.match(/\bssh\b[^\n]*?\s+([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+)/);
|
|
26720
26720
|
if (userHostMatch) return userHostMatch[1];
|
|
26721
26721
|
return content.match(/\bssh\b[^\n]*?\s+([a-zA-Z][a-zA-Z0-9._-]*)\s+\S*\bimsg\b/)?.[1];
|
|
@@ -38640,7 +38640,7 @@ function safeParseState(raw) {
|
|
|
38640
38640
|
async function readTelegramUpdateOffset(params) {
|
|
38641
38641
|
const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
|
|
38642
38642
|
try {
|
|
38643
|
-
return safeParseState(await
|
|
38643
|
+
return safeParseState(await fsPromises.readFile(filePath, "utf-8"))?.lastUpdateId ?? null;
|
|
38644
38644
|
} catch (err) {
|
|
38645
38645
|
if (err.code === "ENOENT") return null;
|
|
38646
38646
|
return null;
|
|
@@ -38649,7 +38649,7 @@ async function readTelegramUpdateOffset(params) {
|
|
|
38649
38649
|
async function writeTelegramUpdateOffset(params) {
|
|
38650
38650
|
const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
|
|
38651
38651
|
const dir = path.dirname(filePath);
|
|
38652
|
-
await
|
|
38652
|
+
await fsPromises.mkdir(dir, {
|
|
38653
38653
|
recursive: true,
|
|
38654
38654
|
mode: 448
|
|
38655
38655
|
});
|
|
@@ -38658,9 +38658,9 @@ async function writeTelegramUpdateOffset(params) {
|
|
|
38658
38658
|
version: STORE_VERSION,
|
|
38659
38659
|
lastUpdateId: params.updateId
|
|
38660
38660
|
};
|
|
38661
|
-
await
|
|
38662
|
-
await
|
|
38663
|
-
await
|
|
38661
|
+
await fsPromises.writeFile(tmp, `${JSON.stringify(payload, null, 2)}\n`, { encoding: "utf-8" });
|
|
38662
|
+
await fsPromises.chmod(tmp, 384);
|
|
38663
|
+
await fsPromises.rename(tmp, filePath);
|
|
38664
38664
|
}
|
|
38665
38665
|
|
|
38666
38666
|
//#endregion
|
|
@@ -39558,7 +39558,7 @@ function resolvePluginTools(params) {
|
|
|
39558
39558
|
//#endregion
|
|
39559
39559
|
//#region src/agents/apply-patch-update.ts
|
|
39560
39560
|
async function applyUpdateHunk(filePath, chunks) {
|
|
39561
|
-
const originalLines = (await
|
|
39561
|
+
const originalLines = (await fsPromises.readFile(filePath, "utf8").catch((err) => {
|
|
39562
39562
|
throw new Error(`Failed to read file to update ${filePath}: ${err}`);
|
|
39563
39563
|
})).split("\n");
|
|
39564
39564
|
if (originalLines.length > 0 && originalLines[originalLines.length - 1] === "") originalLines.pop();
|
|
@@ -39728,7 +39728,7 @@ async function assertNoSymlink(relative, root) {
|
|
|
39728
39728
|
for (const part of parts) {
|
|
39729
39729
|
current = path.join(current, part);
|
|
39730
39730
|
try {
|
|
39731
|
-
if ((await
|
|
39731
|
+
if ((await fsPromises.lstat(current)).isSymbolicLink()) throw new Error(`Symlink not allowed in sandbox path: ${current}`);
|
|
39732
39732
|
} catch (err) {
|
|
39733
39733
|
if (err.code === "ENOENT") return;
|
|
39734
39734
|
throw err;
|
|
@@ -39807,13 +39807,13 @@ async function applyPatch(input, options) {
|
|
|
39807
39807
|
if (hunk.kind === "add") {
|
|
39808
39808
|
const target = await resolvePatchPath(hunk.path, options);
|
|
39809
39809
|
await ensureDir(target.resolved);
|
|
39810
|
-
await
|
|
39810
|
+
await fsPromises.writeFile(target.resolved, hunk.contents, "utf8");
|
|
39811
39811
|
recordSummary(summary, seen, "added", target.display);
|
|
39812
39812
|
continue;
|
|
39813
39813
|
}
|
|
39814
39814
|
if (hunk.kind === "delete") {
|
|
39815
39815
|
const target = await resolvePatchPath(hunk.path, options);
|
|
39816
|
-
await
|
|
39816
|
+
await fsPromises.rm(target.resolved);
|
|
39817
39817
|
recordSummary(summary, seen, "deleted", target.display);
|
|
39818
39818
|
continue;
|
|
39819
39819
|
}
|
|
@@ -39822,11 +39822,11 @@ async function applyPatch(input, options) {
|
|
|
39822
39822
|
if (hunk.movePath) {
|
|
39823
39823
|
const moveTarget = await resolvePatchPath(hunk.movePath, options);
|
|
39824
39824
|
await ensureDir(moveTarget.resolved);
|
|
39825
|
-
await
|
|
39826
|
-
await
|
|
39825
|
+
await fsPromises.writeFile(moveTarget.resolved, applied, "utf8");
|
|
39826
|
+
await fsPromises.rm(target.resolved);
|
|
39827
39827
|
recordSummary(summary, seen, "modified", moveTarget.display);
|
|
39828
39828
|
} else {
|
|
39829
|
-
await
|
|
39829
|
+
await fsPromises.writeFile(target.resolved, applied, "utf8");
|
|
39830
39830
|
recordSummary(summary, seen, "modified", target.display);
|
|
39831
39831
|
}
|
|
39832
39832
|
}
|
|
@@ -39850,7 +39850,7 @@ function formatSummary(summary) {
|
|
|
39850
39850
|
async function ensureDir(filePath) {
|
|
39851
39851
|
const parent = path.dirname(filePath);
|
|
39852
39852
|
if (!parent || parent === ".") return;
|
|
39853
|
-
await
|
|
39853
|
+
await fsPromises.mkdir(parent, { recursive: true });
|
|
39854
39854
|
}
|
|
39855
39855
|
async function resolvePatchPath(filePath, options) {
|
|
39856
39856
|
if (options.sandboxRoot) {
|
|
@@ -40541,7 +40541,7 @@ async function resolveSandboxWorkdir(params) {
|
|
|
40541
40541
|
cwd: process.cwd(),
|
|
40542
40542
|
root: params.sandbox.workspaceDir
|
|
40543
40543
|
});
|
|
40544
|
-
if (!(await
|
|
40544
|
+
if (!(await fsPromises.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
|
|
40545
40545
|
const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
|
|
40546
40546
|
const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
|
|
40547
40547
|
return {
|
|
@@ -43549,7 +43549,7 @@ function createCanvasTool() {
|
|
|
43549
43549
|
});
|
|
43550
43550
|
}
|
|
43551
43551
|
case "a2ui_push": {
|
|
43552
|
-
const jsonl = typeof params.jsonl === "string" && params.jsonl.trim() ? params.jsonl : typeof params.jsonlPath === "string" && params.jsonlPath.trim() ? await
|
|
43552
|
+
const jsonl = typeof params.jsonl === "string" && params.jsonl.trim() ? params.jsonl : typeof params.jsonlPath === "string" && params.jsonlPath.trim() ? await fsPromises.readFile(params.jsonlPath.trim(), "utf8") : "";
|
|
43553
43553
|
if (!jsonl.trim()) throw new Error("jsonl or jsonlPath required");
|
|
43554
43554
|
await invoke("canvas.a2ui.pushJSONL", { jsonl });
|
|
43555
43555
|
return jsonResult({ ok: true });
|
|
@@ -44185,27 +44185,27 @@ function resolveRestartSentinelPath(env = process.env) {
|
|
|
44185
44185
|
}
|
|
44186
44186
|
async function writeRestartSentinel(payload, env = process.env) {
|
|
44187
44187
|
const filePath = resolveRestartSentinelPath(env);
|
|
44188
|
-
await
|
|
44188
|
+
await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
|
|
44189
44189
|
const data = {
|
|
44190
44190
|
version: 1,
|
|
44191
44191
|
payload
|
|
44192
44192
|
};
|
|
44193
|
-
await
|
|
44193
|
+
await fsPromises.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
|
|
44194
44194
|
return filePath;
|
|
44195
44195
|
}
|
|
44196
44196
|
async function readRestartSentinel(env = process.env) {
|
|
44197
44197
|
const filePath = resolveRestartSentinelPath(env);
|
|
44198
44198
|
try {
|
|
44199
|
-
const raw = await
|
|
44199
|
+
const raw = await fsPromises.readFile(filePath, "utf-8");
|
|
44200
44200
|
let parsed;
|
|
44201
44201
|
try {
|
|
44202
44202
|
parsed = JSON.parse(raw);
|
|
44203
44203
|
} catch {
|
|
44204
|
-
await
|
|
44204
|
+
await fsPromises.unlink(filePath).catch(() => {});
|
|
44205
44205
|
return null;
|
|
44206
44206
|
}
|
|
44207
44207
|
if (!parsed || parsed.version !== 1 || !parsed.payload) {
|
|
44208
|
-
await
|
|
44208
|
+
await fsPromises.unlink(filePath).catch(() => {});
|
|
44209
44209
|
return null;
|
|
44210
44210
|
}
|
|
44211
44211
|
return parsed;
|
|
@@ -44217,7 +44217,7 @@ async function consumeRestartSentinel(env = process.env) {
|
|
|
44217
44217
|
const filePath = resolveRestartSentinelPath(env);
|
|
44218
44218
|
const parsed = await readRestartSentinel(env);
|
|
44219
44219
|
if (!parsed) return null;
|
|
44220
|
-
await
|
|
44220
|
+
await fsPromises.unlink(filePath).catch(() => {});
|
|
44221
44221
|
return parsed;
|
|
44222
44222
|
}
|
|
44223
44223
|
function formatRestartSentinelMessage(payload) {
|
|
@@ -45009,7 +45009,7 @@ async function resolveSandboxedImagePath(params) {
|
|
|
45009
45009
|
const candidateRel = path.join("media", "inbound", name);
|
|
45010
45010
|
const candidateAbs = path.join(params.sandboxRoot, candidateRel);
|
|
45011
45011
|
try {
|
|
45012
|
-
await
|
|
45012
|
+
await fsPromises.stat(candidateAbs);
|
|
45013
45013
|
} catch {
|
|
45014
45014
|
throw err;
|
|
45015
45015
|
}
|
|
@@ -52464,7 +52464,7 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
52464
52464
|
};
|
|
52465
52465
|
let content;
|
|
52466
52466
|
try {
|
|
52467
|
-
content = await
|
|
52467
|
+
content = await fsPromises.readFile(sessionFile, "utf-8");
|
|
52468
52468
|
} catch (err) {
|
|
52469
52469
|
if (err?.code === "ENOENT") return {
|
|
52470
52470
|
repaired: false,
|
|
@@ -52512,15 +52512,15 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
52512
52512
|
const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
|
|
52513
52513
|
const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
|
|
52514
52514
|
try {
|
|
52515
|
-
const stat = await
|
|
52516
|
-
await
|
|
52517
|
-
if (stat) await
|
|
52518
|
-
await
|
|
52519
|
-
if (stat) await
|
|
52520
|
-
await
|
|
52515
|
+
const stat = await fsPromises.stat(sessionFile).catch(() => null);
|
|
52516
|
+
await fsPromises.writeFile(backupPath, content, "utf-8");
|
|
52517
|
+
if (stat) await fsPromises.chmod(backupPath, stat.mode);
|
|
52518
|
+
await fsPromises.writeFile(tmpPath, cleaned, "utf-8");
|
|
52519
|
+
if (stat) await fsPromises.chmod(tmpPath, stat.mode);
|
|
52520
|
+
await fsPromises.rename(tmpPath, sessionFile);
|
|
52521
52521
|
} catch (err) {
|
|
52522
52522
|
try {
|
|
52523
|
-
await
|
|
52523
|
+
await fsPromises.unlink(tmpPath);
|
|
52524
52524
|
} catch (cleanupErr) {
|
|
52525
52525
|
params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
|
|
52526
52526
|
}
|
|
@@ -53146,7 +53146,7 @@ function registerCleanupHandlers() {
|
|
|
53146
53146
|
}
|
|
53147
53147
|
async function readLockPayload(lockPath) {
|
|
53148
53148
|
try {
|
|
53149
|
-
const raw = await
|
|
53149
|
+
const raw = await fsPromises.readFile(lockPath, "utf8");
|
|
53150
53150
|
const parsed = JSON.parse(raw);
|
|
53151
53151
|
if (typeof parsed.pid !== "number") return null;
|
|
53152
53152
|
if (typeof parsed.createdAt !== "string") return null;
|
|
@@ -53164,10 +53164,10 @@ async function acquireSessionWriteLock(params) {
|
|
|
53164
53164
|
const staleMs = params.staleMs ?? 1800 * 1e3;
|
|
53165
53165
|
const sessionFile = path.resolve(params.sessionFile);
|
|
53166
53166
|
const sessionDir = path.dirname(sessionFile);
|
|
53167
|
-
await
|
|
53167
|
+
await fsPromises.mkdir(sessionDir, { recursive: true });
|
|
53168
53168
|
let normalizedDir = sessionDir;
|
|
53169
53169
|
try {
|
|
53170
|
-
normalizedDir = await
|
|
53170
|
+
normalizedDir = await fsPromises.realpath(sessionDir);
|
|
53171
53171
|
} catch {}
|
|
53172
53172
|
const normalizedSessionFile = path.join(normalizedDir, path.basename(sessionFile));
|
|
53173
53173
|
const lockPath = `${normalizedSessionFile}.lock`;
|
|
@@ -53181,7 +53181,7 @@ async function acquireSessionWriteLock(params) {
|
|
|
53181
53181
|
if (current.count > 0) return;
|
|
53182
53182
|
HELD_LOCKS.delete(normalizedSessionFile);
|
|
53183
53183
|
await current.handle.close();
|
|
53184
|
-
await
|
|
53184
|
+
await fsPromises.rm(current.lockPath, { force: true });
|
|
53185
53185
|
} };
|
|
53186
53186
|
}
|
|
53187
53187
|
const startedAt = Date.now();
|
|
@@ -53189,7 +53189,7 @@ async function acquireSessionWriteLock(params) {
|
|
|
53189
53189
|
while (Date.now() - startedAt < timeoutMs) {
|
|
53190
53190
|
attempt += 1;
|
|
53191
53191
|
try {
|
|
53192
|
-
const handle = await
|
|
53192
|
+
const handle = await fsPromises.open(lockPath, "wx");
|
|
53193
53193
|
await handle.writeFile(JSON.stringify({
|
|
53194
53194
|
pid: process.pid,
|
|
53195
53195
|
createdAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
@@ -53206,7 +53206,7 @@ async function acquireSessionWriteLock(params) {
|
|
|
53206
53206
|
if (current.count > 0) return;
|
|
53207
53207
|
HELD_LOCKS.delete(normalizedSessionFile);
|
|
53208
53208
|
await current.handle.close();
|
|
53209
|
-
await
|
|
53209
|
+
await fsPromises.rm(current.lockPath, { force: true });
|
|
53210
53210
|
} };
|
|
53211
53211
|
} catch (err) {
|
|
53212
53212
|
if (err.code !== "EEXIST") throw err;
|
|
@@ -53215,7 +53215,7 @@ async function acquireSessionWriteLock(params) {
|
|
|
53215
53215
|
const stale = !Number.isFinite(createdAt) || Date.now() - createdAt > staleMs;
|
|
53216
53216
|
const alive = payload?.pid ? isAlive(payload.pid) : false;
|
|
53217
53217
|
if (stale || !alive) {
|
|
53218
|
-
await
|
|
53218
|
+
await fsPromises.rm(lockPath, { force: true });
|
|
53219
53219
|
continue;
|
|
53220
53220
|
}
|
|
53221
53221
|
const delay = Math.min(1e3, 50 * attempt);
|
|
@@ -53919,7 +53919,7 @@ async function prewarmSessionFile(sessionFile) {
|
|
|
53919
53919
|
if (!isSessionManagerCacheEnabled()) return;
|
|
53920
53920
|
if (isSessionManagerCached(sessionFile)) return;
|
|
53921
53921
|
try {
|
|
53922
|
-
const handle = await
|
|
53922
|
+
const handle = await fsPromises.open(sessionFile, "r");
|
|
53923
53923
|
try {
|
|
53924
53924
|
const buffer = Buffer$1.alloc(4096);
|
|
53925
53925
|
await handle.read(buffer, 0, buffer.length, 0);
|
|
@@ -54116,7 +54116,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
54116
54116
|
reason: describeUnknownError(err)
|
|
54117
54117
|
};
|
|
54118
54118
|
}
|
|
54119
|
-
await
|
|
54119
|
+
await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
|
|
54120
54120
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
54121
54121
|
const sandbox = await resolveSandboxContext({
|
|
54122
54122
|
config: params.config,
|
|
@@ -54124,7 +54124,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
54124
54124
|
workspaceDir: resolvedWorkspace
|
|
54125
54125
|
});
|
|
54126
54126
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
54127
|
-
await
|
|
54127
|
+
await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
|
|
54128
54128
|
await ensureSessionHeader({
|
|
54129
54129
|
sessionFile: params.sessionFile,
|
|
54130
54130
|
sessionId: params.sessionId,
|
|
@@ -54571,12 +54571,12 @@ function getWriter$1(filePath) {
|
|
|
54571
54571
|
const existing = writers$1.get(filePath);
|
|
54572
54572
|
if (existing) return existing;
|
|
54573
54573
|
const dir = path.dirname(filePath);
|
|
54574
|
-
const ready =
|
|
54574
|
+
const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
|
|
54575
54575
|
let queue = Promise.resolve();
|
|
54576
54576
|
const writer = {
|
|
54577
54577
|
filePath,
|
|
54578
54578
|
write: (line) => {
|
|
54579
|
-
queue = queue.then(() => ready).then(() =>
|
|
54579
|
+
queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
|
|
54580
54580
|
}
|
|
54581
54581
|
};
|
|
54582
54582
|
writers$1.set(filePath, writer);
|
|
@@ -54718,12 +54718,12 @@ function getWriter(filePath) {
|
|
|
54718
54718
|
const existing = writers.get(filePath);
|
|
54719
54719
|
if (existing) return existing;
|
|
54720
54720
|
const dir = path.dirname(filePath);
|
|
54721
|
-
const ready =
|
|
54721
|
+
const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
|
|
54722
54722
|
let queue = Promise.resolve();
|
|
54723
54723
|
const writer = {
|
|
54724
54724
|
filePath,
|
|
54725
54725
|
write: (line) => {
|
|
54726
|
-
queue = queue.then(() => ready).then(() =>
|
|
54726
|
+
queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
|
|
54727
54727
|
}
|
|
54728
54728
|
};
|
|
54729
54729
|
writers.set(filePath, writer);
|
|
@@ -56345,7 +56345,7 @@ async function prepareSessionManagerForRun(params) {
|
|
|
56345
56345
|
return;
|
|
56346
56346
|
}
|
|
56347
56347
|
if (params.hadSessionFile && header && !hasAssistant) {
|
|
56348
|
-
await
|
|
56348
|
+
await fsPromises.writeFile(params.sessionFile, "", "utf-8");
|
|
56349
56349
|
sm.fileEntries = [header];
|
|
56350
56350
|
sm.byId?.clear?.();
|
|
56351
56351
|
sm.labelsById?.clear?.();
|
|
@@ -56473,7 +56473,7 @@ async function loadImageFromRef(ref, workspaceDir, options) {
|
|
|
56473
56473
|
return null;
|
|
56474
56474
|
}
|
|
56475
56475
|
if (ref.type === "path") try {
|
|
56476
|
-
await
|
|
56476
|
+
await fsPromises.stat(targetPath);
|
|
56477
56477
|
} catch {
|
|
56478
56478
|
log$3.debug(`Native image: file not found: ${targetPath}`);
|
|
56479
56479
|
return null;
|
|
@@ -56643,7 +56643,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
56643
56643
|
const prevCwd = process.cwd();
|
|
56644
56644
|
const runAbortController = new AbortController();
|
|
56645
56645
|
log$3.debug(`embedded run start: runId=${params.runId} sessionId=${params.sessionId} provider=${params.provider} model=${params.modelId} thinking=${params.thinkLevel} messageChannel=${params.messageChannel ?? params.messageProvider ?? "unknown"}`);
|
|
56646
|
-
await
|
|
56646
|
+
await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
|
|
56647
56647
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
56648
56648
|
const sandbox = await resolveSandboxContext({
|
|
56649
56649
|
config: params.config,
|
|
@@ -56651,7 +56651,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
56651
56651
|
workspaceDir: resolvedWorkspace
|
|
56652
56652
|
});
|
|
56653
56653
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
56654
|
-
await
|
|
56654
|
+
await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
|
|
56655
56655
|
let restoreSkillEnv;
|
|
56656
56656
|
process.chdir(effectiveWorkspace);
|
|
56657
56657
|
try {
|
|
@@ -56870,7 +56870,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
56870
56870
|
sessionFile: params.sessionFile,
|
|
56871
56871
|
warn: (message) => log$3.warn(message)
|
|
56872
56872
|
});
|
|
56873
|
-
const hadSessionFile = await
|
|
56873
|
+
const hadSessionFile = await fsPromises.stat(params.sessionFile).then(() => true).catch(() => false);
|
|
56874
56874
|
const transcriptPolicy = resolveTranscriptPolicy({
|
|
56875
56875
|
modelApi: params.model?.api,
|
|
56876
56876
|
provider: params.provider,
|
|
@@ -57520,7 +57520,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
57520
57520
|
try {
|
|
57521
57521
|
while (true) {
|
|
57522
57522
|
attemptedThinking.add(thinkLevel);
|
|
57523
|
-
await
|
|
57523
|
+
await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
|
|
57524
57524
|
const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
|
|
57525
57525
|
const attempt = await runEmbeddedAttempt({
|
|
57526
57526
|
sessionId: params.sessionId,
|
|
@@ -62691,18 +62691,18 @@ function appendImagePathsToPrompt(prompt, paths) {
|
|
|
62691
62691
|
return `${trimmed}${trimmed ? "\n\n" : ""}${paths.join("\n")}`;
|
|
62692
62692
|
}
|
|
62693
62693
|
async function writeCliImages(images) {
|
|
62694
|
-
const tempDir = await
|
|
62694
|
+
const tempDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-images-"));
|
|
62695
62695
|
const paths = [];
|
|
62696
62696
|
for (let i = 0; i < images.length; i += 1) {
|
|
62697
62697
|
const image = images[i];
|
|
62698
62698
|
const ext = resolveImageExtension(image.mimeType);
|
|
62699
62699
|
const filePath = path.join(tempDir, `image-${i + 1}.${ext}`);
|
|
62700
62700
|
const buffer = Buffer.from(image.data, "base64");
|
|
62701
|
-
await
|
|
62701
|
+
await fsPromises.writeFile(filePath, buffer, { mode: 384 });
|
|
62702
62702
|
paths.push(filePath);
|
|
62703
62703
|
}
|
|
62704
62704
|
const cleanup = async () => {
|
|
62705
|
-
await
|
|
62705
|
+
await fsPromises.rm(tempDir, {
|
|
62706
62706
|
recursive: true,
|
|
62707
62707
|
force: true
|
|
62708
62708
|
});
|
|
@@ -65139,7 +65139,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
65139
65139
|
return;
|
|
65140
65140
|
}
|
|
65141
65141
|
try {
|
|
65142
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
65142
|
+
const { deliverOutboundPayloads } = await import("./deliver-B-MU3Szq.js").then((n) => n.n);
|
|
65143
65143
|
await deliverOutboundPayloads({
|
|
65144
65144
|
cfg: params.cfg,
|
|
65145
65145
|
channel,
|
|
@@ -65450,7 +65450,7 @@ async function stageSandboxMedia(params) {
|
|
|
65450
65450
|
};
|
|
65451
65451
|
try {
|
|
65452
65452
|
const destDir = sandbox ? path.join(effectiveWorkspaceDir, "media", "inbound") : effectiveWorkspaceDir;
|
|
65453
|
-
await
|
|
65453
|
+
await fsPromises.mkdir(destDir, { recursive: true });
|
|
65454
65454
|
const usedNames = /* @__PURE__ */ new Set();
|
|
65455
65455
|
const staged = /* @__PURE__ */ new Map();
|
|
65456
65456
|
for (const raw of rawPaths) {
|
|
@@ -65482,7 +65482,7 @@ async function stageSandboxMedia(params) {
|
|
|
65482
65482
|
usedNames.add(fileName);
|
|
65483
65483
|
const dest = path.join(destDir, fileName);
|
|
65484
65484
|
if (ctx.MediaRemoteHost) await scpFile(ctx.MediaRemoteHost, source, dest);
|
|
65485
|
-
else await
|
|
65485
|
+
else await fsPromises.copyFile(source, dest);
|
|
65486
65486
|
const stagedPath = sandbox ? path.posix.join("media", "inbound", fileName) : dest;
|
|
65487
65487
|
staged.set(source, stagedPath);
|
|
65488
65488
|
}
|