@fased/fased 0.1.17 → 0.1.19

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 (227) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/{agents-ZHlcYNOm.js → agents-ET0n9FED.js} +11 -11
  3. package/dist/{attachment-normalize-BhPZ6uGO.js → attachment-normalize-CDK3Kj-a.js} +1 -1
  4. package/dist/{attachment-normalize-DTYtewZr.js → attachment-normalize-DMabJMU0.js} +1 -1
  5. package/dist/{audio-preflight-C7mBThF7.js → audio-preflight-CK4s7Cpe.js} +1 -1
  6. package/dist/{audio-preflight-ChwzRQPs.js → audio-preflight-CKsWKtOL.js} +2 -2
  7. package/dist/{audio-preflight-DVSnVlYd.js → audio-preflight-CtOWrCYT.js} +2 -2
  8. package/dist/{audio-preflight-CoQcqjKr.js → audio-preflight-D4ml3rER.js} +3 -3
  9. package/dist/{audio-preflight-Bi4VdYUO.js → audio-preflight-DnxL2DTu.js} +3 -3
  10. package/dist/{audit-DQnuqc0U.js → audit-Cw2GhO1l.js} +1 -1
  11. package/dist/{audit-CSWfakpx.js → audit-DBfVTWuR.js} +1 -1
  12. package/dist/{auth-CqkGNO1B.js → auth-D6aXaEgt.js} +5 -5
  13. package/dist/{auth-choice-CN9gyA5O.js → auth-choice-CRcRJvDg.js} +2 -2
  14. package/dist/{auth-choice-wNIst3YG.js → auth-choice-DCd_rmJr.js} +2 -2
  15. package/dist/{auth-choice-prompt-Dsfpbz6G.js → auth-choice-prompt-BBY8vO5H.js} +1 -1
  16. package/dist/{auth-choice-prompt-DvnUYnyW.js → auth-choice-prompt-CHAO6E_x.js} +1 -1
  17. package/dist/build-info.json +3 -3
  18. package/dist/bundled/boot-md/handler.js +2 -2
  19. package/dist/bundled/session-memory/handler.js +2 -2
  20. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  21. package/dist/{channel-web-I-U78wmf.js → channel-web-B90TOW9f.js} +1 -1
  22. package/dist/{channel-web-kLuTpWVX.js → channel-web-rogzKqNR.js} +1 -1
  23. package/dist/{channels-Cs8acObo.js → channels-BDdw6tRB.js} +9 -9
  24. package/dist/{channels-B3fxmvYP.js → channels-CIVRD15I.js} +9 -9
  25. package/dist/{channels-cli-C29njyWF.js → channels-cli-BlinY5L-.js} +6 -6
  26. package/dist/{channels-cli-D8zA2RvX.js → channels-cli-nB_AyrYg.js} +6 -6
  27. package/dist/{clack-prompter-D2fuSvy3.js → clack-prompter-DhFjwbXA.js} +110 -40
  28. package/dist/{clack-prompter-DsooqWFU.js → clack-prompter-Q_PN4iLX.js} +110 -40
  29. package/dist/cli/daemon-cli.js +1 -1
  30. package/dist/{cli-C0NqNpAe.js → cli-BkrcbFie.js} +3 -3
  31. package/dist/{cli-Mlqh5AdT.js → cli-DWyf6Ez0.js} +3 -3
  32. package/dist/{command-registry-B9_A3_Dx.js → command-registry-D0xhHn9Z.js} +9 -9
  33. package/dist/{completion-cli-Chx2En3m.js → completion-cli-BDgp9s2D.js} +2 -2
  34. package/dist/{completion-cli-C0A6ihvd.js → completion-cli-BpN_WF59.js} +1 -1
  35. package/dist/{config-cli-CMAn1M38.js → config-cli-D51JAiE2.js} +1 -1
  36. package/dist/{config-cli-yHQ8paR9.js → config-cli-Di8fNvh8.js} +1 -1
  37. package/dist/{config-guard-C74yuV1t.js → config-guard-D6r7usdP.js} +2 -2
  38. package/dist/{config-guard-ComvK070.js → config-guard-DnCSSIeP.js} +1 -1
  39. package/dist/{configure-BKSkbv4h.js → configure-CLUalzZB.js} +16 -16
  40. package/dist/{configure-Bc3GK0rN.js → configure-ZAJqoe8C.js} +16 -16
  41. package/dist/control-ui/assets/app-DXYMrRJ9.js.map +1 -1
  42. package/dist/{cron-cli-ApRsS-YG.js → cron-cli-CCfMl1ch.js} +2 -2
  43. package/dist/{cron-cli-DqPi-kbY.js → cron-cli-COETwgMD.js} +2 -2
  44. package/dist/{daemon-cli-DXHOflkW.js → daemon-cli-BwMJ_sub.js} +1 -1
  45. package/dist/{daemon-cli-DgdTmunC.js → daemon-cli-DUfzwrLw.js} +1 -1
  46. package/dist/daemon-cli.js +1 -1
  47. package/dist/{deps-fM7SZdlB.js → deps-BoCGz3bU.js} +1 -1
  48. package/dist/{deps-BVX6nj7c.js → deps-vuWHR8ix.js} +1 -1
  49. package/dist/{doctor-config-flow-4WutpMTV.js → doctor-config-flow-B-I0osH5.js} +1 -1
  50. package/dist/{doctor-config-flow-Cd9O0xNE.js → doctor-config-flow-Ceaz-Gkk.js} +1 -1
  51. package/dist/entry.js +1 -1
  52. package/dist/extensionAPI.js +2 -2
  53. package/dist/{gateway-cli-CGMY4qqc.js → gateway-cli-DAaMYDEy.js} +28 -28
  54. package/dist/{gateway-cli-B97xz3Px.js → gateway-cli-DcooukDx.js} +28 -28
  55. package/dist/{health-CdW7K4YP.js → health-CD-e8iEW.js} +2 -2
  56. package/dist/{health-Bn6vWkyn.js → health-c7sJIXY9.js} +2 -2
  57. package/dist/{heartbeat-runner-DIftlHX6.js → heartbeat-runner-BTRTcwja.js} +1 -1
  58. package/dist/{heartbeat-runner-B6wpYjuS.js → heartbeat-runner-DZuApcd1.js} +1 -1
  59. package/dist/{hooks-cli-CkFOVlH3.js → hooks-cli--azOmGId.js} +4 -4
  60. package/dist/{hooks-cli-Bh_WRNX5.js → hooks-cli-Bq6e41xH.js} +4 -4
  61. package/dist/index.js +9 -9
  62. package/dist/{ipv4-DT7rmgG8.js → ipv4-BKbsAV5a.js} +2 -2
  63. package/dist/{ipv4-6svR7SNz.js → ipv4-Bxa3Ql2B.js} +2 -2
  64. package/dist/{lifecycle-B9_sK7Lg.js → lifecycle-DE4kux0k.js} +1 -1
  65. package/dist/{lifecycle-BR79mC_A.js → lifecycle-DKOezW7h.js} +1 -1
  66. package/dist/{list.auth-overview-9xaYIGIY.js → list.auth-overview-DQlFpghW.js} +1 -1
  67. package/dist/{list.auth-overview-CAxvB_TW.js → list.auth-overview-SasQirvR.js} +1 -1
  68. package/dist/llm-slug-generator.js +2 -2
  69. package/dist/{model-catalog-B3hPEPfU.js → model-catalog-DHRVUWBf.js} +12 -8
  70. package/dist/{models-CGYvzn8x.js → models-CIAvUTl5.js} +7 -7
  71. package/dist/{models-cli-lhXhYVIL.js → models-cli-BW4m-HHk.js} +8 -8
  72. package/dist/{models-cli-CNGqdXNr.js → models-cli-CxRv-tjs.js} +7 -7
  73. package/dist/{node-cli-Crt3RJFB.js → node-cli--1sHB0Pz.js} +3 -3
  74. package/dist/{node-cli-BU8uKipw.js → node-cli-CsYpYqHF.js} +3 -3
  75. package/dist/{note-DrwZGnSu.js → note-DwkETqd-.js} +2 -0
  76. package/dist/{note-CLUeye9D.js → note-rV2vspIo.js} +2 -0
  77. package/dist/{onboard-D3lGTn86.js → onboard-BoT3D8J9.js} +8 -8
  78. package/dist/{onboard-channels-DKCvEt36.js → onboard-channels-BREKCcFf.js} +2 -2
  79. package/dist/{onboard-channels-EXJRjGSu.js → onboard-channels-fJXaj04M.js} +2 -2
  80. package/dist/{onboard-CTW2Nw9r.js → onboard-lbl9C2gj.js} +8 -8
  81. package/dist/{onboard-search-L1prKL6U.js → onboard-search-C6A1sfph.js} +6 -6
  82. package/dist/{onboard-search-1iOn9oPJ.js → onboard-search-D-tM9Xrg.js} +6 -6
  83. package/dist/{onboarding-DiEiT_LB.js → onboarding-Bejkgd8a.js} +94 -41
  84. package/dist/{onboarding-DeTMPDGg.js → onboarding-C8AUR3x1.js} +94 -41
  85. package/dist/{openresponses-http-BY6b2lDC.js → openresponses-http-BR0xNXbf.js} +2 -2
  86. package/dist/{openresponses-http-BJx01ruC.js → openresponses-http-BYKqYqIr.js} +1 -1
  87. package/dist/{openresponses-http-DaFH5UEc.js → openresponses-http-C8H-a3KL.js} +3 -3
  88. package/dist/{openresponses-http-kIRkHsD1.js → openresponses-http-CyP-RUzR.js} +2 -2
  89. package/dist/{openresponses-http-CQhCnjXY.js → openresponses-http-DNXaz2VR.js} +3 -3
  90. package/dist/{parent-default-help-BVu8jqwL.js → parent-default-help-B57KLY1o.js} +1 -1
  91. package/dist/{parent-default-help-Da2SaoCP.js → parent-default-help-B9-EyEJR.js} +1 -1
  92. package/dist/{paths-D2Fac7_V.js → paths-BGX-IMoI.js} +9 -9
  93. package/dist/{paths-DuymR5Rg.js → paths-Bzz-O3FX.js} +9 -9
  94. package/dist/{pi-embedded-BZv4Mjvw.js → pi-embedded-Dtw2m41q.js} +14 -14
  95. package/dist/{pi-embedded-B-qXRnRI.js → pi-embedded-G-VYb-eT.js} +14 -14
  96. package/dist/{plugin-registry-BgHwN_Lg.js → plugin-registry-C5c96kNk.js} +1 -1
  97. package/dist/{plugin-registry-BjOVIPs_.js → plugin-registry-Dr7BDkEc.js} +1 -1
  98. package/dist/plugin-sdk/{audio-preflight-B7YdvtUo.js → audio-preflight-Bf83dqiV.js} +1 -1
  99. package/dist/plugin-sdk/{audio-preflight-CS0BGiq5.js → audio-preflight-jaSZX_On.js} +1 -1
  100. package/dist/plugin-sdk/channel-plugin-common.js +1 -1
  101. package/dist/plugin-sdk/{channel-web-D7r6o_Nr.js → channel-web-Bu6Y92kC.js} +1 -1
  102. package/dist/plugin-sdk/command-status.js +1 -1
  103. package/dist/plugin-sdk/index.js +2 -2
  104. package/dist/plugin-sdk/{openresponses-http-aRyVxWnA.js → openresponses-http-M74cHGFJ.js} +1 -1
  105. package/dist/plugin-sdk/{openresponses-http-B2uRew9H.js → openresponses-http-gCxCNpHu.js} +1 -1
  106. package/dist/plugin-sdk/{pi-model-discovery-runtime-BWcaNxzp.js → pi-model-discovery-runtime-FgSYY3zE.js} +1 -1
  107. package/dist/plugin-sdk/{registry-DXXOSq_V.js → registry-DyRgZdL8.js} +8 -8
  108. package/dist/plugin-sdk/{reply-BlEQIxRB.js → reply-Bu9GXy54.js} +5 -5
  109. package/dist/plugin-sdk/src/brand.d.ts +2 -2
  110. package/dist/plugin-sdk/{status-C5KavVSM.js → status-DLh4u6pb.js} +5 -5
  111. package/dist/plugin-sdk/{web-C2qvRemd.js → web-BLZesoTn.js} +2 -2
  112. package/dist/plugin-sdk/{web-D3SBL6WL.js → web-BqmhQeOi.js} +1 -1
  113. package/dist/{plugins-cli-BgktSjQJ.js → plugins-cli-CpElRRGB.js} +6 -6
  114. package/dist/{plugins-cli-CKPZJor1.js → plugins-cli-hFcodPhF.js} +6 -6
  115. package/dist/{program-Nydl3I9b.js → program-ByNjbwln.js} +9 -9
  116. package/dist/{program-context-B2v5DYdk.js → program-context-BJ6EvoUW.js} +25 -25
  117. package/dist/{prompt-select-styled-BFIFk4AL.js → prompt-select-styled-DyUwhQR0.js} +8 -8
  118. package/dist/{prompt-select-styled-BjXEmV9l.js → prompt-select-styled-yZlzGWDe.js} +8 -8
  119. package/dist/{prompt-style-Wxki8rmI.js → prompt-style-CWAacuMq.js} +1 -2
  120. package/dist/{prompt-style-DxKPs6E0.js → prompt-style-Rmj3c-Ir.js} +1 -2
  121. package/dist/{providers-cli-DBG7T-38.js → providers-cli-BWZUM8kN.js} +3 -3
  122. package/dist/{providers-cli-DsUpaNkE.js → providers-cli-Dwb_MRo-.js} +3 -3
  123. package/dist/{pw-ai-CJ0aPd9o.js → pw-ai-42y3optV.js} +1 -1
  124. package/dist/{pw-ai-BWWVm40d.js → pw-ai-D6eWnTeA.js} +1 -1
  125. package/dist/{register.agent-CKCyVnHe.js → register.agent-DYThb3Qq.js} +12 -12
  126. package/dist/{register.agent-DMvHMzcw.js → register.agent-QbjX69Zq.js} +11 -11
  127. package/dist/{register.configure-ByF8uG5S.js → register.configure-CGzVdNRF.js} +16 -16
  128. package/dist/{register.configure-BUBxqquw.js → register.configure-CXn_6bwZ.js} +16 -16
  129. package/dist/{register.maintenance-C5PWlFfJ.js → register.maintenance-Cf-qQw2A.js} +13 -13
  130. package/dist/{register.maintenance-BGNb_S6N.js → register.maintenance-CiSlTmn6.js} +12 -12
  131. package/dist/{register.message-BWwA-s6K.js → register.message-Bz8Q1BDo.js} +4 -4
  132. package/dist/{register.message-aTN70VzV.js → register.message-CxejzCev.js} +4 -4
  133. package/dist/{register.onboard-Dlqyei9e.js → register.onboard-D-DkLJKD.js} +18 -18
  134. package/dist/{register.onboard-Dz42-nKS.js → register.onboard-DUvd2gzi.js} +18 -18
  135. package/dist/{register.setup-CNOjFVTJ.js → register.setup-BotpXpFX.js} +18 -18
  136. package/dist/{register.setup-B6v02LXR.js → register.setup-CzJsqVIe.js} +18 -18
  137. package/dist/{register.status-health-sessions-C3ItbaQ1.js → register.status-health-sessions-C9Zx-J4Y.js} +7 -7
  138. package/dist/{register.status-health-sessions-CmmN6MLd.js → register.status-health-sessions-IUpygKVu.js} +7 -7
  139. package/dist/{register.subclis-DESt0tVl.js → register.subclis-BtJ07gvR.js} +17 -17
  140. package/dist/{reply-jd1xrxXq.js → reply-BRoR6TOO.js} +12 -8
  141. package/dist/{run-main-D3CwNCnW.js → run-main-J8mnTN8L.js} +18 -18
  142. package/dist/{runtime-helper-grants-BRXTUail.js → runtime-helper-grants-CkoxSD6G.js} +1 -1
  143. package/dist/{runtime-helper-grants-BHKX5oKE.js → runtime-helper-grants-DMNl5B0x.js} +1 -1
  144. package/dist/{sandbox-cli-4kOH-DPO.js → sandbox-cli-CNyUbQKy.js} +3 -3
  145. package/dist/{sandbox-cli-DEc6XQT-.js → sandbox-cli-DfarPDi7.js} +3 -3
  146. package/dist/{security-cli-BUh3X9_F.js → security-cli-DYUEfOxV.js} +4 -4
  147. package/dist/{security-cli-B7M2Oc7k.js → security-cli-DfH_yEpS.js} +4 -4
  148. package/dist/{server-DtYT7_5l.js → server-3-CquHGG.js} +3 -3
  149. package/dist/{server-SVBXgb1K.js → server-OnS0sRn3.js} +3 -3
  150. package/dist/{server-cron-DYlWj-q5.js → server-cron-BclI8dUt.js} +2 -2
  151. package/dist/{server-cron-CW7fwBiW.js → server-cron-CB9ay7nN.js} +2 -2
  152. package/dist/{server-node-events-DKiw7ErS.js → server-node-events-B3wjSbTf.js} +4 -4
  153. package/dist/{server-node-events-CHxrrTwp.js → server-node-events-CHH1pmQi.js} +4 -4
  154. package/dist/{status-BMkqIbDJ.js → status-Cf-x3WJB.js} +1 -1
  155. package/dist/{status-CZGCfZGF.js → status-DhGsqqOx.js} +1 -1
  156. package/dist/{status-Aws79pOr.js → status-SrKDBHd_.js} +4 -4
  157. package/dist/{status-BlE8umrs.js → status-kfsSxAsl.js} +4 -4
  158. package/dist/{systemd-linger-9E60sw1j.js → systemd-linger-BTw_D-6k.js} +1 -1
  159. package/dist/{systemd-linger-BYFLOJbt.js → systemd-linger-BlmGMvvA.js} +1 -1
  160. package/dist/{tui-D_G4_9GB.js → tui-CIzUfHHB.js} +1 -1
  161. package/dist/{tui-El8PxPJw.js → tui-Cvc1YA_t.js} +1 -1
  162. package/dist/{tui-cli-DcfQ-oMv.js → tui-cli-BxyfSTll.js} +4 -4
  163. package/dist/{tui-cli-Crw0SZCT.js → tui-cli-D8ECRV-M.js} +4 -4
  164. package/dist/{update-cli-CX_5mVD4.js → update-cli-C1i3_uQZ.js} +13 -13
  165. package/dist/{update-cli-Dopc5Usd.js → update-cli-TMwGWZhI.js} +14 -14
  166. package/dist/{update-runner-Cd2MGute.js → update-runner-C6krqlIN.js} +1 -1
  167. package/dist/{update-runner-Iqgqs2dk.js → update-runner-ChBrrXIl.js} +1 -1
  168. package/dist/{web-CZCMgwva.js → web-CjKdghAZ.js} +4 -4
  169. package/dist/{web-ChYNYLuI.js → web-CnR4rHHv.js} +1 -1
  170. package/dist/{web-DnANur60.js → web-CoSbILfi.js} +2 -2
  171. package/dist/{web-y_U81dLD.js → web-l7WkPuq4.js} +2 -2
  172. package/dist/{web-search-providers.runtime-i1RoCwml.js → web-search-providers.runtime-B09rLDoa.js} +1 -1
  173. package/dist/{web-search-providers.runtime-CNjTAhI3.js → web-search-providers.runtime-BC_EmT37.js} +1 -1
  174. package/dist/{web-E9FagaIu.js → web-vOcMOS29.js} +4 -4
  175. package/docs/gateway/tailscale.md +44 -0
  176. package/docs/images/screenshots/local/chat-ui-1.png +0 -0
  177. package/docs/images/screenshots/local/final-ui-1.png +0 -0
  178. package/docs/images/screenshots/local/local-ui-1.png +0 -0
  179. package/docs/images/screenshots/local/local-ui-2.png +0 -0
  180. package/docs/images/screenshots/local/model-ui-1.png +0 -0
  181. package/docs/images/screenshots/local/wallet-ui-2.png +0 -0
  182. package/docs/install/index.md +26 -5
  183. package/docs/install/vps.md +27 -7
  184. package/docs/start/agent-wallet-mining-walkthrough.md +17 -1
  185. package/extensions/acpx/package.json +1 -1
  186. package/extensions/bluebubbles/package.json +1 -1
  187. package/extensions/copilot-proxy/package.json +1 -1
  188. package/extensions/diagnostics-otel/package.json +1 -1
  189. package/extensions/discord/package.json +1 -1
  190. package/extensions/fased-federation/package.json +1 -1
  191. package/extensions/feishu/package.json +1 -1
  192. package/extensions/google-gemini-cli-auth/package.json +1 -1
  193. package/extensions/googlechat/package.json +1 -1
  194. package/extensions/imessage/package.json +1 -1
  195. package/extensions/irc/package.json +1 -1
  196. package/extensions/line/package.json +1 -1
  197. package/extensions/llm-task/package.json +1 -1
  198. package/extensions/lobster/package.json +1 -1
  199. package/extensions/matrix/CHANGELOG.md +12 -0
  200. package/extensions/matrix/package.json +1 -1
  201. package/extensions/mattermost/package.json +1 -1
  202. package/extensions/memory-core/package.json +1 -1
  203. package/extensions/memory-lancedb/package.json +1 -1
  204. package/extensions/minimax-portal-auth/package.json +1 -1
  205. package/extensions/msteams/CHANGELOG.md +12 -0
  206. package/extensions/msteams/package.json +1 -1
  207. package/extensions/nextcloud-talk/package.json +1 -1
  208. package/extensions/nostr/CHANGELOG.md +12 -0
  209. package/extensions/nostr/package.json +1 -1
  210. package/extensions/open-prose/package.json +1 -1
  211. package/extensions/sat-mining/package.json +1 -1
  212. package/extensions/signal/package.json +1 -1
  213. package/extensions/slack/package.json +1 -1
  214. package/extensions/synology-chat/package.json +1 -1
  215. package/extensions/telegram/package.json +1 -1
  216. package/extensions/tlon/package.json +1 -1
  217. package/extensions/twitch/CHANGELOG.md +12 -0
  218. package/extensions/twitch/package.json +1 -1
  219. package/extensions/voice-call/CHANGELOG.md +12 -0
  220. package/extensions/voice-call/package.json +1 -1
  221. package/extensions/whatsapp/package.json +1 -1
  222. package/extensions/zalo/CHANGELOG.md +12 -0
  223. package/extensions/zalo/package.json +1 -1
  224. package/extensions/zalouser/CHANGELOG.md +12 -0
  225. package/extensions/zalouser/package.json +1 -1
  226. package/package.json +1 -1
  227. package/docs/images/screenshots/local/wallet-ui-1.png +0 -0
