@symerian/symi 2.3.3 → 2.4.0
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-Cd816n6l.js → accounts-DDuIpcln.js} +7 -7
- package/dist/{accounts-mN_EcgxC.js → accounts-DyJN4_vR.js} +1 -1
- package/dist/{accounts-CokRskCl.js → accounts-bK-Yqdwx.js} +1 -1
- package/dist/{acp-cli-BgyJMtqt.js → acp-cli-Cu4icbJT.js} +6 -6
- package/dist/{agent-scope-BRwEc2pG.js → agent-scope-CgUHAtCo.js} +18 -18
- package/dist/{agents-DjLt6jc3.js → agents-CI3xxYc_.js} +4 -4
- package/dist/{agents.config-u_ibObha.js → agents.config-DCE3RGr9.js} +2 -2
- package/dist/{agents.config-Dt7B_P5o.js → agents.config-DTUAM1AG.js} +1 -1
- package/dist/{api-key-rotation-CEr3lKih.js → api-key-rotation-CzuPlV2t.js} +1 -1
- package/dist/{audio-preflight-CPBOQV4I.js → audio-preflight-C40mKAp7.js} +4 -4
- package/dist/{audio-preflight-CjysqO8U.js → audio-preflight-CWnxkaac.js} +28 -28
- package/dist/{audio-preflight-D02HwB-I.js → audio-preflight-O3ASWbaG.js} +4 -4
- package/dist/{audit-BSB9NPSO.js → audit-CrITRV6w.js} +23 -23
- package/dist/{auth-choice-DmSG7c8J.js → auth-choice-DuQwRfJc.js} +8 -8
- package/dist/{auth-choice-DUUu6Nhg.js → auth-choice-IiIysHGO.js} +1 -1
- package/dist/{auth-token-DC5w1WoS.js → auth-token-BnOynwk4.js} +1 -1
- package/dist/{banner-BiAcdT2T.js → banner-xhDZu_ZJ.js} +1 -1
- package/dist/{bindings-ChzePa8q.js → bindings-DFaVVCsf.js} +1 -1
- package/dist/{browser-cli-C4D9Ql3c.js → browser-cli-BG4qPxpM.js} +9 -9
- 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/{call-Dd7-bkfG.js → call-CJaS1iRF.js} +9 -9
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-vQREpu-n.js → channel-options-D3gGVwBd.js} +2 -2
- package/dist/{channel-options-ClfXE1B7.js → channel-options-Dvxd7eJY.js} +1 -1
- package/dist/{channel-selection-DjfBv8kq.js → channel-selection-DuWs0Aak.js} +1 -1
- package/dist/{channel-web-y6pd_GHr.js → channel-web-a5tX1YI3.js} +17 -17
- package/dist/{channels-cli-CjYD1_OO.js → channels-cli-BLUkl5Li.js} +75 -75
- package/dist/{channels-cli-suXRcyfF.js → channels-cli-C9wBYmDe.js} +4 -4
- package/dist/{channels-status-issues-BoH1ZJPN.js → channels-status-issues-B_kBkl_u.js} +1 -1
- package/dist/{chrome-EyvdASWt.js → chrome-BFekevcE.js} +7 -7
- package/dist/{chrome-D2SKJnR7.js → chrome-CDJYxX5a.js} +7 -7
- package/dist/{chrome-r4RThPxq.js → chrome-DtPkPq9T.js} +2 -2
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-mbfUlFn3.js → cli-CaEE46xi.js} +1 -1
- package/dist/{cli-B-911QZL.js → cli-Cw45F0yJ.js} +62 -62
- package/dist/{client-BsrZnuSi.js → client-CQSyCS4M.js} +1 -1
- package/dist/{command-registry-y8CXSD5O.js → command-registry-ea9SD1eA.js} +9 -9
- package/dist/{commands-CtocZ4Lg.js → commands-BNLCWX6e.js} +1 -1
- package/dist/{commands-registry-BZ0ZSQpM.js → commands-registry-BT0-zzs3.js} +3 -3
- package/dist/{completion-cli-BLrwUAyo.js → completion-cli-CMJmUQbI.js} +12 -12
- package/dist/{completion-cli-2Mi5hts2.js → completion-cli-DVkiEAEA.js} +2 -2
- package/dist/{config-CJMcIRQM.js → config-CHwyw6l5.js} +2 -2
- package/dist/{config-cli-CF-wdLkO.js → config-cli-B2d28_hb.js} +4 -4
- package/dist/{config-cli-tYZAnvgQ.js → config-cli-VIg0PSyq.js} +1 -1
- package/dist/{config-guard-C1Rs8NZG.js → config-guard-BflmO0t7.js} +12 -12
- package/dist/{config-validation-ChQQVndI.js → config-validation-CmimHAES.js} +1 -1
- package/dist/{configure-si19m30s.js → configure-C_TVBt76.js} +3 -3
- package/dist/{configure-BHKdqhLb.js → configure-D-3FiJbK.js} +15 -15
- package/dist/{control-service-B8H3Bqpv.js → control-service-Bz7rxLWq.js} +4 -4
- package/dist/{control-ui-assets-DqGziq7x.js → control-ui-assets-Z947tKLt.js} +1 -1
- package/dist/{cron-cli-YrMWJCkm.js → cron-cli-DBIlCvp3.js} +10 -10
- package/dist/{daemon-cli-Dx4SXRyp.js → daemon-cli-DscwlsKW.js} +11 -11
- package/dist/{daemon-runtime--RiRUx_2.js → daemon-runtime-2mwX-jqj.js} +10 -10
- package/dist/{deliver-C-37cZUe.js → deliver-BH0l3UKW.js} +1 -1
- package/dist/{deliver-Um8yyhRA.js → deliver-CceEhg3d.js} +7 -7
- package/dist/{deliver-D1ZN6-fl.js → deliver-CvCK5Mm9.js} +1 -1
- package/dist/{devices-cli-DAJ84AOe.js → devices-cli-Dds-25Ve.js} +6 -6
- package/dist/{diagnostics-D2yUMZN1.js → diagnostics-BAMlsVVX.js} +5 -5
- package/dist/{directory-cli-C4h8KQLH.js → directory-cli-CpUByQew.js} +7 -7
- package/dist/{dm-policy-shared-BCSw0GJS.js → dm-policy-shared-Bh3TbexU.js} +2 -2
- package/dist/{dns-cli-s0ZWvTPm.js → dns-cli-Beyzdh3S.js} +3 -3
- package/dist/{dock-BYiRZSgZ.js → dock-BhS32F6E.js} +4 -4
- package/dist/{docs-cli-BfPfHTDs.js → docs-cli-BpnEOtJi.js} +1 -1
- package/dist/{doctor-completion-C19QYsQN.js → doctor-completion-CJHJYIwQ.js} +2 -2
- package/dist/{doctor-completion-Dn_Kn4gz.js → doctor-completion-DeRX6gkI.js} +1 -1
- package/dist/{doctor-config-flow-D05HlWdn.js → doctor-config-flow-QnaBd8kL.js} +10 -10
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-Df1lyRyE.js → exec-approvals-cli-BliRl8VB.js} +13 -13
- package/dist/extensionAPI.js +6 -6
- package/dist/{fs-safe-CTDvb1DF.js → fs-safe-CUjO1ca2.js} +6 -6
- package/dist/{gateway-cli-B7khyAHs.js → gateway-cli-BDDHBfYP.js} +126 -121
- package/dist/{gateway-cli-DG_Mdw0H.js → gateway-cli-DiDJ6Z2d.js} +22 -17
- package/dist/{gateway-rpc-DFeD8pZh.js → gateway-rpc-BxkKeCZ0.js} +1 -1
- package/dist/{glass-ui-ws-BmQAULMj.js → glass-ui-ws-Bj1IuJXt.js} +82 -82
- package/dist/{glass-ui-ws-BAub_JoN.js → glass-ui-ws-rGIAkViC.js} +7 -7
- package/dist/{health-CboWXJkq.js → health-Bst5HnLF.js} +1 -1
- package/dist/{health-DkKXiUEF.js → health-CypF_2ZD.js} +13 -13
- package/dist/{hooks-cli-DLM_5caf.js → hooks-cli-CDMcqTy4.js} +2 -2
- package/dist/{hooks-cli-BrO_9pas.js → hooks-cli-CfsqqxPX.js} +76 -76
- package/dist/{image-Cp3JDEBB.js → image-B0wGflxA.js} +1 -1
- package/dist/{image-DcpMiprB.js → image-CHzdaNJ4.js} +1 -1
- package/dist/{image-BiY-PfMh.js → image-D9uvDTrc.js} +3 -3
- package/dist/{image-ops-DYbDWaIA.js → image-ops-1OJMSAUX.js} +10 -10
- package/dist/index.js +72 -72
- package/dist/{inspect-ZJkNX0WL.js → inspect-CllGjsWo.js} +4 -4
- package/dist/{install-safe-path-Qqr_t_tH.js → install-safe-path-tCLiMpmO.js} +11 -11
- package/dist/{installs-O9KlRu9h.js → installs-C1Cebk97.js} +10 -10
- package/dist/{ir-Dt4hOzxG.js → ir-DZam9q5M.js} +6 -6
- package/dist/{lifecycle-core-BkPSoGM2.js → lifecycle-core-D6LYXpFj.js} +5 -5
- package/dist/llm-slug-generator.js +6 -6
- package/dist/{local-roots-BBeKX7PX.js → local-roots-aAFLQGkY.js} +2 -2
- package/dist/{login-1sleXoB4.js → login-dIlDkG4X.js} +3 -3
- package/dist/{login-qr-wCWBOMwB.js → login-qr-pbXdFORv.js} +5 -5
- package/dist/{logs-cli-DVeEdUCU.js → logs-cli-xOzIPrHm.js} +7 -7
- package/dist/{manager-C1CfGzZ2.js → manager-D4LJSRyZ.js} +13 -13
- package/dist/{markdown-tables-ZwP14ydw.js → markdown-tables-CEbN0fEm.js} +1 -1
- package/dist/{memory-cli-lk6fRiwy.js → memory-cli-Ca5r9AUb.js} +14 -14
- package/dist/{model-catalog-C3NLvWC2.js → model-catalog-DvBJ8pMD.js} +4 -4
- package/dist/{model-picker-LKZLY2DL.js → model-picker-Ddo3jHe-.js} +3 -3
- package/dist/{model-selection-X1oLh3CE.js → model-selection-CyFvYcRt.js} +9 -9
- package/dist/{model-CeeOcylL.js → model-tWhwnFf8.js} +1 -1
- package/dist/{models-BmiRYEVd.js → models-ZEOGlFx7.js} +2 -2
- package/dist/{models-cli-Tf61I97Q.js → models-cli-BM1QyeXr.js} +3 -3
- package/dist/{models-cli-4vQrbW6G.js → models-cli-BwOQhZ_c.js} +72 -72
- package/dist/{models-config-CqDdkHJq.js → models-config-qyOXrOli.js} +7 -7
- package/dist/{node-cli-Jj2LTGzF.js → node-cli-C_G-Q3h-.js} +28 -28
- package/dist/{node-service-CJygtY5M.js → node-service-Cxz4e-Qd.js} +1 -1
- package/dist/{nodes-cli-C43ifECe.js → nodes-cli-BcnuJajV.js} +10 -10
- package/dist/{nodes-screen-C99kfE1u.js → nodes-screen-VBGXKdLk.js} +4 -4
- package/dist/{npm-registry-spec-DR_at_Hp.js → npm-registry-spec-C2JDdSZS.js} +9 -9
- package/dist/{onboard-FpptSqHZ.js → onboard-CU-pntZD.js} +2 -2
- package/dist/{onboard-D8uxVvMq.js → onboard-DQ34giB5.js} +13 -13
- package/dist/{onboard-channels-DOKid2w1.js → onboard-channels-BOBxxhHX.js} +5 -5
- package/dist/{onboard-channels-Q_xxgZ8O.js → onboard-channels-g5cvwJpx.js} +1 -1
- package/dist/{onboard-custom-DPJiy9aT.js → onboard-custom-C7O-zfQ1.js} +3 -3
- package/dist/{onboard-helpers-Dixh6cNh.js → onboard-helpers-ZmZYzlq3.js} +8 -8
- package/dist/{onboard-hooks-lsws7g2s.js → onboard-hooks-BAA8CoVv.js} +1 -1
- package/dist/{onboard-remote-B66ZWtkN.js → onboard-remote-zUjD7UtM.js} +1 -1
- package/dist/{onboard-skills-B0IA09ig.js → onboard-skills-BB0YhUmF.js} +4 -4
- package/dist/{onboarding-CdlGKa0U.js → onboarding-CXWUjdM5.js} +13 -13
- package/dist/{onboarding-DhIEUmp5.js → onboarding-DWs6tHZ9.js} +3 -3
- package/dist/{onboarding.finalize-CEYLIXkq.js → onboarding.finalize-CAYf88mf.js} +6 -6
- package/dist/{onboarding.finalize-DyBsPxXJ.js → onboarding.finalize-vupGASMK.js} +74 -74
- package/dist/{onboarding.gateway-config-CCJqI0kw.js → onboarding.gateway-config-CJUgDC6Y.js} +14 -14
- package/dist/{openai-model-default-BJ1IZ3TN.js → openai-model-default-DMjQRsb1.js} +2 -2
- package/dist/{outbound-NJCy0h4x.js → outbound-DB5Zus0-.js} +4 -4
- package/dist/{outbound-attachment-D62E0xDI.js → outbound-attachment-D_QuKi8U.js} +2 -2
- package/dist/{pairing-cli-CcW0ndhB.js → pairing-cli-CBLfGvqW.js} +8 -8
- package/dist/{pairing-labels-27SOKDzJ.js → pairing-labels-2S6x2UoV.js} +1 -1
- package/dist/{pairing-store-B8ktu-6j.js → pairing-store-CK726Dzq.js} +2 -2
- package/dist/{pairing-token-AV-MMfVE.js → pairing-token-CX3NN_qj.js} +7 -7
- package/dist/{paths-CT6jsi4E.js → paths-BBm9fwuG.js} +1 -1
- package/dist/{pi-auth-json-CCneTXUh.js → pi-auth-json-DayrlDg_.js} +3 -3
- package/dist/{pi-embedded-wr4HXhzm.js → pi-embedded-CJsSOG2j.js} +147 -185
- package/dist/{pi-embedded-BThV36aG.js → pi-embedded-DwbQz0MC.js} +147 -185
- package/dist/{pi-embedded-helpers-DO6u9K2t.js → pi-embedded-helpers-CNPyv_ax.js} +6 -6
- package/dist/{pi-embedded-helpers-ag2bosuj.js → pi-embedded-helpers-DLFjnVBb.js} +4 -4
- package/dist/{pi-embedded-helpers-B8kqLWns.js → pi-embedded-helpers-lgx_U5KS.js} +4 -4
- package/dist/{pi-tools.policy-juZV2uUv.js → pi-tools.policy-CIDBbw6x.js} +4 -4
- package/dist/{plugin-auto-enable-Bbm7MwFV.js → plugin-auto-enable-BzX1uAKy.js} +2 -2
- package/dist/{plugin-registry-DvWWctC9.js → plugin-registry-BDpdOTei.js} +1 -1
- package/dist/{plugin-registry-lWWSu9UD.js → plugin-registry-CZeHSx_c.js} +3 -3
- package/dist/plugin-sdk/agents/model-aware-stream.d.ts +41 -0
- package/dist/plugin-sdk/agents/model-token-filter.d.ts +11 -0
- package/dist/plugin-sdk/agents/pi-embedded-runner/extra-params.d.ts +13 -0
- package/dist/plugin-sdk/{channel-web-BnrTC55Y.js → channel-web-uUypcT9Q.js} +1 -1
- package/dist/plugin-sdk/index.js +2 -2
- package/dist/plugin-sdk/{reply-kuMxu6Q4.js → reply-DTKTuCrn.js} +133 -171
- package/dist/plugin-sdk/{web-TMIhKQyF.js → web-Dh6Youzv.js} +2 -2
- package/dist/{plugins-BAyxWQSz.js → plugins-DKDeQZF0.js} +2 -2
- package/dist/{plugins-cli-BHfzYAq6.js → plugins-cli-CCQ3skeQ.js} +71 -71
- package/dist/{plugins-cli-wlWRx4Oj.js → plugins-cli-D_RzeRoE.js} +2 -2
- package/dist/{ports-OZQlocB7.js → ports-BOmtxoTv.js} +2 -2
- package/dist/{ports-b36gHZbA.js → ports-BX0kKI0g.js} +1 -1
- package/dist/{program-CKy7s-bm.js → program-Cl9i8ubQ.js} +7 -7
- package/dist/{program-context-D4gbh6dg.js → program-context-BbmYGW-V.js} +39 -39
- package/dist/{prompt-select-styled-bh0GLMiQ.js → prompt-select-styled-BN0T6GxF.js} +4 -4
- package/dist/{prompt-select-styled-DlGPNq9c.js → prompt-select-styled-BfuyvChh.js} +38 -38
- package/dist/{provider-auth-helpers-B-YsKbwc.js → provider-auth-helpers-CkmLFHXL.js} +1 -1
- package/dist/{provider-auth-helpers-Bd5VVReu.js → provider-auth-helpers-CuT5EHza.js} +5 -5
- package/dist/{push-apns-ByyOJyDl.js → push-apns-CFkFVwEz.js} +1 -1
- package/dist/{push-apns-0et2AR44.js → push-apns-DeJt9kAO.js} +4 -4
- package/dist/{pw-ai-Ch7liUOW.js → pw-ai-BnAKvSuw.js} +1 -1
- package/dist/{pw-ai-1htA-NnS.js → pw-ai-De-KR9_s.js} +1 -1
- package/dist/{pw-ai-MVzi113V.js → pw-ai-DqL87js3.js} +7 -7
- package/dist/{qmd-manager-BP2r8b1D.js → qmd-manager-D85GJrir.js} +18 -18
- package/dist/{qr-cli-17laLZm_.js → qr-cli-jd9LdZpq.js} +3 -3
- package/dist/{register.agent-oKma6YjU.js → register.agent-BQm4YmZp.js} +6 -6
- package/dist/{register.agent-Dhijhxr5.js → register.agent-BygseJ7t.js} +81 -81
- package/dist/register.configure-C2fhjZze.js +147 -0
- package/dist/{register.configure-BX8vQ2Np.js → register.configure-Cj95vB2U.js} +6 -6
- package/dist/{register.maintenance-OJCduNdt.js → register.maintenance-CClfXq5e.js} +8 -8
- package/dist/{register.maintenance-B3TPb969.js → register.maintenance-K1x3E7OS.js} +84 -84
- package/dist/{register.message-CX8C_Fds.js → register.message-BSr-kUvJ.js} +2 -2
- package/dist/{register.message-D0aswsGo.js → register.message-CSRzBl-c.js} +63 -63
- package/dist/{register.onboard-CSepiSPt.js → register.onboard-Bd6wPydW.js} +4 -4
- package/dist/{register.onboard-BHTyEs6d.js → register.onboard-TsU21RR7.js} +74 -74
- package/dist/{register.setup-uhpgkBjU.js → register.setup-C9gu0W5l.js} +77 -77
- package/dist/{register.setup-lZSHKiGQ.js → register.setup-DK-zsne2.js} +4 -4
- package/dist/{register.status-health-sessions-Cbavf8do.js → register.status-health-sessions-DN5Ui3V0.js} +3 -3
- package/dist/{register.status-health-sessions-v1KN3eEp.js → register.status-health-sessions-rZsuoqtr.js} +75 -75
- package/dist/{register.subclis-DBEv5xOP.js → register.subclis-DnzHFtLz.js} +9 -9
- package/dist/{replies-BL7IBg12.js → replies-vgss3_QA.js} +1 -1
- package/dist/{reply-DVxU0AMq.js → reply-Ca3slrA3.js} +262 -300
- package/dist/{reply-prefix-BLOOs1aW.js → reply-prefix-CE2YmmsD.js} +1 -1
- package/dist/{resolve-route-BcnaXYvh.js → resolve-route-BMoTaVAH.js} +2 -2
- package/dist/{routes-CE-ohckF.js → routes-Ba9CUQ8M.js} +8 -8
- package/dist/{rpc-wovSCB5v.js → rpc-BfhojW8g.js} +1 -1
- package/dist/{run-main-DspjiCY1.js → run-main-DlHh5iOO.js} +14 -14
- package/dist/{runner-Cen70krW.js → runner-CUglpiFP.js} +20 -20
- package/dist/{runner-BcQ0sF9T.js → runner-DUBExAb5.js} +1 -1
- package/dist/{runner-D0QUGA_X.js → runner-odEv83vv.js} +1 -1
- package/dist/{sandbox-BzNrUHpt.js → sandbox-C-T6hOMv.js} +18 -18
- package/dist/{sandbox-cli-CZrMO34w.js → sandbox-cli-BllVdQzR.js} +20 -20
- package/dist/{security-cli-CeBoEmeN.js → security-cli-BFLtWWHy.js} +36 -36
- package/dist/{send-dH0xroTu.js → send-CPF8hSFp.js} +4 -4
- package/dist/{send-C95ZRvja.js → send-CXxQ_f7L.js} +6 -6
- package/dist/{send-BnuIB59F.js → send-CZr1hVHY.js} +13 -13
- package/dist/{send-BEeuDXqy.js → send-Cutb0ZDY.js} +6 -6
- package/dist/{send-BjdAgYLu.js → send-tanEMpHN.js} +6 -6
- package/dist/{server-context-DUXqnh6l.js → server-context-CEpFjqSk.js} +5 -5
- package/dist/{server-methods-BgBq7KRL.js → server-methods-BYOkyf-q.js} +54 -54
- package/dist/{server-methods-B9alalq5.js → server-methods-b_Qod4tt.js} +7 -7
- package/dist/{server-node-events-BrBsrcCd.js → server-node-events-60nWpTh1.js} +63 -63
- package/dist/{server-node-events-DWG81_Fo.js → server-node-events-oU4Amei7.js} +2 -2
- package/dist/{service--qMN5DPm.js → service-Cl74hx8J.js} +15 -15
- package/dist/{session-CsIk0Sqq.js → session-DIBTkyvE.js} +2 -2
- package/dist/{sessions-D5a7H247.js → sessions-DgYpBvse.js} +13 -13
- package/dist/{shared-Jm_QdQJQ.js → shared-BJvwnR5z.js} +1 -1
- package/dist/{shared-Gi3l7nlY.js → shared-Knv1hy6h.js} +3 -3
- package/dist/{skill-commands-ZXbEITKi.js → skill-commands-Cxw-jNxU.js} +5 -5
- package/dist/{skill-scanner-CXg9eeyc.js → skill-scanner-CLs8u6vQ.js} +5 -5
- package/dist/{skills-DqQUtOph.js → skills-6jdJQ5ZL.js} +4 -4
- package/dist/{skills-cli-D1JL_utC.js → skills-cli-BZTBLQTt.js} +7 -7
- package/dist/{skills-install-DjcTy3CT.js → skills-install-D67isO1L.js} +3 -3
- package/dist/{skills-status-DS-NZQiq.js → skills-status-CURJKnyY.js} +1 -1
- package/dist/{sqlite-BV5ILFtC.js → sqlite-Dx3J_aSE.js} +12 -12
- package/dist/{status-CgPPKk09.js → status-BXW5l4sd.js} +25 -25
- package/dist/{status-DxodHhzX.js → status-BxbbINLV.js} +2 -2
- package/dist/{status-DqMwkAnF.js → status-D3-lP2_9.js} +1 -1
- package/dist/{status-CkJV2sl6.js → status-kdz9P3tw.js} +3 -3
- package/dist/{status.update-CmGpjKSr.js → status.update-DtwCUTf-.js} +3 -3
- package/dist/{store-DvtcmOKj.js → store-r1DJSDq-.js} +5 -5
- package/dist/{subagent-registry-CBklD0OL.js → subagent-registry-CbTbJKLs.js} +133 -171
- package/dist/{symi-root-MF6_6SCS.js → symi-root-CrGJbkzf.js} +2 -2
- package/dist/{system-cli-Buhvt_H5.js → system-cli-UMsMEurS.js} +11 -11
- package/dist/{systemd-hints-Db0oImvK.js → systemd-hints-BR6gChwm.js} +6 -6
- package/dist/{systemd-linger-BXwqn1jL.js → systemd-linger-aQ75ZlXY.js} +1 -1
- package/dist/{systemd-AhJEsmIk.js → systemd-riq8uNJQ.js} +5 -5
- package/dist/{tables-C38rzF6E.js → tables-BEzT0Da4.js} +1 -1
- package/dist/{target-errors-CCz79CmV.js → target-errors-7AvoVa10.js} +4 -4
- package/dist/{tool-images-B-pqX3nX.js → tool-images-DvUBlqjX.js} +1 -1
- package/dist/{tui-C0A9W969.js → tui-CriznorL.js} +7 -7
- package/dist/{tui-cli-tCnkNdSx.js → tui-cli-CSIdfCTR.js} +28 -28
- package/dist/{update-check-C0oYCI89.js → update-check-CtckACbb.js} +5 -5
- package/dist/{update-cli-DYrpyu4a.js → update-cli-B5TI650v.js} +94 -94
- package/dist/{update-cli-BqdgQuYp.js → update-cli-Cy0gdWRf.js} +8 -8
- package/dist/{update-runner-CmZW3aeK.js → update-runner-B0NdgPvD.js} +1 -1
- package/dist/{update-runner-BgzyPjF5.js → update-runner-Bacq0oLK.js} +15 -15
- package/dist/{update-Df4sEKtI.js → update-rw7wJwHd.js} +3 -3
- package/dist/{web-GL_nqURg.js → web-D-oCzJTU.js} +1 -1
- package/dist/{web-CfZp0Jv6.js → web-DWNtg4iV.js} +6 -6
- package/dist/web-DmED3zDP.js +109 -0
- package/dist/{web-DNQzo8ao.js → web-QVwKg99Q.js} +6 -6
- package/dist/{webhooks-cli-Bp-7Rs2Y.js → webhooks-cli-cD58DWAE.js} +4 -4
- package/dist/{whatsapp-actions-CFXNPLco.js → whatsapp-actions-DbcsdOH3.js} +15 -15
- package/dist/{with-timeout-Cs6_LnHB.js → with-timeout-gmK6RciS.js} +1 -1
- package/dist/{workspace-dirs-DKu48umx.js → workspace-dirs-GpkFi6Kw.js} +1 -1
- package/dist/{wsl-BbXxnokd.js → wsl-C4424szg.js} +2 -2
- package/package.json +1 -1
- package/dist/register.configure-BcZ-7Yir.js +0 -147
- package/dist/session-dirs-D3qlvucD.js +0 -18
- package/dist/web-DsCqmzyk.js +0 -109
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { C as resolveThreadParentSessionKey, l as resolveAgentIdFromSessionKey } from "./session-key-DCt45XZa.js";
|
|
2
|
-
import { r as resolveAgentConfig } from "./agent-scope-
|
|
2
|
+
import { r as resolveAgentConfig } from "./agent-scope-CgUHAtCo.js";
|
|
3
3
|
import { l as normalizeMessageChannel } from "./message-channel-aT-I_DTX.js";
|
|
4
|
-
import { z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-
|
|
5
|
-
import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-
|
|
6
|
-
import { o as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-
|
|
4
|
+
import { z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-CHwyw6l5.js";
|
|
5
|
+
import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-C-T6hOMv.js";
|
|
6
|
+
import { o as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-BhS32F6E.js";
|
|
7
7
|
|
|
8
8
|
//#region src/agents/sandbox-tool-policy.ts
|
|
9
9
|
function unionAllow(base, extra) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { d as isRecord } from "./utils-B-0b9bGM.js";
|
|
2
2
|
import { o as getChatChannelMeta, s as listChatChannels, u as normalizeChatChannelId } from "./registry-Cja8eT7G.js";
|
|
3
|
-
import { l as normalizeProviderId } from "./model-selection-
|
|
4
|
-
import { t as hasAnyWhatsAppAuth } from "./accounts-
|
|
3
|
+
import { l as normalizeProviderId } from "./model-selection-CyFvYcRt.js";
|
|
4
|
+
import { t as hasAnyWhatsAppAuth } from "./accounts-DDuIpcln.js";
|
|
5
5
|
import { n as getChannelPluginCatalogEntry, r as listChannelPluginCatalogEntries } from "./catalog-RiADx7MA.js";
|
|
6
6
|
import { t as ensurePluginAllowlisted } from "./plugins-allowlist-sArtGE-d.js";
|
|
7
7
|
|
|
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
|
2
2
|
import { M as getActivePluginRegistry, o as createSubsystemLogger } from "./entry.js";
|
|
3
3
|
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
|
|
4
4
|
import { i as loadConfig } from "./config-DHBLS1Hl.js";
|
|
5
|
-
import { b as loadSymiPlugins } from "./subagent-registry-
|
|
5
|
+
import { b as loadSymiPlugins } from "./subagent-registry-CbTbJKLs.js";
|
|
6
6
|
|
|
7
7
|
//#region src/cli/plugin-registry.ts
|
|
8
8
|
var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { vt as loadSymiPlugins } from "./reply-
|
|
2
|
+
import { vt as loadSymiPlugins } from "./reply-Ca3slrA3.js";
|
|
3
3
|
import { d as getActivePluginRegistry } from "./registry-Cja8eT7G.js";
|
|
4
4
|
import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
|
|
5
|
-
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-
|
|
6
|
-
import { i as loadConfig } from "./config-
|
|
5
|
+
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
|
|
6
|
+
import { i as loadConfig } from "./config-CHwyw6l5.js";
|
|
7
7
|
|
|
8
8
|
//#region src/cli/plugin-registry.ts
|
|
9
9
|
var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model-Aware Stream Function — the single wrapper that replaces the
|
|
3
|
+
* 6-layer chain in applyExtraParamsToAgent().
|
|
4
|
+
*
|
|
5
|
+
* Handles ALL provider-specific concerns in ONE onPayload hook:
|
|
6
|
+
* - Injects stop, top_p, top_k, repeat_penalty (ignored by buildParams)
|
|
7
|
+
* - Fixes max_completion_tokens → max_tokens for vLLM
|
|
8
|
+
* - Removes unsupported fields (store) for vLLM
|
|
9
|
+
* - Chains caller's onPayload explicitly (no collision)
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
import type { StreamFn } from "@mariozechner/pi-agent-core";
|
|
14
|
+
import type { SymiConfig } from "../config/config.js";
|
|
15
|
+
import type { ModelProfile } from "../config/model-profiles.js";
|
|
16
|
+
export interface ModelAwareStreamOptions {
|
|
17
|
+
/** Base streaming function — streamSimple or createOllamaStreamFn. */
|
|
18
|
+
baseStreamFn?: StreamFn;
|
|
19
|
+
/** Resolved model profile (from resolveModelProfile). */
|
|
20
|
+
profile: ModelProfile;
|
|
21
|
+
/** Provider ID (e.g. "redsand", "anthropic"). */
|
|
22
|
+
provider: string;
|
|
23
|
+
/** Model ID (e.g. "gemma-4-31b", "claude-sonnet-4-6"). */
|
|
24
|
+
modelId: string;
|
|
25
|
+
/** Full Symi config — used for provider baseUrl detection. */
|
|
26
|
+
config?: SymiConfig;
|
|
27
|
+
/** Per-model params from symi.json (agents.defaults.models[key].params). */
|
|
28
|
+
configExtraParams?: Record<string, unknown>;
|
|
29
|
+
/** Runtime overrides (e.g. CLI --temperature). */
|
|
30
|
+
streamParamsOverride?: Record<string, unknown>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create a single stream function wrapper that handles all provider-specific
|
|
34
|
+
* param injection via one onPayload hook.
|
|
35
|
+
*
|
|
36
|
+
* Replaces: createStreamFnWithExtraParams, createVllmCompatWrapper,
|
|
37
|
+
* createOpenRouterHeadersWrapper.
|
|
38
|
+
*/
|
|
39
|
+
export declare function createModelAwareStreamFn(opts: ModelAwareStreamOptions): StreamFn;
|
|
40
|
+
/** Detect vLLM/Gemma providers by model hints or baseUrl patterns. */
|
|
41
|
+
export declare function isVllmProvider(provider: string, modelId: string, config?: SymiConfig): boolean;
|
|
@@ -11,5 +11,16 @@ declare function isGemmaModel(modelId: string): boolean;
|
|
|
11
11
|
* Strip known control tokens from text. Only applies to Gemma-family models;
|
|
12
12
|
* other models pass through unchanged.
|
|
13
13
|
*/
|
|
14
|
+
/**
|
|
15
|
+
* Strip known control tokens from text. Only applies to Gemma-family models;
|
|
16
|
+
* other models pass through unchanged. Used for streamed text output.
|
|
17
|
+
*/
|
|
14
18
|
export declare function stripModelTokens(text: string, modelId: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Aggressively strip ALL token-like fragments from a string. Used for tool
|
|
21
|
+
* call arguments where any `<|` corruption causes downstream failures.
|
|
22
|
+
* More aggressive than `stripModelTokens` — removes bare `<|` and `|>` fragments
|
|
23
|
+
* that don't match any known token template.
|
|
24
|
+
*/
|
|
25
|
+
export declare function stripModelTokensAggressive(text: string, modelId: string): string;
|
|
15
26
|
export { isGemmaModel, GEMMA_TOKEN_PATTERNS };
|
|
@@ -11,6 +11,19 @@ export declare function resolveExtraParams(params: {
|
|
|
11
11
|
provider: string;
|
|
12
12
|
modelId: string;
|
|
13
13
|
}): Record<string, unknown> | undefined;
|
|
14
|
+
export declare function createOpenAIResponsesStoreWrapper(baseStreamFn: StreamFn | undefined): StreamFn;
|
|
15
|
+
export declare function resolveAnthropicBetas(extraParams: Record<string, unknown> | undefined, provider: string, modelId: string): string[] | undefined;
|
|
16
|
+
export declare function createAnthropicBetaHeadersWrapper(baseStreamFn: StreamFn | undefined, betas: string[]): StreamFn;
|
|
17
|
+
/**
|
|
18
|
+
* Create a streamFn wrapper that injects tool_stream=true for Z.AI providers.
|
|
19
|
+
*
|
|
20
|
+
* Z.AI's API supports the `tool_stream` parameter to enable real-time streaming
|
|
21
|
+
* of tool call arguments and reasoning content. When enabled, the API returns
|
|
22
|
+
* progressive tool_call deltas, allowing users to see tool execution in real-time.
|
|
23
|
+
*
|
|
24
|
+
* @see https://docs.z.ai/api-reference#streaming
|
|
25
|
+
*/
|
|
26
|
+
export declare function createZaiToolStreamWrapper(baseStreamFn: StreamFn | undefined, enabled: boolean): StreamFn;
|
|
14
27
|
/**
|
|
15
28
|
* Apply extra params (like temperature) to an agent's streamFn.
|
|
16
29
|
* Also adds OpenRouter app attribution headers when using the OpenRouter provider.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as buildGroupHistoryKey, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-C_0eELjb.js";
|
|
2
2
|
import { f as readWebSelfId, o as getWebAuthAgeMs, r as resolveWhatsAppAccount } from "./accounts-D9zGZU5t.js";
|
|
3
|
-
import { E as enqueueSystemEvent, G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as resolveEnvelopeFormatOptions, c as computeBackoff, d as formatDurationPrecise, f as dispatchReplyWithBufferedBlockDispatcher, g as formatInboundEnvelope, h as resolveInboundDebounceMs, ht as createDedupeCache, l as sleepWithAbort, m as createInboundDebouncer, n as normalizeGroupActivation, nt as buildMentionRegexes, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as buildPairingReply, v as hasControlCommand, y as shouldComputeCommandAuthorized } from "./reply-
|
|
3
|
+
import { E as enqueueSystemEvent, G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as resolveEnvelopeFormatOptions, c as computeBackoff, d as formatDurationPrecise, f as dispatchReplyWithBufferedBlockDispatcher, g as formatInboundEnvelope, h as resolveInboundDebounceMs, ht as createDedupeCache, l as sleepWithAbort, m as createInboundDebouncer, n as normalizeGroupActivation, nt as buildMentionRegexes, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as buildPairingReply, v as hasControlCommand, y as shouldComputeCommandAuthorized } from "./reply-DTKTuCrn.js";
|
|
4
4
|
import { A as normalizeE164, B as toWhatsappJid, K as logVerbose, N as resolveJidToE164, O as isSelfChatMode, R as sleep, Y as shouldLogVerbose, k as jidToE164, s as normalizeChatChannelId, tt as getChildLogger, x as clamp } from "./registry--_pGht6S.js";
|
|
5
5
|
import { n as loadConfig } from "./config-DDkdiUOR.js";
|
|
6
6
|
import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
|
package/dist/plugin-sdk/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { f as DEFAULT_ACCOUNT_ID, p as normalizeAccountId } from "./session-key-C_0eELjb.js";
|
|
2
2
|
import { _ as createAccountListHelpers, i as resolveWhatsAppAuthDir, n as resolveDefaultWhatsAppAccountId, r as resolveWhatsAppAccount, t as listWhatsAppAccountIds } from "./accounts-D9zGZU5t.js";
|
|
3
|
-
import { $ as clearHistoryEntriesIfEnabled, A as resolveDiscordUserAllowlist, B as logTypingFailure, C as stripMarkdown, Ct as unbindThreadBindingsBySessionKey, D as resolveSlackUserAllowlist, Dt as BLUEBUBBLES_ACTION_NAMES, Et as BLUEBUBBLES_ACTIONS, F as stringEnum, G as resolveMentionGating, H as removeAckReactionAfterReply, I as recordInboundSession, J as summarizeMapping, K as resolveMentionGatingWithBypass, L as resolveControlCommandGate, M as collectDiscordAuditChannelIds, N as formatDocsLink, O as resolveSlackChannelAllowlist, Ot as BLUEBUBBLES_GROUP_ACTIONS, P as optionalStringEnum, Q as clearHistoryEntries, R as logAckFailure, S as processLineMessage, St as listThreadBindingsBySessionKey, T as attachFooterText, Tt as resolveAllowlistMatchSimple, U as shouldAckReaction, V as createTypingCallbacks, W as shouldAckReactionForWhatsApp, Y as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildPendingHistoryContextFromMap, _t as listDevicePairing, a as normalizeAccountId$1, at as isWSLEnv, bt as registerPluginHttpRoute, ct as DEFAULT_WEBHOOK_MAX_BODY_BYTES, dt as isRequestBodyLimitError, et as recordPendingHistoryEntry, ft as readJsonBodyWithLimit, gt as approveDevicePairing, ht as createDedupeCache, i as listLineAccountIds, it as isWSL2Sync, j as resolveDiscordChannelAllowlist, k as detectBinary, kt as CHANNEL_MESSAGE_ACTION_NAMES, lt as RequestBodyLimitError, mt as requestBodyErrorToText, o as resolveDefaultLineAccountId, ot as isWSLSync, pt as readRequestBodyWithLimit, q as mergeAllowlist, s as resolveLineAccount, st as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, tt as recordPendingHistoryEntryIfEnabled, ut as installRequestBodyLimitGuard, vt as rejectDevicePairing, w as createReceiptCard, wt as formatAllowlistMatchMeta, x as hasMarkdownToConvert, xt as autoBindSpawnedDiscordSubagent, yt as extractToolSend, z as logInboundDrop } from "./reply-
|
|
3
|
+
import { $ as clearHistoryEntriesIfEnabled, A as resolveDiscordUserAllowlist, B as logTypingFailure, C as stripMarkdown, Ct as unbindThreadBindingsBySessionKey, D as resolveSlackUserAllowlist, Dt as BLUEBUBBLES_ACTION_NAMES, Et as BLUEBUBBLES_ACTIONS, F as stringEnum, G as resolveMentionGating, H as removeAckReactionAfterReply, I as recordInboundSession, J as summarizeMapping, K as resolveMentionGatingWithBypass, L as resolveControlCommandGate, M as collectDiscordAuditChannelIds, N as formatDocsLink, O as resolveSlackChannelAllowlist, Ot as BLUEBUBBLES_GROUP_ACTIONS, P as optionalStringEnum, Q as clearHistoryEntries, R as logAckFailure, S as processLineMessage, St as listThreadBindingsBySessionKey, T as attachFooterText, Tt as resolveAllowlistMatchSimple, U as shouldAckReaction, V as createTypingCallbacks, W as shouldAckReactionForWhatsApp, Y as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildPendingHistoryContextFromMap, _t as listDevicePairing, a as normalizeAccountId$1, at as isWSLEnv, bt as registerPluginHttpRoute, ct as DEFAULT_WEBHOOK_MAX_BODY_BYTES, dt as isRequestBodyLimitError, et as recordPendingHistoryEntry, ft as readJsonBodyWithLimit, gt as approveDevicePairing, ht as createDedupeCache, i as listLineAccountIds, it as isWSL2Sync, j as resolveDiscordChannelAllowlist, k as detectBinary, kt as CHANNEL_MESSAGE_ACTION_NAMES, lt as RequestBodyLimitError, mt as requestBodyErrorToText, o as resolveDefaultLineAccountId, ot as isWSLSync, pt as readRequestBodyWithLimit, q as mergeAllowlist, s as resolveLineAccount, st as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, tt as recordPendingHistoryEntryIfEnabled, ut as installRequestBodyLimitGuard, vt as rejectDevicePairing, w as createReceiptCard, wt as formatAllowlistMatchMeta, x as hasMarkdownToConvert, xt as autoBindSpawnedDiscordSubagent, yt as extractToolSend, z as logInboundDrop } from "./reply-DTKTuCrn.js";
|
|
4
4
|
import "./paths-DR2yt_mP.js";
|
|
5
5
|
import "./github-copilot-token-D9X2phUj.js";
|
|
6
6
|
import { D as resolveSlackAccount, E as resolveDefaultSlackAccountId, F as resolveDiscordAccount, M as listDiscordAccountIds, O as resolveSlackReplyToMode, P as resolveDefaultDiscordAccountId, S as resolveTelegramAccount, T as listSlackAccountIds, _ as normalizeWhatsAppTarget, a as listDiscordDirectoryPeersFromConfig, b as listTelegramAccountIds, c as listTelegramDirectoryGroupsFromConfig, d as listWhatsAppDirectoryPeersFromConfig, f as looksLikeSlackTargetId, g as isWhatsAppGroupJid, i as listDiscordDirectoryGroupsFromConfig, l as listTelegramDirectoryPeersFromConfig, o as listSlackDirectoryGroupsFromConfig, p as normalizeSlackMessagingTarget, s as listSlackDirectoryPeersFromConfig, u as listWhatsAppDirectoryGroupsFromConfig, w as listEnabledSlackAccounts, x as resolveDefaultTelegramAccountId } from "./plugins-BbAvhC25.js";
|
|
@@ -47,7 +47,7 @@ import "./paths-A0xdf3yk.js";
|
|
|
47
47
|
import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticEvent } from "./diagnostic-mFf4i4G9.js";
|
|
48
48
|
import { n as extractOriginalFilename } from "./store-Do3t33-c.js";
|
|
49
49
|
import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-BkCUbYGV.js";
|
|
50
|
-
import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-
|
|
50
|
+
import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-uUypcT9Q.js";
|
|
51
51
|
import "./image-BOYy0Ump.js";
|
|
52
52
|
import "./pi-model-discovery-LbcEa65a.js";
|
|
53
53
|
import "./api-key-rotation-CVBMpnPc.js";
|
|
@@ -27119,7 +27119,7 @@ async function runWithImageModelFallback(params) {
|
|
|
27119
27119
|
function createDefaultDeps() {
|
|
27120
27120
|
return {
|
|
27121
27121
|
sendMessageWhatsApp: async (...args) => {
|
|
27122
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
27122
|
+
const { sendMessageWhatsApp } = await import("./web-Dh6Youzv.js");
|
|
27123
27123
|
return await sendMessageWhatsApp(...args);
|
|
27124
27124
|
},
|
|
27125
27125
|
sendMessageTelegram: async (...args) => {
|
|
@@ -44745,7 +44745,7 @@ function loadWebLoginQr() {
|
|
|
44745
44745
|
return webLoginQrPromise;
|
|
44746
44746
|
}
|
|
44747
44747
|
function loadWebChannel() {
|
|
44748
|
-
webChannelPromise ??= import("./web-
|
|
44748
|
+
webChannelPromise ??= import("./web-Dh6Youzv.js");
|
|
44749
44749
|
return webChannelPromise;
|
|
44750
44750
|
}
|
|
44751
44751
|
function loadWhatsAppActions() {
|
|
@@ -49991,8 +49991,16 @@ const GEMMA_TOKEN_PATTERNS = [
|
|
|
49991
49991
|
/<start_of_turn>(?:model|user)?/g,
|
|
49992
49992
|
/<end_of_turn>/g,
|
|
49993
49993
|
/<\|(?:fim_prefix|fim_suffix|fim_middle)\|>/g,
|
|
49994
|
-
/^\s*<bos>\s*/gm
|
|
49994
|
+
/^\s*<bos>\s*/gm,
|
|
49995
|
+
/<\|[^|>]{0,30}\|>/g,
|
|
49996
|
+
/<\|[^>]{0,30}>/g
|
|
49995
49997
|
];
|
|
49998
|
+
/**
|
|
49999
|
+
* Aggressively strip all fragments of model control token corruption from
|
|
50000
|
+
* tool arguments. This catches cases where the model produces raw garbage
|
|
50001
|
+
* like `<|<|"|<|<|\'` that doesn't match any known token template.
|
|
50002
|
+
*/
|
|
50003
|
+
const AGGRESSIVE_TOKEN_FRAGMENTS = [/<\|/g, /\|>/g];
|
|
49996
50004
|
const GEMMA_MODEL_HINTS$1 = ["gemma", "redsand/"];
|
|
49997
50005
|
function isGemmaModel$1(modelId) {
|
|
49998
50006
|
const lower = modelId.toLowerCase();
|
|
@@ -50002,6 +50010,10 @@ function isGemmaModel$1(modelId) {
|
|
|
50002
50010
|
* Strip known control tokens from text. Only applies to Gemma-family models;
|
|
50003
50011
|
* other models pass through unchanged.
|
|
50004
50012
|
*/
|
|
50013
|
+
/**
|
|
50014
|
+
* Strip known control tokens from text. Only applies to Gemma-family models;
|
|
50015
|
+
* other models pass through unchanged. Used for streamed text output.
|
|
50016
|
+
*/
|
|
50005
50017
|
function stripModelTokens(text, modelId) {
|
|
50006
50018
|
if (!text || !isGemmaModel$1(modelId)) return text;
|
|
50007
50019
|
let result = text;
|
|
@@ -50011,6 +50023,21 @@ function stripModelTokens(text, modelId) {
|
|
|
50011
50023
|
}
|
|
50012
50024
|
return result;
|
|
50013
50025
|
}
|
|
50026
|
+
/**
|
|
50027
|
+
* Aggressively strip ALL token-like fragments from a string. Used for tool
|
|
50028
|
+
* call arguments where any `<|` corruption causes downstream failures.
|
|
50029
|
+
* More aggressive than `stripModelTokens` — removes bare `<|` and `|>` fragments
|
|
50030
|
+
* that don't match any known token template.
|
|
50031
|
+
*/
|
|
50032
|
+
function stripModelTokensAggressive(text, modelId) {
|
|
50033
|
+
if (!text || !isGemmaModel$1(modelId)) return text;
|
|
50034
|
+
let result = stripModelTokens(text, modelId);
|
|
50035
|
+
for (const re of AGGRESSIVE_TOKEN_FRAGMENTS) {
|
|
50036
|
+
re.lastIndex = 0;
|
|
50037
|
+
result = result.replace(re, "");
|
|
50038
|
+
}
|
|
50039
|
+
return result;
|
|
50040
|
+
}
|
|
50014
50041
|
|
|
50015
50042
|
//#endregion
|
|
50016
50043
|
//#region src/agents/pi-tools.abort.ts
|
|
@@ -61168,10 +61195,10 @@ function wrapToolWithArgSanitization(tool, modelId) {
|
|
|
61168
61195
|
};
|
|
61169
61196
|
}
|
|
61170
61197
|
function sanitizeToolArgs(params, modelId) {
|
|
61171
|
-
if (!params || typeof params !== "object") return typeof params === "string" ?
|
|
61198
|
+
if (!params || typeof params !== "object") return typeof params === "string" ? stripModelTokensAggressive(params, modelId) : params;
|
|
61172
61199
|
if (Array.isArray(params)) return params.map((item) => sanitizeToolArgs(item, modelId));
|
|
61173
61200
|
const result = {};
|
|
61174
|
-
for (const [key, value] of Object.entries(params)) if (typeof value === "string") result[key] =
|
|
61201
|
+
for (const [key, value] of Object.entries(params)) if (typeof value === "string") result[key] = stripModelTokensAggressive(value, modelId);
|
|
61175
61202
|
else if (value && typeof value === "object") result[key] = sanitizeToolArgs(value, modelId);
|
|
61176
61203
|
else result[key] = value;
|
|
61177
61204
|
return result;
|
|
@@ -64420,10 +64447,6 @@ function resolveModelProfile(modelId, userProfiles) {
|
|
|
64420
64447
|
|
|
64421
64448
|
//#endregion
|
|
64422
64449
|
//#region src/agents/pi-embedded-runner/extra-params.ts
|
|
64423
|
-
const OPENROUTER_APP_HEADERS = {
|
|
64424
|
-
"HTTP-Referer": "https://symi.ai",
|
|
64425
|
-
"X-Title": "Symi"
|
|
64426
|
-
};
|
|
64427
64450
|
const ANTHROPIC_CONTEXT_1M_BETA = "context-1m-2025-08-07";
|
|
64428
64451
|
const ANTHROPIC_1M_MODEL_PREFIXES = ["claude-opus-4", "claude-sonnet-4"];
|
|
64429
64452
|
const OPENAI_RESPONSES_APIS = new Set(["openai-responses"]);
|
|
@@ -64441,70 +64464,6 @@ function resolveExtraParams(params) {
|
|
|
64441
64464
|
const profile = resolveModelProfile(modelKey, params.cfg?.models?.profiles);
|
|
64442
64465
|
if (profile.params && Object.keys(profile.params).length > 0) return { ...profile.params };
|
|
64443
64466
|
}
|
|
64444
|
-
/**
|
|
64445
|
-
* Resolve cacheRetention from extraParams, supporting both new `cacheRetention`
|
|
64446
|
-
* and legacy `cacheControlTtl` values for backwards compatibility.
|
|
64447
|
-
*
|
|
64448
|
-
* Mapping: "5m" → "short", "1h" → "long"
|
|
64449
|
-
*
|
|
64450
|
-
* Only applies to Anthropic provider (OpenRouter uses openai-completions API
|
|
64451
|
-
* with hardcoded cache_control, not the cacheRetention stream option).
|
|
64452
|
-
*
|
|
64453
|
-
* Defaults to "short" for Anthropic provider when not explicitly configured.
|
|
64454
|
-
*/
|
|
64455
|
-
function resolveCacheRetention(extraParams, provider) {
|
|
64456
|
-
if (provider !== "anthropic") return;
|
|
64457
|
-
const newVal = extraParams?.cacheRetention;
|
|
64458
|
-
if (newVal === "none" || newVal === "short" || newVal === "long") return newVal;
|
|
64459
|
-
const legacy = extraParams?.cacheControlTtl;
|
|
64460
|
-
if (legacy === "5m") return "short";
|
|
64461
|
-
if (legacy === "1h") return "long";
|
|
64462
|
-
return "short";
|
|
64463
|
-
}
|
|
64464
|
-
function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
|
|
64465
|
-
if (!extraParams || Object.keys(extraParams).length === 0) return;
|
|
64466
|
-
const streamParams = {};
|
|
64467
|
-
if (typeof extraParams.temperature === "number") streamParams.temperature = extraParams.temperature;
|
|
64468
|
-
if (typeof extraParams.maxTokens === "number") streamParams.maxTokens = extraParams.maxTokens;
|
|
64469
|
-
if (typeof extraParams.top_p === "number") streamParams.top_p = extraParams.top_p;
|
|
64470
|
-
if (typeof extraParams.top_k === "number") streamParams.top_k = extraParams.top_k;
|
|
64471
|
-
if (typeof extraParams.repeat_penalty === "number") streamParams.repeat_penalty = extraParams.repeat_penalty;
|
|
64472
|
-
if (Array.isArray(extraParams.stop) && extraParams.stop.length > 0) streamParams.stop = extraParams.stop;
|
|
64473
|
-
if (extraParams.chat_template_kwargs && typeof extraParams.chat_template_kwargs === "object") streamParams.chat_template_kwargs = extraParams.chat_template_kwargs;
|
|
64474
|
-
const cacheRetention = resolveCacheRetention(extraParams, provider);
|
|
64475
|
-
if (cacheRetention) streamParams.cacheRetention = cacheRetention;
|
|
64476
|
-
if (Object.keys(streamParams).length === 0) return;
|
|
64477
|
-
log$2.debug(`creating streamFn wrapper with params: ${JSON.stringify(streamParams)}`);
|
|
64478
|
-
const sp = streamParams;
|
|
64479
|
-
const payloadOverrides = {};
|
|
64480
|
-
if (Array.isArray(sp.stop) && sp.stop.length > 0) payloadOverrides.stop = sp.stop;
|
|
64481
|
-
if (typeof sp.top_p === "number") payloadOverrides.top_p = sp.top_p;
|
|
64482
|
-
if (typeof sp.top_k === "number") payloadOverrides.top_k = sp.top_k;
|
|
64483
|
-
if (typeof sp.repeat_penalty === "number") payloadOverrides.repeat_penalty = sp.repeat_penalty;
|
|
64484
|
-
const hasPayloadOverrides = Object.keys(payloadOverrides).length > 0;
|
|
64485
|
-
const underlying = baseStreamFn ?? streamSimple;
|
|
64486
|
-
const wrappedStreamFn = (model, context, options) => {
|
|
64487
|
-
if (hasPayloadOverrides) {
|
|
64488
|
-
const originalOnPayload = options?.onPayload;
|
|
64489
|
-
return underlying(model, context, {
|
|
64490
|
-
...streamParams,
|
|
64491
|
-
...options,
|
|
64492
|
-
onPayload: (payload) => {
|
|
64493
|
-
if (payload && typeof payload === "object") {
|
|
64494
|
-
const p = payload;
|
|
64495
|
-
for (const [key, value] of Object.entries(payloadOverrides)) if (p[key] === void 0) p[key] = value;
|
|
64496
|
-
}
|
|
64497
|
-
originalOnPayload?.(payload);
|
|
64498
|
-
}
|
|
64499
|
-
});
|
|
64500
|
-
}
|
|
64501
|
-
return underlying(model, context, {
|
|
64502
|
-
...streamParams,
|
|
64503
|
-
...options
|
|
64504
|
-
});
|
|
64505
|
-
};
|
|
64506
|
-
return wrappedStreamFn;
|
|
64507
|
-
}
|
|
64508
64467
|
function isDirectOpenAIBaseUrl(baseUrl) {
|
|
64509
64468
|
if (typeof baseUrl !== "string" || !baseUrl.trim()) return true;
|
|
64510
64469
|
try {
|
|
@@ -64585,20 +64544,6 @@ function createAnthropicBetaHeadersWrapper(baseStreamFn, betas) {
|
|
|
64585
64544
|
};
|
|
64586
64545
|
}
|
|
64587
64546
|
/**
|
|
64588
|
-
* Create a streamFn wrapper that adds OpenRouter app attribution headers.
|
|
64589
|
-
* These headers allow Symi to appear on OpenRouter's leaderboard.
|
|
64590
|
-
*/
|
|
64591
|
-
function createOpenRouterHeadersWrapper(baseStreamFn) {
|
|
64592
|
-
const underlying = baseStreamFn ?? streamSimple;
|
|
64593
|
-
return (model, context, options) => underlying(model, context, {
|
|
64594
|
-
...options,
|
|
64595
|
-
headers: {
|
|
64596
|
-
...OPENROUTER_APP_HEADERS,
|
|
64597
|
-
...options?.headers
|
|
64598
|
-
}
|
|
64599
|
-
});
|
|
64600
|
-
}
|
|
64601
|
-
/**
|
|
64602
64547
|
* Create a streamFn wrapper that injects tool_stream=true for Z.AI providers.
|
|
64603
64548
|
*
|
|
64604
64549
|
* Z.AI's API supports the `tool_stream` parameter to enable real-time streaming
|
|
@@ -64621,82 +64566,6 @@ function createZaiToolStreamWrapper(baseStreamFn, enabled) {
|
|
|
64621
64566
|
});
|
|
64622
64567
|
};
|
|
64623
64568
|
}
|
|
64624
|
-
const GEMMA_STOP_SEQUENCES = ["<end_of_turn>", "<eos>"];
|
|
64625
|
-
const VLLM_GEMMA_HINTS = ["gemma", "redsand"];
|
|
64626
|
-
function isVllmOrGemmaProvider(provider, modelId, cfg) {
|
|
64627
|
-
const lower = `${provider}/${modelId}`.toLowerCase();
|
|
64628
|
-
if (VLLM_GEMMA_HINTS.some((h) => lower.includes(h))) return true;
|
|
64629
|
-
const baseUrl = ((cfg?.models?.providers?.[provider])?.baseUrl ?? "").toLowerCase();
|
|
64630
|
-
return baseUrl.includes("coreweave") || baseUrl.includes("vllm");
|
|
64631
|
-
}
|
|
64632
|
-
/**
|
|
64633
|
-
* Wrap the stream function to fix vLLM/Gemma compat issues via onPayload:
|
|
64634
|
-
* 1. Replace `max_completion_tokens` with `max_tokens` (vLLM ignores the former)
|
|
64635
|
-
* 2. Inject Gemma stop sequences if none are set
|
|
64636
|
-
* 3. Remove unsupported fields (store, stream_options.include_usage on older vLLM)
|
|
64637
|
-
*/
|
|
64638
|
-
function createVllmCompatWrapper(baseStreamFn, extraParams) {
|
|
64639
|
-
const underlying = baseStreamFn ?? streamSimple;
|
|
64640
|
-
const configuredStop = Array.isArray(extraParams.stop) ? extraParams.stop : GEMMA_STOP_SEQUENCES;
|
|
64641
|
-
return (model, context, options) => {
|
|
64642
|
-
const originalOnPayload = options?.onPayload;
|
|
64643
|
-
return underlying(model, context, {
|
|
64644
|
-
...options,
|
|
64645
|
-
onPayload: (payload) => {
|
|
64646
|
-
if (payload && typeof payload === "object") {
|
|
64647
|
-
const p = payload;
|
|
64648
|
-
if (p.max_completion_tokens && !p.max_tokens) {
|
|
64649
|
-
p.max_tokens = p.max_completion_tokens;
|
|
64650
|
-
delete p.max_completion_tokens;
|
|
64651
|
-
}
|
|
64652
|
-
if (!p.stop && configuredStop.length > 0) p.stop = configuredStop;
|
|
64653
|
-
delete p.store;
|
|
64654
|
-
}
|
|
64655
|
-
originalOnPayload?.(payload);
|
|
64656
|
-
}
|
|
64657
|
-
});
|
|
64658
|
-
};
|
|
64659
|
-
}
|
|
64660
|
-
/**
|
|
64661
|
-
* Apply extra params (like temperature) to an agent's streamFn.
|
|
64662
|
-
* Also adds OpenRouter app attribution headers when using the OpenRouter provider.
|
|
64663
|
-
*
|
|
64664
|
-
* @internal Exported for testing
|
|
64665
|
-
*/
|
|
64666
|
-
function applyExtraParamsToAgent(agent, cfg, provider, modelId, extraParamsOverride) {
|
|
64667
|
-
const extraParams = resolveExtraParams({
|
|
64668
|
-
cfg,
|
|
64669
|
-
provider,
|
|
64670
|
-
modelId
|
|
64671
|
-
});
|
|
64672
|
-
const override = extraParamsOverride && Object.keys(extraParamsOverride).length > 0 ? Object.fromEntries(Object.entries(extraParamsOverride).filter(([, value]) => value !== void 0)) : void 0;
|
|
64673
|
-
const merged = Object.assign({}, extraParams, override);
|
|
64674
|
-
const wrappedStreamFn = createStreamFnWithExtraParams(agent.streamFn, merged, provider);
|
|
64675
|
-
if (wrappedStreamFn) {
|
|
64676
|
-
log$2.debug(`applying extraParams to agent streamFn for ${provider}/${modelId}`);
|
|
64677
|
-
agent.streamFn = wrappedStreamFn;
|
|
64678
|
-
}
|
|
64679
|
-
const anthropicBetas = resolveAnthropicBetas(merged, provider, modelId);
|
|
64680
|
-
if (anthropicBetas?.length) {
|
|
64681
|
-
log$2.debug(`applying Anthropic beta header for ${provider}/${modelId}: ${anthropicBetas.join(",")}`);
|
|
64682
|
-
agent.streamFn = createAnthropicBetaHeadersWrapper(agent.streamFn, anthropicBetas);
|
|
64683
|
-
}
|
|
64684
|
-
if (provider === "openrouter") {
|
|
64685
|
-
log$2.debug(`applying OpenRouter app attribution headers for ${provider}/${modelId}`);
|
|
64686
|
-
agent.streamFn = createOpenRouterHeadersWrapper(agent.streamFn);
|
|
64687
|
-
}
|
|
64688
|
-
if (provider === "zai" || provider === "z-ai") {
|
|
64689
|
-
if (merged?.tool_stream !== false) {
|
|
64690
|
-
log$2.debug(`enabling Z.AI tool_stream for ${provider}/${modelId}`);
|
|
64691
|
-
agent.streamFn = createZaiToolStreamWrapper(agent.streamFn, true);
|
|
64692
|
-
}
|
|
64693
|
-
}
|
|
64694
|
-
if (isVllmOrGemmaProvider(provider, modelId, cfg)) {
|
|
64695
|
-
log$2.debug(`applying vLLM/Gemma compat wrapper for ${provider}/${modelId}`);
|
|
64696
|
-
agent.streamFn = createVllmCompatWrapper(agent.streamFn, merged);
|
|
64697
|
-
}
|
|
64698
|
-
agent.streamFn = createOpenAIResponsesStoreWrapper(agent.streamFn);
|
|
64699
|
-
}
|
|
64700
64569
|
|
|
64701
64570
|
//#endregion
|
|
64702
64571
|
//#region src/utils/safe-json.ts
|
|
@@ -64973,6 +64842,74 @@ function createCacheTrace(params) {
|
|
|
64973
64842
|
};
|
|
64974
64843
|
}
|
|
64975
64844
|
|
|
64845
|
+
//#endregion
|
|
64846
|
+
//#region src/agents/model-aware-stream.ts
|
|
64847
|
+
/**
|
|
64848
|
+
* Create a single stream function wrapper that handles all provider-specific
|
|
64849
|
+
* param injection via one onPayload hook.
|
|
64850
|
+
*
|
|
64851
|
+
* Replaces: createStreamFnWithExtraParams, createVllmCompatWrapper,
|
|
64852
|
+
* createOpenRouterHeadersWrapper.
|
|
64853
|
+
*/
|
|
64854
|
+
function createModelAwareStreamFn(opts) {
|
|
64855
|
+
const underlying = opts.baseStreamFn ?? streamSimple;
|
|
64856
|
+
const mergedParams = {
|
|
64857
|
+
...opts.profile.params,
|
|
64858
|
+
...opts.configExtraParams,
|
|
64859
|
+
...opts.streamParamsOverride
|
|
64860
|
+
};
|
|
64861
|
+
const nativeOpts = {};
|
|
64862
|
+
if (typeof mergedParams.temperature === "number") nativeOpts.temperature = mergedParams.temperature;
|
|
64863
|
+
if (typeof mergedParams.max_tokens === "number") nativeOpts.maxTokens = mergedParams.max_tokens;
|
|
64864
|
+
else if (typeof mergedParams.maxTokens === "number") nativeOpts.maxTokens = mergedParams.maxTokens;
|
|
64865
|
+
const injections = {};
|
|
64866
|
+
if (Array.isArray(mergedParams.stop) && mergedParams.stop.length > 0) injections.stop = mergedParams.stop;
|
|
64867
|
+
if (typeof mergedParams.top_p === "number") injections.top_p = mergedParams.top_p;
|
|
64868
|
+
if (typeof mergedParams.top_k === "number") injections.top_k = mergedParams.top_k;
|
|
64869
|
+
if (typeof mergedParams.repeat_penalty === "number") injections.repeat_penalty = mergedParams.repeat_penalty;
|
|
64870
|
+
const isVllm = isVllmProvider(opts.provider, opts.modelId, opts.config);
|
|
64871
|
+
const isOpenRouter = opts.provider === "openrouter";
|
|
64872
|
+
const extraHeaders = {};
|
|
64873
|
+
if (isOpenRouter) {
|
|
64874
|
+
extraHeaders["HTTP-Referer"] = "https://symi.ai";
|
|
64875
|
+
extraHeaders["X-Title"] = "Symi";
|
|
64876
|
+
}
|
|
64877
|
+
const hasExtraHeaders = Object.keys(extraHeaders).length > 0;
|
|
64878
|
+
const onPayloadHook = (payload, callerOnPayload) => {
|
|
64879
|
+
if (payload && typeof payload === "object") {
|
|
64880
|
+
const p = payload;
|
|
64881
|
+
for (const [key, val] of Object.entries(injections)) if (p[key] === void 0) p[key] = val;
|
|
64882
|
+
if (isVllm) {
|
|
64883
|
+
if (p.max_completion_tokens && !p.max_tokens) {
|
|
64884
|
+
p.max_tokens = p.max_completion_tokens;
|
|
64885
|
+
delete p.max_completion_tokens;
|
|
64886
|
+
}
|
|
64887
|
+
delete p.store;
|
|
64888
|
+
}
|
|
64889
|
+
}
|
|
64890
|
+
callerOnPayload?.(payload);
|
|
64891
|
+
};
|
|
64892
|
+
return (model, context, options) => {
|
|
64893
|
+
const callerOnPayload = options?.onPayload;
|
|
64894
|
+
return underlying(model, context, {
|
|
64895
|
+
...nativeOpts,
|
|
64896
|
+
...options,
|
|
64897
|
+
onPayload: (payload) => onPayloadHook(payload, callerOnPayload),
|
|
64898
|
+
...hasExtraHeaders ? { headers: {
|
|
64899
|
+
...extraHeaders,
|
|
64900
|
+
...options?.headers
|
|
64901
|
+
} } : {}
|
|
64902
|
+
});
|
|
64903
|
+
};
|
|
64904
|
+
}
|
|
64905
|
+
/** Detect vLLM/Gemma providers by model hints or baseUrl patterns. */
|
|
64906
|
+
function isVllmProvider(provider, modelId, config) {
|
|
64907
|
+
const lower = `${provider}/${modelId}`.toLowerCase();
|
|
64908
|
+
if (["gemma", "redsand"].some((h) => lower.includes(h))) return true;
|
|
64909
|
+
const baseUrl = ((config?.models?.providers?.[provider])?.baseUrl ?? "").toLowerCase();
|
|
64910
|
+
return baseUrl.includes("coreweave") || baseUrl.includes("vllm");
|
|
64911
|
+
}
|
|
64912
|
+
|
|
64976
64913
|
//#endregion
|
|
64977
64914
|
//#region src/auto-reply/reply/streaming-directives.ts
|
|
64978
64915
|
const splitTrailingDirective = (text) => {
|
|
@@ -68020,14 +67957,39 @@ async function runEmbeddedAttempt(params) {
|
|
|
68020
67957
|
modelApi: params.model.api,
|
|
68021
67958
|
workspaceDir: params.workspaceDir
|
|
68022
67959
|
});
|
|
68023
|
-
|
|
68024
|
-
|
|
68025
|
-
|
|
68026
|
-
|
|
68027
|
-
|
|
68028
|
-
|
|
68029
|
-
|
|
68030
|
-
|
|
67960
|
+
{
|
|
67961
|
+
let baseStreamFn = streamSimple;
|
|
67962
|
+
if (params.model.api === "ollama") {
|
|
67963
|
+
const providerConfig = params.config?.models?.providers?.[params.model.provider];
|
|
67964
|
+
const modelBaseUrl = typeof params.model.baseUrl === "string" ? params.model.baseUrl.trim() : "";
|
|
67965
|
+
const providerBaseUrl = typeof providerConfig?.baseUrl === "string" ? providerConfig.baseUrl.trim() : "";
|
|
67966
|
+
baseStreamFn = createOllamaStreamFn(modelBaseUrl || providerBaseUrl || OLLAMA_NATIVE_BASE_URL);
|
|
67967
|
+
}
|
|
67968
|
+
const configExtraParams = resolveExtraParams({
|
|
67969
|
+
cfg: params.config,
|
|
67970
|
+
provider: params.provider,
|
|
67971
|
+
modelId: params.modelId
|
|
67972
|
+
});
|
|
67973
|
+
activeSession.agent.streamFn = createModelAwareStreamFn({
|
|
67974
|
+
baseStreamFn,
|
|
67975
|
+
profile: modelProfile,
|
|
67976
|
+
provider: params.provider,
|
|
67977
|
+
modelId: params.modelId,
|
|
67978
|
+
config: params.config,
|
|
67979
|
+
configExtraParams,
|
|
67980
|
+
streamParamsOverride: params.streamParams
|
|
67981
|
+
});
|
|
67982
|
+
const merged = {
|
|
67983
|
+
...configExtraParams,
|
|
67984
|
+
...params.streamParams
|
|
67985
|
+
};
|
|
67986
|
+
const anthropicBetas = resolveAnthropicBetas(merged, params.provider, params.modelId);
|
|
67987
|
+
if (anthropicBetas?.length) activeSession.agent.streamFn = createAnthropicBetaHeadersWrapper(activeSession.agent.streamFn, anthropicBetas);
|
|
67988
|
+
if (params.provider === "zai" || params.provider === "z-ai") {
|
|
67989
|
+
if (merged?.tool_stream !== false) activeSession.agent.streamFn = createZaiToolStreamWrapper(activeSession.agent.streamFn, true);
|
|
67990
|
+
}
|
|
67991
|
+
activeSession.agent.streamFn = createOpenAIResponsesStoreWrapper(activeSession.agent.streamFn);
|
|
67992
|
+
}
|
|
68031
67993
|
if (cacheTrace) {
|
|
68032
67994
|
cacheTrace.recordStage("session:loaded", {
|
|
68033
67995
|
messages: activeSession.messages,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as WA_WEB_AUTH_DIR, g as webAuthExists, s as logWebSelfId, u as pickWebChannel } from "./accounts-D9zGZU5t.js";
|
|
2
|
-
import "./reply-
|
|
2
|
+
import "./reply-DTKTuCrn.js";
|
|
3
3
|
import "./paths-DR2yt_mP.js";
|
|
4
4
|
import "./github-copilot-token-D9X2phUj.js";
|
|
5
5
|
import "./plugins-BbAvhC25.js";
|
|
@@ -45,7 +45,7 @@ import "./pi-embedded-helpers-BveUP4hk.js";
|
|
|
45
45
|
import "./paths-A0xdf3yk.js";
|
|
46
46
|
import "./diagnostic-mFf4i4G9.js";
|
|
47
47
|
import "./store-Do3t33-c.js";
|
|
48
|
-
import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-
|
|
48
|
+
import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-uUypcT9Q.js";
|
|
49
49
|
import "./image-BOYy0Ump.js";
|
|
50
50
|
import "./pi-model-discovery-LbcEa65a.js";
|
|
51
51
|
import "./api-key-rotation-CVBMpnPc.js";
|
|
@@ -4,8 +4,8 @@ import { h as normalizeAccountId, m as DEFAULT_ACCOUNT_ID } from "./session-key-
|
|
|
4
4
|
import { c as normalizeAnyChannelId, f as requireActivePluginRegistry, n as CHAT_CHANNEL_ORDER } from "./registry-Cja8eT7G.js";
|
|
5
5
|
import { t as isTruthyEnvValue } from "./env-DPCHYPeH.js";
|
|
6
6
|
import { t as normalizeChatType } from "./chat-type-DyovJwCt.js";
|
|
7
|
-
import { h as createAccountListHelpers } from "./accounts-
|
|
8
|
-
import { i as resolveDefaultAgentBoundAccountId, r as listBoundAccountIds } from "./bindings-
|
|
7
|
+
import { h as createAccountListHelpers } from "./accounts-DDuIpcln.js";
|
|
8
|
+
import { i as resolveDefaultAgentBoundAccountId, r as listBoundAccountIds } from "./bindings-DFaVVCsf.js";
|
|
9
9
|
import fs from "node:fs";
|
|
10
10
|
|
|
11
11
|
//#region src/channels/plugins/account-action-gate.ts
|