@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
@@ -11,32 +11,33 @@ import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-po
11
11
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-CnvkCEt-.js";
12
12
  import { a as buildModelAliasLines, n as resolveModel } from "./model-yI45t1OQ.js";
13
13
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Do3xMEtM.js";
14
+ import { l as parseFrontmatterBlock } from "./frontmatter-B8duUx_6.js";
14
15
  import { r as isPathInsideWithRealpath } from "./scan-paths-ppKrtZ9U.js";
15
16
  import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-D_oCiaQn.js";
16
17
  import { a as safeStatSync, c as applyTestPluginDefaults, d as resolveEnableState, f as resolveMemorySlotDecision, h as isDangerousHostEnvVarName, i as isPathInside, n as loadPluginManifestRegistry, r as discoverSymiPlugins, u as normalizePluginsConfig } from "./manifest-registry-D5bnO5uA.js";
17
- import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-DE6JXMtt.js";
18
+ import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-Gfhqs66L.js";
18
19
  import { Rt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-CJIMV1WD.js";
19
- import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-X_vwo309.js";
20
+ import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-BCTAmPye.js";
20
21
  import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-C9dERklz.js";
21
22
  import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-D0lNkCf6.js";
22
- import { A as DEFAULT_RESET_TRIGGERS, B as resolveGroupSessionKey, D as resolveSessionResetPolicy, E as resolveChannelResetConfig, F as resolveMainSessionKey, G as deliveryContextKey, J as normalizeSessionDeliveryFields, K as mergeDeliveryContext, L as deriveSessionMetaPatch, O as resolveSessionResetType, P as resolveExplicitAgentSessionKey, T as evaluateSessionFreshness, U as resolveSessionLockMaxHoldFromTimeout, V as acquireSessionWriteLock, W as deliveryContextFromSession, Y as normalizeAccountId$3, _ as capArrayByJsonBytes, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as archiveSessionTranscripts, j as resolveFreshSessionTotalTokens, k as resolveThreadFlag, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as normalizeDeliveryContext, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, w as resolveSessionKey } from "./sessions-DCr5nAOw.js";
23
+ import { A as DEFAULT_RESET_TRIGGERS, B as resolveGroupSessionKey, D as resolveSessionResetPolicy, E as resolveChannelResetConfig, F as resolveMainSessionKey, G as deliveryContextKey, J as normalizeSessionDeliveryFields, K as mergeDeliveryContext, L as deriveSessionMetaPatch, O as resolveSessionResetType, P as resolveExplicitAgentSessionKey, T as evaluateSessionFreshness, U as resolveSessionLockMaxHoldFromTimeout, V as acquireSessionWriteLock, W as deliveryContextFromSession, Y as normalizeAccountId$3, _ as capArrayByJsonBytes, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as archiveSessionTranscripts, j as resolveFreshSessionTotalTokens, k as resolveThreadFlag, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as normalizeDeliveryContext, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, w as resolveSessionKey } from "./sessions-CpDbQNFu.js";
23
24
  import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-Csntmwwn.js";
24
25
  import { _ as listEnabledDiscordAccounts, a as isWhatsAppGroupJid, c as listEnabledTelegramAccounts, d as resolveTelegramToken, f as resolveSlackAccount, g as createDiscordActionGate, h as resolveSlackBotToken, l as listTelegramAccountIds, m as resolveSlackAppToken, n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId$1, s as createTelegramActionGate, t as getChannelPlugin, u as resolveTelegramAccount, v as resolveDiscordAccount, y as normalizeDiscordToken } from "./plugins-CwSlLxM8.js";
25
26
  import { a as logWebSelfId, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, u as readWebSelfId } from "./accounts-D9ITgITj.js";
26
27
  import { t as normalizeChatType } from "./chat-type-CeFzWU-6.js";
27
- 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-CoSPwGiI.js";
28
- 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-CcD9S5so.js";
29
- import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-C1vsg3IF.js";
30
- 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-CeNdvQJ3.js";
28
+ 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-t_DoGd2Y.js";
29
+ 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-8Gw3YmOh.js";
30
+ import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-BWETfI9T.js";
31
+ 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-DaRQn5Ai.js";
31
32
  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-Ci8Xsc_Y.js";
32
33
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-CIjIGxEE.js";
33
34
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-D1eLj5t8.js";
34
- import { 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 parseTelegramTarget, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, 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 isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-Bi8XhwOZ.js";
35
+ import { 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 parseTelegramTarget, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, 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 isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-Cxr6CgGf.js";
35
36
  import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-CUkaZz2F.js";
36
- import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-BgpogTwt.js";
37
- import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-T9SO3y3b.js";
38
- import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-faqXQ9f1.js";
39
- import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-BkYSrDni.js";
37
+ import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-BlL08R8g.js";
38
+ import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-BTziorto.js";
39
+ import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-CO5ZhkcZ.js";
40
+ import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-DQIkGNj2.js";
40
41
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-Ba_ROWsq.js";
41
42
  import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-OWKu4tXF.js";
42
43
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-Ixuyn7h8.js";
@@ -48,10 +49,10 @@ import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveS
48
49
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-D5O01TlD.js";
49
50
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-CVLISeRT.js";
50
51
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-8sKPnzpp.js";
51
- import { t as ensureSymiModelsJson } from "./models-config-CHVfeRDR.js";
52
+ import { t as ensureSymiModelsJson } from "./models-config-frWb8fDT.js";
52
53
  import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BUN71nd5.js";
53
- import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-BmWvHCEJ.js";
54
- import { a as resolveMemorySearchConfig, t as MemoryIndexManager } from "./manager-8N1YbbDk.js";
54
+ import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-3RSIw4no.js";
55
+ import { a as resolveMemorySearchConfig, t as MemoryIndexManager } from "./manager-yrUe0KOT.js";
55
56
  import { f as runTasksWithConcurrency } from "./internal-C2jxeHS9.js";
56
57
  import { n as retryAsync } from "./retry-C4Q_VPOo.js";
57
58
  import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-Co0LcWKH.js";
@@ -63,13 +64,13 @@ import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMedia
63
64
  import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-BRlF7czi.js";
64
65
  import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-Ee-evDmm.js";
65
66
  import { a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, i as listChatCommands, l as parseCommandArgs, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices } from "./commands-registry-CsxsFveo.js";
66
- import { _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as extractTextFromChatContent, 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, y as stripReasoningTagsFromText } from "./image-Cp6qRPZ2.js";
67
+ import { _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as extractTextFromChatContent, 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, y as stripReasoningTagsFromText } from "./image-dYtWZNKT.js";
67
68
  import { n as resolveToolDisplay } from "./tool-display-I4rDxv8J.js";
68
69
  import { n as formatTimeAgo } from "./format-relative-BDwAggS5.js";
69
70
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-DZozDZN-.js";
70
- import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-CiThXXY3.js";
71
- import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-FckJ4pcL.js";
72
- import { a as loadCombinedSessionStoreForGateway, u as lookupContextTokens } from "./session-utils-DQ-t0PxQ.js";
71
+ import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-CY_8vnxU.js";
72
+ import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-DRqmevpR.js";
73
+ import { a as loadCombinedSessionStoreForGateway, u as lookupContextTokens } from "./session-utils--1xVj2BC.js";
73
74
  import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, x as getSkillsSnapshotVersion } from "./skill-commands-DrX4xCNq.js";
74
75
  import { i as readChannelAllowFromStore, l as listPairingChannels, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-B2viSnRj.js";
75
76
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-Bsts3MRD.js";
@@ -83,19 +84,19 @@ import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChan
83
84
  import { n as normalizePollInput } from "./polls-Cm1-n4jF.js";
84
85
  import { t as convertMarkdownTables } from "./tables-DL_wkymg.js";
85
86
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-l9TQg-aP.js";
86
- import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-B5HVCnUI.js";
87
+ import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-DnNPjFvU.js";
87
88
  import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BDqsqTKI.js";
88
89
  import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-CmPVNjnf.js";
89
- import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-CSkNKYIc.js";
90
- 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-CupfdYEg.js";
90
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-DbJsN7Lj.js";
91
+ 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-D4GfXudZ.js";
91
92
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BFA2RukR.js";
92
93
  import { t as parseTimeoutMs } from "./parse-timeout-FUO1ff14.js";
93
94
  import { t as makeProxyFetch } from "./proxy-GY5xhMp0.js";
94
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-BxvfG7Oj.js";
95
- import { r as detectBinary } from "./onboard-helpers-CNFdWQIV.js";
95
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-Dk0cnpHa.js";
96
+ import { r as detectBinary } from "./onboard-helpers-Ca4KojJF.js";
96
97
  import { t as resolvePairingIdLabel } from "./pairing-labels-BHx_CdbP.js";
97
98
  import { t as getActiveWebListener } from "./active-listener-DEi7sEFa.js";
98
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-GxaAKOgf.js";
99
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-BFsWV2pS.js";
99
100
  import { createRequire } from "node:module";
100
101
  import { execFileSync, spawn, spawnSync } from "node:child_process";
101
102
  import os, { homedir } from "node:os";
@@ -20470,7 +20471,7 @@ async function routeReply(params) {
20470
20471
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
20471
20472
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
20472
20473
  try {
20473
- const { deliverOutboundPayloads } = await import("./deliver-CeNdvQJ3.js").then((n) => n.n);
20474
+ const { deliverOutboundPayloads } = await import("./deliver-DaRQn5Ai.js").then((n) => n.n);
20474
20475
  return {
20475
20476
  ok: true,
20476
20477
  messageId: (await deliverOutboundPayloads({
@@ -29482,6 +29483,231 @@ function createSessionsSpawnTool(opts) {
29482
29483
  };
29483
29484
  }
29484
29485
 
29486
+ //#endregion
29487
+ //#region src/agents/skills/triggers.ts
29488
+ const QUOTE_RE = /^["'`](.*)["'`]$/;
29489
+ const ARRAY_FORM_RE = /^\[(.*)\]$/s;
29490
+ function stripWrappingQuotes(s) {
29491
+ const m = s.trim().match(QUOTE_RE);
29492
+ return m ? m[1] : s.trim();
29493
+ }
29494
+ /** Parse a single trigger value, dropping empty / whitespace-only entries. */
29495
+ function cleanTrigger(raw) {
29496
+ const trimmed = stripWrappingQuotes(raw).toLowerCase();
29497
+ return trimmed.length > 0 ? trimmed : null;
29498
+ }
29499
+ /**
29500
+ * Parse the value of a `triggers:` frontmatter field into a string[].
29501
+ * Accepts both inline-array form `[a, b, "c d"]` and YAML-list form
29502
+ * (multiline with leading hyphens). Returns deduped lowercased trigger
29503
+ * strings, or empty array on unparseable / missing input.
29504
+ */
29505
+ function parseTriggersValue(raw) {
29506
+ if (typeof raw !== "string") return [];
29507
+ const trimmed = raw.trim();
29508
+ if (!trimmed) return [];
29509
+ const items = [];
29510
+ const arrayMatch = trimmed.match(ARRAY_FORM_RE);
29511
+ if (arrayMatch) {
29512
+ const inner = arrayMatch[1];
29513
+ let buf = "";
29514
+ let inQuote = null;
29515
+ for (const ch of inner) {
29516
+ if (inQuote) {
29517
+ if (ch === inQuote) inQuote = null;
29518
+ else buf += ch;
29519
+ continue;
29520
+ }
29521
+ if (ch === "\"" || ch === "'") {
29522
+ inQuote = ch;
29523
+ continue;
29524
+ }
29525
+ if (ch === ",") {
29526
+ const cleaned = cleanTrigger(buf);
29527
+ if (cleaned) items.push(cleaned);
29528
+ buf = "";
29529
+ continue;
29530
+ }
29531
+ buf += ch;
29532
+ }
29533
+ const cleaned = cleanTrigger(buf);
29534
+ if (cleaned) items.push(cleaned);
29535
+ } else for (const line of trimmed.split("\n")) {
29536
+ const ltrim = line.trimStart();
29537
+ if (ltrim.startsWith("- ")) {
29538
+ const cleaned = cleanTrigger(ltrim.slice(2));
29539
+ if (cleaned) items.push(cleaned);
29540
+ } else if (ltrim && !ltrim.startsWith("#")) {
29541
+ const cleaned = cleanTrigger(ltrim);
29542
+ if (cleaned) items.push(cleaned);
29543
+ }
29544
+ }
29545
+ const seen = /* @__PURE__ */ new Set();
29546
+ const out = [];
29547
+ for (const t of items) if (!seen.has(t)) {
29548
+ seen.add(t);
29549
+ out.push(t);
29550
+ }
29551
+ return out;
29552
+ }
29553
+ /**
29554
+ * Extract triggers from a parsed frontmatter record. Returns empty array
29555
+ * when the field is absent or unparseable.
29556
+ */
29557
+ function getSkillTriggers(frontmatter) {
29558
+ return parseTriggersValue(frontmatter.triggers);
29559
+ }
29560
+
29561
+ //#endregion
29562
+ //#region src/agents/tools/skill-search-tool.ts
29563
+ const SkillSearchToolSchema = Type.Object({
29564
+ query: Type.String({
29565
+ minLength: 1,
29566
+ description: "Intent description (2-8 words). Match by trigger keywords first, then description text."
29567
+ }),
29568
+ limit: Type.Optional(Type.Number({
29569
+ minimum: 1,
29570
+ maximum: 10,
29571
+ description: "Max results to return (default 5, capped at 10)."
29572
+ }))
29573
+ });
29574
+ const CACHE_TTL_MS = 6e4;
29575
+ const SAFE_NAME_RE = /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/;
29576
+ function loadSkillFromDir(dir, source) {
29577
+ const name = path.basename(dir);
29578
+ if (!SAFE_NAME_RE.test(name)) return null;
29579
+ const file = path.join(dir, "SKILL.md");
29580
+ let raw;
29581
+ try {
29582
+ if (!fs.statSync(file).isFile()) return null;
29583
+ raw = fs.readFileSync(file, "utf8");
29584
+ } catch {
29585
+ return null;
29586
+ }
29587
+ const fm = parseFrontmatterBlock(raw);
29588
+ return {
29589
+ name,
29590
+ description: (fm.description ?? "").trim(),
29591
+ path: file,
29592
+ triggers: getSkillTriggers(fm),
29593
+ source
29594
+ };
29595
+ }
29596
+ function listSkillDirs(root) {
29597
+ const skillsDir = path.join(root, "skills");
29598
+ let entries;
29599
+ try {
29600
+ entries = fs.readdirSync(skillsDir, { withFileTypes: true });
29601
+ } catch {
29602
+ return [];
29603
+ }
29604
+ return entries.filter((e) => e.isDirectory()).map((e) => path.join(skillsDir, e.name));
29605
+ }
29606
+ let cachedPackageRoot$1;
29607
+ const cachePerWorkspace = /* @__PURE__ */ new Map();
29608
+ function getPackageRoot$1() {
29609
+ if (cachedPackageRoot$1 === void 0) cachedPackageRoot$1 = resolveSymiPackageRootSync({});
29610
+ return cachedPackageRoot$1;
29611
+ }
29612
+ function loadAllSkills(workspaceDir) {
29613
+ const cacheKey = workspaceDir ?? "";
29614
+ const now = Date.now();
29615
+ const existing = cachePerWorkspace.get(cacheKey);
29616
+ if (existing && now - existing.loadedAt < CACHE_TTL_MS) return existing.skills;
29617
+ const seen = /* @__PURE__ */ new Map();
29618
+ if (workspaceDir) for (const dir of listSkillDirs(workspaceDir)) {
29619
+ const skill = loadSkillFromDir(dir, "workspace");
29620
+ if (skill && !seen.has(skill.name)) seen.set(skill.name, skill);
29621
+ }
29622
+ const packageRoot = getPackageRoot$1();
29623
+ if (packageRoot) for (const dir of listSkillDirs(packageRoot)) {
29624
+ const skill = loadSkillFromDir(dir, "bundled");
29625
+ if (skill && !seen.has(skill.name)) seen.set(skill.name, skill);
29626
+ }
29627
+ const skills = [...seen.values()];
29628
+ cachePerWorkspace.set(cacheKey, {
29629
+ skills,
29630
+ loadedAt: now
29631
+ });
29632
+ return skills;
29633
+ }
29634
+ const TOKEN_SPLIT_RE = /[^\w/]+/;
29635
+ function tokenizeQuery(raw) {
29636
+ return raw.toLowerCase().split(TOKEN_SPLIT_RE).filter((t) => t.length >= 2);
29637
+ }
29638
+ /**
29639
+ * Score a query against one skill's triggers + description.
29640
+ * - Trigger score: ratio of query tokens that appear in the trigger set.
29641
+ * - FTS score: 0.4 × ratio of query tokens that appear in the description
29642
+ * (case-insensitive substring match).
29643
+ * - Final = max(trigger, fts) so trigger matches always beat descriptions.
29644
+ * - Returns 0 for "no signal at all" (caller should drop these).
29645
+ */
29646
+ function scoreSkillMatch(skill, queryTokens) {
29647
+ if (queryTokens.length === 0) return 0;
29648
+ const triggerSet = new Set(skill.triggers.map((t) => t.toLowerCase()));
29649
+ const description = skill.description.toLowerCase();
29650
+ let triggerHits = 0;
29651
+ let ftsHits = 0;
29652
+ for (const token of queryTokens) if (triggerSet.has(token)) triggerHits += 1;
29653
+ else if (description.includes(token)) ftsHits += 1;
29654
+ const triggerScore = triggerHits / queryTokens.length;
29655
+ const ftsScore = ftsHits / queryTokens.length * .4;
29656
+ return Math.max(triggerScore, ftsScore);
29657
+ }
29658
+ /**
29659
+ * Pure-function search; exported for testing without going through the
29660
+ * tool execute wrapper.
29661
+ */
29662
+ function searchSkills(query, limit, workspaceDir) {
29663
+ const tokens = tokenizeQuery(query);
29664
+ if (tokens.length === 0) return [];
29665
+ const all = loadAllSkills(workspaceDir);
29666
+ const scored = [];
29667
+ for (const skill of all) {
29668
+ const score = scoreSkillMatch(skill, tokens);
29669
+ if (score > 0) scored.push({
29670
+ name: skill.name,
29671
+ description: skill.description,
29672
+ path: skill.path,
29673
+ score
29674
+ });
29675
+ }
29676
+ scored.sort((a, b) => b.score - a.score || a.name.localeCompare(b.name));
29677
+ return scored.slice(0, limit);
29678
+ }
29679
+ function createSkillSearchTool(opts) {
29680
+ return {
29681
+ name: "skill_search",
29682
+ label: "skill_search",
29683
+ 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.",
29684
+ parameters: SkillSearchToolSchema,
29685
+ execute: async (_toolCallId, args) => {
29686
+ const params = args;
29687
+ const query = typeof params.query === "string" ? params.query.trim() : "";
29688
+ if (!query) return jsonResult({
29689
+ ok: false,
29690
+ error: "skill_search requires a non-empty `query` string."
29691
+ });
29692
+ const limit = typeof params.limit === "number" && Number.isFinite(params.limit) ? Math.min(10, Math.max(1, Math.floor(params.limit))) : 5;
29693
+ try {
29694
+ return jsonResult({
29695
+ ok: true,
29696
+ query,
29697
+ matches: searchSkills(query, limit, opts?.workspaceDir)
29698
+ });
29699
+ } catch (err) {
29700
+ const message = err instanceof Error ? err.message : String(err);
29701
+ logWarn(`skill_search failed: ${message}`);
29702
+ return jsonResult({
29703
+ ok: false,
29704
+ error: message
29705
+ });
29706
+ }
29707
+ }
29708
+ };
29709
+ }
29710
+
29485
29711
  //#endregion
29486
29712
  //#region src/agents/tools/subagents-tool.ts
29487
29713
  const SUBAGENT_ACTIONS = [
@@ -31542,6 +31768,7 @@ function createSymiTools(options) {
31542
31768
  createCronTool({ agentSessionKey: options?.agentSessionKey }),
31543
31769
  createTaskListTool({ workspaceDir }),
31544
31770
  createTaskCancelTool({ workspaceDir }),
31771
+ createSkillSearchTool({ workspaceDir }),
31545
31772
  ...messageTool ? [messageTool] : [],
31546
31773
  createTtsTool({
31547
31774
  agentChannel: options?.agentChannel,
@@ -39646,6 +39873,71 @@ function buildAutoLoadedSkillsBlock(opts) {
39646
39873
  ].join("\n");
39647
39874
  }
39648
39875
 
39876
+ //#endregion
39877
+ //#region src/agents/system-prompt-skills-jit.ts
39878
+ const MAX_ANCHOR_DESCRIPTION_CHARS = 100;
39879
+ const MAX_AUTO_INJECT_RESULTS = 3;
39880
+ const MAX_AUTO_INJECT_TOTAL_CHARS = 600;
39881
+ /**
39882
+ * Build the anchor list block. Returns "" when no anchor list configured
39883
+ * or in preload mode (anchor list adds value only in jit/hybrid).
39884
+ */
39885
+ function buildAnchorListBlock(opts) {
39886
+ if (opts.minimalMode) return "";
39887
+ if (opts.discoveryMode !== "jit" && opts.discoveryMode !== "hybrid") return "";
39888
+ const names = (opts.anchorList ?? []).filter((n) => typeof n === "string" && n.trim().length > 0);
39889
+ if (names.length === 0) return "";
39890
+ const lines = [];
39891
+ for (const name of names) {
39892
+ const description = searchSkills(name, 1, opts.workspaceDir)[0]?.description.trim() ?? "";
39893
+ const truncated = description.length > MAX_ANCHOR_DESCRIPTION_CHARS ? `${description.slice(0, MAX_ANCHOR_DESCRIPTION_CHARS - 1)}…` : description;
39894
+ lines.push(truncated ? `- ${name}: ${truncated}` : `- ${name}`);
39895
+ }
39896
+ return [
39897
+ "",
39898
+ "## Anchor Skills",
39899
+ "These skills are always available. Read their SKILL.md via `read` if relevant. For full discovery use the `skill_search` tool.",
39900
+ lines.join("\n"),
39901
+ ""
39902
+ ].join("\n");
39903
+ }
39904
+ /**
39905
+ * Build the auto-injected matches block based on the user message triggers.
39906
+ * Returns "" when discoveryMode doesn't ask for it, no message available,
39907
+ * no matches found, or in minimal mode.
39908
+ */
39909
+ function buildAutoInjectBlock(opts) {
39910
+ if (opts.minimalMode) return "";
39911
+ if (opts.discoveryMode !== "jit" && opts.discoveryMode !== "hybrid") return "";
39912
+ const message = (opts.userMessage ?? "").trim();
39913
+ if (!message) return "";
39914
+ const matches = searchSkills(message, MAX_AUTO_INJECT_RESULTS, opts.workspaceDir);
39915
+ if (matches.length === 0) return "";
39916
+ const lines = [];
39917
+ let total = 0;
39918
+ for (const match of matches) {
39919
+ const description = match.description.trim();
39920
+ const truncated = description.length > MAX_ANCHOR_DESCRIPTION_CHARS ? `${description.slice(0, MAX_ANCHOR_DESCRIPTION_CHARS - 1)}…` : description;
39921
+ const skillRef = path.basename(path.dirname(match.path));
39922
+ const line = truncated ? `- ${skillRef}: ${truncated}` : `- ${skillRef}`;
39923
+ if (total + line.length > MAX_AUTO_INJECT_TOTAL_CHARS) break;
39924
+ lines.push(line);
39925
+ total += line.length + 1;
39926
+ }
39927
+ if (lines.length === 0) return "";
39928
+ return [
39929
+ "",
39930
+ "## Possibly Relevant Skills (auto-suggested for this request)",
39931
+ "These skills' triggers matched keywords in your message. Read the SKILL.md if it applies; otherwise ignore and proceed.",
39932
+ lines.join("\n"),
39933
+ ""
39934
+ ].join("\n");
39935
+ }
39936
+ /** Convenience: build both blocks concatenated. */
39937
+ function buildSkillsJitBlocks(opts) {
39938
+ return `${buildAnchorListBlock(opts)}${buildAutoInjectBlock(opts)}`;
39939
+ }
39940
+
39649
39941
  //#endregion
39650
39942
  //#region src/agents/pi-embedded-runner/system-prompt.ts
39651
39943
  function buildEmbeddedSystemPrompt(params) {
@@ -39679,12 +39971,17 @@ function buildEmbeddedSystemPrompt(params) {
39679
39971
  });
39680
39972
  const promptMode = params.promptMode ?? "full";
39681
39973
  const isMinimal = promptMode === "minimal" || promptMode === "none";
39682
- const skillsBlock = buildAutoLoadedSkillsBlock({
39974
+ return `${corePrompt}${buildAutoLoadedSkillsBlock({
39683
39975
  skillNames: params.autoLoadInlineSkills ?? [],
39684
39976
  workspaceDir: params.workspaceDir,
39685
39977
  minimalMode: isMinimal
39686
- });
39687
- return skillsBlock ? `${corePrompt}${skillsBlock}` : corePrompt;
39978
+ })}${buildSkillsJitBlocks({
39979
+ discoveryMode: params.skillsDiscoveryMode,
39980
+ anchorList: params.skillsAnchorList,
39981
+ userMessage: params.currentUserMessage,
39982
+ workspaceDir: params.workspaceDir,
39983
+ minimalMode: isMinimal
39984
+ })}`;
39688
39985
  }
39689
39986
  function createSystemPromptOverride(systemPrompt) {
39690
39987
  const override = systemPrompt.trim();
@@ -40473,7 +40770,10 @@ async function runEmbeddedAttempt(params) {
40473
40770
  userTimeFormat,
40474
40771
  contextFiles,
40475
40772
  memoryCitationsMode: params.config?.memory?.citations,
40476
- autoLoadInlineSkills: params.config?.skills?.autoLoadInline
40773
+ autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
40774
+ skillsDiscoveryMode: params.config?.skills?.discoveryMode,
40775
+ skillsAnchorList: params.config?.skills?.anchorList,
40776
+ currentUserMessage: params.prompt
40477
40777
  });
40478
40778
  const systemPromptReport = buildSystemPromptReport({
40479
40779
  source: "run",
@@ -44962,7 +45262,7 @@ async function deliverSessionMaintenanceWarning(params) {
44962
45262
  return;
44963
45263
  }
44964
45264
  try {
44965
- const { deliverOutboundPayloads } = await import("./deliver-CeNdvQJ3.js").then((n) => n.n);
45265
+ const { deliverOutboundPayloads } = await import("./deliver-DaRQn5Ai.js").then((n) => n.n);
44966
45266
  await deliverOutboundPayloads({
44967
45267
  cfg: params.cfg,
44968
45268
  channel,
@@ -48416,7 +48716,7 @@ async function describeStickerImage(params) {
48416
48716
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
48417
48717
  try {
48418
48718
  const buffer = await fs$1.readFile(imagePath);
48419
- const { describeImageWithModel } = await import("./image-Cp6qRPZ2.js").then((n) => n.n);
48719
+ const { describeImageWithModel } = await import("./image-dYtWZNKT.js").then((n) => n.n);
48420
48720
  return (await describeImageWithModel({
48421
48721
  buffer,
48422
48722
  fileName: "sticker.webp",
@@ -48839,7 +49139,7 @@ function createWhatsAppLoginTool() {
48839
49139
  force: Type.Optional(Type.Boolean())
48840
49140
  }),
48841
49141
  execute: async (_toolCallId, args) => {
48842
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CtELJan3.js");
49142
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-Dq_hs3eJ.js");
48843
49143
  if ((args?.action ?? "start") === "wait") {
48844
49144
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
48845
49145
  return {
@@ -50215,7 +50515,7 @@ async function preflightDiscordMessage(params) {
50215
50515
  let preflightTranscript;
50216
50516
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
50217
50517
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
50218
- const { transcribeFirstAudio } = await import("./audio-preflight-SaT5IcVn.js");
50518
+ const { transcribeFirstAudio } = await import("./audio-preflight-By0dnw-T.js");
50219
50519
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
50220
50520
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
50221
50521
  ctx: {
@@ -53998,27 +54298,27 @@ function isVoiceChannelType(type) {
53998
54298
  function createDefaultDeps() {
53999
54299
  return {
54000
54300
  sendMessageWhatsApp: async (...args) => {
54001
- const { sendMessageWhatsApp } = await import("./web-s9NWpUYH.js");
54301
+ const { sendMessageWhatsApp } = await import("./web-BBbVbRTg.js");
54002
54302
  return await sendMessageWhatsApp(...args);
54003
54303
  },
54004
54304
  sendMessageTelegram: async (...args) => {
54005
- const { sendMessageTelegram } = await import("./send-Bi8XhwOZ.js").then((n) => n.l);
54305
+ const { sendMessageTelegram } = await import("./send-Cxr6CgGf.js").then((n) => n.l);
54006
54306
  return await sendMessageTelegram(...args);
54007
54307
  },
54008
54308
  sendMessageDiscord: async (...args) => {
54009
- const { sendMessageDiscord } = await import("./send-CcD9S5so.js").then((n) => n.t);
54309
+ const { sendMessageDiscord } = await import("./send-8Gw3YmOh.js").then((n) => n.t);
54010
54310
  return await sendMessageDiscord(...args);
54011
54311
  },
54012
54312
  sendMessageSlack: async (...args) => {
54013
- const { sendMessageSlack } = await import("./send-CoSPwGiI.js").then((n) => n.n);
54313
+ const { sendMessageSlack } = await import("./send-t_DoGd2Y.js").then((n) => n.n);
54014
54314
  return await sendMessageSlack(...args);
54015
54315
  },
54016
54316
  sendMessageSignal: async (...args) => {
54017
- const { sendMessageSignal } = await import("./send-CSkNKYIc.js").then((n) => n.i);
54317
+ const { sendMessageSignal } = await import("./send-DbJsN7Lj.js").then((n) => n.i);
54018
54318
  return await sendMessageSignal(...args);
54019
54319
  },
54020
54320
  sendMessageIMessage: async (...args) => {
54021
- const { sendMessageIMessage } = await import("./send-CupfdYEg.js").then((n) => n.n);
54321
+ const { sendMessageIMessage } = await import("./send-D4GfXudZ.js").then((n) => n.n);
54022
54322
  return await sendMessageIMessage(...args);
54023
54323
  }
54024
54324
  };
@@ -64873,7 +65173,7 @@ async function registerSlackMonitorSlashCommands(params) {
64873
65173
  });
64874
65174
  const deliverSlashPayloads = async (replies) => {
64875
65175
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
64876
- import("./replies-BxvfG7Oj.js").then((n) => n.r),
65176
+ import("./replies-Dk0cnpHa.js").then((n) => n.r),
64877
65177
  import("./chunk-CBaqrC3-.js").then((n) => n.s),
64878
65178
  import("./markdown-tables-Xw0UrL4I.js").then((n) => n.t)
64879
65179
  ]);
@@ -67146,7 +67446,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
67146
67446
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
67147
67447
  let preflightTranscript;
67148
67448
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
67149
- const { transcribeFirstAudio } = await import("./audio-preflight-SaT5IcVn.js");
67449
+ const { transcribeFirstAudio } = await import("./audio-preflight-By0dnw-T.js");
67150
67450
  preflightTranscript = await transcribeFirstAudio({
67151
67451
  ctx: {
67152
67452
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -69300,23 +69600,23 @@ let webLoginQrPromise = null;
69300
69600
  let webChannelPromise = null;
69301
69601
  let whatsappActionsPromise = null;
69302
69602
  function loadWebOutbound() {
69303
- webOutboundPromise ??= import("./outbound-b9pVFyW7.js").then((n) => n.t);
69603
+ webOutboundPromise ??= import("./outbound-CDuo0JH3.js").then((n) => n.t);
69304
69604
  return webOutboundPromise;
69305
69605
  }
69306
69606
  function loadWebLogin() {
69307
- webLoginPromise ??= import("./login-DKeZ-sOf.js").then((n) => n.n);
69607
+ webLoginPromise ??= import("./login-D4OYfM0U.js").then((n) => n.n);
69308
69608
  return webLoginPromise;
69309
69609
  }
69310
69610
  function loadWebLoginQr() {
69311
- webLoginQrPromise ??= import("./login-qr-CtELJan3.js");
69611
+ webLoginQrPromise ??= import("./login-qr-Dq_hs3eJ.js");
69312
69612
  return webLoginQrPromise;
69313
69613
  }
69314
69614
  function loadWebChannel() {
69315
- webChannelPromise ??= import("./web-s9NWpUYH.js");
69615
+ webChannelPromise ??= import("./web-BBbVbRTg.js");
69316
69616
  return webChannelPromise;
69317
69617
  }
69318
69618
  function loadWhatsAppActions() {
69319
- whatsappActionsPromise ??= import("./whatsapp-actions-Dx8FkbIf.js");
69619
+ whatsappActionsPromise ??= import("./whatsapp-actions-B5o7eFIc.js");
69320
69620
  return whatsappActionsPromise;
69321
69621
  }
69322
69622
  function createPluginRuntime() {
@@ -71770,7 +72070,10 @@ async function compactEmbeddedPiSessionDirect(params) {
71770
72070
  userTimeFormat,
71771
72071
  contextFiles,
71772
72072
  memoryCitationsMode: params.config?.memory?.citations,
71773
- autoLoadInlineSkills: params.config?.skills?.autoLoadInline
72073
+ autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
72074
+ skillsDiscoveryMode: params.config?.skills?.discoveryMode,
72075
+ skillsAnchorList: params.config?.skills?.anchorList,
72076
+ currentUserMessage: void 0
71774
72077
  }));
71775
72078
  const sessionLock = await acquireSessionWriteLock({
71776
72079
  sessionFile: params.sessionFile,