@symerian/symi 2.6.28 → 2.6.30

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 (274) hide show
  1. package/dist/{accounts-BRw8yhIW.js → accounts-D1r2dq1t.js} +21 -21
  2. package/dist/{accounts-3dCrO3oZ.js → accounts-dRUMQQrB.js} +1 -1
  3. package/dist/{accounts-BuZxOb3B.js → accounts-wSphH5gv.js} +1 -1
  4. package/dist/{active-listener-CfHHV2SU.js → active-listener-DFUTUjxt.js} +1 -1
  5. package/dist/{agent-scope-CpEJ0B88.js → agent-scope-D68_xfTL.js} +3 -3
  6. package/dist/{agents-ST-RelE_.js → agents-F62kqpkn.js} +4 -4
  7. package/dist/{agents.config-BJqym5bg.js → agents.config-Bra6UznM.js} +1 -1
  8. package/dist/{agents.config-Dz-OLfrK.js → agents.config-CQ90zDyI.js} +1 -1
  9. package/dist/{audio-preflight-BVaaZWkg.js → audio-preflight-Bdbm4htn.js} +29 -29
  10. package/dist/{audio-preflight-C40mKAp7.js → audio-preflight-CPBOQV4I.js} +4 -4
  11. package/dist/{auth-choice-r5NHQXLW.js → auth-choice-D1uIw27C.js} +1 -1
  12. package/dist/{auth-choice-D8h_fABj.js → auth-choice-X1P4E-3Z.js} +1 -1
  13. package/dist/{auth-profiles-DdK1Hxaa.js → auth-profiles-Bl9aU7fc.js} +17 -17
  14. package/dist/{banner-Bn_I7g2w.js → banner-BabW0wLs.js} +1 -1
  15. package/dist/{bindings-BsHoBLIE.js → bindings-Bat2RnAR.js} +2 -2
  16. package/dist/build-info.json +3 -3
  17. package/dist/bundled/boot-md/handler.js +53 -53
  18. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  19. package/dist/bundled/command-logger/handler.js +1 -1
  20. package/dist/bundled/session-memory/handler.js +53 -53
  21. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  22. package/dist/{channel-activity-B6G1jnQT.js → channel-activity-DK0AV-r9.js} +1 -1
  23. package/dist/{channel-options-I_uoOZoj.js → channel-options-C64unDdQ.js} +1 -1
  24. package/dist/{channel-options-DwvK56mc.js → channel-options-CX-LE2dk.js} +1 -1
  25. package/dist/{channel-web-b0CCqrmj.js → channel-web-GzdyP40j.js} +1 -1
  26. package/dist/{channels-cli-BuYlQcEc.js → channels-cli-CQrhnixR.js} +4 -4
  27. package/dist/{channels-cli-TWQv4Aur.js → channels-cli-OymBYTkK.js} +4 -4
  28. package/dist/{chrome-DkaXoP36.js → chrome-BdQhP7bg.js} +21 -21
  29. package/dist/{chrome-CDJYxX5a.js → chrome-D2SKJnR7.js} +7 -7
  30. package/dist/{chunk-09egQapi.js → chunk-DR8ukp6r.js} +1 -1
  31. package/dist/{cli-CVwt1Fg7.js → cli-C1RjRVMT.js} +1 -1
  32. package/dist/{cli-Dul8S9oW.js → cli-zchCoTxI.js} +1 -1
  33. package/dist/{command-registry--BVAkymo.js → command-registry-D9xmmn9v.js} +9 -9
  34. package/dist/{commands-registry-Bfc7Uz0o.js → commands-registry-DIakZUZb.js} +4 -4
  35. package/dist/{completion-cli-CMPF-UWB.js → completion-cli-CdMbiAwX.js} +2 -2
  36. package/dist/{completion-cli-LSZGfNYt.js → completion-cli-CfhJhArh.js} +1 -1
  37. package/dist/{config-5SdHIcHU.js → config-CvmE3Yx1.js} +12 -12
  38. package/dist/{config-cli-CGl36qcO.js → config-cli-BWhToRSW.js} +1 -1
  39. package/dist/{config-cli-Ba5_OYLK.js → config-cli-De0w9QFu.js} +1 -1
  40. package/dist/{configure-BkxvX0D4.js → configure-DBPxwVXT.js} +3 -3
  41. package/dist/{configure-52avjwpv.js → configure-iCtE2gdv.js} +3 -3
  42. package/dist/control-ui/js/symipulse.js +4 -0
  43. package/dist/{deliver-C46-vyqg.js → deliver-BD6kFk6p.js} +20 -20
  44. package/dist/{deliver-BH0l3UKW.js → deliver-C-37cZUe.js} +1 -1
  45. package/dist/{diagnostic-rPhsBoZz.js → diagnostic-spWOtH_g.js} +1 -1
  46. package/dist/{doctor-completion-3JibMuKJ.js → doctor-completion-Cuy1NwzL.js} +1 -1
  47. package/dist/{doctor-completion-C8TRMeH9.js → doctor-completion-htc4kMhg.js} +1 -1
  48. package/dist/entry.js +1 -1
  49. package/dist/{env-BDXYbTKj.js → env-xmBFQPBP.js} +1 -1
  50. package/dist/extensionAPI.js +6 -6
  51. package/dist/{frontmatter-CTR5f_Ez.js → frontmatter-CV0YkjoY.js} +2 -2
  52. package/dist/{gateway-cli-CcBKPe7-.js → gateway-cli-DxSUgxx3.js} +9 -9
  53. package/dist/{gateway-cli-CRAuYms0.js → gateway-cli-pIBNUJhN.js} +9 -9
  54. package/dist/{gemini-auth-Dy12ZAH3.js → gemini-auth-C6Z-2T42.js} +1 -1
  55. package/dist/{github-copilot-token-cCYzSU9h.js → github-copilot-token-B8B2pmph.js} +7 -7
  56. package/dist/{glass-ui-ws-B2LHyjWF.js → glass-ui-ws-B5Iw-tYt.js} +7 -7
  57. package/dist/{glass-ui-ws-odUDh4Ax.js → glass-ui-ws-BVcaUJ4x.js} +7 -7
  58. package/dist/{health-cAOv8KHf.js → health-DK1EhshZ.js} +1 -1
  59. package/dist/{health-DU1f-Ruq.js → health-qWkLoxz7.js} +1 -1
  60. package/dist/{hooks-cli-BRlCeWiG.js → hooks-cli-Bt_pfMq8.js} +2 -2
  61. package/dist/{hooks-cli-Dtyjf26K.js → hooks-cli-QmJBRt0j.js} +2 -2
  62. package/dist/{image-CuzFLQWC.js → image-CE0mENPo.js} +4 -4
  63. package/dist/{image-CHzdaNJ4.js → image-DcpMiprB.js} +1 -1
  64. package/dist/{image-ops-C7CauEK8.js → image-ops-M5agStZn.js} +16 -16
  65. package/dist/index.js +6 -6
  66. package/dist/{ir-CTiz95Vb.js → ir-B-XXcYFe.js} +4 -4
  67. package/dist/llm-slug-generator.js +53 -53
  68. package/dist/{local-roots-DhZz0Ybs.js → local-roots-CdXg5-Cx.js} +5 -5
  69. package/dist/{login-ul8zaw_S.js → login-BHUrERYo.js} +7 -7
  70. package/dist/{login-qr-AP9agO-i.js → login-qr-BKIOHn1V.js} +12 -12
  71. package/dist/{manager-PprhCvO_.js → manager-DW3JqFpY.js} +22 -22
  72. package/dist/{manifest-registry-yb7sAlu4.js → manifest-registry-0J48biqr.js} +19 -19
  73. package/dist/{markdown-tables-C-BmIap8.js → markdown-tables-tW9bGjLM.js} +1 -1
  74. package/dist/{plugin-sdk/message-channel-BdI5Ra9S.js → message-channel-DwDSKGn4.js} +1 -1
  75. package/dist/{models-BQL1Rx8A.js → models-CBAKijCe.js} +2 -2
  76. package/dist/{models-cli-iXoriT4a.js → models-cli-CtWHHvR0.js} +3 -3
  77. package/dist/{models-cli-BWNnBUiT.js → models-cli-DkNjxGZ8.js} +2 -2
  78. package/dist/{onboard-dIjmiymZ.js → onboard-BmK2-tfb.js} +2 -2
  79. package/dist/{onboard-channels-99ZIc6U9.js → onboard-channels-CcoMVcOs.js} +1 -1
  80. package/dist/{onboard-channels-C87IzN9d.js → onboard-channels-CnNA3U8_.js} +1 -1
  81. package/dist/{onboard-D8IHkR2A.js → onboard-wJCi24zf.js} +2 -2
  82. package/dist/{onboarding-DCPTymIi.js → onboarding-Cs7XncoX.js} +3 -3
  83. package/dist/{onboarding-B-J8KGlq.js → onboarding-GGE9UgcE.js} +3 -3
  84. package/dist/{onboarding.finalize-DYrKwuL6.js → onboarding.finalize-BEMefoBu.js} +6 -6
  85. package/dist/{onboarding.finalize-CqnM29uP.js → onboarding.finalize-CawqY9YT.js} +5 -5
  86. package/dist/{outbound-CtMCmwxR.js → outbound-CIVsLpJK.js} +7 -7
  87. package/dist/{outbound-attachment-DJldbweZ.js → outbound-attachment-CHcmlip8.js} +2 -2
  88. package/dist/paths-CYmyCDsE.js +212 -0
  89. package/dist/{paths-CbQV9WEg.js → paths-DEuVuViW.js} +1 -1
  90. package/dist/{pi-auth-json-Bk8ERadJ.js → pi-auth-json-BYuCWAs0.js} +8 -8
  91. package/dist/{pi-embedded-BpqY8Naf.js → pi-embedded-eCY-k0yS.js} +20 -18
  92. package/dist/{pi-embedded-helpers-lgx_U5KS.js → pi-embedded-helpers-B8kqLWns.js} +4 -4
  93. package/dist/{pi-embedded-helpers-CfqDGQ9J.js → pi-embedded-helpers-Pnxzi8V5.js} +73 -73
  94. package/dist/{plugin-registry-Cp2i5y4t.js → plugin-registry-BqSezGzv.js} +1 -1
  95. package/dist/{plugin-registry-D54PM8pM.js → plugin-registry-C-RHl6z7.js} +1 -1
  96. package/dist/plugin-sdk/{accounts-BToL3HlP.js → accounts-BtaOa4z_.js} +1 -1
  97. package/dist/plugin-sdk/{accounts-D9zGZU5t.js → accounts-Ddm33hQm.js} +3 -3
  98. package/dist/plugin-sdk/{accounts-Dtszw3Zn.js → accounts-s-AdhXVR.js} +1 -1
  99. package/dist/plugin-sdk/{active-listener-bEk__wbB.js → active-listener-BXYeALs0.js} +1 -1
  100. package/dist/plugin-sdk/{agent-scope-C3gMMKCU.js → agent-scope-CYYpcO9W.js} +2 -2
  101. package/dist/plugin-sdk/{api-key-rotation-CVBMpnPc.js → api-key-rotation-D_sMvI5W.js} +1 -1
  102. package/dist/plugin-sdk/{audio-preflight-DoQQKlxa.js → audio-preflight-VpItkiy3.js} +24 -24
  103. package/dist/plugin-sdk/{bindings-BbwoUGPx.js → bindings-C7hRtgYW.js} +2 -2
  104. package/dist/plugin-sdk/{channel-activity-Ji7f0gqq.js → channel-activity-DoC1xtDu.js} +1 -1
  105. package/dist/plugin-sdk/{channel-web-DSd2f31z.js → channel-web-BOFr3AaP.js} +22 -22
  106. package/dist/plugin-sdk/{chrome-C7c_0I5M.js → chrome-B7RdxmJ0.js} +3 -3
  107. package/dist/plugin-sdk/{chunk-jvk9axTQ.js → chunk-Dw2XBYXv.js} +1 -1
  108. package/dist/plugin-sdk/{command-format-DSdvQ_M5.js → command-format-GKSevep4.js} +1 -1
  109. package/dist/plugin-sdk/{commands-registry-CQFbmUMs.js → commands-registry-COIaslGl.js} +4 -4
  110. package/dist/plugin-sdk/{config-DDkdiUOR.js → config-KlTNfkFF.js} +9 -9
  111. package/dist/plugin-sdk/{deliver-BZ6iNLl7.js → deliver-BZ99UKQq.js} +10 -10
  112. package/dist/plugin-sdk/{diagnostic-mFf4i4G9.js → diagnostic-05pm5Rxi.js} +1 -1
  113. package/dist/plugin-sdk/{image-BOYy0Ump.js → image-CLOPx7yW.js} +4 -4
  114. package/dist/plugin-sdk/{image-ops-Bnp6LXEx.js → image-ops-BlQR__MN.js} +1 -1
  115. package/dist/plugin-sdk/index.js +53 -53
  116. package/dist/plugin-sdk/{ir-Fb3qpcis.js → ir-BJ6BHE5b.js} +4 -4
  117. package/dist/plugin-sdk/{local-roots-Ckk1QfzI.js → local-roots-BHLNSI8U.js} +3 -3
  118. package/dist/plugin-sdk/{login-Bh3DZPam.js → login-DQMXuxOk.js} +7 -7
  119. package/dist/plugin-sdk/{login-qr-DbR7odSr.js → login-qr-BjVZSoCi.js} +9 -9
  120. package/dist/plugin-sdk/{manager-DckktAQ3.js → manager-CBSBFuFz.js} +8 -8
  121. package/dist/plugin-sdk/{manifest-registry-B3ugY9-f.js → manifest-registry-CPnHl_K3.js} +1 -1
  122. package/dist/plugin-sdk/{markdown-tables-Dfaqilz6.js → markdown-tables-BoYFajMu.js} +1 -1
  123. package/dist/{message-channel-OlFBYAw8.js → plugin-sdk/message-channel-COTAJzHd.js} +1 -1
  124. package/dist/plugin-sdk/{model-selection-OpU8HN50.js → model-selection-CsbEfrS0.js} +4 -4
  125. package/dist/plugin-sdk/{outbound-rF6G8Xpr.js → outbound-B0e8KdaR.js} +7 -7
  126. package/dist/plugin-sdk/{outbound-attachment-DnVQfTG2.js → outbound-attachment-CnslKL38.js} +2 -2
  127. package/dist/plugin-sdk/{pi-auth-json-CJk8t14T.js → pi-auth-json-qWi7ZIYV.js} +5 -5
  128. package/dist/plugin-sdk/{pi-embedded-helpers-BveUP4hk.js → pi-embedded-helpers-CW630epe.js} +17 -17
  129. package/dist/plugin-sdk/{plugins-BbAvhC25.js → plugins-BNByVCIH.js} +4 -4
  130. package/dist/plugin-sdk/{pw-ai-DjGUsee-.js → pw-ai-CnbPIPY9.js} +8 -8
  131. package/dist/plugin-sdk/{qmd-manager-mjKcdwVr.js → qmd-manager-CH0XbIHf.js} +4 -4
  132. package/dist/plugin-sdk/{registry--_pGht6S.js → registry-D0xTnUWt.js} +2 -2
  133. package/dist/plugin-sdk/{replies-fI39rPGa.js → replies-LLcQL3w6.js} +3 -3
  134. package/dist/plugin-sdk/{reply-XQCt49hi.js → reply-B7rSYofo.js} +82 -80
  135. package/dist/plugin-sdk/{reply-prefix-BHuV5t70.js → reply-prefix-uxfMZW4p.js} +1 -1
  136. package/dist/plugin-sdk/{resolve-outbound-target-BkCUbYGV.js → resolve-outbound-target-BiyAyTWz.js} +2 -2
  137. package/dist/plugin-sdk/{resolve-route-D3JH_D2N.js → resolve-route-B3CCBumQ.js} +3 -3
  138. package/dist/plugin-sdk/{retry-ilSJqnz9.js → retry-CwQ_iIj8.js} +1 -1
  139. package/dist/plugin-sdk/{runner-BVqnEfNe.js → runner-CGBT7tgF.js} +9 -9
  140. package/dist/plugin-sdk/{send-BtANzsAo.js → send-B2CEnVLL.js} +6 -6
  141. package/dist/plugin-sdk/{send-BHbXh8Ly.js → send-C5h_YxNb.js} +7 -7
  142. package/dist/plugin-sdk/{send-D6LMZJ_h.js → send-CRsR8-vO.js} +10 -10
  143. package/dist/plugin-sdk/{send-Bxdu6ZZy.js → send-CjOBB3Vo.js} +10 -10
  144. package/dist/plugin-sdk/{send-BMfJIhCk.js → send-pYqe432l.js} +6 -6
  145. package/dist/plugin-sdk/{session-kI0tzViQ.js → session-BsOrxiMj.js} +4 -4
  146. package/dist/plugin-sdk/{skill-commands-DCNXVERE.js → skill-commands-ff_01_r3.js} +5 -5
  147. package/dist/plugin-sdk/{skills-B1GeRYlu.js → skills-_yTP47Cd.js} +7 -7
  148. package/dist/plugin-sdk/{sqlite-Cq_7Cg4E.js → sqlite-CxAR5ttJ.js} +1 -1
  149. package/dist/plugin-sdk/{store-Do3t33-c.js → store-BdrNabcU.js} +2 -2
  150. package/dist/plugin-sdk/{subsystem-Coz2AgU8.js → subsystem-B2uDN3TV.js} +1 -1
  151. package/dist/plugin-sdk/{tables-DR0NmBeH.js → tables-DNwXwNFa.js} +1 -1
  152. package/dist/plugin-sdk/{target-errors-B7YyMnIi.js → target-errors-Paro1BjP.js} +2 -2
  153. package/dist/plugin-sdk/{thinking-DCNUIAHY.js → thinking-CXqf7WTe.js} +5 -5
  154. package/dist/{tokens-Bux9Y_xD.js → plugin-sdk/tokens-bC3UVmVH.js} +1 -1
  155. package/dist/{tool-images-SqqWIT22.js → plugin-sdk/tool-images-HJ2sfZDV.js} +2 -2
  156. package/dist/plugin-sdk/{tool-loop-detection-DU5sTIKg.js → tool-loop-detection-at_K42K7.js} +2 -2
  157. package/dist/plugin-sdk/web-iaHlqNQD.js +65 -0
  158. package/dist/plugin-sdk/{whatsapp-actions-CcBzDuL-.js → whatsapp-actions-DfseosPO.js} +21 -21
  159. package/dist/{plugins-BzmbgY7s.js → plugins-Bkr5ZdYs.js} +9 -9
  160. package/dist/{plugins-cli-BK2oAIgt.js → plugins-cli-D5l8DCUo.js} +2 -2
  161. package/dist/{plugins-cli-DPVj7Ll8.js → plugins-cli-DIKVN1j-.js} +2 -2
  162. package/dist/{program-Cs6SC0Y3.js → program-DKp_gWvH.js} +7 -7
  163. package/dist/{program-context-9l2VE3gk.js → program-context-CJO5zWl7.js} +17 -17
  164. package/dist/{prompt-select-styled-BEblj71P.js → prompt-select-styled-CuDVrio_.js} +4 -4
  165. package/dist/{prompt-select-styled-0rN-Bjc0.js → prompt-select-styled-Drbf4MLf.js} +4 -4
  166. package/dist/{provider-auth-helpers-BMmt5mEA.js → provider-auth-helpers-D0JrH_QE.js} +1 -1
  167. package/dist/{provider-auth-helpers-K5FZKmUs.js → provider-auth-helpers-ku70HLId.js} +1 -1
  168. package/dist/{push-apns-DkYs830G.js → push-apns-DWLiMsGQ.js} +1 -1
  169. package/dist/{push-apns-c1qXclcv.js → push-apns-DZvXSHuB.js} +1 -1
  170. package/dist/{pw-ai-De-KR9_s.js → pw-ai-1htA-NnS.js} +1 -1
  171. package/dist/{pw-ai-m0mj2KWK.js → pw-ai-BA-fJnJc.js} +11 -11
  172. package/dist/{qmd-manager-iDLSiI4Z.js → qmd-manager-BKu9rOuB.js} +7 -7
  173. package/dist/{register.agent-CMteZ9CA.js → register.agent-CW-Jt26a.js} +5 -5
  174. package/dist/{register.agent-B39c6eVV.js → register.agent-Dr-AvNVj.js} +6 -6
  175. package/dist/{register.configure-DNdw3aHr.js → register.configure-CPykN4LB.js} +6 -6
  176. package/dist/{register.configure-BPxWBOcN.js → register.configure-D3_5DZTq.js} +6 -6
  177. package/dist/{register.maintenance-BpLQ73q6.js → register.maintenance-BOxfAudK.js} +7 -7
  178. package/dist/{register.maintenance-DnLb4_pC.js → register.maintenance-BValTiSe.js} +8 -8
  179. package/dist/{register.message-CeZGfAG1.js → register.message-BzVaP85q.js} +2 -2
  180. package/dist/{register.message-DFEhBqvI.js → register.message-lbfcALgz.js} +2 -2
  181. package/dist/{register.onboard-Bbu2o5v-.js → register.onboard-B_CORRMq.js} +4 -4
  182. package/dist/{register.onboard-XELS-V90.js → register.onboard-CxhJjGFr.js} +4 -4
  183. package/dist/{register.setup-BbBvDDru.js → register.setup-CYeKu0ru.js} +4 -4
  184. package/dist/{register.setup-CLE7PdHv.js → register.setup-DeT-WyJj.js} +4 -4
  185. package/dist/{register.status-health-sessions-7zhAiHx0.js → register.status-health-sessions-BrNEfd3r.js} +3 -3
  186. package/dist/{register.status-health-sessions-D4qCiL0J.js → register.status-health-sessions-CYwrV6QO.js} +3 -3
  187. package/dist/{register.subclis-DovpQkAb.js → register.subclis-BCcY1GJC.js} +9 -9
  188. package/dist/{registry-DYq1AYOv.js → registry-UkL38jvt.js} +17 -17
  189. package/dist/{replies-LSmuwOhA.js → replies-mfnbLu2p.js} +3 -3
  190. package/dist/{reply-TUgh96BH.js → reply-BNLTgD0A.js} +6 -4
  191. package/dist/{reply-prefix-DpqZu44Z.js → reply-prefix-DkGsdyBm.js} +1 -1
  192. package/dist/{resolve-route-C4_I4GFI.js → resolve-route-q8AFnU5c.js} +4 -4
  193. package/dist/{retry-BBVXkKBV.js → retry-CqMeDhyp.js} +1 -1
  194. package/dist/{run-main-BPf5aLAC.js → run-main-BVSVpxZ3.js} +14 -14
  195. package/dist/{runner-DUBExAb5.js → runner-BcQ0sF9T.js} +1 -1
  196. package/dist/{runner-CU9l0uJh.js → runner-BnAUcMiq.js} +22 -22
  197. package/dist/{send-DYj_o4_F.js → send-B7z8CDbr.js} +18 -18
  198. package/dist/{send-CQAKg_12.js → send-Cd81AY_Z.js} +7 -7
  199. package/dist/{send-CvhXrdgS.js → send-D3zDmQim.js} +10 -10
  200. package/dist/{send-DAN9hA5h.js → send-XRUYukww.js} +6 -6
  201. package/dist/{send-CVMyYPQw.js → send-qItpAHcI.js} +6 -6
  202. package/dist/{server-methods-DAkx0Jqj.js → server-methods-BYcfPp30.js} +7 -7
  203. package/dist/{server-methods-DFuRwfyn.js → server-methods-BhRjuKEM.js} +7 -7
  204. package/dist/{server-node-events-CwxdrTiK.js → server-node-events-BEzZn2VI.js} +2 -2
  205. package/dist/{server-node-events-BiFHrjUb.js → server-node-events-BsPi-QDx.js} +2 -2
  206. package/dist/{session-DSU1vxxi.js → session-Dh2wWQkD.js} +8 -8
  207. package/dist/{skill-commands-DcVwOafC.js → skill-commands-B_f8uGi7.js} +16 -16
  208. package/dist/{skills-Bs0AW1g3.js → skills-CGHRETGF.js} +24 -24
  209. package/dist/{sqlite-D_mz1_-y.js → sqlite-Bv87EXeg.js} +16 -16
  210. package/dist/{status-QRydo-7w.js → status-BB7l5YGy.js} +2 -2
  211. package/dist/{status-C42zRdTE.js → status-BZgA_AUW.js} +1 -1
  212. package/dist/{status-DLT_0K6s.js → status-C7VswIJF.js} +1 -1
  213. package/dist/{status-v1fz4XO0.js → status-D9MVzUtM.js} +2 -2
  214. package/dist/{store-01F_JM7O.js → store-Ea3zM6xK.js} +6 -6
  215. package/dist/{subagent-registry-btvK-uGU.js → subagent-registry-CT87UyVy.js} +6 -4
  216. package/dist/{subsystem-BjyjJF-d.js → subsystem-DN75fnEF.js} +1 -1
  217. package/dist/{tables-qMwbq29u.js → tables-BX7_aBvN.js} +1 -1
  218. package/dist/{target-errors-Bbr9rlzN.js → target-errors-7KhTCTdS.js} +2 -2
  219. package/dist/{thinking-BprCy23Z.js → thinking-C9-JAUzD.js} +5 -5
  220. package/dist/{plugin-sdk/tokens-CWMflosr.js → tokens-BZGy4v--.js} +1 -1
  221. package/dist/{plugin-sdk/tool-images-D7Lno-TE.js → tool-images-B1qVCntj.js} +2 -2
  222. package/dist/{tool-loop-detection-DR_rrIA1.js → tool-loop-detection-C8FBZVVx.js} +3 -3
  223. package/dist/{unified-runner-BzcXoZmB.js → unified-runner-LSPKHmvx.js} +228 -226
  224. package/dist/{update-cli-CCo0jjlD.js → update-cli-DEbsukOW.js} +8 -8
  225. package/dist/{update-cli-JXIAh9-v.js → update-cli-Dyg_WetV.js} +7 -7
  226. package/dist/{update-runner-CNBdOfqY.js → update-runner-3-pTGczW.js} +1 -1
  227. package/dist/{update-runner-Dy2tM0ZX.js → update-runner-DYuIPErv.js} +1 -1
  228. package/dist/{web-PvQddZps.js → web-Bu_faeV-.js} +6 -6
  229. package/dist/{web-Bn27WNAv.js → web-CB7FYstW.js} +1 -1
  230. package/dist/{web-Bhv2j2Bf.js → web-DyvSF1Pu.js} +57 -57
  231. package/dist/{web-BB6PGgjn.js → web-Q47zU0qb.js} +2 -2
  232. package/dist/{whatsapp-actions-BIeSWsCF.js → whatsapp-actions-SXenaJIn.js} +23 -23
  233. package/dist/{workspace-DscDraUb.js → workspace-DqJ5h-ZB.js} +27 -27
  234. package/extensions/bluebubbles/node_modules/.bin/symi +0 -0
  235. package/extensions/copilot-proxy/node_modules/.bin/symi +0 -0
  236. package/extensions/diagnostics-otel/node_modules/.bin/acorn +0 -0
  237. package/extensions/diagnostics-otel/node_modules/.bin/symi +0 -0
  238. package/extensions/discord/node_modules/.bin/symi +0 -0
  239. package/extensions/feishu/node_modules/.bin/symi +0 -0
  240. package/extensions/google-antigravity-auth/node_modules/.bin/symi +0 -0
  241. package/extensions/google-gemini-cli-auth/node_modules/.bin/symi +0 -0
  242. package/extensions/googlechat/node_modules/.bin/symi +0 -0
  243. package/extensions/imessage/node_modules/.bin/symi +0 -0
  244. package/extensions/irc/node_modules/.bin/symi +0 -0
  245. package/extensions/learning-loop/node_modules/.bin/symi +0 -0
  246. package/extensions/line/node_modules/.bin/symi +0 -0
  247. package/extensions/matrix/node_modules/.bin/markdown-it +0 -0
  248. package/extensions/matrix/node_modules/.bin/symi +0 -0
  249. package/extensions/mattermost/node_modules/.bin/symi +0 -0
  250. package/extensions/memory-core/node_modules/.bin/symi +0 -0
  251. package/extensions/memory-lancedb/node_modules/.bin/arrow2csv +0 -0
  252. package/extensions/memory-lancedb/node_modules/.bin/openai +0 -0
  253. package/extensions/memory-lancedb/node_modules/.bin/symi +0 -0
  254. package/extensions/minimax-portal-auth/node_modules/.bin/symi +0 -0
  255. package/extensions/msteams/node_modules/.bin/symi +0 -0
  256. package/extensions/nextcloud-talk/node_modules/.bin/symi +0 -0
  257. package/extensions/nostr/node_modules/.bin/symi +0 -0
  258. package/extensions/nostr/node_modules/.bin/tsc +0 -0
  259. package/extensions/nostr/node_modules/.bin/tsserver +0 -0
  260. package/extensions/signal/node_modules/.bin/symi +0 -0
  261. package/extensions/slack/node_modules/.bin/symi +0 -0
  262. package/extensions/telegram/node_modules/.bin/symi +0 -0
  263. package/extensions/tlon/node_modules/.bin/symi +0 -0
  264. package/extensions/twitch/node_modules/.bin/symi +0 -0
  265. package/extensions/voice-call/node_modules/.bin/symi +0 -0
  266. package/extensions/whatsapp/node_modules/.bin/symi +0 -0
  267. package/extensions/zalo/node_modules/.bin/symi +0 -0
  268. package/extensions/zalouser/node_modules/.bin/symi +0 -0
  269. package/package.json +113 -83
  270. package/skills/nano-banana-pro/scripts/generate_image.py +0 -0
  271. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -0
  272. package/skills/tmux/scripts/find-sessions.sh +0 -0
  273. package/skills/tmux/scripts/wait-for-text.sh +0 -0
  274. package/dist/plugin-sdk/web--1cVrQ1K.js +0 -65
