@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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fased/fased",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11",
|
|
4
4
|
"description": "Fased Agent self-hosted AI gateway with channels, tools, plugins, and operator modules",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai-agent",
|
|
@@ -38,6 +38,8 @@
|
|
|
38
38
|
"docs/",
|
|
39
39
|
"extensions/",
|
|
40
40
|
"scripts/fased-launcher-runtime.mjs",
|
|
41
|
+
"scripts/run-node.mjs",
|
|
42
|
+
"scripts/start-managed.sh",
|
|
41
43
|
"skills/"
|
|
42
44
|
],
|
|
43
45
|
"type": "module",
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { spawn, spawnSync } from "node:child_process";
|
|
3
|
+
import fs from "node:fs";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import process from "node:process";
|
|
6
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
7
|
+
|
|
8
|
+
const compiler = "tsdown";
|
|
9
|
+
const compilerArgs = ["exec", compiler, "--no-clean"];
|
|
10
|
+
|
|
11
|
+
export const runNodeWatchedPaths = ["src", "extensions", "tsconfig.json", "package.json"];
|
|
12
|
+
const scriptDir = path.dirname(fileURLToPath(import.meta.url));
|
|
13
|
+
const defaultRunnerCwd = path.resolve(scriptDir, "..");
|
|
14
|
+
|
|
15
|
+
const statMtime = (filePath, fsImpl = fs) => {
|
|
16
|
+
try {
|
|
17
|
+
return fsImpl.statSync(filePath).mtimeMs;
|
|
18
|
+
} catch {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const isExcludedSource = (filePath, srcRoot) => {
|
|
24
|
+
const relativePath = path.relative(srcRoot, filePath);
|
|
25
|
+
if (relativePath.startsWith("..")) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
return (
|
|
29
|
+
relativePath.endsWith(".test.ts") ||
|
|
30
|
+
relativePath.endsWith(".test.tsx") ||
|
|
31
|
+
relativePath.endsWith(`test-helpers.ts`)
|
|
32
|
+
);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const findLatestMtime = (dirPath, shouldSkip, deps) => {
|
|
36
|
+
let latest = null;
|
|
37
|
+
const queue = [dirPath];
|
|
38
|
+
while (queue.length > 0) {
|
|
39
|
+
const current = queue.pop();
|
|
40
|
+
if (!current) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
let entries = [];
|
|
44
|
+
try {
|
|
45
|
+
entries = deps.fs.readdirSync(current, { withFileTypes: true });
|
|
46
|
+
} catch {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
for (const entry of entries) {
|
|
50
|
+
const fullPath = path.join(current, entry.name);
|
|
51
|
+
if (entry.isDirectory()) {
|
|
52
|
+
queue.push(fullPath);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (!entry.isFile()) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (shouldSkip?.(fullPath)) {
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
const mtime = statMtime(fullPath, deps.fs);
|
|
62
|
+
if (mtime == null) {
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
if (latest == null || mtime > latest) {
|
|
66
|
+
latest = mtime;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return latest;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const runGit = (gitArgs, deps) => {
|
|
74
|
+
try {
|
|
75
|
+
const result = deps.spawnSync("git", gitArgs, {
|
|
76
|
+
cwd: deps.cwd,
|
|
77
|
+
encoding: "utf8",
|
|
78
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
79
|
+
});
|
|
80
|
+
if (result.status !== 0) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
return (result.stdout ?? "").trim();
|
|
84
|
+
} catch {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
const resolveGitHead = (deps) => {
|
|
90
|
+
const head = runGit(["rev-parse", "HEAD"], deps);
|
|
91
|
+
return head || null;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const hasDirtySourceTree = (deps) => {
|
|
95
|
+
const output = runGit(
|
|
96
|
+
["status", "--porcelain", "--untracked-files=normal", "--", ...runNodeWatchedPaths],
|
|
97
|
+
deps,
|
|
98
|
+
);
|
|
99
|
+
if (output === null) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
return output.length > 0;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
const readBuildStamp = (deps) => {
|
|
106
|
+
const mtime = statMtime(deps.buildStampPath, deps.fs);
|
|
107
|
+
if (mtime == null) {
|
|
108
|
+
return { mtime: null, head: null };
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
const raw = deps.fs.readFileSync(deps.buildStampPath, "utf8").trim();
|
|
112
|
+
if (!raw.startsWith("{")) {
|
|
113
|
+
return { mtime, head: null };
|
|
114
|
+
}
|
|
115
|
+
const parsed = JSON.parse(raw);
|
|
116
|
+
const head = typeof parsed?.head === "string" && parsed.head.trim() ? parsed.head.trim() : null;
|
|
117
|
+
return { mtime, head };
|
|
118
|
+
} catch {
|
|
119
|
+
return { mtime, head: null };
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
const findLatestWatchedMtime = (deps) => {
|
|
124
|
+
let latest = null;
|
|
125
|
+
for (const watchedPath of runNodeWatchedPaths) {
|
|
126
|
+
const fullPath = path.join(deps.cwd, watchedPath);
|
|
127
|
+
let stat = null;
|
|
128
|
+
try {
|
|
129
|
+
stat = deps.fs.statSync(fullPath);
|
|
130
|
+
} catch {
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
const mtime = stat.isDirectory()
|
|
134
|
+
? findLatestMtime(fullPath, (candidate) => isExcludedSource(candidate, fullPath), deps)
|
|
135
|
+
: stat.mtimeMs;
|
|
136
|
+
if (mtime == null) {
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (latest == null || mtime > latest) {
|
|
140
|
+
latest = mtime;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return latest;
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
const hasWatchedMtimeChanged = (stampMtime, deps) => {
|
|
147
|
+
const watchedMtime = findLatestWatchedMtime(deps);
|
|
148
|
+
return watchedMtime != null && watchedMtime > stampMtime;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
const shouldBuild = (deps) => {
|
|
152
|
+
if (deps.env.FASED_SKIP_BUILD === "1") {
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
if (deps.env.FASED_FORCE_BUILD === "1") {
|
|
156
|
+
return true;
|
|
157
|
+
}
|
|
158
|
+
const stamp = readBuildStamp(deps);
|
|
159
|
+
if (stamp.mtime == null) {
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
if (statMtime(deps.distEntry, deps.fs) == null) {
|
|
163
|
+
return true;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
for (const filePath of deps.configFiles) {
|
|
167
|
+
const mtime = statMtime(filePath, deps.fs);
|
|
168
|
+
if (mtime != null && mtime > stamp.mtime) {
|
|
169
|
+
return true;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
const currentHead = resolveGitHead(deps);
|
|
174
|
+
if (currentHead && !stamp.head) {
|
|
175
|
+
return hasWatchedMtimeChanged(stamp.mtime, deps);
|
|
176
|
+
}
|
|
177
|
+
if (currentHead && stamp.head && currentHead !== stamp.head) {
|
|
178
|
+
return hasWatchedMtimeChanged(stamp.mtime, deps);
|
|
179
|
+
}
|
|
180
|
+
if (currentHead) {
|
|
181
|
+
const dirty = hasDirtySourceTree(deps);
|
|
182
|
+
if (dirty === true) {
|
|
183
|
+
return hasWatchedMtimeChanged(stamp.mtime, deps);
|
|
184
|
+
}
|
|
185
|
+
if (dirty === false) {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
if (hasWatchedMtimeChanged(stamp.mtime, deps)) {
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
return false;
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
const logRunner = (message, deps) => {
|
|
197
|
+
if (deps.env.FASED_RUNNER_LOG === "0") {
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
deps.stderr.write(`[fased] ${message}\n`);
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
const shouldUseJsonOnlyOutput = (args) => args.includes("--json");
|
|
204
|
+
|
|
205
|
+
const runFasedAgent = async (deps) => {
|
|
206
|
+
const nodeProcess = deps.spawn(deps.execPath, ["fased.mjs", ...deps.args], {
|
|
207
|
+
cwd: deps.cwd,
|
|
208
|
+
env: deps.env,
|
|
209
|
+
stdio: "inherit",
|
|
210
|
+
});
|
|
211
|
+
const res = await new Promise((resolve) => {
|
|
212
|
+
nodeProcess.on("exit", (exitCode, exitSignal) => {
|
|
213
|
+
resolve({ exitCode, exitSignal });
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
if (res.exitSignal) {
|
|
217
|
+
return 1;
|
|
218
|
+
}
|
|
219
|
+
return res.exitCode ?? 1;
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
const writeBuildStamp = (deps) => {
|
|
223
|
+
try {
|
|
224
|
+
deps.fs.mkdirSync(deps.distRoot, { recursive: true });
|
|
225
|
+
const stamp = {
|
|
226
|
+
builtAt: Date.now(),
|
|
227
|
+
head: resolveGitHead(deps),
|
|
228
|
+
};
|
|
229
|
+
deps.fs.writeFileSync(deps.buildStampPath, `${JSON.stringify(stamp)}\n`);
|
|
230
|
+
} catch (error) {
|
|
231
|
+
// Best-effort stamp; still allow the runner to start.
|
|
232
|
+
logRunner(`Failed to write build stamp: ${error?.message ?? "unknown error"}`, deps);
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
export async function runNodeMain(params = {}) {
|
|
237
|
+
const deps = {
|
|
238
|
+
spawn: params.spawn ?? spawn,
|
|
239
|
+
spawnSync: params.spawnSync ?? spawnSync,
|
|
240
|
+
fs: params.fs ?? fs,
|
|
241
|
+
stderr: params.stderr ?? process.stderr,
|
|
242
|
+
execPath: params.execPath ?? process.execPath,
|
|
243
|
+
cwd: params.cwd ?? defaultRunnerCwd,
|
|
244
|
+
args: params.args ?? process.argv.slice(2),
|
|
245
|
+
env: params.env ? { ...params.env } : { ...process.env },
|
|
246
|
+
platform: params.platform ?? process.platform,
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
deps.distRoot = path.join(deps.cwd, "dist");
|
|
250
|
+
deps.distEntry = path.join(deps.distRoot, "/entry.js");
|
|
251
|
+
deps.buildStampPath = path.join(deps.distRoot, ".buildstamp");
|
|
252
|
+
deps.srcRoot = path.join(deps.cwd, "src");
|
|
253
|
+
deps.configFiles = [path.join(deps.cwd, "tsconfig.json"), path.join(deps.cwd, "package.json")];
|
|
254
|
+
|
|
255
|
+
if (!shouldBuild(deps)) {
|
|
256
|
+
return await runFasedAgent(deps);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
logRunner("Building TypeScript (dist is stale).", deps);
|
|
260
|
+
const buildCmd = deps.platform === "win32" ? "cmd.exe" : "pnpm";
|
|
261
|
+
const buildArgs =
|
|
262
|
+
deps.platform === "win32" ? ["/d", "/s", "/c", "pnpm", ...compilerArgs] : compilerArgs;
|
|
263
|
+
const buildStdio = shouldUseJsonOnlyOutput(deps.args) ? ["ignore", "pipe", "pipe"] : "inherit";
|
|
264
|
+
const build = deps.spawn(buildCmd, buildArgs, {
|
|
265
|
+
cwd: deps.cwd,
|
|
266
|
+
env: deps.env,
|
|
267
|
+
stdio: buildStdio,
|
|
268
|
+
});
|
|
269
|
+
if (buildStdio !== "inherit") {
|
|
270
|
+
build.stdout?.on("data", (chunk) => deps.stderr.write(chunk));
|
|
271
|
+
build.stderr?.on("data", (chunk) => deps.stderr.write(chunk));
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
const buildRes = await new Promise((resolve) => {
|
|
275
|
+
build.on("exit", (exitCode, exitSignal) => resolve({ exitCode, exitSignal }));
|
|
276
|
+
});
|
|
277
|
+
if (buildRes.exitSignal) {
|
|
278
|
+
return 1;
|
|
279
|
+
}
|
|
280
|
+
if (buildRes.exitCode !== 0 && buildRes.exitCode !== null) {
|
|
281
|
+
return buildRes.exitCode;
|
|
282
|
+
}
|
|
283
|
+
writeBuildStamp(deps);
|
|
284
|
+
return await runFasedAgent(deps);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
if (import.meta.url === pathToFileURL(process.argv[1] ?? "").href) {
|
|
288
|
+
void runNodeMain()
|
|
289
|
+
.then((code) => process.exit(code))
|
|
290
|
+
.catch((err) => {
|
|
291
|
+
console.error(err);
|
|
292
|
+
process.exit(1);
|
|
293
|
+
});
|
|
294
|
+
}
|