@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
|
@@ -44208,7 +44208,7 @@ function isVoiceChannelType(type) {
|
|
|
44208
44208
|
function createDefaultDeps() {
|
|
44209
44209
|
return {
|
|
44210
44210
|
sendMessageWhatsApp: async (...args) => {
|
|
44211
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
44211
|
+
const { sendMessageWhatsApp } = await import("./web-D-oCzJTU.js");
|
|
44212
44212
|
return await sendMessageWhatsApp(...args);
|
|
44213
44213
|
},
|
|
44214
44214
|
sendMessageTelegram: async (...args) => {
|
|
@@ -59524,7 +59524,7 @@ function loadWebLoginQr() {
|
|
|
59524
59524
|
return webLoginQrPromise;
|
|
59525
59525
|
}
|
|
59526
59526
|
function loadWebChannel() {
|
|
59527
|
-
webChannelPromise ??= import("./web-
|
|
59527
|
+
webChannelPromise ??= import("./web-D-oCzJTU.js");
|
|
59528
59528
|
return webChannelPromise;
|
|
59529
59529
|
}
|
|
59530
59530
|
function loadWhatsAppActions() {
|
|
@@ -60757,8 +60757,16 @@ const GEMMA_TOKEN_PATTERNS = [
|
|
|
60757
60757
|
/<start_of_turn>(?:model|user)?/g,
|
|
60758
60758
|
/<end_of_turn>/g,
|
|
60759
60759
|
/<\|(?:fim_prefix|fim_suffix|fim_middle)\|>/g,
|
|
60760
|
-
/^\s*<bos>\s*/gm
|
|
60760
|
+
/^\s*<bos>\s*/gm,
|
|
60761
|
+
/<\|[^|>]{0,30}\|>/g,
|
|
60762
|
+
/<\|[^>]{0,30}>/g
|
|
60761
60763
|
];
|
|
60764
|
+
/**
|
|
60765
|
+
* Aggressively strip all fragments of model control token corruption from
|
|
60766
|
+
* tool arguments. This catches cases where the model produces raw garbage
|
|
60767
|
+
* like `<|<|"|<|<|\'` that doesn't match any known token template.
|
|
60768
|
+
*/
|
|
60769
|
+
const AGGRESSIVE_TOKEN_FRAGMENTS = [/<\|/g, /\|>/g];
|
|
60762
60770
|
const GEMMA_MODEL_HINTS$1 = ["gemma", "redsand/"];
|
|
60763
60771
|
function isGemmaModel$1(modelId) {
|
|
60764
60772
|
const lower = modelId.toLowerCase();
|
|
@@ -60768,6 +60776,10 @@ function isGemmaModel$1(modelId) {
|
|
|
60768
60776
|
* Strip known control tokens from text. Only applies to Gemma-family models;
|
|
60769
60777
|
* other models pass through unchanged.
|
|
60770
60778
|
*/
|
|
60779
|
+
/**
|
|
60780
|
+
* Strip known control tokens from text. Only applies to Gemma-family models;
|
|
60781
|
+
* other models pass through unchanged. Used for streamed text output.
|
|
60782
|
+
*/
|
|
60771
60783
|
function stripModelTokens(text, modelId) {
|
|
60772
60784
|
if (!text || !isGemmaModel$1(modelId)) return text;
|
|
60773
60785
|
let result = text;
|
|
@@ -60777,6 +60789,21 @@ function stripModelTokens(text, modelId) {
|
|
|
60777
60789
|
}
|
|
60778
60790
|
return result;
|
|
60779
60791
|
}
|
|
60792
|
+
/**
|
|
60793
|
+
* Aggressively strip ALL token-like fragments from a string. Used for tool
|
|
60794
|
+
* call arguments where any `<|` corruption causes downstream failures.
|
|
60795
|
+
* More aggressive than `stripModelTokens` — removes bare `<|` and `|>` fragments
|
|
60796
|
+
* that don't match any known token template.
|
|
60797
|
+
*/
|
|
60798
|
+
function stripModelTokensAggressive(text, modelId) {
|
|
60799
|
+
if (!text || !isGemmaModel$1(modelId)) return text;
|
|
60800
|
+
let result = stripModelTokens(text, modelId);
|
|
60801
|
+
for (const re of AGGRESSIVE_TOKEN_FRAGMENTS) {
|
|
60802
|
+
re.lastIndex = 0;
|
|
60803
|
+
result = result.replace(re, "");
|
|
60804
|
+
}
|
|
60805
|
+
return result;
|
|
60806
|
+
}
|
|
60780
60807
|
|
|
60781
60808
|
//#endregion
|
|
60782
60809
|
//#region src/agents/pi-tools.abort.ts
|
|
@@ -61896,10 +61923,10 @@ function wrapToolWithArgSanitization(tool, modelId) {
|
|
|
61896
61923
|
};
|
|
61897
61924
|
}
|
|
61898
61925
|
function sanitizeToolArgs(params, modelId) {
|
|
61899
|
-
if (!params || typeof params !== "object") return typeof params === "string" ?
|
|
61926
|
+
if (!params || typeof params !== "object") return typeof params === "string" ? stripModelTokensAggressive(params, modelId) : params;
|
|
61900
61927
|
if (Array.isArray(params)) return params.map((item) => sanitizeToolArgs(item, modelId));
|
|
61901
61928
|
const result = {};
|
|
61902
|
-
for (const [key, value] of Object.entries(params)) if (typeof value === "string") result[key] =
|
|
61929
|
+
for (const [key, value] of Object.entries(params)) if (typeof value === "string") result[key] = stripModelTokensAggressive(value, modelId);
|
|
61903
61930
|
else if (value && typeof value === "object") result[key] = sanitizeToolArgs(value, modelId);
|
|
61904
61931
|
else result[key] = value;
|
|
61905
61932
|
return result;
|
|
@@ -65046,10 +65073,6 @@ function resolveModelProfile(modelId, userProfiles) {
|
|
|
65046
65073
|
|
|
65047
65074
|
//#endregion
|
|
65048
65075
|
//#region src/agents/pi-embedded-runner/extra-params.ts
|
|
65049
|
-
const OPENROUTER_APP_HEADERS = {
|
|
65050
|
-
"HTTP-Referer": "https://symi.ai",
|
|
65051
|
-
"X-Title": "Symi"
|
|
65052
|
-
};
|
|
65053
65076
|
const ANTHROPIC_CONTEXT_1M_BETA = "context-1m-2025-08-07";
|
|
65054
65077
|
const ANTHROPIC_1M_MODEL_PREFIXES = ["claude-opus-4", "claude-sonnet-4"];
|
|
65055
65078
|
const OPENAI_RESPONSES_APIS = new Set(["openai-responses"]);
|
|
@@ -65067,70 +65090,6 @@ function resolveExtraParams(params) {
|
|
|
65067
65090
|
const profile = resolveModelProfile(modelKey, params.cfg?.models?.profiles);
|
|
65068
65091
|
if (profile.params && Object.keys(profile.params).length > 0) return { ...profile.params };
|
|
65069
65092
|
}
|
|
65070
|
-
/**
|
|
65071
|
-
* Resolve cacheRetention from extraParams, supporting both new `cacheRetention`
|
|
65072
|
-
* and legacy `cacheControlTtl` values for backwards compatibility.
|
|
65073
|
-
*
|
|
65074
|
-
* Mapping: "5m" → "short", "1h" → "long"
|
|
65075
|
-
*
|
|
65076
|
-
* Only applies to Anthropic provider (OpenRouter uses openai-completions API
|
|
65077
|
-
* with hardcoded cache_control, not the cacheRetention stream option).
|
|
65078
|
-
*
|
|
65079
|
-
* Defaults to "short" for Anthropic provider when not explicitly configured.
|
|
65080
|
-
*/
|
|
65081
|
-
function resolveCacheRetention(extraParams, provider) {
|
|
65082
|
-
if (provider !== "anthropic") return;
|
|
65083
|
-
const newVal = extraParams?.cacheRetention;
|
|
65084
|
-
if (newVal === "none" || newVal === "short" || newVal === "long") return newVal;
|
|
65085
|
-
const legacy = extraParams?.cacheControlTtl;
|
|
65086
|
-
if (legacy === "5m") return "short";
|
|
65087
|
-
if (legacy === "1h") return "long";
|
|
65088
|
-
return "short";
|
|
65089
|
-
}
|
|
65090
|
-
function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
|
|
65091
|
-
if (!extraParams || Object.keys(extraParams).length === 0) return;
|
|
65092
|
-
const streamParams = {};
|
|
65093
|
-
if (typeof extraParams.temperature === "number") streamParams.temperature = extraParams.temperature;
|
|
65094
|
-
if (typeof extraParams.maxTokens === "number") streamParams.maxTokens = extraParams.maxTokens;
|
|
65095
|
-
if (typeof extraParams.top_p === "number") streamParams.top_p = extraParams.top_p;
|
|
65096
|
-
if (typeof extraParams.top_k === "number") streamParams.top_k = extraParams.top_k;
|
|
65097
|
-
if (typeof extraParams.repeat_penalty === "number") streamParams.repeat_penalty = extraParams.repeat_penalty;
|
|
65098
|
-
if (Array.isArray(extraParams.stop) && extraParams.stop.length > 0) streamParams.stop = extraParams.stop;
|
|
65099
|
-
if (extraParams.chat_template_kwargs && typeof extraParams.chat_template_kwargs === "object") streamParams.chat_template_kwargs = extraParams.chat_template_kwargs;
|
|
65100
|
-
const cacheRetention = resolveCacheRetention(extraParams, provider);
|
|
65101
|
-
if (cacheRetention) streamParams.cacheRetention = cacheRetention;
|
|
65102
|
-
if (Object.keys(streamParams).length === 0) return;
|
|
65103
|
-
log$2.debug(`creating streamFn wrapper with params: ${JSON.stringify(streamParams)}`);
|
|
65104
|
-
const sp = streamParams;
|
|
65105
|
-
const payloadOverrides = {};
|
|
65106
|
-
if (Array.isArray(sp.stop) && sp.stop.length > 0) payloadOverrides.stop = sp.stop;
|
|
65107
|
-
if (typeof sp.top_p === "number") payloadOverrides.top_p = sp.top_p;
|
|
65108
|
-
if (typeof sp.top_k === "number") payloadOverrides.top_k = sp.top_k;
|
|
65109
|
-
if (typeof sp.repeat_penalty === "number") payloadOverrides.repeat_penalty = sp.repeat_penalty;
|
|
65110
|
-
const hasPayloadOverrides = Object.keys(payloadOverrides).length > 0;
|
|
65111
|
-
const underlying = baseStreamFn ?? streamSimple;
|
|
65112
|
-
const wrappedStreamFn = (model, context, options) => {
|
|
65113
|
-
if (hasPayloadOverrides) {
|
|
65114
|
-
const originalOnPayload = options?.onPayload;
|
|
65115
|
-
return underlying(model, context, {
|
|
65116
|
-
...streamParams,
|
|
65117
|
-
...options,
|
|
65118
|
-
onPayload: (payload) => {
|
|
65119
|
-
if (payload && typeof payload === "object") {
|
|
65120
|
-
const p = payload;
|
|
65121
|
-
for (const [key, value] of Object.entries(payloadOverrides)) if (p[key] === void 0) p[key] = value;
|
|
65122
|
-
}
|
|
65123
|
-
originalOnPayload?.(payload);
|
|
65124
|
-
}
|
|
65125
|
-
});
|
|
65126
|
-
}
|
|
65127
|
-
return underlying(model, context, {
|
|
65128
|
-
...streamParams,
|
|
65129
|
-
...options
|
|
65130
|
-
});
|
|
65131
|
-
};
|
|
65132
|
-
return wrappedStreamFn;
|
|
65133
|
-
}
|
|
65134
65093
|
function isDirectOpenAIBaseUrl(baseUrl) {
|
|
65135
65094
|
if (typeof baseUrl !== "string" || !baseUrl.trim()) return true;
|
|
65136
65095
|
try {
|
|
@@ -65211,20 +65170,6 @@ function createAnthropicBetaHeadersWrapper(baseStreamFn, betas) {
|
|
|
65211
65170
|
};
|
|
65212
65171
|
}
|
|
65213
65172
|
/**
|
|
65214
|
-
* Create a streamFn wrapper that adds OpenRouter app attribution headers.
|
|
65215
|
-
* These headers allow Symi to appear on OpenRouter's leaderboard.
|
|
65216
|
-
*/
|
|
65217
|
-
function createOpenRouterHeadersWrapper(baseStreamFn) {
|
|
65218
|
-
const underlying = baseStreamFn ?? streamSimple;
|
|
65219
|
-
return (model, context, options) => underlying(model, context, {
|
|
65220
|
-
...options,
|
|
65221
|
-
headers: {
|
|
65222
|
-
...OPENROUTER_APP_HEADERS,
|
|
65223
|
-
...options?.headers
|
|
65224
|
-
}
|
|
65225
|
-
});
|
|
65226
|
-
}
|
|
65227
|
-
/**
|
|
65228
65173
|
* Create a streamFn wrapper that injects tool_stream=true for Z.AI providers.
|
|
65229
65174
|
*
|
|
65230
65175
|
* Z.AI's API supports the `tool_stream` parameter to enable real-time streaming
|
|
@@ -65247,82 +65192,6 @@ function createZaiToolStreamWrapper(baseStreamFn, enabled) {
|
|
|
65247
65192
|
});
|
|
65248
65193
|
};
|
|
65249
65194
|
}
|
|
65250
|
-
const GEMMA_STOP_SEQUENCES = ["<end_of_turn>", "<eos>"];
|
|
65251
|
-
const VLLM_GEMMA_HINTS = ["gemma", "redsand"];
|
|
65252
|
-
function isVllmOrGemmaProvider(provider, modelId, cfg) {
|
|
65253
|
-
const lower = `${provider}/${modelId}`.toLowerCase();
|
|
65254
|
-
if (VLLM_GEMMA_HINTS.some((h) => lower.includes(h))) return true;
|
|
65255
|
-
const baseUrl = ((cfg?.models?.providers?.[provider])?.baseUrl ?? "").toLowerCase();
|
|
65256
|
-
return baseUrl.includes("coreweave") || baseUrl.includes("vllm");
|
|
65257
|
-
}
|
|
65258
|
-
/**
|
|
65259
|
-
* Wrap the stream function to fix vLLM/Gemma compat issues via onPayload:
|
|
65260
|
-
* 1. Replace `max_completion_tokens` with `max_tokens` (vLLM ignores the former)
|
|
65261
|
-
* 2. Inject Gemma stop sequences if none are set
|
|
65262
|
-
* 3. Remove unsupported fields (store, stream_options.include_usage on older vLLM)
|
|
65263
|
-
*/
|
|
65264
|
-
function createVllmCompatWrapper(baseStreamFn, extraParams) {
|
|
65265
|
-
const underlying = baseStreamFn ?? streamSimple;
|
|
65266
|
-
const configuredStop = Array.isArray(extraParams.stop) ? extraParams.stop : GEMMA_STOP_SEQUENCES;
|
|
65267
|
-
return (model, context, options) => {
|
|
65268
|
-
const originalOnPayload = options?.onPayload;
|
|
65269
|
-
return underlying(model, context, {
|
|
65270
|
-
...options,
|
|
65271
|
-
onPayload: (payload) => {
|
|
65272
|
-
if (payload && typeof payload === "object") {
|
|
65273
|
-
const p = payload;
|
|
65274
|
-
if (p.max_completion_tokens && !p.max_tokens) {
|
|
65275
|
-
p.max_tokens = p.max_completion_tokens;
|
|
65276
|
-
delete p.max_completion_tokens;
|
|
65277
|
-
}
|
|
65278
|
-
if (!p.stop && configuredStop.length > 0) p.stop = configuredStop;
|
|
65279
|
-
delete p.store;
|
|
65280
|
-
}
|
|
65281
|
-
originalOnPayload?.(payload);
|
|
65282
|
-
}
|
|
65283
|
-
});
|
|
65284
|
-
};
|
|
65285
|
-
}
|
|
65286
|
-
/**
|
|
65287
|
-
* Apply extra params (like temperature) to an agent's streamFn.
|
|
65288
|
-
* Also adds OpenRouter app attribution headers when using the OpenRouter provider.
|
|
65289
|
-
*
|
|
65290
|
-
* @internal Exported for testing
|
|
65291
|
-
*/
|
|
65292
|
-
function applyExtraParamsToAgent(agent, cfg, provider, modelId, extraParamsOverride) {
|
|
65293
|
-
const extraParams = resolveExtraParams({
|
|
65294
|
-
cfg,
|
|
65295
|
-
provider,
|
|
65296
|
-
modelId
|
|
65297
|
-
});
|
|
65298
|
-
const override = extraParamsOverride && Object.keys(extraParamsOverride).length > 0 ? Object.fromEntries(Object.entries(extraParamsOverride).filter(([, value]) => value !== void 0)) : void 0;
|
|
65299
|
-
const merged = Object.assign({}, extraParams, override);
|
|
65300
|
-
const wrappedStreamFn = createStreamFnWithExtraParams(agent.streamFn, merged, provider);
|
|
65301
|
-
if (wrappedStreamFn) {
|
|
65302
|
-
log$2.debug(`applying extraParams to agent streamFn for ${provider}/${modelId}`);
|
|
65303
|
-
agent.streamFn = wrappedStreamFn;
|
|
65304
|
-
}
|
|
65305
|
-
const anthropicBetas = resolveAnthropicBetas(merged, provider, modelId);
|
|
65306
|
-
if (anthropicBetas?.length) {
|
|
65307
|
-
log$2.debug(`applying Anthropic beta header for ${provider}/${modelId}: ${anthropicBetas.join(",")}`);
|
|
65308
|
-
agent.streamFn = createAnthropicBetaHeadersWrapper(agent.streamFn, anthropicBetas);
|
|
65309
|
-
}
|
|
65310
|
-
if (provider === "openrouter") {
|
|
65311
|
-
log$2.debug(`applying OpenRouter app attribution headers for ${provider}/${modelId}`);
|
|
65312
|
-
agent.streamFn = createOpenRouterHeadersWrapper(agent.streamFn);
|
|
65313
|
-
}
|
|
65314
|
-
if (provider === "zai" || provider === "z-ai") {
|
|
65315
|
-
if (merged?.tool_stream !== false) {
|
|
65316
|
-
log$2.debug(`enabling Z.AI tool_stream for ${provider}/${modelId}`);
|
|
65317
|
-
agent.streamFn = createZaiToolStreamWrapper(agent.streamFn, true);
|
|
65318
|
-
}
|
|
65319
|
-
}
|
|
65320
|
-
if (isVllmOrGemmaProvider(provider, modelId, cfg)) {
|
|
65321
|
-
log$2.debug(`applying vLLM/Gemma compat wrapper for ${provider}/${modelId}`);
|
|
65322
|
-
agent.streamFn = createVllmCompatWrapper(agent.streamFn, merged);
|
|
65323
|
-
}
|
|
65324
|
-
agent.streamFn = createOpenAIResponsesStoreWrapper(agent.streamFn);
|
|
65325
|
-
}
|
|
65326
65195
|
|
|
65327
65196
|
//#endregion
|
|
65328
65197
|
//#region src/utils/safe-json.ts
|
|
@@ -65599,6 +65468,74 @@ function createCacheTrace(params) {
|
|
|
65599
65468
|
};
|
|
65600
65469
|
}
|
|
65601
65470
|
|
|
65471
|
+
//#endregion
|
|
65472
|
+
//#region src/agents/model-aware-stream.ts
|
|
65473
|
+
/**
|
|
65474
|
+
* Create a single stream function wrapper that handles all provider-specific
|
|
65475
|
+
* param injection via one onPayload hook.
|
|
65476
|
+
*
|
|
65477
|
+
* Replaces: createStreamFnWithExtraParams, createVllmCompatWrapper,
|
|
65478
|
+
* createOpenRouterHeadersWrapper.
|
|
65479
|
+
*/
|
|
65480
|
+
function createModelAwareStreamFn(opts) {
|
|
65481
|
+
const underlying = opts.baseStreamFn ?? streamSimple;
|
|
65482
|
+
const mergedParams = {
|
|
65483
|
+
...opts.profile.params,
|
|
65484
|
+
...opts.configExtraParams,
|
|
65485
|
+
...opts.streamParamsOverride
|
|
65486
|
+
};
|
|
65487
|
+
const nativeOpts = {};
|
|
65488
|
+
if (typeof mergedParams.temperature === "number") nativeOpts.temperature = mergedParams.temperature;
|
|
65489
|
+
if (typeof mergedParams.max_tokens === "number") nativeOpts.maxTokens = mergedParams.max_tokens;
|
|
65490
|
+
else if (typeof mergedParams.maxTokens === "number") nativeOpts.maxTokens = mergedParams.maxTokens;
|
|
65491
|
+
const injections = {};
|
|
65492
|
+
if (Array.isArray(mergedParams.stop) && mergedParams.stop.length > 0) injections.stop = mergedParams.stop;
|
|
65493
|
+
if (typeof mergedParams.top_p === "number") injections.top_p = mergedParams.top_p;
|
|
65494
|
+
if (typeof mergedParams.top_k === "number") injections.top_k = mergedParams.top_k;
|
|
65495
|
+
if (typeof mergedParams.repeat_penalty === "number") injections.repeat_penalty = mergedParams.repeat_penalty;
|
|
65496
|
+
const isVllm = isVllmProvider(opts.provider, opts.modelId, opts.config);
|
|
65497
|
+
const isOpenRouter = opts.provider === "openrouter";
|
|
65498
|
+
const extraHeaders = {};
|
|
65499
|
+
if (isOpenRouter) {
|
|
65500
|
+
extraHeaders["HTTP-Referer"] = "https://symi.ai";
|
|
65501
|
+
extraHeaders["X-Title"] = "Symi";
|
|
65502
|
+
}
|
|
65503
|
+
const hasExtraHeaders = Object.keys(extraHeaders).length > 0;
|
|
65504
|
+
const onPayloadHook = (payload, callerOnPayload) => {
|
|
65505
|
+
if (payload && typeof payload === "object") {
|
|
65506
|
+
const p = payload;
|
|
65507
|
+
for (const [key, val] of Object.entries(injections)) if (p[key] === void 0) p[key] = val;
|
|
65508
|
+
if (isVllm) {
|
|
65509
|
+
if (p.max_completion_tokens && !p.max_tokens) {
|
|
65510
|
+
p.max_tokens = p.max_completion_tokens;
|
|
65511
|
+
delete p.max_completion_tokens;
|
|
65512
|
+
}
|
|
65513
|
+
delete p.store;
|
|
65514
|
+
}
|
|
65515
|
+
}
|
|
65516
|
+
callerOnPayload?.(payload);
|
|
65517
|
+
};
|
|
65518
|
+
return (model, context, options) => {
|
|
65519
|
+
const callerOnPayload = options?.onPayload;
|
|
65520
|
+
return underlying(model, context, {
|
|
65521
|
+
...nativeOpts,
|
|
65522
|
+
...options,
|
|
65523
|
+
onPayload: (payload) => onPayloadHook(payload, callerOnPayload),
|
|
65524
|
+
...hasExtraHeaders ? { headers: {
|
|
65525
|
+
...extraHeaders,
|
|
65526
|
+
...options?.headers
|
|
65527
|
+
} } : {}
|
|
65528
|
+
});
|
|
65529
|
+
};
|
|
65530
|
+
}
|
|
65531
|
+
/** Detect vLLM/Gemma providers by model hints or baseUrl patterns. */
|
|
65532
|
+
function isVllmProvider(provider, modelId, config) {
|
|
65533
|
+
const lower = `${provider}/${modelId}`.toLowerCase();
|
|
65534
|
+
if (["gemma", "redsand"].some((h) => lower.includes(h))) return true;
|
|
65535
|
+
const baseUrl = ((config?.models?.providers?.[provider])?.baseUrl ?? "").toLowerCase();
|
|
65536
|
+
return baseUrl.includes("coreweave") || baseUrl.includes("vllm");
|
|
65537
|
+
}
|
|
65538
|
+
|
|
65602
65539
|
//#endregion
|
|
65603
65540
|
//#region src/auto-reply/reply/streaming-directives.ts
|
|
65604
65541
|
const splitTrailingDirective = (text) => {
|
|
@@ -68649,14 +68586,39 @@ async function runEmbeddedAttempt(params) {
|
|
|
68649
68586
|
modelApi: params.model.api,
|
|
68650
68587
|
workspaceDir: params.workspaceDir
|
|
68651
68588
|
});
|
|
68652
|
-
|
|
68653
|
-
|
|
68654
|
-
|
|
68655
|
-
|
|
68656
|
-
|
|
68657
|
-
|
|
68658
|
-
|
|
68659
|
-
|
|
68589
|
+
{
|
|
68590
|
+
let baseStreamFn = streamSimple;
|
|
68591
|
+
if (params.model.api === "ollama") {
|
|
68592
|
+
const providerConfig = params.config?.models?.providers?.[params.model.provider];
|
|
68593
|
+
const modelBaseUrl = typeof params.model.baseUrl === "string" ? params.model.baseUrl.trim() : "";
|
|
68594
|
+
const providerBaseUrl = typeof providerConfig?.baseUrl === "string" ? providerConfig.baseUrl.trim() : "";
|
|
68595
|
+
baseStreamFn = createOllamaStreamFn(modelBaseUrl || providerBaseUrl || OLLAMA_NATIVE_BASE_URL);
|
|
68596
|
+
}
|
|
68597
|
+
const configExtraParams = resolveExtraParams({
|
|
68598
|
+
cfg: params.config,
|
|
68599
|
+
provider: params.provider,
|
|
68600
|
+
modelId: params.modelId
|
|
68601
|
+
});
|
|
68602
|
+
activeSession.agent.streamFn = createModelAwareStreamFn({
|
|
68603
|
+
baseStreamFn,
|
|
68604
|
+
profile: modelProfile,
|
|
68605
|
+
provider: params.provider,
|
|
68606
|
+
modelId: params.modelId,
|
|
68607
|
+
config: params.config,
|
|
68608
|
+
configExtraParams,
|
|
68609
|
+
streamParamsOverride: params.streamParams
|
|
68610
|
+
});
|
|
68611
|
+
const merged = {
|
|
68612
|
+
...configExtraParams,
|
|
68613
|
+
...params.streamParams
|
|
68614
|
+
};
|
|
68615
|
+
const anthropicBetas = resolveAnthropicBetas(merged, params.provider, params.modelId);
|
|
68616
|
+
if (anthropicBetas?.length) activeSession.agent.streamFn = createAnthropicBetaHeadersWrapper(activeSession.agent.streamFn, anthropicBetas);
|
|
68617
|
+
if (params.provider === "zai" || params.provider === "z-ai") {
|
|
68618
|
+
if (merged?.tool_stream !== false) activeSession.agent.streamFn = createZaiToolStreamWrapper(activeSession.agent.streamFn, true);
|
|
68619
|
+
}
|
|
68620
|
+
activeSession.agent.streamFn = createOpenAIResponsesStoreWrapper(activeSession.agent.streamFn);
|
|
68621
|
+
}
|
|
68660
68622
|
if (cacheTrace) {
|
|
68661
68623
|
cacheTrace.recordStage("session:loaded", {
|
|
68662
68624
|
messages: activeSession.messages,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { fileURLToPath } from "node:url";
|
|
2
2
|
import fs from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
import
|
|
4
|
+
import fs$1 from "node:fs/promises";
|
|
5
5
|
|
|
6
6
|
//#region src/agents/skills/filter.ts
|
|
7
7
|
function normalizeSkillFilter(skillFilter) {
|
|
@@ -26,7 +26,7 @@ function matchesSkillFilter(cached, next) {
|
|
|
26
26
|
const CORE_PACKAGE_NAMES = new Set(["symi", "@symerian/symi"]);
|
|
27
27
|
async function readPackageName(dir) {
|
|
28
28
|
try {
|
|
29
|
-
const raw = await
|
|
29
|
+
const raw = await fs$1.readFile(path.join(dir, "package.json"), "utf-8");
|
|
30
30
|
const parsed = JSON.parse(raw);
|
|
31
31
|
return typeof parsed.name === "string" ? parsed.name : null;
|
|
32
32
|
} catch {
|
|
@@ -3,27 +3,27 @@ import { B as theme, O as danger } from "./utils-B-0b9bGM.js";
|
|
|
3
3
|
import "./registry-Cja8eT7G.js";
|
|
4
4
|
import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
|
|
5
5
|
import "./exec-CWkblSrI.js";
|
|
6
|
-
import "./agent-scope-
|
|
7
|
-
import { At as ensureAuthProfileStore, l as normalizeProviderId } from "./model-selection-
|
|
6
|
+
import "./agent-scope-CgUHAtCo.js";
|
|
7
|
+
import { At as ensureAuthProfileStore, l as normalizeProviderId } from "./model-selection-CyFvYcRt.js";
|
|
8
8
|
import "./github-copilot-token-DAu1a6BX.js";
|
|
9
9
|
import "./boolean-BsqeuxE6.js";
|
|
10
10
|
import "./env-DPCHYPeH.js";
|
|
11
11
|
import "./message-channel-aT-I_DTX.js";
|
|
12
|
-
import "./config-
|
|
12
|
+
import "./config-CHwyw6l5.js";
|
|
13
13
|
import "./manifest-registry-C4BxOMWX.js";
|
|
14
|
-
import "./client-
|
|
15
|
-
import "./call-
|
|
16
|
-
import "./pairing-token-
|
|
14
|
+
import "./client-CQSyCS4M.js";
|
|
15
|
+
import "./call-CJaS1iRF.js";
|
|
16
|
+
import "./pairing-token-CX3NN_qj.js";
|
|
17
17
|
import { t as formatDocsLink } from "./links-3i1eUga4.js";
|
|
18
18
|
import "./progress-jIePzvGA.js";
|
|
19
|
-
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-
|
|
19
|
+
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BxkKeCZ0.js";
|
|
20
20
|
import path from "node:path";
|
|
21
|
-
import
|
|
21
|
+
import fs from "node:fs/promises";
|
|
22
22
|
|
|
23
23
|
//#region src/agents/pi-auth-json.ts
|
|
24
24
|
async function readAuthJson(filePath) {
|
|
25
25
|
try {
|
|
26
|
-
const raw = await
|
|
26
|
+
const raw = await fs.readFile(filePath, "utf8");
|
|
27
27
|
const parsed = JSON.parse(raw);
|
|
28
28
|
if (!parsed || typeof parsed !== "object") return {};
|
|
29
29
|
return parsed;
|
|
@@ -115,11 +115,11 @@ async function ensurePiAuthJsonFromAuthProfiles(agentDir) {
|
|
|
115
115
|
wrote: false,
|
|
116
116
|
authPath
|
|
117
117
|
};
|
|
118
|
-
await
|
|
118
|
+
await fs.mkdir(agentDir, {
|
|
119
119
|
recursive: true,
|
|
120
120
|
mode: 448
|
|
121
121
|
});
|
|
122
|
-
await
|
|
122
|
+
await fs.writeFile(authPath, `${JSON.stringify(existing, null, 2)}\n`, { mode: 384 });
|
|
123
123
|
return {
|
|
124
124
|
wrote: true,
|
|
125
125
|
authPath
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
|
|
2
|
-
import { d as isVersionManagedNodePath, h as resolveSystemNodePath, l as getMinimalServicePathPartsFromEnv, u as isSystemNodePath } from "./daemon-runtime
|
|
3
|
-
import { o as resolveSystemdUserUnitPath } from "./systemd-
|
|
4
|
-
import { c as resolveLaunchAgentPlistPath } from "./service
|
|
2
|
+
import { d as isVersionManagedNodePath, h as resolveSystemNodePath, l as getMinimalServicePathPartsFromEnv, u as isSystemNodePath } from "./daemon-runtime-2mwX-jqj.js";
|
|
3
|
+
import { o as resolveSystemdUserUnitPath } from "./systemd-riq8uNJQ.js";
|
|
4
|
+
import { c as resolveLaunchAgentPlistPath } from "./service-Cl74hx8J.js";
|
|
5
5
|
import { t as formatRuntimeStatusWithDetails } from "./runtime-status-CR9445g5.js";
|
|
6
6
|
import path from "node:path";
|
|
7
|
-
import
|
|
7
|
+
import fs from "node:fs/promises";
|
|
8
8
|
|
|
9
9
|
//#region src/daemon/runtime-format.ts
|
|
10
10
|
function formatRuntimeStatus(runtime) {
|
|
@@ -85,7 +85,7 @@ async function auditSystemdUnit(env, issues) {
|
|
|
85
85
|
const unitPath = resolveSystemdUserUnitPath(env);
|
|
86
86
|
let content = "";
|
|
87
87
|
try {
|
|
88
|
-
content = await
|
|
88
|
+
content = await fs.readFile(unitPath, "utf8");
|
|
89
89
|
} catch {
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
@@ -113,7 +113,7 @@ async function auditLaunchdPlist(env, issues) {
|
|
|
113
113
|
const plistPath = resolveLaunchAgentPlistPath(env);
|
|
114
114
|
let content = "";
|
|
115
115
|
try {
|
|
116
|
-
content = await
|
|
116
|
+
content = await fs.readFile(plistPath, "utf8");
|
|
117
117
|
} catch {
|
|
118
118
|
return;
|
|
119
119
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { t as note } from "./note-DeHoW7xO.js";
|
|
3
|
-
import { d as readSystemdUserLingerStatus, r as isSystemdUserServiceAvailable, u as enableSystemdUserLinger } from "./systemd-
|
|
3
|
+
import { d as readSystemdUserLingerStatus, r as isSystemdUserServiceAvailable, u as enableSystemdUserLinger } from "./systemd-riq8uNJQ.js";
|
|
4
4
|
|
|
5
5
|
//#region src/commands/systemd-linger.ts
|
|
6
6
|
var systemd_linger_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -3,7 +3,7 @@ import { n as runExec, t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
|
|
|
3
3
|
import { d as resolveGatewaySystemdServiceName, l as resolveGatewayProfileSuffix, u as resolveGatewayServiceDescription } from "./constants-C8_BLnaW.js";
|
|
4
4
|
import os from "node:os";
|
|
5
5
|
import path from "node:path";
|
|
6
|
-
import
|
|
6
|
+
import fs from "node:fs/promises";
|
|
7
7
|
import { execFile } from "node:child_process";
|
|
8
8
|
|
|
9
9
|
//#region src/daemon/exec-file.ts
|
|
@@ -289,7 +289,7 @@ function resolveSystemdUserUnitPath(env) {
|
|
|
289
289
|
async function readSystemdServiceExecStart(env) {
|
|
290
290
|
const unitPath = resolveSystemdUnitPath(env);
|
|
291
291
|
try {
|
|
292
|
-
const content = await
|
|
292
|
+
const content = await fs.readFile(unitPath, "utf8");
|
|
293
293
|
let execStart = "";
|
|
294
294
|
let workingDirectory = "";
|
|
295
295
|
const environment = {};
|
|
@@ -360,7 +360,7 @@ async function assertSystemdAvailable() {
|
|
|
360
360
|
async function installSystemdService({ env, stdout, programArguments, workingDirectory, environment, description }) {
|
|
361
361
|
await assertSystemdAvailable();
|
|
362
362
|
const unitPath = resolveSystemdUnitPath(env);
|
|
363
|
-
await
|
|
363
|
+
await fs.mkdir(path.dirname(unitPath), { recursive: true });
|
|
364
364
|
const unit = buildSystemdUnit({
|
|
365
365
|
description: resolveGatewayServiceDescription({
|
|
366
366
|
env,
|
|
@@ -371,7 +371,7 @@ async function installSystemdService({ env, stdout, programArguments, workingDir
|
|
|
371
371
|
workingDirectory,
|
|
372
372
|
environment
|
|
373
373
|
});
|
|
374
|
-
await
|
|
374
|
+
await fs.writeFile(unitPath, unit, "utf8");
|
|
375
375
|
const unitName = `${resolveGatewaySystemdServiceName(env.SYMI_PROFILE)}.service`;
|
|
376
376
|
const reload = await execSystemctl(["--user", "daemon-reload"]);
|
|
377
377
|
if (reload.code !== 0) throw new Error(`systemctl daemon-reload failed: ${reload.stderr || reload.stdout}`.trim());
|
|
@@ -403,7 +403,7 @@ async function uninstallSystemdService({ env, stdout }) {
|
|
|
403
403
|
]);
|
|
404
404
|
const unitPath = resolveSystemdUnitPath(env);
|
|
405
405
|
try {
|
|
406
|
-
await
|
|
406
|
+
await fs.unlink(unitPath);
|
|
407
407
|
stdout.write(`${formatLine("Removed systemd service", unitPath)}\n`);
|
|
408
408
|
} catch {
|
|
409
409
|
stdout.write(`Systemd service not found at ${unitPath}\n`);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { c as detectMime } from "./image-ops-
|
|
2
|
-
import { r as sanitizeToolResultImages } from "./tool-images-
|
|
3
|
-
import
|
|
1
|
+
import { c as detectMime } from "./image-ops-1OJMSAUX.js";
|
|
2
|
+
import { r as sanitizeToolResultImages } from "./tool-images-DvUBlqjX.js";
|
|
3
|
+
import fs from "node:fs/promises";
|
|
4
4
|
|
|
5
5
|
//#region src/agents/tools/common.ts
|
|
6
6
|
var ToolInputError = class extends Error {
|
|
@@ -128,7 +128,7 @@ async function imageResult(params) {
|
|
|
128
128
|
}, params.label, params.imageSanitization);
|
|
129
129
|
}
|
|
130
130
|
async function imageResultFromFile(params) {
|
|
131
|
-
const buf = await
|
|
131
|
+
const buf = await fs.readFile(params.path);
|
|
132
132
|
const mimeType = await detectMime({ buffer: buf.slice(0, 256) }) ?? "image/png";
|
|
133
133
|
return await imageResult({
|
|
134
134
|
label: params.label,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
|
|
2
|
-
import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-
|
|
2
|
+
import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-1OJMSAUX.js";
|
|
3
3
|
|
|
4
4
|
//#region src/agents/image-sanitization.ts
|
|
5
5
|
const DEFAULT_IMAGE_MAX_DIMENSION_PX = 1200;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { c as normalizeUsageDisplay, r as listThinkingLevelLabels, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-EAliFiVK.js";
|
|
2
2
|
import { S as parseAgentSessionKey, c as normalizeMainKey, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-DCt45XZa.js";
|
|
3
3
|
import { l as stripAnsi, u as visibleWidth } from "./subsystem-D9vIQve0.js";
|
|
4
|
-
import { l as resolveDefaultAgentId } from "./agent-scope-
|
|
4
|
+
import { l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
|
|
5
5
|
import { f as GATEWAY_CLIENT_CAPS, h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-aT-I_DTX.js";
|
|
6
|
-
import { H as VERSION, i as loadConfig } from "./config-
|
|
7
|
-
import { _ as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-
|
|
8
|
-
import { k as stripLeadingInboundMetadata } from "./sessions-
|
|
6
|
+
import { H as VERSION, i as loadConfig } from "./config-CHwyw6l5.js";
|
|
7
|
+
import { _ as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-CNPyv_ax.js";
|
|
8
|
+
import { k as stripLeadingInboundMetadata } from "./sessions-DgYpBvse.js";
|
|
9
9
|
import { n as resolveToolDisplay, t as formatToolDetail } from "./tool-display-D8N3rsYt.js";
|
|
10
|
-
import { a as listChatCommandsForConfig, i as listChatCommands } from "./commands-registry-
|
|
11
|
-
import { kt as PROTOCOL_VERSION, t as GatewayClient } from "./client-
|
|
12
|
-
import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-
|
|
10
|
+
import { a as listChatCommandsForConfig, i as listChatCommands } from "./commands-registry-BT0-zzs3.js";
|
|
11
|
+
import { kt as PROTOCOL_VERSION, t as GatewayClient } from "./client-CQSyCS4M.js";
|
|
12
|
+
import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-CJaS1iRF.js";
|
|
13
13
|
import { n as formatTimeAgo, t as formatRelativeTimestamp } from "./format-relative-BXoxEQVN.js";
|
|
14
14
|
import { n as formatTokenCount } from "./usage-format-BzKEDn0q.js";
|
|
15
15
|
import chalk from "chalk";
|