@symerian/symi 2.9.1 → 2.9.2

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 (412) hide show
  1. package/dist/{acp-cli-BNM6b6XY.js → acp-cli-Bc6ZQZ4f.js} +2 -2
  2. package/dist/{acp-cli-DXsJS3-G.js → acp-cli-Dy9QuDBN.js} +2 -2
  3. package/dist/{agents-FNeM-byc.js → agents-DTl30WoB.js} +7 -7
  4. package/dist/{agents.config-DUYDFbfP.js → agents.config-CO8F9mkD.js} +1 -1
  5. package/dist/{agents.config-CjML1ogJ.js → agents.config-CZ3GFxPg.js} +1 -1
  6. package/dist/{audio-preflight-CwbuWmdG.js → audio-preflight-8UNY1akA.js} +11 -11
  7. package/dist/{audio-preflight-SaT5IcVn.js → audio-preflight-By0dnw-T.js} +11 -11
  8. package/dist/{audio-preflight-DlO0Hw-w.js → audio-preflight-DQR2Ivi-.js} +5 -5
  9. package/dist/{audio-preflight-CMutcMs5.js → audio-preflight-Dtsvq6Hj.js} +6 -6
  10. package/dist/{audit-qWCLpveM.js → audit-DGwhL71Q.js} +5 -5
  11. package/dist/{audit-Ojap-R-Y.js → audit-OPWWS900.js} +5 -5
  12. package/dist/{auth-choice-BjTiWmH-.js → auth-choice-BYDGn7lJ.js} +4 -4
  13. package/dist/{auth-choice-RQ5keocP.js → auth-choice-BoOyy-ZT.js} +4 -4
  14. package/dist/{banner-dYiFXA70.js → banner-D4MiyUnv.js} +1 -1
  15. package/dist/{browser-cli-BQ9jHIXP.js → browser-cli-CGLTZ9KQ.js} +3 -3
  16. package/dist/{browser-cli-BW0C5Y8-.js → browser-cli-qpJlsofO.js} +3 -3
  17. package/dist/build-info.json +3 -3
  18. package/dist/bundled/boot-md/handler.js +14 -14
  19. package/dist/bundled/session-memory/handler.js +14 -14
  20. package/dist/{call-X_vwo309.js → call-BCTAmPye.js} +1 -1
  21. package/dist/{call-BZbBLMOq.js → call-BIETyST6.js} +1 -1
  22. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  23. package/dist/{channel-options-CjZlTumK.js → channel-options-B6qP-vR-.js} +1 -1
  24. package/dist/{channel-options-DqXYA7rM.js → channel-options-BiSSYYQC.js} +1 -1
  25. package/dist/{channel-web-BITaNjFT.js → channel-web-DP97EUhx.js} +7 -7
  26. package/dist/{channels-cli-7cDtM5kW.js → channels-cli-6LNvJQPb.js} +30 -30
  27. package/dist/{channels-cli-C8CesA1x.js → channels-cli-CE_A3Hai.js} +31 -31
  28. package/dist/{chrome-t-stBgN6.js → chrome-B-hW5hrK.js} +1 -1
  29. package/dist/{chrome-B1zznUiv.js → chrome-BaMQiegP.js} +8 -8
  30. package/dist/{chrome-faqXQ9f1.js → chrome-CO5ZhkcZ.js} +1 -1
  31. package/dist/{chrome-BFDOGeu3.js → chrome-CtTba9sH.js} +1 -1
  32. package/dist/cli/daemon-cli.js +1 -1
  33. package/dist/{cli-BJ9_X9eE.js → cli-D4j_JTug.js} +27 -27
  34. package/dist/{cli-ZC_92Xyn.js → cli-DwQ3mqhI.js} +26 -26
  35. package/dist/{command-registry-B1ltIC7z.js → command-registry-b62Qpsi2.js} +11 -11
  36. package/dist/{completion-cli-_P0e-rhC.js → completion-cli-DUT2XYgK.js} +2 -2
  37. package/dist/{completion-cli-KSs4eFcq.js → completion-cli-RQyC3L-t.js} +1 -1
  38. package/dist/{config-BYCtuYPj.js → config-CitI_jxW.js} +6 -0
  39. package/dist/{config-CbBZUq-Q.js → config-D7Zr88dI.js} +6 -0
  40. package/dist/{config-BXMAsmut.js → config-Do4JxgLI.js} +6 -0
  41. package/dist/{config-DE6JXMtt.js → config-Gfhqs66L.js} +6 -0
  42. package/dist/{config-cli-DIrPShKH.js → config-cli-Di8VOhbp.js} +2 -2
  43. package/dist/{config-cli-DjCKp4Pe.js → config-cli-H52N8rp1.js} +2 -2
  44. package/dist/{config-guard-BrZXdLQw.js → config-guard-BLcbR_sH.js} +2 -2
  45. package/dist/{config-guard-DYmSI51f.js → config-guard-CgPPAm7S.js} +3 -3
  46. package/dist/{config-validation-CNRgc5vc.js → config-validation-B6GnatLw.js} +1 -1
  47. package/dist/{config-validation-fdYfdAc3.js → config-validation-UMq2H_tR.js} +1 -1
  48. package/dist/{configure-CsZWO6Nr.js → configure-BF9crM5K.js} +10 -10
  49. package/dist/{configure-Ds8SzTEw.js → configure-DQxuawe-.js} +10 -10
  50. package/dist/{control-service-DQX3HXS4.js → control-service-BkyH7qkF.js} +4 -4
  51. package/dist/{control-service-B5HVCnUI.js → control-service-DnNPjFvU.js} +4 -4
  52. package/dist/{cron-cli-CfSmL43G.js → cron-cli-CcgewYtp.js} +3 -3
  53. package/dist/{cron-cli-D2L3-4aw.js → cron-cli-DEcQk1bb.js} +3 -3
  54. package/dist/{daemon-cli-D9_xrFGD.js → daemon-cli-BNZu5unw.js} +6 -6
  55. package/dist/{daemon-cli-BHwfgmrQ.js → daemon-cli-BiBjGGfw.js} +6 -6
  56. package/dist/daemon-cli.js +6 -0
  57. package/dist/{daemon-runtime-BiZG4Kqi.js → daemon-runtime-C-Mwepv_.js} +1 -1
  58. package/dist/{daemon-runtime-DOqm0LLm.js → daemon-runtime-C86WnKU5.js} +1 -1
  59. package/dist/{deliver-CeNdvQJ3.js → deliver-DaRQn5Ai.js} +3 -3
  60. package/dist/{deliver-Cqk3zmyW.js → deliver-DrgHcdVo.js} +3 -3
  61. package/dist/{deliver-nBdNxMIr.js → deliver-Dx39g9ey.js} +2 -2
  62. package/dist/{deliver--ff__Iq0.js → deliver-XYF4JahT.js} +2 -2
  63. package/dist/{devices-cli-BzyrjuAk.js → devices-cli-Wb4H-vyx.js} +2 -2
  64. package/dist/{devices-cli-CEvTb9Vr.js → devices-cli-hX2lrsCy.js} +2 -2
  65. package/dist/{directory-cli-KZHlp_jk.js → directory-cli-CLIYvXkV.js} +1 -1
  66. package/dist/{directory-cli-Ds7uESrp.js → directory-cli-C_vm-dsr.js} +1 -1
  67. package/dist/{dns-cli-e8z7wTzi.js → dns-cli-BJuUZ4pr.js} +1 -1
  68. package/dist/{dns-cli-SNU_PJfw.js → dns-cli-CTCAHPcB.js} +1 -1
  69. package/dist/{doctor-completion-D4bMStWc.js → doctor-completion-BKXQ50ee.js} +1 -1
  70. package/dist/{doctor-completion-CfGWMYVG.js → doctor-completion-BS2JEeZy.js} +1 -1
  71. package/dist/{doctor-config-flow-CJ4__c8U.js → doctor-config-flow-BFHsvL2k.js} +2 -2
  72. package/dist/{doctor-config-flow-DHXFFSRu.js → doctor-config-flow-l2aPNzHP.js} +2 -2
  73. package/dist/entry.js +1 -1
  74. package/dist/{exec-approvals-cli-z9Iy8aWD.js → exec-approvals-cli-BXDSu2Ze.js} +4 -4
  75. package/dist/{exec-approvals-cli-_AbKrXIH.js → exec-approvals-cli-uAM6-swA.js} +4 -4
  76. package/dist/extensionAPI.js +16 -16
  77. package/dist/{gateway-cli-B4ElmhPF.js → gateway-cli-Do9KUPqe.js} +42 -42
  78. package/dist/{gateway-cli-CfO9aUt0.js → gateway-cli-moPf-zP5.js} +43 -43
  79. package/dist/{gateway-rpc-D1S1i5HM.js → gateway-rpc-DMEPdgmc.js} +1 -1
  80. package/dist/{gateway-rpc-BlWORxUe.js → gateway-rpc-Wa_4MrZb.js} +1 -1
  81. package/dist/{glass-ui-ws-D1UKJUFI.js → glass-ui-ws-D53pvIov.js} +35 -35
  82. package/dist/{glass-ui-ws-Bhu3COgn.js → glass-ui-ws-Dfro-3R8.js} +34 -34
  83. package/dist/{health-CCslN1xh.js → health-BQGRC0xh.js} +5 -5
  84. package/dist/{health-CLRDrjsk.js → health-CV741PBg.js} +5 -5
  85. package/dist/{hooks-cli-DvLYXNNe.js → hooks-cli-CG-PDY2U.js} +28 -28
  86. package/dist/{hooks-cli-BrVLhsJ6.js → hooks-cli-CWXGIL9L.js} +27 -27
  87. package/dist/{image-D5bsPk2_.js → image-BjyeKf1c.js} +2 -2
  88. package/dist/{image-CEdTQp1F.js → image-C-JvPPpM.js} +2 -2
  89. package/dist/{image-B6aY1oY3.js → image-GaF72sln.js} +2 -2
  90. package/dist/{image-Cp6qRPZ2.js → image-dYtWZNKT.js} +2 -2
  91. package/dist/index.js +35 -35
  92. package/dist/{lifecycle-core-CcPnnp9c.js → lifecycle-core-BMVHLJi_.js} +2 -2
  93. package/dist/{lifecycle-core-BUGPz1GT.js → lifecycle-core-HOQrbQ-_.js} +2 -2
  94. package/dist/llm-slug-generator.js +14 -14
  95. package/dist/{login-DwBazcKM.js → login-Cd4DTmg6.js} +2 -2
  96. package/dist/{login-B7OJui4y.js → login-Cv_LYGzG.js} +2 -2
  97. package/dist/{login-DKeZ-sOf.js → login-D4OYfM0U.js} +2 -2
  98. package/dist/{login-Cu0fTI3Z.js → login-DqhTprwd.js} +2 -2
  99. package/dist/{login-qr-BBrzemk7.js → login-qr-CZXIrzvh.js} +2 -2
  100. package/dist/{login-qr-DyU6qD2X.js → login-qr-DiyxAHpv.js} +2 -2
  101. package/dist/{login-qr-CtELJan3.js → login-qr-Dq_hs3eJ.js} +2 -2
  102. package/dist/{login-qr-Ft17VIG6.js → login-qr-Xgw7JPYo.js} +2 -2
  103. package/dist/{logs-cli-CvgvoxvI.js → logs-cli-DZTxEhiM.js} +3 -3
  104. package/dist/{logs-cli-Dg6OSEA6.js → logs-cli-Dh-aAqF3.js} +3 -3
  105. package/dist/{manager-OSWCBsL_.js → manager-B_2KzUSI.js} +1 -1
  106. package/dist/{manager-HASZR70T.js → manager-Bc-MeMho.js} +1 -1
  107. package/dist/{manager-CztTHQhN.js → manager-CLPHK-qG.js} +1 -1
  108. package/dist/{manager-8N1YbbDk.js → manager-yrUe0KOT.js} +1 -1
  109. package/dist/{memory-cli-BmWvHCEJ.js → memory-cli-3RSIw4no.js} +4 -4
  110. package/dist/{memory-cli-BDWdeqta.js → memory-cli-BKNnDIdx.js} +4 -4
  111. package/dist/{model-catalog-BhW-vn5v.js → model-catalog-BFJW_s3i.js} +2 -2
  112. package/dist/{model-catalog-FckJ4pcL.js → model-catalog-DRqmevpR.js} +2 -2
  113. package/dist/{model-picker-D3ii5sBm.js → model-picker-BT8MumhL.js} +2 -2
  114. package/dist/{model-picker-DEUeht6L.js → model-picker-DhsG4iZa.js} +2 -2
  115. package/dist/{models-5C-QKF0q.js → models-D_C2JFPw.js} +8 -8
  116. package/dist/{models-cli-BqW-Y1GI.js → models-cli-DQE60EtL.js} +30 -30
  117. package/dist/{models-cli-B2IebIhR.js → models-cli-j2O4e1Lu.js} +29 -29
  118. package/dist/{models-config-DGDMieos.js → models-config-DdK8uWQW.js} +1 -1
  119. package/dist/{models-config-CHVfeRDR.js → models-config-frWb8fDT.js} +1 -1
  120. package/dist/{node-cli-hAxte5bw.js → node-cli-DB4Z23h8.js} +9 -9
  121. package/dist/{node-cli-emEb0aRo.js → node-cli-DcRlL2Np.js} +9 -9
  122. package/dist/{nodes-cli-DQPQqEYN.js → nodes-cli-B42u9UxB.js} +3 -3
  123. package/dist/{nodes-cli-yd9KABqj.js → nodes-cli-DQ9YsQmy.js} +3 -3
  124. package/dist/{onboard-BL7Ei8OA.js → onboard-Ckw89oRF.js} +7 -7
  125. package/dist/{onboard-o5O2Ipvr.js → onboard-DUIZfWqa.js} +7 -7
  126. package/dist/{onboard-channels-B-PEQmiI.js → onboard-channels-B8Ouc5sR.js} +1 -1
  127. package/dist/{onboard-channels-Do0lkLVV.js → onboard-channels-Oa9IlsGt.js} +1 -1
  128. package/dist/{onboard-custom-BVMtQfB1.js → onboard-custom-7TON2w6b.js} +2 -2
  129. package/dist/{onboard-custom-CVA34zSg.js → onboard-custom-Bb3xuH0G.js} +2 -2
  130. package/dist/{onboard-helpers-O6bxf40E.js → onboard-helpers-BiCrYw-N.js} +2 -2
  131. package/dist/{onboard-helpers-CNFdWQIV.js → onboard-helpers-Ca4KojJF.js} +2 -2
  132. package/dist/{onboard-remote-QMqQxvh7.js → onboard-remote-B8MQTgX-.js} +1 -1
  133. package/dist/{onboard-remote-uYveiXQe.js → onboard-remote-IMqgmH78.js} +1 -1
  134. package/dist/{onboard-skills-CLb94Ag2.js → onboard-skills-BP1P7f-w.js} +1 -1
  135. package/dist/{onboard-skills-Du3aWSN3.js → onboard-skills-BcvPjVfl.js} +1 -1
  136. package/dist/{onboarding-3DwQLO4z.js → onboarding-Cjh-Y8ha.js} +10 -10
  137. package/dist/{onboarding-B_F_DbjQ.js → onboarding-JFWHlqAb.js} +10 -10
  138. package/dist/{onboarding.finalize-BWejCrVi.js → onboarding.finalize-CkGLgiEA.js} +32 -32
  139. package/dist/{onboarding.finalize-D_G6Tcqi.js → onboarding.finalize-spzEoVkm.js} +34 -34
  140. package/dist/{onboarding.gateway-config-D8K7HsWb.js → onboarding.gateway-config-Cp8mV8S9.js} +4 -4
  141. package/dist/{onboarding.gateway-config-Dixr8mmH.js → onboarding.gateway-config-tmzsyFbT.js} +4 -4
  142. package/dist/{outbound-CLCy4Nsg.js → outbound-BD7PNRhC.js} +1 -1
  143. package/dist/{outbound-DVVulk0E.js → outbound-BaF9dF-H.js} +1 -1
  144. package/dist/{outbound-b9pVFyW7.js → outbound-CDuo0JH3.js} +1 -1
  145. package/dist/{outbound-DlWjA7jN.js → outbound-CPcVipU-.js} +1 -1
  146. package/dist/{pairing-cli-Cgj6qx8Z.js → pairing-cli-CfuG75IW.js} +1 -1
  147. package/dist/{pairing-cli-CchjvjCR.js → pairing-cli-K09J3MIl.js} +1 -1
  148. package/dist/{pi-embedded-q_tNOp_h.js → pi-embedded-D6Zi01El.js} +343 -41
  149. package/dist/{pi-embedded-helpers-DrAT2ieP.js → pi-embedded-helpers-B1P8lkqj.js} +5 -5
  150. package/dist/{pi-embedded-helpers-BgpogTwt.js → pi-embedded-helpers-BlL08R8g.js} +1 -1
  151. package/dist/{pi-embedded-helpers-DK2WpZI8.js → pi-embedded-helpers-CmY04lZ7.js} +1 -1
  152. package/dist/{pi-embedded-helpers-BPP4adeW.js → pi-embedded-helpers-DuZtk5SK.js} +6 -6
  153. package/dist/{pi-tools.policy-BE7fB_Cf.js → pi-tools.policy-54ABEJtH.js} +2 -2
  154. package/dist/{pi-tools.policy-GxaAKOgf.js → pi-tools.policy-BFsWV2pS.js} +2 -2
  155. package/dist/{plugin-registry-CRIH5Sdf.js → plugin-registry-CYglC746.js} +2 -2
  156. package/dist/{plugin-registry-B_KRAoou.js → plugin-registry-zGF6HUkQ.js} +2 -2
  157. package/dist/plugin-sdk/agents/pi-embedded-runner/system-prompt.d.ts +14 -0
  158. package/dist/plugin-sdk/agents/skills/triggers.d.ts +12 -0
  159. package/dist/plugin-sdk/agents/system-prompt-skills-jit.d.ts +28 -0
  160. package/dist/plugin-sdk/agents/tools/skill-search-tool.d.ts +30 -0
  161. package/dist/plugin-sdk/{audio-preflight-CwMsvdv8.js → audio-preflight-CoKYDdd4.js} +6 -6
  162. package/dist/plugin-sdk/{channel-web-CiewzSOW.js → channel-web-eeGSjU9N.js} +7 -7
  163. package/dist/plugin-sdk/{chrome-Cou8jVJ2.js → chrome-CdjVSHtz.js} +1 -1
  164. package/dist/plugin-sdk/config/types.skills.d.ts +14 -0
  165. package/dist/plugin-sdk/config/zod-schema.d.ts +2 -0
  166. package/dist/plugin-sdk/{config-DQntj58u.js → config-Cf-PzD3r.js} +6 -0
  167. package/dist/plugin-sdk/{deliver-OVx3XKTy.js → deliver-hjUeDZ7e.js} +2 -2
  168. package/dist/plugin-sdk/{image-ChrcMCo_.js → image-CS95I-I5.js} +2 -2
  169. package/dist/plugin-sdk/index.js +20 -20
  170. package/dist/plugin-sdk/{login-WuhOM4Dg.js → login-BhLw-aw1.js} +2 -2
  171. package/dist/plugin-sdk/{login-qr-C87Q7LuN.js → login-qr-B4dxH543.js} +2 -2
  172. package/dist/plugin-sdk/{manager-Yvm-LGVR.js → manager-DZ5-lr4s.js} +1 -1
  173. package/dist/plugin-sdk/{outbound-T0XdUo-H.js → outbound-D7yJKgEX.js} +1 -1
  174. package/dist/plugin-sdk/{pi-embedded-helpers-DihvU43r.js → pi-embedded-helpers-6EL59cK1.js} +6 -6
  175. package/dist/plugin-sdk/{pw-ai-DUQ9kG2D.js → pw-ai-DWcXZkbZ.js} +2 -2
  176. package/dist/plugin-sdk/{replies-DD0EJRXx.js → replies-B4fizDsZ.js} +1 -1
  177. package/dist/plugin-sdk/{reply-I6ZFg_UE.js → reply-BRGoceel.js} +348 -46
  178. package/dist/plugin-sdk/{runner-IyZnVyIT.js → runner-D9c_MNRa.js} +2 -2
  179. package/dist/plugin-sdk/{send-Do_qdBr_.js → send-BAzimHH-.js} +1 -1
  180. package/dist/plugin-sdk/{send-DxXXcQ_o.js → send-BfqyNBU1.js} +1 -1
  181. package/dist/plugin-sdk/{send-Cxr9NnOd.js → send-CF7BhO8B.js} +1 -1
  182. package/dist/plugin-sdk/{send-SRQweHTE.js → send-CJIEYVXL.js} +1 -1
  183. package/dist/plugin-sdk/{send-Dd71o3sZ.js → send-DDpZS9jb.js} +1 -1
  184. package/dist/plugin-sdk/{session-LEZ8u8RX.js → session-BfTQAyNx.js} +1 -1
  185. package/dist/plugin-sdk/{skill-commands-DEfqC_kJ.js → skill-commands-C70yD9PL.js} +1 -1
  186. package/dist/plugin-sdk/{skills-C9DbB-Kp.js → skills-DuQ-xGok.js} +1 -1
  187. package/dist/plugin-sdk/{synthesis-bQ4DMwsj.js → synthesis-DVsG2Tbp.js} +16 -16
  188. package/dist/plugin-sdk/{web-C3YuHiih.js → web-7u3fdT2S.js} +20 -20
  189. package/dist/plugin-sdk/{whatsapp-actions-ClWxTG5S.js → whatsapp-actions-B_3do0s7.js} +2 -2
  190. package/dist/{plugins-cli-Co9cRpLe.js → plugins-cli-CLb_0vH6.js} +27 -27
  191. package/dist/{plugins-cli-MDYiXsRL.js → plugins-cli-ndIGvW38.js} +28 -28
  192. package/dist/{program-BWqVPm5t.js → program-BovNsUAh.js} +34 -34
  193. package/dist/{program-context-m9C36Cuq.js → program-context-mFSRQPMm.js} +38 -38
  194. package/dist/{prompt-select-styled-DzjQVaDM.js → prompt-select-styled-DlKhnnDV.js} +15 -15
  195. package/dist/{prompt-select-styled-BKJVEVPk.js → prompt-select-styled-vhI0kQYd.js} +15 -15
  196. package/dist/{provider-auth-helpers-DaTqy1aA.js → provider-auth-helpers-DXlKD0hY.js} +2 -2
  197. package/dist/{provider-auth-helpers-DYJ-0sNe.js → provider-auth-helpers-U0t5YhCn.js} +2 -2
  198. package/dist/{push-apns-DdQlLTpV.js → push-apns-hN0N3Wcu.js} +1 -1
  199. package/dist/{push-apns-_aeFBwsP.js → push-apns-rDsc17-c.js} +1 -1
  200. package/dist/{pw-ai-DSmC8YuO.js → pw-ai-B8IypzYb.js} +2 -2
  201. package/dist/{pw-ai-D9ZuX3U6.js → pw-ai-BYRvpqBg.js} +2 -2
  202. package/dist/{pw-ai-Bpp0J0PM.js → pw-ai-BlWK9Tr3.js} +2 -2
  203. package/dist/{pw-ai-XSTIQILG.js → pw-ai-BwKx4yAQ.js} +2 -2
  204. package/dist/{qr-cli-DtHLOD1G.js → qr-cli-B7hz3Zj2.js} +1 -1
  205. package/dist/{qr-cli-Dq9G8FPl.js → qr-cli-Zf3abH3y.js} +1 -1
  206. package/dist/{register.agent-Hi0PN67T.js → register.agent-B1liWWB3.js} +35 -35
  207. package/dist/{register.agent-RNTVF_Nk.js → register.agent-Cyij2g-g.js} +33 -33
  208. package/dist/{register.configure-Dp-F_KKy.js → register.configure-CoYKlH75.js} +37 -37
  209. package/dist/{register.configure-DE2Fg1dO.js → register.configure-keWh1w1p.js} +38 -38
  210. package/dist/{register.maintenance-Bbd-g7nL.js → register.maintenance-CsA9QQRE.js} +37 -37
  211. package/dist/{register.maintenance-QHRRhtsg.js → register.maintenance-CvY-Yar9.js} +35 -35
  212. package/dist/{register.message-BvutRi1a.js → register.message-D7815_7Y.js} +28 -28
  213. package/dist/{register.message-B5uWOXev.js → register.message-DltuBwIg.js} +27 -27
  214. package/dist/{register.onboard-DRHuoRTm.js → register.onboard-CY50To_-.js} +33 -33
  215. package/dist/{register.onboard-CNOh527M.js → register.onboard-FcZymlrx.js} +34 -34
  216. package/dist/{register.setup-D1ePW7dl.js → register.setup-8dkIizGs.js} +34 -34
  217. package/dist/{register.setup-Cj0oOZqL.js → register.setup-X011Evir.js} +33 -33
  218. package/dist/{register.status-health-sessions-sf1XzcPo.js → register.status-health-sessions-DRkIaw1q.js} +32 -32
  219. package/dist/{register.status-health-sessions-DfyO7JaH.js → register.status-health-sessions-u9ZbWWea.js} +30 -30
  220. package/dist/{register.subclis-Do_HdpUT.js → register.subclis-vTS3UwIU.js} +28 -28
  221. package/dist/{replies-IkylJ7lX.js → replies-A6SltFjk.js} +1 -1
  222. package/dist/{replies-CPhYC11m.js → replies-CsNZ9ImJ.js} +1 -1
  223. package/dist/{replies-BxvfG7Oj.js → replies-Dk0cnpHa.js} +1 -1
  224. package/dist/{replies-BV7oFP7Z.js → replies-Dmo0pSSf.js} +1 -1
  225. package/dist/{reply-DEub7xci.js → reply-Dx9DWIO2.js} +355 -52
  226. package/dist/{routes-n7RUgOOW.js → routes-B3wAMCSw.js} +3 -3
  227. package/dist/{routes-Evl8vnTV.js → routes-DH2Da7TP.js} +3 -3
  228. package/dist/{rpc-3T_LjHn1.js → rpc-BPtq6BO7.js} +1 -1
  229. package/dist/{rpc-DeJsMHDF.js → rpc-DCB41PXt.js} +1 -1
  230. package/dist/{run-main-B_ZLo4JR.js → run-main-BQKf71Kt.js} +45 -45
  231. package/dist/{runner-CMvsDzah.js → runner-C4opGXAA.js} +2 -2
  232. package/dist/{runner-CiThXXY3.js → runner-CY_8vnxU.js} +3 -3
  233. package/dist/{runner-B_6xBcPB.js → runner-Dbs3i8HW.js} +2 -2
  234. package/dist/{runner-BX-ap4VU.js → runner-Im1oOE3i.js} +3 -3
  235. package/dist/{sandbox-T9SO3y3b.js → sandbox-BTziorto.js} +5 -5
  236. package/dist/{sandbox-cli-MZJX1Ht6.js → sandbox-cli-BVpVuidu.js} +6 -6
  237. package/dist/{sandbox-cli-Bi8lblc6.js → sandbox-cli-rOwF1Yuh.js} +6 -6
  238. package/dist/{sandbox-BQ5LAIBQ.js → sandbox-wUKYI3zy.js} +5 -5
  239. package/dist/{security-cli-AZBZs6ww.js → security-cli-Bb4vR6LY.js} +9 -9
  240. package/dist/{security-cli-txjMZzBx.js → security-cli-Cg7KhJC7.js} +9 -9
  241. package/dist/{send-CcD9S5so.js → send-8Gw3YmOh.js} +1 -1
  242. package/dist/{send-BtbWvw2k.js → send-90t8KM2a.js} +1 -1
  243. package/dist/{send-DlYO3ExM.js → send-9ktd0CBZ.js} +1 -1
  244. package/dist/{send-C6-rN_Li.js → send-B0szkIfv.js} +1 -1
  245. package/dist/{send-CyPj_MLV.js → send-B7kMNQ-T.js} +1 -1
  246. package/dist/{send-DNqcjLyg.js → send-BbZtP8GJ.js} +1 -1
  247. package/dist/{send-C4IU_tV3.js → send-CQj8FBE3.js} +1 -1
  248. package/dist/{send-Bi8XhwOZ.js → send-Cxr6CgGf.js} +1 -1
  249. package/dist/{send-CfejAK2u.js → send-D27q8Oqo.js} +1 -1
  250. package/dist/{send-CupfdYEg.js → send-D4GfXudZ.js} +1 -1
  251. package/dist/{send-BPBFuPrC.js → send-D5Siw6wn.js} +1 -1
  252. package/dist/{send-BUBES34Y.js → send-DanpvmZQ.js} +1 -1
  253. package/dist/{send-CSkNKYIc.js → send-DbJsN7Lj.js} +1 -1
  254. package/dist/{send-dohExhb8.js → send-Dj6_LS_W.js} +1 -1
  255. package/dist/{send-vmIzYMwN.js → send-F2Cpm-SJ.js} +1 -1
  256. package/dist/{send-BaSqjfd_.js → send-aXMPprv9.js} +1 -1
  257. package/dist/{send-_CmB6CKB.js → send-depbZ9aA.js} +1 -1
  258. package/dist/{send-llekTUks.js → send-nRhkxbqX.js} +1 -1
  259. package/dist/{send-CoSPwGiI.js → send-t_DoGd2Y.js} +1 -1
  260. package/dist/{send-Dn1Pirhx.js → send-zMHWALCW.js} +1 -1
  261. package/dist/{server-context-CGMSzPWd.js → server-context-BPuBLXYG.js} +5 -5
  262. package/dist/{server-context-BkYSrDni.js → server-context-DQIkGNj2.js} +5 -5
  263. package/dist/{server-methods-C-itThFa.js → server-methods-1TzYth88.js} +17 -17
  264. package/dist/{server-methods-P-ayY-6k.js → server-methods-DeIwhdBv.js} +16 -16
  265. package/dist/{server-node-events-tvNFkev2.js → server-node-events-CFMtnBFU.js} +28 -28
  266. package/dist/{server-node-events-D5ee96aZ.js → server-node-events-DF_ks0oa.js} +27 -27
  267. package/dist/{session-CifmyF9K.js → session-C4odFBc2.js} +1 -1
  268. package/dist/{session-bvybh7vL.js → session-CTTpxOx1.js} +1 -1
  269. package/dist/{session-CMploMg7.js → session-Cs58by4_.js} +1 -1
  270. package/dist/{session-DQimwuIx.js → session-d5_vMl76.js} +1 -1
  271. package/dist/{session-utils-DQ-t0PxQ.js → session-utils--1xVj2BC.js} +3 -3
  272. package/dist/{sessions-BIsirZy0.js → sessions-BikjOqQs.js} +3 -3
  273. package/dist/{sessions-BKn2DFYs.js → sessions-CVWGQEWu.js} +1 -1
  274. package/dist/{sessions-DCr5nAOw.js → sessions-CpDbQNFu.js} +1 -1
  275. package/dist/{shared-iaXjUnvo.js → shared-DHpMu95O.js} +1 -1
  276. package/dist/{shared-F4GNd-mC.js → shared-NCp143fJ.js} +1 -1
  277. package/dist/{skill-commands-CSF7Poen.js → skill-commands-QmLQo8Tj.js} +1 -1
  278. package/dist/{skills-XEbTRNYL.js → skills-D0hfZgFz.js} +1 -1
  279. package/dist/{skills-cli-BX1J5GLJ.js → skills-cli-6wYY0Xes.js} +1 -1
  280. package/dist/{skills-cli-CZgrqMPo.js → skills-cli-CkTThcTU.js} +1 -1
  281. package/dist/{status-BlTLrS6h.js → status-CvElSWg2.js} +2 -2
  282. package/dist/{status-CfIkReeE.js → status-CwZgLSfx.js} +10 -10
  283. package/dist/{status-DjvBeoYl.js → status-DEQAH4oA.js} +2 -2
  284. package/dist/{status-BqjF9Q9S.js → status-vO4-v0vI.js} +9 -9
  285. package/dist/{status.update-C5evp93A.js → status.update-BSaVYFQv.js} +1 -1
  286. package/dist/{status.update-BZnfRS2e.js → status.update-DoXJrRh6.js} +1 -1
  287. package/dist/{subagent-registry-DVYhalAo.js → subagent-registry-K1lQH7iR.js} +351 -48
  288. package/dist/{synthesis-y-Ozm8YK.js → synthesis-AYqn8_O8.js} +27 -27
  289. package/dist/{synthesis-DgiYnjmZ.js → synthesis-CZhOC8n4.js} +14 -14
  290. package/dist/{synthesis-DRXsTePq.js → synthesis-DazoL-DI.js} +26 -26
  291. package/dist/{synthesis-DDQ5zAtf.js → synthesis-DhxkkJq7.js} +16 -16
  292. package/dist/{system-cli-IeefTiI1.js → system-cli-BmccUOcE.js} +3 -3
  293. package/dist/{system-cli-hjvWuxnn.js → system-cli-DJIrqTFB.js} +3 -3
  294. package/dist/{systemd-hints-CW7G2Z_2.js → systemd-hints-BbqPFaZ2.js} +1 -1
  295. package/dist/{systemd-hints-CcsN2P1C.js → systemd-hints-CfnF9j3s.js} +1 -1
  296. package/dist/{tui-DulNash-.js → tui-Cc1L4YuN.js} +4 -4
  297. package/dist/{tui-ByDc_eA-.js → tui-D5we2kr7.js} +4 -4
  298. package/dist/{tui-cli-cbFjX5ua.js → tui-cli-BHBp8e8w.js} +9 -9
  299. package/dist/{tui-cli-D--Wucil.js → tui-cli-CmVmkEzr.js} +9 -9
  300. package/dist/{unified-runner-BRmPenSK.js → unified-runner-CavADnkK.js} +350 -47
  301. package/dist/{update-cli-BfvcUFky.js → update-cli-DPf2vrJK.js} +40 -40
  302. package/dist/{update-cli-5uhTWLns.js → update-cli-DmxFKAmJ.js} +38 -38
  303. package/dist/{update-runner-DyENgdTM.js → update-runner-D4UIv_1p.js} +1 -1
  304. package/dist/{update-runner-22u8HOoq.js → update-runner-XU-jPEg_.js} +1 -1
  305. package/dist/{web-s9NWpUYH.js → web-BBbVbRTg.js} +30 -30
  306. package/dist/{web-Dbe1DwOE.js → web-BJIv_6uQ.js} +17 -17
  307. package/dist/{web-CqeSgivQ.js → web-C-E-O8iP.js} +30 -30
  308. package/dist/{web-B8GaP73t.js → web-CIj8erCe.js} +19 -19
  309. package/dist/{webhooks-cli-9lyrT9S-.js → webhooks-cli-BPWIcZ4r.js} +1 -1
  310. package/dist/{webhooks-cli-C56QoA-d.js → webhooks-cli-DCw-yCzR.js} +1 -1
  311. package/dist/{whatsapp-actions-Dx8FkbIf.js → whatsapp-actions-B5o7eFIc.js} +2 -2
  312. package/dist/{whatsapp-actions-D5RBK0Cm.js → whatsapp-actions-CJkCiI_n.js} +2 -2
  313. package/dist/{whatsapp-actions-BV4mjN5j.js → whatsapp-actions-CkT3dnmD.js} +2 -2
  314. package/dist/{whatsapp-actions-BngdI8G3.js → whatsapp-actions-DRvUrapa.js} +2 -2
  315. package/dist/{with-timeout-7gwjaz5c.js → with-timeout-7M4c248g.js} +1 -1
  316. package/dist/{with-timeout-C1vsg3IF.js → with-timeout-BWETfI9T.js} +1 -1
  317. package/extensions/bluebubbles/package.json +1 -1
  318. package/extensions/copilot-proxy/package.json +1 -1
  319. package/extensions/diagnostics-otel/package.json +1 -1
  320. package/extensions/discord/package.json +1 -1
  321. package/extensions/feishu/package.json +1 -1
  322. package/extensions/google-antigravity-auth/package.json +1 -1
  323. package/extensions/google-gemini-cli-auth/package.json +1 -1
  324. package/extensions/googlechat/package.json +1 -1
  325. package/extensions/imessage/package.json +1 -1
  326. package/extensions/irc/package.json +1 -1
  327. package/extensions/learning-loop/package.json +1 -1
  328. package/extensions/line/package.json +1 -1
  329. package/extensions/llm-task/package.json +1 -1
  330. package/extensions/matrix/CHANGELOG.md +6 -0
  331. package/extensions/matrix/package.json +1 -1
  332. package/extensions/mattermost/package.json +1 -1
  333. package/extensions/memory-core/package.json +1 -1
  334. package/extensions/memory-lancedb/package.json +1 -1
  335. package/extensions/minimax-portal-auth/package.json +1 -1
  336. package/extensions/msteams/CHANGELOG.md +6 -0
  337. package/extensions/msteams/package.json +1 -1
  338. package/extensions/nextcloud-talk/package.json +1 -1
  339. package/extensions/nostr/CHANGELOG.md +6 -0
  340. package/extensions/nostr/package.json +1 -1
  341. package/extensions/open-prose/package.json +1 -1
  342. package/extensions/outlook/package.json +1 -1
  343. package/extensions/pipeline/package.json +1 -1
  344. package/extensions/signal/package.json +1 -1
  345. package/extensions/slack/package.json +1 -1
  346. package/extensions/telegram/package.json +1 -1
  347. package/extensions/tlon/package.json +1 -1
  348. package/extensions/twitch/CHANGELOG.md +6 -0
  349. package/extensions/twitch/package.json +1 -1
  350. package/extensions/voice-call/CHANGELOG.md +6 -0
  351. package/extensions/voice-call/package.json +1 -1
  352. package/extensions/whatsapp/package.json +1 -1
  353. package/extensions/zalo/CHANGELOG.md +6 -0
  354. package/extensions/zalo/package.json +1 -1
  355. package/extensions/zalouser/CHANGELOG.md +6 -0
  356. package/extensions/zalouser/package.json +1 -1
  357. package/package.json +1 -1
  358. package/skills/1password/SKILL.md +1 -0
  359. package/skills/apple-notes/SKILL.md +1 -0
  360. package/skills/apple-reminders/SKILL.md +1 -0
  361. package/skills/bear-notes/SKILL.md +1 -0
  362. package/skills/blogwatcher/SKILL.md +1 -0
  363. package/skills/blucli/SKILL.md +1 -0
  364. package/skills/bluebubbles/SKILL.md +1 -0
  365. package/skills/camsnap/SKILL.md +1 -0
  366. package/skills/canvas/SKILL.md +6 -0
  367. package/skills/coding-agent/SKILL.md +1 -0
  368. package/skills/connect-email/SKILL.md +1 -0
  369. package/skills/discord/SKILL.md +1 -0
  370. package/skills/eightctl/SKILL.md +1 -0
  371. package/skills/food-order/SKILL.md +1 -0
  372. package/skills/gemini/SKILL.md +1 -0
  373. package/skills/gh-issues/SKILL.md +1 -0
  374. package/skills/gifgrep/SKILL.md +1 -0
  375. package/skills/github/SKILL.md +1 -0
  376. package/skills/gog/SKILL.md +1 -0
  377. package/skills/goplaces/SKILL.md +1 -0
  378. package/skills/healthcheck/SKILL.md +1 -0
  379. package/skills/himalaya/SKILL.md +1 -0
  380. package/skills/imsg/SKILL.md +1 -0
  381. package/skills/long-task/SKILL.md +1 -0
  382. package/skills/mcporter/SKILL.md +1 -0
  383. package/skills/model-usage/SKILL.md +1 -0
  384. package/skills/nano-banana-pro/SKILL.md +1 -0
  385. package/skills/nano-pdf/SKILL.md +1 -0
  386. package/skills/notion/SKILL.md +1 -0
  387. package/skills/obsidian/SKILL.md +1 -0
  388. package/skills/openai-image-gen/SKILL.md +1 -0
  389. package/skills/openai-whisper/SKILL.md +1 -0
  390. package/skills/openai-whisper-api/SKILL.md +1 -0
  391. package/skills/openhue/SKILL.md +1 -0
  392. package/skills/oracle/SKILL.md +1 -0
  393. package/skills/ordercli/SKILL.md +1 -0
  394. package/skills/peekaboo/SKILL.md +1 -0
  395. package/skills/sag/SKILL.md +1 -0
  396. package/skills/session-logs/SKILL.md +1 -0
  397. package/skills/sherpa-onnx-tts/SKILL.md +1 -0
  398. package/skills/skill-creator/SKILL.md +1 -0
  399. package/skills/slack/SKILL.md +1 -0
  400. package/skills/songsee/SKILL.md +1 -0
  401. package/skills/sonoscli/SKILL.md +1 -0
  402. package/skills/spotify-player/SKILL.md +1 -0
  403. package/skills/summarize/SKILL.md +1 -0
  404. package/skills/symihub/SKILL.md +1 -0
  405. package/skills/things-mac/SKILL.md +1 -0
  406. package/skills/tmux/SKILL.md +1 -0
  407. package/skills/trello/SKILL.md +1 -0
  408. package/skills/video-frames/SKILL.md +1 -0
  409. package/skills/voice-call/SKILL.md +1 -0
  410. package/skills/wacli/SKILL.md +1 -0
  411. package/skills/weather/SKILL.md +1 -0
  412. package/skills/xurl/SKILL.md +1 -0
