@fased/fased 0.1.10 → 0.1.12
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/README.md +7 -5
- package/dist/{active-listener-BC05EmaA.js → active-listener-CNrLAfOg.js} +1 -1
- package/dist/{agent-scope-DVw8mi_i.js → agent-scope-T2X-I1lP.js} +124 -124
- package/dist/{agents-CsxQP5xg.js → agents-Du8P7IN9.js} +8 -8
- package/dist/{attachment-normalize-CSxeaVcP.js → attachment-normalize-CXopR3aI.js} +1 -1
- package/dist/{attachment-normalize-f9lQXrZo.js → attachment-normalize-aZQqs-5G.js} +1 -1
- package/dist/{audio-preflight-DD1zXhwM.js → audio-preflight-BYZ53Lzg.js} +2 -2
- package/dist/{audio-preflight-C_g_wQAc.js → audio-preflight-CwheEXYS.js} +31 -31
- package/dist/{audio-preflight-CVU3GLti.js → audio-preflight-DWQBQ91D.js} +1 -1
- package/dist/{audio-preflight-BeJd4YPQ.js → audio-preflight-Dc1K_vOi.js} +2 -2
- package/dist/{audio-preflight-DBtzpOL_.js → audio-preflight-MekUgowQ.js} +1 -1
- package/dist/{audit-CDgqnjys.js → audit-Bjpi9xJU.js} +1 -1
- package/dist/{audit-BB2lDlNb.js → audit-T0cmU0nW.js} +1 -1
- package/dist/{auth-Bfgwy6TQ.js → auth-DPKqQb8Y.js} +5 -5
- package/dist/{auth-choice-DlcbJgp_.js → auth-choice-BpV7vqnP.js} +1 -1
- package/dist/{auth-choice-prompt-DMlwK9kF.js → auth-choice-prompt-B7PJvTVu.js} +1 -1
- package/dist/{auth-choice-prompt-CcOEzXoi.js → auth-choice-prompt-BFm4XkAG.js} +1 -1
- package/dist/{auth-choice-DbEAsUsi.js → auth-choice-yoUpVms3.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +31 -31
- package/dist/bundled/bootstrap-extra-files/handler.js +3 -3
- package/dist/bundled/command-logger/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +31 -31
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-activity-D2IwnDWk.js → channel-activity-C0DEUhUn.js} +1 -1
- package/dist/{channel-web-CMZFjZzU.js → channel-web-BuXn4FNd.js} +1 -1
- package/dist/{channel-web-qHKfuCHE.js → channel-web-P7ida1rd.js} +1 -1
- package/dist/{channels-BoOF2dAy.js → channels-DUuqHLzY.js} +6 -6
- package/dist/{channels-DvT6s1kl.js → channels-DqIpnZo-.js} +6 -6
- package/dist/{channels-cli-NoUnbEgC.js → channels-cli-BJZkhaUa.js} +5 -5
- package/dist/{channels-cli-CNhEFKbn.js → channels-cli-Czjdq6Zj.js} +5 -5
- package/dist/{chunk-BFGwq8HC.js → chunk-Q3WlKwcl.js} +1 -1
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-Ctvy4-cz.js → cli-25AS5uBh.js} +2 -2
- package/dist/{cli-CE8pVYeA.js → cli-BM7AHeMZ.js} +2 -2
- package/dist/{command-registry-fqlYdOTI.js → command-registry-CL3sTZBq.js} +9 -9
- package/dist/{commands-registry-C7qLmjBS.js → commands-registry-CwvSkARW.js} +1 -1
- package/dist/{completion-cli-CKzB1lB1.js → completion-cli-BeDxB08Q.js} +2 -2
- package/dist/{completion-cli-Bd9iPo4A.js → completion-cli-DXT5UV5h.js} +1 -1
- package/dist/{config-cli-CQpqSVFS.js → config-cli-0iLJIK_0.js} +1 -1
- package/dist/{config-cli-DUNkddbL.js → config-cli-BqKGZgHh.js} +1 -1
- package/dist/{config-eval-CG37crOn.js → config-eval-BMGRKCyr.js} +3 -3
- package/dist/{configure-B2WT8-lE.js → configure-C4jaHUYt.js} +12 -12
- package/dist/{configure-DxDNasaD.js → configure-C6WQjQYZ.js} +12 -12
- package/dist/control-ui/assets/app-wpJSg6bV.js.map +1 -1
- package/dist/{cron-cli-DYWW7cv1.js → cron-cli-CpAzr8UN.js} +2 -2
- package/dist/{cron-cli-D3Dznk0V.js → cron-cli-JKIl7U3h.js} +2 -2
- package/dist/{daemon-cli-DDUjmEow.js → daemon-cli-BNds0Hef.js} +1 -1
- package/dist/{daemon-cli-DFjCvbUo.js → daemon-cli-DB2nP-oP.js} +1 -1
- package/dist/daemon-cli.js +1 -1
- package/dist/{deps-4rCQ5SBd.js → deps-CZ5BtLba.js} +1 -1
- package/dist/{deps-CBapZnsi.js → deps-CmbKRFX-.js} +1 -1
- package/dist/{diagnostic-DWKSfm_q.js → diagnostic-PXNTTbiu.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +1 -1
- package/dist/{fetch-DyKd0D6V.js → fetch-D6yXePhv.js} +1 -1
- package/dist/{fetch-guard-Ztzfiio9.js → fetch-guard-B-XqKRhJ.js} +1 -1
- package/dist/{filesystem-manager-9uqWGvqg.js → filesystem-manager-_ccVdKHj.js} +4 -4
- package/dist/{fs-safe--dkmYAev.js → fs-safe-CkRcL-Cg.js} +2 -2
- package/dist/{gateway-cli-CNCA_gcT.js → gateway-cli-DWdySCrK.js} +27 -27
- package/dist/{gateway-cli-BXl9lmch.js → gateway-cli-DZcWa_Tx.js} +27 -27
- package/dist/{github-copilot-token-DYrFvncE.js → github-copilot-token-eyrRGmGp.js} +8 -8
- package/dist/{health-C_g99tp_.js → health-Cd-khz-9.js} +2 -2
- package/dist/{health-DTTfLYjl.js → health-D4RxkHwO.js} +2 -2
- package/dist/{heartbeat-runner-D04n14H-.js → heartbeat-runner-Ba95YjHH.js} +1 -1
- package/dist/{heartbeat-runner-DXh84Wuy.js → heartbeat-runner-CpK_gAIv.js} +1 -1
- package/dist/{hooks-cli-FhVd5CE-.js → hooks-cli-B_dJIUTW.js} +3 -3
- package/dist/{hooks-cli-BDpBNlPV.js → hooks-cli-CJD6gu6w.js} +3 -3
- package/dist/index.js +7 -7
- package/dist/{internal-yBWuTfFC.js → internal-CtV-S2kE.js} +3 -3
- package/dist/{ipv4-P47TSJIK.js → ipv4-C3GrgewJ.js} +2 -2
- package/dist/{ipv4-Citn8Cno.js → ipv4-mFIX9nv4.js} +2 -2
- package/dist/{lifecycle-B4RibYD4.js → lifecycle-C4k_XIAn.js} +1 -1
- package/dist/{lifecycle-Bgh3V8Jt.js → lifecycle-OLgxIVgL.js} +1 -1
- package/dist/{list.auth-overview-BQzrIpgk.js → list.auth-overview-CaS7O8M6.js} +1 -1
- package/dist/{list.auth-overview-fBVXihg0.js → list.auth-overview-DvgE-pEr.js} +1 -1
- package/dist/llm-slug-generator.js +31 -31
- package/dist/{login-DPlzYTXi.js → login-C4KKxuM4.js} +2 -2
- package/dist/{login-qr-c2Drd9vA.js → login-qr-DMxUP87H.js} +3 -3
- package/dist/{manager-XJq9ONvb.js → manager-O_PUm8xA.js} +8 -8
- package/dist/{markdown-tables-7kI-7mng.js → markdown-tables-QOHpjP76.js} +1 -1
- package/dist/{media-D4nEnyX9.js → media-KeWZMCmf.js} +5 -5
- package/dist/{memory-search-Z2b0d-jA.js → memory-search-BVlFBMLd.js} +2 -2
- package/dist/{model-catalog-B2mRe6cZ.js → model-catalog-CuBQyuRB.js} +9 -9
- package/dist/{models-D8MTK6SG.js → models-CcYHBi_r.js} +4 -4
- package/dist/{models-cli-CXdCnyks.js → models-cli-BAsSzs36.js} +5 -5
- package/dist/{models-cli-Bl8xk6-0.js → models-cli-CwNjNmaD.js} +4 -4
- package/dist/{node-cli-DkgKrYS1.js → node-cli-CqENdMLC.js} +2 -2
- package/dist/{node-cli-Cqh8buCU.js → node-cli-LfnYXPVk.js} +2 -2
- package/dist/{onboard-BD0MOrv7.js → onboard-CjinvB7q.js} +6 -6
- package/dist/{onboard-Dz8z4vBi.js → onboard-DiAeyhSY.js} +6 -6
- package/dist/{onboard-channels-CPh2EJOi.js → onboard-channels-BOR7r6J2.js} +2 -2
- package/dist/{onboard-channels-DUa2qkms.js → onboard-channels-CEv6tCJQ.js} +2 -2
- package/dist/{onboard-search-BnHMgV2k.js → onboard-search-B3wBacDO.js} +5 -5
- package/dist/{onboard-search-CqiDzWQw.js → onboard-search-DE_DRU35.js} +5 -5
- package/dist/{onboarding-BC-5Pv9o.js → onboarding-CYRCJeTz.js} +100 -63
- package/dist/{onboarding-DgTB_zq7.js → onboarding-Cy5d82Kg.js} +100 -63
- package/dist/{openresponses-http-CcawkBY4.js → openresponses-http-BK_0sg-w.js} +2 -2
- package/dist/{openresponses-http-BirGBJTm.js → openresponses-http-CSrODtfo.js} +1 -1
- package/dist/{openresponses-http-BsQmM8zM.js → openresponses-http-D9Q0e2D0.js} +1 -1
- package/dist/{openresponses-http-BQa9rI-N.js → openresponses-http-Dr_hPplW.js} +31 -31
- package/dist/{openresponses-http-BYiaPg-e.js → openresponses-http-DypSiMi3.js} +2 -2
- package/dist/{outbound-attachment-BnC5ITTB.js → outbound-attachment-DO7UVxZm.js} +2 -2
- package/dist/{outbound-vYt3OL7q.js → outbound-nrqaUQPn.js} +6 -6
- package/dist/{parent-default-help-DbMf7NQe.js → parent-default-help-BaTTrhnu.js} +1 -1
- package/dist/{parent-default-help-CpfuGajV.js → parent-default-help-Df_c3iTF.js} +1 -1
- package/dist/{path-alias-guards-BgsaoH-B.js → path-alias-guards-BVcGMct5.js} +1 -1
- package/dist/{paths-0bvQb_LS.js → paths-WauZ9inL.js} +13 -13
- package/dist/{pi-embedded-Bapdl5Mb.js → pi-embedded-B6jLpS4e.js} +234 -234
- package/dist/{pi-embedded-DlBsi5bC.js → pi-embedded-DEzQtNcl.js} +5 -5
- package/dist/{pi-model-discovery-DpUv4v_r.js → pi-model-discovery-B1-QPAbn.js} +7 -7
- package/dist/pi-model-discovery-runtime-C3EP4IIA.js +5 -0
- package/dist/{plugin-registry-C7oTQytM.js → plugin-registry-BIMCuigY.js} +1 -1
- package/dist/{plugin-registry-2aqMgXpl.js → plugin-registry-DCy0l8-h.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-Vg4EuYfg.js → audio-preflight-DXwdBAPl.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-BbjERcpR.js → audio-preflight-K0n0C4E6.js} +1 -1
- package/dist/plugin-sdk/channel-plugin-common.js +1 -1
- package/dist/plugin-sdk/{channel-web-JBsCrpEe.js → channel-web-D6K8VR5v.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-dj-a8V7Z.js → openresponses-http-BP3xOe-Y.js} +1 -1
- package/dist/plugin-sdk/{openresponses-http-ihpGpya5.js → openresponses-http-BxWGSEv1.js} +1 -1
- package/dist/plugin-sdk/{pi-model-discovery-runtime-CddkbYKA.js → pi-model-discovery-runtime-Cv_H-NDs.js} +1 -1
- package/dist/plugin-sdk/{registry-BhjWgT6A.js → registry-Dpq_OloZ.js} +8 -8
- package/dist/plugin-sdk/{reply-CvmqbVx1.js → reply-Bg7g6Uem.js} +5 -5
- package/dist/plugin-sdk/src/brand.d.ts +2 -2
- package/dist/plugin-sdk/{status-DsTgMPSP.js → status-DvKbZrfW.js} +5 -5
- package/dist/plugin-sdk/{web-DHSHEbWK.js → web-BjxFpY7T.js} +2 -2
- package/dist/plugin-sdk/{web-CLXmBst6.js → web-CVUx-6o3.js} +1 -1
- package/dist/{plugins-cli-CXa9m7-A.js → plugins-cli-BnfUnqOU.js} +5 -5
- package/dist/{plugins-cli-Dj-p00ob.js → plugins-cli-D9zklM0p.js} +5 -5
- package/dist/{program-B3cXsVO0.js → program-CqMsm4EB.js} +7 -7
- package/dist/{program-context-Di7qiwOM.js → program-context-DPhz8FN3.js} +24 -24
- package/dist/{prompt-select-styled-C5o0Ff06.js → prompt-select-styled-BGaZLmeA.js} +4 -4
- package/dist/{prompt-select-styled-8KBIPNro.js → prompt-select-styled-D-2EpC11.js} +4 -4
- package/dist/{pw-ai-DAn5Q5Mg.js → pw-ai-CM1mw9Kc.js} +5 -5
- package/dist/{qmd-manager-BQu_lmJ6.js → qmd-manager--NffQxNh.js} +5 -5
- package/dist/{qmd-scope-Bv2HOfhX.js → qmd-scope-BgLcDW_Q.js} +1 -1
- package/dist/{query-expansion-LNmYRPvI.js → query-expansion-BW1RomSn.js} +2 -2
- package/dist/{register.agent-ll5ykI9x.js → register.agent-C6orfeKi.js} +9 -9
- package/dist/{register.agent-BYkIkPHf.js → register.agent-jy-C0MEz.js} +8 -8
- package/dist/{register.configure-DubkYh7h.js → register.configure-H9A87IRW.js} +12 -12
- package/dist/{register.configure-C0GU1zbA.js → register.configure-R5Gp68OD.js} +12 -12
- package/dist/{register.maintenance-Pz6desR4.js → register.maintenance-2VJJezzk.js} +9 -9
- package/dist/{register.maintenance-Corgqhj5.js → register.maintenance-CKLT7i2A.js} +8 -8
- package/dist/{register.message-COK8wYD_.js → register.message-M8tJ8ZGt.js} +3 -3
- package/dist/{register.message-oi2ewJpl.js → register.message-RbpY8_gf.js} +3 -3
- package/dist/{register.onboard-C7ysxMn6.js → register.onboard-Cmju7Jau.js} +14 -14
- package/dist/{register.onboard-zwRY0Dsh.js → register.onboard-CzuAo1h5.js} +14 -14
- package/dist/{register.setup-B1YGF1bz.js → register.setup-BIZLxrJN.js} +14 -14
- package/dist/{register.setup-J2tUgD6C.js → register.setup-CcFkJ--V.js} +14 -14
- package/dist/{register.status-health-sessions-DmjjMrJZ.js → register.status-health-sessions-BzNqkPbh.js} +6 -6
- package/dist/{register.status-health-sessions-DCazjMZa.js → register.status-health-sessions-DP58oA2z.js} +6 -6
- package/dist/{register.subclis-Bj8pFyAT.js → register.subclis-CcunjiP0.js} +16 -16
- package/dist/{replies-D0__mn7d.js → replies-lgWzXlwM.js} +2 -2
- package/dist/{reply-DQfPM5ia.js → reply-BBDR--RC.js} +9 -9
- package/dist/{reply-prefix-CteprwTK.js → reply-prefix-BM90m-1s.js} +1 -1
- package/dist/{resolve-route-Twc4mQV7.js → resolve-route-DyTOJJs4.js} +1 -1
- package/dist/{run-main-Cf6N-U3j.js → run-main-Hm6uygbR.js} +14 -14
- package/dist/{runtime-helper-grants-DONSfqWx.js → runtime-helper-grants-BX7MNAiX.js} +1 -1
- package/dist/{runtime-helper-grants-DzP6dgWv.js → runtime-helper-grants-DsRzAU91.js} +1 -1
- package/dist/{sandbox-cli-DHHAXWD8.js → sandbox-cli-C9LRf1BU.js} +2 -2
- package/dist/{sandbox-cli-CqUHfq55.js → sandbox-cli-CphPxb_Y.js} +2 -2
- package/dist/{security-cli-DNlCSlQR.js → security-cli-B1T-BpNW.js} +3 -3
- package/dist/{security-cli-CAEEYR8C.js → security-cli-DvQyNPyj.js} +3 -3
- package/dist/{send-BVmNzYrR.js → send-B8seeqjd.js} +18 -18
- package/dist/{send-BG45zdAY.js → send-BPleg3km.js} +5 -5
- package/dist/{send-BAtDZt7a.js → send-CAqldeiP.js} +5 -5
- package/dist/{send-DD6K3WP6.js → send-D63evlEI.js} +7 -7
- package/dist/{send-6RE7ZD_B.js → send-M0lHXvC5.js} +4 -4
- package/dist/{server-RYyJ2HTj.js → server-Dce2V0BV.js} +2 -2
- package/dist/{server-cron-D7rN6EY6.js → server-cron-DIvtrfmE.js} +2 -2
- package/dist/{server-cron-V9GBrg1S.js → server-cron-DYFn5b-C.js} +2 -2
- package/dist/{server-B67PKank.js → server-itEHgEB-.js} +2 -2
- package/dist/{server-node-events-eh5LuLg6.js → server-node-events-Bw_TYnRI.js} +3 -3
- package/dist/{server-node-events-CAG2ic6e.js → server-node-events-Cat4mX6Y.js} +3 -3
- package/dist/{session-CHL2ptKy.js → session-Cvg_ryor.js} +5 -5
- package/dist/{skill-commands-_zLgADck.js → skill-commands-D_QLBtje.js} +24 -24
- package/dist/{status-CTveTSuF.js → status-B-5uZdap.js} +1 -1
- package/dist/{status-DIkbKBxH.js → status-B3Mdifey.js} +4 -4
- package/dist/{status-BuGyo-1M.js → status-B_i6iCPI.js} +4 -4
- package/dist/{status-jb8w0SwX.js → status-DP-ZmLoI.js} +1 -1
- package/dist/{tables-Dtfop_e5.js → tables-Cif1OeQ1.js} +1 -1
- package/dist/{target-errors-DrHV8jza.js → target-errors-B-8Jf9OT.js} +2 -2
- package/dist/{tool-loop-detection-CPr-VVyD.js → tool-loop-detection-6p0-ziTi.js} +2 -2
- package/dist/{tui-Dinku0o-.js → tui-Cp1X0KaI.js} +1 -1
- package/dist/{tui-lmdDZi6Y.js → tui-DX2hKjKi.js} +1 -1
- package/dist/{tui-cli-dq7xafwR.js → tui-cli-DQIeHToU.js} +3 -3
- package/dist/{tui-cli-z5WV3SVg.js → tui-cli-ttzW7LkP.js} +3 -3
- package/dist/{update-cli-Cq47v0X_.js → update-cli-D5EsEoEh.js} +9 -9
- package/dist/{update-cli-BdQ3mRGs.js → update-cli-Dh0CR2-f.js} +10 -10
- package/dist/{update-runner-BnRMhKva.js → update-runner-B-O5EFkI.js} +1 -1
- package/dist/{update-runner-C0SU1jGT.js → update-runner-Bs5Vqr8x.js} +1 -1
- package/dist/{web-B9YrSF5u.js → web-BBv1hZEl.js} +1 -1
- package/dist/{web-D9wmjTDC.js → web-C7ARZ3T9.js} +3 -3
- package/dist/{web-DaMiLN7K.js → web-CKYCUuIo.js} +1 -1
- package/dist/{web-sBExtZCA.js → web-Cp2B8UG5.js} +35 -35
- package/dist/{web-BmjUKJI0.js → web-ifDkl2qg.js} +3 -3
- package/dist/{web-search-providers.runtime-TGCiBzhv.js → web-search-providers.runtime-B6bTk9-Z.js} +1 -1
- package/dist/{web-search-providers.runtime-gM-8LIxg.js → web-search-providers.runtime-tUcnQoHZ.js} +1 -1
- package/dist/{whatsapp-actions-C5qguyU5.js → whatsapp-actions-BAux9gs7.js} +12 -12
- package/docs/install/index.md +16 -10
- package/docs/install/installer.md +18 -9
- package/docs/install/node.md +5 -4
- package/docs/install/vps.md +7 -3
- 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 +53 -12
- package/dist/pi-model-discovery-runtime-9_2G9r_K.js +0 -5
|
@@ -1,6 +1,6 @@
|
|
|
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-Dlz8aQHP.js";
|
|
2
2
|
import { H as theme, x as resolveUserPath } from "./agent-paths-DUHGyU1s.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-CuBQyuRB.js";
|
|
4
4
|
import { A as defaultRuntime, Ct as resolveStateDir, E as redactSensitiveText, ct as DEFAULT_GATEWAY_PORT, gt as resolveGatewayPort, j as restoreTerminalState } from "./entry.js";
|
|
5
5
|
import { n as redactSensitiveUrlLikeString } from "./redact-sensitive-url-BW03TVj8.js";
|
|
6
6
|
import { a as resolveSignerdBinaryPath, n as installSignerdBinary, o as restartLocalSocketSigner, r as migrateLocalSignerKeystoreToMaterialDir, t as configureWalletForOnboarding } from "./onboarding.wallet-CcoV0W6U.js";
|
|
@@ -16,14 +16,14 @@ import { a as resolveHostedOnboardingGatewayStartupMode, i as resolveGatewayStar
|
|
|
16
16
|
import { d as buildSystemdUnit, r as isSystemdUserServiceAvailable } from "./systemd-7bMkfZjg.js";
|
|
17
17
|
import { t as resolveGatewayService } from "./service-CnO5S7Pz.js";
|
|
18
18
|
import { n as auditGatewayServiceConfig, t as SERVICE_AUDIT_CODES } from "./service-audit-B92T2Wk3.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-mFIX9nv4.js";
|
|
20
|
+
import { s as waitForHostedDashboardBrowserPath } from "./health-Cd-khz-9.js";
|
|
21
|
+
import { n as warnIfModelConfigLooksOff, r as applyAuthChoice } from "./auth-choice-BpV7vqnP.js";
|
|
22
|
+
import { t as promptAuthChoiceGrouped } from "./auth-choice-prompt-BFm4XkAG.js";
|
|
23
23
|
import { n as logConfigUpdated } from "./logging-B1pB3RkW.js";
|
|
24
|
-
import { n as setupChannels } from "./onboard-channels-
|
|
24
|
+
import { n as setupChannels } from "./onboard-channels-CEv6tCJQ.js";
|
|
25
25
|
import { t as buildWorkspaceHookStatus } from "./hooks-status-BZnz9Iag.js";
|
|
26
|
-
import { t as runTui } from "./tui-
|
|
26
|
+
import { t as runTui } from "./tui-Cp1X0KaI.js";
|
|
27
27
|
import { spawn, spawnSync } from "node:child_process";
|
|
28
28
|
import os from "node:os";
|
|
29
29
|
import path from "node:path";
|
|
@@ -357,34 +357,61 @@ function buildOnboardingDashboardUrl(params) {
|
|
|
357
357
|
url.hash = hash ? `#${hash}` : "";
|
|
358
358
|
return url.toString();
|
|
359
359
|
}
|
|
360
|
+
function noteHeading$1(value) {
|
|
361
|
+
return theme.heading(value.toUpperCase());
|
|
362
|
+
}
|
|
363
|
+
function noteLabel(value) {
|
|
364
|
+
return theme.accentBright(value);
|
|
365
|
+
}
|
|
366
|
+
function noteInfo$1(value) {
|
|
367
|
+
return theme.info(value);
|
|
368
|
+
}
|
|
369
|
+
function noteSuccess$1(value) {
|
|
370
|
+
return theme.success(value);
|
|
371
|
+
}
|
|
372
|
+
function noteWarn$1(value) {
|
|
373
|
+
return theme.warn(value);
|
|
374
|
+
}
|
|
375
|
+
function noteMuted(value) {
|
|
376
|
+
return theme.muted(value);
|
|
377
|
+
}
|
|
378
|
+
function noteCommand$1(value) {
|
|
379
|
+
return theme.command(value);
|
|
380
|
+
}
|
|
381
|
+
function noteBullet$1(value) {
|
|
382
|
+
return `- ${value}`;
|
|
383
|
+
}
|
|
384
|
+
function formatFasedNetworkAutoConnectSummary(messages) {
|
|
385
|
+
return [noteHeading$1("Connection confirmed"), ...messages.map((message) => noteBullet$1(noteSuccess$1(message)))].join("\n");
|
|
386
|
+
}
|
|
360
387
|
function formatStrictRemoteAccessDetails(params) {
|
|
361
388
|
const sshTarget = params.tailscaleNodeName || params.tailscaleIpv4 || "(tailscale-node)";
|
|
362
389
|
const tailscaleIpv4 = params.tailscaleIpv4?.trim();
|
|
363
390
|
const hasIpFallback = Boolean(tailscaleIpv4 && tailscaleIpv4 !== sshTarget);
|
|
364
391
|
return [
|
|
365
|
-
"Use both access paths after hosted setup:",
|
|
392
|
+
noteInfo$1("Use both access paths after hosted setup:"),
|
|
366
393
|
"",
|
|
367
|
-
"1.
|
|
368
|
-
"
|
|
369
|
-
` ${params.dashboardUrl}`,
|
|
394
|
+
noteHeading$1("1. Web dashboard"),
|
|
395
|
+
` ${noteInfo$1("Open this on your own computer after signing into the same Tailscale account:")}`,
|
|
396
|
+
` ${noteCommand$1(params.dashboardUrl)}`,
|
|
370
397
|
"",
|
|
371
|
-
"2. SSH
|
|
372
|
-
"
|
|
373
|
-
` ssh ${params.tailscaleSshUser}@${sshTarget}`,
|
|
374
|
-
hasIpFallback ? ` If hostname DNS fails but Tailscale IP ping works, use: ssh ${params.tailscaleSshUser}@${tailscaleIpv4}` : void 0,
|
|
375
|
-
"
|
|
398
|
+
noteHeading$1("2. SSH terminal"),
|
|
399
|
+
` ${noteInfo$1("Use this for CLI commands, updates, logs, and repairs over Tailscale:")}`,
|
|
400
|
+
` ${noteCommand$1(`ssh ${params.tailscaleSshUser}@${sshTarget}`)}`,
|
|
401
|
+
hasIpFallback ? ` ${noteWarn$1("If hostname DNS fails but Tailscale IP ping works, use:")} ${noteCommand$1(`ssh ${params.tailscaleSshUser}@${tailscaleIpv4}`)}` : void 0,
|
|
402
|
+
` ${noteInfo$1("The app user shell opens in the Fased repo directory.")}`,
|
|
376
403
|
"",
|
|
377
|
-
"
|
|
378
|
-
"
|
|
379
|
-
` ssh -N -L ${params.port}:127.0.0.1:${params.port} ${params.tailscaleSshUser}@${sshTarget}`,
|
|
380
|
-
hasIpFallback ? ` If a VPN blocks MagicDNS hostname lookup, use: ssh -N -L ${params.port}:127.0.0.1:${params.port} ${params.tailscaleSshUser}@${tailscaleIpv4}` : void 0,
|
|
381
|
-
"
|
|
382
|
-
` ${params.tunnelUrl}`,
|
|
383
|
-
hasIpFallback ? "
|
|
404
|
+
noteHeading$1("Advanced fallback"),
|
|
405
|
+
` ${noteInfo$1("If the Tailscale web URL is unavailable, run this on your local computer and leave it open:")}`,
|
|
406
|
+
` ${noteCommand$1(`ssh -N -L ${params.port}:127.0.0.1:${params.port} ${params.tailscaleSshUser}@${sshTarget}`)}`,
|
|
407
|
+
hasIpFallback ? ` ${noteWarn$1("If a VPN blocks MagicDNS hostname lookup, use:")} ${noteCommand$1(`ssh -N -L ${params.port}:127.0.0.1:${params.port} ${params.tailscaleSshUser}@${tailscaleIpv4}`)}` : void 0,
|
|
408
|
+
` ${noteInfo$1("Then open:")}`,
|
|
409
|
+
` ${noteCommand$1(params.tunnelUrl)}`,
|
|
410
|
+
hasIpFallback ? ` ${noteWarn$1("Note: another VPN can break Tailscale MagicDNS while raw 100.x Tailscale IP access still works.")}` : void 0,
|
|
384
411
|
"",
|
|
385
|
-
"
|
|
386
|
-
"
|
|
387
|
-
` ${params.gatewayToken || "(token not available)"}`
|
|
412
|
+
noteHeading$1("Gateway token backup"),
|
|
413
|
+
` ${noteWarn$1("Only paste this if the browser asks for a token:")}`,
|
|
414
|
+
` ${noteCommand$1(params.gatewayToken || "(token not available)")}`
|
|
388
415
|
].filter((line) => line !== void 0).join("\n");
|
|
389
416
|
}
|
|
390
417
|
function formatLocalDashboardReady(params) {
|
|
@@ -1669,11 +1696,12 @@ async function finalizeOnboardingWizard(options) {
|
|
|
1669
1696
|
}
|
|
1670
1697
|
}
|
|
1671
1698
|
if (strictVps) await prompter.note([
|
|
1672
|
-
"
|
|
1699
|
+
noteHeading$1("Private access"),
|
|
1700
|
+
noteInfo$1("Hosted runtime is private by default."),
|
|
1673
1701
|
"",
|
|
1674
|
-
"Web dashboard: Tailscale HTTPS URL
|
|
1675
|
-
"SSH terminal: ssh app@YOUR_VPS_TAILSCALE_NAME over Tailscale
|
|
1676
|
-
"Public SSH and Gateway ports remain blocked."
|
|
1702
|
+
`${noteLabel("Web dashboard:")} ${noteCommand$1("Tailscale HTTPS URL")}`,
|
|
1703
|
+
`${noteLabel("SSH terminal:")} ${noteCommand$1("ssh app@YOUR_VPS_TAILSCALE_NAME")} ${noteInfo$1("over Tailscale")}`,
|
|
1704
|
+
noteBullet$1(noteWarn$1("Public SSH and Gateway ports remain blocked."))
|
|
1677
1705
|
].join("\n"), "Hosting access");
|
|
1678
1706
|
if ((strictVps || expectedGatewayStartupMode === "managed-up") && !autoStartEnabled && !opts.allowInsecure) throw new Error(formatPersistentRuntimeServiceFailure({
|
|
1679
1707
|
strictVps,
|
|
@@ -2114,12 +2142,13 @@ async function finalizeOnboardingWizard(options) {
|
|
|
2114
2142
|
if (!warmup.ok) {
|
|
2115
2143
|
const detail = warmup.detail ?? "not reachable yet";
|
|
2116
2144
|
await prompter.note([
|
|
2117
|
-
"
|
|
2118
|
-
|
|
2145
|
+
noteHeading$1("Tailscale HTTPS"),
|
|
2146
|
+
noteWarn$1("The Tailscale HTTPS dashboard URL is still warming from this VPS."),
|
|
2147
|
+
`${noteMuted("Detail:")} ${noteInfo$1(detail)}`,
|
|
2119
2148
|
"",
|
|
2120
|
-
"Setup will continue if the local Gateway listener is healthy.",
|
|
2121
|
-
"Open the printed Tailscale URL from your own Tailscale-connected computer.",
|
|
2122
|
-
"If another VPN breaks MagicDNS, turn it off or use the 100.x Tailscale IP fallback."
|
|
2149
|
+
noteBullet$1(noteSuccess$1("Setup will continue if the local Gateway listener is healthy.")),
|
|
2150
|
+
noteBullet$1(noteInfo$1("Open the printed Tailscale URL from your own Tailscale-connected computer.")),
|
|
2151
|
+
noteBullet$1(noteWarn$1("If another VPN breaks MagicDNS, turn it off or use the 100.x Tailscale IP fallback."))
|
|
2123
2152
|
].join("\n"), "Dashboard warmup");
|
|
2124
2153
|
return;
|
|
2125
2154
|
}
|
|
@@ -2139,12 +2168,13 @@ async function finalizeOnboardingWizard(options) {
|
|
|
2139
2168
|
pollMs: 1500
|
|
2140
2169
|
});
|
|
2141
2170
|
if (!wsWarmup.ok) await prompter.note([
|
|
2142
|
-
"
|
|
2143
|
-
|
|
2144
|
-
|
|
2171
|
+
noteHeading$1("Gateway connection"),
|
|
2172
|
+
noteWarn$1("The Tailscale dashboard page is reachable, but the browser Gateway connection is still warming."),
|
|
2173
|
+
`${noteLabel("Gateway URL:")} ${noteCommand$1(tailscaleGatewayWsUrl)}`,
|
|
2174
|
+
`${noteMuted("Detail:")} ${noteInfo$1("stage" in wsWarmup ? `${wsWarmup.stage}: ${wsWarmup.message}` : wsWarmup.detail ?? "websocket not reachable")}`,
|
|
2145
2175
|
"",
|
|
2146
|
-
"Setup will continue if the local Gateway listener is healthy.",
|
|
2147
|
-
"Use the SSH tunnel fallback immediately, or open the Tailscale dashboard URL again shortly."
|
|
2176
|
+
noteBullet$1(noteSuccess$1("Setup will continue if the local Gateway listener is healthy.")),
|
|
2177
|
+
noteBullet$1(noteInfo$1("Use the SSH tunnel fallback immediately, or open the Tailscale dashboard URL again shortly."))
|
|
2148
2178
|
].join("\n"), "Dashboard warmup");
|
|
2149
2179
|
else hostedDashboardBrowserVerified = true;
|
|
2150
2180
|
});
|
|
@@ -2206,12 +2236,15 @@ async function finalizeOnboardingWizard(options) {
|
|
|
2206
2236
|
if (federation.enabled) {
|
|
2207
2237
|
let hostedFederationAutoConnectAttempted = false;
|
|
2208
2238
|
let hostedFederationAutoConnectReason = "";
|
|
2239
|
+
const hostedFederationAutoConnectMessages = [];
|
|
2209
2240
|
if (strictVps && !readManagedFederationTokenSummary(onboardingEnv).exists) {
|
|
2210
2241
|
hostedFederationAutoConnectAttempted = true;
|
|
2211
2242
|
hostedFederationAutoConnectReason = (await runFederationAutoConnectOnce({
|
|
2212
2243
|
env: onboardingEnv,
|
|
2213
2244
|
log: {
|
|
2214
|
-
info: (message) =>
|
|
2245
|
+
info: (message) => {
|
|
2246
|
+
hostedFederationAutoConnectMessages.push(message);
|
|
2247
|
+
},
|
|
2215
2248
|
warn: (message) => {
|
|
2216
2249
|
hostedFederationAutoConnectReason = message;
|
|
2217
2250
|
},
|
|
@@ -2230,12 +2263,13 @@ async function finalizeOnboardingWizard(options) {
|
|
|
2230
2263
|
reservations: readManagedReservationSummaries(onboardingEnv)
|
|
2231
2264
|
};
|
|
2232
2265
|
if (fedToken.exists && !persistedFederationToken) persistedFederationToken = await loadPersistedFederationToken(onboardingEnv).catch(() => null);
|
|
2266
|
+
if (strictVps && hostedFederationAutoConnectAttempted && hostedFederationAutoConnectMessages.length > 0) await prompter.note(formatFasedNetworkAutoConnectSummary(hostedFederationAutoConnectMessages), "Fased Network");
|
|
2233
2267
|
if (strictVps && hostedFederationAutoConnectAttempted && !fedToken.exists) await prompter.note([
|
|
2234
|
-
"Fased Network silent join did not finish.",
|
|
2235
|
-
hostedFederationAutoConnectReason ?
|
|
2236
|
-
reservations.length > 0 ?
|
|
2237
|
-
"Dashboard and SSH are ready over Tailscale.",
|
|
2238
|
-
"Inspect details:
|
|
2268
|
+
noteWarn$1("Fased Network silent join did not finish."),
|
|
2269
|
+
hostedFederationAutoConnectReason ? `${noteMuted("Reason:")} ${noteInfo$1(hostedFederationAutoConnectReason)}` : `${noteMuted("Reason:")} ${noteInfo$1("token was not issued before final readiness.")}`,
|
|
2270
|
+
reservations.length > 0 ? `${noteMuted("Reservation:")} ${noteCommand$1(reservations[0]?.slug ?? "")}` : void 0,
|
|
2271
|
+
noteSuccess$1("Dashboard and SSH are ready over Tailscale."),
|
|
2272
|
+
`${noteMuted("Inspect details:")} ${noteCommand$1("fased managed up --json")}`
|
|
2239
2273
|
].filter(Boolean).join("\n"), "Fased Network");
|
|
2240
2274
|
}
|
|
2241
2275
|
const operatorReadiness = describeOperatorReadinessChecklist({
|
|
@@ -2281,16 +2315,17 @@ async function finalizeOnboardingWizard(options) {
|
|
|
2281
2315
|
detail: finalGateway.detail ?? "final gateway recheck timed out"
|
|
2282
2316
|
};
|
|
2283
2317
|
await prompter.note([
|
|
2284
|
-
|
|
2285
|
-
|
|
2318
|
+
noteHeading$1("Service active"),
|
|
2319
|
+
serviceActive ? noteWarn$1("The hosted Gateway service is active, but the dashboard is still warming.") : noteInfo$1("The hosted browser dashboard passed its full check earlier."),
|
|
2320
|
+
`${noteMuted("Detail:")} ${noteInfo$1(finalGateway.detail ?? "gateway not reachable yet")}`,
|
|
2286
2321
|
"",
|
|
2287
|
-
"Setup will finish and leave the Gateway service running.",
|
|
2288
|
-
"Open the printed Tailscale dashboard URL again in a few minutes.",
|
|
2289
|
-
"If MagicDNS is slow or another VPN is active, use the 100.x Tailscale IP fallback.",
|
|
2322
|
+
noteBullet$1(noteSuccess$1("Setup will finish and leave the Gateway service running.")),
|
|
2323
|
+
noteBullet$1(noteInfo$1("Open the printed Tailscale dashboard URL again in a few minutes.")),
|
|
2324
|
+
noteBullet$1(noteWarn$1("If MagicDNS is slow or another VPN is active, use the 100.x Tailscale IP fallback.")),
|
|
2290
2325
|
"",
|
|
2291
|
-
"Check from the app terminal
|
|
2292
|
-
"fased status",
|
|
2293
|
-
"fased dashboard --no-open"
|
|
2326
|
+
noteHeading$1("Check from the app terminal"),
|
|
2327
|
+
noteCommand$1("fased status"),
|
|
2328
|
+
noteCommand$1("fased dashboard --no-open")
|
|
2294
2329
|
].join("\n"), "Dashboard warmup");
|
|
2295
2330
|
return;
|
|
2296
2331
|
}
|
|
@@ -3250,9 +3285,9 @@ async function applyHostingSecurity(params) {
|
|
|
3250
3285
|
detail: "post-bootstrap hosted maintenance session; skipping host hardening bootstrap"
|
|
3251
3286
|
};
|
|
3252
3287
|
let tsAuthkey = opts.tsAuthkey?.trim() ?? "";
|
|
3253
|
-
if (!tsAuthkey) if (await prompter.confirm({
|
|
3254
|
-
message: "Use
|
|
3255
|
-
initialValue:
|
|
3288
|
+
if (!tsAuthkey) if (!await prompter.confirm({
|
|
3289
|
+
message: "Use browser login for Tailscale? (recommended)",
|
|
3290
|
+
initialValue: true
|
|
3256
3291
|
})) tsAuthkey = (typeof prompter.secret === "function" ? await prompter.secret({
|
|
3257
3292
|
message: "Paste Tailscale auth key (tskey-auth-...)",
|
|
3258
3293
|
validate: (value) => value.trim() ? void 0 : "Required"
|
|
@@ -3425,9 +3460,9 @@ async function applyHostingSecurity(params) {
|
|
|
3425
3460
|
if (!tsHealthy) {
|
|
3426
3461
|
let tsAuthkey = opts.tsAuthkey?.trim() ?? "";
|
|
3427
3462
|
if (!tsAuthkey && opts.nonInteractive !== true && prompter) {
|
|
3428
|
-
if (await prompter.confirm({
|
|
3429
|
-
message: "Use
|
|
3430
|
-
initialValue:
|
|
3463
|
+
if (!await prompter.confirm({
|
|
3464
|
+
message: "Use browser login for Tailscale? (recommended)",
|
|
3465
|
+
initialValue: true
|
|
3431
3466
|
})) tsAuthkey = (typeof prompter.secret === "function" ? await prompter.secret({
|
|
3432
3467
|
message: "Paste Tailscale auth key (tskey-auth-...)",
|
|
3433
3468
|
validate: (value) => value.trim() ? void 0 : "Required"
|
|
@@ -5186,9 +5221,11 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
|
|
|
5186
5221
|
};
|
|
5187
5222
|
if (hostSecurity.profile === "hosting" && hostSecurity.checks.length > 0) {
|
|
5188
5223
|
const lines = [
|
|
5189
|
-
"
|
|
5190
|
-
|
|
5191
|
-
hostSecurity.
|
|
5224
|
+
theme.heading("HOSTING SECURITY CHECKLIST"),
|
|
5225
|
+
"",
|
|
5226
|
+
...hostSecurity.checks.map((check) => `${check.ok ? theme.success("✓") : theme.error("✗")} ${theme.accentBright(check.name)}: ${check.ok ? theme.info(check.detail) : theme.error(check.detail)}`),
|
|
5227
|
+
"",
|
|
5228
|
+
hostSecurity.logPath ? `${theme.muted("Detailed host hardening log:")} ${theme.command(hostSecurity.logPath)}` : void 0
|
|
5192
5229
|
];
|
|
5193
5230
|
await prompter.note(lines.filter(Boolean).join("\n"), "Host security");
|
|
5194
5231
|
}
|
|
@@ -2,7 +2,7 @@ import { bd as logWarn } from "./env-Dlz8aQHP.js";
|
|
|
2
2
|
import "./agent-paths-DUHGyU1s.js";
|
|
3
3
|
import "./send-Ditv1VfR.js";
|
|
4
4
|
import "./send-CWM2yWF6.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-CuBQyuRB.js";
|
|
6
6
|
import "./github-copilot-token-A9DiaCB0.js";
|
|
7
7
|
import { A as defaultRuntime } from "./entry.js";
|
|
8
8
|
import "./reply-prefix-CCp0C8w4.js";
|
|
@@ -45,7 +45,7 @@ import "./send-Dlj2DghK.js";
|
|
|
45
45
|
import "./outbound-attachment-D2ImFzcm.js";
|
|
46
46
|
import "./fetch-BqA-KBI4.js";
|
|
47
47
|
import "./delivery-queue-CMGPhIoF.js";
|
|
48
|
-
import { t as createDefaultDeps } from "./deps-
|
|
48
|
+
import { t as createDefaultDeps } from "./deps-CZ5BtLba.js";
|
|
49
49
|
import "./frontmatter-DTw-J9er.js";
|
|
50
50
|
import "./skills-CzDvK09q.js";
|
|
51
51
|
import "./skills-remote-CM9uNuu4.js";
|
|
@@ -2,7 +2,7 @@ import { Sa as defaultRuntime, Vi as logWarn } from "./agent-scope-VtywltNx.js";
|
|
|
2
2
|
import "./github-copilot-token-CNsqwfnE.js";
|
|
3
3
|
import "./send-BIYMEcFp.js";
|
|
4
4
|
import "./send-vYtmO4dA.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-DEzQtNcl.js";
|
|
6
6
|
import "./reply-prefix-bCs4xRE_.js";
|
|
7
7
|
import "./diagnostic-BkUPEf9c.js";
|
|
8
8
|
import "./diagnostic-session-state-CL_QxyRg.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "./github-copilot-token-Dy7Y_jbI.js";
|
|
2
2
|
import { la as logWarn, qo as defaultRuntime } from "./paths-tN5PnNK1.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-DPKqQb8Y.js";
|
|
4
4
|
import "./send-DwNxlwDd.js";
|
|
5
5
|
import "./send-TMsshhGX.js";
|
|
6
6
|
import "./skill-commands-Bp7DhFz2.js";
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import { Ui as logWarn, wa as defaultRuntime } from "./agent-scope-
|
|
2
|
-
import "./github-copilot-token-
|
|
3
|
-
import "./send-
|
|
4
|
-
import "./send-
|
|
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-
|
|
6
|
-
import "./diagnostic-
|
|
1
|
+
import { Ui as logWarn, wa as defaultRuntime } from "./agent-scope-T2X-I1lP.js";
|
|
2
|
+
import "./github-copilot-token-eyrRGmGp.js";
|
|
3
|
+
import "./send-M0lHXvC5.js";
|
|
4
|
+
import "./send-D63evlEI.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-B6jLpS4e.js";
|
|
6
|
+
import "./diagnostic-PXNTTbiu.js";
|
|
7
7
|
import "./diagnostic-session-state-CexmAKza.js";
|
|
8
|
-
import "./send-
|
|
9
|
-
import "./media-
|
|
10
|
-
import "./pi-model-discovery-
|
|
11
|
-
import "./paths-
|
|
8
|
+
import "./send-B8seeqjd.js";
|
|
9
|
+
import "./media-KeWZMCmf.js";
|
|
10
|
+
import "./pi-model-discovery-B1-QPAbn.js";
|
|
11
|
+
import "./paths-WauZ9inL.js";
|
|
12
12
|
import "./ssrf-DYsl9qoS.js";
|
|
13
|
-
import "./reply-prefix-
|
|
14
|
-
import "./path-alias-guards-
|
|
15
|
-
import "./fs-safe
|
|
16
|
-
import "./skill-commands-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./markdown-tables-
|
|
19
|
-
import "./send-
|
|
20
|
-
import "./fetch-guard-
|
|
21
|
-
import "./outbound-attachment-
|
|
22
|
-
import "./fetch-
|
|
23
|
-
import "./memory-search-
|
|
24
|
-
import "./manager-
|
|
25
|
-
import "./query-expansion-
|
|
26
|
-
import "./target-errors-
|
|
13
|
+
import "./reply-prefix-BM90m-1s.js";
|
|
14
|
+
import "./path-alias-guards-BVcGMct5.js";
|
|
15
|
+
import "./fs-safe-CkRcL-Cg.js";
|
|
16
|
+
import "./skill-commands-D_QLBtje.js";
|
|
17
|
+
import "./chunk-Q3WlKwcl.js";
|
|
18
|
+
import "./markdown-tables-QOHpjP76.js";
|
|
19
|
+
import "./send-CAqldeiP.js";
|
|
20
|
+
import "./fetch-guard-B-XqKRhJ.js";
|
|
21
|
+
import "./outbound-attachment-DO7UVxZm.js";
|
|
22
|
+
import "./fetch-D6yXePhv.js";
|
|
23
|
+
import "./memory-search-BVlFBMLd.js";
|
|
24
|
+
import "./manager-O_PUm8xA.js";
|
|
25
|
+
import "./query-expansion-BW1RomSn.js";
|
|
26
|
+
import "./target-errors-B-8Jf9OT.js";
|
|
27
27
|
import "./render-BRr7caFG.js";
|
|
28
|
-
import "./commands-registry-
|
|
29
|
-
import "./config-eval-
|
|
30
|
-
import "./send-
|
|
31
|
-
import "./resolve-route-
|
|
32
|
-
import "./channel-activity-
|
|
33
|
-
import "./tables-
|
|
28
|
+
import "./commands-registry-CwvSkARW.js";
|
|
29
|
+
import "./config-eval-BMGRKCyr.js";
|
|
30
|
+
import "./send-BPleg3km.js";
|
|
31
|
+
import "./resolve-route-DyTOJJs4.js";
|
|
32
|
+
import "./channel-activity-C0DEUhUn.js";
|
|
33
|
+
import "./tables-Cif1OeQ1.js";
|
|
34
34
|
import "./proxy-DkRPPIHD.js";
|
|
35
35
|
import "./config-CtKjZZ4x.js";
|
|
36
|
-
import "./replies-
|
|
36
|
+
import "./replies-lgWzXlwM.js";
|
|
37
37
|
import { randomUUID } from "node:crypto";
|
|
38
38
|
import { z } from "zod";
|
|
39
39
|
|
|
@@ -2,7 +2,7 @@ import "./paths-C9FmTW1x.js";
|
|
|
2
2
|
import "./agent-paths-BySKyq9I.js";
|
|
3
3
|
import { au as logWarn } from "./agent-scope-CLn_Ws3B.js";
|
|
4
4
|
import "./commands-registry-DfzoWf4b.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-BBDR--RC.js";
|
|
6
6
|
import { d as defaultRuntime } from "./errors-Dx3S3Nrp.js";
|
|
7
7
|
import "./send-DI5jsj-s.js";
|
|
8
8
|
import "./send-Dg2_aoK-.js";
|
|
@@ -37,7 +37,7 @@ import "./ssrf-Blf4NrHS.js";
|
|
|
37
37
|
import "./outbound-attachment-BHTb_aF7.js";
|
|
38
38
|
import "./fetch-BJWQWfdf.js";
|
|
39
39
|
import "./delivery-queue-9lp1uujZ.js";
|
|
40
|
-
import { t as createDefaultDeps } from "./deps-
|
|
40
|
+
import { t as createDefaultDeps } from "./deps-CmbKRFX-.js";
|
|
41
41
|
import "./memory-e9aOXNx1.js";
|
|
42
42
|
import "./memory-search-B8y2GTeB.js";
|
|
43
43
|
import "./manager-DI2w66Ae.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ds as resolveConfigDir } from "./agent-scope-
|
|
2
|
-
import { _ as extensionForMime, g as detectMime, n as loadWebMedia } from "./media-
|
|
1
|
+
import { ds as resolveConfigDir } from "./agent-scope-T2X-I1lP.js";
|
|
2
|
+
import { _ as extensionForMime, g as detectMime, n as loadWebMedia } from "./media-KeWZMCmf.js";
|
|
3
3
|
import fs from "node:fs/promises";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import crypto from "node:crypto";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { Gt as loadConfig, Ms as getChildLogger, as as escapeRegExp, k as createSubsystemLogger, ys as toWhatsappJid } from "./agent-scope-
|
|
2
|
+
import { Gt as loadConfig, Ms as getChildLogger, as as escapeRegExp, k as createSubsystemLogger, ys as toWhatsappJid } from "./agent-scope-T2X-I1lP.js";
|
|
3
3
|
import { n as generateSecureUuid } from "./secure-random-CSsVRTTy.js";
|
|
4
4
|
import { t as redactIdentifier } from "./redact-identifier-Cy6Tnhkn.js";
|
|
5
|
-
import { n as loadWebMedia } from "./media-
|
|
6
|
-
import { n as resolveMarkdownTableMode } from "./markdown-tables-
|
|
5
|
+
import { n as loadWebMedia } from "./media-KeWZMCmf.js";
|
|
6
|
+
import { n as resolveMarkdownTableMode } from "./markdown-tables-QOHpjP76.js";
|
|
7
7
|
import { n as normalizePollInput } from "./polls-CYTwXmA1.js";
|
|
8
|
-
import { t as convertMarkdownTables } from "./tables-
|
|
9
|
-
import { n as requireActiveWebListener } from "./active-listener-
|
|
10
|
-
import { n as formatError } from "./session-
|
|
8
|
+
import { t as convertMarkdownTables } from "./tables-Cif1OeQ1.js";
|
|
9
|
+
import { n as requireActiveWebListener } from "./active-listener-CNrLAfOg.js";
|
|
10
|
+
import { n as formatError } from "./session-Cvg_ryor.js";
|
|
11
11
|
|
|
12
12
|
//#region src/markdown/whatsapp.ts
|
|
13
13
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Cd as isTruthyEnvValue, Nu as listChannelPlugins, jf as CHAT_CHANNEL_ORDER } from "./agent-scope-CLn_Ws3B.js";
|
|
2
2
|
import { c as listChannelPluginCatalogEntries } from "./dangerous-name-matching-B2YH8EDF.js";
|
|
3
|
-
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-
|
|
3
|
+
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-DCy0l8-h.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-Dlz8aQHP.js";
|
|
2
2
|
import { d as listChannelPluginCatalogEntries } from "./dangerous-name-matching-ob0tR02Y.js";
|
|
3
|
-
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-
|
|
3
|
+
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-BIMCuigY.js";
|
|
4
4
|
|
|
5
5
|
//#region src/cli/channel-options.ts
|
|
6
6
|
function dedupe(values) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Di as BOUNDARY_PATH_ALIAS_POLICIES, Oi as resolveBoundaryPath, Wi as isNotFoundPathError } from "./agent-scope-
|
|
1
|
+
import { Di as BOUNDARY_PATH_ALIAS_POLICIES, Oi as resolveBoundaryPath, Wi as isNotFoundPathError } from "./agent-scope-T2X-I1lP.js";
|
|
2
2
|
import fs from "node:fs/promises";
|
|
3
3
|
import os from "node:os";
|
|
4
4
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Fs as resolvePreferredFasedAgentTmpDir, Gi as isPathInside, Gt as loadConfig, Ni as isErrno, Wi as isNotFoundPathError, es as CONFIG_DIR, k as createSubsystemLogger } from "./agent-scope-
|
|
1
|
+
import { Fs as resolvePreferredFasedAgentTmpDir, Gi as isPathInside, Gt as loadConfig, Ni as isErrno, Wi as isNotFoundPathError, es as CONFIG_DIR, k as createSubsystemLogger } from "./agent-scope-T2X-I1lP.js";
|
|
2
2
|
import { a as resolvePinnedHostnameWithPolicy, c as isLoopbackIpAddress, l as normalizeIpAddress, s as isIpInCidr } from "./ssrf-DYsl9qoS.js";
|
|
3
|
-
import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe
|
|
3
|
+
import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-CkRcL-Cg.js";
|
|
4
4
|
import fs from "node:fs/promises";
|
|
5
5
|
import os from "node:os";
|
|
6
6
|
import path from "node:path";
|
|
7
|
-
import
|
|
7
|
+
import syncFs from "node:fs";
|
|
8
8
|
import { createHmac } from "node:crypto";
|
|
9
9
|
import { execFileSync, spawn } from "node:child_process";
|
|
10
10
|
import { createServer } from "node:http";
|
|
@@ -1140,7 +1140,7 @@ async function snapshotAria(opts) {
|
|
|
1140
1140
|
const LSOF_CANDIDATES = process.platform === "darwin" ? ["/usr/sbin/lsof", "/usr/bin/lsof"] : ["/usr/bin/lsof", "/usr/sbin/lsof"];
|
|
1141
1141
|
function resolveLsofCommandSync() {
|
|
1142
1142
|
for (const candidate of LSOF_CANDIDATES) try {
|
|
1143
|
-
|
|
1143
|
+
syncFs.accessSync(candidate, syncFs.constants.X_OK);
|
|
1144
1144
|
return candidate;
|
|
1145
1145
|
} catch {}
|
|
1146
1146
|
return "lsof";
|
|
@@ -1255,7 +1255,7 @@ const CHROMIUM_EXE_NAMES = new Set([
|
|
|
1255
1255
|
]);
|
|
1256
1256
|
function exists$1(filePath) {
|
|
1257
1257
|
try {
|
|
1258
|
-
return
|
|
1258
|
+
return syncFs.existsSync(filePath);
|
|
1259
1259
|
} catch {
|
|
1260
1260
|
return false;
|
|
1261
1261
|
}
|
|
@@ -1398,7 +1398,7 @@ function findDesktopFilePath(desktopId) {
|
|
|
1398
1398
|
}
|
|
1399
1399
|
function readDesktopExecLine(desktopPath) {
|
|
1400
1400
|
try {
|
|
1401
|
-
const lines =
|
|
1401
|
+
const lines = syncFs.readFileSync(desktopPath, "utf8").split(/\r?\n/);
|
|
1402
1402
|
for (const line of lines) if (line.startsWith("Exec=")) return line.slice(5).trim();
|
|
1403
1403
|
} catch {}
|
|
1404
1404
|
return null;
|
|
@@ -1658,8 +1658,8 @@ function decoratedMarkerPath(userDataDir) {
|
|
|
1658
1658
|
}
|
|
1659
1659
|
function safeReadJson(filePath) {
|
|
1660
1660
|
try {
|
|
1661
|
-
if (!
|
|
1662
|
-
const raw =
|
|
1661
|
+
if (!syncFs.existsSync(filePath)) return null;
|
|
1662
|
+
const raw = syncFs.readFileSync(filePath, "utf-8");
|
|
1663
1663
|
const parsed = JSON.parse(raw);
|
|
1664
1664
|
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) return null;
|
|
1665
1665
|
return parsed;
|
|
@@ -1668,8 +1668,8 @@ function safeReadJson(filePath) {
|
|
|
1668
1668
|
}
|
|
1669
1669
|
}
|
|
1670
1670
|
function safeWriteJson(filePath, data) {
|
|
1671
|
-
|
|
1672
|
-
|
|
1671
|
+
syncFs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
1672
|
+
syncFs.writeFileSync(filePath, JSON.stringify(data, null, 2));
|
|
1673
1673
|
}
|
|
1674
1674
|
function setDeep(obj, keys, value) {
|
|
1675
1675
|
let node = obj;
|
|
@@ -1796,7 +1796,7 @@ function decorateFasedAgentProfile(userDataDir, opts) {
|
|
|
1796
1796
|
}
|
|
1797
1797
|
safeWriteJson(preferencesPath, prefs);
|
|
1798
1798
|
try {
|
|
1799
|
-
|
|
1799
|
+
syncFs.writeFileSync(decoratedMarkerPath(userDataDir), `${Date.now()}\n`, "utf-8");
|
|
1800
1800
|
} catch {}
|
|
1801
1801
|
}
|
|
1802
1802
|
function ensureProfileCleanExit(userDataDir) {
|
|
@@ -1812,7 +1812,7 @@ function ensureProfileCleanExit(userDataDir) {
|
|
|
1812
1812
|
const log = createSubsystemLogger("browser").child("chrome");
|
|
1813
1813
|
function exists(filePath) {
|
|
1814
1814
|
try {
|
|
1815
|
-
return
|
|
1815
|
+
return syncFs.existsSync(filePath);
|
|
1816
1816
|
} catch {
|
|
1817
1817
|
return false;
|
|
1818
1818
|
}
|
|
@@ -1892,7 +1892,7 @@ async function launchFasedAgentChrome(resolved, profile) {
|
|
|
1892
1892
|
const exe = resolveBrowserExecutable(resolved);
|
|
1893
1893
|
if (!exe) throw new Error("No supported browser found (Chrome/Brave/Edge/Chromium on macOS, Linux, or Windows).");
|
|
1894
1894
|
const userDataDir = resolveFasedAgentUserDataDir(profile.name);
|
|
1895
|
-
|
|
1895
|
+
syncFs.mkdirSync(userDataDir, { recursive: true });
|
|
1896
1896
|
const needsDecorate = !isProfileDecorated(userDataDir, profile.name, (profile.color ?? DEFAULT_FASED_BROWSER_COLOR).toUpperCase());
|
|
1897
1897
|
const spawnOnce = () => {
|
|
1898
1898
|
const args = [
|