@fased/fased 0.1.9 → 0.1.11
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-C4jz1huI.js → agents-CMJVD0OP.js} +8 -8
- package/dist/{attachment-normalize-C-VpVpLd.js → attachment-normalize-CJ8osx0y.js} +1 -1
- package/dist/{attachment-normalize-DijgHIHy.js → attachment-normalize-Dqpm6stW.js} +1 -1
- package/dist/{audio-preflight-DLGJBu9O.js → audio-preflight-B2FUM6w4.js} +2 -2
- package/dist/{audio-preflight-oqlL2Kux.js → audio-preflight-BaItcO_S.js} +31 -31
- package/dist/{audio-preflight-CI7BIPwS.js → audio-preflight-CMBypKf2.js} +2 -2
- package/dist/{audio-preflight-U5m63Clr.js → audio-preflight-Cf6hrG6Y.js} +1 -1
- package/dist/{audio-preflight-C6Lb4XU1.js → audio-preflight-JNkJegO7.js} +1 -1
- package/dist/{audit-DwbVJt3i.js → audit-BjCVaoog.js} +1 -1
- package/dist/{audit-BCtx-_dH.js → audit-Dm9_Y9ek.js} +1 -1
- package/dist/{auth-DIBzLQ-S.js → auth-CmR3RRfx.js} +5 -5
- package/dist/{auth-choice-DOqXUqF_.js → auth-choice-C-sID0RY.js} +1 -1
- package/dist/{auth-choice-CEeiz47B.js → auth-choice-DPEogMvC.js} +1 -1
- package/dist/{auth-choice-prompt-yqlvFI-_.js → auth-choice-prompt-Cbcp3Ee2.js} +1 -1
- package/dist/{auth-choice-prompt-FJDk83bS.js → auth-choice-prompt-CzCpmXZF.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-DaircVlX.js → channel-web-BTEzRgur.js} +1 -1
- package/dist/{channel-web-CBfPvCCy.js → channel-web-DBR7OGrA.js} +1 -1
- package/dist/{channels-DgozxTBh.js → channels-DsRKZ6NL.js} +6 -6
- package/dist/{channels-BygboZOV.js → channels-FmXyntMa.js} +6 -6
- package/dist/{channels-cli-DNz7gmOI.js → channels-cli-D3X_07NV.js} +5 -5
- package/dist/{channels-cli-CY4n5HcO.js → channels-cli-DvmzEcUf.js} +5 -5
- package/dist/{chunk-BFGwq8HC.js → chunk-Q3WlKwcl.js} +1 -1
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-63C0cETT.js → cli-BvLMhUPA.js} +2 -2
- package/dist/{cli-CFgX3wef.js → cli-DMsf3uMe.js} +2 -2
- package/dist/{command-registry-DEiX9EPg.js → command-registry-DXN6Gm6U.js} +9 -9
- package/dist/{commands-registry-C7qLmjBS.js → commands-registry-CwvSkARW.js} +1 -1
- package/dist/{completion-cli-BzQetGgr.js → completion-cli-BakZ-vJj.js} +2 -2
- package/dist/{completion-cli-CRwAyWQL.js → completion-cli-is3s-YXN.js} +1 -1
- package/dist/{config-cli-CPl1vPz0.js → config-cli-CHZ9egMQ.js} +1 -1
- package/dist/{config-cli-C7vsh8Fg.js → config-cli-DTCrEIaK.js} +1 -1
- package/dist/{config-eval-CG37crOn.js → config-eval-BMGRKCyr.js} +3 -3
- package/dist/{configure-BEI_pe6B.js → configure-AXjfwCbC.js} +12 -12
- package/dist/{configure-C8lxNKpB.js → configure-t0_VefWH.js} +12 -12
- package/dist/control-ui/assets/app-wpJSg6bV.js.map +1 -1
- package/dist/{cron-cli-C7i4-Whp.js → cron-cli-BHTg4HPO.js} +2 -2
- package/dist/{cron-cli-BqD_ZSEC.js → cron-cli-DIedHCwY.js} +2 -2
- package/dist/{daemon-cli-D0AP3mOg.js → daemon-cli-DUMUVnTJ.js} +1 -1
- package/dist/{daemon-cli-DFYzYoB8.js → daemon-cli-lv-0kuHT.js} +1 -1
- package/dist/daemon-cli.js +1 -1
- package/dist/{deps-D9aJvXyD.js → deps-5PYELVCT.js} +1 -1
- package/dist/{deps-ddWLkZAO.js → deps-7Xjk7uTn.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-D_Yd_yWi.js → gateway-cli-COUUlBN5.js} +27 -27
- package/dist/{gateway-cli-BJkYYsGs.js → gateway-cli-a_LcL_Yi.js} +27 -27
- package/dist/{github-copilot-token-DYrFvncE.js → github-copilot-token-eyrRGmGp.js} +8 -8
- package/dist/{health-gyJixAyN.js → health-DQlfle1u.js} +2 -2
- package/dist/{health-DCFLGVDU.js → health-DZ82kGpi.js} +2 -2
- package/dist/{heartbeat-runner-BFUvc4Y_.js → heartbeat-runner-BDe0KJF7.js} +1 -1
- package/dist/{heartbeat-runner-Bn9N5npL.js → heartbeat-runner-C2n7G095.js} +1 -1
- package/dist/{hooks-cli-BGFJQWmK.js → hooks-cli-8GN0KlvM.js} +3 -3
- package/dist/{hooks-cli-CGj2FDai.js → hooks-cli-yMMxy-yo.js} +3 -3
- package/dist/index.js +7 -7
- package/dist/{internal-yBWuTfFC.js → internal-CtV-S2kE.js} +3 -3
- package/dist/{ipv4-CjO0_Ry3.js → ipv4-D1FYQ4Mk.js} +2 -2
- package/dist/{ipv4-CBSPFYQB.js → ipv4-DgQOUcwH.js} +2 -2
- package/dist/{lifecycle-BBNnNoX_.js → lifecycle-BxdJxsFv.js} +1 -1
- package/dist/{lifecycle-DFvIF7r0.js → lifecycle-DUQ2P6lB.js} +1 -1
- package/dist/{list.auth-overview-DySKd1cu.js → list.auth-overview-C9QoS2ou.js} +1 -1
- package/dist/{list.auth-overview-CpmtoN2D.js → list.auth-overview-CrlYcU_A.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-DfLJlqO8.js → model-catalog-D4rEoh5e.js} +9 -9
- package/dist/{models-cli-DpmciZv6.js → models-cli-C8qP0w3J.js} +5 -5
- package/dist/{models-cli-Bu09lWlb.js → models-cli-Cq7UxTbg.js} +4 -4
- package/dist/{models-BbfLyMBF.js → models-jVuLblxp.js} +4 -4
- package/dist/{node-cli-GbiqR_FY.js → node-cli-DScZRTL7.js} +2 -2
- package/dist/{node-cli-D6iG4Fev.js → node-cli-o6uY0qaP.js} +2 -2
- package/dist/{onboard-CViA2g_j.js → onboard-Ddf5Pf9K.js} +6 -6
- package/dist/{onboard-channels-BeKekf-a.js → onboard-channels-D8ENQiPK.js} +2 -2
- package/dist/{onboard-channels-gHaSwzTd.js → onboard-channels-Doc5AjLd.js} +2 -2
- package/dist/{onboard-BgU-rNfl.js → onboard-feH8VdPn.js} +6 -6
- package/dist/{onboard-search-COuzKj6_.js → onboard-search-DuxAp1aK.js} +5 -5
- package/dist/{onboard-search-DkOnHZm9.js → onboard-search-GxWu-SFZ.js} +5 -5
- package/dist/{onboarding-nabyJljA.js → onboarding-BR7OHJ2H.js} +100 -63
- package/dist/{onboarding-CowfhJUD.js → onboarding-Cxkh1WwH.js} +100 -63
- package/dist/{openresponses-http-BBydvP41.js → openresponses-http-BL1pUdQf.js} +2 -2
- package/dist/{openresponses-http-D42SXipZ.js → openresponses-http-CzuT0O2I.js} +31 -31
- package/dist/{openresponses-http-C66CR36w.js → openresponses-http-DCHdi7mF.js} +2 -2
- package/dist/{openresponses-http-CdO4hFg_.js → openresponses-http-DQ3c6n1-.js} +1 -1
- package/dist/{openresponses-http-One5KNo8.js → openresponses-http-MJ14c-46.js} +1 -1
- 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-82dOtJ5b.js → parent-default-help-BKBeFc1_.js} +1 -1
- package/dist/{parent-default-help-iR__S_d8.js → parent-default-help-BRMZI4YX.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-C2qpRqKS.js} +22 -22
- package/dist/{pi-embedded-DLEbV2ey.js → pi-embedded-Bqi9f0et.js} +5 -5
- package/dist/{pi-embedded-BqhMzKsb.js → pi-embedded-D2PqvAO_.js} +239 -239
- 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-DgLnDYKc.js → plugin-registry-CmfUTKxt.js} +1 -1
- package/dist/{plugin-registry-DgnprUWu.js → plugin-registry-VukRFBIJ.js} +1 -1
- package/dist/plugin-sdk/{active-listener-C5ltqLGu.js → active-listener-DoYouR42.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-B3yRlgpY.js → audio-preflight-CVzfTzWu.js} +29 -29
- package/dist/plugin-sdk/{audio-preflight-bl33qm06.js → audio-preflight-CfNG6Wtw.js} +1 -1
- package/dist/plugin-sdk/{channel-activity-C1o4f6CQ.js → channel-activity-DO70gTOL.js} +1 -1
- package/dist/plugin-sdk/channel-plugin-common.js +1 -1
- package/dist/plugin-sdk/{channel-web-BmhttJUt.js → channel-web-DksUuYJT.js} +14 -14
- package/dist/plugin-sdk/{chunk-CLhP_PY2.js → chunk-RXEaIS7Q.js} +1 -1
- package/dist/plugin-sdk/command-status.js +1 -1
- package/dist/plugin-sdk/{commands-registry-rxhYCn3h.js → commands-registry-Cc-MsC0s.js} +1 -1
- package/dist/plugin-sdk/{diagnostic-B18Fb_x_.js → diagnostic-B49XKTb2.js} +1 -1
- package/dist/plugin-sdk/{fetch-IDUrNG4h.js → fetch-5yC4s4HB.js} +1 -1
- package/dist/plugin-sdk/{fetch-guard-CNvu0czC.js → fetch-guard-D-xE9VSj.js} +1 -1
- package/dist/plugin-sdk/{filesystem-manager-BeVVhJWO.js → filesystem-manager-CJboYM0S.js} +3 -3
- package/dist/plugin-sdk/{fs-safe-DQ3_54XI.js → fs-safe-UcucKJic.js} +2 -2
- package/dist/plugin-sdk/index.js +34 -34
- package/dist/plugin-sdk/{internal-B5WwMXvo.js → internal-BPIA30Uo.js} +1 -1
- package/dist/plugin-sdk/{ir-wu6kjYKs.js → ir-DChJP1Kb.js} +4 -4
- package/dist/plugin-sdk/{login-D4XFYPCP.js → login-Blc_5Mfx.js} +2 -2
- package/dist/plugin-sdk/{login-qr-B9DNJMzT.js → login-qr-BQz8yyAp.js} +2 -2
- package/dist/plugin-sdk/{manager-DosJYKNm.js → manager-E2u7eTdN.js} +5 -5
- package/dist/plugin-sdk/{markdown-tables-BPDFC99a.js → markdown-tables-nBLwWu-q.js} +1 -1
- package/dist/plugin-sdk/{memory-search-BRc1w0pH.js → memory-search-BMfxsZst.js} +1 -1
- package/dist/plugin-sdk/{openresponses-http-BkfMH5vT.js → openresponses-http-DFcst5ak.js} +29 -29
- package/dist/plugin-sdk/{openresponses-http-DVsmkLyj.js → openresponses-http-G9zNQzxR.js} +1 -1
- package/dist/plugin-sdk/{outbound-DPWNpSQ2.js → outbound-D3S8AyO5.js} +6 -6
- package/dist/plugin-sdk/{outbound-attachment-sc88JFtf.js → outbound-attachment-Jnv1CNZB.js} +2 -2
- package/dist/plugin-sdk/{path-alias-guards-DVDPpKaI.js → path-alias-guards-B4FeK1hV.js} +1 -1
- package/dist/plugin-sdk/{paths-DPJkB1Zo.js → paths-DfSR5y6m.js} +2 -2
- package/dist/plugin-sdk/{pi-model-discovery-Bt88hotH.js → pi-model-discovery-CPfojvUt.js} +1 -1
- package/dist/plugin-sdk/{pi-model-discovery-runtime-C_BkP4_p.js → pi-model-discovery-runtime-BtVqhePh.js} +2 -2
- package/dist/plugin-sdk/{pi-model-discovery-runtime-Cv_H-NDs.js → pi-model-discovery-runtime-CddkbYKA.js} +1 -1
- package/dist/plugin-sdk/{pw-ai-z7u9z0Gl.js → pw-ai-Cy5GL4BO.js} +4 -4
- package/dist/plugin-sdk/{qmd-manager-CR7ZrE4D.js → qmd-manager-DTLLD9QF.js} +4 -4
- package/dist/plugin-sdk/{qmd-scope-D5pfYpTx.js → qmd-scope-0JoQj00s.js} +1 -1
- package/dist/plugin-sdk/{query-expansion-DMIckuk2.js → query-expansion-bWgC9vRe.js} +2 -2
- package/dist/plugin-sdk/{registry-Dpq_OloZ.js → registry-BhjWgT6A.js} +8 -8
- package/dist/plugin-sdk/{replies-ChLqx77a.js → replies-BbDYqvSQ.js} +2 -2
- package/dist/plugin-sdk/{reply-ceu7kXX1.js → reply-DvuHwHUJ.js} +67 -67
- package/dist/plugin-sdk/{reply-prefix-BMlximgi.js → reply-prefix-Zqi6lY5T.js} +1 -1
- package/dist/plugin-sdk/{resolve-outbound-target-CzHPZvQ9.js → resolve-outbound-target-B8kZ51TY.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-DlUpOg3_.js → resolve-route-DR2HJZkT.js} +1 -1
- package/dist/plugin-sdk/{runtime-x71O5s-N.js → runtime-45bZMjLH.js} +8 -8
- package/dist/plugin-sdk/{send-DY9n8pqC.js → send-BWTZZs_g.js} +7 -7
- package/dist/plugin-sdk/{send-DBVp3j7m.js → send-BtnKV_Vt.js} +5 -5
- package/dist/plugin-sdk/{send-DEQVHEZ4.js → send-DES1Q84z.js} +5 -5
- package/dist/plugin-sdk/{send-Ba0KNbhf.js → send-WNg2lRih.js} +4 -4
- package/dist/plugin-sdk/{send-BhMMKWOk.js → send-mGgg18UE.js} +7 -7
- package/dist/plugin-sdk/{session-BsRPv-eK.js → session-CgkSjr1g.js} +1 -1
- package/dist/plugin-sdk/{skill-commands-BctYBY9Z.js → skill-commands-mVqbX-Fs.js} +5 -5
- package/dist/plugin-sdk/src/brand.d.ts +2 -2
- package/dist/plugin-sdk/{status-BcZw5R2P.js → status-6xupAoj-.js} +5 -5
- package/dist/plugin-sdk/{tables-CBeKgNEN.js → tables-BHylyCNS.js} +1 -1
- package/dist/plugin-sdk/{target-errors-B4PsZKb0.js → target-errors-Boue6hd3.js} +2 -2
- package/dist/plugin-sdk/{tool-loop-detection-XlSYI5bB.js → tool-loop-detection-BxnMJJ7B.js} +1 -1
- package/dist/plugin-sdk/{web-DE0yQyjF.js → web-Cfri_iT8.js} +1 -1
- package/dist/plugin-sdk/web-Zyzl7IW6.js +40 -0
- package/dist/plugin-sdk/{whatsapp-actions-CSxYzpeM.js → whatsapp-actions-DJ5x-Sd_.js} +12 -12
- package/dist/{plugins-cli-gUow1y1s.js → plugins-cli-Bx0H7QQU.js} +5 -5
- package/dist/{plugins-cli-Bw8rkcLm.js → plugins-cli-HReUJLnn.js} +5 -5
- package/dist/{program-D7MpzAVA.js → program-BY3EZa_c.js} +7 -7
- package/dist/{program-context-BnMmmcLR.js → program-context-MZAw4oo8.js} +24 -24
- package/dist/{prompt-select-styled-DEZExK7l.js → prompt-select-styled-BasY5XsH.js} +4 -4
- package/dist/{prompt-select-styled-CZx9cLwR.js → prompt-select-styled-DBq1-yGB.js} +4 -4
- package/dist/{pw-ai-DAn5Q5Mg.js → pw-ai-D6C45ed-.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-B9A7SDz_.js → register.agent-C7oqvzMO.js} +8 -8
- package/dist/{register.agent-DlatKWlA.js → register.agent-DPvilSbD.js} +9 -9
- package/dist/{register.configure-yNuOFQX6.js → register.configure-CmawJCq8.js} +12 -12
- package/dist/{register.configure-Tez2eNbW.js → register.configure-Jq4rlEpZ.js} +12 -12
- package/dist/{register.maintenance-BzVw1_e5.js → register.maintenance-DauG5FhL.js} +9 -9
- package/dist/{register.maintenance-Q6YI5mk9.js → register.maintenance-Db7KY5qy.js} +8 -8
- package/dist/{register.message-Cda69Xe6.js → register.message-B5itvC4t.js} +3 -3
- package/dist/{register.message-D9LYOvON.js → register.message-Cy9ynm9n.js} +3 -3
- package/dist/{register.onboard-BoLP06ui.js → register.onboard-BRtEN2AH.js} +14 -14
- package/dist/{register.onboard-D1a2rQDh.js → register.onboard-DQVkAX4S.js} +14 -14
- package/dist/{register.setup-DhppZhR2.js → register.setup-BJtgWkaG.js} +14 -14
- package/dist/{register.setup-D_qD7Gvk.js → register.setup-WqEzZMCR.js} +14 -14
- package/dist/{register.status-health-sessions-Csah3svc.js → register.status-health-sessions-CRLl-Xg2.js} +6 -6
- package/dist/{register.status-health-sessions-C0IsjCxS.js → register.status-health-sessions-CYft6R-u.js} +6 -6
- package/dist/{register.subclis-C4Dh6aQK.js → register.subclis-Di9x-uQJ.js} +16 -16
- package/dist/{replies-D0__mn7d.js → replies-lgWzXlwM.js} +2 -2
- package/dist/{reply-C3PsVpeQ.js → reply-CBhrmRrH.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-XXpwNNGn.js → run-main-BORzDxLY.js} +14 -14
- package/dist/{runtime-helper-grants-C10OJEih.js → runtime-helper-grants-Cuybmi1P.js} +1 -1
- package/dist/{runtime-helper-grants-BTCk3CzW.js → runtime-helper-grants-neC-6Mp_.js} +1 -1
- package/dist/{sandbox-cli-2MuBwFbv.js → sandbox-cli-BAfTtJI-.js} +2 -2
- package/dist/{sandbox-cli-Bft002rK.js → sandbox-cli-ZEYXtCXZ.js} +2 -2
- package/dist/{security-cli-6CmGeQ7I.js → security-cli-CFmeNE3e.js} +3 -3
- package/dist/{security-cli-DpQep_pt.js → security-cli-aO7V40WP.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-OidOCKoj.js → server-CU9N0zVA.js} +2 -2
- package/dist/{server-D62kYBqw.js → server-DtSfJaMU.js} +2 -2
- package/dist/{server-cron--g6K0O5V.js → server-cron-3feKZet8.js} +2 -2
- package/dist/{server-cron-DYKXfeLU.js → server-cron-B8nnjZ6j.js} +2 -2
- package/dist/{server-node-events-Csbl1Sw5.js → server-node-events-D4wjAoTI.js} +3 -3
- package/dist/{server-node-events-DSvH0zky.js → server-node-events-dJRsvJ1e.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-cY8_nNEN.js → status-B6xlt9hk.js} +1 -1
- package/dist/{status-DDWMOp5e.js → status-CKesh_zv.js} +4 -4
- package/dist/{status-CEqTBWFX.js → status-DsryVrZZ.js} +4 -4
- package/dist/{status-e52jwOFE.js → status-WM2U3wSq.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-K3OJBQvo.js → tui-C_15rImY.js} +1 -1
- package/dist/{tui-cli-DEHMUby1.js → tui-cli-CJ4ktGm6.js} +3 -3
- package/dist/{tui-cli-CNL0cM4e.js → tui-cli-Cf4QMwPG.js} +3 -3
- package/dist/{tui-B5xfA4bO.js → tui-m7pkF_Gw.js} +1 -1
- package/dist/{update-cli-Cr7BTqe1.js → update-cli-BdyzhH15.js} +9 -9
- package/dist/{update-cli-BqiZ9j4m.js → update-cli-CpVUWYIh.js} +10 -10
- package/dist/{update-runner-DcpjVgBR.js → update-runner-Cp2KspVC.js} +1 -1
- package/dist/{update-runner-CycjY65W.js → update-runner-polOgbQK.js} +1 -1
- package/dist/{web-ChgN9rvX.js → web-BK0Q-Mcx.js} +3 -3
- package/dist/{web-CLOmxVxX.js → web-Bd_VJKf7.js} +1 -1
- package/dist/{web-DhwWGdvc.js → web-CD6MuZp1.js} +35 -35
- package/dist/{web-D6CU81WZ.js → web-CnMZHMVF.js} +1 -1
- package/dist/{web-6MnkoZyD.js → web-CnS-eVr9.js} +3 -3
- package/dist/{web-search-providers.runtime-u6_OyUd6.js → web-search-providers.runtime-C0_Og2wh.js} +1 -1
- package/dist/{web-search-providers.runtime-D-uepqZ5.js → web-search-providers.runtime-kvogieHw.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 +6 -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 +6 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +6 -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 +6 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +6 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +6 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +6 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +3 -1
- package/scripts/run-node.mjs +294 -0
- package/scripts/start-managed.sh +1551 -0
- package/dist/pi-model-discovery-runtime-9_2G9r_K.js +0 -5
- package/dist/plugin-sdk/web-D_ze88LT.js +0 -40
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { _ as resolveStateDir, n as DEFAULT_GATEWAY_PORT, u as resolveGatewayPort } from "./paths-C9FmTW1x.js";
|
|
2
2
|
import { S as resolveUserPath, U as theme } from "./agent-paths-BySKyq9I.js";
|
|
3
3
|
import { Ga as ensureAuthProfileStore, Mn as writeConfigFile, Zr as collectConfigServiceEnvVars, d as resolveDefaultAgentId, dd as formatCliCommand, fr as ensureActiveMemoryPluginAllowlisted, kn as readConfigFileSnapshot, u as resolveAgentWorkspaceDir } from "./agent-scope-CLn_Ws3B.js";
|
|
4
|
-
import { Bt as detectBrowserOpenSupport, Ht as formatControlUiSshHint, Jt as openUrl, Lt as DEFAULT_WORKSPACE, Mo as runFederationAutoConnectOnce, Qo as findTailscaleBinary, Qt as resolveControlUiLinks, Rt as applyWizardMetadata, Vt as ensureWorkspaceAndSessions, Wt as handleOnboardingRepair, Xo as enableTailscaleFunnel, Xt as probeGatewayReachable, Yt as printWizardHeader, Zo as enableTailscaleServe, Zt as randomToken, en as summarizeExistingConfig, nn as waitForGatewayReachable, qt as normalizeGatewayTokenInput, tn as validateGatewayPasswordInput, xo as normalizeControlUiBasePath, yo as CONTROL_UI_BOOT_CHECK_PATH } from "./reply-
|
|
4
|
+
import { Bt as detectBrowserOpenSupport, Ht as formatControlUiSshHint, Jt as openUrl, Lt as DEFAULT_WORKSPACE, Mo as runFederationAutoConnectOnce, Qo as findTailscaleBinary, Qt as resolveControlUiLinks, Rt as applyWizardMetadata, Vt as ensureWorkspaceAndSessions, Wt as handleOnboardingRepair, Xo as enableTailscaleFunnel, Xt as probeGatewayReachable, Yt as printWizardHeader, Zo as enableTailscaleServe, Zt as randomToken, en as summarizeExistingConfig, nn as waitForGatewayReachable, qt as normalizeGatewayTokenInput, tn as validateGatewayPasswordInput, xo as normalizeControlUiBasePath, yo as CONTROL_UI_BOOT_CHECK_PATH } from "./reply-CBhrmRrH.js";
|
|
5
5
|
import { d as defaultRuntime, f as restoreTerminalState, s as redactSensitiveText } from "./errors-Dx3S3Nrp.js";
|
|
6
6
|
import { a as resolveSignerdBinaryPath, n as installSignerdBinary, o as restartLocalSocketSigner, r as migrateLocalSignerKeystoreToMaterialDir, t as configureWalletForOnboarding } from "./onboarding.wallet-B12p7GUZ.js";
|
|
7
7
|
import { i as resolveLocalSignerRunAsUser, n as resolveLocalSignerBackendSocketPath, o as resolveLocalSignerSocketPath, r as resolveLocalSignerMaterialRootDir, t as ensureWalletStateDir } from "./wallet-runtime-config-BlRWvEER.js";
|
|
@@ -17,14 +17,14 @@ import { a as resolveHostedOnboardingGatewayStartupMode, i as resolveGatewayStar
|
|
|
17
17
|
import { d as buildSystemdUnit, r as isSystemdUserServiceAvailable } from "./systemd-ZvgpcrfV.js";
|
|
18
18
|
import { t as resolveGatewayService } from "./service-DbZp-Ejz.js";
|
|
19
19
|
import { n as auditGatewayServiceConfig, t as SERVICE_AUDIT_CODES } from "./service-audit-B5uApPZ5.js";
|
|
20
|
-
import { a as promptRemoteGatewayConfig, n as getTailscaleMissingBinNoteLines, r as setupSkills, t as validateIPv4AddressInput, u as promptCustomApiConfig } from "./ipv4-
|
|
21
|
-
import { o as waitForHostedDashboardBrowserPath } from "./health-
|
|
22
|
-
import { n as warnIfModelConfigLooksOff, r as applyAuthChoice } from "./auth-choice-
|
|
23
|
-
import { t as promptAuthChoiceGrouped } from "./auth-choice-prompt-
|
|
20
|
+
import { a as promptRemoteGatewayConfig, n as getTailscaleMissingBinNoteLines, r as setupSkills, t as validateIPv4AddressInput, u as promptCustomApiConfig } from "./ipv4-DgQOUcwH.js";
|
|
21
|
+
import { o as waitForHostedDashboardBrowserPath } from "./health-DQlfle1u.js";
|
|
22
|
+
import { n as warnIfModelConfigLooksOff, r as applyAuthChoice } from "./auth-choice-DPEogMvC.js";
|
|
23
|
+
import { t as promptAuthChoiceGrouped } from "./auth-choice-prompt-CzCpmXZF.js";
|
|
24
24
|
import { n as logConfigUpdated } from "./logging-C8GVa7dS.js";
|
|
25
|
-
import { n as setupChannels } from "./onboard-channels-
|
|
25
|
+
import { n as setupChannels } from "./onboard-channels-Doc5AjLd.js";
|
|
26
26
|
import { t as buildWorkspaceHookStatus } from "./hooks-status-CrTowaUt.js";
|
|
27
|
-
import { t as runTui } from "./tui-
|
|
27
|
+
import { t as runTui } from "./tui-m7pkF_Gw.js";
|
|
28
28
|
import fs from "node:fs";
|
|
29
29
|
import os from "node:os";
|
|
30
30
|
import path from "node:path";
|
|
@@ -358,34 +358,61 @@ function buildOnboardingDashboardUrl(params) {
|
|
|
358
358
|
url.hash = hash ? `#${hash}` : "";
|
|
359
359
|
return url.toString();
|
|
360
360
|
}
|
|
361
|
+
function noteHeading$1(value) {
|
|
362
|
+
return theme.heading(value.toUpperCase());
|
|
363
|
+
}
|
|
364
|
+
function noteLabel(value) {
|
|
365
|
+
return theme.accentBright(value);
|
|
366
|
+
}
|
|
367
|
+
function noteInfo$1(value) {
|
|
368
|
+
return theme.info(value);
|
|
369
|
+
}
|
|
370
|
+
function noteSuccess$1(value) {
|
|
371
|
+
return theme.success(value);
|
|
372
|
+
}
|
|
373
|
+
function noteWarn$1(value) {
|
|
374
|
+
return theme.warn(value);
|
|
375
|
+
}
|
|
376
|
+
function noteMuted(value) {
|
|
377
|
+
return theme.muted(value);
|
|
378
|
+
}
|
|
379
|
+
function noteCommand$1(value) {
|
|
380
|
+
return theme.command(value);
|
|
381
|
+
}
|
|
382
|
+
function noteBullet$1(value) {
|
|
383
|
+
return `- ${value}`;
|
|
384
|
+
}
|
|
385
|
+
function formatFasedNetworkAutoConnectSummary(messages) {
|
|
386
|
+
return [noteHeading$1("Connection confirmed"), ...messages.map((message) => noteBullet$1(noteSuccess$1(message)))].join("\n");
|
|
387
|
+
}
|
|
361
388
|
function formatStrictRemoteAccessDetails(params) {
|
|
362
389
|
const sshTarget = params.tailscaleNodeName || params.tailscaleIpv4 || "(tailscale-node)";
|
|
363
390
|
const tailscaleIpv4 = params.tailscaleIpv4?.trim();
|
|
364
391
|
const hasIpFallback = Boolean(tailscaleIpv4 && tailscaleIpv4 !== sshTarget);
|
|
365
392
|
return [
|
|
366
|
-
"Use both access paths after hosted setup:",
|
|
393
|
+
noteInfo$1("Use both access paths after hosted setup:"),
|
|
367
394
|
"",
|
|
368
|
-
"1.
|
|
369
|
-
"
|
|
370
|
-
` ${params.dashboardUrl}`,
|
|
395
|
+
noteHeading$1("1. Web dashboard"),
|
|
396
|
+
` ${noteInfo$1("Open this on your own computer after signing into the same Tailscale account:")}`,
|
|
397
|
+
` ${noteCommand$1(params.dashboardUrl)}`,
|
|
371
398
|
"",
|
|
372
|
-
"2. SSH
|
|
373
|
-
"
|
|
374
|
-
` ssh ${params.tailscaleSshUser}@${sshTarget}`,
|
|
375
|
-
hasIpFallback ? ` If hostname DNS fails but Tailscale IP ping works, use: ssh ${params.tailscaleSshUser}@${tailscaleIpv4}` : void 0,
|
|
376
|
-
"
|
|
399
|
+
noteHeading$1("2. SSH terminal"),
|
|
400
|
+
` ${noteInfo$1("Use this for CLI commands, updates, logs, and repairs over Tailscale:")}`,
|
|
401
|
+
` ${noteCommand$1(`ssh ${params.tailscaleSshUser}@${sshTarget}`)}`,
|
|
402
|
+
hasIpFallback ? ` ${noteWarn$1("If hostname DNS fails but Tailscale IP ping works, use:")} ${noteCommand$1(`ssh ${params.tailscaleSshUser}@${tailscaleIpv4}`)}` : void 0,
|
|
403
|
+
` ${noteInfo$1("The app user shell opens in the Fased repo directory.")}`,
|
|
377
404
|
"",
|
|
378
|
-
"
|
|
379
|
-
"
|
|
380
|
-
` ssh -N -L ${params.port}:127.0.0.1:${params.port} ${params.tailscaleSshUser}@${sshTarget}`,
|
|
381
|
-
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,
|
|
382
|
-
"
|
|
383
|
-
` ${params.tunnelUrl}`,
|
|
384
|
-
hasIpFallback ? "
|
|
405
|
+
noteHeading$1("Advanced fallback"),
|
|
406
|
+
` ${noteInfo$1("If the Tailscale web URL is unavailable, run this on your local computer and leave it open:")}`,
|
|
407
|
+
` ${noteCommand$1(`ssh -N -L ${params.port}:127.0.0.1:${params.port} ${params.tailscaleSshUser}@${sshTarget}`)}`,
|
|
408
|
+
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,
|
|
409
|
+
` ${noteInfo$1("Then open:")}`,
|
|
410
|
+
` ${noteCommand$1(params.tunnelUrl)}`,
|
|
411
|
+
hasIpFallback ? ` ${noteWarn$1("Note: another VPN can break Tailscale MagicDNS while raw 100.x Tailscale IP access still works.")}` : void 0,
|
|
385
412
|
"",
|
|
386
|
-
"
|
|
387
|
-
"
|
|
388
|
-
` ${params.gatewayToken || "(token not available)"}`
|
|
413
|
+
noteHeading$1("Gateway token backup"),
|
|
414
|
+
` ${noteWarn$1("Only paste this if the browser asks for a token:")}`,
|
|
415
|
+
` ${noteCommand$1(params.gatewayToken || "(token not available)")}`
|
|
389
416
|
].filter((line) => line !== void 0).join("\n");
|
|
390
417
|
}
|
|
391
418
|
function formatLocalDashboardReady(params) {
|
|
@@ -1670,11 +1697,12 @@ async function finalizeOnboardingWizard(options) {
|
|
|
1670
1697
|
}
|
|
1671
1698
|
}
|
|
1672
1699
|
if (strictVps) await prompter.note([
|
|
1673
|
-
"
|
|
1700
|
+
noteHeading$1("Private access"),
|
|
1701
|
+
noteInfo$1("Hosted runtime is private by default."),
|
|
1674
1702
|
"",
|
|
1675
|
-
"Web dashboard: Tailscale HTTPS URL
|
|
1676
|
-
"SSH terminal: ssh app@YOUR_VPS_TAILSCALE_NAME over Tailscale
|
|
1677
|
-
"Public SSH and Gateway ports remain blocked."
|
|
1703
|
+
`${noteLabel("Web dashboard:")} ${noteCommand$1("Tailscale HTTPS URL")}`,
|
|
1704
|
+
`${noteLabel("SSH terminal:")} ${noteCommand$1("ssh app@YOUR_VPS_TAILSCALE_NAME")} ${noteInfo$1("over Tailscale")}`,
|
|
1705
|
+
noteBullet$1(noteWarn$1("Public SSH and Gateway ports remain blocked."))
|
|
1678
1706
|
].join("\n"), "Hosting access");
|
|
1679
1707
|
if ((strictVps || expectedGatewayStartupMode === "managed-up") && !autoStartEnabled && !opts.allowInsecure) throw new Error(formatPersistentRuntimeServiceFailure({
|
|
1680
1708
|
strictVps,
|
|
@@ -2115,12 +2143,13 @@ async function finalizeOnboardingWizard(options) {
|
|
|
2115
2143
|
if (!warmup.ok) {
|
|
2116
2144
|
const detail = warmup.detail ?? "not reachable yet";
|
|
2117
2145
|
await prompter.note([
|
|
2118
|
-
"
|
|
2119
|
-
|
|
2146
|
+
noteHeading$1("Tailscale HTTPS"),
|
|
2147
|
+
noteWarn$1("The Tailscale HTTPS dashboard URL is still warming from this VPS."),
|
|
2148
|
+
`${noteMuted("Detail:")} ${noteInfo$1(detail)}`,
|
|
2120
2149
|
"",
|
|
2121
|
-
"Setup will continue if the local Gateway listener is healthy.",
|
|
2122
|
-
"Open the printed Tailscale URL from your own Tailscale-connected computer.",
|
|
2123
|
-
"If another VPN breaks MagicDNS, turn it off or use the 100.x Tailscale IP fallback."
|
|
2150
|
+
noteBullet$1(noteSuccess$1("Setup will continue if the local Gateway listener is healthy.")),
|
|
2151
|
+
noteBullet$1(noteInfo$1("Open the printed Tailscale URL from your own Tailscale-connected computer.")),
|
|
2152
|
+
noteBullet$1(noteWarn$1("If another VPN breaks MagicDNS, turn it off or use the 100.x Tailscale IP fallback."))
|
|
2124
2153
|
].join("\n"), "Dashboard warmup");
|
|
2125
2154
|
return;
|
|
2126
2155
|
}
|
|
@@ -2140,12 +2169,13 @@ async function finalizeOnboardingWizard(options) {
|
|
|
2140
2169
|
pollMs: 1500
|
|
2141
2170
|
});
|
|
2142
2171
|
if (!wsWarmup.ok) await prompter.note([
|
|
2143
|
-
"
|
|
2144
|
-
|
|
2145
|
-
|
|
2172
|
+
noteHeading$1("Gateway connection"),
|
|
2173
|
+
noteWarn$1("The Tailscale dashboard page is reachable, but the browser Gateway connection is still warming."),
|
|
2174
|
+
`${noteLabel("Gateway URL:")} ${noteCommand$1(tailscaleGatewayWsUrl)}`,
|
|
2175
|
+
`${noteMuted("Detail:")} ${noteInfo$1("stage" in wsWarmup ? `${wsWarmup.stage}: ${wsWarmup.message}` : wsWarmup.detail ?? "websocket not reachable")}`,
|
|
2146
2176
|
"",
|
|
2147
|
-
"Setup will continue if the local Gateway listener is healthy.",
|
|
2148
|
-
"Use the SSH tunnel fallback immediately, or open the Tailscale dashboard URL again shortly."
|
|
2177
|
+
noteBullet$1(noteSuccess$1("Setup will continue if the local Gateway listener is healthy.")),
|
|
2178
|
+
noteBullet$1(noteInfo$1("Use the SSH tunnel fallback immediately, or open the Tailscale dashboard URL again shortly."))
|
|
2149
2179
|
].join("\n"), "Dashboard warmup");
|
|
2150
2180
|
else hostedDashboardBrowserVerified = true;
|
|
2151
2181
|
});
|
|
@@ -2207,12 +2237,15 @@ async function finalizeOnboardingWizard(options) {
|
|
|
2207
2237
|
if (federation.enabled) {
|
|
2208
2238
|
let hostedFederationAutoConnectAttempted = false;
|
|
2209
2239
|
let hostedFederationAutoConnectReason = "";
|
|
2240
|
+
const hostedFederationAutoConnectMessages = [];
|
|
2210
2241
|
if (strictVps && !readManagedFederationTokenSummary(onboardingEnv).exists) {
|
|
2211
2242
|
hostedFederationAutoConnectAttempted = true;
|
|
2212
2243
|
hostedFederationAutoConnectReason = (await runFederationAutoConnectOnce({
|
|
2213
2244
|
env: onboardingEnv,
|
|
2214
2245
|
log: {
|
|
2215
|
-
info: (message) =>
|
|
2246
|
+
info: (message) => {
|
|
2247
|
+
hostedFederationAutoConnectMessages.push(message);
|
|
2248
|
+
},
|
|
2216
2249
|
warn: (message) => {
|
|
2217
2250
|
hostedFederationAutoConnectReason = message;
|
|
2218
2251
|
},
|
|
@@ -2231,12 +2264,13 @@ async function finalizeOnboardingWizard(options) {
|
|
|
2231
2264
|
reservations: readManagedReservationSummaries(onboardingEnv)
|
|
2232
2265
|
};
|
|
2233
2266
|
if (fedToken.exists && !persistedFederationToken) persistedFederationToken = await loadPersistedFederationToken(onboardingEnv).catch(() => null);
|
|
2267
|
+
if (strictVps && hostedFederationAutoConnectAttempted && hostedFederationAutoConnectMessages.length > 0) await prompter.note(formatFasedNetworkAutoConnectSummary(hostedFederationAutoConnectMessages), "Fased Network");
|
|
2234
2268
|
if (strictVps && hostedFederationAutoConnectAttempted && !fedToken.exists) await prompter.note([
|
|
2235
|
-
"Fased Network silent join did not finish.",
|
|
2236
|
-
hostedFederationAutoConnectReason ?
|
|
2237
|
-
reservations.length > 0 ?
|
|
2238
|
-
"Dashboard and SSH are ready over Tailscale.",
|
|
2239
|
-
"Inspect details:
|
|
2269
|
+
noteWarn$1("Fased Network silent join did not finish."),
|
|
2270
|
+
hostedFederationAutoConnectReason ? `${noteMuted("Reason:")} ${noteInfo$1(hostedFederationAutoConnectReason)}` : `${noteMuted("Reason:")} ${noteInfo$1("token was not issued before final readiness.")}`,
|
|
2271
|
+
reservations.length > 0 ? `${noteMuted("Reservation:")} ${noteCommand$1(reservations[0]?.slug ?? "")}` : void 0,
|
|
2272
|
+
noteSuccess$1("Dashboard and SSH are ready over Tailscale."),
|
|
2273
|
+
`${noteMuted("Inspect details:")} ${noteCommand$1("fased managed up --json")}`
|
|
2240
2274
|
].filter(Boolean).join("\n"), "Fased Network");
|
|
2241
2275
|
}
|
|
2242
2276
|
const operatorReadiness = describeOperatorReadinessChecklist({
|
|
@@ -2282,16 +2316,17 @@ async function finalizeOnboardingWizard(options) {
|
|
|
2282
2316
|
detail: finalGateway.detail ?? "final gateway recheck timed out"
|
|
2283
2317
|
};
|
|
2284
2318
|
await prompter.note([
|
|
2285
|
-
|
|
2286
|
-
|
|
2319
|
+
noteHeading$1("Service active"),
|
|
2320
|
+
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."),
|
|
2321
|
+
`${noteMuted("Detail:")} ${noteInfo$1(finalGateway.detail ?? "gateway not reachable yet")}`,
|
|
2287
2322
|
"",
|
|
2288
|
-
"Setup will finish and leave the Gateway service running.",
|
|
2289
|
-
"Open the printed Tailscale dashboard URL again in a few minutes.",
|
|
2290
|
-
"If MagicDNS is slow or another VPN is active, use the 100.x Tailscale IP fallback.",
|
|
2323
|
+
noteBullet$1(noteSuccess$1("Setup will finish and leave the Gateway service running.")),
|
|
2324
|
+
noteBullet$1(noteInfo$1("Open the printed Tailscale dashboard URL again in a few minutes.")),
|
|
2325
|
+
noteBullet$1(noteWarn$1("If MagicDNS is slow or another VPN is active, use the 100.x Tailscale IP fallback.")),
|
|
2291
2326
|
"",
|
|
2292
|
-
"Check from the app terminal
|
|
2293
|
-
"fased status",
|
|
2294
|
-
"fased dashboard --no-open"
|
|
2327
|
+
noteHeading$1("Check from the app terminal"),
|
|
2328
|
+
noteCommand$1("fased status"),
|
|
2329
|
+
noteCommand$1("fased dashboard --no-open")
|
|
2295
2330
|
].join("\n"), "Dashboard warmup");
|
|
2296
2331
|
return;
|
|
2297
2332
|
}
|
|
@@ -3251,9 +3286,9 @@ async function applyHostingSecurity(params) {
|
|
|
3251
3286
|
detail: "post-bootstrap hosted maintenance session; skipping host hardening bootstrap"
|
|
3252
3287
|
};
|
|
3253
3288
|
let tsAuthkey = opts.tsAuthkey?.trim() ?? "";
|
|
3254
|
-
if (!tsAuthkey) if (await prompter.confirm({
|
|
3255
|
-
message: "Use
|
|
3256
|
-
initialValue:
|
|
3289
|
+
if (!tsAuthkey) if (!await prompter.confirm({
|
|
3290
|
+
message: "Use browser login for Tailscale? (recommended)",
|
|
3291
|
+
initialValue: true
|
|
3257
3292
|
})) tsAuthkey = (typeof prompter.secret === "function" ? await prompter.secret({
|
|
3258
3293
|
message: "Paste Tailscale auth key (tskey-auth-...)",
|
|
3259
3294
|
validate: (value) => value.trim() ? void 0 : "Required"
|
|
@@ -3426,9 +3461,9 @@ async function applyHostingSecurity(params) {
|
|
|
3426
3461
|
if (!tsHealthy) {
|
|
3427
3462
|
let tsAuthkey = opts.tsAuthkey?.trim() ?? "";
|
|
3428
3463
|
if (!tsAuthkey && opts.nonInteractive !== true && prompter) {
|
|
3429
|
-
if (await prompter.confirm({
|
|
3430
|
-
message: "Use
|
|
3431
|
-
initialValue:
|
|
3464
|
+
if (!await prompter.confirm({
|
|
3465
|
+
message: "Use browser login for Tailscale? (recommended)",
|
|
3466
|
+
initialValue: true
|
|
3432
3467
|
})) tsAuthkey = (typeof prompter.secret === "function" ? await prompter.secret({
|
|
3433
3468
|
message: "Paste Tailscale auth key (tskey-auth-...)",
|
|
3434
3469
|
validate: (value) => value.trim() ? void 0 : "Required"
|
|
@@ -5187,9 +5222,11 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
|
|
|
5187
5222
|
};
|
|
5188
5223
|
if (hostSecurity.profile === "hosting" && hostSecurity.checks.length > 0) {
|
|
5189
5224
|
const lines = [
|
|
5190
|
-
"
|
|
5191
|
-
|
|
5192
|
-
hostSecurity.
|
|
5225
|
+
theme.heading("HOSTING SECURITY CHECKLIST"),
|
|
5226
|
+
"",
|
|
5227
|
+
...hostSecurity.checks.map((check) => `${check.ok ? theme.success("✓") : theme.error("✗")} ${theme.accentBright(check.name)}: ${check.ok ? theme.info(check.detail) : theme.error(check.detail)}`),
|
|
5228
|
+
"",
|
|
5229
|
+
hostSecurity.logPath ? `${theme.muted("Detailed host hardening log:")} ${theme.command(hostSecurity.logPath)}` : void 0
|
|
5193
5230
|
];
|
|
5194
5231
|
await prompter.note(lines.filter(Boolean).join("\n"), "Host security");
|
|
5195
5232
|
}
|
|
@@ -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-D4rEoh5e.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-5PYELVCT.js";
|
|
49
49
|
import "./frontmatter-DTw-J9er.js";
|
|
50
50
|
import "./skills-CzDvK09q.js";
|
|
51
51
|
import "./skills-remote-CM9uNuu4.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-D2PqvAO_.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-C2qpRqKS.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-CBhrmRrH.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-7Xjk7uTn.js";
|
|
41
41
|
import "./memory-e9aOXNx1.js";
|
|
42
42
|
import "./memory-search-B8y2GTeB.js";
|
|
43
43
|
import "./manager-DI2w66Ae.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-Bqi9f0et.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-CmR3RRfx.js";
|
|
4
4
|
import "./send-DwNxlwDd.js";
|
|
5
5
|
import "./send-TMsshhGX.js";
|
|
6
6
|
import "./skill-commands-Bp7DhFz2.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 { 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-VukRFBIJ.js";
|
|
4
4
|
|
|
5
5
|
//#region src/cli/channel-options.ts
|
|
6
6
|
function dedupe(values) {
|
|
@@ -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-CmfUTKxt.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,15 +1,15 @@
|
|
|
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";
|
|
11
11
|
import net from "node:net";
|
|
12
|
-
import WebSocket, { WebSocketServer } from "ws";
|
|
12
|
+
import WebSocket$1, { WebSocketServer } from "ws";
|
|
13
13
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
14
14
|
|
|
15
15
|
//#region src/browser/constants.ts
|
|
@@ -270,7 +270,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
270
270
|
let extensionWs = null;
|
|
271
271
|
const cdpClients = /* @__PURE__ */ new Set();
|
|
272
272
|
const connectedTargets = /* @__PURE__ */ new Map();
|
|
273
|
-
const extensionConnected = () => extensionWs?.readyState === WebSocket.OPEN;
|
|
273
|
+
const extensionConnected = () => extensionWs?.readyState === WebSocket$1.OPEN;
|
|
274
274
|
let extensionDisconnectCleanupTimer = null;
|
|
275
275
|
const extensionReconnectWaiters = /* @__PURE__ */ new Set();
|
|
276
276
|
const flushExtensionReconnectWaiters = (connected) => {
|
|
@@ -321,7 +321,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
321
321
|
let nextExtensionId = 1;
|
|
322
322
|
const sendToExtension = async (payload) => {
|
|
323
323
|
const ws = extensionWs;
|
|
324
|
-
if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
|
|
324
|
+
if (!ws || ws.readyState !== WebSocket$1.OPEN) throw new Error("Chrome extension not connected");
|
|
325
325
|
ws.send(JSON.stringify(payload));
|
|
326
326
|
return await new Promise((resolve, reject) => {
|
|
327
327
|
const timer = setTimeout(() => {
|
|
@@ -338,12 +338,12 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
338
338
|
const broadcastToCdpClients = (evt) => {
|
|
339
339
|
const msg = JSON.stringify(evt);
|
|
340
340
|
for (const ws of cdpClients) {
|
|
341
|
-
if (ws.readyState !== WebSocket.OPEN) continue;
|
|
341
|
+
if (ws.readyState !== WebSocket$1.OPEN) continue;
|
|
342
342
|
ws.send(msg);
|
|
343
343
|
}
|
|
344
344
|
};
|
|
345
345
|
const sendResponseToCdp = (ws, res) => {
|
|
346
|
-
if (ws.readyState !== WebSocket.OPEN) return;
|
|
346
|
+
if (ws.readyState !== WebSocket$1.OPEN) return;
|
|
347
347
|
ws.send(JSON.stringify(res));
|
|
348
348
|
};
|
|
349
349
|
const ensureTargetEventsForClient = (ws, mode) => {
|
|
@@ -553,7 +553,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
553
553
|
rejectUpgrade(socket, 401, "Unauthorized");
|
|
554
554
|
return;
|
|
555
555
|
}
|
|
556
|
-
if (extensionWs && extensionWs.readyState !== WebSocket.OPEN) {
|
|
556
|
+
if (extensionWs && extensionWs.readyState !== WebSocket$1.OPEN) {
|
|
557
557
|
try {
|
|
558
558
|
extensionWs.terminate();
|
|
559
559
|
} catch {}
|
|
@@ -590,7 +590,7 @@ async function ensureChromeExtensionRelayServer(opts) {
|
|
|
590
590
|
clearExtensionDisconnectCleanupTimer();
|
|
591
591
|
flushExtensionReconnectWaiters(true);
|
|
592
592
|
const ping = setInterval(() => {
|
|
593
|
-
if (ws.readyState !== WebSocket.OPEN) return;
|
|
593
|
+
if (ws.readyState !== WebSocket$1.OPEN) return;
|
|
594
594
|
ws.send(JSON.stringify({ method: "ping" }));
|
|
595
595
|
}, 5e3);
|
|
596
596
|
ws.on("message", (data) => {
|
|
@@ -932,7 +932,7 @@ async function fetchOk(url, timeoutMs = 1500, init) {
|
|
|
932
932
|
}
|
|
933
933
|
async function withCdpSocket(wsUrl, fn, opts) {
|
|
934
934
|
const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
|
|
935
|
-
const ws = new WebSocket(wsUrl, {
|
|
935
|
+
const ws = new WebSocket$1(wsUrl, {
|
|
936
936
|
handshakeTimeout: typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : 5e3,
|
|
937
937
|
...Object.keys(headers).length ? { headers } : {}
|
|
938
938
|
});
|
|
@@ -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
|
}
|
|
@@ -1858,7 +1858,7 @@ async function getChromeWebSocketUrl(cdpUrl, timeoutMs = 500) {
|
|
|
1858
1858
|
async function canOpenWebSocket(wsUrl, timeoutMs = 800) {
|
|
1859
1859
|
return await new Promise((resolve) => {
|
|
1860
1860
|
const headers = getHeadersWithAuth(wsUrl);
|
|
1861
|
-
const ws = new WebSocket(wsUrl, {
|
|
1861
|
+
const ws = new WebSocket$1(wsUrl, {
|
|
1862
1862
|
handshakeTimeout: timeoutMs,
|
|
1863
1863
|
...Object.keys(headers).length ? { headers } : {}
|
|
1864
1864
|
});
|
|
@@ -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 = [
|