@bitseek/claw 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{accounts-B3zSNWIv.js → accounts-2NNZ6Hbp.js} +1 -1
- package/dist/{accounts-BQHz8_1_.js → accounts-Cv5CUnT4.js} +7 -7
- package/dist/{accounts-DTfEeXyO.js → accounts-NHpMJ0aq.js} +1 -1
- package/dist/{acp-cli-DYu2k7v9.js → acp-cli-B0u6no4K.js} +8 -8
- package/dist/{agent-scope-CJelRKYY.js → agent-scope-CY2-lUIY.js} +1 -1
- package/dist/{agents-B1UgGs6R.js → agents-Cweyfj22.js} +15 -15
- package/dist/{agents.config-CmUkQxtt.js → agents.config-DA3Y8w1t.js} +2 -2
- package/dist/{api-key-rotation-xfk-b2Sv.js → api-key-rotation-Cf7QM5M_.js} +1 -1
- package/dist/{audio-preflight-CHD1xVrt.js → audio-preflight-DdrORTn9.js} +4 -4
- package/dist/{audio-preflight-59K4nxSA.js → audio-preflight-SRgix4XS.js} +36 -36
- package/dist/{audio-transcription-runner-DwWOJBSn.js → audio-transcription-runner-CGsd7139.js} +1 -1
- package/dist/{audio-transcription-runner-DGyS5H3K.js → audio-transcription-runner-DkibzFT2.js} +22 -22
- package/dist/{audit-DJfP7KjJ.js → audit-TSVXvoTa.js} +29 -29
- package/dist/{auth-B3HDYw4G.js → auth-anvTU0Sb.js} +1 -1
- package/dist/{auth-choice-Ko0_UPIV.js → auth-choice-Bhzlukg0.js} +12 -12
- package/dist/{auth-choice-f6C6bI9v.js → auth-choice-CR6bBvDU.js} +14 -14
- package/dist/{auth-choice.apply-helpers-DR-eUj_5.js → auth-choice.apply-helpers-Du585kvU.js} +1 -1
- package/dist/{auth-profiles-D_x1_5v_.js → auth-profiles-CyG9VwU_.js} +16 -16
- package/dist/{auth-token-BqjY9MGq.js → auth-token-BIEjzQiE.js} +1 -1
- package/dist/{banner-DB1rGYKC.js → banner-D-ha13Xs.js} +2 -2
- package/dist/{bindings-Hx6KNJeg.js → bindings-DGvp9FdD.js} +1 -1
- package/dist/{bonjour-discovery-t-SAPCsb.js → bonjour-discovery-B68dCYTY.js} +1 -1
- package/dist/{browser-cli-CTlLlDFe.js → browser-cli-DREC4EVl.js} +12 -12
- package/dist/build-info.json +3 -3
- package/dist/{call-CzoM7hPS.js → call-CmAGfSJE.js} +10 -10
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-account-context-CiCkIxCu.js → channel-account-context-DNFdIaSr.js} +7 -6
- package/dist/{channel-account-context-D0zX-Gup.js → channel-account-context-etfgJrr_.js} +2 -1
- package/dist/{channel-options-DLPoMi6B.js → channel-options-6JzQN9nt.js} +3 -3
- package/dist/{channel-selection-D8KYuWir.js → channel-selection-DGtYwfd7.js} +1 -1
- package/dist/{channel-web-BMZ_oZSK.js → channel-web-oQImOucb.js} +18 -18
- package/dist/{channels-cli-sNDA9BU2.js → channels-cli-CzLX8jUv.js} +95 -95
- package/dist/{channels-status-issues-5n9kobSz.js → channels-status-issues-BMNB2aMG.js} +1 -1
- package/dist/{chrome-DuDCGdf-.js → chrome-DeZyLFsG.js} +4 -4
- package/dist/{chrome-CuMCXCQN.js → chrome-xatreDUO.js} +8 -8
- package/dist/{clawbot-cli-SIY_fH-I.js → clawbot-cli-H1Uj0ifV.js} +5 -5
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-Cjv-J_yg.js → cli-C2xvYknT.js} +76 -76
- package/dist/{client-BvL3EdiZ.js → client-vUKV2o6h.js} +2 -2
- package/dist/{command-registry-KfIoXPZE.js → command-registry-QcrBU_9X.js} +13 -13
- package/dist/{commands-C67IbXs7.js → commands-d8L0zY8O.js} +1 -1
- package/dist/{commands-registry-D0_D5hFV.js → commands-registry-C78O6aNi.js} +3 -3
- package/dist/{completion-cli-iCWrVHvc.js → completion-cli-BkWPjJyP.js} +13 -13
- package/dist/{completion-cli-SYxZGwWD.js → completion-cli-VWIJWtLM.js} +1 -1
- package/dist/{config-cli-5lP-lwj0.js → config-cli-B4WnAVfw.js} +7 -7
- package/dist/{config-guard-t_xLf16g.js → config-guard-RZw5NkPK.js} +3 -3
- package/dist/{config-validation-DkA3FBg8.js → config-validation-tb90Bzho.js} +3 -3
- package/dist/{configure-hI0hAw1W.js → configure-DuwIk56q.js} +17 -17
- package/dist/control-ui/assets/{index-DPyUb7lL.css → index-B5WC_0Be.css} +1 -1
- package/dist/control-ui/assets/{index-BlqD_sH7.js → index-DmJK8e2M.js} +2 -2
- package/dist/control-ui/assets/index-DmJK8e2M.js.map +1 -0
- package/dist/control-ui/index.html +2 -2
- package/dist/{control-ui-assets-M84PR-kz.js → control-ui-assets-Czpjuiah.js} +1 -1
- package/dist/{cron-cli-Bg88aQ8Y.js → cron-cli-D5MnhB5f.js} +12 -12
- package/dist/{daemon-cli-CFnqQB6M.js → daemon-cli-oCVkh3bg.js} +15 -15
- package/dist/{daemon-install-helpers-C1iBqd73.js → daemon-install-helpers-D5tste0V.js} +11 -11
- package/dist/{daemon-install-CdoMSH6S.js → daemon-install-vQ6KespE.js} +4 -4
- package/dist/{dashboard-CYa-ISxZ.js → dashboard-BstU6qkZ.js} +2 -2
- package/dist/{deliver-DTgCZWjU.js → deliver-H0xCFj4j.js} +7 -7
- package/dist/{deliver-Dyh8ZsLI.js → deliver-Z7543EnP.js} +1 -1
- package/dist/{devices-cli-9aOy3d7K.js → devices-cli-D6b6S-Iy.js} +8 -8
- package/dist/{diagnostic-Bvatw1Xn.js → diagnostic-DjxUqpmL.js} +1 -1
- package/dist/{diagnostics-DooDWHeF.js → diagnostics-vLzdmcgg.js} +5 -5
- package/dist/{directory-cli-Rk2cBm0A.js → directory-cli-D3o7BGMd.js} +8 -8
- package/dist/{dns-cli-BXhJBWtC.js → dns-cli-B5kqVfFd.js} +5 -5
- package/dist/{dock-DT8sACcR.js → dock-CoclJnwp.js} +4 -4
- package/dist/{docs-cli-D606Eb-M.js → docs-cli-CyjlhZAj.js} +4 -4
- package/dist/{doctor-completion-C7FCLVKC.js → doctor-completion-DGNL86eP.js} +1 -1
- package/dist/{doctor-completion-DNAwhmlY.js → doctor-completion-SBDS3edN.js} +2 -2
- package/dist/{doctor-config-flow-ePZ7ejQj.js → doctor-config-flow-DclZbGUP.js} +15 -15
- package/dist/{enable-CnvIWic7.js → enable-CKAw_GCd.js} +1 -1
- package/dist/entry.js +2 -2
- package/dist/{exec-approvals-allowlist-B4DS6FIn.js → exec-approvals-allowlist-CFjPSbxI.js} +1 -1
- package/dist/{exec-approvals-cli-Czp8csm7.js → exec-approvals-cli-U46MdeMi.js} +16 -16
- package/dist/{exec-safe-bin-runtime-policy-BP6ImlkB.js → exec-safe-bin-runtime-policy-CpMj95vJ.js} +2 -2
- package/dist/extensionAPI.js +6 -6
- package/dist/{fetch-DC-NMnAU.js → fetch-DOjg912W.js} +3 -3
- package/dist/{fetch-guard-B62rgaSw.js → fetch-guard-Csbz9pui.js} +1 -1
- package/dist/{fs-safe-CJDtl_QU.js → fs-safe-BqJ9egpm.js} +24 -24
- package/dist/{gateway-cli-BKhQZ6rL.js → gateway-cli-ADJ8WFzB.js} +267 -93
- package/dist/{gateway-cli-Cb1IDsaH.js → gateway-cli-D5wMqxbT.js} +423 -249
- package/dist/{gateway-rpc-BgV_ZJ92.js → gateway-rpc-DFqEAyI_.js} +1 -1
- package/dist/{health-DugDjq1f.js → health-Dzwp2cfK.js} +14 -14
- package/dist/{hooks-cli-VjmNvsLG.js → hooks-cli-DKAhHxZp.js} +84 -84
- package/dist/{hooks-status-DE20AAEu.js → hooks-status-6tcOdcYp.js} +1 -1
- package/dist/{image-BfqphdQM.js → image-BjuH1GKB.js} +5 -5
- package/dist/{image-DihIv8Eo.js → image-DQV2jl6F.js} +1 -1
- package/dist/{image-ops-BGTBZMuE.js → image-ops-B2L37gT8.js} +10 -10
- package/dist/index.js +1 -1
- package/dist/{inspect-DeP74OJO.js → inspect-DJUXn0vX.js} +4 -4
- package/dist/{install-safe-path-CWo3RPkH.js → install-safe-path-DVQh7rEs.js} +25 -25
- package/dist/{installs-BYqcA-ke.js → installs-jXfyPi74.js} +9 -9
- package/dist/{ipv4-BB1Ro6so.js → ipv4-DQS0lTwQ.js} +1 -1
- package/dist/{ir-DziC-P4Z.js → ir-CEwBpxhC.js} +6 -6
- package/dist/{issue-format-CqVkT3gT.js → issue-format-NBMJ5xAP.js} +1 -1
- package/dist/{json-files-CuJjdF_0.js → json-files-rR19q30D.js} +8 -8
- package/dist/{lifecycle-core-DAWYYqJl.js → lifecycle-core-oTVOKNSW.js} +5 -5
- package/dist/{login-CYfV0FRr.js → login-I5RlwiJn.js} +3 -3
- package/dist/{login-qr-DUSyrCPW.js → login-qr-CRjZn3ix.js} +6 -6
- package/dist/{logs-cli--IqfO6Fs.js → logs-cli-D2-73CiV.js} +9 -9
- package/dist/{manager-7hZXEYTj.js → manager-DWpiNvlg.js} +14 -14
- package/dist/{manifest-registry-Kbw8YPsZ.js → manifest-registry-CBF8Vfz8.js} +1 -1
- package/dist/{markdown-tables-BYHgyUjA.js → markdown-tables-DQlQMRGZ.js} +1 -1
- package/dist/{memory-cli-CuT-iG2F.js → memory-cli-BUrf60e_.js} +12 -12
- package/dist/{model-DmBmzJI6.js → model-DMZUvZJo.js} +2 -2
- package/dist/{model-catalog-D1X8r3WJ.js → model-catalog-DFi9HgWu.js} +3 -3
- package/dist/{model-picker-CrYHvOZH.js → model-picker-DFyoaAce.js} +4 -4
- package/dist/{models-BwUaRaeh.js → models-B-VHfTz-.js} +18 -18
- package/dist/{models-cli-DPvtAoJ-.js → models-cli-DQBbzn_p.js} +81 -81
- package/dist/{models-config-CmrBGsQs.js → models-config-AePb9RAo.js} +6 -6
- package/dist/{net-BXeYv7Iu.js → net-C75G4fup.js} +2 -2
- package/dist/{node-cli-Co4McDQy.js → node-cli-UnJ5obvj.js} +33 -33
- package/dist/{node-command-policy-D7hSN9B8.js → node-command-policy-DMwxqhrG.js} +1 -1
- package/dist/{node-service-CzRylWgI.js → node-service-83OYUi14.js} +1 -1
- package/dist/{nodes-cli-wABD1dZs.js → nodes-cli-U66EhW5E.js} +16 -16
- package/dist/{nodes-screen-DcxCMjOs.js → nodes-screen-BHwVUMr8.js} +7 -7
- package/dist/{npm-pack-install-BGN-e1vW.js → npm-pack-install-1gsZywqI.js} +18 -18
- package/dist/{npm-resolution-Dp9ywE7U.js → npm-resolution-ZwcMp-e1.js} +5 -5
- package/dist/{onboard-tlfs9gUN.js → onboard-1RaJpuJ4.js} +1 -1
- package/dist/{onboard-DfDL2v89.js → onboard-Ce_QcPvd.js} +6 -6
- package/dist/{onboard-channels-CjyJiI4i.js → onboard-channels-BLL6tVVk.js} +20 -20
- package/dist/{onboard-custom-WfZ3J4O7.js → onboard-custom-CltkNK3c.js} +3 -3
- package/dist/{onboard-custom.shared-D52ggtQF.js → onboard-custom.shared-CXzE62ZH.js} +2 -2
- package/dist/{onboard-helpers-CczYNQDJ.js → onboard-helpers-D8lLbK3A.js} +11 -11
- package/dist/{onboard-hooks-o0B0p8tR.js → onboard-hooks-DBif0Jq8.js} +4 -4
- package/dist/{onboard-remote-DTz_Z9Xl.js → onboard-remote-DpEjARZa.js} +3 -3
- package/dist/{onboard-skills-D70PenD-.js → onboard-skills-CL0tHf_N.js} +4 -4
- package/dist/{onboarding-H5cLNUFG.js → onboarding-Rub9MXWB.js} +1 -1
- package/dist/{onboarding-DNV-TKzA.js → onboarding-WDRpEgra.js} +13 -13
- package/dist/{onboarding.finalize-C6UdLnH3.js → onboarding.finalize-CWYrjSVx.js} +89 -89
- package/dist/{onboarding.finalize-DfZFzt37.js → onboarding.finalize-MTyP_Dr4.js} +3 -3
- package/dist/{onboarding.gateway-config-CnQR4xLI.js → onboarding.gateway-config-Ce8ndMkF.js} +18 -18
- package/dist/{openai-model-default-DqKKq57j.js → openai-model-default-XM-ZB1MD.js} +2 -2
- package/dist/{outbound-Dv-MM4iv.js → outbound-CHyBoNxD.js} +4 -4
- package/dist/{outbound-attachment-CXINK8df.js → outbound-attachment-DM-h2uQ1.js} +2 -2
- package/dist/{pairing-cli-BUHAN0R5.js → pairing-cli-DUMMuvWC.js} +9 -9
- package/dist/{pairing-labels-CFSUHOmk.js → pairing-labels-x4akYNb7.js} +1 -1
- package/dist/{pairing-store-BfzlN-z9.js → pairing-store-rFuiIoGM.js} +3 -3
- package/dist/{path-alias-guards-Cg9ZP1NN.js → path-alias-guards-laKq24fx.js} +3 -3
- package/dist/{path-safety-tZSbJG67.js → path-safety-BxYB92SS.js} +1 -1
- package/dist/{paths-BjoSX1aC.js → paths-B_L2Zoe-.js} +9 -9
- package/dist/{pi-embedded-xCcmCTnf.js → pi-embedded-CZAvX74y.js} +22 -22
- package/dist/{pi-embedded-helpers-C3sJPGXn.js → pi-embedded-helpers-BB2whkUz.js} +6 -6
- package/dist/{pi-embedded-helpers-Bmj18lhA.js → pi-embedded-helpers-DK1ft2pf.js} +3 -3
- package/dist/{pi-model-discovery-BZ2RCD_u.js → pi-model-discovery-RrejIg26.js} +1 -1
- package/dist/{pi-tools.policy-BH0D2kX0.js → pi-tools.policy-DRW8ya1z.js} +5 -5
- package/dist/{plugin-auto-enable-DER6qA6X.js → plugin-auto-enable-S_lBQAKI.js} +3 -3
- package/dist/{plugin-registry-CmucB2C0.js → plugin-registry-C2g1aLrK.js} +3 -3
- package/dist/{plugins-vsjS_m58.js → plugins-C4cYqW07.js} +2 -2
- package/dist/{plugins-cli-DJFtia9f.js → plugins-cli-Cdug93Mi.js} +86 -86
- package/dist/{ports-sCOQUaAP.js → ports-DRaxdQmm.js} +2 -2
- package/dist/{ports-zWusnrvP.js → ports-tfS1haOJ.js} +1 -1
- package/dist/{program-BkK1YIQS.js → program-L4hhvW67.js} +84 -84
- package/dist/{program-context-CFNQpYpG.js → program-context-BEPxCThZ.js} +7 -7
- package/dist/{prompt-select-styled-DlC5a1xd.js → prompt-select-styled-CYmsrkR3.js} +39 -39
- package/dist/{prompt-select-styled-DGdjezC8.js → prompt-select-styled-DTqU-r5T.js} +3 -3
- package/dist/{provider-auth-helpers-CJ2_W1oy.js → provider-auth-helpers-CNkIHUuF.js} +5 -5
- package/dist/{proxy-env-BQIJPH4j.js → proxy-env-BoopXu2J.js} +1 -1
- package/dist/{push-apns-BKjyYFyk.js → push-apns-DRX0c6-y.js} +5 -5
- package/dist/{pw-ai-pqeoAqm_.js → pw-ai-CMUrm_kS.js} +1 -1
- package/dist/{pw-ai-ITbRRqVN.js → pw-ai-DyGZ1pXu.js} +15 -15
- package/dist/{qmd-manager-BNohLpRA.js → qmd-manager-Bo22w5wm.js} +20 -20
- package/dist/{qr-cli-D-LqDNlm.js → qr-cli-EHSe4TmR.js} +1 -1
- package/dist/{query-expansion-BrM3X6-L.js → query-expansion-Ba9OpCm9.js} +12 -12
- package/dist/{redact-snapshot-D3QFNQl8.js → redact-snapshot-kY3aFpcF.js} +1 -1
- package/dist/{register.agent-C3K3DXul.js → register.agent-CaCz2lnX.js} +97 -97
- package/dist/register.configure-BHL2CNOY.js +174 -0
- package/dist/{register.init-ClMzXUKm.js → register.init-D4hlhvsq.js} +15 -15
- package/dist/{register.maintenance-Bb8amfJh.js → register.maintenance-DsxNo00b.js} +6 -6
- package/dist/{register.maintenance-zsZrRIaB.js → register.maintenance-MJR5bDWC.js} +99 -99
- package/dist/{register.message-CfRd6EM2.js → register.message-ChJGE4xV.js} +77 -77
- package/dist/{register.onboard-qFRFDsPK.js → register.onboard-4aB9FmjK.js} +2 -2
- package/dist/{register.onboard-BFM29BaY.js → register.onboard-CRCrMN8O.js} +18 -18
- package/dist/{register.setup-D0E9z_QW.js → register.setup-CCPeU8WO.js} +2 -2
- package/dist/{register.setup-Caqvvqmm.js → register.setup-DqRNRiXi.js} +21 -21
- package/dist/{register.start-CrwDVujg.js → register.start-D3IRihbV.js} +17 -17
- package/dist/{register.status-health-sessions-CWb4-Kgs.js → register.status-health-sessions-EhCB2a7v.js} +3 -3
- package/dist/{register.status-health-sessions-BBEF4th9.js → register.status-health-sessions-zD3z2YuT.js} +91 -91
- package/dist/{register.subclis-rB1Roe3w.js → register.subclis-D12iC4nF.js} +31 -31
- package/dist/{replies-Ckd7Lwt0.js → replies-BDnb0prE.js} +1 -1
- package/dist/{reply-prefix-DpXMFuAa.js → reply-prefix-H_GSyyzN.js} +1 -1
- package/dist/{resolve-route-Cnto8LMw.js → resolve-route-ByAwAiq5.js} +2 -2
- package/dist/{rpc-9G93KhBv.js → rpc-Bzb0JMJ_.js} +1 -1
- package/dist/{run-main-C02l3ZhV.js → run-main-C_fGUv-Y.js} +95 -95
- package/dist/{runtime-BI0xjrHi.js → runtime-Cx-7xFzl.js} +2 -2
- package/dist/{sandbox-CLIUxOtc.js → sandbox-BLqUWbp2.js} +18 -18
- package/dist/{sandbox-cli-MjHZjW2w.js → sandbox-cli-CEriRvUh.js} +26 -26
- package/dist/{secrets-cli-BFU9jh2A.js → secrets-cli-DG-NG8PH.js} +10 -10
- package/dist/{security-cli-DIfmEZrw.js → security-cli-C_Bc1U-7.js} +43 -43
- package/dist/{send-e1X1pfda.js → send-BCLu4NEE.js} +6 -6
- package/dist/{send-BpXRh0BM.js → send-BTswySBz.js} +11 -11
- package/dist/{send-CQJKPGw4.js → send-CZ2O-5pP.js} +6 -6
- package/dist/{send-sj8Hu26l.js → send-D0X-8aPh.js} +8 -8
- package/dist/{send-Cpaj_bKB.js → send-ZyB64ntO.js} +5 -5
- package/dist/{server-DbB5aXZq.js → server-CzDsmd9g.js} +19 -19
- package/dist/{server-context-DnPsW_Mg.js → server-context-DRq_OT33.js} +12 -12
- package/dist/{server-lifecycle-B2y6Fg7R.js → server-lifecycle-CcYnyYPQ.js} +2 -2
- package/dist/{server-middleware-CKSnhiM2.js → server-middleware-DHxnFjIL.js} +1 -1
- package/dist/{server-node-events-BwnXBzS2.js → server-node-events-B5xSV7Kq.js} +77 -77
- package/dist/{service-Wk285d-R.js → service-CZORJG4z.js} +15 -15
- package/dist/{session-meta-DF1WT4cr.js → session-meta-Cew1QAYN.js} +1 -1
- package/dist/{session-DNbfXbBi.js → session-nilNSQEL.js} +1 -1
- package/dist/{session-utils-BncMg1bn.js → session-utils-DxaIoRMp.js} +6 -6
- package/dist/{sessions-B2mnwD21.js → sessions-BXz4gdq6.js} +15 -15
- package/dist/{sessions-C2Xfck_9.js → sessions-DhD3eJDE.js} +4 -4
- package/dist/{shared-CJN2BLdi.js → shared-BZscafy-.js} +1 -1
- package/dist/{shared-BAdi_Ot7.js → shared-DvHQekWm.js} +3 -3
- package/dist/{skill-commands-CYucDd3C.js → skill-commands-Cpr3Poo2.js} +5 -5
- package/dist/{skill-scanner-BXOiOvI1.js → skill-scanner-0-AybMIe.js} +6 -6
- package/dist/{skills-BCgFAMj3.js → skills-D4S-gyVf.js} +3 -3
- package/dist/{skills-cli-CwbRKLum.js → skills-cli-B0jFsoo4.js} +5 -5
- package/dist/{skills-install-BQyeS7wB.js → skills-install-C6-Zzqoi.js} +6 -6
- package/dist/{skills-status-DG-bH5mO.js → skills-status-DQzBD0Y7.js} +1 -1
- package/dist/{status-B4v5QI5X.js → status-BfWqYNJf.js} +2 -2
- package/dist/{status-XGYDzhkW.js → status-Dw7ag8qn.js} +26 -26
- package/dist/{status.update-n2QPQr8w.js → status.update-B6whKviL.js} +2 -2
- package/dist/{status.update-DIamQqHr.js → status.update-C8qgou8r.js} +1 -1
- package/dist/{store-U8cs0QvT.js → store-TdzSHRPN.js} +5 -5
- package/dist/{subagent-registry-WD5F6cBf.js → subagent-registry-D6OfBLNb.js} +156 -156
- package/dist/{system-cli-C_5YHHhF.js → system-cli-BoamUpxz.js} +9 -9
- package/dist/{system-run-command-GKGzGztn.js → system-run-command-XHAlbx5q.js} +1 -1
- package/dist/{systemd-Dbwmb4TX.js → systemd-C4JtDaKk.js} +9 -9
- package/dist/{systemd-hints-VM2JkQxw.js → systemd-hints-ZHrBbXDd.js} +6 -6
- package/dist/{systemd-linger-DoeP9Z3f.js → systemd-linger-CD4viBmg.js} +1 -1
- package/dist/{tables-DVXe5x1J.js → tables-BOsRa7CS.js} +1 -1
- package/dist/{tailnet-C1XBcWue.js → tailnet-CfP3A6g2.js} +1 -1
- package/dist/{target-errors-C5LA-JI-.js → target-errors-DPJ9HFp9.js} +4 -4
- package/dist/{tool-images-CnpAosfi.js → tool-images-CmgHk8xk.js} +1 -1
- package/dist/{tui-kOoc7WBf.js → tui-GWJMI53u.js} +6 -6
- package/dist/{tui-cli-DeTfdnEG.js → tui-cli-CMrxH2Q_.js} +33 -33
- package/dist/{update-DFr19tQ1.js → update-CDWJ50iD.js} +3 -3
- package/dist/{update-cli-CUSnVFt4.js → update-cli-Dw_JHcRy.js} +22 -14
- package/dist/{update-cli-BlswPThb.js → update-cli-r3eyhSgp.js} +122 -114
- package/dist/{update-runner-CX6jOI_r.js → update-runner-CHxTFtW8.js} +34 -22
- package/dist/{update-runner-BA9B0S60.js → update-runner-CJua_LZ3.js} +19 -7
- package/dist/web-B4yuhy9a.js +125 -0
- package/dist/{web-CvYmNThc.js → web-De45Xhd1.js} +6 -6
- package/dist/{webhooks-cli-DLgCJq4n.js → webhooks-cli-B09BdLSk.js} +6 -6
- package/dist/{whatsapp-actions-B81EJMQI.js → whatsapp-actions-DUoWY7mE.js} +19 -19
- package/dist/{with-timeout-l0X_rwcb.js → with-timeout-B9qgOUui.js} +3 -3
- package/dist/{workspace-DWBFoy1G.js → workspace-A5CNJccm.js} +1 -1
- package/dist/{workspace-BHfqkuYN.js → workspace-DzeL98px.js} +23 -23
- package/dist/{workspace-dirs-BOgNOBjy.js → workspace-dirs-Bevk6X_8.js} +1 -1
- package/dist/{wsl-BDRu1-pk.js → wsl-DksyFTBT.js} +2 -2
- package/docs/install/index.md +12 -12
- package/docs/install/updating.md +32 -33
- package/docs/plans/2026-03-11-bitseek-update-package-design.md +25 -0
- package/package.json +1 -1
- package/dist/control-ui/assets/index-BlqD_sH7.js.map +0 -1
- package/dist/register.configure-aJItV_ZP.js +0 -174
- package/dist/web-DNL22pwf.js +0 -125
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-0J6eKf3g.js";
|
|
2
|
-
import { n as callGateway } from "./call-
|
|
2
|
+
import { n as callGateway } from "./call-CmAGfSJE.js";
|
|
3
3
|
import { n as withProgress } from "./progress-CwQKn0ae.js";
|
|
4
4
|
|
|
5
5
|
//#region src/cli/gateway-rpc.ts
|
|
@@ -2,26 +2,26 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
|
2
2
|
import { f as isRich, n as info, p as theme } from "./globals-B68W7uN8.js";
|
|
3
3
|
import { d as defaultRuntime, t as createSubsystemLogger } from "./subsystem-DjdBljTA.js";
|
|
4
4
|
import { r as isTruthyEnvValue } from "./entry.js";
|
|
5
|
-
import { M as loadConfig, at as parseDurationMs } from "./auth-profiles-
|
|
6
|
-
import { d as resolveDefaultAgentId, i as resolveAgentConfig, u as resolveAgentWorkspaceDir } from "./agent-scope-
|
|
5
|
+
import { M as loadConfig, at as parseDurationMs } from "./auth-profiles-CyG9VwU_.js";
|
|
6
|
+
import { d as resolveDefaultAgentId, i as resolveAgentConfig, u as resolveAgentWorkspaceDir } from "./agent-scope-CY2-lUIY.js";
|
|
7
7
|
import { c as normalizeAgentId, m as toAgentStoreSessionKey, u as resolveAgentIdFromSessionKey } from "./session-key-BLprDJYq.js";
|
|
8
8
|
import { c as escapeRegExp } from "./utils-DIzy5B5o.js";
|
|
9
|
-
import { i as DEFAULT_HEARTBEAT_FILENAME } from "./workspace-
|
|
10
|
-
import { $ as resolveAgentMainSessionKey, Q as canonicalizeMainSessionAlias, d as updateSessionStore, l as saveSessionStore, o as loadSessionStore } from "./sessions-
|
|
11
|
-
import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-
|
|
12
|
-
import { a as resolvePreferredAccountId, t as buildChannelAccountBindings } from "./bindings-
|
|
13
|
-
import { Bn as resolveHeartbeatReasonKind, Fr as resolveHeartbeatPrompt$1, In as peekSystemEventEntries, Ir as stripHeartbeatToken, Mr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Nr as DEFAULT_HEARTBEAT_EVERY, Pr as isHeartbeatContentEffectivelyEmpty, Rn as requestHeartbeatNow, Tr as getQueueSize, at as getReplyFromConfig, jr as CommandLane, ln as buildOutboundSessionContext, lr as resolveUserTimezone, st as appendCronStyleCurrentTimeLine, vt as resolveHeartbeatDeliveryTarget, yt as resolveHeartbeatSenderContext, zn as setHeartbeatWakeHandler } from "./subagent-registry-
|
|
9
|
+
import { i as DEFAULT_HEARTBEAT_FILENAME } from "./workspace-DzeL98px.js";
|
|
10
|
+
import { $ as resolveAgentMainSessionKey, Q as canonicalizeMainSessionAlias, d as updateSessionStore, l as saveSessionStore, o as loadSessionStore } from "./sessions-BXz4gdq6.js";
|
|
11
|
+
import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-C4cYqW07.js";
|
|
12
|
+
import { a as resolvePreferredAccountId, t as buildChannelAccountBindings } from "./bindings-DGvp9FdD.js";
|
|
13
|
+
import { Bn as resolveHeartbeatReasonKind, Fr as resolveHeartbeatPrompt$1, In as peekSystemEventEntries, Ir as stripHeartbeatToken, Mr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Nr as DEFAULT_HEARTBEAT_EVERY, Pr as isHeartbeatContentEffectivelyEmpty, Rn as requestHeartbeatNow, Tr as getQueueSize, at as getReplyFromConfig, jr as CommandLane, ln as buildOutboundSessionContext, lr as resolveUserTimezone, st as appendCronStyleCurrentTimeLine, vt as resolveHeartbeatDeliveryTarget, yt as resolveHeartbeatSenderContext, zn as setHeartbeatWakeHandler } from "./subagent-registry-D6OfBLNb.js";
|
|
14
14
|
import { c as resolveStorePath, n as resolveSessionFilePath } from "./paths-CTtLmER4.js";
|
|
15
|
-
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-
|
|
15
|
+
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CmAGfSJE.js";
|
|
16
16
|
import { t as HEARTBEAT_TOKEN } from "./tokens-DyLBF_df.js";
|
|
17
|
-
import { t as deliverOutboundPayloads } from "./deliver-
|
|
17
|
+
import { t as deliverOutboundPayloads } from "./deliver-H0xCFj4j.js";
|
|
18
18
|
import { a as hasErrnoCode, r as formatErrorMessage } from "./errors-BJz45-qI.js";
|
|
19
|
-
import { o as resolveEffectiveMessagesConfig } from "./reply-prefix-
|
|
19
|
+
import { o as resolveEffectiveMessagesConfig } from "./reply-prefix-H_GSyyzN.js";
|
|
20
20
|
import { n as withProgress } from "./progress-CwQKn0ae.js";
|
|
21
21
|
import { a as resolveIndicatorType, n as emitHeartbeatEvent, o as resolveHeartbeatReplyPayload, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-C_P1yurK.js";
|
|
22
22
|
import { t as resolveChannelDefaultAccountId } from "./helpers-B7sHmVvT.js";
|
|
23
23
|
import path from "node:path";
|
|
24
|
-
import
|
|
24
|
+
import fsPromises from "node:fs/promises";
|
|
25
25
|
|
|
26
26
|
//#region src/infra/heartbeat-active-hours.ts
|
|
27
27
|
const ACTIVE_HOURS_TIME_PATTERN = /^(?:([01]\d|2[0-3]):([0-5]\d)|24:00)$/;
|
|
@@ -315,7 +315,7 @@ async function pruneHeartbeatTranscript(params) {
|
|
|
315
315
|
const { transcriptPath, preHeartbeatSize } = params;
|
|
316
316
|
if (!transcriptPath || typeof preHeartbeatSize !== "number" || preHeartbeatSize < 0) return;
|
|
317
317
|
try {
|
|
318
|
-
if ((await
|
|
318
|
+
if ((await fsPromises.stat(transcriptPath)).size > preHeartbeatSize) await fsPromises.truncate(transcriptPath, preHeartbeatSize);
|
|
319
319
|
} catch {}
|
|
320
320
|
}
|
|
321
321
|
/**
|
|
@@ -333,7 +333,7 @@ async function captureTranscriptState(params) {
|
|
|
333
333
|
});
|
|
334
334
|
return {
|
|
335
335
|
transcriptPath,
|
|
336
|
-
preHeartbeatSize: (await
|
|
336
|
+
preHeartbeatSize: (await fsPromises.stat(transcriptPath)).size
|
|
337
337
|
};
|
|
338
338
|
} catch {
|
|
339
339
|
return {};
|
|
@@ -390,7 +390,7 @@ async function resolveHeartbeatPreflight(params) {
|
|
|
390
390
|
const workspaceDir = resolveAgentWorkspaceDir(params.cfg, params.agentId);
|
|
391
391
|
const heartbeatFilePath = path.join(workspaceDir, DEFAULT_HEARTBEAT_FILENAME);
|
|
392
392
|
try {
|
|
393
|
-
if (isHeartbeatContentEffectivelyEmpty(await
|
|
393
|
+
if (isHeartbeatContentEffectivelyEmpty(await fsPromises.readFile(heartbeatFilePath, "utf-8"))) return {
|
|
394
394
|
...basePreflight,
|
|
395
395
|
skipReason: "empty-heartbeat-file"
|
|
396
396
|
};
|
|
@@ -2,11 +2,11 @@ import { p as theme } from "./globals-B68W7uN8.js";
|
|
|
2
2
|
import "./paths-BnKiOk2S.js";
|
|
3
3
|
import { d as defaultRuntime } from "./subsystem-DjdBljTA.js";
|
|
4
4
|
import "./boolean-DtWR5bt3.js";
|
|
5
|
-
import { M as loadConfig, R as writeConfigFile } from "./auth-profiles-
|
|
5
|
+
import { M as loadConfig, R as writeConfigFile } from "./auth-profiles-CyG9VwU_.js";
|
|
6
6
|
import { t as formatCliCommand } from "./command-format-CVXyxgq3.js";
|
|
7
|
-
import { d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-
|
|
7
|
+
import { d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-CY2-lUIY.js";
|
|
8
8
|
import { t as CONFIG_DIR, v as resolveUserPath, x as shortenHomePath } from "./utils-DIzy5B5o.js";
|
|
9
|
-
import "./workspace-
|
|
9
|
+
import "./workspace-DzeL98px.js";
|
|
10
10
|
import "./logger-BJMfryJd.js";
|
|
11
11
|
import "./exec-CEAvKSx9.js";
|
|
12
12
|
import "./github-copilot-token-CulJ9J5l.js";
|
|
@@ -15,119 +15,119 @@ import "./version-CGDNfh5C.js";
|
|
|
15
15
|
import "./env-vars-Dw0EwyGP.js";
|
|
16
16
|
import { a as isPathInsideWithRealpath, i as isPathInside, n as MANIFEST_KEY } from "./legacy-names-D3aIn6ij.js";
|
|
17
17
|
import "./registry-7fg1BnMw.js";
|
|
18
|
-
import "./manifest-registry-
|
|
19
|
-
import "./dock-
|
|
20
|
-
import "./model-
|
|
21
|
-
import "./pi-model-discovery-
|
|
18
|
+
import "./manifest-registry-CBF8Vfz8.js";
|
|
19
|
+
import "./dock-CoclJnwp.js";
|
|
20
|
+
import "./model-DMZUvZJo.js";
|
|
21
|
+
import "./pi-model-discovery-RrejIg26.js";
|
|
22
22
|
import "./frontmatter-C0E8mspC.js";
|
|
23
|
-
import { S as validateRegistryNpmSpec } from "./skills-
|
|
24
|
-
import "./path-alias-guards-
|
|
23
|
+
import { S as validateRegistryNpmSpec } from "./skills-D4S-gyVf.js";
|
|
24
|
+
import "./path-alias-guards-laKq24fx.js";
|
|
25
25
|
import "./message-channel-0J6eKf3g.js";
|
|
26
|
-
import "./sessions-
|
|
27
|
-
import "./plugins-
|
|
28
|
-
import "./accounts-
|
|
29
|
-
import "./accounts-
|
|
26
|
+
import "./sessions-BXz4gdq6.js";
|
|
27
|
+
import "./plugins-C4cYqW07.js";
|
|
28
|
+
import "./accounts-Cv5CUnT4.js";
|
|
29
|
+
import "./accounts-2NNZ6Hbp.js";
|
|
30
30
|
import "./logging-5MtSkLpb.js";
|
|
31
|
-
import "./accounts-
|
|
32
|
-
import "./bindings-
|
|
33
|
-
import "./send-
|
|
34
|
-
import "./send-
|
|
35
|
-
import "./subagent-registry-
|
|
31
|
+
import "./accounts-NHpMJ0aq.js";
|
|
32
|
+
import "./bindings-DGvp9FdD.js";
|
|
33
|
+
import "./send-ZyB64ntO.js";
|
|
34
|
+
import "./send-BTswySBz.js";
|
|
35
|
+
import "./subagent-registry-D6OfBLNb.js";
|
|
36
36
|
import "./paths-CTtLmER4.js";
|
|
37
37
|
import "./chat-envelope-D3RSz140.js";
|
|
38
|
-
import "./client-
|
|
39
|
-
import "./call-
|
|
38
|
+
import "./client-vUKV2o6h.js";
|
|
39
|
+
import "./call-CmAGfSJE.js";
|
|
40
40
|
import "./pairing-token-DoBZxQnC.js";
|
|
41
|
-
import "./net-
|
|
42
|
-
import "./tailnet-
|
|
41
|
+
import "./net-C75G4fup.js";
|
|
42
|
+
import "./tailnet-CfP3A6g2.js";
|
|
43
43
|
import "./tokens-DyLBF_df.js";
|
|
44
|
-
import "./with-timeout-
|
|
45
|
-
import "./deliver-
|
|
46
|
-
import "./diagnostic-
|
|
44
|
+
import "./with-timeout-B9qgOUui.js";
|
|
45
|
+
import "./deliver-H0xCFj4j.js";
|
|
46
|
+
import "./diagnostic-DjxUqpmL.js";
|
|
47
47
|
import "./diagnostic-session-state-Dx-rJXBO.js";
|
|
48
|
-
import "./send-
|
|
49
|
-
import "./image-ops-
|
|
50
|
-
import "./pi-embedded-helpers-
|
|
51
|
-
import "./sandbox-
|
|
48
|
+
import "./send-D0X-8aPh.js";
|
|
49
|
+
import "./image-ops-B2L37gT8.js";
|
|
50
|
+
import "./pi-embedded-helpers-BB2whkUz.js";
|
|
51
|
+
import "./sandbox-BLqUWbp2.js";
|
|
52
52
|
import "./tool-catalog-uQj_-Ahx.js";
|
|
53
|
-
import "./chrome-
|
|
53
|
+
import "./chrome-DeZyLFsG.js";
|
|
54
54
|
import { l as promptYesNo } from "./tailscale-D3xGoMdQ.js";
|
|
55
|
-
import "./auth-
|
|
56
|
-
import "./server-context-
|
|
57
|
-
import "./paths-
|
|
55
|
+
import "./auth-anvTU0Sb.js";
|
|
56
|
+
import "./server-context-DRq_OT33.js";
|
|
57
|
+
import "./paths-B_L2Zoe-.js";
|
|
58
58
|
import "./redact-Ck5U_y4i.js";
|
|
59
59
|
import "./errors-BJz45-qI.js";
|
|
60
|
-
import "./fs-safe-
|
|
61
|
-
import "./proxy-env-
|
|
62
|
-
import "./store-
|
|
63
|
-
import "./ports-
|
|
60
|
+
import "./fs-safe-BqJ9egpm.js";
|
|
61
|
+
import "./proxy-env-BoopXu2J.js";
|
|
62
|
+
import "./store-TdzSHRPN.js";
|
|
63
|
+
import "./ports-DRaxdQmm.js";
|
|
64
64
|
import "./trash-ClChDUTf.js";
|
|
65
|
-
import "./server-middleware-
|
|
66
|
-
import "./tool-images-
|
|
65
|
+
import "./server-middleware-DHxnFjIL.js";
|
|
66
|
+
import "./tool-images-CmgHk8xk.js";
|
|
67
67
|
import "./thinking-pYqswKJZ.js";
|
|
68
|
-
import "./models-config-
|
|
69
|
-
import "./exec-approvals-allowlist-
|
|
70
|
-
import "./exec-safe-bin-runtime-policy-
|
|
71
|
-
import "./model-catalog-
|
|
72
|
-
import "./fetch-
|
|
73
|
-
import "./audio-transcription-runner-
|
|
74
|
-
import "./fetch-guard-
|
|
75
|
-
import "./image-
|
|
68
|
+
import "./models-config-AePb9RAo.js";
|
|
69
|
+
import "./exec-approvals-allowlist-CFjPSbxI.js";
|
|
70
|
+
import "./exec-safe-bin-runtime-policy-CpMj95vJ.js";
|
|
71
|
+
import "./model-catalog-DFi9HgWu.js";
|
|
72
|
+
import "./fetch-DOjg912W.js";
|
|
73
|
+
import "./audio-transcription-runner-DkibzFT2.js";
|
|
74
|
+
import "./fetch-guard-Csbz9pui.js";
|
|
75
|
+
import "./image-BjuH1GKB.js";
|
|
76
76
|
import "./tool-display-0M664wep.js";
|
|
77
|
-
import "./api-key-rotation-
|
|
77
|
+
import "./api-key-rotation-Cf7QM5M_.js";
|
|
78
78
|
import "./proxy-fetch-DEHZt1Tx.js";
|
|
79
|
-
import "./reply-prefix-
|
|
79
|
+
import "./reply-prefix-H_GSyyzN.js";
|
|
80
80
|
import "./chunk-kLPohhLl.js";
|
|
81
|
-
import "./markdown-tables-
|
|
82
|
-
import "./ir-
|
|
81
|
+
import "./markdown-tables-DQlQMRGZ.js";
|
|
82
|
+
import "./ir-CEwBpxhC.js";
|
|
83
83
|
import "./render-CXDO_kgw.js";
|
|
84
|
-
import "./target-errors-
|
|
85
|
-
import "./commands-
|
|
86
|
-
import "./commands-registry-
|
|
84
|
+
import "./target-errors-DPJ9HFp9.js";
|
|
85
|
+
import "./commands-d8L0zY8O.js";
|
|
86
|
+
import "./commands-registry-C78O6aNi.js";
|
|
87
87
|
import "./fetch-BM2hI5N6.js";
|
|
88
88
|
import "./retry-DwXRBpwv.js";
|
|
89
|
-
import "./pairing-store-
|
|
89
|
+
import "./pairing-store-rFuiIoGM.js";
|
|
90
90
|
import "./exec-approvals-HRn5F9dF.js";
|
|
91
|
-
import "./nodes-screen-
|
|
92
|
-
import "./system-run-command-
|
|
93
|
-
import "./session-utils-
|
|
91
|
+
import "./nodes-screen-BHwVUMr8.js";
|
|
92
|
+
import "./system-run-command-XHAlbx5q.js";
|
|
93
|
+
import "./session-utils-DxaIoRMp.js";
|
|
94
94
|
import "./session-cost-usage-BCEcVVJ6.js";
|
|
95
|
-
import "./skill-commands-
|
|
96
|
-
import "./workspace-dirs-
|
|
95
|
+
import "./skill-commands-Cpr3Poo2.js";
|
|
96
|
+
import "./workspace-dirs-Bevk6X_8.js";
|
|
97
97
|
import "./channel-activity-C-cvytUe.js";
|
|
98
|
-
import "./tables-
|
|
99
|
-
import "./server-lifecycle-
|
|
98
|
+
import "./tables-BOsRa7CS.js";
|
|
99
|
+
import "./server-lifecycle-CcYnyYPQ.js";
|
|
100
100
|
import "./stagger-Cek4Eizw.js";
|
|
101
|
-
import "./channel-selection-
|
|
102
|
-
import "./plugin-auto-enable-
|
|
103
|
-
import "./send-
|
|
104
|
-
import "./outbound-attachment-
|
|
101
|
+
import "./channel-selection-DGtYwfd7.js";
|
|
102
|
+
import "./plugin-auto-enable-S_lBQAKI.js";
|
|
103
|
+
import "./send-CZ2O-5pP.js";
|
|
104
|
+
import "./outbound-attachment-DM-h2uQ1.js";
|
|
105
105
|
import "./delivery-queue-DhqwvOP8.js";
|
|
106
|
-
import "./send-
|
|
107
|
-
import "./resolve-route-
|
|
108
|
-
import "./pi-tools.policy-
|
|
106
|
+
import "./send-BCLu4NEE.js";
|
|
107
|
+
import "./resolve-route-ByAwAiq5.js";
|
|
108
|
+
import "./pi-tools.policy-DRW8ya1z.js";
|
|
109
109
|
import "./proxy-Dz7xT2Z_.js";
|
|
110
|
-
import "./replies-
|
|
111
|
-
import "./onboard-helpers-
|
|
110
|
+
import "./replies-BDnb0prE.js";
|
|
111
|
+
import "./onboard-helpers-D8lLbK3A.js";
|
|
112
112
|
import "./prompt-style-CzS6Prvl.js";
|
|
113
|
-
import "./pairing-labels-
|
|
114
|
-
import "./session-meta-
|
|
115
|
-
import "./memory-cli-
|
|
116
|
-
import "./manager-
|
|
117
|
-
import "./query-expansion-
|
|
113
|
+
import "./pairing-labels-x4akYNb7.js";
|
|
114
|
+
import "./session-meta-Cew1QAYN.js";
|
|
115
|
+
import "./memory-cli-BUrf60e_.js";
|
|
116
|
+
import "./manager-DWpiNvlg.js";
|
|
117
|
+
import "./query-expansion-Ba9OpCm9.js";
|
|
118
118
|
import { t as formatDocsLink } from "./links-BDNlbZvM.js";
|
|
119
119
|
import "./cli-utils-k9A6CA1o.js";
|
|
120
120
|
import "./help-format-B3bKmDqF.js";
|
|
121
121
|
import "./progress-CwQKn0ae.js";
|
|
122
|
-
import { a as unscopedPackageName, c as fileExists, l as readJsonFile, n as resolveSafeInstallDir, u as resolveArchiveKind } from "./install-safe-path-
|
|
123
|
-
import { a as installPackageDir, c as resolveTimedInstallModeOptions, f as resolveArchiveSourcePath, i as resolveCanonicalInstallTarget, l as resolveExistingInstallPath, n as installFromNpmSpecArchiveWithInstaller, o as installPackageDirWithManifestDeps, r as ensureInstallTargetAvailable, s as resolveInstallModeOptions, t as finalizeNpmSpecArchiveInstall, u as withExtractedArchiveRoot } from "./npm-pack-install-
|
|
122
|
+
import { a as unscopedPackageName, c as fileExists, l as readJsonFile, n as resolveSafeInstallDir, u as resolveArchiveKind } from "./install-safe-path-DVQh7rEs.js";
|
|
123
|
+
import { a as installPackageDir, c as resolveTimedInstallModeOptions, f as resolveArchiveSourcePath, i as resolveCanonicalInstallTarget, l as resolveExistingInstallPath, n as installFromNpmSpecArchiveWithInstaller, o as installPackageDirWithManifestDeps, r as ensureInstallTargetAvailable, s as resolveInstallModeOptions, t as finalizeNpmSpecArchiveInstall, u as withExtractedArchiveRoot } from "./npm-pack-install-1gsZywqI.js";
|
|
124
124
|
import { t as renderTable } from "./table-BHL_2Py1.js";
|
|
125
|
-
import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-
|
|
126
|
-
import { t as buildWorkspaceHookStatus } from "./hooks-status-
|
|
127
|
-
import { i as buildPluginStatusReport, n as resolvePinnedNpmInstallRecordForCli, r as looksLikeLocalInstallSpec, t as buildNpmInstallRecordFields } from "./npm-resolution-
|
|
125
|
+
import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-A5CNJccm.js";
|
|
126
|
+
import { t as buildWorkspaceHookStatus } from "./hooks-status-6tcOdcYp.js";
|
|
127
|
+
import { i as buildPluginStatusReport, n as resolvePinnedNpmInstallRecordForCli, r as looksLikeLocalInstallSpec, t as buildNpmInstallRecordFields } from "./npm-resolution-ZwcMp-e1.js";
|
|
128
128
|
import path from "node:path";
|
|
129
129
|
import fs from "node:fs";
|
|
130
|
-
import
|
|
130
|
+
import fsPromises from "node:fs/promises";
|
|
131
131
|
|
|
132
132
|
//#region src/infra/install-from-npm-spec.ts
|
|
133
133
|
async function installFromValidatedNpmSpecArchive(params) {
|
|
@@ -232,7 +232,7 @@ async function installFromResolvedHookDir(resolvedDir, params) {
|
|
|
232
232
|
async function resolveHookNameFromDir(hookDir) {
|
|
233
233
|
const hookMdPath = path.join(hookDir, "HOOK.md");
|
|
234
234
|
if (!await fileExists(hookMdPath)) throw new Error(`HOOK.md missing in ${hookDir}`);
|
|
235
|
-
return parseFrontmatter(await
|
|
235
|
+
return parseFrontmatter(await fsPromises.readFile(hookMdPath, "utf-8")).name || path.basename(hookDir);
|
|
236
236
|
}
|
|
237
237
|
async function validateHookDir(hookDir) {
|
|
238
238
|
if (!await fileExists(path.join(hookDir, "HOOK.md"))) throw new Error(`HOOK.md missing in ${hookDir}`);
|
|
@@ -561,7 +561,7 @@ function logIntegrityDriftWarning(hookId, drift) {
|
|
|
561
561
|
}
|
|
562
562
|
async function readInstalledPackageVersion(dir) {
|
|
563
563
|
try {
|
|
564
|
-
const raw = await
|
|
564
|
+
const raw = await fsPromises.readFile(path.join(dir, "package.json"), "utf-8");
|
|
565
565
|
const parsed = JSON.parse(raw);
|
|
566
566
|
return typeof parsed.version === "string" ? parsed.version : void 0;
|
|
567
567
|
} catch {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as CONFIG_DIR } from "./utils-DIzy5B5o.js";
|
|
2
2
|
import { t as evaluateEntryRequirementsForCurrentPlatform } from "./entry-status-BY-GETN6.js";
|
|
3
3
|
import { d as hasBinary } from "./frontmatter-C0E8mspC.js";
|
|
4
|
-
import { n as isConfigPathTruthy, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-
|
|
4
|
+
import { n as isConfigPathTruthy, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-A5CNJccm.js";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
|
|
7
7
|
//#region src/hooks/hooks-status.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { Si as normalizeSecretInput, ii as requireApiKey, ni as getApiKeyForModel } from "./auth-profiles-
|
|
3
|
-
import { _ as resolveAgentModelPrimaryValue, g as resolveAgentModelFallbackValues } from "./agent-scope-
|
|
2
|
+
import { Si as normalizeSecretInput, ii as requireApiKey, ni as getApiKeyForModel } from "./auth-profiles-CyG9VwU_.js";
|
|
3
|
+
import { _ as resolveAgentModelPrimaryValue, g as resolveAgentModelFallbackValues } from "./agent-scope-CY2-lUIY.js";
|
|
4
4
|
import { u as isRecord } from "./utils-DIzy5B5o.js";
|
|
5
|
-
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-
|
|
6
|
-
import { F as sanitizeUserFacingText } from "./pi-embedded-helpers-
|
|
7
|
-
import { t as ensureOpenClawModelsJson } from "./models-config-
|
|
5
|
+
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-RrejIg26.js";
|
|
6
|
+
import { F as sanitizeUserFacingText } from "./pi-embedded-helpers-BB2whkUz.js";
|
|
7
|
+
import { t as ensureOpenClawModelsJson } from "./models-config-AePb9RAo.js";
|
|
8
8
|
import { r as resolveToolDisplay, t as formatToolDetail } from "./tool-display-0M664wep.js";
|
|
9
9
|
import { complete } from "@mariozechner/pi-ai";
|
|
10
10
|
|
|
@@ -3,7 +3,7 @@ import { G as resolveAgentModelPrimaryValue, W as resolveAgentModelFallbackValue
|
|
|
3
3
|
import { _ as shortenHomeInString, c as isRecord } from "./utils-CM9uSTVd.js";
|
|
4
4
|
import { An as resolveOpenClawAgentDir, E as getApiKeyForModel, Ln as normalizeSecretInput, O as requireApiKey, V as loadConfig, _ as resolveImplicitBedrockProvider, _n as applyConfigEnvVars, g as normalizeProviders, v as resolveImplicitCopilotProvider, y as resolveImplicitProviders } from "./model-selection-D5OFBCTr.js";
|
|
5
5
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DpYZ-y1X.js";
|
|
6
|
-
import { F as sanitizeUserFacingText } from "./pi-embedded-helpers-
|
|
6
|
+
import { F as sanitizeUserFacingText } from "./pi-embedded-helpers-DK1ft2pf.js";
|
|
7
7
|
import { n as redactToolDetail } from "./redact-b4XSqAVh.js";
|
|
8
8
|
import path from "node:path";
|
|
9
9
|
import fs from "node:fs/promises";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as runExec } from "./exec-CEAvKSx9.js";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import os from "node:os";
|
|
4
|
-
import
|
|
4
|
+
import fsPromises from "node:fs/promises";
|
|
5
5
|
import { fileTypeFromBuffer } from "file-type";
|
|
6
6
|
|
|
7
7
|
//#region src/media/constants.ts
|
|
@@ -235,11 +235,11 @@ function readJpegExifOrientation(buffer) {
|
|
|
235
235
|
return null;
|
|
236
236
|
}
|
|
237
237
|
async function withTempDir(fn) {
|
|
238
|
-
const dir = await
|
|
238
|
+
const dir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "openclaw-img-"));
|
|
239
239
|
try {
|
|
240
240
|
return await fn(dir);
|
|
241
241
|
} finally {
|
|
242
|
-
await
|
|
242
|
+
await fsPromises.rm(dir, {
|
|
243
243
|
recursive: true,
|
|
244
244
|
force: true
|
|
245
245
|
}).catch(() => {});
|
|
@@ -248,7 +248,7 @@ async function withTempDir(fn) {
|
|
|
248
248
|
async function sipsMetadataFromBuffer(buffer) {
|
|
249
249
|
return await withTempDir(async (dir) => {
|
|
250
250
|
const input = path.join(dir, "in.img");
|
|
251
|
-
await
|
|
251
|
+
await fsPromises.writeFile(input, buffer);
|
|
252
252
|
const { stdout } = await runExec("/usr/bin/sips", [
|
|
253
253
|
"-g",
|
|
254
254
|
"pixelWidth",
|
|
@@ -276,7 +276,7 @@ async function sipsResizeToJpeg(params) {
|
|
|
276
276
|
return await withTempDir(async (dir) => {
|
|
277
277
|
const input = path.join(dir, "in.img");
|
|
278
278
|
const output = path.join(dir, "out.jpg");
|
|
279
|
-
await
|
|
279
|
+
await fsPromises.writeFile(input, params.buffer);
|
|
280
280
|
await runExec("/usr/bin/sips", [
|
|
281
281
|
"-Z",
|
|
282
282
|
String(Math.max(1, Math.round(params.maxSide))),
|
|
@@ -293,14 +293,14 @@ async function sipsResizeToJpeg(params) {
|
|
|
293
293
|
timeoutMs: 2e4,
|
|
294
294
|
maxBuffer: 1024 * 1024
|
|
295
295
|
});
|
|
296
|
-
return await
|
|
296
|
+
return await fsPromises.readFile(output);
|
|
297
297
|
});
|
|
298
298
|
}
|
|
299
299
|
async function sipsConvertToJpeg(buffer) {
|
|
300
300
|
return await withTempDir(async (dir) => {
|
|
301
301
|
const input = path.join(dir, "in.heic");
|
|
302
302
|
const output = path.join(dir, "out.jpg");
|
|
303
|
-
await
|
|
303
|
+
await fsPromises.writeFile(input, buffer);
|
|
304
304
|
await runExec("/usr/bin/sips", [
|
|
305
305
|
"-s",
|
|
306
306
|
"format",
|
|
@@ -312,7 +312,7 @@ async function sipsConvertToJpeg(buffer) {
|
|
|
312
312
|
timeoutMs: 2e4,
|
|
313
313
|
maxBuffer: 1024 * 1024
|
|
314
314
|
});
|
|
315
|
-
return await
|
|
315
|
+
return await fsPromises.readFile(output);
|
|
316
316
|
});
|
|
317
317
|
}
|
|
318
318
|
async function getImageMetadata(buffer) {
|
|
@@ -363,7 +363,7 @@ async function sipsApplyOrientation(buffer, orientation) {
|
|
|
363
363
|
return await withTempDir(async (dir) => {
|
|
364
364
|
const input = path.join(dir, "in.jpg");
|
|
365
365
|
const output = path.join(dir, "out.jpg");
|
|
366
|
-
await
|
|
366
|
+
await fsPromises.writeFile(input, buffer);
|
|
367
367
|
await runExec("/usr/bin/sips", [
|
|
368
368
|
...ops,
|
|
369
369
|
input,
|
|
@@ -373,7 +373,7 @@ async function sipsApplyOrientation(buffer, orientation) {
|
|
|
373
373
|
timeoutMs: 2e4,
|
|
374
374
|
maxBuffer: 1024 * 1024
|
|
375
375
|
});
|
|
376
|
-
return await
|
|
376
|
+
return await fsPromises.readFile(output);
|
|
377
377
|
});
|
|
378
378
|
}
|
|
379
379
|
async function resizeToJpeg(params) {
|
package/dist/index.js
CHANGED
|
@@ -125,7 +125,7 @@ import { t as isMainModule } from "./is-main-TPRg8r91.js";
|
|
|
125
125
|
import { t as ensureOpenClawCliOnPath } from "./path-env-C0LQFNBL.js";
|
|
126
126
|
import { t as assertSupportedRuntime } from "./runtime-guard-8RRYRGZL.js";
|
|
127
127
|
import "./ports-CF46wKRL.js";
|
|
128
|
-
import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-
|
|
128
|
+
import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-BEPxCThZ.js";
|
|
129
129
|
import "./plugin-registry-Blcs7wRm.js";
|
|
130
130
|
import { n as resolveCliChannelOptions } from "./channel-options-CcVV-66e.js";
|
|
131
131
|
import process$1 from "node:process";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { f as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel, n as GATEWAY_SERVICE_KIND, p as resolveGatewayWindowsTaskName, r as GATEWAY_SERVICE_MARKER } from "./constants-BLYfoMmL.js";
|
|
2
|
-
import { n as execSchtasks } from "./service-
|
|
2
|
+
import { n as execSchtasks } from "./service-CZORJG4z.js";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
import
|
|
4
|
+
import fsPromises from "node:fs/promises";
|
|
5
5
|
|
|
6
6
|
//#region src/daemon/inspect.ts
|
|
7
7
|
const EXTRA_MARKERS = [
|
|
@@ -76,14 +76,14 @@ function isLegacyLabel(label) {
|
|
|
76
76
|
}
|
|
77
77
|
async function readDirEntries(dir) {
|
|
78
78
|
try {
|
|
79
|
-
return await
|
|
79
|
+
return await fsPromises.readdir(dir);
|
|
80
80
|
} catch {
|
|
81
81
|
return [];
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
async function readUtf8File(filePath) {
|
|
85
85
|
try {
|
|
86
|
-
return await
|
|
86
|
+
return await fsPromises.readFile(filePath, "utf8");
|
|
87
87
|
} catch {
|
|
88
88
|
return null;
|
|
89
89
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { A as isNotFoundPathError, j as isPathInside } from "./workspace-
|
|
2
|
-
import { a as openWritableFileWithinRoot, t as SafeOpenError } from "./fs-safe-
|
|
3
|
-
import { n as resolveSafeBaseDir } from "./path-safety-
|
|
1
|
+
import { A as isNotFoundPathError, j as isPathInside } from "./workspace-DzeL98px.js";
|
|
2
|
+
import { a as openWritableFileWithinRoot, t as SafeOpenError } from "./fs-safe-BqJ9egpm.js";
|
|
3
|
+
import { n as resolveSafeBaseDir } from "./path-safety-BxYB92SS.js";
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
import
|
|
5
|
+
import fsPromises from "node:fs/promises";
|
|
6
6
|
import { createHash } from "node:crypto";
|
|
7
7
|
import { pipeline } from "node:stream/promises";
|
|
8
8
|
import { Readable, Transform } from "node:stream";
|
|
@@ -78,9 +78,9 @@ function resolveArchiveKind(filePath) {
|
|
|
78
78
|
async function resolvePackedRootDir(extractDir) {
|
|
79
79
|
const direct = path.join(extractDir, "package");
|
|
80
80
|
try {
|
|
81
|
-
if ((await
|
|
81
|
+
if ((await fsPromises.stat(direct)).isDirectory()) return direct;
|
|
82
82
|
} catch {}
|
|
83
|
-
const dirs = (await
|
|
83
|
+
const dirs = (await fsPromises.readdir(extractDir, { withFileTypes: true })).filter((entry) => entry.isDirectory()).map((entry) => entry.name);
|
|
84
84
|
if (dirs.length !== 1) throw new Error(`unexpected archive layout (dirs: ${dirs.join(", ")})`);
|
|
85
85
|
const onlyDir = dirs[0];
|
|
86
86
|
if (!onlyDir) throw new Error("unexpected archive layout (no package dir found)");
|
|
@@ -150,10 +150,10 @@ function symlinkTraversalError(originalPath) {
|
|
|
150
150
|
return new ArchiveSecurityError("destination-symlink-traversal", `${ERROR_ARCHIVE_ENTRY_TRAVERSES_SYMLINK}: ${originalPath}`);
|
|
151
151
|
}
|
|
152
152
|
async function assertDestinationDirReady(destDir) {
|
|
153
|
-
const stat = await
|
|
153
|
+
const stat = await fsPromises.lstat(destDir);
|
|
154
154
|
if (stat.isSymbolicLink()) throw new ArchiveSecurityError("destination-symlink", "archive destination is a symlink");
|
|
155
155
|
if (!stat.isDirectory()) throw new ArchiveSecurityError("destination-not-directory", "archive destination is not a directory");
|
|
156
|
-
return await
|
|
156
|
+
return await fsPromises.realpath(destDir);
|
|
157
157
|
}
|
|
158
158
|
async function assertNoSymlinkTraversal(params) {
|
|
159
159
|
const parts = params.relPath.split("/").filter(Boolean);
|
|
@@ -162,7 +162,7 @@ async function assertNoSymlinkTraversal(params) {
|
|
|
162
162
|
current = path.join(current, part);
|
|
163
163
|
let stat;
|
|
164
164
|
try {
|
|
165
|
-
stat = await
|
|
165
|
+
stat = await fsPromises.lstat(current);
|
|
166
166
|
} catch (err) {
|
|
167
167
|
if (isNotFoundPathError(err)) continue;
|
|
168
168
|
throw err;
|
|
@@ -173,7 +173,7 @@ async function assertNoSymlinkTraversal(params) {
|
|
|
173
173
|
async function assertResolvedInsideDestination(params) {
|
|
174
174
|
let resolved;
|
|
175
175
|
try {
|
|
176
|
-
resolved = await
|
|
176
|
+
resolved = await fsPromises.realpath(params.targetPath);
|
|
177
177
|
} catch (err) {
|
|
178
178
|
if (isNotFoundPathError(err)) return;
|
|
179
179
|
throw err;
|
|
@@ -196,12 +196,12 @@ async function openZipOutputFile(params) {
|
|
|
196
196
|
async function cleanupPartialRegularFile(filePath) {
|
|
197
197
|
let stat;
|
|
198
198
|
try {
|
|
199
|
-
stat = await
|
|
199
|
+
stat = await fsPromises.lstat(filePath);
|
|
200
200
|
} catch (err) {
|
|
201
201
|
if (isNotFoundPathError(err)) return;
|
|
202
202
|
throw err;
|
|
203
203
|
}
|
|
204
|
-
if (stat.isFile()) await
|
|
204
|
+
if (stat.isFile()) await fsPromises.unlink(filePath).catch(() => void 0);
|
|
205
205
|
}
|
|
206
206
|
async function readZipEntryStream(entry) {
|
|
207
207
|
if (typeof entry.nodeStream === "function") return entry.nodeStream();
|
|
@@ -229,7 +229,7 @@ async function prepareZipOutputPath(params) {
|
|
|
229
229
|
originalPath: params.originalPath
|
|
230
230
|
});
|
|
231
231
|
if (params.isDirectory) {
|
|
232
|
-
await
|
|
232
|
+
await fsPromises.mkdir(params.outPath, { recursive: true });
|
|
233
233
|
await assertResolvedInsideDestination({
|
|
234
234
|
destinationRealDir: params.destinationRealDir,
|
|
235
235
|
targetPath: params.outPath,
|
|
@@ -238,7 +238,7 @@ async function prepareZipOutputPath(params) {
|
|
|
238
238
|
return;
|
|
239
239
|
}
|
|
240
240
|
const parentDir = path.dirname(params.outPath);
|
|
241
|
-
await
|
|
241
|
+
await fsPromises.mkdir(parentDir, { recursive: true });
|
|
242
242
|
await assertResolvedInsideDestination({
|
|
243
243
|
destinationRealDir: params.destinationRealDir,
|
|
244
244
|
targetPath: parentDir,
|
|
@@ -261,7 +261,7 @@ async function writeZipFileEntry(params) {
|
|
|
261
261
|
try {
|
|
262
262
|
await pipeline(readable, createExtractBudgetTransform({ onChunkBytes: params.budget.addBytes }), writable);
|
|
263
263
|
} catch (err) {
|
|
264
|
-
if (opened.createdForWrite) await
|
|
264
|
+
if (opened.createdForWrite) await fsPromises.rm(opened.openedRealPath, { force: true }).catch(() => void 0);
|
|
265
265
|
else await cleanupPartialRegularFile(opened.openedRealPath).catch(() => void 0);
|
|
266
266
|
throw err;
|
|
267
267
|
} finally {
|
|
@@ -269,14 +269,14 @@ async function writeZipFileEntry(params) {
|
|
|
269
269
|
}
|
|
270
270
|
if (typeof params.entry.unixPermissions === "number") {
|
|
271
271
|
const mode = params.entry.unixPermissions & 511;
|
|
272
|
-
if (mode !== 0) await
|
|
272
|
+
if (mode !== 0) await fsPromises.chmod(opened.openedRealPath, mode).catch(() => void 0);
|
|
273
273
|
}
|
|
274
274
|
}
|
|
275
275
|
async function extractZip(params) {
|
|
276
276
|
const limits = resolveExtractLimits(params.limits);
|
|
277
277
|
const destinationRealDir = await assertDestinationDirReady(params.destDir);
|
|
278
|
-
if ((await
|
|
279
|
-
const buffer = await
|
|
278
|
+
if ((await fsPromises.stat(params.archivePath)).size > limits.maxArchiveBytes) throw new Error(ERROR_ARCHIVE_SIZE_EXCEEDS_LIMIT);
|
|
279
|
+
const buffer = await fsPromises.readFile(params.archivePath);
|
|
280
280
|
const zip = await JSZip.loadAsync(buffer);
|
|
281
281
|
const entries = Object.values(zip.files);
|
|
282
282
|
const strip = Math.max(0, Math.floor(params.stripComponents ?? 0));
|
|
@@ -349,7 +349,7 @@ async function extractArchive(params) {
|
|
|
349
349
|
const label = kind === "zip" ? "extract zip" : "extract tar";
|
|
350
350
|
if (kind === "tar") {
|
|
351
351
|
const limits = resolveExtractLimits(params.limits);
|
|
352
|
-
if ((await
|
|
352
|
+
if ((await fsPromises.stat(params.archivePath)).size > limits.maxArchiveBytes) throw new Error(ERROR_ARCHIVE_SIZE_EXCEEDS_LIMIT);
|
|
353
353
|
const checkTarEntrySafety = createTarEntrySafetyChecker({
|
|
354
354
|
rootDir: params.destDir,
|
|
355
355
|
stripComponents: params.stripComponents,
|
|
@@ -382,14 +382,14 @@ async function extractArchive(params) {
|
|
|
382
382
|
}
|
|
383
383
|
async function fileExists(filePath) {
|
|
384
384
|
try {
|
|
385
|
-
await
|
|
385
|
+
await fsPromises.stat(filePath);
|
|
386
386
|
return true;
|
|
387
387
|
} catch {
|
|
388
388
|
return false;
|
|
389
389
|
}
|
|
390
390
|
}
|
|
391
391
|
async function readJsonFile(filePath) {
|
|
392
|
-
const raw = await
|
|
392
|
+
const raw = await fsPromises.readFile(filePath, "utf-8");
|
|
393
393
|
return JSON.parse(raw);
|
|
394
394
|
}
|
|
395
395
|
|
|
@@ -433,13 +433,13 @@ async function assertCanonicalPathWithinBase(params) {
|
|
|
433
433
|
const baseDir = path.resolve(params.baseDir);
|
|
434
434
|
const candidatePath = path.resolve(params.candidatePath);
|
|
435
435
|
if (!isPathInside(baseDir, candidatePath)) throw new Error(`Invalid path: must stay within ${params.boundaryLabel}`);
|
|
436
|
-
const baseLstat = await
|
|
436
|
+
const baseLstat = await fsPromises.lstat(baseDir);
|
|
437
437
|
if (!baseLstat.isDirectory() || baseLstat.isSymbolicLink()) throw new Error(`Invalid ${params.boundaryLabel}: base directory must be a real directory`);
|
|
438
|
-
const baseRealPath = await
|
|
438
|
+
const baseRealPath = await fsPromises.realpath(baseDir);
|
|
439
439
|
const validateDirectory = async (dirPath) => {
|
|
440
|
-
const dirLstat = await
|
|
440
|
+
const dirLstat = await fsPromises.lstat(dirPath);
|
|
441
441
|
if (!dirLstat.isDirectory() || dirLstat.isSymbolicLink()) throw new Error(`Invalid path: must stay within ${params.boundaryLabel}`);
|
|
442
|
-
if (!isPathInside(baseRealPath, await
|
|
442
|
+
if (!isPathInside(baseRealPath, await fsPromises.realpath(dirPath))) throw new Error(`Invalid path: must stay within ${params.boundaryLabel}`);
|
|
443
443
|
};
|
|
444
444
|
try {
|
|
445
445
|
await validateDirectory(candidatePath);
|