@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.
Files changed (293) hide show
  1. package/README.md +7 -5
  2. package/dist/{active-listener-BC05EmaA.js → active-listener-CNrLAfOg.js} +1 -1
  3. package/dist/{agent-scope-DVw8mi_i.js → agent-scope-T2X-I1lP.js} +124 -124
  4. package/dist/{agents-C4jz1huI.js → agents-CMJVD0OP.js} +8 -8
  5. package/dist/{attachment-normalize-C-VpVpLd.js → attachment-normalize-CJ8osx0y.js} +1 -1
  6. package/dist/{attachment-normalize-DijgHIHy.js → attachment-normalize-Dqpm6stW.js} +1 -1
  7. package/dist/{audio-preflight-DLGJBu9O.js → audio-preflight-B2FUM6w4.js} +2 -2
  8. package/dist/{audio-preflight-oqlL2Kux.js → audio-preflight-BaItcO_S.js} +31 -31
  9. package/dist/{audio-preflight-CI7BIPwS.js → audio-preflight-CMBypKf2.js} +2 -2
  10. package/dist/{audio-preflight-U5m63Clr.js → audio-preflight-Cf6hrG6Y.js} +1 -1
  11. package/dist/{audio-preflight-C6Lb4XU1.js → audio-preflight-JNkJegO7.js} +1 -1
  12. package/dist/{audit-DwbVJt3i.js → audit-BjCVaoog.js} +1 -1
  13. package/dist/{audit-BCtx-_dH.js → audit-Dm9_Y9ek.js} +1 -1
  14. package/dist/{auth-DIBzLQ-S.js → auth-CmR3RRfx.js} +5 -5
  15. package/dist/{auth-choice-DOqXUqF_.js → auth-choice-C-sID0RY.js} +1 -1
  16. package/dist/{auth-choice-CEeiz47B.js → auth-choice-DPEogMvC.js} +1 -1
  17. package/dist/{auth-choice-prompt-yqlvFI-_.js → auth-choice-prompt-Cbcp3Ee2.js} +1 -1
  18. package/dist/{auth-choice-prompt-FJDk83bS.js → auth-choice-prompt-CzCpmXZF.js} +1 -1
  19. package/dist/build-info.json +3 -3
  20. package/dist/bundled/boot-md/handler.js +31 -31
  21. package/dist/bundled/bootstrap-extra-files/handler.js +3 -3
  22. package/dist/bundled/command-logger/handler.js +2 -2
  23. package/dist/bundled/session-memory/handler.js +31 -31
  24. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  25. package/dist/{channel-activity-D2IwnDWk.js → channel-activity-C0DEUhUn.js} +1 -1
  26. package/dist/{channel-web-DaircVlX.js → channel-web-BTEzRgur.js} +1 -1
  27. package/dist/{channel-web-CBfPvCCy.js → channel-web-DBR7OGrA.js} +1 -1
  28. package/dist/{channels-DgozxTBh.js → channels-DsRKZ6NL.js} +6 -6
  29. package/dist/{channels-BygboZOV.js → channels-FmXyntMa.js} +6 -6
  30. package/dist/{channels-cli-DNz7gmOI.js → channels-cli-D3X_07NV.js} +5 -5
  31. package/dist/{channels-cli-CY4n5HcO.js → channels-cli-DvmzEcUf.js} +5 -5
  32. package/dist/{chunk-BFGwq8HC.js → chunk-Q3WlKwcl.js} +1 -1
  33. package/dist/cli/daemon-cli.js +1 -1
  34. package/dist/{cli-63C0cETT.js → cli-BvLMhUPA.js} +2 -2
  35. package/dist/{cli-CFgX3wef.js → cli-DMsf3uMe.js} +2 -2
  36. package/dist/{command-registry-DEiX9EPg.js → command-registry-DXN6Gm6U.js} +9 -9
  37. package/dist/{commands-registry-C7qLmjBS.js → commands-registry-CwvSkARW.js} +1 -1
  38. package/dist/{completion-cli-BzQetGgr.js → completion-cli-BakZ-vJj.js} +2 -2
  39. package/dist/{completion-cli-CRwAyWQL.js → completion-cli-is3s-YXN.js} +1 -1
  40. package/dist/{config-cli-CPl1vPz0.js → config-cli-CHZ9egMQ.js} +1 -1
  41. package/dist/{config-cli-C7vsh8Fg.js → config-cli-DTCrEIaK.js} +1 -1
  42. package/dist/{config-eval-CG37crOn.js → config-eval-BMGRKCyr.js} +3 -3
  43. package/dist/{configure-BEI_pe6B.js → configure-AXjfwCbC.js} +12 -12
  44. package/dist/{configure-C8lxNKpB.js → configure-t0_VefWH.js} +12 -12
  45. package/dist/control-ui/assets/app-wpJSg6bV.js.map +1 -1
  46. package/dist/{cron-cli-C7i4-Whp.js → cron-cli-BHTg4HPO.js} +2 -2
  47. package/dist/{cron-cli-BqD_ZSEC.js → cron-cli-DIedHCwY.js} +2 -2
  48. package/dist/{daemon-cli-D0AP3mOg.js → daemon-cli-DUMUVnTJ.js} +1 -1
  49. package/dist/{daemon-cli-DFYzYoB8.js → daemon-cli-lv-0kuHT.js} +1 -1
  50. package/dist/daemon-cli.js +1 -1
  51. package/dist/{deps-D9aJvXyD.js → deps-5PYELVCT.js} +1 -1
  52. package/dist/{deps-ddWLkZAO.js → deps-7Xjk7uTn.js} +1 -1
  53. package/dist/{diagnostic-DWKSfm_q.js → diagnostic-PXNTTbiu.js} +1 -1
  54. package/dist/entry.js +1 -1
  55. package/dist/extensionAPI.js +1 -1
  56. package/dist/{fetch-DyKd0D6V.js → fetch-D6yXePhv.js} +1 -1
  57. package/dist/{fetch-guard-Ztzfiio9.js → fetch-guard-B-XqKRhJ.js} +1 -1
  58. package/dist/{filesystem-manager-9uqWGvqg.js → filesystem-manager-_ccVdKHj.js} +4 -4
  59. package/dist/{fs-safe--dkmYAev.js → fs-safe-CkRcL-Cg.js} +2 -2
  60. package/dist/{gateway-cli-D_Yd_yWi.js → gateway-cli-COUUlBN5.js} +27 -27
  61. package/dist/{gateway-cli-BJkYYsGs.js → gateway-cli-a_LcL_Yi.js} +27 -27
  62. package/dist/{github-copilot-token-DYrFvncE.js → github-copilot-token-eyrRGmGp.js} +8 -8
  63. package/dist/{health-gyJixAyN.js → health-DQlfle1u.js} +2 -2
  64. package/dist/{health-DCFLGVDU.js → health-DZ82kGpi.js} +2 -2
  65. package/dist/{heartbeat-runner-BFUvc4Y_.js → heartbeat-runner-BDe0KJF7.js} +1 -1
  66. package/dist/{heartbeat-runner-Bn9N5npL.js → heartbeat-runner-C2n7G095.js} +1 -1
  67. package/dist/{hooks-cli-BGFJQWmK.js → hooks-cli-8GN0KlvM.js} +3 -3
  68. package/dist/{hooks-cli-CGj2FDai.js → hooks-cli-yMMxy-yo.js} +3 -3
  69. package/dist/index.js +7 -7
  70. package/dist/{internal-yBWuTfFC.js → internal-CtV-S2kE.js} +3 -3
  71. package/dist/{ipv4-CjO0_Ry3.js → ipv4-D1FYQ4Mk.js} +2 -2
  72. package/dist/{ipv4-CBSPFYQB.js → ipv4-DgQOUcwH.js} +2 -2
  73. package/dist/{lifecycle-BBNnNoX_.js → lifecycle-BxdJxsFv.js} +1 -1
  74. package/dist/{lifecycle-DFvIF7r0.js → lifecycle-DUQ2P6lB.js} +1 -1
  75. package/dist/{list.auth-overview-DySKd1cu.js → list.auth-overview-C9QoS2ou.js} +1 -1
  76. package/dist/{list.auth-overview-CpmtoN2D.js → list.auth-overview-CrlYcU_A.js} +1 -1
  77. package/dist/llm-slug-generator.js +31 -31
  78. package/dist/{login-DPlzYTXi.js → login-C4KKxuM4.js} +2 -2
  79. package/dist/{login-qr-c2Drd9vA.js → login-qr-DMxUP87H.js} +3 -3
  80. package/dist/{manager-XJq9ONvb.js → manager-O_PUm8xA.js} +8 -8
  81. package/dist/{markdown-tables-7kI-7mng.js → markdown-tables-QOHpjP76.js} +1 -1
  82. package/dist/{media-D4nEnyX9.js → media-KeWZMCmf.js} +5 -5
  83. package/dist/{memory-search-Z2b0d-jA.js → memory-search-BVlFBMLd.js} +2 -2
  84. package/dist/{model-catalog-DfLJlqO8.js → model-catalog-D4rEoh5e.js} +9 -9
  85. package/dist/{models-cli-DpmciZv6.js → models-cli-C8qP0w3J.js} +5 -5
  86. package/dist/{models-cli-Bu09lWlb.js → models-cli-Cq7UxTbg.js} +4 -4
  87. package/dist/{models-BbfLyMBF.js → models-jVuLblxp.js} +4 -4
  88. package/dist/{node-cli-GbiqR_FY.js → node-cli-DScZRTL7.js} +2 -2
  89. package/dist/{node-cli-D6iG4Fev.js → node-cli-o6uY0qaP.js} +2 -2
  90. package/dist/{onboard-CViA2g_j.js → onboard-Ddf5Pf9K.js} +6 -6
  91. package/dist/{onboard-channels-BeKekf-a.js → onboard-channels-D8ENQiPK.js} +2 -2
  92. package/dist/{onboard-channels-gHaSwzTd.js → onboard-channels-Doc5AjLd.js} +2 -2
  93. package/dist/{onboard-BgU-rNfl.js → onboard-feH8VdPn.js} +6 -6
  94. package/dist/{onboard-search-COuzKj6_.js → onboard-search-DuxAp1aK.js} +5 -5
  95. package/dist/{onboard-search-DkOnHZm9.js → onboard-search-GxWu-SFZ.js} +5 -5
  96. package/dist/{onboarding-nabyJljA.js → onboarding-BR7OHJ2H.js} +100 -63
  97. package/dist/{onboarding-CowfhJUD.js → onboarding-Cxkh1WwH.js} +100 -63
  98. package/dist/{openresponses-http-BBydvP41.js → openresponses-http-BL1pUdQf.js} +2 -2
  99. package/dist/{openresponses-http-D42SXipZ.js → openresponses-http-CzuT0O2I.js} +31 -31
  100. package/dist/{openresponses-http-C66CR36w.js → openresponses-http-DCHdi7mF.js} +2 -2
  101. package/dist/{openresponses-http-CdO4hFg_.js → openresponses-http-DQ3c6n1-.js} +1 -1
  102. package/dist/{openresponses-http-One5KNo8.js → openresponses-http-MJ14c-46.js} +1 -1
  103. package/dist/{outbound-attachment-BnC5ITTB.js → outbound-attachment-DO7UVxZm.js} +2 -2
  104. package/dist/{outbound-vYt3OL7q.js → outbound-nrqaUQPn.js} +6 -6
  105. package/dist/{parent-default-help-82dOtJ5b.js → parent-default-help-BKBeFc1_.js} +1 -1
  106. package/dist/{parent-default-help-iR__S_d8.js → parent-default-help-BRMZI4YX.js} +1 -1
  107. package/dist/{path-alias-guards-BgsaoH-B.js → path-alias-guards-BVcGMct5.js} +1 -1
  108. package/dist/{paths-0bvQb_LS.js → paths-C2qpRqKS.js} +22 -22
  109. package/dist/{pi-embedded-DLEbV2ey.js → pi-embedded-Bqi9f0et.js} +5 -5
  110. package/dist/{pi-embedded-BqhMzKsb.js → pi-embedded-D2PqvAO_.js} +239 -239
  111. package/dist/{pi-model-discovery-DpUv4v_r.js → pi-model-discovery-B1-QPAbn.js} +7 -7
  112. package/dist/pi-model-discovery-runtime-C3EP4IIA.js +5 -0
  113. package/dist/{plugin-registry-DgLnDYKc.js → plugin-registry-CmfUTKxt.js} +1 -1
  114. package/dist/{plugin-registry-DgnprUWu.js → plugin-registry-VukRFBIJ.js} +1 -1
  115. package/dist/plugin-sdk/{active-listener-C5ltqLGu.js → active-listener-DoYouR42.js} +1 -1
  116. package/dist/plugin-sdk/{audio-preflight-B3yRlgpY.js → audio-preflight-CVzfTzWu.js} +29 -29
  117. package/dist/plugin-sdk/{audio-preflight-bl33qm06.js → audio-preflight-CfNG6Wtw.js} +1 -1
  118. package/dist/plugin-sdk/{channel-activity-C1o4f6CQ.js → channel-activity-DO70gTOL.js} +1 -1
  119. package/dist/plugin-sdk/channel-plugin-common.js +1 -1
  120. package/dist/plugin-sdk/{channel-web-BmhttJUt.js → channel-web-DksUuYJT.js} +14 -14
  121. package/dist/plugin-sdk/{chunk-CLhP_PY2.js → chunk-RXEaIS7Q.js} +1 -1
  122. package/dist/plugin-sdk/command-status.js +1 -1
  123. package/dist/plugin-sdk/{commands-registry-rxhYCn3h.js → commands-registry-Cc-MsC0s.js} +1 -1
  124. package/dist/plugin-sdk/{diagnostic-B18Fb_x_.js → diagnostic-B49XKTb2.js} +1 -1
  125. package/dist/plugin-sdk/{fetch-IDUrNG4h.js → fetch-5yC4s4HB.js} +1 -1
  126. package/dist/plugin-sdk/{fetch-guard-CNvu0czC.js → fetch-guard-D-xE9VSj.js} +1 -1
  127. package/dist/plugin-sdk/{filesystem-manager-BeVVhJWO.js → filesystem-manager-CJboYM0S.js} +3 -3
  128. package/dist/plugin-sdk/{fs-safe-DQ3_54XI.js → fs-safe-UcucKJic.js} +2 -2
  129. package/dist/plugin-sdk/index.js +34 -34
  130. package/dist/plugin-sdk/{internal-B5WwMXvo.js → internal-BPIA30Uo.js} +1 -1
  131. package/dist/plugin-sdk/{ir-wu6kjYKs.js → ir-DChJP1Kb.js} +4 -4
  132. package/dist/plugin-sdk/{login-D4XFYPCP.js → login-Blc_5Mfx.js} +2 -2
  133. package/dist/plugin-sdk/{login-qr-B9DNJMzT.js → login-qr-BQz8yyAp.js} +2 -2
  134. package/dist/plugin-sdk/{manager-DosJYKNm.js → manager-E2u7eTdN.js} +5 -5
  135. package/dist/plugin-sdk/{markdown-tables-BPDFC99a.js → markdown-tables-nBLwWu-q.js} +1 -1
  136. package/dist/plugin-sdk/{memory-search-BRc1w0pH.js → memory-search-BMfxsZst.js} +1 -1
  137. package/dist/plugin-sdk/{openresponses-http-BkfMH5vT.js → openresponses-http-DFcst5ak.js} +29 -29
  138. package/dist/plugin-sdk/{openresponses-http-DVsmkLyj.js → openresponses-http-G9zNQzxR.js} +1 -1
  139. package/dist/plugin-sdk/{outbound-DPWNpSQ2.js → outbound-D3S8AyO5.js} +6 -6
  140. package/dist/plugin-sdk/{outbound-attachment-sc88JFtf.js → outbound-attachment-Jnv1CNZB.js} +2 -2
  141. package/dist/plugin-sdk/{path-alias-guards-DVDPpKaI.js → path-alias-guards-B4FeK1hV.js} +1 -1
  142. package/dist/plugin-sdk/{paths-DPJkB1Zo.js → paths-DfSR5y6m.js} +2 -2
  143. package/dist/plugin-sdk/{pi-model-discovery-Bt88hotH.js → pi-model-discovery-CPfojvUt.js} +1 -1
  144. package/dist/plugin-sdk/{pi-model-discovery-runtime-C_BkP4_p.js → pi-model-discovery-runtime-BtVqhePh.js} +2 -2
  145. package/dist/plugin-sdk/{pi-model-discovery-runtime-Cv_H-NDs.js → pi-model-discovery-runtime-CddkbYKA.js} +1 -1
  146. package/dist/plugin-sdk/{pw-ai-z7u9z0Gl.js → pw-ai-Cy5GL4BO.js} +4 -4
  147. package/dist/plugin-sdk/{qmd-manager-CR7ZrE4D.js → qmd-manager-DTLLD9QF.js} +4 -4
  148. package/dist/plugin-sdk/{qmd-scope-D5pfYpTx.js → qmd-scope-0JoQj00s.js} +1 -1
  149. package/dist/plugin-sdk/{query-expansion-DMIckuk2.js → query-expansion-bWgC9vRe.js} +2 -2
  150. package/dist/plugin-sdk/{registry-Dpq_OloZ.js → registry-BhjWgT6A.js} +8 -8
  151. package/dist/plugin-sdk/{replies-ChLqx77a.js → replies-BbDYqvSQ.js} +2 -2
  152. package/dist/plugin-sdk/{reply-ceu7kXX1.js → reply-DvuHwHUJ.js} +67 -67
  153. package/dist/plugin-sdk/{reply-prefix-BMlximgi.js → reply-prefix-Zqi6lY5T.js} +1 -1
  154. package/dist/plugin-sdk/{resolve-outbound-target-CzHPZvQ9.js → resolve-outbound-target-B8kZ51TY.js} +2 -2
  155. package/dist/plugin-sdk/{resolve-route-DlUpOg3_.js → resolve-route-DR2HJZkT.js} +1 -1
  156. package/dist/plugin-sdk/{runtime-x71O5s-N.js → runtime-45bZMjLH.js} +8 -8
  157. package/dist/plugin-sdk/{send-DY9n8pqC.js → send-BWTZZs_g.js} +7 -7
  158. package/dist/plugin-sdk/{send-DBVp3j7m.js → send-BtnKV_Vt.js} +5 -5
  159. package/dist/plugin-sdk/{send-DEQVHEZ4.js → send-DES1Q84z.js} +5 -5
  160. package/dist/plugin-sdk/{send-Ba0KNbhf.js → send-WNg2lRih.js} +4 -4
  161. package/dist/plugin-sdk/{send-BhMMKWOk.js → send-mGgg18UE.js} +7 -7
  162. package/dist/plugin-sdk/{session-BsRPv-eK.js → session-CgkSjr1g.js} +1 -1
  163. package/dist/plugin-sdk/{skill-commands-BctYBY9Z.js → skill-commands-mVqbX-Fs.js} +5 -5
  164. package/dist/plugin-sdk/src/brand.d.ts +2 -2
  165. package/dist/plugin-sdk/{status-BcZw5R2P.js → status-6xupAoj-.js} +5 -5
  166. package/dist/plugin-sdk/{tables-CBeKgNEN.js → tables-BHylyCNS.js} +1 -1
  167. package/dist/plugin-sdk/{target-errors-B4PsZKb0.js → target-errors-Boue6hd3.js} +2 -2
  168. package/dist/plugin-sdk/{tool-loop-detection-XlSYI5bB.js → tool-loop-detection-BxnMJJ7B.js} +1 -1
  169. package/dist/plugin-sdk/{web-DE0yQyjF.js → web-Cfri_iT8.js} +1 -1
  170. package/dist/plugin-sdk/web-Zyzl7IW6.js +40 -0
  171. package/dist/plugin-sdk/{whatsapp-actions-CSxYzpeM.js → whatsapp-actions-DJ5x-Sd_.js} +12 -12
  172. package/dist/{plugins-cli-gUow1y1s.js → plugins-cli-Bx0H7QQU.js} +5 -5
  173. package/dist/{plugins-cli-Bw8rkcLm.js → plugins-cli-HReUJLnn.js} +5 -5
  174. package/dist/{program-D7MpzAVA.js → program-BY3EZa_c.js} +7 -7
  175. package/dist/{program-context-BnMmmcLR.js → program-context-MZAw4oo8.js} +24 -24
  176. package/dist/{prompt-select-styled-DEZExK7l.js → prompt-select-styled-BasY5XsH.js} +4 -4
  177. package/dist/{prompt-select-styled-CZx9cLwR.js → prompt-select-styled-DBq1-yGB.js} +4 -4
  178. package/dist/{pw-ai-DAn5Q5Mg.js → pw-ai-D6C45ed-.js} +5 -5
  179. package/dist/{qmd-manager-BQu_lmJ6.js → qmd-manager--NffQxNh.js} +5 -5
  180. package/dist/{qmd-scope-Bv2HOfhX.js → qmd-scope-BgLcDW_Q.js} +1 -1
  181. package/dist/{query-expansion-LNmYRPvI.js → query-expansion-BW1RomSn.js} +2 -2
  182. package/dist/{register.agent-B9A7SDz_.js → register.agent-C7oqvzMO.js} +8 -8
  183. package/dist/{register.agent-DlatKWlA.js → register.agent-DPvilSbD.js} +9 -9
  184. package/dist/{register.configure-yNuOFQX6.js → register.configure-CmawJCq8.js} +12 -12
  185. package/dist/{register.configure-Tez2eNbW.js → register.configure-Jq4rlEpZ.js} +12 -12
  186. package/dist/{register.maintenance-BzVw1_e5.js → register.maintenance-DauG5FhL.js} +9 -9
  187. package/dist/{register.maintenance-Q6YI5mk9.js → register.maintenance-Db7KY5qy.js} +8 -8
  188. package/dist/{register.message-Cda69Xe6.js → register.message-B5itvC4t.js} +3 -3
  189. package/dist/{register.message-D9LYOvON.js → register.message-Cy9ynm9n.js} +3 -3
  190. package/dist/{register.onboard-BoLP06ui.js → register.onboard-BRtEN2AH.js} +14 -14
  191. package/dist/{register.onboard-D1a2rQDh.js → register.onboard-DQVkAX4S.js} +14 -14
  192. package/dist/{register.setup-DhppZhR2.js → register.setup-BJtgWkaG.js} +14 -14
  193. package/dist/{register.setup-D_qD7Gvk.js → register.setup-WqEzZMCR.js} +14 -14
  194. package/dist/{register.status-health-sessions-Csah3svc.js → register.status-health-sessions-CRLl-Xg2.js} +6 -6
  195. package/dist/{register.status-health-sessions-C0IsjCxS.js → register.status-health-sessions-CYft6R-u.js} +6 -6
  196. package/dist/{register.subclis-C4Dh6aQK.js → register.subclis-Di9x-uQJ.js} +16 -16
  197. package/dist/{replies-D0__mn7d.js → replies-lgWzXlwM.js} +2 -2
  198. package/dist/{reply-C3PsVpeQ.js → reply-CBhrmRrH.js} +9 -9
  199. package/dist/{reply-prefix-CteprwTK.js → reply-prefix-BM90m-1s.js} +1 -1
  200. package/dist/{resolve-route-Twc4mQV7.js → resolve-route-DyTOJJs4.js} +1 -1
  201. package/dist/{run-main-XXpwNNGn.js → run-main-BORzDxLY.js} +14 -14
  202. package/dist/{runtime-helper-grants-C10OJEih.js → runtime-helper-grants-Cuybmi1P.js} +1 -1
  203. package/dist/{runtime-helper-grants-BTCk3CzW.js → runtime-helper-grants-neC-6Mp_.js} +1 -1
  204. package/dist/{sandbox-cli-2MuBwFbv.js → sandbox-cli-BAfTtJI-.js} +2 -2
  205. package/dist/{sandbox-cli-Bft002rK.js → sandbox-cli-ZEYXtCXZ.js} +2 -2
  206. package/dist/{security-cli-6CmGeQ7I.js → security-cli-CFmeNE3e.js} +3 -3
  207. package/dist/{security-cli-DpQep_pt.js → security-cli-aO7V40WP.js} +3 -3
  208. package/dist/{send-BVmNzYrR.js → send-B8seeqjd.js} +18 -18
  209. package/dist/{send-BG45zdAY.js → send-BPleg3km.js} +5 -5
  210. package/dist/{send-BAtDZt7a.js → send-CAqldeiP.js} +5 -5
  211. package/dist/{send-DD6K3WP6.js → send-D63evlEI.js} +7 -7
  212. package/dist/{send-6RE7ZD_B.js → send-M0lHXvC5.js} +4 -4
  213. package/dist/{server-OidOCKoj.js → server-CU9N0zVA.js} +2 -2
  214. package/dist/{server-D62kYBqw.js → server-DtSfJaMU.js} +2 -2
  215. package/dist/{server-cron--g6K0O5V.js → server-cron-3feKZet8.js} +2 -2
  216. package/dist/{server-cron-DYKXfeLU.js → server-cron-B8nnjZ6j.js} +2 -2
  217. package/dist/{server-node-events-Csbl1Sw5.js → server-node-events-D4wjAoTI.js} +3 -3
  218. package/dist/{server-node-events-DSvH0zky.js → server-node-events-dJRsvJ1e.js} +3 -3
  219. package/dist/{session-CHL2ptKy.js → session-Cvg_ryor.js} +5 -5
  220. package/dist/{skill-commands-_zLgADck.js → skill-commands-D_QLBtje.js} +24 -24
  221. package/dist/{status-cY8_nNEN.js → status-B6xlt9hk.js} +1 -1
  222. package/dist/{status-DDWMOp5e.js → status-CKesh_zv.js} +4 -4
  223. package/dist/{status-CEqTBWFX.js → status-DsryVrZZ.js} +4 -4
  224. package/dist/{status-e52jwOFE.js → status-WM2U3wSq.js} +1 -1
  225. package/dist/{tables-Dtfop_e5.js → tables-Cif1OeQ1.js} +1 -1
  226. package/dist/{target-errors-DrHV8jza.js → target-errors-B-8Jf9OT.js} +2 -2
  227. package/dist/{tool-loop-detection-CPr-VVyD.js → tool-loop-detection-6p0-ziTi.js} +2 -2
  228. package/dist/{tui-K3OJBQvo.js → tui-C_15rImY.js} +1 -1
  229. package/dist/{tui-cli-DEHMUby1.js → tui-cli-CJ4ktGm6.js} +3 -3
  230. package/dist/{tui-cli-CNL0cM4e.js → tui-cli-Cf4QMwPG.js} +3 -3
  231. package/dist/{tui-B5xfA4bO.js → tui-m7pkF_Gw.js} +1 -1
  232. package/dist/{update-cli-Cr7BTqe1.js → update-cli-BdyzhH15.js} +9 -9
  233. package/dist/{update-cli-BqiZ9j4m.js → update-cli-CpVUWYIh.js} +10 -10
  234. package/dist/{update-runner-DcpjVgBR.js → update-runner-Cp2KspVC.js} +1 -1
  235. package/dist/{update-runner-CycjY65W.js → update-runner-polOgbQK.js} +1 -1
  236. package/dist/{web-ChgN9rvX.js → web-BK0Q-Mcx.js} +3 -3
  237. package/dist/{web-CLOmxVxX.js → web-Bd_VJKf7.js} +1 -1
  238. package/dist/{web-DhwWGdvc.js → web-CD6MuZp1.js} +35 -35
  239. package/dist/{web-D6CU81WZ.js → web-CnMZHMVF.js} +1 -1
  240. package/dist/{web-6MnkoZyD.js → web-CnS-eVr9.js} +3 -3
  241. package/dist/{web-search-providers.runtime-u6_OyUd6.js → web-search-providers.runtime-C0_Og2wh.js} +1 -1
  242. package/dist/{web-search-providers.runtime-D-uepqZ5.js → web-search-providers.runtime-kvogieHw.js} +1 -1
  243. package/dist/{whatsapp-actions-C5qguyU5.js → whatsapp-actions-BAux9gs7.js} +12 -12
  244. package/docs/install/index.md +16 -10
  245. package/docs/install/installer.md +18 -9
  246. package/docs/install/node.md +5 -4
  247. package/docs/install/vps.md +7 -3
  248. package/extensions/acpx/package.json +1 -1
  249. package/extensions/bluebubbles/package.json +1 -1
  250. package/extensions/copilot-proxy/package.json +1 -1
  251. package/extensions/diagnostics-otel/package.json +1 -1
  252. package/extensions/discord/package.json +1 -1
  253. package/extensions/fased-federation/package.json +1 -1
  254. package/extensions/feishu/package.json +1 -1
  255. package/extensions/google-gemini-cli-auth/package.json +1 -1
  256. package/extensions/googlechat/package.json +1 -1
  257. package/extensions/imessage/package.json +1 -1
  258. package/extensions/irc/package.json +1 -1
  259. package/extensions/line/package.json +1 -1
  260. package/extensions/llm-task/package.json +1 -1
  261. package/extensions/lobster/package.json +1 -1
  262. package/extensions/matrix/CHANGELOG.md +6 -0
  263. package/extensions/matrix/package.json +1 -1
  264. package/extensions/mattermost/package.json +1 -1
  265. package/extensions/memory-core/package.json +1 -1
  266. package/extensions/memory-lancedb/package.json +1 -1
  267. package/extensions/minimax-portal-auth/package.json +1 -1
  268. package/extensions/msteams/CHANGELOG.md +6 -0
  269. package/extensions/msteams/package.json +1 -1
  270. package/extensions/nextcloud-talk/package.json +1 -1
  271. package/extensions/nostr/CHANGELOG.md +6 -0
  272. package/extensions/nostr/package.json +1 -1
  273. package/extensions/open-prose/package.json +1 -1
  274. package/extensions/sat-mining/package.json +1 -1
  275. package/extensions/signal/package.json +1 -1
  276. package/extensions/slack/package.json +1 -1
  277. package/extensions/synology-chat/package.json +1 -1
  278. package/extensions/telegram/package.json +1 -1
  279. package/extensions/tlon/package.json +1 -1
  280. package/extensions/twitch/CHANGELOG.md +6 -0
  281. package/extensions/twitch/package.json +1 -1
  282. package/extensions/voice-call/CHANGELOG.md +6 -0
  283. package/extensions/voice-call/package.json +1 -1
  284. package/extensions/whatsapp/package.json +1 -1
  285. package/extensions/zalo/CHANGELOG.md +6 -0
  286. package/extensions/zalo/package.json +1 -1
  287. package/extensions/zalouser/CHANGELOG.md +6 -0
  288. package/extensions/zalouser/package.json +1 -1
  289. package/package.json +3 -1
  290. package/scripts/run-node.mjs +294 -0
  291. package/scripts/start-managed.sh +1551 -0
  292. package/dist/pi-model-discovery-runtime-9_2G9r_K.js +0 -5
  293. package/dist/plugin-sdk/web-D_ze88LT.js +0 -40
