wednesdayai 0.4.12-dev.733 → 0.4.12-dev.734
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-Ciw9I0uZ.js → acp-cli-u6BEMShe.js} +15 -15
- package/dist/{agent-scope-CVpiV9_p.js → agent-scope-B5BtLhIC.js} +2 -2
- package/dist/{agent-scope-Isfe_TTc.js → agent-scope-C7A_L0Z6.js} +21 -21
- package/dist/{agent-turn-enqueue-Dm0JENbl.js → agent-turn-enqueue-oYjYy4W3.js} +6 -6
- package/dist/{agent-turn-recovery-adapter-OfuCod26.js → agent-turn-recovery-adapter-Ba_u8tsH.js} +3 -3
- package/dist/{agent-turn-runner-D9oWYU1F.js → agent-turn-runner-DJaul1fs.js} +5 -5
- package/dist/{agent-turn-runner-CHoOKwsD.js → agent-turn-runner-DN-XHX0T.js} +4 -4
- package/dist/{agent-turn-runner-BV_PeLdX.js → agent-turn-runner-iiGV_xDS.js} +6 -6
- package/dist/{agents.config-DDNucPjd.js → agents.config-YgM6ypSW.js} +3 -3
- package/dist/{api-B8kTLa-V.js → api-DTIIemyw.js} +1 -1
- package/dist/{api-key-rotation-C-jZ2g9h.js → api-key-rotation-DLl0JScq.js} +1 -1
- package/dist/{api-key-rotation-BhNw79Bu.js → api-key-rotation-Vhef3tyV.js} +1 -1
- package/dist/{artifacts-D7xTEspu.js → artifacts-CSUzSsVF.js} +1 -1
- package/dist/{audio-preflight-Cj5N8Fbp.js → audio-preflight-BWqiB-Gv.js} +38 -38
- package/dist/{audio-preflight-B0-wpy5i.js → audio-preflight-BfVCaStC.js} +5 -5
- package/dist/{audio-preflight-zbZPSZeC.js → audio-preflight-DmuNG6iD.js} +25 -25
- package/dist/{audio-transcription-runner-BTMTo0Oh.js → audio-transcription-runner-BddwFNQF.js} +26 -26
- package/dist/{audio-transcription-runner-DU-4s9T-.js → audio-transcription-runner-DV97sIzf.js} +1 -1
- package/dist/{audio-transcription-runner-DQOhmZXw.js → audio-transcription-runner-DskeI69N.js} +12 -12
- package/dist/{audit-Ch0W6MYl.js → audit-BdvUbSJW.js} +31 -31
- package/dist/{auth-RqerQcVN.js → auth-Bpsbop7P.js} +4 -4
- package/dist/{auth-choice-DwMUQqPs.js → auth-choice-C-PuOQwZ.js} +13 -13
- package/dist/{auth-choice-BYuFP7T_.js → auth-choice-Ci58poKa.js} +18 -18
- package/dist/{auth-choice.apply-helpers-BMb44QwW.js → auth-choice.apply-helpers-DOUrHdHL.js} +1 -1
- package/dist/{auth-token-D_jEtete.js → auth-token-CNieP0C6.js} +2 -2
- package/dist/{bonjour-discovery-g2GjlMwG.js → bonjour-discovery-DcI9gUqF.js} +3 -3
- package/dist/{browser-cli-Bz6AxM_A.js → browser-cli-B38yP_6r.js} +22 -22
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +56 -56
- package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
- package/dist/bundled/command-logger/handler.js +1 -1
- package/dist/bundled/session-journal/handler.js +56 -56
- package/dist/bundled/session-memory/handler.js +56 -56
- package/dist/{call-CCfms07q.js → call-DcUNQRRs.js} +12 -12
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-account-context-DNIQLMZJ.js → channel-account-context-BLrrF35q.js} +7 -7
- package/dist/{channel-activity-sPbGjc5e.js → channel-activity-D6C30I8U.js} +2 -2
- package/dist/{channel-activity-CYX6jkoL.js → channel-activity-umvXZN1Q.js} +2 -2
- package/dist/{channel-options-BveWV11S.js → channel-options-GalVDUUs.js} +4 -4
- package/dist/{channel-selection-BRkNQi3I.js → channel-selection-BhS12YOf.js} +1 -1
- package/dist/{channels-cli-DAGiS54d.js → channels-cli-DG8Z_thL.js} +122 -122
- package/dist/{channels-status-issues-1yAXMoby.js → channels-status-issues-C3WZ-FHq.js} +1 -1
- package/dist/{chat-content-C9leVKVS.js → chat-content-CpbqvcYj.js} +13 -13
- package/dist/{chat-content-CBi2BuMN.js → chat-content-DTi4qPWl.js} +3 -3
- package/dist/{chrome-C6EL_Azx.js → chrome-3_0KrCjl.js} +8 -8
- package/dist/{chrome-K_3gICG0.js → chrome-BmOe128y.js} +6 -6
- package/dist/{chrome-B1W66RLB.js → chrome-QHHEijm4.js} +12 -12
- package/dist/{chunk-v83cSD3K.js → chunk-Cft1Qryu.js} +3 -3
- package/dist/{chunk-DsOlQSkR.js → chunk-DjzPpjFE.js} +3 -3
- package/dist/{clack-prompter-E1c9la4n.js → clack-prompter-5Rt5HC77.js} +5 -5
- package/dist/clawbot-cli-B_eFyFig.js +36 -0
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/cli-Dgi81MlW.js +166 -0
- package/dist/{client-VFkIaJUE.js → client-CfK_daL3.js} +3 -3
- package/dist/{client-profiles-CofHU2-i.js → client-profiles-DXMSQ3LL.js} +2 -2
- package/dist/{clipboard-BFomxx0G.js → clipboard-CXNhYcRG.js} +1 -1
- package/dist/{command-queue-9omEZYIX.js → command-queue--qG4Wxve.js} +1 -1
- package/dist/{command-queue-Cz-yW8Fn.js → command-queue-BeqPo1FP.js} +1 -1
- package/dist/{command-queue-C6BVo5I0.js → command-queue-Bwh4Cjht.js} +1 -1
- package/dist/{command-secret-targets-DCV5FIY6.js → command-secret-targets-Gl-QK3RO.js} +4 -4
- package/dist/{commands-CTxKrS5w.js → commands-DpelJzCu.js} +1 -1
- package/dist/{commands-registry-DGtDGKmr.js → commands-registry-Ccpns1_9.js} +2 -2
- package/dist/{commands-registry-DISO8Rbf.js → commands-registry-DQp53oMc.js} +3 -3
- package/dist/{completion-cli-DFNOXLps.js → completion-cli-CdiynSEq.js} +15 -15
- package/dist/{config-cli-p03mh4YX.js → config-cli-p-8y2wLT.js} +13 -13
- package/dist/{config-guard-Dzau_M6-.js → config-guard-B07Pi5M4.js} +17 -17
- package/dist/{config-validation-xc_nQppc.js → config-validation-DWz89icD.js} +4 -4
- package/dist/{configure-DmydR0wt.js → configure-C103cYIE.js} +25 -25
- package/dist/{control-ui-assets-CX17hVrY.js → control-ui-assets-3-KmlKzl.js} +3 -3
- package/dist/{controller-Cf_Sh5y1.js → controller-CwG8Zp_n.js} +1 -1
- package/dist/{credentials-CpbaIISJ.js → credentials-gpmh64hA.js} +1 -1
- package/dist/{cron-cli-BvII3wJp.js → cron-cli-y-JG-HVt.js} +17 -17
- package/dist/{daemon-cli-BS4lzrlG.js → daemon-cli-ChjPuLhH.js} +19 -19
- package/dist/{daemon-install-BAolTW-k.js → daemon-install-Cs7LQnph.js} +11 -11
- package/dist/{daemon-install-helpers-BXatJyxv.js → daemon-install-helpers-6Xe4iL6g.js} +13 -13
- package/dist/{deliver-CtrRdP0I.js → deliver-Bm3KCC7N.js} +14 -14
- package/dist/{deliver-BilN6eHm.js → deliver-BmkcRFC9.js} +1 -1
- package/dist/{deliver-BeUjHsuQ.js → deliver-QPSbsYeP.js} +15 -15
- package/dist/{devices-cli-CtaHqDZx.js → devices-cli-ByoED8_c.js} +15 -15
- package/dist/{diagnostic-C3MkA2d5.js → diagnostic-CCR8brX6.js} +1 -1
- package/dist/{diagnostic-INswCh23.js → diagnostic-CGl139nm.js} +5 -5
- package/dist/{diagnostic-CkzxbMOl.js → diagnostic-Chf-opgf.js} +4 -4
- package/dist/{diagnostics-BL7MaHFG.js → diagnostics-feLr7_11.js} +5 -5
- package/dist/{directory-cli-DvgdYM7w.js → directory-cli-Dm6bdo-K.js} +14 -14
- package/dist/{dns-cli-D0Jjy9ct.js → dns-cli-BV3f81WF.js} +13 -13
- package/dist/{docs-cli-CFi2HDrN.js → docs-cli-CtYEOTf5.js} +12 -12
- package/dist/{doctor-completion-B1SsMlh-.js → doctor-completion-Bx6uvkY3.js} +3 -3
- package/dist/{doctor-config-flow-DU0u9ath.js → doctor-config-flow-CHpbeQ8M.js} +17 -17
- package/dist/{enable-BRot9Tbi.js → enable-CODu9xqV.js} +2 -2
- package/dist/{env-DwhxSLZz.js → env-uQrKrEGz.js} +1 -1
- package/dist/{exec-approvals-allowlist-CVeFyVcd.js → exec-approvals-allowlist-BxG5LK_B.js} +1 -1
- package/dist/{exec-approvals-cli-Bwc8M8YG.js → exec-approvals-cli-Cnn9uvon.js} +25 -25
- package/dist/{exec-approvals-BS3OjF4g.js → exec-approvals-sC6Vto0t.js} +2 -2
- package/dist/{exec-BNayx9Nm.js → exec-g-Nx0X6p.js} +2 -2
- package/dist/{exec-safe-bin-runtime-policy-OSqMfz70.js → exec-safe-bin-runtime-policy-Bd1hExM6.js} +2 -2
- package/dist/{extension-relay-auth-Dcu8wthB.js → extension-relay-auth-NxDK9Fke.js} +10 -10
- package/dist/extensionAPI.js +12 -12
- package/dist/{fetch-cEFmY5z9.js → fetch-fy8exuqj.js} +6 -6
- package/dist/{fetch-guard-EajwxXjX.js → fetch-guard-CfI8OeSj.js} +3 -3
- package/dist/{fetch-guard-CBYchbZq.js → fetch-guard-tWQjMK2l.js} +3 -3
- package/dist/{frontmatter-BxEA3xXS.js → frontmatter-AubDiZG0.js} +3 -3
- package/dist/{fs-safe-B7Enj5xC.js → fs-safe-Ckd0hSqX.js} +3 -3
- package/dist/{fs-safe-B3ZR2kik.js → fs-safe-LwswEc9h.js} +25 -25
- package/dist/{gateway-cli-D_-cQdWs.js → gateway-cli-D37cHpSz.js} +222 -222
- package/dist/{gateway-rpc-CQYm-HLi.js → gateway-rpc-CiALr93w.js} +3 -3
- package/dist/{gmail-setup-utils-hfaqpEZm.js → gmail-setup-utils-XnNYe7e4.js} +2 -2
- package/dist/{health-jv7pcI79.js → health-BovdETb-.js} +12 -12
- package/dist/{health-format-CT7biLM5.js → health-format-UGHgSjMo.js} +1 -1
- package/dist/{heartbeat-tick-CrLpacK5.js → heartbeat-tick-gDighXQe.js} +2 -2
- package/dist/{help-format-CLct84oR.js → help-format-RRPzsWkf.js} +1 -1
- package/dist/{helpers-DPLyPWvP.js → helpers-DGWfGS2H.js} +1 -1
- package/dist/{hooks-cli-B-xZu7If.js → hooks-cli-3CvgoXOf.js} +110 -110
- package/dist/{hooks-status-uQ6F_qa5.js → hooks-status-Bk4EXCkN.js} +2 -2
- package/dist/{image-ops-CbGvIbf3.js → image-ops-BM9FiJs0.js} +1 -1
- package/dist/{image-ops-CHN4z44F.js → image-ops-C0lTPxIN.js} +11 -11
- package/dist/{incident-install-Cfpzkmd6.js → incident-install-BU8QyJJi.js} +14 -14
- package/dist/index.js +109 -109
- package/dist/{inspect-BHcKD0Mh.js → inspect-CEi0vY67.js} +4 -4
- package/dist/{install-safe-path-C_UxxVRx.js → install-safe-path-Cv53fge9.js} +25 -25
- package/dist/{installs-DfXrCFr4.js → installs-BZ7QGLTH.js} +10 -10
- package/dist/{ipv4-pualJW3L.js → ipv4-6tmOAqee.js} +2 -2
- package/dist/{ir-BZC8jqmM.js → ir-BcCmcdpx.js} +8 -8
- package/dist/{ir-rvMyPCLn.js → ir-YDUZgbxp.js} +5 -5
- package/dist/{issue-format-CKVc879T.js → issue-format-CMvPuN7V.js} +1 -1
- package/dist/{legacy-names-CLlrMq8r.js → legacy-names-DnKoTzf4.js} +1 -1
- package/dist/{lifecycle-core-nH5DqDS2.js → lifecycle-core-hNAWQhZw.js} +9 -9
- package/dist/{links-DtYJaVFO.js → links-DA_gi3gE.js} +1 -1
- package/dist/{live-repair-CajZtMx4.js → live-repair-BvevhX8_.js} +13 -13
- package/dist/llm-slug-generator.js +56 -56
- package/dist/{local-roots-C0gTK4Bz.js → local-roots-7K5PLW70.js} +5 -5
- package/dist/{log-tail--H82JYgg.js → log-tail-FFb_BPrV.js} +7 -7
- package/dist/{logger-Bd6qOjzT.js → logger-BSEmTtz1.js} +2 -2
- package/dist/{logger-DNehzD_s.js → logger-uA4S-xj7.js} +1 -1
- package/dist/{logging-CoqZ22Bj.js → logging-2kovqtbn.js} +1 -1
- package/dist/{logs-cli-Cgvd5nIw.js → logs-cli-BT3Btt4i.js} +21 -21
- package/dist/{manager-yZu-7wGz.js → manager-CAhprKqm.js} +7 -7
- package/dist/{manager-DOXQa7gV.js → manager-CVY-YEjj.js} +18 -18
- package/dist/{manager-fEgy3Cc5.js → manager-CuWMoixZ.js} +10 -10
- package/dist/{markdown-tables-CxNf_QKN.js → markdown-tables-BIUAAmJj.js} +2 -2
- package/dist/{markdown-tables-Dr-mscCB.js → markdown-tables-BhZ9rtSx.js} +2 -2
- package/dist/{memory-cli-DactP3dr.js → memory-cli-Dw2sfKV7.js} +19 -19
- package/dist/{model-STLFfNgZ.js → model-DXt9qubu.js} +2 -2
- package/dist/{model-catalog-CJO7nU3v.js → model-catalog-DjGr6SKN.js} +4 -4
- package/dist/{model-picker-Qj1lwU0B.js → model-picker-CxN0ohVn.js} +4 -4
- package/dist/{model-selection-DeMoFayq.js → model-selection-RcRokpsG.js} +9 -9
- package/dist/{model-selection-D74qlS0C.js → model-selection-Xe4QEYsC.js} +55 -55
- package/dist/{models-cli-BKsNo3af.js → models-cli-BipY6LjO.js} +114 -114
- package/dist/{models-config-Dj7fr0nB.js → models-config-CZHJduVo.js} +7 -7
- package/dist/{models-config-DtvN5oDH.js → models-config-xlk6m7OT.js} +2 -2
- package/dist/{node-cli-CUBwMhvB.js → node-cli-O46I0NdJ.js} +45 -45
- package/dist/{node-command-policy-2ZSrWLtG.js → node-command-policy-xF0dwumy.js} +1 -1
- package/dist/{node-service-CsTzpewy.js → node-service-D4squ4p0.js} +1 -1
- package/dist/{nodes-cli-CGX5t4Yt.js → nodes-cli-59j_7aot.js} +27 -27
- package/dist/{nodes-screen-CBDClxW8.js → nodes-screen-CBvwtWTJ.js} +8 -8
- package/dist/{note-0__etBQU.js → note-DNloJfK7.js} +2 -2
- package/dist/{npm-pack-install-DJFWFkSH.js → npm-pack-install-BbOwlaHm.js} +23 -23
- package/dist/{npm-resolution-BcTXjcVL.js → npm-resolution-DMiDvLdW.js} +5 -5
- package/dist/{oauth-tls-preflight-DXqH3JiS.js → oauth-tls-preflight-DXcfBi5s.js} +1 -1
- package/dist/{onboard-D8c-kpMi.js → onboard-BqfhNjlR.js} +11 -11
- package/dist/{onboard-channels-BlEe4jeB.js → onboard-channels-C7p_IgYg.js} +24 -24
- package/dist/{onboard-custom-BtI1nikv.js → onboard-custom-Cxcj391N.js} +4 -4
- package/dist/{onboard-helpers-CHJgaSLe.js → onboard-helpers-BHshJeiH.js} +14 -14
- package/dist/{onboard-hooks--LATkv_I.js → onboard-hooks-Cu6T2rFj.js} +7 -7
- package/dist/{onboard-remote-BomxZvc8.js → onboard-remote-CvI5wlAJ.js} +5 -5
- package/dist/{onboard-skills-u_E2_0PO.js → onboard-skills-C65mTllM.js} +4 -4
- package/dist/{onboarding-NS4yZFU0.js → onboarding-Cu0Vnxce.js} +18 -18
- package/dist/{onboarding.finalize-B38zvHLn.js → onboarding.finalize-DaXgygU1.js} +117 -117
- package/dist/{onboarding.gateway-config-BFwfGimv.js → onboarding.gateway-config-V_rpPuAI.js} +19 -19
- package/dist/{onboarding.secret-input-CfTAY72X.js → onboarding.secret-input-DwOMM1C_.js} +1 -1
- package/dist/{openai-model-default-Baj13Ct-.js → openai-model-default-D_zYYe_9.js} +2 -2
- package/dist/{openclaw-root-B2l0kAM1.js → openclaw-root-BGUYWYDG.js} +2 -2
- package/dist/{operator-commands-8955-2ij.js → operator-commands-C1JSSS9_.js} +7 -7
- package/dist/{outbound-attachment-DXOLYhTE.js → outbound-attachment-DV8nfM5h.js} +2 -2
- package/dist/{outbound-attachment-CLvbW9Xc.js → outbound-attachment-papyIJq7.js} +2 -2
- package/dist/{outbound-message-hooks-B3d6x2bV.js → outbound-message-hooks-C4OaIRmC.js} +5 -5
- package/dist/{outbound-message-hooks-Cqp1e1kN.js → outbound-message-hooks-DJIHczZE.js} +5 -5
- package/dist/{pairing-cli-HlVxPH4p.js → pairing-cli-B3kETJVT.js} +13 -13
- package/dist/{pairing-labels-CzfCTcWR.js → pairing-labels-DwJGNsPY.js} +1 -1
- package/dist/{pairing-store-ClC923Wz.js → pairing-store-Deylvw9t.js} +3 -3
- package/dist/{path-alias-guards-Bj0l9f26.js → path-alias-guards-CM0vBH_Z.js} +1 -1
- package/dist/{path-alias-guards-BWeHJfpx.js → path-alias-guards-CgeH2aSH.js} +3 -3
- package/dist/{path-env-BBelmr45.js → path-env-BpMauqkY.js} +1 -1
- package/dist/{path-safety-DMAi6_-A.js → path-safety-BTAa9g_F.js} +1 -1
- package/dist/{pi-embedded-BMxexBYS.js → pi-embedded-MxBrZ5X7.js} +28 -28
- package/dist/{pi-embedded-wTLTzzic.js → pi-embedded-OmBDo0DF.js} +91 -91
- package/dist/{pi-embedded-helpers-58qqCaMi.js → pi-embedded-helpers-CjMOJlwL.js} +8 -8
- package/dist/{pi-embedded-recovery-adapter-JHx8Xn5G.js → pi-embedded-recovery-adapter-Ded_keBv.js} +35 -35
- package/dist/{pi-embedded-utils-BHzcjLyI.js → pi-embedded-utils-BI0V7Kv6.js} +2 -2
- package/dist/{pi-embedded-utils-fl8kob5O.js → pi-embedded-utils-BRaMXyni.js} +3 -3
- package/dist/{pi-embedded-utils-BxBSc2aN.js → pi-embedded-utils-D6Ee9Uyb.js} +1 -1
- package/dist/{pi-model-discovery-D-MvwJ9N.js → pi-model-discovery-BnKlqzf2.js} +1 -1
- package/dist/{pi-model-discovery-BEinSrd8.js → pi-model-discovery-RM-t2m70.js} +1 -1
- package/dist/{pi-tools.policy-CQBCu2m0.js → pi-tools.policy-CNWwkqR2.js} +5 -5
- package/dist/{pid-alive-CQpmBPPl.js → pid-alive-C3qbS2SA.js} +1 -1
- package/dist/{plugin-owned-work-recovery-adapter-Bn-F7Hfx.js → plugin-owned-work-recovery-adapter-tgBosC-H.js} +10 -10
- package/dist/{plugin-registry-D0fdIYR7.js → plugin-registry-ecUtEnu8.js} +4 -4
- package/dist/plugin-sdk/provider-media-understanding.js +7 -7
- package/dist/{plugins-cli--o_AZsyD.js → plugins-cli-D1q-BD8n.js} +113 -113
- package/dist/{polling-timeout-BfQqGdT2.js → polling-timeout-HyiW4Q3a.js} +3 -3
- package/dist/{ports-CcN3W_2z.js → ports-CmfLs9tb.js} +2 -2
- package/dist/{ports-Cp281kk8.js → ports-DJ_M8scl.js} +6 -6
- package/dist/{program-context-Bvfo3zMR.js → program-context-BCw1Yuns.js} +47 -47
- package/dist/{progress-D7S5GoOi.js → progress-Cbn-oYkW.js} +2 -2
- package/dist/{prompt-select-styled-C4VXJH2H.js → prompt-select-styled-CSDZSzXV.js} +51 -51
- package/dist/{prompt-style-o9ooijd1.js → prompt-style-B2xUetmj.js} +1 -1
- package/dist/{provider-auth-helpers-BiqgXxJP.js → provider-auth-helpers-DhziUI1g.js} +6 -6
- package/dist/{provider-image-C5-IlVG0.js → provider-image-BXyzJKFR.js} +1 -1
- package/dist/{provider-image-BbsxRTqB.js → provider-image-DpILAK4L.js} +6 -6
- package/dist/{provider-image-mZ4mWjfm.js → provider-image-RrciW1DD.js} +6 -6
- package/dist/{proxy-DIf6ZG9s.js → proxy-BaYXOmCA.js} +1 -1
- package/dist/{proxy-FZnR0j7S.js → proxy-CXiTHFXk.js} +1 -1
- package/dist/{proxy-env-DMj9RqDZ.js → proxy-env-B_4G-Zvx.js} +1 -1
- package/dist/{proxy-fetch-BSYUeKDC.js → proxy-fetch-BdB5Hb7r.js} +1 -1
- package/dist/{proxy-fetch-CeK1ZBeq.js → proxy-fetch-DxABZ-6S.js} +1 -1
- package/dist/{push-apns-BAZ2gS1A.js → push-apns-C_8RshML.js} +10 -10
- package/dist/{pw-ai-C1CsyDRn.js → pw-ai-B9xme0Pq.js} +1 -1
- package/dist/{pw-ai-DV1vh3L9.js → pw-ai-BJm46rii.js} +11 -11
- package/dist/{pw-ai-CVNyf8Ps.js → pw-ai-cXnI0RSD.js} +21 -21
- package/dist/{qmd-manager-ZfBaKzRa.js → qmd-manager-5DFozdW5.js} +8 -8
- package/dist/{qmd-manager-DiABKT7O.js → qmd-manager-BQrWBuxv.js} +25 -25
- package/dist/{qr-cli-DGTUy-aw.js → qr-cli-BCEk7nPF.js} +8 -8
- package/dist/{query-expansion-BcXh1Hyc.js → query-expansion-96au1v0j.js} +14 -14
- package/dist/{query-expansion-BHpPid-F.js → query-expansion-AnpCkyvK.js} +2 -2
- package/dist/{reconcile-bundled-B64Cy2I8.js → reconcile-bundled-BN_64UUh.js} +3 -3
- package/dist/{recorder-BiGPFc4h.js → recorder-BdRGbnWA.js} +4 -4
- package/dist/{recorder-wcIhZTuf.js → recorder-CQ4TEexc.js} +4 -4
- package/dist/{recovery-adapter-DXIa6Q_V.js → recovery-adapter-B2XqKqkY.js} +7 -7
- package/dist/{recovery-adapter-CLaKhchi.js → recovery-adapter-G2cG0rVa.js} +3 -3
- package/dist/{recovery-adapter-DdG68ESY.js → recovery-adapter-T9ng5nO9.js} +3 -3
- package/dist/{recovery-prompt-ksHwpSU2.js → recovery-prompt-9MKTTZMu.js} +1 -1
- package/dist/{redact-CNUi9G7H.js → redact-CFlw_DPT.js} +2 -2
- package/dist/{redact-snapshot-Blr7A6nM.js → redact-snapshot-Dea1X-KK.js} +2 -2
- package/dist/{register.agent-BftkCSzq.js → register.agent-70W8aMjZ.js} +128 -128
- package/dist/register.configure-Dw8LtvvS.js +170 -0
- package/dist/{register.maintenance-DLvVIgj7.js → register.maintenance-BUn0KquU.js} +129 -129
- package/dist/{register.message-BkfkSHmX.js → register.message-B90VvAa9.js} +103 -103
- package/dist/{register.onboard-CoQl5Y0I.js → register.onboard-CvtqqARL.js} +24 -24
- package/dist/{register.setup-DLKvWced.js → register.setup-NvomFGXG.js} +27 -27
- package/dist/{register.status-health-sessions-BXjWk0Rf.js → register.status-health-sessions-raLVwOhK.js} +120 -120
- package/dist/{replay-DEbuRxsV.js → replay-BNSm4qb0.js} +1 -1
- package/dist/{replies-BaVRDgoi.js → replies-CX9Xycso.js} +4 -4
- package/dist/{replies-sGMpONzr.js → replies-CyFLfpjN.js} +4 -4
- package/dist/{reply-B_ZnZCbr.js → reply-BBWUbEms.js} +189 -189
- package/dist/{reply-directives-VihT5tNP.js → reply-directives-Ba6CeI2G.js} +2 -2
- package/dist/{reply-directives-DAFMLUk3.js → reply-directives-MYQDM4s1.js} +2 -2
- package/dist/{reply-prefix-C9ItOkY0.js → reply-prefix-DIYk1Bw7.js} +1 -1
- package/dist/{reply-prefix-C_GmvupX.js → reply-prefix-JMlWztfO.js} +1 -1
- package/dist/{resolve-route-ESAi6vf5.js → resolve-route-CgDtn6OF.js} +5 -5
- package/dist/{resolve-route-DItBlJTa.js → resolve-route-D59i7uq2.js} +5 -5
- package/dist/{rpc-C7PAon6G.js → rpc-Bb2CwMXM.js} +3 -3
- package/dist/{runs-BAWrhAPG.js → runs-D22rrc2J.js} +8 -8
- package/dist/{runs-DAxZxrkH.js → runs-PqmTA3bR.js} +7 -7
- package/dist/{runs-kMwrTbuD.js → runs-s2c7mYPm.js} +3 -3
- package/dist/{runtime-C2XMT9jZ.js → runtime-9MDCiTo5.js} +4 -4
- package/dist/{runtime-config-collectors-D8giqZX1.js → runtime-config-collectors-DsDVTJ9L.js} +1 -1
- package/dist/{runtime-guard-Ce3hA73q.js → runtime-guard-aqfwJvKU.js} +1 -1
- package/dist/{sandbox-CaDaMuIS.js → sandbox-72tGhoFB.js} +19 -19
- package/dist/{sandbox-cli-D09-_MhG.js → sandbox-cli-P_SvHFh0.js} +29 -29
- package/dist/{secrets-cli-D1rwgI_i.js → secrets-cli-BfWs6PM7.js} +19 -19
- package/dist/{security-cli-DQbLcpvg.js → security-cli-bCnaX9U1.js} +46 -46
- package/dist/{send-st-VqnD1.js → send-BetYjLRt.js} +6 -6
- package/dist/{send-9_nNhllu.js → send-CgOqje6b.js} +14 -14
- package/dist/{send-CSeSlBgP.js → send-D3ylt51d.js} +13 -13
- package/dist/{send-BYpMIfkf.js → send-DFDs0YVo.js} +8 -8
- package/dist/{send-xSaCPdp5.js → send-DIo9GaAd.js} +6 -6
- package/dist/{send-n4HUnjJL.js → send-DQKTiyZo.js} +14 -14
- package/dist/{send-Dlz0xalZ.js → send-DQsInb-M.js} +6 -6
- package/dist/{send-BHuAEQE3.js → send-DoMFLnPv.js} +1 -1
- package/dist/{send-DbTOnKy8.js → send-EUMoqR5x.js} +6 -6
- package/dist/{send-CvwC56PP.js → send-NC1Swsc7.js} +7 -7
- package/dist/{send-CUUoNRjN.js → send-isYw7gNy.js} +7 -7
- package/dist/{server-DNrc5ufA.js → server-COf8596I.js} +27 -27
- package/dist/{server-context-hLmBApV6.js → server-context-DPXHpsDT.js} +12 -12
- package/dist/{server-lifecycle-CuLYk0SE.js → server-lifecycle-BiT2RK1-.js} +3 -3
- package/dist/{server-middleware-DGHNQp4r.js → server-middleware-CJid88Uz.js} +1 -1
- package/dist/{server-node-events-32NLKlcp.js → server-node-events-DmNKXZqH.js} +103 -103
- package/dist/{service-CjlQTRXS.js → service-BYi3UODF.js} +15 -15
- package/dist/{session-consumer-agents-Tp24W-mn.js → session-consumer-agents-BNkbq0X0.js} +1 -1
- package/dist/{session-consumer-claim-sweep-DTdZIrGU.js → session-consumer-claim-sweep-qTcERA_U.js} +10 -10
- package/dist/{session-cost-usage-C8x0Ma2X.js → session-cost-usage-BuaT9Epp.js} +3 -3
- package/dist/{session-key-DeVMAKRZ.js → session-key-BxmJDkEI.js} +1 -1
- package/dist/{session-key-resolution-bGrvOHtd.js → session-key-resolution-4d3BG0mA.js} +5 -5
- package/dist/{session-meta-B70hyZ6H.js → session-meta-B2VOXhYi.js} +2 -2
- package/dist/{session-meta-Dhf9REA2.js → session-meta-qJ09DaOQ.js} +2 -2
- package/dist/{session-storage-BKoYylot.js → session-storage-v3yHC3M6.js} +9 -9
- package/dist/{sessions-oXRiWY1z.js → sessions-D_Z9ewVp.js} +18 -18
- package/dist/{sessions-claims-status-COBv4-9y.js → sessions-claims-status-BlZz_25A.js} +14 -14
- package/dist/{shared-CdvXdH5h.js → shared-BxpBpS9X.js} +2 -2
- package/dist/{shared-BzyqCGAR.js → shared-C8TVt9Tv.js} +4 -4
- package/dist/{skill-commands-DFbO0Pwj.js → skill-commands-BjOR0izt.js} +5 -5
- package/dist/{skill-commands-CcC4TPnA.js → skill-commands-D3U8ty_X.js} +7 -7
- package/dist/{skill-scanner-CtZuUDBn.js → skill-scanner-XMBq6JrQ.js} +7 -7
- package/dist/{skills-DX80qJzU.js → skills-BJ7s0Wfe.js} +6 -6
- package/dist/{skills-CD8SFzX0.js → skills-DueobKPc.js} +6 -6
- package/dist/{skills-cli-7_VZ_au1.js → skills-cli-Dt-g2aoD.js} +12 -12
- package/dist/{skills-install-O8JPmNxm.js → skills-install-CQfmtCLR.js} +9 -9
- package/dist/{skills-status-BE_oa3Dd.js → skills-status-Du76K8bv.js} +3 -3
- package/dist/{ssrf-DjjqWxdp.js → ssrf-CUBo6TIZ.js} +1 -1
- package/dist/{status--Lvi3tz9.js → status-C3eqPaNb.js} +38 -38
- package/dist/{status.update-CWMFCByv.js → status.update-BlFaGKuA.js} +2 -2
- package/dist/{store-CGnsRznR.js → store-DS83zC6I.js} +7 -7
- package/dist/{store-DIKyCinG.js → store-DwfBHQl9.js} +2 -2
- package/dist/{subsystem-BCjklMkJ.js → subsystem-CnnjiGCl.js} +4 -4
- package/dist/{subsystem-DU1uzmTH.js → subsystem-Cwzs7yN0.js} +1 -1
- package/dist/{supervisor-8TdOYzAn.js → supervisor-BkHwVnJ0.js} +2 -2
- package/dist/{supervisor-recovery-adapter-DvR4we0D.js → supervisor-recovery-adapter-Cmw-7toT.js} +10 -10
- package/dist/{system-cli-BJG4flcz.js → system-cli-DZo_Xeus.js} +16 -16
- package/dist/{system-run-command-B9eoNN_E.js → system-run-command-BCygkYAm.js} +2 -2
- package/dist/{systemd-BuE-CYAD.js → systemd-BD_TMCHG.js} +11 -11
- package/dist/{systemd-hints-_4BTlat8.js → systemd-hints-hI4IEn0G.js} +9 -9
- package/dist/{systemd-linger-BCLLdRLW.js → systemd-linger-CzdYcYLi.js} +2 -2
- package/dist/{table-BZCTLfip.js → table-WoBQBfIP.js} +2 -2
- package/dist/{tables-BvxLmMF8.js → tables-CwG3ab8g.js} +1 -1
- package/dist/{tables-D07R1ft9.js → tables-Dzfx8UwI.js} +1 -1
- package/dist/{tailnet-DZu3euUT.js → tailnet-CQ7A44gN.js} +1 -1
- package/dist/{tailscale--cedl8k7.js → tailscale-DfhEC7E3.js} +3 -3
- package/dist/{task-pipeline-boot-vMI_gNlk.js → task-pipeline-boot-h8Guy4BE.js} +102 -102
- package/dist/{task-runlog-retention-BE0zP95z.js → task-runlog-retention-AeS4_zJ9.js} +5 -5
- package/dist/{tasks-BWHXch35.js → tasks-CA7n154j.js} +14 -14
- package/dist/{tokens-9Mla_HDp.js → tokens-CtSIDTuO.js} +1 -1
- package/dist/{tokens-BkGFSf77.js → tokens-D0Wagzn5.js} +1 -1
- package/dist/{tool-display-D2nTy2g3.js → tool-display-B_gL6TP4.js} +1 -1
- package/dist/{tool-loop-detection-dvzbYw_Z.js → tool-loop-detection-B_KXzW0J.js} +2 -2
- package/dist/{tool-loop-detection-8uvf8mSd.js → tool-loop-detection-CAixnaA2.js} +1 -1
- package/dist/{trash-DWehd5bk.js → trash-B2rgeHwV.js} +3 -3
- package/dist/{tui-BA_R7cVj.js → tui-BkUR35kr.js} +9 -9
- package/dist/{tui-cli-DhmKosuh.js → tui-cli-Dx8Rq2LS.js} +34 -34
- package/dist/{update-FpPZoisy.js → update-BD9vD-O3.js} +3 -3
- package/dist/{update-cli-DPr6FZQx.js → update-cli-CtGdmnAx.js} +139 -139
- package/dist/{update-runner-CP_x4nIG.js → update-runner-CRgsunyU.js} +18 -18
- package/dist/{user-run-recording-CB_RnvEh.js → user-run-recording-CboLnb8e.js} +2 -2
- package/dist/{user-run-recording-Bw40Tyil.js → user-run-recording-Cx6DoQwH.js} +2 -2
- package/dist/{utils-CfKD3xTt.js → utils-RlDPCeiE.js} +7 -7
- package/dist/{validation-cli-BLYVzQJW.js → validation-cli-CP7Wtoi4.js} +102 -102
- package/dist/{web-cli-DmXJYuSq.js → web-cli-Cqrw6g5k.js} +3 -3
- package/dist/{web-client-assets-CISlpYd9.js → web-client-assets-BC6Q9ril.js} +1 -1
- package/dist/{webhooks-cli-GjZJ14FF.js → webhooks-cli-DO81W6GV.js} +13 -13
- package/dist/{widearea-dns-FDkEBJ9c.js → widearea-dns-BfsfK5rQ.js} +1 -1
- package/dist/{with-timeout-D2Gp5kcM.js → with-timeout-Cpd_eIHB.js} +6 -6
- package/dist/{workspace-pXJaZvDa.js → workspace-Btbae6MM.js} +2 -2
- package/dist/{workspace-DwaGPsZ8.js → workspace-DpuyoXQY.js} +2 -2
- package/dist/{workspace-dirs-DWQAyUTc.js → workspace-dirs-De3z5PEp.js} +1 -1
- package/dist/{ws-BkTpOVYX.js → ws-1r6e9Dys.js} +2 -2
- package/dist/{wsl-ypAd8C-g.js → wsl-D6pCsktY.js} +2 -2
- package/extensions/acpx/package.json +1 -1
- package/extensions/anthropic/package.json +1 -1
- package/extensions/bifrost/package.json +1 -1
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/deepgram/package.json +1 -1
- package/extensions/deepinfra/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/diffs/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/dream-cycle/package.json +1 -1
- package/extensions/elevenlabs/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/gemini-search/package.json +1 -1
- package/extensions/google/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/grok-search/package.json +1 -1
- package/extensions/groq/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/kimi-search/package.json +1 -1
- package/extensions/learning-core/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/lobster/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +1 -1
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/mistral/package.json +1 -1
- package/extensions/moonshot/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +1 -1
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +1 -1
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/openai/package.json +1 -1
- package/extensions/openai-realtime/package.json +1 -1
- package/extensions/openrouter/package.json +1 -1
- package/extensions/perplexity-search/package.json +1 -1
- package/extensions/searxng-search/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/synology-chat/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +1 -1
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +1 -1
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zai/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +1 -1
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +1 -1
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
- package/dist/clawbot-cli-WGBrdTF4.js +0 -36
- package/dist/cli-NNNYfyG4.js +0 -166
- package/dist/register.configure-Dt0U1PJD.js +0 -170
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { f as resolveLegacyStateDirs, g as resolveStateDir, m as resolveOAuthDir, p as resolveNewStateDir, t as CONFIG_PATH } from "./paths-BBP4yd-2.js";
|
|
2
|
-
import { d as isRecord, h as resolveHomeDir } from "./utils-
|
|
3
|
-
import { d as resolveDefaultAgentId } from "./agent-scope-
|
|
4
|
-
import { T as normalizeAccountId, a as buildAgentMainSessionKey, n as DEFAULT_MAIN_KEY, p as normalizeAgentId, w as DEFAULT_ACCOUNT_ID } from "./session-key-
|
|
5
|
-
import { Cs as resolveTelegramAccount, Ft as readConfigFileSnapshot, Hl as resolveSlackNativeStreaming, Kn as resolveEnableState, Rl as formatSlackStreamModeMigrationMessage, Ul as resolveSlackStreamingMode, Vl as resolveDiscordPreviewStreamMode, Vt as OpenClawSchema, Wl as resolveTelegramPreviewStreamMode, Wn as normalizePluginsConfig, as as canonicalizeMainSessionAlias, ec as parseToolsBySenderTypedKey, fr as normalizeChatChannelId, hl as resolveCommandResolutionFromArgv, il as normalizeTrustedSafeBinDirs, kt as migrateLegacyConfig, mi as saveSessionStore, nl as isTrustedSafeBinPath, tl as getTrustedSafeBinDirs, xs as listTelegramAccountIds, zl as formatSlackStreamingBooleanMigrationMessage } from "./model-selection-
|
|
6
|
-
import { n as isPrimarySessionTranscriptFileName } from "./artifacts-
|
|
2
|
+
import { d as isRecord, h as resolveHomeDir } from "./utils-RlDPCeiE.js";
|
|
3
|
+
import { d as resolveDefaultAgentId } from "./agent-scope-C7A_L0Z6.js";
|
|
4
|
+
import { T as normalizeAccountId, a as buildAgentMainSessionKey, n as DEFAULT_MAIN_KEY, p as normalizeAgentId, w as DEFAULT_ACCOUNT_ID } from "./session-key-BxmJDkEI.js";
|
|
5
|
+
import { Cs as resolveTelegramAccount, Ft as readConfigFileSnapshot, Hl as resolveSlackNativeStreaming, Kn as resolveEnableState, Rl as formatSlackStreamModeMigrationMessage, Ul as resolveSlackStreamingMode, Vl as resolveDiscordPreviewStreamMode, Vt as OpenClawSchema, Wl as resolveTelegramPreviewStreamMode, Wn as normalizePluginsConfig, as as canonicalizeMainSessionAlias, ec as parseToolsBySenderTypedKey, fr as normalizeChatChannelId, hl as resolveCommandResolutionFromArgv, il as normalizeTrustedSafeBinDirs, kt as migrateLegacyConfig, mi as saveSessionStore, nl as isTrustedSafeBinPath, tl as getTrustedSafeBinDirs, xs as listTelegramAccountIds, zl as formatSlackStreamingBooleanMigrationMessage } from "./model-selection-Xe4QEYsC.js";
|
|
6
|
+
import { n as isPrimarySessionTranscriptFileName } from "./artifacts-CSUzSsVF.js";
|
|
7
7
|
import { t as formatCliCommand } from "./command-format-CGUNQYjt.js";
|
|
8
|
-
import { i as readChannelAllowFromStore } from "./pairing-store-
|
|
9
|
-
import { r as resolveMergedSafeBinProfileFixtures, t as listInterpreterLikeSafeBins } from "./exec-safe-bin-runtime-policy-
|
|
10
|
-
import { i as applyPluginAutoEnable, n as collectUnsafeTelegramPollingTimeouts, t as applyTelegramPollingTimeoutRepair } from "./polling-timeout-
|
|
8
|
+
import { i as readChannelAllowFromStore } from "./pairing-store-Deylvw9t.js";
|
|
9
|
+
import { r as resolveMergedSafeBinProfileFixtures, t as listInterpreterLikeSafeBins } from "./exec-safe-bin-runtime-policy-Bd1hExM6.js";
|
|
10
|
+
import { i as applyPluginAutoEnable, n as collectUnsafeTelegramPollingTimeouts, t as applyTelegramPollingTimeoutRepair } from "./polling-timeout-HyiW4Q3a.js";
|
|
11
11
|
import { t as collectProviderDangerousNameMatchingScopes } from "./dangerous-name-matching-B4c-oh3H.js";
|
|
12
|
-
import { r as shouldMoveSingleAccountChannelKey, t as fetchTelegramChatId } from "./api-
|
|
13
|
-
import { t as note } from "./note-
|
|
14
|
-
import { t as isWithinDir } from "./path-safety-
|
|
15
|
-
import { n as formatConfigIssueLines } from "./issue-format-
|
|
12
|
+
import { r as shouldMoveSingleAccountChannelKey, t as fetchTelegramChatId } from "./api-DTIIemyw.js";
|
|
13
|
+
import { t as note } from "./note-DNloJfK7.js";
|
|
14
|
+
import { t as isWithinDir } from "./path-safety-BTAa9g_F.js";
|
|
15
|
+
import { n as formatConfigIssueLines } from "./issue-format-CMvPuN7V.js";
|
|
16
16
|
import { a as isMattermostMutableAllowEntry, c as normalizeTelegramAllowFromEntry, i as isMSTeamsMutableAllowEntry, n as isGoogleChatMutableAllowEntry, o as isSlackMutableAllowEntry, r as isIrcMutableAllowEntry, s as isNumericTelegramUserId, t as isDiscordMutableAllowEntry } from "./mutable-allowlist-detectors-BECxOoKX.js";
|
|
17
17
|
import fs from "node:fs";
|
|
18
18
|
import os from "node:os";
|
|
19
19
|
import path from "node:path";
|
|
20
20
|
import JSON5 from "json5";
|
|
21
|
-
import
|
|
21
|
+
import fs$1 from "node:fs/promises";
|
|
22
22
|
|
|
23
23
|
//#region src/commands/doctor-legacy-config.ts
|
|
24
24
|
function normalizeCompatibilityConfigValues(cfg) {
|
|
@@ -2259,7 +2259,7 @@ async function maybeMigrateLegacyConfig() {
|
|
|
2259
2259
|
const targetDir = path.join(home, ".openclaw");
|
|
2260
2260
|
const targetPath = path.join(targetDir, "openclaw.json");
|
|
2261
2261
|
try {
|
|
2262
|
-
await
|
|
2262
|
+
await fs$1.access(targetPath);
|
|
2263
2263
|
return changes;
|
|
2264
2264
|
} catch {}
|
|
2265
2265
|
const legacyCandidates = [
|
|
@@ -2269,14 +2269,14 @@ async function maybeMigrateLegacyConfig() {
|
|
|
2269
2269
|
];
|
|
2270
2270
|
let legacyPath = null;
|
|
2271
2271
|
for (const candidate of legacyCandidates) try {
|
|
2272
|
-
await
|
|
2272
|
+
await fs$1.access(candidate);
|
|
2273
2273
|
legacyPath = candidate;
|
|
2274
2274
|
break;
|
|
2275
2275
|
} catch {}
|
|
2276
2276
|
if (!legacyPath) return changes;
|
|
2277
|
-
await
|
|
2277
|
+
await fs$1.mkdir(targetDir, { recursive: true });
|
|
2278
2278
|
try {
|
|
2279
|
-
await
|
|
2279
|
+
await fs$1.copyFile(legacyPath, targetPath, fs$1.constants.COPYFILE_EXCL);
|
|
2280
2280
|
changes.push(`Migrated legacy config: ${legacyPath} -> ${targetPath}`);
|
|
2281
2281
|
} catch {}
|
|
2282
2282
|
return changes;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { fr as normalizeChatChannelId } from "./model-selection-
|
|
2
|
-
import { o as ensurePluginAllowlisted } from "./polling-timeout-
|
|
1
|
+
import { fr as normalizeChatChannelId } from "./model-selection-Xe4QEYsC.js";
|
|
2
|
+
import { o as ensurePluginAllowlisted } from "./polling-timeout-HyiW4Q3a.js";
|
|
3
3
|
|
|
4
4
|
//#region src/plugins/toggle-config.ts
|
|
5
5
|
function setPluginEnabledInConfig(config, pluginId, enabled) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { El as unwrapKnownShellMultiplexerInvocation, Sl as isShellWrapperExecutable, Tl as unwrapKnownDispatchWrapperInvocation, al as validateSafeBinArgv, dl as splitCommandChain, fl as DEFAULT_SAFE_BINS, hl as resolveCommandResolutionFromArgv, jl as SAFE_BIN_PROFILES, ll as isWindowsPlatform, ml as resolveAllowlistCandidatePath, nl as isTrustedSafeBinPath, pl as matchAllowlist, sl as analyzeShellCommand, xl as isDispatchWrapperExecutable, yl as extractShellWrapperInlineCommand } from "./model-selection-
|
|
1
|
+
import { El as unwrapKnownShellMultiplexerInvocation, Sl as isShellWrapperExecutable, Tl as unwrapKnownDispatchWrapperInvocation, al as validateSafeBinArgv, dl as splitCommandChain, fl as DEFAULT_SAFE_BINS, hl as resolveCommandResolutionFromArgv, jl as SAFE_BIN_PROFILES, ll as isWindowsPlatform, ml as resolveAllowlistCandidatePath, nl as isTrustedSafeBinPath, pl as matchAllowlist, sl as analyzeShellCommand, xl as isDispatchWrapperExecutable, yl as extractShellWrapperInlineCommand } from "./model-selection-Xe4QEYsC.js";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
|
|
4
4
|
//#region src/infra/exec-approvals-allowlist.ts
|
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
import "./paths-BBP4yd-2.js";
|
|
2
|
-
import { F as isRich, I as theme } from "./utils-
|
|
3
|
-
import "./agent-scope-
|
|
4
|
-
import { m as defaultRuntime } from "./subsystem-
|
|
5
|
-
import "./logger-
|
|
6
|
-
import "./exec-
|
|
7
|
-
import "./model-selection-
|
|
2
|
+
import { F as isRich, I as theme } from "./utils-RlDPCeiE.js";
|
|
3
|
+
import "./agent-scope-C7A_L0Z6.js";
|
|
4
|
+
import { m as defaultRuntime } from "./subsystem-Cwzs7yN0.js";
|
|
5
|
+
import "./logger-BSEmTtz1.js";
|
|
6
|
+
import "./exec-g-Nx0X6p.js";
|
|
7
|
+
import "./model-selection-Xe4QEYsC.js";
|
|
8
8
|
import "./github-copilot-token-D9l3eOWF.js";
|
|
9
|
-
import "./pid-alive-
|
|
9
|
+
import "./pid-alive-C3qbS2SA.js";
|
|
10
10
|
import "./boolean-C6Pbt2Ue.js";
|
|
11
|
-
import "./env-
|
|
11
|
+
import "./env-uQrKrEGz.js";
|
|
12
12
|
import "./version-C459_ZQ5.js";
|
|
13
|
-
import "./artifacts-
|
|
13
|
+
import "./artifacts-CSUzSsVF.js";
|
|
14
14
|
import "./retry-policy-FBwX2QEP.js";
|
|
15
15
|
import "./task-run-types-B6n0W8Rb.js";
|
|
16
16
|
import "./redact-B7cMn_vp.js";
|
|
17
17
|
import "./errors-CtrilAlY.js";
|
|
18
18
|
import "./static-server-DQBHPXOZ.js";
|
|
19
|
-
import "./tailnet-
|
|
20
|
-
import "./ws-
|
|
21
|
-
import "./client-
|
|
22
|
-
import "./call-
|
|
19
|
+
import "./tailnet-CQ7A44gN.js";
|
|
20
|
+
import "./ws-1r6e9Dys.js";
|
|
21
|
+
import "./client-CfK_daL3.js";
|
|
22
|
+
import "./call-DcUNQRRs.js";
|
|
23
23
|
import "./pairing-token-BgE_TsqE.js";
|
|
24
24
|
import { n as formatTimeAgo } from "./format-relative-AHuG0b0P.js";
|
|
25
|
-
import { h as saveExecApprovals, l as readExecApprovalsSnapshot } from "./exec-approvals-
|
|
26
|
-
import "./exec-approvals-allowlist-
|
|
27
|
-
import { t as formatDocsLink } from "./links-
|
|
28
|
-
import "./progress-
|
|
29
|
-
import { n as callGatewayFromCli } from "./gateway-rpc-
|
|
30
|
-
import "./service-
|
|
31
|
-
import "./systemd-
|
|
32
|
-
import { t as renderTable } from "./table-
|
|
33
|
-
import { t as describeUnknownError } from "./shared-
|
|
34
|
-
import { a as resolveNodeId, r as nodesCallOpts } from "./rpc-
|
|
25
|
+
import { h as saveExecApprovals, l as readExecApprovalsSnapshot } from "./exec-approvals-sC6Vto0t.js";
|
|
26
|
+
import "./exec-approvals-allowlist-BxG5LK_B.js";
|
|
27
|
+
import { t as formatDocsLink } from "./links-DA_gi3gE.js";
|
|
28
|
+
import "./progress-Cbn-oYkW.js";
|
|
29
|
+
import { n as callGatewayFromCli } from "./gateway-rpc-CiALr93w.js";
|
|
30
|
+
import "./service-BYi3UODF.js";
|
|
31
|
+
import "./systemd-BD_TMCHG.js";
|
|
32
|
+
import { t as renderTable } from "./table-WoBQBfIP.js";
|
|
33
|
+
import { t as describeUnknownError } from "./shared-BxpBpS9X.js";
|
|
34
|
+
import { a as resolveNodeId, r as nodesCallOpts } from "./rpc-Bb2CwMXM.js";
|
|
35
35
|
import JSON5 from "json5";
|
|
36
|
-
import
|
|
36
|
+
import fs from "node:fs/promises";
|
|
37
37
|
|
|
38
38
|
//#region src/cli/exec-approvals-cli.ts
|
|
39
39
|
async function readStdin() {
|
|
@@ -330,7 +330,7 @@ function registerExecApprovalsCli(program) {
|
|
|
330
330
|
if (!opts.file && !opts.stdin) exitWithError("Provide --file or --stdin.");
|
|
331
331
|
if (opts.file && opts.stdin) exitWithError("Use either --file or --stdin (not both).");
|
|
332
332
|
const { source, nodeId, targetLabel, baseHash } = await loadWritableSnapshotTarget(opts);
|
|
333
|
-
const raw = opts.stdin ? await readStdin() : await
|
|
333
|
+
const raw = opts.stdin ? await readStdin() : await fs.readFile(String(opts.file), "utf8");
|
|
334
334
|
let file;
|
|
335
335
|
try {
|
|
336
336
|
file = JSON5.parse(raw);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { _ as expandHomePrefix } from "./paths-BBP4yd-2.js";
|
|
2
|
-
import { t as createSubsystemLogger } from "./subsystem-
|
|
3
|
-
import { t as DEFAULT_AGENT_ID } from "./session-key-
|
|
2
|
+
import { t as createSubsystemLogger } from "./subsystem-Cwzs7yN0.js";
|
|
3
|
+
import { t as DEFAULT_AGENT_ID } from "./session-key-BxmJDkEI.js";
|
|
4
4
|
import fs from "node:fs";
|
|
5
5
|
import path, { basename, dirname, join } from "node:path";
|
|
6
6
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { j as shouldLogVerbose, w as danger } from "./utils-
|
|
2
|
-
import { n as logError, t as logDebug } from "./logger-
|
|
1
|
+
import { j as shouldLogVerbose, w as danger } from "./utils-RlDPCeiE.js";
|
|
2
|
+
import { n as logError, t as logDebug } from "./logger-BSEmTtz1.js";
|
|
3
3
|
import { t as resolveCommandStdio } from "./spawn-utils-D7e1JbSq.js";
|
|
4
4
|
import process from "node:process";
|
|
5
5
|
import fs from "node:fs";
|
package/dist/{exec-safe-bin-runtime-policy-OSqMfz70.js → exec-safe-bin-runtime-policy-Bd1hExM6.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Ml as normalizeSafeBinProfileFixtures, Nl as resolveSafeBinProfiles, il as normalizeTrustedSafeBinDirs, rl as listWritableExplicitTrustedSafeBinDirs, tl as getTrustedSafeBinDirs } from "./model-selection-
|
|
2
|
-
import { i as resolveSafeBins } from "./exec-approvals-allowlist-
|
|
1
|
+
import { Ml as normalizeSafeBinProfileFixtures, Nl as resolveSafeBinProfiles, il as normalizeTrustedSafeBinDirs, rl as listWritableExplicitTrustedSafeBinDirs, tl as getTrustedSafeBinDirs } from "./model-selection-Xe4QEYsC.js";
|
|
2
|
+
import { i as resolveSafeBins } from "./exec-approvals-allowlist-BxG5LK_B.js";
|
|
3
3
|
|
|
4
4
|
//#region src/infra/exec-safe-bin-runtime-policy.ts
|
|
5
5
|
const INTERPRETER_LIKE_SAFE_BINS = new Set([
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { jt as resolvePreferredOpenClawTmpDir, vt as isNotFoundPathError, yt as isPathInside } from "./utils-
|
|
2
|
-
import { Nt as loadConfig } from "./model-selection-
|
|
3
|
-
import { i as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-
|
|
1
|
+
import { jt as resolvePreferredOpenClawTmpDir, vt as isNotFoundPathError, yt as isPathInside } from "./utils-RlDPCeiE.js";
|
|
2
|
+
import { Nt as loadConfig } from "./model-selection-Xe4QEYsC.js";
|
|
3
|
+
import { i as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-LwswEc9h.js";
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
import
|
|
5
|
+
import fs from "node:fs/promises";
|
|
6
6
|
import { createHmac } from "node:crypto";
|
|
7
7
|
|
|
8
8
|
//#region src/browser/constants.ts
|
|
@@ -56,28 +56,28 @@ function invalidPath(scopeLabel) {
|
|
|
56
56
|
}
|
|
57
57
|
async function resolveRealPathIfExists(targetPath) {
|
|
58
58
|
try {
|
|
59
|
-
return await
|
|
59
|
+
return await fs.realpath(targetPath);
|
|
60
60
|
} catch {
|
|
61
61
|
return;
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
async function resolveTrustedRootRealPath(rootDir) {
|
|
65
65
|
try {
|
|
66
|
-
const rootLstat = await
|
|
66
|
+
const rootLstat = await fs.lstat(rootDir);
|
|
67
67
|
if (!rootLstat.isDirectory() || rootLstat.isSymbolicLink()) return;
|
|
68
|
-
return await
|
|
68
|
+
return await fs.realpath(rootDir);
|
|
69
69
|
} catch {
|
|
70
70
|
return;
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
async function validateCanonicalPathWithinRoot(params) {
|
|
74
74
|
try {
|
|
75
|
-
const candidateLstat = await
|
|
75
|
+
const candidateLstat = await fs.lstat(params.candidatePath);
|
|
76
76
|
if (candidateLstat.isSymbolicLink()) return "invalid";
|
|
77
77
|
if (params.expect === "directory" && !candidateLstat.isDirectory()) return "invalid";
|
|
78
78
|
if (params.expect === "file" && !candidateLstat.isFile()) return "invalid";
|
|
79
79
|
if (params.expect === "file" && candidateLstat.nlink > 1) return "invalid";
|
|
80
|
-
const candidateRealPath = await
|
|
80
|
+
const candidateRealPath = await fs.realpath(params.candidatePath);
|
|
81
81
|
return isPathInside(params.rootRealPath, candidateRealPath) ? "ok" : "invalid";
|
|
82
82
|
} catch (err) {
|
|
83
83
|
return isNotFoundPathError(err) ? "not-found" : "invalid";
|
|
@@ -155,7 +155,7 @@ async function resolveCheckedPathsWithinRoot(params) {
|
|
|
155
155
|
};
|
|
156
156
|
if (!rootRealPath || !raw || !path.isAbsolute(raw)) return lexicalPathResult;
|
|
157
157
|
try {
|
|
158
|
-
const resolvedExistingPath = await
|
|
158
|
+
const resolvedExistingPath = await fs.realpath(raw);
|
|
159
159
|
const relativePath = path.relative(rootRealPath, resolvedExistingPath);
|
|
160
160
|
if (!isInRoot(relativePath)) return lexicalPathResult;
|
|
161
161
|
return {
|
package/dist/extensionAPI.js
CHANGED
|
@@ -8,18 +8,18 @@ import "./github-copilot-token-Wgn3tC_h.js";
|
|
|
8
8
|
import { d as resolveSessionFilePath, g as resolveStorePath } from "./redact-CcXQzMDq.js";
|
|
9
9
|
import "./send-BULWLf9H.js";
|
|
10
10
|
import "./send-vUEO6mWN.js";
|
|
11
|
-
import { a as resolveAgentTimeoutMs, t as runEmbeddedPiAgent } from "./pi-embedded-
|
|
12
|
-
import "./agent-turn-runner-
|
|
11
|
+
import { a as resolveAgentTimeoutMs, t as runEmbeddedPiAgent } from "./pi-embedded-MxBrZ5X7.js";
|
|
12
|
+
import "./agent-turn-runner-DN-XHX0T.js";
|
|
13
13
|
import "./tokens-CjVVH60D.js";
|
|
14
14
|
import "./outbound-message-hooks-B4MMkGsP.js";
|
|
15
|
-
import "./diagnostic-
|
|
15
|
+
import "./diagnostic-CCR8brX6.js";
|
|
16
16
|
import "./diagnostic-session-state-evjvR-jF.js";
|
|
17
|
-
import "./command-queue
|
|
18
|
-
import "./send-
|
|
17
|
+
import "./command-queue--qG4Wxve.js";
|
|
18
|
+
import "./send-DoMFLnPv.js";
|
|
19
19
|
import "./image-ops-CmhhjA-p.js";
|
|
20
20
|
import "./pi-model-discovery-BFGKZ1gX.js";
|
|
21
|
-
import "./chat-content-
|
|
22
|
-
import "./chrome-
|
|
21
|
+
import "./chat-content-DTi4qPWl.js";
|
|
22
|
+
import "./chrome-3_0KrCjl.js";
|
|
23
23
|
import "./skills-peCEWmXN.js";
|
|
24
24
|
import "./path-alias-guards-DTXviWB0.js";
|
|
25
25
|
import "./fs-safe-4C2TMvQJ.js";
|
|
@@ -27,9 +27,9 @@ import "./proxy-env-CSUORFjS.js";
|
|
|
27
27
|
import "./store-DM3A6gON.js";
|
|
28
28
|
import "./thinking-BUbh2qQQ.js";
|
|
29
29
|
import "./models-config-HTZTL0M4.js";
|
|
30
|
-
import "./audio-transcription-runner-
|
|
31
|
-
import "./pi-embedded-utils-
|
|
32
|
-
import "./provider-image-
|
|
30
|
+
import "./audio-transcription-runner-DV97sIzf.js";
|
|
31
|
+
import "./pi-embedded-utils-D6Ee9Uyb.js";
|
|
32
|
+
import "./provider-image-BXyzJKFR.js";
|
|
33
33
|
import "./fetch-P0w-Jc5R.js";
|
|
34
34
|
import "./fetch-guard-CngcrvIz.js";
|
|
35
35
|
import "./proxy-fetch-2w-tWIUS.js";
|
|
@@ -42,8 +42,8 @@ import "./commands-registry-CaOc3OfN.js";
|
|
|
42
42
|
import "./user-run-recording-ByWN0FrF.js";
|
|
43
43
|
import "./recorder-DTJ7sacs.js";
|
|
44
44
|
import "./skill-commands-DladmiuW.js";
|
|
45
|
-
import "./runs-
|
|
46
|
-
import "./deliver-
|
|
45
|
+
import "./runs-s2c7mYPm.js";
|
|
46
|
+
import "./deliver-BmkcRFC9.js";
|
|
47
47
|
import "./fetch-Dg5tcfuO.js";
|
|
48
48
|
import "./channel-activity-alIvs8Mw.js";
|
|
49
49
|
import "./tables-DVQ9iRK5.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { c as resolveAgentWorkspaceDir } from "./agent-scope-
|
|
1
|
+
import { c as resolveAgentWorkspaceDir } from "./agent-scope-B5BtLhIC.js";
|
|
2
2
|
import { c as resolveStateDir } from "./paths-Cvc9EM8Y.js";
|
|
3
|
-
import { mt as resolvePreferredOpenClawTmpDir } from "./subsystem-
|
|
4
|
-
import { U as loadConfig, ir as formatErrorChainMessage } from "./model-selection-
|
|
5
|
-
import { t as redactSensitiveText } from "./redact-
|
|
6
|
-
import { c as detectMime, l as extensionForMime } from "./image-ops-
|
|
3
|
+
import { mt as resolvePreferredOpenClawTmpDir } from "./subsystem-CnnjiGCl.js";
|
|
4
|
+
import { U as loadConfig, ir as formatErrorChainMessage } from "./model-selection-RcRokpsG.js";
|
|
5
|
+
import { t as redactSensitiveText } from "./redact-CFlw_DPT.js";
|
|
6
|
+
import { c as detectMime, l as extensionForMime } from "./image-ops-BM9FiJs0.js";
|
|
7
7
|
import { t as resolveNetworkSsrFPolicy } from "./ssrf-config-CWMxbvLB.js";
|
|
8
|
-
import { n as withStrictGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-
|
|
8
|
+
import { n as withStrictGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-tWQjMK2l.js";
|
|
9
9
|
import path from "node:path";
|
|
10
10
|
|
|
11
11
|
//#region src/media/local-roots.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { i as logWarn, r as logInfo } from "./logger-
|
|
1
|
+
import { i as logWarn, r as logInfo } from "./logger-BSEmTtz1.js";
|
|
2
2
|
import { t as bindAbortRelay } from "./fetch-timeout-7nA25fTc.js";
|
|
3
|
-
import { a as isPrivateIpAddress, l as hasProxyEnvConfigured, n as closeDispatcher, r as createPinnedDispatcher, s as resolvePinnedHostnameWithPolicy, t as SsrFBlockedError } from "./ssrf-
|
|
4
|
-
import { t as isNpmUndiciDispatchingFetch } from "./proxy-fetch-
|
|
3
|
+
import { a as isPrivateIpAddress, l as hasProxyEnvConfigured, n as closeDispatcher, r as createPinnedDispatcher, s as resolvePinnedHostnameWithPolicy, t as SsrFBlockedError } from "./ssrf-CUBo6TIZ.js";
|
|
4
|
+
import { t as isNpmUndiciDispatchingFetch } from "./proxy-fetch-DxABZ-6S.js";
|
|
5
5
|
import { EnvHttpProxyAgent, FormData, fetch } from "undici";
|
|
6
6
|
|
|
7
7
|
//#region src/infra/net/form-data.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { i as logWarn, r as logInfo } from "./logger-
|
|
2
|
-
import { c as resolvePinnedHostnameWithPolicy, i as createPinnedDispatcher, n as SsrFBlockedError, o as isPrivateIpAddress, r as closeDispatcher, t as hasProxyEnvConfigured } from "./proxy-env-
|
|
1
|
+
import { i as logWarn, r as logInfo } from "./logger-uA4S-xj7.js";
|
|
2
|
+
import { c as resolvePinnedHostnameWithPolicy, i as createPinnedDispatcher, n as SsrFBlockedError, o as isPrivateIpAddress, r as closeDispatcher, t as hasProxyEnvConfigured } from "./proxy-env-B_4G-Zvx.js";
|
|
3
3
|
import { t as bindAbortRelay } from "./fetch-timeout-D8A8C9j0.js";
|
|
4
|
-
import { t as isNpmUndiciDispatchingFetch } from "./proxy-fetch-
|
|
4
|
+
import { t as isNpmUndiciDispatchingFetch } from "./proxy-fetch-BdB5Hb7r.js";
|
|
5
5
|
import { EnvHttpProxyAgent, FormData, fetch } from "undici";
|
|
6
6
|
|
|
7
7
|
//#region src/infra/net/form-data.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { s as parseBooleanValue, t as readManifestNamespace } from "./legacy-names-
|
|
1
|
+
import { s as parseBooleanValue, t as readManifestNamespace } from "./legacy-names-DnKoTzf4.js";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import fs from "node:fs";
|
|
4
|
-
import
|
|
4
|
+
import json5 from "json5";
|
|
5
5
|
import YAML from "yaml";
|
|
6
6
|
|
|
7
7
|
//#region src/shared/config-eval.ts
|
|
@@ -258,7 +258,7 @@ function resolveOpenClawManifestBlock(params) {
|
|
|
258
258
|
const raw = getFrontmatterString(params.frontmatter, params.key ?? "metadata");
|
|
259
259
|
if (!raw) return;
|
|
260
260
|
try {
|
|
261
|
-
const parsed =
|
|
261
|
+
const parsed = json5.parse(raw);
|
|
262
262
|
if (!parsed || typeof parsed !== "object") return;
|
|
263
263
|
return readManifestNamespace(parsed);
|
|
264
264
|
} catch {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { l as expandHomePrefix } from "./paths-Cvc9EM8Y.js";
|
|
2
|
-
import { B as hasNodeErrorCode, H as isPathInside, I as sameFileIdentity, U as isSymlinkOpenError, V as isNotFoundPathError } from "./subsystem-
|
|
3
|
-
import { i as logWarn } from "./logger-
|
|
4
|
-
import { n as assertNoPathAliasEscape } from "./path-alias-guards-
|
|
2
|
+
import { B as hasNodeErrorCode, H as isPathInside, I as sameFileIdentity, U as isSymlinkOpenError, V as isNotFoundPathError } from "./subsystem-CnnjiGCl.js";
|
|
3
|
+
import { i as logWarn } from "./logger-uA4S-xj7.js";
|
|
4
|
+
import { n as assertNoPathAliasEscape } from "./path-alias-guards-CM0vBH_Z.js";
|
|
5
5
|
import fs from "node:fs/promises";
|
|
6
6
|
import os from "node:os";
|
|
7
7
|
import path from "node:path";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { _ as expandHomePrefix } from "./paths-BBP4yd-2.js";
|
|
2
|
-
import { _t as hasNodeErrorCode, bt as isSymlinkOpenError, pt as sameFileIdentity, vt as isNotFoundPathError, yt as isPathInside } from "./utils-
|
|
3
|
-
import { i as logWarn } from "./logger-
|
|
4
|
-
import { n as assertNoPathAliasEscape } from "./path-alias-guards-
|
|
2
|
+
import { _t as hasNodeErrorCode, bt as isSymlinkOpenError, pt as sameFileIdentity, vt as isNotFoundPathError, yt as isPathInside } from "./utils-RlDPCeiE.js";
|
|
3
|
+
import { i as logWarn } from "./logger-BSEmTtz1.js";
|
|
4
|
+
import { n as assertNoPathAliasEscape } from "./path-alias-guards-CgeH2aSH.js";
|
|
5
5
|
import { constants } from "node:fs";
|
|
6
6
|
import os from "node:os";
|
|
7
7
|
import path from "node:path";
|
|
8
|
-
import
|
|
8
|
+
import fs$1 from "node:fs/promises";
|
|
9
9
|
import { randomUUID } from "node:crypto";
|
|
10
10
|
import { pipeline } from "node:stream/promises";
|
|
11
11
|
|
|
@@ -25,19 +25,19 @@ const ensureTrailingSep = (value) => value.endsWith(path.sep) ? value : value +
|
|
|
25
25
|
async function expandRelativePathWithHome(relativePath) {
|
|
26
26
|
let home = process.env.HOME || process.env.USERPROFILE || os.homedir();
|
|
27
27
|
try {
|
|
28
|
-
home = await
|
|
28
|
+
home = await fs$1.realpath(home);
|
|
29
29
|
} catch {}
|
|
30
30
|
return expandHomePrefix(relativePath, { home });
|
|
31
31
|
}
|
|
32
32
|
async function openVerifiedLocalFile(filePath, options) {
|
|
33
33
|
try {
|
|
34
|
-
if ((await
|
|
34
|
+
if ((await fs$1.lstat(filePath)).isDirectory()) throw new SafeOpenError("not-file", "not a file");
|
|
35
35
|
} catch (err) {
|
|
36
36
|
if (err instanceof SafeOpenError) throw err;
|
|
37
37
|
}
|
|
38
38
|
let handle;
|
|
39
39
|
try {
|
|
40
|
-
handle = await
|
|
40
|
+
handle = await fs$1.open(filePath, OPEN_READ_FLAGS);
|
|
41
41
|
} catch (err) {
|
|
42
42
|
if (isNotFoundPathError(err)) throw new SafeOpenError("not-found", "file not found");
|
|
43
43
|
if (isSymlinkOpenError(err)) throw new SafeOpenError("symlink", "symlink open blocked", { cause: err });
|
|
@@ -45,13 +45,13 @@ async function openVerifiedLocalFile(filePath, options) {
|
|
|
45
45
|
throw err;
|
|
46
46
|
}
|
|
47
47
|
try {
|
|
48
|
-
const [stat, lstat] = await Promise.all([handle.stat(),
|
|
48
|
+
const [stat, lstat] = await Promise.all([handle.stat(), fs$1.lstat(filePath)]);
|
|
49
49
|
if (lstat.isSymbolicLink()) throw new SafeOpenError("symlink", "symlink not allowed");
|
|
50
50
|
if (!stat.isFile()) throw new SafeOpenError("not-file", "not a file");
|
|
51
51
|
if (options?.rejectHardlinks && stat.nlink > 1) throw new SafeOpenError("invalid-path", "hardlinked path not allowed");
|
|
52
52
|
if (!sameFileIdentity(stat, lstat)) throw new SafeOpenError("path-mismatch", "path changed during read");
|
|
53
|
-
const realPath = await
|
|
54
|
-
const realStat = await
|
|
53
|
+
const realPath = await fs$1.realpath(filePath);
|
|
54
|
+
const realStat = await fs$1.stat(realPath);
|
|
55
55
|
if (options?.rejectHardlinks && realStat.nlink > 1) throw new SafeOpenError("invalid-path", "hardlinked path not allowed");
|
|
56
56
|
if (!sameFileIdentity(stat, realStat)) throw new SafeOpenError("path-mismatch", "path mismatch");
|
|
57
57
|
return {
|
|
@@ -69,7 +69,7 @@ async function openVerifiedLocalFile(filePath, options) {
|
|
|
69
69
|
async function resolvePathWithinRoot(params) {
|
|
70
70
|
let rootReal;
|
|
71
71
|
try {
|
|
72
|
-
rootReal = await
|
|
72
|
+
rootReal = await fs$1.realpath(params.rootDir);
|
|
73
73
|
} catch (err) {
|
|
74
74
|
if (isNotFoundPathError(err)) throw new SafeOpenError("not-found", "root dir not found");
|
|
75
75
|
throw err;
|
|
@@ -170,7 +170,7 @@ function buildAtomicWriteTempPath(targetPath) {
|
|
|
170
170
|
return path.join(dir, `.${base}.${process.pid}.${randomUUID()}.tmp`);
|
|
171
171
|
}
|
|
172
172
|
async function writeTempFileForAtomicReplace(params) {
|
|
173
|
-
const tempHandle = await
|
|
173
|
+
const tempHandle = await fs$1.open(params.tempPath, OPEN_WRITE_CREATE_FLAGS, params.mode);
|
|
174
174
|
try {
|
|
175
175
|
if (typeof params.data === "string") await tempHandle.writeFile(params.data, params.encoding ?? "utf8");
|
|
176
176
|
else await tempHandle.writeFile(params.data);
|
|
@@ -180,7 +180,7 @@ async function writeTempFileForAtomicReplace(params) {
|
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
182
|
async function verifyAtomicWriteResult(params) {
|
|
183
|
-
const rootWithSep = ensureTrailingSep(await
|
|
183
|
+
const rootWithSep = ensureTrailingSep(await fs$1.realpath(params.rootDir));
|
|
184
184
|
const opened = await openVerifiedLocalFile(params.targetPath, { rejectHardlinks: true });
|
|
185
185
|
try {
|
|
186
186
|
if (!sameFileIdentity(opened.stat, params.expectedStat)) throw new SafeOpenError("path-mismatch", "path changed during write");
|
|
@@ -191,13 +191,13 @@ async function verifyAtomicWriteResult(params) {
|
|
|
191
191
|
}
|
|
192
192
|
async function resolveOpenedFileRealPathForHandle(handle, ioPath) {
|
|
193
193
|
try {
|
|
194
|
-
return await
|
|
194
|
+
return await fs$1.realpath(ioPath);
|
|
195
195
|
} catch (err) {
|
|
196
196
|
if (!isNotFoundPathError(err)) throw err;
|
|
197
197
|
}
|
|
198
198
|
const fdCandidates = process.platform === "linux" ? [`/proc/self/fd/${handle.fd}`, `/dev/fd/${handle.fd}`] : process.platform === "win32" ? [] : [`/dev/fd/${handle.fd}`];
|
|
199
199
|
for (const fdPath of fdCandidates) try {
|
|
200
|
-
return await
|
|
200
|
+
return await fs$1.realpath(fdPath);
|
|
201
201
|
} catch {}
|
|
202
202
|
throw new SafeOpenError("path-mismatch", "unable to resolve opened file path");
|
|
203
203
|
}
|
|
@@ -212,10 +212,10 @@ async function openWritableFileWithinRoot(params) {
|
|
|
212
212
|
} catch (err) {
|
|
213
213
|
throw new SafeOpenError("invalid-path", "path alias escape blocked", { cause: err });
|
|
214
214
|
}
|
|
215
|
-
if (params.mkdir !== false) await
|
|
215
|
+
if (params.mkdir !== false) await fs$1.mkdir(path.dirname(resolved), { recursive: true });
|
|
216
216
|
let ioPath = resolved;
|
|
217
217
|
try {
|
|
218
|
-
const resolvedRealPath = await
|
|
218
|
+
const resolvedRealPath = await fs$1.realpath(resolved);
|
|
219
219
|
if (!isPathInside(rootWithSep, resolvedRealPath)) throw new SafeOpenError("outside-workspace", "file is outside workspace root");
|
|
220
220
|
ioPath = resolvedRealPath;
|
|
221
221
|
} catch (err) {
|
|
@@ -227,10 +227,10 @@ async function openWritableFileWithinRoot(params) {
|
|
|
227
227
|
let createdForWrite = false;
|
|
228
228
|
try {
|
|
229
229
|
try {
|
|
230
|
-
handle = await
|
|
230
|
+
handle = await fs$1.open(ioPath, OPEN_WRITE_EXISTING_FLAGS, fileMode);
|
|
231
231
|
} catch (err) {
|
|
232
232
|
if (!isNotFoundPathError(err)) throw err;
|
|
233
|
-
handle = await
|
|
233
|
+
handle = await fs$1.open(ioPath, OPEN_WRITE_CREATE_FLAGS, fileMode);
|
|
234
234
|
createdForWrite = true;
|
|
235
235
|
}
|
|
236
236
|
} catch (err) {
|
|
@@ -244,7 +244,7 @@ async function openWritableFileWithinRoot(params) {
|
|
|
244
244
|
if (!stat.isFile()) throw new SafeOpenError("invalid-path", "path is not a regular file under root");
|
|
245
245
|
if (stat.nlink > 1) throw new SafeOpenError("invalid-path", "hardlinked path not allowed");
|
|
246
246
|
try {
|
|
247
|
-
const lstat = await
|
|
247
|
+
const lstat = await fs$1.lstat(ioPath);
|
|
248
248
|
if (lstat.isSymbolicLink() || !lstat.isFile()) throw new SafeOpenError("invalid-path", "path is not a regular file under root");
|
|
249
249
|
if (!sameFileIdentity(stat, lstat)) throw new SafeOpenError("path-mismatch", "path changed during write");
|
|
250
250
|
} catch (err) {
|
|
@@ -252,7 +252,7 @@ async function openWritableFileWithinRoot(params) {
|
|
|
252
252
|
}
|
|
253
253
|
const realPath = await resolveOpenedFileRealPathForHandle(handle, ioPath);
|
|
254
254
|
openedRealPath = realPath;
|
|
255
|
-
const realStat = await
|
|
255
|
+
const realStat = await fs$1.stat(realPath);
|
|
256
256
|
if (!sameFileIdentity(stat, realStat)) throw new SafeOpenError("path-mismatch", "path mismatch");
|
|
257
257
|
if (realStat.nlink > 1) throw new SafeOpenError("invalid-path", "hardlinked path not allowed");
|
|
258
258
|
if (!isPathInside(rootWithSep, realPath)) throw new SafeOpenError("outside-workspace", "file is outside workspace root");
|
|
@@ -267,7 +267,7 @@ async function openWritableFileWithinRoot(params) {
|
|
|
267
267
|
const cleanupCreatedPath = createdForWrite && err instanceof SafeOpenError;
|
|
268
268
|
const cleanupPath = openedRealPath ?? ioPath;
|
|
269
269
|
await handle.close().catch(() => {});
|
|
270
|
-
if (cleanupCreatedPath) await
|
|
270
|
+
if (cleanupCreatedPath) await fs$1.rm(cleanupPath, { force: true }).catch(() => {});
|
|
271
271
|
throw err;
|
|
272
272
|
}
|
|
273
273
|
}
|
|
@@ -290,7 +290,7 @@ async function writeFileWithinRoot(params) {
|
|
|
290
290
|
encoding: params.encoding,
|
|
291
291
|
mode: targetMode || 384
|
|
292
292
|
});
|
|
293
|
-
await
|
|
293
|
+
await fs$1.rename(tempPath, destinationPath);
|
|
294
294
|
tempPath = null;
|
|
295
295
|
try {
|
|
296
296
|
await verifyAtomicWriteResult({
|
|
@@ -303,7 +303,7 @@ async function writeFileWithinRoot(params) {
|
|
|
303
303
|
throw err;
|
|
304
304
|
}
|
|
305
305
|
} finally {
|
|
306
|
-
if (tempPath) await
|
|
306
|
+
if (tempPath) await fs$1.rm(tempPath, { force: true }).catch(() => {});
|
|
307
307
|
}
|
|
308
308
|
}
|
|
309
309
|
async function copyFileWithinRoot(params) {
|
|
@@ -331,7 +331,7 @@ async function copyFileWithinRoot(params) {
|
|
|
331
331
|
});
|
|
332
332
|
await pipeline(sourceStream, targetStream);
|
|
333
333
|
} catch (err) {
|
|
334
|
-
if (target?.createdForWrite) await
|
|
334
|
+
if (target?.createdForWrite) await fs$1.rm(target.openedRealPath, { force: true }).catch(() => {});
|
|
335
335
|
throw err;
|
|
336
336
|
} finally {
|
|
337
337
|
if (!sourceClosedByStream) await source.handle.close().catch(() => {});
|