@@ -2,7 +2,7 @@ import { _ as resolveStateDir, u as resolveGatewayPort } from "./paths-C9FmTW1x.
2
2
  import { U as theme, v as pathExists } from "./agent-paths-DmOVZE7g.js";
3
3
  import { $l as runCommandWithTimeout, Mn as writeConfigFile, co as parseSemver, dd as formatCliCommand, fd as replaceCliName, kn as readConfigFileSnapshot, pd as resolveCliName, po as resolveFasedAgentPackageRoot } from "./agent-scope-DHrLr5OF.js";
4
4
  import "./commands-registry-BRvZQ1jh.js";
5
- import { gi as trimLogTail } from "./reply-jd1xrxXq.js";
5
+ import { gi as trimLogTail } from "./reply-BRoR6TOO.js";
6
6
  import { d as defaultRuntime } from "./errors-Dx3S3Nrp.js";
7
7
  import "./send-C5_fB8YQ.js";
8
8
  import "./send-jxmRy65D.js";
@@ -37,7 +37,7 @@ import "./ssrf-Blf4NrHS.js";
37
37
  import "./outbound-attachment-CsXJwFsg.js";
38
38
  import "./fetch-CnCPOuq7.js";
39
39
  import "./delivery-queue-DKRjVFlq.js";
