@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.
- package/dist/{agents-B0pTMEwy.js → agents-b1LWBQC2.js} +4 -4
- package/dist/{agents.config-_b7ghdyb.js → agents.config-BImdIqjf.js} +1 -1
- package/dist/{agents.config-CdNbu8M5.js → agents.config-CH52CAyr.js} +1 -1
- package/dist/{audio-preflight-BkIfnmpi.js → audio-preflight-BsfqyC31.js} +4 -4
- package/dist/{auth-choice-Bx2Ly3cQ.js → auth-choice-DX1GLTBf.js} +1 -1
- package/dist/{auth-choice-EFFQA4ii.js → auth-choice-DcA3lQQX.js} +1 -1
- package/dist/{banner-B3eic4uq.js → banner-C9OgeI9S.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +6 -6
- package/dist/bundled/session-memory/handler.js +6 -6
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-75aPoFR-.js → channel-options-CKHMtbhF.js} +1 -1
- package/dist/{channel-options-CiowWU_F.js → channel-options-CUlWJdG7.js} +1 -1
- package/dist/{channel-web-B3e8z6ws.js → channel-web-DNGWTM8I.js} +1 -1
- package/dist/{channels-cli-DZM3aIdY.js → channels-cli-C7Q3h_ZW.js} +4 -4
- package/dist/{channels-cli-BDAVsmSm.js → channels-cli-D3n-xoKD.js} +4 -4
- package/dist/{chrome-CxSAp8x3.js → chrome-w3SLcQJF.js} +7 -7
- package/dist/{cli-BRwovkQi.js → cli-9nGKXD05.js} +1 -1
- package/dist/{cli-D9SQsNnH.js → cli-Bf6Le7bx.js} +1 -1
- package/dist/{command-registry-BOI6nYdi.js → command-registry-C6H5FwOm.js} +9 -9
- package/dist/{completion-cli-NNzoK79d.js → completion-cli-Cuqh9oMX.js} +1 -1
- package/dist/{completion-cli-83vpWmfU.js → completion-cli-DJNeDB6-.js} +2 -2
- package/dist/{config-cli-DEAh6EN8.js → config-cli-BG7fqSG5.js} +1 -1
- package/dist/{config-cli-MLtPektI.js → config-cli-BZARhhJb.js} +1 -1
- package/dist/{configure-vl7Z4vWj.js → configure-1q8nqdUB.js} +3 -3
- package/dist/{configure-BdfU-OWp.js → configure-CXMeenDU.js} +3 -3
- package/dist/{deliver-BA7ZN3iM.js → deliver-BmPK91JP.js} +1 -1
- package/dist/{doctor-completion-OyrrKhcY.js → doctor-completion-DE0ljh_m.js} +1 -1
- package/dist/{doctor-completion-Ds-_m1_I.js → doctor-completion-MHRUVcxM.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +1 -1
- package/dist/{gateway-cli-DfFSqETj.js → gateway-cli-A_kepvEA.js} +9 -9
- package/dist/{gateway-cli-Coue82yW.js → gateway-cli-BL_vVTU2.js} +9 -9
- package/dist/{glass-ui-ws-Dkh8KQKx.js → glass-ui-ws-CWG8XziA.js} +7 -7
- package/dist/{glass-ui-ws-D0Y3Ftjr.js → glass-ui-ws-Drv5ICqE.js} +7 -7
- package/dist/{health-B1LT2TG3.js → health-B71iKlbh.js} +1 -1
- package/dist/{health-BL_zFcJ8.js → health-BTXjJASN.js} +1 -1
- package/dist/{hooks-cli-CI7p--JB.js → hooks-cli-D8Sc2Ha-.js} +2 -2
- package/dist/{hooks-cli-BoE1T7F1.js → hooks-cli-R6NcEG6h.js} +2 -2
- package/dist/{image-BGmVDkkw.js → image-rZ4x9VS9.js} +1 -1
- package/dist/index.js +6 -6
- package/dist/llm-slug-generator.js +6 -6
- package/dist/{models-DSx-ohwA.js → models-CNdluTFK.js} +2 -2
- package/dist/{models-cli-Dm_3bpun.js → models-cli-CN2aEEwr.js} +3 -3
- package/dist/{models-cli-B-mDqwNv.js → models-cli-dZewIFFK.js} +2 -2
- package/dist/{onboard-u4HyeN9s.js → onboard-DoPuzIkY.js} +2 -2
- package/dist/{onboard-channels-CixaQo6p.js → onboard-channels-BrmH9pSy.js} +1 -1
- package/dist/{onboard-channels-BUz8JSpV.js → onboard-channels-C-e8WBT5.js} +1 -1
- package/dist/{onboard-CPRPPhos.js → onboard-jMdLiAFB.js} +2 -2
- package/dist/{onboarding-DVnX6G65.js → onboarding-C4tCCVuf.js} +3 -3
- package/dist/{onboarding-HeYKKCUg.js → onboarding-Dahfev0C.js} +3 -3
- package/dist/{onboarding.finalize-BJD7ST55.js → onboarding.finalize-B-jArghw.js} +6 -6
- package/dist/{onboarding.finalize-CyfJOd_0.js → onboarding.finalize-C-UcCZwc.js} +5 -5
- package/dist/{pi-embedded-Du1crlEA.js → pi-embedded-Cox_hxBz.js} +229 -161
- package/dist/{pi-embedded-helpers-DEEaCvEp.js → pi-embedded-helpers-B2z46qeM.js} +4 -4
- package/dist/{pi-embedded-Dbwt0RDE.js → pi-embedded-u1nTVeVL.js} +243 -175
- package/dist/{plugin-registry-BHTWmVtf.js → plugin-registry-BUjhiC8S.js} +1 -1
- package/dist/{plugin-registry-B3_VvP9Z.js → plugin-registry-DB6m_jhG.js} +1 -1
- package/dist/plugin-sdk/{accounts-BToL3HlP.js → accounts-BtaOa4z_.js} +1 -1
- package/dist/plugin-sdk/{accounts-D9zGZU5t.js → accounts-Ddm33hQm.js} +3 -3
- package/dist/plugin-sdk/{accounts-Dtszw3Zn.js → accounts-s-AdhXVR.js} +1 -1
- package/dist/plugin-sdk/{active-listener-bEk__wbB.js → active-listener-BXYeALs0.js} +1 -1
- package/dist/plugin-sdk/{agent-scope-C3gMMKCU.js → agent-scope-CYYpcO9W.js} +2 -2
- package/dist/plugin-sdk/{api-key-rotation-CVBMpnPc.js → api-key-rotation-D_sMvI5W.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-DoQQKlxa.js → audio-preflight-VpItkiy3.js} +24 -24
- package/dist/plugin-sdk/{bindings-BbwoUGPx.js → bindings-C7hRtgYW.js} +2 -2
- package/dist/plugin-sdk/{channel-activity-Ji7f0gqq.js → channel-activity-DoC1xtDu.js} +1 -1
- package/dist/plugin-sdk/{channel-web-pXiGDTMm.js → channel-web-DBJ2f-u5.js} +22 -22
- package/dist/plugin-sdk/{chrome-C7c_0I5M.js → chrome-B7RdxmJ0.js} +3 -3
- package/dist/plugin-sdk/{chunk-jvk9axTQ.js → chunk-Dw2XBYXv.js} +1 -1
- package/dist/plugin-sdk/{command-format-DSdvQ_M5.js → command-format-GKSevep4.js} +1 -1
- package/dist/plugin-sdk/{commands-registry-CQFbmUMs.js → commands-registry-COIaslGl.js} +4 -4
- package/dist/plugin-sdk/{config-DDkdiUOR.js → config-KlTNfkFF.js} +9 -9
- package/dist/plugin-sdk/{deliver-BUns_L9e.js → deliver-BiGlXG5k.js} +10 -10
- package/dist/plugin-sdk/{diagnostic-mFf4i4G9.js → diagnostic-05pm5Rxi.js} +1 -1
- package/dist/plugin-sdk/{image-BOYy0Ump.js → image-CLOPx7yW.js} +4 -4
- package/dist/plugin-sdk/{image-ops-Bnp6LXEx.js → image-ops-BlQR__MN.js} +1 -1
- package/dist/plugin-sdk/index.js +53 -53
- package/dist/plugin-sdk/{ir-Fb3qpcis.js → ir-BJ6BHE5b.js} +4 -4
- package/dist/plugin-sdk/{local-roots-Ckk1QfzI.js → local-roots-BHLNSI8U.js} +3 -3
- package/dist/plugin-sdk/{login-Bh3DZPam.js → login-DQMXuxOk.js} +7 -7
- package/dist/plugin-sdk/{login-qr-DbR7odSr.js → login-qr-BjVZSoCi.js} +9 -9
- package/dist/plugin-sdk/{manager-DckktAQ3.js → manager-CBSBFuFz.js} +8 -8
- package/dist/plugin-sdk/{manifest-registry-B3ugY9-f.js → manifest-registry-CPnHl_K3.js} +1 -1
- package/dist/plugin-sdk/{markdown-tables-Dfaqilz6.js → markdown-tables-BoYFajMu.js} +1 -1
- package/dist/plugin-sdk/{message-channel-BdI5Ra9S.js → message-channel-COTAJzHd.js} +1 -1
- package/dist/plugin-sdk/{model-selection-OpU8HN50.js → model-selection-CsbEfrS0.js} +4 -4
- package/dist/plugin-sdk/{outbound-rF6G8Xpr.js → outbound-B0e8KdaR.js} +7 -7
- package/dist/plugin-sdk/{outbound-attachment-DnVQfTG2.js → outbound-attachment-CnslKL38.js} +2 -2
- package/dist/plugin-sdk/{pi-auth-json-CJk8t14T.js → pi-auth-json-qWi7ZIYV.js} +5 -5
- package/dist/plugin-sdk/{pi-embedded-helpers-BveUP4hk.js → pi-embedded-helpers-CW630epe.js} +17 -17
- package/dist/plugin-sdk/{plugins-BbAvhC25.js → plugins-BNByVCIH.js} +4 -4
- package/dist/plugin-sdk/{pw-ai-DjGUsee-.js → pw-ai-CnbPIPY9.js} +8 -8
- package/dist/plugin-sdk/{qmd-manager-mjKcdwVr.js → qmd-manager-CH0XbIHf.js} +4 -4
- package/dist/plugin-sdk/{registry--_pGht6S.js → registry-D0xTnUWt.js} +2 -2
- package/dist/plugin-sdk/{replies-fI39rPGa.js → replies-LLcQL3w6.js} +3 -3
- package/dist/plugin-sdk/{reply-ClH0tnJf.js → reply-8bK0BH5o.js} +305 -237
- package/dist/plugin-sdk/{reply-prefix-BHuV5t70.js → reply-prefix-uxfMZW4p.js} +1 -1
- package/dist/plugin-sdk/{resolve-outbound-target-BkCUbYGV.js → resolve-outbound-target-BiyAyTWz.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-D3JH_D2N.js → resolve-route-B3CCBumQ.js} +3 -3
- package/dist/plugin-sdk/{retry-ilSJqnz9.js → retry-CwQ_iIj8.js} +1 -1
- package/dist/plugin-sdk/{runner-BVqnEfNe.js → runner-CGBT7tgF.js} +9 -9
- package/dist/plugin-sdk/{send-BtANzsAo.js → send-B2CEnVLL.js} +6 -6
- package/dist/plugin-sdk/{send-BHbXh8Ly.js → send-C5h_YxNb.js} +7 -7
- package/dist/plugin-sdk/{send-D6LMZJ_h.js → send-CRsR8-vO.js} +10 -10
- package/dist/plugin-sdk/{send-Bxdu6ZZy.js → send-CjOBB3Vo.js} +10 -10
- package/dist/plugin-sdk/{send-BMfJIhCk.js → send-pYqe432l.js} +6 -6
- package/dist/plugin-sdk/{session-kI0tzViQ.js → session-BsOrxiMj.js} +4 -4
- package/dist/plugin-sdk/{skill-commands-DCNXVERE.js → skill-commands-ff_01_r3.js} +5 -5
- package/dist/plugin-sdk/{skills-B1GeRYlu.js → skills-_yTP47Cd.js} +7 -7
- package/dist/plugin-sdk/{sqlite-Cq_7Cg4E.js → sqlite-CxAR5ttJ.js} +1 -1
- package/dist/plugin-sdk/{store-Do3t33-c.js → store-BdrNabcU.js} +2 -2
- package/dist/plugin-sdk/{subsystem-Coz2AgU8.js → subsystem-B2uDN3TV.js} +1 -1
- package/dist/plugin-sdk/{tables-DR0NmBeH.js → tables-DNwXwNFa.js} +1 -1
- package/dist/plugin-sdk/{target-errors-B7YyMnIi.js → target-errors-Paro1BjP.js} +2 -2
- package/dist/plugin-sdk/{thinking-DCNUIAHY.js → thinking-CXqf7WTe.js} +5 -5
- package/dist/plugin-sdk/{tokens-CWMflosr.js → tokens-bC3UVmVH.js} +1 -1
- package/dist/plugin-sdk/{tool-images-D7Lno-TE.js → tool-images-HJ2sfZDV.js} +2 -2
- package/dist/plugin-sdk/{tool-loop-detection-edmW8ZiF.js → tool-loop-detection-BVA6fax-.js} +2 -2
- package/dist/plugin-sdk/web-C-5ZChok.js +65 -0
- package/dist/plugin-sdk/{whatsapp-actions-CcBzDuL-.js → whatsapp-actions-DfseosPO.js} +21 -21
- package/dist/{plugins-cli-CiJ3j55S.js → plugins-cli-BuFYsQIf.js} +2 -2
- package/dist/{plugins-cli-Dm1uy7by.js → plugins-cli-DZhaDtma.js} +2 -2
- package/dist/{program-CH2ZAXFK.js → program-DlXflM2j.js} +7 -7
- package/dist/{program-context-BHdXKRCG.js → program-context-CgOHSNfJ.js} +17 -17
- package/dist/{prompt-select-styled-D8-TYiCU.js → prompt-select-styled-BM24eNt6.js} +4 -4
- package/dist/{prompt-select-styled-YbkZmrxn.js → prompt-select-styled-VDp7sLVS.js} +4 -4
- package/dist/{provider-auth-helpers-BvwbMhtC.js → provider-auth-helpers-DPc2nJjU.js} +1 -1
- package/dist/{provider-auth-helpers-BXnJRRuA.js → provider-auth-helpers-DqyK6Uuv.js} +1 -1
- package/dist/{push-apns-CtNHq-T0.js → push-apns-BP1VrPYl.js} +1 -1
- package/dist/{push-apns-BKDV4tcx.js → push-apns-DmCBSfsH.js} +1 -1
- package/dist/{pw-ai-DhwRiS06.js → pw-ai-PiQUncix.js} +1 -1
- package/dist/{register.agent-BUq96Y9v.js → register.agent-CFngezQc.js} +5 -5
- package/dist/{register.agent-BKI5-fHH.js → register.agent-MXEw1cDP.js} +6 -6
- package/dist/{register.configure-wxLUAVNm.js → register.configure-Dye2lrEX.js} +6 -6
- package/dist/{register.configure-D5lE614j.js → register.configure-yuP_CFyL.js} +6 -6
- package/dist/{register.maintenance-C7McOGSl.js → register.maintenance-CmGslWRY.js} +7 -7
- package/dist/{register.maintenance-CBkeGPZ5.js → register.maintenance-CmsjyCHR.js} +8 -8
- package/dist/{register.message-COdTYFse.js → register.message-BqeA08JG.js} +2 -2
- package/dist/{register.message-CI-7hMop.js → register.message-COWiw927.js} +2 -2
- package/dist/{register.onboard-BB0BR6ER.js → register.onboard-Bi5HeqKP.js} +4 -4
- package/dist/{register.onboard-Cvq4D9PO.js → register.onboard-GL4FQKKt.js} +4 -4
- package/dist/{register.setup-BYdcj7kG.js → register.setup-CwdX8TGJ.js} +4 -4
- package/dist/{register.setup-BFsDqWth.js → register.setup-DE8B6eLm.js} +4 -4
- package/dist/{register.status-health-sessions-Z5xGFCb6.js → register.status-health-sessions-CDZ7zo1L.js} +3 -3
- package/dist/{register.status-health-sessions-CLTBPceP.js → register.status-health-sessions-DD5niftr.js} +3 -3
- package/dist/{register.subclis-DbjFcioS.js → register.subclis-Cn7QTC_-.js} +9 -9
- package/dist/{reply-Dlka9TPn.js → reply-BU9TUp_K.js} +229 -161
- package/dist/{run-main-CZKS1Km-.js → run-main-B6YILTPp.js} +14 -14
- package/dist/{runner-B_KP4voe.js → runner-CCSMfQee.js} +1 -1
- package/dist/{server-methods-Dl2xnUeP.js → server-methods-BTiR6t8F.js} +7 -7
- package/dist/{server-methods-060ibtki.js → server-methods-DFsGxi3M.js} +7 -7
- package/dist/{server-node-events-CxdmKBmm.js → server-node-events-BNDR2xkm.js} +2 -2
- package/dist/{server-node-events-BaVEbs-L.js → server-node-events-DEifFVMC.js} +2 -2
- package/dist/{status-DFFFYwyN.js → status-BlSxFEeo.js} +1 -1
- package/dist/{status-B161_hoB.js → status-ChsVYdUd.js} +2 -2
- package/dist/{status-DqWKFOGN.js → status-D6EakoGU.js} +2 -2
- package/dist/{status-V0eZ4bzN.js → status-DwZBYK_G.js} +1 -1
- package/dist/{subagent-registry-DLH72QgE.js → subagent-registry-XIFSKsi7.js} +229 -161
- package/dist/{update-cli-t1GIk6uw.js → update-cli-C4Hrx6N-.js} +8 -8
- package/dist/{update-cli-BHNHad5c.js → update-cli-CXfz9C2E.js} +7 -7
- package/dist/{update-runner-CDG0-jLB.js → update-runner-BWHG84zP.js} +1 -1
- package/dist/{update-runner-Ciq1c0YL.js → update-runner-C6_7IzDb.js} +1 -1
- package/dist/{web-FaXjM6fP.js → web-Bpy6uQ4f.js} +1 -1
- package/dist/{web-CWhHll12.js → web-C1iHUvKH.js} +2 -2
- package/dist/{web-B_JQgMeX.js → web-CB8bYQpw.js} +6 -6
- package/dist/{web-BkvYOXO1.js → web-DPXq2-or.js} +1 -1
- package/package.json +1 -1
- 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-
|
|
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-
|
|
108
|
-
import "./onboarding-
|
|
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-
|
|
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-
|
|
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-
|
|
118
|
-
import { r as healthCommand } from "./health-
|
|
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-
|
|
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-
|
|
112
|
-
import { r as healthCommand } from "./health-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
199
|
-
const { registerPluginCliCommands } = await import("./cli-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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) =>
|
|
59088
|
-
|
|
59089
|
-
|
|
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
|
-
|
|
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
|