@@ -2,7 +2,7 @@ import { _ as resolveStateDir, d as resolveIsNixMode } from "./paths-C9FmTW1x.js
2
2
  import { U as theme, V as colorize } from "./agent-paths-BySKyq9I.js";
3
3
  import { Dn as loadConfig, Du as sanitizeHostExecEnv, Nl as sameFileIdentity, Ou as sanitizeSystemRunEnvOverrides, bl as VERSION, dd as formatCliCommand, i as resolveAgentConfig, mf as GATEWAY_CLIENT_NAMES, pf as GATEWAY_CLIENT_MODES, yr as analyzeArgvCommand } from "./agent-scope-CLn_Ws3B.js";
4
4
  import "./commands-registry-DfzoWf4b.js";
5
- import { Hi as startBrowserControlServiceFromConfig, Ki as resolveBrowserConfig, Na as getMachineDisplayName, Vi as createBrowserControlContext, zi as createBrowserRouteDispatcher } from "./reply-C3PsVpeQ.js";
5
+ import { Hi as startBrowserControlServiceFromConfig, Ki as resolveBrowserConfig, Na as getMachineDisplayName, Vi as createBrowserControlContext, zi as createBrowserRouteDispatcher } 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";
@@ -38,7 +38,7 @@ import "./ssrf-Blf4NrHS.js";
38
38
  import "./outbound-attachment-BHTb_aF7.js";