@@ -12,21 +12,21 @@ import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY
12
12
  import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTelegramAccountIds, d as resolveSlackAccount, g as listEnabledDiscordAccounts, h as createDiscordActionGate, i as isWhatsAppGroupJid, l as resolveTelegramAccount, m as resolveSlackBotToken, n as listChannelPlugins, o as createTelegramActionGate, p as resolveSlackAppToken, r as normalizeChannelId$1, s as listEnabledTelegramAccounts, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeDiscordToken } from "./plugins-71oIavrF.js";
13
13
  import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-DDEyGwby.js";
14
14
  import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
15
- import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-vmIzYMwN.js";
16
- import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-CfejAK2u.js";
17
- import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver--ff__Iq0.js";
15
+ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-F2Cpm-SJ.js";
16
+ import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-D27q8Oqo.js";
17
+ import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-XYF4JahT.js";
18
18
  import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-Kbl70eCP.js";
19
19
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-C1vRJs5w.js";
20
20
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-8zZqL37v.js";
21
- import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-_CmB6CKB.js";
21
+ import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-depbZ9aA.js";
22
22
  import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-ByaQt43P.js";
23
23
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-j5tVLINv.js";
24
24
  import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-BQINJQIT.js";
25
- import { $ as mergeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as deliveryContextKey, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-BPP4adeW.js";
26
- import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-CbBZUq-Q.js";
25
+ import { $ as mergeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as deliveryContextKey, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-DuZtk5SK.js";
26
+ import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-D7Zr88dI.js";
27
27
  import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-DWdYdchb.js";
28
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-t-stBgN6.js";
29
- import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-XEbTRNYL.js";
28
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-B-hW5hrK.js";
29
+ import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, h as parseFrontmatterBlock, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-D0hfZgFz.js";
30
30
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-CPfngF0S.js";
31
31
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
32
32
  import { n as getMediaDir, r as saveMediaBuffer } from "./store-bnzGvI16.js";
@@ -36,8 +36,8 @@ import { t as resolveIMessageAccount } from "./accounts-DImOt9jX.js";
36
36
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-DkMamAQ-.js";
37
37
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-C8Tqw4td.js";
38
38
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-ChC2CXaN.js";
39
- import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-D5bsPk2_.js";
40
- import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-CztTHQhN.js";
39
+ import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-BjyeKf1c.js";
40
+ import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-CLPHK-qG.js";
41
41
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-479FB0St.js";
42
42
  import { n as retryAsync } from "./retry-QGp0jvVi.js";
43
43
  import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-Dm716SF3.js";
@@ -47,20 +47,20 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-DwuL
47
47
  import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-BuSWcEvl.js";
48
48
  import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-0kwEfxD4.js";
49
49
  import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-ke7KirEH.js";
50
- import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-CSF7Poen.js";
50
+ import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-QmLQo8Tj.js";
51
51
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CgGv6nTy.js";
52
- import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-B_6xBcPB.js";
52
+ import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-Dbs3i8HW.js";
53
53
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-WLZaC77l.js";
54
54
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-BaoETsQI.js";
55
55
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-C-6tM-GK.js";
56
56
  import { n as normalizePollInput } from "./polls-Coxe0Akm.js";
57
57
  import { t as convertMarkdownTables } from "./tables-BE0lT1IV.js";
58
- import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-dohExhb8.js";
59
- import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-C6-rN_Li.js";
58
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-Dj6_LS_W.js";
59
+ import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-B0szkIfv.js";
60
60
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Dd2_hyM2.js";
61
61
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-CFRe6XNa.js";
62
62
  import { t as makeProxyFetch } from "./proxy-DaT-KQ7w.js";
63
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-BV7oFP7Z.js";
63
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-Dmo0pSSf.js";
64
64
  import { t as getActiveWebListener } from "./active-listener-OKZn7EWc.js";
65
65
  import { createRequire } from "node:module";
66
66
  import * as path$1 from "node:path";
@@ -3473,7 +3473,7 @@ async function getMemorySearchManager(params) {
3473
3473
  const wrapper = new FallbackMemoryManager({
3474
3474
  primary,
3475
3475
  fallbackFactory: async () => {
3476
- const { MemoryIndexManager } = await import("./manager-CztTHQhN.js").then((n) => n.n);
3476
+ const { MemoryIndexManager } = await import("./manager-CLPHK-qG.js").then((n) => n.n);
3477
3477
  return await MemoryIndexManager.get(params);
3478
3478
  }
3479
3479
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -3486,7 +3486,7 @@ async function getMemorySearchManager(params) {
3486
3486
  }
3487
3487
  }
3488
3488
  try {
3489
- const { MemoryIndexManager } = await import("./manager-CztTHQhN.js").then((n) => n.n);
3489
+ const { MemoryIndexManager } = await import("./manager-CLPHK-qG.js").then((n) => n.n);
3490
3490
  return { manager: await MemoryIndexManager.get(params) };
3491
3491
  } catch (err) {
3492
3492
  return {
@@ -7367,7 +7367,7 @@ async function routeReply(params) {
7367
7367
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
7368
7368
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
7369
7369
  try {
7370
- const { deliverOutboundPayloads } = await import("./deliver--ff__Iq0.js").then((n) => n.n);
7370
+ const { deliverOutboundPayloads } = await import("./deliver-XYF4JahT.js").then((n) => n.n);
7371
7371
  return {
7372
7372
  ok: true,
7373
7373
  messageId: (await deliverOutboundPayloads({
@@ -36293,6 +36293,231 @@ function createSessionsSpawnTool(opts) {
36293
36293
  };
36294
36294
  }
36295
36295
 
36296
+ //#endregion
36297
+ //#region src/agents/skills/triggers.ts
36298
+ const QUOTE_RE = /^["'`](.*)["'`]$/;
36299
+ const ARRAY_FORM_RE = /^\[(.*)\]$/s;
36300
+ function stripWrappingQuotes(s) {
36301
+ const m = s.trim().match(QUOTE_RE);
36302
+ return m ? m[1] : s.trim();
36303
+ }
36304
+ /** Parse a single trigger value, dropping empty / whitespace-only entries. */
36305
+ function cleanTrigger(raw) {
36306
+ const trimmed = stripWrappingQuotes(raw).toLowerCase();
36307
+ return trimmed.length > 0 ? trimmed : null;
36308
+ }
36309
+ /**
36310
+ * Parse the value of a `triggers:` frontmatter field into a string[].
36311
+ * Accepts both inline-array form `[a, b, "c d"]` and YAML-list form
36312
+ * (multiline with leading hyphens). Returns deduped lowercased trigger
36313
+ * strings, or empty array on unparseable / missing input.
36314
+ */
36315
+ function parseTriggersValue(raw) {
36316
+ if (typeof raw !== "string") return [];
36317
+ const trimmed = raw.trim();
36318
+ if (!trimmed) return [];
36319
+ const items = [];
36320
+ const arrayMatch = trimmed.match(ARRAY_FORM_RE);
36321
+ if (arrayMatch) {
36322
+ const inner = arrayMatch[1];
36323
+ let buf = "";
36324
+ let inQuote = null;
36325
+ for (const ch of inner) {
36326
+ if (inQuote) {
36327
+ if (ch === inQuote) inQuote = null;
36328
+ else buf += ch;
36329
+ continue;
36330
+ }
36331
+ if (ch === "\"" || ch === "'") {
36332
+ inQuote = ch;
36333
+ continue;
36334
+ }
36335
+ if (ch === ",") {
36336
+ const cleaned = cleanTrigger(buf);
36337
+ if (cleaned) items.push(cleaned);
36338
+ buf = "";
36339
+ continue;
36340
+ }
36341
+ buf += ch;
36342
+ }
36343
+ const cleaned = cleanTrigger(buf);
36344
+ if (cleaned) items.push(cleaned);
36345
+ } else for (const line of trimmed.split("\n")) {
36346
+ const ltrim = line.trimStart();
36347
+ if (ltrim.startsWith("- ")) {
36348
+ const cleaned = cleanTrigger(ltrim.slice(2));
36349
+ if (cleaned) items.push(cleaned);
36350
+ } else if (ltrim && !ltrim.startsWith("#")) {
36351
+ const cleaned = cleanTrigger(ltrim);
36352
+ if (cleaned) items.push(cleaned);
36353
+ }
36354
+ }
36355
+ const seen = /* @__PURE__ */ new Set();
36356
+ const out = [];
36357
+ for (const t of items) if (!seen.has(t)) {
36358
+ seen.add(t);
36359
+ out.push(t);
36360
+ }
36361
+ return out;
36362
+ }
36363
+ /**
36364
+ * Extract triggers from a parsed frontmatter record. Returns empty array
36365
+ * when the field is absent or unparseable.
36366
+ */
36367
+ function getSkillTriggers(frontmatter) {
36368
+ return parseTriggersValue(frontmatter.triggers);
36369
+ }
36370
+
36371
+ //#endregion
36372
+ //#region src/agents/tools/skill-search-tool.ts
36373
+ const SkillSearchToolSchema = Type.Object({
36374
+ query: Type.String({
36375
+ minLength: 1,
36376
+ description: "Intent description (2-8 words). Match by trigger keywords first, then description text."
36377
+ }),
36378
+ limit: Type.Optional(Type.Number({
36379
+ minimum: 1,
36380
+ maximum: 10,
36381
+ description: "Max results to return (default 5, capped at 10)."
36382
+ }))
36383
+ });
36384
+ const CACHE_TTL_MS = 6e4;
36385
+ const SAFE_NAME_RE = /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/;
36386
+ function loadSkillFromDir(dir, source) {
36387
+ const name = path.basename(dir);
36388
+ if (!SAFE_NAME_RE.test(name)) return null;
36389
+ const file = path.join(dir, "SKILL.md");
36390
+ let raw;
36391
+ try {
36392
+ if (!fs.statSync(file).isFile()) return null;
36393
+ raw = fs.readFileSync(file, "utf8");
36394
+ } catch {
36395
+ return null;
36396
+ }
36397
+ const fm = parseFrontmatterBlock(raw);
36398
+ return {
36399
+ name,
36400
+ description: (fm.description ?? "").trim(),
36401
+ path: file,
36402
+ triggers: getSkillTriggers(fm),
36403
+ source
36404
+ };
36405
+ }
36406
+ function listSkillDirs(root) {
36407
+ const skillsDir = path.join(root, "skills");
36408
+ let entries;
36409
+ try {
36410
+ entries = fs.readdirSync(skillsDir, { withFileTypes: true });
36411
+ } catch {
36412
+ return [];
36413
+ }
36414
+ return entries.filter((e) => e.isDirectory()).map((e) => path.join(skillsDir, e.name));
36415
+ }
36416
+ let cachedPackageRoot$1;
36417
+ const cachePerWorkspace = /* @__PURE__ */ new Map();
36418
+ function getPackageRoot$1() {
36419
+ if (cachedPackageRoot$1 === void 0) cachedPackageRoot$1 = resolveSymiPackageRootSync({});
36420
+ return cachedPackageRoot$1;
36421
+ }
36422
+ function loadAllSkills(workspaceDir) {
36423
+ const cacheKey = workspaceDir ?? "";
36424
+ const now = Date.now();
36425
+ const existing = cachePerWorkspace.get(cacheKey);
36426
+ if (existing && now - existing.loadedAt < CACHE_TTL_MS) return existing.skills;
36427
+ const seen = /* @__PURE__ */ new Map();
36428
+ if (workspaceDir) for (const dir of listSkillDirs(workspaceDir)) {
36429
+ const skill = loadSkillFromDir(dir, "workspace");
36430
+ if (skill && !seen.has(skill.name)) seen.set(skill.name, skill);
36431
+ }
36432
+ const packageRoot = getPackageRoot$1();
36433
+ if (packageRoot) for (const dir of listSkillDirs(packageRoot)) {
36434
+ const skill = loadSkillFromDir(dir, "bundled");
36435
+ if (skill && !seen.has(skill.name)) seen.set(skill.name, skill);
36436
+ }
36437
+ const skills = [...seen.values()];
36438
+ cachePerWorkspace.set(cacheKey, {
36439
+ skills,
36440
+ loadedAt: now
36441
+ });
36442
+ return skills;
36443
+ }
36444
+ const TOKEN_SPLIT_RE = /[^\w/]+/;
36445
+ function tokenizeQuery(raw) {
36446
+ return raw.toLowerCase().split(TOKEN_SPLIT_RE).filter((t) => t.length >= 2);
36447
+ }
36448
+ /**
36449
+ * Score a query against one skill's triggers + description.
36450
+ * - Trigger score: ratio of query tokens that appear in the trigger set.
36451
+ * - FTS score: 0.4 × ratio of query tokens that appear in the description
36452
+ * (case-insensitive substring match).
36453
+ * - Final = max(trigger, fts) so trigger matches always beat descriptions.
36454
+ * - Returns 0 for "no signal at all" (caller should drop these).
36455
+ */
36456
+ function scoreSkillMatch(skill, queryTokens) {
36457
+ if (queryTokens.length === 0) return 0;
36458
+ const triggerSet = new Set(skill.triggers.map((t) => t.toLowerCase()));
36459
+ const description = skill.description.toLowerCase();
36460
+ let triggerHits = 0;
36461
+ let ftsHits = 0;
36462
+ for (const token of queryTokens) if (triggerSet.has(token)) triggerHits += 1;
36463
+ else if (description.includes(token)) ftsHits += 1;
36464
+ const triggerScore = triggerHits / queryTokens.length;
36465
+ const ftsScore = ftsHits / queryTokens.length * .4;
36466
+ return Math.max(triggerScore, ftsScore);
36467
+ }
36468
+ /**
36469
+ * Pure-function search; exported for testing without going through the
36470
+ * tool execute wrapper.
36471
+ */
36472
+ function searchSkills(query, limit, workspaceDir) {
36473
+ const tokens = tokenizeQuery(query);
36474
+ if (tokens.length === 0) return [];
36475
+ const all = loadAllSkills(workspaceDir);
36476
+ const scored = [];
36477
+ for (const skill of all) {
36478
+ const score = scoreSkillMatch(skill, tokens);
36479
+ if (score > 0) scored.push({
36480
+ name: skill.name,
36481
+ description: skill.description,
36482
+ path: skill.path,
36483
+ score
36484
+ });
36485
+ }
36486
+ scored.sort((a, b) => b.score - a.score || a.name.localeCompare(b.name));
36487
+ return scored.slice(0, limit);
36488
+ }
36489
+ function createSkillSearchTool(opts) {
36490
+ return {
36491
+ name: "skill_search",
36492
+ label: "skill_search",
36493
+ description: "Find skills relevant to the current task. Returns matching skills with name/description/path; `read` the SKILL.md to apply. Call before non-trivial tool work — search by intent ('connect email', 'long task') not tool name.",
36494
+ parameters: SkillSearchToolSchema,
36495
+ execute: async (_toolCallId, args) => {
36496
+ const params = args;
36497
+ const query = typeof params.query === "string" ? params.query.trim() : "";
36498
+ if (!query) return jsonResult({
36499
+ ok: false,
36500
+ error: "skill_search requires a non-empty `query` string."
36501
+ });
36502
+ const limit = typeof params.limit === "number" && Number.isFinite(params.limit) ? Math.min(10, Math.max(1, Math.floor(params.limit))) : 5;
36503
+ try {
36504
+ return jsonResult({
36505
+ ok: true,
36506
+ query,
36507
+ matches: searchSkills(query, limit, opts?.workspaceDir)
36508
+ });
36509
+ } catch (err) {
36510
+ const message = err instanceof Error ? err.message : String(err);
36511
+ logWarn(`skill_search failed: ${message}`);
36512
+ return jsonResult({
36513
+ ok: false,
36514
+ error: message
36515
+ });
36516
+ }
36517
+ }
36518
+ };
36519
+ }
36520
+
36296
36521
  //#endregion
36297
36522
  //#region src/agents/tools/subagents-tool.ts
36298
36523
  const SUBAGENT_ACTIONS = [
@@ -38353,6 +38578,7 @@ function createSymiTools(options) {
38353
38578
  createCronTool({ agentSessionKey: options?.agentSessionKey }),
38354
38579
  createTaskListTool({ workspaceDir }),
38355
38580
  createTaskCancelTool({ workspaceDir }),
38581
+ createSkillSearchTool({ workspaceDir }),
38356
38582
  ...messageTool ? [messageTool] : [],
38357
38583
  createTtsTool({
38358
38584
  agentChannel: options?.agentChannel,
@@ -46454,6 +46680,71 @@ function buildAutoLoadedSkillsBlock(opts) {
46454
46680
  ].join("\n");
46455
46681
  }
46456
46682
 
46683
+ //#endregion
46684
+ //#region src/agents/system-prompt-skills-jit.ts
46685
+ const MAX_ANCHOR_DESCRIPTION_CHARS = 100;
46686
+ const MAX_AUTO_INJECT_RESULTS = 3;
46687
+ const MAX_AUTO_INJECT_TOTAL_CHARS = 600;
46688
+ /**
46689
+ * Build the anchor list block. Returns "" when no anchor list configured
46690
+ * or in preload mode (anchor list adds value only in jit/hybrid).
46691
+ */
46692
+ function buildAnchorListBlock(opts) {
46693
+ if (opts.minimalMode) return "";
46694
+ if (opts.discoveryMode !== "jit" && opts.discoveryMode !== "hybrid") return "";
46695
+ const names = (opts.anchorList ?? []).filter((n) => typeof n === "string" && n.trim().length > 0);
46696
+ if (names.length === 0) return "";
46697
+ const lines = [];
46698
+ for (const name of names) {
46699
+ const description = searchSkills(name, 1, opts.workspaceDir)[0]?.description.trim() ?? "";
46700
+ const truncated = description.length > MAX_ANCHOR_DESCRIPTION_CHARS ? `${description.slice(0, MAX_ANCHOR_DESCRIPTION_CHARS - 1)}…` : description;
46701
+ lines.push(truncated ? `- ${name}: ${truncated}` : `- ${name}`);
46702
+ }
46703
+ return [
46704
+ "",
46705
+ "## Anchor Skills",
46706
+ "These skills are always available. Read their SKILL.md via `read` if relevant. For full discovery use the `skill_search` tool.",
46707
+ lines.join("\n"),
46708
+ ""
46709
+ ].join("\n");
46710
+ }
46711
+ /**
46712
+ * Build the auto-injected matches block based on the user message triggers.
46713
+ * Returns "" when discoveryMode doesn't ask for it, no message available,
46714
+ * no matches found, or in minimal mode.
46715
+ */
46716
+ function buildAutoInjectBlock(opts) {
46717
+ if (opts.minimalMode) return "";
46718
+ if (opts.discoveryMode !== "jit" && opts.discoveryMode !== "hybrid") return "";
46719
+ const message = (opts.userMessage ?? "").trim();
46720
+ if (!message) return "";
46721
+ const matches = searchSkills(message, MAX_AUTO_INJECT_RESULTS, opts.workspaceDir);
46722
+ if (matches.length === 0) return "";
46723
+ const lines = [];
46724
+ let total = 0;
46725
+ for (const match of matches) {
46726
+ const description = match.description.trim();
46727
+ const truncated = description.length > MAX_ANCHOR_DESCRIPTION_CHARS ? `${description.slice(0, MAX_ANCHOR_DESCRIPTION_CHARS - 1)}…` : description;
46728
+ const skillRef = path.basename(path.dirname(match.path));
46729
+ const line = truncated ? `- ${skillRef}: ${truncated}` : `- ${skillRef}`;
46730
+ if (total + line.length > MAX_AUTO_INJECT_TOTAL_CHARS) break;
46731
+ lines.push(line);
46732
+ total += line.length + 1;
46733
+ }
46734
+ if (lines.length === 0) return "";
46735
+ return [
46736
+ "",
46737
+ "## Possibly Relevant Skills (auto-suggested for this request)",
46738
+ "These skills' triggers matched keywords in your message. Read the SKILL.md if it applies; otherwise ignore and proceed.",
46739
+ lines.join("\n"),
46740
+ ""
46741
+ ].join("\n");
46742
+ }
46743
+ /** Convenience: build both blocks concatenated. */
46744
+ function buildSkillsJitBlocks(opts) {
46745
+ return `${buildAnchorListBlock(opts)}${buildAutoInjectBlock(opts)}`;
46746
+ }
46747
+
46457
46748
  //#endregion
46458
46749
  //#region src/agents/pi-embedded-runner/system-prompt.ts
46459
46750
  function buildEmbeddedSystemPrompt(params) {
@@ -46487,12 +46778,17 @@ function buildEmbeddedSystemPrompt(params) {
46487
46778
  });
46488
46779
  const promptMode = params.promptMode ?? "full";
46489
46780
  const isMinimal = promptMode === "minimal" || promptMode === "none";
46490
- const skillsBlock = buildAutoLoadedSkillsBlock({
46781
+ return `${corePrompt}${buildAutoLoadedSkillsBlock({
46491
46782
  skillNames: params.autoLoadInlineSkills ?? [],
46492
46783
  workspaceDir: params.workspaceDir,
46493
46784
  minimalMode: isMinimal
46494
- });
46495
- return skillsBlock ? `${corePrompt}${skillsBlock}` : corePrompt;
46785
+ })}${buildSkillsJitBlocks({
46786
+ discoveryMode: params.skillsDiscoveryMode,
46787
+ anchorList: params.skillsAnchorList,
46788
+ userMessage: params.currentUserMessage,
46789
+ workspaceDir: params.workspaceDir,
46790
+ minimalMode: isMinimal
46791
+ })}`;
46496
46792
  }
46497
46793
  function createSystemPromptOverride(systemPrompt) {
46498
46794
  const override = systemPrompt.trim();
@@ -47281,7 +47577,10 @@ async function runEmbeddedAttempt(params) {
47281
47577
  userTimeFormat,
47282
47578
  contextFiles,
47283
47579
  memoryCitationsMode: params.config?.memory?.citations,
47284
- autoLoadInlineSkills: params.config?.skills?.autoLoadInline
47580
+ autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
47581
+ skillsDiscoveryMode: params.config?.skills?.discoveryMode,
47582
+ skillsAnchorList: params.config?.skills?.anchorList,
47583
+ currentUserMessage: params.prompt
47285
47584
  });
47286
47585
  const systemPromptReport = buildSystemPromptReport({
47287
47586
  source: "run",
@@ -51764,7 +52063,7 @@ async function deliverSessionMaintenanceWarning(params) {
51764
52063
  return;
51765
52064
  }
51766
52065
  try {
51767
- const { deliverOutboundPayloads } = await import("./deliver--ff__Iq0.js").then((n) => n.n);
52066
+ const { deliverOutboundPayloads } = await import("./deliver-XYF4JahT.js").then((n) => n.n);
51768
52067
  await deliverOutboundPayloads({
51769
52068
  cfg: params.cfg,
51770
52069
  channel,
@@ -55210,7 +55509,7 @@ async function describeStickerImage(params) {
55210
55509
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
55211
55510
  try {
55212
55511
  const buffer = await fs$1.readFile(imagePath);
55213
- const { describeImageWithModel } = await import("./image-D5bsPk2_.js").then((n) => n.n);
55512
+ const { describeImageWithModel } = await import("./image-BjyeKf1c.js").then((n) => n.n);
55214
55513
  return (await describeImageWithModel({
55215
55514
  buffer,
55216
55515
  fileName: "sticker.webp",
@@ -55633,7 +55932,7 @@ function createWhatsAppLoginTool() {
55633
55932
  force: Type.Optional(Type.Boolean())
55634
55933
  }),
55635
55934
  execute: async (_toolCallId, args) => {
55636
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-BBrzemk7.js");
55935
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CZXIrzvh.js");
55637
55936
  if ((args?.action ?? "start") === "wait") {
55638
55937
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
55639
55938
  return {
@@ -57959,7 +58258,7 @@ async function preflightDiscordMessage(params) {
57959
58258
  let preflightTranscript;
57960
58259
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
57961
58260
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
57962
- const { transcribeFirstAudio } = await import("./audio-preflight-CMutcMs5.js");
58261
+ const { transcribeFirstAudio } = await import("./audio-preflight-Dtsvq6Hj.js");
57963
58262
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
57964
58263
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
57965
58264
  ctx: {
@@ -61742,27 +62041,27 @@ function isVoiceChannelType(type) {
61742
62041
  function createDefaultDeps() {
61743
62042
  return {
61744
62043
  sendMessageWhatsApp: async (...args) => {
61745
- const { sendMessageWhatsApp } = await import("./web-B8GaP73t.js");
62044
+ const { sendMessageWhatsApp } = await import("./web-CIj8erCe.js");
61746
62045
  return await sendMessageWhatsApp(...args);
61747
62046
  },
61748
62047
  sendMessageTelegram: async (...args) => {
61749
- const { sendMessageTelegram } = await import("./send-_CmB6CKB.js").then((n) => n.l);
62048
+ const { sendMessageTelegram } = await import("./send-depbZ9aA.js").then((n) => n.l);
61750
62049
  return await sendMessageTelegram(...args);
61751
62050
  },
61752
62051
  sendMessageDiscord: async (...args) => {
61753
- const { sendMessageDiscord } = await import("./send-CfejAK2u.js").then((n) => n.t);
62052
+ const { sendMessageDiscord } = await import("./send-D27q8Oqo.js").then((n) => n.t);
61754
62053
  return await sendMessageDiscord(...args);
61755
62054
  },
61756
62055
  sendMessageSlack: async (...args) => {
61757
- const { sendMessageSlack } = await import("./send-vmIzYMwN.js").then((n) => n.n);
62056
+ const { sendMessageSlack } = await import("./send-F2Cpm-SJ.js").then((n) => n.n);
61758
62057
  return await sendMessageSlack(...args);
61759
62058
  },
61760
62059
  sendMessageSignal: async (...args) => {
61761
- const { sendMessageSignal } = await import("./send-dohExhb8.js").then((n) => n.i);
62060
+ const { sendMessageSignal } = await import("./send-Dj6_LS_W.js").then((n) => n.i);
61762
62061
  return await sendMessageSignal(...args);
61763
62062
  },
61764
62063
  sendMessageIMessage: async (...args) => {
61765
- const { sendMessageIMessage } = await import("./send-C6-rN_Li.js").then((n) => n.n);
62064
+ const { sendMessageIMessage } = await import("./send-B0szkIfv.js").then((n) => n.n);
61766
62065
  return await sendMessageIMessage(...args);
61767
62066
  }
61768
62067
  };
@@ -72592,7 +72891,7 @@ async function registerSlackMonitorSlashCommands(params) {
72592
72891
  });
72593
72892
  const deliverSlashPayloads = async (replies) => {
72594
72893
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
72595
- import("./replies-BV7oFP7Z.js").then((n) => n.r),
72894
+ import("./replies-Dmo0pSSf.js").then((n) => n.r),
72596
72895
  import("./chunk-Bk95VMr4.js").then((n) => n.s),
72597
72896
  import("./markdown-tables-XmEPv2t0.js").then((n) => n.t)
72598
72897
  ]);
@@ -72647,7 +72946,7 @@ async function registerSlackMonitorSlashCommands(params) {
72647
72946
  let nativeCommands = [];
72648
72947
  if (nativeEnabled) {
72649
72948
  reg = await getCommandsRegistry();
72650
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-CSF7Poen.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
72949
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-QmLQo8Tj.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
72651
72950
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
72652
72951
  skillCommands,
72653
72952
  provider: "slack"
@@ -74865,7 +75164,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
74865
75164
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
74866
75165
  let preflightTranscript;
74867
75166
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
74868
- const { transcribeFirstAudio } = await import("./audio-preflight-CMutcMs5.js");
75167
+ const { transcribeFirstAudio } = await import("./audio-preflight-Dtsvq6Hj.js");
74869
75168
  preflightTranscript = await transcribeFirstAudio({
74870
75169
  ctx: {
74871
75170
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -77010,23 +77309,23 @@ let webLoginQrPromise = null;
77010
77309
  let webChannelPromise = null;
77011
77310
  let whatsappActionsPromise = null;
77012
77311
  function loadWebOutbound() {
77013
- webOutboundPromise ??= import("./outbound-CLCy4Nsg.js").then((n) => n.t);
77312
+ webOutboundPromise ??= import("./outbound-BD7PNRhC.js").then((n) => n.t);
77014
77313
  return webOutboundPromise;
77015
77314
  }
77016
77315
  function loadWebLogin() {
77017
- webLoginPromise ??= import("./login-B7OJui4y.js").then((n) => n.n);
77316
+ webLoginPromise ??= import("./login-Cv_LYGzG.js").then((n) => n.n);
77018
77317
  return webLoginPromise;
77019
77318
  }
77020
77319
  function loadWebLoginQr() {
77021
- webLoginQrPromise ??= import("./login-qr-BBrzemk7.js");
77320
+ webLoginQrPromise ??= import("./login-qr-CZXIrzvh.js");
77022
77321
  return webLoginQrPromise;
77023
77322
  }
77024
77323
  function loadWebChannel() {
77025
- webChannelPromise ??= import("./web-B8GaP73t.js");
77324
+ webChannelPromise ??= import("./web-CIj8erCe.js");
77026
77325
  return webChannelPromise;
77027
77326
  }
77028
77327
  function loadWhatsAppActions() {
77029
- whatsappActionsPromise ??= import("./whatsapp-actions-BV4mjN5j.js");
77328
+ whatsappActionsPromise ??= import("./whatsapp-actions-CkT3dnmD.js");
77030
77329
  return whatsappActionsPromise;
77031
77330
  }
77032
77331
  function createPluginRuntime() {
@@ -79709,7 +80008,10 @@ async function compactEmbeddedPiSessionDirect(params) {
79709
80008
  userTimeFormat,
79710
80009
  contextFiles,
79711
80010
  memoryCitationsMode: params.config?.memory?.citations,
79712
- autoLoadInlineSkills: params.config?.skills?.autoLoadInline
80011
+ autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
80012
+ skillsDiscoveryMode: params.config?.skills?.discoveryMode,
80013
+ skillsAnchorList: params.config?.skills?.anchorList,
80014
+ currentUserMessage: void 0
79713
80015
  }));
79714
80016
  const sessionLock = await acquireSessionWriteLock({
79715
80017
  sessionFile: params.sessionFile,
@@ -8,8 +8,8 @@ import { a as resolveSessionTranscriptPathInDir, i as resolveSessionTranscriptPa
8
8
  import { h as isPidAlive, m as resolveProcessScopedMap } from "./auth-profiles-C2vj6htZ.js";
9
9
  import { n as formatCliCommand } from "./env-BDXYbTKj.js";
10
10
  import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
11
- import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-BXMAsmut.js";
12
- import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-B1zznUiv.js";
11
+ import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-Do4JxgLI.js";
12
+ import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-BaMQiegP.js";
13
13
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-CXxrn_e2.js";
14
14
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-XIsvXeC-.js";
15
15
  import { b as openFileWithinRoot, i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS, y as SafeOpenError } from "./image-ops-C7CauEK8.js";
@@ -940,7 +940,7 @@ function isModuleNotFoundError(err) {
940
940
  }
941
941
  async function loadPwAiModule(mode) {
942
942
  try {
943
- return await import("./pw-ai-Bpp0J0PM.js");
943
+ return await import("./pw-ai-BlWK9Tr3.js");
944
944
  } catch (err) {
945
945
  if (mode === "soft") return null;
946
946
  if (isModuleNotFoundError(err)) return null;
@@ -3480,11 +3480,11 @@ function createProfileContext(opts, profile) {
3480
3480
  const userDataDir = resolveSymiUserDataDir(profile.name);
3481
3481
  const profileState = getProfileState();
3482
3482
  if (await isHttpReachable(300) && !profileState.running) try {
3483
- await (await import("./pw-ai-Bpp0J0PM.js")).closePlaywrightBrowserConnection();
3483
+ await (await import("./pw-ai-BlWK9Tr3.js")).closePlaywrightBrowserConnection();
3484
3484
  } catch {}
3485
3485
  if (profileState.running) await stopRunningBrowser();
3486
3486
  try {
3487
- await (await import("./pw-ai-Bpp0J0PM.js")).closePlaywrightBrowserConnection();
3487
+ await (await import("./pw-ai-BlWK9Tr3.js")).closePlaywrightBrowserConnection();
3488
3488
  } catch {}
3489
3489
  if (!fs.existsSync(userDataDir)) return {
3490
3490
  moved: false,