@symerian/symi 2.3.2 → 2.3.4
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/{accounts-ChTFYj8Q.js → accounts-CWktKM8a.js} +1 -1
- package/dist/{accounts-CJR8j_Kq.js → accounts-qtxJ-6em.js} +1 -1
- package/dist/{accounts-CI6zQTJj.js → accounts-tNElYrCH.js} +14 -14
- package/dist/{active-listener-D6sXIjAg.js → active-listener-C9r8ZB9m.js} +1 -1
- package/dist/{agent-scope-Bw1Ed8W9.js → agent-scope-BxoUQqgM.js} +3 -3
- package/dist/{agents-b1LWBQC2.js → agents-E_Ere0qU.js} +4 -4
- package/dist/{agents.config-BImdIqjf.js → agents.config-Cv_wsBXL.js} +1 -1
- package/dist/{agents.config-CH52CAyr.js → agents.config-DJTb7Jka.js} +1 -1
- package/dist/{audio-preflight-CPBOQV4I.js → audio-preflight-C40mKAp7.js} +4 -4
- package/dist/{audio-preflight-BsfqyC31.js → audio-preflight-O3ASWbaG.js} +29 -29
- package/dist/{auth-choice-DcA3lQQX.js → auth-choice-B3D_jLQw.js} +1 -1
- package/dist/{auth-choice-DX1GLTBf.js → auth-choice-D8ynWABO.js} +1 -1
- package/dist/{banner-C9OgeI9S.js → banner-ChYzCy5p.js} +1 -1
- package/dist/{bindings-BU2hsBd9.js → bindings-B7Ke6LJi.js} +2 -2
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +53 -53
- package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
- package/dist/bundled/command-logger/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +53 -53
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-activity-C9-gaquj.js → channel-activity-CsM_hJ_s.js} +1 -1
- package/dist/{channel-options-CUlWJdG7.js → channel-options-BYUiEgev.js} +1 -1
- package/dist/{channel-options-CKHMtbhF.js → channel-options-CMNzHg4p.js} +1 -1
- package/dist/{channel-web-DNGWTM8I.js → channel-web-C-HLPbLL.js} +1 -1
- package/dist/{channels-cli-C7Q3h_ZW.js → channels-cli-CcCmH-Tp.js} +4 -4
- package/dist/{channels-cli-D3n-xoKD.js → channels-cli-CyhXPEWq.js} +4 -4
- package/dist/{chrome-w3SLcQJF.js → chrome-BFekevcE.js} +13 -13
- package/dist/{chrome-D2SKJnR7.js → chrome-CDJYxX5a.js} +7 -7
- package/dist/{chunk-ClbN9Pqy.js → chunk-BW5f05BR.js} +1 -1
- package/dist/{cli-Bf6Le7bx.js → cli-Cp-NQ7yu.js} +1 -1
- package/dist/{cli-9nGKXD05.js → cli-Gcuf3NTF.js} +1 -1
- package/dist/{command-format-UKHV-j0K.js → command-format-BaxDnULz.js} +1 -1
- package/dist/{command-registry-C6H5FwOm.js → command-registry-Cvr_dlLY.js} +9 -9
- package/dist/{commands-registry-VSmULp-g.js → commands-registry-D7CTCQPm.js} +4 -4
- package/dist/{completion-cli-DJNeDB6-.js → completion-cli-DDlYn0ya.js} +2 -2
- package/dist/{completion-cli-Cuqh9oMX.js → completion-cli-DaOHSXM3.js} +1 -1
- package/dist/{config-eEaJddXj.js → config-DRbjHIwD.js} +12 -12
- package/dist/{config-cli-BZARhhJb.js → config-cli-BcuAsDOu.js} +1 -1
- package/dist/{config-cli-BG7fqSG5.js → config-cli-CmUPAVUz.js} +1 -1
- package/dist/{configure-CXMeenDU.js → configure-Ctwt1377.js} +3 -3
- package/dist/{configure-1q8nqdUB.js → configure-OxYdT2hU.js} +3 -3
- package/dist/{deliver-C-37cZUe.js → deliver-BH0l3UKW.js} +1 -1
- package/dist/{deliver-BmPK91JP.js → deliver-CvCK5Mm9.js} +20 -20
- package/dist/{diagnostic-C3nsWaw3.js → diagnostic-CI0kRQkt.js} +1 -1
- package/dist/{doctor-completion-MHRUVcxM.js → doctor-completion-D7ShsgUp.js} +1 -1
- package/dist/{doctor-completion-DE0ljh_m.js → doctor-completion-Dw78bQaQ.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +6 -6
- package/dist/{frontmatter-DPlG6yha.js → frontmatter-C_bv_0P8.js} +2 -2
- package/dist/{gateway-cli-A_kepvEA.js → gateway-cli-Bd7u0krH.js} +39 -50
- package/dist/{gateway-cli-BL_vVTU2.js → gateway-cli-D7nxPtEc.js} +39 -50
- package/dist/{gemini-auth-CF48hUR9.js → gemini-auth-CdSPHuLl.js} +1 -1
- package/dist/{github-copilot-token-DJqsJ2-r.js → github-copilot-token-C_qUP7p5.js} +7 -7
- package/dist/{glass-ui-ws-CWG8XziA.js → glass-ui-ws-CzH0ikhI.js} +7 -7
- package/dist/{glass-ui-ws-Drv5ICqE.js → glass-ui-ws-DBivjzVA.js} +7 -7
- package/dist/{health-BTXjJASN.js → health-BSOMI4B6.js} +1 -1
- package/dist/{health-B71iKlbh.js → health-rR61mwm3.js} +1 -1
- package/dist/{hooks-cli-D8Sc2Ha-.js → hooks-cli-BbiA-gGi.js} +2 -2
- package/dist/{hooks-cli-R6NcEG6h.js → hooks-cli-dS4fMEKE.js} +2 -2
- package/dist/{image-rZ4x9VS9.js → image-B0wGflxA.js} +4 -4
- package/dist/{image-DcpMiprB.js → image-CHzdaNJ4.js} +1 -1
- package/dist/{image-ops-S8-8dAhx.js → image-ops-CvJzsyvE.js} +1 -1
- package/dist/index.js +6 -6
- package/dist/{ir-CbFUkv_T.js → ir-DccrnjsE.js} +4 -4
- package/dist/llm-slug-generator.js +53 -53
- package/dist/{local-roots-C7OCYACU.js → local-roots-DMwIh5cS.js} +5 -5
- package/dist/{login-B8uiUAnV.js → login-CwCoxapk.js} +7 -7
- package/dist/{login-qr-CIZk8uKX.js → login-qr-Batf3PT5.js} +12 -12
- package/dist/{manager-BoLr3xR_.js → manager-D_LwXbc6.js} +13 -13
- package/dist/{manifest-registry-CneMHk0N.js → manifest-registry-D0IQ3WuX.js} +19 -19
- package/dist/{markdown-tables-DSHvnTLx.js → markdown-tables-iMQQZu4Q.js} +1 -1
- package/dist/{message-channel-DbsRltF2.js → message-channel-Dz5lr5b0.js} +1 -1
- package/dist/{model-auth-CwOuTuXl.js → model-auth-DK43VicI.js} +9 -9
- package/dist/{models-CNdluTFK.js → models-DqE1s0YL.js} +2 -2
- package/dist/{models-cli-CN2aEEwr.js → models-cli-6v9jkDxp.js} +3 -3
- package/dist/{models-cli-dZewIFFK.js → models-cli-BWC7jYp4.js} +2 -2
- package/dist/{onboard-jMdLiAFB.js → onboard-BUEYf2m9.js} +2 -2
- package/dist/{onboard-DoPuzIkY.js → onboard-Bxoibs4p.js} +2 -2
- package/dist/{onboard-channels-C-e8WBT5.js → onboard-channels-C3UYzZNC.js} +1 -1
- package/dist/{onboard-channels-BrmH9pSy.js → onboard-channels-af6Cu6fT.js} +1 -1
- package/dist/{onboarding-C4tCCVuf.js → onboarding-CDdMZbov.js} +3 -3
- package/dist/{onboarding-Dahfev0C.js → onboarding-DW-7o6Ln.js} +3 -3
- package/dist/{onboarding.finalize-B-jArghw.js → onboarding.finalize-29jsMLO2.js} +6 -6
- package/dist/{onboarding.finalize-C-UcCZwc.js → onboarding.finalize-BI70KOeI.js} +5 -5
- package/dist/{outbound-opDNxv-l.js → outbound-D4fN_ZlE.js} +7 -7
- package/dist/{outbound-attachment-Co2diKdP.js → outbound-attachment-DjNDa3zn.js} +2 -2
- package/dist/{paths-CySxpNhH.js → paths-Cce4PUkG.js} +5 -5
- package/dist/{paths-Cb87-LzP.js → paths-DLyHUt31.js} +1 -1
- package/dist/{pi-auth-json-DPWPoruO.js → pi-auth-json-0SYBFZTt.js} +8 -8
- package/dist/{pi-embedded-Cox_hxBz.js → pi-embedded-JXvD5-F-.js} +109 -17
- package/dist/{pi-embedded-u1nTVeVL.js → pi-embedded-PkSwAmVq.js} +251 -159
- package/dist/{pi-embedded-helpers-B2z46qeM.js → pi-embedded-helpers-DLFjnVBb.js} +52 -52
- package/dist/{pi-embedded-helpers-B8kqLWns.js → pi-embedded-helpers-lgx_U5KS.js} +4 -4
- package/dist/{plugin-registry-DB6m_jhG.js → plugin-registry-B7AdPXfF.js} +1 -1
- package/dist/{plugin-registry-BUjhiC8S.js → plugin-registry-Reem6P3K.js} +1 -1
- package/dist/plugin-sdk/{accounts-BtaOa4z_.js → accounts-BToL3HlP.js} +1 -1
- package/dist/plugin-sdk/{accounts-Ddm33hQm.js → accounts-D9zGZU5t.js} +3 -3
- package/dist/plugin-sdk/{accounts-s-AdhXVR.js → accounts-Dtszw3Zn.js} +1 -1
- package/dist/plugin-sdk/{active-listener-BXYeALs0.js → active-listener-bEk__wbB.js} +1 -1
- package/dist/plugin-sdk/{agent-scope-CYYpcO9W.js → agent-scope-C3gMMKCU.js} +2 -2
- package/dist/plugin-sdk/agents/model-token-filter.d.ts +26 -0
- package/dist/plugin-sdk/{api-key-rotation-D_sMvI5W.js → api-key-rotation-CVBMpnPc.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-VpItkiy3.js → audio-preflight-DoQQKlxa.js} +24 -24
- package/dist/plugin-sdk/{bindings-C7hRtgYW.js → bindings-BbwoUGPx.js} +2 -2
- package/dist/plugin-sdk/{channel-activity-DoC1xtDu.js → channel-activity-Ji7f0gqq.js} +1 -1
- package/dist/plugin-sdk/{channel-web-DBJ2f-u5.js → channel-web-CM7A3Y7G.js} +22 -22
- package/dist/plugin-sdk/{chrome-B7RdxmJ0.js → chrome-C7c_0I5M.js} +3 -3
- package/dist/plugin-sdk/{chunk-Dw2XBYXv.js → chunk-jvk9axTQ.js} +1 -1
- package/dist/plugin-sdk/{command-format-GKSevep4.js → command-format-DSdvQ_M5.js} +1 -1
- package/dist/plugin-sdk/{commands-registry-COIaslGl.js → commands-registry-CQFbmUMs.js} +4 -4
- package/dist/plugin-sdk/{config-KlTNfkFF.js → config-DDkdiUOR.js} +9 -9
- package/dist/plugin-sdk/{deliver-BiGlXG5k.js → deliver-BUns_L9e.js} +10 -10
- package/dist/plugin-sdk/{diagnostic-05pm5Rxi.js → diagnostic-mFf4i4G9.js} +1 -1
- package/dist/plugin-sdk/{image-CLOPx7yW.js → image-BOYy0Ump.js} +4 -4
- package/dist/plugin-sdk/{image-ops-BlQR__MN.js → image-ops-Bnp6LXEx.js} +1 -1
- package/dist/plugin-sdk/index.js +53 -53
- package/dist/plugin-sdk/{ir-BJ6BHE5b.js → ir-Fb3qpcis.js} +4 -4
- package/dist/plugin-sdk/{local-roots-BHLNSI8U.js → local-roots-Ckk1QfzI.js} +3 -3
- package/dist/plugin-sdk/{login-DQMXuxOk.js → login-Bh3DZPam.js} +7 -7
- package/dist/plugin-sdk/{login-qr-BjVZSoCi.js → login-qr-DbR7odSr.js} +9 -9
- package/dist/plugin-sdk/{manager-CBSBFuFz.js → manager-DckktAQ3.js} +8 -8
- package/dist/plugin-sdk/{manifest-registry-CPnHl_K3.js → manifest-registry-B3ugY9-f.js} +1 -1
- package/dist/plugin-sdk/{markdown-tables-BoYFajMu.js → markdown-tables-Dfaqilz6.js} +1 -1
- package/dist/plugin-sdk/{message-channel-COTAJzHd.js → message-channel-BdI5Ra9S.js} +1 -1
- package/dist/plugin-sdk/{model-selection-CsbEfrS0.js → model-selection-OpU8HN50.js} +4 -4
- package/dist/plugin-sdk/{outbound-attachment-CnslKL38.js → outbound-attachment-DnVQfTG2.js} +2 -2
- package/dist/plugin-sdk/{outbound-B0e8KdaR.js → outbound-rF6G8Xpr.js} +7 -7
- package/dist/plugin-sdk/{pi-auth-json-qWi7ZIYV.js → pi-auth-json-CJk8t14T.js} +5 -5
- package/dist/plugin-sdk/{pi-embedded-helpers-CW630epe.js → pi-embedded-helpers-BveUP4hk.js} +17 -17
- package/dist/plugin-sdk/{plugins-BNByVCIH.js → plugins-BbAvhC25.js} +4 -4
- package/dist/plugin-sdk/{pw-ai-CnbPIPY9.js → pw-ai-DjGUsee-.js} +8 -8
- package/dist/plugin-sdk/{qmd-manager-CH0XbIHf.js → qmd-manager-mjKcdwVr.js} +4 -4
- package/dist/plugin-sdk/{registry-D0xTnUWt.js → registry--_pGht6S.js} +2 -2
- package/dist/{replies-DpPvWiGF.js → plugin-sdk/replies-fI39rPGa.js} +3 -3
- package/dist/plugin-sdk/{reply-8bK0BH5o.js → reply-CDloTGFF.js} +171 -79
- package/dist/plugin-sdk/{reply-prefix-uxfMZW4p.js → reply-prefix-BHuV5t70.js} +1 -1
- package/dist/plugin-sdk/{resolve-outbound-target-BiyAyTWz.js → resolve-outbound-target-BkCUbYGV.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-B3CCBumQ.js → resolve-route-D3JH_D2N.js} +3 -3
- package/dist/plugin-sdk/{retry-CwQ_iIj8.js → retry-ilSJqnz9.js} +1 -1
- package/dist/plugin-sdk/{runner-CGBT7tgF.js → runner-BVqnEfNe.js} +9 -9
- package/dist/plugin-sdk/{send-C5h_YxNb.js → send-BHbXh8Ly.js} +7 -7
- package/dist/plugin-sdk/{send-pYqe432l.js → send-BMfJIhCk.js} +6 -6
- package/dist/plugin-sdk/{send-B2CEnVLL.js → send-BtANzsAo.js} +6 -6
- package/dist/plugin-sdk/{send-CjOBB3Vo.js → send-Bxdu6ZZy.js} +10 -10
- package/dist/plugin-sdk/{send-CRsR8-vO.js → send-D6LMZJ_h.js} +10 -10
- package/dist/plugin-sdk/{session-BsOrxiMj.js → session-kI0tzViQ.js} +4 -4
- package/dist/plugin-sdk/{skill-commands-ff_01_r3.js → skill-commands-DCNXVERE.js} +5 -5
- package/dist/plugin-sdk/{skills-_yTP47Cd.js → skills-B1GeRYlu.js} +7 -7
- package/dist/plugin-sdk/{sqlite-CxAR5ttJ.js → sqlite-Cq_7Cg4E.js} +1 -1
- package/dist/plugin-sdk/{store-BdrNabcU.js → store-Do3t33-c.js} +2 -2
- package/dist/plugin-sdk/{subsystem-B2uDN3TV.js → subsystem-Coz2AgU8.js} +1 -1
- package/dist/plugin-sdk/{tables-DNwXwNFa.js → tables-DR0NmBeH.js} +1 -1
- package/dist/{target-errors-DyItGyW9.js → plugin-sdk/target-errors-B7YyMnIi.js} +2 -2
- package/dist/plugin-sdk/{thinking-CXqf7WTe.js → thinking-DCNUIAHY.js} +5 -5
- package/dist/{tokens-c_SLAkVb.js → plugin-sdk/tokens-CWMflosr.js} +1 -1
- package/dist/{tool-images-DBCfXdli.js → plugin-sdk/tool-images-D7Lno-TE.js} +2 -2
- package/dist/plugin-sdk/{tool-loop-detection-BVA6fax-.js → tool-loop-detection-edmW8ZiF.js} +2 -2
- package/dist/plugin-sdk/web-CWNoMlnF.js +65 -0
- package/dist/plugin-sdk/{whatsapp-actions-DfseosPO.js → whatsapp-actions-CcBzDuL-.js} +21 -21
- package/dist/{plugins-C4C9637U.js → plugins-DQYI3Fr-.js} +9 -9
- package/dist/{plugins-cli-DZhaDtma.js → plugins-cli-B-6wVg3A.js} +2 -2
- package/dist/{plugins-cli-BuFYsQIf.js → plugins-cli-V8mTTTnD.js} +2 -2
- package/dist/{program-DlXflM2j.js → program-DBtlRiFS.js} +7 -7
- package/dist/{program-context-CgOHSNfJ.js → program-context-BHPNVgg2.js} +17 -17
- package/dist/{prompt-select-styled-VDp7sLVS.js → prompt-select-styled-Bh-zAqW1.js} +4 -4
- package/dist/{prompt-select-styled-BM24eNt6.js → prompt-select-styled-Cup1c9RJ.js} +4 -4
- package/dist/{provider-auth-helpers-DPc2nJjU.js → provider-auth-helpers-BNmU48Ez.js} +1 -1
- package/dist/{provider-auth-helpers-DqyK6Uuv.js → provider-auth-helpers-CiuLdUK3.js} +1 -1
- package/dist/{push-apns-BP1VrPYl.js → push-apns-8VJkVSdh.js} +1 -1
- package/dist/{push-apns-DmCBSfsH.js → push-apns-9zUNNHgy.js} +1 -1
- package/dist/{pw-ai-PiQUncix.js → pw-ai-BnAKvSuw.js} +11 -11
- package/dist/{pw-ai-1htA-NnS.js → pw-ai-De-KR9_s.js} +1 -1
- package/dist/{qmd-manager-DdZh9PHs.js → qmd-manager-QHUP-_em.js} +7 -7
- package/dist/{register.agent-MXEw1cDP.js → register.agent-BtNmleKV.js} +6 -6
- package/dist/{register.agent-CFngezQc.js → register.agent-DnglG42G.js} +5 -5
- package/dist/{register.configure-Dye2lrEX.js → register.configure-CLW9tdE4.js} +6 -6
- package/dist/{register.configure-yuP_CFyL.js → register.configure-DfQOfV1W.js} +6 -6
- package/dist/{register.maintenance-CmsjyCHR.js → register.maintenance-BQfMsgo7.js} +8 -8
- package/dist/{register.maintenance-CmGslWRY.js → register.maintenance-jFYcRLEN.js} +7 -7
- package/dist/{register.message-BqeA08JG.js → register.message-BhoZYcqM.js} +2 -2
- package/dist/{register.message-COWiw927.js → register.message-DUsBvFSF.js} +2 -2
- package/dist/{register.onboard-GL4FQKKt.js → register.onboard-BBwhoeoE.js} +4 -4
- package/dist/{register.onboard-Bi5HeqKP.js → register.onboard-DQOkpYBY.js} +4 -4
- package/dist/{register.setup-DE8B6eLm.js → register.setup-6jlL3L1h.js} +4 -4
- package/dist/{register.setup-CwdX8TGJ.js → register.setup-Ca6khTSz.js} +4 -4
- package/dist/{register.status-health-sessions-DD5niftr.js → register.status-health-sessions-DQDXZYI3.js} +3 -3
- package/dist/{register.status-health-sessions-CDZ7zo1L.js → register.status-health-sessions-DsYNMl06.js} +3 -3
- package/dist/{register.subclis-Cn7QTC_-.js → register.subclis-DJf3ihsW.js} +9 -9
- package/dist/{registry-DP24za6g.js → registry-CK4e9hn8.js} +17 -17
- package/dist/{plugin-sdk/replies-LLcQL3w6.js → replies-BIX_isV7.js} +3 -3
- package/dist/{reply-BU9TUp_K.js → reply-DSjeqLEz.js} +96 -4
- package/dist/{reply-prefix-CtL0omgM.js → reply-prefix-XlyuyChD.js} +1 -1
- package/dist/{resolve-route-BVikmvWO.js → resolve-route-CZ-1eqw0.js} +4 -4
- package/dist/{retry-dGG-MbxL.js → retry-Cly39XZB.js} +1 -1
- package/dist/{run-main-B6YILTPp.js → run-main-B2coomPj.js} +14 -14
- package/dist/{runner-BcQ0sF9T.js → runner-DUBExAb5.js} +1 -1
- package/dist/{runner-CCSMfQee.js → runner-odEv83vv.js} +9 -9
- package/dist/{send-DeEosX8F.js → send-B1u-LrcS.js} +18 -18
- package/dist/{send-DwKJK3sM.js → send-CiTGOvEc.js} +10 -10
- package/dist/{send-zSarozV2.js → send-DW96zgDL.js} +6 -6
- package/dist/{send-CHEOWVc8.js → send-DeFniOjh.js} +6 -6
- package/dist/{send-DbcLJb0P.js → send-WyRqb4WD.js} +7 -7
- package/dist/{server-methods-DFsGxi3M.js → server-methods-DHo5e8Gj.js} +7 -7
- package/dist/{server-methods-BTiR6t8F.js → server-methods-QNBQbsvr.js} +7 -7
- package/dist/{server-node-events-BNDR2xkm.js → server-node-events-CJOo8WcL.js} +2 -2
- package/dist/{server-node-events-DEifFVMC.js → server-node-events-D_S0NRCQ.js} +2 -2
- package/dist/{session-DV1MNlbV.js → session-SM36BTsl.js} +8 -8
- package/dist/{skill-commands-D610IKhm.js → skill-commands-BJMb_psG.js} +9 -9
- package/dist/{skills-o5WVqM4V.js → skills-BFekKL7i.js} +21 -21
- package/dist/{sqlite-6H6Zw1cs.js → sqlite-DRbx2dhW.js} +4 -4
- package/dist/{status-ChsVYdUd.js → status-4DaGE8j5.js} +2 -2
- package/dist/{status-D6EakoGU.js → status-B8yaGk2o.js} +2 -2
- package/dist/{status-BlSxFEeo.js → status-D_J6qcC1.js} +1 -1
- package/dist/{status-DwZBYK_G.js → status-kfEtYX22.js} +1 -1
- package/dist/{store-vVE6N2mH.js → store-C0wvOkae.js} +2 -2
- package/dist/{subagent-registry-XIFSKsi7.js → subagent-registry-CyW0EDWw.js} +96 -4
- package/dist/{subsystem-DgpxyDQ_.js → subsystem-Bs9YvKLa.js} +1 -1
- package/dist/{tables-BIWsCKXJ.js → tables-DuZspiBu.js} +1 -1
- package/dist/{plugin-sdk/target-errors-Paro1BjP.js → target-errors-Be1SwYlW.js} +2 -2
- package/dist/{thinking-Ni0HF-w6.js → thinking-CdlENGRW.js} +5 -5
- package/dist/{plugin-sdk/tokens-bC3UVmVH.js → tokens-H1H1LiSQ.js} +1 -1
- package/dist/{plugin-sdk/tool-images-HJ2sfZDV.js → tool-images-DXB7tqWi.js} +2 -2
- package/dist/{tool-loop-detection-Bbc9OPFR.js → tool-loop-detection-Cs8_HCsx.js} +3 -3
- package/dist/{update-cli-C4Hrx6N-.js → update-cli-C-ZGqknl.js} +8 -8
- package/dist/{update-cli-CXfz9C2E.js → update-cli-DJupxo-f.js} +7 -7
- package/dist/{update-runner-BWHG84zP.js → update-runner-AiIhp7fw.js} +1 -1
- package/dist/{update-runner-C6_7IzDb.js → update-runner-BF5UULe-.js} +1 -1
- package/dist/{web-Bpy6uQ4f.js → web-6026eRzJ.js} +1 -1
- package/dist/{web-CB8bYQpw.js → web-6vYYN17n.js} +57 -57
- package/dist/{web-DPXq2-or.js → web-CryqKXT4.js} +6 -6
- package/dist/{web-C1iHUvKH.js → web-HeObJp6A.js} +2 -2
- package/dist/{whatsapp-actions-oRQjcdQe.js → whatsapp-actions-D1RsnX7P.js} +23 -23
- package/dist/{workspace-CbvamIU6.js → workspace-wAaHI8-5.js} +6 -6
- package/package.json +1 -1
- package/dist/plugin-sdk/web-C-5ZChok.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-CyW0EDWw.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-BSOMI4B6.js";
|
|
108
|
+
import "./onboarding-CDdMZbov.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-Bxoibs4p.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, S as shortenHomePath } from "./utils-B-0b9bGM.js";
|
|
3
3
|
import "./thinking-EAliFiVK.js";
|
|
4
|
-
import "./reply-
|
|
4
|
+
import "./reply-DSjeqLEz.js";
|
|
5
5
|
import "./registry-Cja8eT7G.js";
|
|
6
6
|
import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
|
|
7
7
|
import "./exec-CWkblSrI.js";
|
|
@@ -108,8 +108,8 @@ import "./clack-prompter-B7pN13HV.js";
|
|
|
108
108
|
import "./daemon-runtime-2mwX-jqj.js";
|
|
109
109
|
import "./systemd-riq8uNJQ.js";
|
|
110
110
|
import "./service-Cl74hx8J.js";
|
|
111
|
-
import "./health-
|
|
112
|
-
import "./onboarding-
|
|
111
|
+
import "./health-rR61mwm3.js";
|
|
112
|
+
import "./onboarding-DW-7o6Ln.js";
|
|
113
113
|
import "./shared-Knv1hy6h.js";
|
|
114
114
|
import "./auth-token-BnOynwk4.js";
|
|
115
115
|
import { n as logConfigUpdated, t as formatConfigPath } from "./logging-BzzwiKjv.js";
|
|
@@ -117,7 +117,7 @@ import "./openai-model-default-DMjQRsb1.js";
|
|
|
117
117
|
import "./model-picker-Ddo3jHe-.js";
|
|
118
118
|
import "./systemd-linger-aQ75ZlXY.js";
|
|
119
119
|
import "./onboard-custom-C7O-zfQ1.js";
|
|
120
|
-
import { t as onboardCommand } from "./onboard-
|
|
120
|
+
import { t as onboardCommand } from "./onboard-BUEYf2m9.js";
|
|
121
121
|
import JSON5 from "json5";
|
|
122
122
|
import fs from "node:fs/promises";
|
|
123
123
|
|
|
@@ -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-CyW0EDWw.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-4DaGE8j5.js";
|
|
112
|
+
import { r as healthCommand } from "./health-BSOMI4B6.js";
|
|
113
113
|
import "./update-check-ZdimP1aU.js";
|
|
114
114
|
import "./dm-policy-shared-DJ-61hCT.js";
|
|
115
115
|
import "./node-service-fcZExd22.js";
|
|
@@ -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,
|
|
4
|
+
import { E as resolveSessionModelRef, mr as lookupContextTokens, y as classifySessionKey } from "./reply-DSjeqLEz.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-B8yaGk2o.js";
|
|
118
|
+
import { r as healthCommand } from "./health-rR61mwm3.js";
|
|
119
119
|
import "./update-check-CtckACbb.js";
|
|
120
120
|
import "./dm-policy-shared-Bh3TbexU.js";
|
|
121
121
|
import "./node-service-Cxz4e-Qd.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-D7nxPtEc.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-6v9jkDxp.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-BbiA-gGi.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-Gcuf3NTF.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-B-6wVg3A.js")).registerPluginsCli(program);
|
|
199
|
+
const { registerPluginCliCommands } = await import("./cli-Gcuf3NTF.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-CyhXPEWq.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-C-ZGqknl.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-DDlYn0ya.js").then((n) => n.n)).registerCompletionCli(program);
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { a as resolveOAuthDir, c as expandHomePrefix, l as resolveEffectiveHomeDir, n as resolveConfigPath, u as resolveRequiredHomeDir } from "./paths-
|
|
1
|
+
import { a as resolveOAuthDir, c as expandHomePrefix, l as resolveEffectiveHomeDir, n as resolveConfigPath, u as resolveRequiredHomeDir } from "./paths-Cce4PUkG.js";
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
import
|
|
4
|
+
import fs from "node:fs";
|
|
5
5
|
import { Logger } from "tslog";
|
|
6
6
|
import JSON5 from "json5";
|
|
7
7
|
import chalk, { Chalk } from "chalk";
|
|
@@ -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 ??
|
|
16
|
-
const lstatSync = options.lstatSync ??
|
|
17
|
-
const mkdirSync = options.mkdirSync ??
|
|
15
|
+
const accessSync = options.accessSync ?? fs.accessSync;
|
|
16
|
+
const lstatSync = options.lstatSync ?? fs.lstatSync;
|
|
17
|
+
const mkdirSync = options.mkdirSync ?? fs.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,
|
|
41
|
+
accessSync(POSIX_SYMI_TMP_DIR, fs.constants.W_OK | fs.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",
|
|
48
|
+
accessSync("/tmp", fs.constants.W_OK | fs.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 (!
|
|
72
|
-
const raw =
|
|
71
|
+
if (!fs.existsSync(configPath)) return;
|
|
72
|
+
const raw = fs.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
|
-
|
|
175
|
+
fs.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
|
-
|
|
189
|
+
fs.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 =
|
|
241
|
+
const entries = fs.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 (
|
|
248
|
+
if (fs.statSync(fullPath).mtimeMs < cutoff) fs.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
|
|
329
|
+
await fs.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
|
|
336
|
+
await fs.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 =
|
|
419
|
+
const data = fs.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 (
|
|
503
|
+
if (fs.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 {
|
|
3
|
-
import { r as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-
|
|
4
|
-
import {
|
|
2
|
+
import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-H1H1LiSQ.js";
|
|
3
|
+
import { r as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-DeFniOjh.js";
|
|
4
|
+
import { i as chunkMarkdownTextWithMode } from "./chunk-BW5f05BR.js";
|
|
5
5
|
|
|
6
6
|
//#region src/auto-reply/reply/reply-reference.ts
|
|
7
7
|
function createReplyReferencePlanner(options) {
|
|
@@ -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-HeObJp6A.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-HeObJp6A.js");
|
|
40941
40941
|
return webChannelPromise;
|
|
40942
40942
|
}
|
|
40943
40943
|
function loadWhatsAppActions() {
|
|
@@ -44587,6 +44587,69 @@ function createProcessTool(defaults) {
|
|
|
44587
44587
|
}
|
|
44588
44588
|
const processTool = createProcessTool();
|
|
44589
44589
|
|
|
44590
|
+
//#endregion
|
|
44591
|
+
//#region src/agents/model-token-filter.ts
|
|
44592
|
+
/**
|
|
44593
|
+
* Strips model-specific control tokens from streamed text.
|
|
44594
|
+
*
|
|
44595
|
+
* Used both server-side (in the streaming pipeline) and by the Glass UI
|
|
44596
|
+
* (as a defense-in-depth fallback). The patterns here cover tokens known
|
|
44597
|
+
* to leak from Gemma 4 / vLLM; Claude output is left untouched.
|
|
44598
|
+
*/
|
|
44599
|
+
const GEMMA_TOKEN_PATTERNS = [
|
|
44600
|
+
/<\|channel>\w*/g,
|
|
44601
|
+
/<channel\|>/g,
|
|
44602
|
+
/<start_of_turn>(?:model|user)?/g,
|
|
44603
|
+
/<end_of_turn>/g,
|
|
44604
|
+
/<\|(?:fim_prefix|fim_suffix|fim_middle)\|>/g,
|
|
44605
|
+
/^\s*<bos>\s*/gm,
|
|
44606
|
+
/<\|[^|>]{0,30}\|>/g,
|
|
44607
|
+
/<\|[^>]{0,30}>/g
|
|
44608
|
+
];
|
|
44609
|
+
/**
|
|
44610
|
+
* Aggressively strip all fragments of model control token corruption from
|
|
44611
|
+
* tool arguments. This catches cases where the model produces raw garbage
|
|
44612
|
+
* like `<|<|"|<|<|\'` that doesn't match any known token template.
|
|
44613
|
+
*/
|
|
44614
|
+
const AGGRESSIVE_TOKEN_FRAGMENTS = [/<\|/g, /\|>/g];
|
|
44615
|
+
const GEMMA_MODEL_HINTS$1 = ["gemma", "redsand/"];
|
|
44616
|
+
function isGemmaModel$1(modelId) {
|
|
44617
|
+
const lower = modelId.toLowerCase();
|
|
44618
|
+
return GEMMA_MODEL_HINTS$1.some((hint) => lower.includes(hint));
|
|
44619
|
+
}
|
|
44620
|
+
/**
|
|
44621
|
+
* Strip known control tokens from text. Only applies to Gemma-family models;
|
|
44622
|
+
* other models pass through unchanged.
|
|
44623
|
+
*/
|
|
44624
|
+
/**
|
|
44625
|
+
* Strip known control tokens from text. Only applies to Gemma-family models;
|
|
44626
|
+
* other models pass through unchanged. Used for streamed text output.
|
|
44627
|
+
*/
|
|
44628
|
+
function stripModelTokens(text, modelId) {
|
|
44629
|
+
if (!text || !isGemmaModel$1(modelId)) return text;
|
|
44630
|
+
let result = text;
|
|
44631
|
+
for (const re of GEMMA_TOKEN_PATTERNS) {
|
|
44632
|
+
re.lastIndex = 0;
|
|
44633
|
+
result = result.replace(re, "");
|
|
44634
|
+
}
|
|
44635
|
+
return result;
|
|
44636
|
+
}
|
|
44637
|
+
/**
|
|
44638
|
+
* Aggressively strip ALL token-like fragments from a string. Used for tool
|
|
44639
|
+
* call arguments where any `<|` corruption causes downstream failures.
|
|
44640
|
+
* More aggressive than `stripModelTokens` — removes bare `<|` and `|>` fragments
|
|
44641
|
+
* that don't match any known token template.
|
|
44642
|
+
*/
|
|
44643
|
+
function stripModelTokensAggressive(text, modelId) {
|
|
44644
|
+
if (!text || !isGemmaModel$1(modelId)) return text;
|
|
44645
|
+
let result = stripModelTokens(text, modelId);
|
|
44646
|
+
for (const re of AGGRESSIVE_TOKEN_FRAGMENTS) {
|
|
44647
|
+
re.lastIndex = 0;
|
|
44648
|
+
result = result.replace(re, "");
|
|
44649
|
+
}
|
|
44650
|
+
return result;
|
|
44651
|
+
}
|
|
44652
|
+
|
|
44590
44653
|
//#endregion
|
|
44591
44654
|
//#region src/agents/pi-tools.abort.ts
|
|
44592
44655
|
function throwAbortError() {
|
|
@@ -55969,6 +56032,31 @@ function resolveToolLoopDetectionConfig(params) {
|
|
|
55969
56032
|
}
|
|
55970
56033
|
};
|
|
55971
56034
|
}
|
|
56035
|
+
/**
|
|
56036
|
+
* Wrap a tool to strip model-specific control tokens from string arguments
|
|
56037
|
+
* before execution. Gemma 4 via vLLM sometimes injects tokens like `<|`
|
|
56038
|
+
* into tool call arguments (e.g. `exec("<|node -v")`). This wrapper
|
|
56039
|
+
* sanitizes all string values in the argument object.
|
|
56040
|
+
*/
|
|
56041
|
+
function wrapToolWithArgSanitization(tool, modelId) {
|
|
56042
|
+
const execute = tool.execute;
|
|
56043
|
+
if (!execute) return tool;
|
|
56044
|
+
return {
|
|
56045
|
+
...tool,
|
|
56046
|
+
execute: async (toolCallId, params, signal, onUpdate) => {
|
|
56047
|
+
return execute(toolCallId, sanitizeToolArgs(params, modelId), signal, onUpdate);
|
|
56048
|
+
}
|
|
56049
|
+
};
|
|
56050
|
+
}
|
|
56051
|
+
function sanitizeToolArgs(params, modelId) {
|
|
56052
|
+
if (!params || typeof params !== "object") return typeof params === "string" ? stripModelTokensAggressive(params, modelId) : params;
|
|
56053
|
+
if (Array.isArray(params)) return params.map((item) => sanitizeToolArgs(item, modelId));
|
|
56054
|
+
const result = {};
|
|
56055
|
+
for (const [key, value] of Object.entries(params)) if (typeof value === "string") result[key] = stripModelTokensAggressive(value, modelId);
|
|
56056
|
+
else if (value && typeof value === "object") result[key] = sanitizeToolArgs(value, modelId);
|
|
56057
|
+
else result[key] = value;
|
|
56058
|
+
return result;
|
|
56059
|
+
}
|
|
55972
56060
|
function createSymiCodingTools(options) {
|
|
55973
56061
|
const execToolName = "exec";
|
|
55974
56062
|
const sandbox = options?.sandbox?.enabled ? options.sandbox : void 0;
|
|
@@ -56192,7 +56280,11 @@ function createSymiCodingTools(options) {
|
|
|
56192
56280
|
agentId
|
|
56193
56281
|
})
|
|
56194
56282
|
}));
|
|
56195
|
-
|
|
56283
|
+
const withAbort = options?.abortSignal ? withHooks.map((tool) => wrapToolWithAbortSignal(tool, options.abortSignal)) : withHooks;
|
|
56284
|
+
const modelId = options?.modelId ?? "";
|
|
56285
|
+
const modelProvider = options?.modelProvider ?? "";
|
|
56286
|
+
const fullModelId = modelProvider ? `${modelProvider}/${modelId}` : modelId;
|
|
56287
|
+
return fullModelId ? withAbort.map((tool) => wrapToolWithArgSanitization(tool, fullModelId)) : withAbort;
|
|
56196
56288
|
}
|
|
56197
56289
|
|
|
56198
56290
|
//#endregion
|
|
@@ -72560,4 +72652,4 @@ async function getReplyFromConfig(ctx, opts, configOverride) {
|
|
|
72560
72652
|
}
|
|
72561
72653
|
|
|
72562
72654
|
//#endregion
|
|
72563
|
-
export { normalizeOptionalSessionKey as $,
|
|
72655
|
+
export { normalizeOptionalSessionKey as $, textToSpeech as $n, loadAgentIdentityFromWorkspace as $t, formatTargetDisplay as A, countActiveRunsForSession as An, extractFileContentFromSource as Ar, computeBackoff as At, setPreRestartDeferralCheck as B, onAgentEvent as Bn, createOutboundSendDeps as Bt, loadSessionEntry as C, hasControlCommand as Cn, isSystemEventContextChanged as Cr, formatUsageReportLines as Ct, runMessageAction as D, buildMentionRegexes as Dn, DEFAULT_INPUT_IMAGE_MIMES as Dr, handleSlackHttpRequest as Dt, resolveSessionModelRef as E, stopSubagentsForRequester as En, DEFAULT_INPUT_IMAGE_MAX_BYTES as Er, resolveCommitHash as Et, emitGatewayRestart as F, runSubagentAnnounceFlow as Fn, resolveAgentTimeoutMs as Fr, resolveAgentOutboundTarget as Ft, summarizeRestartSentinel as G, isTtsProviderConfigured as Gn, runWithModelFallback as Gt, formatDoctorNonInteractiveHint as H, resolveUserTimezone as Hn, resolveSendPolicy as Ht, isGatewaySigusr1RestartExternallyAllowed as I, readLatestAssistantReply as In, resolveHeartbeatDeliveryTarget as It, normalizeHttpWebhookUrl as J, resolveTtsConfig as Jn, runCliAgent as Jt, trimLogTail as K, resolveTtsApiKey as Kn, getCliSessionId as Kt, markGatewaySigusr1RestartHandled as L, clearAgentRunContext as Ln, resolveHeartbeatSenderContext as Lt, CHANNEL_MESSAGE_ACTION_NAMES as M, listDescendantRunsForRequester as Mn, normalizeMimeList as Mr, agentCommand as Mt, consumeGatewaySigusr1RestartAuthorization as N, listSubagentRunsForRequester as Nn, resolveInputFileLimits as Nr, resolveSessionKeyForRequest as Nt, ensureOutboundSessionEntry as O, normalizeMentionText as On, DEFAULT_INPUT_MAX_REDIRECTS as Or, readJsonBodyWithLimit as Ot, deferGatewayRestartUntilIdle as P, subagent_registry_exports as Pn, estimateBase64DecodedBytes as Pr, resolveAgentDeliveryPlan as Pt, normalizeOptionalAgentId as Q, setTtsProvider as Qn, identityHasValues as Qt, scheduleGatewaySigusr1Restart as R, emitAgentEvent as Rn, resolveOutboundTarget as Rt, loadCombinedSessionStoreForGateway as S, formatZonedTimestamp as Sn, enqueueSystemEvent as Sr, loadProviderUsageSummary as St, resolveGatewaySessionStoreTarget as T, isAbortTrigger as Tn, peekSystemEvents as Tr, resolveUsageProviderId as Tt, formatRestartSentinelMessage as U, getTtsProvider as Un, createDefaultDeps as Ut, consumeRestartSentinel as V, registerAgentRunContext as Vn, normalizeSendPolicy as Vt, readRestartSentinel as W, isTtsEnabled as Wn, createOutboundSendDeps$1 as Wt, normalizeCronJobPatch as X, resolveTtsProviderOrder as Xn, describeFailoverError as Xt, normalizeCronJobCreate as Y, resolveTtsPrefsPath as Yn, sha256HexPrefix as Yt, inferLegacyName as Z, setTtsEnabled as Zn, resolveAgentAvatar as Zt, resolveAnnounceTargetFromKey as _, createDedupeCache as _n, buildAuthHealthSummary as _r, createPluginLoaderLogger as _t, buildChannelSummary as a, unbindThreadBindingsBySessionKey as an, resetAllLanes as ar, hasLegacyDeliveryHints as at, listAgentsForGateway as b, formatInboundEnvelope as bn, applyVerboseOverride as br, normalizeGroupActivation as bt, clearSessionQueues as c, DEFAULT_GROUP_HISTORY_LIMIT as cn, CommandLane as cr, CHANNEL_TARGET_DESCRIPTION as ct, getActiveEmbeddedRunCount as d, shouldAckReactionForWhatsApp as dn, isHeartbeatContentEffectivelyEmpty as dr, sniffMimeFromBase64 as dt, parseIdentityMarkdown as en, OPENAI_TTS_MODELS as er, normalizeOptionalText as et, waitForEmbeddedPiRunEnd as f, dispatchReplyWithBufferedBlockDispatcher as fn, resolveHeartbeatPrompt as fr, stripModelTokens as ft, createSymiTools as g, getTotalPendingReplies as gn, DEFAULT_OAUTH_WARN_MS as gr, getPluginToolMeta as gt, buildDefaultToolPolicyPipelineSteps as h, createReplyDispatcher as hn, maskApiKey as hr, resolveHeartbeatReasonKind as ht, resolveCronStyleNow as i, isExternalHookSession as in, getTotalQueueSize as ir, buildDeliveryFromLegacyPayload as it, resetDirectoryCache as j, initSubagentRegistry as jn, extractImageContentFromSource as jr, sleepWithAbort as jt, resolveOutboundSessionRoute as k, countActiveDescendantRuns as kn, DEFAULT_INPUT_TIMEOUT_MS as kr, requestBodyErrorToText as kt, runEmbeddedPiAgent as l, buildHistoryContextFromEntries as ln, DEFAULT_HEARTBEAT_ACK_MAX_CHARS as lr, applyBrowserProxyPaths as lt, applyToolPolicyPipeline as m, dispatchInboundMessage as mn, lookupContextTokens as mr, setHeartbeatWakeHandler as mt, BARE_SESSION_RESET_PROMPT as n, detectSuspiciousPatterns as nn, getActiveTaskCount as nr, normalizeRequiredName as nt, buildChannelAccountSnapshot as o, buildPairingReply as on, setCommandLaneConcurrency as or, stripLegacyDeliveryFields as ot, resolveModelProfile as p, provider_dispatcher_exports as pn, stripHeartbeatToken as pr, requestHeartbeatNow as pt, writeRestartSentinel as q, resolveTtsAutoMode as qn, setCliSessionId as qt, appendCronStyleCurrentTimeLine as r, getHookType as rn, getQueueSize as rr, migrateLegacyCronPayload as rt, formatChannelAllowFrom as s, resolveMentionGating as sn, waitForActiveTasks as sr, CHANNEL_TARGETS_DESCRIPTION as st, getReplyFromConfig as t, buildSafeExternalPrompt as tn, OPENAI_TTS_VOICES as tr, normalizePayloadToSystemText as tt, abortEmbeddedPiRun as u, recordPendingHistoryEntryIfEnabled as un, DEFAULT_HEARTBEAT_EVERY as ur, persistBrowserProxyFiles as ut, canonicalizeSpawnedByForAgent as v, createInboundDebouncer as vn, formatRemainingShort as vr, loadSymiPlugins as vt, pruneLegacyStoreKeys as w, shouldComputeCommandAuthorized as wn, peekSystemEventEntries as wr, formatUsageWindowSummary as wt, listSessionsFromStore as x, resolveEnvelopeFormatOptions as xn, parseVerboseOverride as xr, parseActivationCommand as xt, classifySessionKey as y, resolveInboundDebounceMs as yn, applyModelOverrideToSessionEntry as yr, deleteTelegramUpdateOffset as yt, setGatewaySigusr1RestartPolicy as z, getAgentRunContext as zn, resolveSessionDeliveryTarget as zt };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { n as resolveAgentConfig } from "./agent-scope-
|
|
2
|
+
import { n as resolveAgentConfig } from "./agent-scope-BxoUQqgM.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-
|
|
4
|
-
import { c as resolveDefaultAgentId } from "./agent-scope-
|
|
5
|
-
import { y as logDebug } from "./workspace-
|
|
3
|
+
import { Z as shouldLogVerbose } from "./registry-CK4e9hn8.js";
|
|
4
|
+
import { c as resolveDefaultAgentId } from "./agent-scope-BxoUQqgM.js";
|
|
5
|
+
import { y as logDebug } from "./workspace-wAaHI8-5.js";
|
|
6
6
|
import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
|
|
7
|
-
import { t as listBindings } from "./bindings-
|
|
7
|
+
import { t as listBindings } from "./bindings-B7Ke6LJi.js";
|
|
8
8
|
|
|
9
9
|
//#region src/routing/resolve-route.ts
|
|
10
10
|
var resolve_route_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -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-CyW0EDWw.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-
|
|
104
|
+
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-B7AdPXfF.js";
|
|
105
105
|
import { t as assertSupportedRuntime } from "./runtime-guard-D7waq_Ho.js";
|
|
106
|
-
import { t as emitCliBanner } from "./banner-
|
|
106
|
+
import { t as emitCliBanner } from "./banner-ChYzCy5p.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-
|
|
121
|
+
const { healthCommand } = await import("./health-BSOMI4B6.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-
|
|
141
|
+
const { statusCommand } = await import("./status-4DaGE8j5.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-
|
|
175
|
+
const { agentsListCommand } = await import("./agents-E_Ere0qU.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-
|
|
246
|
+
const { runConfigGet } = await import("./config-cli-BcuAsDOu.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-
|
|
259
|
+
const { runConfigUnset } = await import("./config-cli-BcuAsDOu.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-
|
|
273
|
+
const { modelsListCommand } = await import("./models-DqE1s0YL.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-
|
|
304
|
+
const { modelsStatusCommand } = await import("./models-DqE1s0YL.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-
|
|
382
|
+
const { buildProgram } = await import("./program-DBtlRiFS.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-
|
|
414
|
+
const { registerCoreCliByName } = await import("./command-registry-Cvr_dlLY.js").then((n) => n.t);
|
|
415
415
|
await registerCoreCliByName(program, ctx, primary, parseArgv);
|
|
416
416
|
}
|
|
417
|
-
const { registerSubCliByName } = await import("./register.subclis-
|
|
417
|
+
const { registerSubCliByName } = await import("./register.subclis-DJf3ihsW.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-
|
|
426
|
+
const { registerPluginCliCommands } = await import("./cli-Gcuf3NTF.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-
|
|
7
|
+
import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-CHzdaNJ4.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";
|