@fased/fased 0.1.13 → 0.1.14

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 (301) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +28 -33
  3. package/dist/{agents-DmWSWgPi.js → agents-C-WHRWnS.js} +8 -8
  4. package/dist/{attachment-normalize-B2x8FWZ9.js → attachment-normalize-DQ8t8Fpg.js} +1 -1
  5. package/dist/{attachment-normalize-DaQyD3Gc.js → attachment-normalize-qkVppE3-.js} +1 -1
  6. package/dist/{audio-preflight-CjhAnjuK.js → audio-preflight-2IPkCNvN.js} +1 -1
  7. package/dist/{audio-preflight-DqM048P_.js → audio-preflight-3DGv3sEL.js} +2 -2
  8. package/dist/{audio-preflight-DilYfzh4.js → audio-preflight-Bd38_Rtq.js} +1 -1
  9. package/dist/{audio-preflight-BVQHfg69.js → audio-preflight-LGe174al.js} +2 -2
  10. package/dist/{audio-preflight-BF_inA1H.js → audio-preflight-vshjxbVx.js} +1 -1
  11. package/dist/{audit-BmyHd7Fd.js → audit-DjY5I08B.js} +1 -1
  12. package/dist/{audit-oiJMNMrH.js → audit-x263ATTT.js} +1 -1
  13. package/dist/{auth-Ba9Dk7FX.js → auth-B7xL5wBQ.js} +92 -73
  14. package/dist/{auth-choice-Ba8d4du0.js → auth-choice-DJMbZkdQ.js} +1 -1
  15. package/dist/{auth-choice-DT4p5QVd.js → auth-choice-FgOKdWSF.js} +1 -1
  16. package/dist/{auth-choice-prompt-DVg6LrLV.js → auth-choice-prompt-DpbsOuyY.js} +1 -1
  17. package/dist/{auth-choice-prompt-BLqcFdqp.js → auth-choice-prompt-rlE_GSOw.js} +1 -1
  18. package/dist/build-info.json +3 -3
  19. package/dist/bundled/boot-md/handler.js +1 -1
  20. package/dist/bundled/session-memory/handler.js +1 -1
  21. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  22. package/dist/{channel-web-BjEGLQyO.js → channel-web-Bp0CxbNI.js} +2 -2
  23. package/dist/{channel-web-b3C50Y_N.js → channel-web-D6D54KuR.js} +2 -2
  24. package/dist/{channels-CkoIiZt6.js → channels-C4gSP3Dd.js} +6 -6
  25. package/dist/{channels-C7isH6xy.js → channels-DvysmLPX.js} +6 -6
  26. package/dist/{channels-cli-BtgXre6E.js → channels-cli-BuNVqf2J.js} +5 -5
  27. package/dist/{channels-cli-wTlfSXoS.js → channels-cli-Bz65iM4H.js} +5 -5
  28. package/dist/cli/daemon-cli.js +1 -1
  29. package/dist/{cli-bjzzND1a.js → cli-CY2HaoYp.js} +2 -2
  30. package/dist/{cli-DIm0O_lA.js → cli-DgGwAObY.js} +2 -2
  31. package/dist/{command-registry-L5hzgsO3.js → command-registry-DgzxE6-s.js} +9 -9
  32. package/dist/{completion-cli-BS5owZSW.js → completion-cli-jTE-3aDE.js} +2 -2
  33. package/dist/{completion-cli-Cqcy4193.js → completion-cli-jpzUvb3x.js} +1 -1
  34. package/dist/{config-cli-B6a5ZEoL.js → config-cli-C8LQVFqN.js} +1 -1
  35. package/dist/{config-cli-DqdtNMfz.js → config-cli-Vu0qrkcp.js} +1 -1
  36. package/dist/{configure-DnEK9lvB.js → configure-BTCJ4jyp.js} +12 -12
  37. package/dist/{configure-BwEHGe7O.js → configure-DwuimLR7.js} +12 -12
  38. package/dist/control-ui/assets/app-DXYMrRJ9.js.map +1 -1
  39. package/dist/{cron-cli-BDHDvZT2.js → cron-cli-CnqrBQRR.js} +2 -2
  40. package/dist/{cron-cli-Bwt1DpjZ.js → cron-cli-Komkqy3-.js} +2 -2
  41. package/dist/{daemon-cli-Cb_QJZX8.js → daemon-cli-DO7p9TEM.js} +1 -1
  42. package/dist/{daemon-cli-h2D07h8M.js → daemon-cli-eLgnHj5I.js} +1 -1
  43. package/dist/daemon-cli.js +1 -1
  44. package/dist/{deps-CZFDjC6B.js → deps-Dh2iIgIB.js} +1 -1
  45. package/dist/{deps-CrKSMHlj.js → deps-npMqt3Ka.js} +1 -1
  46. package/dist/entry.js +1 -1
  47. package/dist/extensionAPI.js +1 -1
  48. package/dist/{gateway-cli-a6mdZcvO.js → gateway-cli-CtGAZD_4.js} +27 -27
  49. package/dist/{gateway-cli-lJ8tfi1V.js → gateway-cli-DnPPkDok.js} +27 -27
  50. package/dist/{health-DI0aqVH0.js → health-CI2la9gk.js} +2 -2
  51. package/dist/{health-CKmYZQVl.js → health-WemI1hMs.js} +2 -2
  52. package/dist/{heartbeat-runner-CwEpFUJu.js → heartbeat-runner-DGA7RCWg.js} +1 -1
  53. package/dist/{heartbeat-runner-DDfNvScd.js → heartbeat-runner-DcqI-L2-.js} +1 -1
  54. package/dist/{hooks-cli-C3kkiY3m.js → hooks-cli-BJ-cuVgp.js} +3 -3
  55. package/dist/{hooks-cli-CWaBU3Gm.js → hooks-cli-CKiMdD4M.js} +3 -3
  56. package/dist/index.js +7 -7
  57. package/dist/{ipv4-CNhiSmCD.js → ipv4-86I-Nx-V.js} +2 -2
  58. package/dist/{ipv4-BLRwHChK.js → ipv4-ocsDp87_.js} +2 -2
  59. package/dist/{lifecycle-C5XGWThd.js → lifecycle-C6SWjahT.js} +1 -1
  60. package/dist/{lifecycle-DFB0_xLS.js → lifecycle-DtjQ5ipb.js} +1 -1
  61. package/dist/{list.auth-overview-BIp5q_8N.js → list.auth-overview-Cmhnxus1.js} +1 -1
  62. package/dist/{list.auth-overview-rLzc76Sc.js → list.auth-overview-DrR818-U.js} +1 -1
  63. package/dist/llm-slug-generator.js +1 -1
  64. package/dist/{model-catalog-hjXNofhs.js → model-catalog-QdGjCBzQ.js} +93 -74
  65. package/dist/{models-B0wDRRTB.js → models-B4gY5Zsf.js} +4 -4
  66. package/dist/{models-cli-2VcOiLID.js → models-cli-ZYvMSvJ0.js} +4 -4
  67. package/dist/{models-cli-CKQEE1hy.js → models-cli-hrJ2blXT.js} +5 -5
  68. package/dist/{node-cli-CT41KnaD.js → node-cli-CPmJqYER.js} +2 -2
  69. package/dist/{node-cli-hiCjYjDs.js → node-cli-DniBkXLM.js} +2 -2
  70. package/dist/{onboard-ruUWKVpa.js → onboard-BBW1oF-0.js} +6 -6
  71. package/dist/{onboard-ddaSHBKZ.js → onboard-WQObC6sI.js} +6 -6
  72. package/dist/{onboard-channels-DYKwJPZk.js → onboard-channels-Bwb5RCIS.js} +2 -2
  73. package/dist/{onboard-channels-BBLJ2eG7.js → onboard-channels-DZij_XSU.js} +2 -2
  74. package/dist/{onboard-search-K_gqtpu1.js → onboard-search-Bt2b93cG.js} +5 -5
  75. package/dist/{onboard-search-D8sCkxny.js → onboard-search-C-PWyXkX.js} +5 -5
  76. package/dist/{onboarding-j1hpXVOe.js → onboarding-Cb9j4BOq.js} +7 -7
  77. package/dist/{onboarding-C8WtfnfT.js → onboarding-INDfl2yD.js} +7 -7
  78. package/dist/{openresponses-http-B5LVbUQ-.js → openresponses-http-BHecKser.js} +1 -1
  79. package/dist/{openresponses-http-C983oEVC.js → openresponses-http-C4VkP7IC.js} +1 -1
  80. package/dist/{openresponses-http-c0bMt48o.js → openresponses-http-CGLYAUyM.js} +1 -1
  81. package/dist/{openresponses-http-ngs3P9ek.js → openresponses-http-CVJBsG9z.js} +2 -2
  82. package/dist/{openresponses-http-CUqgCbTX.js → openresponses-http-dny2OhpA.js} +2 -2
  83. package/dist/{parent-default-help-DE5SId9s.js → parent-default-help-CcPiYUar.js} +1 -1
  84. package/dist/{parent-default-help-CoH7zlDh.js → parent-default-help-dowF5JGJ.js} +1 -1
  85. package/dist/{pi-embedded-BvqQUzWN.js → pi-embedded-D-WBZS6e.js} +89 -70
  86. package/dist/{pi-embedded-F3Zt8ed6.js → pi-embedded-IqgbZA5l.js} +89 -70
  87. package/dist/{plugin-registry-C5Ry5FZe.js → plugin-registry-C0b3SJXT.js} +1 -1
  88. package/dist/{plugin-registry-V61y7NBj.js → plugin-registry-C1WE5cad.js} +1 -1
  89. package/dist/plugin-sdk/{active-listener-DMQkC65_.js → active-listener-CiGA0hRS.js} +1 -1
  90. package/dist/plugin-sdk/{audio-preflight-Ba6xe3SP.js → audio-preflight-DVoi6-9R.js} +29 -29
  91. package/dist/plugin-sdk/{audio-preflight-Iwawhfar.js → audio-preflight-Do3tS2Hp.js} +1 -1
  92. package/dist/plugin-sdk/{channel-activity-BcI4xSoe.js → channel-activity-DRcprlRI.js} +1 -1
  93. package/dist/plugin-sdk/{channel-web-ByZK5Ws6.js → channel-web-DvYiNUDj.js} +15 -15
  94. package/dist/plugin-sdk/{chunk-BntoXexQ.js → chunk-CWM4OQ5j.js} +1 -1
  95. package/dist/plugin-sdk/command-status.js +1 -1
  96. package/dist/plugin-sdk/{commands-registry-Deqd0K8M.js → commands-registry-CnlOnVB6.js} +1 -1
  97. package/dist/plugin-sdk/{diagnostic-BnS_JikV.js → diagnostic-BfpYqaMu.js} +1 -1
  98. package/dist/plugin-sdk/{fetch-guard-CTD85vq2.js → fetch-guard-BciVpgwU.js} +1 -1
  99. package/dist/plugin-sdk/{fetch-B42SDHGm.js → fetch-yy6-Kb3T.js} +1 -1
  100. package/dist/plugin-sdk/{filesystem-manager-BX7oNQR8.js → filesystem-manager-B5AL-sCv.js} +3 -3
  101. package/dist/plugin-sdk/{fs-safe-DOPVDJix.js → fs-safe-Ch39tcFn.js} +2 -2
  102. package/dist/plugin-sdk/index.js +34 -34
  103. package/dist/plugin-sdk/{internal-DQx46pKX.js → internal-Bsx2Ck4H.js} +1 -1
  104. package/dist/plugin-sdk/{ir-Bbym3o_S.js → ir-BqSQJB3B.js} +4 -4
  105. package/dist/plugin-sdk/{login-BViGjyGG.js → login-CUkR_AH3.js} +2 -2
  106. package/dist/plugin-sdk/{login-qr-Byua0a3V.js → login-qr-BTjizo_A.js} +2 -2
  107. package/dist/plugin-sdk/{manager-CIggnIJi.js → manager-DQJURMcB.js} +5 -5
  108. package/dist/plugin-sdk/{markdown-tables-DpMWx8Tl.js → markdown-tables-Dvj4VeiJ.js} +1 -1
  109. package/dist/plugin-sdk/{memory-search-DASOKZdc.js → memory-search-BMkuVf7r.js} +1 -1
  110. package/dist/plugin-sdk/{openresponses-http-CGyicTgJ.js → openresponses-http-7e9CqhJi.js} +1 -1
  111. package/dist/plugin-sdk/{openresponses-http-B5rDYW__.js → openresponses-http-CEjbCJ_J.js} +29 -29
  112. package/dist/plugin-sdk/{outbound-C_KKhUy0.js → outbound-Ch3UOB-3.js} +6 -6
  113. package/dist/plugin-sdk/{outbound-attachment-ddz0MwiT.js → outbound-attachment-8pyStMIv.js} +2 -2
  114. package/dist/plugin-sdk/{path-alias-guards-ZLFppfUS.js → path-alias-guards-DmROHvdC.js} +1 -1
  115. package/dist/plugin-sdk/{paths-BjhD4HPg.js → paths-QYyMn2Wi.js} +2 -2
  116. package/dist/plugin-sdk/{pi-model-discovery-CFtZGJhK.js → pi-model-discovery-BGBK5j7O.js} +1 -1
  117. package/dist/plugin-sdk/{pi-model-discovery-runtime-C4xL6SHf.js → pi-model-discovery-runtime-Ds3U-M1x.js} +2 -2
  118. package/dist/plugin-sdk/{pw-ai-8IF0b_Yx.js → pw-ai-qIQtqb0S.js} +4 -4
  119. package/dist/plugin-sdk/{qmd-manager-Cwq6jm3-.js → qmd-manager-DAYkSE5z.js} +4 -4
  120. package/dist/plugin-sdk/{qmd-scope-CSMRsTtS.js → qmd-scope-CDToQJAg.js} +1 -1
  121. package/dist/plugin-sdk/{query-expansion-BxUJl8D1.js → query-expansion-yLS-ifHD.js} +2 -2
  122. package/dist/plugin-sdk/{replies-4ciKRt42.js → replies-DuVEe866.js} +2 -2
  123. package/dist/plugin-sdk/{reply-DQvYSWCp.js → reply-D9WhCAf0.js} +154 -135
  124. package/dist/plugin-sdk/{reply-prefix-D1GlTOVT.js → reply-prefix-DYUukSpx.js} +1 -1
  125. package/dist/plugin-sdk/{resolve-outbound-target-CsbaX39w.js → resolve-outbound-target-DlTadiqm.js} +2 -2
  126. package/dist/plugin-sdk/{resolve-route-y3cyO8Nu.js → resolve-route-CKHCIkIh.js} +1 -1
  127. package/dist/plugin-sdk/{runtime-JZwgwXxK.js → runtime-d_ap8ggn.js} +8 -8
  128. package/dist/plugin-sdk/{send-By-vmNGK.js → send-BYaWimfS.js} +5 -5
  129. package/dist/plugin-sdk/{send-BkZyweGW.js → send-Cvf5nOIr.js} +4 -4
  130. package/dist/plugin-sdk/{send-B7uKkTxV.js → send-DYsMepvi.js} +7 -7
  131. package/dist/plugin-sdk/{send-b2ALvHco.js → send-DtgDCh9h.js} +7 -7
  132. package/dist/plugin-sdk/{send-jXCTO3i_.js → send-XXJCJ2as.js} +5 -5
  133. package/dist/plugin-sdk/{session-B2c1Wmrm.js → session-CZkOY6Ba.js} +1 -1
  134. package/dist/plugin-sdk/{skill-commands-DqGrOYfl.js → skill-commands-BKfUIpx3.js} +5 -5
  135. package/dist/plugin-sdk/src/agents/bash-tools.process.d.ts +2 -2
  136. package/dist/plugin-sdk/src/brand.d.ts +2 -2
  137. package/dist/plugin-sdk/src/channels/thread-bindings-policy.d.ts +21 -0
  138. package/dist/plugin-sdk/{status-KYehxhnn.js → status-BtSfRg0Y.js} +92 -73
  139. package/dist/plugin-sdk/{tables-b0zUZRMn.js → tables-DQEs0bVk.js} +1 -1
  140. package/dist/plugin-sdk/{target-errors-WJdwRuAS.js → target-errors-DpDEAats.js} +2 -2
  141. package/dist/plugin-sdk/{tool-loop-detection-k7zpyjWy.js → tool-loop-detection-D8xgCIc0.js} +1 -1
  142. package/dist/plugin-sdk/{web-CAC5vbc9.js → web-Dn9EjG_7.js} +2 -2
  143. package/dist/plugin-sdk/web-Iu1NvzWV.js +40 -0
  144. package/dist/plugin-sdk/{whatsapp-actions-SkM0ibaJ.js → whatsapp-actions-qiFsmHsr.js} +12 -12
  145. package/dist/{plugins-cli-ChEJuxFs.js → plugins-cli-D1j2v1v3.js} +5 -5
  146. package/dist/{plugins-cli-DwxmXRMv.js → plugins-cli-DK4Jeucz.js} +5 -5
  147. package/dist/{program-BGSx2Vda.js → program-CazmynDS.js} +7 -7
  148. package/dist/{program-context-P_PLH93O.js → program-context-Bd78I73_.js} +24 -24
  149. package/dist/{prompt-select-styled-Cgj-zl4h.js → prompt-select-styled-Bx8l6tgz.js} +4 -4
  150. package/dist/{prompt-select-styled-xJXAqPXi.js → prompt-select-styled-DSFk0AgE.js} +4 -4
  151. package/dist/{register.agent-FTnfAUsz.js → register.agent-B4kjmkkK.js} +9 -9
  152. package/dist/{register.agent-DtHG7NoT.js → register.agent-PlTxuITr.js} +8 -8
  153. package/dist/{register.configure-wr3EEeat.js → register.configure-BvP4DKP8.js} +12 -12
  154. package/dist/{register.configure-hmL6L3g2.js → register.configure-DZPTQvjv.js} +12 -12
  155. package/dist/{register.maintenance-C6oo_ezy.js → register.maintenance-BbuaL-LU.js} +8 -8
  156. package/dist/{register.maintenance-Dy4bRQQG.js → register.maintenance-a-pIClSG.js} +9 -9
  157. package/dist/{register.message-Bf14REw-.js → register.message-DDFPXPWb.js} +3 -3
  158. package/dist/{register.message-BD4Te7tj.js → register.message-DNVRbijg.js} +3 -3
  159. package/dist/{register.onboard-Cu_0muzG.js → register.onboard-B0HUy5PD.js} +14 -14
  160. package/dist/{register.onboard-C0xqP_uC.js → register.onboard-nXq-teMt.js} +14 -14
  161. package/dist/{register.setup-oZxJojNP.js → register.setup-DIhPxsuu.js} +14 -14
  162. package/dist/{register.setup-BiHZP-Bk.js → register.setup-DRj3j2ZO.js} +14 -14
  163. package/dist/{register.status-health-sessions-DpCYTTdC.js → register.status-health-sessions-DTDrlfum.js} +6 -6
  164. package/dist/{register.status-health-sessions-5ekV66OK.js → register.status-health-sessions-vQKRHMLC.js} +6 -6
  165. package/dist/{register.subclis-CDkHAGnh.js → register.subclis-Cy8W7u7O.js} +16 -16
  166. package/dist/{reply-Baz1gE0S.js → reply-CHDxge29.js} +93 -74
  167. package/dist/{run-main-DKRKAwiP.js → run-main-1aaRfq94.js} +14 -14
  168. package/dist/{runtime-helper-grants-tP01ROwZ.js → runtime-helper-grants-0TgQ0lgQ.js} +1 -1
  169. package/dist/{runtime-helper-grants-BLBgnkag.js → runtime-helper-grants-n6XBHo3m.js} +1 -1
  170. package/dist/{sandbox-cli-Bd-8A0tb.js → sandbox-cli-D-2QLS_w.js} +2 -2
  171. package/dist/{sandbox-cli-D47Wa19_.js → sandbox-cli-Ds-oc2Jt.js} +2 -2
  172. package/dist/{security-cli-DNazkft-.js → security-cli-Ck0noj86.js} +3 -3
  173. package/dist/{security-cli-BJY7p7My.js → security-cli-DxJAZsT6.js} +3 -3
  174. package/dist/{server-Bve0fBtZ.js → server-BEwhNHAO.js} +2 -2
  175. package/dist/{server-Bbpijl2X.js → server-D554L3O3.js} +2 -2
  176. package/dist/{server-cron-Dqe6FbgV.js → server-cron-Co8el74q.js} +2 -2
  177. package/dist/{server-cron-BUNwsQ3c.js → server-cron-CuUXpitx.js} +2 -2
  178. package/dist/{server-node-events-ClO3P4gG.js → server-node-events-bzKAOMwM.js} +3 -3
  179. package/dist/{server-node-events-BEZ0jgR6.js → server-node-events-h-xwZu4x.js} +3 -3
  180. package/dist/{status-CNDT0EXd.js → status-Bd25eZ91.js} +4 -4
  181. package/dist/{status-CEc8-_t7.js → status-CjvLj0Ob.js} +1 -1
  182. package/dist/{status-CYNE3C5Y.js → status-DXweKVET.js} +4 -4
  183. package/dist/{status-Doouocs4.js → status-DetSO2U-.js} +1 -1
  184. package/dist/{tui-cli-DGqbmIjb.js → tui-cli-B6IhMpTo.js} +3 -3
  185. package/dist/{tui-cli-BAHVzUig.js → tui-cli-DDu-3YTW.js} +3 -3
  186. package/dist/{tui-DlBfUSia.js → tui-rvBD7CEp.js} +1 -1
  187. package/dist/{tui-Cj2tNzRU.js → tui-sRU4cuDV.js} +1 -1
  188. package/dist/{update-cli-CowwEm1_.js → update-cli-DdBQL9wa.js} +10 -10
  189. package/dist/{update-cli-Dhambp65.js → update-cli-DhiPLbfC.js} +9 -9
  190. package/dist/{update-runner-DItB16kj.js → update-runner-CsJOHUCm.js} +1 -1
  191. package/dist/{update-runner-BYNHsNaj.js → update-runner-DBPk9kKP.js} +1 -1
  192. package/dist/{web-BKQLvqgr.js → web-0D-MfWhQ.js} +2 -2
  193. package/dist/{web-B3fGD9XZ.js → web-B2uPE5Pt.js} +3 -3
  194. package/dist/{web-u2nJ-rqI.js → web-DsACg6Kp.js} +3 -3
  195. package/dist/{web-BLUd2_Lg.js → web-Y8Z075Dl.js} +2 -2
  196. package/dist/{web-search-providers.runtime-mdso7C9-.js → web-search-providers.runtime-C9rYYuJB.js} +1 -1
  197. package/dist/{web-search-providers.runtime-DmhNfMZI.js → web-search-providers.runtime-Dih9pZ-s.js} +1 -1
  198. package/dist/{web-Cv-tDA3u.js → web-uQepjRHJ.js} +2 -2
  199. package/docs/automation/cron-vs-heartbeat.md +8 -8
  200. package/docs/cli/index.md +4 -4
  201. package/docs/concepts/architecture.md +2 -2
  202. package/docs/concepts/features.md +40 -40
  203. package/docs/concepts/model-providers.md +4 -4
  204. package/docs/docs.json +1 -1
  205. package/docs/gateway/authentication.md +2 -2
  206. package/docs/gateway/configuration-reference.md +1 -1
  207. package/docs/gateway/heartbeat.md +1 -0
  208. package/docs/help/faq.md +4 -4
  209. package/docs/help/index.md +4 -4
  210. package/docs/help/testing.md +5 -0
  211. package/docs/images/screenshots/polished/README.md +16 -0
  212. package/docs/images/screenshots/polished/operator-school-001-local-install-profile.png +0 -0
  213. package/docs/images/screenshots/polished/operator-school-002-local-gateway-settings.png +0 -0
  214. package/docs/images/screenshots/polished/operator-school-003-local-dashboard-link.png +0 -0
  215. package/docs/images/screenshots/polished/operator-school-004-hosted-tailscale-start.png +0 -0
  216. package/docs/images/screenshots/polished/operator-school-005-hosted-ssh-check.png +0 -0
  217. package/docs/images/screenshots/polished/operator-school-006-hosted-private-access.png +0 -0
  218. package/docs/images/screenshots/polished/operator-school-007-dashboard-open.png +0 -0
  219. package/docs/images/screenshots/polished/operator-school-008-agent-setup.png +0 -0
  220. package/docs/images/screenshots/polished/operator-school-009-chat-channel-setup.png +0 -0
  221. package/docs/images/screenshots/polished/operator-school-010-model-selection.png +0 -0
  222. package/docs/images/screenshots/polished/operator-school-011-model-provider-sign-in.png +0 -0
  223. package/docs/images/screenshots/polished/operator-school-012-wallet-roles.png +0 -0
  224. package/docs/images/screenshots/polished/operator-school-013-wallet-create.png +0 -0
  225. package/docs/images/screenshots/polished/operator-school-014-wallet-summary.png +0 -0
  226. package/docs/images/screenshots/polished/operator-school-015-wallet-passkey.png +0 -0
  227. package/docs/images/screenshots/polished/operator-school-016-mining-funding.png +0 -0
  228. package/docs/images/screenshots/polished/operator-school-017-mining-commit.png +0 -0
  229. package/docs/images/screenshots/polished/operator-school-018-mining-activity.png +0 -0
  230. package/docs/images/screenshots/polished/operator-school-019-mining-history.png +0 -0
  231. package/docs/images/screenshots/polished/operator-school-020-network-bond.png +0 -0
  232. package/docs/index.md +47 -47
  233. package/docs/install/index.md +1 -1
  234. package/docs/links.md +8 -8
  235. package/docs/platforms/mac/release.md +1 -0
  236. package/docs/plugins/crypto/wallet-autonomous-security.md +1 -1
  237. package/docs/plugins/crypto/wallet-roles-and-policies.md +4 -0
  238. package/docs/reference/vision.md +21 -18
  239. package/docs/security/index.md +9 -8
  240. package/docs/start/agent-wallet-mining-walkthrough.md +84 -5
  241. package/docs/start/bond-operator-economy.md +61 -61
  242. package/docs/start/control-ui-setup.md +23 -23
  243. package/docs/start/fased.md +31 -31
  244. package/docs/start/federation.md +47 -45
  245. package/docs/start/getting-started.md +6 -6
  246. package/docs/start/marketplace-personas-roadmap.md +1 -1
  247. package/docs/start/offers-marketplace.md +87 -87
  248. package/docs/start/onboarding-overview.md +5 -5
  249. package/docs/start/operator-glossary.md +49 -45
  250. package/docs/start/provider-agent-chat-flow.md +17 -14
  251. package/docs/start/setup-matrix.md +13 -12
  252. package/docs/start/wizard-cli-reference.md +2 -0
  253. package/docs/start/wizard.md +5 -5
  254. package/docs/tools/thinking.md +2 -0
  255. package/docs/web/control-ui.md +10 -11
  256. package/docs/web/dashboard.md +8 -8
  257. package/docs/web/index.md +3 -3
  258. package/extensions/acpx/package.json +1 -1
  259. package/extensions/bluebubbles/package.json +1 -1
  260. package/extensions/copilot-proxy/package.json +1 -1
  261. package/extensions/diagnostics-otel/package.json +1 -1
  262. package/extensions/discord/package.json +1 -1
  263. package/extensions/fased-federation/package.json +1 -1
  264. package/extensions/feishu/package.json +1 -1
  265. package/extensions/google-gemini-cli-auth/package.json +1 -1
  266. package/extensions/googlechat/package.json +1 -1
  267. package/extensions/imessage/package.json +1 -1
  268. package/extensions/irc/package.json +1 -1
  269. package/extensions/line/package.json +1 -1
  270. package/extensions/llm-task/package.json +1 -1
  271. package/extensions/lobster/package.json +1 -1
  272. package/extensions/matrix/CHANGELOG.md +6 -0
  273. package/extensions/matrix/package.json +1 -1
  274. package/extensions/mattermost/package.json +1 -1
  275. package/extensions/memory-core/package.json +1 -1
  276. package/extensions/memory-lancedb/package.json +1 -1
  277. package/extensions/minimax-portal-auth/package.json +1 -1
  278. package/extensions/msteams/CHANGELOG.md +6 -0
  279. package/extensions/msteams/package.json +1 -1
  280. package/extensions/nextcloud-talk/package.json +1 -1
  281. package/extensions/nostr/CHANGELOG.md +6 -0
  282. package/extensions/nostr/package.json +1 -1
  283. package/extensions/open-prose/package.json +1 -1
  284. package/extensions/sat-mining/package.json +1 -1
  285. package/extensions/sat-mining/src/live-chaos.ts +3 -2
  286. package/extensions/signal/package.json +1 -1
  287. package/extensions/slack/package.json +1 -1
  288. package/extensions/synology-chat/package.json +1 -1
  289. package/extensions/telegram/package.json +1 -1
  290. package/extensions/tlon/package.json +1 -1
  291. package/extensions/twitch/CHANGELOG.md +6 -0
  292. package/extensions/twitch/package.json +1 -1
  293. package/extensions/voice-call/CHANGELOG.md +6 -0
  294. package/extensions/voice-call/package.json +1 -1
  295. package/extensions/whatsapp/package.json +1 -1
  296. package/extensions/zalo/CHANGELOG.md +6 -0
  297. package/extensions/zalo/package.json +1 -1
  298. package/extensions/zalouser/CHANGELOG.md +6 -0
  299. package/extensions/zalouser/package.json +1 -1
  300. package/package.json +1 -1
  301. package/dist/plugin-sdk/web-Bo3jM7sh.js +0 -40