39
39
  import "./fetch-BJWQWfdf.js";
40
40
  import "./delivery-queue-9lp1uujZ.js";
41
- import "./deps-ddWLkZAO.js";
41
+ import "./deps-7Xjk7uTn.js";
42
42
  import "./memory-e9aOXNx1.js";
43
43
  import "./memory-search-B8y2GTeB.js";
44
44
  import "./manager-DI2w66Ae.js";
@@ -1,6 +1,6 @@
1
1
  import { Ba as normalizeOptionalSecretInput, Cu as formatCliCommand, Ii as resolveApiKeyForProfile, Ji as resolveDefaultSecretProviderAlias, Oa as loadPluginManifestRegistry, Pr as normalizeProviderId, Qt as readConfigFileSnapshot, Va as normalizeSecretInput, _n as parseDurationMs, di as resolveEnvApiKey, fa as upsertAuthProfile, ka as assertSupportedRuntime, ki as resolveAuthProfileOrder, ma as ensureAuthProfileStore, tn as writeConfigFile } from "./env-Dlz8aQHP.js";
2
2
  import { x as resolveUserPath } from "./agent-paths-DUHGyU1s.js";
3
- import { A as waitForGatewayReachable, E as resolveControlUiLinks, T as randomToken, d as DEFAULT_WORKSPACE, f as applyWizardMetadata, h as ensureWorkspaceAndSessions, s as resolvePluginProviders, v as handleOnboardingRepair } from "./model-catalog-DfLJlqO8.js";
3
+ import { A as waitForGatewayReachable, E as resolveControlUiLinks, T as randomToken, d as DEFAULT_WORKSPACE, f as applyWizardMetadata, h as ensureWorkspaceAndSessions, s as resolvePluginProviders, v as handleOnboardingRepair } from "./model-catalog-D4rEoh5e.js";
4
4
  import { A as defaultRuntime, gt as resolveGatewayPort, j as restoreTerminalState } from "./entry.js";
