@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
@@ -1,7 +1,7 @@
1
1
  import { u as resolveGatewayPort } from "./paths-C9FmTW1x.js";
2
2
  import { S as resolveUserPath } from "./agent-paths-BySKyq9I.js";
3
3
  import { Ga as ensureAuthProfileStore, Hi as resolveEnvApiKey, Jn as parseDurationMs, Mn as writeConfigFile, Ta as resolveDefaultSecretProviderAlias, Ua as upsertAuthProfile, ao as loadPluginManifestRegistry, bo as normalizeSecretInput, dd as formatCliCommand, di as normalizeProviderId, kn as readConfigFileSnapshot, oa as resolveAuthProfileOrder, oo as assertSupportedRuntime, pa as resolveApiKeyForProfile, yo as normalizeOptionalSecretInput } from "./agent-scope-803djwZu.js";
4
- import { Lt as DEFAULT_WORKSPACE, Mt as resolvePluginProviders, Qt as resolveControlUiLinks, Rt as applyWizardMetadata, Vt as ensureWorkspaceAndSessions, Wt as handleOnboardingRepair, Zt as randomToken, nn as waitForGatewayReachable } from "./reply-Baz1gE0S.js";
4
+ import { Lt as DEFAULT_WORKSPACE, Mt as resolvePluginProviders, Qt as resolveControlUiLinks, Rt as applyWizardMetadata, Vt as ensureWorkspaceAndSessions, Wt as handleOnboardingRepair, Zt as randomToken, nn as waitForGatewayReachable } from "./reply-CHDxge29.js";
5
5
  import { d as defaultRuntime, f as restoreTerminalState } from "./errors-Dx3S3Nrp.js";
6
6
  import { a as readWalletProviderRegistry, f as setWalletProvidersEnabled, t as WALLET_PROVIDER_IDS } from "./wallet-provider-registry-ax0NJo0F.js";
7
7
  import { or as clearDeviceAuthStore } from "./call-C-4P5lFw.js";
