@symerian/symi 2.3.0 → 2.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/dist/{agents-B0pTMEwy.js → agents-b1LWBQC2.js} +4 -4
  2. package/dist/{agents.config-_b7ghdyb.js → agents.config-BImdIqjf.js} +1 -1
  3. package/dist/{agents.config-CdNbu8M5.js → agents.config-CH52CAyr.js} +1 -1
  4. package/dist/{audio-preflight-BkIfnmpi.js → audio-preflight-BsfqyC31.js} +4 -4
  5. package/dist/{auth-choice-Bx2Ly3cQ.js → auth-choice-DX1GLTBf.js} +1 -1
  6. package/dist/{auth-choice-EFFQA4ii.js → auth-choice-DcA3lQQX.js} +1 -1
  7. package/dist/{banner-B3eic4uq.js → banner-C9OgeI9S.js} +1 -1
  8. package/dist/build-info.json +3 -3
  9. package/dist/bundled/boot-md/handler.js +6 -6
  10. package/dist/bundled/session-memory/handler.js +6 -6
  11. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  12. package/dist/{channel-options-75aPoFR-.js → channel-options-CKHMtbhF.js} +1 -1
  13. package/dist/{channel-options-CiowWU_F.js → channel-options-CUlWJdG7.js} +1 -1
  14. package/dist/{channel-web-B3e8z6ws.js → channel-web-DNGWTM8I.js} +1 -1
  15. package/dist/{channels-cli-DZM3aIdY.js → channels-cli-C7Q3h_ZW.js} +4 -4
  16. package/dist/{channels-cli-BDAVsmSm.js → channels-cli-D3n-xoKD.js} +4 -4
  17. package/dist/{chrome-CxSAp8x3.js → chrome-w3SLcQJF.js} +7 -7
  18. package/dist/{cli-BRwovkQi.js → cli-9nGKXD05.js} +1 -1
  19. package/dist/{cli-D9SQsNnH.js → cli-Bf6Le7bx.js} +1 -1
  20. package/dist/{command-registry-BOI6nYdi.js → command-registry-C6H5FwOm.js} +9 -9
  21. package/dist/{completion-cli-NNzoK79d.js → completion-cli-Cuqh9oMX.js} +1 -1
  22. package/dist/{completion-cli-83vpWmfU.js → completion-cli-DJNeDB6-.js} +2 -2
  23. package/dist/{config-cli-DEAh6EN8.js → config-cli-BG7fqSG5.js} +1 -1
  24. package/dist/{config-cli-MLtPektI.js → config-cli-BZARhhJb.js} +1 -1
  25. package/dist/{configure-vl7Z4vWj.js → configure-1q8nqdUB.js} +3 -3
  26. package/dist/{configure-BdfU-OWp.js → configure-CXMeenDU.js} +3 -3
  27. package/dist/{deliver-BA7ZN3iM.js → deliver-BmPK91JP.js} +1 -1
  28. package/dist/{doctor-completion-OyrrKhcY.js → doctor-completion-DE0ljh_m.js} +1 -1
  29. package/dist/{doctor-completion-Ds-_m1_I.js → doctor-completion-MHRUVcxM.js} +1 -1
  30. package/dist/entry.js +1 -1
  31. package/dist/extensionAPI.js +1 -1
  32. package/dist/{gateway-cli-DfFSqETj.js → gateway-cli-A_kepvEA.js} +9 -9
  33. package/dist/{gateway-cli-Coue82yW.js → gateway-cli-BL_vVTU2.js} +9 -9
  34. package/dist/{glass-ui-ws-Dkh8KQKx.js → glass-ui-ws-CWG8XziA.js} +7 -7
  35. package/dist/{glass-ui-ws-D0Y3Ftjr.js → glass-ui-ws-Drv5ICqE.js} +7 -7
  36. package/dist/{health-B1LT2TG3.js → health-B71iKlbh.js} +1 -1
  37. package/dist/{health-BL_zFcJ8.js → health-BTXjJASN.js} +1 -1
  38. package/dist/{hooks-cli-CI7p--JB.js → hooks-cli-D8Sc2Ha-.js} +2 -2
  39. package/dist/{hooks-cli-BoE1T7F1.js → hooks-cli-R6NcEG6h.js} +2 -2
  40. package/dist/{image-BGmVDkkw.js → image-rZ4x9VS9.js} +1 -1
  41. package/dist/index.js +6 -6
  42. package/dist/llm-slug-generator.js +6 -6
  43. package/dist/{models-DSx-ohwA.js → models-CNdluTFK.js} +2 -2
  44. package/dist/{models-cli-Dm_3bpun.js → models-cli-CN2aEEwr.js} +3 -3
  45. package/dist/{models-cli-B-mDqwNv.js → models-cli-dZewIFFK.js} +2 -2
  46. package/dist/{onboard-u4HyeN9s.js → onboard-DoPuzIkY.js} +2 -2
  47. package/dist/{onboard-channels-CixaQo6p.js → onboard-channels-BrmH9pSy.js} +1 -1
  48. package/dist/{onboard-channels-BUz8JSpV.js → onboard-channels-C-e8WBT5.js} +1 -1
  49. package/dist/{onboard-CPRPPhos.js → onboard-jMdLiAFB.js} +2 -2
  50. package/dist/{onboarding-DVnX6G65.js → onboarding-C4tCCVuf.js} +3 -3
  51. package/dist/{onboarding-HeYKKCUg.js → onboarding-Dahfev0C.js} +3 -3
  52. package/dist/{onboarding.finalize-BJD7ST55.js → onboarding.finalize-B-jArghw.js} +6 -6
  53. package/dist/{onboarding.finalize-CyfJOd_0.js → onboarding.finalize-C-UcCZwc.js} +5 -5
  54. package/dist/{pi-embedded-Du1crlEA.js → pi-embedded-Cox_hxBz.js} +229 -161
  55. package/dist/{pi-embedded-helpers-DEEaCvEp.js → pi-embedded-helpers-B2z46qeM.js} +4 -4
  56. package/dist/{pi-embedded-Dbwt0RDE.js → pi-embedded-u1nTVeVL.js} +243 -175
  57. package/dist/{plugin-registry-BHTWmVtf.js → plugin-registry-BUjhiC8S.js} +1 -1
  58. package/dist/{plugin-registry-B3_VvP9Z.js → plugin-registry-DB6m_jhG.js} +1 -1
  59. package/dist/plugin-sdk/{accounts-BToL3HlP.js → accounts-BtaOa4z_.js} +1 -1
  60. package/dist/plugin-sdk/{accounts-D9zGZU5t.js → accounts-Ddm33hQm.js} +3 -3
  61. package/dist/plugin-sdk/{accounts-Dtszw3Zn.js → accounts-s-AdhXVR.js} +1 -1
  62. package/dist/plugin-sdk/{active-listener-bEk__wbB.js → active-listener-BXYeALs0.js} +1 -1
  63. package/dist/plugin-sdk/{agent-scope-C3gMMKCU.js → agent-scope-CYYpcO9W.js} +2 -2
  64. package/dist/plugin-sdk/{api-key-rotation-CVBMpnPc.js → api-key-rotation-D_sMvI5W.js} +1 -1
  65. package/dist/plugin-sdk/{audio-preflight-DoQQKlxa.js → audio-preflight-VpItkiy3.js} +24 -24
  66. package/dist/plugin-sdk/{bindings-BbwoUGPx.js → bindings-C7hRtgYW.js} +2 -2
  67. package/dist/plugin-sdk/{channel-activity-Ji7f0gqq.js → channel-activity-DoC1xtDu.js} +1 -1
  68. package/dist/plugin-sdk/{channel-web-pXiGDTMm.js → channel-web-DBJ2f-u5.js} +22 -22
  69. package/dist/plugin-sdk/{chrome-C7c_0I5M.js → chrome-B7RdxmJ0.js} +3 -3
  70. package/dist/plugin-sdk/{chunk-jvk9axTQ.js → chunk-Dw2XBYXv.js} +1 -1
  71. package/dist/plugin-sdk/{command-format-DSdvQ_M5.js → command-format-GKSevep4.js} +1 -1
  72. package/dist/plugin-sdk/{commands-registry-CQFbmUMs.js → commands-registry-COIaslGl.js} +4 -4
  73. package/dist/plugin-sdk/{config-DDkdiUOR.js → config-KlTNfkFF.js} +9 -9
  74. package/dist/plugin-sdk/{deliver-BUns_L9e.js → deliver-BiGlXG5k.js} +10 -10
  75. package/dist/plugin-sdk/{diagnostic-mFf4i4G9.js → diagnostic-05pm5Rxi.js} +1 -1
  76. package/dist/plugin-sdk/{image-BOYy0Ump.js → image-CLOPx7yW.js} +4 -4
  77. package/dist/plugin-sdk/{image-ops-Bnp6LXEx.js → image-ops-BlQR__MN.js} +1 -1
  78. package/dist/plugin-sdk/index.js +53 -53
  79. package/dist/plugin-sdk/{ir-Fb3qpcis.js → ir-BJ6BHE5b.js} +4 -4
  80. package/dist/plugin-sdk/{local-roots-Ckk1QfzI.js → local-roots-BHLNSI8U.js} +3 -3
  81. package/dist/plugin-sdk/{login-Bh3DZPam.js → login-DQMXuxOk.js} +7 -7
  82. package/dist/plugin-sdk/{login-qr-DbR7odSr.js → login-qr-BjVZSoCi.js} +9 -9
  83. package/dist/plugin-sdk/{manager-DckktAQ3.js → manager-CBSBFuFz.js} +8 -8
  84. package/dist/plugin-sdk/{manifest-registry-B3ugY9-f.js → manifest-registry-CPnHl_K3.js} +1 -1
  85. package/dist/plugin-sdk/{markdown-tables-Dfaqilz6.js → markdown-tables-BoYFajMu.js} +1 -1
  86. package/dist/plugin-sdk/{message-channel-BdI5Ra9S.js → message-channel-COTAJzHd.js} +1 -1
  87. package/dist/plugin-sdk/{model-selection-OpU8HN50.js → model-selection-CsbEfrS0.js} +4 -4
  88. package/dist/plugin-sdk/{outbound-rF6G8Xpr.js → outbound-B0e8KdaR.js} +7 -7
  89. package/dist/plugin-sdk/{outbound-attachment-DnVQfTG2.js → outbound-attachment-CnslKL38.js} +2 -2
  90. package/dist/plugin-sdk/{pi-auth-json-CJk8t14T.js → pi-auth-json-qWi7ZIYV.js} +5 -5
  91. package/dist/plugin-sdk/{pi-embedded-helpers-BveUP4hk.js → pi-embedded-helpers-CW630epe.js} +17 -17
  92. package/dist/plugin-sdk/{plugins-BbAvhC25.js → plugins-BNByVCIH.js} +4 -4
  93. package/dist/plugin-sdk/{pw-ai-DjGUsee-.js → pw-ai-CnbPIPY9.js} +8 -8
  94. package/dist/plugin-sdk/{qmd-manager-mjKcdwVr.js → qmd-manager-CH0XbIHf.js} +4 -4
  95. package/dist/plugin-sdk/{registry--_pGht6S.js → registry-D0xTnUWt.js} +2 -2
  96. package/dist/plugin-sdk/{replies-fI39rPGa.js → replies-LLcQL3w6.js} +3 -3
  97. package/dist/plugin-sdk/{reply-ClH0tnJf.js → reply-8bK0BH5o.js} +305 -237
  98. package/dist/plugin-sdk/{reply-prefix-BHuV5t70.js → reply-prefix-uxfMZW4p.js} +1 -1
  99. package/dist/plugin-sdk/{resolve-outbound-target-BkCUbYGV.js → resolve-outbound-target-BiyAyTWz.js} +2 -2
  100. package/dist/plugin-sdk/{resolve-route-D3JH_D2N.js → resolve-route-B3CCBumQ.js} +3 -3
  101. package/dist/plugin-sdk/{retry-ilSJqnz9.js → retry-CwQ_iIj8.js} +1 -1
  102. package/dist/plugin-sdk/{runner-BVqnEfNe.js → runner-CGBT7tgF.js} +9 -9
  103. package/dist/plugin-sdk/{send-BtANzsAo.js → send-B2CEnVLL.js} +6 -6
  104. package/dist/plugin-sdk/{send-BHbXh8Ly.js → send-C5h_YxNb.js} +7 -7
  105. package/dist/plugin-sdk/{send-D6LMZJ_h.js → send-CRsR8-vO.js} +10 -10
  106. package/dist/plugin-sdk/{send-Bxdu6ZZy.js → send-CjOBB3Vo.js} +10 -10
  107. package/dist/plugin-sdk/{send-BMfJIhCk.js → send-pYqe432l.js} +6 -6
  108. package/dist/plugin-sdk/{session-kI0tzViQ.js → session-BsOrxiMj.js} +4 -4
  109. package/dist/plugin-sdk/{skill-commands-DCNXVERE.js → skill-commands-ff_01_r3.js} +5 -5
  110. package/dist/plugin-sdk/{skills-B1GeRYlu.js → skills-_yTP47Cd.js} +7 -7
  111. package/dist/plugin-sdk/{sqlite-Cq_7Cg4E.js → sqlite-CxAR5ttJ.js} +1 -1
  112. package/dist/plugin-sdk/{store-Do3t33-c.js → store-BdrNabcU.js} +2 -2
  113. package/dist/plugin-sdk/{subsystem-Coz2AgU8.js → subsystem-B2uDN3TV.js} +1 -1
  114. package/dist/plugin-sdk/{tables-DR0NmBeH.js → tables-DNwXwNFa.js} +1 -1
  115. package/dist/plugin-sdk/{target-errors-B7YyMnIi.js → target-errors-Paro1BjP.js} +2 -2
  116. package/dist/plugin-sdk/{thinking-DCNUIAHY.js → thinking-CXqf7WTe.js} +5 -5
  117. package/dist/plugin-sdk/{tokens-CWMflosr.js → tokens-bC3UVmVH.js} +1 -1
  118. package/dist/plugin-sdk/{tool-images-D7Lno-TE.js → tool-images-HJ2sfZDV.js} +2 -2
  119. package/dist/plugin-sdk/{tool-loop-detection-edmW8ZiF.js → tool-loop-detection-BVA6fax-.js} +2 -2
  120. package/dist/plugin-sdk/web-C-5ZChok.js +65 -0
  121. package/dist/plugin-sdk/{whatsapp-actions-CcBzDuL-.js → whatsapp-actions-DfseosPO.js} +21 -21
  122. package/dist/{plugins-cli-CiJ3j55S.js → plugins-cli-BuFYsQIf.js} +2 -2
  123. package/dist/{plugins-cli-Dm1uy7by.js → plugins-cli-DZhaDtma.js} +2 -2
  124. package/dist/{program-CH2ZAXFK.js → program-DlXflM2j.js} +7 -7
  125. package/dist/{program-context-BHdXKRCG.js → program-context-CgOHSNfJ.js} +17 -17
  126. package/dist/{prompt-select-styled-D8-TYiCU.js → prompt-select-styled-BM24eNt6.js} +4 -4
  127. package/dist/{prompt-select-styled-YbkZmrxn.js → prompt-select-styled-VDp7sLVS.js} +4 -4
  128. package/dist/{provider-auth-helpers-BvwbMhtC.js → provider-auth-helpers-DPc2nJjU.js} +1 -1
  129. package/dist/{provider-auth-helpers-BXnJRRuA.js → provider-auth-helpers-DqyK6Uuv.js} +1 -1
  130. package/dist/{push-apns-CtNHq-T0.js → push-apns-BP1VrPYl.js} +1 -1
  131. package/dist/{push-apns-BKDV4tcx.js → push-apns-DmCBSfsH.js} +1 -1
  132. package/dist/{pw-ai-DhwRiS06.js → pw-ai-PiQUncix.js} +1 -1
  133. package/dist/{register.agent-BUq96Y9v.js → register.agent-CFngezQc.js} +5 -5
  134. package/dist/{register.agent-BKI5-fHH.js → register.agent-MXEw1cDP.js} +6 -6
  135. package/dist/{register.configure-wxLUAVNm.js → register.configure-Dye2lrEX.js} +6 -6
  136. package/dist/{register.configure-D5lE614j.js → register.configure-yuP_CFyL.js} +6 -6
  137. package/dist/{register.maintenance-C7McOGSl.js → register.maintenance-CmGslWRY.js} +7 -7
  138. package/dist/{register.maintenance-CBkeGPZ5.js → register.maintenance-CmsjyCHR.js} +8 -8
  139. package/dist/{register.message-COdTYFse.js → register.message-BqeA08JG.js} +2 -2
  140. package/dist/{register.message-CI-7hMop.js → register.message-COWiw927.js} +2 -2
  141. package/dist/{register.onboard-BB0BR6ER.js → register.onboard-Bi5HeqKP.js} +4 -4
  142. package/dist/{register.onboard-Cvq4D9PO.js → register.onboard-GL4FQKKt.js} +4 -4
  143. package/dist/{register.setup-BYdcj7kG.js → register.setup-CwdX8TGJ.js} +4 -4
  144. package/dist/{register.setup-BFsDqWth.js → register.setup-DE8B6eLm.js} +4 -4
  145. package/dist/{register.status-health-sessions-Z5xGFCb6.js → register.status-health-sessions-CDZ7zo1L.js} +3 -3
  146. package/dist/{register.status-health-sessions-CLTBPceP.js → register.status-health-sessions-DD5niftr.js} +3 -3
  147. package/dist/{register.subclis-DbjFcioS.js → register.subclis-Cn7QTC_-.js} +9 -9
  148. package/dist/{reply-Dlka9TPn.js → reply-BU9TUp_K.js} +229 -161
  149. package/dist/{run-main-CZKS1Km-.js → run-main-B6YILTPp.js} +14 -14
  150. package/dist/{runner-B_KP4voe.js → runner-CCSMfQee.js} +1 -1
  151. package/dist/{server-methods-Dl2xnUeP.js → server-methods-BTiR6t8F.js} +7 -7
  152. package/dist/{server-methods-060ibtki.js → server-methods-DFsGxi3M.js} +7 -7
  153. package/dist/{server-node-events-CxdmKBmm.js → server-node-events-BNDR2xkm.js} +2 -2
  154. package/dist/{server-node-events-BaVEbs-L.js → server-node-events-DEifFVMC.js} +2 -2
  155. package/dist/{status-DFFFYwyN.js → status-BlSxFEeo.js} +1 -1
  156. package/dist/{status-B161_hoB.js → status-ChsVYdUd.js} +2 -2
  157. package/dist/{status-DqWKFOGN.js → status-D6EakoGU.js} +2 -2
  158. package/dist/{status-V0eZ4bzN.js → status-DwZBYK_G.js} +1 -1
  159. package/dist/{subagent-registry-DLH72QgE.js → subagent-registry-XIFSKsi7.js} +229 -161
  160. package/dist/{update-cli-t1GIk6uw.js → update-cli-C4Hrx6N-.js} +8 -8
  161. package/dist/{update-cli-BHNHad5c.js → update-cli-CXfz9C2E.js} +7 -7
  162. package/dist/{update-runner-CDG0-jLB.js → update-runner-BWHG84zP.js} +1 -1
  163. package/dist/{update-runner-Ciq1c0YL.js → update-runner-C6_7IzDb.js} +1 -1
  164. package/dist/{web-FaXjM6fP.js → web-Bpy6uQ4f.js} +1 -1
  165. package/dist/{web-CWhHll12.js → web-C1iHUvKH.js} +2 -2
  166. package/dist/{web-B_JQgMeX.js → web-CB8bYQpw.js} +6 -6
  167. package/dist/{web-BkvYOXO1.js → web-DPXq2-or.js} +1 -1
  168. package/package.json +1 -1
  169. package/dist/plugin-sdk/web-D-2D6z4H.js +0 -65