5
5
  import { a as readWalletProviderRegistry, f as setWalletProvidersEnabled, t as WALLET_PROVIDER_IDS } from "./wallet-provider-registry-CFNtQ2ZR.js";
6
6
  import { or as clearDeviceAuthStore } from "./call-CjHZhgQk.js";
@@ -8,12 +8,12 @@ import { r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from
8
8
  import { a as resolveHostedOnboardingGatewayStartupMode, n as gatewayInstallErrorHint, t as buildGatewayInstallPlan } from "./daemon-install-helpers-CzpeF_Bc.js";
9
9
  import { r as isSystemdUserServiceAvailable } from "./systemd-7bMkfZjg.js";
10
10
  import { t as resolveGatewayService } from "./service-CnO5S7Pz.js";
11
- import { d as resolveCustomProviderId, l as parseNonInteractiveCustomApiFlags, o as CustomApiError, s as applyCustomApiConfig } from "./ipv4-CjO0_Ry3.js";
12
- import { i as healthCommand } from "./health-DCFLGVDU.js";
13
- import { $ as applyLitellmConfig, At as validateAnthropicSetupToken, B as applyMistralConfig, Ct as setXaiApiKey, Dt as MINIMAX_HIGHSPEED_MODEL_ID, Et as MINIMAX_DEFAULT_MODEL_ID, F as applyMinimaxApiConfig, Ft as resolveManifestProviderAuthChoice, G as applyQwenCodingPlanConfig, H as applyMoonshotConfigCn, I as applyMinimaxApiConfigCn, J as applyTogetherConfig, K as applyQwenConfig, L as applyAuthProfileConfig$1, M as detectZaiEndpoint, Mt as normalizeSecretInputModeInput, N as applyGoogleGeminiModelDefault, P as applyOpencodeZenConfig, Pt as resolveManifestDeprecatedProviderAuthChoice, Q as applyZaiConfig, R as applyHuggingfaceConfig, St as setVolcengineApiKey, Tt as setZaiApiKey, U as applyOpenrouterConfig, V as applyMoonshotConfig, W as applyQianfanConfig, X as applyXaiConfig, Y as applyVeniceConfig, Z as applyXiaomiConfig, _t as setQwenCodingPlanApiKey, at as setGeminiApiKey, bt as setVeniceApiKey, c as applyDefaultModel, ct as setLitellmApiKey, d as resolveProviderMatch, dt as setMoonshotApiKey, et as applyCloudflareAiGatewayConfig, ft as setOpenaiApiKey, gt as setQwenApiKey, ht as setQianfanApiKey, i as applyOpenAIConfig, it as setCloudflareAiGatewayConfig, kt as buildTokenProfileId, l as mergeConfigPatch, lt as setMinimaxApiKey, m as applyPrimaryModel, mt as setOpenrouterApiKey, nt as setAnthropicApiKey, o as applyAuthProfileConfig, ot as setHuggingfaceApiKey, pt as setOpencodeZenApiKey, q as applySyntheticConfig, rt as setByteplusApiKey, s as buildApiKeyCredential, st as setKimiCodingApiKey, tt as applyVercelAiGatewayConfig, u as pickAuthMethod, ut as setMistralApiKey, vt as setSyntheticApiKey, wt as setXiaomiApiKey, xt as setVercelAiGatewayApiKey, yt as setTogetherApiKey, z as applyKimiCodeConfig } from "./auth-choice-DOqXUqF_.js";
14
- import { a as normalizeLegacyOnboardAuthChoice, i as isDeprecatedAuthChoice, r as resolveOnboardProviderAuthFlags } from "./auth-choice-prompt-yqlvFI-_.js";
11
+ import { d as resolveCustomProviderId, l as parseNonInteractiveCustomApiFlags, o as CustomApiError, s as applyCustomApiConfig } from "./ipv4-D1FYQ4Mk.js";
12
+ import { i as healthCommand } from "./health-DZ82kGpi.js";
13
+ import { $ as applyLitellmConfig, At as validateAnthropicSetupToken, B as applyMistralConfig, Ct as setXaiApiKey, Dt as MINIMAX_HIGHSPEED_MODEL_ID, Et as MINIMAX_DEFAULT_MODEL_ID, F as applyMinimaxApiConfig, Ft as resolveManifestProviderAuthChoice, G as applyQwenCodingPlanConfig, H as applyMoonshotConfigCn, I as applyMinimaxApiConfigCn, J as applyTogetherConfig, K as applyQwenConfig, L as applyAuthProfileConfig$1, M as detectZaiEndpoint, Mt as normalizeSecretInputModeInput, N as applyGoogleGeminiModelDefault, P as applyOpencodeZenConfig, Pt as resolveManifestDeprecatedProviderAuthChoice, Q as applyZaiConfig, R as applyHuggingfaceConfig, St as setVolcengineApiKey, Tt as setZaiApiKey, U as applyOpenrouterConfig, V as applyMoonshotConfig, W as applyQianfanConfig, X as applyXaiConfig, Y as applyVeniceConfig, Z as applyXiaomiConfig, _t as setQwenCodingPlanApiKey, at as setGeminiApiKey, bt as setVeniceApiKey, c as applyDefaultModel, ct as setLitellmApiKey, d as resolveProviderMatch, dt as setMoonshotApiKey, et as applyCloudflareAiGatewayConfig, ft as setOpenaiApiKey, gt as setQwenApiKey, ht as setQianfanApiKey, i as applyOpenAIConfig, it as setCloudflareAiGatewayConfig, kt as buildTokenProfileId, l as mergeConfigPatch, lt as setMinimaxApiKey, m as applyPrimaryModel, mt as setOpenrouterApiKey, nt as setAnthropicApiKey, o as applyAuthProfileConfig, ot as setHuggingfaceApiKey, pt as setOpencodeZenApiKey, q as applySyntheticConfig, rt as setByteplusApiKey, s as buildApiKeyCredential, st as setKimiCodingApiKey, tt as applyVercelAiGatewayConfig, u as pickAuthMethod, ut as setMistralApiKey, vt as setSyntheticApiKey, wt as setXiaomiApiKey, xt as setVercelAiGatewayApiKey, yt as setTogetherApiKey, z as applyKimiCodeConfig } from "./auth-choice-C-sID0RY.js";
14
+ import { a as normalizeLegacyOnboardAuthChoice, i as isDeprecatedAuthChoice, r as resolveOnboardProviderAuthFlags } from "./auth-choice-prompt-Cbcp3Ee2.js";
15
15
  import { n as logConfigUpdated } from "./logging-B1pB3RkW.js";
16
- import { a as applyRecommendedInternalHooks, i as isHostedSecurityCapableSession, n as applyHostingSecurity, o as applyOnboardingLocalWorkspaceConfig, r as configureFederationForOnboarding, t as runOnboardingWizard } from "./onboarding-nabyJljA.js";
16
+ import { a as applyRecommendedInternalHooks, i as isHostedSecurityCapableSession, n as applyHostingSecurity, o as applyOnboardingLocalWorkspaceConfig, r as configureFederationForOnboarding, t as runOnboardingWizard } from "./onboarding-BR7OHJ2H.js";
17
17
  import { t as WizardCancelledError } from "./prompts-DdS4bZNt.js";
18
18
  import { t as createClackPrompter } from "./clack-prompter-CZlDqO1z.js";
19
19
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-CAPmfIid.js";
@@ -1,7 +1,7 @@
1
1
  import { $c as installPluginFromNpmSpec, $d as resolveDiscordAccount, $l as listWhatsAppAccountIds, Au as resolveTelegramAccount, Cu as formatCliCommand, Gd as resolveSignalAccount, Gl as listChannelPlugins, Gu as resolveDefaultAgentId, Jd as resolveIMessageAccount, Kd as listIMessageAccountIds, Ld as listSlackAccountIds, Ou as listTelegramAccountIds, Qd as resolveDefaultDiscordAccountId, Rd as resolveDefaultSlackAccountId, Ud as listSignalAccountIds, Wd as resolveDefaultSignalAccountId, Wl as getChannelPlugin, Wu as resolveAgentWorkspaceDir, Xd as listDiscordAccountIds, a as createSubsystemLogger, c as formatChannelSelectionLine, eu as resolveDefaultWhatsAppAccountId, ku as resolveDefaultTelegramAccountId, md as runCommandWithTimeout, nu as resolveWhatsAppAuthDir, pd as resolveFasedAgentPackageRootSync, qd as resolveDefaultIMessageAccountId, s as formatChannelPrimerLine, u as listChatChannels, xl as extractArchive, xu as stripAnsi, zd as resolveSlackAccount } from "./env-Dlz8aQHP.js";
2
2
  import { _ as pathExists, g as normalizeE164, i as CONFIG_DIR } from "./agent-paths-DUHGyU1s.js";
3
3
  import { dt as normalizeDiscordSlug } from "./send-CWM2yWF6.js";
4
- import { Oi as createPluginLoaderLogger, Qt as resolveDiscordUserAllowlist, V as resolveDiscordChannelAllowlist, Zt as resolveSlackUserAllowlist, c as loadFasedAgentPlugins, p as detectBinary, u as resolveSlackChannelAllowlist } from "./model-catalog-DfLJlqO8.js";
4
+ import { Oi as createPluginLoaderLogger, Qt as resolveDiscordUserAllowlist, V as resolveDiscordChannelAllowlist, Zt as resolveSlackUserAllowlist, c as loadFasedAgentPlugins, p as detectBinary, u as resolveSlackChannelAllowlist } from "./model-catalog-D4rEoh5e.js";
5
5
  import { J as DEFAULT_ACCOUNT_ID, Y as normalizeAccountId } from "./entry.js";
6
6
  import { i as isBlockedHostnameOrIp } from "./ssrf-CqV2hisj.js";
7
7
  import { d as listChannelPluginCatalogEntries, f as resolveChannelPluginExpectedPluginIds, l as formatChannelPluginCatalogSelectionHint, s as isChannelConfigured, u as formatChannelPluginCatalogStatusLine } from "./dangerous-name-matching-ob0tR02Y.js";
@@ -12,7 +12,7 @@ import { t as loginWeb } from "./login-tqTj2mT5.js";
12
12
  import { t as resolveChannelDefaultAccountId } from "./helpers-BfdkoReO.js";
13
13
  import { t as enablePluginInConfig } from "./enable-C7xTf-9S.js";
14
14
  import { t as buildNpmResolutionInstallFields } from "./installs-PYgg3AvN.js";
15
- import { o as finalizeInstalledPluginConfig } from "./lifecycle-DFvIF7r0.js";
15
+ import { o as finalizeInstalledPluginConfig } from "./lifecycle-DUQ2P6lB.js";
16
16
  import { t as fetchTelegramChatId } from "./api-uvDKewCP.js";
17
17
  import { spawn } from "node:child_process";
18
18
  import os from "node:os";
@@ -1,6 +1,6 @@
1
1
  import { _ as normalizeE164, i as CONFIG_DIR, v as pathExists } from "./agent-paths-BySKyq9I.js";
2
2
  import { $l as runCommandWithTimeout, B as listChatChannels, Bd as listDiscordAccountIds, Dd as listSlackAccountIds, F as createSubsystemLogger, Fd as resolveSignalAccount, Hd as resolveDefaultDiscordAccountId, Hu as resolveDefaultWhatsAppAccountId, Id as listIMessageAccountIds, L as formatChannelPrimerLine, Ld as resolveDefaultIMessageAccountId, Mu as getChannelPlugin, Nd as listSignalAccountIds, Nu as listChannelPlugins, Od as resolveDefaultSlackAccountId, Pd as resolveDefaultSignalAccountId, R as formatChannelSelectionLine, Rd as resolveIMessageAccount, Ud as resolveDiscordAccount, Vu as listWhatsAppAccountIds, Wu as resolveWhatsAppAuthDir, _d as resolveDefaultTelegramAccountId, d as resolveDefaultAgentId, dd as formatCliCommand, gd as listTelegramAccountIds, kd as resolveSlackAccount, ld as stripAnsi, mo as resolveFasedAgentPackageRootSync, ou as extractArchive, u as resolveAgentWorkspaceDir, vd as resolveTelegramAccount, wl as installPluginFromNpmSpec } from "./agent-scope-CLn_Ws3B.js";
3
- import { Ft as resolveSlackUserAllowlist, It as resolveSlackChannelAllowlist, Nt as loadFasedAgentPlugins, la as createPluginLoaderLogger, mn as resolveDiscordChannelAllowlist, pn as resolveDiscordUserAllowlist, zt as detectBinary } from "./reply-C3PsVpeQ.js";
3
+ import { Ft as resolveSlackUserAllowlist, It as resolveSlackChannelAllowlist, Nt as loadFasedAgentPlugins, la as createPluginLoaderLogger, mn as resolveDiscordChannelAllowlist, pn as resolveDiscordUserAllowlist, zt as detectBinary } from "./reply-CBhrmRrH.js";
4
4
  import { h as normalizeAccountId, m as DEFAULT_ACCOUNT_ID } from "./session-key-LmCHAJTQ.js";
5
5
  import { dt as normalizeDiscordSlug } from "./send-Dg2_aoK-.js";
6
6
  import { i as isBlockedHostnameOrIp } from "./ssrf-Blf4NrHS.js";
@@ -12,7 +12,7 @@ import { t as resolveBrewExecutable } from "./brew-C52GeCeh.js";
12
12
  import { t as resolveChannelDefaultAccountId } from "./helpers-BvDnvwsE.js";
13
13
  import { t as enablePluginInConfig } from "./enable-DYrDatZX.js";
14
14
  import { t as buildNpmResolutionInstallFields } from "./installs-BS-BIvab.js";
15
- import { o as finalizeInstalledPluginConfig } from "./lifecycle-BBNnNoX_.js";
15
+ import { o as finalizeInstalledPluginConfig } from "./lifecycle-BxdJxsFv.js";
16
16
  import { t as fetchTelegramChatId } from "./api-DLdLLQm_.js";
17
17
  import fs, { createWriteStream, readFileSync } from "node:fs";
18
18
  import os from "node:os";
@@ -1,7 +1,7 @@
1
1
  import { u as resolveGatewayPort } from "./paths-C9FmTW1x.js";
2
2
  import { S as resolveUserPath } from "./agent-paths-BySKyq9I.js";
3
3
  import { Ga as ensureAuthProfileStore, Hi as resolveEnvApiKey, Jn as parseDurationMs, Mn as writeConfigFile, Ta as resolveDefaultSecretProviderAlias, Ua as upsertAuthProfile, ao as loadPluginManifestRegistry, bo as normalizeSecretInput, dd as formatCliCommand, di as normalizeProviderId, kn as readConfigFileSnapshot, oa as resolveAuthProfileOrder, oo as assertSupportedRuntime, pa as resolveApiKeyForProfile, yo as normalizeOptionalSecretInput } from "./agent-scope-CLn_Ws3B.js";
4
- import { Lt as DEFAULT_WORKSPACE, Mt as resolvePluginProviders, Qt as resolveControlUiLinks, Rt as applyWizardMetadata, Vt as ensureWorkspaceAndSessions, Wt as handleOnboardingRepair, Zt as randomToken, nn as waitForGatewayReachable } from "./reply-C3PsVpeQ.js";
4
+ import { Lt as DEFAULT_WORKSPACE, Mt as resolvePluginProviders, Qt as resolveControlUiLinks, Rt as applyWizardMetadata, Vt as ensureWorkspaceAndSessions, Wt as handleOnboardingRepair, Zt as randomToken, nn as waitForGatewayReachable } from "./reply-CBhrmRrH.js";
5
5
  import { d as defaultRuntime, f as restoreTerminalState } from "./errors-Dx3S3Nrp.js";
6
6
  import { a as readWalletProviderRegistry, f as setWalletProvidersEnabled, t as WALLET_PROVIDER_IDS } from "./wallet-provider-registry-ax0NJo0F.js";
7
7
  import { or as clearDeviceAuthStore } from "./call-s6DNIELo.js";
@@ -9,12 +9,12 @@ import { r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from
9
9
  import { a as resolveHostedOnboardingGatewayStartupMode, n as gatewayInstallErrorHint, t as buildGatewayInstallPlan } from "./daemon-install-helpers-CG_Lmgua.js";
10
10
  import { r as isSystemdUserServiceAvailable } from "./systemd-ZvgpcrfV.js";
11
11
  import { t as resolveGatewayService } from "./service-DbZp-Ejz.js";
12
- import { d as resolveCustomProviderId, l as parseNonInteractiveCustomApiFlags, o as CustomApiError, s as applyCustomApiConfig } from "./ipv4-CBSPFYQB.js";
13
- import { i as healthCommand } from "./health-gyJixAyN.js";
14
- import { $ as applyLitellmConfig, At as validateAnthropicSetupToken, B as applyMistralConfig, Ct as setXaiApiKey, Dt as MINIMAX_HIGHSPEED_MODEL_ID, Et as MINIMAX_DEFAULT_MODEL_ID, F as applyMinimaxApiConfig, Ft as resolveManifestProviderAuthChoice, G as applyQwenCodingPlanConfig, H as applyMoonshotConfigCn, I as applyMinimaxApiConfigCn, J as applyTogetherConfig, K as applyQwenConfig, L as applyAuthProfileConfig$1, M as detectZaiEndpoint, Mt as normalizeSecretInputModeInput, N as applyGoogleGeminiModelDefault, P as applyOpencodeZenConfig, Pt as resolveManifestDeprecatedProviderAuthChoice, Q as applyZaiConfig, R as applyHuggingfaceConfig, St as setVolcengineApiKey, Tt as setZaiApiKey, U as applyOpenrouterConfig, V as applyMoonshotConfig, W as applyQianfanConfig, X as applyXaiConfig, Y as applyVeniceConfig, Z as applyXiaomiConfig, _t as setQwenCodingPlanApiKey, at as setGeminiApiKey, bt as setVeniceApiKey, c as applyDefaultModel, ct as setLitellmApiKey, d as resolveProviderMatch, dt as setMoonshotApiKey, et as applyCloudflareAiGatewayConfig, ft as setOpenaiApiKey, gt as setQwenApiKey, ht as setQianfanApiKey, i as applyOpenAIConfig, it as setCloudflareAiGatewayConfig, kt as buildTokenProfileId, l as mergeConfigPatch, lt as setMinimaxApiKey, m as applyPrimaryModel, mt as setOpenrouterApiKey, nt as setAnthropicApiKey, o as applyAuthProfileConfig, ot as setHuggingfaceApiKey, pt as setOpencodeZenApiKey, q as applySyntheticConfig, rt as setByteplusApiKey, s as buildApiKeyCredential, st as setKimiCodingApiKey, tt as applyVercelAiGatewayConfig, u as pickAuthMethod, ut as setMistralApiKey, vt as setSyntheticApiKey, wt as setXiaomiApiKey, xt as setVercelAiGatewayApiKey, yt as setTogetherApiKey, z as applyKimiCodeConfig } from "./auth-choice-CEeiz47B.js";
15
- import { a as normalizeLegacyOnboardAuthChoice, i as isDeprecatedAuthChoice, r as resolveOnboardProviderAuthFlags } from "./auth-choice-prompt-FJDk83bS.js";
12
+ import { d as resolveCustomProviderId, l as parseNonInteractiveCustomApiFlags, o as CustomApiError, s as applyCustomApiConfig } from "./ipv4-DgQOUcwH.js";
13
+ import { i as healthCommand } from "./health-DQlfle1u.js";
14
+ import { $ as applyLitellmConfig, At as validateAnthropicSetupToken, B as applyMistralConfig, Ct as setXaiApiKey, Dt as MINIMAX_HIGHSPEED_MODEL_ID, Et as MINIMAX_DEFAULT_MODEL_ID, F as applyMinimaxApiConfig, Ft as resolveManifestProviderAuthChoice, G as applyQwenCodingPlanConfig, H as applyMoonshotConfigCn, I as applyMinimaxApiConfigCn, J as applyTogetherConfig, K as applyQwenConfig, L as applyAuthProfileConfig$1, M as detectZaiEndpoint, Mt as normalizeSecretInputModeInput, N as applyGoogleGeminiModelDefault, P as applyOpencodeZenConfig, Pt as resolveManifestDeprecatedProviderAuthChoice, Q as applyZaiConfig, R as applyHuggingfaceConfig, St as setVolcengineApiKey, Tt as setZaiApiKey, U as applyOpenrouterConfig, V as applyMoonshotConfig, W as applyQianfanConfig, X as applyXaiConfig, Y as applyVeniceConfig, Z as applyXiaomiConfig, _t as setQwenCodingPlanApiKey, at as setGeminiApiKey, bt as setVeniceApiKey, c as applyDefaultModel, ct as setLitellmApiKey, d as resolveProviderMatch, dt as setMoonshotApiKey, et as applyCloudflareAiGatewayConfig, ft as setOpenaiApiKey, gt as setQwenApiKey, ht as setQianfanApiKey, i as applyOpenAIConfig, it as setCloudflareAiGatewayConfig, kt as buildTokenProfileId, l as mergeConfigPatch, lt as setMinimaxApiKey, m as applyPrimaryModel, mt as setOpenrouterApiKey, nt as setAnthropicApiKey, o as applyAuthProfileConfig, ot as setHuggingfaceApiKey, pt as setOpencodeZenApiKey, q as applySyntheticConfig, rt as setByteplusApiKey, s as buildApiKeyCredential, st as setKimiCodingApiKey, tt as applyVercelAiGatewayConfig, u as pickAuthMethod, ut as setMistralApiKey, vt as setSyntheticApiKey, wt as setXiaomiApiKey, xt as setVercelAiGatewayApiKey, yt as setTogetherApiKey, z as applyKimiCodeConfig } from "./auth-choice-DPEogMvC.js";
15
+ import { a as normalizeLegacyOnboardAuthChoice, i as isDeprecatedAuthChoice, r as resolveOnboardProviderAuthFlags } from "./auth-choice-prompt-CzCpmXZF.js";
16
16
  import { n as logConfigUpdated } from "./logging-C8GVa7dS.js";
17
- import { a as applyRecommendedInternalHooks, i as isHostedSecurityCapableSession, n as applyHostingSecurity, o as applyOnboardingLocalWorkspaceConfig, r as configureFederationForOnboarding, t as runOnboardingWizard } from "./onboarding-CowfhJUD.js";
17
+ import { a as applyRecommendedInternalHooks, i as isHostedSecurityCapableSession, n as applyHostingSecurity, o as applyOnboardingLocalWorkspaceConfig, r as configureFederationForOnboarding, t as runOnboardingWizard } from "./onboarding-Cxkh1WwH.js";
18
18
  import { t as WizardCancelledError } from "./prompts-CbbpEiEO.js";
19
19
  import { t as createClackPrompter } from "./clack-prompter-Bpbu54xa.js";
20
20
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-S605QEIC.js";
@@ -2,7 +2,7 @@ import "./paths-C9FmTW1x.js";
2
2
  import { S as resolveUserPath, i as CONFIG_DIR, m as isRecord } from "./agent-paths-BySKyq9I.js";
3
3
  import { Co as coerceSecretRef, mo as resolveFasedAgentPackageRootSync, wl as installPluginFromNpmSpec } from "./agent-scope-CLn_Ws3B.js";
4
4
  import "./commands-registry-DfzoWf4b.js";
5
- import "./reply-C3PsVpeQ.js";
5
+ import "./reply-CBhrmRrH.js";
6
6
  import "./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 "./deps-ddWLkZAO.js";
40
+ import "./deps-7Xjk7uTn.js";
41
41
  import "./memory-e9aOXNx1.js";
42
42
  import "./memory-search-B8y2GTeB.js";
43
43
  import "./manager-DI2w66Ae.js";
@@ -78,10 +78,10 @@ import "./prompt-style-Db5iJoaI.js";
78
78
  import "./pairing-labels-sAC1Ty3_.js";
79
79
  import { t as enablePluginInConfig } from "./enable-DYrDatZX.js";
80
80
  import { t as buildNpmResolutionInstallFields } from "./installs-BS-BIvab.js";
81
- import "./status-cY8_nNEN.js";
81
+ import "./status-B6xlt9hk.js";
82
82
  import "./update-fKz5UGr6.js";
83
- import { o as finalizeInstalledPluginConfig } from "./lifecycle-BBNnNoX_.js";
84
- import { t as resolvePluginWebSearchProviders } from "./web-search-providers.runtime-u6_OyUd6.js";
83
+ import { o as finalizeInstalledPluginConfig } from "./lifecycle-BxdJxsFv.js";
84
+ import { t as resolvePluginWebSearchProviders } from "./web-search-providers.runtime-C0_Og2wh.js";
85
85
  import fs from "node:fs";
86
86
  import path from "node:path";
87
87
 
@@ -2,7 +2,7 @@ import { $c as installPluginFromNpmSpec, Wa as coerceSecretRef, pd as resolveFas
2
2
  import { i as CONFIG_DIR, p as isRecord, x as resolveUserPath } from "./agent-paths-DUHGyU1s.js";
3
3
  import "./send-Ditv1VfR.js";
4
4
  import "./send-CWM2yWF6.js";
5
- import "./model-catalog-DfLJlqO8.js";
5
+ import "./model-catalog-D4rEoh5e.js";
6
6
  import "./github-copilot-token-A9DiaCB0.js";
7
7
  import "./reply-prefix-CCp0C8w4.js";
8
8
  import "./memory-BpNgGSAl.js";
@@ -44,7 +44,7 @@ import "./send-Dlj2DghK.js";
44
44
  import "./outbound-attachment-D2ImFzcm.js";
45
45
  import "./fetch-BqA-KBI4.js";
46
46
  import "./delivery-queue-CMGPhIoF.js";
47
- import "./deps-D9aJvXyD.js";
47
+ import "./deps-5PYELVCT.js";
48
48
  import "./frontmatter-DTw-J9er.js";
49
49
  import "./skills-CzDvK09q.js";
50
50
  import "./skills-remote-CM9uNuu4.js";
@@ -75,10 +75,10 @@ import "./prompt-style-CWdNyu_Q.js";
75
75
  import "./pairing-labels-DBt_OA8C.js";
76
76
  import { t as enablePluginInConfig } from "./enable-C7xTf-9S.js";
77
77
  import { t as buildNpmResolutionInstallFields } from "./installs-PYgg3AvN.js";
78
- import "./status-e52jwOFE.js";
78
+ import "./status-WM2U3wSq.js";
79
79
  import "./update-C_BnpDpE.js";
80
- import { o as finalizeInstalledPluginConfig } from "./lifecycle-DFvIF7r0.js";
81
- import { t as resolvePluginWebSearchProviders } from "./web-search-providers.runtime-D-uepqZ5.js";
80
+ import { o as finalizeInstalledPluginConfig } from "./lifecycle-DUQ2P6lB.js";
81
+ import { t as resolvePluginWebSearchProviders } from "./web-search-providers.runtime-kvogieHw.js";
82
82
  import path from "node:path";
83
83
  import fs from "node:fs";
84
84
 
@@ -1,6 +1,6 @@
1
1
  import { Cu as formatCliCommand, Fn as ensureActiveMemoryPluginAllowlisted, Gu as resolveDefaultAgentId, Qt as readConfigFileSnapshot, Wu as resolveAgentWorkspaceDir, br as collectConfigServiceEnvVars, ma as ensureAuthProfileStore, tn as writeConfigFile } from "./env-Dlz8aQHP.js";
2
2
  import { H as theme, x as resolveUserPath } from "./agent-paths-DUHGyU1s.js";
3
- import { A as waitForGatewayReachable, C as printWizardHeader, E as resolveControlUiLinks, Ha as CONTROL_UI_BOOT_CHECK_PATH, O as summarizeExistingConfig, S as openUrl, T as randomToken, Wa as normalizeControlUiBasePath, bo as enableTailscaleServe, d as DEFAULT_WORKSPACE, f as applyWizardMetadata, g as formatControlUiSshHint, h as ensureWorkspaceAndSessions, k as validateGatewayPasswordInput, m as detectBrowserOpenSupport, to as runFederationAutoConnectOnce, v as handleOnboardingRepair, w as probeGatewayReachable, x as normalizeGatewayTokenInput, xo as findTailscaleBinary, yo as enableTailscaleFunnel } from "./model-catalog-DfLJlqO8.js";
3
+ import { A as waitForGatewayReachable, C as printWizardHeader, E as resolveControlUiLinks, Ha as CONTROL_UI_BOOT_CHECK_PATH, O as summarizeExistingConfig, S as openUrl, T as randomToken, Wa as normalizeControlUiBasePath, bo as enableTailscaleServe, d as DEFAULT_WORKSPACE, f as applyWizardMetadata, g as formatControlUiSshHint, h as ensureWorkspaceAndSessions, k as validateGatewayPasswordInput, m as detectBrowserOpenSupport, to as runFederationAutoConnectOnce, v as handleOnboardingRepair, w as probeGatewayReachable, x as normalizeGatewayTokenInput, xo as findTailscaleBinary, yo as enableTailscaleFunnel } from "./model-catalog-D4rEoh5e.js";
4
4
  import { A as defaultRuntime, Ct as resolveStateDir, E as redactSensitiveText, ct as DEFAULT_GATEWAY_PORT, gt as resolveGatewayPort, j as restoreTerminalState } from "./entry.js";
5
5
  import { n as redactSensitiveUrlLikeString } from "./redact-sensitive-url-BW03TVj8.js";
6
6
  import { a as resolveSignerdBinaryPath, n as installSignerdBinary, o as restartLocalSocketSigner, r as migrateLocalSignerKeystoreToMaterialDir, t as configureWalletForOnboarding } from "./onboarding.wallet-CcoV0W6U.js";
@@ -16,14 +16,14 @@ import { a as resolveHostedOnboardingGatewayStartupMode, i as resolveGatewayStar
16
16
  import { d as buildSystemdUnit, r as isSystemdUserServiceAvailable } from "./systemd-7bMkfZjg.js";
17
17
  import { t as resolveGatewayService } from "./service-CnO5S7Pz.js";
18
18
  import { n as auditGatewayServiceConfig, t as SERVICE_AUDIT_CODES } from "./service-audit-B92T2Wk3.js";
19
- import { a as promptRemoteGatewayConfig, n as getTailscaleMissingBinNoteLines, r as setupSkills, t as validateIPv4AddressInput, u as promptCustomApiConfig } from "./ipv4-CjO0_Ry3.js";
20
- import { s as waitForHostedDashboardBrowserPath } from "./health-DCFLGVDU.js";
21
- import { n as warnIfModelConfigLooksOff, r as applyAuthChoice } from "./auth-choice-DOqXUqF_.js";
22
- import { t as promptAuthChoiceGrouped } from "./auth-choice-prompt-yqlvFI-_.js";
19
+ import { a as promptRemoteGatewayConfig, n as getTailscaleMissingBinNoteLines, r as setupSkills, t as validateIPv4AddressInput, u as promptCustomApiConfig } from "./ipv4-D1FYQ4Mk.js";
20
+ import { s as waitForHostedDashboardBrowserPath } from "./health-DZ82kGpi.js";
21
+ import { n as warnIfModelConfigLooksOff, r as applyAuthChoice } from "./auth-choice-C-sID0RY.js";
22
+ import { t as promptAuthChoiceGrouped } from "./auth-choice-prompt-Cbcp3Ee2.js";
23
23
  import { n as logConfigUpdated } from "./logging-B1pB3RkW.js";
24
- import { n as setupChannels } from "./onboard-channels-BeKekf-a.js";
24
+ import { n as setupChannels } from "./onboard-channels-D8ENQiPK.js";
25
25
  import { t as buildWorkspaceHookStatus } from "./hooks-status-BZnz9Iag.js";
26
- import { t as runTui } from "./tui-K3OJBQvo.js";
26
+ import { t as runTui } from "./tui-C_15rImY.js";
27
27
  import { spawn, spawnSync } from "node:child_process";
28
28
  import os from "node:os";
29
29
  import path from "node:path";
@@ -357,34 +357,61 @@ function buildOnboardingDashboardUrl(params) {
357
357
  url.hash = hash ? `#${hash}` : "";
358
358
  return url.toString();
359
359
  }
360
+ function noteHeading$1(value) {
361
+ return theme.heading(value.toUpperCase());
362
+ }
363
+ function noteLabel(value) {
364
+ return theme.accentBright(value);
365
+ }
366
+ function noteInfo$1(value) {
367
+ return theme.info(value);
368
+ }
369
+ function noteSuccess$1(value) {
370
+ return theme.success(value);
371
+ }
372
+ function noteWarn$1(value) {
373
+ return theme.warn(value);
374
+ }
375
+ function noteMuted(value) {
376
+ return theme.muted(value);
377
+ }
378
+ function noteCommand$1(value) {
379
+ return theme.command(value);
380
+ }
381
+ function noteBullet$1(value) {
382
+ return `- ${value}`;
383
+ }
384
+ function formatFasedNetworkAutoConnectSummary(messages) {
385
+ return [noteHeading$1("Connection confirmed"), ...messages.map((message) => noteBullet$1(noteSuccess$1(message)))].join("\n");
386
+ }
360
387
  function formatStrictRemoteAccessDetails(params) {
361
388
  const sshTarget = params.tailscaleNodeName || params.tailscaleIpv4 || "(tailscale-node)";
362
389
  const tailscaleIpv4 = params.tailscaleIpv4?.trim();
363
390
  const hasIpFallback = Boolean(tailscaleIpv4 && tailscaleIpv4 !== sshTarget);
364
391
  return [
365
- "Use both access paths after hosted setup:",
392
+ noteInfo$1("Use both access paths after hosted setup:"),
366
393
  "",
367
- "1. WEB DASHBOARD",
368
- " Open this on your own computer after signing into the same Tailscale account:",
369
- ` ${params.dashboardUrl}`,
394
+ noteHeading$1("1. Web dashboard"),
395
+ ` ${noteInfo$1("Open this on your own computer after signing into the same Tailscale account:")}`,
396
+ ` ${noteCommand$1(params.dashboardUrl)}`,
370
397
  "",
371
- "2. SSH TERMINAL",
372
- " Use this for CLI commands, updates, logs, and repairs over Tailscale:",
373
- ` ssh ${params.tailscaleSshUser}@${sshTarget}`,
374
- hasIpFallback ? ` If hostname DNS fails but Tailscale IP ping works, use: ssh ${params.tailscaleSshUser}@${tailscaleIpv4}` : void 0,
375
- " The app user shell opens in the Fased repo directory.",
398
+ noteHeading$1("2. SSH terminal"),
399
+ ` ${noteInfo$1("Use this for CLI commands, updates, logs, and repairs over Tailscale:")}`,
400
+ ` ${noteCommand$1(`ssh ${params.tailscaleSshUser}@${sshTarget}`)}`,
401
+ hasIpFallback ? ` ${noteWarn$1("If hostname DNS fails but Tailscale IP ping works, use:")} ${noteCommand$1(`ssh ${params.tailscaleSshUser}@${tailscaleIpv4}`)}` : void 0,
402
+ ` ${noteInfo$1("The app user shell opens in the Fased repo directory.")}`,
376
403
  "",
377
- "ADVANCED FALLBACK",
378
- " If the Tailscale web URL is unavailable, run this on your local computer and leave it open:",
379
- ` ssh -N -L ${params.port}:127.0.0.1:${params.port} ${params.tailscaleSshUser}@${sshTarget}`,
380
- hasIpFallback ? ` If a VPN blocks MagicDNS hostname lookup, use: ssh -N -L ${params.port}:127.0.0.1:${params.port} ${params.tailscaleSshUser}@${tailscaleIpv4}` : void 0,
381
- " Then open:",
382
- ` ${params.tunnelUrl}`,
383
- hasIpFallback ? " Note: another VPN can break Tailscale MagicDNS while raw 100.x Tailscale IP access still works." : void 0,
404
+ noteHeading$1("Advanced fallback"),
405
+ ` ${noteInfo$1("If the Tailscale web URL is unavailable, run this on your local computer and leave it open:")}`,
406
+ ` ${noteCommand$1(`ssh -N -L ${params.port}:127.0.0.1:${params.port} ${params.tailscaleSshUser}@${sshTarget}`)}`,
407
+ hasIpFallback ? ` ${noteWarn$1("If a VPN blocks MagicDNS hostname lookup, use:")} ${noteCommand$1(`ssh -N -L ${params.port}:127.0.0.1:${params.port} ${params.tailscaleSshUser}@${tailscaleIpv4}`)}` : void 0,
408
+ ` ${noteInfo$1("Then open:")}`,
409
+ ` ${noteCommand$1(params.tunnelUrl)}`,
410
+ hasIpFallback ? ` ${noteWarn$1("Note: another VPN can break Tailscale MagicDNS while raw 100.x Tailscale IP access still works.")}` : void 0,
384
411
  "",
385
- "GATEWAY TOKEN BACKUP",
386
- " Only paste this if the browser asks for a token:",
387
- ` ${params.gatewayToken || "(token not available)"}`
412
+ noteHeading$1("Gateway token backup"),
413
+ ` ${noteWarn$1("Only paste this if the browser asks for a token:")}`,
414
+ ` ${noteCommand$1(params.gatewayToken || "(token not available)")}`
388
415
  ].filter((line) => line !== void 0).join("\n");
389
416
  }
390
417
  function formatLocalDashboardReady(params) {
@@ -1669,11 +1696,12 @@ async function finalizeOnboardingWizard(options) {
1669
1696
  }
1670
1697
  }
1671
1698
  if (strictVps) await prompter.note([
1672
- "Hosted runtime is private by default.",
1699
+ noteHeading$1("Private access"),
1700
+ noteInfo$1("Hosted runtime is private by default."),
1673
1701
  "",
1674
- "Web dashboard: Tailscale HTTPS URL.",
1675
- "SSH terminal: ssh app@YOUR_VPS_TAILSCALE_NAME over Tailscale.",
1676
- "Public SSH and Gateway ports remain blocked."
1702
+ `${noteLabel("Web dashboard:")} ${noteCommand$1("Tailscale HTTPS URL")}`,
1703
+ `${noteLabel("SSH terminal:")} ${noteCommand$1("ssh app@YOUR_VPS_TAILSCALE_NAME")} ${noteInfo$1("over Tailscale")}`,
1704
+ noteBullet$1(noteWarn$1("Public SSH and Gateway ports remain blocked."))
1677
1705
  ].join("\n"), "Hosting access");
1678
1706
  if ((strictVps || expectedGatewayStartupMode === "managed-up") && !autoStartEnabled && !opts.allowInsecure) throw new Error(formatPersistentRuntimeServiceFailure({
1679
1707
  strictVps,
@@ -2114,12 +2142,13 @@ async function finalizeOnboardingWizard(options) {
2114
2142
  if (!warmup.ok) {
2115
2143
  const detail = warmup.detail ?? "not reachable yet";
2116
2144
  await prompter.note([
2117
- "The Tailscale HTTPS dashboard URL is still warming from this VPS.",
2118
- `Detail: ${detail}`,
2145
+ noteHeading$1("Tailscale HTTPS"),
2146
+ noteWarn$1("The Tailscale HTTPS dashboard URL is still warming from this VPS."),
2147
+ `${noteMuted("Detail:")} ${noteInfo$1(detail)}`,
2119
2148
  "",
2120
- "Setup will continue if the local Gateway listener is healthy.",
2121
- "Open the printed Tailscale URL from your own Tailscale-connected computer.",
2122
- "If another VPN breaks MagicDNS, turn it off or use the 100.x Tailscale IP fallback."
2149
+ noteBullet$1(noteSuccess$1("Setup will continue if the local Gateway listener is healthy.")),
2150
+ noteBullet$1(noteInfo$1("Open the printed Tailscale URL from your own Tailscale-connected computer.")),
2151
+ noteBullet$1(noteWarn$1("If another VPN breaks MagicDNS, turn it off or use the 100.x Tailscale IP fallback."))
2123
2152
  ].join("\n"), "Dashboard warmup");
2124
2153
  return;
2125
2154
  }
@@ -2139,12 +2168,13 @@ async function finalizeOnboardingWizard(options) {
2139
2168
  pollMs: 1500
2140
2169
  });
2141
2170
  if (!wsWarmup.ok) await prompter.note([
2142
- "The Tailscale dashboard page is reachable, but the browser Gateway connection is still warming.",
2143
- `Gateway URL: ${tailscaleGatewayWsUrl}`,
2144
- `Detail: ${"stage" in wsWarmup ? `${wsWarmup.stage}: ${wsWarmup.message}` : wsWarmup.detail ?? "websocket not reachable"}`,
2171
+ noteHeading$1("Gateway connection"),
2172
+ noteWarn$1("The Tailscale dashboard page is reachable, but the browser Gateway connection is still warming."),
2173
+ `${noteLabel("Gateway URL:")} ${noteCommand$1(tailscaleGatewayWsUrl)}`,
2174
+ `${noteMuted("Detail:")} ${noteInfo$1("stage" in wsWarmup ? `${wsWarmup.stage}: ${wsWarmup.message}` : wsWarmup.detail ?? "websocket not reachable")}`,
2145
2175
  "",
2146
- "Setup will continue if the local Gateway listener is healthy.",
2147
- "Use the SSH tunnel fallback immediately, or open the Tailscale dashboard URL again shortly."
2176
+ noteBullet$1(noteSuccess$1("Setup will continue if the local Gateway listener is healthy.")),
2177
+ noteBullet$1(noteInfo$1("Use the SSH tunnel fallback immediately, or open the Tailscale dashboard URL again shortly."))
2148
2178
  ].join("\n"), "Dashboard warmup");
2149
2179
  else hostedDashboardBrowserVerified = true;
2150
2180
  });
@@ -2206,12 +2236,15 @@ async function finalizeOnboardingWizard(options) {
2206
2236
  if (federation.enabled) {
2207
2237
  let hostedFederationAutoConnectAttempted = false;
2208
2238
  let hostedFederationAutoConnectReason = "";
2239
+ const hostedFederationAutoConnectMessages = [];
2209
2240
  if (strictVps && !readManagedFederationTokenSummary(onboardingEnv).exists) {
2210
2241
  hostedFederationAutoConnectAttempted = true;
2211
2242
  hostedFederationAutoConnectReason = (await runFederationAutoConnectOnce({
2212
2243
  env: onboardingEnv,
2213
2244
  log: {
2214
- info: (message) => runtime.log(message),
2245
+ info: (message) => {
2246
+ hostedFederationAutoConnectMessages.push(message);
2247
+ },
2215
2248
  warn: (message) => {
2216
2249
  hostedFederationAutoConnectReason = message;
2217
2250
  },
@@ -2230,12 +2263,13 @@ async function finalizeOnboardingWizard(options) {
2230
2263
  reservations: readManagedReservationSummaries(onboardingEnv)
2231
2264
  };
2232
2265
  if (fedToken.exists && !persistedFederationToken) persistedFederationToken = await loadPersistedFederationToken(onboardingEnv).catch(() => null);
2266
+ if (strictVps && hostedFederationAutoConnectAttempted && hostedFederationAutoConnectMessages.length > 0) await prompter.note(formatFasedNetworkAutoConnectSummary(hostedFederationAutoConnectMessages), "Fased Network");
2233
2267
  if (strictVps && hostedFederationAutoConnectAttempted && !fedToken.exists) await prompter.note([
2234
- "Fased Network silent join did not finish.",
2235
- hostedFederationAutoConnectReason ? `Reason: ${hostedFederationAutoConnectReason}` : "Reason: token was not issued before final readiness.",
2236
- reservations.length > 0 ? `Reservation: ${reservations[0]?.slug}` : void 0,
2237
- "Dashboard and SSH are ready over Tailscale.",
2238
- "Inspect details: `fased managed up --json`"
2268
+ noteWarn$1("Fased Network silent join did not finish."),
2269
+ hostedFederationAutoConnectReason ? `${noteMuted("Reason:")} ${noteInfo$1(hostedFederationAutoConnectReason)}` : `${noteMuted("Reason:")} ${noteInfo$1("token was not issued before final readiness.")}`,
2270
+ reservations.length > 0 ? `${noteMuted("Reservation:")} ${noteCommand$1(reservations[0]?.slug ?? "")}` : void 0,
2271
+ noteSuccess$1("Dashboard and SSH are ready over Tailscale."),
2272
+ `${noteMuted("Inspect details:")} ${noteCommand$1("fased managed up --json")}`
2239
2273
  ].filter(Boolean).join("\n"), "Fased Network");
2240
2274
  }
2241
2275
  const operatorReadiness = describeOperatorReadinessChecklist({
@@ -2281,16 +2315,17 @@ async function finalizeOnboardingWizard(options) {
2281
2315
  detail: finalGateway.detail ?? "final gateway recheck timed out"
2282
2316
  };
2283
2317
  await prompter.note([
2284
- serviceActive ? "The hosted Gateway service is active, but the dashboard is still warming." : "The hosted browser dashboard passed its full check earlier.",
2285
- `Detail: ${finalGateway.detail ?? "gateway not reachable yet"}`,
2318
+ noteHeading$1("Service active"),
2319
+ serviceActive ? noteWarn$1("The hosted Gateway service is active, but the dashboard is still warming.") : noteInfo$1("The hosted browser dashboard passed its full check earlier."),
2320
+ `${noteMuted("Detail:")} ${noteInfo$1(finalGateway.detail ?? "gateway not reachable yet")}`,
2286
2321
  "",
2287
- "Setup will finish and leave the Gateway service running.",
2288
- "Open the printed Tailscale dashboard URL again in a few minutes.",
2289
- "If MagicDNS is slow or another VPN is active, use the 100.x Tailscale IP fallback.",
2322
+ noteBullet$1(noteSuccess$1("Setup will finish and leave the Gateway service running.")),
2323
+ noteBullet$1(noteInfo$1("Open the printed Tailscale dashboard URL again in a few minutes.")),
2324
+ noteBullet$1(noteWarn$1("If MagicDNS is slow or another VPN is active, use the 100.x Tailscale IP fallback.")),
2290
2325
  "",
2291
- "Check from the app terminal:",
2292
- "fased status",
2293
- "fased dashboard --no-open"
2326
+ noteHeading$1("Check from the app terminal"),
2327
+ noteCommand$1("fased status"),
2328
+ noteCommand$1("fased dashboard --no-open")
2294
2329
  ].join("\n"), "Dashboard warmup");
2295
2330
  return;
2296
2331
  }
@@ -3250,9 +3285,9 @@ async function applyHostingSecurity(params) {
3250
3285
  detail: "post-bootstrap hosted maintenance session; skipping host hardening bootstrap"
3251
3286
  };
3252
3287
  let tsAuthkey = opts.tsAuthkey?.trim() ?? "";
3253
- if (!tsAuthkey) if (await prompter.confirm({
3254
- message: "Use a Tailscale auth key instead of browser login? (advanced)",
3255
- initialValue: false
3288
+ if (!tsAuthkey) if (!await prompter.confirm({
3289
+ message: "Use browser login for Tailscale? (recommended)",
3290
+ initialValue: true
3256
3291
  })) tsAuthkey = (typeof prompter.secret === "function" ? await prompter.secret({
3257
3292
  message: "Paste Tailscale auth key (tskey-auth-...)",
3258
3293
  validate: (value) => value.trim() ? void 0 : "Required"
@@ -3425,9 +3460,9 @@ async function applyHostingSecurity(params) {
3425
3460
  if (!tsHealthy) {
3426
3461
  let tsAuthkey = opts.tsAuthkey?.trim() ?? "";
3427
3462
  if (!tsAuthkey && opts.nonInteractive !== true && prompter) {
3428
- if (await prompter.confirm({
3429
- message: "Use a Tailscale auth key instead of browser login? (advanced)",
3430
- initialValue: false
3463
+ if (!await prompter.confirm({
3464
+ message: "Use browser login for Tailscale? (recommended)",
3465
+ initialValue: true
3431
3466
  })) tsAuthkey = (typeof prompter.secret === "function" ? await prompter.secret({
3432
3467
  message: "Paste Tailscale auth key (tskey-auth-...)",
3433
3468
  validate: (value) => value.trim() ? void 0 : "Required"
@@ -5186,9 +5221,11 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
5186
5221
  };
5187
5222
  if (hostSecurity.profile === "hosting" && hostSecurity.checks.length > 0) {
5188
5223
  const lines = [
5189
- "Hosting security checklist:",
5190
- ...hostSecurity.checks.map((check) => `${check.ok ? "" : "✗"} ${check.name}: ${check.detail}`),
5191
- hostSecurity.logPath ? `Detailed host hardening log: ${hostSecurity.logPath}` : void 0
5224
+ theme.heading("HOSTING SECURITY CHECKLIST"),
5225
+ "",
5226
+ ...hostSecurity.checks.map((check) => `${check.ok ? theme.success("✓") : theme.error("✗")} ${theme.accentBright(check.name)}: ${check.ok ? theme.info(check.detail) : theme.error(check.detail)}`),
5227
+ "",
5228
+ hostSecurity.logPath ? `${theme.muted("Detailed host hardening log:")} ${theme.command(hostSecurity.logPath)}` : void 0
5192
5229
  ];
5193
5230
  await prompter.note(lines.filter(Boolean).join("\n"), "Host security");
5194
5231
  }