openclaw-multi-auto 1.7.4 → 1.7.6
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/{acp-cli-D2FsuxI4.js → acp-cli-DMujSgSt.js} +11 -11
- package/dist/{agent-B8D73rdQ.js → agent-CaQagdQ7.js} +8 -8
- package/dist/{agent-BomWJjOy.js → agent-QkWi9ww5.js} +7 -7
- package/dist/{agent-scope-DmTcOjk4.js → agent-scope-sd1-3XH0.js} +16 -16
- package/dist/{agents.config-Crwrvv0Y.js → agents.config-DpC62EoF.js} +3 -3
- package/dist/{audio-preflight-CUgcQtbA.js → audio-preflight-ByLQ-O2o.js} +1 -1
- package/dist/{audio-preflight-CZHCr2-5.js → audio-preflight-CKN-13f6.js} +1 -1
- package/dist/{audio-preflight-DUZyiet9.js → audio-preflight-CxMkqmsz.js} +10 -10
- package/dist/{audit-CX3KlHoS.js → audit-COOnp_TQ.js} +18 -18
- package/dist/{audit-membership-runtime-DOqwbA7L.js → audit-membership-runtime-o16tAd90.js} +1 -1
- package/dist/{auth-choice-DZC8_SXk.js → auth-choice-B7hFRxC4.js} +19 -19
- package/dist/{auth-choice-CuOI0DLZ.js → auth-choice-CgIbQGAr.js} +8 -8
- package/dist/{auth-choice-options-C_poWj2I.js → auth-choice-options-CaiEtgdy.js} +1 -1
- package/dist/{auth-choice-prompt-Bjt463U7.js → auth-choice-prompt-CyE2_iHL.js} +1 -1
- package/dist/{auth-choice.apply-helpers-BFZ8hPRq.js → auth-choice.apply-helpers-BwI7_FDv.js} +2 -2
- package/dist/{auth-choice.preferred-provider-CzDq9Lvp.js → auth-choice.preferred-provider-BJFK05is.js} +5 -5
- package/dist/{auth-profiles.runtime-BEes_Rco.js → auth-profiles.runtime-Bp6HfAW4.js} +1 -1
- package/dist/{auth-profiles.runtime-DNqCx0L5.js → auth-profiles.runtime-DHFZjArZ.js} +1 -1
- package/dist/{auth-profiles.runtime-BWD0iDWZ.js → auth-profiles.runtime-firEabaJ.js} +10 -10
- package/dist/{auth-token-CnWG4-cB.js → auth-token-Ca2ISBq6.js} +1 -1
- package/dist/{bonjour-discovery-Cnl-PHZ4.js → bonjour-discovery-CgQeXj94.js} +1 -1
- package/dist/{browser-cli-DLSYDvK2.js → browser-cli-DfrP5czU.js} +11 -11
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-account-context-DMK0G0sK.js → channel-account-context-F18H2wEh.js} +7 -7
- package/dist/{channel-options-CsQMEhUD.js → channel-options-DR0IjcQw.js} +3 -3
- package/dist/{channel-web-D7txUcfH.js → channel-web-B3yCvpab.js} +4 -4
- package/dist/channels/plugins/actions/discord.js +1 -1
- package/dist/channels/plugins/actions/signal.js +1 -1
- package/dist/channels/plugins/actions/telegram.js +1 -1
- package/dist/channels/plugins/agent-tools/whatsapp-login.js +1 -1
- package/dist/{channels-cli-DK-EFHka.js → channels-cli-C9jvVDlM.js} +33 -33
- package/dist/{channels-status-issues-B-PoQaOZ.js → channels-status-issues-C6mRI9nP.js} +1 -1
- package/dist/{clack-prompter-COY2Efgu.js → clack-prompter-CakorHf3.js} +1 -1
- package/dist/{clawbot-cli-CYVkuLnO.js → clawbot-cli-De1V5wKt.js} +12 -12
- package/dist/{cleanup-utils-DksMdp7C.js → cleanup-utils-DZ-HVi66.js} +4 -4
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-BXEJJp6e.js → cli-5Ap2oull.js} +10 -10
- package/dist/{cmd-argv-BdNFwuhe.js → cmd-argv-Dz5qUtqp.js} +1 -1
- package/dist/{compact.runtime-Do9SwMzP.js → compact.runtime-Bi0KAZxx.js} +10 -10
- package/dist/{compact.runtime-pgjSlzSY.js → compact.runtime-DoEYdXjJ.js} +1 -1
- package/dist/{compact.runtime-D9Tmp5YS.js → compact.runtime-Dy7P2p35.js} +1 -1
- package/dist/{completion-cli-BnHZnvaD.js → completion-cli-DetW6vGx.js} +12 -12
- package/dist/{config-cli-BTyfFTwL.js → config-cli-JmabBPbR.js} +13 -13
- package/dist/{config-guard-DXvConn_.js → config-guard-D0ly1tu3.js} +12 -12
- package/dist/{config-validation-ZC7mw4HJ.js → config-validation-DtOoaTl7.js} +3 -3
- package/dist/{configure--3s3LTcF.js → configure-DNZVKth2.js} +52 -52
- package/dist/{control-ui-assets-D5CuaZfV.js → control-ui-assets-B9I2TpME.js} +1 -1
- package/dist/{cron-cli-BTeTdxk8.js → cron-cli-hA-3anvP.js} +11 -11
- package/dist/{daemon-cli-TvT5eeIP.js → daemon-cli-CgEObThe.js} +13 -13
- package/dist/{daemon-install-CUvnebOQ.js → daemon-install-e324s4no.js} +16 -16
- package/dist/{daemon-install-plan.shared-BfFSRwqA.js → daemon-install-plan.shared-g5FPfccc.js} +12 -12
- package/dist/{deliver-runtime-CRO5x8jL.js → deliver-runtime-CI-THBhi.js} +10 -10
- package/dist/{deliver-runtime-D4aWAXZ9.js → deliver-runtime-CqyJiuFQ.js} +1 -1
- package/dist/{deliver-runtime-CjrGc3oj.js → deliver-runtime-DLAZp9H3.js} +1 -1
- package/dist/{deps-Cgw7M-k3.js → deps-B6HgPp5e.js} +6 -6
- package/dist/{device-bootstrap-DSXbseT6.js → device-bootstrap-oW1bwgs7.js} +1 -1
- package/dist/{device-pairing-RZV6Mnep.js → device-pairing-CMxl0D-M.js} +1 -1
- package/dist/{devices-cli-DnvmJ-Sg.js → devices-cli-BPpKKc7g.js} +11 -11
- package/dist/{diagnostics-1AwcyuKi.js → diagnostics-iZHasrpQ.js} +5 -5
- package/dist/{directory-cli-CO5of3mT.js → directory-cli-BP8WHXBG.js} +10 -10
- package/dist/{discord-DKZdsbTR.js → discord-C5GTGVrg.js} +42 -42
- package/dist/{dns-cli-s2wuP3H0.js → dns-cli-CQl7AkL3.js} +10 -10
- package/dist/{docs-cli-CZA-gAQf.js → docs-cli-BWb05s-1.js} +3 -3
- package/dist/{doctor-completion-DvnTlsPK.js → doctor-completion-CA3Zcz0O.js} +2 -2
- package/dist/{doctor-config-flow-DOEjAAYV.js → doctor-config-flow-C53lW8fK.js} +10 -10
- package/dist/{enable-BSbXEyXD.js → enable-CmddFDJP.js} +1 -1
- package/dist/{exec-approvals-cli-CsNqvj8p.js → exec-approvals-cli-Cyhhh2cy.js} +18 -18
- package/dist/{fetch-CGW2R_wh.js → fetch-ggeyBJ4j.js} +2 -2
- package/dist/{gateway-cli-Bq7xXLEB.js → gateway-cli-vQfsLSPv.js} +101 -101
- package/dist/{gateway-install-token-C40ge2lh.js → gateway-install-token-CQHd6wSt.js} +3 -3
- package/dist/{gateway-rpc-DUJcLoxb.js → gateway-rpc-DrDqntyT.js} +1 -1
- package/dist/{health-D_dD9-ET.js → health-CTOG7Tdy.js} +7 -7
- package/dist/{hooks-cli-YvIgaujr.js → hooks-cli-CvrIbP3A.js} +18 -18
- package/dist/{hooks-status-C3wWva3H.js → hooks-status-BiuMKGQP.js} +1 -1
- package/dist/{image-runtime-Cx4HaqrI.js → image-runtime-Cen4jnt5.js} +10 -10
- package/dist/{image-runtime-Cr6qZmyh.js → image-runtime-CidKJsqA.js} +1 -1
- package/dist/{image-runtime-Brryt_BU.js → image-runtime-DuwNoMsX.js} +1 -1
- package/dist/index.js +21 -21
- package/dist/{inspect-D3lV5ful.js → inspect-C0iPD7zZ.js} +4 -4
- package/dist/{install-safe-path-BvwKN_9n.js → install-safe-path-CnIWvuEU.js} +33 -33
- package/dist/{installs-BC5ieRDB.js → installs-BcQMkw3V.js} +8 -8
- package/dist/{ipv4-CwqOzc5W.js → ipv4-DHZnIX-K.js} +1 -1
- package/dist/{issue-format-34LidjQQ.js → issue-format-CtBob7pd.js} +1 -1
- package/dist/{launchd-BLFV2ME0.js → launchd-D7vxtTg7.js} +13 -13
- package/dist/{lifecycle-core-C07n1IOr.js → lifecycle-core-CKec6MyM.js} +6 -6
- package/dist/line/send.js +1 -1
- package/dist/llm-slug-generator.js +1 -1
- package/dist/{logging-DPEdtuNl.js → logging-B7i4YBpx.js} +1 -1
- package/dist/{login-BLC4Op_m.js → login-CQ5pGFeF.js} +3 -3
- package/dist/{login-CKmmxErc.js → login-DC00cCmn.js} +2 -2
- package/dist/{login-qr-DpxxtTBd.js → login-qr-C8iDYxXx.js} +11 -11
- package/dist/{login-qr-Djgtmdpd.js → login-qr-D3WKyrcm.js} +2 -2
- package/dist/{login-qr-KVA4wuh0.js → login-qr-DB7lXNdD.js} +2 -2
- package/dist/{login-CIjIxi5t.js → login-rVmwSeBs.js} +2 -2
- package/dist/{logs-cli-BKhTgUSN.js → logs-cli-B8u30MKC.js} +11 -11
- package/dist/{manager-runtime-D9AEoM1M.js → manager-runtime-C04JB-55.js} +1 -1
- package/dist/{manager-runtime-B4ZbE6hq.js → manager-runtime-DDc_xR6t.js} +10 -10
- package/dist/{manager-runtime-CvM8JTRt.js → manager-runtime-DON5nkey.js} +1 -1
- package/dist/{manager.runtime-DbQBNTV4.js → manager.runtime-B8hc-v_R.js} +7 -7
- package/dist/{manager.runtime-lHLhN5ro.js → manager.runtime-sDKQexj4.js} +16 -16
- package/dist/{manager.runtime-BV-CBNb2.js → manager.runtime-y1RqEqxK.js} +2 -2
- package/dist/{model-picker-C5sQCeTo.js → model-picker-iMZicrZb.js} +5 -5
- package/dist/{model-selection-CNRMBWfR.js → model-selection-Coo7zMJO.js} +43 -43
- package/dist/{models-cli-B7OdTj93.js → models-cli-CHWqnmnX.js} +21 -21
- package/dist/{node-cli-ArOhWB3h.js → node-cli-D2EGwHd2.js} +22 -22
- package/dist/{node-command-policy-BVIbeciX.js → node-command-policy-C9YoIlNR.js} +1 -1
- package/dist/{node-service-ESc5ToCS.js → node-service-D7xRD6Op.js} +1 -1
- package/dist/{nodes-cli-BLneGv8c.js → nodes-cli-BaWA_a27.js} +13 -13
- package/dist/{npm-pack-install-DI_0G-Ju.js → npm-pack-install-C7ntuYO8.js} +23 -23
- package/dist/{npm-resolution-DowD_x7i.js → npm-resolution-BL-LzQ8q.js} +3 -3
- package/dist/{onboard-Da0Gqg8E.js → onboard-1Vbkq-0q.js} +10 -10
- package/dist/{onboard-channels-Dub92d1X.js → onboard-channels-C_RZQliP.js} +16 -16
- package/dist/{onboard-custom-iC39HaRY.js → onboard-custom-CyUm7NIR.js} +5 -5
- package/dist/{onboard-hooks-DUll1iq8.js → onboard-hooks-Bx20a5uy.js} +4 -4
- package/dist/{onboard-remote-Cyc407f2.js → onboard-remote-Dtm07eUX.js} +3 -3
- package/dist/{onboard-skills-BqnqjDI3.js → onboard-skills-BOBtFqTc.js} +3 -3
- package/dist/{onboarding-BgeTWLi_.js → onboarding-CAQDdLGu.js} +17 -17
- package/dist/{onboarding.finalize-C4jEsWtC.js → onboarding.finalize-BAUMJZlu.js} +25 -25
- package/dist/{onboarding.gateway-config-C2XdEUF3.js → onboarding.gateway-config-BRSWuajr.js} +14 -14
- package/dist/{onboarding.secret-input-OwIXA7An.js → onboarding.secret-input-D75Xjj5j.js} +1 -1
- package/dist/{openai-codex-oauth-BUnBFHjs.js → openai-codex-oauth-BjOz2DJZ.js} +3 -3
- package/dist/{openclaw-root-B5jXk2td.js → openclaw-root-dlCz9toZ.js} +8 -8
- package/dist/{outbound-send-deps-dRaNZNE7.js → outbound-send-deps-Bid3Xegx.js} +1 -1
- package/dist/{pairing-cli-pEJPQw6E.js → pairing-cli-Dm_fH3zm.js} +10 -10
- package/dist/{path-alias-guards-BEqdGdn9.js → path-alias-guards-B6owPyQX.js} +3 -3
- package/dist/{path-safety-TRhr8lhQ.js → path-safety-DN7L46Yk.js} +1 -1
- package/dist/{pi-model-discovery-runtime-BkRq7f9h.js → pi-model-discovery-runtime-BRs3OnbK.js} +10 -10
- package/dist/{pi-model-discovery-runtime-BujN_d1_.js → pi-model-discovery-runtime-Do-8n2s8.js} +1 -1
- package/dist/{pi-model-discovery-runtime-CDKkuBYh.js → pi-model-discovery-runtime-DsZRIFOj.js} +1 -1
- package/dist/{pi-tools.before-tool-call.runtime-Dt7ZWya_.js → pi-tools.before-tool-call.runtime-Cz99nK1_.js} +10 -10
- package/dist/{pi-tools.before-tool-call.runtime-BYooFUjV.js → pi-tools.before-tool-call.runtime-DpSw9nu5.js} +1 -1
- package/dist/{pi-tools.before-tool-call.runtime-DgAiY2la.js → pi-tools.before-tool-call.runtime-l0nSxXys.js} +1 -1
- package/dist/{plugin-install-plan-q0pKUAmp.js → plugin-install-plan-tegfcs_j.js} +1 -1
- package/dist/{plugin-registry-DrrKSvdi.js → plugin-registry-D1UVdXNl.js} +2 -2
- package/dist/{plugins-om7vnHk0.js → plugins-BVbKGpQJ.js} +9 -9
- package/dist/{plugins-cli-BWuwmlNA.js → plugins-cli-DMTK-3PI.js} +21 -21
- package/dist/{ports-CVD9jTxH.js → ports-CrZzXxTl.js} +2 -2
- package/dist/{probe-auth-CRm2yob0.js → probe-auth-H1_HjX3c.js} +1 -1
- package/dist/{program-context-BnNrq2_o.js → program-context--XQiK-Vv.js} +42 -42
- package/dist/{prompt-select-styled-FpCuoi_9.js → prompt-select-styled-BzWw9bIh.js} +32 -32
- package/dist/{provider-auth-helpers-Dzq3SbTh.js → provider-auth-helpers-B5U-h2Ob.js} +4 -4
- package/dist/{provider-wizard-CRYUkbUG.js → provider-wizard-BgHYhBzK.js} +1 -1
- package/dist/{push-apns-6Yefl4vF.js → push-apns-DQdHdrq8.js} +3 -3
- package/dist/{pw-ai-Brk_ehKR.js → pw-ai-8OpaEmr4.js} +15 -15
- package/dist/{pw-ai-C_IaVhUm.js → pw-ai-B9F20k6L.js} +1 -1
- package/dist/{pw-ai-3ual6adI.js → pw-ai-R41XeePP.js} +1 -1
- package/dist/{qmd-manager-Clny9vcj.js → qmd-manager-BMkECKpc.js} +19 -19
- package/dist/{qr-cli-TsbdBlkh.js → qr-cli-CZy0bldy.js} +11 -11
- package/dist/{query-expansion-BNb6Vys6.js → query-expansion-AnOnkIqf.js} +48 -48
- package/dist/{redact-snapshot-sudZsVoX.js → redact-snapshot-lCMXNHo3.js} +1 -1
- package/dist/{register.agent-BcYbZ3eF.js → register.agent-2yZ4uAHT.js} +43 -43
- package/dist/{register.backup-DbtBtW_J.js → register.backup-Byyque4N.js} +26 -26
- package/dist/register.configure-CrATD0tr.js +87 -0
- package/dist/{register.maintenance-Cdn2TwrI.js → register.maintenance-BZ_V3Ubt.js} +33 -33
- package/dist/{register.message-cHCXxeA6.js → register.message-CJwTd37H.js} +13 -13
- package/dist/{register.onboard-Dbig7G2G.js → register.onboard-BY0T1WHb.js} +17 -17
- package/dist/{register.setup-DjHUcAcm.js → register.setup-CA3ZUrN-.js} +18 -18
- package/dist/{register.status-health-sessions-BMxJK45p.js → register.status-health-sessions-PN0jxAPA.js} +26 -26
- package/dist/{reply-Cf5Mm7vB.js → reply-gX1XTS9Y.js} +226 -226
- package/dist/{restart-stale-pids-ZfbSMILU.js → restart-stale-pids-B6E7QavX.js} +2 -2
- package/dist/{rpc-8YrBMBoD.js → rpc-B2PO3N0W.js} +1 -1
- package/dist/{runtime-whatsapp-login.runtime-6yfwX0nq.js → runtime-whatsapp-login.runtime-BAgknLYS.js} +3 -3
- package/dist/{runtime-whatsapp-login.runtime-Br3SxDXL.js → runtime-whatsapp-login.runtime-C_E260pb.js} +3 -3
- package/dist/{runtime-whatsapp-login.runtime-Bo1HalYB.js → runtime-whatsapp-login.runtime-DKMtq6l9.js} +12 -12
- package/dist/{runtime-whatsapp-outbound.runtime-BKesQQli.js → runtime-whatsapp-outbound.runtime-3elssz_a.js} +2 -2
- package/dist/{runtime-whatsapp-outbound.runtime-L3Qkst0n.js → runtime-whatsapp-outbound.runtime-BdHcgl-R.js} +2 -2
- package/dist/{runtime-whatsapp-outbound.runtime-Ch2o56Ey.js → runtime-whatsapp-outbound.runtime-Dv1HN4ha.js} +11 -11
- package/dist/{sandbox-cli-CoRe21Si.js → sandbox-cli-SCYkP_qN.js} +10 -10
- package/dist/{secret-file-7smmAVRV.js → secret-file-CuiwToxK.js} +1 -1
- package/dist/{secrets-cli-CHT1AjCX.js → secrets-cli-C5O6Jw_4.js} +11 -11
- package/dist/{security-cli-DRqdmCtr.js → security-cli-CL4qtb9H.js} +20 -20
- package/dist/{send-CXnKWzde.js → send-BvAlpSvh.js} +1 -1
- package/dist/{send-CHZ7WuOb.js → send-hZxe8sP9.js} +2 -2
- package/dist/{send-pxKoZnv6.js → send-t1epz3bc.js} +1 -1
- package/dist/{server-DiTziwvC.js → server-Cnc4lO11.js} +10 -10
- package/dist/{server-node-events-p5ykMQz-.js → server-node-events-aTSoNGTe.js} +14 -14
- package/dist/{service-RXVSlLiU.js → service-LNrViUVb.js} +13 -13
- package/dist/{session-D0j0Q_PW.js → session-BUpAKttt.js} +1 -1
- package/dist/{session-CXOhppV3.js → session-CndmPe2D.js} +2 -2
- package/dist/{session-kt-bqE_z.js → session-D7nweu0t.js} +1 -1
- package/dist/{shared-CoL161wD.js → shared-c6JUv5At.js} +1 -1
- package/dist/{skill-scanner-BzjuMMKN.js → skill-scanner-DaUNX-tW.js} +6 -6
- package/dist/{skills-cli-YajvWbjO.js → skills-cli-YqsScIM5.js} +11 -11
- package/dist/{skills-install-DFkV3GsC.js → skills-install-BnRu7wO4.js} +6 -6
- package/dist/{skills-status-PMeXzDbC.js → skills-status-DHMQ6A2H.js} +1 -1
- package/dist/{skills-Jz-BSwRd.js → skills-vhlUaliH.js} +2 -2
- package/dist/{slash-commands.runtime-BYfxn_xu.js → slash-commands.runtime-AZCJXo7S.js} +1 -1
- package/dist/{slash-commands.runtime-_LrsMaI1.js → slash-commands.runtime-D9GHahMO.js} +10 -10
- package/dist/{slash-commands.runtime-eZUYakkd.js → slash-commands.runtime-YWtbFO1w.js} +1 -1
- package/dist/{slash-dispatch.runtime-neG4499W.js → slash-dispatch.runtime-DcISuJb0.js} +10 -10
- package/dist/{slash-dispatch.runtime-Cu8ghe1h.js → slash-dispatch.runtime-DyUU1AG5.js} +1 -1
- package/dist/{slash-dispatch.runtime-D7ogJeRu.js → slash-dispatch.runtime-QxpHMagD.js} +1 -1
- package/dist/{slash-skill-commands.runtime-iwoxGLKu.js → slash-skill-commands.runtime-Cgu35QuS.js} +1 -1
- package/dist/{slash-skill-commands.runtime-8dS5PTaH.js → slash-skill-commands.runtime-Cv1NPjj6.js} +1 -1
- package/dist/{slash-skill-commands.runtime-D0ohJN-V.js → slash-skill-commands.runtime-Dt6QQJcX.js} +10 -10
- package/dist/{status-1patzIRq.js → status-D9mVTxuB.js} +1 -1
- package/dist/{status-BaLZ1uQV.js → status-QQiIsfFq.js} +21 -21
- package/dist/{status.update-DrzJ1YWu.js → status.update-DY13od-q.js} +3 -3
- package/dist/{subagent-registry-runtime-BPxjP8o9.js → subagent-registry-runtime-CNgez4Yd.js} +1 -1
- package/dist/{subagent-registry-runtime-BTW1zlrG.js → subagent-registry-runtime-CoeW8s2P.js} +10 -10
- package/dist/{subagent-registry-runtime-Z0fdsGSq.js → subagent-registry-runtime-N50VG-ay.js} +1 -1
- package/dist/{system-cli-CndWL3sF.js → system-cli-DMu6SZhn.js} +11 -11
- package/dist/{systemd-D47rkLi7.js → systemd-DSK6B3bg.js} +11 -11
- package/dist/{systemd-hints-DHfXVo8k.js → systemd-hints-DsQTPBGt.js} +6 -6
- package/dist/{systemd-linger-DwmFZpci.js → systemd-linger-BPISBIWJ.js} +1 -1
- package/dist/{tui-CzYnfJxE.js → tui-DzNNH2rc.js} +2 -2
- package/dist/{tui-cli-D47N0Kfm.js → tui-cli-D5JgcWb9.js} +11 -11
- package/dist/{update-BiUnc38r.js → update-DL_359AR.js} +2 -2
- package/dist/{update-cli-CeqH2oQ-.js → update-cli-BfjWjK3A.js} +45 -45
- package/dist/{update-runner-oqYBjs5t.js → update-runner-CfkBU1BA.js} +16 -16
- package/dist/{web-CXyjF_si.js → web-B4n02Xhe.js} +4 -4
- package/dist/{web-BRvkjVpk.js → web-BHO-XtPY.js} +14 -14
- package/dist/{web-Bl0ih6N1.js → web-rZyV5Fxs.js} +4 -4
- package/dist/{webhooks-cli-CnTKcfvh.js → webhooks-cli-C0kgprJJ.js} +10 -10
- package/dist/{whatsapp-actions-BXO9Bi7a.js → whatsapp-actions-BC06Ug_d.js} +11 -11
- package/dist/{whatsapp-actions-Cpf6YROk.js → whatsapp-actions-De9-kJMP.js} +2 -2
- package/dist/{whatsapp-actions-BUvGEDSk.js → whatsapp-actions-JJEG8eF3.js} +2 -2
- package/dist/{workspace-CWne7yqK.js → workspace-BTsqd19h.js} +1 -1
- package/package.json +11 -18
- package/scripts/create-instance.sh +29 -46
- package/dist/register.configure-CPWCrXrC.js +0 -87
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { g as resolveStateDir } from "./paths-tuenh9TL.js";
|
|
2
2
|
import { t as createSubsystemLogger } from "./subsystem-G54saDcg.js";
|
|
3
3
|
import "./utils-B8zCe27d.js";
|
|
4
|
-
import { d as resolveAgentWorkspaceDir } from "./agent-scope-
|
|
4
|
+
import { d as resolveAgentWorkspaceDir } from "./agent-scope-sd1-3XH0.js";
|
|
5
5
|
import { E as parseAgentSessionKey } from "./session-key-DjKQluAa.js";
|
|
6
|
-
import "./openclaw-root-
|
|
6
|
+
import "./openclaw-root-dlCz9toZ.js";
|
|
7
7
|
import "./logger-BohkHL0S.js";
|
|
8
8
|
import "./exec-CNtAq7Md.js";
|
|
9
|
-
import { $ as writeFileWithinRoot, C as isFileMissingError, M as resolveWindowsSpawnProgram, a as listSessionFilesForAgent, i as buildSessionEntry, j as materializeWindowsSpawnProgram, r as requireNodeSqlite, t as extractKeywords, w as statRegularFile } from "./query-expansion-
|
|
9
|
+
import { $ as writeFileWithinRoot, C as isFileMissingError, M as resolveWindowsSpawnProgram, a as listSessionFilesForAgent, i as buildSessionEntry, j as materializeWindowsSpawnProgram, r as requireNodeSqlite, t as extractKeywords, w as statRegularFile } from "./query-expansion-AnOnkIqf.js";
|
|
10
10
|
import "./redact-owRpqMhM.js";
|
|
11
|
-
import "./path-alias-guards-
|
|
11
|
+
import "./path-alias-guards-B6owPyQX.js";
|
|
12
12
|
import "./paths-CfmKJcO5.js";
|
|
13
13
|
import os from "node:os";
|
|
14
14
|
import path from "node:path";
|
|
15
|
-
import
|
|
15
|
+
import fsPromises from "node:fs/promises";
|
|
16
16
|
import { spawn } from "node:child_process";
|
|
17
17
|
import readline from "node:readline";
|
|
18
18
|
//#region src/memory/qmd-process.ts
|
|
@@ -336,10 +336,10 @@ var QmdMemoryManager = class QmdMemoryManager {
|
|
|
336
336
|
async initialize(mode) {
|
|
337
337
|
this.bootstrapCollections();
|
|
338
338
|
if (mode === "status") return;
|
|
339
|
-
await
|
|
340
|
-
await
|
|
341
|
-
await
|
|
342
|
-
if (this.sessionExporter) await
|
|
339
|
+
await fsPromises.mkdir(this.xdgConfigHome, { recursive: true });
|
|
340
|
+
await fsPromises.mkdir(this.xdgCacheHome, { recursive: true });
|
|
341
|
+
await fsPromises.mkdir(path.dirname(this.indexPath), { recursive: true });
|
|
342
|
+
if (this.sessionExporter) await fsPromises.mkdir(this.sessionExporter.dir, { recursive: true });
|
|
343
343
|
await this.symlinkSharedModels();
|
|
344
344
|
await this.ensureCollections();
|
|
345
345
|
if (this.qmd.update.onBoot) {
|
|
@@ -495,7 +495,7 @@ var QmdMemoryManager = class QmdMemoryManager {
|
|
|
495
495
|
}
|
|
496
496
|
async ensureCollectionPath(collection) {
|
|
497
497
|
if (!this.isDirectoryGlobPattern(collection.pattern)) return;
|
|
498
|
-
await
|
|
498
|
+
await fsPromises.mkdir(collection.path, { recursive: true });
|
|
499
499
|
}
|
|
500
500
|
isDirectoryGlobPattern(pattern) {
|
|
501
501
|
return pattern.includes("*") || pattern.includes("?") || pattern.includes("[");
|
|
@@ -957,19 +957,19 @@ var QmdMemoryManager = class QmdMemoryManager {
|
|
|
957
957
|
const defaultModelsDir = path.join(defaultCacheHome, "qmd", "models");
|
|
958
958
|
const targetModelsDir = path.join(this.xdgCacheHome, "qmd", "models");
|
|
959
959
|
try {
|
|
960
|
-
if (!(await
|
|
960
|
+
if (!(await fsPromises.stat(defaultModelsDir).catch((err) => {
|
|
961
961
|
if (err.code === "ENOENT") return null;
|
|
962
962
|
throw err;
|
|
963
963
|
}))?.isDirectory()) return;
|
|
964
964
|
try {
|
|
965
|
-
await
|
|
965
|
+
await fsPromises.lstat(targetModelsDir);
|
|
966
966
|
return;
|
|
967
967
|
} catch {}
|
|
968
968
|
try {
|
|
969
|
-
await
|
|
969
|
+
await fsPromises.symlink(defaultModelsDir, targetModelsDir, "dir");
|
|
970
970
|
} catch (symlinkErr) {
|
|
971
971
|
const code = symlinkErr.code;
|
|
972
|
-
if (process.platform === "win32" && (code === "EPERM" || code === "ENOTSUP")) await
|
|
972
|
+
if (process.platform === "win32" && (code === "EPERM" || code === "ENOTSUP")) await fsPromises.symlink(defaultModelsDir, targetModelsDir, "junction");
|
|
973
973
|
else throw symlinkErr;
|
|
974
974
|
}
|
|
975
975
|
log.debug(`symlinked qmd models: ${defaultModelsDir} → ${targetModelsDir}`);
|
|
@@ -1075,7 +1075,7 @@ var QmdMemoryManager = class QmdMemoryManager {
|
|
|
1075
1075
|
const count = Math.max(1, lines ?? Number.POSITIVE_INFINITY);
|
|
1076
1076
|
let handle;
|
|
1077
1077
|
try {
|
|
1078
|
-
handle = await
|
|
1078
|
+
handle = await fsPromises.open(absPath);
|
|
1079
1079
|
} catch (err) {
|
|
1080
1080
|
if (isFileMissingError(err)) return { missing: true };
|
|
1081
1081
|
throw err;
|
|
@@ -1107,7 +1107,7 @@ var QmdMemoryManager = class QmdMemoryManager {
|
|
|
1107
1107
|
try {
|
|
1108
1108
|
return {
|
|
1109
1109
|
missing: false,
|
|
1110
|
-
text: await
|
|
1110
|
+
text: await fsPromises.readFile(absPath, "utf-8")
|
|
1111
1111
|
};
|
|
1112
1112
|
} catch (err) {
|
|
1113
1113
|
if (isFileMissingError(err)) return { missing: true };
|
|
@@ -1124,7 +1124,7 @@ var QmdMemoryManager = class QmdMemoryManager {
|
|
|
1124
1124
|
async exportSessions() {
|
|
1125
1125
|
if (!this.sessionExporter) return;
|
|
1126
1126
|
const exportDir = this.sessionExporter.dir;
|
|
1127
|
-
await
|
|
1127
|
+
await fsPromises.mkdir(exportDir, { recursive: true });
|
|
1128
1128
|
const files = await listSessionFilesForAgent(this.agentId);
|
|
1129
1129
|
const keep = /* @__PURE__ */ new Set();
|
|
1130
1130
|
const tracked = /* @__PURE__ */ new Set();
|
|
@@ -1150,11 +1150,11 @@ var QmdMemoryManager = class QmdMemoryManager {
|
|
|
1150
1150
|
});
|
|
1151
1151
|
keep.add(target);
|
|
1152
1152
|
}
|
|
1153
|
-
const exported = await
|
|
1153
|
+
const exported = await fsPromises.readdir(exportDir).catch(() => []);
|
|
1154
1154
|
for (const name of exported) {
|
|
1155
1155
|
if (!name.endsWith(".md")) continue;
|
|
1156
1156
|
const full = path.join(exportDir, name);
|
|
1157
|
-
if (!keep.has(full)) await
|
|
1157
|
+
if (!keep.has(full)) await fsPromises.rm(full, { force: true });
|
|
1158
1158
|
}
|
|
1159
1159
|
for (const [sessionFile, state] of this.exportedSessionState) if (!tracked.has(sessionFile) || !state.target.startsWith(exportDir + path.sep)) this.exportedSessionState.delete(sessionFile);
|
|
1160
1160
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { u as resolveGatewayPort } from "./paths-tuenh9TL.js";
|
|
2
2
|
import { A as theme, p as defaultRuntime } from "./subsystem-G54saDcg.js";
|
|
3
3
|
import "./utils-B8zCe27d.js";
|
|
4
|
-
import { $ as resolveCommandSecretRefsViaGateway, A_ as isRfc1918Ipv4Address, Ah as resolveRequiredConfiguredSecretRefInputString, Hh as readGatewayTokenEnv, O_ as isCarrierGradeNatIpv4Address, Vh as readGatewayPasswordEnv, Z as getQrRemoteCommandSecretTargetIds, d_ as loadConfig, jh as assertExplicitGatewayAuthModeWhenBothConfigured } from "./reply-
|
|
5
|
-
import "./agent-scope-
|
|
6
|
-
import "./openclaw-root-
|
|
4
|
+
import { $ as resolveCommandSecretRefsViaGateway, A_ as isRfc1918Ipv4Address, Ah as resolveRequiredConfiguredSecretRefInputString, Hh as readGatewayTokenEnv, O_ as isCarrierGradeNatIpv4Address, Vh as readGatewayPasswordEnv, Z as getQrRemoteCommandSecretTargetIds, d_ as loadConfig, jh as assertExplicitGatewayAuthModeWhenBothConfigured } from "./reply-gX1XTS9Y.js";
|
|
5
|
+
import "./agent-scope-sd1-3XH0.js";
|
|
6
|
+
import "./openclaw-root-dlCz9toZ.js";
|
|
7
7
|
import "./logger-BohkHL0S.js";
|
|
8
8
|
import { t as runCommandWithTimeout } from "./exec-CNtAq7Md.js";
|
|
9
9
|
import { a as hasConfiguredSecretInput, d as resolveSecretInputRef, l as normalizeSecretInputString } from "./types.secrets-d7ZFrG7U.js";
|
|
@@ -12,23 +12,23 @@ import "./boolean-B938tROv.js";
|
|
|
12
12
|
import "./env-CQxWwTMn.js";
|
|
13
13
|
import "./env-overrides-BYyMsIvB.js";
|
|
14
14
|
import "./registry-aHEgjCIQ.js";
|
|
15
|
-
import "./skills-
|
|
15
|
+
import "./skills-vhlUaliH.js";
|
|
16
16
|
import "./frontmatter-BngyYhS0.js";
|
|
17
|
-
import "./plugins-
|
|
18
|
-
import "./query-expansion-
|
|
17
|
+
import "./plugins-BVbKGpQJ.js";
|
|
18
|
+
import "./query-expansion-AnOnkIqf.js";
|
|
19
19
|
import "./redact-owRpqMhM.js";
|
|
20
|
-
import "./path-alias-guards-
|
|
21
|
-
import "./fetch-
|
|
20
|
+
import "./path-alias-guards-B6owPyQX.js";
|
|
21
|
+
import "./fetch-ggeyBJ4j.js";
|
|
22
22
|
import "./errors-DNKaAVHN.js";
|
|
23
|
-
import "./cmd-argv-
|
|
24
|
-
import "./restart-stale-pids-
|
|
23
|
+
import "./cmd-argv-Dz5qUtqp.js";
|
|
24
|
+
import "./restart-stale-pids-B6E7QavX.js";
|
|
25
25
|
import "./delivery-queue-B7zSt4zY.js";
|
|
26
26
|
import "./paths-CfmKJcO5.js";
|
|
27
27
|
import "./session-cost-usage-C2jrTKxW.js";
|
|
28
28
|
import "./prompt-style-DlcWUCNR.js";
|
|
29
29
|
import { t as formatDocsLink } from "./links-BpKafJs4.js";
|
|
30
30
|
import "./cli-utils-BSURvrmb.js";
|
|
31
|
-
import { t as issueDeviceBootstrapToken } from "./device-bootstrap-
|
|
31
|
+
import { t as issueDeviceBootstrapToken } from "./device-bootstrap-oW1bwgs7.js";
|
|
32
32
|
import os from "node:os";
|
|
33
33
|
import qrcode from "qrcode-terminal";
|
|
34
34
|
//#region src/shared/gateway-bind-url.ts
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { _ as expandHomePrefix } from "./paths-tuenh9TL.js";
|
|
2
2
|
import { t as createSubsystemLogger } from "./subsystem-G54saDcg.js";
|
|
3
|
-
import { d as hasNodeErrorCode, f as isNotFoundPathError, m as isSymlinkOpenError, p as isPathInside, s as sameFileIdentity } from "./openclaw-root-
|
|
3
|
+
import { d as hasNodeErrorCode, f as isNotFoundPathError, m as isSymlinkOpenError, p as isPathInside, s as sameFileIdentity } from "./openclaw-root-dlCz9toZ.js";
|
|
4
4
|
import { i as logWarn } from "./logger-BohkHL0S.js";
|
|
5
5
|
import { n as redactSensitiveText } from "./redact-owRpqMhM.js";
|
|
6
|
-
import { n as assertNoPathAliasEscape } from "./path-alias-guards-
|
|
6
|
+
import { n as assertNoPathAliasEscape } from "./path-alias-guards-B6owPyQX.js";
|
|
7
7
|
import { c as resolveSessionTranscriptsDirForAgent } from "./paths-CfmKJcO5.js";
|
|
8
8
|
import { createRequire } from "node:module";
|
|
9
9
|
import fs, { constants, readFileSync, statSync } from "node:fs";
|
|
10
10
|
import os from "node:os";
|
|
11
11
|
import path from "node:path";
|
|
12
|
-
import
|
|
12
|
+
import fsPromises from "node:fs/promises";
|
|
13
13
|
import { spawn } from "node:child_process";
|
|
14
14
|
import crypto, { randomUUID } from "node:crypto";
|
|
15
15
|
import { once } from "node:events";
|
|
@@ -210,24 +210,24 @@ async function runPinnedWriteHelper(params) {
|
|
|
210
210
|
}
|
|
211
211
|
async function runPinnedWriteFallback(params) {
|
|
212
212
|
const parentPath = params.relativeParentPath ? path.join(params.rootPath, ...params.relativeParentPath.split("/")) : params.rootPath;
|
|
213
|
-
if (params.mkdir) await
|
|
213
|
+
if (params.mkdir) await fsPromises.mkdir(parentPath, { recursive: true });
|
|
214
214
|
const targetPath = path.join(parentPath, params.basename);
|
|
215
215
|
const tempPath = path.join(parentPath, `.${params.basename}.fallback.tmp`);
|
|
216
|
-
if (params.input.kind === "buffer") if (typeof params.input.data === "string") await
|
|
216
|
+
if (params.input.kind === "buffer") if (typeof params.input.data === "string") await fsPromises.writeFile(tempPath, params.input.data, {
|
|
217
217
|
encoding: params.input.encoding ?? "utf8",
|
|
218
218
|
mode: params.mode
|
|
219
219
|
});
|
|
220
|
-
else await
|
|
220
|
+
else await fsPromises.writeFile(tempPath, params.input.data, { mode: params.mode });
|
|
221
221
|
else {
|
|
222
|
-
const handle = await
|
|
222
|
+
const handle = await fsPromises.open(tempPath, "w", params.mode);
|
|
223
223
|
try {
|
|
224
224
|
await pipeline(params.input.stream, handle.createWriteStream());
|
|
225
225
|
} finally {
|
|
226
226
|
await handle.close().catch(() => {});
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
|
-
await
|
|
230
|
-
const stat = await
|
|
229
|
+
await fsPromises.rename(tempPath, targetPath);
|
|
230
|
+
const stat = await fsPromises.stat(targetPath);
|
|
231
231
|
return {
|
|
232
232
|
dev: stat.dev,
|
|
233
233
|
ino: stat.ino
|
|
@@ -252,19 +252,19 @@ const ensureTrailingSep = (value) => value.endsWith(path.sep) ? value : value +
|
|
|
252
252
|
async function expandRelativePathWithHome(relativePath) {
|
|
253
253
|
let home = process.env.HOME || process.env.USERPROFILE || os.homedir();
|
|
254
254
|
try {
|
|
255
|
-
home = await
|
|
255
|
+
home = await fsPromises.realpath(home);
|
|
256
256
|
} catch {}
|
|
257
257
|
return expandHomePrefix(relativePath, { home });
|
|
258
258
|
}
|
|
259
259
|
async function openVerifiedLocalFile(filePath, options) {
|
|
260
260
|
try {
|
|
261
|
-
if ((await
|
|
261
|
+
if ((await fsPromises.lstat(filePath)).isDirectory()) throw new SafeOpenError("not-file", "not a file");
|
|
262
262
|
} catch (err) {
|
|
263
263
|
if (err instanceof SafeOpenError) throw err;
|
|
264
264
|
}
|
|
265
265
|
let handle;
|
|
266
266
|
try {
|
|
267
|
-
handle = await
|
|
267
|
+
handle = await fsPromises.open(filePath, OPEN_READ_FLAGS);
|
|
268
268
|
} catch (err) {
|
|
269
269
|
if (isNotFoundPathError(err)) throw new SafeOpenError("not-found", "file not found");
|
|
270
270
|
if (isSymlinkOpenError(err)) throw new SafeOpenError("symlink", "symlink open blocked", { cause: err });
|
|
@@ -272,13 +272,13 @@ async function openVerifiedLocalFile(filePath, options) {
|
|
|
272
272
|
throw err;
|
|
273
273
|
}
|
|
274
274
|
try {
|
|
275
|
-
const [stat, lstat] = await Promise.all([handle.stat(),
|
|
275
|
+
const [stat, lstat] = await Promise.all([handle.stat(), fsPromises.lstat(filePath)]);
|
|
276
276
|
if (lstat.isSymbolicLink()) throw new SafeOpenError("symlink", "symlink not allowed");
|
|
277
277
|
if (!stat.isFile()) throw new SafeOpenError("not-file", "not a file");
|
|
278
278
|
if (options?.rejectHardlinks && stat.nlink > 1) throw new SafeOpenError("invalid-path", "hardlinked path not allowed");
|
|
279
279
|
if (!sameFileIdentity(stat, lstat)) throw new SafeOpenError("path-mismatch", "path changed during read");
|
|
280
|
-
const realPath = await
|
|
281
|
-
const realStat = await
|
|
280
|
+
const realPath = await fsPromises.realpath(filePath);
|
|
281
|
+
const realStat = await fsPromises.stat(realPath);
|
|
282
282
|
if (options?.rejectHardlinks && realStat.nlink > 1) throw new SafeOpenError("invalid-path", "hardlinked path not allowed");
|
|
283
283
|
if (!sameFileIdentity(stat, realStat)) throw new SafeOpenError("path-mismatch", "path mismatch");
|
|
284
284
|
return {
|
|
@@ -296,7 +296,7 @@ async function openVerifiedLocalFile(filePath, options) {
|
|
|
296
296
|
async function resolvePathWithinRoot(params) {
|
|
297
297
|
let rootReal;
|
|
298
298
|
try {
|
|
299
|
-
rootReal = await
|
|
299
|
+
rootReal = await fsPromises.realpath(params.rootDir);
|
|
300
300
|
} catch (err) {
|
|
301
301
|
if (isNotFoundPathError(err)) throw new SafeOpenError("not-found", "root dir not found");
|
|
302
302
|
throw err;
|
|
@@ -397,7 +397,7 @@ function buildAtomicWriteTempPath(targetPath) {
|
|
|
397
397
|
return path.join(dir, `.${base}.${process.pid}.${randomUUID()}.tmp`);
|
|
398
398
|
}
|
|
399
399
|
async function writeTempFileForAtomicReplace(params) {
|
|
400
|
-
const tempHandle = await
|
|
400
|
+
const tempHandle = await fsPromises.open(params.tempPath, OPEN_WRITE_CREATE_FLAGS, params.mode);
|
|
401
401
|
try {
|
|
402
402
|
if (typeof params.data === "string") await tempHandle.writeFile(params.data, params.encoding ?? "utf8");
|
|
403
403
|
else await tempHandle.writeFile(params.data);
|
|
@@ -407,7 +407,7 @@ async function writeTempFileForAtomicReplace(params) {
|
|
|
407
407
|
}
|
|
408
408
|
}
|
|
409
409
|
async function verifyAtomicWriteResult(params) {
|
|
410
|
-
const rootWithSep = ensureTrailingSep(await
|
|
410
|
+
const rootWithSep = ensureTrailingSep(await fsPromises.realpath(params.rootDir));
|
|
411
411
|
const opened = await openVerifiedLocalFile(params.targetPath, { rejectHardlinks: true });
|
|
412
412
|
try {
|
|
413
413
|
if (!sameFileIdentity(opened.stat, params.expectedIdentity)) throw new SafeOpenError("path-mismatch", "path changed during write");
|
|
@@ -418,13 +418,13 @@ async function verifyAtomicWriteResult(params) {
|
|
|
418
418
|
}
|
|
419
419
|
async function resolveOpenedFileRealPathForHandle(handle, ioPath) {
|
|
420
420
|
try {
|
|
421
|
-
return await
|
|
421
|
+
return await fsPromises.realpath(ioPath);
|
|
422
422
|
} catch (err) {
|
|
423
423
|
if (!isNotFoundPathError(err)) throw err;
|
|
424
424
|
}
|
|
425
425
|
const fdCandidates = process.platform === "linux" ? [`/proc/self/fd/${handle.fd}`, `/dev/fd/${handle.fd}`] : process.platform === "win32" ? [] : [`/dev/fd/${handle.fd}`];
|
|
426
426
|
for (const fdPath of fdCandidates) try {
|
|
427
|
-
return await
|
|
427
|
+
return await fsPromises.realpath(fdPath);
|
|
428
428
|
} catch {}
|
|
429
429
|
throw new SafeOpenError("path-mismatch", "unable to resolve opened file path");
|
|
430
430
|
}
|
|
@@ -439,10 +439,10 @@ async function openWritableFileWithinRoot(params) {
|
|
|
439
439
|
} catch (err) {
|
|
440
440
|
throw new SafeOpenError("invalid-path", "path alias escape blocked", { cause: err });
|
|
441
441
|
}
|
|
442
|
-
if (params.mkdir !== false) await
|
|
442
|
+
if (params.mkdir !== false) await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
|
|
443
443
|
let ioPath = resolved;
|
|
444
444
|
try {
|
|
445
|
-
const resolvedRealPath = await
|
|
445
|
+
const resolvedRealPath = await fsPromises.realpath(resolved);
|
|
446
446
|
if (!isPathInside(rootWithSep, resolvedRealPath)) throw new SafeOpenError("outside-workspace", "file is outside workspace root");
|
|
447
447
|
ioPath = resolvedRealPath;
|
|
448
448
|
} catch (err) {
|
|
@@ -456,10 +456,10 @@ async function openWritableFileWithinRoot(params) {
|
|
|
456
456
|
const createFlags = params.append ? OPEN_APPEND_CREATE_FLAGS : OPEN_WRITE_CREATE_FLAGS;
|
|
457
457
|
try {
|
|
458
458
|
try {
|
|
459
|
-
handle = await
|
|
459
|
+
handle = await fsPromises.open(ioPath, existingFlags, fileMode);
|
|
460
460
|
} catch (err) {
|
|
461
461
|
if (!isNotFoundPathError(err)) throw err;
|
|
462
|
-
handle = await
|
|
462
|
+
handle = await fsPromises.open(ioPath, createFlags, fileMode);
|
|
463
463
|
createdForWrite = true;
|
|
464
464
|
}
|
|
465
465
|
} catch (err) {
|
|
@@ -473,7 +473,7 @@ async function openWritableFileWithinRoot(params) {
|
|
|
473
473
|
if (!stat.isFile()) throw new SafeOpenError("invalid-path", "path is not a regular file under root");
|
|
474
474
|
if (stat.nlink > 1) throw new SafeOpenError("invalid-path", "hardlinked path not allowed");
|
|
475
475
|
try {
|
|
476
|
-
const lstat = await
|
|
476
|
+
const lstat = await fsPromises.lstat(ioPath);
|
|
477
477
|
if (lstat.isSymbolicLink() || !lstat.isFile()) throw new SafeOpenError("invalid-path", "path is not a regular file under root");
|
|
478
478
|
if (!sameFileIdentity(stat, lstat)) throw new SafeOpenError("path-mismatch", "path changed during write");
|
|
479
479
|
} catch (err) {
|
|
@@ -481,7 +481,7 @@ async function openWritableFileWithinRoot(params) {
|
|
|
481
481
|
}
|
|
482
482
|
const realPath = await resolveOpenedFileRealPathForHandle(handle, ioPath);
|
|
483
483
|
openedRealPath = realPath;
|
|
484
|
-
const realStat = await
|
|
484
|
+
const realStat = await fsPromises.stat(realPath);
|
|
485
485
|
if (!sameFileIdentity(stat, realStat)) throw new SafeOpenError("path-mismatch", "path mismatch");
|
|
486
486
|
if (realStat.nlink > 1) throw new SafeOpenError("invalid-path", "hardlinked path not allowed");
|
|
487
487
|
if (!isPathInside(rootWithSep, realPath)) throw new SafeOpenError("outside-workspace", "file is outside workspace root");
|
|
@@ -496,7 +496,7 @@ async function openWritableFileWithinRoot(params) {
|
|
|
496
496
|
const cleanupCreatedPath = createdForWrite && err instanceof SafeOpenError;
|
|
497
497
|
const cleanupPath = openedRealPath ?? ioPath;
|
|
498
498
|
await handle.close().catch(() => {});
|
|
499
|
-
if (cleanupCreatedPath) await
|
|
499
|
+
if (cleanupCreatedPath) await fsPromises.rm(cleanupPath, { force: true }).catch(() => {});
|
|
500
500
|
throw err;
|
|
501
501
|
}
|
|
502
502
|
}
|
|
@@ -674,7 +674,7 @@ async function writeFileWithinRootLegacy(params) {
|
|
|
674
674
|
encoding: params.encoding,
|
|
675
675
|
mode: targetMode || 384
|
|
676
676
|
});
|
|
677
|
-
await
|
|
677
|
+
await fsPromises.rename(tempPath, destinationPath);
|
|
678
678
|
tempPath = null;
|
|
679
679
|
try {
|
|
680
680
|
await verifyAtomicWriteResult({
|
|
@@ -687,7 +687,7 @@ async function writeFileWithinRootLegacy(params) {
|
|
|
687
687
|
throw err;
|
|
688
688
|
}
|
|
689
689
|
} finally {
|
|
690
|
-
if (tempPath) await
|
|
690
|
+
if (tempPath) await fsPromises.rm(tempPath, { force: true }).catch(() => {});
|
|
691
691
|
}
|
|
692
692
|
}
|
|
693
693
|
async function copyFileWithinRootLegacy(params, source) {
|
|
@@ -709,7 +709,7 @@ async function copyFileWithinRootLegacy(params, source) {
|
|
|
709
709
|
await target.handle.close().catch(() => {});
|
|
710
710
|
targetClosedByUs = true;
|
|
711
711
|
tempPath = buildAtomicWriteTempPath(destinationPath);
|
|
712
|
-
tempHandle = await
|
|
712
|
+
tempHandle = await fsPromises.open(tempPath, OPEN_WRITE_CREATE_FLAGS, targetMode || 384);
|
|
713
713
|
const sourceStream = source.handle.createReadStream();
|
|
714
714
|
const targetStream = tempHandle.createWriteStream();
|
|
715
715
|
sourceStream.once("close", () => {
|
|
@@ -719,13 +719,13 @@ async function copyFileWithinRootLegacy(params, source) {
|
|
|
719
719
|
tempClosedByStream = true;
|
|
720
720
|
});
|
|
721
721
|
await import("node:stream/promises").then(({ pipeline }) => pipeline(sourceStream, targetStream));
|
|
722
|
-
const writtenStat = await
|
|
722
|
+
const writtenStat = await fsPromises.stat(tempPath);
|
|
723
723
|
if (!tempClosedByStream) {
|
|
724
724
|
await tempHandle.close().catch(() => {});
|
|
725
725
|
tempClosedByStream = true;
|
|
726
726
|
}
|
|
727
727
|
tempHandle = null;
|
|
728
|
-
await
|
|
728
|
+
await fsPromises.rename(tempPath, destinationPath);
|
|
729
729
|
tempPath = null;
|
|
730
730
|
try {
|
|
731
731
|
await verifyAtomicWriteResult({
|
|
@@ -738,10 +738,10 @@ async function copyFileWithinRootLegacy(params, source) {
|
|
|
738
738
|
throw err;
|
|
739
739
|
}
|
|
740
740
|
} catch (err) {
|
|
741
|
-
if (target?.createdForWrite) await
|
|
741
|
+
if (target?.createdForWrite) await fsPromises.rm(target.openedRealPath, { force: true }).catch(() => {});
|
|
742
742
|
throw err;
|
|
743
743
|
} finally {
|
|
744
|
-
if (tempPath) await
|
|
744
|
+
if (tempPath) await fsPromises.rm(tempPath, { force: true }).catch(() => {});
|
|
745
745
|
if (!sourceClosedByStream) await source.handle.close().catch(() => {});
|
|
746
746
|
if (tempHandle && !tempClosedByStream) await tempHandle.close().catch(() => {});
|
|
747
747
|
if (target && !targetClosedByUs) await target.handle.close().catch(() => {});
|
|
@@ -1122,7 +1122,7 @@ function isFileMissingError(err) {
|
|
|
1122
1122
|
async function statRegularFile(absPath) {
|
|
1123
1123
|
let stat;
|
|
1124
1124
|
try {
|
|
1125
|
-
stat = await
|
|
1125
|
+
stat = await fsPromises.lstat(absPath);
|
|
1126
1126
|
} catch (err) {
|
|
1127
1127
|
if (isFileMissingError(err)) return { missing: true };
|
|
1128
1128
|
throw err;
|
|
@@ -1221,7 +1221,7 @@ function isAllowedMemoryFilePath(filePath, multimodal) {
|
|
|
1221
1221
|
return classifyMemoryMultimodalPath(filePath, multimodal ?? DISABLED_MULTIMODAL_SETTINGS) !== null;
|
|
1222
1222
|
}
|
|
1223
1223
|
async function walkDir(dir, files, multimodal) {
|
|
1224
|
-
const entries = await
|
|
1224
|
+
const entries = await fsPromises.readdir(dir, { withFileTypes: true });
|
|
1225
1225
|
for (const entry of entries) {
|
|
1226
1226
|
const full = path.join(dir, entry.name);
|
|
1227
1227
|
if (entry.isSymbolicLink()) continue;
|
|
@@ -1241,7 +1241,7 @@ async function listMemoryFiles(workspaceDir, extraPaths, multimodal) {
|
|
|
1241
1241
|
const memoryDir = path.join(workspaceDir, "memory");
|
|
1242
1242
|
const addMarkdownFile = async (absPath) => {
|
|
1243
1243
|
try {
|
|
1244
|
-
const stat = await
|
|
1244
|
+
const stat = await fsPromises.lstat(absPath);
|
|
1245
1245
|
if (stat.isSymbolicLink() || !stat.isFile()) return;
|
|
1246
1246
|
if (!absPath.endsWith(".md")) return;
|
|
1247
1247
|
result.push(absPath);
|
|
@@ -1250,12 +1250,12 @@ async function listMemoryFiles(workspaceDir, extraPaths, multimodal) {
|
|
|
1250
1250
|
await addMarkdownFile(memoryFile);
|
|
1251
1251
|
await addMarkdownFile(altMemoryFile);
|
|
1252
1252
|
try {
|
|
1253
|
-
const dirStat = await
|
|
1253
|
+
const dirStat = await fsPromises.lstat(memoryDir);
|
|
1254
1254
|
if (!dirStat.isSymbolicLink() && dirStat.isDirectory()) await walkDir(memoryDir, result);
|
|
1255
1255
|
} catch {}
|
|
1256
1256
|
const normalizedExtraPaths = normalizeExtraMemoryPaths(workspaceDir, extraPaths);
|
|
1257
1257
|
if (normalizedExtraPaths.length > 0) for (const inputPath of normalizedExtraPaths) try {
|
|
1258
|
-
const stat = await
|
|
1258
|
+
const stat = await fsPromises.lstat(inputPath);
|
|
1259
1259
|
if (stat.isSymbolicLink()) continue;
|
|
1260
1260
|
if (stat.isDirectory()) {
|
|
1261
1261
|
await walkDir(inputPath, result, multimodal);
|
|
@@ -1269,7 +1269,7 @@ async function listMemoryFiles(workspaceDir, extraPaths, multimodal) {
|
|
|
1269
1269
|
for (const entry of result) {
|
|
1270
1270
|
let key = entry;
|
|
1271
1271
|
try {
|
|
1272
|
-
key = await
|
|
1272
|
+
key = await fsPromises.realpath(entry);
|
|
1273
1273
|
} catch {}
|
|
1274
1274
|
if (seen.has(key)) continue;
|
|
1275
1275
|
seen.add(key);
|
|
@@ -1283,7 +1283,7 @@ function hashText(value) {
|
|
|
1283
1283
|
async function buildFileEntry(absPath, workspaceDir, multimodal) {
|
|
1284
1284
|
let stat;
|
|
1285
1285
|
try {
|
|
1286
|
-
stat = await
|
|
1286
|
+
stat = await fsPromises.stat(absPath);
|
|
1287
1287
|
} catch (err) {
|
|
1288
1288
|
if (isFileMissingError(err)) return null;
|
|
1289
1289
|
throw err;
|
|
@@ -1295,7 +1295,7 @@ async function buildFileEntry(absPath, workspaceDir, multimodal) {
|
|
|
1295
1295
|
if (stat.size > multimodalSettings.maxFileBytes) return null;
|
|
1296
1296
|
let buffer;
|
|
1297
1297
|
try {
|
|
1298
|
-
buffer = await
|
|
1298
|
+
buffer = await fsPromises.readFile(absPath);
|
|
1299
1299
|
} catch (err) {
|
|
1300
1300
|
if (isFileMissingError(err)) return null;
|
|
1301
1301
|
throw err;
|
|
@@ -1328,7 +1328,7 @@ async function buildFileEntry(absPath, workspaceDir, multimodal) {
|
|
|
1328
1328
|
}
|
|
1329
1329
|
let content;
|
|
1330
1330
|
try {
|
|
1331
|
-
content = await
|
|
1331
|
+
content = await fsPromises.readFile(absPath, "utf-8");
|
|
1332
1332
|
} catch (err) {
|
|
1333
1333
|
if (isFileMissingError(err)) return null;
|
|
1334
1334
|
throw err;
|
|
@@ -1347,7 +1347,7 @@ async function loadMultimodalEmbeddingInput(entry) {
|
|
|
1347
1347
|
if (entry.kind !== "multimodal" || !entry.contentText || !entry.mimeType) return null;
|
|
1348
1348
|
let stat;
|
|
1349
1349
|
try {
|
|
1350
|
-
stat = await
|
|
1350
|
+
stat = await fsPromises.stat(entry.absPath);
|
|
1351
1351
|
} catch (err) {
|
|
1352
1352
|
if (isFileMissingError(err)) return null;
|
|
1353
1353
|
throw err;
|
|
@@ -1355,7 +1355,7 @@ async function loadMultimodalEmbeddingInput(entry) {
|
|
|
1355
1355
|
if (stat.size !== entry.size) return null;
|
|
1356
1356
|
let buffer;
|
|
1357
1357
|
try {
|
|
1358
|
-
buffer = await
|
|
1358
|
+
buffer = await fsPromises.readFile(entry.absPath);
|
|
1359
1359
|
} catch (err) {
|
|
1360
1360
|
if (isFileMissingError(err)) return null;
|
|
1361
1361
|
throw err;
|
|
@@ -1508,7 +1508,7 @@ const log = createSubsystemLogger("memory");
|
|
|
1508
1508
|
async function listSessionFilesForAgent(agentId) {
|
|
1509
1509
|
const dir = resolveSessionTranscriptsDirForAgent(agentId);
|
|
1510
1510
|
try {
|
|
1511
|
-
return (await
|
|
1511
|
+
return (await fsPromises.readdir(dir, { withFileTypes: true })).filter((entry) => entry.isFile()).map((entry) => entry.name).filter((name) => name.endsWith(".jsonl")).map((name) => path.join(dir, name));
|
|
1512
1512
|
} catch {
|
|
1513
1513
|
return [];
|
|
1514
1514
|
}
|
|
@@ -1538,8 +1538,8 @@ function extractSessionText(content) {
|
|
|
1538
1538
|
}
|
|
1539
1539
|
async function buildSessionEntry(absPath) {
|
|
1540
1540
|
try {
|
|
1541
|
-
const stat = await
|
|
1542
|
-
const lines = (await
|
|
1541
|
+
const stat = await fsPromises.stat(absPath);
|
|
1542
|
+
const lines = (await fsPromises.readFile(absPath, "utf-8")).split("\n");
|
|
1543
1543
|
const collected = [];
|
|
1544
1544
|
const lineMap = [];
|
|
1545
1545
|
for (let jsonlIdx = 0; jsonlIdx < lines.length; jsonlIdx++) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as createSubsystemLogger } from "./subsystem-G54saDcg.js";
|
|
2
|
-
import { Bu as DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, S_ as sensitive, Vu as DISCORD_DEFAULT_LISTENER_TIMEOUT_MS } from "./reply-
|
|
2
|
+
import { Bu as DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS, S_ as sensitive, Vu as DISCORD_DEFAULT_LISTENER_TIMEOUT_MS } from "./reply-gX1XTS9Y.js";
|
|
3
3
|
import JSON5 from "json5";
|
|
4
4
|
import { isDeepStrictEqual } from "node:util";
|
|
5
5
|
import { z } from "zod";
|