@fased/fased 0.1.21 → 0.1.23

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 (248) hide show
  1. package/README.md +9 -2
  2. package/dist/{active-listener-B_AAz_Nv.js → active-listener-CILIY2ox.js} +1 -1
  3. package/dist/{agent-scope-Cb1u7HE7.js → agent-scope-DwKyukUg.js} +124 -124
  4. package/dist/{agents-BwDWbvDH.js → agents-J1fRpMRy.js} +8 -8
  5. package/dist/{attachment-normalize-C9F-gS4-.js → attachment-normalize-CJWQWDbC.js} +1 -1
  6. package/dist/{attachment-normalize-C9w24bkb.js → attachment-normalize-Din9M1Y4.js} +1 -1
  7. package/dist/{audio-preflight-DGoGnRdo.js → audio-preflight-CiHBO6op.js} +31 -31
  8. package/dist/{audio-preflight-Dg10mePo.js → audio-preflight-D3I9e121.js} +2 -2
  9. package/dist/{audio-preflight-QMOvUkXH.js → audio-preflight-Dpmj_mYE.js} +1 -1
  10. package/dist/{audio-preflight-DnHScDmF.js → audio-preflight-fOBO0I4S.js} +2 -2
  11. package/dist/{audio-preflight-CTs9Ta27.js → audio-preflight-tHKngO6z.js} +1 -1
  12. package/dist/{audit-DJOyIBeV.js → audit-BGrhx_IL.js} +1 -1
  13. package/dist/{audit-DmYUk4AC.js → audit-DQyLAEfl.js} +1 -1
  14. package/dist/{auth-7Dkf1_CI.js → auth-C4Rs_Ca4.js} +5 -5
  15. package/dist/{auth-choice-D9LWnNpF.js → auth-choice-BTahePAl.js} +1 -1
  16. package/dist/{auth-choice-DbTYwdGn.js → auth-choice-ioJ3htvR.js} +1 -1
  17. package/dist/{auth-choice-prompt-D5YuCYf7.js → auth-choice-prompt-Cigxs_6f.js} +1 -1
  18. package/dist/{auth-choice-prompt-DFyVEU7J.js → auth-choice-prompt-Db0yW_LH.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-DY_GHJwO.js → channel-activity-D17GYsMz.js} +1 -1
  26. package/dist/{channel-web-CAJ_OiB2.js → channel-web-CclBHrhb.js} +1 -1
  27. package/dist/{channel-web-X3OJcLB2.js → channel-web-DIRVjokt.js} +1 -1
  28. package/dist/{channels-D9Oj681h.js → channels-A880gMB8.js} +6 -6
  29. package/dist/{channels-BqOjEy1R.js → channels-DWuoO75L.js} +6 -6
  30. package/dist/{channels-cli-DKRuJbjY.js → channels-cli-54FnZFBp.js} +5 -5
  31. package/dist/{channels-cli-D5hZAzoE.js → channels-cli-HVr7lRa7.js} +5 -5
  32. package/dist/{chunk-Cj87uJLo.js → chunk-DfA5CGzI.js} +1 -1
  33. package/dist/cli/daemon-cli.js +1 -1
  34. package/dist/{cli-ClS8EuDK.js → cli-C8OGL6Ju.js} +2 -2
  35. package/dist/{cli-Dm0682Gu.js → cli-cnJ-Fwbu.js} +2 -2
  36. package/dist/{command-registry-C2wqEo64.js → command-registry-BHCwSxmh.js} +9 -9
  37. package/dist/{commands-registry-Du1VUNqv.js → commands-registry-ShBrc7Zz.js} +1 -1
  38. package/dist/{completion-cli-B9mW_que.js → completion-cli-BsgojaxZ.js} +2 -2
  39. package/dist/{completion-cli-DCvm9Xp-.js → completion-cli-DuqDB42S.js} +1 -1
  40. package/dist/{config-cli-680jTQ3-.js → config-cli-B62owpbq.js} +1 -1
  41. package/dist/{config-cli-1SYvQdhO.js → config-cli-nRzwa31Y.js} +1 -1
  42. package/dist/{config-eval-BVvNsPGB.js → config-eval-B5XXAbrm.js} +3 -3
  43. package/dist/{configure-BfhVLgNf.js → configure-ByLqSsRA.js} +12 -12
  44. package/dist/{configure-DQLQp2nb.js → configure-CbMYLFUm.js} +12 -12
  45. package/dist/control-ui/assets/app-DXYMrRJ9.js.map +1 -1
  46. package/dist/{cron-cli-C4hgRvYJ.js → cron-cli-CLNLFdxi.js} +2 -2
  47. package/dist/{cron-cli-DQjdHktC.js → cron-cli-CM9CM1GR.js} +2 -2
  48. package/dist/{daemon-cli-DWhAXx5H.js → daemon-cli-9ids8mMV.js} +1 -1
  49. package/dist/{daemon-cli-B3OUkSy6.js → daemon-cli-w15TQchq.js} +1 -1
  50. package/dist/daemon-cli.js +1 -1
  51. package/dist/{deps-RXAe1X5s.js → deps-BVNeN6gT.js} +1 -1
  52. package/dist/{deps-DdP-Hmxc.js → deps-Uo5boHSY.js} +1 -1
  53. package/dist/{diagnostic-D6XQAXl4.js → diagnostic-B4NKiC20.js} +1 -1
  54. package/dist/entry.js +1 -1
  55. package/dist/extensionAPI.js +1 -1
  56. package/dist/{fetch-BKzFOgku.js → fetch-BH7uURYM.js} +1 -1
  57. package/dist/{fetch-guard-B3bzvmt4.js → fetch-guard-DqpQMLwE.js} +1 -1
  58. package/dist/{filesystem-manager-CrDoOIOx.js → filesystem-manager-DKU5F0fA.js} +4 -4
  59. package/dist/{fs-safe-DcQcXS6I.js → fs-safe-CwUdejUJ.js} +2 -2
  60. package/dist/{gateway-cli-Y450jJFF.js → gateway-cli-C9Os2Z5s.js} +27 -27
  61. package/dist/{gateway-cli-CHukRtBG.js → gateway-cli-CLFeYf4s.js} +27 -27
  62. package/dist/{github-copilot-token-DYrFvncE.js → github-copilot-token-eyrRGmGp.js} +8 -8
  63. package/dist/{health-Db548DTY.js → health-CghndVpq.js} +2 -2
  64. package/dist/{health-C-AsEUPg.js → health-GSYUFoyr.js} +2 -2
  65. package/dist/{heartbeat-runner-CE9O7xVk.js → heartbeat-runner-1b23y_3_.js} +1 -1
  66. package/dist/{heartbeat-runner-DAPP5ojq.js → heartbeat-runner-DPtasJ9O.js} +1 -1
  67. package/dist/{hooks-cli-DpllVSSB.js → hooks-cli-BXZ0yiOV.js} +3 -3
  68. package/dist/{hooks-cli-ApL31lTH.js → hooks-cli-_VHugcqb.js} +3 -3
  69. package/dist/index.js +7 -7
  70. package/dist/{internal-B3yITtDC.js → internal-CU3wrcPl.js} +3 -3
  71. package/dist/{ipv4-Bh1H98-c.js → ipv4-Cb1Ofo1o.js} +2 -2
  72. package/dist/{ipv4-D88X6kcK.js → ipv4-h9TrAq_w.js} +2 -2
  73. package/dist/{lifecycle-D2VlrxY8.js → lifecycle-CBewhyXk.js} +1 -1
  74. package/dist/{lifecycle-C5O_poBp.js → lifecycle-CV1zHjpj.js} +1 -1
  75. package/dist/{list.auth-overview-DQUc2B2l.js → list.auth-overview-C8izvpBJ.js} +1 -1
  76. package/dist/{list.auth-overview-N9tbnvNE.js → list.auth-overview-CvPcpBIP.js} +1 -1
  77. package/dist/llm-slug-generator.js +31 -31
  78. package/dist/{login-BPi6GEMh.js → login-DmSOJJZh.js} +2 -2
  79. package/dist/{login-qr-BaJ9M5z6.js → login-qr-gY230e9k.js} +3 -3
  80. package/dist/{manager-C05ypUW3.js → manager-Cxjfnksb.js} +8 -8
  81. package/dist/{markdown-tables-CBLut_ie.js → markdown-tables-DFtTedxN.js} +1 -1
  82. package/dist/{media-DUBmlR9u.js → media-DZj8v0oe.js} +5 -5
  83. package/dist/{memory-search-tdsFhtIi.js → memory-search-BxRjHrXP.js} +2 -2
  84. package/dist/{model-catalog-BQ5G4eK6.js → model-catalog-Iu_LUOVA.js} +6 -6
  85. package/dist/{models-BObC-MWx.js → models-DqMgO-Ak.js} +4 -4
  86. package/dist/{models-cli-Bcjaf4CI.js → models-cli-C7WASQac.js} +4 -4
  87. package/dist/{models-cli-r2llwGBO.js → models-cli-D6H_Kt3i.js} +5 -5
  88. package/dist/{node-cli-B5TpzQ6U.js → node-cli-B8DI8VK2.js} +2 -2
  89. package/dist/{node-cli-B8V8ar0H.js → node-cli-CGwktXpe.js} +2 -2
  90. package/dist/{onboard-C6Z7OaQ8.js → onboard-BR6vBv2I.js} +6 -6
  91. package/dist/{onboard-D8EOxPOn.js → onboard-C-fjU4uC.js} +6 -6
  92. package/dist/{onboard-channels-C4gBvkYQ.js → onboard-channels-B3tCPpRS.js} +2 -2
  93. package/dist/{onboard-channels-CDr6F5Rc.js → onboard-channels-C1UyGFfb.js} +2 -2
  94. package/dist/{onboard-search-BzpbxIgm.js → onboard-search-CjU6w3Sm.js} +5 -5
  95. package/dist/{onboard-search-BDLus6nY.js → onboard-search-Ds5KeCF_.js} +5 -5
  96. package/dist/{onboarding-CIjqOjDq.js → onboarding-BL3becPO.js} +181 -35
  97. package/dist/{onboarding-DjXH2-ro.js → onboarding-DGAQeYgr.js} +181 -35
  98. package/dist/{openresponses-http-C9x0SEG6.js → openresponses-http-Bcy1YyQY.js} +2 -2
  99. package/dist/{openresponses-http-eMouHu_v.js → openresponses-http-DIR_t4i1.js} +31 -31
  100. package/dist/{openresponses-http-DU9S_V_8.js → openresponses-http-DxsL0uBk.js} +1 -1
  101. package/dist/{openresponses-http-NFMdHWOs.js → openresponses-http-IVnQ_wz0.js} +2 -2
  102. package/dist/{openresponses-http-BA2nkk7t.js → openresponses-http-Qb_KOtcX.js} +1 -1
  103. package/dist/{outbound-BF3W1nJQ.js → outbound-BtgGTj4E.js} +6 -6
  104. package/dist/{outbound-attachment-CZV6JZkx.js → outbound-attachment-NKTzAe-U.js} +2 -2
  105. package/dist/{parent-default-help-zu6kW9Un.js → parent-default-help-BJGqN88G.js} +1 -1
  106. package/dist/{parent-default-help-k4GD2-UF.js → parent-default-help-XXsayZks.js} +1 -1
  107. package/dist/{path-alias-guards--dquYHnR.js → path-alias-guards-BgsM3Cb3.js} +1 -1
  108. package/dist/{paths-BGX-IMoI.js → paths-57KGLbK2.js} +22 -22
  109. package/dist/{pi-embedded-DPElH0OZ.js → pi-embedded-CZAiurHo.js} +5 -5
  110. package/dist/{pi-embedded-Pkm2p81t.js → pi-embedded-qk5CdQmR.js} +239 -239
  111. package/dist/{pi-model-discovery-DYwyxntg.js → pi-model-discovery-CfcnLOyX.js} +7 -7
  112. package/dist/pi-model-discovery-runtime-D85aZCOu.js +5 -0
  113. package/dist/{plugin-registry-DEewJtHt.js → plugin-registry-Bw0a_OGC.js} +1 -1
  114. package/dist/{plugin-registry-DfO1RfZv.js → plugin-registry-Dqk6vxYj.js} +1 -1
  115. package/dist/plugin-sdk/{audio-preflight-a_1hr0Eg.js → audio-preflight-BO8XDtTk.js} +1 -1
  116. package/dist/plugin-sdk/{audio-preflight-L8bE2tgB.js → audio-preflight-DK-6iXZY.js} +1 -1
  117. package/dist/plugin-sdk/channel-plugin-common.js +1 -1
  118. package/dist/plugin-sdk/{channel-web-BNlpZrWA.js → channel-web-DgXfvJo-.js} +1 -1
  119. package/dist/plugin-sdk/command-status.js +1 -1
  120. package/dist/plugin-sdk/index.js +2 -2
  121. package/dist/plugin-sdk/{openresponses-http-DuRGQn_a.js → openresponses-http-DBFqruTK.js} +1 -1
  122. package/dist/plugin-sdk/{openresponses-http-BBdkt744.js → openresponses-http-RBdNxv8F.js} +1 -1
  123. package/dist/plugin-sdk/{pi-model-discovery-runtime-FgSYY3zE.js → pi-model-discovery-runtime-BWcaNxzp.js} +1 -1
  124. package/dist/plugin-sdk/{registry-DyRgZdL8.js → registry-DXXOSq_V.js} +8 -8
  125. package/dist/plugin-sdk/{reply-DclM907b.js → reply-Bb9pzXn4.js} +5 -5
  126. package/dist/plugin-sdk/src/brand.d.ts +2 -2
  127. package/dist/plugin-sdk/{status-EnvYKAtO.js → status-CHo58oXD.js} +5 -5
  128. package/dist/plugin-sdk/{web-C0nKlODk.js → web-B-fwFsth.js} +1 -1
  129. package/dist/plugin-sdk/{web-BrtGwPHN.js → web-BIIifta2.js} +2 -2
  130. package/dist/{plugins-cli-BU7lm9mm.js → plugins-cli-BKlKaixI.js} +5 -5
  131. package/dist/{plugins-cli-Be4GLYdI.js → plugins-cli-dvRFoJCC.js} +5 -5
  132. package/dist/{program-B78oSJVp.js → program-P-9mYfYw.js} +7 -7
  133. package/dist/{program-context-DpABaPXE.js → program-context-DZ2qDI4u.js} +24 -24
  134. package/dist/{prompt-select-styled-DI5ODziX.js → prompt-select-styled-CdVuqLJH.js} +4 -4
  135. package/dist/{prompt-select-styled-DmcQ0_hv.js → prompt-select-styled-DHjjwvXl.js} +4 -4
  136. package/dist/{pw-ai-42y3optV.js → pw-ai-CmgZwdpF.js} +5 -5
  137. package/dist/{qmd-manager-BPz-XVY5.js → qmd-manager-B4jAaAzx.js} +5 -5
  138. package/dist/{qmd-scope-D2okAldm.js → qmd-scope-BdblEj4C.js} +1 -1
  139. package/dist/{query-expansion-f4DE13gJ.js → query-expansion-JhTilyB1.js} +2 -2
  140. package/dist/{register.agent-FC9A__Az.js → register.agent-Be3pMMEj.js} +8 -8
  141. package/dist/{register.agent-DOychJ9q.js → register.agent-rgc26ryI.js} +9 -9
  142. package/dist/{register.configure-ybGicOMR.js → register.configure-BKYZzj-a.js} +12 -12
  143. package/dist/{register.configure-i3gbc5Cc.js → register.configure-DUgwZXRG.js} +12 -12
  144. package/dist/{register.maintenance-CYX_k6x1.js → register.maintenance-CEB2_x4K.js} +8 -8
  145. package/dist/{register.maintenance-MPPzwTam.js → register.maintenance-OE1jM64G.js} +9 -9
  146. package/dist/{register.message-D6NFTigk.js → register.message-CUE4ZFjr.js} +3 -3
  147. package/dist/{register.message-C_Q6o32_.js → register.message-vxrokTGv.js} +3 -3
  148. package/dist/{register.onboard-DqR_m0_p.js → register.onboard-Cyymwvc3.js} +14 -14
  149. package/dist/{register.onboard-PbsAD-eY.js → register.onboard-Dg3786vL.js} +14 -14
  150. package/dist/{register.setup-COidGsw2.js → register.setup-B6uH9Fkv.js} +14 -14
  151. package/dist/{register.setup-DMqotP6N.js → register.setup-BNk3o4bu.js} +14 -14
  152. package/dist/{register.status-health-sessions-CeY5Pzgk.js → register.status-health-sessions-DXgm8jTd.js} +6 -6
  153. package/dist/{register.status-health-sessions-CPBz-3k7.js → register.status-health-sessions-n5YTxXMt.js} +6 -6
  154. package/dist/{register.subclis-Dxe0Sco3.js → register.subclis-h2rwp41b.js} +16 -16
  155. package/dist/{replies-Bn06Bh1x.js → replies-afs2sQ1G.js} +2 -2
  156. package/dist/{reply-701mJB_S.js → reply-C6zXCUnw.js} +6 -6
  157. package/dist/{reply-prefix-DwrVxkMY.js → reply-prefix-CG0zciBg.js} +1 -1
  158. package/dist/{resolve-route-B4dOoe-E.js → resolve-route-DZkIcri6.js} +1 -1
  159. package/dist/{run-main-BvouUOJB.js → run-main-BW1xk67k.js} +14 -14
  160. package/dist/{runtime-helper-grants-CjDNw01t.js → runtime-helper-grants-BotyKHoQ.js} +1 -1
  161. package/dist/{runtime-helper-grants-B5q5llgE.js → runtime-helper-grants-DlthXnch.js} +1 -1
  162. package/dist/{sandbox-cli-MNviI01s.js → sandbox-cli-B74LKmmu.js} +2 -2
  163. package/dist/{sandbox-cli-DKUHq66f.js → sandbox-cli-DVrOgz6X.js} +2 -2
  164. package/dist/{security-cli-C4J7sHdd.js → security-cli-B_v3gSPc.js} +3 -3
  165. package/dist/{security-cli-D2jFeCER.js → security-cli-DUh-3-R1.js} +3 -3
  166. package/dist/{send-vR6HwT94.js → send-CABrQiXU.js} +4 -4
  167. package/dist/{send-BQMxv218.js → send-CUYy-rA3.js} +7 -7
  168. package/dist/{send-kLcLFjb8.js → send-DE1no-h6.js} +5 -5
  169. package/dist/{send-BsajjIj8.js → send-iIy3frXq.js} +5 -5
  170. package/dist/{send-Da1hCe1A.js → send-lQXOUIaW.js} +18 -18
  171. package/dist/{server-CvQUqV31.js → server-BWmtB5RG.js} +2 -2
  172. package/dist/{server-BRsV4GHd.js → server-CVXoSpqC.js} +2 -2
  173. package/dist/{server-cron-BV2pPZ-O.js → server-cron-D0oLzDes.js} +2 -2
  174. package/dist/{server-cron-C-3djfm_.js → server-cron-DBSvrOWz.js} +2 -2
  175. package/dist/{server-node-events-Ce-RXuis.js → server-node-events-BGkUHSkq.js} +3 -3
  176. package/dist/{server-node-events-Bi8FQeYu.js → server-node-events-TmYB-LGW.js} +3 -3
  177. package/dist/{session-ZMAktQw4.js → session-TK9Idt8g.js} +5 -5
  178. package/dist/{skill-commands-BP6zVlmg.js → skill-commands-CCjZMCdx.js} +24 -24
  179. package/dist/{status-DoLjTnlQ.js → status-C1qehkux.js} +1 -1
  180. package/dist/{status-CIb_4gfm.js → status-CGYle9wh.js} +4 -4
  181. package/dist/{status-D9As1GK-.js → status-DVTZ42Xi.js} +1 -1
  182. package/dist/{status-BiHSisy7.js → status-hNS_-DU5.js} +4 -4
  183. package/dist/{tables-DMwrn7NN.js → tables-H4kq3TrS.js} +1 -1
  184. package/dist/{target-errors-CR_hozUt.js → target-errors-9BsSMzQY.js} +2 -2
  185. package/dist/{tool-loop-detection-DZ-oTJiQ.js → tool-loop-detection-D4MYRJWP.js} +2 -2
  186. package/dist/{tui-BpbyDMEE.js → tui-ARPlmctm.js} +1 -1
  187. package/dist/{tui-D9armVLc.js → tui-D6_aw9hu.js} +1 -1
  188. package/dist/{tui-cli-lN5CL6pA.js → tui-cli-CDBUp2y3.js} +3 -3
  189. package/dist/{tui-cli-A_j8l8a3.js → tui-cli-CYkhnUmj.js} +3 -3
  190. package/dist/{update-cli-DRefGXK8.js → update-cli-CVPEyzw1.js} +10 -10
  191. package/dist/{update-cli-B8_evObo.js → update-cli-ChNYv3li.js} +9 -9
  192. package/dist/{update-runner-DnLLf66O.js → update-runner-CMe4a4QF.js} +1 -1
  193. package/dist/{update-runner-Bd7n68kz.js → update-runner-dCQywbJs.js} +1 -1
  194. package/dist/{web-D-SMykKz.js → web-BIREWy8I.js} +35 -35
  195. package/dist/{web-778GrijN.js → web-Bly-ch0b.js} +1 -1
  196. package/dist/{web-CPKh7bSP.js → web-BvK9MRcp.js} +1 -1
  197. package/dist/{web-DEuBtNld.js → web-CCLojlog.js} +3 -3
  198. package/dist/{web-Z5JZl5Nc.js → web-CvJzsQ59.js} +3 -3
  199. package/dist/{web-search-providers.runtime-AAOfSU2b.js → web-search-providers.runtime-BCjJQLBJ.js} +1 -1
  200. package/dist/{web-search-providers.runtime-DcgcyEiV.js → web-search-providers.runtime-DCy32Tl0.js} +1 -1
  201. package/dist/{whatsapp-actions-favixTth.js → whatsapp-actions-C0w9GEJM.js} +12 -12
  202. package/docs/install/index.md +8 -1
  203. package/docs/install/installer.md +9 -6
  204. package/docs/install/vps.md +9 -2
  205. package/docs/start/wizard.md +9 -2
  206. package/extensions/acpx/package.json +1 -1
  207. package/extensions/bluebubbles/package.json +1 -1
  208. package/extensions/copilot-proxy/package.json +1 -1
  209. package/extensions/diagnostics-otel/package.json +1 -1
  210. package/extensions/discord/package.json +1 -1
  211. package/extensions/fased-federation/package.json +1 -1
  212. package/extensions/feishu/package.json +1 -1
  213. package/extensions/google-gemini-cli-auth/package.json +1 -1
  214. package/extensions/googlechat/package.json +1 -1
  215. package/extensions/imessage/package.json +1 -1
  216. package/extensions/irc/package.json +1 -1
  217. package/extensions/line/package.json +1 -1
  218. package/extensions/llm-task/package.json +1 -1
  219. package/extensions/lobster/package.json +1 -1
  220. package/extensions/matrix/CHANGELOG.md +12 -0
  221. package/extensions/matrix/package.json +1 -1
  222. package/extensions/mattermost/package.json +1 -1
  223. package/extensions/memory-core/package.json +1 -1
  224. package/extensions/memory-lancedb/package.json +1 -1
  225. package/extensions/minimax-portal-auth/package.json +1 -1
  226. package/extensions/msteams/CHANGELOG.md +12 -0
  227. package/extensions/msteams/package.json +1 -1
  228. package/extensions/nextcloud-talk/package.json +1 -1
  229. package/extensions/nostr/CHANGELOG.md +12 -0
  230. package/extensions/nostr/package.json +1 -1
  231. package/extensions/open-prose/package.json +1 -1
  232. package/extensions/sat-mining/package.json +1 -1
  233. package/extensions/signal/package.json +1 -1
  234. package/extensions/slack/package.json +1 -1
  235. package/extensions/synology-chat/package.json +1 -1
  236. package/extensions/telegram/package.json +1 -1
  237. package/extensions/tlon/package.json +1 -1
  238. package/extensions/twitch/CHANGELOG.md +12 -0
  239. package/extensions/twitch/package.json +1 -1
  240. package/extensions/voice-call/CHANGELOG.md +12 -0
  241. package/extensions/voice-call/package.json +1 -1
  242. package/extensions/whatsapp/package.json +1 -1
  243. package/extensions/zalo/CHANGELOG.md +12 -0
  244. package/extensions/zalo/package.json +1 -1
  245. package/extensions/zalouser/CHANGELOG.md +12 -0
  246. package/extensions/zalouser/package.json +1 -1
  247. package/package.json +1 -1
  248. package/dist/pi-model-discovery-runtime-BhaI9PU2.js +0 -5
