openclaw-multi-auto 1.7.5 → 1.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{acp-cli-D2FsuxI4.js → acp-cli-DMujSgSt.js} +11 -11
- package/dist/{agent-B8D73rdQ.js → agent-CaQagdQ7.js} +8 -8
- package/dist/{agent-BomWJjOy.js → agent-QkWi9ww5.js} +7 -7
- package/dist/{agent-scope-DmTcOjk4.js → agent-scope-sd1-3XH0.js} +16 -16
- package/dist/{agents.config-Crwrvv0Y.js → agents.config-DpC62EoF.js} +3 -3
- package/dist/{audio-preflight-CZHCr2-5.js → audio-preflight-CKN-13f6.js} +1 -1
- package/dist/{audio-preflight-DUZyiet9.js → audio-preflight-CxMkqmsz.js} +10 -10
- package/dist/{audit-CX3KlHoS.js → audit-COOnp_TQ.js} +18 -18
- package/dist/{audit-membership-runtime-DOqwbA7L.js → audit-membership-runtime-o16tAd90.js} +1 -1
- package/dist/{auth-choice-DZC8_SXk.js → auth-choice-B7hFRxC4.js} +19 -19
- package/dist/{auth-choice-CuOI0DLZ.js → auth-choice-CgIbQGAr.js} +8 -8
- package/dist/{auth-choice-options-C_poWj2I.js → auth-choice-options-CaiEtgdy.js} +1 -1
- package/dist/{auth-choice-prompt-Bjt463U7.js → auth-choice-prompt-CyE2_iHL.js} +1 -1
- package/dist/{auth-choice.apply-helpers-BFZ8hPRq.js → auth-choice.apply-helpers-BwI7_FDv.js} +2 -2
- package/dist/{auth-choice.preferred-provider-CzDq9Lvp.js → auth-choice.preferred-provider-BJFK05is.js} +5 -5
- package/dist/{auth-profiles.runtime-DNqCx0L5.js → auth-profiles.runtime-DHFZjArZ.js} +1 -1
- package/dist/{auth-profiles.runtime-BWD0iDWZ.js → auth-profiles.runtime-firEabaJ.js} +10 -10
- package/dist/{auth-token-CnWG4-cB.js → auth-token-Ca2ISBq6.js} +1 -1
- package/dist/{bonjour-discovery-Cnl-PHZ4.js → bonjour-discovery-CgQeXj94.js} +1 -1
- package/dist/{browser-cli-DLSYDvK2.js → browser-cli-DfrP5czU.js} +11 -11
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-account-context-DMK0G0sK.js → channel-account-context-F18H2wEh.js} +7 -7
- package/dist/{channel-options-CsQMEhUD.js → channel-options-DR0IjcQw.js} +3 -3
- package/dist/{channel-web-D7txUcfH.js → channel-web-B3yCvpab.js} +4 -4
- package/dist/{channels-cli-DK-EFHka.js → channels-cli-C9jvVDlM.js} +33 -33
- package/dist/{channels-status-issues-B-PoQaOZ.js → channels-status-issues-C6mRI9nP.js} +1 -1
- package/dist/{clack-prompter-COY2Efgu.js → clack-prompter-CakorHf3.js} +1 -1
- package/dist/{clawbot-cli-CYVkuLnO.js → clawbot-cli-De1V5wKt.js} +12 -12
- package/dist/{cleanup-utils-DksMdp7C.js → cleanup-utils-DZ-HVi66.js} +4 -4
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-BXEJJp6e.js → cli-5Ap2oull.js} +10 -10
- package/dist/{cmd-argv-BdNFwuhe.js → cmd-argv-Dz5qUtqp.js} +1 -1
- package/dist/{compact.runtime-Do9SwMzP.js → compact.runtime-Bi0KAZxx.js} +10 -10
- package/dist/{compact.runtime-pgjSlzSY.js → compact.runtime-DoEYdXjJ.js} +1 -1
- package/dist/{completion-cli-BnHZnvaD.js → completion-cli-DetW6vGx.js} +12 -12
- package/dist/{config-cli-BTyfFTwL.js → config-cli-JmabBPbR.js} +13 -13
- package/dist/{config-guard-DXvConn_.js → config-guard-D0ly1tu3.js} +12 -12
- package/dist/{config-validation-ZC7mw4HJ.js → config-validation-DtOoaTl7.js} +3 -3
- package/dist/{configure--3s3LTcF.js → configure-DNZVKth2.js} +52 -52
- package/dist/{control-ui-assets-D5CuaZfV.js → control-ui-assets-B9I2TpME.js} +1 -1
- package/dist/{cron-cli-BTeTdxk8.js → cron-cli-hA-3anvP.js} +11 -11
- package/dist/{daemon-cli-TvT5eeIP.js → daemon-cli-CgEObThe.js} +13 -13
- package/dist/{daemon-install-CUvnebOQ.js → daemon-install-e324s4no.js} +16 -16
- package/dist/{daemon-install-plan.shared-BfFSRwqA.js → daemon-install-plan.shared-g5FPfccc.js} +12 -12
- package/dist/{deliver-runtime-CRO5x8jL.js → deliver-runtime-CI-THBhi.js} +10 -10
- package/dist/{deliver-runtime-D4aWAXZ9.js → deliver-runtime-CqyJiuFQ.js} +1 -1
- package/dist/{deps-Cgw7M-k3.js → deps-B6HgPp5e.js} +6 -6
- package/dist/{device-bootstrap-DSXbseT6.js → device-bootstrap-oW1bwgs7.js} +1 -1
- package/dist/{device-pairing-RZV6Mnep.js → device-pairing-CMxl0D-M.js} +1 -1
- package/dist/{devices-cli-DnvmJ-Sg.js → devices-cli-BPpKKc7g.js} +11 -11
- package/dist/{diagnostics-1AwcyuKi.js → diagnostics-iZHasrpQ.js} +5 -5
- package/dist/{directory-cli-CO5of3mT.js → directory-cli-BP8WHXBG.js} +10 -10
- package/dist/{dns-cli-s2wuP3H0.js → dns-cli-CQl7AkL3.js} +10 -10
- package/dist/{docs-cli-CZA-gAQf.js → docs-cli-BWb05s-1.js} +3 -3
- package/dist/{doctor-completion-DvnTlsPK.js → doctor-completion-CA3Zcz0O.js} +2 -2
- package/dist/{doctor-config-flow-DOEjAAYV.js → doctor-config-flow-C53lW8fK.js} +10 -10
- package/dist/{enable-BSbXEyXD.js → enable-CmddFDJP.js} +1 -1
- package/dist/{exec-approvals-cli-CsNqvj8p.js → exec-approvals-cli-Cyhhh2cy.js} +18 -18
- package/dist/{fetch-CGW2R_wh.js → fetch-ggeyBJ4j.js} +2 -2
- package/dist/{gateway-cli-Bq7xXLEB.js → gateway-cli-vQfsLSPv.js} +101 -101
- package/dist/{gateway-install-token-C40ge2lh.js → gateway-install-token-CQHd6wSt.js} +3 -3
- package/dist/{gateway-rpc-DUJcLoxb.js → gateway-rpc-DrDqntyT.js} +1 -1
- package/dist/{health-D_dD9-ET.js → health-CTOG7Tdy.js} +7 -7
- package/dist/{hooks-cli-YvIgaujr.js → hooks-cli-CvrIbP3A.js} +18 -18
- package/dist/{hooks-status-C3wWva3H.js → hooks-status-BiuMKGQP.js} +1 -1
- package/dist/{image-runtime-Cx4HaqrI.js → image-runtime-Cen4jnt5.js} +10 -10
- package/dist/{image-runtime-Brryt_BU.js → image-runtime-DuwNoMsX.js} +1 -1
- package/dist/index.js +21 -21
- package/dist/{inspect-D3lV5ful.js → inspect-C0iPD7zZ.js} +4 -4
- package/dist/{install-safe-path-BvwKN_9n.js → install-safe-path-CnIWvuEU.js} +33 -33
- package/dist/{installs-BC5ieRDB.js → installs-BcQMkw3V.js} +8 -8
- package/dist/{ipv4-CwqOzc5W.js → ipv4-DHZnIX-K.js} +1 -1
- package/dist/{issue-format-34LidjQQ.js → issue-format-CtBob7pd.js} +1 -1
- package/dist/{launchd-BLFV2ME0.js → launchd-D7vxtTg7.js} +13 -13
- package/dist/{lifecycle-core-C07n1IOr.js → lifecycle-core-CKec6MyM.js} +6 -6
- package/dist/llm-slug-generator.js +1 -1
- package/dist/{logging-DPEdtuNl.js → logging-B7i4YBpx.js} +1 -1
- package/dist/{login-BLC4Op_m.js → login-CQ5pGFeF.js} +3 -3
- package/dist/{login-CKmmxErc.js → login-DC00cCmn.js} +2 -2
- package/dist/{login-qr-DpxxtTBd.js → login-qr-C8iDYxXx.js} +11 -11
- package/dist/{login-qr-KVA4wuh0.js → login-qr-DB7lXNdD.js} +2 -2
- package/dist/{logs-cli-BKhTgUSN.js → logs-cli-B8u30MKC.js} +11 -11
- package/dist/{manager-runtime-D9AEoM1M.js → manager-runtime-C04JB-55.js} +1 -1
- package/dist/{manager-runtime-B4ZbE6hq.js → manager-runtime-DDc_xR6t.js} +10 -10
- package/dist/{manager.runtime-lHLhN5ro.js → manager.runtime-sDKQexj4.js} +16 -16
- package/dist/{manager.runtime-BV-CBNb2.js → manager.runtime-y1RqEqxK.js} +2 -2
- package/dist/{model-picker-C5sQCeTo.js → model-picker-iMZicrZb.js} +5 -5
- package/dist/{model-selection-CNRMBWfR.js → model-selection-Coo7zMJO.js} +43 -43
- package/dist/{models-cli-B7OdTj93.js → models-cli-CHWqnmnX.js} +21 -21
- package/dist/{node-cli-ArOhWB3h.js → node-cli-D2EGwHd2.js} +22 -22
- package/dist/{node-command-policy-BVIbeciX.js → node-command-policy-C9YoIlNR.js} +1 -1
- package/dist/{node-service-ESc5ToCS.js → node-service-D7xRD6Op.js} +1 -1
- package/dist/{nodes-cli-BLneGv8c.js → nodes-cli-BaWA_a27.js} +13 -13
- package/dist/{npm-pack-install-DI_0G-Ju.js → npm-pack-install-C7ntuYO8.js} +23 -23
- package/dist/{npm-resolution-DowD_x7i.js → npm-resolution-BL-LzQ8q.js} +3 -3
- package/dist/{onboard-Da0Gqg8E.js → onboard-1Vbkq-0q.js} +10 -10
- package/dist/{onboard-channels-Dub92d1X.js → onboard-channels-C_RZQliP.js} +16 -16
- package/dist/{onboard-custom-iC39HaRY.js → onboard-custom-CyUm7NIR.js} +5 -5
- package/dist/{onboard-hooks-DUll1iq8.js → onboard-hooks-Bx20a5uy.js} +4 -4
- package/dist/{onboard-remote-Cyc407f2.js → onboard-remote-Dtm07eUX.js} +3 -3
- package/dist/{onboard-skills-BqnqjDI3.js → onboard-skills-BOBtFqTc.js} +3 -3
- package/dist/{onboarding-BgeTWLi_.js → onboarding-CAQDdLGu.js} +17 -17
- package/dist/{onboarding.finalize-C4jEsWtC.js → onboarding.finalize-BAUMJZlu.js} +25 -25
- package/dist/{onboarding.gateway-config-C2XdEUF3.js → onboarding.gateway-config-BRSWuajr.js} +14 -14
- package/dist/{onboarding.secret-input-OwIXA7An.js → onboarding.secret-input-D75Xjj5j.js} +1 -1
- package/dist/{openai-codex-oauth-BUnBFHjs.js → openai-codex-oauth-BjOz2DJZ.js} +3 -3
- package/dist/{openclaw-root-B5jXk2td.js → openclaw-root-dlCz9toZ.js} +8 -8
- package/dist/{outbound-send-deps-dRaNZNE7.js → outbound-send-deps-Bid3Xegx.js} +1 -1
- package/dist/{pairing-cli-pEJPQw6E.js → pairing-cli-Dm_fH3zm.js} +10 -10
- package/dist/{path-alias-guards-BEqdGdn9.js → path-alias-guards-B6owPyQX.js} +3 -3
- package/dist/{path-safety-TRhr8lhQ.js → path-safety-DN7L46Yk.js} +1 -1
- package/dist/{pi-model-discovery-runtime-BkRq7f9h.js → pi-model-discovery-runtime-BRs3OnbK.js} +10 -10
- package/dist/{pi-model-discovery-runtime-CDKkuBYh.js → pi-model-discovery-runtime-DsZRIFOj.js} +1 -1
- package/dist/{pi-tools.before-tool-call.runtime-Dt7ZWya_.js → pi-tools.before-tool-call.runtime-Cz99nK1_.js} +10 -10
- package/dist/{pi-tools.before-tool-call.runtime-DgAiY2la.js → pi-tools.before-tool-call.runtime-l0nSxXys.js} +1 -1
- package/dist/{plugin-install-plan-q0pKUAmp.js → plugin-install-plan-tegfcs_j.js} +1 -1
- package/dist/{plugin-registry-DrrKSvdi.js → plugin-registry-D1UVdXNl.js} +2 -2
- package/dist/{plugins-om7vnHk0.js → plugins-BVbKGpQJ.js} +9 -9
- package/dist/{plugins-cli-BWuwmlNA.js → plugins-cli-DMTK-3PI.js} +21 -21
- package/dist/{ports-CVD9jTxH.js → ports-CrZzXxTl.js} +2 -2
- package/dist/{probe-auth-CRm2yob0.js → probe-auth-H1_HjX3c.js} +1 -1
- package/dist/{program-context-BnNrq2_o.js → program-context--XQiK-Vv.js} +42 -42
- package/dist/{prompt-select-styled-FpCuoi_9.js → prompt-select-styled-BzWw9bIh.js} +32 -32
- package/dist/{provider-auth-helpers-Dzq3SbTh.js → provider-auth-helpers-B5U-h2Ob.js} +4 -4
- package/dist/{provider-wizard-CRYUkbUG.js → provider-wizard-BgHYhBzK.js} +1 -1
- package/dist/{push-apns-6Yefl4vF.js → push-apns-DQdHdrq8.js} +3 -3
- package/dist/{pw-ai-Brk_ehKR.js → pw-ai-8OpaEmr4.js} +15 -15
- package/dist/{pw-ai-3ual6adI.js → pw-ai-R41XeePP.js} +1 -1
- package/dist/{qmd-manager-Clny9vcj.js → qmd-manager-BMkECKpc.js} +19 -19
- package/dist/{qr-cli-TsbdBlkh.js → qr-cli-CZy0bldy.js} +11 -11
- package/dist/{query-expansion-BNb6Vys6.js → query-expansion-AnOnkIqf.js} +48 -48
- package/dist/{redact-snapshot-sudZsVoX.js → redact-snapshot-lCMXNHo3.js} +1 -1
- package/dist/{register.agent-BcYbZ3eF.js → register.agent-2yZ4uAHT.js} +43 -43
- package/dist/{register.backup-DbtBtW_J.js → register.backup-Byyque4N.js} +26 -26
- package/dist/register.configure-CrATD0tr.js +87 -0
- package/dist/{register.maintenance-Cdn2TwrI.js → register.maintenance-BZ_V3Ubt.js} +33 -33
- package/dist/{register.message-cHCXxeA6.js → register.message-CJwTd37H.js} +13 -13
- package/dist/{register.onboard-Dbig7G2G.js → register.onboard-BY0T1WHb.js} +17 -17
- package/dist/{register.setup-DjHUcAcm.js → register.setup-CA3ZUrN-.js} +18 -18
- package/dist/{register.status-health-sessions-BMxJK45p.js → register.status-health-sessions-PN0jxAPA.js} +26 -26
- package/dist/{reply-Cf5Mm7vB.js → reply-gX1XTS9Y.js} +226 -226
- package/dist/{restart-stale-pids-ZfbSMILU.js → restart-stale-pids-B6E7QavX.js} +2 -2
- package/dist/{rpc-8YrBMBoD.js → rpc-B2PO3N0W.js} +1 -1
- package/dist/{runtime-whatsapp-login.runtime-Br3SxDXL.js → runtime-whatsapp-login.runtime-C_E260pb.js} +3 -3
- package/dist/{runtime-whatsapp-login.runtime-Bo1HalYB.js → runtime-whatsapp-login.runtime-DKMtq6l9.js} +12 -12
- package/dist/{runtime-whatsapp-outbound.runtime-L3Qkst0n.js → runtime-whatsapp-outbound.runtime-BdHcgl-R.js} +2 -2
- package/dist/{runtime-whatsapp-outbound.runtime-Ch2o56Ey.js → runtime-whatsapp-outbound.runtime-Dv1HN4ha.js} +11 -11
- package/dist/{sandbox-cli-CoRe21Si.js → sandbox-cli-SCYkP_qN.js} +10 -10
- package/dist/{secret-file-7smmAVRV.js → secret-file-CuiwToxK.js} +1 -1
- package/dist/{secrets-cli-CHT1AjCX.js → secrets-cli-C5O6Jw_4.js} +11 -11
- package/dist/{security-cli-DRqdmCtr.js → security-cli-CL4qtb9H.js} +20 -20
- package/dist/{send-CXnKWzde.js → send-BvAlpSvh.js} +1 -1
- package/dist/{send-CHZ7WuOb.js → send-hZxe8sP9.js} +2 -2
- package/dist/{server-DiTziwvC.js → server-Cnc4lO11.js} +10 -10
- package/dist/{server-node-events-p5ykMQz-.js → server-node-events-aTSoNGTe.js} +14 -14
- package/dist/{service-RXVSlLiU.js → service-LNrViUVb.js} +13 -13
- package/dist/{session-CXOhppV3.js → session-CndmPe2D.js} +2 -2
- package/dist/{session-kt-bqE_z.js → session-D7nweu0t.js} +1 -1
- package/dist/{shared-CoL161wD.js → shared-c6JUv5At.js} +1 -1
- package/dist/{skill-scanner-BzjuMMKN.js → skill-scanner-DaUNX-tW.js} +6 -6
- package/dist/{skills-cli-YajvWbjO.js → skills-cli-YqsScIM5.js} +11 -11
- package/dist/{skills-install-DFkV3GsC.js → skills-install-BnRu7wO4.js} +6 -6
- package/dist/{skills-status-PMeXzDbC.js → skills-status-DHMQ6A2H.js} +1 -1
- package/dist/{skills-Jz-BSwRd.js → skills-vhlUaliH.js} +2 -2
- package/dist/{slash-commands.runtime-BYfxn_xu.js → slash-commands.runtime-AZCJXo7S.js} +1 -1
- package/dist/{slash-commands.runtime-_LrsMaI1.js → slash-commands.runtime-D9GHahMO.js} +10 -10
- package/dist/{slash-dispatch.runtime-neG4499W.js → slash-dispatch.runtime-DcISuJb0.js} +10 -10
- package/dist/{slash-dispatch.runtime-Cu8ghe1h.js → slash-dispatch.runtime-DyUU1AG5.js} +1 -1
- package/dist/{slash-skill-commands.runtime-8dS5PTaH.js → slash-skill-commands.runtime-Cv1NPjj6.js} +1 -1
- package/dist/{slash-skill-commands.runtime-D0ohJN-V.js → slash-skill-commands.runtime-Dt6QQJcX.js} +10 -10
- package/dist/{status-1patzIRq.js → status-D9mVTxuB.js} +1 -1
- package/dist/{status-BaLZ1uQV.js → status-QQiIsfFq.js} +21 -21
- package/dist/{status.update-DrzJ1YWu.js → status.update-DY13od-q.js} +3 -3
- package/dist/{subagent-registry-runtime-BTW1zlrG.js → subagent-registry-runtime-CoeW8s2P.js} +10 -10
- package/dist/{subagent-registry-runtime-Z0fdsGSq.js → subagent-registry-runtime-N50VG-ay.js} +1 -1
- package/dist/{system-cli-CndWL3sF.js → system-cli-DMu6SZhn.js} +11 -11
- package/dist/{systemd-D47rkLi7.js → systemd-DSK6B3bg.js} +11 -11
- package/dist/{systemd-hints-DHfXVo8k.js → systemd-hints-DsQTPBGt.js} +6 -6
- package/dist/{systemd-linger-DwmFZpci.js → systemd-linger-BPISBIWJ.js} +1 -1
- package/dist/{tui-CzYnfJxE.js → tui-DzNNH2rc.js} +2 -2
- package/dist/{tui-cli-D47N0Kfm.js → tui-cli-D5JgcWb9.js} +11 -11
- package/dist/{update-BiUnc38r.js → update-DL_359AR.js} +2 -2
- package/dist/{update-cli-CeqH2oQ-.js → update-cli-BfjWjK3A.js} +45 -45
- package/dist/{update-runner-oqYBjs5t.js → update-runner-CfkBU1BA.js} +16 -16
- package/dist/{web-CXyjF_si.js → web-B4n02Xhe.js} +4 -4
- package/dist/{web-BRvkjVpk.js → web-BHO-XtPY.js} +14 -14
- package/dist/{webhooks-cli-CnTKcfvh.js → webhooks-cli-C0kgprJJ.js} +10 -10
- package/dist/{whatsapp-actions-BXO9Bi7a.js → whatsapp-actions-BC06Ug_d.js} +11 -11
- package/dist/{whatsapp-actions-BUvGEDSk.js → whatsapp-actions-JJEG8eF3.js} +2 -2
- package/dist/{workspace-CWne7yqK.js → workspace-BTsqd19h.js} +1 -1
- package/package.json +8 -8
- package/scripts/create-instance.sh +29 -46
- package/dist/register.configure-CPWCrXrC.js +0 -87
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-DUslC3ob.js";
|
|
2
2
|
import { A as theme, k as isRich, p as defaultRuntime, t as createSubsystemLogger, y as info } from "./subsystem-G54saDcg.js";
|
|
3
3
|
import { l as escapeRegExp } from "./utils-B8zCe27d.js";
|
|
4
|
-
import { $i as buildOutboundSessionContext, $p as resolveAgentMainSessionKey, Cu as stripHeartbeatToken, G as withProgress, Gp as evaluateSessionFreshness, Jl as resolveUserTimezone, Ql as clearBootstrapSnapshotOnSessionRollover, Qp as canonicalizeMainSessionAlias, Su as resolveHeartbeatPrompt$1, T_ as parseDurationMs, Xi as resolveHeartbeatSenderContext, Yi as resolveHeartbeatDeliveryTarget, _l as requestHeartbeatNow, _p as loadSessionStore, bl as resolveHeartbeatReasonKind, d_ as loadConfig, ea as deliverOutboundPayloads, gl as areHeartbeatsEnabled, ji as resolveEffectiveMessagesConfig, ns as buildGatewayConnectionDetails, p_ as readBestEffortConfig, qp as resolveSessionResetPolicy, rs as callGateway, sd as peekSystemEventEntries, su as CommandLane, t as getReplyFromConfig, tu as getQueueSize, vl as setHeartbeatWakeHandler, vr as appendCronStyleCurrentTimeLine, wu as HEARTBEAT_TOKEN, xp as updateSessionStore, xu as isHeartbeatContentEffectivelyEmpty, yp as saveSessionStore } from "./reply-
|
|
5
|
-
import { b as DEFAULT_HEARTBEAT_FILENAME, d as resolveAgentWorkspaceDir, f as resolveDefaultAgentId, i as resolveAgentConfig } from "./agent-scope-
|
|
4
|
+
import { $i as buildOutboundSessionContext, $p as resolveAgentMainSessionKey, Cu as stripHeartbeatToken, G as withProgress, Gp as evaluateSessionFreshness, Jl as resolveUserTimezone, Ql as clearBootstrapSnapshotOnSessionRollover, Qp as canonicalizeMainSessionAlias, Su as resolveHeartbeatPrompt$1, T_ as parseDurationMs, Xi as resolveHeartbeatSenderContext, Yi as resolveHeartbeatDeliveryTarget, _l as requestHeartbeatNow, _p as loadSessionStore, bl as resolveHeartbeatReasonKind, d_ as loadConfig, ea as deliverOutboundPayloads, gl as areHeartbeatsEnabled, ji as resolveEffectiveMessagesConfig, ns as buildGatewayConnectionDetails, p_ as readBestEffortConfig, qp as resolveSessionResetPolicy, rs as callGateway, sd as peekSystemEventEntries, su as CommandLane, t as getReplyFromConfig, tu as getQueueSize, vl as setHeartbeatWakeHandler, vr as appendCronStyleCurrentTimeLine, wu as HEARTBEAT_TOKEN, xp as updateSessionStore, xu as isHeartbeatContentEffectivelyEmpty, yp as saveSessionStore } from "./reply-gX1XTS9Y.js";
|
|
5
|
+
import { b as DEFAULT_HEARTBEAT_FILENAME, d as resolveAgentWorkspaceDir, f as resolveDefaultAgentId, i as resolveAgentConfig } from "./agent-scope-sd1-3XH0.js";
|
|
6
6
|
import { E as parseAgentSessionKey, c as normalizeAgentId, h as toAgentStoreSessionKey, u as resolveAgentIdFromSessionKey } from "./session-key-DjKQluAa.js";
|
|
7
7
|
import { t as isTruthyEnvValue } from "./env-CQxWwTMn.js";
|
|
8
|
-
import { Y as buildChannelAccountBindings, Z as resolvePreferredAccountId, g as resolveChannelDefaultAccountId, n as listChannelPlugins, t as getChannelPlugin } from "./plugins-
|
|
8
|
+
import { Y as buildChannelAccountBindings, Z as resolvePreferredAccountId, g as resolveChannelDefaultAccountId, n as listChannelPlugins, t as getChannelPlugin } from "./plugins-BVbKGpQJ.js";
|
|
9
9
|
import { a as hasErrnoCode, r as formatErrorMessage } from "./errors-DNKaAVHN.js";
|
|
10
10
|
import { l as resolveStorePath, r as resolveSessionFilePath } from "./paths-CfmKJcO5.js";
|
|
11
11
|
import { a as resolveIndicatorType, n as emitHeartbeatEvent, o as resolveHeartbeatReplyPayload, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-DRnbwSep.js";
|
|
12
12
|
import path from "node:path";
|
|
13
|
-
import
|
|
13
|
+
import fsPromises from "node:fs/promises";
|
|
14
14
|
import crypto from "node:crypto";
|
|
15
15
|
//#region src/cron/isolated-agent/session.ts
|
|
16
16
|
function resolveCronSession(params) {
|
|
@@ -355,7 +355,7 @@ async function pruneHeartbeatTranscript(params) {
|
|
|
355
355
|
const { transcriptPath, preHeartbeatSize } = params;
|
|
356
356
|
if (!transcriptPath || typeof preHeartbeatSize !== "number" || preHeartbeatSize < 0) return;
|
|
357
357
|
try {
|
|
358
|
-
if ((await
|
|
358
|
+
if ((await fsPromises.stat(transcriptPath)).size > preHeartbeatSize) await fsPromises.truncate(transcriptPath, preHeartbeatSize);
|
|
359
359
|
} catch {}
|
|
360
360
|
}
|
|
361
361
|
/**
|
|
@@ -373,7 +373,7 @@ async function captureTranscriptState(params) {
|
|
|
373
373
|
});
|
|
374
374
|
return {
|
|
375
375
|
transcriptPath,
|
|
376
|
-
preHeartbeatSize: (await
|
|
376
|
+
preHeartbeatSize: (await fsPromises.stat(transcriptPath)).size
|
|
377
377
|
};
|
|
378
378
|
} catch {
|
|
379
379
|
return {};
|
|
@@ -430,7 +430,7 @@ async function resolveHeartbeatPreflight(params) {
|
|
|
430
430
|
const workspaceDir = resolveAgentWorkspaceDir(params.cfg, params.agentId);
|
|
431
431
|
const heartbeatFilePath = path.join(workspaceDir, DEFAULT_HEARTBEAT_FILENAME);
|
|
432
432
|
try {
|
|
433
|
-
if (isHeartbeatContentEffectivelyEmpty(await
|
|
433
|
+
if (isHeartbeatContentEffectivelyEmpty(await fsPromises.readFile(heartbeatFilePath, "utf-8"))) return {
|
|
434
434
|
...basePreflight,
|
|
435
435
|
skipReason: "empty-heartbeat-file"
|
|
436
436
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import "./paths-tuenh9TL.js";
|
|
2
2
|
import { A as theme, p as defaultRuntime } from "./subsystem-G54saDcg.js";
|
|
3
3
|
import { S as shortenHomePath, t as CONFIG_DIR, y as resolveUserPath } from "./utils-B8zCe27d.js";
|
|
4
|
-
import { d_ as loadConfig, v_ as writeConfigFile, yg as promptYesNo } from "./reply-
|
|
5
|
-
import { d as resolveAgentWorkspaceDir, f as resolveDefaultAgentId } from "./agent-scope-
|
|
6
|
-
import "./openclaw-root-
|
|
4
|
+
import { d_ as loadConfig, v_ as writeConfigFile, yg as promptYesNo } from "./reply-gX1XTS9Y.js";
|
|
5
|
+
import { d as resolveAgentWorkspaceDir, f as resolveDefaultAgentId } from "./agent-scope-sd1-3XH0.js";
|
|
6
|
+
import "./openclaw-root-dlCz9toZ.js";
|
|
7
7
|
import "./logger-BohkHL0S.js";
|
|
8
8
|
import "./exec-CNtAq7Md.js";
|
|
9
9
|
import "./github-copilot-token-Ff890Vmh.js";
|
|
@@ -13,31 +13,31 @@ import "./env-CQxWwTMn.js";
|
|
|
13
13
|
import { _ as validateRegistryNpmSpec } from "./env-overrides-BYyMsIvB.js";
|
|
14
14
|
import { n as isPathInside, r as isPathInsideWithRealpath } from "./scan-paths-B5Yx6Npu.js";
|
|
15
15
|
import "./registry-aHEgjCIQ.js";
|
|
16
|
-
import "./skills-
|
|
16
|
+
import "./skills-vhlUaliH.js";
|
|
17
17
|
import { m as MANIFEST_KEY } from "./frontmatter-BngyYhS0.js";
|
|
18
|
-
import "./plugins-
|
|
19
|
-
import "./query-expansion-
|
|
18
|
+
import "./plugins-BVbKGpQJ.js";
|
|
19
|
+
import "./query-expansion-AnOnkIqf.js";
|
|
20
20
|
import "./redact-owRpqMhM.js";
|
|
21
|
-
import "./path-alias-guards-
|
|
22
|
-
import "./fetch-
|
|
21
|
+
import "./path-alias-guards-B6owPyQX.js";
|
|
22
|
+
import "./fetch-ggeyBJ4j.js";
|
|
23
23
|
import "./errors-DNKaAVHN.js";
|
|
24
|
-
import "./cmd-argv-
|
|
25
|
-
import "./restart-stale-pids-
|
|
24
|
+
import "./cmd-argv-Dz5qUtqp.js";
|
|
25
|
+
import "./restart-stale-pids-B6E7QavX.js";
|
|
26
26
|
import "./delivery-queue-B7zSt4zY.js";
|
|
27
27
|
import "./paths-CfmKJcO5.js";
|
|
28
28
|
import "./session-cost-usage-C2jrTKxW.js";
|
|
29
29
|
import "./prompt-style-DlcWUCNR.js";
|
|
30
30
|
import { t as formatDocsLink } from "./links-BpKafJs4.js";
|
|
31
31
|
import "./cli-utils-BSURvrmb.js";
|
|
32
|
-
import { a as unscopedPackageName, c as fileExists, l as readJsonFile, n as resolveSafeInstallDir, u as resolveArchiveKind } from "./install-safe-path-
|
|
33
|
-
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-
|
|
32
|
+
import { a as unscopedPackageName, c as fileExists, l as readJsonFile, n as resolveSafeInstallDir, u as resolveArchiveKind } from "./install-safe-path-CnIWvuEU.js";
|
|
33
|
+
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-C7ntuYO8.js";
|
|
34
34
|
import { n as renderTable, t as getTerminalTableWidth } from "./table-DpnYa9iY.js";
|
|
35
|
-
import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-
|
|
36
|
-
import { t as buildWorkspaceHookStatus } from "./hooks-status-
|
|
37
|
-
import { i as buildPluginStatusReport, n as resolvePinnedNpmInstallRecordForCli, r as looksLikeLocalInstallSpec, t as buildNpmInstallRecordFields } from "./npm-resolution-
|
|
35
|
+
import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-BTsqd19h.js";
|
|
36
|
+
import { t as buildWorkspaceHookStatus } from "./hooks-status-BiuMKGQP.js";
|
|
37
|
+
import { i as buildPluginStatusReport, n as resolvePinnedNpmInstallRecordForCli, r as looksLikeLocalInstallSpec, t as buildNpmInstallRecordFields } from "./npm-resolution-BL-LzQ8q.js";
|
|
38
38
|
import fs from "node:fs";
|
|
39
39
|
import path from "node:path";
|
|
40
|
-
import
|
|
40
|
+
import fsPromises from "node:fs/promises";
|
|
41
41
|
//#region src/infra/install-from-npm-spec.ts
|
|
42
42
|
async function installFromValidatedNpmSpecArchive(params) {
|
|
43
43
|
const spec = params.spec.trim();
|
|
@@ -140,7 +140,7 @@ async function installFromResolvedHookDir(resolvedDir, params) {
|
|
|
140
140
|
async function resolveHookNameFromDir(hookDir) {
|
|
141
141
|
const hookMdPath = path.join(hookDir, "HOOK.md");
|
|
142
142
|
if (!await fileExists(hookMdPath)) throw new Error(`HOOK.md missing in ${hookDir}`);
|
|
143
|
-
return parseFrontmatter(await
|
|
143
|
+
return parseFrontmatter(await fsPromises.readFile(hookMdPath, "utf-8")).name || path.basename(hookDir);
|
|
144
144
|
}
|
|
145
145
|
async function validateHookDir(hookDir) {
|
|
146
146
|
if (!await fileExists(path.join(hookDir, "HOOK.md"))) throw new Error(`HOOK.md missing in ${hookDir}`);
|
|
@@ -467,7 +467,7 @@ function logIntegrityDriftWarning(hookId, drift) {
|
|
|
467
467
|
}
|
|
468
468
|
async function readInstalledPackageVersion(dir) {
|
|
469
469
|
try {
|
|
470
|
-
const raw = await
|
|
470
|
+
const raw = await fsPromises.readFile(path.join(dir, "package.json"), "utf-8");
|
|
471
471
|
const parsed = JSON.parse(raw);
|
|
472
472
|
return typeof parsed.version === "string" ? parsed.version : void 0;
|
|
473
473
|
} catch {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as CONFIG_DIR } from "./utils-B8zCe27d.js";
|
|
2
2
|
import { f as hasBinary } from "./frontmatter-BngyYhS0.js";
|
|
3
3
|
import { t as evaluateEntryRequirementsForCurrentPlatform } from "./entry-status-1kCOFMNZ.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-BTsqd19h.js";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
//#region src/hooks/hooks-status.ts
|
|
7
7
|
function resolveHookKey(entry) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import "./paths-tuenh9TL.js";
|
|
2
2
|
import "./subsystem-G54saDcg.js";
|
|
3
3
|
import "./utils-B8zCe27d.js";
|
|
4
|
-
import { rf as describeImageWithModel } from "./reply-
|
|
5
|
-
import "./agent-scope-
|
|
6
|
-
import "./openclaw-root-
|
|
4
|
+
import { rf as describeImageWithModel } from "./reply-gX1XTS9Y.js";
|
|
5
|
+
import "./agent-scope-sd1-3XH0.js";
|
|
6
|
+
import "./openclaw-root-dlCz9toZ.js";
|
|
7
7
|
import "./logger-BohkHL0S.js";
|
|
8
8
|
import "./exec-CNtAq7Md.js";
|
|
9
9
|
import "./github-copilot-token-Ff890Vmh.js";
|
|
@@ -11,16 +11,16 @@ import "./boolean-B938tROv.js";
|
|
|
11
11
|
import "./env-CQxWwTMn.js";
|
|
12
12
|
import "./env-overrides-BYyMsIvB.js";
|
|
13
13
|
import "./registry-aHEgjCIQ.js";
|
|
14
|
-
import "./skills-
|
|
14
|
+
import "./skills-vhlUaliH.js";
|
|
15
15
|
import "./frontmatter-BngyYhS0.js";
|
|
16
|
-
import "./plugins-
|
|
17
|
-
import "./query-expansion-
|
|
16
|
+
import "./plugins-BVbKGpQJ.js";
|
|
17
|
+
import "./query-expansion-AnOnkIqf.js";
|
|
18
18
|
import "./redact-owRpqMhM.js";
|
|
19
|
-
import "./path-alias-guards-
|
|
20
|
-
import "./fetch-
|
|
19
|
+
import "./path-alias-guards-B6owPyQX.js";
|
|
20
|
+
import "./fetch-ggeyBJ4j.js";
|
|
21
21
|
import "./errors-DNKaAVHN.js";
|
|
22
|
-
import "./cmd-argv-
|
|
23
|
-
import "./restart-stale-pids-
|
|
22
|
+
import "./cmd-argv-Dz5qUtqp.js";
|
|
23
|
+
import "./restart-stale-pids-B6E7QavX.js";
|
|
24
24
|
import "./delivery-queue-B7zSt4zY.js";
|
|
25
25
|
import "./paths-CfmKJcO5.js";
|
|
26
26
|
import "./session-cost-usage-C2jrTKxW.js";
|
|
@@ -3,7 +3,7 @@ import "./paths-CNIc83Pn.js";
|
|
|
3
3
|
import "./subsystem-Cr1MiLhx.js";
|
|
4
4
|
import "./workspace-Bi8vpJN0.js";
|
|
5
5
|
import "./logger-DCBlX1uz.js";
|
|
6
|
-
import { qn as describeImageWithModel } from "./model-selection-
|
|
6
|
+
import { qn as describeImageWithModel } from "./model-selection-Coo7zMJO.js";
|
|
7
7
|
import "./github-copilot-token-BeFx3MLn.js";
|
|
8
8
|
import "./boolean-C7Ct_klp.js";
|
|
9
9
|
import "./fetch-BdTTF2z-.js";
|
package/dist/index.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import "./paths-tuenh9TL.js";
|
|
3
3
|
import { A as theme, B as tryParseLogLevel, J as hasHelpOrVersion, K as getVerboseFlag, R as ALLOWED_LOG_LEVELS, W as getCommandPathWithRootOptions, Y as hasRootVersionAlias, d as visibleWidth, k as isRich, p as defaultRuntime, q as hasFlag, r as enableConsoleCapture, w as setVerbose } from "./subsystem-G54saDcg.js";
|
|
4
4
|
import { T as toWhatsappJid, l as escapeRegExp, m as normalizeE164, n as assertWebChannel } from "./utils-B8zCe27d.js";
|
|
5
|
-
import { Up as deriveSessionKey, Wp as resolveSessionKey, _p as loadSessionStore, bi as resolveCommitHash, cf as installUnhandledRejectionHandler, d_ as loadConfig, dv as VERSION, gv as loadDotEnv, nf as applyTemplate, t as getReplyFromConfig, vg as ensureBinary, yg as promptYesNo, yp as saveSessionStore } from "./reply-
|
|
6
|
-
import "./agent-scope-
|
|
7
|
-
import "./openclaw-root-
|
|
5
|
+
import { Up as deriveSessionKey, Wp as resolveSessionKey, _p as loadSessionStore, bi as resolveCommitHash, cf as installUnhandledRejectionHandler, d_ as loadConfig, dv as VERSION, gv as loadDotEnv, nf as applyTemplate, t as getReplyFromConfig, vg as ensureBinary, yg as promptYesNo, yp as saveSessionStore } from "./reply-gX1XTS9Y.js";
|
|
6
|
+
import "./agent-scope-sd1-3XH0.js";
|
|
7
|
+
import "./openclaw-root-dlCz9toZ.js";
|
|
8
8
|
import "./logger-BohkHL0S.js";
|
|
9
9
|
import { n as runExec, t as runCommandWithTimeout } from "./exec-CNtAq7Md.js";
|
|
10
10
|
import "./github-copilot-token-Ff890Vmh.js";
|
|
@@ -13,34 +13,34 @@ import "./boolean-B938tROv.js";
|
|
|
13
13
|
import { r as normalizeEnv, t as isTruthyEnvValue } from "./env-CQxWwTMn.js";
|
|
14
14
|
import "./env-overrides-BYyMsIvB.js";
|
|
15
15
|
import "./registry-aHEgjCIQ.js";
|
|
16
|
-
import "./skills-
|
|
16
|
+
import "./skills-vhlUaliH.js";
|
|
17
17
|
import "./frontmatter-BngyYhS0.js";
|
|
18
|
-
import "./plugins-
|
|
19
|
-
import "./query-expansion-
|
|
18
|
+
import "./plugins-BVbKGpQJ.js";
|
|
19
|
+
import "./query-expansion-AnOnkIqf.js";
|
|
20
20
|
import "./redact-owRpqMhM.js";
|
|
21
|
-
import "./path-alias-guards-
|
|
22
|
-
import "./fetch-
|
|
21
|
+
import "./path-alias-guards-B6owPyQX.js";
|
|
22
|
+
import "./fetch-ggeyBJ4j.js";
|
|
23
23
|
import { i as formatUncaughtError } from "./errors-DNKaAVHN.js";
|
|
24
|
-
import { c as describePortOwner, l as ensurePortAvailable, s as PortInUseError, u as handlePortError } from "./cmd-argv-
|
|
25
|
-
import "./restart-stale-pids-
|
|
24
|
+
import { c as describePortOwner, l as ensurePortAvailable, s as PortInUseError, u as handlePortError } from "./cmd-argv-Dz5qUtqp.js";
|
|
25
|
+
import "./restart-stale-pids-B6E7QavX.js";
|
|
26
26
|
import "./delivery-queue-B7zSt4zY.js";
|
|
27
27
|
import { l as resolveStorePath } from "./paths-CfmKJcO5.js";
|
|
28
28
|
import "./session-cost-usage-C2jrTKxW.js";
|
|
29
29
|
import "./prompt-style-DlcWUCNR.js";
|
|
30
30
|
import { t as formatDocsLink } from "./links-BpKafJs4.js";
|
|
31
31
|
import "./cli-utils-BSURvrmb.js";
|
|
32
|
-
import { r as waitForever, t as monitorWebChannel } from "./channel-web-
|
|
33
|
-
import "./send-
|
|
34
|
-
import "./session-
|
|
35
|
-
import "./login-
|
|
36
|
-
import { t as createDefaultDeps } from "./deps-
|
|
32
|
+
import { r as waitForever, t as monitorWebChannel } from "./channel-web-B3yCvpab.js";
|
|
33
|
+
import "./send-hZxe8sP9.js";
|
|
34
|
+
import "./session-CndmPe2D.js";
|
|
35
|
+
import "./login-CQ5pGFeF.js";
|
|
36
|
+
import { t as createDefaultDeps } from "./deps-B6HgPp5e.js";
|
|
37
37
|
import { t as isMainModule } from "./is-main-DzNjpBBb.js";
|
|
38
38
|
import { t as ensureOpenClawCliOnPath } from "./path-env-_M4X1ggC.js";
|
|
39
39
|
import { t as assertSupportedRuntime } from "./runtime-guard-C4h47dl7.js";
|
|
40
|
-
import "./ports-
|
|
41
|
-
import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-
|
|
42
|
-
import "./plugin-registry-
|
|
43
|
-
import { n as resolveCliChannelOptions } from "./channel-options-
|
|
40
|
+
import "./ports-CrZzXxTl.js";
|
|
41
|
+
import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context--XQiK-Vv.js";
|
|
42
|
+
import "./plugin-registry-D1UVdXNl.js";
|
|
43
|
+
import { n as resolveCliChannelOptions } from "./channel-options-DR0IjcQw.js";
|
|
44
44
|
import process$1 from "node:process";
|
|
45
45
|
import { fileURLToPath } from "node:url";
|
|
46
46
|
import { Command, InvalidArgumentError } from "commander";
|
|
@@ -495,11 +495,11 @@ function shouldBypassConfigGuard(commandPath) {
|
|
|
495
495
|
return false;
|
|
496
496
|
}
|
|
497
497
|
function loadConfigGuardModule() {
|
|
498
|
-
configGuardModulePromise ??= import("./config-guard-
|
|
498
|
+
configGuardModulePromise ??= import("./config-guard-D0ly1tu3.js");
|
|
499
499
|
return configGuardModulePromise;
|
|
500
500
|
}
|
|
501
501
|
function loadPluginRegistryModule() {
|
|
502
|
-
pluginRegistryModulePromise ??= import("./plugin-registry-
|
|
502
|
+
pluginRegistryModulePromise ??= import("./plugin-registry-D1UVdXNl.js").then((n) => n.n);
|
|
503
503
|
return pluginRegistryModulePromise;
|
|
504
504
|
}
|
|
505
505
|
function getRootCommand(command) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { f as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel, p as resolveGatewayWindowsTaskName, r as GATEWAY_SERVICE_MARKER } from "./constants-D-pfuSKJ.js";
|
|
2
2
|
import { r as resolveHomeDir } from "./runtime-parse-l56zRsXX.js";
|
|
3
|
-
import { i as execSchtasks } from "./service-
|
|
3
|
+
import { i as execSchtasks } from "./service-LNrViUVb.js";
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
import
|
|
5
|
+
import fsPromises from "node:fs/promises";
|
|
6
6
|
//#region src/daemon/inspect.ts
|
|
7
7
|
const EXTRA_MARKERS = [
|
|
8
8
|
"openclaw",
|
|
@@ -71,14 +71,14 @@ function isLegacyLabel(label) {
|
|
|
71
71
|
}
|
|
72
72
|
async function readDirEntries(dir) {
|
|
73
73
|
try {
|
|
74
|
-
return await
|
|
74
|
+
return await fsPromises.readdir(dir);
|
|
75
75
|
} catch {
|
|
76
76
|
return [];
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
async function readUtf8File(filePath) {
|
|
80
80
|
try {
|
|
81
|
-
return await
|
|
81
|
+
return await fsPromises.readFile(filePath, "utf8");
|
|
82
82
|
} catch {
|
|
83
83
|
return null;
|
|
84
84
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { f as isNotFoundPathError, p as isPathInside, s as sameFileIdentity } from "./openclaw-root-
|
|
2
|
-
import { J as openFileWithinRoot, K as copyFileWithinRoot, W as SafeOpenError, Y as openWritableFileWithinRoot } from "./query-expansion-
|
|
3
|
-
import { n as resolveSafeBaseDir } from "./path-safety-
|
|
1
|
+
import { f as isNotFoundPathError, p as isPathInside, s as sameFileIdentity } from "./openclaw-root-dlCz9toZ.js";
|
|
2
|
+
import { J as openFileWithinRoot, K as copyFileWithinRoot, W as SafeOpenError, Y as openWritableFileWithinRoot } from "./query-expansion-AnOnkIqf.js";
|
|
3
|
+
import { n as resolveSafeBaseDir } from "./path-safety-DN7L46Yk.js";
|
|
4
4
|
import { constants } from "node:fs";
|
|
5
5
|
import path from "node:path";
|
|
6
|
-
import
|
|
6
|
+
import fsPromises from "node:fs/promises";
|
|
7
7
|
import { createHash, randomUUID } from "node:crypto";
|
|
8
8
|
import { pipeline } from "node:stream/promises";
|
|
9
9
|
import { Readable, Transform } from "node:stream";
|
|
@@ -55,10 +55,10 @@ function symlinkTraversalError$1(originalPath) {
|
|
|
55
55
|
return new ArchiveSecurityError("destination-symlink-traversal", `${ERROR_ARCHIVE_ENTRY_TRAVERSES_SYMLINK}: ${originalPath}`);
|
|
56
56
|
}
|
|
57
57
|
async function prepareArchiveDestinationDir(destDir) {
|
|
58
|
-
const stat = await
|
|
58
|
+
const stat = await fsPromises.lstat(destDir);
|
|
59
59
|
if (stat.isSymbolicLink()) throw new ArchiveSecurityError("destination-symlink", "archive destination is a symlink");
|
|
60
60
|
if (!stat.isDirectory()) throw new ArchiveSecurityError("destination-not-directory", "archive destination is not a directory");
|
|
61
|
-
return await
|
|
61
|
+
return await fsPromises.realpath(destDir);
|
|
62
62
|
}
|
|
63
63
|
async function assertNoSymlinkTraversal(params) {
|
|
64
64
|
const parts = params.relPath.split(/[\\/]+/).filter(Boolean);
|
|
@@ -67,7 +67,7 @@ async function assertNoSymlinkTraversal(params) {
|
|
|
67
67
|
current = path.join(current, part);
|
|
68
68
|
let stat;
|
|
69
69
|
try {
|
|
70
|
-
stat = await
|
|
70
|
+
stat = await fsPromises.lstat(current);
|
|
71
71
|
} catch (err) {
|
|
72
72
|
if (isNotFoundPathError(err)) continue;
|
|
73
73
|
throw err;
|
|
@@ -78,7 +78,7 @@ async function assertNoSymlinkTraversal(params) {
|
|
|
78
78
|
async function assertResolvedInsideDestination(params) {
|
|
79
79
|
let resolved;
|
|
80
80
|
try {
|
|
81
|
-
resolved = await
|
|
81
|
+
resolved = await fsPromises.realpath(params.targetPath);
|
|
82
82
|
} catch (err) {
|
|
83
83
|
if (isNotFoundPathError(err)) return;
|
|
84
84
|
throw err;
|
|
@@ -92,7 +92,7 @@ async function prepareArchiveOutputPath(params) {
|
|
|
92
92
|
originalPath: params.originalPath
|
|
93
93
|
});
|
|
94
94
|
if (params.isDirectory) {
|
|
95
|
-
await
|
|
95
|
+
await fsPromises.mkdir(params.outPath, { recursive: true });
|
|
96
96
|
await assertResolvedInsideDestination({
|
|
97
97
|
destinationRealDir: params.destinationRealDir,
|
|
98
98
|
targetPath: params.outPath,
|
|
@@ -101,7 +101,7 @@ async function prepareArchiveOutputPath(params) {
|
|
|
101
101
|
return;
|
|
102
102
|
}
|
|
103
103
|
const parentDir = path.dirname(params.outPath);
|
|
104
|
-
await
|
|
104
|
+
await fsPromises.mkdir(parentDir, { recursive: true });
|
|
105
105
|
await assertResolvedInsideDestination({
|
|
106
106
|
destinationRealDir: params.destinationRealDir,
|
|
107
107
|
targetPath: parentDir,
|
|
@@ -115,14 +115,14 @@ async function applyStagedEntryMode(params) {
|
|
|
115
115
|
targetPath: destinationPath,
|
|
116
116
|
originalPath: params.originalPath
|
|
117
117
|
});
|
|
118
|
-
if (params.mode !== 0) await
|
|
118
|
+
if (params.mode !== 0) await fsPromises.chmod(destinationPath, params.mode).catch(() => void 0);
|
|
119
119
|
}
|
|
120
120
|
async function withStagedArchiveDestination(params) {
|
|
121
|
-
const stagingDir = await
|
|
121
|
+
const stagingDir = await fsPromises.mkdtemp(path.join(params.destinationRealDir, ".openclaw-archive-"));
|
|
122
122
|
try {
|
|
123
123
|
return await params.run(stagingDir);
|
|
124
124
|
} finally {
|
|
125
|
-
await
|
|
125
|
+
await fsPromises.rm(stagingDir, {
|
|
126
126
|
recursive: true,
|
|
127
127
|
force: true
|
|
128
128
|
}).catch(() => void 0);
|
|
@@ -130,13 +130,13 @@ async function withStagedArchiveDestination(params) {
|
|
|
130
130
|
}
|
|
131
131
|
async function mergeExtractedTreeIntoDestination(params) {
|
|
132
132
|
const walk = async (currentSourceDir) => {
|
|
133
|
-
const entries = await
|
|
133
|
+
const entries = await fsPromises.readdir(currentSourceDir, { withFileTypes: true });
|
|
134
134
|
for (const entry of entries) {
|
|
135
135
|
const sourcePath = path.join(currentSourceDir, entry.name);
|
|
136
136
|
const relPath = path.relative(params.sourceDir, sourcePath);
|
|
137
137
|
const originalPath = relPath.split(path.sep).join("/");
|
|
138
138
|
const destinationPath = path.join(params.destinationDir, relPath);
|
|
139
|
-
const sourceStat = await
|
|
139
|
+
const sourceStat = await fsPromises.lstat(sourcePath);
|
|
140
140
|
if (sourceStat.isSymbolicLink()) throw symlinkTraversalError$1(originalPath);
|
|
141
141
|
if (sourceStat.isDirectory()) {
|
|
142
142
|
await prepareArchiveOutputPath({
|
|
@@ -204,9 +204,9 @@ function resolveArchiveKind(filePath) {
|
|
|
204
204
|
async function resolvePackedRootDir(extractDir) {
|
|
205
205
|
const direct = path.join(extractDir, "package");
|
|
206
206
|
try {
|
|
207
|
-
if ((await
|
|
207
|
+
if ((await fsPromises.stat(direct)).isDirectory()) return direct;
|
|
208
208
|
} catch {}
|
|
209
|
-
const dirs = (await
|
|
209
|
+
const dirs = (await fsPromises.readdir(extractDir, { withFileTypes: true })).filter((entry) => entry.isDirectory()).map((entry) => entry.name);
|
|
210
210
|
if (dirs.length !== 1) throw new Error(`unexpected archive layout (dirs: ${dirs.join(", ")})`);
|
|
211
211
|
const onlyDir = dirs[0];
|
|
212
212
|
if (!onlyDir) throw new Error("unexpected archive layout (no package dir found)");
|
|
@@ -291,12 +291,12 @@ async function openZipOutputFile(params) {
|
|
|
291
291
|
async function cleanupPartialRegularFile(filePath) {
|
|
292
292
|
let stat;
|
|
293
293
|
try {
|
|
294
|
-
stat = await
|
|
294
|
+
stat = await fsPromises.lstat(filePath);
|
|
295
295
|
} catch (err) {
|
|
296
296
|
if (isNotFoundPathError(err)) return;
|
|
297
297
|
throw err;
|
|
298
298
|
}
|
|
299
|
-
if (stat.isFile()) await
|
|
299
|
+
if (stat.isFile()) await fsPromises.unlink(filePath).catch(() => void 0);
|
|
300
300
|
}
|
|
301
301
|
function buildArchiveAtomicTempPath(targetPath) {
|
|
302
302
|
return path.join(path.dirname(targetPath), `.${path.basename(targetPath)}.${process.pid}.${randomUUID()}.tmp`);
|
|
@@ -353,20 +353,20 @@ async function writeZipFileEntry(params) {
|
|
|
353
353
|
let handleClosedByStream = false;
|
|
354
354
|
try {
|
|
355
355
|
tempPath = buildArchiveAtomicTempPath(destinationPath);
|
|
356
|
-
tempHandle = await
|
|
356
|
+
tempHandle = await fsPromises.open(tempPath, OPEN_WRITE_CREATE_FLAGS, targetMode || 438);
|
|
357
357
|
const writable = tempHandle.createWriteStream();
|
|
358
358
|
writable.once("close", () => {
|
|
359
359
|
handleClosedByStream = true;
|
|
360
360
|
});
|
|
361
361
|
await pipeline(readable, createExtractBudgetTransform({ onChunkBytes: params.budget.addBytes }), writable);
|
|
362
|
-
tempStat = await
|
|
362
|
+
tempStat = await fsPromises.stat(tempPath);
|
|
363
363
|
if (!tempStat) throw new Error("zip temp write did not produce file metadata");
|
|
364
364
|
if (!handleClosedByStream) {
|
|
365
365
|
await tempHandle.close().catch(() => void 0);
|
|
366
366
|
handleClosedByStream = true;
|
|
367
367
|
}
|
|
368
368
|
tempHandle = null;
|
|
369
|
-
await
|
|
369
|
+
await fsPromises.rename(tempPath, destinationPath);
|
|
370
370
|
tempPath = null;
|
|
371
371
|
const verifiedPath = await verifyZipWriteResult({
|
|
372
372
|
destinationRealDir: params.destinationRealDir,
|
|
@@ -375,10 +375,10 @@ async function writeZipFileEntry(params) {
|
|
|
375
375
|
});
|
|
376
376
|
if (typeof params.entry.unixPermissions === "number") {
|
|
377
377
|
const mode = params.entry.unixPermissions & 511;
|
|
378
|
-
if (mode !== 0) await
|
|
378
|
+
if (mode !== 0) await fsPromises.chmod(verifiedPath, mode).catch(() => void 0);
|
|
379
379
|
}
|
|
380
380
|
} catch (err) {
|
|
381
|
-
if (tempPath) await
|
|
381
|
+
if (tempPath) await fsPromises.rm(tempPath, { force: true }).catch(() => void 0);
|
|
382
382
|
else await cleanupPartialRegularFile(destinationPath).catch(() => void 0);
|
|
383
383
|
if (err instanceof SafeOpenError) throw symlinkTraversalError(params.entry.name);
|
|
384
384
|
throw err;
|
|
@@ -389,8 +389,8 @@ async function writeZipFileEntry(params) {
|
|
|
389
389
|
async function extractZip(params) {
|
|
390
390
|
const limits = resolveExtractLimits(params.limits);
|
|
391
391
|
const destinationRealDir = await prepareArchiveDestinationDir(params.destDir);
|
|
392
|
-
if ((await
|
|
393
|
-
const buffer = await
|
|
392
|
+
if ((await fsPromises.stat(params.archivePath)).size > limits.maxArchiveBytes) throw new Error(ERROR_ARCHIVE_SIZE_EXCEEDS_LIMIT);
|
|
393
|
+
const buffer = await fsPromises.readFile(params.archivePath);
|
|
394
394
|
const zip = await JSZip.loadAsync(buffer);
|
|
395
395
|
const entries = Object.values(zip.files);
|
|
396
396
|
const strip = Math.max(0, Math.floor(params.stripComponents ?? 0));
|
|
@@ -464,7 +464,7 @@ async function extractArchive(params) {
|
|
|
464
464
|
if (kind === "tar") {
|
|
465
465
|
await withTimeout((async () => {
|
|
466
466
|
const limits = resolveExtractLimits(params.limits);
|
|
467
|
-
if ((await
|
|
467
|
+
if ((await fsPromises.stat(params.archivePath)).size > limits.maxArchiveBytes) throw new Error(ERROR_ARCHIVE_SIZE_EXCEEDS_LIMIT);
|
|
468
468
|
const destinationRealDir = await prepareArchiveDestinationDir(params.destDir);
|
|
469
469
|
await withStagedArchiveDestination({
|
|
470
470
|
destinationRealDir,
|
|
@@ -509,14 +509,14 @@ async function extractArchive(params) {
|
|
|
509
509
|
}
|
|
510
510
|
async function fileExists(filePath) {
|
|
511
511
|
try {
|
|
512
|
-
await
|
|
512
|
+
await fsPromises.stat(filePath);
|
|
513
513
|
return true;
|
|
514
514
|
} catch {
|
|
515
515
|
return false;
|
|
516
516
|
}
|
|
517
517
|
}
|
|
518
518
|
async function readJsonFile(filePath) {
|
|
519
|
-
const raw = await
|
|
519
|
+
const raw = await fsPromises.readFile(filePath, "utf-8");
|
|
520
520
|
return JSON.parse(raw);
|
|
521
521
|
}
|
|
522
522
|
//#endregion
|
|
@@ -559,13 +559,13 @@ async function assertCanonicalPathWithinBase(params) {
|
|
|
559
559
|
const baseDir = path.resolve(params.baseDir);
|
|
560
560
|
const candidatePath = path.resolve(params.candidatePath);
|
|
561
561
|
if (!isPathInside(baseDir, candidatePath)) throw new Error(`Invalid path: must stay within ${params.boundaryLabel}`);
|
|
562
|
-
const baseLstat = await
|
|
562
|
+
const baseLstat = await fsPromises.lstat(baseDir);
|
|
563
563
|
if (!baseLstat.isDirectory() || baseLstat.isSymbolicLink()) throw new Error(`Invalid ${params.boundaryLabel}: base directory must be a real directory`);
|
|
564
|
-
const baseRealPath = await
|
|
564
|
+
const baseRealPath = await fsPromises.realpath(baseDir);
|
|
565
565
|
const validateDirectory = async (dirPath) => {
|
|
566
|
-
const dirLstat = await
|
|
566
|
+
const dirLstat = await fsPromises.lstat(dirPath);
|
|
567
567
|
if (!dirLstat.isDirectory() || dirLstat.isSymbolicLink()) throw new Error(`Invalid path: must stay within ${params.boundaryLabel}`);
|
|
568
|
-
if (!isPathInside(baseRealPath, await
|
|
568
|
+
if (!isPathInside(baseRealPath, await fsPromises.realpath(dirPath))) throw new Error(`Invalid path: must stay within ${params.boundaryLabel}`);
|
|
569
569
|
};
|
|
570
570
|
try {
|
|
571
571
|
await validateDirectory(candidatePath);
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { t as CONFIG_DIR, y as resolveUserPath } from "./utils-B8zCe27d.js";
|
|
2
2
|
import { _ as validateRegistryNpmSpec } from "./env-overrides-BYyMsIvB.js";
|
|
3
3
|
import { n as isPathInside, t as extensionUsesSkippedScannerPath } from "./scan-paths-B5Yx6Npu.js";
|
|
4
|
-
import { C as resolvePackageExtensionEntries, S as loadPluginManifest, _ as discoverOpenClawPlugins } from "./skills-
|
|
5
|
-
import { Q as writeFileFromPathWithinRoot } from "./query-expansion-
|
|
6
|
-
import { a as unscopedPackageName, c as fileExists, l as readJsonFile, n as resolveSafeInstallDir, r as safeDirName, u as resolveArchiveKind } from "./install-safe-path-
|
|
7
|
-
import { a as installPackageDir, c as resolveTimedInstallModeOptions, d as buildNpmResolutionFields, f as resolveArchiveSourcePath, i as resolveCanonicalInstallTarget, l as resolveExistingInstallPath, n as installFromNpmSpecArchiveWithInstaller, r as ensureInstallTargetAvailable, s as resolveInstallModeOptions, t as finalizeNpmSpecArchiveInstall, u as withExtractedArchiveRoot } from "./npm-pack-install-
|
|
8
|
-
import { t as scanDirectoryWithSummary } from "./skill-scanner-
|
|
4
|
+
import { C as resolvePackageExtensionEntries, S as loadPluginManifest, _ as discoverOpenClawPlugins } from "./skills-vhlUaliH.js";
|
|
5
|
+
import { Q as writeFileFromPathWithinRoot } from "./query-expansion-AnOnkIqf.js";
|
|
6
|
+
import { a as unscopedPackageName, c as fileExists, l as readJsonFile, n as resolveSafeInstallDir, r as safeDirName, u as resolveArchiveKind } from "./install-safe-path-CnIWvuEU.js";
|
|
7
|
+
import { a as installPackageDir, c as resolveTimedInstallModeOptions, d as buildNpmResolutionFields, f as resolveArchiveSourcePath, i as resolveCanonicalInstallTarget, l as resolveExistingInstallPath, n as installFromNpmSpecArchiveWithInstaller, r as ensureInstallTargetAvailable, s as resolveInstallModeOptions, t as finalizeNpmSpecArchiveInstall, u as withExtractedArchiveRoot } from "./npm-pack-install-C7ntuYO8.js";
|
|
8
|
+
import { t as scanDirectoryWithSummary } from "./skill-scanner-DaUNX-tW.js";
|
|
9
9
|
import path from "node:path";
|
|
10
|
-
import
|
|
10
|
+
import fsPromises from "node:fs/promises";
|
|
11
11
|
//#region src/plugins/install.ts
|
|
12
12
|
const MISSING_EXTENSIONS_ERROR = "package.json missing openclaw.extensions; update the plugin package to include openclaw.extensions (for example [\"./dist/index.js\"]). See https://docs.openclaw.ai/help/troubleshooting#plugin-install-fails-with-missing-openclaw-extensions";
|
|
13
13
|
const PLUGIN_INSTALL_ERROR_CODE = {
|
|
@@ -236,7 +236,7 @@ async function installPluginFromDir(params) {
|
|
|
236
236
|
ok: false,
|
|
237
237
|
error: `directory not found: ${dirPath}`
|
|
238
238
|
};
|
|
239
|
-
if (!(await
|
|
239
|
+
if (!(await fsPromises.stat(dirPath)).isDirectory()) return {
|
|
240
240
|
ok: false,
|
|
241
241
|
error: `not a directory: ${dirPath}`
|
|
242
242
|
};
|
|
@@ -253,7 +253,7 @@ async function installPluginFromFile(params) {
|
|
|
253
253
|
error: `file not found: ${filePath}`
|
|
254
254
|
};
|
|
255
255
|
const extensionsDir = params.extensionsDir ? resolveUserPath(params.extensionsDir) : path.join(CONFIG_DIR, "extensions");
|
|
256
|
-
await
|
|
256
|
+
await fsPromises.mkdir(extensionsDir, { recursive: true });
|
|
257
257
|
const pluginId = path.basename(filePath, path.extname(filePath)) || "plugin";
|
|
258
258
|
const pluginIdError = validatePluginId(pluginId);
|
|
259
259
|
if (pluginIdError) return {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { D_ as isCanonicalDottedDecimalIPv4, gg as getTailnetHostname, j_ as parseCanonicalIpAddress, k_ as isIpv6Address } from "./reply-
|
|
1
|
+
import { D_ as isCanonicalDottedDecimalIPv4, gg as getTailnetHostname, j_ as parseCanonicalIpAddress, k_ as isIpv6Address } from "./reply-gX1XTS9Y.js";
|
|
2
2
|
//#region src/gateway/gateway-config-prompts.shared.ts
|
|
3
3
|
const TAILSCALE_EXPOSURE_OPTIONS = [
|
|
4
4
|
{
|