@symerian/symi 2.9.0 → 2.9.1

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 (354) hide show
  1. package/dist/{acp-cli-Bav1bRj2.js → acp-cli-BNM6b6XY.js} +2 -2
  2. package/dist/{acp-cli-BTu3_kZ1.js → acp-cli-DXsJS3-G.js} +2 -2
  3. package/dist/{agents-CvNeiuSB.js → agents-FNeM-byc.js} +7 -7
  4. package/dist/{agents.config-Ct64cGQ8.js → agents.config-CjML1ogJ.js} +1 -1
  5. package/dist/{agents.config-BCgY5FjE.js → agents.config-DUYDFbfP.js} +1 -1
  6. package/dist/{audio-preflight-C6vpFnOG.js → audio-preflight-CMutcMs5.js} +5 -5
  7. package/dist/{audio-preflight-C2EgDXSo.js → audio-preflight-CwbuWmdG.js} +11 -11
  8. package/dist/{audio-preflight-Cb-T0r6e.js → audio-preflight-DlO0Hw-w.js} +5 -5
  9. package/dist/{audio-preflight-1dv3T5Zx.js → audio-preflight-SaT5IcVn.js} +11 -11
  10. package/dist/{audit-C9nq99IR.js → audit-Ojap-R-Y.js} +5 -5
  11. package/dist/{audit-CuKP86d_.js → audit-qWCLpveM.js} +5 -5
  12. package/dist/{auth-choice-DmMyKZX4.js → auth-choice-BjTiWmH-.js} +4 -4
  13. package/dist/{auth-choice-ChFU9OCF.js → auth-choice-RQ5keocP.js} +4 -4
  14. package/dist/{banner-Bf46tqiY.js → banner-dYiFXA70.js} +1 -1
  15. package/dist/{browser-cli-ClgQ-C8E.js → browser-cli-BQ9jHIXP.js} +3 -3
  16. package/dist/{browser-cli-DuPPIcuV.js → browser-cli-BW0C5Y8-.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-DYfKEdwh.js → call-BZbBLMOq.js} +1 -1
  21. package/dist/{call-M4YyUnwu.js → call-X_vwo309.js} +1 -1
  22. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  23. package/dist/{channel-options-Bqc2VCgt.js → channel-options-CjZlTumK.js} +1 -1
  24. package/dist/{channel-options-D4a0ZJ72.js → channel-options-DqXYA7rM.js} +1 -1
  25. package/dist/{channel-web-YNC2xS5K.js → channel-web-BITaNjFT.js} +7 -7
  26. package/dist/{channels-cli-BFJcNLbB.js → channels-cli-7cDtM5kW.js} +30 -30
  27. package/dist/{channels-cli-h3GnmmM9.js → channels-cli-C8CesA1x.js} +31 -31
  28. package/dist/{chrome-ROtrXlNs.js → chrome-B1zznUiv.js} +8 -8
  29. package/dist/{chrome-BJvuH-NZ.js → chrome-BFDOGeu3.js} +1 -1
  30. package/dist/{chrome-D2ohnA09.js → chrome-faqXQ9f1.js} +1 -1
  31. package/dist/{chrome-B14NNyfm.js → chrome-t-stBgN6.js} +1 -1
  32. package/dist/cli/daemon-cli.js +1 -1
  33. package/dist/{cli-BX54CAM7.js → cli-BJ9_X9eE.js} +27 -27
  34. package/dist/{cli-BpQlSGVs.js → cli-ZC_92Xyn.js} +26 -26
  35. package/dist/{command-registry-BiRjJ2Sy.js → command-registry-B1ltIC7z.js} +11 -11
  36. package/dist/{completion-cli-C8K5J1ld.js → completion-cli-KSs4eFcq.js} +1 -1
  37. package/dist/{completion-cli-BYXofVqv.js → completion-cli-_P0e-rhC.js} +2 -2
  38. package/dist/{config-BkZ9HOKT.js → config-BXMAsmut.js} +2 -0
  39. package/dist/{config-PXAJCHa5.js → config-BYCtuYPj.js} +2 -0
  40. package/dist/{config-BAVNLbja.js → config-CbBZUq-Q.js} +2 -0
  41. package/dist/{config-DXt3pc08.js → config-DE6JXMtt.js} +2 -0
  42. package/dist/{config-cli-BPPD3xqE.js → config-cli-DIrPShKH.js} +2 -2
  43. package/dist/{config-cli-Deoo6r2K.js → config-cli-DjCKp4Pe.js} +2 -2
  44. package/dist/{config-guard-BvqCjFPk.js → config-guard-BrZXdLQw.js} +2 -2
  45. package/dist/{config-guard-CaP-V3tf.js → config-guard-DYmSI51f.js} +3 -3
  46. package/dist/{config-validation-B6Fa3VmF.js → config-validation-CNRgc5vc.js} +1 -1
  47. package/dist/{config-validation-EmHZVnuz.js → config-validation-fdYfdAc3.js} +1 -1
  48. package/dist/{configure-D4f0P3bH.js → configure-CsZWO6Nr.js} +10 -10
  49. package/dist/{configure-BKHxUAAh.js → configure-Ds8SzTEw.js} +10 -10
  50. package/dist/{control-service-Bujr5pk7.js → control-service-B5HVCnUI.js} +4 -4
  51. package/dist/{control-service-C0pRqIFv.js → control-service-DQX3HXS4.js} +4 -4
  52. package/dist/{cron-cli-C8-Gv5dd.js → cron-cli-CfSmL43G.js} +3 -3
  53. package/dist/{cron-cli-BEdmHCWZ.js → cron-cli-D2L3-4aw.js} +3 -3
  54. package/dist/{daemon-cli-BFoJGCHZ.js → daemon-cli-BHwfgmrQ.js} +6 -6
  55. package/dist/{daemon-cli-D6wyb9bo.js → daemon-cli-D9_xrFGD.js} +6 -6
  56. package/dist/daemon-cli.js +2 -0
  57. package/dist/{daemon-runtime-Cp7obV7Q.js → daemon-runtime-BiZG4Kqi.js} +1 -1
  58. package/dist/{daemon-runtime-D_elkkFW.js → daemon-runtime-DOqm0LLm.js} +1 -1
  59. package/dist/{deliver-D0bWiRCg.js → deliver--ff__Iq0.js} +2 -2
  60. package/dist/{deliver-Bdk_R0pQ.js → deliver-CeNdvQJ3.js} +3 -3
  61. package/dist/{deliver-D7BQXt0l.js → deliver-Cqk3zmyW.js} +3 -3
  62. package/dist/{deliver-B0OUq6RP.js → deliver-nBdNxMIr.js} +2 -2
  63. package/dist/{devices-cli-CHt4I-7e.js → devices-cli-BzyrjuAk.js} +2 -2
  64. package/dist/{devices-cli-BXc6DPkC.js → devices-cli-CEvTb9Vr.js} +2 -2
  65. package/dist/{directory-cli-DRWJsAT6.js → directory-cli-Ds7uESrp.js} +1 -1
  66. package/dist/{directory-cli-CQTzAhw1.js → directory-cli-KZHlp_jk.js} +1 -1
  67. package/dist/{dns-cli-BCKPibb8.js → dns-cli-SNU_PJfw.js} +1 -1
  68. package/dist/{dns-cli-BBVIay6Z.js → dns-cli-e8z7wTzi.js} +1 -1
  69. package/dist/{doctor-completion-woDYSVtY.js → doctor-completion-CfGWMYVG.js} +1 -1
  70. package/dist/{doctor-completion-gMWymNcA.js → doctor-completion-D4bMStWc.js} +1 -1
  71. package/dist/{doctor-config-flow-BCMxS2lf.js → doctor-config-flow-CJ4__c8U.js} +2 -2
  72. package/dist/{doctor-config-flow-B2dVxbL7.js → doctor-config-flow-DHXFFSRu.js} +2 -2
  73. package/dist/entry.js +1 -1
  74. package/dist/{exec-approvals-cli-CKRDAo17.js → exec-approvals-cli-_AbKrXIH.js} +4 -4
  75. package/dist/{exec-approvals-cli-BBKVrFTj.js → exec-approvals-cli-z9Iy8aWD.js} +4 -4
  76. package/dist/extensionAPI.js +14 -14
  77. package/dist/{gateway-cli-DsnkTUOp.js → gateway-cli-B4ElmhPF.js} +42 -42
  78. package/dist/{gateway-cli-Bnh42-56.js → gateway-cli-CfO9aUt0.js} +43 -43
  79. package/dist/{gateway-rpc-DZrB7Sl_.js → gateway-rpc-BlWORxUe.js} +1 -1
  80. package/dist/{gateway-rpc-BEfosIsg.js → gateway-rpc-D1S1i5HM.js} +1 -1
  81. package/dist/{glass-ui-ws-uj3DRmL8.js → glass-ui-ws-Bhu3COgn.js} +34 -34
  82. package/dist/{glass-ui-ws-0Y0KsBvU.js → glass-ui-ws-D1UKJUFI.js} +35 -35
  83. package/dist/{health-Dl2WRoTa.js → health-CCslN1xh.js} +5 -5
  84. package/dist/{health-CcV5nKIK.js → health-CLRDrjsk.js} +5 -5
  85. package/dist/{hooks-cli-DEJe3dUH.js → hooks-cli-BrVLhsJ6.js} +27 -27
  86. package/dist/{hooks-cli-CTcHtm_0.js → hooks-cli-DvLYXNNe.js} +28 -28
  87. package/dist/{image-6RZuWKy5.js → image-B6aY1oY3.js} +2 -2
  88. package/dist/{image-BuVL0jHI.js → image-CEdTQp1F.js} +2 -2
  89. package/dist/{image-CnEFsKgw.js → image-Cp6qRPZ2.js} +2 -2
  90. package/dist/{image-MNvheU8U.js → image-D5bsPk2_.js} +2 -2
  91. package/dist/index.js +35 -35
  92. package/dist/{lifecycle-core-v3lT0Ymo.js → lifecycle-core-BUGPz1GT.js} +2 -2
  93. package/dist/{lifecycle-core-Uucs6Wz6.js → lifecycle-core-CcPnnp9c.js} +2 -2
  94. package/dist/llm-slug-generator.js +14 -14
  95. package/dist/{login-EYdkb0dH.js → login-B7OJui4y.js} +2 -2
  96. package/dist/{login-D4rZWBXe.js → login-Cu0fTI3Z.js} +2 -2
  97. package/dist/{login-C7EdfiAr.js → login-DKeZ-sOf.js} +2 -2
  98. package/dist/{login-F4pbdnF5.js → login-DwBazcKM.js} +2 -2
  99. package/dist/{login-qr-Apnag5S6.js → login-qr-BBrzemk7.js} +2 -2
  100. package/dist/{login-qr-BElXRp6T.js → login-qr-CtELJan3.js} +2 -2
  101. package/dist/{login-qr-DdAVHOEC.js → login-qr-DyU6qD2X.js} +2 -2
  102. package/dist/{login-qr-DML5LgsI.js → login-qr-Ft17VIG6.js} +2 -2
  103. package/dist/{logs-cli-N5jQvJTm.js → logs-cli-CvgvoxvI.js} +3 -3
  104. package/dist/{logs-cli-CsHpYc2M.js → logs-cli-Dg6OSEA6.js} +3 -3
  105. package/dist/{manager-QPF0UtOC.js → manager-8N1YbbDk.js} +1 -1
  106. package/dist/{manager-C-H0XXJq.js → manager-CztTHQhN.js} +1 -1
  107. package/dist/{manager-CjW8kPVc.js → manager-HASZR70T.js} +1 -1
  108. package/dist/{manager-9Mni2AA9.js → manager-OSWCBsL_.js} +1 -1
  109. package/dist/{memory-cli-BTByRgM0.js → memory-cli-BDWdeqta.js} +4 -4
  110. package/dist/{memory-cli-OW9XfyYu.js → memory-cli-BmWvHCEJ.js} +4 -4
  111. package/dist/{model-catalog-D7k3dDQq.js → model-catalog-BhW-vn5v.js} +2 -2
  112. package/dist/{model-catalog-BuYrTTBn.js → model-catalog-FckJ4pcL.js} +2 -2
  113. package/dist/{model-picker-BNWV-jU4.js → model-picker-D3ii5sBm.js} +2 -2
  114. package/dist/{model-picker-n7beL1F5.js → model-picker-DEUeht6L.js} +2 -2
  115. package/dist/{models-Q1jV8ArL.js → models-5C-QKF0q.js} +8 -8
  116. package/dist/{models-cli-pfVmmgpv.js → models-cli-B2IebIhR.js} +29 -29
  117. package/dist/{models-cli-Cy6H1sFq.js → models-cli-BqW-Y1GI.js} +30 -30
  118. package/dist/{models-config-J1x_DaPn.js → models-config-CHVfeRDR.js} +1 -1
  119. package/dist/{models-config-B91ShhoT.js → models-config-DGDMieos.js} +1 -1
  120. package/dist/{node-cli-BD4E-Y8a.js → node-cli-emEb0aRo.js} +9 -9
  121. package/dist/{node-cli-CwnTjFkG.js → node-cli-hAxte5bw.js} +9 -9
  122. package/dist/{nodes-cli-Dv0NXhCO.js → nodes-cli-DQPQqEYN.js} +3 -3
  123. package/dist/{nodes-cli-DUD8_q_Q.js → nodes-cli-yd9KABqj.js} +3 -3
  124. package/dist/{onboard-CvpyaUQd.js → onboard-BL7Ei8OA.js} +7 -7
  125. package/dist/{onboard-channels-BRoSUijQ.js → onboard-channels-B-PEQmiI.js} +1 -1
  126. package/dist/{onboard-channels-Bupbm6zh.js → onboard-channels-Do0lkLVV.js} +1 -1
  127. package/dist/{onboard-custom-Dk9cL3Uu.js → onboard-custom-BVMtQfB1.js} +2 -2
  128. package/dist/{onboard-custom-CJGSIPt3.js → onboard-custom-CVA34zSg.js} +2 -2
  129. package/dist/{onboard-helpers-DWDNKmkJ.js → onboard-helpers-CNFdWQIV.js} +2 -2
  130. package/dist/{onboard-helpers-CBxazphs.js → onboard-helpers-O6bxf40E.js} +2 -2
  131. package/dist/{onboard-EL8foMiP.js → onboard-o5O2Ipvr.js} +7 -7
  132. package/dist/{onboard-remote-cZrkePlK.js → onboard-remote-QMqQxvh7.js} +1 -1
  133. package/dist/{onboard-remote-DoIKLWXA.js → onboard-remote-uYveiXQe.js} +1 -1
  134. package/dist/{onboard-skills-BjGYTueQ.js → onboard-skills-CLb94Ag2.js} +1 -1
  135. package/dist/{onboard-skills-zauvnEui.js → onboard-skills-Du3aWSN3.js} +1 -1
  136. package/dist/{onboarding-Ch8WSJ3j.js → onboarding-3DwQLO4z.js} +10 -10
  137. package/dist/{onboarding-Dg5ydWSh.js → onboarding-B_F_DbjQ.js} +10 -10
  138. package/dist/{onboarding.finalize-Bo8-8TtH.js → onboarding.finalize-BWejCrVi.js} +32 -32
  139. package/dist/{onboarding.finalize-CCTaCp2s.js → onboarding.finalize-D_G6Tcqi.js} +34 -34
  140. package/dist/{onboarding.gateway-config-Dg12RcXA.js → onboarding.gateway-config-D8K7HsWb.js} +4 -4
  141. package/dist/{onboarding.gateway-config-uIRsaxMy.js → onboarding.gateway-config-Dixr8mmH.js} +4 -4
  142. package/dist/{outbound-mG1crIsY.js → outbound-CLCy4Nsg.js} +1 -1
  143. package/dist/{outbound-Zmd7UyQH.js → outbound-DVVulk0E.js} +1 -1
  144. package/dist/{outbound-B5OgOn1h.js → outbound-DlWjA7jN.js} +1 -1
  145. package/dist/{outbound-CW8eNbCh.js → outbound-b9pVFyW7.js} +1 -1
  146. package/dist/{pairing-cli-7X1qlhzF.js → pairing-cli-CchjvjCR.js} +1 -1
  147. package/dist/{pairing-cli-Cl4t3cDV.js → pairing-cli-Cgj6qx8Z.js} +1 -1
  148. package/dist/{pi-embedded-helpers-TcYQOZAY.js → pi-embedded-helpers-BPP4adeW.js} +5 -5
  149. package/dist/{pi-embedded-helpers-YD1JQ5xV.js → pi-embedded-helpers-BgpogTwt.js} +1 -1
  150. package/dist/{pi-embedded-helpers-DHAJW99p.js → pi-embedded-helpers-DK2WpZI8.js} +1 -1
  151. package/dist/{pi-embedded-helpers-D1_Sab0M.js → pi-embedded-helpers-DrAT2ieP.js} +5 -5
  152. package/dist/{pi-embedded-Bl3YkBkI.js → pi-embedded-q_tNOp_h.js} +212 -91
  153. package/dist/{pi-tools.policy-Bx5zp45n.js → pi-tools.policy-BE7fB_Cf.js} +2 -2
  154. package/dist/{pi-tools.policy-o0ytjRqu.js → pi-tools.policy-GxaAKOgf.js} +2 -2
  155. package/dist/{plugin-registry-Bn9Mj8mP.js → plugin-registry-B_KRAoou.js} +2 -2
  156. package/dist/{plugin-registry-BVYZLxmo.js → plugin-registry-CRIH5Sdf.js} +2 -2
  157. package/dist/plugin-sdk/agents/pi-embedded-runner/system-prompt.d.ts +7 -0
  158. package/dist/plugin-sdk/agents/pi-tools.read.d.ts +11 -0
  159. package/dist/plugin-sdk/agents/system-prompt-skills-autoload.d.ts +21 -0
  160. package/dist/plugin-sdk/{audio-preflight-DucGa8w7.js → audio-preflight-CwMsvdv8.js} +5 -5
  161. package/dist/plugin-sdk/{channel-web-BhqGIC7q.js → channel-web-CiewzSOW.js} +7 -7
  162. package/dist/plugin-sdk/{chrome-D9kN9org.js → chrome-Cou8jVJ2.js} +1 -1
  163. package/dist/plugin-sdk/config/model-profiles-builtin.d.ts +16 -0
  164. package/dist/plugin-sdk/config/resolve-model-profile.d.ts +9 -1
  165. package/dist/plugin-sdk/config/types.skills.d.ts +8 -0
  166. package/dist/plugin-sdk/config/zod-schema.d.ts +4 -0
  167. package/dist/plugin-sdk/{config-BzupW6LN.js → config-DQntj58u.js} +2 -0
  168. package/dist/plugin-sdk/{deliver-CKgFosI5.js → deliver-OVx3XKTy.js} +2 -2
  169. package/dist/plugin-sdk/{image-DFyINnvE.js → image-ChrcMCo_.js} +2 -2
  170. package/dist/plugin-sdk/index.js +18 -18
  171. package/dist/plugin-sdk/{login-K1YB_7-t.js → login-WuhOM4Dg.js} +2 -2
  172. package/dist/plugin-sdk/{login-qr-lMl_OqDj.js → login-qr-C87Q7LuN.js} +2 -2
  173. package/dist/plugin-sdk/{manager-DdOb0Em2.js → manager-Yvm-LGVR.js} +1 -1
  174. package/dist/plugin-sdk/{outbound-DW3cqlQW.js → outbound-T0XdUo-H.js} +1 -1
  175. package/dist/plugin-sdk/{pi-embedded-helpers-BL7ZRhGv.js → pi-embedded-helpers-DihvU43r.js} +5 -5
  176. package/dist/plugin-sdk/{pw-ai-B3T0mTHr.js → pw-ai-DUQ9kG2D.js} +2 -2
  177. package/dist/plugin-sdk/{replies-BR2TPTVW.js → replies-DD0EJRXx.js} +1 -1
  178. package/dist/plugin-sdk/{reply-Cjjf4VYT.js → reply-I6ZFg_UE.js} +212 -91
  179. package/dist/plugin-sdk/{runner-BhifC1J_.js → runner-IyZnVyIT.js} +2 -2
  180. package/dist/plugin-sdk/{send-ZhAe1nXO.js → send-Cxr9NnOd.js} +1 -1
  181. package/dist/plugin-sdk/{send-BP5pSPaZ.js → send-Dd71o3sZ.js} +1 -1
  182. package/dist/plugin-sdk/{send-DLO_yV5_.js → send-Do_qdBr_.js} +1 -1
  183. package/dist/plugin-sdk/{send-CGhw9mO3.js → send-DxXXcQ_o.js} +1 -1
  184. package/dist/plugin-sdk/{send-jsofmTfJ.js → send-SRQweHTE.js} +1 -1
  185. package/dist/plugin-sdk/{session-BfyK_04G.js → session-LEZ8u8RX.js} +1 -1
  186. package/dist/plugin-sdk/{synthesis-CZ8BYNXP.js → synthesis-bQ4DMwsj.js} +14 -14
  187. package/dist/plugin-sdk/{web-B8upqMUo.js → web-C3YuHiih.js} +18 -18
  188. package/dist/plugin-sdk/{whatsapp-actions-eTefsWhW.js → whatsapp-actions-ClWxTG5S.js} +2 -2
  189. package/dist/{plugins-cli-CYOQh2DM.js → plugins-cli-Co9cRpLe.js} +27 -27
  190. package/dist/{plugins-cli-3h1N5N8n.js → plugins-cli-MDYiXsRL.js} +28 -28
  191. package/dist/{program-D3_xE9BL.js → program-BWqVPm5t.js} +34 -34
  192. package/dist/{program-context-COwsYCbf.js → program-context-m9C36Cuq.js} +38 -38
  193. package/dist/{prompt-select-styled-D88AWCeM.js → prompt-select-styled-BKJVEVPk.js} +15 -15
  194. package/dist/{prompt-select-styled-rKPBDv7n.js → prompt-select-styled-DzjQVaDM.js} +15 -15
  195. package/dist/{provider-auth-helpers-CyZyVx-V.js → provider-auth-helpers-DYJ-0sNe.js} +2 -2
  196. package/dist/{provider-auth-helpers-rff7s_gC.js → provider-auth-helpers-DaTqy1aA.js} +2 -2
  197. package/dist/{push-apns-BNzgqUl3.js → push-apns-DdQlLTpV.js} +1 -1
  198. package/dist/{push-apns-d9qKGKPe.js → push-apns-_aeFBwsP.js} +1 -1
  199. package/dist/{pw-ai-DWkC5eGA.js → pw-ai-Bpp0J0PM.js} +2 -2
  200. package/dist/{pw-ai-DYZonrPL.js → pw-ai-D9ZuX3U6.js} +2 -2
  201. package/dist/{pw-ai-D9fCYPe7.js → pw-ai-DSmC8YuO.js} +2 -2
  202. package/dist/{pw-ai-40Jf9QIb.js → pw-ai-XSTIQILG.js} +2 -2
  203. package/dist/{qr-cli-CCWM_3Nb.js → qr-cli-Dq9G8FPl.js} +1 -1
  204. package/dist/{qr-cli-6eVyM6ek.js → qr-cli-DtHLOD1G.js} +1 -1
  205. package/dist/{register.agent-D_MON8p-.js → register.agent-Hi0PN67T.js} +35 -35
  206. package/dist/{register.agent-BjaqQA02.js → register.agent-RNTVF_Nk.js} +33 -33
  207. package/dist/{register.configure-UJi9sfNv.js → register.configure-DE2Fg1dO.js} +38 -38
  208. package/dist/{register.configure-BWkkQhpH.js → register.configure-Dp-F_KKy.js} +37 -37
  209. package/dist/{register.maintenance-ChskcWGz.js → register.maintenance-Bbd-g7nL.js} +37 -37
  210. package/dist/{register.maintenance-DJptz3DR.js → register.maintenance-QHRRhtsg.js} +35 -35
  211. package/dist/{register.message-BDTsiyrW.js → register.message-B5uWOXev.js} +27 -27
  212. package/dist/{register.message-CiadI_oS.js → register.message-BvutRi1a.js} +28 -28
  213. package/dist/{register.onboard-BflOE1jy.js → register.onboard-CNOh527M.js} +34 -34
  214. package/dist/{register.onboard-KR_-4TLY.js → register.onboard-DRHuoRTm.js} +33 -33
  215. package/dist/{register.setup-W-oNfOp0.js → register.setup-Cj0oOZqL.js} +33 -33
  216. package/dist/{register.setup-Cl0sD25T.js → register.setup-D1ePW7dl.js} +34 -34
  217. package/dist/{register.status-health-sessions-CT_SmmOH.js → register.status-health-sessions-DfyO7JaH.js} +30 -30
  218. package/dist/{register.status-health-sessions-CCQs235z.js → register.status-health-sessions-sf1XzcPo.js} +32 -32
  219. package/dist/{register.subclis-ByZAz4st.js → register.subclis-Do_HdpUT.js} +28 -28
  220. package/dist/{replies-D0NFBbd-.js → replies-BV7oFP7Z.js} +1 -1
  221. package/dist/{replies-Sxbew659.js → replies-BxvfG7Oj.js} +1 -1
  222. package/dist/{replies-CZH45dMt.js → replies-CPhYC11m.js} +1 -1
  223. package/dist/{replies-CUWXgyx2.js → replies-IkylJ7lX.js} +1 -1
  224. package/dist/{reply-CgyjcoxC.js → reply-DEub7xci.js} +221 -100
  225. package/dist/{routes-wmFRpLa9.js → routes-Evl8vnTV.js} +3 -3
  226. package/dist/{routes-c86p9MPH.js → routes-n7RUgOOW.js} +3 -3
  227. package/dist/{rpc-BKlQ97aZ.js → rpc-3T_LjHn1.js} +1 -1
  228. package/dist/{rpc-DC4ol5Xa.js → rpc-DeJsMHDF.js} +1 -1
  229. package/dist/{run-main-xmWpjZL9.js → run-main-B_ZLo4JR.js} +45 -45
  230. package/dist/{runner-BBYms6g4.js → runner-BX-ap4VU.js} +3 -3
  231. package/dist/{runner-DFuAePEr.js → runner-B_6xBcPB.js} +2 -2
  232. package/dist/{runner-ecX1WzDt.js → runner-CMvsDzah.js} +2 -2
  233. package/dist/{runner-Cbz8g76d.js → runner-CiThXXY3.js} +3 -3
  234. package/dist/{sandbox-CCHQuSja.js → sandbox-BQ5LAIBQ.js} +5 -5
  235. package/dist/{sandbox-WWVXeHlA.js → sandbox-T9SO3y3b.js} +5 -5
  236. package/dist/{sandbox-cli-BtGgnGrs.js → sandbox-cli-Bi8lblc6.js} +6 -6
  237. package/dist/{sandbox-cli-momxce7H.js → sandbox-cli-MZJX1Ht6.js} +6 -6
  238. package/dist/{security-cli-BfiJ3e0Y.js → security-cli-AZBZs6ww.js} +9 -9
  239. package/dist/{security-cli-CIB7kqEk.js → security-cli-txjMZzBx.js} +9 -9
  240. package/dist/{send-DvbOiJ-I.js → send-BPBFuPrC.js} +1 -1
  241. package/dist/{send-SF7x1UHb.js → send-BUBES34Y.js} +1 -1
  242. package/dist/{send-DpMnSIi5.js → send-BaSqjfd_.js} +1 -1
  243. package/dist/{send-Dz656vcm.js → send-Bi8XhwOZ.js} +1 -1
  244. package/dist/{send-Bb4it0te.js → send-BtbWvw2k.js} +1 -1
  245. package/dist/{send-DFtnbzqy.js → send-C4IU_tV3.js} +1 -1
  246. package/dist/{send-Iocbaltq.js → send-C6-rN_Li.js} +1 -1
  247. package/dist/{send-5GrSqB6v.js → send-CSkNKYIc.js} +1 -1
  248. package/dist/{send-BaFD3lZ7.js → send-CcD9S5so.js} +1 -1
  249. package/dist/{send-DLVrnezL.js → send-CfejAK2u.js} +1 -1
  250. package/dist/{send-CJJuN-Fg.js → send-CoSPwGiI.js} +1 -1
  251. package/dist/{send-9sVK0zP4.js → send-CupfdYEg.js} +1 -1
  252. package/dist/{send-BKo1T3HF.js → send-CyPj_MLV.js} +1 -1
  253. package/dist/{send-COVVt64P.js → send-DNqcjLyg.js} +1 -1
  254. package/dist/{send-C0QjmPaf.js → send-DlYO3ExM.js} +1 -1
  255. package/dist/{send-Cpk3Ti6-.js → send-Dn1Pirhx.js} +1 -1
  256. package/dist/{send-B5kAnKqP.js → send-_CmB6CKB.js} +1 -1
  257. package/dist/{send-DGbBPbV0.js → send-dohExhb8.js} +1 -1
  258. package/dist/{send-BqOhAhRS.js → send-llekTUks.js} +1 -1
  259. package/dist/{send-BaBv1rAU.js → send-vmIzYMwN.js} +1 -1
  260. package/dist/{server-context-C66bI8ZM.js → server-context-BkYSrDni.js} +5 -5
  261. package/dist/{server-context-DefCxQsB.js → server-context-CGMSzPWd.js} +5 -5
  262. package/dist/{server-methods-DDpCXuOU.js → server-methods-C-itThFa.js} +17 -17
  263. package/dist/{server-methods-CBn954AO.js → server-methods-P-ayY-6k.js} +16 -16
  264. package/dist/{server-node-events-BUEZ3py9.js → server-node-events-D5ee96aZ.js} +27 -27
  265. package/dist/{server-node-events-BBEMSKVE.js → server-node-events-tvNFkev2.js} +28 -28
  266. package/dist/{session-mFiujXaP.js → session-CMploMg7.js} +1 -1
  267. package/dist/{session-BTeY6Gn2.js → session-CifmyF9K.js} +1 -1
  268. package/dist/{session-BtL_LuWh.js → session-DQimwuIx.js} +1 -1
  269. package/dist/{session-BpaF8fzk.js → session-bvybh7vL.js} +1 -1
  270. package/dist/{session-utils-DaBIs243.js → session-utils-DQ-t0PxQ.js} +3 -3
  271. package/dist/{sessions-B2KSRtKQ.js → sessions-BIsirZy0.js} +3 -3
  272. package/dist/{sessions-BeYHj0gr.js → sessions-BKn2DFYs.js} +1 -1
  273. package/dist/{sessions-BPD85pWA.js → sessions-DCr5nAOw.js} +1 -1
  274. package/dist/{shared-PtB96PLH.js → shared-F4GNd-mC.js} +1 -1
  275. package/dist/{shared-C9vLT1Vj.js → shared-iaXjUnvo.js} +1 -1
  276. package/dist/{skills-cli-dTks7st0.js → skills-cli-BX1J5GLJ.js} +1 -1
  277. package/dist/{skills-cli-DiND94Um.js → skills-cli-CZgrqMPo.js} +1 -1
  278. package/dist/{status-BjMiGq0n.js → status-BlTLrS6h.js} +2 -2
  279. package/dist/{status-CG5iHUJ6.js → status-BqjF9Q9S.js} +9 -9
  280. package/dist/{status-PfvX-BjO.js → status-CfIkReeE.js} +10 -10
  281. package/dist/{status-CpvzoCOC.js → status-DjvBeoYl.js} +2 -2
  282. package/dist/{status.update-B5zI1_Id.js → status.update-BZnfRS2e.js} +1 -1
  283. package/dist/{status.update-8HXdAdwz.js → status.update-C5evp93A.js} +1 -1
  284. package/dist/{subagent-registry-D0IYimMO.js → subagent-registry-DVYhalAo.js} +222 -101
  285. package/dist/{synthesis-itgrzpuj.js → synthesis-DDQ5zAtf.js} +14 -14
  286. package/dist/{synthesis-BVZ5RJLg.js → synthesis-DRXsTePq.js} +26 -26
  287. package/dist/{synthesis-CBwKBuLy.js → synthesis-DgiYnjmZ.js} +14 -14
  288. package/dist/{synthesis-D55QrjAJ.js → synthesis-y-Ozm8YK.js} +27 -27
  289. package/dist/{system-cli-BERSpUjO.js → system-cli-IeefTiI1.js} +3 -3
  290. package/dist/{system-cli-C61hzNPk.js → system-cli-hjvWuxnn.js} +3 -3
  291. package/dist/{systemd-hints-Ct8ebNeC.js → systemd-hints-CW7G2Z_2.js} +1 -1
  292. package/dist/{systemd-hints-vhJS1sOh.js → systemd-hints-CcsN2P1C.js} +1 -1
  293. package/dist/{tui-CI_zqapL.js → tui-ByDc_eA-.js} +4 -4
  294. package/dist/{tui-Dg_cvgVP.js → tui-DulNash-.js} +4 -4
  295. package/dist/{tui-cli-DtBW_VCL.js → tui-cli-D--Wucil.js} +9 -9
  296. package/dist/{tui-cli-BD1cbShC.js → tui-cli-cbFjX5ua.js} +9 -9
  297. package/dist/{unified-runner-BhnvjB1J.js → unified-runner-BRmPenSK.js} +216 -95
  298. package/dist/{update-cli-D3K4mhrr.js → update-cli-5uhTWLns.js} +38 -38
  299. package/dist/{update-cli-CL1_LPBS.js → update-cli-BfvcUFky.js} +40 -40
  300. package/dist/{update-runner-DMucmRlv.js → update-runner-22u8HOoq.js} +1 -1
  301. package/dist/{update-runner-Bmq67eos.js → update-runner-DyENgdTM.js} +1 -1
  302. package/dist/{web-C1HPdY_D.js → web-B8GaP73t.js} +17 -17
  303. package/dist/{web-DmgQtLx3.js → web-CqeSgivQ.js} +30 -30
  304. package/dist/{web-DCO_YCRw.js → web-Dbe1DwOE.js} +17 -17
  305. package/dist/{web-B0lZdBBl.js → web-s9NWpUYH.js} +30 -30
  306. package/dist/{webhooks-cli-BEk3Xj9r.js → webhooks-cli-9lyrT9S-.js} +1 -1
  307. package/dist/{webhooks-cli-B7WTF3ao.js → webhooks-cli-C56QoA-d.js} +1 -1
  308. package/dist/{whatsapp-actions-uEcDLORc.js → whatsapp-actions-BV4mjN5j.js} +2 -2
  309. package/dist/{whatsapp-actions-DmVpLXmh.js → whatsapp-actions-BngdI8G3.js} +2 -2
  310. package/dist/{whatsapp-actions-DEn0NRir.js → whatsapp-actions-D5RBK0Cm.js} +2 -2
  311. package/dist/{whatsapp-actions-BUZuNBin.js → whatsapp-actions-Dx8FkbIf.js} +2 -2
  312. package/dist/{with-timeout-DwriPEWn.js → with-timeout-7gwjaz5c.js} +1 -1
  313. package/dist/{with-timeout-BuIx7QnX.js → with-timeout-C1vsg3IF.js} +1 -1
  314. package/extensions/bluebubbles/package.json +1 -1
  315. package/extensions/copilot-proxy/package.json +1 -1
  316. package/extensions/diagnostics-otel/package.json +1 -1
  317. package/extensions/discord/package.json +1 -1
  318. package/extensions/feishu/package.json +1 -1
  319. package/extensions/google-antigravity-auth/package.json +1 -1
  320. package/extensions/google-gemini-cli-auth/package.json +1 -1
  321. package/extensions/googlechat/package.json +1 -1
  322. package/extensions/imessage/package.json +1 -1
  323. package/extensions/irc/package.json +1 -1
  324. package/extensions/learning-loop/package.json +1 -1
  325. package/extensions/line/package.json +1 -1
  326. package/extensions/llm-task/package.json +1 -1
  327. package/extensions/matrix/CHANGELOG.md +6 -0
  328. package/extensions/matrix/package.json +1 -1
  329. package/extensions/mattermost/package.json +1 -1
  330. package/extensions/memory-core/package.json +1 -1
  331. package/extensions/memory-lancedb/package.json +1 -1
  332. package/extensions/minimax-portal-auth/package.json +1 -1
  333. package/extensions/msteams/CHANGELOG.md +6 -0
  334. package/extensions/msteams/package.json +1 -1
  335. package/extensions/nextcloud-talk/package.json +1 -1
  336. package/extensions/nostr/CHANGELOG.md +6 -0
  337. package/extensions/nostr/package.json +1 -1
  338. package/extensions/open-prose/package.json +1 -1
  339. package/extensions/outlook/package.json +1 -1
  340. package/extensions/pipeline/package.json +1 -1
  341. package/extensions/signal/package.json +1 -1
  342. package/extensions/slack/package.json +1 -1
  343. package/extensions/telegram/package.json +1 -1
  344. package/extensions/tlon/package.json +1 -1
  345. package/extensions/twitch/CHANGELOG.md +6 -0
  346. package/extensions/twitch/package.json +1 -1
  347. package/extensions/voice-call/CHANGELOG.md +6 -0
  348. package/extensions/voice-call/package.json +1 -1
  349. package/extensions/whatsapp/package.json +1 -1
  350. package/extensions/zalo/CHANGELOG.md +6 -0
  351. package/extensions/zalo/package.json +1 -1
  352. package/extensions/zalouser/CHANGELOG.md +6 -0
  353. package/extensions/zalouser/package.json +1 -1
  354. package/package.json +1 -1