@@ -1,6 +1,6 @@
1
- import { a as resolveOAuthDir, c as expandHomePrefix, l as resolveEffectiveHomeDir, n as resolveConfigPath, u as resolveRequiredHomeDir } from "./paths-CE7eVGHg.js";
1
+ import { a as resolveOAuthDir, c as expandHomePrefix, l as resolveEffectiveHomeDir, n as resolveConfigPath, u as resolveRequiredHomeDir } from "./paths-CYmyCDsE.js";
2
2
  import path from "node:path";
3
- import fs from "node:fs";
3
+ import fsSync from "node:fs";
4
4
  import os from "node:os";
5
5
  import { Logger } from "tslog";
6
6
  import JSON5 from "json5";
@@ -12,9 +12,9 @@ function isNodeErrorWithCode(err, code) {
12
12
  return typeof err === "object" && err !== null && "code" in err && err.code === code;
13
13
  }
14
14
  function resolvePreferredSymiTmpDir(options = {}) {
15
- const accessSync = options.accessSync ?? fs.accessSync;
16
- const lstatSync = options.lstatSync ?? fs.lstatSync;
17
- const mkdirSync = options.mkdirSync ?? fs.mkdirSync;
15
+ const accessSync = options.accessSync ?? fsSync.accessSync;
16
+ const lstatSync = options.lstatSync ?? fsSync.lstatSync;
17
+ const mkdirSync = options.mkdirSync ?? fsSync.mkdirSync;
18
18
  const getuid = options.getuid ?? (() => {
19
19
  try {
20
20
  return typeof process.getuid === "function" ? process.getuid() : void 0;
@@ -38,14 +38,14 @@ function resolvePreferredSymiTmpDir(options = {}) {
38
38
  try {
39
39
  const preferred = lstatSync(POSIX_SYMI_TMP_DIR);
40
40
  if (!preferred.isDirectory() || preferred.isSymbolicLink()) return fallback();
41
- accessSync(POSIX_SYMI_TMP_DIR, fs.constants.W_OK | fs.constants.X_OK);
41
+ accessSync(POSIX_SYMI_TMP_DIR, fsSync.constants.W_OK | fsSync.constants.X_OK);
42
42
  if (!isSecureDirForUser(preferred)) return fallback();
43
43
  return POSIX_SYMI_TMP_DIR;
44
44
  } catch (err) {
45
45
  if (!isNodeErrorWithCode(err, "ENOENT")) return fallback();
46
46
  }
47
47
  try {
48
- accessSync("/tmp", fs.constants.W_OK | fs.constants.X_OK);
48
+ accessSync("/tmp", fsSync.constants.W_OK | fsSync.constants.X_OK);
49
49
  mkdirSync(POSIX_SYMI_TMP_DIR, {
50
50
  recursive: true,
51
51
  mode: 448
@@ -68,8 +68,8 @@ function resolvePreferredSymiTmpDir(options = {}) {
68
68
  function readLoggingConfig() {
69
69
  const configPath = resolveConfigPath();
70
70
  try {
71
- if (!fs.existsSync(configPath)) return;
72
- const raw = fs.readFileSync(configPath, "utf-8");
71
+ if (!fsSync.existsSync(configPath)) return;
72
+ const raw = fsSync.readFileSync(configPath, "utf-8");
73
73
  const logging = JSON5.parse(raw)?.logging;
74
74
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
75
75
  return logging;
@@ -172,7 +172,7 @@ function isFileLogLevelEnabled(level) {
172
172
  return levelToMinLevel(level) <= levelToMinLevel(settings.level);
173
173
  }
174
174
  function buildLogger(settings) {
175
- fs.mkdirSync(path.dirname(settings.file), { recursive: true });
175
+ fsSync.mkdirSync(path.dirname(settings.file), { recursive: true });
176
176
  if (isRollingPath(settings.file)) pruneOldRollingLogs(path.dirname(settings.file));
177
177
  const logger = new Logger({
178
178
  name: "symi",
@@ -186,7 +186,7 @@ function buildLogger(settings) {
186
186
  ...logObj,
187
187
  time
188
188
  });
189
- fs.appendFileSync(settings.file, `${line}\n`, { encoding: "utf8" });
189
+ fsSync.appendFileSync(settings.file, `${line}\n`, { encoding: "utf8" });
190
190
  } catch {}
191
191
  });
192
192
  for (const transport of externalTransports) attachExternalTransport(logger, transport);
@@ -238,14 +238,14 @@ function isRollingPath(file) {
238
238
  }
239
239
  function pruneOldRollingLogs(dir) {
240
240
  try {
241
- const entries = fs.readdirSync(dir, { withFileTypes: true });
241
+ const entries = fsSync.readdirSync(dir, { withFileTypes: true });
242
242
  const cutoff = Date.now() - MAX_LOG_AGE_MS;
243
243
  for (const entry of entries) {
244
244
  if (!entry.isFile()) continue;
245
245
  if (!entry.name.startsWith(`${LOG_PREFIX}-`) || !entry.name.endsWith(LOG_SUFFIX)) continue;
246
246
  const fullPath = path.join(dir, entry.name);
247
247
  try {
248
- if (fs.statSync(fullPath).mtimeMs < cutoff) fs.rmSync(fullPath, { force: true });
248
+ if (fsSync.statSync(fullPath).mtimeMs < cutoff) fsSync.rmSync(fullPath, { force: true });
249
249
  } catch {}
250
250
  }
251
251
  } catch {}
@@ -326,14 +326,14 @@ function isPlainObject(value) {
326
326
  //#endregion
327
327
  //#region src/utils.ts
328
328
  async function ensureDir(dir) {
329
- await fs.promises.mkdir(dir, { recursive: true });
329
+ await fsSync.promises.mkdir(dir, { recursive: true });
330
330
  }
331
331
  /**
332
332
  * Check if a file or directory exists at the given path.
333
333
  */
334
334
  async function pathExists(targetPath) {
335
335
  try {
336
- await fs.promises.access(targetPath);
336
+ await fsSync.promises.access(targetPath);
337
337
  return true;
338
338
  } catch {
339
339
  return false;
@@ -416,7 +416,7 @@ function readLidReverseMapping(lid, opts) {
416
416
  for (const dir of mappingDirs) {
417
417
  const mappingPath = path.join(dir, mappingFilename);
418
418
  try {
419
- const data = fs.readFileSync(mappingPath, "utf8");
419
+ const data = fsSync.readFileSync(mappingPath, "utf8");
420
420
  const phone = JSON.parse(data);
421
421
  if (phone === null || phone === void 0) continue;
422
422
  return normalizeE164(String(phone));
@@ -500,7 +500,7 @@ function resolveConfigDir(env = process.env, homedir = os.homedir) {
500
500
  if (override) return resolveUserPath(override);
501
501
  const newDir = path.join(resolveRequiredHomeDir(env, homedir), ".symi");
502
502
  try {
503
- if (fs.existsSync(newDir)) return newDir;
503
+ if (fsSync.existsSync(newDir)) return newDir;
504
504
  } catch {}
505
505
  return newDir;
506
506
  }
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { r as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-CVMyYPQw.js";
3
- import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-Bux9Y_xD.js";
4
- import { i as chunkMarkdownTextWithMode } from "./chunk-09egQapi.js";
2
+ import { r as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-qItpAHcI.js";
3
+ import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-BZGy4v--.js";
4
+ import { i as chunkMarkdownTextWithMode } from "./chunk-DR8ukp6r.js";
5
5
 
6
6
  //#region src/auto-reply/reply/reply-reference.ts
7
7
  function createReplyReferencePlanner(options) {
@@ -31487,7 +31487,7 @@ async function runAgentTurn(params) {
31487
31487
  function createDefaultDeps() {
31488
31488
  return {
31489
31489
  sendMessageWhatsApp: async (...args) => {
31490
- const { sendMessageWhatsApp } = await import("./web-BB6PGgjn.js");
31490
+ const { sendMessageWhatsApp } = await import("./web-Q47zU0qb.js");
31491
31491
  return await sendMessageWhatsApp(...args);
31492
31492
  },
31493
31493
  sendMessageTelegram: async (...args) => {
@@ -49918,7 +49918,7 @@ function loadWebLoginQr() {
49918
49918
  return webLoginQrPromise;
49919
49919
  }
49920
49920
  function loadWebChannel() {
49921
- webChannelPromise ??= import("./web-BB6PGgjn.js");
49921
+ webChannelPromise ??= import("./web-Q47zU0qb.js");
49922
49922
  return webChannelPromise;
49923
49923
  }
49924
49924
  function loadWhatsAppActions() {
@@ -71011,7 +71011,8 @@ async function runMemoryFlushIfNeeded(params) {
71011
71011
  const flushRunId = crypto.randomUUID();
71012
71012
  if (params.sessionKey) registerAgentRunContext(flushRunId, {
71013
71013
  sessionKey: params.sessionKey,
71014
- verboseLevel: params.resolvedVerboseLevel
71014
+ verboseLevel: params.resolvedVerboseLevel,
71015
+ isHeartbeat: params.isHeartbeat
71015
71016
  });
71016
71017
  let memoryCompactionCompleted = false;
71017
71018
  const flushSystemPrompt = [params.followupRun.run.extraSystemPrompt, memoryFlushSettings.systemPrompt].filter(Boolean).join("\n\n");
@@ -71379,7 +71380,8 @@ function createFollowupRunner(params) {
71379
71380
  const runId = crypto.randomUUID();
71380
71381
  if (queued.run.sessionKey) registerAgentRunContext(runId, {
71381
71382
  sessionKey: queued.run.sessionKey,
71382
- verboseLevel: queued.run.verboseLevel
71383
+ verboseLevel: queued.run.verboseLevel,
71384
+ isHeartbeat: opts?.isHeartbeat === true
71383
71385
  });
71384
71386
  let autoCompactionCompleted = false;
71385
71387
  let runResult;
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { n as resolveAgentConfig } from "./agent-scope-CpEJ0B88.js";
2
+ import { n as resolveAgentConfig } from "./agent-scope-D68_xfTL.js";
3
3
 
4
4
  //#region src/agents/identity.ts
5
5
  const DEFAULT_ACK_REACTION = "👀";
@@ -1,10 +1,10 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { d as sanitizeAgentId, f as DEFAULT_ACCOUNT_ID, i as buildAgentPeerSessionKey, n as DEFAULT_MAIN_KEY, p as normalizeAccountId, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-BCzIW1Y2.js";
3
- import { Z as shouldLogVerbose } from "./registry-DYq1AYOv.js";
4
- import { c as resolveDefaultAgentId } from "./agent-scope-CpEJ0B88.js";
5
- import { y as logDebug } from "./workspace-DscDraUb.js";
3
+ import { Z as shouldLogVerbose } from "./registry-UkL38jvt.js";
4
+ import { c as resolveDefaultAgentId } from "./agent-scope-D68_xfTL.js";
5
+ import { y as logDebug } from "./workspace-DqJ5h-ZB.js";
6
6
  import { t as normalizeChatType } from "./chat-type-3FRbbjbq.js";
7
- import { t as listBindings } from "./bindings-BsHoBLIE.js";
7
+ import { t as listBindings } from "./bindings-Bat2RnAR.js";
8
8
 
9
9
  //#region src/routing/resolve-route.ts
10
10
  var resolve_route_exports = /* @__PURE__ */ __exportAll({
@@ -1,4 +1,4 @@
1
- import { B as sleep } from "./registry-DYq1AYOv.js";
1
+ import { B as sleep } from "./registry-UkL38jvt.js";
2
2
 
3
3
  //#region src/infra/retry.ts
4
4
  const DEFAULT_RETRY_CONFIG = {
@@ -13,7 +13,7 @@ import "./client-DMBZpU6X.js";
13
13
  import "./call-BcE47FtD.js";
14
14
  import "./message-channel-C9dERklz.js";
15
15
  import "./pairing-token-Byh6drgn.js";
16
- import "./subagent-registry-btvK-uGU.js";
16
+ import "./subagent-registry-CT87UyVy.js";
17
17
  import "./sessions-CJXnZVjR.js";
18
18
  import "./tokens-Csntmwwn.js";
19
19
  import "./plugins-CwSlLxM8.js";
@@ -101,9 +101,9 @@ import { t as ensureSymiCliOnPath } from "./path-env-Bic_wXs9.js";
101
101
  import "./catalog-DLQFKucJ.js";
102
102
  import "./note-DDecZomM.js";
103
103
  import "./plugin-auto-enable-D6ENR3Xg.js";
104
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-D54PM8pM.js";
104
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-C-RHl6z7.js";
105
105
  import { t as assertSupportedRuntime } from "./runtime-guard-D7waq_Ho.js";
106
- import { t as emitCliBanner } from "./banner-Bn_I7g2w.js";
106
+ import { t as emitCliBanner } from "./banner-BabW0wLs.js";
107
107
  import "./doctor-config-flow-CA3eiKhd.js";
108
108
  import { n as ensureConfigReady } from "./config-guard-CPHvOzsC.js";
109
109
  import process$1 from "node:process";
@@ -118,7 +118,7 @@ const routeHealth = {
118
118
  const verbose = getVerboseFlag(argv, { includeDebug: true });
119
119
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
120
120
  if (timeoutMs === null) return false;
121
- const { healthCommand } = await import("./health-DU1f-Ruq.js").then((n) => n.i);
121
+ const { healthCommand } = await import("./health-qWkLoxz7.js").then((n) => n.i);
122
122
  await healthCommand({
123
123
  json,
124
124
  timeoutMs,
@@ -138,7 +138,7 @@ const routeStatus = {
138
138
  const verbose = getVerboseFlag(argv, { includeDebug: true });
139
139
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
140
140
  if (timeoutMs === null) return false;
141
- const { statusCommand } = await import("./status-QRydo-7w.js").then((n) => n.t);
141
+ const { statusCommand } = await import("./status-BB7l5YGy.js").then((n) => n.t);
142
142
  await statusCommand({
143
143
  json,
144
144
  deep,
@@ -172,7 +172,7 @@ const routeAgentsList = {
172
172
  run: async (argv) => {
173
173
  const json = hasFlag(argv, "--json");
174
174
  const bindings = hasFlag(argv, "--bindings");
175
- const { agentsListCommand } = await import("./agents-ST-RelE_.js").then((n) => n.t);
175
+ const { agentsListCommand } = await import("./agents-F62kqpkn.js").then((n) => n.t);
176
176
  await agentsListCommand({
177
177
  json,
178
178
  bindings
@@ -243,7 +243,7 @@ const routes = [
243
243
  const pathArg = getCommandPositionals(argv)[2];
244
244
  if (!pathArg) return false;
245
245
  const json = hasFlag(argv, "--json");
246
- const { runConfigGet } = await import("./config-cli-CGl36qcO.js");
246
+ const { runConfigGet } = await import("./config-cli-BWhToRSW.js");
247
247
  await runConfigGet({
248
248
  path: pathArg,
249
249
  json
@@ -256,7 +256,7 @@ const routes = [
256
256
  run: async (argv) => {
257
257
  const pathArg = getCommandPositionals(argv)[2];
258
258
  if (!pathArg) return false;
259
- const { runConfigUnset } = await import("./config-cli-CGl36qcO.js");
259
+ const { runConfigUnset } = await import("./config-cli-BWhToRSW.js");
260
260
  await runConfigUnset({ path: pathArg });
261
261
  return true;
262
262
  }
@@ -270,7 +270,7 @@ const routes = [
270
270
  const local = hasFlag(argv, "--local");
271
271
  const json = hasFlag(argv, "--json");
272
272
  const plain = hasFlag(argv, "--plain");
273
- const { modelsListCommand } = await import("./models-BQL1Rx8A.js").then((n) => n.t);
273
+ const { modelsListCommand } = await import("./models-CBAKijCe.js").then((n) => n.t);
274
274
  await modelsListCommand({
275
275
  all,
276
276
  local,
@@ -301,7 +301,7 @@ const routes = [
301
301
  const plain = hasFlag(argv, "--plain");
302
302
  const check = hasFlag(argv, "--check");
303
303
  const probe = hasFlag(argv, "--probe");
304
- const { modelsStatusCommand } = await import("./models-BQL1Rx8A.js").then((n) => n.t);
304
+ const { modelsStatusCommand } = await import("./models-CBAKijCe.js").then((n) => n.t);
305
305
  await modelsStatusCommand({
306
306
  json,
307
307
  plain,
@@ -379,7 +379,7 @@ async function runCli(argv = process$1.argv) {
379
379
  assertSupportedRuntime();
380
380
  if (await tryRouteCli(normalizedArgv)) return;
381
381
  enableConsoleCapture();
382
- const { buildProgram } = await import("./program-Cs6SC0Y3.js");
382
+ const { buildProgram } = await import("./program-DKp_gWvH.js");
383
383
  const program = buildProgram();
384
384
  installUnhandledRejectionHandler();
385
385
  process$1.on("uncaughtException", (error) => {
@@ -411,10 +411,10 @@ async function runCli(argv = process$1.argv) {
411
411
  const { getProgramContext } = await import("./program-context-CqzR_m-7.js").then((n) => n.n);
412
412
  const ctx = getProgramContext(program);
413
413
  if (ctx) {
414
- const { registerCoreCliByName } = await import("./command-registry--BVAkymo.js").then((n) => n.t);
414
+ const { registerCoreCliByName } = await import("./command-registry-D9xmmn9v.js").then((n) => n.t);
415
415
  await registerCoreCliByName(program, ctx, primary, parseArgv);
416
416
  }
417
- const { registerSubCliByName } = await import("./register.subclis-DovpQkAb.js").then((n) => n.a);
417
+ const { registerSubCliByName } = await import("./register.subclis-BCcY1GJC.js").then((n) => n.a);
418
418
  await registerSubCliByName(program, primary);
419
419
  }
420
420
  const hasBuiltinPrimary = primary !== null && program.commands.some((command) => command.name() === primary);
@@ -423,7 +423,7 @@ async function runCli(argv = process$1.argv) {
423
423
  primary,
424
424
  hasBuiltinPrimary
425
425
  })) {
426
- const { registerPluginCliCommands } = await import("./cli-CVwt1Fg7.js");
426
+ const { registerPluginCliCommands } = await import("./cli-C1RjRVMT.js");
427
427
  const { loadConfig } = await import("./config-DHBLS1Hl.js").then((n) => n.t);
428
428
  registerPluginCliCommands(program, loadConfig());
429
429
  }
@@ -4,7 +4,7 @@ import { G as resolveSymiAgentDir, T as resolveApiKeyForProvider, c as normalize
4
4
  import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
5
5
  import { _ as kindFromMime, d as detectMime, h as isAudioFileName, p as getFileExtension } from "./image-ops-ByaQt43P.js";
6
6
  import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-BmV60pPT.js";
7
- import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-CHzdaNJ4.js";
7
+ import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-DcpMiprB.js";
8
8
  import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-CSlZZ1Pw.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-BheTNyes.js";
10
10
  import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-CC8jiKDk.js";
@@ -1,17 +1,17 @@
1
- import { J as logVerbose, Z as shouldLogVerbose } from "./registry-DYq1AYOv.js";
2
- import { _ as runExec } from "./workspace-DscDraUb.js";
3
- import { $ as resolveSymiAgentDir, A as normalizeGoogleModelId, B as resolveApiKeyForProvider, C as normalizeProviderId, z as requireApiKey } from "./auth-profiles-DdK1Hxaa.js";
4
- import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-5SdHIcHU.js";
5
- import { c as detectMime, f as isAudioFileName, m as kindFromMime, u as getFileExtension } from "./image-ops-C7CauEK8.js";
1
+ import { J as logVerbose, Z as shouldLogVerbose } from "./registry-UkL38jvt.js";
2
+ import { _ as runExec } from "./workspace-DqJ5h-ZB.js";
3
+ import { $ as resolveSymiAgentDir, A as normalizeGoogleModelId, B as resolveApiKeyForProvider, C as normalizeProviderId, z as requireApiKey } from "./auth-profiles-Bl9aU7fc.js";
4
+ import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-CvmE3Yx1.js";
5
+ import { c as detectMime, f as isAudioFileName, m as kindFromMime, u as getFileExtension } from "./image-ops-M5agStZn.js";
6
6
  import { t as normalizeChatType } from "./chat-type-3FRbbjbq.js";
7
- import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-CuzFLQWC.js";
8
- import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-Dy12ZAH3.js";
7
+ import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-CE0mENPo.js";
8
+ import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-C6Z-2T42.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-DL3f_O53.js";
10
- import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-DhZz0Ybs.js";
10
+ import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-CdXg5-Cx.js";
11
11
  import path from "node:path";
12
12
  import { constants } from "node:fs";
13
13
  import os from "node:os";
14
- import fs$1 from "node:fs/promises";
14
+ import fs from "node:fs/promises";
15
15
  import { fileURLToPath } from "node:url";
16
16
  import crypto from "node:crypto";
17
17
  import process$1 from "node:process";
@@ -693,7 +693,7 @@ var MediaAttachmentCache = class {
693
693
  const size = await this.ensureLocalStat(entry);
694
694
  if (entry.resolvedPath) {
695
695
  if (size !== void 0 && size > params.maxBytes) throw new MediaUnderstandingSkipError("maxBytes", `Attachment ${params.attachmentIndex + 1} exceeds maxBytes ${params.maxBytes}`);
696
- const buffer = await fs$1.readFile(entry.resolvedPath);
696
+ const buffer = await fs.readFile(entry.resolvedPath);
697
697
  entry.buffer = buffer;
698
698
  entry.bufferMime = entry.bufferMime ?? entry.attachment.mime ?? await detectMime({
699
699
  buffer,
@@ -763,10 +763,10 @@ var MediaAttachmentCache = class {
763
763
  prefix: "symi-media",
764
764
  extension: path.extname(bufferResult.fileName || "") || ""
765
765
  });
766
- await fs$1.writeFile(tmpPath, bufferResult.buffer);
766
+ await fs.writeFile(tmpPath, bufferResult.buffer);
767
767
  entry.tempPath = tmpPath;
768
768
  entry.tempCleanup = async () => {
769
- await fs$1.unlink(tmpPath).catch(() => {});
769
+ await fs.unlink(tmpPath).catch(() => {});
770
770
  };
771
771
  return {
772
772
  path: tmpPath,
@@ -813,12 +813,12 @@ var MediaAttachmentCache = class {
813
813
  if (entry.statSize !== void 0) return entry.statSize;
814
814
  try {
815
815
  const currentPath = entry.resolvedPath;
816
- const stat = await fs$1.stat(currentPath);
816
+ const stat = await fs.stat(currentPath);
817
817
  if (!stat.isFile()) {
818
818
  entry.resolvedPath = void 0;
819
819
  return;
820
820
  }
821
- const canonicalPath = await fs$1.realpath(currentPath).catch(() => currentPath);
821
+ const canonicalPath = await fs.realpath(currentPath).catch(() => currentPath);
822
822
  if (!isInboundPathAllowed({
823
823
  filePath: canonicalPath,
824
824
  roots: await this.getCanonicalLocalPathRoots()
@@ -840,7 +840,7 @@ var MediaAttachmentCache = class {
840
840
  if (this.canonicalLocalPathRoots) return await this.canonicalLocalPathRoots;
841
841
  this.canonicalLocalPathRoots = (async () => mergeInboundPathRoots(this.localPathRoots, await Promise.all(this.localPathRoots.map(async (root) => {
842
842
  if (root.includes("*")) return root;
843
- return await fs$1.realpath(root).catch(() => root);
843
+ return await fs.realpath(root).catch(() => root);
844
844
  }))))();
845
845
  return await this.canonicalLocalPathRoots;
846
846
  }
@@ -882,7 +882,7 @@ async function loadModelCatalog(params) {
882
882
  });
883
883
  try {
884
884
  await ensureSymiModelsJson(params?.config ?? loadConfig());
885
- await (await import("./pi-auth-json-Bk8ERadJ.js")).ensurePiAuthJsonFromAuthProfiles(resolveSymiAgentDir());
885
+ await (await import("./pi-auth-json-BYuCWAs0.js")).ensurePiAuthJsonFromAuthProfiles(resolveSymiAgentDir());
886
886
  const piSdk = await importPiSdk();
887
887
  const agentDir = resolveSymiAgentDir();
888
888
  const { join } = await import("node:path");
@@ -942,7 +942,7 @@ function findModelInCatalog(catalog, provider, modelId) {
942
942
  async function fileExists(filePath) {
943
943
  if (!filePath) return false;
944
944
  try {
945
- await fs$1.stat(filePath);
945
+ await fs.stat(filePath);
946
946
  return true;
947
947
  } catch {
948
948
  return false;
@@ -1042,7 +1042,7 @@ async function resolveCliOutput(params) {
1042
1042
  const commandId = commandBase(params.command);
1043
1043
  const fileOutput = commandId === "whisper-cli" ? resolveWhisperCppOutputPath(params.args) : commandId === "whisper" ? resolveWhisperOutputPath(params.args, params.mediaPath) : null;
1044
1044
  if (fileOutput && await fileExists(fileOutput)) try {
1045
- const content = await fs$1.readFile(fileOutput, "utf8");
1045
+ const content = await fs.readFile(fileOutput, "utf8");
1046
1046
  if (content.trim()) return content.trim();
1047
1047
  } catch {}
1048
1048
  if (commandId === "gemini") {
@@ -1333,7 +1333,7 @@ async function runCliEntry(params) {
1333
1333
  maxBytes,
1334
1334
  timeoutMs
1335
1335
  });
1336
- const outputDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "symi-media-cli-"));
1336
+ const outputDir = await fs.mkdtemp(path.join(os.tmpdir(), "symi-media-cli-"));
1337
1337
  const mediaPath = pathResult.path;
1338
1338
  const outputBase = path.join(outputDir, path.parse(mediaPath).name);
1339
1339
  const templCtx = {
@@ -1367,7 +1367,7 @@ async function runCliEntry(params) {
1367
1367
  model: command
1368
1368
  };
1369
1369
  } finally {
1370
- await fs$1.rm(outputDir, {
1370
+ await fs.rm(outputDir, {
1371
1371
  recursive: true,
1372
1372
  force: true
1373
1373
  }).catch(() => {});
@@ -1411,9 +1411,9 @@ function candidateBinaryNames(name) {
1411
1411
  }
1412
1412
  async function isExecutable(filePath) {
1413
1413
  try {
1414
- if (!(await fs$1.stat(filePath)).isFile()) return false;
1414
+ if (!(await fs.stat(filePath)).isFile()) return false;
1415
1415
  if (process.platform === "win32") return true;
1416
- await fs$1.access(filePath, constants.X_OK);
1416
+ await fs.access(filePath, constants.X_OK);
1417
1417
  return true;
1418
1418
  } catch {
1419
1419
  return false;
@@ -1,23 +1,23 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { a as resolveOAuthDir, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-CE7eVGHg.js";
3
- import { G as danger, J as logVerbose, L as safeParseJson } from "./registry-DYq1AYOv.js";
4
- import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
5
- import { p as withFileLock$1 } from "./auth-profiles-DdK1Hxaa.js";
6
- import { t as isTruthyEnvValue } from "./env-BDXYbTKj.js";
7
- import { n as loadConfig } from "./config-5SdHIcHU.js";
2
+ import { a as resolveOAuthDir, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-CYmyCDsE.js";
3
+ import { G as danger, J as logVerbose, L as safeParseJson } from "./registry-UkL38jvt.js";
4
+ import { t as createSubsystemLogger } from "./subsystem-DN75fnEF.js";
5
+ import { p as withFileLock$1 } from "./auth-profiles-Bl9aU7fc.js";
6
+ import { t as isTruthyEnvValue } from "./env-xmBFQPBP.js";
7
+ import { n as loadConfig } from "./config-CvmE3Yx1.js";
8
8
  import { t as redactSensitiveText } from "./redact-BDMXB06K.js";
9
9
  import { n as formatErrorMessage, r as formatUncaughtError, t as extractErrorCode } from "./errors-XIsvXeC-.js";
10
- import { h as normalizeMimeType, p as isGifMedia, u as getFileExtension, v as mediaKindFromMime } from "./image-ops-C7CauEK8.js";
11
- import { l as resolveTelegramAccount, n as listChannelPlugins, t as getChannelPlugin } from "./plugins-BzmbgY7s.js";
12
- import { n as resolveMarkdownTableMode } from "./markdown-tables-C-BmIap8.js";
13
- import { a as loadWebMedia, n as markdownToIR, t as chunkMarkdownIR } from "./ir-CTiz95Vb.js";
10
+ import { h as normalizeMimeType, p as isGifMedia, u as getFileExtension, v as mediaKindFromMime } from "./image-ops-M5agStZn.js";
11
+ import { l as resolveTelegramAccount, n as listChannelPlugins, t as getChannelPlugin } from "./plugins-Bkr5ZdYs.js";
12
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-tW9bGjLM.js";
13
+ import { a as loadWebMedia, n as markdownToIR, t as chunkMarkdownIR } from "./ir-B-XXcYFe.js";
14
14
  import { t as renderMarkdownWithMarkers } from "./render-CDCvpfhh.js";
15
15
  import { t as resolveFetch } from "./fetch-Bso4i15F.js";
16
- import { i as createTelegramRetryRunner, n as recordChannelActivity } from "./channel-activity-B6G1jnQT.js";
16
+ import { i as createTelegramRetryRunner, n as recordChannelActivity } from "./channel-activity-DK0AV-r9.js";
17
17
  import { n as normalizePollInput } from "./polls-CCuCaqgv.js";
18
18
  import { t as makeProxyFetch } from "./proxy-CBJ1upuz.js";
19
19
  import path from "node:path";
20
- import fs from "node:fs";
20
+ import fsSync from "node:fs";
21
21
  import os from "node:os";
22
22
  import crypto from "node:crypto";
23
23
  import process$1 from "node:process";
@@ -131,7 +131,7 @@ function getPairingAdapter(channelId) {
131
131
  //#region src/plugin-sdk/json-store.ts
132
132
  async function readJsonFileWithFallback(filePath, fallback) {
133
133
  try {
134
- const parsed = safeParseJson(await fs.promises.readFile(filePath, "utf-8"));
134
+ const parsed = safeParseJson(await fsSync.promises.readFile(filePath, "utf-8"));
135
135
  if (parsed == null) return {
136
136
  value: fallback,
137
137
  exists: true
@@ -153,14 +153,14 @@ async function readJsonFileWithFallback(filePath, fallback) {
153
153
  }
154
154
  async function writeJsonFileAtomically(filePath, value) {
155
155
  const dir = path.dirname(filePath);
156
- await fs.promises.mkdir(dir, {
156
+ await fsSync.promises.mkdir(dir, {
157
157
  recursive: true,
158
158
  mode: 448
159
159
  });
160
160
  const tmp = path.join(dir, `${path.basename(filePath)}.${crypto.randomUUID()}.tmp`);
161
- await fs.promises.writeFile(tmp, `${JSON.stringify(value, null, 2)}\n`, { encoding: "utf-8" });
162
- await fs.promises.chmod(tmp, 384);
163
- await fs.promises.rename(tmp, filePath);
161
+ await fsSync.promises.writeFile(tmp, `${JSON.stringify(value, null, 2)}\n`, { encoding: "utf-8" });
162
+ await fsSync.promises.chmod(tmp, 384);
163
+ await fsSync.promises.rename(tmp, filePath);
164
164
  }
165
165
 
166
166
  //#endregion
@@ -221,7 +221,7 @@ async function readPairingRequests(filePath) {
221
221
  }
222
222
  async function ensureJsonFile(filePath, fallback) {
223
223
  try {
224
- await fs.promises.access(filePath);
224
+ await fsSync.promises.access(filePath);
225
225
  } catch {
226
226
  await writeJsonFile(filePath, fallback);
227
227
  }
@@ -1,11 +1,11 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { I as resolveUserPath, M as normalizeE164 } from "./registry-DYq1AYOv.js";
3
- import { n as loadConfig } from "./config-5SdHIcHU.js";
4
- import { v as mediaKindFromMime } from "./image-ops-C7CauEK8.js";
5
- import { t as resolveIMessageAccount } from "./accounts-3dCrO3oZ.js";
6
- import { n as resolveMarkdownTableMode } from "./markdown-tables-C-BmIap8.js";
7
- import { t as convertMarkdownTables } from "./tables-qMwbq29u.js";
8
- import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-DJldbweZ.js";
2
+ import { I as resolveUserPath, M as normalizeE164 } from "./registry-UkL38jvt.js";
3
+ import { n as loadConfig } from "./config-CvmE3Yx1.js";
4
+ import { v as mediaKindFromMime } from "./image-ops-M5agStZn.js";
5
+ import { t as resolveIMessageAccount } from "./accounts-dRUMQQrB.js";
6
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-tW9bGjLM.js";
7
+ import { t as convertMarkdownTables } from "./tables-BX7_aBvN.js";
8
+ import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-CHcmlip8.js";
9
9
  import { spawn } from "node:child_process";
10
10
  import { createInterface } from "node:readline";
11
11
 
@@ -1,17 +1,17 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { dt as resolvePreferredSymiTmpDir } from "./registry-DYq1AYOv.js";
3
- import { n as loadConfig } from "./config-5SdHIcHU.js";
4
- import { _ as maxBytesForKind, l as extensionForMime } from "./image-ops-C7CauEK8.js";
5
- import { _ as resolveDiscordAccount, v as normalizeDiscordToken } from "./plugins-BzmbgY7s.js";
2
+ import { dt as resolvePreferredSymiTmpDir } from "./registry-UkL38jvt.js";
3
+ import { n as loadConfig } from "./config-CvmE3Yx1.js";
4
+ import { _ as maxBytesForKind, l as extensionForMime } from "./image-ops-M5agStZn.js";
5
+ import { _ as resolveDiscordAccount, v as normalizeDiscordToken } from "./plugins-Bkr5ZdYs.js";
6
6
  import { a as requireTargetKind, i as parseTargetPrefixes, n as ensureTargetId, r as parseTargetMention, t as buildMessagingTarget } from "./targets-DGkXkFPj.js";
7
- import { n as retryAsync, t as resolveRetryConfig } from "./retry-BBVXkKBV.js";
8
- import { c as resolveChunkMode, i as chunkMarkdownTextWithMode } from "./chunk-09egQapi.js";
9
- import { n as resolveMarkdownTableMode } from "./markdown-tables-C-BmIap8.js";
10
- import { a as loadWebMedia, o as loadWebMediaRaw } from "./ir-CTiz95Vb.js";
7
+ import { n as retryAsync, t as resolveRetryConfig } from "./retry-CqMeDhyp.js";
8
+ import { c as resolveChunkMode, i as chunkMarkdownTextWithMode } from "./chunk-DR8ukp6r.js";
9
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-tW9bGjLM.js";
10
+ import { a as loadWebMedia, o as loadWebMediaRaw } from "./ir-B-XXcYFe.js";
11
11
  import { t as resolveFetch } from "./fetch-Bso4i15F.js";
12
- import { n as recordChannelActivity, r as createDiscordRetryRunner } from "./channel-activity-B6G1jnQT.js";
12
+ import { n as recordChannelActivity, r as createDiscordRetryRunner } from "./channel-activity-DK0AV-r9.js";
13
13
  import { n as normalizePollInput, t as normalizePollDurationHours } from "./polls-CCuCaqgv.js";
14
- import { t as convertMarkdownTables } from "./tables-qMwbq29u.js";
14
+ import { t as convertMarkdownTables } from "./tables-BX7_aBvN.js";
15
15
  import path from "node:path";
16
16
  import fs from "node:fs/promises";
17
17
  import { execFile } from "node:child_process";
@@ -1,12 +1,12 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { n as loadConfig } from "./config-5SdHIcHU.js";
3
- import { v as mediaKindFromMime } from "./image-ops-C7CauEK8.js";
4
- import { n as resolveSignalAccount } from "./accounts-BuZxOb3B.js";
5
- import { n as resolveMarkdownTableMode } from "./markdown-tables-C-BmIap8.js";
2
+ import { n as loadConfig } from "./config-CvmE3Yx1.js";
3
+ import { v as mediaKindFromMime } from "./image-ops-M5agStZn.js";
4
+ import { n as resolveSignalAccount } from "./accounts-wSphH5gv.js";
5
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-tW9bGjLM.js";
6
6
  import { n as fetchWithTimeout } from "./fetch-timeout-DL3f_O53.js";
7
- import { n as markdownToIR, t as chunkMarkdownIR } from "./ir-CTiz95Vb.js";
7
+ import { n as markdownToIR, t as chunkMarkdownIR } from "./ir-B-XXcYFe.js";
8
8
  import { t as resolveFetch } from "./fetch-Bso4i15F.js";
9
- import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-DJldbweZ.js";
9
+ import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-CHcmlip8.js";
10
10
  import { randomUUID } from "node:crypto";
11
11
 
12
12
  //#region src/signal/format.ts
@@ -1,11 +1,11 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { J as logVerbose } from "./registry-DYq1AYOv.js";
3
- import { n as loadConfig } from "./config-5SdHIcHU.js";
4
- import { d as resolveSlackAccount, m as resolveSlackBotToken } from "./plugins-BzmbgY7s.js";
2
+ import { J as logVerbose } from "./registry-UkL38jvt.js";
3
+ import { n as loadConfig } from "./config-CvmE3Yx1.js";
4
+ import { d as resolveSlackAccount, m as resolveSlackBotToken } from "./plugins-Bkr5ZdYs.js";
5
5
  import { a as requireTargetKind, i as parseTargetPrefixes, n as ensureTargetId, r as parseTargetMention, t as buildMessagingTarget } from "./targets-DGkXkFPj.js";
6
- import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-09egQapi.js";
7
- import { n as resolveMarkdownTableMode } from "./markdown-tables-C-BmIap8.js";
8
- import { a as loadWebMedia, n as markdownToIR, t as chunkMarkdownIR } from "./ir-CTiz95Vb.js";
6
+ import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-DR8ukp6r.js";
7
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-tW9bGjLM.js";
8
+ import { a as loadWebMedia, n as markdownToIR, t as chunkMarkdownIR } from "./ir-B-XXcYFe.js";
9
9
  import { t as renderMarkdownWithMarkers } from "./render-CDCvpfhh.js";
10
10
  import { WebClient } from "@slack/web-api";
11
11