@@ -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-DLH72QgE.js";
16
+ import "./subagent-registry-XIFSKsi7.js";
17
17
  import "./sessions-CJXnZVjR.js";
18
18
  import "./tokens-Csntmwwn.js";
19
19
  import "./plugins-CwSlLxM8.js";
@@ -104,8 +104,8 @@ import "./daemon-runtime-CfRwa6qh.js";
104
104
  import "./runtime-guard-D7waq_Ho.js";
105
105
  import "./systemd-DlMdyFDY.js";
106
106
  import "./service-Cm9j9WzQ.js";
107
- import "./health-BL_zFcJ8.js";
108
- import "./onboarding-DVnX6G65.js";
107
+ import "./health-BTXjJASN.js";
108
+ import "./onboarding-C4tCCVuf.js";
109
109
  import "./shared-D8K9MkWg.js";
110
110
  import "./auth-token-Cmrk2TPo.js";
111
111
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-BGewRZy0.js";
@@ -113,7 +113,7 @@ import "./openai-model-default-DAwnTUcK.js";
113
113
  import "./model-picker-D5nCutGW.js";
114
114
  import "./systemd-linger-DA_LW52P.js";
115
115
  import "./onboard-custom-DdWPfzJO.js";
116
- import { t as onboardCommand } from "./onboard-u4HyeN9s.js";
116
+ import { t as onboardCommand } from "./onboard-DoPuzIkY.js";
117
117
  import JSON5 from "json5";