@@ -9,12 +9,12 @@ import { r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from
9
9
  import { a as resolveHostedOnboardingGatewayStartupMode, n as gatewayInstallErrorHint, t as buildGatewayInstallPlan } from "./daemon-install-helpers-C5vjx3vv.js";
10
10
  import { r as isSystemdUserServiceAvailable } from "./systemd-B4dTBaNZ.js";
11
11
  import { t as resolveGatewayService } from "./service-BqlNcJO5.js";
12
- import { d as resolveCustomProviderId, l as parseNonInteractiveCustomApiFlags, o as CustomApiError, s as applyCustomApiConfig } from "./ipv4-CNhiSmCD.js";
13
- import { i as healthCommand } from "./health-CKmYZQVl.js";
14
- import { $ as applyLitellmConfig, At as validateAnthropicSetupToken, B as applyMistralConfig, Ct as setXaiApiKey, Dt as MINIMAX_HIGHSPEED_MODEL_ID, Et as MINIMAX_DEFAULT_MODEL_ID, F as applyMinimaxApiConfig, Ft as resolveManifestProviderAuthChoice, G as applyQwenCodingPlanConfig, H as applyMoonshotConfigCn, I as applyMinimaxApiConfigCn, J as applyTogetherConfig, K as applyQwenConfig, L as applyAuthProfileConfig$1, M as detectZaiEndpoint, Mt as normalizeSecretInputModeInput, N as applyGoogleGeminiModelDefault, P as applyOpencodeZenConfig, Pt as resolveManifestDeprecatedProviderAuthChoice, Q as applyZaiConfig, R as applyHuggingfaceConfig, St as setVolcengineApiKey, Tt as setZaiApiKey, U as applyOpenrouterConfig, V as applyMoonshotConfig, W as applyQianfanConfig, X as applyXaiConfig, Y as applyVeniceConfig, Z as applyXiaomiConfig, _t as setQwenCodingPlanApiKey, at as setGeminiApiKey, bt as setVeniceApiKey, c as applyDefaultModel, ct as setLitellmApiKey, d as resolveProviderMatch, dt as setMoonshotApiKey, et as applyCloudflareAiGatewayConfig, ft as setOpenaiApiKey, gt as setQwenApiKey, ht as setQianfanApiKey, i as applyOpenAIConfig, it as setCloudflareAiGatewayConfig, kt as buildTokenProfileId, l as mergeConfigPatch, lt as setMinimaxApiKey, m as applyPrimaryModel, mt as setOpenrouterApiKey, nt as setAnthropicApiKey, o as applyAuthProfileConfig, ot as setHuggingfaceApiKey, pt as setOpencodeZenApiKey, q as applySyntheticConfig, rt as setByteplusApiKey, s as buildApiKeyCredential, st as setKimiCodingApiKey, tt as applyVercelAiGatewayConfig, u as pickAuthMethod, ut as setMistralApiKey, vt as setSyntheticApiKey, wt as setXiaomiApiKey, xt as setVercelAiGatewayApiKey, yt as setTogetherApiKey, z as applyKimiCodeConfig } from "./auth-choice-Ba8d4du0.js";
15
- import { a as normalizeLegacyOnboardAuthChoice, i as isDeprecatedAuthChoice, r as resolveOnboardProviderAuthFlags } from "./auth-choice-prompt-DVg6LrLV.js";
12
+ import { d as resolveCustomProviderId, l as parseNonInteractiveCustomApiFlags, o as CustomApiError, s as applyCustomApiConfig } from "./ipv4-86I-Nx-V.js";
13
+ import { i as healthCommand } from "./health-WemI1hMs.js";
14
+ import { $ as applyLitellmConfig, At as validateAnthropicSetupToken, B as applyMistralConfig, Ct as setXaiApiKey, Dt as MINIMAX_HIGHSPEED_MODEL_ID, Et as MINIMAX_DEFAULT_MODEL_ID, F as applyMinimaxApiConfig, Ft as resolveManifestProviderAuthChoice, G as applyQwenCodingPlanConfig, H as applyMoonshotConfigCn, I as applyMinimaxApiConfigCn, J as applyTogetherConfig, K as applyQwenConfig, L as applyAuthProfileConfig$1, M as detectZaiEndpoint, Mt as normalizeSecretInputModeInput, N as applyGoogleGeminiModelDefault, P as applyOpencodeZenConfig, Pt as resolveManifestDeprecatedProviderAuthChoice, Q as applyZaiConfig, R as applyHuggingfaceConfig, St as setVolcengineApiKey, Tt as setZaiApiKey, U as applyOpenrouterConfig, V as applyMoonshotConfig, W as applyQianfanConfig, X as applyXaiConfig, Y as applyVeniceConfig, Z as applyXiaomiConfig, _t as setQwenCodingPlanApiKey, at as setGeminiApiKey, bt as setVeniceApiKey, c as applyDefaultModel, ct as setLitellmApiKey, d as resolveProviderMatch, dt as setMoonshotApiKey, et as applyCloudflareAiGatewayConfig, ft as setOpenaiApiKey, gt as setQwenApiKey, ht as setQianfanApiKey, i as applyOpenAIConfig, it as setCloudflareAiGatewayConfig, kt as buildTokenProfileId, l as mergeConfigPatch, lt as setMinimaxApiKey, m as applyPrimaryModel, mt as setOpenrouterApiKey, nt as setAnthropicApiKey, o as applyAuthProfileConfig, ot as setHuggingfaceApiKey, pt as setOpencodeZenApiKey, q as applySyntheticConfig, rt as setByteplusApiKey, s as buildApiKeyCredential, st as setKimiCodingApiKey, tt as applyVercelAiGatewayConfig, u as pickAuthMethod, ut as setMistralApiKey, vt as setSyntheticApiKey, wt as setXiaomiApiKey, xt as setVercelAiGatewayApiKey, yt as setTogetherApiKey, z as applyKimiCodeConfig } from "./auth-choice-DJMbZkdQ.js";
15
+ import { a as normalizeLegacyOnboardAuthChoice, i as isDeprecatedAuthChoice, r as resolveOnboardProviderAuthFlags } from "./auth-choice-prompt-DpbsOuyY.js";
16
16
  import { n as logConfigUpdated } from "./logging-C8GVa7dS.js";
17
- import { a as applyRecommendedInternalHooks, i as isHostedSecurityCapableSession, n as applyHostingSecurity, o as applyOnboardingLocalWorkspaceConfig, r as configureFederationForOnboarding, t as runOnboardingWizard } from "./onboarding-j1hpXVOe.js";
17
+ import { a as applyRecommendedInternalHooks, i as isHostedSecurityCapableSession, n as applyHostingSecurity, o as applyOnboardingLocalWorkspaceConfig, r as configureFederationForOnboarding, t as runOnboardingWizard } from "./onboarding-Cb9j4BOq.js";
18
18
  import { t as WizardCancelledError } from "./prompts-CbbpEiEO.js";
19
19
  import { t as createClackPrompter } from "./clack-prompter-BwKkMAKy.js";
20
20
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-Tgfk2m6B.js";
@@ -1,7 +1,7 @@
1
1
  import { $c as installPluginFromNpmSpec, $d as resolveDiscordAccount, $l as listWhatsAppAccountIds, Au as resolveTelegramAccount, Cu as formatCliCommand, Gd as resolveSignalAccount, Gl as listChannelPlugins, Gu as resolveDefaultAgentId, Jd as resolveIMessageAccount, Kd as listIMessageAccountIds, Ld as listSlackAccountIds, Ou as listTelegramAccountIds, Qd as resolveDefaultDiscordAccountId, Rd as resolveDefaultSlackAccountId, Ud as listSignalAccountIds, Wd as resolveDefaultSignalAccountId, Wl as getChannelPlugin, Wu as resolveAgentWorkspaceDir, Xd as listDiscordAccountIds, a as createSubsystemLogger, c as formatChannelSelectionLine, eu as resolveDefaultWhatsAppAccountId, ku as resolveDefaultTelegramAccountId, md as runCommandWithTimeout, nu as resolveWhatsAppAuthDir, pd as resolveFasedAgentPackageRootSync, qd as resolveDefaultIMessageAccountId, s as formatChannelPrimerLine, u as listChatChannels, xl as extractArchive, xu as stripAnsi, zd as resolveSlackAccount } from "./env-DZf2YiRU.js";
2
2
  import { _ as pathExists, g as normalizeE164, i as CONFIG_DIR } from "./agent-paths-DUHGyU1s.js";
3
3
  import { dt as normalizeDiscordSlug } from "./send-CaE81xJg.js";
4
- import { Oi as createPluginLoaderLogger, Qt as resolveDiscordUserAllowlist, V as resolveDiscordChannelAllowlist, Zt as resolveSlackUserAllowlist, c as loadFasedAgentPlugins, p as detectBinary, u as resolveSlackChannelAllowlist } from "./model-catalog-hjXNofhs.js";
4
+ import { Oi as createPluginLoaderLogger, Qt as resolveDiscordUserAllowlist, V as resolveDiscordChannelAllowlist, Zt as resolveSlackUserAllowlist, c as loadFasedAgentPlugins, p as detectBinary, u as resolveSlackChannelAllowlist } from "./model-catalog-QdGjCBzQ.js";
5
5
  import { J as DEFAULT_ACCOUNT_ID, Y as normalizeAccountId } from "./entry.js";
6
6
  import { i as isBlockedHostnameOrIp } from "./ssrf-CqV2hisj.js";
7
7
  import { d as listChannelPluginCatalogEntries, f as resolveChannelPluginExpectedPluginIds, l as formatChannelPluginCatalogSelectionHint, s as isChannelConfigured, u as formatChannelPluginCatalogStatusLine } from "./dangerous-name-matching-BzIhUdwr.js";
@@ -12,7 +12,7 @@ import { t as loginWeb } from "./login-DUOhohsu.js";
12
12
  import { t as resolveChannelDefaultAccountId } from "./helpers-BfdkoReO.js";
13
13
  import { t as enablePluginInConfig } from "./enable-DfGATYHS.js";
14
14
  import { t as buildNpmResolutionInstallFields } from "./installs-QKtSGvGt.js";
15
- import { o as finalizeInstalledPluginConfig } from "./lifecycle-DFB0_xLS.js";
15
+ import { o as finalizeInstalledPluginConfig } from "./lifecycle-DtjQ5ipb.js";
16
16
  import { t as fetchTelegramChatId } from "./api-uvDKewCP.js";
17
17
  import { spawn } from "node:child_process";
18
18
  import os from "node:os";
@@ -1,6 +1,6 @@
1
1
  import { _ as normalizeE164, i as CONFIG_DIR, v as pathExists } from "./agent-paths-BySKyq9I.js";
2
2
  import { $l as runCommandWithTimeout, B as listChatChannels, Bd as listDiscordAccountIds, Dd as listSlackAccountIds, F as createSubsystemLogger, Fd as resolveSignalAccount, Hd as resolveDefaultDiscordAccountId, Hu as resolveDefaultWhatsAppAccountId, Id as listIMessageAccountIds, L as formatChannelPrimerLine, Ld as resolveDefaultIMessageAccountId, Mu as getChannelPlugin, Nd as listSignalAccountIds, Nu as listChannelPlugins, Od as resolveDefaultSlackAccountId, Pd as resolveDefaultSignalAccountId, R as formatChannelSelectionLine, Rd as resolveIMessageAccount, Ud as resolveDiscordAccount, Vu as listWhatsAppAccountIds, Wu as resolveWhatsAppAuthDir, _d as resolveDefaultTelegramAccountId, d as resolveDefaultAgentId, dd as formatCliCommand, gd as listTelegramAccountIds, kd as resolveSlackAccount, ld as stripAnsi, mo as resolveFasedAgentPackageRootSync, ou as extractArchive, u as resolveAgentWorkspaceDir, vd as resolveTelegramAccount, wl as installPluginFromNpmSpec } from "./agent-scope-803djwZu.js";
3
- import { Ft as resolveSlackUserAllowlist, It as resolveSlackChannelAllowlist, Nt as loadFasedAgentPlugins, la as createPluginLoaderLogger, mn as resolveDiscordChannelAllowlist, pn as resolveDiscordUserAllowlist, zt as detectBinary } from "./reply-Baz1gE0S.js";
3
+ import { Ft as resolveSlackUserAllowlist, It as resolveSlackChannelAllowlist, Nt as loadFasedAgentPlugins, la as createPluginLoaderLogger, mn as resolveDiscordChannelAllowlist, pn as resolveDiscordUserAllowlist, zt as detectBinary } from "./reply-CHDxge29.js";
4
4
  import { h as normalizeAccountId, m as DEFAULT_ACCOUNT_ID } from "./session-key-LmCHAJTQ.js";
5
5
  import { dt as normalizeDiscordSlug } from "./send-pgDAogV8.js";
6
6
  import { i as isBlockedHostnameOrIp } from "./ssrf-Blf4NrHS.js";
@@ -12,7 +12,7 @@ import { t as resolveBrewExecutable } from "./brew-C52GeCeh.js";
12
12
  import { t as resolveChannelDefaultAccountId } from "./helpers-BvDnvwsE.js";
13
13
  import { t as enablePluginInConfig } from "./enable-CnEIDWds.js";
14
14
  import { t as buildNpmResolutionInstallFields } from "./installs-C1B6kxfM.js";
15
- import { o as finalizeInstalledPluginConfig } from "./lifecycle-C5XGWThd.js";
15
+ import { o as finalizeInstalledPluginConfig } from "./lifecycle-C6SWjahT.js";
16
16
  import { t as fetchTelegramChatId } from "./api-DLdLLQm_.js";
17
17
  import fs, { createWriteStream, readFileSync } from "node:fs";
18
18
  import os from "node:os";
@@ -2,7 +2,7 @@ import { $c as installPluginFromNpmSpec, Wa as coerceSecretRef, pd as resolveFas
2
2
  import { i as CONFIG_DIR, p as isRecord, x as resolveUserPath } from "./agent-paths-DUHGyU1s.js";
3
3
  import "./send-4Bz1g7es.js";
4
4
  import "./send-CaE81xJg.js";
5
- import "./model-catalog-hjXNofhs.js";
5
+ import "./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";
@@ -75,10 +75,10 @@ import "./prompt-style-CWdNyu_Q.js";
75
75
  import "./pairing-labels-BWWnectb.js";
76
76
  import { t as enablePluginInConfig } from "./enable-DfGATYHS.js";
77
77
  import { t as buildNpmResolutionInstallFields } from "./installs-QKtSGvGt.js";
78
- import "./status-CEc8-_t7.js";
78
+ import "./status-CjvLj0Ob.js";
79
79
  import "./update-BFS9LfuW.js";
80
- import { o as finalizeInstalledPluginConfig } from "./lifecycle-DFB0_xLS.js";
81
- import { t as resolvePluginWebSearchProviders } from "./web-search-providers.runtime-DmhNfMZI.js";
80
+ import { o as finalizeInstalledPluginConfig } from "./lifecycle-DtjQ5ipb.js";
81
+ import { t as resolvePluginWebSearchProviders } from "./web-search-providers.runtime-Dih9pZ-s.js";
82
82
  import path from "node:path";
83
83
  import fs from "node:fs";
84
84
 
@@ -2,7 +2,7 @@ import "./paths-C9FmTW1x.js";
2
2
  import { S as resolveUserPath, i as CONFIG_DIR, m as isRecord } from "./agent-paths-BySKyq9I.js";
3
3
  import { Co as coerceSecretRef, mo as resolveFasedAgentPackageRootSync, wl as installPluginFromNpmSpec } from "./agent-scope-803djwZu.js";
4
4
  import "./commands-registry-Dha8b_oq.js";
5
- import "./reply-Baz1gE0S.js";
5
+ import "./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";
@@ -78,10 +78,10 @@ import "./prompt-style-Db5iJoaI.js";
78
78
  import "./pairing-labels-DuozKBa1.js";
79
79
  import { t as enablePluginInConfig } from "./enable-CnEIDWds.js";
80
80
  import { t as buildNpmResolutionInstallFields } from "./installs-C1B6kxfM.js";
81
- import "./status-Doouocs4.js";
81
+ import "./status-DetSO2U-.js";
82
82
  import "./update-C74iG43c.js";
83
- import { o as finalizeInstalledPluginConfig } from "./lifecycle-C5XGWThd.js";
84
- import { t as resolvePluginWebSearchProviders } from "./web-search-providers.runtime-mdso7C9-.js";
83
+ import { o as finalizeInstalledPluginConfig } from "./lifecycle-C6SWjahT.js";
84
+ import { t as resolvePluginWebSearchProviders } from "./web-search-providers.runtime-C9rYYuJB.js";
85
85
  import fs from "node:fs";
86
86
  import path from "node:path";
87
87
 
@@ -1,7 +1,7 @@
1
1
  import { _ as resolveStateDir, n as DEFAULT_GATEWAY_PORT, u as resolveGatewayPort } from "./paths-C9FmTW1x.js";
2
2
  import { S as resolveUserPath, U as theme } from "./agent-paths-BySKyq9I.js";
3
3
  import { Ga as ensureAuthProfileStore, Mn as writeConfigFile, Zr as collectConfigServiceEnvVars, d as resolveDefaultAgentId, dd as formatCliCommand, fr as ensureActiveMemoryPluginAllowlisted, kn as readConfigFileSnapshot, u as resolveAgentWorkspaceDir } from "./agent-scope-803djwZu.js";
4
- import { Bt as detectBrowserOpenSupport, Ht as formatControlUiSshHint, Jt as openUrl, Lt as DEFAULT_WORKSPACE, Mo as runFederationAutoConnectOnce, Qo as findTailscaleBinary, Qt as resolveControlUiLinks, Rt as applyWizardMetadata, Vt as ensureWorkspaceAndSessions, Wt as handleOnboardingRepair, Xo as enableTailscaleFunnel, Xt as probeGatewayReachable, Yt as printWizardHeader, Zo as enableTailscaleServe, Zt as randomToken, en as summarizeExistingConfig, nn as waitForGatewayReachable, qt as normalizeGatewayTokenInput, tn as validateGatewayPasswordInput, xo as normalizeControlUiBasePath, yo as CONTROL_UI_BOOT_CHECK_PATH } from "./reply-Baz1gE0S.js";
4
+ import { Bt as detectBrowserOpenSupport, Ht as formatControlUiSshHint, Jt as openUrl, Lt as DEFAULT_WORKSPACE, Mo as runFederationAutoConnectOnce, Qo as findTailscaleBinary, Qt as resolveControlUiLinks, Rt as applyWizardMetadata, Vt as ensureWorkspaceAndSessions, Wt as handleOnboardingRepair, Xo as enableTailscaleFunnel, Xt as probeGatewayReachable, Yt as printWizardHeader, Zo as enableTailscaleServe, Zt as randomToken, en as summarizeExistingConfig, nn as waitForGatewayReachable, qt as normalizeGatewayTokenInput, tn as validateGatewayPasswordInput, xo as normalizeControlUiBasePath, yo as CONTROL_UI_BOOT_CHECK_PATH } from "./reply-CHDxge29.js";
5
5
  import { d as defaultRuntime, f as restoreTerminalState, s as redactSensitiveText } from "./errors-Dx3S3Nrp.js";
6
6
  import { a as resolveSignerdBinaryPath, n as installSignerdBinary, o as restartLocalSocketSigner, r as migrateLocalSignerKeystoreToMaterialDir, t as configureWalletForOnboarding } from "./onboarding.wallet-D_6ZQwQE.js";
7
7
  import { i as resolveLocalSignerRunAsUser, n as resolveLocalSignerBackendSocketPath, o as resolveLocalSignerSocketPath, r as resolveLocalSignerMaterialRootDir, t as ensureWalletStateDir } from "./wallet-runtime-config-BlRWvEER.js";
@@ -17,14 +17,14 @@ import { a as resolveHostedOnboardingGatewayStartupMode, i as resolveGatewayStar
17
17
  import { d as buildSystemdUnit, r as isSystemdUserServiceAvailable } from "./systemd-B4dTBaNZ.js";
18
18
  import { t as resolveGatewayService } from "./service-BqlNcJO5.js";
19
19
  import { n as auditGatewayServiceConfig, t as SERVICE_AUDIT_CODES } from "./service-audit-CfYciIjw.js";
20
- import { a as promptRemoteGatewayConfig, n as getTailscaleMissingBinNoteLines, r as setupSkills, t as validateIPv4AddressInput, u as promptCustomApiConfig } from "./ipv4-CNhiSmCD.js";
21
- import { o as waitForHostedDashboardBrowserPath } from "./health-CKmYZQVl.js";
22
- import { n as warnIfModelConfigLooksOff, r as applyAuthChoice } from "./auth-choice-Ba8d4du0.js";
23
- import { t as promptAuthChoiceGrouped } from "./auth-choice-prompt-DVg6LrLV.js";
20
+ import { a as promptRemoteGatewayConfig, n as getTailscaleMissingBinNoteLines, r as setupSkills, t as validateIPv4AddressInput, u as promptCustomApiConfig } from "./ipv4-86I-Nx-V.js";
21
+ import { o as waitForHostedDashboardBrowserPath } from "./health-WemI1hMs.js";
22
+ import { n as warnIfModelConfigLooksOff, r as applyAuthChoice } from "./auth-choice-DJMbZkdQ.js";
23
+ import { t as promptAuthChoiceGrouped } from "./auth-choice-prompt-DpbsOuyY.js";
24
24
  import { n as logConfigUpdated } from "./logging-C8GVa7dS.js";
25
- import { n as setupChannels } from "./onboard-channels-BBLJ2eG7.js";
25
+ import { n as setupChannels } from "./onboard-channels-DZij_XSU.js";
26
26
  import { t as buildWorkspaceHookStatus } from "./hooks-status-Ce2CszQ2.js";
27
- import { t as runTui } from "./tui-DlBfUSia.js";
27
+ import { t as runTui } from "./tui-rvBD7CEp.js";
28
28
  import fs from "node:fs";
29
29
  import os from "node:os";
30
30
  import path from "node:path";
@@ -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-DZf2YiRU.js";
2
2
  import { H as theme, x as resolveUserPath } from "./agent-paths-DUHGyU1s.js";
3
- import { A as waitForGatewayReachable, C as printWizardHeader, E as resolveControlUiLinks, Ha as CONTROL_UI_BOOT_CHECK_PATH, O as summarizeExistingConfig, S as openUrl, T as randomToken, Wa as normalizeControlUiBasePath, bo as enableTailscaleServe, d as DEFAULT_WORKSPACE, f as applyWizardMetadata, g as formatControlUiSshHint, h as ensureWorkspaceAndSessions, k as validateGatewayPasswordInput, m as detectBrowserOpenSupport, to as runFederationAutoConnectOnce, v as handleOnboardingRepair, w as probeGatewayReachable, x as normalizeGatewayTokenInput, xo as findTailscaleBinary, yo as enableTailscaleFunnel } from "./model-catalog-hjXNofhs.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-QdGjCBzQ.js";
4
4
  import { A as defaultRuntime, Ct as resolveStateDir, E as redactSensitiveText, ct as DEFAULT_GATEWAY_PORT, gt as resolveGatewayPort, j as restoreTerminalState } from "./entry.js";
5
5
  import { n as redactSensitiveUrlLikeString } from "./redact-sensitive-url-BW03TVj8.js";
6
6
  import { a as resolveSignerdBinaryPath, n as installSignerdBinary, o as restartLocalSocketSigner, r as migrateLocalSignerKeystoreToMaterialDir, t as configureWalletForOnboarding } from "./onboarding.wallet-CePrfzcs.js";
@@ -16,14 +16,14 @@ import { a as resolveHostedOnboardingGatewayStartupMode, i as resolveGatewayStar
16
16
  import { d as buildSystemdUnit, r as isSystemdUserServiceAvailable } from "./systemd-DZQma8lv.js";
17
17
  import { t as resolveGatewayService } from "./service-DR2xQS16.js";
18
18
  import { n as auditGatewayServiceConfig, t as SERVICE_AUDIT_CODES } from "./service-audit-DXAu41GF.js";
19
- import { a as promptRemoteGatewayConfig, n as getTailscaleMissingBinNoteLines, r as setupSkills, t as validateIPv4AddressInput, u as promptCustomApiConfig } from "./ipv4-BLRwHChK.js";
20
- import { s as waitForHostedDashboardBrowserPath } from "./health-DI0aqVH0.js";
21
- import { n as warnIfModelConfigLooksOff, r as applyAuthChoice } from "./auth-choice-DT4p5QVd.js";
22
- import { t as promptAuthChoiceGrouped } from "./auth-choice-prompt-BLqcFdqp.js";
19
+ import { a as promptRemoteGatewayConfig, n as getTailscaleMissingBinNoteLines, r as setupSkills, t as validateIPv4AddressInput, u as promptCustomApiConfig } from "./ipv4-ocsDp87_.js";
20
+ import { s as waitForHostedDashboardBrowserPath } from "./health-CI2la9gk.js";
21
+ import { n as warnIfModelConfigLooksOff, r as applyAuthChoice } from "./auth-choice-FgOKdWSF.js";
22
+ import { t as promptAuthChoiceGrouped } from "./auth-choice-prompt-rlE_GSOw.js";
23
23
  import { n as logConfigUpdated } from "./logging-B1pB3RkW.js";
24
- import { n as setupChannels } from "./onboard-channels-DYKwJPZk.js";
24
+ import { n as setupChannels } from "./onboard-channels-Bwb5RCIS.js";
25
25
  import { t as buildWorkspaceHookStatus } from "./hooks-status-BAL455AQ.js";
26
- import { t as runTui } from "./tui-Cj2tNzRU.js";
26
+ import { t as runTui } from "./tui-sRU4cuDV.js";
27
27
  import { spawn, spawnSync } from "node:child_process";
28
28
  import os from "node:os";
29
29
  import path from "node:path";
@@ -1,6 +1,6 @@
1
1
  import "./github-copilot-token-Dy7Y_jbI.js";
2
2
  import { la as logWarn, qo as defaultRuntime } from "./paths-CaxdzLdl.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-Ba9Dk7FX.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-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 { Sa as defaultRuntime, Vi as logWarn } from "./agent-scope-Dgtbq9QM.js";
2
2
  import "./github-copilot-token-CNsqwfnE.js";
3
3
  import "./send-C_b5kbEq.js";
4
4
  import "./send-DW9d3cJB.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-BvqQUzWN.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-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 { Ui as logWarn, wa as defaultRuntime } from "./agent-scope-aSy-gdbE.js";
2
2
  import "./github-copilot-token-DYrFvncE.js";
3
3
  import "./send-DwWlbQuV.js";
4
4
  import "./send-Dg4NoXDR.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-F3Zt8ed6.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-IqgbZA5l.js";
6
6
  import "./diagnostic-COVkgGVx.js";
7
7
  import "./diagnostic-session-state-CexmAKza.js";
8
8
  import "./send-BrVVemb3.js";
@@ -2,7 +2,7 @@ import { bd as logWarn } from "./env-DZf2YiRU.js";
2
2
  import "./agent-paths-DUHGyU1s.js";
3
3
  import "./send-4Bz1g7es.js";
4
4
  import "./send-CaE81xJg.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-hjXNofhs.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-QdGjCBzQ.js";
6
6
  import "./github-copilot-token-A9DiaCB0.js";
7
7
  import { A as defaultRuntime } 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 { t as createDefaultDeps } from "./deps-CrKSMHlj.js";
48
+ import { t as createDefaultDeps } from "./deps-npMqt3Ka.js";
49
49
  import "./frontmatter-Cye-a9g3.js";
50
50
  import "./skills-60AaRTYw.js";
51
51
  import "./skills-remote-DWll8gbf.js";
@@ -2,7 +2,7 @@ import "./paths-C9FmTW1x.js";
2
2
  import "./agent-paths-BySKyq9I.js";
3
3
  import { au as logWarn } from "./agent-scope-803djwZu.js";
4
4
  import "./commands-registry-Dha8b_oq.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-Baz1gE0S.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-CHDxge29.js";
6
6
  import { d as defaultRuntime } from "./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 { t as createDefaultDeps } from "./deps-CZFDjC6B.js";
40
+ import { t as createDefaultDeps } from "./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 { Cd as isTruthyEnvValue, Nu as listChannelPlugins, jf as CHAT_CHANNEL_ORDER } from "./agent-scope-803djwZu.js";
2
2
  import { c as listChannelPluginCatalogEntries } from "./dangerous-name-matching-CL8XwIRq.js";
3
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-V61y7NBj.js";
3
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-C1WE5cad.js";
4
4
 
5
5
  //#region src/cli/channel-options.ts
6
6
  function dedupe(values) {
@@ -1,6 +1,6 @@
1
1
  import { Gl as listChannelPlugins, Vf as CHAT_CHANNEL_ORDER, t as isTruthyEnvValue } from "./env-DZf2YiRU.js";
2
2
  import { d as listChannelPluginCatalogEntries } from "./dangerous-name-matching-BzIhUdwr.js";
3
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-C5Ry5FZe.js";
3
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-C0b3SJXT.js";
4
4
 
5
5
  //#region src/cli/channel-options.ts
6
6
  function dedupe(values) {
@@ -19121,7 +19121,7 @@ function createOutboundSendDepsFromCliSource(deps) {
19121
19121
  function createDefaultDeps() {
19122
19122
  return {
19123
19123
  sendMessageWhatsApp: async (...args) => {
19124
- const { sendMessageWhatsApp } = await import("./web-BKQLvqgr.js");
19124
+ const { sendMessageWhatsApp } = await import("./web-0D-MfWhQ.js");
19125
19125
  return await sendMessageWhatsApp(...args);
19126
19126
  },
19127
19127
  sendMessageTelegram: async (...args) => {
@@ -26074,14 +26074,14 @@ function clearSessionQueues(keys) {
26074
26074
 
26075
26075
  //#endregion
26076
26076
  //#region src/infra/outbound/session-context.ts
26077
- function normalizeOptionalString$2(value) {
26077
+ function normalizeOptionalString$3(value) {
26078
26078
  if (typeof value !== "string") return;
26079
26079
  const trimmed = value.trim();
26080
26080
  return trimmed.length > 0 ? trimmed : void 0;
26081
26081
  }
26082
26082
  function buildOutboundSessionContext(params) {
26083
- const key = normalizeOptionalString$2(params.sessionKey);
26084
- const explicitAgentId = normalizeOptionalString$2(params.agentId);
26083
+ const key = normalizeOptionalString$3(params.sessionKey);
26084
+ const explicitAgentId = normalizeOptionalString$3(params.agentId);
26085
26085
  const derivedAgentId = key ? resolveSessionAgentId({
26086
26086
  sessionKey: key,
26087
26087
  config: params.cfg
@@ -37775,14 +37775,42 @@ function toAcpRuntimeErrorText(params) {
37775
37775
  }));
37776
37776
  }
37777
37777
 
37778
+ //#endregion
37779
+ //#region src/infra/outbound/conversation-id.ts
37780
+ function normalizeConversationId(value) {
37781
+ if (typeof value !== "string") return;
37782
+ return value.trim() || void 0;
37783
+ }
37784
+ function resolveConversationIdFromTargets(params) {
37785
+ const threadId = params.threadId != null ? normalizeConversationId(String(params.threadId)) : void 0;
37786
+ if (threadId) return threadId;
37787
+ for (const rawTarget of params.targets) {
37788
+ const target = normalizeConversationId(rawTarget);
37789
+ if (!target) continue;
37790
+ if (target.startsWith("channel:")) {
37791
+ const channelId = normalizeConversationId(target.slice(8));
37792
+ if (channelId) return channelId;
37793
+ continue;
37794
+ }
37795
+ const mentionMatch = target.match(/^<#(\d+)>$/);
37796
+ if (mentionMatch?.[1]) return mentionMatch[1];
37797
+ if (/^\d{6,}$/.test(target)) return target;
37798
+ }
37799
+ }
37800
+
37778
37801
  //#endregion
37779
37802
  //#region src/channels/thread-bindings-policy.ts
37780
37803
  const DISCORD_THREAD_BINDING_CHANNEL = "discord";
37804
+ const TELEGRAM_THREAD_BINDING_CHANNEL = "telegram";
37805
+ const LINE_THREAD_BINDING_CHANNEL = "line";
37781
37806
  const DEFAULT_THREAD_BINDING_IDLE_HOURS$1 = 24;
37782
37807
  const DEFAULT_THREAD_BINDING_MAX_AGE_HOURS$1 = 0;
37783
37808
  function normalizeChannelId(value) {
37784
37809
  return String(value ?? "").trim().toLowerCase();
37785
37810
  }
37811
+ function normalizeOptionalString$2(value) {
37812
+ return typeof value === "string" && value.trim() ? value.trim() : void 0;
37813
+ }
37786
37814
  function normalizeBoolean$1(value) {
37787
37815
  if (typeof value !== "boolean") return;
37788
37816
  return value;
@@ -37828,6 +37856,50 @@ function resolveThreadBindingSpawnPolicy(params) {
37828
37856
  spawnEnabled: normalizeBoolean$1(account?.[spawnFlagKey]) ?? normalizeBoolean$1(root?.[spawnFlagKey]) ?? channel !== DISCORD_THREAD_BINDING_CHANNEL
37829
37857
  };
37830
37858
  }
37859
+ function stripKnownTargetPrefix(value) {
37860
+ const typed = value.match(/^[a-z0-9_-]+:(user|group|room|channel):(.+)$/i);
37861
+ if (typed?.[2]) return typed[2];
37862
+ const colon = value.indexOf(":");
37863
+ return colon > 0 ? value.slice(colon + 1) : value;
37864
+ }
37865
+ function resolveThreadBindingConversationRef(params) {
37866
+ const channel = normalizeChannelId(params.channel);
37867
+ const threadId = params.threadId != null ? String(params.threadId).trim() : "";
37868
+ const groupId = params.groupId != null ? String(params.groupId).trim() : "";
37869
+ const to = normalizeOptionalString$2(params.to);
37870
+ if (channel === TELEGRAM_THREAD_BINDING_CHANNEL) {
37871
+ if (groupId && threadId) return {
37872
+ conversationId: `${groupId}:topic:${threadId}`,
37873
+ parentConversationId: groupId
37874
+ };
37875
+ if (to) {
37876
+ const topic = stripKnownTargetPrefix(to).match(/^(.+):topic:([^:]+)$/);
37877
+ if (topic?.[1] && topic[2]) return {
37878
+ conversationId: `${topic[1]}:topic:${topic[2]}`,
37879
+ parentConversationId: topic[1]
37880
+ };
37881
+ }
37882
+ }
37883
+ if (channel === LINE_THREAD_BINDING_CHANNEL && to) return { conversationId: stripKnownTargetPrefix(to) };
37884
+ if (to?.startsWith("room:")) return { conversationId: to.slice(5) };
37885
+ const resolved = resolveConversationIdFromTargets({
37886
+ threadId,
37887
+ targets: [to]
37888
+ });
37889
+ return resolved ? { conversationId: resolved } : null;
37890
+ }
37891
+ function resolveThreadBindingPlacement(params) {
37892
+ const channel = normalizeChannelId(params.channel);
37893
+ if (channel === TELEGRAM_THREAD_BINDING_CHANNEL || channel === LINE_THREAD_BINDING_CHANNEL) return params.placements.includes("current") ? "current" : "child";
37894
+ return params.placements.includes("child") ? "child" : "current";
37895
+ }
37896
+ function resolveThreadBindingDeliveryTo(params) {
37897
+ const channel = normalizeChannelId(params.channel);
37898
+ const boundConversationId = normalizeOptionalString$2(params.boundConversationId);
37899
+ if (boundConversationId && params.placement === "child") return `channel:${boundConversationId}`;
37900
+ if (boundConversationId && params.placement === "current" && channel === LINE_THREAD_BINDING_CHANNEL) return boundConversationId;
37901
+ return normalizeOptionalString$2(params.requesterTo) || (params.deliveryThreadId ? `channel:${params.deliveryThreadId}` : void 0);
37902
+ }
37831
37903
  function resolveThreadBindingIdleTimeoutMsForChannel(params) {
37832
37904
  const channel = normalizeChannelId(params.channel);
37833
37905
  const accountId = normalizeAccountId$2(params.accountId);
@@ -37864,29 +37936,6 @@ function formatThreadBindingSpawnDisabledError(params) {
37864
37936
  return `Thread-bound ${params.kind} spawns are disabled for ${params.channel}.`;
37865
37937
  }
37866
37938
 
37867
- //#endregion
37868
- //#region src/infra/outbound/conversation-id.ts
37869
- function normalizeConversationId(value) {
37870
- if (typeof value !== "string") return;
37871
- return value.trim() || void 0;
37872
- }
37873
- function resolveConversationIdFromTargets(params) {
37874
- const threadId = params.threadId != null ? normalizeConversationId(String(params.threadId)) : void 0;
37875
- if (threadId) return threadId;
37876
- for (const rawTarget of params.targets) {
37877
- const target = normalizeConversationId(rawTarget);
37878
- if (!target) continue;
37879
- if (target.startsWith("channel:")) {
37880
- const channelId = normalizeConversationId(target.slice(8));
37881
- if (channelId) return channelId;
37882
- continue;
37883
- }
37884
- const mentionMatch = target.match(/^<#(\d+)>$/);
37885
- if (mentionMatch?.[1]) return mentionMatch[1];
37886
- if (/^\d{6,}$/.test(target)) return target;
37887
- }
37888
- }
37889
-
37890
37939
  //#endregion
37891
37940
  //#region src/auto-reply/reply/commands-acp/context.ts
37892
37941
  function normalizeString$2(value) {
@@ -66083,42 +66132,6 @@ function resolveAcpSpawnChannelAccountId(params) {
66083
66132
  const channels = params.cfg.channels;
66084
66133
  return normalizeOptionalString(channels?.[channel]?.defaultAccount) ?? "default";
66085
66134
  }
66086
- function stripKnownTargetPrefix(value) {
66087
- const typed = value.match(/^[a-z0-9_-]+:(user|group|room|channel):(.+)$/i);
66088
- if (typed?.[2]) return typed[2];
66089
- const colon = value.indexOf(":");
66090
- return colon > 0 ? value.slice(colon + 1) : value;
66091
- }
66092
- function resolveConversationRefForThreadBinding(params) {
66093
- const channel = normalizeOptionalLowercaseString(params.channel);
66094
- const threadId = params.threadId != null ? String(params.threadId).trim() : "";
66095
- const groupId = params.groupId != null ? String(params.groupId).trim() : "";
66096
- const to = normalizeOptionalString(params.to);
66097
- if (channel === "telegram") {
66098
- if (groupId && threadId) return {
66099
- conversationId: `${groupId}:topic:${threadId}`,
66100
- parentConversationId: groupId
66101
- };
66102
- if (to) {
66103
- const topic = stripKnownTargetPrefix(to).match(/^(.+):topic:([^:]+)$/);
66104
- if (topic?.[1] && topic[2]) return {
66105
- conversationId: `${topic[1]}:topic:${topic[2]}`,
66106
- parentConversationId: topic[1]
66107
- };
66108
- }
66109
- }
66110
- if (channel === "line" && to) return { conversationId: stripKnownTargetPrefix(to) };
66111
- if (to?.startsWith("room:")) return { conversationId: to.slice(5) };
66112
- const resolved = resolveConversationIdFromTargets({
66113
- threadId,
66114
- targets: [to]
66115
- });
66116
- return resolved ? { conversationId: resolved } : null;
66117
- }
66118
- function resolveBindingPlacement(params) {
66119
- if (params.channel === "telegram" || params.channel === "line") return params.placements.includes("current") ? "current" : "child";
66120
- return params.placements.includes("child") ? "child" : "current";
66121
- }
66122
66135
  function isHeartbeatEnabledForSessionAgent(params) {
66123
66136
  if (!areHeartbeatsEnabled()) return false;
66124
66137
  const requesterAgentId = parseAgentSessionKey(params.sessionKey)?.agentId;
@@ -66212,7 +66225,7 @@ function prepareAcpThreadBinding(params) {
66212
66225
  ok: false,
66213
66226
  error: `Thread bindings are unavailable for ${policy.channel}.`
66214
66227
  };
66215
- const placement = resolveBindingPlacement({
66228
+ const placement = resolveThreadBindingPlacement({
66216
66229
  channel: policy.channel,
66217
66230
  placements: capabilities.placements
66218
66231
  });
@@ -66220,7 +66233,7 @@ function prepareAcpThreadBinding(params) {
66220
66233
  ok: false,
66221
66234
  error: `Thread bindings do not support ${placement} placement for ${policy.channel}.`
66222
66235
  };
66223
- const conversationRef = resolveConversationRefForThreadBinding({
66236
+ const conversationRef = resolveThreadBindingConversationRef({
66224
66237
  channel: policy.channel,
66225
66238
  to: params.to,
66226
66239
  threadId: params.threadId,
@@ -66444,7 +66457,13 @@ async function spawnAcpDirect(params, ctx) {
66444
66457
  const fallbackThreadId = fallbackThreadIdRaw != null ? String(fallbackThreadIdRaw).trim() || void 0 : void 0;
66445
66458
  const bindingPlacement = preparedBinding?.placement;
66446
66459
  const deliveryThreadId = bindingPlacement === "child" ? boundThreadId ?? fallbackThreadId : fallbackThreadId;
66447
- const inferredDeliveryTo = boundThreadId && bindingPlacement === "child" ? `channel:${boundThreadId}` : boundThreadId && bindingPlacement === "current" && preparedBinding?.channel === "line" ? boundThreadId : requesterOrigin?.to?.trim() || (deliveryThreadId ? `channel:${deliveryThreadId}` : void 0);
66460
+ const inferredDeliveryTo = resolveThreadBindingDeliveryTo({
66461
+ channel: preparedBinding?.channel,
66462
+ placement: bindingPlacement,
66463
+ boundConversationId: boundThreadId,
66464
+ requesterTo: requesterOrigin?.to,
66465
+ deliveryThreadId
66466
+ });
66448
66467
  const hasDeliveryTarget = Boolean(requestThreadBinding && !streamToParent && requesterOrigin?.channel && inferredDeliveryTo);
66449
66468
  const childIdem = crypto.randomUUID();
66450
66469
  let childRunId = childIdem;
@@ -91748,7 +91767,7 @@ async function preflightDiscordMessage(params) {
91748
91767
  let preflightTranscript;
91749
91768
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
91750
91769
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
91751
- const { transcribeFirstAudio } = await import("./audio-preflight-CjhAnjuK.js");
91770
+ const { transcribeFirstAudio } = await import("./audio-preflight-2IPkCNvN.js");
91752
91771
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
91753
91772
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
91754
91773
  ctx: {
@@ -99045,7 +99064,7 @@ async function waitForTransportReady(params) {
99045
99064
 
99046
99065
  //#endregion
99047
99066
  //#region src/brand.ts
99048
- const FASED_PRODUCT_VERSION = "0.1.13";
99067
+ const FASED_PRODUCT_VERSION = "0.1.14";
99049
99068
  const FASED_DISPLAY_VERSION = `v${FASED_PRODUCT_VERSION}`;
99050
99069
 
99051
99070
  //#endregion
@@ -108668,7 +108687,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
108668
108687
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
108669
108688
  let preflightTranscript;
108670
108689
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
108671
- const { transcribeFirstAudio } = await import("./audio-preflight-CjhAnjuK.js");
108690
+ const { transcribeFirstAudio } = await import("./audio-preflight-2IPkCNvN.js");
108672
108691
  preflightTranscript = await transcribeFirstAudio({
108673
108692
  ctx: {
108674
108693
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -111294,7 +111313,7 @@ function loadWebLoginQr() {
111294
111313
  return webLoginQrPromise;
111295
111314
  }
111296
111315
  function loadWebChannel() {
111297
- webChannelPromise ??= import("./web-BKQLvqgr.js");
111316
+ webChannelPromise ??= import("./web-0D-MfWhQ.js");
111298
111317
  return webChannelPromise;
111299
111318
  }
111300
111319
  function loadWhatsAppActions() {