@fased/fased 0.1.19 → 0.1.21
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/{agents-ET0n9FED.js → agents-BwDWbvDH.js} +10 -10
- package/dist/{attachment-normalize-DMabJMU0.js → attachment-normalize-C9F-gS4-.js} +1 -1
- package/dist/{attachment-normalize-CDK3Kj-a.js → attachment-normalize-C9w24bkb.js} +1 -1
- package/dist/{audio-preflight-CK4s7Cpe.js → audio-preflight-CTs9Ta27.js} +1 -1
- package/dist/{audio-preflight-CKsWKtOL.js → audio-preflight-DGoGnRdo.js} +1 -1
- package/dist/{audio-preflight-DnxL2DTu.js → audio-preflight-Dg10mePo.js} +4 -4
- package/dist/{audio-preflight-D4ml3rER.js → audio-preflight-DnHScDmF.js} +4 -4
- package/dist/{audio-preflight-CtOWrCYT.js → audio-preflight-QMOvUkXH.js} +1 -1
- package/dist/{audit-Cw2GhO1l.js → audit-DJOyIBeV.js} +1 -1
- package/dist/{audit-DBfVTWuR.js → audit-DmYUk4AC.js} +1 -1
- package/dist/{auth-D6aXaEgt.js → auth-7Dkf1_CI.js} +5 -5
- package/dist/{auth-choice-DCd_rmJr.js → auth-choice-D9LWnNpF.js} +1 -1
- package/dist/{auth-choice-CRcRJvDg.js → auth-choice-DbTYwdGn.js} +1 -1
- package/dist/{auth-choice-prompt-CHAO6E_x.js → auth-choice-prompt-D5YuCYf7.js} +1 -1
- package/dist/{auth-choice-prompt-BBY8vO5H.js → auth-choice-prompt-DFyVEU7J.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-web-B90TOW9f.js → channel-web-CAJ_OiB2.js} +1 -1
- package/dist/{channel-web-rogzKqNR.js → channel-web-X3OJcLB2.js} +1 -1
- package/dist/{channels-CIVRD15I.js → channels-BqOjEy1R.js} +8 -8
- package/dist/{channels-BDdw6tRB.js → channels-D9Oj681h.js} +8 -8
- package/dist/{channels-cli-BlinY5L-.js → channels-cli-D5hZAzoE.js} +7 -7
- package/dist/{channels-cli-nB_AyrYg.js → channels-cli-DKRuJbjY.js} +7 -7
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-BkrcbFie.js → cli-ClS8EuDK.js} +4 -4
- package/dist/{cli-DWyf6Ez0.js → cli-Dm0682Gu.js} +4 -4
- package/dist/{command-registry-D0xhHn9Z.js → command-registry-C2wqEo64.js} +10 -10
- package/dist/{completion-cli-BDgp9s2D.js → completion-cli-B9mW_que.js} +2 -2
- package/dist/{completion-cli-BpN_WF59.js → completion-cli-DCvm9Xp-.js} +1 -1
- package/dist/{config-cli-D51JAiE2.js → config-cli-1SYvQdhO.js} +1 -1
- package/dist/{config-cli-Di8fNvh8.js → config-cli-680jTQ3-.js} +1 -1
- package/dist/{configure-ZAJqoe8C.js → configure-BfhVLgNf.js} +14 -14
- package/dist/{configure-CLUalzZB.js → configure-DQLQp2nb.js} +14 -14
- package/dist/control-ui/assets/app-DXYMrRJ9.js.map +1 -1
- package/dist/{cron-cli-CCfMl1ch.js → cron-cli-C4hgRvYJ.js} +2 -2
- package/dist/{cron-cli-COETwgMD.js → cron-cli-DQjdHktC.js} +2 -2
- package/dist/{daemon-cli-DUfzwrLw.js → daemon-cli-B3OUkSy6.js} +1 -1
- package/dist/{daemon-cli-BwMJ_sub.js → daemon-cli-DWhAXx5H.js} +1 -1
- package/dist/daemon-cli.js +1 -1
- package/dist/{deps-BoCGz3bU.js → deps-DdP-Hmxc.js} +1 -1
- package/dist/{deps-vuWHR8ix.js → deps-RXAe1X5s.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +1 -1
- package/dist/{gateway-cli-DAaMYDEy.js → gateway-cli-CHukRtBG.js} +30 -30
- package/dist/{gateway-cli-DcooukDx.js → gateway-cli-Y450jJFF.js} +30 -30
- package/dist/{health-c7sJIXY9.js → health-C-AsEUPg.js} +2 -2
- package/dist/{health-CD-e8iEW.js → health-Db548DTY.js} +2 -2
- package/dist/{heartbeat-runner-DZuApcd1.js → heartbeat-runner-CE9O7xVk.js} +1 -1
- package/dist/{heartbeat-runner-BTRTcwja.js → heartbeat-runner-DAPP5ojq.js} +1 -1
- package/dist/{hooks-cli-Bq6e41xH.js → hooks-cli-ApL31lTH.js} +5 -5
- package/dist/{hooks-cli--azOmGId.js → hooks-cli-DpllVSSB.js} +5 -5
- package/dist/index.js +9 -9
- package/dist/{ipv4-Bxa3Ql2B.js → ipv4-Bh1H98-c.js} +2 -2
- package/dist/{ipv4-BKbsAV5a.js → ipv4-D88X6kcK.js} +2 -2
- package/dist/{lifecycle-DE4kux0k.js → lifecycle-C5O_poBp.js} +1 -1
- package/dist/{lifecycle-DKOezW7h.js → lifecycle-D2VlrxY8.js} +1 -1
- package/dist/{list.auth-overview-DQlFpghW.js → list.auth-overview-DQUc2B2l.js} +1 -1
- package/dist/{list.auth-overview-SasQirvR.js → list.auth-overview-N9tbnvNE.js} +1 -1
- package/dist/llm-slug-generator.js +1 -1
- package/dist/{model-catalog-DHRVUWBf.js → model-catalog-BQ5G4eK6.js} +10 -10
- package/dist/{models-CIAvUTl5.js → models-BObC-MWx.js} +6 -6
- package/dist/{models-cli-CxRv-tjs.js → models-cli-Bcjaf4CI.js} +6 -6
- package/dist/{models-cli-BW4m-HHk.js → models-cli-r2llwGBO.js} +7 -7
- package/dist/{node-cli-CsYpYqHF.js → node-cli-B5TpzQ6U.js} +4 -4
- package/dist/{node-cli--1sHB0Pz.js → node-cli-B8V8ar0H.js} +4 -4
- package/dist/{onboard-lbl9C2gj.js → onboard-C6Z7OaQ8.js} +7 -7
- package/dist/{onboard-BoT3D8J9.js → onboard-D8EOxPOn.js} +7 -7
- package/dist/{onboard-channels-BREKCcFf.js → onboard-channels-C4gBvkYQ.js} +2 -2
- package/dist/{onboard-channels-fJXaj04M.js → onboard-channels-CDr6F5Rc.js} +2 -2
- package/dist/{onboard-search-C6A1sfph.js → onboard-search-BDLus6nY.js} +7 -7
- package/dist/{onboard-search-D-tM9Xrg.js → onboard-search-BzpbxIgm.js} +7 -7
- package/dist/{onboarding-Bejkgd8a.js → onboarding-CIjqOjDq.js} +56 -47
- package/dist/{onboarding-C8AUR3x1.js → onboarding-DjXH2-ro.js} +56 -47
- package/dist/{onboarding.wallet--7Yu2hFw.js → onboarding.wallet-B87UVKiT.js} +16 -10
- package/dist/{onboarding.wallet-CQG8MiG_.js → onboarding.wallet-BFJRJg77.js} +16 -10
- package/dist/{openresponses-http-BYKqYqIr.js → openresponses-http-BA2nkk7t.js} +1 -1
- package/dist/{openresponses-http-DNXaz2VR.js → openresponses-http-C9x0SEG6.js} +4 -4
- package/dist/{openresponses-http-CyP-RUzR.js → openresponses-http-DU9S_V_8.js} +1 -1
- package/dist/{openresponses-http-C8H-a3KL.js → openresponses-http-NFMdHWOs.js} +4 -4
- package/dist/{openresponses-http-BR0xNXbf.js → openresponses-http-eMouHu_v.js} +1 -1
- package/dist/{parent-default-help-B57KLY1o.js → parent-default-help-k4GD2-UF.js} +1 -1
- package/dist/{parent-default-help-B9-EyEJR.js → parent-default-help-zu6kW9Un.js} +1 -1
- package/dist/{pi-embedded-G-VYb-eT.js → pi-embedded-DPElH0OZ.js} +5 -5
- package/dist/{pi-embedded-Dtw2m41q.js → pi-embedded-Pkm2p81t.js} +5 -5
- package/dist/{plugin-registry-Dr7BDkEc.js → plugin-registry-DEewJtHt.js} +1 -1
- package/dist/{plugin-registry-C5c96kNk.js → plugin-registry-DfO1RfZv.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-jaSZX_On.js → audio-preflight-L8bE2tgB.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-Bf83dqiV.js → audio-preflight-a_1hr0Eg.js} +1 -1
- package/dist/plugin-sdk/{channel-web-Bu6Y92kC.js → channel-web-BNlpZrWA.js} +1 -1
- package/dist/plugin-sdk/command-status.js +1 -1
- package/dist/plugin-sdk/index.js +2 -2
- package/dist/plugin-sdk/{openresponses-http-gCxCNpHu.js → openresponses-http-BBdkt744.js} +1 -1
- package/dist/plugin-sdk/{openresponses-http-M74cHGFJ.js → openresponses-http-DuRGQn_a.js} +1 -1
- package/dist/plugin-sdk/{reply-Bu9GXy54.js → reply-DclM907b.js} +5 -5
- package/dist/plugin-sdk/src/brand.d.ts +2 -2
- package/dist/plugin-sdk/{status-DLh4u6pb.js → status-EnvYKAtO.js} +5 -5
- package/dist/plugin-sdk/{web-BLZesoTn.js → web-BrtGwPHN.js} +2 -2
- package/dist/plugin-sdk/{web-BqmhQeOi.js → web-C0nKlODk.js} +1 -1
- package/dist/{plugins-cli-CpElRRGB.js → plugins-cli-BU7lm9mm.js} +7 -7
- package/dist/{plugins-cli-hFcodPhF.js → plugins-cli-Be4GLYdI.js} +7 -7
- package/dist/{program-ByNjbwln.js → program-B78oSJVp.js} +9 -9
- package/dist/{program-context-BJ6EvoUW.js → program-context-DpABaPXE.js} +25 -25
- package/dist/{prompt-select-styled-DyUwhQR0.js → prompt-select-styled-DI5ODziX.js} +4 -4
- package/dist/{prompt-select-styled-yZlzGWDe.js → prompt-select-styled-DmcQ0_hv.js} +4 -4
- package/dist/{register.agent-DYThb3Qq.js → register.agent-DOychJ9q.js} +11 -11
- package/dist/{register.agent-QbjX69Zq.js → register.agent-FC9A__Az.js} +10 -10
- package/dist/{register.configure-CXn_6bwZ.js → register.configure-i3gbc5Cc.js} +14 -14
- package/dist/{register.configure-CGzVdNRF.js → register.configure-ybGicOMR.js} +14 -14
- package/dist/{register.maintenance-CiSlTmn6.js → register.maintenance-CYX_k6x1.js} +10 -10
- package/dist/{register.maintenance-Cf-qQw2A.js → register.maintenance-MPPzwTam.js} +11 -11
- package/dist/{register.message-CxejzCev.js → register.message-C_Q6o32_.js} +5 -5
- package/dist/{register.message-Bz8Q1BDo.js → register.message-D6NFTigk.js} +5 -5
- package/dist/{register.onboard-DUvd2gzi.js → register.onboard-DqR_m0_p.js} +16 -16
- package/dist/{register.onboard-D-DkLJKD.js → register.onboard-PbsAD-eY.js} +16 -16
- package/dist/{register.setup-CzJsqVIe.js → register.setup-COidGsw2.js} +16 -16
- package/dist/{register.setup-BotpXpFX.js → register.setup-DMqotP6N.js} +16 -16
- package/dist/{register.status-health-sessions-C9Zx-J4Y.js → register.status-health-sessions-CPBz-3k7.js} +8 -8
- package/dist/{register.status-health-sessions-IUpygKVu.js → register.status-health-sessions-CeY5Pzgk.js} +8 -8
- package/dist/{register.subclis-BtJ07gvR.js → register.subclis-Dxe0Sco3.js} +16 -16
- package/dist/{reply-BRoR6TOO.js → reply-701mJB_S.js} +10 -10
- package/dist/{run-main-J8mnTN8L.js → run-main-BvouUOJB.js} +16 -16
- package/dist/{runtime-helper-grants-CkoxSD6G.js → runtime-helper-grants-B5q5llgE.js} +1 -1
- package/dist/{runtime-helper-grants-DMNl5B0x.js → runtime-helper-grants-CjDNw01t.js} +1 -1
- package/dist/{sandbox-cli-CNyUbQKy.js → sandbox-cli-DKUHq66f.js} +4 -4
- package/dist/{sandbox-cli-DfarPDi7.js → sandbox-cli-MNviI01s.js} +4 -4
- package/dist/{security-cli-DYUEfOxV.js → security-cli-C4J7sHdd.js} +5 -5
- package/dist/{security-cli-DfH_yEpS.js → security-cli-D2jFeCER.js} +5 -5
- package/dist/{server-OnS0sRn3.js → server-BRsV4GHd.js} +4 -4
- package/dist/{server-3-CquHGG.js → server-CvQUqV31.js} +4 -4
- package/dist/{server-cron-BclI8dUt.js → server-cron-BV2pPZ-O.js} +2 -2
- package/dist/{server-cron-CB9ay7nN.js → server-cron-C-3djfm_.js} +2 -2
- package/dist/{server-node-events-B3wjSbTf.js → server-node-events-Bi8FQeYu.js} +5 -5
- package/dist/{server-node-events-CHH1pmQi.js → server-node-events-Ce-RXuis.js} +5 -5
- package/dist/{status-SrKDBHd_.js → status-BiHSisy7.js} +4 -4
- package/dist/{status-kfsSxAsl.js → status-CIb_4gfm.js} +4 -4
- package/dist/{status-Cf-x3WJB.js → status-D9As1GK-.js} +1 -1
- package/dist/{status-DhGsqqOx.js → status-DoLjTnlQ.js} +1 -1
- package/dist/{tui-Cvc1YA_t.js → tui-BpbyDMEE.js} +1 -1
- package/dist/{tui-CIzUfHHB.js → tui-D9armVLc.js} +1 -1
- package/dist/{tui-cli-BxyfSTll.js → tui-cli-A_j8l8a3.js} +5 -5
- package/dist/{tui-cli-D8ECRV-M.js → tui-cli-lN5CL6pA.js} +5 -5
- package/dist/{update-cli-C1i3_uQZ.js → update-cli-B8_evObo.js} +11 -11
- package/dist/{update-cli-TMwGWZhI.js → update-cli-DRefGXK8.js} +12 -12
- package/dist/{update-runner-C6krqlIN.js → update-runner-Bd7n68kz.js} +1 -1
- package/dist/{update-runner-ChBrrXIl.js → update-runner-DnLLf66O.js} +1 -1
- package/dist/{wallet-C95r3fvu.js → wallet-CJdBRqTq.js} +1 -1
- package/dist/{wallet-BguV7zPF.js → wallet-DZA0r3pV.js} +1 -1
- package/dist/{web-l7WkPuq4.js → web-778GrijN.js} +1 -1
- package/dist/{web-CnR4rHHv.js → web-CPKh7bSP.js} +1 -1
- package/dist/{web-CoSbILfi.js → web-D-SMykKz.js} +1 -1
- package/dist/{web-CjKdghAZ.js → web-DEuBtNld.js} +5 -5
- package/dist/{web-vOcMOS29.js → web-Z5JZl5Nc.js} +5 -5
- package/dist/{web-search-providers.runtime-BC_EmT37.js → web-search-providers.runtime-AAOfSU2b.js} +1 -1
- package/dist/{web-search-providers.runtime-B09rLDoa.js → web-search-providers.runtime-DcgcyEiV.js} +1 -1
- package/docs/install/installer.md +11 -11
- package/docs/install/node.md +9 -0
- package/docs/security/baseline-checklist.md +7 -2
- package/extensions/acpx/package.json +1 -1
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/fased-federation/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/lobster/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +12 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +12 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/sat-mining/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/synology-chat/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +12 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +12 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +12 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +12 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
- package/scripts/start-managed.sh +11 -6
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Cu as formatCliCommand, Fn as ensureActiveMemoryPluginAllowlisted, Gu as resolveDefaultAgentId, Qt as readConfigFileSnapshot, Wu as resolveAgentWorkspaceDir, br as collectConfigServiceEnvVars, ma as ensureAuthProfileStore, tn as writeConfigFile } from "./env-C77feXxI.js";
|
|
2
2
|
import { H as theme, x as resolveUserPath } from "./agent-paths-BI1hx-tF.js";
|
|
3
|
-
import { A as waitForGatewayReachable, C as printWizardHeader, E as resolveControlUiLinks, Ha as CONTROL_UI_BOOT_CHECK_PATH, O as summarizeExistingConfig, S as openUrl, T as randomToken, Wa as normalizeControlUiBasePath, bo as enableTailscaleServe, d as DEFAULT_WORKSPACE, f as applyWizardMetadata, g as formatControlUiSshHint, h as ensureWorkspaceAndSessions, k as validateGatewayPasswordInput, m as detectBrowserOpenSupport, to as runFederationAutoConnectOnce, v as handleOnboardingRepair, w as probeGatewayReachable, x as normalizeGatewayTokenInput, xo as findTailscaleBinary, yo as enableTailscaleFunnel } from "./model-catalog-
|
|
3
|
+
import { A as waitForGatewayReachable, C as printWizardHeader, E as resolveControlUiLinks, Ha as CONTROL_UI_BOOT_CHECK_PATH, O as summarizeExistingConfig, S as openUrl, T as randomToken, Wa as normalizeControlUiBasePath, bo as enableTailscaleServe, d as DEFAULT_WORKSPACE, f as applyWizardMetadata, g as formatControlUiSshHint, h as ensureWorkspaceAndSessions, k as validateGatewayPasswordInput, m as detectBrowserOpenSupport, to as runFederationAutoConnectOnce, v as handleOnboardingRepair, w as probeGatewayReachable, x as normalizeGatewayTokenInput, xo as findTailscaleBinary, yo as enableTailscaleFunnel } from "./model-catalog-BQ5G4eK6.js";
|
|
4
4
|
import { A as defaultRuntime, Ct as resolveStateDir, E as redactSensitiveText, gt as resolveGatewayPort, j as restoreTerminalState } from "./entry.js";
|
|
5
5
|
import { n as redactSensitiveUrlLikeString } from "./redact-sensitive-url-BW03TVj8.js";
|
|
6
|
-
import { a as resolveSignerdBinaryPath, n as installSignerdBinary, o as restartLocalSocketSigner, r as migrateLocalSignerKeystoreToMaterialDir, t as configureWalletForOnboarding } from "./onboarding.wallet
|
|
6
|
+
import { a as resolveSignerdBinaryPath, n as installSignerdBinary, o as restartLocalSocketSigner, r as migrateLocalSignerKeystoreToMaterialDir, t as configureWalletForOnboarding } from "./onboarding.wallet-B87UVKiT.js";
|
|
7
7
|
import { i as resolveLocalSignerRunAsUser, n as resolveLocalSignerBackendSocketPath, o as resolveLocalSignerSocketPath, r as resolveLocalSignerMaterialRootDir, t as ensureWalletStateDir } from "./wallet-runtime-config-TjiNNY9x.js";
|
|
8
8
|
import { a as readWalletProviderRegistry, l as setDefaultWallet, n as checkNamedWalletDeletionSafety, p as upsertNamedWallet, r as deleteNamedWallet, s as resolveWalletUserRole, u as setNamedWalletRole } from "./wallet-provider-registry-CFNtQ2ZR.js";
|
|
9
|
-
import { C as walletSetupCommand, k as readWalletStatusSnapshot, t as collectWalletSignerDoctorReport } from "./wallet-
|
|
9
|
+
import { C as walletSetupCommand, k as readWalletStatusSnapshot, t as collectWalletSignerDoctorReport } from "./wallet-CJdBRqTq.js";
|
|
10
10
|
import { c as loadPersistedFederationToken, i as resolveFederationBaseUrl, o as resolveFederationHandle, t as DEFAULT_FEDERATION_BASE_URL } from "./runtime-DXHXAPJA.js";
|
|
11
11
|
import { t as readManagedFederationTokenSummary } from "./federation-8sW60I4p.js";
|
|
12
12
|
import { or as clearDeviceAuthStore } from "./call-B9EvxMq6.js";
|
|
@@ -16,14 +16,14 @@ import { a as resolveHostedOnboardingGatewayStartupMode, i as resolveGatewayStar
|
|
|
16
16
|
import { d as buildSystemdUnit, r as isSystemdUserServiceAvailable } from "./systemd-B8OPQXFR.js";
|
|
17
17
|
import { t as resolveGatewayService } from "./service-2JBjv-ge.js";
|
|
18
18
|
import { n as auditGatewayServiceConfig, t as SERVICE_AUDIT_CODES } from "./service-audit-COK5O0cM.js";
|
|
19
|
-
import { a as promptRemoteGatewayConfig, n as getTailscaleMissingBinNoteLines, r as setupSkills, t as validateIPv4AddressInput, u as promptCustomApiConfig } from "./ipv4-
|
|
20
|
-
import { s as waitForHostedDashboardBrowserPath } from "./health-
|
|
21
|
-
import { n as warnIfModelConfigLooksOff, r as applyAuthChoice } from "./auth-choice-
|
|
22
|
-
import { t as promptAuthChoiceGrouped } from "./auth-choice-prompt-
|
|
19
|
+
import { a as promptRemoteGatewayConfig, n as getTailscaleMissingBinNoteLines, r as setupSkills, t as validateIPv4AddressInput, u as promptCustomApiConfig } from "./ipv4-D88X6kcK.js";
|
|
20
|
+
import { s as waitForHostedDashboardBrowserPath } from "./health-Db548DTY.js";
|
|
21
|
+
import { n as warnIfModelConfigLooksOff, r as applyAuthChoice } from "./auth-choice-DbTYwdGn.js";
|
|
22
|
+
import { t as promptAuthChoiceGrouped } from "./auth-choice-prompt-D5YuCYf7.js";
|
|
23
23
|
import { n as logConfigUpdated } from "./logging-DZ32I_SP.js";
|
|
24
|
-
import { n as setupChannels } from "./onboard-channels-
|
|
24
|
+
import { n as setupChannels } from "./onboard-channels-CDr6F5Rc.js";
|
|
25
25
|
import { t as buildWorkspaceHookStatus } from "./hooks-status-DRZciWMZ.js";
|
|
26
|
-
import { t as runTui } from "./tui-
|
|
26
|
+
import { t as runTui } from "./tui-BpbyDMEE.js";
|
|
27
27
|
import { spawn, spawnSync } from "node:child_process";
|
|
28
28
|
import os from "node:os";
|
|
29
29
|
import path from "node:path";
|
|
@@ -168,7 +168,7 @@ function isHostedSecurityCapableSession(explicitFlag = false) {
|
|
|
168
168
|
const sudoersPath = path.join("/etc/sudoers.d", `fased-host-maintenance-${currentUser}`);
|
|
169
169
|
if (fs.existsSync(sudoersPath)) return true;
|
|
170
170
|
}
|
|
171
|
-
return canRunHostedMaintenanceCommand("sudo -n tailscale
|
|
171
|
+
return canRunHostedMaintenanceCommand("sudo -n /usr/local/sbin/fased-host-maintenance tailscale-status >/dev/null 2>&1") || canRunHostedMaintenanceCommand("sudo -n /usr/local/sbin/fased-host-maintenance tailnet-ssh-ingress >/dev/null 2>&1") || canRunHostedMaintenanceCommand("sudo -n /usr/local/sbin/fased-host-maintenance firewall-baseline >/dev/null 2>&1") || canRunHostedMaintenanceCommand("sudo -n systemctl status fased-gateway.service >/dev/null 2>&1");
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
//#endregion
|
|
@@ -546,16 +546,18 @@ async function installRootServiceMaintenanceAccess(params) {
|
|
|
546
546
|
const sudoers = [
|
|
547
547
|
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/systemctl restart ${safeServiceName}.service`,
|
|
548
548
|
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/systemctl restart --no-block ${safeServiceName}.service`,
|
|
549
|
+
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/systemctl start --no-block ${safeServiceName}.service`,
|
|
550
|
+
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/systemctl enable --now ${safeServiceName}.service`,
|
|
549
551
|
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/systemctl status ${safeServiceName}.service`,
|
|
550
|
-
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/systemctl status ${safeServiceName}.service
|
|
551
|
-
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/systemctl status ${safeServiceName} *`,
|
|
552
|
+
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/systemctl status ${safeServiceName}.service --no-pager`,
|
|
552
553
|
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/systemctl is-active ${safeServiceName}.service`,
|
|
553
|
-
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/systemctl is-active ${safeServiceName}
|
|
554
|
-
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/systemctl
|
|
555
|
-
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/systemctl
|
|
556
|
-
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/
|
|
557
|
-
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/journalctl -u ${safeServiceName}.service
|
|
558
|
-
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/journalctl -u ${safeServiceName}
|
|
554
|
+
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/systemctl is-active ${safeServiceName}`,
|
|
555
|
+
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/systemctl show ${safeServiceName}.service -p ActiveState --value`,
|
|
556
|
+
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/systemctl cat ${safeServiceName}.service`,
|
|
557
|
+
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/journalctl -u ${safeServiceName}.service -n 50 --no-pager`,
|
|
558
|
+
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/journalctl -u ${safeServiceName}.service -n 120 --no-pager`,
|
|
559
|
+
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/journalctl -u ${safeServiceName} -n 50 --no-pager`,
|
|
560
|
+
`${safeUser} ALL=(root) NOPASSWD: /usr/bin/journalctl -u ${safeServiceName} -n 120 --no-pager`
|
|
559
561
|
].join("\n");
|
|
560
562
|
return await runShell([
|
|
561
563
|
`echo '${Buffer.from(`${sudoers}\n`, "utf8").toString("base64")}' | base64 -d | sudo -n tee '${sudoersPath}' >/dev/null`,
|
|
@@ -1661,7 +1663,7 @@ async function finalizeOnboardingWizard(options) {
|
|
|
1661
1663
|
if (process.platform === "linux") {
|
|
1662
1664
|
const localSignerSync = resolveLocalSignerSyncForFinalize({ strictVps });
|
|
1663
1665
|
if (localSignerSync.sync) try {
|
|
1664
|
-
const { syncLocalSocketSignerFromConfig } = await import("./onboarding.wallet
|
|
1666
|
+
const { syncLocalSocketSignerFromConfig } = await import("./onboarding.wallet-B87UVKiT.js").then((n) => n.i);
|
|
1665
1667
|
await syncLocalSocketSignerFromConfig({
|
|
1666
1668
|
config: nextConfig,
|
|
1667
1669
|
env: process.env,
|
|
@@ -2747,6 +2749,7 @@ const LOW_MEMORY_HOSTING_SWAP_GB = 4;
|
|
|
2747
2749
|
const HOSTING_SWAP_GB = 2;
|
|
2748
2750
|
const TAILSCALE_INTERACTIVE_TIMEOUT_MS = 120 * 1e3;
|
|
2749
2751
|
const TAILSCALE_LOGIN_URL_RE = /https:\/\/login\.tailscale\.com\/a\/[A-Za-z0-9_-]+/i;
|
|
2752
|
+
const HOST_MAINTENANCE_HELPER = "/usr/local/sbin/fased-host-maintenance";
|
|
2750
2753
|
function detectTotalMemoryMb() {
|
|
2751
2754
|
if (process.platform === "linux") try {
|
|
2752
2755
|
const match = fs.readFileSync("/proc/meminfo", "utf8").match(/^MemTotal:\s+(\d+)\s+kB/m);
|
|
@@ -2847,7 +2850,7 @@ function buildTailscaleLoginWaitCommand(command) {
|
|
|
2847
2850
|
`bash -lc ${shellQuote(command)} &`,
|
|
2848
2851
|
"ts_pid=$!",
|
|
2849
2852
|
"for _ in $(seq 1 55); do",
|
|
2850
|
-
|
|
2853
|
+
` if tailscale ip -4 >/dev/null 2>&1 || ${hostMaintenanceCommand("tailscale-ip4")} >/dev/null 2>&1 || sudo -n tailscale ip -4 >/dev/null 2>&1; then`,
|
|
2851
2854
|
" kill -INT \"$ts_pid\" >/dev/null 2>&1 || true",
|
|
2852
2855
|
" wait \"$ts_pid\" >/dev/null 2>&1 || true",
|
|
2853
2856
|
" exit 0",
|
|
@@ -2860,7 +2863,7 @@ function buildTailscaleLoginWaitCommand(command) {
|
|
|
2860
2863
|
"done",
|
|
2861
2864
|
"kill -INT \"$ts_pid\" >/dev/null 2>&1 || true",
|
|
2862
2865
|
"wait \"$ts_pid\" >/dev/null 2>&1 || true",
|
|
2863
|
-
|
|
2866
|
+
`if tailscale ip -4 >/dev/null 2>&1 || ${hostMaintenanceCommand("tailscale-ip4")} >/dev/null 2>&1 || sudo -n tailscale ip -4 >/dev/null 2>&1; then`,
|
|
2864
2867
|
" exit 0",
|
|
2865
2868
|
"fi",
|
|
2866
2869
|
"exit 124"
|
|
@@ -2913,21 +2916,29 @@ function tailscaleTimedOutButReady(result, logPath, runner = run) {
|
|
|
2913
2916
|
function shellQuote(value) {
|
|
2914
2917
|
return `'${value.replace(/'/g, "'\\''")}'`;
|
|
2915
2918
|
}
|
|
2919
|
+
function hostMaintenanceCommand(action) {
|
|
2920
|
+
return `sudo -n ${HOST_MAINTENANCE_HELPER} ${action}`;
|
|
2921
|
+
}
|
|
2922
|
+
function hostMaintenanceCommandWithInput(action, input) {
|
|
2923
|
+
return `printf '%s\\n' ${shellQuote(input)} | ${hostMaintenanceCommand(action)}`;
|
|
2924
|
+
}
|
|
2916
2925
|
function isTailscaleLoggedIn(logPath, runner = run) {
|
|
2917
|
-
return runner("tailscale status >/dev/null 2>&1", logPath).ok || runner("sudo -n tailscale status >/dev/null 2>&1", logPath).ok;
|
|
2926
|
+
return runner("tailscale status >/dev/null 2>&1", logPath).ok || runner(`${hostMaintenanceCommand("tailscale-status")} >/dev/null 2>&1`, logPath).ok || runner("sudo -n tailscale status >/dev/null 2>&1", logPath).ok;
|
|
2918
2927
|
}
|
|
2919
2928
|
function hasTailscaleIp(logPath, runner = run) {
|
|
2920
|
-
return runner("tailscale ip -4 >/dev/null 2>&1", logPath).ok || runner("sudo -n tailscale ip -4 >/dev/null 2>&1", logPath).ok;
|
|
2929
|
+
return runner("tailscale ip -4 >/dev/null 2>&1", logPath).ok || runner(`${hostMaintenanceCommand("tailscale-ip4")} >/dev/null 2>&1`, logPath).ok || runner("sudo -n tailscale ip -4 >/dev/null 2>&1", logPath).ok;
|
|
2921
2930
|
}
|
|
2922
2931
|
function readTailscaleIp(logPath, runner = run) {
|
|
2923
2932
|
const probe = runner("tailscale ip -4", logPath);
|
|
2924
|
-
const
|
|
2933
|
+
const helperProbe = probe.ok ? probe : runner(hostMaintenanceCommand("tailscale-ip4"), logPath);
|
|
2934
|
+
const sudoProbe = helperProbe.ok ? helperProbe : runner("sudo -n tailscale ip -4", logPath);
|
|
2925
2935
|
if (!sudoProbe.ok || !sudoProbe.detail) return;
|
|
2926
2936
|
return sudoProbe.detail.match(/\b\d{1,3}(?:\.\d{1,3}){3}\b/)?.[0];
|
|
2927
2937
|
}
|
|
2928
2938
|
function readTailscaleSelf(logPath, runner = run) {
|
|
2929
2939
|
const probe = runner("tailscale status --json", logPath);
|
|
2930
|
-
const
|
|
2940
|
+
const helperProbe = probe.ok ? probe : runner(hostMaintenanceCommand("tailscale-status-json"), logPath);
|
|
2941
|
+
const sudoProbe = helperProbe.ok ? helperProbe : runner("sudo -n tailscale status --json", logPath);
|
|
2931
2942
|
if (!sudoProbe.ok || !sudoProbe.detail) return { ipv4: readTailscaleIp(logPath, runner) };
|
|
2932
2943
|
try {
|
|
2933
2944
|
const parsed = JSON.parse(sudoProbe.detail);
|
|
@@ -3033,7 +3044,8 @@ function verifyTailnetSshServerPrerequisites(params) {
|
|
|
3033
3044
|
};
|
|
3034
3045
|
}
|
|
3035
3046
|
function ensureTailnetSshIngressForVerification(params) {
|
|
3036
|
-
const
|
|
3047
|
+
const runner = params.runner ?? run;
|
|
3048
|
+
const command = [
|
|
3037
3049
|
"if command -v ufw >/dev/null 2>&1; then",
|
|
3038
3050
|
" if sudo -n ufw status | grep -qi '^Status: active'; then",
|
|
3039
3051
|
" sudo -n ufw insert 1 allow in on tailscale0 to any port 22 proto tcp || sudo -n ufw allow in on tailscale0 to any port 22 proto tcp",
|
|
@@ -3044,7 +3056,9 @@ function ensureTailnetSshIngressForVerification(params) {
|
|
|
3044
3056
|
" sudo -n firewall-cmd --permanent --zone=trusted --add-interface=tailscale0 >/dev/null 2>&1 || true",
|
|
3045
3057
|
" sudo -n firewall-cmd --reload >/dev/null 2>&1 || true",
|
|
3046
3058
|
"fi"
|
|
3047
|
-
].join("\n")
|
|
3059
|
+
].join("\n");
|
|
3060
|
+
const helperResult = runner(hostMaintenanceCommand("tailnet-ssh-ingress"), params.logPath);
|
|
3061
|
+
const result = helperResult.ok ? helperResult : runner(command, params.logPath);
|
|
3048
3062
|
if (!result.ok) return {
|
|
3049
3063
|
ok: false,
|
|
3050
3064
|
detail: result.detail ?? "could not prepare tailnet SSH firewall rule before verification"
|
|
@@ -3131,7 +3145,7 @@ async function confirmTailnetSshBeforeLockdown(params) {
|
|
|
3131
3145
|
return false;
|
|
3132
3146
|
}
|
|
3133
3147
|
await prompter.note(formatTailscaleAccountBrowserLoginNote(), "Tailscale login");
|
|
3134
|
-
const tsReset = await interactiveRunner("
|
|
3148
|
+
const tsReset = await interactiveRunner(hostMaintenanceCommand("tailscale-up-reset-ssh"), logPath, prompter);
|
|
3135
3149
|
const acceptedTimedOutLogin = tailscaleTimedOutButReady(tsReset, logPath, runner);
|
|
3136
3150
|
if (!tsReset.ok && !acceptedTimedOutLogin || !hasTailscaleIp(logPath, runner)) {
|
|
3137
3151
|
runtime.error("Hosting setup stopped before SSH/firewall lock-down.");
|
|
@@ -3175,9 +3189,9 @@ function ensureTailscaleServe(port, logPath) {
|
|
|
3175
3189
|
ok: true,
|
|
3176
3190
|
detail: `tailscale serve --bg -> 127.0.0.1:${port}`
|
|
3177
3191
|
};
|
|
3178
|
-
if (run(
|
|
3192
|
+
if (run(hostMaintenanceCommandWithInput("tailscale-serve", String(port)), logPath).ok) return {
|
|
3179
3193
|
ok: true,
|
|
3180
|
-
detail: `
|
|
3194
|
+
detail: `host maintenance tailscale serve -> 127.0.0.1:${port}`
|
|
3181
3195
|
};
|
|
3182
3196
|
if (run(`tailscale serve https / http://127.0.0.1:${port}`, logPath).ok) return {
|
|
3183
3197
|
ok: true,
|
|
@@ -3201,7 +3215,7 @@ function isTailscaleServeReady(port) {
|
|
|
3201
3215
|
],
|
|
3202
3216
|
encoding: "utf8"
|
|
3203
3217
|
});
|
|
3204
|
-
if ((probe.status ?? 1) !== 0) probe = spawnSync("bash", ["-lc", "
|
|
3218
|
+
if ((probe.status ?? 1) !== 0) probe = spawnSync("bash", ["-lc", hostMaintenanceCommand("tailscale-serve-status")], {
|
|
3205
3219
|
stdio: [
|
|
3206
3220
|
"ignore",
|
|
3207
3221
|
"pipe",
|
|
@@ -3234,6 +3248,7 @@ function packageInstallCommand(packages) {
|
|
|
3234
3248
|
}
|
|
3235
3249
|
function tailscaleInstallCommand() {
|
|
3236
3250
|
return [
|
|
3251
|
+
`${hostMaintenanceCommand("tailscale-install-start")} && exit 0`,
|
|
3237
3252
|
"if command -v tailscale >/dev/null 2>&1; then",
|
|
3238
3253
|
" :",
|
|
3239
3254
|
"elif command -v apt-get >/dev/null 2>&1; then",
|
|
@@ -3259,6 +3274,7 @@ function tailscaleInstallCommand() {
|
|
|
3259
3274
|
}
|
|
3260
3275
|
function firewallBaselineCommand() {
|
|
3261
3276
|
return [
|
|
3277
|
+
`${hostMaintenanceCommand("firewall-baseline")} && exit 0`,
|
|
3262
3278
|
"if command -v ufw >/dev/null 2>&1 || command -v apt-get >/dev/null 2>&1; then",
|
|
3263
3279
|
" command -v ufw >/dev/null 2>&1 || { " + packageInstallCommand(["ufw"]) + "; }",
|
|
3264
3280
|
" sudo -n ufw default deny incoming",
|
|
@@ -3282,6 +3298,7 @@ function firewallBaselineCommand() {
|
|
|
3282
3298
|
}
|
|
3283
3299
|
function automaticUpdatesCommand() {
|
|
3284
3300
|
return [
|
|
3301
|
+
`${hostMaintenanceCommand("automatic-updates")} && exit 0`,
|
|
3285
3302
|
"if command -v apt-get >/dev/null 2>&1; then",
|
|
3286
3303
|
" " + packageInstallCommand(["unattended-upgrades"]),
|
|
3287
3304
|
" sudo -n systemctl enable --now unattended-upgrades >/dev/null 2>&1 || true",
|
|
@@ -3300,15 +3317,7 @@ function automaticUpdatesCommand() {
|
|
|
3300
3317
|
].join("\n");
|
|
3301
3318
|
}
|
|
3302
3319
|
function sshHardeningCommand() {
|
|
3303
|
-
return
|
|
3304
|
-
"if sudo -n /usr/local/sbin/fased-host-maintenance harden-ssh >/dev/null 2>&1; then",
|
|
3305
|
-
" :",
|
|
3306
|
-
"else",
|
|
3307
|
-
" sudo -n sed -i 's/^#\\?PasswordAuthentication .*/PasswordAuthentication no/' /etc/ssh/sshd_config",
|
|
3308
|
-
" sudo -n sed -i 's/^#\\?PermitRootLogin .*/PermitRootLogin no/' /etc/ssh/sshd_config",
|
|
3309
|
-
" sudo -n systemctl restart ssh || sudo -n systemctl restart sshd",
|
|
3310
|
-
"fi"
|
|
3311
|
-
].join("\n");
|
|
3320
|
+
return hostMaintenanceCommand("harden-ssh");
|
|
3312
3321
|
}
|
|
3313
3322
|
function failOrContinue(params) {
|
|
3314
3323
|
const { opts, runtime, step, detail } = params;
|
|
@@ -3354,7 +3363,7 @@ async function applyHostingSecurity(params) {
|
|
|
3354
3363
|
validate: (value) => value.trim() ? void 0 : "Required"
|
|
3355
3364
|
})).trim();
|
|
3356
3365
|
else await prompter.note(formatTailscaleBrowserLoginNote(), "Tailscale login");
|
|
3357
|
-
const resetCommand = tsAuthkey ?
|
|
3366
|
+
const resetCommand = tsAuthkey ? hostMaintenanceCommandWithInput("tailscale-up-reset-authkey-ssh", tsAuthkey) : hostMaintenanceCommand("tailscale-up-reset-ssh");
|
|
3358
3367
|
const tsReset = tsAuthkey ? run(resetCommand, logPath) : await runInteractiveTailscaleLogin(resetCommand, logPath, prompter);
|
|
3359
3368
|
if (!tsReset.ok && !tailscaleTimedOutButReady(tsReset, logPath)) return {
|
|
3360
3369
|
ok: false,
|
|
@@ -3478,7 +3487,7 @@ async function applyHostingSecurity(params) {
|
|
|
3478
3487
|
logPath
|
|
3479
3488
|
};
|
|
3480
3489
|
}
|
|
3481
|
-
} else if (hasCommand("systemctl")) run("sudo -n systemctl enable --now tailscaled >/dev/null 2>&1 || true
|
|
3490
|
+
} else if (hasCommand("systemctl")) run(`${hostMaintenanceCommand("tailscale-install-start")} >/dev/null 2>&1 || sudo -n systemctl enable --now tailscaled >/dev/null 2>&1 || true`, logPath);
|
|
3482
3491
|
if (prompter && opts.nonInteractive !== true) await prompter.note(formatLocalDeviceTailnetRequirementNote(), "Local device requirement");
|
|
3483
3492
|
let tsHealthy = isTailscaleLoggedIn(logPath);
|
|
3484
3493
|
if (tsHealthy && prompter && opts.nonInteractive !== true) {
|
|
@@ -3487,7 +3496,7 @@ async function applyHostingSecurity(params) {
|
|
|
3487
3496
|
initialValue: false
|
|
3488
3497
|
})) {
|
|
3489
3498
|
if (prompter) await prompter.note(formatTailscaleBrowserLoginNote(), "Tailscale login");
|
|
3490
|
-
const tsReset = await runInteractiveTailscaleLogin("
|
|
3499
|
+
const tsReset = await runInteractiveTailscaleLogin(hostMaintenanceCommand("tailscale-up-reset-ssh"), logPath, prompter);
|
|
3491
3500
|
if (!tsReset.ok && !tailscaleTimedOutButReady(tsReset, logPath)) {
|
|
3492
3501
|
checks.push({
|
|
3493
3502
|
name: "tailscale",
|
|
@@ -3530,7 +3539,7 @@ async function applyHostingSecurity(params) {
|
|
|
3530
3539
|
})).trim();
|
|
3531
3540
|
}
|
|
3532
3541
|
if (tsAuthkey) {
|
|
3533
|
-
const tsUp = run(
|
|
3542
|
+
const tsUp = run(hostMaintenanceCommandWithInput("tailscale-up-authkey-ssh", tsAuthkey), logPath);
|
|
3534
3543
|
if (!tsUp.ok) {
|
|
3535
3544
|
checks.push({
|
|
3536
3545
|
name: "tailscale",
|
|
@@ -3574,7 +3583,7 @@ async function applyHostingSecurity(params) {
|
|
|
3574
3583
|
};
|
|
3575
3584
|
} else {
|
|
3576
3585
|
if (prompter) await prompter.note(formatTailscaleBrowserLoginNote(), "Tailscale login");
|
|
3577
|
-
const tsUp = await runInteractiveTailscaleLogin("
|
|
3586
|
+
const tsUp = await runInteractiveTailscaleLogin(hostMaintenanceCommand("tailscale-up-ssh"), logPath, prompter);
|
|
3578
3587
|
if (!tsUp.ok && !tailscaleTimedOutButReady(tsUp, logPath)) {
|
|
3579
3588
|
checks.push({
|
|
3580
3589
|
name: "tailscale",
|
|
@@ -3629,7 +3638,7 @@ async function applyHostingSecurity(params) {
|
|
|
3629
3638
|
detail: "tailnet IP present; verifying app SSH before lock-down"
|
|
3630
3639
|
});
|
|
3631
3640
|
const operatorUser = run("id -u app >/dev/null 2>&1", logPath).ok ? "app" : process.env.SUDO_USER?.trim() || process.env.USER?.trim() || process.env.LOGNAME?.trim();
|
|
3632
|
-
if (operatorUser) run(
|
|
3641
|
+
if (operatorUser) run(`${hostMaintenanceCommand("tailscale-set-operator-self")} >/dev/null 2>&1 || true`, logPath);
|
|
3633
3642
|
if (!await confirmTailnetSshBeforeLockdown({
|
|
3634
3643
|
opts,
|
|
3635
3644
|
runtime,
|
|
@@ -3726,7 +3735,7 @@ async function applyHostingSecurity(params) {
|
|
|
3726
3735
|
ok: true,
|
|
3727
3736
|
detail: "password auth/root login disabled and ssh restarted"
|
|
3728
3737
|
});
|
|
3729
|
-
const f2bRes = runHostSetupCommand(`${packageInstallCommand(["fail2ban"])}\nsudo -n systemctl enable --now fail2ban`);
|
|
3738
|
+
const f2bRes = runHostSetupCommand(`${hostMaintenanceCommand("fail2ban-enable")} || (${packageInstallCommand(["fail2ban"])}\nsudo -n systemctl enable --now fail2ban)`);
|
|
3730
3739
|
if (!f2bRes.ok) {
|
|
3731
3740
|
checks.push({
|
|
3732
3741
|
name: "fail2ban",
|
|
@@ -3237,6 +3237,7 @@ const INSTALL_SCRIPT_RELPATHS = ["scripts/install-fased-signerd.sh", "../scripts
|
|
|
3237
3237
|
const BUILD_SCRIPT_RELPATHS = ["scripts/build-fased-signerd.sh", "../scripts/build-fased-signerd.sh"];
|
|
3238
3238
|
const BROKER_CLI_RELPATHS = ["./index.js", "../../dist/index.js"];
|
|
3239
3239
|
const DEFAULT_SIGNER_RELEASE_DOWNLOAD_BASE = "https://github.com/fased-ai/fased/releases/download";
|
|
3240
|
+
const SIGNER_MAINTENANCE_HELPER = "/usr/local/sbin/fased-signer-maintenance";
|
|
3240
3241
|
const SIGNER_ISOLATION_HELPER = "/usr/local/sbin/fased-signer-isolation";
|
|
3241
3242
|
function runCommand(params) {
|
|
3242
3243
|
const child = spawnSync(params.command, params.args, {
|
|
@@ -3768,17 +3769,15 @@ function resolveCurrentUnixUser() {
|
|
|
3768
3769
|
}
|
|
3769
3770
|
}
|
|
3770
3771
|
function runSignerIsolationHelper(runAsUser, args, opts) {
|
|
3771
|
-
|
|
3772
|
+
const helperArgs = signerMaintenanceHelperArgs(runAsUser, args);
|
|
3773
|
+
if (!helperArgs) return;
|
|
3772
3774
|
try {
|
|
3773
3775
|
return runCommand({
|
|
3774
3776
|
command: "sudo",
|
|
3775
3777
|
args: [
|
|
3776
3778
|
"-n",
|
|
3777
3779
|
"-E",
|
|
3778
|
-
|
|
3779
|
-
resolveCurrentUnixUser(),
|
|
3780
|
-
runAsUser,
|
|
3781
|
-
...args
|
|
3780
|
+
...helperArgs
|
|
3782
3781
|
],
|
|
3783
3782
|
capture: opts?.capture
|
|
3784
3783
|
});
|
|
@@ -3788,15 +3787,13 @@ function runSignerIsolationHelper(runAsUser, args, opts) {
|
|
|
3788
3787
|
}
|
|
3789
3788
|
}
|
|
3790
3789
|
function startSignerIsolationHelperBackground(runAsUser, args, logPath, env = process.env) {
|
|
3791
|
-
|
|
3790
|
+
const helperArgs = signerMaintenanceHelperArgs(runAsUser, args);
|
|
3791
|
+
if (!helperArgs) return false;
|
|
3792
3792
|
const out = fs.openSync(logPath, "a", 384);
|
|
3793
3793
|
spawn("sudo", [
|
|
3794
3794
|
"-n",
|
|
3795
3795
|
"-E",
|
|
3796
|
-
|
|
3797
|
-
resolveCurrentUnixUser(),
|
|
3798
|
-
runAsUser,
|
|
3799
|
-
...args
|
|
3796
|
+
...helperArgs
|
|
3800
3797
|
], {
|
|
3801
3798
|
detached: true,
|
|
3802
3799
|
stdio: [
|
|
@@ -3811,6 +3808,15 @@ function startSignerIsolationHelperBackground(runAsUser, args, logPath, env = pr
|
|
|
3811
3808
|
}).unref();
|
|
3812
3809
|
return true;
|
|
3813
3810
|
}
|
|
3811
|
+
function signerMaintenanceHelperArgs(runAsUser, args) {
|
|
3812
|
+
if (fs.existsSync(SIGNER_MAINTENANCE_HELPER)) return [SIGNER_MAINTENANCE_HELPER, ...args];
|
|
3813
|
+
if (fs.existsSync(SIGNER_ISOLATION_HELPER)) return [
|
|
3814
|
+
SIGNER_ISOLATION_HELPER,
|
|
3815
|
+
resolveCurrentUnixUser(),
|
|
3816
|
+
runAsUser,
|
|
3817
|
+
...args
|
|
3818
|
+
];
|
|
3819
|
+
}
|
|
3814
3820
|
function ensureIsolatedSignerPaths(materialDir, backendSocketPath, appSocketPath, runAsUser) {
|
|
3815
3821
|
if (runSignerIsolationHelper(runAsUser, [
|
|
3816
3822
|
"prepare",
|
|
@@ -3238,6 +3238,7 @@ const INSTALL_SCRIPT_RELPATHS = ["scripts/install-fased-signerd.sh", "../scripts
|
|
|
3238
3238
|
const BUILD_SCRIPT_RELPATHS = ["scripts/build-fased-signerd.sh", "../scripts/build-fased-signerd.sh"];
|
|
3239
3239
|
const BROKER_CLI_RELPATHS = ["./index.js", "../../dist/index.js"];
|
|
3240
3240
|
const DEFAULT_SIGNER_RELEASE_DOWNLOAD_BASE = "https://github.com/fased-ai/fased/releases/download";
|
|
3241
|
+
const SIGNER_MAINTENANCE_HELPER = "/usr/local/sbin/fased-signer-maintenance";
|
|
3241
3242
|
const SIGNER_ISOLATION_HELPER = "/usr/local/sbin/fased-signer-isolation";
|
|
3242
3243
|
function runCommand(params) {
|
|
3243
3244
|
const child = spawnSync(params.command, params.args, {
|
|
@@ -3769,17 +3770,15 @@ function resolveCurrentUnixUser() {
|
|
|
3769
3770
|
}
|
|
3770
3771
|
}
|
|
3771
3772
|
function runSignerIsolationHelper(runAsUser, args, opts) {
|
|
3772
|
-
|
|
3773
|
+
const helperArgs = signerMaintenanceHelperArgs(runAsUser, args);
|
|
3774
|
+
if (!helperArgs) return;
|
|
3773
3775
|
try {
|
|
3774
3776
|
return runCommand({
|
|
3775
3777
|
command: "sudo",
|
|
3776
3778
|
args: [
|
|
3777
3779
|
"-n",
|
|
3778
3780
|
"-E",
|
|
3779
|
-
|
|
3780
|
-
resolveCurrentUnixUser(),
|
|
3781
|
-
runAsUser,
|
|
3782
|
-
...args
|
|
3781
|
+
...helperArgs
|
|
3783
3782
|
],
|
|
3784
3783
|
capture: opts?.capture
|
|
3785
3784
|
});
|
|
@@ -3789,15 +3788,13 @@ function runSignerIsolationHelper(runAsUser, args, opts) {
|
|
|
3789
3788
|
}
|
|
3790
3789
|
}
|
|
3791
3790
|
function startSignerIsolationHelperBackground(runAsUser, args, logPath, env = process.env) {
|
|
3792
|
-
|
|
3791
|
+
const helperArgs = signerMaintenanceHelperArgs(runAsUser, args);
|
|
3792
|
+
if (!helperArgs) return false;
|
|
3793
3793
|
const out = fs.openSync(logPath, "a", 384);
|
|
3794
3794
|
spawn("sudo", [
|
|
3795
3795
|
"-n",
|
|
3796
3796
|
"-E",
|
|
3797
|
-
|
|
3798
|
-
resolveCurrentUnixUser(),
|
|
3799
|
-
runAsUser,
|
|
3800
|
-
...args
|
|
3797
|
+
...helperArgs
|
|
3801
3798
|
], {
|
|
3802
3799
|
detached: true,
|
|
3803
3800
|
stdio: [
|
|
@@ -3812,6 +3809,15 @@ function startSignerIsolationHelperBackground(runAsUser, args, logPath, env = pr
|
|
|
3812
3809
|
}).unref();
|
|
3813
3810
|
return true;
|
|
3814
3811
|
}
|
|
3812
|
+
function signerMaintenanceHelperArgs(runAsUser, args) {
|
|
3813
|
+
if (fs.existsSync(SIGNER_MAINTENANCE_HELPER)) return [SIGNER_MAINTENANCE_HELPER, ...args];
|
|
3814
|
+
if (fs.existsSync(SIGNER_ISOLATION_HELPER)) return [
|
|
3815
|
+
SIGNER_ISOLATION_HELPER,
|
|
3816
|
+
resolveCurrentUnixUser(),
|
|
3817
|
+
runAsUser,
|
|
3818
|
+
...args
|
|
3819
|
+
];
|
|
3820
|
+
}
|
|
3815
3821
|
function ensureIsolatedSignerPaths(materialDir, backendSocketPath, appSocketPath, runAsUser) {
|
|
3816
3822
|
if (runSignerIsolationHelper(runAsUser, [
|
|
3817
3823
|
"prepare",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "./github-copilot-token-Dy7Y_jbI.js";
|
|
2
2
|
import { la as logWarn, qo as defaultRuntime } from "./paths-OUJyk-5R.js";
|
|
3
|
-
import { B as extractImageContentFromSource, F as DEFAULT_INPUT_IMAGE_MAX_BYTES, H as resolveInputFileLimits, I as DEFAULT_INPUT_IMAGE_MIMES, L as DEFAULT_INPUT_MAX_REDIRECTS, R as DEFAULT_INPUT_TIMEOUT_MS, V as normalizeMimeList, X as emitAgentEvent, Z as onAgentEvent, a as agentCommand, at as sendJson, i as resolveAssistantStreamDeltaText, it as resolveSessionKey, n as handleGatewayPostJsonEndpoint, nt as createDefaultDeps, ot as setSseHeaders, r as buildAgentMessageFromConversationEntries, rt as resolveAgentIdForRequest, st as writeDone, z as extractFileContentFromSource } from "./auth-
|
|
3
|
+
import { B as extractImageContentFromSource, F as DEFAULT_INPUT_IMAGE_MAX_BYTES, H as resolveInputFileLimits, I as DEFAULT_INPUT_IMAGE_MIMES, L as DEFAULT_INPUT_MAX_REDIRECTS, R as DEFAULT_INPUT_TIMEOUT_MS, V as normalizeMimeList, X as emitAgentEvent, Z as onAgentEvent, a as agentCommand, at as sendJson, i as resolveAssistantStreamDeltaText, it as resolveSessionKey, n as handleGatewayPostJsonEndpoint, nt as createDefaultDeps, ot as setSseHeaders, r as buildAgentMessageFromConversationEntries, rt as resolveAgentIdForRequest, st as writeDone, z as extractFileContentFromSource } from "./auth-7Dkf1_CI.js";
|
|
4
4
|
import "./send-D96gGRQz.js";
|
|
5
5
|
import "./send-BFoI9HuU.js";
|
|
6
6
|
import "./skill-commands-DvoCSQnx.js";
|
|
@@ -2,7 +2,7 @@ import { bd as logWarn } from "./env-C77feXxI.js";
|
|
|
2
2
|
import "./agent-paths-BI1hx-tF.js";
|
|
3
3
|
import "./send-D7X0_iFp.js";
|
|
4
4
|
import "./send-BFEd4vCM.js";
|
|
5
|
-
import { Ai as buildAgentMessageFromConversationEntries, Ii as resolveAssistantStreamDeltaText, Li as agentCommand, _a as resolveAgentIdForRequest, an as DEFAULT_INPUT_IMAGE_MAX_BYTES, ba as setSseHeaders, cn as DEFAULT_INPUT_TIMEOUT_MS, dn as normalizeMimeList, fn as resolveInputFileLimits, ia as emitAgentEvent, ki as handleGatewayPostJsonEndpoint, ln as extractFileContentFromSource, oa as onAgentEvent, on as DEFAULT_INPUT_IMAGE_MIMES, sn as DEFAULT_INPUT_MAX_REDIRECTS, un as extractImageContentFromSource, va as resolveSessionKey, xa as writeDone, ya as sendJson } from "./model-catalog-
|
|
5
|
+
import { Ai as buildAgentMessageFromConversationEntries, Ii as resolveAssistantStreamDeltaText, Li as agentCommand, _a as resolveAgentIdForRequest, an as DEFAULT_INPUT_IMAGE_MAX_BYTES, ba as setSseHeaders, cn as DEFAULT_INPUT_TIMEOUT_MS, dn as normalizeMimeList, fn as resolveInputFileLimits, ia as emitAgentEvent, ki as handleGatewayPostJsonEndpoint, ln as extractFileContentFromSource, oa as onAgentEvent, on as DEFAULT_INPUT_IMAGE_MIMES, sn as DEFAULT_INPUT_MAX_REDIRECTS, un as extractImageContentFromSource, va as resolveSessionKey, xa as writeDone, ya as sendJson } from "./model-catalog-BQ5G4eK6.js";
|
|
6
6
|
import "./github-copilot-token-A9DiaCB0.js";
|
|
7
7
|
import { A as defaultRuntime } from "./entry.js";
|
|
8
8
|
import "./reply-prefix-TUhpEtvr.js";
|
|
@@ -31,10 +31,10 @@ import "./dangerous-tools-CusV9bcr.js";
|
|
|
31
31
|
import "./chrome-bxkNKPA7.js";
|
|
32
32
|
import "./pairing-token-C2iKEhFc.js";
|
|
33
33
|
import "./ws-DiFJ3zRB.js";
|
|
34
|
-
import "./onboarding.wallet
|
|
34
|
+
import "./onboarding.wallet-B87UVKiT.js";
|
|
35
35
|
import "./wallet-runtime-config-TjiNNY9x.js";
|
|
36
36
|
import "./wallet-provider-registry-CFNtQ2ZR.js";
|
|
37
|
-
import "./wallet-
|
|
37
|
+
import "./wallet-CJdBRqTq.js";
|
|
38
38
|
import "./wallet-approval-auth-BaVTLG5r.js";
|
|
39
39
|
import "./runtime-DXHXAPJA.js";
|
|
40
40
|
import "./device-identity-ZHUQ6a8N.js";
|
|
@@ -45,7 +45,7 @@ import "./send-C-su1wPZ.js";
|
|
|
45
45
|
import "./outbound-attachment-Bh4FmcYg.js";
|
|
46
46
|
import "./fetch-BVvWzHT_.js";
|
|
47
47
|
import "./delivery-queue-55Cityuq.js";
|
|
48
|
-
import { t as createDefaultDeps } from "./deps-
|
|
48
|
+
import { t as createDefaultDeps } from "./deps-DdP-Hmxc.js";
|
|
49
49
|
import "./frontmatter-D2UNJikU.js";
|
|
50
50
|
import "./skills-Dis31awJ.js";
|
|
51
51
|
import "./skills-remote-CIAB0AXm.js";
|
|
@@ -2,7 +2,7 @@ import { Sa as defaultRuntime, Vi as logWarn } from "./agent-scope-DUKEZjqM.js";
|
|
|
2
2
|
import "./github-copilot-token-CNsqwfnE.js";
|
|
3
3
|
import "./send-CFSRf7De.js";
|
|
4
4
|
import "./send-gtmn6YeH.js";
|
|
5
|
-
import { B as DEFAULT_INPUT_IMAGE_MIMES, G as normalizeMimeList, H as DEFAULT_INPUT_TIMEOUT_MS, K as resolveInputFileLimits, U as extractFileContentFromSource, V as DEFAULT_INPUT_MAX_REDIRECTS, W as extractImageContentFromSource, a as agentCommand, at as sendJson, et as emitAgentEvent, i as resolveAssistantStreamDeltaText, it as resolveSessionKey, n as handleGatewayPostJsonEndpoint, nt as createDefaultDeps, ot as setSseHeaders, r as buildAgentMessageFromConversationEntries, rt as resolveAgentIdForRequest, st as writeDone, tt as onAgentEvent, z as DEFAULT_INPUT_IMAGE_MAX_BYTES } from "./pi-embedded-
|
|
5
|
+
import { B as DEFAULT_INPUT_IMAGE_MIMES, G as normalizeMimeList, H as DEFAULT_INPUT_TIMEOUT_MS, K as resolveInputFileLimits, U as extractFileContentFromSource, V as DEFAULT_INPUT_MAX_REDIRECTS, W as extractImageContentFromSource, a as agentCommand, at as sendJson, et as emitAgentEvent, i as resolveAssistantStreamDeltaText, it as resolveSessionKey, n as handleGatewayPostJsonEndpoint, nt as createDefaultDeps, ot as setSseHeaders, r as buildAgentMessageFromConversationEntries, rt as resolveAgentIdForRequest, st as writeDone, tt as onAgentEvent, z as DEFAULT_INPUT_IMAGE_MAX_BYTES } from "./pi-embedded-DPElH0OZ.js";
|
|
6
6
|
import "./reply-prefix-Bitnsmpd.js";
|
|
7
7
|
import "./diagnostic-_BiQ6GgD.js";
|
|
8
8
|
import "./diagnostic-session-state-CL_QxyRg.js";
|
|
@@ -2,7 +2,7 @@ import "./paths-C9FmTW1x.js";
|
|
|
2
2
|
import "./agent-paths-DmOVZE7g.js";
|
|
3
3
|
import { au as logWarn } from "./agent-scope-DHrLr5OF.js";
|
|
4
4
|
import "./commands-registry-BRvZQ1jh.js";
|
|
5
|
-
import { Er as onAgentEvent, G as DEFAULT_INPUT_TIMEOUT_MS, H as DEFAULT_INPUT_IMAGE_MAX_BYTES, J as normalizeMimeList, Ja as sendJson, K as extractFileContentFromSource, Ka as resolveAgentIdForRequest, U as DEFAULT_INPUT_IMAGE_MIMES, W as DEFAULT_INPUT_MAX_REDIRECTS, Xa as writeDone, Y as resolveInputFileLimits, Ya as setSseHeaders, ft as handleGatewayPostJsonEndpoint, ht as agentCommand, mt as resolveAssistantStreamDeltaText, pt as buildAgentMessageFromConversationEntries, q as extractImageContentFromSource, qa as resolveSessionKey, wr as emitAgentEvent } from "./reply-
|
|
5
|
+
import { Er as onAgentEvent, G as DEFAULT_INPUT_TIMEOUT_MS, H as DEFAULT_INPUT_IMAGE_MAX_BYTES, J as normalizeMimeList, Ja as sendJson, K as extractFileContentFromSource, Ka as resolveAgentIdForRequest, U as DEFAULT_INPUT_IMAGE_MIMES, W as DEFAULT_INPUT_MAX_REDIRECTS, Xa as writeDone, Y as resolveInputFileLimits, Ya as setSseHeaders, ft as handleGatewayPostJsonEndpoint, ht as agentCommand, mt as resolveAssistantStreamDeltaText, pt as buildAgentMessageFromConversationEntries, q as extractImageContentFromSource, qa as resolveSessionKey, wr as emitAgentEvent } from "./reply-701mJB_S.js";
|
|
6
6
|
import { d as defaultRuntime } from "./errors-Dx3S3Nrp.js";
|
|
7
7
|
import "./send-C5_fB8YQ.js";
|
|
8
8
|
import "./send-jxmRy65D.js";
|
|
@@ -14,10 +14,10 @@ import "./chrome-mXtDMFyZ.js";
|
|
|
14
14
|
import "./pairing-token-BFGorDQo.js";
|
|
15
15
|
import "./ip-D_T5zbZS.js";
|
|
16
16
|
import "./ws-cvQhrVP3.js";
|
|
17
|
-
import "./onboarding.wallet-
|
|
17
|
+
import "./onboarding.wallet-BFJRJg77.js";
|
|
18
18
|
import "./wallet-runtime-config-BlRWvEER.js";
|
|
19
19
|
import "./wallet-provider-registry-ax0NJo0F.js";
|
|
20
|
-
import "./wallet-
|
|
20
|
+
import "./wallet-DZA0r3pV.js";
|
|
21
21
|
import "./wallet-approval-auth-DT-vofLs.js";
|
|
22
22
|
import "./reply-prefix-C2EEc3pc.js";
|
|
23
23
|
import "./media-C5BIKO-v.js";
|
|
@@ -37,7 +37,7 @@ import "./ssrf-Blf4NrHS.js";
|
|
|
37
37
|
import "./outbound-attachment-CsXJwFsg.js";
|
|
38
38
|
import "./fetch-CnCPOuq7.js";
|
|
39
39
|
import "./delivery-queue-DKRjVFlq.js";
|
|
40
|
-
import { t as createDefaultDeps } from "./deps-
|
|
40
|
+
import { t as createDefaultDeps } from "./deps-RXAe1X5s.js";
|
|
41
41
|
import "./memory-DDpj0IVA.js";
|
|
42
42
|
import "./memory-search-BwYkW6_V.js";
|
|
43
43
|
import "./manager-BmONwMiP.js";
|
|
@@ -2,7 +2,7 @@ import { Ui as logWarn, wa as defaultRuntime } from "./agent-scope-Cb1u7HE7.js";
|
|
|
2
2
|
import "./github-copilot-token-DYrFvncE.js";
|
|
3
3
|
import "./send-vR6HwT94.js";
|
|
4
4
|
import "./send-BQMxv218.js";
|
|
5
|
-
import { $ as emitAgentEvent, B as DEFAULT_INPUT_IMAGE_MIMES, G as normalizeMimeList, H as DEFAULT_INPUT_TIMEOUT_MS, K as resolveInputFileLimits, U as extractFileContentFromSource, V as DEFAULT_INPUT_MAX_REDIRECTS, W as extractImageContentFromSource, a as agentCommand, at as setSseHeaders, et as onAgentEvent, i as resolveAssistantStreamDeltaText, it as sendJson, n as handleGatewayPostJsonEndpoint, nt as resolveAgentIdForRequest, ot as writeDone, r as buildAgentMessageFromConversationEntries, rt as resolveSessionKey, tt as createDefaultDeps, z as DEFAULT_INPUT_IMAGE_MAX_BYTES } from "./pi-embedded-
|
|
5
|
+
import { $ as emitAgentEvent, B as DEFAULT_INPUT_IMAGE_MIMES, G as normalizeMimeList, H as DEFAULT_INPUT_TIMEOUT_MS, K as resolveInputFileLimits, U as extractFileContentFromSource, V as DEFAULT_INPUT_MAX_REDIRECTS, W as extractImageContentFromSource, a as agentCommand, at as setSseHeaders, et as onAgentEvent, i as resolveAssistantStreamDeltaText, it as sendJson, n as handleGatewayPostJsonEndpoint, nt as resolveAgentIdForRequest, ot as writeDone, r as buildAgentMessageFromConversationEntries, rt as resolveSessionKey, tt as createDefaultDeps, z as DEFAULT_INPUT_IMAGE_MAX_BYTES } from "./pi-embedded-Pkm2p81t.js";
|
|
6
6
|
import "./diagnostic-D6XQAXl4.js";
|
|
7
7
|
import "./diagnostic-session-state-CexmAKza.js";
|
|
8
8
|
import "./send-Da1hCe1A.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Cd as isTruthyEnvValue, Nu as listChannelPlugins, jf as CHAT_CHANNEL_ORDER } from "./agent-scope-DHrLr5OF.js";
|
|
2
2
|
import { c as listChannelPluginCatalogEntries } from "./dangerous-name-matching-CnyEIiOk.js";
|
|
3
|
-
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-
|
|
3
|
+
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-DfO1RfZv.js";
|
|
4
4
|
|
|
5
5
|
//#region src/cli/channel-options.ts
|
|
6
6
|
function dedupe(values) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Gl as listChannelPlugins, Vf as CHAT_CHANNEL_ORDER, t as isTruthyEnvValue } from "./env-C77feXxI.js";
|
|
2
2
|
import { d as listChannelPluginCatalogEntries } from "./dangerous-name-matching-CFRKz8Uq.js";
|
|
3
|
-
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-
|
|
3
|
+
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-DEewJtHt.js";
|
|
4
4
|
|
|
5
5
|
//#region src/cli/channel-options.ts
|
|
6
6
|
function dedupe(values) {
|
|
@@ -19121,7 +19121,7 @@ function createOutboundSendDepsFromCliSource(deps) {
|
|
|
19121
19121
|
function createDefaultDeps() {
|
|
19122
19122
|
return {
|
|
19123
19123
|
sendMessageWhatsApp: async (...args) => {
|
|
19124
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
19124
|
+
const { sendMessageWhatsApp } = await import("./web-778GrijN.js");
|
|
19125
19125
|
return await sendMessageWhatsApp(...args);
|
|
19126
19126
|
},
|
|
19127
19127
|
sendMessageTelegram: async (...args) => {
|
|
@@ -91767,7 +91767,7 @@ async function preflightDiscordMessage(params) {
|
|
|
91767
91767
|
let preflightTranscript;
|
|
91768
91768
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
91769
91769
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
91770
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
91770
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-QMOvUkXH.js");
|
|
91771
91771
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
91772
91772
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
91773
91773
|
ctx: {
|
|
@@ -99064,7 +99064,7 @@ async function waitForTransportReady(params) {
|
|
|
99064
99064
|
|
|
99065
99065
|
//#endregion
|
|
99066
99066
|
//#region src/brand.ts
|
|
99067
|
-
const FASED_PRODUCT_VERSION = "0.1.
|
|
99067
|
+
const FASED_PRODUCT_VERSION = "0.1.21";
|
|
99068
99068
|
const FASED_DISPLAY_VERSION = `v${FASED_PRODUCT_VERSION}`;
|
|
99069
99069
|
|
|
99070
99070
|
//#endregion
|
|
@@ -108687,7 +108687,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
|
|
|
108687
108687
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
108688
108688
|
let preflightTranscript;
|
|
108689
108689
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
108690
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
108690
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-QMOvUkXH.js");
|
|
108691
108691
|
preflightTranscript = await transcribeFirstAudio({
|
|
108692
108692
|
ctx: {
|
|
108693
108693
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -111313,7 +111313,7 @@ function loadWebLoginQr() {
|
|
|
111313
111313
|
return webLoginQrPromise;
|
|
111314
111314
|
}
|
|
111315
111315
|
function loadWebChannel() {
|
|
111316
|
-
webChannelPromise ??= import("./web-
|
|
111316
|
+
webChannelPromise ??= import("./web-778GrijN.js");
|
|
111317
111317
|
return webChannelPromise;
|
|
111318
111318
|
}
|
|
111319
111319
|
function loadWhatsAppActions() {
|
|
@@ -19122,7 +19122,7 @@ function createOutboundSendDepsFromCliSource(deps) {
|
|
|
19122
19122
|
function createDefaultDeps() {
|
|
19123
19123
|
return {
|
|
19124
19124
|
sendMessageWhatsApp: async (...args) => {
|
|
19125
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
19125
|
+
const { sendMessageWhatsApp } = await import("./web-D-SMykKz.js");
|
|
19126
19126
|
return await sendMessageWhatsApp(...args);
|
|
19127
19127
|
},
|
|
19128
19128
|
sendMessageTelegram: async (...args) => {
|
|
@@ -91758,7 +91758,7 @@ async function preflightDiscordMessage(params) {
|
|
|
91758
91758
|
let preflightTranscript;
|
|
91759
91759
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
91760
91760
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
91761
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
91761
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-DGoGnRdo.js");
|
|
91762
91762
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
91763
91763
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
91764
91764
|
ctx: {
|
|
@@ -99055,7 +99055,7 @@ async function waitForTransportReady(params) {
|
|
|
99055
99055
|
|
|
99056
99056
|
//#endregion
|
|
99057
99057
|
//#region src/brand.ts
|
|
99058
|
-
const FASED_PRODUCT_VERSION = "0.1.
|
|
99058
|
+
const FASED_PRODUCT_VERSION = "0.1.21";
|
|
99059
99059
|
const FASED_DISPLAY_VERSION = `v${FASED_PRODUCT_VERSION}`;
|
|
99060
99060
|
|
|
99061
99061
|
//#endregion
|
|
@@ -108678,7 +108678,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
|
|
|
108678
108678
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
108679
108679
|
let preflightTranscript;
|
|
108680
108680
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
108681
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
108681
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-DGoGnRdo.js");
|
|
108682
108682
|
preflightTranscript = await transcribeFirstAudio({
|
|
108683
108683
|
ctx: {
|
|
108684
108684
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -111304,7 +111304,7 @@ function loadWebLoginQr() {
|
|
|
111304
111304
|
return webLoginQrPromise;
|
|
111305
111305
|
}
|
|
111306
111306
|
function loadWebChannel() {
|
|
111307
|
-
webChannelPromise ??= import("./web-
|
|
111307
|
+
webChannelPromise ??= import("./web-D-SMykKz.js");
|
|
111308
111308
|
return webChannelPromise;
|
|
111309
111309
|
}
|
|
111310
111310
|
function loadWhatsAppActions() {
|