118
118
  import fs from "node:fs/promises";
119
119
 
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, P as setVerbose, k as info, z as isRich } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import { E as resolveSessionModelRef, pr as lookupContextTokens, y as classifySessionKey } from "./reply-Dlka9TPn.js";
4
+ import { E as resolveSessionModelRef, pr as lookupContextTokens, y as classifySessionKey } from "./reply-BU9TUp_K.js";
5
5
  import { S as parseAgentSessionKey } from "./session-key-DCt45XZa.js";
6
6
  import "./registry-Cja8eT7G.js";
7
7
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
@@ -114,8 +114,8 @@ import "./service-Cl74hx8J.js";
114
114
  import "./diagnostics-BAMlsVVX.js";
115
115
  import "./table-BTgkRafz.js";
116
116
  import "./audit-CrITRV6w.js";
117
- import { t as statusCommand } from "./status-DqWKFOGN.js";
118
- import { r as healthCommand } from "./health-B1LT2TG3.js";
117
+ import { t as statusCommand } from "./status-D6EakoGU.js";
118
+ import { r as healthCommand } from "./health-B71iKlbh.js";
119
119
  import "./update-check-CtckACbb.js";
120
120
  import "./dm-policy-shared-Bh3TbexU.js";
121
121
  import "./node-service-Cxz4e-Qd.js";
