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,10 +1,10 @@
|
|
|
1
1
|
import { y as resolveUserPath } from "./utils-B8zCe27d.js";
|
|
2
2
|
import { t as runCommandWithTimeout } from "./exec-CNtAq7Md.js";
|
|
3
3
|
import { g as parseRegistryNpmSpec, h as isPrereleaseResolutionAllowed, m as formatPrereleaseResolutionError } from "./env-overrides-BYyMsIvB.js";
|
|
4
|
-
import { c as fileExists, d as resolvePackedRootDir, n as resolveSafeInstallDir, s as extractArchive, t as assertCanonicalPathWithinBase, u as resolveArchiveKind } from "./install-safe-path-
|
|
4
|
+
import { c as fileExists, d as resolvePackedRootDir, n as resolveSafeInstallDir, s as extractArchive, t as assertCanonicalPathWithinBase, u as resolveArchiveKind } from "./install-safe-path-CnIWvuEU.js";
|
|
5
5
|
import os from "node:os";
|
|
6
6
|
import path from "node:path";
|
|
7
|
-
import
|
|
7
|
+
import fsPromises from "node:fs/promises";
|
|
8
8
|
//#region src/infra/install-source-utils.ts
|
|
9
9
|
function buildNpmResolutionFields(resolution) {
|
|
10
10
|
return {
|
|
@@ -17,11 +17,11 @@ function buildNpmResolutionFields(resolution) {
|
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
async function withTempDir(prefix, fn) {
|
|
20
|
-
const tmpDir = await
|
|
20
|
+
const tmpDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), prefix));
|
|
21
21
|
try {
|
|
22
22
|
return await fn(tmpDir);
|
|
23
23
|
} finally {
|
|
24
|
-
await
|
|
24
|
+
await fsPromises.rm(tmpDir, {
|
|
25
25
|
recursive: true,
|
|
26
26
|
force: true
|
|
27
27
|
}).catch(() => void 0);
|
|
@@ -106,12 +106,12 @@ function parsePackedArchiveFromStdout(stdout) {
|
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
async function findPackedArchiveInDir(cwd) {
|
|
109
|
-
const archives = (await
|
|
109
|
+
const archives = (await fsPromises.readdir(cwd, { withFileTypes: true }).catch(() => [])).filter((entry) => entry.isFile() && entry.name.endsWith(".tgz"));
|
|
110
110
|
if (archives.length === 0) return;
|
|
111
111
|
if (archives.length === 1) return archives[0]?.name;
|
|
112
112
|
const sortedByMtime = await Promise.all(archives.map(async (entry) => ({
|
|
113
113
|
name: entry.name,
|
|
114
|
-
mtimeMs: (await
|
|
114
|
+
mtimeMs: (await fsPromises.stat(path.join(cwd, entry.name))).mtimeMs
|
|
115
115
|
})));
|
|
116
116
|
sortedByMtime.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
117
117
|
return sortedByMtime[0]?.name;
|
|
@@ -175,13 +175,13 @@ async function resolveExistingInstallPath(inputPath) {
|
|
|
175
175
|
return {
|
|
176
176
|
ok: true,
|
|
177
177
|
resolvedPath,
|
|
178
|
-
stat: await
|
|
178
|
+
stat: await fsPromises.stat(resolvedPath)
|
|
179
179
|
};
|
|
180
180
|
}
|
|
181
181
|
async function withExtractedArchiveRoot(params) {
|
|
182
182
|
return await withTempDir(params.tempDirPrefix, async (tmpDir) => {
|
|
183
183
|
const extractDir = path.join(tmpDir, "extract");
|
|
184
|
-
await
|
|
184
|
+
await fsPromises.mkdir(extractDir, { recursive: true });
|
|
185
185
|
params.logger?.info?.(`Extracting ${params.archivePath}…`);
|
|
186
186
|
try {
|
|
187
187
|
await extractArchive({
|
|
@@ -235,7 +235,7 @@ async function sanitizeManifestForNpmInstall(targetDir) {
|
|
|
235
235
|
const manifestPath = path.join(targetDir, "package.json");
|
|
236
236
|
let manifestRaw = "";
|
|
237
237
|
try {
|
|
238
|
-
manifestRaw = await
|
|
238
|
+
manifestRaw = await fsPromises.readFile(manifestPath, "utf-8");
|
|
239
239
|
} catch {
|
|
240
240
|
return;
|
|
241
241
|
}
|
|
@@ -255,7 +255,7 @@ async function sanitizeManifestForNpmInstall(targetDir) {
|
|
|
255
255
|
if (filteredEntries.length === Object.keys(devDependencies).length) return;
|
|
256
256
|
if (filteredEntries.length === 0) delete manifest.devDependencies;
|
|
257
257
|
else manifest.devDependencies = Object.fromEntries(filteredEntries);
|
|
258
|
-
await
|
|
258
|
+
await fsPromises.writeFile(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`, "utf-8");
|
|
259
259
|
}
|
|
260
260
|
async function assertInstallBoundaryPaths(params) {
|
|
261
261
|
for (const candidatePath of params.candidatePaths) await assertCanonicalPathWithinBase({
|
|
@@ -271,13 +271,13 @@ function isInstallBaseChangedError(error) {
|
|
|
271
271
|
return error instanceof Error && error.message === INSTALL_BASE_CHANGED_ERROR_MESSAGE;
|
|
272
272
|
}
|
|
273
273
|
async function assertInstallBaseStable(params) {
|
|
274
|
-
const baseLstat = await
|
|
274
|
+
const baseLstat = await fsPromises.lstat(params.installBaseDir);
|
|
275
275
|
if (!baseLstat.isDirectory() || baseLstat.isSymbolicLink()) throw new Error(INSTALL_BASE_CHANGED_ERROR_MESSAGE);
|
|
276
|
-
if (await
|
|
276
|
+
if (await fsPromises.realpath(params.installBaseDir) !== params.expectedRealPath) throw new Error(INSTALL_BASE_CHANGED_ERROR_MESSAGE);
|
|
277
277
|
}
|
|
278
278
|
async function cleanupInstallTempDir(dirPath) {
|
|
279
279
|
if (!dirPath) return;
|
|
280
|
-
await
|
|
280
|
+
await fsPromises.rm(dirPath, {
|
|
281
281
|
recursive: true,
|
|
282
282
|
force: true
|
|
283
283
|
}).catch(() => void 0);
|
|
@@ -287,7 +287,7 @@ async function resolveInstallPublishTarget(params) {
|
|
|
287
287
|
const targetResolved = path.resolve(params.targetDir);
|
|
288
288
|
const targetRelativePath = path.relative(installBaseResolved, targetResolved);
|
|
289
289
|
if (!isRelativePathInsideBase(targetRelativePath)) throw new Error("invalid install target path");
|
|
290
|
-
const installBaseRealPath = await
|
|
290
|
+
const installBaseRealPath = await fsPromises.realpath(params.installBaseDir);
|
|
291
291
|
return {
|
|
292
292
|
installBaseRealPath,
|
|
293
293
|
canonicalTargetDir: path.join(installBaseRealPath, targetRelativePath)
|
|
@@ -296,7 +296,7 @@ async function resolveInstallPublishTarget(params) {
|
|
|
296
296
|
async function installPackageDir(params) {
|
|
297
297
|
params.logger?.info?.(`Installing to ${params.targetDir}…`);
|
|
298
298
|
const installBaseDir = path.dirname(params.targetDir);
|
|
299
|
-
await
|
|
299
|
+
await fsPromises.mkdir(installBaseDir, { recursive: true });
|
|
300
300
|
await assertInstallBoundaryPaths({
|
|
301
301
|
installBaseDir,
|
|
302
302
|
candidatePaths: [params.targetDir]
|
|
@@ -332,7 +332,7 @@ async function installPackageDir(params) {
|
|
|
332
332
|
};
|
|
333
333
|
const restoreBackup = async () => {
|
|
334
334
|
if (!backupDir) return;
|
|
335
|
-
await
|
|
335
|
+
await fsPromises.rename(backupDir, canonicalTargetDir).catch(() => void 0);
|
|
336
336
|
backupDir = null;
|
|
337
337
|
};
|
|
338
338
|
try {
|
|
@@ -340,8 +340,8 @@ async function installPackageDir(params) {
|
|
|
340
340
|
installBaseDir: installBaseRealPath,
|
|
341
341
|
candidatePaths: [canonicalTargetDir]
|
|
342
342
|
});
|
|
343
|
-
stageDir = await
|
|
344
|
-
await
|
|
343
|
+
stageDir = await fsPromises.mkdtemp(path.join(installBaseRealPath, ".openclaw-install-stage-"));
|
|
344
|
+
await fsPromises.cp(params.sourceDir, stageDir, { recursive: true });
|
|
345
345
|
} catch (err) {
|
|
346
346
|
return await fail(`${params.copyErrorPrefix}: ${String(err)}`, err);
|
|
347
347
|
}
|
|
@@ -369,7 +369,7 @@ async function installPackageDir(params) {
|
|
|
369
369
|
const backupRoot = path.join(installBaseRealPath, ".openclaw-install-backups");
|
|
370
370
|
backupDir = path.join(backupRoot, `${path.basename(canonicalTargetDir)}-${Date.now()}`);
|
|
371
371
|
try {
|
|
372
|
-
await
|
|
372
|
+
await fsPromises.mkdir(backupRoot, { recursive: true });
|
|
373
373
|
await assertInstallBoundaryPaths({
|
|
374
374
|
installBaseDir: installBaseRealPath,
|
|
375
375
|
candidatePaths: [backupDir]
|
|
@@ -378,7 +378,7 @@ async function installPackageDir(params) {
|
|
|
378
378
|
installBaseDir,
|
|
379
379
|
expectedRealPath: installBaseRealPath
|
|
380
380
|
});
|
|
381
|
-
await
|
|
381
|
+
await fsPromises.rename(canonicalTargetDir, backupDir);
|
|
382
382
|
} catch (err) {
|
|
383
383
|
return await fail(`${params.copyErrorPrefix}: ${String(err)}`, err);
|
|
384
384
|
}
|
|
@@ -388,7 +388,7 @@ async function installPackageDir(params) {
|
|
|
388
388
|
installBaseDir,
|
|
389
389
|
expectedRealPath: installBaseRealPath
|
|
390
390
|
});
|
|
391
|
-
await
|
|
391
|
+
await fsPromises.rename(stageDir, canonicalTargetDir);
|
|
392
392
|
stageDir = null;
|
|
393
393
|
} catch (err) {
|
|
394
394
|
return await fail(`${params.copyErrorPrefix}: ${String(err)}`, err);
|
|
@@ -402,7 +402,7 @@ async function installPackageDir(params) {
|
|
|
402
402
|
if (isInstallBaseChangedError(err)) params.logger?.warn?.(INSTALL_BASE_CHANGED_BACKUP_WARNING);
|
|
403
403
|
backupDir = null;
|
|
404
404
|
}
|
|
405
|
-
if (backupDir) await
|
|
405
|
+
if (backupDir) await fsPromises.rm(backupDir, {
|
|
406
406
|
recursive: true,
|
|
407
407
|
force: true
|
|
408
408
|
}).catch(() => void 0);
|
|
@@ -418,7 +418,7 @@ async function installPackageDirWithManifestDeps(params) {
|
|
|
418
418
|
//#endregion
|
|
419
419
|
//#region src/infra/install-target.ts
|
|
420
420
|
async function resolveCanonicalInstallTarget(params) {
|
|
421
|
-
await
|
|
421
|
+
await fsPromises.mkdir(params.baseDir, { recursive: true });
|
|
422
422
|
const targetDirResult = resolveSafeInstallDir({
|
|
423
423
|
baseDir: params.baseDir,
|
|
424
424
|
id: params.id,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as createSubsystemLogger } from "./subsystem-G54saDcg.js";
|
|
2
|
-
import { Bl as createPluginLoaderLogger, V as loadOpenClawPlugins, d_ as loadConfig } from "./reply-
|
|
3
|
-
import { d as resolveAgentWorkspaceDir, f as resolveDefaultAgentId, j as resolveDefaultAgentWorkspaceDir } from "./agent-scope-
|
|
4
|
-
import { d as buildNpmResolutionFields } from "./npm-pack-install-
|
|
2
|
+
import { Bl as createPluginLoaderLogger, V as loadOpenClawPlugins, d_ as loadConfig } from "./reply-gX1XTS9Y.js";
|
|
3
|
+
import { d as resolveAgentWorkspaceDir, f as resolveDefaultAgentId, j as resolveDefaultAgentWorkspaceDir } from "./agent-scope-sd1-3XH0.js";
|
|
4
|
+
import { d as buildNpmResolutionFields } from "./npm-pack-install-C7ntuYO8.js";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
//#region src/plugins/status.ts
|
|
7
7
|
const log = createSubsystemLogger("plugins");
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { u as resolveGatewayPort } from "./paths-tuenh9TL.js";
|
|
2
2
|
import { m as restoreTerminalState, p as defaultRuntime } from "./subsystem-G54saDcg.js";
|
|
3
3
|
import { y as resolveUserPath } from "./utils-B8zCe27d.js";
|
|
4
|
-
import { Ct as applyWizardMetadata, Et as ensureWorkspaceAndSessions, It as randomToken, Lt as resolveControlUiLinks, St as DEFAULT_WORKSPACE, Vt as waitForGatewayReachable, jt as normalizeGatewayTokenInput, kt as handleReset, m_ as readConfigFileSnapshot, v_ as writeConfigFile } from "./reply-
|
|
4
|
+
import { Ct as applyWizardMetadata, Et as ensureWorkspaceAndSessions, It as randomToken, Lt as resolveControlUiLinks, St as DEFAULT_WORKSPACE, Vt as waitForGatewayReachable, jt as normalizeGatewayTokenInput, kt as handleReset, m_ as readConfigFileSnapshot, v_ as writeConfigFile } from "./reply-gX1XTS9Y.js";
|
|
5
5
|
import { s as isValidEnvSecretRefId } from "./types.secrets-d7ZFrG7U.js";
|
|
6
6
|
import { t as formatCliCommand } from "./command-format-p_4ya3m0.js";
|
|
7
|
-
import { jt as resolveDefaultSecretProviderAlias } from "./plugins-
|
|
7
|
+
import { jt as resolveDefaultSecretProviderAlias } from "./plugins-BVbKGpQJ.js";
|
|
8
8
|
import { t as assertSupportedRuntime } from "./runtime-guard-C4h47dl7.js";
|
|
9
9
|
import { t as WizardCancelledError } from "./prompts-88Dfc7Av.js";
|
|
10
|
-
import { t as createClackPrompter } from "./clack-prompter-
|
|
10
|
+
import { t as createClackPrompter } from "./clack-prompter-CakorHf3.js";
|
|
11
11
|
import "./daemon-runtime-CYx-YMxc.js";
|
|
12
|
-
import { t as runOnboardingWizard } from "./onboarding-
|
|
13
|
-
import { n as logConfigUpdated } from "./logging-
|
|
12
|
+
import { t as runOnboardingWizard } from "./onboarding-CAQDdLGu.js";
|
|
13
|
+
import { n as logConfigUpdated } from "./logging-B7i4YBpx.js";
|
|
14
14
|
import { i as normalizeLegacyOnboardAuthChoice, r as isDeprecatedAuthChoice, t as ONBOARD_PROVIDER_AUTH_FLAGS } from "./onboard-provider-auth-flags-DhIGBqAU.js";
|
|
15
15
|
import { t as applyOnboardingLocalWorkspaceConfig } from "./onboard-config-Cc0V1FPc.js";
|
|
16
16
|
//#region src/commands/onboard-interactive.ts
|
|
@@ -263,7 +263,7 @@ const ATTACH_EXISTING_GATEWAY_HEALTH_DEADLINE_MS = 15e3;
|
|
|
263
263
|
async function collectGatewayHealthFailureDiagnostics() {
|
|
264
264
|
const diagnostics = {};
|
|
265
265
|
try {
|
|
266
|
-
const { resolveGatewayService } = await import("./service-
|
|
266
|
+
const { resolveGatewayService } = await import("./service-LNrViUVb.js").then((n) => n.r);
|
|
267
267
|
const service = resolveGatewayService();
|
|
268
268
|
const env = process.env;
|
|
269
269
|
const [loaded, runtime] = await Promise.all([service.isLoaded({ env }).catch(() => false), service.readRuntime(env).catch(() => void 0)]);
|
|
@@ -281,7 +281,7 @@ async function collectGatewayHealthFailureDiagnostics() {
|
|
|
281
281
|
diagnostics.inspectError = `service diagnostics failed: ${String(err)}`;
|
|
282
282
|
}
|
|
283
283
|
try {
|
|
284
|
-
const { readLastGatewayErrorLine } = await import("./diagnostics-
|
|
284
|
+
const { readLastGatewayErrorLine } = await import("./diagnostics-iZHasrpQ.js").then((n) => n.t);
|
|
285
285
|
diagnostics.lastGatewayError = await readLastGatewayErrorLine(process.env) ?? void 0;
|
|
286
286
|
} catch (err) {
|
|
287
287
|
diagnostics.inspectError = diagnostics.inspectError ? `${diagnostics.inspectError}; log diagnostics failed: ${String(err)}` : `log diagnostics failed: ${String(err)}`;
|
|
@@ -309,7 +309,7 @@ async function runNonInteractiveOnboardingLocal(params) {
|
|
|
309
309
|
}
|
|
310
310
|
const authChoice = opts.authChoice ?? inferredAuthChoice.choice ?? "skip";
|
|
311
311
|
if (authChoice !== "skip") {
|
|
312
|
-
const { applyNonInteractiveAuthChoice } = await import("./auth-choice-
|
|
312
|
+
const { applyNonInteractiveAuthChoice } = await import("./auth-choice-B7hFRxC4.js");
|
|
313
313
|
const nextConfigAfterAuth = await applyNonInteractiveAuthChoice({
|
|
314
314
|
nextConfig,
|
|
315
315
|
authChoice,
|
|
@@ -344,7 +344,7 @@ async function runNonInteractiveOnboardingLocal(params) {
|
|
|
344
344
|
const daemonRuntimeRaw = opts.daemonRuntime ?? "node";
|
|
345
345
|
let daemonInstallStatus;
|
|
346
346
|
if (opts.installDaemon) {
|
|
347
|
-
const { installGatewayDaemonNonInteractive } = await import("./daemon-install-
|
|
347
|
+
const { installGatewayDaemonNonInteractive } = await import("./daemon-install-e324s4no.js");
|
|
348
348
|
const daemonInstall = await installGatewayDaemonNonInteractive({
|
|
349
349
|
nextConfig,
|
|
350
350
|
opts,
|
|
@@ -380,7 +380,7 @@ async function runNonInteractiveOnboardingLocal(params) {
|
|
|
380
380
|
}
|
|
381
381
|
}
|
|
382
382
|
if (!opts.skipHealth) {
|
|
383
|
-
const { healthCommand } = await import("./health-
|
|
383
|
+
const { healthCommand } = await import("./health-CTOG7Tdy.js").then((n) => n.i);
|
|
384
384
|
const links = resolveControlUiLinks({
|
|
385
385
|
bind: gatewayResult.bind,
|
|
386
386
|
port: gatewayResult.port,
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-DUslC3ob.js";
|
|
2
2
|
import { t as createSubsystemLogger } from "./subsystem-G54saDcg.js";
|
|
3
3
|
import { h as pathExists, m as normalizeE164, t as CONFIG_DIR } from "./utils-B8zCe27d.js";
|
|
4
|
-
import { Bl as createPluginLoaderLogger, Ji as normalizeIMessageHandle, Kt as resolveDiscordUserAllowlist, V as loadOpenClawPlugins, cm as resolveDefaultSignalAccountId, fa as listChannelPluginCatalogEntries, gt as resolveSlackChannelAllowlist, ht as resolveSlackUserAllowlist, la as isChannelConfigured, lm as resolveSignalAccount, qt as resolveDiscordChannelAllowlist, sm as listSignalAccountIds, wt as detectBinary, yd as normalizeDiscordSlug } from "./reply-
|
|
5
|
-
import { d as resolveAgentWorkspaceDir, f as resolveDefaultAgentId } from "./agent-scope-
|
|
4
|
+
import { Bl as createPluginLoaderLogger, Ji as normalizeIMessageHandle, Kt as resolveDiscordUserAllowlist, V as loadOpenClawPlugins, cm as resolveDefaultSignalAccountId, fa as listChannelPluginCatalogEntries, gt as resolveSlackChannelAllowlist, ht as resolveSlackUserAllowlist, la as isChannelConfigured, lm as resolveSignalAccount, qt as resolveDiscordChannelAllowlist, sm as listSignalAccountIds, wt as detectBinary, yd as normalizeDiscordSlug } from "./reply-gX1XTS9Y.js";
|
|
5
|
+
import { d as resolveAgentWorkspaceDir, f as resolveDefaultAgentId } from "./agent-scope-sd1-3XH0.js";
|
|
6
6
|
import { _ as normalizeAccountId, g as DEFAULT_ACCOUNT_ID } from "./session-key-DjKQluAa.js";
|
|
7
7
|
import { t as runCommandWithTimeout } from "./exec-CNtAq7Md.js";
|
|
8
8
|
import { a as hasConfiguredSecretInput } from "./types.secrets-d7ZFrG7U.js";
|
|
9
9
|
import { t as formatCliCommand } from "./command-format-p_4ya3m0.js";
|
|
10
10
|
import { i as formatChannelSelectionLine, o as listChatChannels, r as formatChannelPrimerLine } from "./registry-aHEgjCIQ.js";
|
|
11
|
-
import { g as clearPluginDiscoveryCache } from "./skills-
|
|
12
|
-
import { F as listIMessageAccountIds, H as resolveDefaultTelegramAccountId, I as resolveDefaultIMessageAccountId, L as resolveIMessageAccount, R as inspectTelegramAccount, U as resolveTelegramAccount, V as listTelegramAccountIds, _t as resolveDiscordAccount, at as listSlackAccountIds, dt as inspectDiscordAccount, g as resolveChannelDefaultAccountId, gt as resolveDefaultDiscordAccountId, it as inspectSlackAccount, n as listChannelPlugins, ot as resolveDefaultSlackAccountId, pt as listDiscordAccountIds, st as resolveSlackAccount, t as getChannelPlugin, v as listWhatsAppAccountIds, x as resolveWhatsAppAuthDir, y as resolveDefaultWhatsAppAccountId } from "./plugins-
|
|
11
|
+
import { g as clearPluginDiscoveryCache } from "./skills-vhlUaliH.js";
|
|
12
|
+
import { F as listIMessageAccountIds, H as resolveDefaultTelegramAccountId, I as resolveDefaultIMessageAccountId, L as resolveIMessageAccount, R as inspectTelegramAccount, U as resolveTelegramAccount, V as listTelegramAccountIds, _t as resolveDiscordAccount, at as listSlackAccountIds, dt as inspectDiscordAccount, g as resolveChannelDefaultAccountId, gt as resolveDefaultDiscordAccountId, it as inspectSlackAccount, n as listChannelPlugins, ot as resolveDefaultSlackAccountId, pt as listDiscordAccountIds, st as resolveSlackAccount, t as getChannelPlugin, v as listWhatsAppAccountIds, x as resolveWhatsAppAuthDir, y as resolveDefaultWhatsAppAccountId } from "./plugins-BVbKGpQJ.js";
|
|
13
13
|
import { t as formatDocsLink } from "./links-BpKafJs4.js";
|
|
14
|
-
import { t as loginWeb } from "./login-
|
|
14
|
+
import { t as loginWeb } from "./login-CQ5pGFeF.js";
|
|
15
15
|
import { t as resolveBrewExecutable } from "./brew-BoTYTRV7.js";
|
|
16
16
|
import { n as moveSingleAccountChannelSectionToDefaultAccount, r as patchScopedAccountConfig, t as fetchTelegramChatId } from "./api-fetch-DlNaizdi.js";
|
|
17
|
-
import { t as enablePluginInConfig } from "./enable-
|
|
18
|
-
import { s as extractArchive } from "./install-safe-path-
|
|
19
|
-
import { a as resolveBundledPluginSources, i as findBundledPluginSourceInMap, n as recordPluginInstall, s as installPluginFromNpmSpec, t as buildNpmResolutionInstallFields } from "./installs-
|
|
20
|
-
import { n as resolveBundledInstallPlanForCatalogEntry } from "./plugin-install-plan-
|
|
21
|
-
import { c as resolveSecretInputModeForEnvSelection, s as promptSecretRefForOnboarding } from "./auth-choice.apply-helpers-
|
|
17
|
+
import { t as enablePluginInConfig } from "./enable-CmddFDJP.js";
|
|
18
|
+
import { s as extractArchive } from "./install-safe-path-CnIWvuEU.js";
|
|
19
|
+
import { a as resolveBundledPluginSources, i as findBundledPluginSourceInMap, n as recordPluginInstall, s as installPluginFromNpmSpec, t as buildNpmResolutionInstallFields } from "./installs-BcQMkw3V.js";
|
|
20
|
+
import { n as resolveBundledInstallPlanForCatalogEntry } from "./plugin-install-plan-tegfcs_j.js";
|
|
21
|
+
import { c as resolveSecretInputModeForEnvSelection, s as promptSecretRefForOnboarding } from "./auth-choice.apply-helpers-BwI7_FDv.js";
|
|
22
22
|
import fs, { createWriteStream } from "node:fs";
|
|
23
23
|
import os from "node:os";
|
|
24
24
|
import path from "node:path";
|
|
25
|
-
import
|
|
25
|
+
import fsPromises from "node:fs/promises";
|
|
26
26
|
import { pipeline } from "node:stream/promises";
|
|
27
27
|
import { request } from "node:https";
|
|
28
28
|
//#region src/commands/onboarding/plugin-install.ts
|
|
@@ -1143,7 +1143,7 @@ async function findSignalCliBinary(root) {
|
|
|
1143
1143
|
const candidates = [];
|
|
1144
1144
|
const enqueue = async (dir, depth) => {
|
|
1145
1145
|
if (depth > 3) return;
|
|
1146
|
-
const entries = await
|
|
1146
|
+
const entries = await fsPromises.readdir(dir, { withFileTypes: true }).catch(() => []);
|
|
1147
1147
|
for (const entry of entries) {
|
|
1148
1148
|
const full = path.join(dir, entry.name);
|
|
1149
1149
|
if (entry.isDirectory()) await enqueue(full, depth + 1);
|
|
@@ -1164,7 +1164,7 @@ async function resolveBrewSignalCliPath(brewExe) {
|
|
|
1164
1164
|
const prefix = result.stdout.trim();
|
|
1165
1165
|
const candidate = path.join(prefix, "bin", "signal-cli");
|
|
1166
1166
|
try {
|
|
1167
|
-
await
|
|
1167
|
+
await fsPromises.access(candidate);
|
|
1168
1168
|
return candidate;
|
|
1169
1169
|
} catch {
|
|
1170
1170
|
return findSignalCliBinary(prefix);
|
|
@@ -1220,12 +1220,12 @@ async function installSignalCliFromRelease(runtime) {
|
|
|
1220
1220
|
ok: false,
|
|
1221
1221
|
error: "No compatible release asset found for this platform."
|
|
1222
1222
|
};
|
|
1223
|
-
const tmpDir = await
|
|
1223
|
+
const tmpDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "openclaw-signal-"));
|
|
1224
1224
|
const archivePath = path.join(tmpDir, asset.name);
|
|
1225
1225
|
runtime.log(`Downloading signal-cli ${version} (${asset.name})…`);
|
|
1226
1226
|
await downloadToFile(asset.browser_download_url, archivePath);
|
|
1227
1227
|
const installRoot = path.join(CONFIG_DIR, "tools", "signal-cli", version);
|
|
1228
|
-
await
|
|
1228
|
+
await fsPromises.mkdir(installRoot, { recursive: true });
|
|
1229
1229
|
if (!looksLikeArchive(asset.name.toLowerCase())) return {
|
|
1230
1230
|
ok: false,
|
|
1231
1231
|
error: `Unsupported archive type: ${asset.name}`
|
|
@@ -1244,7 +1244,7 @@ async function installSignalCliFromRelease(runtime) {
|
|
|
1244
1244
|
ok: false,
|
|
1245
1245
|
error: `signal-cli binary not found after extracting ${asset.name}`
|
|
1246
1246
|
};
|
|
1247
|
-
await
|
|
1247
|
+
await fsPromises.chmod(cliPath, 493).catch(() => {});
|
|
1248
1248
|
return {
|
|
1249
1249
|
ok: true,
|
|
1250
1250
|
cliPath,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-DUslC3ob.js";
|
|
2
|
-
import { D as modelKey, Kf as OLLAMA_DEFAULT_BASE_URL, Lv as DEFAULT_PROVIDER, Nv as normalizeOptionalSecretInput, Pv as normalizeSecretInput, S as buildModelAliasIndex, Yl as CONTEXT_WINDOW_HARD_MIN_TOKENS } from "./reply-
|
|
2
|
+
import { D as modelKey, Kf as OLLAMA_DEFAULT_BASE_URL, Lv as DEFAULT_PROVIDER, Nv as normalizeOptionalSecretInput, Pv as normalizeSecretInput, S as buildModelAliasIndex, Yl as CONTEXT_WINDOW_HARD_MIN_TOKENS } from "./reply-gX1XTS9Y.js";
|
|
3
3
|
import { o as isSecretRef } from "./types.secrets-d7ZFrG7U.js";
|
|
4
|
-
import { d as fetchWithTimeout } from "./fetch-
|
|
5
|
-
import { r as ensureApiKeyFromEnvOrPrompt } from "./auth-choice.apply-helpers-
|
|
6
|
-
import { tn as normalizeAlias } from "./provider-auth-helpers-
|
|
7
|
-
import { r as applyPrimaryModel } from "./model-picker-
|
|
4
|
+
import { d as fetchWithTimeout } from "./fetch-ggeyBJ4j.js";
|
|
5
|
+
import { r as ensureApiKeyFromEnvOrPrompt } from "./auth-choice.apply-helpers-BwI7_FDv.js";
|
|
6
|
+
import { tn as normalizeAlias } from "./provider-auth-helpers-B5U-h2Ob.js";
|
|
7
|
+
import { r as applyPrimaryModel } from "./model-picker-iMZicrZb.js";
|
|
8
8
|
//#region src/commands/onboard-custom.ts
|
|
9
9
|
var onboard_custom_exports = /* @__PURE__ */ __exportAll({
|
|
10
10
|
CustomApiError: () => CustomApiError,
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import "./paths-tuenh9TL.js";
|
|
2
2
|
import "./subsystem-G54saDcg.js";
|
|
3
3
|
import "./utils-B8zCe27d.js";
|
|
4
|
-
import { d as resolveAgentWorkspaceDir, f as resolveDefaultAgentId } from "./agent-scope-
|
|
5
|
-
import "./openclaw-root-
|
|
4
|
+
import { d as resolveAgentWorkspaceDir, f as resolveDefaultAgentId } from "./agent-scope-sd1-3XH0.js";
|
|
5
|
+
import "./openclaw-root-dlCz9toZ.js";
|
|
6
6
|
import "./logger-BohkHL0S.js";
|
|
7
7
|
import "./exec-CNtAq7Md.js";
|
|
8
8
|
import { t as formatCliCommand } from "./command-format-p_4ya3m0.js";
|
|
9
9
|
import "./boolean-B938tROv.js";
|
|
10
10
|
import "./frontmatter-BngyYhS0.js";
|
|
11
|
-
import "./workspace-
|
|
12
|
-
import { t as buildWorkspaceHookStatus } from "./hooks-status-
|
|
11
|
+
import "./workspace-BTsqd19h.js";
|
|
12
|
+
import { t as buildWorkspaceHookStatus } from "./hooks-status-BiuMKGQP.js";
|
|
13
13
|
//#region src/commands/onboard-hooks.ts
|
|
14
14
|
async function setupInternalHooks(cfg, runtime, prompter) {
|
|
15
15
|
await prompter.note([
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-DUslC3ob.js";
|
|
2
|
-
import { Qh as isSecureWebSocketUrl, wt as detectBinary } from "./reply-
|
|
3
|
-
import { c as resolveSecretInputModeForEnvSelection, s as promptSecretRefForOnboarding } from "./auth-choice.apply-helpers-
|
|
2
|
+
import { Qh as isSecureWebSocketUrl, wt as detectBinary } from "./reply-gX1XTS9Y.js";
|
|
3
|
+
import { c as resolveSecretInputModeForEnvSelection, s as promptSecretRefForOnboarding } from "./auth-choice.apply-helpers-BwI7_FDv.js";
|
|
4
4
|
import { n as resolveWideAreaDiscoveryDomain } from "./widearea-dns-clEQGTnj.js";
|
|
5
|
-
import { t as discoverGatewayBeacons } from "./bonjour-discovery-
|
|
5
|
+
import { t as discoverGatewayBeacons } from "./bonjour-discovery-CgQeXj94.js";
|
|
6
6
|
//#region src/commands/onboard-remote.ts
|
|
7
7
|
var onboard_remote_exports = /* @__PURE__ */ __exportAll({ promptRemoteGatewayConfig: () => promptRemoteGatewayConfig });
|
|
8
8
|
const DEFAULT_GATEWAY_URL = "ws://127.0.0.1:18789";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-DUslC3ob.js";
|
|
2
|
-
import { Pv as normalizeSecretInput, Rt as resolveNodeManagerOptions, wt as detectBinary } from "./reply-
|
|
2
|
+
import { Pv as normalizeSecretInput, Rt as resolveNodeManagerOptions, wt as detectBinary } from "./reply-gX1XTS9Y.js";
|
|
3
3
|
import { t as formatCliCommand } from "./command-format-p_4ya3m0.js";
|
|
4
|
-
import { t as buildWorkspaceSkillStatus } from "./skills-status-
|
|
5
|
-
import { t as installSkill } from "./skills-install-
|
|
4
|
+
import { t as buildWorkspaceSkillStatus } from "./skills-status-DHMQ6A2H.js";
|
|
5
|
+
import { t as installSkill } from "./skills-install-BnRu7wO4.js";
|
|
6
6
|
//#region src/commands/onboard-skills.ts
|
|
7
7
|
var onboard_skills_exports = /* @__PURE__ */ __exportAll({ setupSkills: () => setupSkills });
|
|
8
8
|
function summarizeInstallFailure(message) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { n as DEFAULT_GATEWAY_PORT, u as resolveGatewayPort } from "./paths-tuenh9TL.js";
|
|
2
2
|
import { p as defaultRuntime } from "./subsystem-G54saDcg.js";
|
|
3
3
|
import { y as resolveUserPath } from "./utils-B8zCe27d.js";
|
|
4
|
-
import { m_ as readConfigFileSnapshot, v_ as writeConfigFile } from "./reply-
|
|
4
|
+
import { m_ as readConfigFileSnapshot, v_ as writeConfigFile } from "./reply-gX1XTS9Y.js";
|
|
5
5
|
import { l as normalizeSecretInputString } from "./types.secrets-d7ZFrG7U.js";
|
|
6
6
|
import { t as formatCliCommand } from "./command-format-p_4ya3m0.js";
|
|
7
7
|
import { t as WizardCancelledError } from "./prompts-88Dfc7Av.js";
|
|
8
|
-
import { t as resolveOnboardingSecretInputString } from "./onboarding.secret-input-
|
|
8
|
+
import { t as resolveOnboardingSecretInputString } from "./onboarding.secret-input-D75Xjj5j.js";
|
|
9
9
|
//#region src/wizard/onboarding.ts
|
|
10
10
|
async function requireRiskAcknowledgement(params) {
|
|
11
11
|
if (params.opts.acceptRisk === true) return;
|
|
@@ -43,7 +43,7 @@ async function requireRiskAcknowledgement(params) {
|
|
|
43
43
|
})) throw new WizardCancelledError("risk not accepted");
|
|
44
44
|
}
|
|
45
45
|
async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
|
|
46
|
-
const onboardHelpers = await import("./reply-
|
|
46
|
+
const onboardHelpers = await import("./reply-gX1XTS9Y.js").then((n) => n.Mt);
|
|
47
47
|
onboardHelpers.printWizardHeader(runtime);
|
|
48
48
|
await prompter.intro("OpenClaw onboarding");
|
|
49
49
|
await requireRiskAcknowledgement({
|
|
@@ -247,8 +247,8 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
|
|
|
247
247
|
}]
|
|
248
248
|
}));
|
|
249
249
|
if (mode === "remote") {
|
|
250
|
-
const { promptRemoteGatewayConfig } = await import("./onboard-remote-
|
|
251
|
-
const { logConfigUpdated } = await import("./logging-
|
|
250
|
+
const { promptRemoteGatewayConfig } = await import("./onboard-remote-Dtm07eUX.js").then((n) => n.t);
|
|
251
|
+
const { logConfigUpdated } = await import("./logging-B7i4YBpx.js").then((n) => n.r);
|
|
252
252
|
let nextConfig = await promptRemoteGatewayConfig(baseConfig, prompter, { secretInputMode: opts.secretInputMode });
|
|
253
253
|
nextConfig = onboardHelpers.applyWizardMetadata(nextConfig, {
|
|
254
254
|
command: "onboard",
|
|
@@ -265,11 +265,11 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
|
|
|
265
265
|
}))).trim() || onboardHelpers.DEFAULT_WORKSPACE);
|
|
266
266
|
const { applyOnboardingLocalWorkspaceConfig } = await import("./onboard-config-Cc0V1FPc.js").then((n) => n.n);
|
|
267
267
|
let nextConfig = applyOnboardingLocalWorkspaceConfig(baseConfig, workspaceDir);
|
|
268
|
-
const { ensureAuthProfileStore } = await import("./auth-profiles.runtime-
|
|
269
|
-
const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-
|
|
270
|
-
const { promptCustomApiConfig } = await import("./onboard-custom-
|
|
271
|
-
const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-
|
|
272
|
-
const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-
|
|
268
|
+
const { ensureAuthProfileStore } = await import("./auth-profiles.runtime-firEabaJ.js");
|
|
269
|
+
const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-CyE2_iHL.js").then((n) => n.t);
|
|
270
|
+
const { promptCustomApiConfig } = await import("./onboard-custom-CyUm7NIR.js").then((n) => n.r);
|
|
271
|
+
const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-CgIbQGAr.js").then((n) => n.t);
|
|
272
|
+
const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-iMZicrZb.js").then((n) => n.i);
|
|
273
273
|
const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
|
|
274
274
|
const authChoiceFromPrompt = opts.authChoice === void 0;
|
|
275
275
|
const authChoice = opts.authChoice ?? await promptAuthChoiceGrouped({
|
|
@@ -319,7 +319,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
|
|
|
319
319
|
if (modelSelection.model) nextConfig = applyPrimaryModel(nextConfig, modelSelection.model);
|
|
320
320
|
}
|
|
321
321
|
await warnIfModelConfigLooksOff(nextConfig, prompter);
|
|
322
|
-
const { configureGatewayForOnboarding } = await import("./onboarding.gateway-config-
|
|
322
|
+
const { configureGatewayForOnboarding } = await import("./onboarding.gateway-config-BRSWuajr.js");
|
|
323
323
|
const gateway = await configureGatewayForOnboarding({
|
|
324
324
|
flow,
|
|
325
325
|
baseConfig,
|
|
@@ -334,8 +334,8 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
|
|
|
334
334
|
const settings = gateway.settings;
|
|
335
335
|
if (opts.skipChannels ?? opts.skipProviders) await prompter.note("Skipping channel setup.", "Channels");
|
|
336
336
|
else {
|
|
337
|
-
const { listChannelPlugins } = await import("./plugins-
|
|
338
|
-
const { setupChannels } = await import("./onboard-channels-
|
|
337
|
+
const { listChannelPlugins } = await import("./plugins-BVbKGpQJ.js").then((n) => n.i);
|
|
338
|
+
const { setupChannels } = await import("./onboard-channels-C_RZQliP.js").then((n) => n.n);
|
|
339
339
|
const quickstartAllowFromChannels = flow === "quickstart" ? listChannelPlugins().filter((plugin) => plugin.meta.quickstartAllowFrom).map((plugin) => plugin.id) : [];
|
|
340
340
|
nextConfig = await setupChannels(nextConfig, runtime, prompter, {
|
|
341
341
|
allowSignalInstall: true,
|
|
@@ -347,7 +347,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
|
|
|
347
347
|
});
|
|
348
348
|
}
|
|
349
349
|
await writeConfigFile(nextConfig);
|
|
350
|
-
const { logConfigUpdated } = await import("./logging-
|
|
350
|
+
const { logConfigUpdated } = await import("./logging-B7i4YBpx.js").then((n) => n.r);
|
|
351
351
|
logConfigUpdated(runtime);
|
|
352
352
|
await onboardHelpers.ensureWorkspaceAndSessions(workspaceDir, runtime, { skipBootstrap: Boolean(nextConfig.agents?.defaults?.skipBootstrap) });
|
|
353
353
|
if (opts.skipSearch) await prompter.note("Skipping search setup.", "Search");
|
|
@@ -360,17 +360,17 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
|
|
|
360
360
|
}
|
|
361
361
|
if (opts.skipSkills) await prompter.note("Skipping skills setup.", "Skills");
|
|
362
362
|
else {
|
|
363
|
-
const { setupSkills } = await import("./onboard-skills-
|
|
363
|
+
const { setupSkills } = await import("./onboard-skills-BOBtFqTc.js").then((n) => n.t);
|
|
364
364
|
nextConfig = await setupSkills(nextConfig, workspaceDir, runtime, prompter);
|
|
365
365
|
}
|
|
366
|
-
const { setupInternalHooks } = await import("./onboard-hooks-
|
|
366
|
+
const { setupInternalHooks } = await import("./onboard-hooks-Bx20a5uy.js");
|
|
367
367
|
nextConfig = await setupInternalHooks(nextConfig, runtime, prompter);
|
|
368
368
|
nextConfig = onboardHelpers.applyWizardMetadata(nextConfig, {
|
|
369
369
|
command: "onboard",
|
|
370
370
|
mode
|
|
371
371
|
});
|
|
372
372
|
await writeConfigFile(nextConfig);
|
|
373
|
-
const { finalizeOnboardingWizard } = await import("./onboarding.finalize-
|
|
373
|
+
const { finalizeOnboardingWizard } = await import("./onboarding.finalize-BAUMJZlu.js");
|
|
374
374
|
const { launchedTui } = await finalizeOnboardingWizard({
|
|
375
375
|
flow,
|
|
376
376
|
opts,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import "./paths-tuenh9TL.js";
|
|
2
2
|
import { m as restoreTerminalState } from "./subsystem-G54saDcg.js";
|
|
3
3
|
import { h as pathExists, y as resolveUserPath } from "./utils-B8zCe27d.js";
|
|
4
|
-
import { Dt as formatControlUiSshHint, Ft as probeGatewayReachable, Lt as resolveControlUiLinks, Nt as openUrl, Tt as detectBrowserOpenSupport, Vt as waitForGatewayReachable } from "./reply-
|
|
5
|
-
import { y as DEFAULT_BOOTSTRAP_FILENAME } from "./agent-scope-
|
|
6
|
-
import "./openclaw-root-
|
|
4
|
+
import { Dt as formatControlUiSshHint, Ft as probeGatewayReachable, Lt as resolveControlUiLinks, Nt as openUrl, Tt as detectBrowserOpenSupport, Vt as waitForGatewayReachable } from "./reply-gX1XTS9Y.js";
|
|
5
|
+
import { y as DEFAULT_BOOTSTRAP_FILENAME } 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";
|
|
@@ -12,16 +12,16 @@ import "./boolean-B938tROv.js";
|
|
|
12
12
|
import "./env-CQxWwTMn.js";
|
|
13
13
|
import "./env-overrides-BYyMsIvB.js";
|
|
14
14
|
import "./registry-aHEgjCIQ.js";
|
|
15
|
-
import "./skills-
|
|
15
|
+
import "./skills-vhlUaliH.js";
|
|
16
16
|
import "./frontmatter-BngyYhS0.js";
|
|
17
|
-
import "./plugins-
|
|
18
|
-
import "./query-expansion-
|
|
17
|
+
import "./plugins-BVbKGpQJ.js";
|
|
18
|
+
import "./query-expansion-AnOnkIqf.js";
|
|
19
19
|
import "./redact-owRpqMhM.js";
|
|
20
|
-
import "./path-alias-guards-
|
|
21
|
-
import "./fetch-
|
|
20
|
+
import "./path-alias-guards-B6owPyQX.js";
|
|
21
|
+
import "./fetch-ggeyBJ4j.js";
|
|
22
22
|
import "./errors-DNKaAVHN.js";
|
|
23
|
-
import "./cmd-argv-
|
|
24
|
-
import "./restart-stale-pids-
|
|
23
|
+
import "./cmd-argv-Dz5qUtqp.js";
|
|
24
|
+
import "./restart-stale-pids-B6E7QavX.js";
|
|
25
25
|
import "./delivery-queue-B7zSt4zY.js";
|
|
26
26
|
import "./paths-CfmKJcO5.js";
|
|
27
27
|
import "./session-cost-usage-C2jrTKxW.js";
|
|
@@ -29,25 +29,25 @@ import "./prompt-style-DlcWUCNR.js";
|
|
|
29
29
|
import "./links-BpKafJs4.js";
|
|
30
30
|
import "./cli-utils-BSURvrmb.js";
|
|
31
31
|
import "./runtime-guard-C4h47dl7.js";
|
|
32
|
-
import "./program-context-
|
|
32
|
+
import "./program-context--XQiK-Vv.js";
|
|
33
33
|
import "./note-DOFTT6QH.js";
|
|
34
|
-
import { r as installCompletion } from "./completion-cli-
|
|
35
|
-
import "./daemon-install-plan.shared-
|
|
36
|
-
import { n as buildGatewayInstallPlan, r as gatewayInstallErrorHint, t as resolveGatewayInstallToken } from "./gateway-install-token-
|
|
34
|
+
import { r as installCompletion } from "./completion-cli-DetW6vGx.js";
|
|
35
|
+
import "./daemon-install-plan.shared-g5FPfccc.js";
|
|
36
|
+
import { n as buildGatewayInstallPlan, r as gatewayInstallErrorHint, t as resolveGatewayInstallToken } from "./gateway-install-token-CQHd6wSt.js";
|
|
37
37
|
import { n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CYx-YMxc.js";
|
|
38
38
|
import "./runtime-parse-l56zRsXX.js";
|
|
39
|
-
import "./launchd-
|
|
40
|
-
import { n as resolveGatewayService, t as describeGatewayServiceRestart } from "./service-
|
|
41
|
-
import { i as isSystemdUserServiceAvailable } from "./systemd-
|
|
42
|
-
import { r as healthCommand } from "./health-
|
|
43
|
-
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-
|
|
44
|
-
import { t as resolveOnboardingSecretInputString } from "./onboarding.secret-input-
|
|
39
|
+
import "./launchd-D7vxtTg7.js";
|
|
40
|
+
import { n as resolveGatewayService, t as describeGatewayServiceRestart } from "./service-LNrViUVb.js";
|
|
41
|
+
import { i as isSystemdUserServiceAvailable } from "./systemd-DSK6B3bg.js";
|
|
42
|
+
import { r as healthCommand } from "./health-CTOG7Tdy.js";
|
|
43
|
+
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B9I2TpME.js";
|
|
44
|
+
import { t as resolveOnboardingSecretInputString } from "./onboarding.secret-input-D75Xjj5j.js";
|
|
45
45
|
import { t as formatHealthCheckFailure } from "./health-format-DjMu3Zty.js";
|
|
46
|
-
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-
|
|
47
|
-
import { t as runTui } from "./tui-
|
|
46
|
+
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-CA3Zcz0O.js";
|
|
47
|
+
import { t as runTui } from "./tui-DzNNH2rc.js";
|
|
48
48
|
import os from "node:os";
|
|
49
49
|
import path from "node:path";
|
|
50
|
-
import
|
|
50
|
+
import fsPromises from "node:fs/promises";
|
|
51
51
|
//#region src/wizard/onboarding.completion.ts
|
|
52
52
|
async function resolveProfileHint(shell) {
|
|
53
53
|
const home = process.env.HOME || os.homedir();
|
|
@@ -107,7 +107,7 @@ async function finalizeOnboardingWizard(options) {
|
|
|
107
107
|
const systemdAvailable = process.platform === "linux" ? await isSystemdUserServiceAvailable() : true;
|
|
108
108
|
if (process.platform === "linux" && !systemdAvailable) await prompter.note("Systemd user services are unavailable. Skipping lingering checks and service install.", "Systemd");
|
|
109
109
|
if (process.platform === "linux" && systemdAvailable) {
|
|
110
|
-
const { ensureSystemdUserLingerInteractive } = await import("./systemd-linger-
|
|
110
|
+
const { ensureSystemdUserLingerInteractive } = await import("./systemd-linger-BPISBIWJ.js").then((n) => n.r);
|
|
111
111
|
await ensureSystemdUserLingerInteractive({
|
|
112
112
|
runtime,
|
|
113
113
|
prompter: {
|
|
@@ -283,7 +283,7 @@ async function finalizeOnboardingWizard(options) {
|
|
|
283
283
|
});
|
|
284
284
|
const gatewayStatusLine = gatewayProbe.ok ? "Gateway: reachable" : `Gateway: not detected${gatewayProbe.detail ? ` (${gatewayProbe.detail})` : ""}`;
|
|
285
285
|
const bootstrapPath = path.join(resolveUserPath(options.workspaceDir), DEFAULT_BOOTSTRAP_FILENAME);
|
|
286
|
-
const hasBootstrap = await
|
|
286
|
+
const hasBootstrap = await fsPromises.access(bootstrapPath).then(() => true).catch(() => false);
|
|
287
287
|
await prompter.note([
|
|
288
288
|
`Web UI: ${links.httpUrl}`,
|
|
289
289
|
settings.authMode === "token" && settings.gatewayToken ? `Web UI (with token): ${authedUrl}` : void 0,
|