@@ -4,16 +4,16 @@ import { _ as isCronSessionKey, b as resolveThreadParentSessionKey, c as normali
4
4
  import { $ as warn, B as sleep$1, D as escapeRegExp, E as ensureDir$3, G as danger, I as resolveUserPath, J as logVerbose, M as normalizeE164, O as formatTerminalLink, R as shortenHomeInString, S as CONFIG_DIR, U as truncateUtf16Safe, V as sliceUtf16Safe, W as isPlainObject, X as setVerbose, Z as shouldLogVerbose, _ as matchPluginCommand, a as normalizeAnyChannelId, d as createPluginRegistry, dt as resolvePreferredSymiTmpDir, et as colorize, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, k as isRecord$1, l as requireActivePluginRegistry, lt as normalizeLogLevel, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, nt as theme, o as normalizeChannelId, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, rt as getChildLogger, tt as isRich, u as setActivePluginRegistry, v as createInternalHookEvent, w as clampInt, x as triggerInternalHook, z as shortenHomePath } from "./registry-DYq1AYOv.js";
5
5
  import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, d as resolveSessionAgentIds, i as resolveAgentModelFallbacksOverride, l as resolveEffectiveModelFallbacks, n as resolveAgentConfig, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId } from "./agent-scope-CpEJ0B88.js";