@@ -14,7 +14,7 @@ import "./client-DMBZpU6X.js";
14
14
  import "./call-BcE47FtD.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-DLH72QgE.js";
17
+ import "./subagent-registry-XIFSKsi7.js";
18
18
  import "./sessions-CJXnZVjR.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -108,8 +108,8 @@ import "./service-Cm9j9WzQ.js";
108
108
  import "./diagnostics-CS1ov_hH.js";
109
109
  import "./table-D01d2GuY.js";
110
110
  import "./audit-Byo5jCLN.js";
111
- import { n as statusCommand } from "./status-B161_hoB.js";
112
- import { r as healthCommand } from "./health-BL_zFcJ8.js";
111
+ import { n as statusCommand } from "./status-ChsVYdUd.js";
112
+ import { r as healthCommand } from "./health-BTXjJASN.js";
113
113
  import "./update-check-ZdimP1aU.js";
114
114
  import "./dm-policy-shared-DJ-61hCT.js";
115
115
  import "./node-service-fcZExd22.js";
@@ -49,7 +49,7 @@ const entries = [
49
49
  description: "Run, inspect, and query the WebSocket Gateway",
50
50
  hasSubcommands: true,
51
51
  register: async (program) => {
52
- (await import("./gateway-cli-Coue82yW.js")).registerGatewayCli(program);
52
+ (await import("./gateway-cli-BL_vVTU2.js")).registerGatewayCli(program);
53
53
  }
54
54
  },