@@ -1,6 +1,6 @@
1
1
  import { Cu as formatCliCommand, Fn as ensureActiveMemoryPluginAllowlisted, Gu as resolveDefaultAgentId, Qt as readConfigFileSnapshot, Wu as resolveAgentWorkspaceDir, br as collectConfigServiceEnvVars, ma as ensureAuthProfileStore, tn as writeConfigFile } from "./env-C77feXxI.js";
2
2
  import { H as theme, x as resolveUserPath } from "./agent-paths-BI1hx-tF.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-BQ5G4eK6.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-Iu_LUOVA.js";
4
4
  import { A as defaultRuntime, Ct as resolveStateDir, E as redactSensitiveText, 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-B87UVKiT.js";
@@ -16,14 +16,14 @@ import { a as resolveHostedOnboardingGatewayStartupMode, i as resolveGatewayStar
16
16
  import { d as buildSystemdUnit, r as isSystemdUserServiceAvailable } from "./systemd-B8OPQXFR.js";
17
17
  import { t as resolveGatewayService } from "./service-2JBjv-ge.js";
18
18
  import { n as auditGatewayServiceConfig, t as SERVICE_AUDIT_CODES } from "./service-audit-COK5O0cM.js";
19
- import { a as promptRemoteGatewayConfig, n as getTailscaleMissingBinNoteLines, r as setupSkills, t as validateIPv4AddressInput, u as promptCustomApiConfig } from "./ipv4-D88X6kcK.js";
20
- import { s as waitForHostedDashboardBrowserPath } from "./health-Db548DTY.js";
21
- import { n as warnIfModelConfigLooksOff, r as applyAuthChoice } from "./auth-choice-DbTYwdGn.js";
22
- import { t as promptAuthChoiceGrouped } from "./auth-choice-prompt-D5YuCYf7.js";
19
+ import { a as promptRemoteGatewayConfig, n as getTailscaleMissingBinNoteLines, r as setupSkills, t as validateIPv4AddressInput, u as promptCustomApiConfig } from "./ipv4-h9TrAq_w.js";
20
+ import { s as waitForHostedDashboardBrowserPath } from "./health-CghndVpq.js";
21
+ import { n as warnIfModelConfigLooksOff, r as applyAuthChoice } from "./auth-choice-ioJ3htvR.js";
22
+ import { t as promptAuthChoiceGrouped } from "./auth-choice-prompt-Cigxs_6f.js";
23
23
  import { n as logConfigUpdated } from "./logging-DZ32I_SP.js";
24
- import { n as setupChannels } from "./onboard-channels-CDr6F5Rc.js";
24
+ import { n as setupChannels } from "./onboard-channels-C1UyGFfb.js";
25
25
  import { t as buildWorkspaceHookStatus } from "./hooks-status-DRZciWMZ.js";
26
- import { t as runTui } from "./tui-BpbyDMEE.js";
26
+ import { t as runTui } from "./tui-ARPlmctm.js";
27
27
  import { spawn, spawnSync } from "node:child_process";
28
28
  import os from "node:os";
29
29
  import path from "node:path";
@@ -31,6 +31,7 @@ import fs from "node:fs";
31
31
  import fs$1 from "node:fs/promises";
32
32
  import { Writable } from "node:stream";
33
33
  import net from "node:net";
34
+ import { Buffer as Buffer$1 } from "node:buffer";
34
35
 
35
36
  //#region src/commands/onboard-config.ts
36
37
  const ONBOARDING_DEFAULT_DM_SCOPE = "per-channel-peer";
@@ -3000,9 +3001,10 @@ function formatLocalDeviceTailnetRequirementNote() {
3000
3001
  ""
3001
3002
  ].join("\n");
3002
3003
  }
3003
- function formatTailnetSshVerificationNote(target) {
3004
+ function formatTailnetSshVerificationNote(target, method = "ssh-key") {
3004
3005
  const pingTargets = [target.host, target.ipv4 && target.ipv4 !== target.host ? target.ipv4 : void 0].filter((value) => Boolean(value));
3005
3006
  const sshTargets = pingTargets;
3007
+ const sshCommands = method === "tailscale-ssh" ? sshTargets.map((host) => `tailscale ssh ${target.user}@${host}`) : sshTargets.map((host) => `ssh ${target.user}@${host}`);
3006
3008
  return [
3007
3009
  noteStep(1, "Check visibility"),
3008
3010
  "Run on your own computer:",
@@ -3015,32 +3017,150 @@ function formatTailnetSshVerificationNote(target) {
3015
3017
  "",
3016
3018
  noteStep(2, "SSH into VPS"),
3017
3019
  "Run one command:",
3018
- ...noteCommands(sshTargets.map((host) => `ssh ${target.user}@${host}`)),
3020
+ ...method === "tailscale-ssh" ? ["No app SSH key was found on this VPS.", "Use Tailscale SSH from your own Tailscale-connected computer:"] : [],
3021
+ ...noteCommands(sshCommands),
3019
3022
  `Continue only after SSH opens in ${target.repoDir}.`,
3020
3023
  "",
3021
3024
  noteHeading("Fallback"),
3022
- noteWarn("If hostname lookup fails, keep the other VPN off and use the `100.x.x.x` command.")
3025
+ noteWarn(method === "tailscale-ssh" ? "If Tailscale SSH is unavailable in your tailnet, choose the SSH public key fallback." : "If hostname lookup fails, keep the other VPN off and use the `100.x.x.x` command.")
3023
3026
  ].join("\n");
3024
3027
  }
3028
+ function formatTailnetSshPublicKeyNote(target) {
3029
+ return [
3030
+ noteStep(1, "Find your public key"),
3031
+ "Use this fallback only when Tailscale SSH is unavailable in your tailnet.",
3032
+ "Do this on your own computer while this VPS installer stays open.",
3033
+ ...noteCommands(["cat ~/.ssh/id_ed25519.pub", "type $env:USERPROFILE\\.ssh\\id_ed25519.pub"]),
3034
+ noteWarn("Paste a `.pub` key only. Never paste a private key."),
3035
+ "",
3036
+ noteStep(2, "Create one if needed"),
3037
+ "Run this on your own computer, then paste the `.pub` line here:",
3038
+ ...noteCommands(["ssh-keygen -t ed25519 -C \"fased-vps\" -f ~/.ssh/id_ed25519"]),
3039
+ "",
3040
+ noteStep(3, "What Fased will do"),
3041
+ `Install that public key for ${target.user} at /home/${target.user}/.ssh/authorized_keys.`,
3042
+ "Then you will test regular SSH over Tailscale before root/password access is locked down."
3043
+ ].join("\n");
3044
+ }
3045
+ function normalizeSshPublicKeys(input) {
3046
+ const acceptedTypes = new Set([
3047
+ "ecdsa-sha2-nistp256",
3048
+ "ecdsa-sha2-nistp384",
3049
+ "ecdsa-sha2-nistp521",
3050
+ "sk-ecdsa-sha2-nistp256@openssh.com",
3051
+ "sk-ssh-ed25519@openssh.com",
3052
+ "ssh-ed25519",
3053
+ "ssh-rsa"
3054
+ ]);
3055
+ const lines = input.split(/\r?\n/).map((line) => line.trim()).filter(Boolean);
3056
+ if (lines.length === 0) return {
3057
+ ok: false,
3058
+ keys: [],
3059
+ detail: "Paste one SSH public key line."
3060
+ };
3061
+ if (lines.some((line) => /^-{5}BEGIN\b/i.test(line) || /PRIVATE KEY/i.test(line))) return {
3062
+ ok: false,
3063
+ keys: [],
3064
+ detail: "That looks like a private key. Paste the `.pub` key only."
3065
+ };
3066
+ const normalized = [];
3067
+ for (const line of lines) {
3068
+ const parts = line.split(/\s+/);
3069
+ const keyType = parts[0] ?? "";
3070
+ const keyBody = parts[1] ?? "";
3071
+ if (!acceptedTypes.has(keyType) || !/^[A-Za-z0-9+/]+={0,3}$/.test(keyBody)) return {
3072
+ ok: false,
3073
+ keys: [],
3074
+ detail: "Paste a valid OpenSSH public key, for example `ssh-ed25519 AAAA... user@computer`."
3075
+ };
3076
+ normalized.push(parts.join(" "));
3077
+ }
3078
+ return {
3079
+ ok: true,
3080
+ keys: Array.from(new Set(normalized))
3081
+ };
3082
+ }
3083
+ function buildInstallTailnetSshAuthorizedKeysCommand(target, keys) {
3084
+ const sshDir = `/home/${target.user}/.ssh`;
3085
+ const authorizedKeys = `${sshDir}/authorized_keys`;
3086
+ const encodedKeys = Buffer$1.from(`${keys.join("\n")}\n`, "utf8").toString("base64");
3087
+ return [
3088
+ "set -e",
3089
+ "umask 077",
3090
+ `mkdir -p ${shellQuote(sshDir)}`,
3091
+ "tmp_keys=\"$(mktemp)\"",
3092
+ "tmp_merged=\"$(mktemp)\"",
3093
+ `printf '%s' ${shellQuote(encodedKeys)} | base64 -d > "$tmp_keys"`,
3094
+ `{ cat ${shellQuote(authorizedKeys)} 2>/dev/null || true; cat "$tmp_keys"; } | awk 'NF { print }' | sort -u > "$tmp_merged"`,
3095
+ `install -m 600 "$tmp_merged" ${shellQuote(authorizedKeys)}`,
3096
+ `chmod 700 ${shellQuote(sshDir)}`,
3097
+ `chmod 600 ${shellQuote(authorizedKeys)}`,
3098
+ "rm -f \"$tmp_keys\" \"$tmp_merged\""
3099
+ ].join("\n");
3100
+ }
3101
+ async function ensureTailnetSshAuthorizedKeys(params) {
3102
+ const { target, logPath, runtime, prompter, runner } = params;
3103
+ const authorizedKeys = `/home/${target.user}/.ssh/authorized_keys`;
3104
+ if (runner(`test -s ${shellQuote(authorizedKeys)}`, logPath).ok) return true;
3105
+ await prompter.note(formatTailnetSshPublicKeyNote(target), "SSH key fallback");
3106
+ const parsed = normalizeSshPublicKeys(await prompter.text({
3107
+ message: `Paste the SSH public key to install for ${target.user}`,
3108
+ placeholder: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... user@computer",
3109
+ validate: (value) => {
3110
+ const parsed = normalizeSshPublicKeys(value);
3111
+ return parsed.ok ? void 0 : parsed.detail;
3112
+ }
3113
+ }));
3114
+ if (!parsed.ok) {
3115
+ runtime.error("Hosting setup stopped before SSH/firewall lock-down.");
3116
+ runtime.error(parsed.detail);
3117
+ runtime.error(`Host hardening log: ${logPath}`);
3118
+ runtime.exit(1);
3119
+ return false;
3120
+ }
3121
+ const installResult = runner(buildInstallTailnetSshAuthorizedKeysCommand(target, parsed.keys), logPath);
3122
+ if (!installResult.ok) {
3123
+ runtime.error("Hosting setup stopped before SSH/firewall lock-down.");
3124
+ runtime.error(`Could not install SSH public key for ${target.user}: ${authorizedKeys}`);
3125
+ runtime.error(installResult.detail ?? "unknown SSH key install error");
3126
+ runtime.error(`Host hardening log: ${logPath}`);
3127
+ runtime.exit(1);
3128
+ return false;
3129
+ }
3130
+ if (!runner(`test -s ${shellQuote(authorizedKeys)}`, logPath).ok) {
3131
+ runtime.error("Hosting setup stopped before SSH/firewall lock-down.");
3132
+ runtime.error(`SSH public key was not written for ${target.user}: ${authorizedKeys}`);
3133
+ runtime.error(`Host hardening log: ${logPath}`);
3134
+ runtime.exit(1);
3135
+ return false;
3136
+ }
3137
+ appendHostSecurityLog(logPath, "tailnet ssh public key installed", `installed ${parsed.keys.length} public key(s) for ${target.user}: ${authorizedKeys}`);
3138
+ return true;
3139
+ }
3025
3140
  function verifyTailnetSshServerPrerequisites(params) {
3026
3141
  const runner = params.runner ?? run;
3027
3142
  const target = params.target;
3028
3143
  const checks = [];
3029
3144
  const failures = [];
3145
+ let method = "tailscale-ssh";
3030
3146
  if (runner(`test -d ${shellQuote(target.repoDir)}`, params.logPath).ok) checks.push(`repo directory ready: ${target.repoDir}`);
3031
3147
  else failures.push(`missing app repo directory: ${target.repoDir}`);
3032
3148
  const authorizedKeys = `/home/${target.user}/.ssh/authorized_keys`;
3033
- if (runner(`test -s ${shellQuote(authorizedKeys)}`, params.logPath).ok) checks.push(`SSH keys ready: ${authorizedKeys}`);
3034
- else failures.push(`missing SSH public keys for ${target.user}: ${authorizedKeys}. The root bootstrap should copy your current authorized_keys; if you used password-only SSH, add a public key before hosting lock-down.`);
3035
- if (runner("systemctl is-active --quiet ssh || systemctl is-active --quiet sshd || sudo -n systemctl is-active --quiet ssh || sudo -n systemctl is-active --quiet sshd", params.logPath).ok) checks.push("OS SSH service active");
3036
- else failures.push("OS SSH service is not active");
3149
+ if (runner(`test -s ${shellQuote(authorizedKeys)}`, params.logPath).ok) {
3150
+ method = "ssh-key";
3151
+ checks.push(`SSH keys ready: ${authorizedKeys}`);
3152
+ if (runner("systemctl is-active --quiet ssh || systemctl is-active --quiet sshd || sudo -n systemctl is-active --quiet ssh || sudo -n systemctl is-active --quiet sshd", params.logPath).ok) checks.push("OS SSH service active");
3153
+ else failures.push("OS SSH service is not active");
3154
+ } else checks.push(`no app SSH keys at ${authorizedKeys}; using Tailscale SSH`);
3037
3155
  if (failures.length > 0) return {
3038
3156
  ok: false,
3039
- detail: failures.join("\n")
3157
+ detail: failures.join("\n"),
3158
+ method
3040
3159
  };
3041
3160
  return {
3042
3161
  ok: true,
3043
- detail: checks.join("\n")
3162
+ detail: checks.join("\n"),
3163
+ method
3044
3164
  };
3045
3165
  }
3046
3166
  function ensureTailnetSshIngressForVerification(params) {
@@ -3074,8 +3194,9 @@ function hasExplicitTailnetSshConfirmation(env = process.env) {
3074
3194
  }
3075
3195
  function failTailnetSshConfirmation(params) {
3076
3196
  const { runtime, logPath, target } = params;
3197
+ const commandPrefix = params.method === "tailscale-ssh" ? "tailscale ssh" : "ssh";
3077
3198
  runtime.error("Hosting setup stopped before SSH/firewall lock-down.");
3078
- runtime.error(`Confirm SSH over Tailscale first: ssh ${target.user}@${target.host}`);
3199
+ runtime.error(`Confirm SSH over Tailscale first: ${commandPrefix} ${target.user}@${target.host}`);
3079
3200
  runtime.error(`Expected app repo directory after login: ${target.repoDir}`);
3080
3201
  runtime.error(`Host hardening log: ${logPath}`);
3081
3202
  runtime.exit(1);
@@ -3094,10 +3215,16 @@ async function confirmTailnetSshBeforeLockdown(params) {
3094
3215
  return true;
3095
3216
  }
3096
3217
  if (!prompter || opts.nonInteractive === true) {
3218
+ const serverPrereqs = verifyTailnetSshServerPrerequisites({
3219
+ target,
3220
+ logPath,
3221
+ runner
3222
+ });
3097
3223
  failTailnetSshConfirmation({
3098
3224
  runtime,
3099
3225
  logPath,
3100
- target
3226
+ target,
3227
+ method: serverPrereqs.method
3101
3228
  });
3102
3229
  return false;
3103
3230
  }
@@ -3115,20 +3242,22 @@ async function confirmTailnetSshBeforeLockdown(params) {
3115
3242
  return false;
3116
3243
  }
3117
3244
  appendHostSecurityLog(logPath, "tailnet ssh server prerequisites", serverPrereqs.detail);
3118
- const ingress = ensureTailnetSshIngressForVerification({
3119
- logPath,
3120
- runner
3121
- });
3122
- if (!ingress.ok) {
3123
- runtime.error("Hosting setup stopped before SSH/firewall lock-down.");
3124
- runtime.error("Could not prepare the tailnet-only SSH firewall rule required for verification.");
3125
- runtime.error(ingress.detail ?? "unknown firewall error");
3126
- runtime.error(`Host hardening log: ${logPath}`);
3127
- runtime.exit(1);
3128
- return false;
3129
- }
3130
- appendHostSecurityLog(logPath, "tailnet ssh ingress prepared for verification", ingress.detail);
3131
- await prompter.note(formatTailnetSshVerificationNote(target), "Verify SSH over Tailscale");
3245
+ if (serverPrereqs.method === "ssh-key") {
3246
+ const ingress = ensureTailnetSshIngressForVerification({
3247
+ logPath,
3248
+ runner
3249
+ });
3250
+ if (!ingress.ok) {
3251
+ runtime.error("Hosting setup stopped before SSH/firewall lock-down.");
3252
+ runtime.error("Could not prepare the tailnet-only SSH firewall rule required for verification.");
3253
+ runtime.error(ingress.detail ?? "unknown firewall error");
3254
+ runtime.error(`Host hardening log: ${logPath}`);
3255
+ runtime.exit(1);
3256
+ return false;
3257
+ }
3258
+ appendHostSecurityLog(logPath, "tailnet ssh ingress prepared for verification", ingress.detail);
3259
+ } else appendHostSecurityLog(logPath, "tailnet ssh verification mode", "using Tailscale SSH because app authorized_keys is empty");
3260
+ await prompter.note(formatTailnetSshVerificationNote(target, serverPrereqs.method), "Verify SSH over Tailscale");
3132
3261
  if (!await prompter.confirm({
3133
3262
  message: "Did tailscale ping find this VPS from your own computer?",
3134
3263
  initialValue: false
@@ -3140,7 +3269,8 @@ async function confirmTailnetSshBeforeLockdown(params) {
3140
3269
  failTailnetSshConfirmation({
3141
3270
  runtime,
3142
3271
  logPath,
3143
- target
3272
+ target,
3273
+ method: serverPrereqs.method
3144
3274
  });
3145
3275
  return false;
3146
3276
  }
@@ -3163,13 +3293,29 @@ async function confirmTailnetSshBeforeLockdown(params) {
3163
3293
  continue;
3164
3294
  }
3165
3295
  if (!await prompter.confirm({
3166
- message: `Did SSH over Tailscale connect as ${target.user} and open ${target.repoDir}?`,
3296
+ message: serverPrereqs.method === "tailscale-ssh" ? `Did Tailscale SSH connect as ${target.user} and open ${target.repoDir}?` : `Did SSH over Tailscale connect as ${target.user} and open ${target.repoDir}?`,
3167
3297
  initialValue: false
3168
3298
  })) {
3299
+ if (serverPrereqs.method === "tailscale-ssh") {
3300
+ if (await prompter.confirm({
3301
+ message: "Use SSH public key fallback instead?",
3302
+ initialValue: false
3303
+ })) {
3304
+ if (!await ensureTailnetSshAuthorizedKeys({
3305
+ target,
3306
+ logPath,
3307
+ runtime,
3308
+ prompter,
3309
+ runner
3310
+ })) return false;
3311
+ continue;
3312
+ }
3313
+ }
3169
3314
  failTailnetSshConfirmation({
3170
3315
  runtime,
3171
3316
  logPath,
3172
- target
3317
+ target,
3318
+ method: serverPrereqs.method
3173
3319
  });
3174
3320
  return false;
3175
3321
  }
@@ -2,7 +2,7 @@ import { bd as logWarn } from "./env-C77feXxI.js";
2
2
  import "./agent-paths-BI1hx-tF.js";
3
3
  import "./send-D7X0_iFp.js";
4
4
  import "./send-BFEd4vCM.js";
5
- import { Ai as buildAgentMessageFromConversationEntries, Ii as resolveAssistantStreamDeltaText, Li as agentCommand, _a as resolveAgentIdForRequest, an as DEFAULT_INPUT_IMAGE_MAX_BYTES, ba as setSseHeaders, cn as DEFAULT_INPUT_TIMEOUT_MS, dn as normalizeMimeList, fn as resolveInputFileLimits, ia as emitAgentEvent, ki as handleGatewayPostJsonEndpoint, ln as extractFileContentFromSource, oa as onAgentEvent, on as DEFAULT_INPUT_IMAGE_MIMES, sn as DEFAULT_INPUT_MAX_REDIRECTS, un as extractImageContentFromSource, va as resolveSessionKey, xa as writeDone, ya as sendJson } from "./model-catalog-BQ5G4eK6.js";
5
+ import { Ai as buildAgentMessageFromConversationEntries, Ii as resolveAssistantStreamDeltaText, Li as agentCommand, _a as resolveAgentIdForRequest, an as DEFAULT_INPUT_IMAGE_MAX_BYTES, ba as setSseHeaders, cn as DEFAULT_INPUT_TIMEOUT_MS, dn as normalizeMimeList, fn as resolveInputFileLimits, ia as emitAgentEvent, ki as handleGatewayPostJsonEndpoint, ln as extractFileContentFromSource, oa as onAgentEvent, on as DEFAULT_INPUT_IMAGE_MIMES, sn as DEFAULT_INPUT_MAX_REDIRECTS, un as extractImageContentFromSource, va as resolveSessionKey, xa as writeDone, ya as sendJson } from "./model-catalog-Iu_LUOVA.js";
6
6
  import "./github-copilot-token-A9DiaCB0.js";
7
7
  import { A as defaultRuntime } 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 { t as createDefaultDeps } from "./deps-DdP-Hmxc.js";
48
+ import { t as createDefaultDeps } from "./deps-Uo5boHSY.js";
49
49
  import "./frontmatter-D2UNJikU.js";
50
50
  import "./skills-Dis31awJ.js";
51
51
  import "./skills-remote-CIAB0AXm.js";
@@ -1,39 +1,39 @@
1
- import { Ui as logWarn, wa as defaultRuntime } from "./agent-scope-Cb1u7HE7.js";
2
- import "./github-copilot-token-DYrFvncE.js";
3
- import "./send-vR6HwT94.js";
4
- import "./send-BQMxv218.js";
5
- import { $ as emitAgentEvent, B as DEFAULT_INPUT_IMAGE_MIMES, G as normalizeMimeList, H as DEFAULT_INPUT_TIMEOUT_MS, K as resolveInputFileLimits, U as extractFileContentFromSource, V as DEFAULT_INPUT_MAX_REDIRECTS, W as extractImageContentFromSource, a as agentCommand, at as setSseHeaders, et as onAgentEvent, i as resolveAssistantStreamDeltaText, it as sendJson, n as handleGatewayPostJsonEndpoint, nt as resolveAgentIdForRequest, ot as writeDone, r as buildAgentMessageFromConversationEntries, rt as resolveSessionKey, tt as createDefaultDeps, z as DEFAULT_INPUT_IMAGE_MAX_BYTES } from "./pi-embedded-Pkm2p81t.js";
6
- import "./diagnostic-D6XQAXl4.js";
1
+ import { Ui as logWarn, wa as defaultRuntime } from "./agent-scope-DwKyukUg.js";
2
+ import "./github-copilot-token-eyrRGmGp.js";
3
+ import "./send-CABrQiXU.js";
4
+ import "./send-CUYy-rA3.js";
5
+ import { $ as emitAgentEvent, B as DEFAULT_INPUT_IMAGE_MIMES, G as normalizeMimeList, H as DEFAULT_INPUT_TIMEOUT_MS, K as resolveInputFileLimits, U as extractFileContentFromSource, V as DEFAULT_INPUT_MAX_REDIRECTS, W as extractImageContentFromSource, a as agentCommand, at as setSseHeaders, et as onAgentEvent, i as resolveAssistantStreamDeltaText, it as sendJson, n as handleGatewayPostJsonEndpoint, nt as resolveAgentIdForRequest, ot as writeDone, r as buildAgentMessageFromConversationEntries, rt as resolveSessionKey, tt as createDefaultDeps, z as DEFAULT_INPUT_IMAGE_MAX_BYTES } from "./pi-embedded-qk5CdQmR.js";
6
+ import "./diagnostic-B4NKiC20.js";
7
7
  import "./diagnostic-session-state-CexmAKza.js";
8
- import "./send-Da1hCe1A.js";
9
- import "./media-DUBmlR9u.js";
10
- import "./pi-model-discovery-DYwyxntg.js";
11
- import "./paths-BGX-IMoI.js";
8
+ import "./send-lQXOUIaW.js";
9
+ import "./media-DZj8v0oe.js";
10
+ import "./pi-model-discovery-CfcnLOyX.js";
11
+ import "./paths-57KGLbK2.js";
12
12
  import "./ssrf-DYsl9qoS.js";
13
- import "./reply-prefix-DwrVxkMY.js";
14
- import "./path-alias-guards--dquYHnR.js";
15
- import "./fs-safe-DcQcXS6I.js";
16
- import "./skill-commands-BP6zVlmg.js";
17
- import "./chunk-Cj87uJLo.js";
18
- import "./markdown-tables-CBLut_ie.js";
19
- import "./send-BsajjIj8.js";
20
- import "./fetch-guard-B3bzvmt4.js";
21
- import "./outbound-attachment-CZV6JZkx.js";
22
- import "./fetch-BKzFOgku.js";
23
- import "./memory-search-tdsFhtIi.js";
24
- import "./manager-C05ypUW3.js";
25
- import "./query-expansion-f4DE13gJ.js";
26
- import "./target-errors-CR_hozUt.js";
13
+ import "./reply-prefix-CG0zciBg.js";
14
+ import "./path-alias-guards-BgsM3Cb3.js";
15
+ import "./fs-safe-CwUdejUJ.js";
16
+ import "./skill-commands-CCjZMCdx.js";
17
+ import "./chunk-DfA5CGzI.js";
18
+ import "./markdown-tables-DFtTedxN.js";
19
+ import "./send-iIy3frXq.js";
20
+ import "./fetch-guard-DqpQMLwE.js";
21
+ import "./outbound-attachment-NKTzAe-U.js";
22
+ import "./fetch-BH7uURYM.js";
23
+ import "./memory-search-BxRjHrXP.js";
24
+ import "./manager-Cxjfnksb.js";
25
+ import "./query-expansion-JhTilyB1.js";
26
+ import "./target-errors-9BsSMzQY.js";
27
27
  import "./render-BRr7caFG.js";
28
- import "./commands-registry-Du1VUNqv.js";
29
- import "./config-eval-BVvNsPGB.js";
30
- import "./send-kLcLFjb8.js";
31
- import "./resolve-route-B4dOoe-E.js";
32
- import "./channel-activity-DY_GHJwO.js";
33
- import "./tables-DMwrn7NN.js";
28
+ import "./commands-registry-ShBrc7Zz.js";
29
+ import "./config-eval-B5XXAbrm.js";
30
+ import "./send-DE1no-h6.js";
31
+ import "./resolve-route-DZkIcri6.js";
32
+ import "./channel-activity-D17GYsMz.js";
33
+ import "./tables-H4kq3TrS.js";
34
34
  import "./proxy-DkRPPIHD.js";
35
35
  import "./config-CtKjZZ4x.js";
36
- import "./replies-Bn06Bh1x.js";
36
+ import "./replies-afs2sQ1G.js";
37
37
  import { randomUUID } from "node:crypto";
38
38
  import { z } from "zod";
39
39
 
@@ -2,7 +2,7 @@ import { Sa as defaultRuntime, Vi as logWarn } from "./agent-scope-DUKEZjqM.js";
2
2
  import "./github-copilot-token-CNsqwfnE.js";
3
3
  import "./send-CFSRf7De.js";
4
4
  import "./send-gtmn6YeH.js";
5
- import { B as DEFAULT_INPUT_IMAGE_MIMES, G as normalizeMimeList, H as DEFAULT_INPUT_TIMEOUT_MS, K as resolveInputFileLimits, U as extractFileContentFromSource, V as DEFAULT_INPUT_MAX_REDIRECTS, W as extractImageContentFromSource, a as agentCommand, at as sendJson, et as emitAgentEvent, i as resolveAssistantStreamDeltaText, it as resolveSessionKey, n as handleGatewayPostJsonEndpoint, nt as createDefaultDeps, ot as setSseHeaders, r as buildAgentMessageFromConversationEntries, rt as resolveAgentIdForRequest, st as writeDone, tt as onAgentEvent, z as DEFAULT_INPUT_IMAGE_MAX_BYTES } from "./pi-embedded-DPElH0OZ.js";
5
+ import { B as DEFAULT_INPUT_IMAGE_MIMES, G as normalizeMimeList, H as DEFAULT_INPUT_TIMEOUT_MS, K as resolveInputFileLimits, U as extractFileContentFromSource, V as DEFAULT_INPUT_MAX_REDIRECTS, W as extractImageContentFromSource, a as agentCommand, at as sendJson, et as emitAgentEvent, i as resolveAssistantStreamDeltaText, it as resolveSessionKey, n as handleGatewayPostJsonEndpoint, nt as createDefaultDeps, ot as setSseHeaders, r as buildAgentMessageFromConversationEntries, rt as resolveAgentIdForRequest, st as writeDone, tt as onAgentEvent, z as DEFAULT_INPUT_IMAGE_MAX_BYTES } from "./pi-embedded-CZAiurHo.js";
6
6
  import "./reply-prefix-Bitnsmpd.js";
7
7
  import "./diagnostic-_BiQ6GgD.js";
8
8
  import "./diagnostic-session-state-CL_QxyRg.js";
@@ -2,7 +2,7 @@ import "./paths-C9FmTW1x.js";
2
2
  import "./agent-paths-DmOVZE7g.js";
3
3
  import { au as logWarn } from "./agent-scope-DHrLr5OF.js";
4
4
  import "./commands-registry-BRvZQ1jh.js";
5
- import { Er as onAgentEvent, G as DEFAULT_INPUT_TIMEOUT_MS, H as DEFAULT_INPUT_IMAGE_MAX_BYTES, J as normalizeMimeList, Ja as sendJson, K as extractFileContentFromSource, Ka as resolveAgentIdForRequest, U as DEFAULT_INPUT_IMAGE_MIMES, W as DEFAULT_INPUT_MAX_REDIRECTS, Xa as writeDone, Y as resolveInputFileLimits, Ya as setSseHeaders, ft as handleGatewayPostJsonEndpoint, ht as agentCommand, mt as resolveAssistantStreamDeltaText, pt as buildAgentMessageFromConversationEntries, q as extractImageContentFromSource, qa as resolveSessionKey, wr as emitAgentEvent } from "./reply-701mJB_S.js";
5
+ import { Er as onAgentEvent, G as DEFAULT_INPUT_TIMEOUT_MS, H as DEFAULT_INPUT_IMAGE_MAX_BYTES, J as normalizeMimeList, Ja as sendJson, K as extractFileContentFromSource, Ka as resolveAgentIdForRequest, U as DEFAULT_INPUT_IMAGE_MIMES, W as DEFAULT_INPUT_MAX_REDIRECTS, Xa as writeDone, Y as resolveInputFileLimits, Ya as setSseHeaders, ft as handleGatewayPostJsonEndpoint, ht as agentCommand, mt as resolveAssistantStreamDeltaText, pt as buildAgentMessageFromConversationEntries, q as extractImageContentFromSource, qa as resolveSessionKey, wr as emitAgentEvent } from "./reply-C6zXCUnw.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 { t as createDefaultDeps } from "./deps-RXAe1X5s.js";
40
+ import { t as createDefaultDeps } from "./deps-BVNeN6gT.js";
41
41
  import "./memory-DDpj0IVA.js";
42
42
  import "./memory-search-BwYkW6_V.js";
43
43
  import "./manager-BmONwMiP.js";
@@ -1,6 +1,6 @@
1
1
  import "./github-copilot-token-Dy7Y_jbI.js";
2
2
  import { la as logWarn, qo as defaultRuntime } from "./paths-OUJyk-5R.js";
3
- import { B as extractImageContentFromSource, F as DEFAULT_INPUT_IMAGE_MAX_BYTES, H as resolveInputFileLimits, I as DEFAULT_INPUT_IMAGE_MIMES, L as DEFAULT_INPUT_MAX_REDIRECTS, R as DEFAULT_INPUT_TIMEOUT_MS, V as normalizeMimeList, X as emitAgentEvent, Z as onAgentEvent, a as agentCommand, at as sendJson, i as resolveAssistantStreamDeltaText, it as resolveSessionKey, n as handleGatewayPostJsonEndpoint, nt as createDefaultDeps, ot as setSseHeaders, r as buildAgentMessageFromConversationEntries, rt as resolveAgentIdForRequest, st as writeDone, z as extractFileContentFromSource } from "./auth-7Dkf1_CI.js";
3
+ import { B as extractImageContentFromSource, F as DEFAULT_INPUT_IMAGE_MAX_BYTES, H as resolveInputFileLimits, I as DEFAULT_INPUT_IMAGE_MIMES, L as DEFAULT_INPUT_MAX_REDIRECTS, R as DEFAULT_INPUT_TIMEOUT_MS, V as normalizeMimeList, X as emitAgentEvent, Z as onAgentEvent, a as agentCommand, at as sendJson, i as resolveAssistantStreamDeltaText, it as resolveSessionKey, n as handleGatewayPostJsonEndpoint, nt as createDefaultDeps, ot as setSseHeaders, r as buildAgentMessageFromConversationEntries, rt as resolveAgentIdForRequest, st as writeDone, z as extractFileContentFromSource } from "./auth-C4Rs_Ca4.js";
4
4
  import "./send-D96gGRQz.js";
5
5
  import "./send-BFoI9HuU.js";
6
6
  import "./skill-commands-DvoCSQnx.js";
@@ -1,13 +1,13 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { Gt as loadConfig, Ms as getChildLogger, as as escapeRegExp, k as createSubsystemLogger, ys as toWhatsappJid } from "./agent-scope-Cb1u7HE7.js";
2
+ import { Gt as loadConfig, Ms as getChildLogger, as as escapeRegExp, k as createSubsystemLogger, ys as toWhatsappJid } from "./agent-scope-DwKyukUg.js";
3
3
  import { n as generateSecureUuid } from "./secure-random-CSsVRTTy.js";
4
4
  import { t as redactIdentifier } from "./redact-identifier-Cy6Tnhkn.js";
5
- import { n as loadWebMedia } from "./media-DUBmlR9u.js";
6
- import { n as resolveMarkdownTableMode } from "./markdown-tables-CBLut_ie.js";
5
+ import { n as loadWebMedia } from "./media-DZj8v0oe.js";
6
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-DFtTedxN.js";
7
7
  import { n as normalizePollInput } from "./polls-CYTwXmA1.js";
8
- import { t as convertMarkdownTables } from "./tables-DMwrn7NN.js";
9
- import { n as requireActiveWebListener } from "./active-listener-B_AAz_Nv.js";
10
- import { n as formatError } from "./session-ZMAktQw4.js";
8
+ import { t as convertMarkdownTables } from "./tables-H4kq3TrS.js";
9
+ import { n as requireActiveWebListener } from "./active-listener-CILIY2ox.js";
10
+ import { n as formatError } from "./session-TK9Idt8g.js";
11
11
 
12
12
  //#region src/markdown/whatsapp.ts
13
13
  /**
@@ -1,5 +1,5 @@
1
- import { ds as resolveConfigDir } from "./agent-scope-Cb1u7HE7.js";
2
- import { _ as extensionForMime, g as detectMime, n as loadWebMedia } from "./media-DUBmlR9u.js";
1
+ import { ds as resolveConfigDir } from "./agent-scope-DwKyukUg.js";
2
+ import { _ as extensionForMime, g as detectMime, n as loadWebMedia } from "./media-DZj8v0oe.js";
3
3
  import fs from "node:fs/promises";
4
4
  import path from "node:path";
5
5
  import crypto from "node:crypto";
@@ -1,6 +1,6 @@
1
1
  import { Gl as listChannelPlugins, Vf as CHAT_CHANNEL_ORDER, t as isTruthyEnvValue } from "./env-C77feXxI.js";
2
2
  import { d as listChannelPluginCatalogEntries } from "./dangerous-name-matching-CFRKz8Uq.js";
3
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-DEewJtHt.js";
3
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-Bw0a_OGC.js";
4
4
 
5
5
  //#region src/cli/channel-options.ts
6
6
  function dedupe(values) {
@@ -1,6 +1,6 @@
1
1
  import { Cd as isTruthyEnvValue, Nu as listChannelPlugins, jf as CHAT_CHANNEL_ORDER } from "./agent-scope-DHrLr5OF.js";
2
2
  import { c as listChannelPluginCatalogEntries } from "./dangerous-name-matching-CnyEIiOk.js";
3
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-DfO1RfZv.js";
3
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-Dqk6vxYj.js";
4
4
 
5
5
  //#region src/cli/channel-options.ts
6
6
  function dedupe(values) {
@@ -1,4 +1,4 @@
1
- import { Di as BOUNDARY_PATH_ALIAS_POLICIES, Oi as resolveBoundaryPath, Wi as isNotFoundPathError } from "./agent-scope-Cb1u7HE7.js";
1
+ import { Di as BOUNDARY_PATH_ALIAS_POLICIES, Oi as resolveBoundaryPath, Wi as isNotFoundPathError } from "./agent-scope-DwKyukUg.js";
2
2
  import fs from "node:fs/promises";
3
3
  import os from "node:os";
4
4