package/CHANGELOG.md CHANGED
@@ -8,6 +8,15 @@ third-party and copied-code notices are kept in [LICENSE](./LICENSE) and
8
8
 
9
9
  - No unreleased changes yet.
10
10
 
11
+ ## 0.1.14
12
+
13
+ - Clear the public-release check gate by moving ACP thread-binding channel
14
+ details behind the channel/thread-binding layer.
15
+ - Keep Satcoin live-chaos markers under the preferred Fased temp root unless an
16
+ explicit marker directory is configured.
17
+ - Fix release-readiness lint and docs formatting issues found during the public
18
+ repository hardening pass.
19
+
11
20
  ## 0.1.13
12
21
 
13
22
  - Refresh the curated model catalogs for provider defaults and onboarding,
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  # Fased Agent
6
6
 
7
7
  <p align="center">
8
- Self-hosted agent node for chat, tools, skills, memory, wallet policy, SAT mining, and Fased Network participation.
8
+ Run Agent. Mine SAT. Build Trust.
9
9
  </p>
10
10
 
11
11
  <p align="center">
@@ -15,12 +15,11 @@
15
15
  <a href="./SECURITY.md"><img src="https://img.shields.io/badge/security-policy-222?style=for-the-badge" alt="Security"></a>
16
16
  </p>