40
- import "./deps-BVX6nj7c.js";
40
+ import "./deps-vuWHR8ix.js";
41
41
  import "./memory-DDpj0IVA.js";
42
42
  import "./memory-search-BwYkW6_V.js";
43
43
  import "./manager-BmONwMiP.js";
@@ -75,35 +75,35 @@ import "./progress-DZRfIFVb.js";
75
75
  import "./replies-Do40G8fO.js";
76
76
  import "./skills-remote-BghdrdFV.js";
77
77
  import "./skill-commands-QW8zKXC_.js";
78
- import { a as stylePromptMessage } from "./prompt-style-Wxki8rmI.js";
78
+ import { i as stylePromptMessage } from "./prompt-style-CWAacuMq.js";
79
79
  import "./pairing-labels-D2yOKhoV.js";
80
- import "./program-context-B2v5DYdk.js";
80
+ import "./program-context-BJ6EvoUW.js";
81
81
  import "./skills-status-BWP08hYK.js";
82
82
  import { n as inheritOptionFromParent } from "./command-options-DEPpN8NK.js";
83
- import { r as installCompletion } from "./completion-cli-C0A6ihvd.js";
83
+ import { r as installCompletion } from "./completion-cli-BpN_WF59.js";
84
84
  import "./managed-up-BykEd-7K.js";