55
55
  {
@@ -81,7 +81,7 @@ const entries = [
81
81
  description: "Discover, scan, and configure models",
82
82
  hasSubcommands: true,
83
83
  register: async (program) => {
84
- (await import("./models-cli-Dm_3bpun.js")).registerModelsCli(program);
84
+ (await import("./models-cli-CN2aEEwr.js")).registerModelsCli(program);
85
85
  }
86
86
  },
87
87
  {
@@ -161,7 +161,7 @@ const entries = [
161
161
  description: "Manage internal agent hooks",
162
162
  hasSubcommands: true,
163
163
  register: async (program) => {
164
- (await import("./hooks-cli-CI7p--JB.js")).registerHooksCli(program);
164
+ (await import("./hooks-cli-D8Sc2Ha-.js")).registerHooksCli(program);
165
165
  }
166
166
  },
167
167
  {
@@ -185,7 +185,7 @@ const entries = [
185
185
  description: "Secure DM pairing (approve inbound requests)",
186
186
  hasSubcommands: true,
187
187
  register: async (program) => {
188
- const { registerPluginCliCommands } = await import("./cli-BRwovkQi.js");
188
+ const { registerPluginCliCommands } = await import("./cli-9nGKXD05.js");
189
189
  registerPluginCliCommands(program, await loadConfig());
190
190
  (await import("./pairing-cli-CQRAnpvm.js")).registerPairingCli(program);
191
191
  }
@@ -195,8 +195,8 @@ const entries = [
195
195
  description: "Manage Symi plugins and extensions",
196
196
  hasSubcommands: true,
197
197
  register: async (program) => {
198
- (await import("./plugins-cli-Dm1uy7by.js")).registerPluginsCli(program);
199
- const { registerPluginCliCommands } = await import("./cli-BRwovkQi.js");
198
+ (await import("./plugins-cli-DZhaDtma.js")).registerPluginsCli(program);
199
+ const { registerPluginCliCommands } = await import("./cli-9nGKXD05.js");
200
200
  registerPluginCliCommands(program, await loadConfig());
201
201
  }
202
202
  },
@@ -205,7 +205,7 @@ const entries = [
205
205
  description: "Manage connected chat channels (Telegram, Discord, etc.)",
206
206
  hasSubcommands: true,
207
207
  register: async (program) => {
208
- (await import("./channels-cli-BDAVsmSm.js")).registerChannelsCli(program);
208
+ (await import("./channels-cli-D3n-xoKD.js")).registerChannelsCli(program);
209
209
  }
210
210
  },
211
211
  {
@@ -237,7 +237,7 @@ const entries = [
237
237
  description: "Update Symi and inspect update channel status",
238
238
  hasSubcommands: true,
239
239
  register: async (program) => {
240
- (await import("./update-cli-t1GIk6uw.js")).registerUpdateCli(program);
240
+ (await import("./update-cli-C4Hrx6N-.js")).registerUpdateCli(program);
241
241
  }
242
242
  },
243
243
  {
@@ -245,7 +245,7 @@ const entries = [
245
245
  description: "Generate shell completion script",
246
246
  hasSubcommands: false,
247
247
  register: async (program) => {
248
- (await import("./completion-cli-83vpWmfU.js").then((n) => n.n)).registerCompletionCli(program);
248
+ (await import("./completion-cli-DJNeDB6-.js").then((n) => n.n)).registerCompletionCli(program);
249
249
  }
250
250
  }
251
251
  ];
@@ -22374,7 +22374,7 @@ async function runWithImageModelFallback(params) {
22374
22374
  function createDefaultDeps() {
22375
22375
  return {
22376
22376
  sendMessageWhatsApp: async (...args) => {
22377
- const { sendMessageWhatsApp } = await import("./web-CWhHll12.js");
22377
+ const { sendMessageWhatsApp } = await import("./web-C1iHUvKH.js");
22378
22378
  return await sendMessageWhatsApp(...args);
22379
22379
  },
22380
22380
  sendMessageTelegram: async (...args) => {
@@ -40937,7 +40937,7 @@ function loadWebLoginQr() {
40937
40937
  return webLoginQrPromise;
40938
40938
  }
40939
40939
  function loadWebChannel() {
40940
- webChannelPromise ??= import("./web-CWhHll12.js");
40940
+ webChannelPromise ??= import("./web-C1iHUvKH.js");
40941
40941
  return webChannelPromise;
40942
40942
  }
40943
40943
  function loadWhatsAppActions() {
@@ -59029,6 +59029,162 @@ async function compactEmbeddedPiSession(params) {
59029
59029
  return enqueueCommandInLane(sessionLane, () => enqueueGlobal(async () => compactEmbeddedPiSessionDirect(params)));
59030
59030
  }
59031
59031
 
59032
+ //#endregion
59033
+ //#region src/config/model-profiles-builtin.ts
59034
+ /**
59035
+ * Built-in model profiles. Ordered from most-specific to least-specific so
59036
+ * that `resolveModelProfile` can return the first match.
59037
+ *
59038
+ * Order matters: "ollama/" must precede "gemma" because model IDs like
59039
+ * "ollama/gemma4:31b-128k" contain both substrings.
59040
+ */
59041
+ const BUILTIN_PROFILES = [
59042
+ {
59043
+ match: ["ollama/"],
59044
+ label: "Ollama Local",
59045
+ params: {
59046
+ temperature: 1,
59047
+ top_p: .95,
59048
+ top_k: 64,
59049
+ max_tokens: 4096,
59050
+ stop: ["<end_of_turn>", "<eos>"]
59051
+ },
59052
+ streaming: {
59053
+ deltaThrottleMs: 50,
59054
+ flushOnFinal: true,
59055
+ chunkPattern: "burst"
59056
+ },
59057
+ filters: {
59058
+ stripPatterns: [
59059
+ "<\\|channel>\\w*",
59060
+ "<channel\\|>",
59061
+ "<start_of_turn>(?:model|user)?",
59062
+ "<end_of_turn>"
59063
+ ],
59064
+ suppressMonologue: true,
59065
+ hasStructuredThinking: false
59066
+ },
59067
+ promptAdditions: ["You are running locally via Ollama. Do not output raw control tokens or internal monologue. Send brief progress updates on long tasks."],
59068
+ ui: {
59069
+ badge: "Local",
59070
+ watchdogMs: 9e5,
59071
+ armWatchdogOnSend: true
59072
+ }
59073
+ },
59074
+ {
59075
+ match: ["anthropic/", "claude-"],
59076
+ label: "Claude",
59077
+ params: {
59078
+ temperature: 1,
59079
+ top_p: 1,
59080
+ max_tokens: 8192
59081
+ },
59082
+ streaming: {
59083
+ deltaThrottleMs: 150,
59084
+ flushOnFinal: false,
59085
+ chunkPattern: "token"
59086
+ },
59087
+ filters: {
59088
+ stripPatterns: [],
59089
+ suppressMonologue: false,
59090
+ hasStructuredThinking: true
59091
+ },
59092
+ promptAdditions: [],
59093
+ ui: {
59094
+ badge: "API",
59095
+ watchdogMs: 3e5,
59096
+ armWatchdogOnSend: false
59097
+ }
59098
+ },
59099
+ {
59100
+ match: ["gemma", "redsand/"],
59101
+ label: "Gemma 4",
59102
+ params: {
59103
+ temperature: 1,
59104
+ top_p: .95,
59105
+ top_k: 64,
59106
+ max_tokens: 4096,
59107
+ stop: ["<end_of_turn>", "<eos>"]
59108
+ },
59109
+ streaming: {
59110
+ deltaThrottleMs: 50,
59111
+ flushOnFinal: true,
59112
+ chunkPattern: "burst"
59113
+ },
59114
+ filters: {
59115
+ stripPatterns: [
59116
+ "<\\|channel>\\w*",
59117
+ "<channel\\|>",
59118
+ "<start_of_turn>(?:model|user)?",
59119
+ "<end_of_turn>",
59120
+ "<\\|(?:fim_prefix|fim_suffix|fim_middle)\\|>",
59121
+ "^\\s*<bos>\\s*"
59122
+ ],
59123
+ suppressMonologue: true,
59124
+ hasStructuredThinking: false
59125
+ },
59126
+ promptAdditions: [
59127
+ "You are running as Gemma 4 via vLLM. Important behavioral rules:",
59128
+ "- Never output raw control tokens, channel tags, or turn markers in your responses.",
59129
+ "- Never display internal status checks, plans, or self-assessments. Your visible output should only be conversational responses and final results.",
59130
+ "- When working on multi-step tasks, send a brief one-line status update every 30-60 seconds so the user knows you are active.",
59131
+ "- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
59132
+ "- Do not use <|channel>thought or similar syntax. If you need to reason, do so silently."
59133
+ ],
59134
+ ui: {
59135
+ badge: "CoreWeave",
59136
+ watchdogMs: 6e5,
59137
+ armWatchdogOnSend: true
59138
+ }
59139
+ }
59140
+ ];
59141
+
59142
+ //#endregion
59143
+ //#region src/config/resolve-model-profile.ts
59144
+ /** Default profile returned when no match is found. */
59145
+ const FALLBACK_PROFILE = {
59146
+ match: "*",
59147
+ label: "Generic",
59148
+ params: {
59149
+ temperature: 1,
59150
+ max_tokens: 4096
59151
+ },
59152
+ streaming: {
59153
+ deltaThrottleMs: 150,
59154
+ flushOnFinal: true,
59155
+ chunkPattern: "burst"
59156
+ },
59157
+ filters: {
59158
+ stripPatterns: [],
59159
+ suppressMonologue: false,
59160
+ hasStructuredThinking: false
59161
+ },
59162
+ promptAdditions: [],
59163
+ ui: {
59164
+ watchdogMs: 3e5,
59165
+ armWatchdogOnSend: true
59166
+ }
59167
+ };
59168
+ /**
59169
+ * Resolve the active model profile for a given model ID.
59170
+ *
59171
+ * Resolution order:
59172
+ * 1. User-defined profiles (from `models.profiles` in symi.json)
59173
+ * 2. Built-in profiles ({@link BUILTIN_PROFILES})
59174
+ * 3. Fallback "Generic" profile
59175
+ *
59176
+ * Matching is case-insensitive prefix/substring against the model ID.
59177
+ */
59178
+ function resolveModelProfile(modelId, userProfiles) {
59179
+ const id = modelId.toLowerCase();
59180
+ const allProfiles = [...userProfiles ?? [], ...BUILTIN_PROFILES];
59181
+ for (const profile of allProfiles) {
59182
+ const patterns = Array.isArray(profile.match) ? profile.match : [profile.match];
59183
+ for (const pattern of patterns) if (id.startsWith(pattern.toLowerCase()) || id.includes(pattern.toLowerCase())) return profile;
59184
+ }
59185
+ return FALLBACK_PROFILE;
59186
+ }
59187
+
59032
59188
  //#endregion
59033
59189
  //#region src/agents/pi-embedded-runner/extra-params.ts
59034
59190
  const OPENROUTER_APP_HEADERS = {
@@ -59048,7 +59204,9 @@ const OPENAI_RESPONSES_PROVIDERS = new Set(["openai"]);
59048
59204
  function resolveExtraParams(params) {
59049
59205
  const modelKey = `${params.provider}/${params.modelId}`;
59050
59206
  const modelConfig = params.cfg?.agents?.defaults?.models?.[modelKey];
59051
- return modelConfig?.params ? { ...modelConfig.params } : void 0;
59207
+ if (modelConfig?.params) return { ...modelConfig.params };
59208
+ const profile = resolveModelProfile(modelKey, params.cfg?.models?.profiles);
59209
+ if (profile.params && Object.keys(profile.params).length > 0) return { ...profile.params };
59052
59210
  }
59053
59211
  /**
59054
59212
  * Resolve cacheRetention from extraParams, supporting both new `cacheRetention`
@@ -59078,16 +59236,40 @@ function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
59078
59236
  if (typeof extraParams.top_p === "number") streamParams.top_p = extraParams.top_p;
59079
59237
  if (typeof extraParams.top_k === "number") streamParams.top_k = extraParams.top_k;
59080
59238
  if (typeof extraParams.repeat_penalty === "number") streamParams.repeat_penalty = extraParams.repeat_penalty;
59239
+ if (Array.isArray(extraParams.stop) && extraParams.stop.length > 0) streamParams.stop = extraParams.stop;
59081
59240
  if (extraParams.chat_template_kwargs && typeof extraParams.chat_template_kwargs === "object") streamParams.chat_template_kwargs = extraParams.chat_template_kwargs;
59082
59241
  const cacheRetention = resolveCacheRetention(extraParams, provider);
59083
59242
  if (cacheRetention) streamParams.cacheRetention = cacheRetention;
59084
59243
  if (Object.keys(streamParams).length === 0) return;
59085
59244
  log$2.debug(`creating streamFn wrapper with params: ${JSON.stringify(streamParams)}`);
59245
+ const sp = streamParams;
59246
+ const payloadOverrides = {};
59247
+ if (Array.isArray(sp.stop) && sp.stop.length > 0) payloadOverrides.stop = sp.stop;
59248
+ if (typeof sp.top_p === "number") payloadOverrides.top_p = sp.top_p;
59249
+ if (typeof sp.top_k === "number") payloadOverrides.top_k = sp.top_k;
59250
+ if (typeof sp.repeat_penalty === "number") payloadOverrides.repeat_penalty = sp.repeat_penalty;
59251
+ const hasPayloadOverrides = Object.keys(payloadOverrides).length > 0;
59086
59252
  const underlying = baseStreamFn ?? streamSimple;
59087
- const wrappedStreamFn = (model, context, options) => underlying(model, context, {
59088
- ...streamParams,
59089
- ...options
59090
- });
59253
+ const wrappedStreamFn = (model, context, options) => {
59254
+ if (hasPayloadOverrides) {
59255
+ const originalOnPayload = options?.onPayload;
59256
+ return underlying(model, context, {
59257
+ ...streamParams,
59258
+ ...options,
59259
+ onPayload: (payload) => {
59260
+ if (payload && typeof payload === "object") {
59261
+ const p = payload;
59262
+ for (const [key, value] of Object.entries(payloadOverrides)) if (p[key] === void 0) p[key] = value;
59263
+ }
59264
+ originalOnPayload?.(payload);
59265
+ }
59266
+ });
59267
+ }
59268
+ return underlying(model, context, {
59269
+ ...streamParams,
59270
+ ...options
59271
+ });
59272
+ };
59091
59273
  return wrappedStreamFn;
59092
59274
  }
59093
59275
  function isDirectOpenAIBaseUrl(baseUrl) {
@@ -59206,6 +59388,42 @@ function createZaiToolStreamWrapper(baseStreamFn, enabled) {
59206
59388
  });
59207
59389
  };
59208
59390
  }
59391
+ const GEMMA_STOP_SEQUENCES = ["<end_of_turn>", "<eos>"];
59392
+ const VLLM_GEMMA_HINTS = ["gemma", "redsand"];
59393
+ function isVllmOrGemmaProvider(provider, modelId, cfg) {
59394
+ const lower = `${provider}/${modelId}`.toLowerCase();
59395
+ if (VLLM_GEMMA_HINTS.some((h) => lower.includes(h))) return true;
59396
+ const baseUrl = ((cfg?.models?.providers?.[provider])?.baseUrl ?? "").toLowerCase();
59397
+ return baseUrl.includes("coreweave") || baseUrl.includes("vllm");
59398
+ }
59399
+ /**
59400
+ * Wrap the stream function to fix vLLM/Gemma compat issues via onPayload:
59401
+ * 1. Replace `max_completion_tokens` with `max_tokens` (vLLM ignores the former)
59402
+ * 2. Inject Gemma stop sequences if none are set
59403
+ * 3. Remove unsupported fields (store, stream_options.include_usage on older vLLM)
59404
+ */
59405
+ function createVllmCompatWrapper(baseStreamFn, extraParams) {
59406
+ const underlying = baseStreamFn ?? streamSimple;
59407
+ const configuredStop = Array.isArray(extraParams.stop) ? extraParams.stop : GEMMA_STOP_SEQUENCES;
59408
+ return (model, context, options) => {
59409
+ const originalOnPayload = options?.onPayload;
59410
+ return underlying(model, context, {
59411
+ ...options,
59412
+ onPayload: (payload) => {
59413
+ if (payload && typeof payload === "object") {
59414
+ const p = payload;
59415
+ if (p.max_completion_tokens && !p.max_tokens) {
59416
+ p.max_tokens = p.max_completion_tokens;
59417
+ delete p.max_completion_tokens;
59418
+ }
59419
+ if (!p.stop && configuredStop.length > 0) p.stop = configuredStop;
59420
+ delete p.store;
59421
+ }
59422
+ originalOnPayload?.(payload);
59423
+ }
59424
+ });
59425
+ };
59426
+ }
59209
59427
  /**
59210
59428
  * Apply extra params (like temperature) to an agent's streamFn.
59211
59429
  * Also adds OpenRouter app attribution headers when using the OpenRouter provider.
@@ -59240,161 +59458,11 @@ function applyExtraParamsToAgent(agent, cfg, provider, modelId, extraParamsOverr
59240
59458
  agent.streamFn = createZaiToolStreamWrapper(agent.streamFn, true);
59241
59459
  }
59242
59460
  }
59243
- agent.streamFn = createOpenAIResponsesStoreWrapper(agent.streamFn);
59244
- }
59245
-
59246
- //#endregion
59247
- //#region src/config/model-profiles-builtin.ts
59248
- /**
59249
- * Built-in model profiles. Ordered from most-specific to least-specific so
59250
- * that `resolveModelProfile` can return the first match.
59251
- *
59252
- * Order matters: "ollama/" must precede "gemma" because model IDs like
59253
- * "ollama/gemma4:31b-128k" contain both substrings.
59254
- */
59255
- const BUILTIN_PROFILES = [
59256
- {
59257
- match: ["ollama/"],
59258
- label: "Ollama Local",
59259
- params: {
59260
- temperature: 1,
59261
- top_p: .95,
59262
- top_k: 64,
59263
- max_tokens: 4096
59264
- },
59265
- streaming: {
59266
- deltaThrottleMs: 50,
59267
- flushOnFinal: true,
59268
- chunkPattern: "burst"
59269
- },
59270
- filters: {
59271
- stripPatterns: [
59272
- "<\\|channel>\\w*",
59273
- "<channel\\|>",
59274
- "<start_of_turn>(?:model|user)?",
59275
- "<end_of_turn>"
59276
- ],
59277
- suppressMonologue: true,
59278
- hasStructuredThinking: false
59279
- },
59280
- promptAdditions: ["You are running locally via Ollama. Do not output raw control tokens or internal monologue. Send brief progress updates on long tasks."],
59281
- ui: {
59282
- badge: "Local",
59283
- watchdogMs: 9e5,
59284
- armWatchdogOnSend: true
59285
- }
59286
- },
59287
- {
59288
- match: ["anthropic/", "claude-"],
59289
- label: "Claude",
59290
- params: {
59291
- temperature: 1,
59292
- top_p: 1,
59293
- max_tokens: 8192
59294
- },
59295
- streaming: {
59296
- deltaThrottleMs: 150,
59297
- flushOnFinal: false,
59298
- chunkPattern: "token"
59299
- },
59300
- filters: {
59301
- stripPatterns: [],
59302
- suppressMonologue: false,
59303
- hasStructuredThinking: true
59304
- },
59305
- promptAdditions: [],
59306
- ui: {
59307
- badge: "API",
59308
- watchdogMs: 3e5,
59309
- armWatchdogOnSend: false
59310
- }
59311
- },
59312
- {
59313
- match: ["gemma", "redsand/"],
59314
- label: "Gemma 4",
59315
- params: {
59316
- temperature: 1,
59317
- top_p: .95,
59318
- top_k: 64,
59319
- max_tokens: 8192
59320
- },
59321
- streaming: {
59322
- deltaThrottleMs: 50,
59323
- flushOnFinal: true,
59324
- chunkPattern: "burst"
59325
- },
59326
- filters: {
59327
- stripPatterns: [
59328
- "<\\|channel>\\w*",
59329
- "<channel\\|>",
59330
- "<start_of_turn>(?:model|user)?",
59331
- "<end_of_turn>",
59332
- "<\\|(?:fim_prefix|fim_suffix|fim_middle)\\|>",
59333
- "^\\s*<bos>\\s*"
59334
- ],
59335
- suppressMonologue: true,
59336
- hasStructuredThinking: false
59337
- },
59338
- promptAdditions: [
59339
- "You are running as Gemma 4 via vLLM. Important behavioral rules:",
59340
- "- Never output raw control tokens, channel tags, or turn markers in your responses.",
59341
- "- Never display internal status checks, plans, or self-assessments. Your visible output should only be conversational responses and final results.",
59342
- "- When working on multi-step tasks, send a brief one-line status update every 30-60 seconds so the user knows you are active.",
59343
- "- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
59344
- "- Do not use <|channel>thought or similar syntax. If you need to reason, do so silently."
59345
- ],
59346
- ui: {
59347
- badge: "CoreWeave",
59348
- watchdogMs: 6e5,
59349
- armWatchdogOnSend: true
59350
- }
59351
- }
59352
- ];
59353
-
59354
- //#endregion
59355
- //#region src/config/resolve-model-profile.ts
59356
- /** Default profile returned when no match is found. */
59357
- const FALLBACK_PROFILE = {
59358
- match: "*",
59359
- label: "Generic",
59360
- params: {
59361
- temperature: 1,
59362
- max_tokens: 4096
59363
- },
59364
- streaming: {
59365
- deltaThrottleMs: 150,
59366
- flushOnFinal: true,
59367
- chunkPattern: "burst"
59368
- },
59369
- filters: {
59370
- stripPatterns: [],
59371
- suppressMonologue: false,
59372
- hasStructuredThinking: false
59373
- },
59374
- promptAdditions: [],
59375
- ui: {
59376
- watchdogMs: 3e5,
59377
- armWatchdogOnSend: true
59461
+ if (isVllmOrGemmaProvider(provider, modelId, cfg)) {
59462
+ log$2.debug(`applying vLLM/Gemma compat wrapper for ${provider}/${modelId}`);
59463
+ agent.streamFn = createVllmCompatWrapper(agent.streamFn, merged);
59378
59464
  }
59379
- };
59380
- /**
59381
- * Resolve the active model profile for a given model ID.
59382
- *
59383
- * Resolution order:
59384
- * 1. User-defined profiles (from `models.profiles` in symi.json)
59385
- * 2. Built-in profiles ({@link BUILTIN_PROFILES})
59386
- * 3. Fallback "Generic" profile
59387
- *
59388
- * Matching is case-insensitive prefix/substring against the model ID.
59389
- */
59390
- function resolveModelProfile(modelId, userProfiles) {
59391
- const id = modelId.toLowerCase();
59392
- const allProfiles = [...userProfiles ?? [], ...BUILTIN_PROFILES];
59393
- for (const profile of allProfiles) {
59394
- const patterns = Array.isArray(profile.match) ? profile.match : [profile.match];
59395
- for (const pattern of patterns) if (id.startsWith(pattern.toLowerCase()) || id.includes(pattern.toLowerCase())) return profile;
59396
- }
59397
- return FALLBACK_PROFILE;
59465
+ agent.streamFn = createOpenAIResponsesStoreWrapper(agent.streamFn);
59398
59466
  }
59399
59467
 
59400
59468
  //#endregion