17
17
 
18
- **Fased Agent** is a self-hosted agent node. It brings models, channels, tools,
19
- skills, services, files, sessions, memory, tasks, wallet policy, SAT mining, and
20
- network activity into one browser Control UI that you operate.
18
+ **Fased Agent** is the agent you run yourself. Use it for tasks, wallets,
19
+ services, and SAT mining from one browser Control UI.
21
20
 
22
- Use it on your own machine for private chat and automation, or use the VPS
23
- Hosting path for an always-on agent node with private access through Tailscale.
21
+ Run it on your own machine, or use the VPS Hosting path when the agent needs to
22
+ stay online.
24
23
 
25
24
  **Links:** [Install](#install) · [Docs](https://docs.fased.ai) ·
26
25
  [Security](./SECURITY.md) · [Release checklist](./docs/reference/RELEASING.md) ·
@@ -300,16 +299,13 @@ Read next:
300
299
  ## What Fased Runs
301
300
 
302
301
  - Gateway, CLI, onboarding, local auth, device pairing, and browser Control UI
303
- - Agent workbench for models, channels, services, skills, tools, memory,
304
- sessions, files, tasks, coordination, and programs
305
- - Task ledger for scheduled work, webhooks, workflows, wallet approvals,
306
- marketplace records, mining events, ACP/subagent runs, and CLI/system activity
307
- - Wallet UI with local signer integration, role-separated policy, approval
308
- review, and spend caps
309
- - SAT mining runtime path with mining wallet separation, cycle history, and
310
- mining event records
311
- - Fased Network, node presence, operator/bond surfaces, marketplace offers,
312
- plugin SDK, bundled skills, extensions, mobile/macOS app code, and public docs
302
+ - Agent workbench for tasks, tools, services, memory, files, and sessions
303
+ - Task history for workflows, webhooks, wallet actions, marketplace activity,
304
+ mining events, ACP/subagent runs, and CLI/system activity
305
+ - Wallet UI with local signer integration, wallet roles, review, and spend caps
306
+ - SAT mining path with mining wallets, cycle history, and claim events
307
+ - Fased Network, Marketplace, bond surfaces, plugin SDK, bundled skills,
308
+ extensions, mobile/macOS app code, and public docs
313
309
 
314
310
  ## Product Model
315
311
 
@@ -338,12 +334,11 @@ Fased is built around private access and explicit authority boundaries:
338
334
  - Skills require explicit wallet, mining, service, or tool grants.
339
335
  - Services connect credentials; Agent Tools and Skills decide what a selected
340
336
  Agent may use.
341
- - Wallet pages own signing, caps, approval, and broadcast. Workflows can request
342
- or review wallet actions while spend authority stays in wallet policy.
343
- - Marketplace and Mining pages own their state-changing controls. Agent Tasks
344
- records and reviews those actions.
345
- - Advanced/Debug/Nodes are operator/admin surfaces for diagnostics and raw
346
- controls.
337
+ - Wallet pages own signing, caps, review, and broadcast. Workflows can request
338
+ wallet actions while spend authority stays with wallet rules.
339
+ - Marketplace and Mining pages own their state-changing actions. Agent Tasks
340
+ tracks and reviews those actions.
341
+ - Advanced/Debug/Nodes are admin surfaces for diagnostics and raw controls.
347
342
 
348
343
  Read:
349
344
 
@@ -361,12 +356,12 @@ Agent activity records.
361
356
  - **Trigger**: an HTTP/webhook entrypoint that can run an Agent prompt,
362
357
  heartbeat wake, or workflow target.
363
358
  - **Workflow**: a saved multi-step procedure.
364
- - **Graph**: a visual editor for the same workflow JSON/runtime.
359
+ - **Graph**: a visual editor for the same workflow JSON.
365
360
  - **Template**: a starter workflow such as wallet approval review, mining
366
361
  readiness/start gate, marketplace delivery/dispute, channel delivery review,
367
362
  media generation review, or service health check.
368
363
  - **Program**: an Agent-scoped durable standing order that can propose work for
369
- review while grants still come from Tools, Skills, Wallets, and Mining policy.
364
+ review while grants still come from Tools, Skills, Wallets, and Mining rules.
370
365
  - **Activity**: the ledger of what actually happened, grouped by correlation id.
371
366
 
372
367
  This solves the old scattered-work problem: cron runs, webhooks, channel tasks,
@@ -385,16 +380,16 @@ Wallets are role-separated:
385
380
 
386
381
  - **Agent** wallets are for ordinary agent operations.
387
382
  - **Mining** wallets are for SAT mining capital and mining actions.
388
- - **Vault** wallets are for reserve/bond/operator roles.
383
+ - **Vault** wallets are for reserve, bond, and stronger trust roles.
389
384
 
390
- Fased favors a self-hosted local signer and explicit policy over hosted wallet
385
+ Fased favors a self-hosted local signer and explicit wallet rules over hosted wallet
391
386
  abstraction. External wallet providers can make sense for managed custody,
392
387
  multi-tenant products, or compliance-heavy deployments, but Fased's default
393
- model keeps keys and approvals under the operator's runtime and policy.
388
+ model keeps keys and reviews under your setup and wallet rules.
394
389
 
395
390
  Marketplace and Mining integration is intentionally task-ledger aware:
396
391
 
397
- - Wallet approvals show spend/policy evidence.
392
+ - Wallet reviews show spend evidence.
398
393
  - Mining events mirror readiness, start/stop, cycle, claim, recovery, and
399
394
  capital changes.
400
395
  - Marketplace offer/order/delivery/dispute records can be reviewed from the
@@ -472,7 +467,7 @@ The root intentionally contains both product code and build/deploy control files
472
467
  - `extensions/`: bundled extensions and extension runtime code
473
468
  - `skills/`: bundled skills and skill metadata
474
469
  - `scripts/`: build, install, docs, release, and test scripts
475
- - `tools/`: repo tooling and operator helpers
470
+ - `tools/`: repo tooling and admin helpers
476
471
  - `vendor/`: vendored third-party code that must keep its own notices
477
472
  - `config/`: runtime and channel/provider configuration helpers
478
473
  - `test/`: test fixtures and integration helpers
@@ -495,8 +490,8 @@ Important:
495
490
  - Third-party bundled code and assets are tracked in
496
491
  [THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md).
497
492
 
498
- Before using wallet, mining, federation, trading, marketplace, or similar
499
- operator features, read:
493
+ Before using wallet, mining, Fased Network, trading, marketplace, or similar
494
+ economic features, read:
500
495
 
501
496
  - [LICENSE](./LICENSE)
502
497
  - [SECURITY.md](./SECURITY.md)
@@ -506,5 +501,5 @@ operator features, read:
506
501
  - [Plugin license policy](./docs/reference/plugin-license-policy.md)
507
502
 
508
503
  Fased software is not financial, investment, tax, legal, or operational advice.
509
- Wallets, crypto, mining, federation, trading, marketplace, and news/market
510
- workflows carry real risk.
504
+ Wallets, crypto, mining, Fased Network, and marketplace workflows carry real
505
+ risk.
@@ -2,7 +2,7 @@ import { Cu as formatCliCommand, Gl as listChannelPlugins, Gu as resolveDefaultA
2
2
  import { w as shortenHomePath, x as resolveUserPath } from "./agent-paths-DUHGyU1s.js";
3
3
  import "./send-4Bz1g7es.js";
4
4
  import "./send-CaE81xJg.js";
5
- import { Fa as pruneAgentConfig, Ma as buildAgentSummaries, Na as findAgentEntryIndex, Pa as loadAgentIdentity, b as moveToTrash, fo as identityHasValues, h as ensureWorkspaceAndSessions, ja as applyAgentConfig, po as parseIdentityMarkdown } from "./model-catalog-hjXNofhs.js";
5
+ import { Fa as pruneAgentConfig, Ma as buildAgentSummaries, Na as findAgentEntryIndex, Pa as loadAgentIdentity, b as moveToTrash, fo as identityHasValues, h as ensureWorkspaceAndSessions, ja as applyAgentConfig, po as parseIdentityMarkdown } from "./model-catalog-QdGjCBzQ.js";
6
6
  import "./github-copilot-token-A9DiaCB0.js";
7
7
  import { A as defaultRuntime, F as DEFAULT_AGENT_ID, J as DEFAULT_ACCOUNT_ID, V as normalizeAgentId, _ as resolveSessionTranscriptsDirForAgent } from "./entry.js";
8
8
  import "./reply-prefix-pEk10qm3.js";
@@ -45,7 +45,7 @@ import "./send-2z6EXr8o.js";
45
45
  import "./outbound-attachment-DRoNYAVt.js";
46
46
  import "./fetch-DzdLpVxl.js";
47
47
  import "./delivery-queue-DeoUHXGD.js";
48
- import "./deps-CrKSMHlj.js";
48
+ import "./deps-npMqt3Ka.js";
49
49
  import "./frontmatter-Cye-a9g3.js";
50
50
  import "./skills-60AaRTYw.js";
51
51
  import "./skills-remote-DWll8gbf.js";
@@ -77,19 +77,19 @@ import "./pairing-labels-BWWnectb.js";
77
77
  import "./outbound-D4CM4aSB.js";
78
78
  import "./session-Bd3iqqL4.js";
79
79
  import "./resolve-outbound-target-DHFaeCaD.js";
80
- import "./channel-web-BjEGLQyO.js";
80
+ import "./channel-web-Bp0CxbNI.js";
81
81
  import "./login-DUOhohsu.js";
82
82
  import { t as resolveChannelDefaultAccountId } from "./helpers-BfdkoReO.js";
83
- import { n as warnIfModelConfigLooksOff, r as applyAuthChoice } from "./auth-choice-DT4p5QVd.js";
84
- import { t as promptAuthChoiceGrouped } from "./auth-choice-prompt-BLqcFdqp.js";
83
+ import { n as warnIfModelConfigLooksOff, r as applyAuthChoice } from "./auth-choice-FgOKdWSF.js";
84
+ import { t as promptAuthChoiceGrouped } from "./auth-choice-prompt-rlE_GSOw.js";
85
85
  import "./provider-env-vars-oF2O-90T.js";
86
86
  import "./enable-DfGATYHS.js";
87
87
  import { n as logConfigUpdated } from "./logging-B1pB3RkW.js";
88
88
  import "./installs-QKtSGvGt.js";
89
- import "./status-CEc8-_t7.js";
89
+ import "./status-CjvLj0Ob.js";
90
90
  import "./update-BFS9LfuW.js";
91
- import "./lifecycle-DFB0_xLS.js";
92
- import { n as setupChannels } from "./onboard-channels-DYKwJPZk.js";
91
+ import "./lifecycle-DtjQ5ipb.js";
92
+ import { n as setupChannels } from "./onboard-channels-Bwb5RCIS.js";
93
93
  import { t as WizardCancelledError } from "./prompts-DdS4bZNt.js";
94
94
  import "./note-BJ63b2KP.js";
95
95
  import { t as createClackPrompter } from "./clack-prompter-D4bgAkyY.js";
@@ -1,7 +1,7 @@
1
1
  import { _ as resolveStateDir } from "./paths-C9FmTW1x.js";
2
2
  import { N as isVerbose } from "./agent-paths-BySKyq9I.js";
3
3
  import { F as createSubsystemLogger, sd as shouldLogSubsystemToConsole } from "./agent-scope-803djwZu.js";
4
- import { fr as sniffMimeFromBase64 } from "./reply-Baz1gE0S.js";
4
+ import { fr as sniffMimeFromBase64 } from "./reply-CHDxge29.js";
5
5
  import { w as parseAgentSessionKey } from "./session-key-LmCHAJTQ.js";
6
6
  import { o as getDefaultRedactPatterns, s as redactSensitiveText } from "./errors-Dx3S3Nrp.js";
7
7
  import { c as readJsonFile, l as writeJsonAtomic, s as createAsyncLock } from "./pairing-token-BFGorDQo.js";
@@ -1,6 +1,6 @@
1
1
  import { a as createSubsystemLogger, yu as shouldLogSubsystemToConsole } from "./env-DZf2YiRU.js";
2
2
  import { M as isVerbose } from "./agent-paths-DUHGyU1s.js";
3
- import { On as sniffMimeFromBase64 } from "./model-catalog-hjXNofhs.js";
3
+ import { On as sniffMimeFromBase64 } from "./model-catalog-QdGjCBzQ.js";
4
4
  import { Ct as resolveStateDir, E as redactSensitiveText, T as getDefaultRedactPatterns, it as parseAgentSessionKey } from "./entry.js";
5
5
  import { x as estimateBase64DecodedBytes } from "./target-errors-DALv82Gh.js";
6
6
  import { c as readJsonFile, l as writeJsonAtomic, s as createAsyncLock } from "./pairing-token-C2iKEhFc.js";
@@ -2,7 +2,7 @@ import { Ss as logVerbose, ws as shouldLogVerbose } from "./agent-scope-Dgtbq9QM
2
2
  import "./github-copilot-token-CNsqwfnE.js";
3
3
  import "./send-C_b5kbEq.js";
4
4
  import "./send-DW9d3cJB.js";
5
- import { F as resolveMediaAttachmentLocalRoots, I as runCapability, L as isAudioAttachment, M as buildProviderRegistry, N as createMediaAttachmentCache, P as normalizeMediaAttachments } from "./pi-embedded-BvqQUzWN.js";
5
+ import { F as resolveMediaAttachmentLocalRoots, I as runCapability, L as isAudioAttachment, M as buildProviderRegistry, N as createMediaAttachmentCache, P as normalizeMediaAttachments } from "./pi-embedded-D-WBZS6e.js";
6
6
  import "./reply-prefix-AEZRDRRS.js";
7
7
  import "./diagnostic-i_zr-xO7.js";
8
8
  import "./diagnostic-session-state-CL_QxyRg.js";
@@ -2,7 +2,7 @@ import "./paths-C9FmTW1x.js";
2
2
  import { F as logVerbose, R as shouldLogVerbose } from "./agent-paths-BySKyq9I.js";
3
3
  import "./agent-scope-803djwZu.js";
4
4
  import "./commands-registry-Dha8b_oq.js";
5
- import { An as normalizeMediaAttachments, Mn as runCapability, Nn as isAudioAttachment, On as buildProviderRegistry, jn as resolveMediaAttachmentLocalRoots, kn as createMediaAttachmentCache } from "./reply-Baz1gE0S.js";
5
+ import { An as normalizeMediaAttachments, Mn as runCapability, Nn as isAudioAttachment, On as buildProviderRegistry, jn as resolveMediaAttachmentLocalRoots, kn as createMediaAttachmentCache } from "./reply-CHDxge29.js";
6
6
  import "./errors-Dx3S3Nrp.js";
7
7
  import "./send-DgEYF-rw.js";
8
8
  import "./send-pgDAogV8.js";
@@ -37,7 +37,7 @@ import "./ssrf-Blf4NrHS.js";
37
37
  import "./outbound-attachment-BIDEXM1m.js";
38
38
  import "./fetch-IJlrLWag.js";
39
39
  import "./delivery-queue-rYTO6uCE.js";
40
- import "./deps-CZFDjC6B.js";
40
+ import "./deps-Dh2iIgIB.js";
41
41
  import "./memory-C3SmVHtE.js";
42
42
  import "./memory-search-BB8Uk47d.js";
43
43
  import "./manager-Bc5KCs6B.js";
@@ -1,6 +1,6 @@
1
1
  import "./github-copilot-token-Dy7Y_jbI.js";
2
2
  import { As as shouldLogVerbose, Os as logVerbose } from "./paths-CaxdzLdl.js";
3
- import { A as createMediaAttachmentCache, M as resolveMediaAttachmentLocalRoots, N as runCapability, P as isAudioAttachment, j as normalizeMediaAttachments, k as buildProviderRegistry } from "./auth-Ba9Dk7FX.js";
3
+ import { A as createMediaAttachmentCache, M as resolveMediaAttachmentLocalRoots, N as runCapability, P as isAudioAttachment, j as normalizeMediaAttachments, k as buildProviderRegistry } from "./auth-B7xL5wBQ.js";
4
4
  import "./send-BJjoV-0D.js";
5
5
  import "./send-BfoWn2uU.js";
6
6
  import "./skill-commands-DD9kEYVQ.js";
@@ -2,7 +2,7 @@ import "./env-DZf2YiRU.js";
2
2
  import { L as shouldLogVerbose, P as logVerbose } from "./agent-paths-DUHGyU1s.js";
3
3
  import "./send-4Bz1g7es.js";
4
4
  import "./send-CaE81xJg.js";
5
- import { $t as buildProviderRegistry, en as createMediaAttachmentCache, in as isAudioAttachment, nn as resolveMediaAttachmentLocalRoots, rn as runCapability, tn as normalizeMediaAttachments } from "./model-catalog-hjXNofhs.js";
5
+ import { $t as buildProviderRegistry, en as createMediaAttachmentCache, in as isAudioAttachment, nn as resolveMediaAttachmentLocalRoots, rn as runCapability, tn as normalizeMediaAttachments } from "./model-catalog-QdGjCBzQ.js";
6
6
  import "./github-copilot-token-A9DiaCB0.js";
7
7
  import "./reply-prefix-pEk10qm3.js";
8
8
  import "./memory-Bs7egOTC.js";
@@ -44,7 +44,7 @@ import "./send-2z6EXr8o.js";
44
44
  import "./outbound-attachment-DRoNYAVt.js";
45
45
  import "./fetch-DzdLpVxl.js";
46
46
  import "./delivery-queue-DeoUHXGD.js";
47
- import "./deps-CrKSMHlj.js";
47
+ import "./deps-npMqt3Ka.js";
48
48
  import "./frontmatter-Cye-a9g3.js";
49
49
  import "./skills-60AaRTYw.js";
50
50
  import "./skills-remote-DWll8gbf.js";
@@ -2,7 +2,7 @@ import { Es as shouldLogVerbose, ws as logVerbose } from "./agent-scope-aSy-gdbE
2
2
  import "./github-copilot-token-DYrFvncE.js";
3
3
  import "./send-DwWlbQuV.js";
4
4
  import "./send-Dg4NoXDR.js";
5
- import { F as resolveMediaAttachmentLocalRoots, I as runCapability, L as isAudioAttachment, M as buildProviderRegistry, N as createMediaAttachmentCache, P as normalizeMediaAttachments } from "./pi-embedded-F3Zt8ed6.js";
5
+ import { F as resolveMediaAttachmentLocalRoots, I as runCapability, L as isAudioAttachment, M as buildProviderRegistry, N as createMediaAttachmentCache, P as normalizeMediaAttachments } from "./pi-embedded-IqgbZA5l.js";
6
6
  import "./diagnostic-COVkgGVx.js";
7
7
  import "./diagnostic-session-state-CexmAKza.js";
8
8
  import "./send-BrVVemb3.js";
@@ -1,5 +1,5 @@
1
1
  import { $f as READ_SCOPE, $i as formatPermissionRemediation, Cf as GATEWAY_CLIENT_MODES, Cu as formatCliCommand, Gl as listChannelPlugins, Gu as resolveDefaultAgentId, Of as normalizeStringEntries, Pf as normalizePluginsConfig, Qi as formatPermissionDetail, Yt as createConfigIO, al as scanDirectoryWithSummary, ea as inspectPathPermissions, il as MANIFEST_KEY, ol as extensionUsesSkippedScannerPath, sl as isPathInside, ta as safeStat, vr as INCLUDE_KEY, wf as GATEWAY_CLIENT_NAMES, yr as MAX_INCLUDE_DEPTH } from "./env-DZf2YiRU.js";
2
- import { Ci as resolveProfile, Eo as resolveSandboxConfigForAgent, J as resolveDmAllowState, Kn as pickSandboxToolPolicy, Ln as resolveBrowserControlAuth, Oo as resolveSandboxToolPolicyForAgent, Si as resolveBrowserConfig, Vn as resolveGatewayAuth, Wn as isToolAllowedByPolicies, ko as resolveToolProfilePolicy } from "./model-catalog-hjXNofhs.js";
2
+ import { Ci as resolveProfile, Eo as resolveSandboxConfigForAgent, J as resolveDmAllowState, Kn as pickSandboxToolPolicy, Ln as resolveBrowserControlAuth, Oo as resolveSandboxToolPolicyForAgent, Si as resolveBrowserConfig, Vn as resolveGatewayAuth, Wn as isToolAllowedByPolicies, ko as resolveToolProfilePolicy } from "./model-catalog-QdGjCBzQ.js";
3
3
  import { Ct as resolveStateDir, V as normalizeAgentId, ft as resolveConfigPath, x as formatErrorMessage, xt as resolveOAuthDir } from "./entry.js";
4
4
  import { E as resolveNativeSkillsEnabled, T as resolveNativeCommandsEnabled } from "./commands-registry-Czvs_nxE.js";
5
5
  import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-CusV9bcr.js";
@@ -1,7 +1,7 @@
1
1
  import { _ as resolveStateDir, h as resolveOAuthDir, o as resolveConfigPath } from "./paths-C9FmTW1x.js";
2
2
  import { Aa as formatPermissionRemediation, En as createConfigIO, Ll as scanDirectoryWithSummary, Ma as safeStat, Nu as listChannelPlugins, Rl as extensionUsesSkippedScannerPath, Uf as READ_SCOPE, Xr as MAX_INCLUDE_DEPTH, Yr as INCLUDE_KEY, d as resolveDefaultAgentId, dd as formatCliCommand, ja as inspectPathPermissions, ka as formatPermissionDetail, kl as MANIFEST_KEY, mf as GATEWAY_CLIENT_NAMES, pf as GATEWAY_CLIENT_MODES, vf as normalizeStringEntries, wf as normalizePluginsConfig, zl as isPathInside } from "./agent-scope-803djwZu.js";
3
3
  import { b as resolveNativeCommandsEnabled, x as resolveNativeSkillsEnabled } from "./commands-registry-Dha8b_oq.js";
4
- import { Ki as resolveBrowserConfig, Tn as resolveDmAllowState, at as resolveBrowserControlAuth, hr as pickSandboxToolPolicy, is as resolveSandboxConfigForAgent, lt as resolveGatewayAuth, os as resolveSandboxToolPolicyForAgent, pr as isToolAllowedByPolicies, qi as resolveProfile, ss as resolveToolProfilePolicy } from "./reply-Baz1gE0S.js";
4
+ import { Ki as resolveBrowserConfig, Tn as resolveDmAllowState, at as resolveBrowserControlAuth, hr as pickSandboxToolPolicy, is as resolveSandboxConfigForAgent, lt as resolveGatewayAuth, os as resolveSandboxToolPolicyForAgent, pr as isToolAllowedByPolicies, qi as resolveProfile, ss as resolveToolProfilePolicy } from "./reply-CHDxge29.js";
5
5
  import { s as normalizeAgentId } from "./session-key-LmCHAJTQ.js";
6
6
  import { n as formatErrorMessage } from "./errors-Dx3S3Nrp.js";
7
7
  import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-C88-uuUI.js";
@@ -161,7 +161,7 @@ function formatAllowlistMatchMeta(match) {
161
161
 
162
162
  //#endregion
163
163
  //#region src/brand.ts
164
- const FASED_PRODUCT_VERSION = "0.1.13";
164
+ const FASED_PRODUCT_VERSION = "0.1.14";
165
165
  const FASED_DISPLAY_VERSION = `v${FASED_PRODUCT_VERSION}`;
166
166
 
167
167
  //#endregion
@@ -21831,7 +21831,7 @@ function createOutboundSendDepsFromCliSource(deps) {
21831
21831
  function createDefaultDeps() {
21832
21832
  return {
21833
21833
  sendMessageWhatsApp: async (...args) => {
21834
- const { sendMessageWhatsApp } = await import("./web-Cv-tDA3u.js");
21834
+ const { sendMessageWhatsApp } = await import("./web-uQepjRHJ.js");
21835
21835
  return await sendMessageWhatsApp(...args);
21836
21836
  },
21837
21837
  sendMessageTelegram: async (...args) => {
@@ -33164,14 +33164,14 @@ async function resolveMessageChannelSelection(params) {
33164
33164
 
33165
33165
  //#endregion
33166
33166
  //#region src/infra/outbound/session-context.ts
33167
- function normalizeOptionalString$2(value) {
33167
+ function normalizeOptionalString$3(value) {
33168
33168
  if (typeof value !== "string") return;
33169
33169
  const trimmed = value.trim();
33170
33170
  return trimmed.length > 0 ? trimmed : void 0;
33171
33171
  }
33172
33172
  function buildOutboundSessionContext(params) {
33173
- const key = normalizeOptionalString$2(params.sessionKey);
33174
- const explicitAgentId = normalizeOptionalString$2(params.agentId);
33173
+ const key = normalizeOptionalString$3(params.sessionKey);
33174
+ const explicitAgentId = normalizeOptionalString$3(params.agentId);
33175
33175
  const derivedAgentId = key ? resolveSessionAgentId({
33176
33176
  sessionKey: key,
33177
33177
  config: params.cfg
@@ -49384,7 +49384,7 @@ async function loadProviderUsageSummary(opts = {}) {
49384
49384
 
49385
49385
  //#endregion
49386
49386
  //#region src/sessions/model-overrides.ts
49387
- function normalizeOptionalString$1(value) {
49387
+ function normalizeOptionalString$2(value) {
49388
49388
  return typeof value === "string" && value.trim().length > 0 ? value.trim() : void 0;
49389
49389
  }
49390
49390
  function applyModelOverrideToSessionEntry(params) {
@@ -49424,8 +49424,8 @@ function applyModelOverrideToSessionEntry(params) {
49424
49424
  updated = true;
49425
49425
  }
49426
49426
  }
49427
- const runtimeModel = normalizeOptionalString$1(entry.model) ?? "";
49428
- const runtimeProvider = normalizeOptionalString$1(entry.modelProvider) ?? "";
49427
+ const runtimeModel = normalizeOptionalString$2(entry.model) ?? "";
49428
+ const runtimeProvider = normalizeOptionalString$2(entry.modelProvider) ?? "";
49429
49429
  const runtimePresent = runtimeModel.length > 0 || runtimeProvider.length > 0;
49430
49430
  const runtimeAligned = runtimeModel === selection.model && (runtimeProvider.length === 0 || runtimeProvider === selection.provider);
49431
49431
  if (runtimePresent && (selectionUpdated || !runtimeAligned)) {
@@ -51178,14 +51178,42 @@ function resolveThreadBindingFarewellText(params) {
51178
51178
  return prefixSystemMessage(DEFAULT_THREAD_BINDING_FAREWELL_TEXT);
51179
51179
  }
51180
51180
 
51181
+ //#endregion
51182
+ //#region src/infra/outbound/conversation-id.ts
51183
+ function normalizeConversationId(value) {
51184
+ if (typeof value !== "string") return;
51185
+ return value.trim() || void 0;
51186
+ }
51187
+ function resolveConversationIdFromTargets(params) {
51188
+ const threadId = params.threadId != null ? normalizeConversationId(String(params.threadId)) : void 0;
51189
+ if (threadId) return threadId;
51190
+ for (const rawTarget of params.targets) {
51191
+ const target = normalizeConversationId(rawTarget);
51192
+ if (!target) continue;
51193
+ if (target.startsWith("channel:")) {
51194
+ const channelId = normalizeConversationId(target.slice(8));
51195
+ if (channelId) return channelId;
51196
+ continue;
51197
+ }
51198
+ const mentionMatch = target.match(/^<#(\d+)>$/);
51199
+ if (mentionMatch?.[1]) return mentionMatch[1];
51200
+ if (/^\d{6,}$/.test(target)) return target;
51201
+ }
51202
+ }
51203
+
51181
51204
  //#endregion
51182
51205
  //#region src/channels/thread-bindings-policy.ts
51183
51206
  const DISCORD_THREAD_BINDING_CHANNEL = "discord";
51207
+ const TELEGRAM_THREAD_BINDING_CHANNEL = "telegram";
51208
+ const LINE_THREAD_BINDING_CHANNEL = "line";
51184
51209
  const DEFAULT_THREAD_BINDING_IDLE_HOURS$1 = 24;
51185
51210
  const DEFAULT_THREAD_BINDING_MAX_AGE_HOURS$1 = 0;
51186
51211
  function normalizeChannelId(value) {
51187
51212
  return String(value ?? "").trim().toLowerCase();
51188
51213
  }
51214
+ function normalizeOptionalString$1(value) {
51215
+ return typeof value === "string" && value.trim() ? value.trim() : void 0;
51216
+ }
51189
51217
  function normalizeBoolean$1(value) {
51190
51218
  if (typeof value !== "boolean") return;
51191
51219
  return value;
@@ -51231,6 +51259,50 @@ function resolveThreadBindingSpawnPolicy(params) {
51231
51259
  spawnEnabled: normalizeBoolean$1(account?.[spawnFlagKey]) ?? normalizeBoolean$1(root?.[spawnFlagKey]) ?? channel !== DISCORD_THREAD_BINDING_CHANNEL
51232
51260
  };
51233
51261
  }
51262
+ function stripKnownTargetPrefix(value) {
51263
+ const typed = value.match(/^[a-z0-9_-]+:(user|group|room|channel):(.+)$/i);
51264
+ if (typed?.[2]) return typed[2];
51265
+ const colon = value.indexOf(":");
51266
+ return colon > 0 ? value.slice(colon + 1) : value;
51267
+ }
51268
+ function resolveThreadBindingConversationRef(params) {
51269
+ const channel = normalizeChannelId(params.channel);
51270
+ const threadId = params.threadId != null ? String(params.threadId).trim() : "";
51271
+ const groupId = params.groupId != null ? String(params.groupId).trim() : "";
51272
+ const to = normalizeOptionalString$1(params.to);
51273
+ if (channel === TELEGRAM_THREAD_BINDING_CHANNEL) {
51274
+ if (groupId && threadId) return {
51275
+ conversationId: `${groupId}:topic:${threadId}`,
51276
+ parentConversationId: groupId
51277
+ };
51278
+ if (to) {
51279
+ const topic = stripKnownTargetPrefix(to).match(/^(.+):topic:([^:]+)$/);
51280
+ if (topic?.[1] && topic[2]) return {
51281
+ conversationId: `${topic[1]}:topic:${topic[2]}`,
51282
+ parentConversationId: topic[1]
51283
+ };
51284
+ }
51285
+ }
51286
+ if (channel === LINE_THREAD_BINDING_CHANNEL && to) return { conversationId: stripKnownTargetPrefix(to) };
51287
+ if (to?.startsWith("room:")) return { conversationId: to.slice(5) };
51288
+ const resolved = resolveConversationIdFromTargets({
51289
+ threadId,
51290
+ targets: [to]
51291
+ });
51292
+ return resolved ? { conversationId: resolved } : null;
51293
+ }
51294
+ function resolveThreadBindingPlacement(params) {
51295
+ const channel = normalizeChannelId(params.channel);
51296
+ if (channel === TELEGRAM_THREAD_BINDING_CHANNEL || channel === LINE_THREAD_BINDING_CHANNEL) return params.placements.includes("current") ? "current" : "child";
51297
+ return params.placements.includes("child") ? "child" : "current";
51298
+ }
51299
+ function resolveThreadBindingDeliveryTo(params) {
51300
+ const channel = normalizeChannelId(params.channel);
51301
+ const boundConversationId = normalizeOptionalString$1(params.boundConversationId);
51302
+ if (boundConversationId && params.placement === "child") return `channel:${boundConversationId}`;
51303
+ if (boundConversationId && params.placement === "current" && channel === LINE_THREAD_BINDING_CHANNEL) return boundConversationId;
51304
+ return normalizeOptionalString$1(params.requesterTo) || (params.deliveryThreadId ? `channel:${params.deliveryThreadId}` : void 0);
51305
+ }
51234
51306
  function resolveThreadBindingIdleTimeoutMsForChannel(params) {
51235
51307
  const channel = normalizeChannelId(params.channel);
51236
51308
  const accountId = normalizeAccountId$2(params.accountId);
@@ -51267,29 +51339,6 @@ function formatThreadBindingSpawnDisabledError(params) {
51267
51339
  return `Thread-bound ${params.kind} spawns are disabled for ${params.channel}.`;
51268
51340
  }
51269
51341
 
51270
- //#endregion
51271
- //#region src/infra/outbound/conversation-id.ts
51272
- function normalizeConversationId(value) {
51273
- if (typeof value !== "string") return;
51274
- return value.trim() || void 0;
51275
- }
51276
- function resolveConversationIdFromTargets(params) {
51277
- const threadId = params.threadId != null ? normalizeConversationId(String(params.threadId)) : void 0;
51278
- if (threadId) return threadId;
51279
- for (const rawTarget of params.targets) {
51280
- const target = normalizeConversationId(rawTarget);
51281
- if (!target) continue;
51282
- if (target.startsWith("channel:")) {
51283
- const channelId = normalizeConversationId(target.slice(8));
51284
- if (channelId) return channelId;
51285
- continue;
51286
- }
51287
- const mentionMatch = target.match(/^<#(\d+)>$/);
51288
- if (mentionMatch?.[1]) return mentionMatch[1];
51289
- if (/^\d{6,}$/.test(target)) return target;
51290
- }
51291
- }
51292
-
51293
51342
  //#endregion
51294
51343
  //#region src/tasks/task-executor.ts
51295
51344
  function compactRecord$1(value) {
@@ -51835,42 +51884,6 @@ function resolveAcpSpawnChannelAccountId(params) {
51835
51884
  const channels = params.cfg.channels;
51836
51885
  return normalizeOptionalString(channels?.[channel]?.defaultAccount) ?? "default";
51837
51886
  }
51838
- function stripKnownTargetPrefix(value) {
51839
- const typed = value.match(/^[a-z0-9_-]+:(user|group|room|channel):(.+)$/i);
51840
- if (typed?.[2]) return typed[2];
51841
- const colon = value.indexOf(":");
51842
- return colon > 0 ? value.slice(colon + 1) : value;
51843
- }
51844
- function resolveConversationRefForThreadBinding(params) {
51845
- const channel = normalizeOptionalLowercaseString(params.channel);
51846
- const threadId = params.threadId != null ? String(params.threadId).trim() : "";
51847
- const groupId = params.groupId != null ? String(params.groupId).trim() : "";
51848
- const to = normalizeOptionalString(params.to);
51849
- if (channel === "telegram") {
51850
- if (groupId && threadId) return {
51851
- conversationId: `${groupId}:topic:${threadId}`,
51852
- parentConversationId: groupId
51853
- };
51854
- if (to) {
51855
- const topic = stripKnownTargetPrefix(to).match(/^(.+):topic:([^:]+)$/);
51856
- if (topic?.[1] && topic[2]) return {
51857
- conversationId: `${topic[1]}:topic:${topic[2]}`,
51858
- parentConversationId: topic[1]
51859
- };
51860
- }
51861
- }
51862
- if (channel === "line" && to) return { conversationId: stripKnownTargetPrefix(to) };
51863
- if (to?.startsWith("room:")) return { conversationId: to.slice(5) };
51864
- const resolved = resolveConversationIdFromTargets({
51865
- threadId,
51866
- targets: [to]
51867
- });
51868
- return resolved ? { conversationId: resolved } : null;
51869
- }
51870
- function resolveBindingPlacement(params) {
51871
- if (params.channel === "telegram" || params.channel === "line") return params.placements.includes("current") ? "current" : "child";
51872
- return params.placements.includes("child") ? "child" : "current";
51873
- }
51874
51887
  function isHeartbeatEnabledForSessionAgent(params) {
51875
51888
  if (!areHeartbeatsEnabled()) return false;
51876
51889
  const requesterAgentId = parseAgentSessionKey(params.sessionKey)?.agentId;
@@ -51964,7 +51977,7 @@ function prepareAcpThreadBinding(params) {
51964
51977
  ok: false,
51965
51978
  error: `Thread bindings are unavailable for ${policy.channel}.`
51966
51979
  };
51967
- const placement = resolveBindingPlacement({
51980
+ const placement = resolveThreadBindingPlacement({
51968
51981
  channel: policy.channel,
51969
51982
  placements: capabilities.placements
51970
51983
  });
@@ -51972,7 +51985,7 @@ function prepareAcpThreadBinding(params) {
51972
51985
  ok: false,
51973
51986
  error: `Thread bindings do not support ${placement} placement for ${policy.channel}.`
51974
51987
  };
51975
- const conversationRef = resolveConversationRefForThreadBinding({
51988
+ const conversationRef = resolveThreadBindingConversationRef({
51976
51989
  channel: policy.channel,
51977
51990
  to: params.to,
51978
51991
  threadId: params.threadId,
@@ -52196,7 +52209,13 @@ async function spawnAcpDirect(params, ctx) {
52196
52209
  const fallbackThreadId = fallbackThreadIdRaw != null ? String(fallbackThreadIdRaw).trim() || void 0 : void 0;
52197
52210
  const bindingPlacement = preparedBinding?.placement;
52198
52211
  const deliveryThreadId = bindingPlacement === "child" ? boundThreadId ?? fallbackThreadId : fallbackThreadId;
52199
- const inferredDeliveryTo = boundThreadId && bindingPlacement === "child" ? `channel:${boundThreadId}` : boundThreadId && bindingPlacement === "current" && preparedBinding?.channel === "line" ? boundThreadId : requesterOrigin?.to?.trim() || (deliveryThreadId ? `channel:${deliveryThreadId}` : void 0);
52212
+ const inferredDeliveryTo = resolveThreadBindingDeliveryTo({
52213
+ channel: preparedBinding?.channel,
52214
+ placement: bindingPlacement,
52215
+ boundConversationId: boundThreadId,
52216
+ requesterTo: requesterOrigin?.to,
52217
+ deliveryThreadId
52218
+ });
52200
52219
  const hasDeliveryTarget = Boolean(requestThreadBinding && !streamToParent && requesterOrigin?.channel && inferredDeliveryTo);
52201
52220
  const childIdem = crypto.randomUUID();
52202
52221
  let childRunId = childIdem;
@@ -104122,7 +104141,7 @@ async function preflightDiscordMessage(params) {
104122
104141
  let preflightTranscript;
104123
104142
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
104124
104143
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
104125
- const { transcribeFirstAudio } = await import("./audio-preflight-DilYfzh4.js");
104144
+ const { transcribeFirstAudio } = await import("./audio-preflight-Bd38_Rtq.js");
104126
104145
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
104127
104146
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
104128
104147
  ctx: {
@@ -120998,7 +121017,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
120998
121017
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
120999
121018
  let preflightTranscript;
121000
121019
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
121001
- const { transcribeFirstAudio } = await import("./audio-preflight-DilYfzh4.js");
121020
+ const { transcribeFirstAudio } = await import("./audio-preflight-Bd38_Rtq.js");
121002
121021
  preflightTranscript = await transcribeFirstAudio({
121003
121022
  ctx: {
121004
121023
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -123624,7 +123643,7 @@ function loadWebLoginQr() {
123624
123643
  return webLoginQrPromise;
123625
123644
  }
123626
123645
  function loadWebChannel() {
123627
- webChannelPromise ??= import("./web-Cv-tDA3u.js");
123646
+ webChannelPromise ??= import("./web-uQepjRHJ.js");
123628
123647
  return webChannelPromise;
123629
123648
  }
123630
123649
  function loadWhatsAppActions() {
@@ -1,7 +1,7 @@
1
1
  import { _ as resolveStateDir } from "./paths-C9FmTW1x.js";
2
2
  import { n as resolveFasedAgentAgentDir } from "./agent-paths-BySKyq9I.js";
3
3
  import { $c as LITELLM_BASE_URL, $i as discoverHuggingfaceModels, A as resolveDefaultAgentWorkspaceDir, Ac as VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF, Ai as XIAOMI_DEFAULT_MODEL_ID, Bc as TOGETHER_DEFAULT_MODEL_REF, Co as coerceSecretRef, Da as encodeJsonPointerToken, Di as QWEN_CODING_PLAN_DEFAULT_MODEL_REF, Ei as QWEN_CODING_PLAN_BASE_URL, Fa as loginXaiDeviceCode, Fc as VENICE_MODEL_CATALOG, Ga as ensureAuthProfileStore, Gc as SYNTHETIC_BASE_URL, Hi as resolveEnvApiKey, Ia as loginXaiOAuth, Jo as GITHUB_COPILOT_MODEL_REFS, Kc as SYNTHETIC_DEFAULT_MODEL_REF, Ks as SYNTHETIC_MODEL_REFS, Lc as VENICE_MODEL_REFS, Mc as VERCEL_AI_GATEWAY_MODEL_REFS, Mi as buildQianfanProvider, Mn as writeConfigFile, Nc as VENICE_BASE_URL, Ni as buildQwenProvider, Ns as OPENROUTER_MODEL_REFS, Oi as QWEN_DASHSCOPE_BASE_URL, Pc as VENICE_DEFAULT_MODEL_REF, Pi as buildXiaomiProvider, Po as BYTEPLUS_MODEL_REFS, Qc as OPENCODE_ZEN_MODEL_REFS, Qo as GOOGLE_GEMINI_CLI_MODEL_REFS, Rc as buildVeniceModelDefinition, Rs as QIANFAN_MODEL_REFS, Ta as resolveDefaultSecretProviderAlias, Tc as isStandardProviderModelRef, Ti as QIANFAN_DEFAULT_MODEL_ID, Ts as OPENAI_API_MODEL_REFS, Ua as upsertAuthProfile, Uc as TOGETHER_MODEL_REFS, Uo as COPILOT_PROXY_MODEL_REFS, Vc as TOGETHER_MODEL_CATALOG, Wa as upsertAuthProfileWithLock, Wc as buildTogetherModelDefinition, Xc as OPENCODE_ZEN_DEFAULT_MODEL_REF, Xo as GOOGLE_API_MODEL_REFS, Yc as buildSyntheticModelDefinition, Zi as normalizeModelCatalogProviderId, _a as parseOAuthCallbackInput, a as resolveAgentDir, al as buildLitellmModelDefinition$1, ao as loadPluginManifestRegistry, ap as toAgentModelListLike, bo as normalizeSecretInput, ci as modelKey, cl as HUGGINGFACE_MODEL_CATALOG, d as resolveDefaultAgentId, dd as formatCliCommand, di as normalizeProviderId, dl as buildHuggingfaceModelDefinition, ea as isHuggingfacePolicyLocked, el as LITELLM_DEFAULT_MODEL_ID, fc as XAI_MODEL_REFS, fl as CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF, ga as generateChutesPkce, gi as resolveDefaultModelForAgent, gs as MISTRAL_MODEL_REFS, ha as exchangeChutesCodeForTokens, hc as XIAOMI_MODEL_REFS, hi as resolveConfiguredModelRef, hl as CLOUDFLARE_AI_GATEWAY_MODEL_REFS, ia as buildChutesModelDefinition, ic as VOLCENGINE_CODING_MODEL_REFS, ii as buildModelAliasIndex, il as LITELLM_MODEL_REFS, ji as buildKimiCodingProvider, jo as BYTEPLUS_CODING_MODEL_REFS, ki as QWEN_DEFAULT_MODEL_REF, kn as readConfigFileSnapshot, ks as OPENAI_SIGN_IN_MODEL_REFS, ma as CHUTES_AUTHORIZE_ENDPOINT, mi as resolveAllowlistModelKey, na as CHUTES_DEFAULT_MODEL_REF, nl as LITELLM_MODEL_CATALOG, oa as resolveAuthProfileOrder, ol as HUGGINGFACE_BASE_URL, pl as CLOUDFLARE_AI_GATEWAY_MODEL_CATALOG, qc as SYNTHETIC_MODEL_CATALOG, qo as GITHUB_COPILOT_DEFAULT_MODEL_REF, r as listAgentIds, ra as CHUTES_MODEL_CATALOG, ro as normalizeProviderId$1, sc as VOLCENGINE_MODEL_REFS, sl as HUGGINGFACE_DEFAULT_MODEL_REF, ta as CHUTES_BASE_URL, tl as LITELLM_DEFAULT_MODEL_REF, to as resolveProviderIdForAuth, u as resolveAgentWorkspaceDir, ul as HUGGINGFACE_MODEL_REFS, va as resolveSecretRefString, vl as buildCloudflareAiGatewayModelDefinition, vo as isPrivateNetworkBaseUrl, wa as isValidFileSecretRefId, wc as isStandardProviderCatalogEntry, wi as QIANFAN_BASE_URL, xo as DEFAULT_SECRET_PROVIDER_ALIAS, yc as ZAI_MODEL_REFS, yi as resolveModelRefFromString, yl as resolveCloudflareAiGatewayBaseUrl, za as listProfilesForProvider, zc as TOGETHER_BASE_URL, zi as getCustomProviderApiKey } from "./agent-scope-803djwZu.js";
4
- import { Et as loadModelCatalog, Jt as openUrl, Mt as resolvePluginProviders, jt as formatModelFeatureList, kt as buildFasedModelCatalogRows } from "./reply-Baz1gE0S.js";
4
+ import { Et as loadModelCatalog, Jt as openUrl, Mt as resolvePluginProviders, jt as formatModelFeatureList, kt as buildFasedModelCatalogRows } from "./reply-CHDxge29.js";
5
5
  import { s as normalizeAgentId } from "./session-key-LmCHAJTQ.js";
6
6
  import { n as DEFAULT_MODEL, r as DEFAULT_PROVIDER } from "./defaults-CzImVi0V.js";
7
7
  import { i as isLoopbackHost } from "./ws-cvQhrVP3.js";
@@ -1,6 +1,6 @@
1
1
  import { $r as XIAOMI_DEFAULT_MODEL_ID, $s as VERCEL_AI_GATEWAY_MODEL_REFS, Bc as resolveCloudflareAiGatewayBaseUrl, Bi as parseOAuthCallbackInput, Bs as ZAI_MODEL_REFS, Cc as LITELLM_MODEL_CATALOG, Ci as isHuggingfacePolicyLocked, Cu as formatCliCommand, Dc as HUGGINGFACE_BASE_URL, Di as buildChutesModelDefinition, Dr as buildModelAliasIndex, Ea as normalizeProviderId$1, Ec as buildLitellmModelDefinition$1, Ei as CHUTES_MODEL_CATALOG, Gs as isStandardProviderCatalogEntry, Gu as resolveDefaultAgentId, Ha as DEFAULT_SECRET_PROVIDER_ALIAS, Hr as resolveModelRefFromString, Ic as CLOUDFLARE_AI_GATEWAY_MODEL_REFS, Id as toAgentModelListLike, Is as XIAOMI_MODEL_REFS, Ji as resolveDefaultSecretProviderAlias, Jr as QIANFAN_DEFAULT_MODEL_ID, Ko as OPENAI_API_MODEL_REFS, Ks as isStandardProviderModelRef, Li as CHUTES_AUTHORIZE_ENDPOINT, Lo as MISTRAL_MODEL_REFS, Lr as resolveAllowlistModelKey, Lu as listAgentIds, Mc as buildHuggingfaceModelDefinition, Nc as CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF, Ns as XAI_MODEL_REFS, Oa as loadPluginManifestRegistry, Oc as HUGGINGFACE_DEFAULT_MODEL_REF, Os as VOLCENGINE_MODEL_REFS, Pc as CLOUDFLARE_AI_GATEWAY_MODEL_CATALOG, Pr as normalizeProviderId, Qa as BYTEPLUS_CODING_MODEL_REFS, Qr as QWEN_DEFAULT_MODEL_REF, Qt as readConfigFileSnapshot, Ri as exchangeChutesCodeForTokens, Rr as resolveConfiguredModelRef, Sc as LITELLM_DEFAULT_MODEL_REF, Si as discoverHuggingfaceModels, Tc as LITELLM_MODEL_REFS, Ti as CHUTES_DEFAULT_MODEL_REF, Ts as VOLCENGINE_CODING_MODEL_REFS, Va as normalizeSecretInput, Vi as resolveSecretRefString, Wa as coerceSecretRef, Wu as resolveAgentWorkspaceDir, Xi as encodeJsonPointerToken, Xo as OPENAI_SIGN_IN_MODEL_REFS, Xr as QWEN_CODING_PLAN_DEFAULT_MODEL_REF, Yr as QWEN_CODING_PLAN_BASE_URL, Zr as QWEN_DASHSCOPE_BASE_URL, Zs as VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF, _c as OPENCODE_ZEN_DEFAULT_MODEL_REF, _o as GOOGLE_API_MODEL_REFS, aa as loginXaiOAuth, ac as buildVeniceModelDefinition, as as QIANFAN_MODEL_REFS, bc as LITELLM_BASE_URL, bi as normalizeModelCatalogProviderId, ca as listProfilesForProvider, cc as TOGETHER_MODEL_CATALOG, ci as getCustomProviderApiKey, dc as buildTogetherModelDefinition, di as resolveEnvApiKey, ec as VENICE_BASE_URL, ei as buildKimiCodingProvider, es as OPENROUTER_MODEL_REFS, fa as upsertAuthProfile, fc as SYNTHETIC_BASE_URL, gc as buildSyntheticModelDefinition, ho as GITHUB_COPILOT_MODEL_REFS, ia as loginXaiDeviceCode, ic as VENICE_MODEL_REFS, jc as HUGGINGFACE_MODEL_REFS, jr as modelKey, kc as HUGGINGFACE_MODEL_CATALOG, ki as resolveAuthProfileOrder, ma as ensureAuthProfileStore, mc as SYNTHETIC_MODEL_CATALOG, mo as GITHUB_COPILOT_DEFAULT_MODEL_REF, nc as VENICE_MODEL_CATALOG, ni as buildQwenProvider, oc as TOGETHER_BASE_URL, pa as upsertAuthProfileWithLock, pc as SYNTHETIC_DEFAULT_MODEL_REF, ps as SYNTHETIC_MODEL_REFS, qi as isValidFileSecretRefId, qr as QIANFAN_BASE_URL, ri as buildXiaomiProvider, sc as TOGETHER_DEFAULT_MODEL_REF, tc as VENICE_DEFAULT_MODEL_REF, ti as buildQianfanProvider, tn as writeConfigFile, to as BYTEPLUS_MODEL_REFS, uc as TOGETHER_MODEL_REFS, ud as resolveDefaultAgentWorkspaceDir, uo as COPILOT_PROXY_MODEL_REFS, wa as resolveProviderIdForAuth, wi as CHUTES_BASE_URL, xc as LITELLM_DEFAULT_MODEL_ID, yc as OPENCODE_ZEN_MODEL_REFS, yo as GOOGLE_GEMINI_CLI_MODEL_REFS, za as isPrivateNetworkBaseUrl, zc as buildCloudflareAiGatewayModelDefinition, zi as generateChutesPkce, zr as resolveDefaultModelForAgent, zu as resolveAgentDir } from "./env-DZf2YiRU.js";
2
2
  import { n as resolveFasedAgentAgentDir } from "./agent-paths-DUHGyU1s.js";
3
- import { S as openUrl, i as buildFasedModelCatalogRows, o as formatModelFeatureList, s as resolvePluginProviders, t as loadModelCatalog } from "./model-catalog-hjXNofhs.js";
3
+ import { S as openUrl, i as buildFasedModelCatalogRows, o as formatModelFeatureList, s as resolvePluginProviders, t as loadModelCatalog } from "./model-catalog-QdGjCBzQ.js";
4
4
  import { n as DEFAULT_MODEL, r as DEFAULT_PROVIDER } from "./defaults-BDW-7D7s.js";
5
5
  import { Ct as resolveStateDir, V as normalizeAgentId } from "./entry.js";
6
6
  import { n as fetchWithTimeout } from "./fetch-timeout-Bs45GM7s.js";
@@ -1,5 +1,5 @@
1
1
  import { Ec as listProviderBrandManifests, Is as PROVIDER_BRAND_ORDER } from "./agent-scope-803djwZu.js";
2
- import { It as resolveManifestProviderAuthChoices, Lt as resolveManifestProviderOnboardAuthFlags } from "./auth-choice-Ba8d4du0.js";
2
+ import { It as resolveManifestProviderAuthChoices, Lt as resolveManifestProviderOnboardAuthFlags } from "./auth-choice-DJMbZkdQ.js";
3
3
 
4
4
  //#region src/commands/auth-choice-legacy.ts
5
5
  const AUTH_CHOICE_LEGACY_ALIASES_FOR_CLI = [
@@ -1,5 +1,5 @@
1
1
  import { qs as listProviderBrandManifests, rs as PROVIDER_BRAND_ORDER } from "./env-DZf2YiRU.js";
2
- import { It as resolveManifestProviderAuthChoices, Lt as resolveManifestProviderOnboardAuthFlags } from "./auth-choice-DT4p5QVd.js";
2
+ import { It as resolveManifestProviderAuthChoices, Lt as resolveManifestProviderOnboardAuthFlags } from "./auth-choice-FgOKdWSF.js";
3
3
 
4
4
  //#region src/commands/auth-choice-legacy.ts
5
5
  const AUTH_CHOICE_LEGACY_ALIASES_FOR_CLI = [