6
6
  import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
7
- import { S as logWarn, _ as runExec, b as logError, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, i as DEFAULT_IDENTITY_FILENAME, l as ensureAgentWorkspace, m as resolveSymiPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as logInfo, y as logDebug } from "./workspace-DscDraUb.js";
7
+ import { S as logWarn, _ as runExec, b as logError, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, h as resolveSymiPackageRootSync, i as DEFAULT_IDENTITY_FILENAME, l as ensureAgentWorkspace, m as resolveSymiPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as logInfo, y as logDebug } from "./workspace-DscDraUb.js";
8
8
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-CbQV9WEg.js";
9
9
  import { $ as resolveAuthProfileDisplayLabel, B as resolveApiKeyForProvider, C as normalizeProviderId, D as resolveModelRefFromString, E as resolveDefaultModelForAgent, F as OLLAMA_NATIVE_BASE_URL, G as getShellPathFromLoginShell, H as resolveModelAuthMode, I as createOllamaStreamFn, L as getApiKeyForModel, O as resolveSubagentSpawnModelSelection, Q as DEFAULT_PROVIDER, R as getCustomProviderApiKey, S as normalizeModelRef$2, T as resolveConfiguredModelRef, V as resolveEnvApiKey, W as normalizeSecretInput, X as DEFAULT_CONTEXT_TOKENS, Z as DEFAULT_MODEL, _ as buildConfiguredAllowlistKeys, a as markAuthProfileFailure, b as isCliProvider, c as dedupeProfileIds, d as ensureAuthProfileStore, et as resolveSymiAgentDir, f as resolveAuthStorePathForDisplay, g as buildAllowedModelSet, i as isProfileInCooldown, k as resolveThinkingDefault, l as listProfilesForProvider, n as resolveAuthProfileOrder, o as markAuthProfileUsed, p as withFileLock, q as resolveShellEnvFallbackTimeoutMs, r as getSoonestCooldownExpiry, s as resolveApiKeyForProfile, u as markAuthProfileGood, v as buildModelAliasIndex, x as modelKey, y as findNormalizedProviderValue, z as requireApiKey } from "./auth-profiles-C2vj6htZ.js";