85
85
  import "./daemon-install-helpers-xM3QqMXu.js";
86
86
  import "./systemd-CmxDYXvt.js";
87
87
  import { t as resolveGatewayService } from "./service-Bsg622jp.js";
88
88
  import "./service-audit-BRLbvcxT.js";
89
89
  import "./shared-Cg_Qr7wd.js";
90
- import { a as terminateStaleGatewayPids, i as renderRestartDiagnostics, o as waitForGatewayHealthyRestart, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-DgdTmunC.js";
90
+ import { a as terminateStaleGatewayPids, i as renderRestartDiagnostics, o as waitForGatewayHealthyRestart, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-DUfzwrLw.js";
91
91
  import "./diagnostics-BkyuWtqz.js";
92
92
  import { t as renderTable } from "./table-DQLeG14F.js";
93
- import "./health-Bn6vWkyn.js";
94
- import "./heartbeat-runner-B6wpYjuS.js";
93
+ import "./health-c7sJIXY9.js";
94
+ import "./heartbeat-runner-DZuApcd1.js";
95
95
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as resolveEffectiveUpdateChannel, m as normalizeUpdateChannel, n as compareSemverStrings, r as fetchNpmTagVersion, s as DEFAULT_GIT_CHANNEL, t as checkUpdateStatus, u as channelToNpmTag } from "./update-check-xTT04LKM.js";
96
96
  import "./logging-Dv2wthF_.js";
97
97
  import "./installs-DDbnXe4x.js";
98
98
  import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-Dew6hqdf.js";
99
99
  import "./channels-status-issues-DYs3uRFt.js";
100
100
  import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-BPiwyBsT.js";
101
- import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-Iqgqs2dk.js";
102
- import "./note-DrwZGnSu.js";
103
- import "./doctor-config-flow-Cd9O0xNE.js";
104
- import "./systemd-linger-9E60sw1j.js";
101
+ import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-ChBrrXIl.js";
102
+ import "./note-DwkETqd-.js";
103
+ import "./doctor-config-flow-Ceaz-Gkk.js";
104
+ import "./systemd-linger-BTw_D-6k.js";
105
105
  import "./health-format-BGbDYfmf.js";
106
- import { a as ensureCompletionCacheExists, i as checkShellCompletionStatus, n as doctorCommand, r as runPostUpdateDoctorRepair, t as selectStyled } from "./prompt-select-styled-BjXEmV9l.js";
106
+ import { a as ensureCompletionCacheExists, i as checkShellCompletionStatus, n as doctorCommand, r as runPostUpdateDoctorRepair, t as selectStyled } from "./prompt-select-styled-yZlzGWDe.js";
107
107
  import os from "node:os";
108
108
  import path from "node:path";
109
109
  import fs from "node:fs/promises";
@@ -2,7 +2,7 @@ import { Cu as formatCliCommand, Qt as readConfigFileSnapshot, Tu as resolveCliN
2
2
  import { H as theme, _ as pathExists } from "./agent-paths-BI1hx-tF.js";
3
3
  import "./send-D7X0_iFp.js";
4
4
  import "./send-BFEd4vCM.js";
5
- import { Kr as trimLogTail } from "./model-catalog-B3hPEPfU.js";
5
+ import { Kr as trimLogTail } from "./model-catalog-DHRVUWBf.js";
6
6
  import "./github-copilot-token-A9DiaCB0.js";
7
7
  import { A as defaultRuntime, Ct as resolveStateDir, gt as resolveGatewayPort } from "./entry.js";
8
8
  import "./reply-prefix-TUhpEtvr.js";
@@ -45,7 +45,7 @@ import "./send-C-su1wPZ.js";
45
45
  import "./outbound-attachment-Bh4FmcYg.js";
46
46
  import "./fetch-BVvWzHT_.js";
47
47
  import "./delivery-queue-55Cityuq.js";
48
- import "./deps-fM7SZdlB.js";
48
+ import "./deps-BoCGz3bU.js";
49
49
  import "./frontmatter-D2UNJikU.js";
50
50
  import "./skills-Dis31awJ.js";
51
51
  import "./skills-remote-CIAB0AXm.js";
@@ -73,13 +73,13 @@ import "./cli-utils-XevKf-tr.js";
73
73
  import { t as formatHelpExamples } from "./help-format-B2DRdx98.js";
74
74
  import "./progress-DkVYFLij.js";
75
75
  import "./replies-FXlmpJVO.js";
76
- import { a as stylePromptMessage } from "./prompt-style-DxKPs6E0.js";
76
+ import { i as stylePromptMessage } from "./prompt-style-Rmj3c-Ir.js";
77
77
  import "./pairing-labels-BCM1S2e_.js";
78
78
  import "./skills-status-Uo2v4O19.js";
79
79
  import { n as inheritOptionFromParent } from "./command-options-j8s8APBQ.js";
80
- import { r as installCompletion } from "./completion-cli-Chx2En3m.js";
81
- import "./register.subclis-DESt0tVl.js";
82
- import "./command-registry-B9_A3_Dx.js";
80
+ import { r as installCompletion } from "./completion-cli-BDgp9s2D.js";
81
+ import "./register.subclis-BtJ07gvR.js";
82
+ import "./command-registry-D0xhHn9Z.js";
83
83
  import "./program-context-CDFrVtWb.js";
84
84
  import "./managed-up-DhYefvn4.js";
85
85
  import "./daemon-install-helpers-BB0qUcut.js";
@@ -87,23 +87,23 @@ import "./systemd-B8OPQXFR.js";
87
87
  import { t as resolveGatewayService } from "./service-2JBjv-ge.js";
88
88
  import "./service-audit-COK5O0cM.js";
89
89
  import "./shared-CACaO8zY.js";
90
- import { a as terminateStaleGatewayPids, i as renderRestartDiagnostics, o as waitForGatewayHealthyRestart, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-DXHOflkW.js";
90
+ import { a as terminateStaleGatewayPids, i as renderRestartDiagnostics, o as waitForGatewayHealthyRestart, r as runDaemonRestart, s as runDaemonInstall } from "./daemon-cli-BwMJ_sub.js";
91
91
  import "./diagnostics-CqDqfqR_.js";
92
92
  import { t as renderTable } from "./table-C0Mj2A8W.js";
93
- import "./health-CdW7K4YP.js";
94
- import "./heartbeat-runner-DIftlHX6.js";
93
+ import "./health-CD-e8iEW.js";
94
+ import "./heartbeat-runner-BTRTcwja.js";
95
95
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as resolveEffectiveUpdateChannel, m as normalizeUpdateChannel, n as compareSemverStrings, r as fetchNpmTagVersion, s as DEFAULT_GIT_CHANNEL, t as checkUpdateStatus, u as channelToNpmTag } from "./update-check-B8tvVfAm.js";
96
96
  import "./logging-DZ32I_SP.js";
97
97
  import "./installs-Cha8QIzO.js";
98
98
  import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-D4rhRm3D.js";
99
99
  import "./channels-status-issues-BSIStb_F.js";
100
100
  import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-BZhzEFaJ.js";
101
- import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-Cd2MGute.js";
102
- import "./note-CLUeye9D.js";
103
- import "./doctor-config-flow-4WutpMTV.js";
104
- import "./systemd-linger-BYFLOJbt.js";
101
+ import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-C6krqlIN.js";
102
+ import "./note-rV2vspIo.js";
103
+ import "./doctor-config-flow-B-I0osH5.js";
104
+ import "./systemd-linger-BlmGMvvA.js";
105
105
  import "./health-format-DEsFwYbP.js";
106
- import { a as ensureCompletionCacheExists, i as checkShellCompletionStatus, n as doctorCommand, r as runPostUpdateDoctorRepair, t as selectStyled } from "./prompt-select-styled-BFIFk4AL.js";
106
+ import { a as ensureCompletionCacheExists, i as checkShellCompletionStatus, n as doctorCommand, r as runPostUpdateDoctorRepair, t as selectStyled } from "./prompt-select-styled-DyUwhQR0.js";
107
107
  import { spawn, spawnSync } from "node:child_process";
108
108
  import os from "node:os";
109
109
  import path from "node:path";
@@ -1,6 +1,6 @@
1
1
  import { md as runCommandWithTimeout } from "./env-C77feXxI.js";
2
2
  import { _ as pathExists } from "./agent-paths-BI1hx-tF.js";
3
- import { Ja as resolveControlUiDistIndexPathForRoot, Kr as trimLogTail, qa as resolveControlUiDistIndexHealth } from "./model-catalog-B3hPEPfU.js";
3
+ import { Ja as resolveControlUiDistIndexPathForRoot, Kr as trimLogTail, qa as resolveControlUiDistIndexHealth } from "./model-catalog-DHRVUWBf.js";
4
4
  import { c as DEFAULT_PACKAGE_CHANNEL, f as isBetaTag, l as DEV_BRANCH, n as compareSemverStrings, o as detectPackageManager$1, p as isStableTag, s as DEFAULT_GIT_CHANNEL, u as channelToNpmTag } from "./update-check-B8tvVfAm.js";
5
5
  import os from "node:os";
6
6
  import path from "node:path";
@@ -1,6 +1,6 @@
1
1
  import { v as pathExists } from "./agent-paths-DmOVZE7g.js";
2
2
  import { $l as runCommandWithTimeout } from "./agent-scope-DHrLr5OF.js";
3
- import { To as resolveControlUiDistIndexPathForRoot, gi as trimLogTail, wo as resolveControlUiDistIndexHealth } from "./reply-jd1xrxXq.js";
3
+ import { To as resolveControlUiDistIndexPathForRoot, gi as trimLogTail, wo as resolveControlUiDistIndexHealth } from "./reply-BRoR6TOO.js";
4
4
  import { c as DEFAULT_PACKAGE_CHANNEL, f as isBetaTag, l as DEV_BRANCH, n as compareSemverStrings, o as detectPackageManager$1, p as isStableTag, s as DEFAULT_GIT_CHANNEL, u as channelToNpmTag } from "./update-check-xTT04LKM.js";
5
5
  import os from "node:os";
6
6
  import path from "node:path";
@@ -2,7 +2,7 @@ import { au as logWebSelfId, cu as pickWebChannel, mu as webAuthExists, ru as WA
2
2
  import "./agent-paths-BI1hx-tF.js";
3
3
  import "./send-D7X0_iFp.js";
4
4
  import "./send-BFEd4vCM.js";
5
- import "./model-catalog-B3hPEPfU.js";
5
+ import "./model-catalog-DHRVUWBf.js";
6
6
  import "./github-copilot-token-A9DiaCB0.js";
7
7
  import "./reply-prefix-TUhpEtvr.js";
8
8
  import "./memory-2keYbXkc.js";
@@ -44,7 +44,7 @@ import "./send-C-su1wPZ.js";
44
44
  import "./outbound-attachment-Bh4FmcYg.js";
45
45
  import "./fetch-BVvWzHT_.js";
46
46
  import "./delivery-queue-55Cityuq.js";
47
- import "./deps-fM7SZdlB.js";
47
+ import "./deps-BoCGz3bU.js";
48
48
  import "./frontmatter-D2UNJikU.js";
49
49
  import "./skills-Dis31awJ.js";
50
50
  import "./skills-remote-CIAB0AXm.js";
@@ -71,11 +71,11 @@ import "./cli-utils-XevKf-tr.js";
71
71
  import "./help-format-B2DRdx98.js";
72
72
  import "./progress-DkVYFLij.js";
73
73
  import "./replies-FXlmpJVO.js";
74
- import "./prompt-style-DxKPs6E0.js";
74
+ import "./prompt-style-Rmj3c-Ir.js";
75
75
  import "./pairing-labels-BCM1S2e_.js";
76
76
  import { n as sendMessageWhatsApp } from "./outbound-J0QDqY1V.js";
77
77
  import { i as waitForWaConnection, t as createWaSocket } from "./session-CU97gi8v.js";
78
- import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-I-U78wmf.js";
78
+ import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-B90TOW9f.js";
79
79
  import { t as loginWeb } from "./login-CuawnITW.js";
80
80
 
81
81
  export { WA_WEB_AUTH_DIR, createWaSocket, logWebSelfId, loginWeb, monitorWebChannel, monitorWebInbox, pickWebChannel, sendMessageWhatsApp, waitForWaConnection, webAuthExists };
@@ -1,6 +1,6 @@
1
1
  import "./github-copilot-token-Dy7Y_jbI.js";
2
2
  import { As as shouldLogVerbose, Ba as resolveGroupSessionKey, Ci as webAuthExists, Co as DEFAULT_MAIN_KEY, Cs as toWhatsappJid, D as readSessionUpdatedAt, E as loadSessionStore, Eo as buildGroupHistoryKey, Ia as resolveChannelGroupPolicy, Is as getChildLogger, La as resolveChannelGroupRequireMention, O as recordSessionMetaFromInbound, Oo as normalizeAgentId, Os as logVerbose, _i as pickWebChannel, as as clamp, di as resolveWhatsAppAccount, fi as WA_WEB_AUTH_DIR, fs as isSelfChatMode, ft as resolveStorePath, gs as resolveJidToE164, k as updateLastRoute, mi as logWebSelfId, ms as normalizeE164, n as createSubsystemLogger, ns as formatCliCommand, pi as getWebAuthAgeMs, ps as jidToE164, qo as defaultRuntime, vt as loadConfig, wo as buildAgentMainSessionKey, xs as sleep, yi as readWebSelfId } from "./paths-OUJyk-5R.js";
3
- import { $ as parseActivationCommand, C as createInboundDebouncer, D as createDedupeCache, E as resolveEnvelopeFormatOptions, G as shouldComputeCommandAuthorized, J as registerUnhandledRejectionHandler, K as buildMentionRegexes, O as getReplyFromConfig, Q as normalizeGroupActivation, T as formatInboundEnvelope, W as hasControlCommand, _ as resolveDmGroupAccessWithCommandGate, b as shouldAckReactionForWhatsApp, c as buildPairingReply, d as buildHistoryContextFromEntries, et as formatDurationPrecise, f as recordPendingHistoryEntryIfEnabled, g as readStoreAllowFromForDmPolicy, h as warnMissingProviderGroupPolicyFallbackOnce, l as resolveMentionGating, m as resolveOpenProviderRuntimeGroupPolicy, o as computeBackoff, p as resolveDefaultGroupPolicy, q as normalizeMentionText, s as sleepWithAbort, tt as enqueueSystemEvent, u as DEFAULT_GROUP_HISTORY_LIMIT, v as resolveDmGroupAccessWithLists, w as resolveInboundDebounceMs, x as dispatchReplyWithBufferedBlockDispatcher } from "./auth-CqkGNO1B.js";
3
+ import { $ as parseActivationCommand, C as createInboundDebouncer, D as createDedupeCache, E as resolveEnvelopeFormatOptions, G as shouldComputeCommandAuthorized, J as registerUnhandledRejectionHandler, K as buildMentionRegexes, O as getReplyFromConfig, Q as normalizeGroupActivation, T as formatInboundEnvelope, W as hasControlCommand, _ as resolveDmGroupAccessWithCommandGate, b as shouldAckReactionForWhatsApp, c as buildPairingReply, d as buildHistoryContextFromEntries, et as formatDurationPrecise, f as recordPendingHistoryEntryIfEnabled, g as readStoreAllowFromForDmPolicy, h as warnMissingProviderGroupPolicyFallbackOnce, l as resolveMentionGating, m as resolveOpenProviderRuntimeGroupPolicy, o as computeBackoff, p as resolveDefaultGroupPolicy, q as normalizeMentionText, s as sleepWithAbort, tt as enqueueSystemEvent, u as DEFAULT_GROUP_HISTORY_LIMIT, v as resolveDmGroupAccessWithLists, w as resolveInboundDebounceMs, x as dispatchReplyWithBufferedBlockDispatcher } from "./auth-D6aXaEgt.js";
4
4
  import "./send-D96gGRQz.js";
5
5
  import "./send-BFoI9HuU.js";
6
6
  import "./skill-commands-DvoCSQnx.js";
@@ -2,14 +2,14 @@ import { $ as loadSessionStore, $a as DEFAULT_MAIN_KEY, Es as shouldLogVerbose,
2
2
  import "./github-copilot-token-DYrFvncE.js";
3
3
  import "./send-vR6HwT94.js";
4
4
  import "./send-BQMxv218.js";
5
- import { A as formatDurationPrecise, C as resolveInboundDebounceMs, D as getReplyFromConfig, E as createDedupeCache, J as hasControlCommand, O as normalizeGroupActivation, R as registerUnhandledRejectionHandler, S as createInboundDebouncer, T as resolveEnvelopeFormatOptions, X as buildMentionRegexes, Y as shouldComputeCommandAuthorized, Z as normalizeMentionText, _ as resolveDmGroupAccessWithCommandGate, b as dispatchReplyWithBufferedBlockDispatcher, c as buildPairingReply, d as buildHistoryContextFromEntries, f as recordPendingHistoryEntryIfEnabled, g as readStoreAllowFromForDmPolicy, h as warnMissingProviderGroupPolicyFallbackOnce, j as enqueueSystemEvent, k as parseActivationCommand, l as resolveMentionGating, m as resolveOpenProviderRuntimeGroupPolicy, o as computeBackoff, p as resolveDefaultGroupPolicy, s as sleepWithAbort, u as DEFAULT_GROUP_HISTORY_LIMIT, v as resolveDmGroupAccessWithLists, w as formatInboundEnvelope, y as shouldAckReactionForWhatsApp } from "./pi-embedded-BZv4Mjvw.js";
5
+ import { A as formatDurationPrecise, C as resolveInboundDebounceMs, D as getReplyFromConfig, E as createDedupeCache, J as hasControlCommand, O as normalizeGroupActivation, R as registerUnhandledRejectionHandler, S as createInboundDebouncer, T as resolveEnvelopeFormatOptions, X as buildMentionRegexes, Y as shouldComputeCommandAuthorized, Z as normalizeMentionText, _ as resolveDmGroupAccessWithCommandGate, b as dispatchReplyWithBufferedBlockDispatcher, c as buildPairingReply, d as buildHistoryContextFromEntries, f as recordPendingHistoryEntryIfEnabled, g as readStoreAllowFromForDmPolicy, h as warnMissingProviderGroupPolicyFallbackOnce, j as enqueueSystemEvent, k as parseActivationCommand, l as resolveMentionGating, m as resolveOpenProviderRuntimeGroupPolicy, o as computeBackoff, p as resolveDefaultGroupPolicy, s as sleepWithAbort, u as DEFAULT_GROUP_HISTORY_LIMIT, v as resolveDmGroupAccessWithLists, w as formatInboundEnvelope, y as shouldAckReactionForWhatsApp } from "./pi-embedded-Dtw2m41q.js";
6
6
  import "./diagnostic-D6XQAXl4.js";
7
7
  import "./diagnostic-session-state-CexmAKza.js";
8
8
  import { t as redactIdentifier } from "./redact-identifier-Cy6Tnhkn.js";
9
9
  import { J as toLocationContext, q as formatLocationText, tt as upsertChannelPairingRequest } from "./send-Da1hCe1A.js";
10
10
  import { m as getAgentScopedMediaLocalRoots, n as loadWebMedia } from "./media-DUBmlR9u.js";
11
11
  import "./pi-model-discovery-DYwyxntg.js";
12
- import "./paths-D2Fac7_V.js";
12
+ import "./paths-BGX-IMoI.js";
13
13
  import "./ssrf-DYsl9qoS.js";
14
14
  import { n as redactSensitiveUrlLikeString } from "./redact-sensitive-url-Dp_gOi-q.js";
15
15
  import { c as resolveIdentityNamePrefix, l as resolveMessagePrefix, t as createReplyPrefixOptions } from "./reply-prefix-DwrVxkMY.js";
@@ -2,7 +2,7 @@ import { $ as recordSessionMetaFromInbound, $o as clamp, As as getChildLogger, D
2
2
  import "./github-copilot-token-CNsqwfnE.js";
3
3
  import "./send-CFSRf7De.js";
4
4
  import "./send-gtmn6YeH.js";
5
- import { A as formatDurationPrecise, C as resolveInboundDebounceMs, D as getReplyFromConfig, E as createDedupeCache, J as hasControlCommand, O as normalizeGroupActivation, R as registerUnhandledRejectionHandler, S as createInboundDebouncer, T as resolveEnvelopeFormatOptions, X as buildMentionRegexes, Y as shouldComputeCommandAuthorized, Z as normalizeMentionText, _ as resolveDmGroupAccessWithCommandGate, b as dispatchReplyWithBufferedBlockDispatcher, c as buildPairingReply, d as buildHistoryContextFromEntries, f as recordPendingHistoryEntryIfEnabled, g as readStoreAllowFromForDmPolicy, h as warnMissingProviderGroupPolicyFallbackOnce, j as enqueueSystemEvent, k as parseActivationCommand, l as resolveMentionGating, m as resolveOpenProviderRuntimeGroupPolicy, o as computeBackoff, p as resolveDefaultGroupPolicy, s as sleepWithAbort, u as DEFAULT_GROUP_HISTORY_LIMIT, v as resolveDmGroupAccessWithLists, w as formatInboundEnvelope, y as shouldAckReactionForWhatsApp } from "./pi-embedded-B-qXRnRI.js";
5
+ import { A as formatDurationPrecise, C as resolveInboundDebounceMs, D as getReplyFromConfig, E as createDedupeCache, J as hasControlCommand, O as normalizeGroupActivation, R as registerUnhandledRejectionHandler, S as createInboundDebouncer, T as resolveEnvelopeFormatOptions, X as buildMentionRegexes, Y as shouldComputeCommandAuthorized, Z as normalizeMentionText, _ as resolveDmGroupAccessWithCommandGate, b as dispatchReplyWithBufferedBlockDispatcher, c as buildPairingReply, d as buildHistoryContextFromEntries, f as recordPendingHistoryEntryIfEnabled, g as readStoreAllowFromForDmPolicy, h as warnMissingProviderGroupPolicyFallbackOnce, j as enqueueSystemEvent, k as parseActivationCommand, l as resolveMentionGating, m as resolveOpenProviderRuntimeGroupPolicy, o as computeBackoff, p as resolveDefaultGroupPolicy, s as sleepWithAbort, u as DEFAULT_GROUP_HISTORY_LIMIT, v as resolveDmGroupAccessWithLists, w as formatInboundEnvelope, y as shouldAckReactionForWhatsApp } from "./pi-embedded-G-VYb-eT.js";
6
6
  import { c as resolveIdentityNamePrefix, l as resolveMessagePrefix, t as createReplyPrefixOptions } from "./reply-prefix-Bitnsmpd.js";
7
7
  import "./diagnostic-_BiQ6GgD.js";
8
8
  import "./diagnostic-session-state-CL_QxyRg.js";
@@ -10,7 +10,7 @@ import { t as redactIdentifier } from "./redact-identifier-CA9VAhZA.js";
10
10
  import { J as toLocationContext, q as formatLocationText, tt as upsertChannelPairingRequest } from "./send-C3B8eaL_.js";
11
11
  import { m as getAgentScopedMediaLocalRoots, n as loadWebMedia } from "./media-B1OiuFFn.js";
12
12
  import "./pi-model-discovery-DsJSYjlQ.js";
13
- import "./paths-DuymR5Rg.js";
13
+ import "./paths-Bzz-O3FX.js";
14
14
  import "./ssrf-9SwDSKOO.js";
15
15
  import { n as redactSensitiveUrlLikeString } from "./redact-sensitive-url-DAsCH1Zm.js";
16
16
  import "./path-alias-guards-B_y00xGw.js";
@@ -1,5 +1,5 @@
1
1
  import { U as getActivePluginRegistry } from "./agent-scope-DHrLr5OF.js";
2
- import { Nt as loadFasedAgentPlugins, gr as createWebSearchProviderToolDefinition } from "./reply-jd1xrxXq.js";
2
+ import { Nt as loadFasedAgentPlugins, gr as createWebSearchProviderToolDefinition } from "./reply-BRoR6TOO.js";
3
3
 
4
4
  //#region src/plugins/web-search-providers.shared.ts
5
5
  function compareWebSearchProvidersAlphabetically(left, right) {
@@ -1,5 +1,5 @@
1
1
  import { p as getActivePluginRegistry } from "./env-C77feXxI.js";
2
- import { c as loadFasedAgentPlugins, qn as createWebSearchProviderToolDefinition } from "./model-catalog-B3hPEPfU.js";
2
+ import { c as loadFasedAgentPlugins, qn as createWebSearchProviderToolDefinition } from "./model-catalog-DHRVUWBf.js";
3
3
 
4
4
  //#region src/plugins/web-search-providers.shared.ts
5
5
  function compareWebSearchProvidersAlphabetically(left, right) {
@@ -2,7 +2,7 @@ import "./paths-C9FmTW1x.js";
2
2
  import "./agent-paths-DmOVZE7g.js";
3
3
  import { Gu as WA_WEB_AUTH_DIR, Xu as pickWebChannel, nd as webAuthExists, qu as logWebSelfId } from "./agent-scope-DHrLr5OF.js";
4
4
  import "./commands-registry-BRvZQ1jh.js";
5
- import "./reply-jd1xrxXq.js";
5
+ import "./reply-BRoR6TOO.js";
6
6
  import "./errors-Dx3S3Nrp.js";
7
7
  import "./send-C5_fB8YQ.js";
8
8
  import "./send-jxmRy65D.js";
@@ -37,7 +37,7 @@ import "./ssrf-Blf4NrHS.js";
37
37
  import "./outbound-attachment-CsXJwFsg.js";
38
38
  import "./fetch-CnCPOuq7.js";
39
39
  import "./delivery-queue-DKRjVFlq.js";
40
- import "./deps-BVX6nj7c.js";
40
+ import "./deps-vuWHR8ix.js";
41
41
  import "./memory-DDpj0IVA.js";
42
42
  import "./memory-search-BwYkW6_V.js";
43
43
  import "./manager-BmONwMiP.js";
@@ -74,9 +74,9 @@ import "./progress-DZRfIFVb.js";
74
74
  import "./replies-Do40G8fO.js";
75
75
  import "./skills-remote-BghdrdFV.js";
76
76
  import "./skill-commands-QW8zKXC_.js";
77
- import "./prompt-style-Wxki8rmI.js";
77
+ import "./prompt-style-CWAacuMq.js";
78
78
  import "./pairing-labels-D2yOKhoV.js";
79
- import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-kLuTpWVX.js";
79
+ import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-rogzKqNR.js";
80
80
  import { n as sendMessageWhatsApp } from "./outbound-DIee7LFn.js";
81
81
  import { i as waitForWaConnection, t as createWaSocket } from "./session-hHLfAOAa.js";
82
82
  import { t as loginWeb } from "./login-C4GMmboz.js";
@@ -27,6 +27,50 @@ network. The intended pattern is loopback-first: keep the gateway on
27
27
  - keep `gateway.bind: "loopback"` unless you need a direct tailnet bind
28
28
  - use `funnel` only when you truly need public ingress
29
29
 
30
+ ## Other VPNs and Mullvad
31
+
32
+ For Fased hosted setup, do not run another VPN beside Tailscale while verifying
33
+ dashboard and SSH access. Shut down Mullvad, Proton VPN, NordVPN, corporate VPN
34
+ clients, browser VPNs, and device-level VPN apps before you start the hosted
35
+ installer or before you confirm Tailscale SSH. Other VPNs often change firewall
36
+ rules, DNS behavior, or routes in ways that break MagicDNS, `tailscale ping`,
37
+ or `ssh app@YOUR_VPS_TAILSCALE_NAME`.
38
+
39
+ If you need Mullvad privacy while using Tailscale, use Tailscale's paid
40
+ **Mullvad VPN add-on**. In Tailscale docs this is called **Mullvad exit nodes**:
41
+ Mullvad servers appear as Tailscale exit nodes in your tailnet. This is not a
42
+ Fased plugin and not a local package to install.
43
+
44
+ What it supports:
45
+
46
+ - **Supported VPN provider:** Mullvad only.
47
+ - **Not covered:** Proton VPN, NordVPN, corporate VPNs, browser VPNs, or other
48
+ VPN providers.
49
+ - **Where to enable:** Tailscale admin console.
50
+ - **Where to choose a region/server:** the Tailscale client, after the device is
51
+ granted Mullvad access.
52
+
53
+ Basic setup:
54
+
55
+ 1. Open the Tailscale admin console.
56
+ 2. Go to **Settings > General**.
57
+ 3. Scroll to **Mullvad VPN** and select **Configure**.
58
+ 4. Complete the checkout flow for Mullvad licenses.
59
+ 5. Add the devices that should use Mullvad exit nodes, or manage access through
60
+ the tailnet policy file with the `mullvad` node attribute.
61
+ 6. On the local computer, open the Tailscale client and select a Mullvad exit
62
+ node.
63
+
64
+ For current Mullvad regions and servers, use the Mullvad server list linked
65
+ from Tailscale's Mullvad exit-node documentation. If your location is not
66
+ available there, the Tailscale add-on will not make it available in Fased.
67
+
68
+ References:
69
+
70
+ - Tailscale: [Can I use Tailscale alongside other VPNs?](https://tailscale.com/docs/reference/faq/other-vpns)
71
+ - Tailscale: [Mullvad exit nodes](https://tailscale.com/docs/features/exit-nodes/mullvad-exit-nodes)
72
+ - Mullvad: [Servers](https://mullvad.net/servers)
73
+
30
74
  ## First-time setup
31
75
 
32
76
  For a hosted VPS, use the normal hosted installer. It starts Tailscale on the
@@ -152,9 +152,15 @@ recovery options and VPS provider console access working.
152
152
  That is the computer where you will open the dashboard and run SSH checks.
153
153
  Before you start the remote VPS installer, shut down local VPNs such as
154
154
  Mullvad, Proton VPN, NordVPN, corporate VPN clients, and browser/device VPN
155
- apps. Other VPNs can override DNS, firewall rules, or the `100.64.0.0/10`
156
- address range that Tailscale uses. Re-enable them only after Tailscale SSH
157
- and the dashboard work, and use split tunneling if that VPN must stay on.
155
+ apps. For Fased hosted setup, do not run another VPN beside Tailscale while
156
+ verifying dashboard and SSH access. Other VPNs can override DNS, firewall
157
+ rules, or the `100.64.0.0/10` address range that Tailscale uses.
158
+
159
+ If you need Mullvad-style privacy while using Tailscale, use Tailscale's
160
+ paid Mullvad VPN add-on instead of running the Mullvad app beside
161
+ Tailscale. That add-on supports Mullvad only; it does not cover Proton,
162
+ NordVPN, corporate VPN clients, or other VPN providers. See
163
+ [Other VPNs and Mullvad](/gateway/tailscale#other-vpns-and-mullvad).
158
164
 
159
165
  <Tabs>
160
166
  <Tab title="Windows">
@@ -325,8 +331,14 @@ recovery options and VPS provider console access working.
325
331
  cannot connect to local `tailscaled`, the local Tailscale service is not
326
332
  running; start it and sign in before continuing. A separate VPN on your own
327
333
  computer can interfere with Tailscale DNS or routing. Turn the other VPN off
328
- for the cleanest setup. If it must stay on, use the `100.x.x.x` Tailscale IP
329
- instead of the hostname.
334
+ for hosted setup. If it must stay on later, use the `100.x.x.x` Tailscale IP
335
+ instead of the hostname and configure split tunneling in that VPN.
336
+
337
+ If the VPN you want is Mullvad, prefer Tailscale's paid Mullvad VPN add-on
338
+ instead of running the Mullvad desktop/mobile VPN app beside Tailscale. The
339
+ add-on is enabled in the Tailscale admin console, then granted to devices;
340
+ it supports Mullvad only. See
341
+ [Other VPNs and Mullvad](/gateway/tailscale#other-vpns-and-mullvad).
330
342
 
331
343
  If `tailscale ping 100.x.x.x` works but
332
344
  `ssh app@YOUR_VPS_TAILSCALE_NAME` fails with a hostname/DNS error,
@@ -605,6 +617,15 @@ Use this order for a new install:
605
617
  Successful installation means Fased is installed. It does not replace the
606
618
  setup checks for chat apps, services, wallets, mining, or network roles.
607
619
 
620
+ For a hosted VPS, keep your local computer signed into Tailscale whenever you
621
+ need the hosted dashboard or `ssh app@YOUR_VPS_TAILSCALE_NAME`. If the
622
+ dashboard or SSH stops working after you re-enable another VPN, turn that VPN
623
+ off and test `tailscale status`, `tailscale ping`, and the `100.x.x.x`
624
+ Tailscale IP. For Mullvad, use Tailscale's paid Mullvad VPN add-on/Mullvad exit
625
+ nodes instead of running the Mullvad VPN app beside Tailscale. The add-on is
626
+ Mullvad-only; other VPN providers still need their own split-tunnel or firewall
627
+ workaround.
628
+
608
629
  ## Troubleshooting: `fased` not found
609
630
 
610
631
  <Accordion title="PATH diagnosis and fix">
@@ -61,10 +61,16 @@ Hosted setup uses two machines:
61
61
  Your own computer must join the same Tailscale account/tailnet as the VPS. That
62
62
  is the computer where you will open the dashboard and run SSH checks.
63
63
  Before you start the remote VPS installer, shut down local VPNs such as Mullvad,
64
- Proton VPN, NordVPN, corporate VPN clients, and browser/device VPN apps. Other
65
- VPNs can override DNS, firewall rules, or the `100.64.0.0/10` address range
66
- that Tailscale uses. Re-enable them only after Tailscale SSH and the dashboard
67
- work, and use split tunneling if that VPN must stay on.
64
+ Proton VPN, NordVPN, corporate VPN clients, and browser/device VPN apps. For
65
+ Fased hosted setup, do not run another VPN beside Tailscale while verifying
66
+ dashboard and SSH access. Other VPNs can override DNS, firewall rules, or the
67
+ `100.64.0.0/10` address range that Tailscale uses.
68
+
69
+ If you need Mullvad-style privacy while using Tailscale, use Tailscale's paid
70
+ Mullvad VPN add-on instead of running the Mullvad app beside Tailscale. That
71
+ add-on supports Mullvad only; it does not cover Proton, NordVPN, corporate VPN
72
+ clients, or other VPN providers. See
73
+ [Other VPNs and Mullvad](/gateway/tailscale#other-vpns-and-mullvad).
68
74
 
69
75
  <Tabs>
70
76
  <Tab title="Windows">
@@ -256,9 +262,15 @@ If your own computer says `tailscale: command not found`, return to step 1 and
256
262
  install Tailscale on your local PC first. If `tailscale status` says it cannot
257
263
  connect to local `tailscaled`, the local Tailscale service is not running; start
258
264
  it and sign in before continuing. A separate VPN on your own computer can
259
- interfere with Tailscale DNS or routing. Turn the other VPN off for the cleanest
260
- setup. If it must stay on, use the `100.x.x.x` Tailscale IP instead of the
261
- hostname.
265
+ interfere with Tailscale DNS or routing. Turn the other VPN off for hosted
266
+ setup. If it must stay on later, use the `100.x.x.x` Tailscale IP instead of
267
+ the hostname and configure split tunneling in that VPN.
268
+
269
+ If the VPN you want is Mullvad, prefer Tailscale's paid Mullvad VPN add-on
270
+ instead of running the Mullvad desktop/mobile VPN app beside Tailscale. The
271
+ add-on is enabled in the Tailscale admin console, then granted to devices; it
272
+ supports Mullvad only. See
273
+ [Other VPNs and Mullvad](/gateway/tailscale#other-vpns-and-mullvad).
262
274
 
263
275
  If `tailscale ping 100.x.x.x` works but
264
276
  `ssh app@YOUR_VPS_TAILSCALE_NAME` fails with a hostname/DNS error, Tailscale is
@@ -317,6 +329,14 @@ sudo systemctl status fased-gateway --no-pager
317
329
  sudo journalctl -u fased-gateway -n 120 --no-pager
318
330
  ```
319
331
 
332
+ If the hosted dashboard or SSH works immediately after setup but fails after you
333
+ turn another VPN back on, the VPS is usually still fine. Turn the other VPN off
334
+ and test `tailscale status`, `tailscale ping`, and the `100.x.x.x` Tailscale IP
335
+ from your own computer. For Mullvad, use Tailscale's paid Mullvad VPN
336
+ add-on/Mullvad exit nodes instead of running the Mullvad VPN app beside
337
+ Tailscale. Other VPN providers still need their own split-tunnel or firewall
338
+ workaround.
339
+
320
340
  Root SSH is only for first bootstrap or emergency repair after the hosting
321
341
  profile hardens SSH/UFW. Keep the raw Gateway port closed to the public
322
342
  internet. `http://localhost:18789` is only the advanced SSH tunnel fallback: it
@@ -89,10 +89,19 @@ Choose the setup profile first.
89
89
  fased dashboard
90
90
  ```
91
91
 
92
+ Screenshot: the local installer starts with the Fased Agent header,
93
+ installer status, and the first Local profile choices.
94
+
92
95
  ![Local installer selecting the Local profile](/images/screenshots/local/local-ui-1.png)
93
96
 
97
+ Screenshot: if an existing local config is detected, review the workspace,
98
+ model, gateway mode, and loopback bind before continuing.
99
+
94
100
  ![Local QuickStart gateway settings](/images/screenshots/local/local-ui-2.png)
95
101
 
102
+ Screenshot: setup finishes by printing the local dashboard URL, token
103
+ backup, and health summary.
104
+
96
105
  ![Local dashboard link printed after setup](/images/screenshots/local/final-ui-1.png)
97
106
 
98
107
  </Tab>
@@ -203,6 +212,9 @@ you already know you need separate work profiles.
203
212
  If you choose chat channels during onboarding, the terminal wizard can collect
204
213
  the channel token. You can skip this and add channels later.
205
214
 
215
+ Screenshot: optional chat channel setup can collect a Telegram bot token during
216
+ onboarding, or you can finish and add channels later.
217
+
206
218
  ![Telegram channel setup during onboarding](/images/screenshots/local/chat-ui-1.png)
207
219
 
208
220
  Read next:
@@ -219,6 +231,9 @@ test message from **Chat** before moving into wallet or mining flows.
219
231
 
220
232
  ![Model selection in the Control UI](/images/screenshots/web/agent-model-2.png)
221
233
 
234
+ Screenshot: optional model setup lets you choose a provider and authentication
235
+ method from the terminal, including browser sign-in when supported.
236
+
222
237
  ![Model provider sign-in during local setup](/images/screenshots/local/model-ui-1.png)
223
238
 
224
239
  Read next:
@@ -248,7 +263,8 @@ or hex imports. Do not paste seed phrases into wallet import.
248
263
 
249
264
  ![Wallet cards after Agent, Mining, and Vault setup](/images/screenshots/web/wallet-1.png)
250
265
 
251
- ![Wallet setup in the local installer](/images/screenshots/local/wallet-ui-1.png)
266
+ Screenshot: wallet setup can create or import a Solana wallet, set the RPC URL,
267
+ and confirm which Agent or Mining role should use it.
252
268
 
253
269
  ![Wallet role summary after local setup](/images/screenshots/local/wallet-ui-2.png)
254
270
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/acpx",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "description": "FasedAgent ACP runtime backend via acpx",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/bluebubbles",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "description": "FasedAgent BlueBubbles channel plugin",
5
5
  "type": "module",
6
6
  "fased": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/copilot-proxy",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "private": true,
5
5
  "description": "FasedAgent Copilot Proxy provider plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/diagnostics-otel",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "description": "FasedAgent diagnostics OpenTelemetry exporter",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/discord",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "description": "FasedAgent Discord channel plugin",
5
5
  "type": "module",
6
6
  "fased": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/fased-federation",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "private": true,
5
5
  "description": "Fased federation adapter package scaffold (A2A + admission helpers)",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/feishu",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "description": "FasedAgent Feishu/Lark channel plugin (community maintained by @m1heng)",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/google-gemini-cli-auth",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "private": true,
5
5
  "description": "FasedAgent Gemini CLI OAuth provider plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/googlechat",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "private": true,
5
5
  "description": "FasedAgent Google Chat channel plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/imessage",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "private": true,
5
5
  "description": "FasedAgent iMessage channel plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/irc",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "description": "FasedAgent IRC channel plugin",
5
5
  "type": "module",
6
6
  "fased": {