@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
@@ -19122,7 +19122,7 @@ function createOutboundSendDepsFromCliSource(deps) {
19122
19122
  function createDefaultDeps() {
19123
19123
  return {
19124
19124
  sendMessageWhatsApp: async (...args) => {
19125
- const { sendMessageWhatsApp } = await import("./web-BLUd2_Lg.js");
19125
+ const { sendMessageWhatsApp } = await import("./web-Y8Z075Dl.js");
19126
19126
  return await sendMessageWhatsApp(...args);
19127
19127
  },
19128
19128
  sendMessageTelegram: async (...args) => {
@@ -26075,14 +26075,14 @@ function clearSessionQueues(keys) {
26075
26075
 
26076
26076
  //#endregion
26077
26077
  //#region src/infra/outbound/session-context.ts
26078
- function normalizeOptionalString$2(value) {
26078
+ function normalizeOptionalString$3(value) {
26079
26079
  if (typeof value !== "string") return;
26080
26080
  const trimmed = value.trim();
26081
26081
  return trimmed.length > 0 ? trimmed : void 0;
26082
26082
  }
26083
26083
  function buildOutboundSessionContext(params) {
26084
- const key = normalizeOptionalString$2(params.sessionKey);
26085
- const explicitAgentId = normalizeOptionalString$2(params.agentId);
26084
+ const key = normalizeOptionalString$3(params.sessionKey);
26085
+ const explicitAgentId = normalizeOptionalString$3(params.agentId);
26086
26086
  const derivedAgentId = key ? resolveSessionAgentId({
26087
26087
  sessionKey: key,
26088
26088
  config: params.cfg
@@ -37776,14 +37776,42 @@ function toAcpRuntimeErrorText(params) {
37776
37776
  }));
37777
37777
  }
37778
37778
 
37779
+ //#endregion
37780
+ //#region src/infra/outbound/conversation-id.ts
37781
+ function normalizeConversationId(value) {
37782
+ if (typeof value !== "string") return;
37783
+ return value.trim() || void 0;
37784
+ }
37785
+ function resolveConversationIdFromTargets(params) {
37786
+ const threadId = params.threadId != null ? normalizeConversationId(String(params.threadId)) : void 0;
37787
+ if (threadId) return threadId;
37788
+ for (const rawTarget of params.targets) {
37789
+ const target = normalizeConversationId(rawTarget);
37790
+ if (!target) continue;
37791
+ if (target.startsWith("channel:")) {
37792
+ const channelId = normalizeConversationId(target.slice(8));
37793
+ if (channelId) return channelId;
37794
+ continue;
37795
+ }
37796
+ const mentionMatch = target.match(/^<#(\d+)>$/);
37797
+ if (mentionMatch?.[1]) return mentionMatch[1];
37798
+ if (/^\d{6,}$/.test(target)) return target;
37799
+ }
37800
+ }
37801
+
37779
37802
  //#endregion
37780
37803
  //#region src/channels/thread-bindings-policy.ts
37781
37804
  const DISCORD_THREAD_BINDING_CHANNEL = "discord";
37805
+ const TELEGRAM_THREAD_BINDING_CHANNEL = "telegram";
37806
+ const LINE_THREAD_BINDING_CHANNEL = "line";
37782
37807
  const DEFAULT_THREAD_BINDING_IDLE_HOURS$1 = 24;
37783
37808
  const DEFAULT_THREAD_BINDING_MAX_AGE_HOURS$1 = 0;
37784
37809
  function normalizeChannelId(value) {
37785
37810
  return String(value ?? "").trim().toLowerCase();
37786
37811
  }
37812
+ function normalizeOptionalString$2(value) {
37813
+ return typeof value === "string" && value.trim() ? value.trim() : void 0;
37814
+ }
37787
37815
  function normalizeBoolean$1(value) {
37788
37816
  if (typeof value !== "boolean") return;
37789
37817
  return value;
@@ -37829,6 +37857,50 @@ function resolveThreadBindingSpawnPolicy(params) {
37829
37857
  spawnEnabled: normalizeBoolean$1(account?.[spawnFlagKey]) ?? normalizeBoolean$1(root?.[spawnFlagKey]) ?? channel !== DISCORD_THREAD_BINDING_CHANNEL
37830
37858
  };
37831
37859
  }
37860
+ function stripKnownTargetPrefix(value) {
37861
+ const typed = value.match(/^[a-z0-9_-]+:(user|group|room|channel):(.+)$/i);
37862
+ if (typed?.[2]) return typed[2];
37863
+ const colon = value.indexOf(":");
37864
+ return colon > 0 ? value.slice(colon + 1) : value;
37865
+ }
37866
+ function resolveThreadBindingConversationRef(params) {
37867
+ const channel = normalizeChannelId(params.channel);
37868
+ const threadId = params.threadId != null ? String(params.threadId).trim() : "";
37869
+ const groupId = params.groupId != null ? String(params.groupId).trim() : "";
37870
+ const to = normalizeOptionalString$2(params.to);
37871
+ if (channel === TELEGRAM_THREAD_BINDING_CHANNEL) {
37872
+ if (groupId && threadId) return {
37873
+ conversationId: `${groupId}:topic:${threadId}`,
37874
+ parentConversationId: groupId
37875
+ };
37876
+ if (to) {
37877
+ const topic = stripKnownTargetPrefix(to).match(/^(.+):topic:([^:]+)$/);
37878
+ if (topic?.[1] && topic[2]) return {
37879
+ conversationId: `${topic[1]}:topic:${topic[2]}`,
37880
+ parentConversationId: topic[1]
37881
+ };
37882
+ }
37883
+ }
37884
+ if (channel === LINE_THREAD_BINDING_CHANNEL && to) return { conversationId: stripKnownTargetPrefix(to) };
37885
+ if (to?.startsWith("room:")) return { conversationId: to.slice(5) };
37886
+ const resolved = resolveConversationIdFromTargets({
37887
+ threadId,
37888
+ targets: [to]
37889
+ });
37890
+ return resolved ? { conversationId: resolved } : null;
37891
+ }
37892
+ function resolveThreadBindingPlacement(params) {
37893
+ const channel = normalizeChannelId(params.channel);
37894
+ if (channel === TELEGRAM_THREAD_BINDING_CHANNEL || channel === LINE_THREAD_BINDING_CHANNEL) return params.placements.includes("current") ? "current" : "child";
37895
+ return params.placements.includes("child") ? "child" : "current";
37896
+ }
37897
+ function resolveThreadBindingDeliveryTo(params) {
37898
+ const channel = normalizeChannelId(params.channel);
37899
+ const boundConversationId = normalizeOptionalString$2(params.boundConversationId);
37900
+ if (boundConversationId && params.placement === "child") return `channel:${boundConversationId}`;
37901
+ if (boundConversationId && params.placement === "current" && channel === LINE_THREAD_BINDING_CHANNEL) return boundConversationId;
37902
+ return normalizeOptionalString$2(params.requesterTo) || (params.deliveryThreadId ? `channel:${params.deliveryThreadId}` : void 0);
37903
+ }
37832
37904
  function resolveThreadBindingIdleTimeoutMsForChannel(params) {
37833
37905
  const channel = normalizeChannelId(params.channel);
37834
37906
  const accountId = normalizeAccountId$2(params.accountId);
@@ -37865,29 +37937,6 @@ function formatThreadBindingSpawnDisabledError(params) {
37865
37937
  return `Thread-bound ${params.kind} spawns are disabled for ${params.channel}.`;
37866
37938
  }
37867
37939
 
37868
- //#endregion
37869
- //#region src/infra/outbound/conversation-id.ts
37870
- function normalizeConversationId(value) {
37871
- if (typeof value !== "string") return;
37872
- return value.trim() || void 0;
37873
- }
37874
- function resolveConversationIdFromTargets(params) {
37875
- const threadId = params.threadId != null ? normalizeConversationId(String(params.threadId)) : void 0;
37876
- if (threadId) return threadId;
37877
- for (const rawTarget of params.targets) {
37878
- const target = normalizeConversationId(rawTarget);
37879
- if (!target) continue;
37880
- if (target.startsWith("channel:")) {
37881
- const channelId = normalizeConversationId(target.slice(8));
37882
- if (channelId) return channelId;
37883
- continue;
37884
- }
37885
- const mentionMatch = target.match(/^<#(\d+)>$/);
37886
- if (mentionMatch?.[1]) return mentionMatch[1];
37887
- if (/^\d{6,}$/.test(target)) return target;
37888
- }
37889
- }
37890
-
37891
37940
  //#endregion
37892
37941
  //#region src/auto-reply/reply/commands-acp/context.ts
37893
37942
  function normalizeString$2(value) {
@@ -66084,42 +66133,6 @@ function resolveAcpSpawnChannelAccountId(params) {
66084
66133
  const channels = params.cfg.channels;
66085
66134
  return normalizeOptionalString(channels?.[channel]?.defaultAccount) ?? "default";
66086
66135
  }
66087
- function stripKnownTargetPrefix(value) {
66088
- const typed = value.match(/^[a-z0-9_-]+:(user|group|room|channel):(.+)$/i);
66089
- if (typed?.[2]) return typed[2];
66090
- const colon = value.indexOf(":");
66091
- return colon > 0 ? value.slice(colon + 1) : value;
66092
- }
66093
- function resolveConversationRefForThreadBinding(params) {
66094
- const channel = normalizeOptionalLowercaseString(params.channel);
66095
- const threadId = params.threadId != null ? String(params.threadId).trim() : "";
66096
- const groupId = params.groupId != null ? String(params.groupId).trim() : "";
66097
- const to = normalizeOptionalString(params.to);
66098
- if (channel === "telegram") {
66099
- if (groupId && threadId) return {
66100
- conversationId: `${groupId}:topic:${threadId}`,
66101
- parentConversationId: groupId
66102
- };
66103
- if (to) {
66104
- const topic = stripKnownTargetPrefix(to).match(/^(.+):topic:([^:]+)$/);
66105
- if (topic?.[1] && topic[2]) return {
66106
- conversationId: `${topic[1]}:topic:${topic[2]}`,
66107
- parentConversationId: topic[1]
66108
- };
66109
- }
66110
- }
66111
- if (channel === "line" && to) return { conversationId: stripKnownTargetPrefix(to) };
66112
- if (to?.startsWith("room:")) return { conversationId: to.slice(5) };
66113
- const resolved = resolveConversationIdFromTargets({
66114
- threadId,
66115
- targets: [to]
66116
- });
66117
- return resolved ? { conversationId: resolved } : null;
66118
- }
66119
- function resolveBindingPlacement(params) {
66120
- if (params.channel === "telegram" || params.channel === "line") return params.placements.includes("current") ? "current" : "child";
66121
- return params.placements.includes("child") ? "child" : "current";
66122
- }
66123
66136
  function isHeartbeatEnabledForSessionAgent(params) {
66124
66137
  if (!areHeartbeatsEnabled()) return false;
66125
66138
  const requesterAgentId = parseAgentSessionKey(params.sessionKey)?.agentId;
@@ -66213,7 +66226,7 @@ function prepareAcpThreadBinding(params) {
66213
66226
  ok: false,
66214
66227
  error: `Thread bindings are unavailable for ${policy.channel}.`
66215
66228
  };
66216
- const placement = resolveBindingPlacement({
66229
+ const placement = resolveThreadBindingPlacement({
66217
66230
  channel: policy.channel,
66218
66231
  placements: capabilities.placements
66219
66232
  });
@@ -66221,7 +66234,7 @@ function prepareAcpThreadBinding(params) {
66221
66234
  ok: false,
66222
66235
  error: `Thread bindings do not support ${placement} placement for ${policy.channel}.`
66223
66236
  };
66224
- const conversationRef = resolveConversationRefForThreadBinding({
66237
+ const conversationRef = resolveThreadBindingConversationRef({
66225
66238
  channel: policy.channel,
66226
66239
  to: params.to,
66227
66240
  threadId: params.threadId,
@@ -66445,7 +66458,13 @@ async function spawnAcpDirect(params, ctx) {
66445
66458
  const fallbackThreadId = fallbackThreadIdRaw != null ? String(fallbackThreadIdRaw).trim() || void 0 : void 0;
66446
66459
  const bindingPlacement = preparedBinding?.placement;
66447
66460
  const deliveryThreadId = bindingPlacement === "child" ? boundThreadId ?? fallbackThreadId : fallbackThreadId;
66448
- const inferredDeliveryTo = boundThreadId && bindingPlacement === "child" ? `channel:${boundThreadId}` : boundThreadId && bindingPlacement === "current" && preparedBinding?.channel === "line" ? boundThreadId : requesterOrigin?.to?.trim() || (deliveryThreadId ? `channel:${deliveryThreadId}` : void 0);
66461
+ const inferredDeliveryTo = resolveThreadBindingDeliveryTo({
66462
+ channel: preparedBinding?.channel,
66463
+ placement: bindingPlacement,
66464
+ boundConversationId: boundThreadId,
66465
+ requesterTo: requesterOrigin?.to,
66466
+ deliveryThreadId
66467
+ });
66449
66468
  const hasDeliveryTarget = Boolean(requestThreadBinding && !streamToParent && requesterOrigin?.channel && inferredDeliveryTo);
66450
66469
  const childIdem = crypto.randomUUID();
66451
66470
  let childRunId = childIdem;
@@ -91739,7 +91758,7 @@ async function preflightDiscordMessage(params) {
91739
91758
  let preflightTranscript;
91740
91759
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
91741
91760
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
91742
- const { transcribeFirstAudio } = await import("./audio-preflight-BF_inA1H.js");
91761
+ const { transcribeFirstAudio } = await import("./audio-preflight-vshjxbVx.js");
91743
91762
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
91744
91763
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
91745
91764
  ctx: {
@@ -99036,7 +99055,7 @@ async function waitForTransportReady(params) {
99036
99055
 
99037
99056
  //#endregion
99038
99057
  //#region src/brand.ts
99039
- const FASED_PRODUCT_VERSION = "0.1.13";
99058
+ const FASED_PRODUCT_VERSION = "0.1.14";
99040
99059
  const FASED_DISPLAY_VERSION = `v${FASED_PRODUCT_VERSION}`;
99041
99060
 
99042
99061
  //#endregion
@@ -108659,7 +108678,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
108659
108678
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
108660
108679
  let preflightTranscript;
108661
108680
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
108662
- const { transcribeFirstAudio } = await import("./audio-preflight-BF_inA1H.js");
108681
+ const { transcribeFirstAudio } = await import("./audio-preflight-vshjxbVx.js");
108663
108682
  preflightTranscript = await transcribeFirstAudio({
108664
108683
  ctx: {
108665
108684
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -111285,7 +111304,7 @@ function loadWebLoginQr() {
111285
111304
  return webLoginQrPromise;
111286
111305
  }
111287
111306
  function loadWebChannel() {
111288
- webChannelPromise ??= import("./web-BLUd2_Lg.js");
111307
+ webChannelPromise ??= import("./web-Y8Z075Dl.js");
111289
111308
  return webChannelPromise;
111290
111309
  }
111291
111310
  function loadWhatsAppActions() {
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { Gu as resolveDefaultAgentId, Wu as resolveAgentWorkspaceDir, Xt as loadConfig, a as createSubsystemLogger, p as getActivePluginRegistry } from "./env-DZf2YiRU.js";
3
- import { c as loadFasedAgentPlugins } from "./model-catalog-hjXNofhs.js";
3
+ import { c as loadFasedAgentPlugins } from "./model-catalog-QdGjCBzQ.js";
4
4
 
5
5
  //#region src/cli/plugin-registry.ts
6
6
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { Dn as loadConfig, F as createSubsystemLogger, U as getActivePluginRegistry, d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-803djwZu.js";
3
- import { Nt as loadFasedAgentPlugins } from "./reply-Baz1gE0S.js";
3
+ import { Nt as loadFasedAgentPlugins } from "./reply-CHDxge29.js";
4
4
 
5
5
  //#region src/cli/plugin-registry.ts
6
6
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1,4 +1,4 @@
1
- import { La as formatCliCommand, ws as DEFAULT_ACCOUNT_ID } from "./runtime-JZwgwXxK.js";
1
+ import { La as formatCliCommand, ws as DEFAULT_ACCOUNT_ID } from "./runtime-d_ap8ggn.js";
2
2
 
3
3
  //#region src/web/active-listener.ts
4
4
  const listeners = /* @__PURE__ */ new Map();
@@ -1,37 +1,37 @@
1
- import { C as normalizeMediaAttachments, E as isAudioAttachment, S as createMediaAttachmentCache, T as runCapability, w as resolveMediaAttachmentLocalRoots, x as buildProviderRegistry } from "./reply-DQvYSWCp.js";
2
- import { Gc as logVerbose, qc as shouldLogVerbose } from "./runtime-JZwgwXxK.js";
1
+ import { C as normalizeMediaAttachments, E as isAudioAttachment, S as createMediaAttachmentCache, T as runCapability, w as resolveMediaAttachmentLocalRoots, x as buildProviderRegistry } from "./reply-D9WhCAf0.js";
2
+ import { Gc as logVerbose, qc as shouldLogVerbose } from "./runtime-d_ap8ggn.js";
3
3
  import "./github-copilot-token-CVC_19vl.js";
4
- import "./send-B7uKkTxV.js";
5
- import "./fetch-guard-CTD85vq2.js";
4
+ import "./send-DYsMepvi.js";
5
+ import "./fetch-guard-BciVpgwU.js";
6
6
  import "./ssrf-DHglwD1p.js";
7
- import "./send-jXCTO3i_.js";
8
- import "./send-b2ALvHco.js";
9
- import "./chunk-BntoXexQ.js";
10
- import "./ir-Bbym3o_S.js";
11
- import "./target-errors-WJdwRuAS.js";
12
- import "./send-BkZyweGW.js";
13
- import "./reply-prefix-D1GlTOVT.js";
14
- import "./skill-commands-DqGrOYfl.js";
15
- import "./fetch-B42SDHGm.js";
16
- import "./diagnostic-BnS_JikV.js";
17
- import "./path-alias-guards-ZLFppfUS.js";
18
- import "./fs-safe-DOPVDJix.js";
19
- import "./outbound-attachment-ddz0MwiT.js";
20
- import "./paths-BjhD4HPg.js";
21
- import "./channel-activity-BcI4xSoe.js";
22
- import "./markdown-tables-DpMWx8Tl.js";
7
+ import "./send-XXJCJ2as.js";
8
+ import "./send-DtgDCh9h.js";
9
+ import "./chunk-CWM4OQ5j.js";
10
+ import "./ir-BqSQJB3B.js";
11
+ import "./target-errors-DpDEAats.js";
12
+ import "./send-Cvf5nOIr.js";
13
+ import "./reply-prefix-DYUukSpx.js";
14
+ import "./skill-commands-BKfUIpx3.js";
15
+ import "./fetch-yy6-Kb3T.js";
16
+ import "./diagnostic-BfpYqaMu.js";
17
+ import "./path-alias-guards-DmROHvdC.js";
18
+ import "./fs-safe-Ch39tcFn.js";
19
+ import "./outbound-attachment-8pyStMIv.js";
20
+ import "./paths-QYyMn2Wi.js";
21
+ import "./channel-activity-DRcprlRI.js";
22
+ import "./markdown-tables-Dvj4VeiJ.js";
23
23
  import "./render-DzUFCfck.js";
24
- import "./tables-b0zUZRMn.js";
25
- import "./commands-registry-Deqd0K8M.js";
26
- import "./pi-model-discovery-CFtZGJhK.js";
27
- import "./send-By-vmNGK.js";
28
- import "./memory-search-DASOKZdc.js";
29
- import "./manager-CIggnIJi.js";
30
- import "./query-expansion-BxUJl8D1.js";
24
+ import "./tables-DQEs0bVk.js";
25
+ import "./commands-registry-CnlOnVB6.js";
26
+ import "./pi-model-discovery-BGBK5j7O.js";
27
+ import "./send-BYaWimfS.js";
28
+ import "./memory-search-BMkuVf7r.js";
29
+ import "./manager-DQJURMcB.js";
30
+ import "./query-expansion-yLS-ifHD.js";
31
31
  import "./diagnostic-session-state-DLuYVc4W.js";
32
- import "./resolve-route-y3cyO8Nu.js";
32
+ import "./resolve-route-CKHCIkIh.js";
33
33
  import "./proxy-BiW7MtYh.js";
34
- import "./replies-4ciKRt42.js";
34
+ import "./replies-DuVEe866.js";
35
35
 
36
36
  //#region src/media-understanding/audio-preflight.ts
37
37
  /**
@@ -2,7 +2,7 @@ import { Ds as shouldLogVerbose, Ts as logVerbose } from "./context-D37qNfo3.js"
2
2
  import "./github-copilot-token-BMocqO3v.js";
3
3
  import "./send-DosQY55H.js";
4
4
  import "./send-CMiz71vT.js";
5
- import { A as buildProviderRegistry, F as isAudioAttachment, M as normalizeMediaAttachments, N as resolveMediaAttachmentLocalRoots, P as runCapability, j as createMediaAttachmentCache } from "./status-KYehxhnn.js";
5
+ import { A as buildProviderRegistry, F as isAudioAttachment, M as normalizeMediaAttachments, N as resolveMediaAttachmentLocalRoots, P as runCapability, j as createMediaAttachmentCache } from "./status-BtSfRg0Y.js";
6
6
  import "./paths-DJJjUXem.js";
7
7
  import "./ssrf-CZsNT0Hn.js";
8
8
  import "./reply-prefix-Db5FhQi0.js";
@@ -1,4 +1,4 @@
1
- import { Ic as createSubsystemLogger, fi as formatErrorMessage, hr as retryAsync, mr as resolveRetryConfig } from "./runtime-JZwgwXxK.js";
1
+ import { Ic as createSubsystemLogger, fi as formatErrorMessage, hr as retryAsync, mr as resolveRetryConfig } from "./runtime-d_ap8ggn.js";
2
2
  import { RateLimitError } from "@buape/carbon";
3
3
 
4
4
  //#region src/infra/retry-policy.ts
@@ -1,20 +1,20 @@
1
- import { A as resolveInboundDebounceMs, B as enqueueSystemEvent, D as dispatchReplyWithBufferedBlockDispatcher, Dt as resolveMentionGating, Et as shouldAckReactionForWhatsApp, Ft as buildHistoryContextFromEntries, Ht as buildMentionRegexes, L as normalizeGroupActivation, M as shouldComputeCommandAuthorized, N as registerUnhandledRejectionHandler, Nt as resolveEnvelopeFormatOptions, Pt as DEFAULT_GROUP_HISTORY_LIMIT, R as parseActivationCommand, Ut as normalizeMentionText, Vt as recordPendingHistoryEntryIfEnabled, an as readStoreAllowFromForDmPolicy, b as sleepWithAbort, fn as resolveDefaultGroupPolicy, j as hasControlCommand, jt as formatInboundEnvelope, k as createInboundDebouncer, mn as warnMissingProviderGroupPolicyFallbackOnce, on as resolveDmGroupAccessWithCommandGate, pn as resolveOpenProviderRuntimeGroupPolicy, sn as resolveDmGroupAccessWithLists, t as getReplyFromConfig, tn as createDedupeCache, ut as buildPairingReply, y as computeBackoff, z as formatDurationPrecise } from "./reply-DQvYSWCp.js";
2
- import { $c as getChildLogger, C as updateLastRoute, Ca as resolveWhatsAppAccount, Ea as getWebAuthAgeMs, Gc as logVerbose, Ic as createSubsystemLogger, Is as resolveGroupSessionKey, La as formatCliCommand, Ma as readWebSelfId, S as recordSessionMetaFromInbound, _s as buildGroupHistoryKey, b as loadSessionStore, bc as jidToE164, fc as clamp, ft as loadConfig, hs as buildAgentMainSessionKey, jc as toWhatsappJid, kc as sleep, ls as resolveChannelGroupPolicy, ms as DEFAULT_MAIN_KEY, ot as resolveStorePath, qc as shouldLogVerbose, ul as normalizeChatChannelId, us as resolveChannelGroupRequireMention, wc as resolveJidToE164, ws as DEFAULT_ACCOUNT_ID, x as readSessionUpdatedAt, xc as normalizeE164, yc as isSelfChatMode, ys as normalizeAgentId, zc as defaultRuntime } from "./runtime-JZwgwXxK.js";
1
+ import { A as resolveInboundDebounceMs, B as enqueueSystemEvent, D as dispatchReplyWithBufferedBlockDispatcher, Dt as resolveMentionGating, Et as shouldAckReactionForWhatsApp, Ft as buildHistoryContextFromEntries, Ht as buildMentionRegexes, L as normalizeGroupActivation, M as shouldComputeCommandAuthorized, N as registerUnhandledRejectionHandler, Nt as resolveEnvelopeFormatOptions, Pt as DEFAULT_GROUP_HISTORY_LIMIT, R as parseActivationCommand, Ut as normalizeMentionText, Vt as recordPendingHistoryEntryIfEnabled, an as readStoreAllowFromForDmPolicy, b as sleepWithAbort, fn as resolveDefaultGroupPolicy, j as hasControlCommand, jt as formatInboundEnvelope, k as createInboundDebouncer, mn as warnMissingProviderGroupPolicyFallbackOnce, on as resolveDmGroupAccessWithCommandGate, pn as resolveOpenProviderRuntimeGroupPolicy, sn as resolveDmGroupAccessWithLists, t as getReplyFromConfig, tn as createDedupeCache, ut as buildPairingReply, y as computeBackoff, z as formatDurationPrecise } from "./reply-D9WhCAf0.js";
2
+ import { $c as getChildLogger, C as updateLastRoute, Ca as resolveWhatsAppAccount, Ea as getWebAuthAgeMs, Gc as logVerbose, Ic as createSubsystemLogger, Is as resolveGroupSessionKey, La as formatCliCommand, Ma as readWebSelfId, S as recordSessionMetaFromInbound, _s as buildGroupHistoryKey, b as loadSessionStore, bc as jidToE164, fc as clamp, ft as loadConfig, hs as buildAgentMainSessionKey, jc as toWhatsappJid, kc as sleep, ls as resolveChannelGroupPolicy, ms as DEFAULT_MAIN_KEY, ot as resolveStorePath, qc as shouldLogVerbose, ul as normalizeChatChannelId, us as resolveChannelGroupRequireMention, wc as resolveJidToE164, ws as DEFAULT_ACCOUNT_ID, x as readSessionUpdatedAt, xc as normalizeE164, yc as isSelfChatMode, ys as normalizeAgentId, zc as defaultRuntime } from "./runtime-d_ap8ggn.js";
3
3
  import { n as redactSensitiveUrlLikeString } from "./redact-sensitive-url-C_6JDrWW.js";
4
- import { X as formatLocationText, Z as toLocationContext, at as upsertChannelPairingRequest, rt as readChannelAllowFromStoreSync } from "./send-b2ALvHco.js";
5
- import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-BntoXexQ.js";
6
- import { a as loadWebMedia, s as getAgentScopedMediaLocalRoots } from "./ir-Bbym3o_S.js";
7
- import { l as resolveIdentityNamePrefix, n as createReplyPrefixOptions, u as resolveMessagePrefix } from "./reply-prefix-D1GlTOVT.js";
8
- import { a as saveMediaBuffer } from "./outbound-attachment-ddz0MwiT.js";
9
- import { n as recordChannelActivity } from "./channel-activity-BcI4xSoe.js";
10
- import { n as resolveMarkdownTableMode } from "./markdown-tables-DpMWx8Tl.js";
11
- import { t as convertMarkdownTables } from "./tables-b0zUZRMn.js";
4
+ import { X as formatLocationText, Z as toLocationContext, at as upsertChannelPairingRequest, rt as readChannelAllowFromStoreSync } from "./send-DtgDCh9h.js";
5
+ import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-CWM4OQ5j.js";
6
+ import { a as loadWebMedia, s as getAgentScopedMediaLocalRoots } from "./ir-BqSQJB3B.js";
7
+ import { l as resolveIdentityNamePrefix, n as createReplyPrefixOptions, u as resolveMessagePrefix } from "./reply-prefix-DYUukSpx.js";
8
+ import { a as saveMediaBuffer } from "./outbound-attachment-8pyStMIv.js";
9
+ import { n as recordChannelActivity } from "./channel-activity-DRcprlRI.js";
10
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-Dvj4VeiJ.js";
11
+ import { t as convertMarkdownTables } from "./tables-DQEs0bVk.js";
12
12
  import { t as finalizeInboundContext } from "./inbound-context-BfsNSQia.js";
13
13
  import { t as redactIdentifier } from "./redact-identifier-BpQRFqut.js";
14
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-y3cyO8Nu.js";
15
- import { r as setActiveWebListener } from "./active-listener-DMQkC65_.js";
16
- import { i as markdownToWhatsApp, r as sendReactionWhatsApp } from "./outbound-C_KKhUy0.js";
17
- import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-B2c1Wmrm.js";
14
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CKHCIkIh.js";
15
+ import { r as setActiveWebListener } from "./active-listener-CiGA0hRS.js";
16
+ import { i as markdownToWhatsApp, r as sendReactionWhatsApp } from "./outbound-Ch3UOB-3.js";
17
+ import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-CZkOY6Ba.js";
18
18
  import { randomUUID } from "node:crypto";
19
19
  import { DisconnectReason, downloadMediaMessage, extractMessageContent, getContentType, isJidGroup, normalizeMessageContent } from "@whiskeysockets/baileys";
20
20
 
@@ -954,7 +954,7 @@ async function monitorWebInbox(options) {
954
954
  ev.removeListener("messages.upsert", messagesUpsertHandler);
955
955
  ev.removeListener("connection.update", connectionUpdateHandler);
956
956
  }
957
- sock.ws?.close();
957
+ await sock.ws?.close();
958
958
  } catch (err) {
959
959
  logVerbose(`Socket close failed: ${formatError(err)}`);
960
960
  }
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { Fs as resolveAccountEntry, Ls as INTERNAL_MESSAGE_CHANNEL, Ts as normalizeAccountId } from "./runtime-JZwgwXxK.js";
2
+ import { Fs as resolveAccountEntry, Ls as INTERNAL_MESSAGE_CHANNEL, Ts as normalizeAccountId } from "./runtime-d_ap8ggn.js";
3
3
 
4
4
  //#region src/shared/text-chunking.ts
5
5
  function chunkTextByBreakResolver(text, limit, resolveBreakIndex) {
@@ -2,7 +2,7 @@ import "./context-D37qNfo3.js";
2
2
  import "./github-copilot-token-BMocqO3v.js";
3
3
  import "./send-DosQY55H.js";
4
4
  import "./send-CMiz71vT.js";
5
- import { n as buildCommandsMessagePaginated, r as buildHelpMessage, t as buildCommandsMessage } from "./status-KYehxhnn.js";
5
+ import { n as buildCommandsMessagePaginated, r as buildHelpMessage, t as buildCommandsMessage } from "./status-BtSfRg0Y.js";
6
6
  import "./paths-DJJjUXem.js";
7
7
  import "./ssrf-CZsNT0Hn.js";
8
8
  import "./reply-prefix-Db5FhQi0.js";
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { $n as resolveConfiguredModelRef, Ji as listChannelDocks, Nc as isPlainObject, gc as escapeRegExp, ki as normalizeChannelId, oi as DEFAULT_MODEL, si as DEFAULT_PROVIDER, t as getActivePluginRegistry, ti as listThinkingLevels } from "./runtime-JZwgwXxK.js";
2
+ import { $n as resolveConfiguredModelRef, Ji as listChannelDocks, Nc as isPlainObject, gc as escapeRegExp, ki as normalizeChannelId, oi as DEFAULT_MODEL, si as DEFAULT_PROVIDER, t as getActivePluginRegistry, ti as listThinkingLevels } from "./runtime-d_ap8ggn.js";
3
3
 
4
4
  //#region src/auto-reply/thinking.ts
5
5
  function normalizeOnOffFullLevel(raw) {
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { Ic as createSubsystemLogger, hi as redactSensitiveText } from "./runtime-JZwgwXxK.js";
2
+ import { Ic as createSubsystemLogger, hi as redactSensitiveText } from "./runtime-d_ap8ggn.js";
3
3
  import { i as pruneDiagnosticSessionStates, r as getDiagnosticSessionState, t as diagnosticSessionStates } from "./diagnostic-session-state-DLuYVc4W.js";
4
4
  import { t as redactIdentifier } from "./redact-identifier-BpQRFqut.js";
5
5
 
@@ -1,4 +1,4 @@
1
- import { To as logWarn } from "./runtime-JZwgwXxK.js";
1
+ import { To as logWarn } from "./runtime-d_ap8ggn.js";
2
2
  import { t as bindAbortRelay } from "./fetch-timeout-BD-UJHcc.js";
3
3
  import { n as closeDispatcher, r as createPinnedDispatcher, s as resolvePinnedHostnameWithPolicy, t as SsrFBlockedError } from "./ssrf-DHglwD1p.js";
4
4
  import { EnvHttpProxyAgent } from "undici";
@@ -1,5 +1,5 @@
1
1
  import { t as bindAbortRelay } from "./fetch-timeout-BD-UJHcc.js";
2
- import { n as normalizeRequestInitHeadersForFetch } from "./fetch-guard-CTD85vq2.js";
2
+ import { n as normalizeRequestInitHeadersForFetch } from "./fetch-guard-BciVpgwU.js";
3
3
 
4
4
  //#region src/infra/fetch.ts
5
5
  const wrapFetchWithAbortSignalMarker = Symbol.for("fased.fetch.abort-signal-wrapped");
@@ -1,7 +1,7 @@
1
- import { eo as resolveAgentWorkspaceDir } from "./runtime-JZwgwXxK.js";
1
+ import { eo as resolveAgentWorkspaceDir } from "./runtime-d_ap8ggn.js";
2
2
  import "./github-copilot-token-CVC_19vl.js";
3
- import { t as resolveMemorySearchConfig } from "./memory-search-DASOKZdc.js";
4
- import { c as normalizeExtraMemoryPaths, l as normalizeRelPath, n as chunkMarkdown, o as isMemoryPath, s as listMemoryFiles, t as buildFileEntry } from "./internal-DQx46pKX.js";
3
+ import { t as resolveMemorySearchConfig } from "./memory-search-BMkuVf7r.js";
4
+ import { c as normalizeExtraMemoryPaths, l as normalizeRelPath, n as chunkMarkdown, o as isMemoryPath, s as listMemoryFiles, t as buildFileEntry } from "./internal-Bsx2Ck4H.js";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs/promises";
7
7
 
@@ -1,5 +1,5 @@
1
- import { Mo as isNotFoundPathError, No as isPathInside, Oo as sameFileIdentity, Po as isSymlinkOpenError } from "./runtime-JZwgwXxK.js";
2
- import { n as assertNoPathAliasEscape } from "./path-alias-guards-ZLFppfUS.js";
1
+ import { Mo as isNotFoundPathError, No as isPathInside, Oo as sameFileIdentity, Po as isSymlinkOpenError } from "./runtime-d_ap8ggn.js";
2
+ import { n as assertNoPathAliasEscape } from "./path-alias-guards-DmROHvdC.js";
3
3
  import path from "node:path";
4
4
  import { constants } from "node:fs";
5
5
  import fs$1 from "node:fs/promises";
@@ -1,44 +1,44 @@
1
- import { $ as resolveSlackUserAllowlist, $t as listDevicePairing, At as summarizeMapping, Bt as recordPendingHistoryEntry, Ct as createTypingCallbacks, Dt as resolveMentionGating, Et as shouldAckReactionForWhatsApp, G as attachFooterText, Gt as DEFAULT_WEBHOOK_MAX_BODY_BYTES, H as processLineMessage, It as buildPendingHistoryContextFromMap, Jt as isRequestBodyLimitError, Kt as RequestBodyLimitError, Lt as clearHistoryEntries, Mt as formatInboundFromLabel, Ot as resolveMentionGatingWithBypass, Pt as DEFAULT_GROUP_HISTORY_LIMIT, Qt as approveDevicePairing, Rt as clearHistoryEntriesIfEnabled, Sn as CHANNEL_MESSAGE_ACTION_NAMES, St as logTypingFailure, Tt as shouldAckReaction, U as stripMarkdown, V as hasMarkdownToConvert, Vt as recordPendingHistoryEntryIfEnabled, W as createReceiptCard, Wt as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, Xt as readRequestBodyWithLimit, Yt as readJsonBodyWithLimit, Zt as requestBodyErrorToText, _ as resolveDefaultLineAccountId, _n as formatAllowlistMatchMeta, _t as stringEnum, an as readStoreAllowFromForDmPolicy, at as autoBindSpawnedDiscordSubagent, bn as BLUEBUBBLES_ACTION_NAMES, bt as logAckFailure, cn as resolveEffectiveAllowFromLists, ct as isDangerousNameMatchingEnabled, dn as resolveAllowlistProviderRuntimeGroupPolicy, dt as formatDocsLink, en as rejectDevicePairing, et as resolveSlackChannelAllowlist, fn as resolveDefaultGroupPolicy, ft as registerAcpRuntimeBackend, g as normalizeAccountId$1, gn as registerPluginHttpRoute, gt as optionalStringEnum, h as listLineAccountIds, hn as assertOkOrThrowHttpError, ht as buildMediaPayload, in as DM_GROUP_ACCESS_REASON, it as collectDiscordAuditChannelIds, kt as mergeAllowlist, ln as resolveControlCommandGate, lt as issuePairingChallenge, mn as warnMissingProviderGroupPolicyFallbackOnce, mt as AcpRuntimeError, nn as extractToolSend, nt as resolveDiscordUserAllowlist, on as resolveDmGroupAccessWithCommandGate, ot as listThreadBindingsBySessionKey, pn as resolveOpenProviderRuntimeGroupPolicy, pt as unregisterAcpRuntimeBackend, qt as installRequestBodyLimitGuard, rn as withTempDownloadPath, rt as resolveDiscordChannelAllowlist, sn as resolveDmGroupAccessWithLists, st as unbindThreadBindingsBySessionKey, tn as createDedupeCache, tt as detectBinary, un as GROUP_POLICY_BLOCKED_LABEL, v as resolveLineAccount, vn as resolveAllowlistMatchSimple, vt as recordInboundSession, wt as removeAckReactionAfterReply, xn as BLUEBUBBLES_GROUP_ACTIONS, xt as logInboundDrop, yn as BLUEBUBBLES_ACTIONS, yt as resolveChannelMediaMaxBytes, zt as evictOldHistoryKeys } from "./reply-DQvYSWCp.js";
2
- import { $i as normalizeWhatsAppMessagingTarget, $o as resolveSignalAccount, Ai as listDiscordDirectoryGroupsFromConfig, Bo as isTruthyEnvValue, Bt as GroupPolicySchema, Ca as resolveWhatsAppAccount, Ct as MSTeamsConfigSchema, Ec as safeParseJson, Et as TelegramConfigSchema, Fi as listTelegramDirectoryPeersFromConfig, Go as resolveDefaultSlackAccountId, Gt as TtsConfigSchema, Ha as resolveDefaultTelegramAccountId, Ho as buildSlackThreadingToolContext, Ht as MarkdownTableModeSchema, Ii as listWhatsAppDirectoryGroupsFromConfig, It as ToolPolicySchema, Jt as normalizeAllowFrom, Ko as resolveSlackAccount, Kt as TtsModeSchema, La as formatCliCommand, Lc as stripAnsi, Li as listWhatsAppDirectoryPeersFromConfig, Lr as acquireFileLock, Lt as BlockStreamingCoalesceSchema, Mi as listSlackDirectoryGroupsFromConfig, Ni as listSlackDirectoryPeersFromConfig, Pi as listTelegramDirectoryGroupsFromConfig, Qi as normalizeWhatsAppAllowFromEntries, Qo as resolveDefaultSignalAccountId, Ri as looksLikeSlackTargetId, Rr as withFileLock, Rt as DmConfigSchema, Sa as resolveDefaultWhatsAppAccountId, Sc as pathExists, Ss as resolveThreadSessionKeys, St as IMessageConfigSchema, Ts as normalizeAccountId, Tt as SlackConfigSchema, Ua as resolveTelegramAccount, Uo as listEnabledSlackAccounts, Ut as ReplyRuntimeConfigSchemaShape, Va as listTelegramAccountIds, Vt as MarkdownConfigSchema, Wo as listSlackAccountIds, Wt as TtsAutoSchema, Xi as resolveWhatsAppMentionStripPatterns, Yi as resolveWhatsAppGroupIntroHint, Yt as requireOpenAllowFrom, Zi as looksLikeWhatsAppTargetId, Zo as listSignalAccountIds, _a as resolveTelegramGroupToolPolicy, aa as normalizeSignalMessagingTarget, bt as DiscordConfigSchema, ca as resolveDiscordGroupRequireMention, da as resolveGoogleChatGroupToolPolicy, dc as CONFIG_DIR, dl as normalizePluginHttpPath, ea as looksLikeHandleOrPhoneTarget, el as registerLogTransport, es as listIMessageAccountIds, fa as resolveIMessageGroupRequireMention, fc as clamp, fi as formatErrorMessage, fs as resolveToolsBySender, ga as resolveTelegramGroupRequireMention, gc as escapeRegExp, ha as resolveSlackGroupToolPolicy, hi as redactSensitiveText, ia as looksLikeSignalTargetId, il as getChatChannelMeta, is as listDiscordAccountIds, ji as listDiscordDirectoryPeersFromConfig, kc as sleep, la as resolveDiscordGroupToolPolicy, ma as resolveSlackGroupRequireMention, na as isWhatsAppGroupJid, ns as resolveIMessageAccount, oa as resolveBlueBubblesGroupRequireMention, os as resolveDefaultDiscordAccountId, pa as resolveIMessageGroupToolPolicy, qo as resolveSlackReplyToMode, qt as TtsProviderSchema, ra as normalizeWhatsAppTarget, rl as resolvePreferredFasedAgentTmpDir, sa as resolveBlueBubblesGroupToolPolicy, ss as resolveDiscordAccount, t as getActivePluginRegistry, ta as trimMessagingTarget, ts as resolveDefaultIMessageAccountId, ua as resolveGoogleChatGroupRequireMention, va as resolveWhatsAppGroupRequireMention, vc as isRecord, vi as extractArchive, wa as resolveWhatsAppAuthDir, ws as DEFAULT_ACCOUNT_ID, wt as SignalConfigSchema, xa as listWhatsAppAccountIds, xc as normalizeE164, xt as GoogleChatConfigSchema, ya as resolveWhatsAppGroupToolPolicy, yo as runCommandWithTimeout, yt as WhatsAppConfigSchema, zi as normalizeSlackMessagingTarget, zt as DmPolicySchema } from "./runtime-JZwgwXxK.js";
1
+ import { $ as resolveSlackUserAllowlist, $t as listDevicePairing, At as summarizeMapping, Bt as recordPendingHistoryEntry, Ct as createTypingCallbacks, Dt as resolveMentionGating, Et as shouldAckReactionForWhatsApp, G as attachFooterText, Gt as DEFAULT_WEBHOOK_MAX_BODY_BYTES, H as processLineMessage, It as buildPendingHistoryContextFromMap, Jt as isRequestBodyLimitError, Kt as RequestBodyLimitError, Lt as clearHistoryEntries, Mt as formatInboundFromLabel, Ot as resolveMentionGatingWithBypass, Pt as DEFAULT_GROUP_HISTORY_LIMIT, Qt as approveDevicePairing, Rt as clearHistoryEntriesIfEnabled, Sn as CHANNEL_MESSAGE_ACTION_NAMES, St as logTypingFailure, Tt as shouldAckReaction, U as stripMarkdown, V as hasMarkdownToConvert, Vt as recordPendingHistoryEntryIfEnabled, W as createReceiptCard, Wt as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, Xt as readRequestBodyWithLimit, Yt as readJsonBodyWithLimit, Zt as requestBodyErrorToText, _ as resolveDefaultLineAccountId, _n as formatAllowlistMatchMeta, _t as stringEnum, an as readStoreAllowFromForDmPolicy, at as autoBindSpawnedDiscordSubagent, bn as BLUEBUBBLES_ACTION_NAMES, bt as logAckFailure, cn as resolveEffectiveAllowFromLists, ct as isDangerousNameMatchingEnabled, dn as resolveAllowlistProviderRuntimeGroupPolicy, dt as formatDocsLink, en as rejectDevicePairing, et as resolveSlackChannelAllowlist, fn as resolveDefaultGroupPolicy, ft as registerAcpRuntimeBackend, g as normalizeAccountId$1, gn as registerPluginHttpRoute, gt as optionalStringEnum, h as listLineAccountIds, hn as assertOkOrThrowHttpError, ht as buildMediaPayload, in as DM_GROUP_ACCESS_REASON, it as collectDiscordAuditChannelIds, kt as mergeAllowlist, ln as resolveControlCommandGate, lt as issuePairingChallenge, mn as warnMissingProviderGroupPolicyFallbackOnce, mt as AcpRuntimeError, nn as extractToolSend, nt as resolveDiscordUserAllowlist, on as resolveDmGroupAccessWithCommandGate, ot as listThreadBindingsBySessionKey, pn as resolveOpenProviderRuntimeGroupPolicy, pt as unregisterAcpRuntimeBackend, qt as installRequestBodyLimitGuard, rn as withTempDownloadPath, rt as resolveDiscordChannelAllowlist, sn as resolveDmGroupAccessWithLists, st as unbindThreadBindingsBySessionKey, tn as createDedupeCache, tt as detectBinary, un as GROUP_POLICY_BLOCKED_LABEL, v as resolveLineAccount, vn as resolveAllowlistMatchSimple, vt as recordInboundSession, wt as removeAckReactionAfterReply, xn as BLUEBUBBLES_GROUP_ACTIONS, xt as logInboundDrop, yn as BLUEBUBBLES_ACTIONS, yt as resolveChannelMediaMaxBytes, zt as evictOldHistoryKeys } from "./reply-D9WhCAf0.js";
2
+ import { $i as normalizeWhatsAppMessagingTarget, $o as resolveSignalAccount, Ai as listDiscordDirectoryGroupsFromConfig, Bo as isTruthyEnvValue, Bt as GroupPolicySchema, Ca as resolveWhatsAppAccount, Ct as MSTeamsConfigSchema, Ec as safeParseJson, Et as TelegramConfigSchema, Fi as listTelegramDirectoryPeersFromConfig, Go as resolveDefaultSlackAccountId, Gt as TtsConfigSchema, Ha as resolveDefaultTelegramAccountId, Ho as buildSlackThreadingToolContext, Ht as MarkdownTableModeSchema, Ii as listWhatsAppDirectoryGroupsFromConfig, It as ToolPolicySchema, Jt as normalizeAllowFrom, Ko as resolveSlackAccount, Kt as TtsModeSchema, La as formatCliCommand, Lc as stripAnsi, Li as listWhatsAppDirectoryPeersFromConfig, Lr as acquireFileLock, Lt as BlockStreamingCoalesceSchema, Mi as listSlackDirectoryGroupsFromConfig, Ni as listSlackDirectoryPeersFromConfig, Pi as listTelegramDirectoryGroupsFromConfig, Qi as normalizeWhatsAppAllowFromEntries, Qo as resolveDefaultSignalAccountId, Ri as looksLikeSlackTargetId, Rr as withFileLock, Rt as DmConfigSchema, Sa as resolveDefaultWhatsAppAccountId, Sc as pathExists, Ss as resolveThreadSessionKeys, St as IMessageConfigSchema, Ts as normalizeAccountId, Tt as SlackConfigSchema, Ua as resolveTelegramAccount, Uo as listEnabledSlackAccounts, Ut as ReplyRuntimeConfigSchemaShape, Va as listTelegramAccountIds, Vt as MarkdownConfigSchema, Wo as listSlackAccountIds, Wt as TtsAutoSchema, Xi as resolveWhatsAppMentionStripPatterns, Yi as resolveWhatsAppGroupIntroHint, Yt as requireOpenAllowFrom, Zi as looksLikeWhatsAppTargetId, Zo as listSignalAccountIds, _a as resolveTelegramGroupToolPolicy, aa as normalizeSignalMessagingTarget, bt as DiscordConfigSchema, ca as resolveDiscordGroupRequireMention, da as resolveGoogleChatGroupToolPolicy, dc as CONFIG_DIR, dl as normalizePluginHttpPath, ea as looksLikeHandleOrPhoneTarget, el as registerLogTransport, es as listIMessageAccountIds, fa as resolveIMessageGroupRequireMention, fc as clamp, fi as formatErrorMessage, fs as resolveToolsBySender, ga as resolveTelegramGroupRequireMention, gc as escapeRegExp, ha as resolveSlackGroupToolPolicy, hi as redactSensitiveText, ia as looksLikeSignalTargetId, il as getChatChannelMeta, is as listDiscordAccountIds, ji as listDiscordDirectoryPeersFromConfig, kc as sleep, la as resolveDiscordGroupToolPolicy, ma as resolveSlackGroupRequireMention, na as isWhatsAppGroupJid, ns as resolveIMessageAccount, oa as resolveBlueBubblesGroupRequireMention, os as resolveDefaultDiscordAccountId, pa as resolveIMessageGroupToolPolicy, qo as resolveSlackReplyToMode, qt as TtsProviderSchema, ra as normalizeWhatsAppTarget, rl as resolvePreferredFasedAgentTmpDir, sa as resolveBlueBubblesGroupToolPolicy, ss as resolveDiscordAccount, t as getActivePluginRegistry, ta as trimMessagingTarget, ts as resolveDefaultIMessageAccountId, ua as resolveGoogleChatGroupRequireMention, va as resolveWhatsAppGroupRequireMention, vc as isRecord, vi as extractArchive, wa as resolveWhatsAppAuthDir, ws as DEFAULT_ACCOUNT_ID, wt as SignalConfigSchema, xa as listWhatsAppAccountIds, xc as normalizeE164, xt as GoogleChatConfigSchema, ya as resolveWhatsAppGroupToolPolicy, yo as runCommandWithTimeout, yt as WhatsAppConfigSchema, zi as normalizeSlackMessagingTarget, zt as DmPolicySchema } from "./runtime-d_ap8ggn.js";
3
3
  import "./github-copilot-token-CVC_19vl.js";
4
- import { At as resolveNestedAllowlistDecision, Dt as normalizeChannelSlug, Et as buildChannelKeyCandidates, Ot as resolveChannelEntryMatch, dt as normalizeDiscordSlug, it as parseDiscordTarget, kt as resolveChannelEntryMatchWithFallback } from "./send-B7uKkTxV.js";
4
+ import { At as resolveNestedAllowlistDecision, Dt as normalizeChannelSlug, Et as buildChannelKeyCandidates, Ot as resolveChannelEntryMatch, dt as normalizeDiscordSlug, it as parseDiscordTarget, kt as resolveChannelEntryMatchWithFallback } from "./send-DYsMepvi.js";
5
5
  import { n as fetchWithTimeout } from "./fetch-timeout-BD-UJHcc.js";
6
- import { n as normalizeRequestInitHeadersForFetch, t as fetchWithSsrFGuard } from "./fetch-guard-CTD85vq2.js";
6
+ import { n as normalizeRequestInitHeadersForFetch, t as fetchWithSsrFGuard } from "./fetch-guard-BciVpgwU.js";
7
7
  import { a as isBlockedHostnameOrIp, i as isBlockedHostname, o as isPrivateIpAddress, t as SsrFBlockedError } from "./ssrf-DHglwD1p.js";
8
8
  import { t as redactSensitiveUrl } from "./redact-sensitive-url-C_6JDrWW.js";
9
- import { c as normalizeIMessageHandle, d as parseChatTargetPrefixesOrThrow, f as resolveServicePrefixedAllowTarget, g as isNormalizedSenderAllowed, h as isAllowedParsedChatSender, m as formatAllowFromLowercase, p as resolveServicePrefixedTarget, u as parseChatAllowTargetPrefixes } from "./send-jXCTO3i_.js";
10
- import { $ as isWSLEnv, J as parseTelegramTarget, Q as isWSL2Sync, X as formatLocationText, Z as toLocationContext, et as isWSLSync, ot as readJsonFileWithFallback, q as normalizeTelegramLookupTarget, st as writeJsonFileAtomically } from "./send-b2ALvHco.js";
11
- import { p as chunkTextByBreakResolver } from "./chunk-BntoXexQ.js";
12
- import { _ as extensionForMime, a as loadWebMedia, g as detectMime, v as getFileExtension } from "./ir-Bbym3o_S.js";
13
- import { a as createActionGate, c as jsonResult, d as readReactionParams, m as readStringParam, n as missingTargetError, u as readNumberParam } from "./target-errors-WJdwRuAS.js";
14
- import { c as SILENT_REPLY_TOKEN, d as parseSlackBlocksInput, u as isSilentReplyText } from "./send-BkZyweGW.js";
15
- import { a as resolveAckReaction, n as createReplyPrefixOptions, t as createReplyPrefixContext } from "./reply-prefix-D1GlTOVT.js";
16
- import "./skill-commands-DqGrOYfl.js";
17
- import "./fetch-B42SDHGm.js";
18
- import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticEvent } from "./diagnostic-BnS_JikV.js";
19
- import "./path-alias-guards-ZLFppfUS.js";
20
- import "./fs-safe-DOPVDJix.js";
21
- import { r as extractOriginalFilename } from "./outbound-attachment-ddz0MwiT.js";
22
- import { q as rawDataToString } from "./paths-BjhD4HPg.js";
23
- import "./channel-activity-BcI4xSoe.js";
24
- import "./markdown-tables-DpMWx8Tl.js";
9
+ import { c as normalizeIMessageHandle, d as parseChatTargetPrefixesOrThrow, f as resolveServicePrefixedAllowTarget, g as isNormalizedSenderAllowed, h as isAllowedParsedChatSender, m as formatAllowFromLowercase, p as resolveServicePrefixedTarget, u as parseChatAllowTargetPrefixes } from "./send-XXJCJ2as.js";
10
+ import { $ as isWSLEnv, J as parseTelegramTarget, Q as isWSL2Sync, X as formatLocationText, Z as toLocationContext, et as isWSLSync, ot as readJsonFileWithFallback, q as normalizeTelegramLookupTarget, st as writeJsonFileAtomically } from "./send-DtgDCh9h.js";
11
+ import { p as chunkTextByBreakResolver } from "./chunk-CWM4OQ5j.js";
12
+ import { _ as extensionForMime, a as loadWebMedia, g as detectMime, v as getFileExtension } from "./ir-BqSQJB3B.js";
13
+ import { a as createActionGate, c as jsonResult, d as readReactionParams, m as readStringParam, n as missingTargetError, u as readNumberParam } from "./target-errors-DpDEAats.js";
14
+ import { c as SILENT_REPLY_TOKEN, d as parseSlackBlocksInput, u as isSilentReplyText } from "./send-Cvf5nOIr.js";
15
+ import { a as resolveAckReaction, n as createReplyPrefixOptions, t as createReplyPrefixContext } from "./reply-prefix-DYUukSpx.js";
16
+ import "./skill-commands-BKfUIpx3.js";
17
+ import "./fetch-yy6-Kb3T.js";
18
+ import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticEvent } from "./diagnostic-BfpYqaMu.js";
19
+ import "./path-alias-guards-DmROHvdC.js";
20
+ import "./fs-safe-Ch39tcFn.js";
21
+ import { r as extractOriginalFilename } from "./outbound-attachment-8pyStMIv.js";
22
+ import { q as rawDataToString } from "./paths-QYyMn2Wi.js";
23
+ import "./channel-activity-DRcprlRI.js";
24
+ import "./markdown-tables-Dvj4VeiJ.js";
25
25
  import "./render-DzUFCfck.js";
26
- import "./tables-b0zUZRMn.js";
27
- import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-CsbaX39w.js";
28
- import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-ByZK5Ws6.js";
29
- import "./commands-registry-Deqd0K8M.js";
30
- import "./pi-model-discovery-CFtZGJhK.js";
31
- import "./send-By-vmNGK.js";
32
- import "./memory-search-DASOKZdc.js";
33
- import "./manager-CIggnIJi.js";
34
- import "./query-expansion-BxUJl8D1.js";
26
+ import "./tables-DQEs0bVk.js";
27
+ import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-DlTadiqm.js";
28
+ import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-DvYiNUDj.js";
29
+ import "./commands-registry-CnlOnVB6.js";
30
+ import "./pi-model-discovery-BGBK5j7O.js";
31
+ import "./send-BYaWimfS.js";
32
+ import "./memory-search-BMkuVf7r.js";
33
+ import "./manager-DQJURMcB.js";
34
+ import "./query-expansion-yLS-ifHD.js";
35
35
  import "./diagnostic-session-state-DLuYVc4W.js";
36
- import "./resolve-route-y3cyO8Nu.js";
36
+ import "./resolve-route-CKHCIkIh.js";
37
37
  import "./proxy-BiW7MtYh.js";
38
- import "./replies-4ciKRt42.js";
39
- import "./outbound-C_KKhUy0.js";
40
- import "./session-B2c1Wmrm.js";
41
- import { t as loginWeb } from "./login-BViGjyGG.js";
38
+ import "./replies-DuVEe866.js";
39
+ import "./outbound-Ch3UOB-3.js";
40
+ import "./session-CZkOY6Ba.js";
41
+ import { t as loginWeb } from "./login-CUkR_AH3.js";
42
42
  import path from "node:path";
43
43
  import fs, { createWriteStream } from "node:fs";
44
44
  import os from "node:os";
@@ -1,4 +1,4 @@
1
- import { kr as runTasksWithConcurrency } from "./runtime-JZwgwXxK.js";
1
+ import { kr as runTasksWithConcurrency } from "./runtime-d_ap8ggn.js";
2
2
  import path from "node:path";
3
3
  import fs from "node:fs";
4
4
  import fs$1 from "node:fs/promises";
@@ -1,8 +1,8 @@
1
- import { Gc as logVerbose, Tc as resolveUserPath, bo as runExec, eo as resolveAgentWorkspaceDir, qc as shouldLogVerbose, rl as resolvePreferredFasedAgentTmpDir } from "./runtime-JZwgwXxK.js";
1
+ import { Gc as logVerbose, Tc as resolveUserPath, bo as runExec, eo as resolveAgentWorkspaceDir, qc as shouldLogVerbose, rl as resolvePreferredFasedAgentTmpDir } from "./runtime-d_ap8ggn.js";
2
2
  import { f as resolveStateDir } from "./github-copilot-token-CVC_19vl.js";
3
- import { t as fetchWithSsrFGuard } from "./fetch-guard-CTD85vq2.js";
4
- import { a as chunkText } from "./chunk-BntoXexQ.js";
5
- import { i as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-DOPVDJix.js";
3
+ import { t as fetchWithSsrFGuard } from "./fetch-guard-BciVpgwU.js";
4
+ import { a as chunkText } from "./chunk-CWM4OQ5j.js";
5
+ import { i as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-Ch39tcFn.js";
6
6
  import path from "node:path";
7
7
  import os from "node:os";
8
8
  import fs from "node:fs/promises";