10
10
  import { n as formatCliCommand, r as resolveCliName, t as isTruthyEnvValue } from "./env-BDXYbTKj.js";
11
11
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-cCYzSU9h.js";
12
12
  import { t as parseBooleanValue$1 } from "./boolean-CE7i9tBR.js";
13
- import { $ as normalizeDeliveryContext, 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, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, 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 mergeDeliveryContext, 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 deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-D1_Sab0M.js";
14
- 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-BkZ9HOKT.js";
13
+ import { $ as normalizeDeliveryContext, 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, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, 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 mergeDeliveryContext, 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 deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-DrAT2ieP.js";
14
+ 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-BXMAsmut.js";
15
15
  import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-CBCGTsIb.js";
16
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-ROtrXlNs.js";
16
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-B1zznUiv.js";
17
17
  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-CXxrn_e2.js";
18
18
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-XIsvXeC-.js";
19
19
  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-C7CauEK8.js";
@@ -27,20 +27,20 @@ import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTele
27
27
  import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-BRw8yhIW.js";
28
28
  import { t as resolveIMessageAccount } from "./accounts-3dCrO3oZ.js";
29
29
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BuZxOb3B.js";
30
- 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-BKo1T3HF.js";
31
- 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-C0QjmPaf.js";
30
+ 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-CyPj_MLV.js";
31
+ 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-DlYO3ExM.js";
32
32
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-BBh3Gsrx.js";
33
33
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-SqqWIT22.js";
34
- 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-B0OUq6RP.js";
34
+ 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-nBdNxMIr.js";
35
35
  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-BUcR3Meg.js";
36
36
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Zw87xFym.js";
37
- 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-BuVL0jHI.js";
37
+ 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-CEdTQp1F.js";
38
38
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-RXOlh8ar.js";
39
39
  import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-W0JzCJJM.js";
40
- 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-Bb4it0te.js";
40
+ 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-BtbWvw2k.js";
41
41
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-CuZX_Q4t.js";
42
42
  import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CvEIl6_d.js";
43
- import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-CjW8kPVc.js";
43
+ import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-HASZR70T.js";
44
44
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-DjnxpF_K.js";
45
45
  import { n as retryAsync } from "./retry-B-y5suGA.js";
46
46
  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-DeJTztcq.js";
@@ -50,7 +50,7 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-CVCB
50
50
  import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-ClipCZ9s.js";
51
51
  import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-7tMVY7D_.js";
52
52
  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-DxbSTLNQ.js";
53
- import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-ecX1WzDt.js";
53
+ import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-CMvsDzah.js";
54
54
  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-DG2lcozb.js";
55
55
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-DZQU0r3y.js";
56
56
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-ClslA6GS.js";
@@ -58,11 +58,11 @@ import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-po
58
58
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-D8QD7GoV.js";
59
59
  import { n as normalizePollInput } from "./polls-Kt7OzYCK.js";
60
60
  import { t as convertMarkdownTables } from "./tables-DoG-pFrf.js";
61
- import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-Cpk3Ti6-.js";
62
- 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-DFtnbzqy.js";
61
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-Dn1Pirhx.js";
62
+ 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-C4IU_tV3.js";
63
63
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Jy5dFY67.js";
64
64
  import { t as makeProxyFetch } from "./proxy-d9fklNTC.js";
65
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-CUWXgyx2.js";
65
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-IkylJ7lX.js";
66
66
  import { t as getActiveWebListener } from "./active-listener-BVZOh2T1.js";
67
67
  import { createRequire } from "node:module";
68
68
  import * as path$1 from "node:path";
@@ -81,7 +81,7 @@ import AjvPkg from "ajv";
81
81
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
82
82
  import { createServer } from "node:http";
83
83
  import { ProxyAgent, fetch as fetch$1 } from "undici";
84
- import WebSocket, { WebSocket as WebSocket$1 } from "ws";
84
+ import WebSocket$1, { WebSocket } from "ws";
85
85
  import { Buffer as Buffer$1 } from "node:buffer";
86
86
  import { EdgeTTS } from "node-edge-tts";
87
87
  import { createJiti } from "jiti";
@@ -105,6 +105,38 @@ import { apiThrottler } from "@grammyjs/transformer-throttler";
105
105
 
106
106
  //#region src/config/model-profiles-builtin.ts
107
107
  /**
108
+ * Shared safety + output-style additions applied to most built-in profiles
109
+ * and the Generic fallback. These rules came from a long history of
110
+ * model-specific bugs (verification-monologue padding, "I have addressed"
111
+ * preambles, post-answer assessment lists). Keeping them in one place
112
+ * means a new profile inherits sane defaults instead of starting empty.
113
+ *
114
+ * Stage 2.4 of the prompt-reduction plan: rules that ALL profiles need
115
+ * live here; profile-specific rules (control-token stripping, tool-arg
116
+ * cleanup, reasoning hints) live in their own per-profile additions.
117
+ *
118
+ * Exported so resolve-model-profile.ts can apply the same additions to
119
+ * the Generic fallback profile — no model resolves to "Generic" without
120
+ * inheriting the safety/style rules.
121
+ */
122
+ const SAFETY_AND_STYLE_ADDITIONS = [
123
+ "CRITICAL OUTPUT RULES:",
124
+ "- Your response ends when you have delivered the answer. Do not append anything after.",
125
+ "- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
126
+ "- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
127
+ "- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
128
+ "- If you need to verify your work, do so before writing your response, not after.",
129
+ "- Send brief progress updates on long tasks so the user knows you are active."
130
+ ];
131
+ /** Hint for native-reasoning models (Nemotron, Qwen 3.5/3.6) to keep
132
+ * planning internal. Not applied to Gemma/Ollama because those models
133
+ * don't have structured thinking and the rule confuses them. */
134
+ const REASONING_DISCIPLINE_ADDITION = "- Keep planning and reasoning internal. Only speak when you have a result or need user input.";
135
+ /** Hint for models that leak Gemma-style control tokens (Gemma family,
136
+ * Ollama hosting any uncensored open model). Forces tool-arg cleanup and
137
+ * forbids leaking turn markers in user-visible text. */
138
+ const CONTROL_TOKEN_ADDITIONS = ["- Do not output raw control tokens, channel tags, or turn markers.", "- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax."];
139
+ /**
108
140
  * Built-in model profiles. Ordered from most-specific to least-specific so
109
141
  * that `resolveModelProfile` can return the first match.
110
142
  *
@@ -138,17 +170,7 @@ const BUILTIN_PROFILES = [
138
170
  hasStructuredThinking: false,
139
171
  validateToolArgs: true
140
172
  },
141
- promptAdditions: [
142
- "CRITICAL OUTPUT RULES:",
143
- "- Your response ends when you have delivered the answer. Do not append anything after.",
144
- "- Do not output raw control tokens, channel tags, or turn markers.",
145
- "- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
146
- "- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
147
- "- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
148
- "- If you need to verify your work, do so before writing your response, not after.",
149
- "- Send brief progress updates on long tasks so the user knows you are active.",
150
- "- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax."
151
- ],
173
+ promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, ...CONTROL_TOKEN_ADDITIONS],
152
174
  ui: {
153
175
  badge: "Local",
154
176
  watchdogMs: 9e5,
@@ -175,16 +197,7 @@ const BUILTIN_PROFILES = [
175
197
  hasStructuredThinking: true,
176
198
  validateToolArgs: false
177
199
  },
178
- promptAdditions: [
179
- "CRITICAL OUTPUT RULES:",
180
- "- Your response ends when you have delivered the answer. Do not append anything after.",
181
- "- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
182
- "- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
183
- "- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
184
- "- If you need to verify your work, do so before writing your response, not after.",
185
- "- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
186
- "- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
187
- ],
200
+ promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
188
201
  ui: {
189
202
  badge: "Local",
190
203
  watchdogMs: 9e5,
@@ -210,7 +223,7 @@ const BUILTIN_PROFILES = [
210
223
  hasStructuredThinking: true,
211
224
  validateToolArgs: false
212
225
  },
213
- promptAdditions: [],
226
+ promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS],
214
227
  ui: {
215
228
  badge: "API",
216
229
  watchdogMs: 3e5,
@@ -243,15 +256,7 @@ const BUILTIN_PROFILES = [
243
256
  hasStructuredThinking: true,
244
257
  validateToolArgs: false
245
258
  },
246
- promptAdditions: [
247
- "CRITICAL OUTPUT RULES:",
248
- "- Your response ends when you have delivered the answer. Do not append anything after.",
249
- "- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
250
- "- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
251
- "- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
252
- "- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
253
- "- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
254
- ],
259
+ promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
255
260
  ui: {
256
261
  badge: "Spider",
257
262
  watchdogMs: 9e5,
@@ -284,16 +289,7 @@ const BUILTIN_PROFILES = [
284
289
  hasStructuredThinking: false,
285
290
  validateToolArgs: true
286
291
  },
287
- promptAdditions: [
288
- "CRITICAL OUTPUT RULES:",
289
- "- Your response ends when you have delivered the answer. Do not append anything after.",
290
- "- Do not output raw control tokens, channel tags, or turn markers.",
291
- "- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
292
- "- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
293
- "- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
294
- "- Send brief progress updates on long tasks so the user knows you are active.",
295
- "- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax."
296
- ],
292
+ promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, ...CONTROL_TOKEN_ADDITIONS],
297
293
  ui: {
298
294
  badge: "Spider",
299
295
  watchdogMs: 6e5,
@@ -325,16 +321,7 @@ const BUILTIN_PROFILES = [
325
321
  hasStructuredThinking: true,
326
322
  validateToolArgs: false
327
323
  },
328
- promptAdditions: [
329
- "CRITICAL OUTPUT RULES:",
330
- "- Your response ends when you have delivered the answer. Do not append anything after.",
331
- "- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
332
- "- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
333
- "- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
334
- "- If you need to verify your work, do so before writing your response, not after.",
335
- "- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
336
- "- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
337
- ],
324
+ promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
338
325
  ui: {
339
326
  badge: "CoreWeave",
340
327
  watchdogMs: 9e5,
@@ -345,7 +332,15 @@ const BUILTIN_PROFILES = [
345
332
 
346
333
  //#endregion
347
334
  //#region src/config/resolve-model-profile.ts
348
- /** Default profile returned when no match is found. */
335
+ /**
336
+ * Default profile returned when no match is found.
337
+ *
338
+ * Stage 2.4 of the prompt-reduction plan: the Generic fallback now ships
339
+ * the same safety+style additions as every named profile, so newly-added
340
+ * models without a profile entry inherit sane defaults instead of
341
+ * starting empty (which would silently regress safety rules until someone
342
+ * notices and adds a profile).
343
+ */
349
344
  const FALLBACK_PROFILE = {
350
345
  match: "*",
351
346
  label: "Generic",
@@ -364,7 +359,7 @@ const FALLBACK_PROFILE = {
364
359
  hasStructuredThinking: false,
365
360
  validateToolArgs: false
366
361
  },
367
- promptAdditions: [],
362
+ promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS],
368
363
  ui: {
369
364
  watchdogMs: 3e5,
370
365
  armWatchdogOnSend: true
@@ -4340,7 +4335,7 @@ async function getMemorySearchManager(params) {
4340
4335
  const wrapper = new FallbackMemoryManager({
4341
4336
  primary,
4342
4337
  fallbackFactory: async () => {
4343
- const { MemoryIndexManager } = await import("./manager-CjW8kPVc.js").then((n) => n.n);
4338
+ const { MemoryIndexManager } = await import("./manager-HASZR70T.js").then((n) => n.n);
4344
4339
  return await MemoryIndexManager.get(params);
4345
4340
  }
4346
4341
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -4353,7 +4348,7 @@ async function getMemorySearchManager(params) {
4353
4348
  }
4354
4349
  }
4355
4350
  try {
4356
- const { MemoryIndexManager } = await import("./manager-CjW8kPVc.js").then((n) => n.n);
4351
+ const { MemoryIndexManager } = await import("./manager-HASZR70T.js").then((n) => n.n);
4357
4352
  return { manager: await MemoryIndexManager.get(params) };
4358
4353
  } catch (err) {
4359
4354
  return {
@@ -6447,6 +6442,86 @@ function buildEmbeddedSandboxInfo(sandbox, execElevated) {
6447
6442
  };
6448
6443
  }
6449
6444
 
6445
+ //#endregion
6446
+ //#region src/agents/system-prompt-skills-autoload.ts
6447
+ const FRONTMATTER_RE = /^---\s*\n[\s\S]*?\n---\s*\n?/;
6448
+ let cachedPackageRoot;
6449
+ function getPackageRoot() {
6450
+ if (cachedPackageRoot === void 0) cachedPackageRoot = resolveSymiPackageRootSync({});
6451
+ return cachedPackageRoot;
6452
+ }
6453
+ function safeSkillName(name) {
6454
+ return /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/.test(name);
6455
+ }
6456
+ function tryLoadSkill(skillName, root) {
6457
+ const skillPath = path.join(root, "skills", skillName, "SKILL.md");
6458
+ try {
6459
+ if (!fs.statSync(skillPath).isFile()) return null;
6460
+ } catch {
6461
+ return null;
6462
+ }
6463
+ try {
6464
+ return fs.readFileSync(skillPath, "utf8");
6465
+ } catch {
6466
+ return null;
6467
+ }
6468
+ }
6469
+ function stripFrontmatter(body) {
6470
+ return body.replace(FRONTMATTER_RE, "").trimStart();
6471
+ }
6472
+ /**
6473
+ * Resolves and loads each named skill. Returns the inlinable Markdown block,
6474
+ * or empty string when no skills loaded / minimal mode / no names supplied.
6475
+ */
6476
+ function buildAutoLoadedSkillsBlock(opts) {
6477
+ if (opts.minimalMode) return "";
6478
+ const names = opts.skillNames.filter((n) => typeof n === "string" && n.trim().length > 0);
6479
+ if (names.length === 0) return "";
6480
+ const packageRoot = getPackageRoot();
6481
+ const loaded = [];
6482
+ for (const rawName of names) {
6483
+ const name = rawName.trim();
6484
+ if (!safeSkillName(name)) {
6485
+ logWarn(`autoLoadInline: skipping invalid skill name '${rawName}'`);
6486
+ continue;
6487
+ }
6488
+ let body = null;
6489
+ let source = "bundled";
6490
+ if (opts.workspaceDir) {
6491
+ body = tryLoadSkill(name, opts.workspaceDir);
6492
+ source = "workspace";
6493
+ }
6494
+ if (body === null && packageRoot) {
6495
+ body = tryLoadSkill(name, packageRoot);
6496
+ source = "bundled";
6497
+ }
6498
+ if (body === null) {
6499
+ logWarn(`autoLoadInline: skill '${name}' not found in workspace or bundled skills`);
6500
+ continue;
6501
+ }
6502
+ const stripped = stripFrontmatter(body).trim();
6503
+ if (!stripped) {
6504
+ logWarn(`autoLoadInline: skill '${name}' has empty body after frontmatter strip; skipping`);
6505
+ continue;
6506
+ }
6507
+ loaded.push({
6508
+ name,
6509
+ body: stripped,
6510
+ source
6511
+ });
6512
+ }
6513
+ if (loaded.length === 0) return "";
6514
+ return [
6515
+ "",
6516
+ "---",
6517
+ "",
6518
+ "## Auto-loaded Skills",
6519
+ "",
6520
+ loaded.map((skill) => `<!-- auto-loaded: ${skill.name} (${skill.source}) -->\n${skill.body}`).join("\n\n---\n\n"),
6521
+ ""
6522
+ ].join("\n");
6523
+ }
6524
+
6450
6525
  //#endregion
6451
6526
  //#region src/agents/system-prompt.ts
6452
6527
  function buildSkillsSection(params) {
@@ -6963,7 +7038,7 @@ function buildToolSummaryMap(tools) {
6963
7038
  //#endregion
6964
7039
  //#region src/agents/pi-embedded-runner/system-prompt.ts
6965
7040
  function buildEmbeddedSystemPrompt(params) {
6966
- return buildAgentSystemPrompt({
7041
+ const corePrompt = buildAgentSystemPrompt({
6967
7042
  workspaceDir: params.workspaceDir,
6968
7043
  defaultThinkLevel: params.defaultThinkLevel,
6969
7044
  reasoningLevel: params.reasoningLevel,
@@ -6991,6 +7066,14 @@ function buildEmbeddedSystemPrompt(params) {
6991
7066
  contextFiles: params.contextFiles,
6992
7067
  memoryCitationsMode: params.memoryCitationsMode
6993
7068
  });
7069
+ const promptMode = params.promptMode ?? "full";
7070
+ const isMinimal = promptMode === "minimal" || promptMode === "none";
7071
+ const skillsBlock = buildAutoLoadedSkillsBlock({
7072
+ skillNames: params.autoLoadInlineSkills ?? [],
7073
+ workspaceDir: params.workspaceDir,
7074
+ minimalMode: isMinimal
7075
+ });
7076
+ return skillsBlock ? `${corePrompt}${skillsBlock}` : corePrompt;
6994
7077
  }
6995
7078
  function createSystemPromptOverride(systemPrompt) {
6996
7079
  const override = systemPrompt.trim();
@@ -8955,7 +9038,7 @@ var GatewayClient = class {
8955
9038
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
8956
9039
  });
8957
9040
  }
8958
- this.ws = new WebSocket$1(url, wsOptions);
9041
+ this.ws = new WebSocket(url, wsOptions);
8959
9042
  this.ws.on("open", () => {
8960
9043
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
8961
9044
  const tlsError = this.validateTlsFingerprint();
@@ -9174,7 +9257,7 @@ var GatewayClient = class {
9174
9257
  return null;
9175
9258
  }
9176
9259
  async request(method, params, opts) {
9177
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
9260
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
9178
9261
  const id = randomUUID();
9179
9262
  const frame = {
9180
9263
  type: "req",
@@ -10443,7 +10526,7 @@ async function routeReply(params) {
10443
10526
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
10444
10527
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
10445
10528
  try {
10446
- const { deliverOutboundPayloads } = await import("./deliver-B0OUq6RP.js").then((n) => n.n);
10529
+ const { deliverOutboundPayloads } = await import("./deliver-nBdNxMIr.js").then((n) => n.n);
10447
10530
  return {
10448
10531
  ok: true,
10449
10532
  messageId: (await deliverOutboundPayloads({
@@ -44236,7 +44319,7 @@ async function deliverSessionMaintenanceWarning(params) {
44236
44319
  return;
44237
44320
  }
44238
44321
  try {
44239
- const { deliverOutboundPayloads } = await import("./deliver-B0OUq6RP.js").then((n) => n.n);
44322
+ const { deliverOutboundPayloads } = await import("./deliver-nBdNxMIr.js").then((n) => n.n);
44240
44323
  await deliverOutboundPayloads({
44241
44324
  cfg: params.cfg,
44242
44325
  channel,
@@ -47682,7 +47765,7 @@ async function describeStickerImage(params) {
47682
47765
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
47683
47766
  try {
47684
47767
  const buffer = await fs$1.readFile(imagePath);
47685
- const { describeImageWithModel } = await import("./image-BuVL0jHI.js").then((n) => n.n);
47768
+ const { describeImageWithModel } = await import("./image-CEdTQp1F.js").then((n) => n.n);
47686
47769
  return (await describeImageWithModel({
47687
47770
  buffer,
47688
47771
  fileName: "sticker.webp",
@@ -48105,7 +48188,7 @@ function createWhatsAppLoginTool() {
48105
48188
  force: Type.Optional(Type.Boolean())
48106
48189
  }),
48107
48190
  execute: async (_toolCallId, args) => {
48108
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DdAVHOEC.js");
48191
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DyU6qD2X.js");
48109
48192
  if ((args?.action ?? "start") === "wait") {
48110
48193
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
48111
48194
  return {
@@ -50431,7 +50514,7 @@ async function preflightDiscordMessage(params) {
50431
50514
  let preflightTranscript;
50432
50515
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
50433
50516
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
50434
- const { transcribeFirstAudio } = await import("./audio-preflight-Cb-T0r6e.js");
50517
+ const { transcribeFirstAudio } = await import("./audio-preflight-DlO0Hw-w.js");
50435
50518
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
50436
50519
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
50437
50520
  ctx: {
@@ -54437,27 +54520,27 @@ function isVoiceChannelType(type) {
54437
54520
  function createDefaultDeps() {
54438
54521
  return {
54439
54522
  sendMessageWhatsApp: async (...args) => {
54440
- const { sendMessageWhatsApp } = await import("./web-DCO_YCRw.js");
54523
+ const { sendMessageWhatsApp } = await import("./web-Dbe1DwOE.js");
54441
54524
  return await sendMessageWhatsApp(...args);
54442
54525
  },
54443
54526
  sendMessageTelegram: async (...args) => {
54444
- const { sendMessageTelegram } = await import("./send-Bb4it0te.js").then((n) => n.l);
54527
+ const { sendMessageTelegram } = await import("./send-BtbWvw2k.js").then((n) => n.l);
54445
54528
  return await sendMessageTelegram(...args);
54446
54529
  },
54447
54530
  sendMessageDiscord: async (...args) => {
54448
- const { sendMessageDiscord } = await import("./send-C0QjmPaf.js").then((n) => n.t);
54531
+ const { sendMessageDiscord } = await import("./send-DlYO3ExM.js").then((n) => n.t);
54449
54532
  return await sendMessageDiscord(...args);
54450
54533
  },
54451
54534
  sendMessageSlack: async (...args) => {
54452
- const { sendMessageSlack } = await import("./send-BKo1T3HF.js").then((n) => n.n);
54535
+ const { sendMessageSlack } = await import("./send-CyPj_MLV.js").then((n) => n.n);
54453
54536
  return await sendMessageSlack(...args);
54454
54537
  },
54455
54538
  sendMessageSignal: async (...args) => {
54456
- const { sendMessageSignal } = await import("./send-Cpk3Ti6-.js").then((n) => n.i);
54539
+ const { sendMessageSignal } = await import("./send-Dn1Pirhx.js").then((n) => n.i);
54457
54540
  return await sendMessageSignal(...args);
54458
54541
  },
54459
54542
  sendMessageIMessage: async (...args) => {
54460
- const { sendMessageIMessage } = await import("./send-DFtnbzqy.js").then((n) => n.n);
54543
+ const { sendMessageIMessage } = await import("./send-C4IU_tV3.js").then((n) => n.n);
54461
54544
  return await sendMessageIMessage(...args);
54462
54545
  }
54463
54546
  };
@@ -57342,7 +57425,7 @@ function createDiscordGatewayPlugin(params) {
57342
57425
  super(options);
57343
57426
  }
57344
57427
  createWebSocket(url) {
57345
- return new WebSocket(url, { agent });
57428
+ return new WebSocket$1(url, { agent });
57346
57429
  }
57347
57430
  }
57348
57431
  return new ProxyGatewayPlugin();
@@ -65287,7 +65370,7 @@ async function registerSlackMonitorSlashCommands(params) {
65287
65370
  });
65288
65371
  const deliverSlashPayloads = async (replies) => {
65289
65372
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
65290
- import("./replies-CUWXgyx2.js").then((n) => n.r),
65373
+ import("./replies-IkylJ7lX.js").then((n) => n.r),
65291
65374
  import("./chunk-BRe1o4Af.js").then((n) => n.s),
65292
65375
  import("./markdown-tables-x2Xe2UXh.js").then((n) => n.t)
65293
65376
  ]);
@@ -67560,7 +67643,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
67560
67643
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
67561
67644
  let preflightTranscript;
67562
67645
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
67563
- const { transcribeFirstAudio } = await import("./audio-preflight-Cb-T0r6e.js");
67646
+ const { transcribeFirstAudio } = await import("./audio-preflight-DlO0Hw-w.js");
67564
67647
  preflightTranscript = await transcribeFirstAudio({
67565
67648
  ctx: {
67566
67649
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -69705,23 +69788,23 @@ let webLoginQrPromise = null;
69705
69788
  let webChannelPromise = null;
69706
69789
  let whatsappActionsPromise = null;
69707
69790
  function loadWebOutbound() {
69708
- webOutboundPromise ??= import("./outbound-Zmd7UyQH.js").then((n) => n.t);
69791
+ webOutboundPromise ??= import("./outbound-DVVulk0E.js").then((n) => n.t);
69709
69792
  return webOutboundPromise;
69710
69793
  }
69711
69794
  function loadWebLogin() {
69712
- webLoginPromise ??= import("./login-D4rZWBXe.js").then((n) => n.n);
69795
+ webLoginPromise ??= import("./login-Cu0fTI3Z.js").then((n) => n.n);
69713
69796
  return webLoginPromise;
69714
69797
  }
69715
69798
  function loadWebLoginQr() {
69716
- webLoginQrPromise ??= import("./login-qr-DdAVHOEC.js");
69799
+ webLoginQrPromise ??= import("./login-qr-DyU6qD2X.js");
69717
69800
  return webLoginQrPromise;
69718
69801
  }
69719
69802
  function loadWebChannel() {
69720
- webChannelPromise ??= import("./web-DCO_YCRw.js");
69803
+ webChannelPromise ??= import("./web-Dbe1DwOE.js");
69721
69804
  return webChannelPromise;
69722
69805
  }
69723
69806
  function loadWhatsAppActions() {
69724
- whatsappActionsPromise ??= import("./whatsapp-actions-DmVpLXmh.js");
69807
+ whatsappActionsPromise ??= import("./whatsapp-actions-BngdI8G3.js");
69725
69808
  return whatsappActionsPromise;
69726
69809
  }
69727
69810
  function createPluginRuntime() {
@@ -71596,6 +71679,22 @@ function wrapToolParamNormalization(tool, requiredParamGroups) {
71596
71679
  }
71597
71680
  };
71598
71681
  }
71682
+ /**
71683
+ * Override a tool's description while preserving execute, parameters, and
71684
+ * other properties. Used by Stage 2.5 of the prompt-reduction plan to move
71685
+ * usage docs from the system prompt into tool descriptions where they
71686
+ * belong contextually.
71687
+ *
71688
+ * The replacement description should include the upstream's tool-purpose
71689
+ * sentence so models that only read the description (without the prompt
71690
+ * section) still have the same baseline understanding.
71691
+ */
71692
+ function wrapToolWithDescriptionOverride(tool, description) {
71693
+ return {
71694
+ ...tool,
71695
+ description
71696
+ };
71697
+ }
71599
71698
  function wrapToolWorkspaceRootGuard(tool, root) {
71600
71699
  return {
71601
71700
  ...tool,
@@ -71836,6 +71935,26 @@ function resolveToolLoopDetectionConfig(params) {
71836
71935
  }
71837
71936
  };
71838
71937
  }
71938
+ /**
71939
+ * Edit tool description. Replaces the upstream's terse one-liner with
71940
+ * usage notes migrated from the system prompt's "Edit Tool Best Practices"
71941
+ * section in Stage 2.5 of the prompt-reduction plan. Co-locating these
71942
+ * notes with the tool means they ship only when edit is in palette, and
71943
+ * the system prompt section can be deleted in Stage 4 without losing the
71944
+ * guidance.
71945
+ *
71946
+ * Combined with the read-before-edit guard (Stage 1.3) and the model's
71947
+ * own discipline, this should kill the hallucinated-oldText failure class
71948
+ * for any well-intentioned model.
71949
+ */
71950
+ const EDIT_TOOL_DESCRIPTION = [
71951
+ "Edit a file by replacing exact text. The oldText must match the file EXACTLY (whitespace, indentation, and all).",
71952
+ "Best practices to avoid match failures:",
71953
+ "- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
71954
+ "- ALWAYS read the file first, then copy the exact text from the read output for oldText. The read-before-edit guard refuses edits to unread files.",
71955
+ "- If an edit fails with 'Could not find the exact text', re-read the file and retry with the exact text from the fresh read. Do NOT skip to a different issue.",
71956
+ "- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines)."
71957
+ ].join(" ");
71839
71958
  function createSymiCodingTools(options) {
71840
71959
  const execToolName = "exec";
71841
71960
  const sandbox = options?.sandbox?.enabled ? options.sandbox : void 0;
@@ -71924,7 +72043,7 @@ function createSymiCodingTools(options) {
71924
72043
  }
71925
72044
  if (tool.name === "edit") {
71926
72045
  if (sandboxRoot) return [];
71927
- const guarded = wrapEditToolWithGuard(wrapToolParamNormalization(createEditTool(workspaceRoot), CLAUDE_PARAM_GROUPS.edit), readEditTracker);
72046
+ const guarded = wrapEditToolWithGuard(wrapToolWithDescriptionOverride(wrapToolParamNormalization(createEditTool(workspaceRoot), CLAUDE_PARAM_GROUPS.edit), EDIT_TOOL_DESCRIPTION), readEditTracker);
71928
72047
  return [workspaceOnly ? wrapToolWorkspaceRootGuard(guarded, workspaceRoot) : guarded];
71929
72048
  }
71930
72049
  return [tool];
@@ -73687,7 +73806,8 @@ async function compactEmbeddedPiSessionDirect(params) {
73687
73806
  userTime,
73688
73807
  userTimeFormat,
73689
73808
  contextFiles,
73690
- memoryCitationsMode: params.config?.memory?.citations
73809
+ memoryCitationsMode: params.config?.memory?.citations,
73810
+ autoLoadInlineSkills: params.config?.skills?.autoLoadInline
73691
73811
  }));
73692
73812
  const sessionLock = await acquireSessionWriteLock({
73693
73813
  sessionFile: params.sessionFile,
@@ -77877,7 +77997,8 @@ async function runEmbeddedAttempt(params) {
77877
77997
  userTime,
77878
77998
  userTimeFormat,
77879
77999
  contextFiles,
77880
- memoryCitationsMode: params.config?.memory?.citations
78000
+ memoryCitationsMode: params.config?.memory?.citations,
78001
+ autoLoadInlineSkills: params.config?.skills?.autoLoadInline
77881
78002
  });
77882
78003
  const systemPromptReport = buildSystemPromptReport({
77883
78004
  source: "run",