@symerian/symi 2.2.8 → 2.3.1
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-tNElYrCH.js → accounts-CI6zQTJj.js} +14 -14
- package/dist/{accounts-qtxJ-6em.js → accounts-CJR8j_Kq.js} +1 -1
- package/dist/{accounts-CWktKM8a.js → accounts-ChTFYj8Q.js} +1 -1
- package/dist/{acp-cli-C39L0DlT.js → acp-cli-Cu4icbJT.js} +2 -2
- package/dist/{acp-cli-C3PXowAr.js → acp-cli-NJzARaHq.js} +2 -2
- package/dist/{active-listener-C9r8ZB9m.js → active-listener-D6sXIjAg.js} +1 -1
- package/dist/{agent-scope-BxoUQqgM.js → agent-scope-Bw1Ed8W9.js} +3 -3
- package/dist/{agents-DbnUoR_W.js → agents-DzuttgJU.js} +7 -7
- package/dist/{agents.config-qyBeLoW5.js → agents.config-2HlZJsR3.js} +1 -1
- package/dist/{agents.config-D4WnZfkE.js → agents.config-CSucty2T.js} +1 -1
- package/dist/{audio-preflight-Cv9Z1hfd.js → audio-preflight-BsfqyC31.js} +29 -29
- package/dist/{audio-preflight-BsS_1f9-.js → audio-preflight-C40mKAp7.js} +5 -5
- package/dist/{audio-preflight-D6xo_ucC.js → audio-preflight-CWnxkaac.js} +11 -11
- package/dist/{audio-preflight-Dx82ytdb.js → audio-preflight-xSDULLAj.js} +11 -11
- package/dist/{audit-F6tyY79q.js → audit-Byo5jCLN.js} +5 -5
- package/dist/{audit-CbxXbquQ.js → audit-CrITRV6w.js} +5 -5
- package/dist/{auth-choice-DYxn5otk.js → auth-choice-ChrEc3cZ.js} +4 -4
- package/dist/{auth-choice-TbOBqNzh.js → auth-choice-Cve09z1a.js} +4 -4
- package/dist/{banner-BGxrGU83.js → banner-BoLflN_R.js} +1 -1
- package/dist/{bindings-B7Ke6LJi.js → bindings-BU2hsBd9.js} +2 -2
- package/dist/{browser-cli-BsdB0_5b.js → browser-cli-BG4qPxpM.js} +3 -3
- package/dist/{browser-cli-CTQX5_tu.js → browser-cli-CPcnnsJJ.js} +3 -3
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +53 -53
- package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
- package/dist/bundled/command-logger/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +53 -53
- package/dist/{call-C7OJzLEL.js → call-BcE47FtD.js} +1 -1
- package/dist/{call-BOIceRVF.js → call-CJaS1iRF.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-activity-CsM_hJ_s.js → channel-activity-C9-gaquj.js} +1 -1
- package/dist/{channel-options-qDtKomWq.js → channel-options-Dkd1WQZx.js} +1 -1
- package/dist/{channel-options-8st4ZPAV.js → channel-options-DqgeO1f6.js} +1 -1
- package/dist/{channel-web-DQusem-l.js → channel-web-CJvDQ5Ea.js} +7 -7
- package/dist/{channels-cli-DZ9QSHcp.js → channels-cli-D0jjOLRb.js} +29 -29
- package/dist/{channels-cli-BfrCgEUI.js → channels-cli-DtqwJZWy.js} +30 -30
- package/dist/{chrome-Bf5N4gMh.js → chrome-CDJYxX5a.js} +8 -8
- package/dist/{chrome-CCN6Uf1O.js → chrome-Dq0bSDVx.js} +1 -1
- package/dist/{chrome-BtuJAYB6.js → chrome-DtPkPq9T.js} +1 -1
- package/dist/{chrome-CQNK4Of4.js → chrome-w3SLcQJF.js} +13 -13
- package/dist/{chunk-BW5f05BR.js → chunk-ClbN9Pqy.js} +1 -1
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-isTrIFLa.js → cli-CEtg8kql.js} +26 -26
- package/dist/{cli-D484UoYM.js → cli-CHOmeum9.js} +25 -25
- package/dist/{command-format-BaxDnULz.js → command-format-UKHV-j0K.js} +1 -1
- package/dist/{command-registry-D4kcHIMn.js → command-registry-Ba2z3dYq.js} +11 -11
- package/dist/{commands-registry-D7CTCQPm.js → commands-registry-VSmULp-g.js} +4 -4
- package/dist/{completion-cli-CtOpZu6z.js → completion-cli-BgX3MWVU.js} +1 -1
- package/dist/{completion-cli-1m5OvbnB.js → completion-cli-CD-306wt.js} +2 -2
- package/dist/{config-Btm9gODl.js → config-BmV60pPT.js} +28 -0
- package/dist/{config-CkPct-ND.js → config-CHwyw6l5.js} +28 -0
- package/dist/{config-CJigbfdK.js → config-DHBLS1Hl.js} +28 -0
- package/dist/{config-cli-BlpcRRjX.js → config-cli-Cz87-TYh.js} +2 -2
- package/dist/{config-cli-BVbYrdKA.js → config-cli-DAbXVRUL.js} +2 -2
- package/dist/{config-CT6a99bQ.js → config-eEaJddXj.js} +40 -12
- package/dist/{config-guard-Q2nmK4Xy.js → config-guard-BflmO0t7.js} +3 -3
- package/dist/{config-guard-Fe8ddF5U.js → config-guard-CPHvOzsC.js} +2 -2
- package/dist/{config-validation-CqVVl--v.js → config-validation-BITwrsxY.js} +1 -1
- package/dist/{config-validation-DXA9-y5q.js → config-validation-CmimHAES.js} +1 -1
- package/dist/{configure-D4WT6m8B.js → configure-0nrthdSf.js} +10 -10
- package/dist/{configure-C-o6fkN4.js → configure-D45ne4lm.js} +10 -10
- package/dist/{control-service-DWy5T1wZ.js → control-service-Bz7rxLWq.js} +4 -4
- package/dist/{control-service-D2-SfYYP.js → control-service-DEVN6FRR.js} +4 -4
- package/dist/control-ui/css/style.css +1437 -548
- package/dist/control-ui/index.html +912 -652
- package/dist/control-ui/js/app.js +82 -6
- package/dist/control-ui/js/debug.js +55 -0
- package/dist/control-ui/js/gateway.js +11 -0
- package/dist/control-ui/js/models.js +16 -1
- package/dist/control-ui/js/render.js +74 -1
- package/dist/control-ui/js/render.test.js +36 -35
- package/dist/control-ui/js/utils.js +6 -6
- package/dist/{cron-cli-DCjmF5-B.js → cron-cli-BP24xl6n.js} +3 -3
- package/dist/{cron-cli-BXgHvojs.js → cron-cli-DBIlCvp3.js} +3 -3
- package/dist/{daemon-cli-D-Ceof_K.js → daemon-cli-DscwlsKW.js} +6 -6
- package/dist/{daemon-cli-2Xzn9zI0.js → daemon-cli-wWnBIQtk.js} +6 -6
- package/dist/daemon-cli.js +28 -0
- package/dist/{daemon-runtime-DpFImSwP.js → daemon-runtime-2mwX-jqj.js} +1 -1
- package/dist/{daemon-runtime-Co0_hiZm.js → daemon-runtime-CfRwa6qh.js} +1 -1
- package/dist/{deliver-CBVqE05W.js → deliver-BH0l3UKW.js} +2 -2
- package/dist/{deliver-CeOnWRNZ.js → deliver-BmPK91JP.js} +20 -20
- package/dist/{deliver-PKvGnPCv.js → deliver-CXRSdUr1.js} +3 -3
- package/dist/{deliver-CuDHWgo8.js → deliver-CceEhg3d.js} +3 -3
- package/dist/{devices-cli-Sgz97CCh.js → devices-cli-BHiPx2c2.js} +2 -2
- package/dist/{devices-cli-gzdkKCIr.js → devices-cli-Dds-25Ve.js} +2 -2
- package/dist/{diagnostic-CI0kRQkt.js → diagnostic-C3nsWaw3.js} +1 -1
- package/dist/{directory-cli-B7qWiEB9.js → directory-cli-CpUByQew.js} +1 -1
- package/dist/{directory-cli-B3reyWxB.js → directory-cli-D6vlxPje.js} +1 -1
- package/dist/{dns-cli-w2PtF7dQ.js → dns-cli-BEub5qgQ.js} +1 -1
- package/dist/{dns-cli-CAyakH9y.js → dns-cli-Beyzdh3S.js} +1 -1
- package/dist/{doctor-completion-CU32z26S.js → doctor-completion-CcDVOtZ5.js} +1 -1
- package/dist/{doctor-completion-rtRPARP8.js → doctor-completion-CmGtqUHQ.js} +1 -1
- package/dist/{doctor-config-flow-Bvd_Aoem.js → doctor-config-flow-CA3eiKhd.js} +2 -2
- package/dist/{doctor-config-flow-q1cK5vqE.js → doctor-config-flow-QnaBd8kL.js} +2 -2
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-BGR981x_.js → exec-approvals-cli--zyXYrNY.js} +4 -4
- package/dist/{exec-approvals-cli-qL61CX5W.js → exec-approvals-cli-BliRl8VB.js} +4 -4
- package/dist/extensionAPI.js +13 -13
- package/dist/{frontmatter-C_bv_0P8.js → frontmatter-DPlG6yha.js} +2 -2
- package/dist/{gateway-cli-dxsgPoqI.js → gateway-cli-BVN31fwu.js} +135 -45
- package/dist/{gateway-cli-D9tJexeo.js → gateway-cli-DajX3Pye.js} +134 -44
- package/dist/{gateway-rpc-o-EndnYx.js → gateway-rpc-BxkKeCZ0.js} +1 -1
- package/dist/{gateway-rpc-DjjmZ7bN.js → gateway-rpc-DfZSz5JF.js} +1 -1
- package/dist/{gemini-auth-CdSPHuLl.js → gemini-auth-CF48hUR9.js} +1 -1
- package/dist/{github-copilot-token-C_qUP7p5.js → github-copilot-token-DJqsJ2-r.js} +7 -7
- package/dist/{glass-ui-ws-BvSaDLuk.js → glass-ui-ws-CQG6acJl.js} +34 -34
- package/dist/{glass-ui-ws-BxliIaQO.js → glass-ui-ws-Z1IOT6Vc.js} +33 -33
- package/dist/{health-BpVkd1NR.js → health-D9eQW7fJ.js} +5 -5
- package/dist/{health-6atzBDlL.js → health-f056vLGT.js} +5 -5
- package/dist/{hooks-cli-BdV4KLxW.js → hooks-cli-CW-IRS72.js} +27 -27
- package/dist/{hooks-cli-A0zhogYG.js → hooks-cli-hJ4euq2R.js} +26 -26
- package/dist/{image-Crdjqg8r.js → image-CHzdaNJ4.js} +2 -2
- package/dist/{image-CAI2RIyk.js → image-CO4meYzg.js} +2 -2
- package/dist/{image-Bf75JOg6.js → image-D9uvDTrc.js} +2 -2
- package/dist/{image-ops-CvJzsyvE.js → image-ops-S8-8dAhx.js} +1 -1
- package/dist/{image-CAUuNGNO.js → image-rZ4x9VS9.js} +4 -4
- package/dist/index.js +34 -34
- package/dist/{ir-DccrnjsE.js → ir-CbFUkv_T.js} +4 -4
- package/dist/{lifecycle-core-S8m0j4NY.js → lifecycle-core-D6LYXpFj.js} +2 -2
- package/dist/{lifecycle-core-D7Ye5Yes.js → lifecycle-core-DIBHfMOL.js} +2 -2
- package/dist/llm-slug-generator.js +53 -53
- package/dist/{local-roots-DMwIh5cS.js → local-roots-C7OCYACU.js} +5 -5
- package/dist/{login-Bw5pRDS9.js → login-B8uiUAnV.js} +7 -7
- package/dist/{login-Cy0xKkFK.js → login-XprgoYoQ.js} +2 -2
- package/dist/{login-CLDr2P2d.js → login-dIlDkG4X.js} +2 -2
- package/dist/{login-qr-UgF5nhwc.js → login-qr-CIZk8uKX.js} +12 -12
- package/dist/{login-qr-B1vLxxOr.js → login-qr-CUErSLXH.js} +2 -2
- package/dist/{login-qr-x-m9V4_i.js → login-qr-CqPpNO1y.js} +2 -2
- package/dist/{login-qr-CJ3r_moH.js → login-qr-pbXdFORv.js} +2 -2
- package/dist/{login-CrnzK7Rc.js → login-tFW8qUTU.js} +2 -2
- package/dist/{logs-cli-DJIwkEZN.js → logs-cli-Du8FCgKK.js} +3 -3
- package/dist/{logs-cli-DoSU6ypE.js → logs-cli-xOzIPrHm.js} +3 -3
- package/dist/{manager-D_LwXbc6.js → manager-BoLr3xR_.js} +13 -13
- package/dist/{manifest-registry-D0IQ3WuX.js → manifest-registry-CneMHk0N.js} +19 -19
- package/dist/{markdown-tables-iMQQZu4Q.js → markdown-tables-DSHvnTLx.js} +1 -1
- package/dist/{memory-cli-B1eBVFD2.js → memory-cli-C2SWDd8g.js} +1 -1
- package/dist/{memory-cli-DKU7WTEa.js → memory-cli-Ca5r9AUb.js} +1 -1
- package/dist/{message-channel-Dz5lr5b0.js → message-channel-DbsRltF2.js} +1 -1
- package/dist/{model-auth-DK43VicI.js → model-auth-CwOuTuXl.js} +9 -9
- package/dist/{model-catalog-D2Q4fkGC.js → model-catalog-CqCsARJX.js} +2 -2
- package/dist/{model-catalog-67tJywj6.js → model-catalog-DvBJ8pMD.js} +3 -3
- package/dist/{model-picker-Cv_lMtfR.js → model-picker-D5nCutGW.js} +2 -2
- package/dist/{model-picker-C5-xr7Au.js → model-picker-Ddo3jHe-.js} +2 -2
- package/dist/{models-cli-BIM5pEpQ.js → models-cli-B2ticsCM.js} +29 -29
- package/dist/{models-cli-DlUDMBlo.js → models-cli-D9bG44Ao.js} +29 -29
- package/dist/{models-config--wR0kLo6.js → models-config-CCMpqFyr.js} +1 -1
- package/dist/{models-config-CZKT8W0M.js → models-config-qyOXrOli.js} +1 -1
- package/dist/{models-CBEZc-xT.js → models-nO_t1uzp.js} +8 -8
- package/dist/{node-cli-D8nG9EDD.js → node-cli-C_G-Q3h-.js} +9 -9
- package/dist/{node-cli-DGmvLskU.js → node-cli-DSEhcjUV.js} +9 -9
- package/dist/{nodes-cli-B058F0sZ.js → nodes-cli-BIPA9B8G.js} +3 -3
- package/dist/{nodes-cli-BZ5aitST.js → nodes-cli-BcnuJajV.js} +3 -3
- package/dist/{onboard-BXp3rpw1.js → onboard-BDbpfrZj.js} +7 -7
- package/dist/{onboard-DXEF3bw2.js → onboard-BtZ9WqhJ.js} +7 -7
- package/dist/{onboard-channels-OKIylMMu.js → onboard-channels-CHE8nfNA.js} +1 -1
- package/dist/{onboard-channels-qLCTzt3v.js → onboard-channels-HubyUVjT.js} +1 -1
- package/dist/{onboard-custom-BiDvzYz-.js → onboard-custom-C7O-zfQ1.js} +2 -2
- package/dist/{onboard-custom-Bcifi3N2.js → onboard-custom-DdWPfzJO.js} +2 -2
- package/dist/{onboard-helpers-DHgVt6rY.js → onboard-helpers-ZmZYzlq3.js} +2 -2
- package/dist/{onboard-helpers-Cammg0Xb.js → onboard-helpers-_pit1NZW.js} +2 -2
- package/dist/{onboard-remote-BnOKv_rG.js → onboard-remote-R1g6st9i.js} +1 -1
- package/dist/{onboard-remote-CPI1Dsgo.js → onboard-remote-zUjD7UtM.js} +1 -1
- package/dist/{onboard-skills-5R6rRZiZ.js → onboard-skills-BB0YhUmF.js} +1 -1
- package/dist/{onboard-skills-LkCNrrQL.js → onboard-skills-ByO_wSN5.js} +1 -1
- package/dist/{onboarding-HJJedJ3u.js → onboarding-DtP0sps0.js} +10 -10
- package/dist/{onboarding-m_e9LePg.js → onboarding-eVb5gvwo.js} +10 -10
- package/dist/{onboarding.finalize-CbjQ-91D.js → onboarding.finalize-CetxPTxL.js} +31 -31
- package/dist/{onboarding.finalize-CGVAc5-e.js → onboarding.finalize-D8035U2E.js} +33 -33
- package/dist/{onboarding.gateway-config-BOUh5scQ.js → onboarding.gateway-config-BQFO9a_h.js} +4 -4
- package/dist/{onboarding.gateway-config-xF_Hfx5r.js → onboarding.gateway-config-CJUgDC6Y.js} +4 -4
- package/dist/{outbound-DzTvHYT8.js → outbound-3MZ12YrQ.js} +1 -1
- package/dist/{outbound-DHZ4Sktx.js → outbound-DB5Zus0-.js} +1 -1
- package/dist/{outbound-attachment-DjNDa3zn.js → outbound-attachment-Co2diKdP.js} +2 -2
- package/dist/{outbound-DeJ-MyLv.js → outbound-drXCcH8D.js} +1 -1
- package/dist/{outbound-GuMlcXXN.js → outbound-opDNxv-l.js} +7 -7
- package/dist/{pairing-cli-BunHc86C.js → pairing-cli-CBLfGvqW.js} +1 -1
- package/dist/{pairing-cli-DNAQqsxT.js → pairing-cli-CQRAnpvm.js} +1 -1
- package/dist/{paths-DLyHUt31.js → paths-Cb87-LzP.js} +1 -1
- package/dist/{paths-Cce4PUkG.js → paths-CySxpNhH.js} +5 -5
- package/dist/{pi-auth-json-0SYBFZTt.js → pi-auth-json-DPWPoruO.js} +8 -8
- package/dist/{pi-auth-json-C3yexKNU.js → pi-auth-json-DayrlDg_.js} +1 -1
- package/dist/{pi-embedded-Cd7Gd0Am.js → pi-embedded-BY-dBus2.js} +250 -39
- package/dist/{pi-embedded-C4Cb6hc3.js → pi-embedded-Dc3muKtS.js} +374 -163
- package/dist/{pi-embedded-helpers-B86ZS0eB.js → pi-embedded-helpers-B2z46qeM.js} +52 -52
- package/dist/{pi-embedded-helpers-UsrsQKwr.js → pi-embedded-helpers-CNPyv_ax.js} +1 -1
- package/dist/{pi-embedded-helpers-B2k8Fh9T.js → pi-embedded-helpers-DE9h5GAu.js} +1 -1
- package/dist/{pi-embedded-helpers-xjO9noTy.js → pi-embedded-helpers-lgx_U5KS.js} +5 -5
- package/dist/{pi-tools.policy-DKHZCIA2.js → pi-tools.policy-CIDBbw6x.js} +2 -2
- package/dist/{pi-tools.policy-CwzwRugl.js → pi-tools.policy-De00gPXt.js} +2 -2
- package/dist/{plugin-registry-DOEhQFQJ.js → plugin-registry-CuoX8mar.js} +2 -2
- package/dist/{plugin-registry-D0iAVBbj.js → plugin-registry-fxcvycGr.js} +2 -2
- package/dist/plugin-sdk/{audio-preflight-B8X7BvQ5.js → audio-preflight-DoQQKlxa.js} +5 -5
- package/dist/plugin-sdk/{channel-web-B92UQWLf.js → channel-web-CV1KLtZh.js} +7 -7
- package/dist/plugin-sdk/{chrome-DxJPopF7.js → chrome-C7c_0I5M.js} +1 -1
- package/dist/plugin-sdk/config/model-profiles-builtin.d.ts +9 -0
- package/dist/plugin-sdk/config/model-profiles.d.ts +56 -0
- package/dist/plugin-sdk/config/resolve-model-profile.d.ts +15 -0
- package/dist/plugin-sdk/config/types.models.d.ts +28 -0
- package/dist/plugin-sdk/config/zod-schema.core.d.ts +54 -0
- package/dist/plugin-sdk/config/zod-schema.d.ts +27 -0
- package/dist/plugin-sdk/{config-B0SemGqU.js → config-DDkdiUOR.js} +28 -0
- package/dist/plugin-sdk/{deliver-C51eaClJ.js → deliver-BUns_L9e.js} +2 -2
- package/dist/plugin-sdk/{image-VGrV0d09.js → image-BOYy0Ump.js} +2 -2
- package/dist/plugin-sdk/index.js +17 -17
- package/dist/plugin-sdk/{login-CG8p5_rW.js → login-Bh3DZPam.js} +2 -2
- package/dist/plugin-sdk/{login-qr-buvA9Dp8.js → login-qr-DbR7odSr.js} +2 -2
- package/dist/plugin-sdk/{outbound-LqNDFLO5.js → outbound-rF6G8Xpr.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-IkpqVZZa.js → pi-embedded-helpers-BveUP4hk.js} +5 -5
- package/dist/plugin-sdk/{pw-ai-CjPImm6b.js → pw-ai-DjGUsee-.js} +2 -2
- package/dist/plugin-sdk/{replies-BLMuwbVf.js → replies-fI39rPGa.js} +1 -1
- package/dist/plugin-sdk/{reply-BS99Apig.js → reply-C4mijdMZ.js} +246 -35
- package/dist/plugin-sdk/{runner-pmvwohi9.js → runner-BVqnEfNe.js} +2 -2
- package/dist/plugin-sdk/{send-D8Zs62CE.js → send-BHbXh8Ly.js} +1 -1
- package/dist/plugin-sdk/{send-DOXV-BQw.js → send-BMfJIhCk.js} +1 -1
- package/dist/plugin-sdk/{send-BinD92v_.js → send-BtANzsAo.js} +1 -1
- package/dist/plugin-sdk/{send-cUp3Bf9t.js → send-Bxdu6ZZy.js} +1 -1
- package/dist/plugin-sdk/{send-BOrHNGsc.js → send-D6LMZJ_h.js} +1 -1
- package/dist/plugin-sdk/{session-B0bWB4Wf.js → session-kI0tzViQ.js} +1 -1
- package/dist/plugin-sdk/{web-CF79DBe3.js → web-B17UUsjm.js} +17 -17
- package/dist/plugin-sdk/{whatsapp-actions-Bp33E4JW.js → whatsapp-actions-CcBzDuL-.js} +2 -2
- package/dist/{plugins-DQYI3Fr-.js → plugins-C4C9637U.js} +9 -9
- package/dist/{plugins-cli-6nKHKPj8.js → plugins-cli-4OqSGHp-.js} +26 -26
- package/dist/{plugins-cli-DU06_0f6.js → plugins-cli-BbE_Qnlk.js} +27 -27
- package/dist/{program-D1icw1T9.js → program-DkXOdfM2.js} +33 -33
- package/dist/{program-context-Bqybavvo.js → program-context-0bDxGpMx.js} +38 -38
- package/dist/{prompt-select-styled-DptZ40df.js → prompt-select-styled-DJkRn30j.js} +14 -14
- package/dist/{prompt-select-styled-Cj3jTVJJ.js → prompt-select-styled-_6KbTFXs.js} +14 -14
- package/dist/{provider-auth-helpers-CDnMFdFw.js → provider-auth-helpers-Bnkj4QXS.js} +2 -2
- package/dist/{provider-auth-helpers-BVSJctmE.js → provider-auth-helpers-BpVAdwK_.js} +2 -2
- package/dist/{push-apns-DtKC_-eP.js → push-apns-C0wMP1XU.js} +1 -1
- package/dist/{push-apns-CpUJIlI7.js → push-apns-EKnCwrqK.js} +1 -1
- package/dist/{pw-ai-DgDn1s1W.js → pw-ai-CbyO1fbh.js} +2 -2
- package/dist/{pw-ai-C2hGnRfL.js → pw-ai-De-KR9_s.js} +2 -2
- package/dist/{pw-ai-CsvxsEwI.js → pw-ai-DqL87js3.js} +2 -2
- package/dist/{pw-ai-BcniFyZm.js → pw-ai-PiQUncix.js} +11 -11
- package/dist/{qmd-manager-QHUP-_em.js → qmd-manager-DdZh9PHs.js} +7 -7
- package/dist/{qr-cli-Deyb-bdE.js → qr-cli-jd9LdZpq.js} +1 -1
- package/dist/{qr-cli-DvDQ233a.js → qr-cli-mgnfD5ce.js} +1 -1
- package/dist/{register.agent-DesQbi0N.js → register.agent-B0S1CJEx.js} +32 -32
- package/dist/{register.agent-DszKb7kT.js → register.agent-B48Vf_DK.js} +34 -34
- package/dist/{register.configure-CPZ2pkCL.js → register.configure-Drr3E9OG.js} +36 -36
- package/dist/{register.configure-CiHbtNBW.js → register.configure-Wyv7vb24.js} +37 -37
- package/dist/{register.maintenance-BBjwt-34.js → register.maintenance-Cmf17EW0.js} +34 -34
- package/dist/{register.maintenance-hUQ3a2-X.js → register.maintenance-TgjAQ4E0.js} +36 -36
- package/dist/{register.message-BZ_faykn.js → register.message-BcsPnPvW.js} +26 -26
- package/dist/{register.message-BJG43ey1.js → register.message-Dwv2puIB.js} +27 -27
- package/dist/{register.onboard-CtDGWgek.js → register.onboard-BDGaSyq2.js} +32 -32
- package/dist/{register.onboard-BuvppItf.js → register.onboard-C8w7_w93.js} +33 -33
- package/dist/{register.setup-09FZm-3U.js → register.setup-CMGSNKXS.js} +33 -33
- package/dist/{register.setup-CK_rXwht.js → register.setup-CiEuZOlI.js} +32 -32
- package/dist/{register.status-health-sessions-CYBXZfzw.js → register.status-health-sessions-C8p0uINc.js} +29 -29
- package/dist/{register.status-health-sessions-Dq1GhVZd.js → register.status-health-sessions-zKjmZyOs.js} +31 -31
- package/dist/{register.subclis-oaqsIg7c.js → register.subclis-CofZE_pt.js} +28 -28
- package/dist/{registry-CK4e9hn8.js → registry-DP24za6g.js} +17 -17
- package/dist/{replies-CVeSBasT.js → replies-DO80zq73.js} +1 -1
- package/dist/{replies-9jiCJtyj.js → replies-DpPvWiGF.js} +3 -3
- package/dist/{replies-Dfqu9AXG.js → replies-ZYtI9jr0.js} +1 -1
- package/dist/{replies-ByiY6ZyB.js → replies-vgss3_QA.js} +1 -1
- package/dist/{reply-BnAPNcvn.js → reply-SBi_U7P7.js} +258 -47
- package/dist/{reply-prefix-XlyuyChD.js → reply-prefix-CtL0omgM.js} +1 -1
- package/dist/{resolve-route-CZ-1eqw0.js → resolve-route-BVikmvWO.js} +4 -4
- package/dist/{retry-Cly39XZB.js → retry-dGG-MbxL.js} +1 -1
- package/dist/{routes-br_73dY_.js → routes-BFw2-yAN.js} +3 -3
- package/dist/{routes-BZCzIvY1.js → routes-Ba9CUQ8M.js} +3 -3
- package/dist/{rpc-CbirYKS1.js → rpc-BfhojW8g.js} +1 -1
- package/dist/{rpc-BsIk35AA.js → rpc-BjLadgzu.js} +1 -1
- package/dist/{run-main-g9-g4T_a.js → run-main-BJaDO3WW.js} +44 -44
- package/dist/{runner-BPcjrrjx.js → runner-BORIO-D3.js} +3 -3
- package/dist/{runner-M7hSmkG1.js → runner-CCSMfQee.js} +9 -9
- package/dist/{runner-Iw-AU75D.js → runner-CUglpiFP.js} +3 -3
- package/dist/{runner-DFFbD4Jj.js → runner-DUBExAb5.js} +2 -2
- package/dist/{sandbox-C9zB9HTn.js → sandbox-BFzSUT19.js} +5 -5
- package/dist/{sandbox-BnivFdOs.js → sandbox-C-T6hOMv.js} +5 -5
- package/dist/{sandbox-cli-6RGP0CNN.js → sandbox-cli-BllVdQzR.js} +6 -6
- package/dist/{sandbox-cli-Dl8IMlpe.js → sandbox-cli-Cj5__-gh.js} +6 -6
- package/dist/{security-cli-BHG6kV1z.js → security-cli-BFLtWWHy.js} +9 -9
- package/dist/{security-cli-CtgTAznE.js → security-cli-Dmb1k47A.js} +9 -9
- package/dist/{send-uxuOCFdA.js → send-BArQpbtx.js} +1 -1
- package/dist/{send-C1DE47RQ.js → send-C1IYd3g7.js} +1 -1
- package/dist/{send-CdxBNofn.js → send-C4Ucr8ep.js} +1 -1
- package/dist/{send-Z6uznj5j.js → send-CHEOWVc8.js} +6 -6
- package/dist/{send-DB2tDd9M.js → send-CPF8hSFp.js} +1 -1
- package/dist/{send-DKvfyTNM.js → send-CR5fRDgW.js} +1 -1
- package/dist/{send-CU_BDzc0.js → send-CXxQ_f7L.js} +1 -1
- package/dist/{send-CkYljROn.js → send-CY8oqBFg.js} +1 -1
- package/dist/{send-Bf-tLRDW.js → send-CZr1hVHY.js} +1 -1
- package/dist/{send-DP6zL1r4.js → send-CukP8Vq4.js} +1 -1
- package/dist/{send-DKB9atcf.js → send-Cutb0ZDY.js} +1 -1
- package/dist/{send-DoiQ-lVY.js → send-D-hWrHoH.js} +1 -1
- package/dist/{send-rirP23D6.js → send-DK_pm_7l.js} +1 -1
- package/dist/{send-Dv5K7btg.js → send-DTTtmhjA.js} +1 -1
- package/dist/{send-DUWSrao-.js → send-DXW6mdgR.js} +1 -1
- package/dist/{send-KhJZHqoK.js → send-DbcLJb0P.js} +7 -7
- package/dist/{send-B2c8xd6F.js → send-DeEosX8F.js} +18 -18
- package/dist/{send-Dp3_Z9LN.js → send-DwKJK3sM.js} +10 -10
- package/dist/{send-Bv3GF77o.js → send-tanEMpHN.js} +1 -1
- package/dist/{send-IjhsR55j.js → send-zSarozV2.js} +6 -6
- package/dist/{server-context-Bn72icrR.js → server-context-CEpFjqSk.js} +5 -5
- package/dist/{server-context-BogDcclm.js → server-context-H24IFajW.js} +5 -5
- package/dist/{server-methods-CYVVBHwG.js → server-methods-Cm6W01ne.js} +15 -15
- package/dist/{server-methods-1TVNg0k5.js → server-methods-CyFB3XQf.js} +16 -16
- package/dist/{server-node-events-CPTRFOMY.js → server-node-events-Bhgt3xLw.js} +26 -26
- package/dist/{server-node-events-Cvqw-9rw.js → server-node-events-CX1plxJz.js} +27 -27
- package/dist/{session-CRf_exZ0.js → session-Ckw7cXeP.js} +1 -1
- package/dist/{session-eZHBxAr-.js → session-DIBTkyvE.js} +1 -1
- package/dist/{session-BvpMfKh-.js → session-DV1MNlbV.js} +8 -8
- package/dist/{session-C4z7523K.js → session-DtMfLMdP.js} +1 -1
- package/dist/{session-utils-D5F7F--L.js → session-utils-Bka9dR4m.js} +3 -3
- package/dist/{sessions-Cb4Hj78H.js → sessions-CJXnZVjR.js} +1 -1
- package/dist/{sessions-B2cR2hug.js → sessions-DgYpBvse.js} +1 -1
- package/dist/{sessions-DHCZbuoQ.js → sessions-WBoXk-Ag.js} +3 -3
- package/dist/{shared-zPQArNFi.js → shared-D8K9MkWg.js} +1 -1
- package/dist/{shared-CxsYh_6Q.js → shared-Knv1hy6h.js} +1 -1
- package/dist/{skill-commands-BJMb_psG.js → skill-commands-D610IKhm.js} +9 -9
- package/dist/{skills-cli-urhcJuu8.js → skills-cli-BZTBLQTt.js} +1 -1
- package/dist/{skills-cli-XmXhTH3z.js → skills-cli-CkTGL9dR.js} +1 -1
- package/dist/{skills-BFekKL7i.js → skills-o5WVqM4V.js} +21 -21
- package/dist/{sqlite-DRbx2dhW.js → sqlite-6H6Zw1cs.js} +4 -4
- package/dist/{status-B7VIwi53.js → status-BBpD_1pG.js} +10 -10
- package/dist/{status-CDpLvmFd.js → status-BdmYV3_x.js} +2 -2
- package/dist/{status-CCrlpUEA.js → status-CwXg8OO1.js} +9 -9
- package/dist/{status-BS3y9HjF.js → status-U_1mE-yc.js} +2 -2
- package/dist/{status.update-D8lzj5TK.js → status.update-DbmZz0Aq.js} +1 -1
- package/dist/{status.update-Cu6R3wwz.js → status.update-DtwCUTf-.js} +1 -1
- package/dist/{store-C0wvOkae.js → store-vVE6N2mH.js} +2 -2
- package/dist/{subagent-registry-BSgPGZxs.js → subagent-registry-Du9P0G2U.js} +259 -48
- package/dist/{subsystem-Bs9YvKLa.js → subsystem-DgpxyDQ_.js} +1 -1
- package/dist/{system-cli-BXvpbG10.js → system-cli-D_EIZpBm.js} +3 -3
- package/dist/{system-cli-CD1cvYkc.js → system-cli-UMsMEurS.js} +3 -3
- package/dist/{systemd-hints-Cn-fd1AF.js → systemd-hints-BR6gChwm.js} +1 -1
- package/dist/{systemd-hints-BMl55p2_.js → systemd-hints-sQipWGd1.js} +1 -1
- package/dist/{tables-DuZspiBu.js → tables-BIWsCKXJ.js} +1 -1
- package/dist/{target-errors-Be1SwYlW.js → target-errors-DyItGyW9.js} +2 -2
- package/dist/{thinking-CdlENGRW.js → thinking-Ni0HF-w6.js} +5 -5
- package/dist/{tokens-H1H1LiSQ.js → tokens-c_SLAkVb.js} +1 -1
- package/dist/{tool-images-DXB7tqWi.js → tool-images-DBCfXdli.js} +2 -2
- package/dist/{tool-loop-detection-Cs8_HCsx.js → tool-loop-detection-Bbc9OPFR.js} +3 -3
- package/dist/{tui-OUhw8eT1.js → tui-BJB80muc.js} +4 -4
- package/dist/{tui-DJefgPwz.js → tui-CriznorL.js} +4 -4
- package/dist/{tui-cli-_ohekmDR.js → tui-cli-C7Q9lK8Q.js} +9 -9
- package/dist/{tui-cli-C-CoSVeQ.js → tui-cli-CSIdfCTR.js} +9 -9
- package/dist/{update-cli-DL3Tb3b0.js → update-cli-DJzF_9UX.js} +37 -37
- package/dist/{update-cli-C8sM6pAA.js → update-cli-_45TJ3hZ.js} +39 -39
- package/dist/{update-runner-ChoWv-od.js → update-runner-8Ac4bJ1w.js} +1 -1
- package/dist/{update-runner-Dm7EwGFW.js → update-runner-BSQFv9b6.js} +1 -1
- package/dist/{web-sQrQA6or.js → web-BZSI7b07.js} +29 -29
- package/dist/{web-0w8t_r2B.js → web-BqRsq6mP.js} +57 -57
- package/dist/{web-UEqiaso9.js → web-C1Zn8_qW.js} +16 -16
- package/dist/{web-VbydcdAk.js → web-w-vV1rCZ.js} +29 -29
- package/dist/{webhooks-cli-B8gdUXw-.js → webhooks-cli-ChiCyIaD.js} +1 -1
- package/dist/{webhooks-cli-DpiLQ_-A.js → webhooks-cli-cD58DWAE.js} +1 -1
- package/dist/{whatsapp-actions-DrReF5st.js → whatsapp-actions-C8nNH4ax.js} +2 -2
- package/dist/{whatsapp-actions-xolxich-.js → whatsapp-actions-DbcsdOH3.js} +2 -2
- package/dist/{whatsapp-actions-D_KIOhRu.js → whatsapp-actions-DvhI5-DC.js} +2 -2
- package/dist/{whatsapp-actions-BVZaCecm.js → whatsapp-actions-oRQjcdQe.js} +23 -23
- package/dist/{with-timeout-vknUanNX.js → with-timeout-Di0nddLY.js} +1 -1
- package/dist/{with-timeout-DIHZxCIl.js → with-timeout-gmK6RciS.js} +1 -1
- package/dist/{workspace-wAaHI8-5.js → workspace-CbvamIU6.js} +6 -6
- package/docs/reference/templates/CONFIG-SCHEMA.md +173 -0
- package/docs/reference/templates/SYMICORE.md +24 -0
- package/package.json +1 -1
|
@@ -1,75 +1,75 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { c as expandHomePrefix, i as resolveGatewayPort, n as resolveConfigPath, s as resolveStateDir, t as STATE_DIR, u as resolveRequiredHomeDir } from "./paths-
|
|
2
|
+
import { c as expandHomePrefix, i as resolveGatewayPort, n as resolveConfigPath, s as resolveStateDir, t as STATE_DIR, u as resolveRequiredHomeDir } from "./paths-CySxpNhH.js";
|
|
3
3
|
import { _ as isCronSessionKey, b as resolveThreadParentSessionKey, c as normalizeMainKey, d as sanitizeAgentId, f as DEFAULT_ACCOUNT_ID, g as isAcpSessionKey, h as getSubagentDepth, l as resolveAgentIdFromSessionKey, o as classifySessionKeyShape, p as normalizeAccountId$2, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, u as resolveThreadSessionKeys, v as isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-BCzIW1Y2.js";
|
|
4
|
-
import { $ as warn, B as sleep$1, D as escapeRegExp, E as ensureDir$3, G as danger, I as resolveUserPath, J as logVerbose, M as normalizeE164, O as formatTerminalLink, R as shortenHomeInString, S as CONFIG_DIR, U as truncateUtf16Safe, V as sliceUtf16Safe, W as isPlainObject, X as setVerbose, Z as shouldLogVerbose, _ as matchPluginCommand, a as normalizeAnyChannelId, d as createPluginRegistry, dt as resolvePreferredSymiTmpDir, et as colorize, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, k as isRecord$1, l as requireActivePluginRegistry, lt as normalizeLogLevel, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, nt as theme, o as normalizeChannelId, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, rt as getChildLogger, tt as isRich, u as setActivePluginRegistry, v as createInternalHookEvent, w as clampInt, x as triggerInternalHook, z as shortenHomePath } from "./registry-
|
|
5
|
-
import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, d as resolveSessionAgentIds, i as resolveAgentModelFallbacksOverride, l as resolveEffectiveModelFallbacks, n as resolveAgentConfig, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId } from "./agent-scope-
|
|
6
|
-
import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-
|
|
7
|
-
import { S as logWarn, _ as runExec, b as logError, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, i as DEFAULT_IDENTITY_FILENAME, l as ensureAgentWorkspace, m as resolveSymiPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as logInfo, y as logDebug } from "./workspace-
|
|
8
|
-
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-
|
|
9
|
-
import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTelegramAccountIds, d as resolveSlackAccount, g as listEnabledDiscordAccounts, h as createDiscordActionGate, i as isWhatsAppGroupJid, l as resolveTelegramAccount, m as resolveSlackBotToken, n as listChannelPlugins, o as createTelegramActionGate, p as resolveSlackAppToken, r as normalizeChannelId$1, s as listEnabledTelegramAccounts, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeDiscordToken } from "./plugins-
|
|
10
|
-
import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-
|
|
4
|
+
import { $ as warn, B as sleep$1, D as escapeRegExp, E as ensureDir$3, G as danger, I as resolveUserPath, J as logVerbose, M as normalizeE164, O as formatTerminalLink, R as shortenHomeInString, S as CONFIG_DIR, U as truncateUtf16Safe, V as sliceUtf16Safe, W as isPlainObject, X as setVerbose, Z as shouldLogVerbose, _ as matchPluginCommand, a as normalizeAnyChannelId, d as createPluginRegistry, dt as resolvePreferredSymiTmpDir, et as colorize, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, k as isRecord$1, l as requireActivePluginRegistry, lt as normalizeLogLevel, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, nt as theme, o as normalizeChannelId, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, rt as getChildLogger, tt as isRich, u as setActivePluginRegistry, v as createInternalHookEvent, w as clampInt, x as triggerInternalHook, z as shortenHomePath } from "./registry-DP24za6g.js";
|
|
5
|
+
import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, d as resolveSessionAgentIds, i as resolveAgentModelFallbacksOverride, l as resolveEffectiveModelFallbacks, n as resolveAgentConfig, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId } from "./agent-scope-Bw1Ed8W9.js";
|
|
6
|
+
import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-DgpxyDQ_.js";
|
|
7
|
+
import { S as logWarn, _ as runExec, b as logError, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, i as DEFAULT_IDENTITY_FILENAME, l as ensureAgentWorkspace, m as resolveSymiPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as logInfo, y as logDebug } from "./workspace-CbvamIU6.js";
|
|
8
|
+
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-c_SLAkVb.js";
|
|
9
|
+
import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTelegramAccountIds, d as resolveSlackAccount, g as listEnabledDiscordAccounts, h as createDiscordActionGate, i as isWhatsAppGroupJid, l as resolveTelegramAccount, m as resolveSlackBotToken, n as listChannelPlugins, o as createTelegramActionGate, p as resolveSlackAppToken, r as normalizeChannelId$1, s as listEnabledTelegramAccounts, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeDiscordToken } from "./plugins-C4C9637U.js";
|
|
10
|
+
import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-CI6zQTJj.js";
|
|
11
11
|
import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
|
|
12
12
|
import { t as parseBooleanValue$1 } from "./boolean-B8-BqKGQ.js";
|
|
13
|
-
import { n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-
|
|
14
|
-
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-
|
|
15
|
-
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-
|
|
16
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-
|
|
17
|
-
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-
|
|
13
|
+
import { n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-UKHV-j0K.js";
|
|
14
|
+
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-CHEOWVc8.js";
|
|
15
|
+
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-DwKJK3sM.js";
|
|
16
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-BmPK91JP.js";
|
|
17
|
+
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-C3nsWaw3.js";
|
|
18
18
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Bxo4UHOL.js";
|
|
19
|
-
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-
|
|
20
|
-
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-
|
|
21
|
-
import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-
|
|
22
|
-
import { A as normalizeProviderId, C as buildAllowedModelSet, D as isCliProvider, E as findNormalizedProviderValue, F as resolveSubagentSpawnModelSelection, G as DEFAULT_MODEL, H as OLLAMA_NATIVE_BASE_URL, I as resolveThinkingDefault, J as normalizeSecretInput, K as DEFAULT_PROVIDER, M as resolveConfiguredModelRef, N as resolveDefaultModelForAgent, O as modelKey, P as resolveModelRefFromString, T as buildModelAliasIndex, U as createOllamaStreamFn, W as DEFAULT_CONTEXT_TOKENS, Y as getShellPathFromLoginShell, Z as resolveShellEnvFallbackTimeoutMs, _ as ensureAuthProfileStore, a as resolveEnvApiKey, b as withFileLock, c as resolveAuthProfileOrder, d as markAuthProfileFailure, f as markAuthProfileUsed, g as markAuthProfileGood, h as listProfilesForProvider, i as resolveApiKeyForProvider, k as normalizeModelRef$2, l as getSoonestCooldownExpiry, m as dedupeProfileIds, n as getCustomProviderApiKey, o as resolveModelAuthMode, p as resolveApiKeyForProfile, q as resolveAuthProfileDisplayLabel, r as requireApiKey, t as getApiKeyForModel, u as isProfileInCooldown, v as resolveAuthStorePathForDisplay, w as buildConfiguredAllowlistKeys, y as resolveSymiAgentDir } from "./model-auth-
|
|
23
|
-
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-
|
|
19
|
+
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-ChTFYj8Q.js";
|
|
20
|
+
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-DeEosX8F.js";
|
|
21
|
+
import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-S8-8dAhx.js";
|
|
22
|
+
import { A as normalizeProviderId, C as buildAllowedModelSet, D as isCliProvider, E as findNormalizedProviderValue, F as resolveSubagentSpawnModelSelection, G as DEFAULT_MODEL, H as OLLAMA_NATIVE_BASE_URL, I as resolveThinkingDefault, J as normalizeSecretInput, K as DEFAULT_PROVIDER, M as resolveConfiguredModelRef, N as resolveDefaultModelForAgent, O as modelKey, P as resolveModelRefFromString, T as buildModelAliasIndex, U as createOllamaStreamFn, W as DEFAULT_CONTEXT_TOKENS, Y as getShellPathFromLoginShell, Z as resolveShellEnvFallbackTimeoutMs, _ as ensureAuthProfileStore, a as resolveEnvApiKey, b as withFileLock, c as resolveAuthProfileOrder, d as markAuthProfileFailure, f as markAuthProfileUsed, g as markAuthProfileGood, h as listProfilesForProvider, i as resolveApiKeyForProvider, k as normalizeModelRef$2, l as getSoonestCooldownExpiry, m as dedupeProfileIds, n as getCustomProviderApiKey, o as resolveModelAuthMode, p as resolveApiKeyForProfile, q as resolveAuthProfileDisplayLabel, r as requireApiKey, t as getApiKeyForModel, u as isProfileInCooldown, v as resolveAuthStorePathForDisplay, w as buildConfiguredAllowlistKeys, y as resolveSymiAgentDir } from "./model-auth-CwOuTuXl.js";
|
|
23
|
+
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-DJqsJ2-r.js";
|
|
24
24
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
|
|
25
|
-
import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-
|
|
26
|
-
import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-
|
|
27
|
-
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-
|
|
28
|
-
import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-
|
|
29
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
30
|
-
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-
|
|
25
|
+
import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-DbsRltF2.js";
|
|
26
|
+
import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-B2z46qeM.js";
|
|
27
|
+
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-eEaJddXj.js";
|
|
28
|
+
import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-CneMHk0N.js";
|
|
29
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-w3SLcQJF.js";
|
|
30
|
+
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-o5WVqM4V.js";
|
|
31
31
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-BoQgnc8X.js";
|
|
32
32
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-BTMDZjHT.js";
|
|
33
|
-
import { n as getMediaDir, r as saveMediaBuffer } from "./store-
|
|
34
|
-
import { _ as normalizeAtHashSlug, a as normalizeReasoningLevel, b as normalizeStringEntriesLower, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as resolveChannelGroupToolsPolicy, h as resolveChannelGroupRequireMention, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupPolicy, n as formatXHighModelHint, o as normalizeThinkLevel, p as normalizeSignalMessagingTarget, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeHyphenSlug, y as normalizeStringEntries } from "./thinking-
|
|
33
|
+
import { n as getMediaDir, r as saveMediaBuffer } from "./store-vVE6N2mH.js";
|
|
34
|
+
import { _ as normalizeAtHashSlug, a as normalizeReasoningLevel, b as normalizeStringEntriesLower, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as resolveChannelGroupToolsPolicy, h as resolveChannelGroupRequireMention, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupPolicy, n as formatXHighModelHint, o as normalizeThinkLevel, p as normalizeSignalMessagingTarget, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeHyphenSlug, y as normalizeStringEntries } from "./thinking-Ni0HF-w6.js";
|
|
35
35
|
import { n as resolveConversationLabel } from "./conversation-label-DXUkoKcB.js";
|
|
36
|
-
import { t as resolveIMessageAccount } from "./accounts-
|
|
37
|
-
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-
|
|
36
|
+
import { t as resolveIMessageAccount } from "./accounts-CJR8j_Kq.js";
|
|
37
|
+
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-Cb87-LzP.js";
|
|
38
38
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-DDYvbmRV.js";
|
|
39
|
-
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-
|
|
40
|
-
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-
|
|
41
|
-
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-
|
|
42
|
-
import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-
|
|
43
|
-
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-
|
|
44
|
-
import { n as retryAsync } from "./retry-
|
|
45
|
-
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-
|
|
46
|
-
import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-
|
|
47
|
-
import { n as resolveMarkdownTableMode } from "./markdown-tables-
|
|
39
|
+
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-DBCfXdli.js";
|
|
40
|
+
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-rZ4x9VS9.js";
|
|
41
|
+
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CtL0omgM.js";
|
|
42
|
+
import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-BoLr3xR_.js";
|
|
43
|
+
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-6H6Zw1cs.js";
|
|
44
|
+
import { n as retryAsync } from "./retry-dGG-MbxL.js";
|
|
45
|
+
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-DyItGyW9.js";
|
|
46
|
+
import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-ClbN9Pqy.js";
|
|
47
|
+
import { n as resolveMarkdownTableMode } from "./markdown-tables-DSHvnTLx.js";
|
|
48
48
|
import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-DL3f_O53.js";
|
|
49
|
-
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-
|
|
50
|
-
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-
|
|
51
|
-
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-
|
|
52
|
-
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-
|
|
49
|
+
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-C7OCYACU.js";
|
|
50
|
+
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-CbFUkv_T.js";
|
|
51
|
+
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-VSmULp-g.js";
|
|
52
|
+
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-D610IKhm.js";
|
|
53
53
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-BlHX0H3E.js";
|
|
54
|
-
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-
|
|
54
|
+
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-CCSMfQee.js";
|
|
55
55
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-Bso4i15F.js";
|
|
56
56
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-Bup9wS1y.js";
|
|
57
|
-
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-
|
|
57
|
+
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-C9-gaquj.js";
|
|
58
58
|
import { n as normalizePollInput } from "./polls-CCuCaqgv.js";
|
|
59
|
-
import { t as convertMarkdownTables } from "./tables-
|
|
60
|
-
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-
|
|
61
|
-
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-
|
|
62
|
-
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-
|
|
59
|
+
import { t as convertMarkdownTables } from "./tables-BIWsCKXJ.js";
|
|
60
|
+
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-zSarozV2.js";
|
|
61
|
+
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-DbcLJb0P.js";
|
|
62
|
+
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BVikmvWO.js";
|
|
63
63
|
import { t as makeProxyFetch } from "./proxy-CBJ1upuz.js";
|
|
64
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
65
|
-
import { t as getActiveWebListener } from "./active-listener-
|
|
64
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-DpPvWiGF.js";
|
|
65
|
+
import { t as getActiveWebListener } from "./active-listener-D6sXIjAg.js";
|
|
66
66
|
import { createRequire } from "node:module";
|
|
67
|
-
import * as fs$
|
|
67
|
+
import * as fs$1 from "node:fs/promises";
|
|
68
68
|
import fs from "node:fs/promises";
|
|
69
69
|
import os, { homedir } from "node:os";
|
|
70
70
|
import * as path$1 from "node:path";
|
|
71
71
|
import path from "node:path";
|
|
72
|
-
import
|
|
72
|
+
import fsSync, { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
|
|
73
73
|
import JSON5 from "json5";
|
|
74
74
|
import { execFile, execFileSync, spawn, spawnSync } from "node:child_process";
|
|
75
75
|
import { inspect, promisify } from "node:util";
|
|
@@ -3144,7 +3144,7 @@ async function resolveSymiDocsPath(params) {
|
|
|
3144
3144
|
const workspaceDir = params.workspaceDir?.trim();
|
|
3145
3145
|
if (workspaceDir) {
|
|
3146
3146
|
const workspaceDocs = path.join(workspaceDir, "docs");
|
|
3147
|
-
if (
|
|
3147
|
+
if (fsSync.existsSync(workspaceDocs)) return workspaceDocs;
|
|
3148
3148
|
}
|
|
3149
3149
|
const packageRoot = await resolveSymiPackageRoot({
|
|
3150
3150
|
cwd: params.cwd,
|
|
@@ -3153,7 +3153,7 @@ async function resolveSymiDocsPath(params) {
|
|
|
3153
3153
|
});
|
|
3154
3154
|
if (!packageRoot) return null;
|
|
3155
3155
|
const packageDocs = path.join(packageRoot, "docs");
|
|
3156
|
-
return
|
|
3156
|
+
return fsSync.existsSync(packageDocs) ? packageDocs : null;
|
|
3157
3157
|
}
|
|
3158
3158
|
|
|
3159
3159
|
//#endregion
|
|
@@ -3462,7 +3462,7 @@ async function getMemorySearchManager(params) {
|
|
|
3462
3462
|
if (cached) return { manager: cached };
|
|
3463
3463
|
}
|
|
3464
3464
|
try {
|
|
3465
|
-
const { QmdMemoryManager } = await import("./qmd-manager-
|
|
3465
|
+
const { QmdMemoryManager } = await import("./qmd-manager-DdZh9PHs.js");
|
|
3466
3466
|
const primary = await QmdMemoryManager.create({
|
|
3467
3467
|
cfg: params.cfg,
|
|
3468
3468
|
agentId: params.agentId,
|
|
@@ -3474,7 +3474,7 @@ async function getMemorySearchManager(params) {
|
|
|
3474
3474
|
const wrapper = new FallbackMemoryManager({
|
|
3475
3475
|
primary,
|
|
3476
3476
|
fallbackFactory: async () => {
|
|
3477
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3477
|
+
const { MemoryIndexManager } = await import("./manager-BoLr3xR_.js").then((n) => n.t);
|
|
3478
3478
|
return await MemoryIndexManager.get(params);
|
|
3479
3479
|
}
|
|
3480
3480
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -3487,7 +3487,7 @@ async function getMemorySearchManager(params) {
|
|
|
3487
3487
|
}
|
|
3488
3488
|
}
|
|
3489
3489
|
try {
|
|
3490
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3490
|
+
const { MemoryIndexManager } = await import("./manager-BoLr3xR_.js").then((n) => n.t);
|
|
3491
3491
|
return { manager: await MemoryIndexManager.get(params) };
|
|
3492
3492
|
} catch (err) {
|
|
3493
3493
|
return {
|
|
@@ -4175,7 +4175,7 @@ function resolveDefaultIdentityPath() {
|
|
|
4175
4175
|
return path.join(resolveStateDir(), "identity", "device.json");
|
|
4176
4176
|
}
|
|
4177
4177
|
function ensureDir$2(filePath) {
|
|
4178
|
-
|
|
4178
|
+
fsSync.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
4179
4179
|
}
|
|
4180
4180
|
const ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
|
|
4181
4181
|
function base64UrlEncode(buf) {
|
|
@@ -4211,8 +4211,8 @@ function generateIdentity() {
|
|
|
4211
4211
|
}
|
|
4212
4212
|
function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
|
|
4213
4213
|
try {
|
|
4214
|
-
if (
|
|
4215
|
-
const raw =
|
|
4214
|
+
if (fsSync.existsSync(filePath)) {
|
|
4215
|
+
const raw = fsSync.readFileSync(filePath, "utf8");
|
|
4216
4216
|
const parsed = JSON.parse(raw);
|
|
4217
4217
|
if (parsed?.version === 1 && typeof parsed.deviceId === "string" && typeof parsed.publicKeyPem === "string" && typeof parsed.privateKeyPem === "string") {
|
|
4218
4218
|
const derivedId = fingerprintPublicKey(parsed.publicKeyPem);
|
|
@@ -4221,9 +4221,9 @@ function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
|
|
|
4221
4221
|
...parsed,
|
|
4222
4222
|
deviceId: derivedId
|
|
4223
4223
|
};
|
|
4224
|
-
|
|
4224
|
+
fsSync.writeFileSync(filePath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 384 });
|
|
4225
4225
|
try {
|
|
4226
|
-
|
|
4226
|
+
fsSync.chmodSync(filePath, 384);
|
|
4227
4227
|
} catch {}
|
|
4228
4228
|
return {
|
|
4229
4229
|
deviceId: derivedId,
|
|
@@ -4248,9 +4248,9 @@ function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
|
|
|
4248
4248
|
privateKeyPem: identity.privateKeyPem,
|
|
4249
4249
|
createdAtMs: Date.now()
|
|
4250
4250
|
};
|
|
4251
|
-
|
|
4251
|
+
fsSync.writeFileSync(filePath, `${JSON.stringify(stored, null, 2)}\n`, { mode: 384 });
|
|
4252
4252
|
try {
|
|
4253
|
-
|
|
4253
|
+
fsSync.chmodSync(filePath, 384);
|
|
4254
4254
|
} catch {}
|
|
4255
4255
|
return identity;
|
|
4256
4256
|
}
|
|
@@ -4400,8 +4400,8 @@ function resolveDeviceAuthPath(env = process.env) {
|
|
|
4400
4400
|
}
|
|
4401
4401
|
function readStore(filePath) {
|
|
4402
4402
|
try {
|
|
4403
|
-
if (!
|
|
4404
|
-
const raw =
|
|
4403
|
+
if (!fsSync.existsSync(filePath)) return null;
|
|
4404
|
+
const raw = fsSync.readFileSync(filePath, "utf8");
|
|
4405
4405
|
const parsed = JSON.parse(raw);
|
|
4406
4406
|
if (parsed?.version !== 1 || typeof parsed.deviceId !== "string") return null;
|
|
4407
4407
|
if (!parsed.tokens || typeof parsed.tokens !== "object") return null;
|
|
@@ -4411,10 +4411,10 @@ function readStore(filePath) {
|
|
|
4411
4411
|
}
|
|
4412
4412
|
}
|
|
4413
4413
|
function writeStore(filePath, store) {
|
|
4414
|
-
|
|
4415
|
-
|
|
4414
|
+
fsSync.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
4415
|
+
fsSync.writeFileSync(filePath, `${JSON.stringify(store, null, 2)}\n`, { mode: 384 });
|
|
4416
4416
|
try {
|
|
4417
|
-
|
|
4417
|
+
fsSync.chmodSync(filePath, 384);
|
|
4418
4418
|
} catch {}
|
|
4419
4419
|
}
|
|
4420
4420
|
function loadDeviceAuthToken(params) {
|
|
@@ -7201,7 +7201,7 @@ async function routeReply(params) {
|
|
|
7201
7201
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
7202
7202
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
7203
7203
|
try {
|
|
7204
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
7204
|
+
const { deliverOutboundPayloads } = await import("./deliver-BmPK91JP.js").then((n) => n.n);
|
|
7205
7205
|
return {
|
|
7206
7206
|
ok: true,
|
|
7207
7207
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -7597,7 +7597,7 @@ function normalizeSessionKey(value) {
|
|
|
7597
7597
|
}
|
|
7598
7598
|
function readSessionStore(storePath) {
|
|
7599
7599
|
try {
|
|
7600
|
-
const raw =
|
|
7600
|
+
const raw = fsSync.readFileSync(storePath, "utf-8");
|
|
7601
7601
|
const parsed = JSON5.parse(raw);
|
|
7602
7602
|
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
|
|
7603
7603
|
} catch {}
|
|
@@ -12656,7 +12656,7 @@ async function createModelSelectionState(params) {
|
|
|
12656
12656
|
}
|
|
12657
12657
|
}
|
|
12658
12658
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
12659
|
-
const { ensureAuthProfileStore } = await import("./model-auth-
|
|
12659
|
+
const { ensureAuthProfileStore } = await import("./model-auth-CwOuTuXl.js").then((n) => n.s);
|
|
12660
12660
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
12661
12661
|
const providerKey = normalizeProviderId(provider);
|
|
12662
12662
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -15029,8 +15029,8 @@ const DEFAULT_SAFE_BINS = [
|
|
|
15029
15029
|
];
|
|
15030
15030
|
function isExecutableFile(filePath) {
|
|
15031
15031
|
try {
|
|
15032
|
-
if (!
|
|
15033
|
-
if (process.platform !== "win32")
|
|
15032
|
+
if (!fsSync.statSync(filePath).isFile()) return false;
|
|
15033
|
+
if (process.platform !== "win32") fsSync.accessSync(filePath, fsSync.constants.X_OK);
|
|
15034
15034
|
return true;
|
|
15035
15035
|
} catch {
|
|
15036
15036
|
return false;
|
|
@@ -15068,7 +15068,7 @@ function normalizeMatchTarget(value) {
|
|
|
15068
15068
|
}
|
|
15069
15069
|
function tryRealpath(value) {
|
|
15070
15070
|
try {
|
|
15071
|
-
return
|
|
15071
|
+
return fsSync.realpathSync(value);
|
|
15072
15072
|
} catch {
|
|
15073
15073
|
return null;
|
|
15074
15074
|
}
|
|
@@ -16300,7 +16300,7 @@ function mergeLegacyAgent(current, legacy) {
|
|
|
16300
16300
|
}
|
|
16301
16301
|
function ensureDir$1(filePath) {
|
|
16302
16302
|
const dir = path.dirname(filePath);
|
|
16303
|
-
|
|
16303
|
+
fsSync.mkdirSync(dir, { recursive: true });
|
|
16304
16304
|
}
|
|
16305
16305
|
function coerceAllowlistEntries(allowlist) {
|
|
16306
16306
|
if (!Array.isArray(allowlist) || allowlist.length === 0) return Array.isArray(allowlist) ? allowlist : void 0;
|
|
@@ -16370,11 +16370,11 @@ function generateToken() {
|
|
|
16370
16370
|
function loadExecApprovals() {
|
|
16371
16371
|
const filePath = resolveExecApprovalsPath();
|
|
16372
16372
|
try {
|
|
16373
|
-
if (!
|
|
16373
|
+
if (!fsSync.existsSync(filePath)) return normalizeExecApprovals({
|
|
16374
16374
|
version: 1,
|
|
16375
16375
|
agents: {}
|
|
16376
16376
|
});
|
|
16377
|
-
const raw =
|
|
16377
|
+
const raw = fsSync.readFileSync(filePath, "utf8");
|
|
16378
16378
|
const parsed = JSON.parse(raw);
|
|
16379
16379
|
if (parsed?.version !== 1) return normalizeExecApprovals({
|
|
16380
16380
|
version: 1,
|
|
@@ -16391,9 +16391,9 @@ function loadExecApprovals() {
|
|
|
16391
16391
|
function saveExecApprovals(file) {
|
|
16392
16392
|
const filePath = resolveExecApprovalsPath();
|
|
16393
16393
|
ensureDir$1(filePath);
|
|
16394
|
-
|
|
16394
|
+
fsSync.writeFileSync(filePath, `${JSON.stringify(file, null, 2)}\n`, { mode: 384 });
|
|
16395
16395
|
try {
|
|
16396
|
-
|
|
16396
|
+
fsSync.chmodSync(filePath, 384);
|
|
16397
16397
|
} catch {}
|
|
16398
16398
|
}
|
|
16399
16399
|
function ensureExecApprovals() {
|
|
@@ -16714,7 +16714,7 @@ function resolvePowerShellPath() {
|
|
|
16714
16714
|
const systemRoot = process.env.SystemRoot || process.env.WINDIR;
|
|
16715
16715
|
if (systemRoot) {
|
|
16716
16716
|
const candidate = path.join(systemRoot, "System32", "WindowsPowerShell", "v1.0", "powershell.exe");
|
|
16717
|
-
if (
|
|
16717
|
+
if (fsSync.existsSync(candidate)) return candidate;
|
|
16718
16718
|
}
|
|
16719
16719
|
return "powershell.exe";
|
|
16720
16720
|
}
|
|
@@ -16752,7 +16752,7 @@ function resolveShellFromPath(name) {
|
|
|
16752
16752
|
for (const entry of entries) {
|
|
16753
16753
|
const candidate = path.join(entry, name);
|
|
16754
16754
|
try {
|
|
16755
|
-
|
|
16755
|
+
fsSync.accessSync(candidate, fsSync.constants.X_OK);
|
|
16756
16756
|
return candidate;
|
|
16757
16757
|
} catch {}
|
|
16758
16758
|
}
|
|
@@ -19864,7 +19864,7 @@ function walkUpFrom(startDir, opts, resolveAtDir) {
|
|
|
19864
19864
|
function hasGitMarker(repoRoot) {
|
|
19865
19865
|
const gitPath = path.join(repoRoot, ".git");
|
|
19866
19866
|
try {
|
|
19867
|
-
const stat =
|
|
19867
|
+
const stat = fsSync.statSync(gitPath);
|
|
19868
19868
|
return stat.isDirectory() || stat.isFile();
|
|
19869
19869
|
} catch {
|
|
19870
19870
|
return false;
|
|
@@ -19876,10 +19876,10 @@ function findGitRoot(startDir, opts = {}) {
|
|
|
19876
19876
|
function resolveGitDirFromMarker(repoRoot) {
|
|
19877
19877
|
const gitPath = path.join(repoRoot, ".git");
|
|
19878
19878
|
try {
|
|
19879
|
-
const stat =
|
|
19879
|
+
const stat = fsSync.statSync(gitPath);
|
|
19880
19880
|
if (stat.isDirectory()) return gitPath;
|
|
19881
19881
|
if (!stat.isFile()) return null;
|
|
19882
|
-
const match =
|
|
19882
|
+
const match = fsSync.readFileSync(gitPath, "utf-8").match(/gitdir:\s*(.+)/i);
|
|
19883
19883
|
if (!match?.[1]) return null;
|
|
19884
19884
|
return path.resolve(repoRoot, match[1].trim());
|
|
19885
19885
|
} catch {
|
|
@@ -19946,7 +19946,7 @@ const resolveCommitHash = (options = {}) => {
|
|
|
19946
19946
|
cachedCommit = null;
|
|
19947
19947
|
return cachedCommit;
|
|
19948
19948
|
}
|
|
19949
|
-
const head =
|
|
19949
|
+
const head = fsSync.readFileSync(headPath, "utf-8").trim();
|
|
19950
19950
|
if (!head) {
|
|
19951
19951
|
cachedCommit = null;
|
|
19952
19952
|
return cachedCommit;
|
|
@@ -19954,7 +19954,7 @@ const resolveCommitHash = (options = {}) => {
|
|
|
19954
19954
|
if (head.startsWith("ref:")) {
|
|
19955
19955
|
const ref = head.replace(/^ref:\s*/i, "").trim();
|
|
19956
19956
|
const refPath = path.resolve(path.dirname(headPath), ref);
|
|
19957
|
-
cachedCommit = formatCommit(
|
|
19957
|
+
cachedCommit = formatCommit(fsSync.readFileSync(refPath, "utf-8").trim());
|
|
19958
19958
|
return cachedCommit;
|
|
19959
19959
|
}
|
|
19960
19960
|
cachedCommit = formatCommit(head);
|
|
@@ -20158,9 +20158,9 @@ const readUsageFromSessionLog = (sessionId, sessionEntry, agentId, sessionKey, s
|
|
|
20158
20158
|
} catch {
|
|
20159
20159
|
return;
|
|
20160
20160
|
}
|
|
20161
|
-
if (!
|
|
20161
|
+
if (!fsSync.existsSync(logPath)) return;
|
|
20162
20162
|
try {
|
|
20163
|
-
const lines =
|
|
20163
|
+
const lines = fsSync.readFileSync(logPath, "utf-8").split(/\n+/);
|
|
20164
20164
|
let input = 0;
|
|
20165
20165
|
let output = 0;
|
|
20166
20166
|
let promptTokens = 0;
|
|
@@ -21400,7 +21400,7 @@ function resolveRepoRoot(params) {
|
|
|
21400
21400
|
const configured = params.config?.agents?.defaults?.repoRoot?.trim();
|
|
21401
21401
|
if (configured) try {
|
|
21402
21402
|
const resolved = path.resolve(configured);
|
|
21403
|
-
if (
|
|
21403
|
+
if (fsSync.statSync(resolved).isDirectory()) return resolved;
|
|
21404
21404
|
} catch {}
|
|
21405
21405
|
const candidates = [params.workspaceDir, params.cwd].map((value) => value?.trim()).filter(Boolean);
|
|
21406
21406
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -22243,7 +22243,7 @@ async function buildContextReply(params) {
|
|
|
22243
22243
|
//#region src/auto-reply/reply/commands-export-session.ts
|
|
22244
22244
|
const EXPORT_HTML_DIR = path.join(path.dirname(fileURLToPath(import.meta.url)), "export-html");
|
|
22245
22245
|
function loadTemplate(fileName) {
|
|
22246
|
-
return
|
|
22246
|
+
return fsSync.readFileSync(path.join(EXPORT_HTML_DIR, fileName), "utf-8");
|
|
22247
22247
|
}
|
|
22248
22248
|
function generateHtml(sessionData) {
|
|
22249
22249
|
const template = loadTemplate("template.html");
|
|
@@ -22317,7 +22317,7 @@ async function buildExportSessionReply(params) {
|
|
|
22317
22317
|
} catch (err) {
|
|
22318
22318
|
return { text: `❌ Failed to resolve session file: ${err instanceof Error ? err.message : String(err)}` };
|
|
22319
22319
|
}
|
|
22320
|
-
if (!
|
|
22320
|
+
if (!fsSync.existsSync(sessionFile)) return { text: `❌ Session file not found: ${sessionFile}` };
|
|
22321
22321
|
const sessionManager = SessionManager.open(sessionFile);
|
|
22322
22322
|
const entries = sessionManager.getEntries();
|
|
22323
22323
|
const header = sessionManager.getHeader();
|
|
@@ -22338,8 +22338,8 @@ async function buildExportSessionReply(params) {
|
|
|
22338
22338
|
const defaultFileName = `symi-session-${entry.sessionId.slice(0, 8)}-${timestamp}.html`;
|
|
22339
22339
|
const outputPath = args.outputPath ? path.resolve(args.outputPath.startsWith("~") ? args.outputPath.replace("~", process.env.HOME ?? "") : args.outputPath) : path.join(params.workspaceDir, defaultFileName);
|
|
22340
22340
|
const outputDir = path.dirname(outputPath);
|
|
22341
|
-
if (!
|
|
22342
|
-
|
|
22341
|
+
if (!fsSync.existsSync(outputDir)) fsSync.mkdirSync(outputDir, { recursive: true });
|
|
22342
|
+
fsSync.writeFileSync(outputPath, html, "utf-8");
|
|
22343
22343
|
const relativePath = path.relative(params.workspaceDir, outputPath);
|
|
22344
22344
|
return { text: [
|
|
22345
22345
|
"✅ Session exported!",
|
|
@@ -22453,8 +22453,8 @@ function resolveZaiApiKey() {
|
|
|
22453
22453
|
}
|
|
22454
22454
|
try {
|
|
22455
22455
|
const authPath = path.join(os.homedir(), ".pi", "agent", "auth.json");
|
|
22456
|
-
if (!
|
|
22457
|
-
const data = JSON.parse(
|
|
22456
|
+
if (!fsSync.existsSync(authPath)) return;
|
|
22457
|
+
const data = JSON.parse(fsSync.readFileSync(authPath, "utf-8"));
|
|
22458
22458
|
return data["z-ai"]?.access || data.zai?.access;
|
|
22459
22459
|
} catch {
|
|
22460
22460
|
return;
|
|
@@ -24019,7 +24019,7 @@ function shouldPersistAnyBindingState() {
|
|
|
24019
24019
|
}
|
|
24020
24020
|
function shouldPersistBindingMutations() {
|
|
24021
24021
|
if (shouldPersistAnyBindingState()) return true;
|
|
24022
|
-
return
|
|
24022
|
+
return fsSync.existsSync(resolveThreadBindingsPath());
|
|
24023
24023
|
}
|
|
24024
24024
|
function saveBindingsToDisk(params = {}) {
|
|
24025
24025
|
if (!params.force && !shouldPersistAnyBindingState()) return;
|
|
@@ -25007,7 +25007,7 @@ const applyCostTotal = (totals, costTotal) => {
|
|
|
25007
25007
|
totals.totalCost += costTotal;
|
|
25008
25008
|
};
|
|
25009
25009
|
async function* readJsonlRecords(filePath) {
|
|
25010
|
-
const fileStream =
|
|
25010
|
+
const fileStream = fsSync.createReadStream(filePath, { encoding: "utf-8" });
|
|
25011
25011
|
const rl = readline.createInterface({
|
|
25012
25012
|
input: fileStream,
|
|
25013
25013
|
crlfDelay: Infinity
|
|
@@ -25079,10 +25079,10 @@ async function loadCostUsageSummary(params) {
|
|
|
25079
25079
|
const dailyMap = /* @__PURE__ */ new Map();
|
|
25080
25080
|
const totals = emptyTotals();
|
|
25081
25081
|
const sessionsDir = resolveSessionTranscriptsDirForAgent(params?.agentId);
|
|
25082
|
-
const entries = await
|
|
25082
|
+
const entries = await fsSync.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
|
|
25083
25083
|
const files = (await Promise.all(entries.filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map(async (entry) => {
|
|
25084
25084
|
const filePath = path.join(sessionsDir, entry.name);
|
|
25085
|
-
const stats = await
|
|
25085
|
+
const stats = await fsSync.promises.stat(filePath).catch(() => null);
|
|
25086
25086
|
if (!stats) return null;
|
|
25087
25087
|
if (stats.mtimeMs < sinceTime) return null;
|
|
25088
25088
|
return filePath;
|
|
@@ -25115,7 +25115,7 @@ async function loadCostUsageSummary(params) {
|
|
|
25115
25115
|
}
|
|
25116
25116
|
async function loadSessionCostSummary(params) {
|
|
25117
25117
|
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : void 0);
|
|
25118
|
-
if (!sessionFile || !
|
|
25118
|
+
if (!sessionFile || !fsSync.existsSync(sessionFile)) return null;
|
|
25119
25119
|
const totals = emptyTotals();
|
|
25120
25120
|
let firstActivity;
|
|
25121
25121
|
let lastActivity;
|
|
@@ -29321,7 +29321,7 @@ function asBoolean(value) {
|
|
|
29321
29321
|
}
|
|
29322
29322
|
function resolveTempPathParts(opts) {
|
|
29323
29323
|
const tmpDir = opts.tmpDir ?? resolvePreferredSymiTmpDir();
|
|
29324
|
-
if (!opts.tmpDir)
|
|
29324
|
+
if (!opts.tmpDir) fsSync.mkdirSync(tmpDir, {
|
|
29325
29325
|
recursive: true,
|
|
29326
29326
|
mode: 448
|
|
29327
29327
|
});
|
|
@@ -29387,7 +29387,7 @@ async function writeUrlToFile(filePath, url) {
|
|
|
29387
29387
|
if (typeof contentLength === "number" && Number.isFinite(contentLength) && contentLength > MAX_CAMERA_URL_DOWNLOAD_BYTES) throw new Error(`writeUrlToFile: content-length ${contentLength} exceeds max ${MAX_CAMERA_URL_DOWNLOAD_BYTES}`);
|
|
29388
29388
|
const body = res.body;
|
|
29389
29389
|
if (!body) throw new Error(`failed to download ${url}: empty response body`);
|
|
29390
|
-
const fileHandle = await fs$
|
|
29390
|
+
const fileHandle = await fs$1.open(filePath, "w");
|
|
29391
29391
|
let bytes = 0;
|
|
29392
29392
|
let thrown;
|
|
29393
29393
|
try {
|
|
@@ -29406,7 +29406,7 @@ async function writeUrlToFile(filePath, url) {
|
|
|
29406
29406
|
await fileHandle.close();
|
|
29407
29407
|
}
|
|
29408
29408
|
if (thrown) {
|
|
29409
|
-
await fs$
|
|
29409
|
+
await fs$1.unlink(filePath).catch(() => {});
|
|
29410
29410
|
throw thrown;
|
|
29411
29411
|
}
|
|
29412
29412
|
return {
|
|
@@ -29416,7 +29416,7 @@ async function writeUrlToFile(filePath, url) {
|
|
|
29416
29416
|
}
|
|
29417
29417
|
async function writeBase64ToFile(filePath, base64) {
|
|
29418
29418
|
const buf = Buffer.from(base64, "base64");
|
|
29419
|
-
await fs$
|
|
29419
|
+
await fs$1.writeFile(filePath, buf);
|
|
29420
29420
|
return {
|
|
29421
29421
|
path: filePath,
|
|
29422
29422
|
bytes: buf.length
|
|
@@ -34781,7 +34781,7 @@ function listExistingAgentIdsFromDisk() {
|
|
|
34781
34781
|
const root = resolveStateDir();
|
|
34782
34782
|
const agentsDir = path.join(root, "agents");
|
|
34783
34783
|
try {
|
|
34784
|
-
return
|
|
34784
|
+
return fsSync.readdirSync(agentsDir, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => normalizeAgentId(entry.name)).filter(Boolean);
|
|
34785
34785
|
} catch {
|
|
34786
34786
|
return [];
|
|
34787
34787
|
}
|
|
@@ -39816,7 +39816,7 @@ async function runAgentTurnWithFallback(params) {
|
|
|
39816
39816
|
if (corruptedSessionId) {
|
|
39817
39817
|
const transcriptPath = resolveSessionTranscriptPath(corruptedSessionId);
|
|
39818
39818
|
try {
|
|
39819
|
-
|
|
39819
|
+
fsSync.unlinkSync(transcriptPath);
|
|
39820
39820
|
} catch {}
|
|
39821
39821
|
}
|
|
39822
39822
|
delete params.activeSessionStore[sessionKey];
|
|
@@ -40521,9 +40521,9 @@ function auditPostCompactionReads(readFilePaths, workspaceDir, requiredReads = D
|
|
|
40521
40521
|
* Returns messages from the last N lines (default 100).
|
|
40522
40522
|
*/
|
|
40523
40523
|
function readSessionMessages(sessionFile, maxLines = 100) {
|
|
40524
|
-
if (!
|
|
40524
|
+
if (!fsSync.existsSync(sessionFile)) return [];
|
|
40525
40525
|
try {
|
|
40526
|
-
const recentLines =
|
|
40526
|
+
const recentLines = fsSync.readFileSync(sessionFile, "utf-8").trim().split("\n").slice(-maxLines);
|
|
40527
40527
|
const messages = [];
|
|
40528
40528
|
for (const line of recentLines) try {
|
|
40529
40529
|
const entry = JSON.parse(line);
|
|
@@ -40564,8 +40564,8 @@ const MAX_CONTEXT_CHARS = 3e3;
|
|
|
40564
40564
|
async function readPostCompactionContext(workspaceDir) {
|
|
40565
40565
|
const agentsPath = path.join(workspaceDir, "AGENTS.md");
|
|
40566
40566
|
try {
|
|
40567
|
-
if (!
|
|
40568
|
-
const sections = extractSections(await
|
|
40567
|
+
if (!fsSync.existsSync(agentsPath)) return null;
|
|
40568
|
+
const sections = extractSections(await fsSync.promises.readFile(agentsPath, "utf-8"), ["Session Startup", "Red Lines"]);
|
|
40569
40569
|
if (sections.length === 0) return null;
|
|
40570
40570
|
const combined = sections.join("\n\n");
|
|
40571
40571
|
return "[Post-compaction context refresh]\n\nSession was just compacted. The conversation summary above is a hint, NOT a substitute for your startup sequence. Execute your Session Startup sequence now — read the required files before responding to the user.\n\nCritical rules from AGENTS.md:\n\n" + (combined.length > MAX_CONTEXT_CHARS ? combined.slice(0, MAX_CONTEXT_CHARS) + "\n...[truncated]..." : combined);
|
|
@@ -40769,7 +40769,7 @@ async function runReplyAgent(params) {
|
|
|
40769
40769
|
if (resolved) transcriptCandidates.add(resolved);
|
|
40770
40770
|
transcriptCandidates.add(resolveSessionTranscriptPath(prevSessionId, agentId));
|
|
40771
40771
|
for (const candidate of transcriptCandidates) try {
|
|
40772
|
-
|
|
40772
|
+
fsSync.unlinkSync(candidate);
|
|
40773
40773
|
} catch {}
|
|
40774
40774
|
}
|
|
40775
40775
|
return true;
|
|
@@ -41675,7 +41675,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
41675
41675
|
return;
|
|
41676
41676
|
}
|
|
41677
41677
|
try {
|
|
41678
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
41678
|
+
const { deliverOutboundPayloads } = await import("./deliver-BmPK91JP.js").then((n) => n.n);
|
|
41679
41679
|
await deliverOutboundPayloads({
|
|
41680
41680
|
cfg: params.cfg,
|
|
41681
41681
|
channel,
|
|
@@ -41701,7 +41701,7 @@ function forkSessionFromParent(params) {
|
|
|
41701
41701
|
agentId: params.agentId,
|
|
41702
41702
|
sessionsDir: params.sessionsDir
|
|
41703
41703
|
});
|
|
41704
|
-
if (!parentSessionFile || !
|
|
41704
|
+
if (!parentSessionFile || !fsSync.existsSync(parentSessionFile)) return null;
|
|
41705
41705
|
try {
|
|
41706
41706
|
const manager = SessionManager.open(parentSessionFile);
|
|
41707
41707
|
const leafId = manager.getLeafId();
|
|
@@ -41725,7 +41725,7 @@ function forkSessionFromParent(params) {
|
|
|
41725
41725
|
cwd: manager.getCwd(),
|
|
41726
41726
|
parentSession: parentSessionFile
|
|
41727
41727
|
};
|
|
41728
|
-
|
|
41728
|
+
fsSync.writeFileSync(sessionFile, `${JSON.stringify(header)}\n`, "utf-8");
|
|
41729
41729
|
return {
|
|
41730
41730
|
sessionId,
|
|
41731
41731
|
sessionFile
|
|
@@ -45121,7 +45121,7 @@ async function describeStickerImage(params) {
|
|
|
45121
45121
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
45122
45122
|
try {
|
|
45123
45123
|
const buffer = await fs.readFile(imagePath);
|
|
45124
|
-
const { describeImageWithModel } = await import("./image-
|
|
45124
|
+
const { describeImageWithModel } = await import("./image-rZ4x9VS9.js").then((n) => n.n);
|
|
45125
45125
|
return (await describeImageWithModel({
|
|
45126
45126
|
buffer,
|
|
45127
45127
|
fileName: "sticker.webp",
|
|
@@ -45544,7 +45544,7 @@ function createWhatsAppLoginTool() {
|
|
|
45544
45544
|
force: Type.Optional(Type.Boolean())
|
|
45545
45545
|
}),
|
|
45546
45546
|
execute: async (_toolCallId, args) => {
|
|
45547
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
45547
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CIZk8uKX.js");
|
|
45548
45548
|
if ((args?.action ?? "start") === "wait") {
|
|
45549
45549
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
45550
45550
|
return {
|
|
@@ -45826,7 +45826,7 @@ async function withMemoryManagerForAgent(params) {
|
|
|
45826
45826
|
}
|
|
45827
45827
|
async function checkReadableFile(pathname) {
|
|
45828
45828
|
try {
|
|
45829
|
-
await fs.access(pathname,
|
|
45829
|
+
await fs.access(pathname, fsSync.constants.R_OK);
|
|
45830
45830
|
return { exists: true };
|
|
45831
45831
|
} catch (err) {
|
|
45832
45832
|
const code = err.code;
|
|
@@ -45885,7 +45885,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
|
|
|
45885
45885
|
}
|
|
45886
45886
|
let dirReadable = null;
|
|
45887
45887
|
try {
|
|
45888
|
-
await fs.access(memoryDir,
|
|
45888
|
+
await fs.access(memoryDir, fsSync.constants.R_OK);
|
|
45889
45889
|
dirReadable = true;
|
|
45890
45890
|
} catch (err) {
|
|
45891
45891
|
const code = err.code;
|
|
@@ -47783,7 +47783,7 @@ async function preflightDiscordMessage(params) {
|
|
|
47783
47783
|
let preflightTranscript;
|
|
47784
47784
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
47785
47785
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
47786
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
47786
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-BsfqyC31.js");
|
|
47787
47787
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
47788
47788
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
47789
47789
|
ctx: {
|
|
@@ -48746,7 +48746,7 @@ function identityHasValues(identity) {
|
|
|
48746
48746
|
}
|
|
48747
48747
|
function loadIdentityFromFile(identityPath) {
|
|
48748
48748
|
try {
|
|
48749
|
-
const parsed = parseIdentityMarkdown(
|
|
48749
|
+
const parsed = parseIdentityMarkdown(fsSync.readFileSync(identityPath, "utf-8"));
|
|
48750
48750
|
if (!identityHasValues(parsed)) return null;
|
|
48751
48751
|
return parsed;
|
|
48752
48752
|
} catch {
|
|
@@ -48785,7 +48785,7 @@ function isDataAvatar(value) {
|
|
|
48785
48785
|
}
|
|
48786
48786
|
function resolveExistingPath(value) {
|
|
48787
48787
|
try {
|
|
48788
|
-
return
|
|
48788
|
+
return fsSync.realpathSync(value);
|
|
48789
48789
|
} catch {
|
|
48790
48790
|
return path.resolve(value);
|
|
48791
48791
|
}
|
|
@@ -48809,7 +48809,7 @@ function resolveLocalAvatarPath(params) {
|
|
|
48809
48809
|
reason: "unsupported_extension"
|
|
48810
48810
|
};
|
|
48811
48811
|
try {
|
|
48812
|
-
if (!
|
|
48812
|
+
if (!fsSync.statSync(realPath).isFile()) return {
|
|
48813
48813
|
ok: false,
|
|
48814
48814
|
reason: "missing"
|
|
48815
48815
|
};
|
|
@@ -49672,7 +49672,7 @@ function sanitizeRecentModels(models, limit) {
|
|
|
49672
49672
|
}
|
|
49673
49673
|
async function readJsonFileWithFallback(filePath, fallback) {
|
|
49674
49674
|
try {
|
|
49675
|
-
const raw = await
|
|
49675
|
+
const raw = await fsSync.promises.readFile(filePath, "utf-8");
|
|
49676
49676
|
return {
|
|
49677
49677
|
value: JSON.parse(raw),
|
|
49678
49678
|
exists: true
|
|
@@ -49690,14 +49690,14 @@ async function readJsonFileWithFallback(filePath, fallback) {
|
|
|
49690
49690
|
}
|
|
49691
49691
|
async function writeJsonFileAtomically(filePath, value) {
|
|
49692
49692
|
const dir = path.dirname(filePath);
|
|
49693
|
-
await
|
|
49693
|
+
await fsSync.promises.mkdir(dir, {
|
|
49694
49694
|
recursive: true,
|
|
49695
49695
|
mode: 448
|
|
49696
49696
|
});
|
|
49697
49697
|
const tmp = path.join(dir, `${path.basename(filePath)}.${crypto.randomUUID()}.tmp`);
|
|
49698
|
-
await
|
|
49699
|
-
await
|
|
49700
|
-
await
|
|
49698
|
+
await fsSync.promises.writeFile(tmp, `${JSON.stringify(value, null, 2)}\n`, "utf-8");
|
|
49699
|
+
await fsSync.promises.chmod(tmp, 384);
|
|
49700
|
+
await fsSync.promises.rename(tmp, filePath);
|
|
49701
49701
|
}
|
|
49702
49702
|
async function readPreferencesStore(filePath) {
|
|
49703
49703
|
const { value } = await readJsonFileWithFallback(filePath, {
|
|
@@ -51789,27 +51789,27 @@ function isVoiceChannelType(type) {
|
|
|
51789
51789
|
function createDefaultDeps() {
|
|
51790
51790
|
return {
|
|
51791
51791
|
sendMessageWhatsApp: async (...args) => {
|
|
51792
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
51792
|
+
const { sendMessageWhatsApp } = await import("./web-BqRsq6mP.js");
|
|
51793
51793
|
return await sendMessageWhatsApp(...args);
|
|
51794
51794
|
},
|
|
51795
51795
|
sendMessageTelegram: async (...args) => {
|
|
51796
|
-
const { sendMessageTelegram } = await import("./send-
|
|
51796
|
+
const { sendMessageTelegram } = await import("./send-DeEosX8F.js").then((n) => n.l);
|
|
51797
51797
|
return await sendMessageTelegram(...args);
|
|
51798
51798
|
},
|
|
51799
51799
|
sendMessageDiscord: async (...args) => {
|
|
51800
|
-
const { sendMessageDiscord } = await import("./send-
|
|
51800
|
+
const { sendMessageDiscord } = await import("./send-DwKJK3sM.js").then((n) => n.t);
|
|
51801
51801
|
return await sendMessageDiscord(...args);
|
|
51802
51802
|
},
|
|
51803
51803
|
sendMessageSlack: async (...args) => {
|
|
51804
|
-
const { sendMessageSlack } = await import("./send-
|
|
51804
|
+
const { sendMessageSlack } = await import("./send-CHEOWVc8.js").then((n) => n.n);
|
|
51805
51805
|
return await sendMessageSlack(...args);
|
|
51806
51806
|
},
|
|
51807
51807
|
sendMessageSignal: async (...args) => {
|
|
51808
|
-
const { sendMessageSignal } = await import("./send-
|
|
51808
|
+
const { sendMessageSignal } = await import("./send-zSarozV2.js").then((n) => n.i);
|
|
51809
51809
|
return await sendMessageSignal(...args);
|
|
51810
51810
|
},
|
|
51811
51811
|
sendMessageIMessage: async (...args) => {
|
|
51812
|
-
const { sendMessageIMessage } = await import("./send-
|
|
51812
|
+
const { sendMessageIMessage } = await import("./send-DbcLJb0P.js").then((n) => n.n);
|
|
51813
51813
|
return await sendMessageIMessage(...args);
|
|
51814
51814
|
}
|
|
51815
51815
|
};
|
|
@@ -56690,7 +56690,7 @@ async function monitorIMessageProvider(opts = {}) {
|
|
|
56690
56690
|
function readFileIfExists(filePath) {
|
|
56691
56691
|
if (!filePath) return;
|
|
56692
56692
|
try {
|
|
56693
|
-
return
|
|
56693
|
+
return fsSync.readFileSync(filePath, "utf-8").trim();
|
|
56694
56694
|
} catch {
|
|
56695
56695
|
return;
|
|
56696
56696
|
}
|
|
@@ -57251,7 +57251,7 @@ async function downloadLineMedia(messageId, channelAccessToken, maxBytes = 10 *
|
|
|
57251
57251
|
prefix: "line-media",
|
|
57252
57252
|
extension: getExtensionForContentType(contentType)
|
|
57253
57253
|
});
|
|
57254
|
-
await
|
|
57254
|
+
await fsSync.promises.writeFile(filePath, buffer);
|
|
57255
57255
|
logVerbose(`line: downloaded media ${messageId} to ${filePath} (${buffer.length} bytes)`);
|
|
57256
57256
|
return {
|
|
57257
57257
|
path: filePath,
|
|
@@ -62238,7 +62238,7 @@ function readSlackExternalArgMenuToken(raw) {
|
|
|
62238
62238
|
}
|
|
62239
62239
|
let commandsRegistry;
|
|
62240
62240
|
async function getCommandsRegistry() {
|
|
62241
|
-
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-
|
|
62241
|
+
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-VSmULp-g.js").then((n) => n.n);
|
|
62242
62242
|
return commandsRegistry;
|
|
62243
62243
|
}
|
|
62244
62244
|
function encodeSlackCommandArgValue(parts) {
|
|
@@ -62580,11 +62580,11 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
62580
62580
|
const channelName = channelInfo?.name;
|
|
62581
62581
|
const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
|
|
62582
62582
|
const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
|
|
62583
|
-
import("./resolve-route-
|
|
62583
|
+
import("./resolve-route-BVikmvWO.js").then((n) => n.r),
|
|
62584
62584
|
import("./inbound-context-BlHX0H3E.js").then((n) => n.n),
|
|
62585
62585
|
Promise.resolve().then(() => provider_dispatcher_exports)
|
|
62586
62586
|
]);
|
|
62587
|
-
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-DXUkoKcB.js").then((n) => n.t), import("./reply-prefix-
|
|
62587
|
+
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-DXUkoKcB.js").then((n) => n.t), import("./reply-prefix-CtL0omgM.js").then((n) => n.n)]);
|
|
62588
62588
|
const route = resolveAgentRoute({
|
|
62589
62589
|
cfg,
|
|
62590
62590
|
channel: "slack",
|
|
@@ -62641,9 +62641,9 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
62641
62641
|
});
|
|
62642
62642
|
const deliverSlashPayloads = async (replies) => {
|
|
62643
62643
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
62644
|
-
import("./replies-
|
|
62645
|
-
import("./chunk-
|
|
62646
|
-
import("./markdown-tables-
|
|
62644
|
+
import("./replies-DpPvWiGF.js").then((n) => n.r),
|
|
62645
|
+
import("./chunk-ClbN9Pqy.js").then((n) => n.s),
|
|
62646
|
+
import("./markdown-tables-DSHvnTLx.js").then((n) => n.t)
|
|
62647
62647
|
]);
|
|
62648
62648
|
await deliverSlackSlashReplies({
|
|
62649
62649
|
replies,
|
|
@@ -62696,7 +62696,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
62696
62696
|
let nativeCommands = [];
|
|
62697
62697
|
if (nativeEnabled) {
|
|
62698
62698
|
reg = await getCommandsRegistry();
|
|
62699
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
62699
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-D610IKhm.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
62700
62700
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
62701
62701
|
skillCommands,
|
|
62702
62702
|
provider: "slack"
|
|
@@ -64914,7 +64914,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
64914
64914
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
64915
64915
|
let preflightTranscript;
|
|
64916
64916
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
64917
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
64917
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-BsfqyC31.js");
|
|
64918
64918
|
preflightTranscript = await transcribeFirstAudio({
|
|
64919
64919
|
ctx: {
|
|
64920
64920
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -67059,23 +67059,23 @@ let webLoginQrPromise = null;
|
|
|
67059
67059
|
let webChannelPromise = null;
|
|
67060
67060
|
let whatsappActionsPromise = null;
|
|
67061
67061
|
function loadWebOutbound() {
|
|
67062
|
-
webOutboundPromise ??= import("./outbound-
|
|
67062
|
+
webOutboundPromise ??= import("./outbound-opDNxv-l.js").then((n) => n.t);
|
|
67063
67063
|
return webOutboundPromise;
|
|
67064
67064
|
}
|
|
67065
67065
|
function loadWebLogin() {
|
|
67066
|
-
webLoginPromise ??= import("./login-
|
|
67066
|
+
webLoginPromise ??= import("./login-B8uiUAnV.js").then((n) => n.n);
|
|
67067
67067
|
return webLoginPromise;
|
|
67068
67068
|
}
|
|
67069
67069
|
function loadWebLoginQr() {
|
|
67070
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
67070
|
+
webLoginQrPromise ??= import("./login-qr-CIZk8uKX.js");
|
|
67071
67071
|
return webLoginQrPromise;
|
|
67072
67072
|
}
|
|
67073
67073
|
function loadWebChannel() {
|
|
67074
|
-
webChannelPromise ??= import("./web-
|
|
67074
|
+
webChannelPromise ??= import("./web-BqRsq6mP.js");
|
|
67075
67075
|
return webChannelPromise;
|
|
67076
67076
|
}
|
|
67077
67077
|
function loadWhatsAppActions() {
|
|
67078
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
67078
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-oRQjcdQe.js");
|
|
67079
67079
|
return whatsappActionsPromise;
|
|
67080
67080
|
}
|
|
67081
67081
|
function createPluginRuntime() {
|
|
@@ -67296,7 +67296,7 @@ const resolvePluginSdkAliasFile = (params) => {
|
|
|
67296
67296
|
const srcCandidate = path.join(cursor, "src", "plugin-sdk", params.srcFile);
|
|
67297
67297
|
const distCandidate = path.join(cursor, "dist", "plugin-sdk", params.distFile);
|
|
67298
67298
|
const orderedCandidates = isTest ? [distCandidate, srcCandidate] : [distCandidate];
|
|
67299
|
-
for (const candidate of orderedCandidates) if (
|
|
67299
|
+
for (const candidate of orderedCandidates) if (fsSync.existsSync(candidate)) return candidate;
|
|
67300
67300
|
const parent = path.dirname(cursor);
|
|
67301
67301
|
if (parent === cursor) break;
|
|
67302
67302
|
cursor = parent;
|
|
@@ -68354,7 +68354,7 @@ async function recordLoopOutcome(args) {
|
|
|
68354
68354
|
if (!args.ctx?.sessionKey) return;
|
|
68355
68355
|
try {
|
|
68356
68356
|
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Bxo4UHOL.js").then((n) => n.n);
|
|
68357
|
-
const { recordToolCallOutcome } = await import("./tool-loop-detection-
|
|
68357
|
+
const { recordToolCallOutcome } = await import("./tool-loop-detection-Bbc9OPFR.js");
|
|
68358
68358
|
recordToolCallOutcome(getDiagnosticSessionState({
|
|
68359
68359
|
sessionKey: args.ctx.sessionKey,
|
|
68360
68360
|
sessionId: args.ctx?.agentId
|
|
@@ -68375,8 +68375,8 @@ async function runBeforeToolCallHook(args) {
|
|
|
68375
68375
|
const params = args.params;
|
|
68376
68376
|
if (args.ctx?.sessionKey) {
|
|
68377
68377
|
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Bxo4UHOL.js").then((n) => n.n);
|
|
68378
|
-
const { logToolLoopAction } = await import("./diagnostic-
|
|
68379
|
-
const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-
|
|
68378
|
+
const { logToolLoopAction } = await import("./diagnostic-C3nsWaw3.js").then((n) => n.n);
|
|
68379
|
+
const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-Bbc9OPFR.js");
|
|
68380
68380
|
const sessionState = getDiagnosticSessionState({
|
|
68381
68381
|
sessionKey: args.ctx.sessionKey,
|
|
68382
68382
|
sessionId: args.ctx?.agentId
|
|
@@ -70462,6 +70462,7 @@ function guardSessionManager(sessionManager, opts) {
|
|
|
70462
70462
|
|
|
70463
70463
|
//#endregion
|
|
70464
70464
|
//#region src/agents/transcript-policy.ts
|
|
70465
|
+
const GEMMA_MODEL_HINTS = ["gemma", "redsand/"];
|
|
70465
70466
|
const MISTRAL_MODEL_HINTS = [
|
|
70466
70467
|
"mistral",
|
|
70467
70468
|
"mixtral",
|
|
@@ -70490,6 +70491,12 @@ function isAnthropicApi(modelApi, provider) {
|
|
|
70490
70491
|
if (modelApi === "anthropic-messages") return true;
|
|
70491
70492
|
return normalizeProviderId(provider ?? "") === "anthropic";
|
|
70492
70493
|
}
|
|
70494
|
+
function isGemmaModel(params) {
|
|
70495
|
+
if (normalizeProviderId(params.provider ?? "") === "redsand") return true;
|
|
70496
|
+
const modelId = (params.modelId ?? "").toLowerCase();
|
|
70497
|
+
if (!modelId) return false;
|
|
70498
|
+
return GEMMA_MODEL_HINTS.some((hint) => modelId.includes(hint));
|
|
70499
|
+
}
|
|
70493
70500
|
function isMistralModel(params) {
|
|
70494
70501
|
if (normalizeProviderId(params.provider ?? "") === "mistral") return true;
|
|
70495
70502
|
const modelId = (params.modelId ?? "").toLowerCase();
|
|
@@ -70506,6 +70513,10 @@ function resolveTranscriptPolicy(params) {
|
|
|
70506
70513
|
provider,
|
|
70507
70514
|
modelId
|
|
70508
70515
|
});
|
|
70516
|
+
const isGemma = isGemmaModel({
|
|
70517
|
+
provider,
|
|
70518
|
+
modelId
|
|
70519
|
+
});
|
|
70509
70520
|
const isOpenRouterGemini = (provider === "openrouter" || provider === "opencode") && modelId.toLowerCase().includes("gemini");
|
|
70510
70521
|
const isAntigravityClaudeModel = isAntigravityClaude({
|
|
70511
70522
|
api: params.modelApi,
|
|
@@ -70513,13 +70524,13 @@ function resolveTranscriptPolicy(params) {
|
|
|
70513
70524
|
modelId
|
|
70514
70525
|
});
|
|
70515
70526
|
const dropThinkingBlocks = provider === "github-copilot" && modelId.toLowerCase().includes("claude");
|
|
70516
|
-
const needsNonImageSanitize = isGoogle || isAnthropic || isMistral || isOpenRouterGemini;
|
|
70517
|
-
const sanitizeToolCallIds = isGoogle || isMistral || isAnthropic;
|
|
70527
|
+
const needsNonImageSanitize = isGoogle || isAnthropic || isMistral || isOpenRouterGemini || isGemma;
|
|
70528
|
+
const sanitizeToolCallIds = isGoogle || isMistral || isAnthropic || isGemma;
|
|
70518
70529
|
return {
|
|
70519
70530
|
sanitizeMode: isOpenAi ? "images-only" : needsNonImageSanitize ? "full" : "images-only",
|
|
70520
70531
|
sanitizeToolCallIds: !isOpenAi && sanitizeToolCallIds,
|
|
70521
70532
|
toolCallIdMode: isMistral ? "strict9" : sanitizeToolCallIds ? "strict" : void 0,
|
|
70522
|
-
repairToolUseResultPairing: !isOpenAi && (isGoogle || isAnthropic),
|
|
70533
|
+
repairToolUseResultPairing: !isOpenAi && (isGoogle || isAnthropic || isGemma),
|
|
70523
70534
|
preserveSignatures: isAntigravityClaudeModel,
|
|
70524
70535
|
sanitizeThoughtSignatures: isOpenAi ? void 0 : isOpenRouterGemini ? {
|
|
70525
70536
|
allowBase64Only: true,
|
|
@@ -70905,8 +70916,8 @@ async function readWorkspaceContextForSummary() {
|
|
|
70905
70916
|
const workspaceDir = process.cwd();
|
|
70906
70917
|
const agentsPath = path.join(workspaceDir, "AGENTS.md");
|
|
70907
70918
|
try {
|
|
70908
|
-
if (!
|
|
70909
|
-
const sections = extractSections(await
|
|
70919
|
+
if (!fsSync.existsSync(agentsPath)) return "";
|
|
70920
|
+
const sections = extractSections(await fsSync.promises.readFile(agentsPath, "utf-8"), ["Session Startup", "Red Lines"]);
|
|
70910
70921
|
if (sections.length === 0) return "";
|
|
70911
70922
|
const combined = sections.join("\n\n");
|
|
70912
70923
|
return `\n\n<workspace-critical-rules>\n${combined.length > MAX_SUMMARY_CONTEXT_CHARS ? combined.slice(0, MAX_SUMMARY_CONTEXT_CHARS) + "\n...[truncated]..." : combined}\n</workspace-critical-rules>`;
|
|
@@ -72237,7 +72248,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
72237
72248
|
if (!apiKeyInfo.apiKey) {
|
|
72238
72249
|
if (apiKeyInfo.mode !== "aws-sdk") throw new Error(`No API key resolved for provider "${model.provider}" (auth mode: ${apiKeyInfo.mode}).`);
|
|
72239
72250
|
} else if (model.provider === "github-copilot") {
|
|
72240
|
-
const { resolveCopilotApiToken } = await import("./github-copilot-token-
|
|
72251
|
+
const { resolveCopilotApiToken } = await import("./github-copilot-token-DJqsJ2-r.js").then((n) => n.n);
|
|
72241
72252
|
const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
|
|
72242
72253
|
authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
|
|
72243
72254
|
} else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
|
|
@@ -72577,6 +72588,162 @@ async function compactEmbeddedPiSession(params) {
|
|
|
72577
72588
|
return enqueueCommandInLane(sessionLane, () => enqueueGlobal(async () => compactEmbeddedPiSessionDirect(params)));
|
|
72578
72589
|
}
|
|
72579
72590
|
|
|
72591
|
+
//#endregion
|
|
72592
|
+
//#region src/config/model-profiles-builtin.ts
|
|
72593
|
+
/**
|
|
72594
|
+
* Built-in model profiles. Ordered from most-specific to least-specific so
|
|
72595
|
+
* that `resolveModelProfile` can return the first match.
|
|
72596
|
+
*
|
|
72597
|
+
* Order matters: "ollama/" must precede "gemma" because model IDs like
|
|
72598
|
+
* "ollama/gemma4:31b-128k" contain both substrings.
|
|
72599
|
+
*/
|
|
72600
|
+
const BUILTIN_PROFILES = [
|
|
72601
|
+
{
|
|
72602
|
+
match: ["ollama/"],
|
|
72603
|
+
label: "Ollama Local",
|
|
72604
|
+
params: {
|
|
72605
|
+
temperature: 1,
|
|
72606
|
+
top_p: .95,
|
|
72607
|
+
top_k: 64,
|
|
72608
|
+
max_tokens: 4096,
|
|
72609
|
+
stop: ["<end_of_turn>", "<eos>"]
|
|
72610
|
+
},
|
|
72611
|
+
streaming: {
|
|
72612
|
+
deltaThrottleMs: 50,
|
|
72613
|
+
flushOnFinal: true,
|
|
72614
|
+
chunkPattern: "burst"
|
|
72615
|
+
},
|
|
72616
|
+
filters: {
|
|
72617
|
+
stripPatterns: [
|
|
72618
|
+
"<\\|channel>\\w*",
|
|
72619
|
+
"<channel\\|>",
|
|
72620
|
+
"<start_of_turn>(?:model|user)?",
|
|
72621
|
+
"<end_of_turn>"
|
|
72622
|
+
],
|
|
72623
|
+
suppressMonologue: true,
|
|
72624
|
+
hasStructuredThinking: false
|
|
72625
|
+
},
|
|
72626
|
+
promptAdditions: ["You are running locally via Ollama. Do not output raw control tokens or internal monologue. Send brief progress updates on long tasks."],
|
|
72627
|
+
ui: {
|
|
72628
|
+
badge: "Local",
|
|
72629
|
+
watchdogMs: 9e5,
|
|
72630
|
+
armWatchdogOnSend: true
|
|
72631
|
+
}
|
|
72632
|
+
},
|
|
72633
|
+
{
|
|
72634
|
+
match: ["anthropic/", "claude-"],
|
|
72635
|
+
label: "Claude",
|
|
72636
|
+
params: {
|
|
72637
|
+
temperature: 1,
|
|
72638
|
+
top_p: 1,
|
|
72639
|
+
max_tokens: 8192
|
|
72640
|
+
},
|
|
72641
|
+
streaming: {
|
|
72642
|
+
deltaThrottleMs: 150,
|
|
72643
|
+
flushOnFinal: false,
|
|
72644
|
+
chunkPattern: "token"
|
|
72645
|
+
},
|
|
72646
|
+
filters: {
|
|
72647
|
+
stripPatterns: [],
|
|
72648
|
+
suppressMonologue: false,
|
|
72649
|
+
hasStructuredThinking: true
|
|
72650
|
+
},
|
|
72651
|
+
promptAdditions: [],
|
|
72652
|
+
ui: {
|
|
72653
|
+
badge: "API",
|
|
72654
|
+
watchdogMs: 3e5,
|
|
72655
|
+
armWatchdogOnSend: false
|
|
72656
|
+
}
|
|
72657
|
+
},
|
|
72658
|
+
{
|
|
72659
|
+
match: ["gemma", "redsand/"],
|
|
72660
|
+
label: "Gemma 4",
|
|
72661
|
+
params: {
|
|
72662
|
+
temperature: 1,
|
|
72663
|
+
top_p: .95,
|
|
72664
|
+
top_k: 64,
|
|
72665
|
+
max_tokens: 4096,
|
|
72666
|
+
stop: ["<end_of_turn>", "<eos>"]
|
|
72667
|
+
},
|
|
72668
|
+
streaming: {
|
|
72669
|
+
deltaThrottleMs: 50,
|
|
72670
|
+
flushOnFinal: true,
|
|
72671
|
+
chunkPattern: "burst"
|
|
72672
|
+
},
|
|
72673
|
+
filters: {
|
|
72674
|
+
stripPatterns: [
|
|
72675
|
+
"<\\|channel>\\w*",
|
|
72676
|
+
"<channel\\|>",
|
|
72677
|
+
"<start_of_turn>(?:model|user)?",
|
|
72678
|
+
"<end_of_turn>",
|
|
72679
|
+
"<\\|(?:fim_prefix|fim_suffix|fim_middle)\\|>",
|
|
72680
|
+
"^\\s*<bos>\\s*"
|
|
72681
|
+
],
|
|
72682
|
+
suppressMonologue: true,
|
|
72683
|
+
hasStructuredThinking: false
|
|
72684
|
+
},
|
|
72685
|
+
promptAdditions: [
|
|
72686
|
+
"You are running as Gemma 4 via vLLM. Important behavioral rules:",
|
|
72687
|
+
"- Never output raw control tokens, channel tags, or turn markers in your responses.",
|
|
72688
|
+
"- Never display internal status checks, plans, or self-assessments. Your visible output should only be conversational responses and final results.",
|
|
72689
|
+
"- When working on multi-step tasks, send a brief one-line status update every 30-60 seconds so the user knows you are active.",
|
|
72690
|
+
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
72691
|
+
"- Do not use <|channel>thought or similar syntax. If you need to reason, do so silently."
|
|
72692
|
+
],
|
|
72693
|
+
ui: {
|
|
72694
|
+
badge: "CoreWeave",
|
|
72695
|
+
watchdogMs: 6e5,
|
|
72696
|
+
armWatchdogOnSend: true
|
|
72697
|
+
}
|
|
72698
|
+
}
|
|
72699
|
+
];
|
|
72700
|
+
|
|
72701
|
+
//#endregion
|
|
72702
|
+
//#region src/config/resolve-model-profile.ts
|
|
72703
|
+
/** Default profile returned when no match is found. */
|
|
72704
|
+
const FALLBACK_PROFILE = {
|
|
72705
|
+
match: "*",
|
|
72706
|
+
label: "Generic",
|
|
72707
|
+
params: {
|
|
72708
|
+
temperature: 1,
|
|
72709
|
+
max_tokens: 4096
|
|
72710
|
+
},
|
|
72711
|
+
streaming: {
|
|
72712
|
+
deltaThrottleMs: 150,
|
|
72713
|
+
flushOnFinal: true,
|
|
72714
|
+
chunkPattern: "burst"
|
|
72715
|
+
},
|
|
72716
|
+
filters: {
|
|
72717
|
+
stripPatterns: [],
|
|
72718
|
+
suppressMonologue: false,
|
|
72719
|
+
hasStructuredThinking: false
|
|
72720
|
+
},
|
|
72721
|
+
promptAdditions: [],
|
|
72722
|
+
ui: {
|
|
72723
|
+
watchdogMs: 3e5,
|
|
72724
|
+
armWatchdogOnSend: true
|
|
72725
|
+
}
|
|
72726
|
+
};
|
|
72727
|
+
/**
|
|
72728
|
+
* Resolve the active model profile for a given model ID.
|
|
72729
|
+
*
|
|
72730
|
+
* Resolution order:
|
|
72731
|
+
* 1. User-defined profiles (from `models.profiles` in symi.json)
|
|
72732
|
+
* 2. Built-in profiles ({@link BUILTIN_PROFILES})
|
|
72733
|
+
* 3. Fallback "Generic" profile
|
|
72734
|
+
*
|
|
72735
|
+
* Matching is case-insensitive prefix/substring against the model ID.
|
|
72736
|
+
*/
|
|
72737
|
+
function resolveModelProfile(modelId, userProfiles) {
|
|
72738
|
+
const id = modelId.toLowerCase();
|
|
72739
|
+
const allProfiles = [...userProfiles ?? [], ...BUILTIN_PROFILES];
|
|
72740
|
+
for (const profile of allProfiles) {
|
|
72741
|
+
const patterns = Array.isArray(profile.match) ? profile.match : [profile.match];
|
|
72742
|
+
for (const pattern of patterns) if (id.startsWith(pattern.toLowerCase()) || id.includes(pattern.toLowerCase())) return profile;
|
|
72743
|
+
}
|
|
72744
|
+
return FALLBACK_PROFILE;
|
|
72745
|
+
}
|
|
72746
|
+
|
|
72580
72747
|
//#endregion
|
|
72581
72748
|
//#region src/agents/pi-embedded-runner/extra-params.ts
|
|
72582
72749
|
const OPENROUTER_APP_HEADERS = {
|
|
@@ -72596,7 +72763,9 @@ const OPENAI_RESPONSES_PROVIDERS = new Set(["openai"]);
|
|
|
72596
72763
|
function resolveExtraParams(params) {
|
|
72597
72764
|
const modelKey = `${params.provider}/${params.modelId}`;
|
|
72598
72765
|
const modelConfig = params.cfg?.agents?.defaults?.models?.[modelKey];
|
|
72599
|
-
|
|
72766
|
+
if (modelConfig?.params) return { ...modelConfig.params };
|
|
72767
|
+
const profile = resolveModelProfile(modelKey, params.cfg?.models?.profiles);
|
|
72768
|
+
if (profile.params && Object.keys(profile.params).length > 0) return { ...profile.params };
|
|
72600
72769
|
}
|
|
72601
72770
|
/**
|
|
72602
72771
|
* Resolve cacheRetention from extraParams, supporting both new `cacheRetention`
|
|
@@ -72626,6 +72795,7 @@ function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
|
|
|
72626
72795
|
if (typeof extraParams.top_p === "number") streamParams.top_p = extraParams.top_p;
|
|
72627
72796
|
if (typeof extraParams.top_k === "number") streamParams.top_k = extraParams.top_k;
|
|
72628
72797
|
if (typeof extraParams.repeat_penalty === "number") streamParams.repeat_penalty = extraParams.repeat_penalty;
|
|
72798
|
+
if (Array.isArray(extraParams.stop) && extraParams.stop.length > 0) streamParams.stop = extraParams.stop;
|
|
72629
72799
|
if (extraParams.chat_template_kwargs && typeof extraParams.chat_template_kwargs === "object") streamParams.chat_template_kwargs = extraParams.chat_template_kwargs;
|
|
72630
72800
|
const cacheRetention = resolveCacheRetention(extraParams, provider);
|
|
72631
72801
|
if (cacheRetention) streamParams.cacheRetention = cacheRetention;
|
|
@@ -72754,6 +72924,42 @@ function createZaiToolStreamWrapper(baseStreamFn, enabled) {
|
|
|
72754
72924
|
});
|
|
72755
72925
|
};
|
|
72756
72926
|
}
|
|
72927
|
+
const GEMMA_STOP_SEQUENCES = ["<end_of_turn>", "<eos>"];
|
|
72928
|
+
const VLLM_GEMMA_HINTS = ["gemma", "redsand"];
|
|
72929
|
+
function isVllmOrGemmaProvider(provider, modelId, cfg) {
|
|
72930
|
+
const lower = `${provider}/${modelId}`.toLowerCase();
|
|
72931
|
+
if (VLLM_GEMMA_HINTS.some((h) => lower.includes(h))) return true;
|
|
72932
|
+
const baseUrl = ((cfg?.models?.providers?.[provider])?.baseUrl ?? "").toLowerCase();
|
|
72933
|
+
return baseUrl.includes("coreweave") || baseUrl.includes("vllm");
|
|
72934
|
+
}
|
|
72935
|
+
/**
|
|
72936
|
+
* Wrap the stream function to fix vLLM/Gemma compat issues via onPayload:
|
|
72937
|
+
* 1. Replace `max_completion_tokens` with `max_tokens` (vLLM ignores the former)
|
|
72938
|
+
* 2. Inject Gemma stop sequences if none are set
|
|
72939
|
+
* 3. Remove unsupported fields (store, stream_options.include_usage on older vLLM)
|
|
72940
|
+
*/
|
|
72941
|
+
function createVllmCompatWrapper(baseStreamFn, extraParams) {
|
|
72942
|
+
const underlying = baseStreamFn ?? streamSimple;
|
|
72943
|
+
const configuredStop = Array.isArray(extraParams.stop) ? extraParams.stop : GEMMA_STOP_SEQUENCES;
|
|
72944
|
+
return (model, context, options) => {
|
|
72945
|
+
const originalOnPayload = options?.onPayload;
|
|
72946
|
+
return underlying(model, context, {
|
|
72947
|
+
...options,
|
|
72948
|
+
onPayload: (payload) => {
|
|
72949
|
+
if (payload && typeof payload === "object") {
|
|
72950
|
+
const p = payload;
|
|
72951
|
+
if (p.max_completion_tokens && !p.max_tokens) {
|
|
72952
|
+
p.max_tokens = p.max_completion_tokens;
|
|
72953
|
+
delete p.max_completion_tokens;
|
|
72954
|
+
}
|
|
72955
|
+
if (!p.stop && configuredStop.length > 0) p.stop = configuredStop;
|
|
72956
|
+
delete p.store;
|
|
72957
|
+
}
|
|
72958
|
+
originalOnPayload?.(payload);
|
|
72959
|
+
}
|
|
72960
|
+
});
|
|
72961
|
+
};
|
|
72962
|
+
}
|
|
72757
72963
|
/**
|
|
72758
72964
|
* Apply extra params (like temperature) to an agent's streamFn.
|
|
72759
72965
|
* Also adds OpenRouter app attribution headers when using the OpenRouter provider.
|
|
@@ -72788,6 +72994,10 @@ function applyExtraParamsToAgent(agent, cfg, provider, modelId, extraParamsOverr
|
|
|
72788
72994
|
agent.streamFn = createZaiToolStreamWrapper(agent.streamFn, true);
|
|
72789
72995
|
}
|
|
72790
72996
|
}
|
|
72997
|
+
if (isVllmOrGemmaProvider(provider, modelId, cfg)) {
|
|
72998
|
+
log$2.debug(`applying vLLM/Gemma compat wrapper for ${provider}/${modelId}`);
|
|
72999
|
+
agent.streamFn = createVllmCompatWrapper(agent.streamFn, merged);
|
|
73000
|
+
}
|
|
72791
73001
|
agent.streamFn = createOpenAIResponsesStoreWrapper(agent.streamFn);
|
|
72792
73002
|
}
|
|
72793
73003
|
|
|
@@ -73461,11 +73671,11 @@ function appendRawStream(payload) {
|
|
|
73461
73671
|
if (!rawStreamReady) {
|
|
73462
73672
|
rawStreamReady = true;
|
|
73463
73673
|
try {
|
|
73464
|
-
|
|
73674
|
+
fsSync.mkdirSync(path.dirname(RAW_STREAM_PATH), { recursive: true });
|
|
73465
73675
|
} catch {}
|
|
73466
73676
|
}
|
|
73467
73677
|
try {
|
|
73468
|
-
|
|
73678
|
+
fsSync.promises.appendFile(RAW_STREAM_PATH, `${JSON.stringify(payload)}\n`);
|
|
73469
73679
|
} catch {}
|
|
73470
73680
|
}
|
|
73471
73681
|
|
|
@@ -75994,7 +76204,8 @@ async function runEmbeddedAttempt(params) {
|
|
|
75994
76204
|
skillsPrompt,
|
|
75995
76205
|
tools
|
|
75996
76206
|
});
|
|
75997
|
-
const
|
|
76207
|
+
const modelProfile = resolveModelProfile(params.modelId ?? "", params.config?.models?.profiles);
|
|
76208
|
+
const systemPromptText = createSystemPromptOverride(appendPrompt + (modelProfile.promptAdditions.length > 0 ? "\n\n" + modelProfile.promptAdditions.join("\n") : ""))();
|
|
75998
76209
|
const sessionLock = await acquireSessionWriteLock({
|
|
75999
76210
|
sessionFile: params.sessionFile,
|
|
76000
76211
|
maxHoldMs: resolveSessionLockMaxHoldFromTimeout({ timeoutMs: params.timeoutMs })
|
|
@@ -76940,7 +77151,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
76940
77151
|
return;
|
|
76941
77152
|
}
|
|
76942
77153
|
if (model.provider === "github-copilot") {
|
|
76943
|
-
const { resolveCopilotApiToken } = await import("./github-copilot-token-
|
|
77154
|
+
const { resolveCopilotApiToken } = await import("./github-copilot-token-DJqsJ2-r.js").then((n) => n.n);
|
|
76944
77155
|
const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
|
|
76945
77156
|
authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
|
|
76946
77157
|
} else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
|