@symerian/symi 2.6.40 → 2.6.41
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/{acp-cli-Cm65S6FL.js → acp-cli-BLUeUUA5.js} +2 -2
- package/dist/{acp-cli-CArw-nEj.js → acp-cli-CrEIx-c7.js} +2 -2
- package/dist/{agents-BUphGO8B.js → agents-B4RNdKQ3.js} +7 -7
- package/dist/{agents.config-bWQyGjxK.js → agents.config-CA31c0kN.js} +1 -1
- package/dist/{agents.config-C5FjRTiH.js → agents.config-CG2klYOg.js} +1 -1
- package/dist/{audio-preflight-DEJHmI9r.js → audio-preflight-CIiS5cfP.js} +11 -11
- package/dist/{audio-preflight-B0alOE_D.js → audio-preflight-DD18zIZd.js} +5 -5
- package/dist/{audio-preflight-BUO1aDLp.js → audio-preflight-K-s65jbB.js} +5 -5
- package/dist/{audio-preflight-EindUWk_.js → audio-preflight-XrlQA8IZ.js} +11 -11
- package/dist/{audit-ChxZ7_3y.js → audit-BjI_Yyr5.js} +5 -5
- package/dist/{audit-B_XnVSC_.js → audit-DB9YkTVX.js} +5 -5
- package/dist/{auth-choice-CScrqcEI.js → auth-choice-CCGIgXvF.js} +4 -4
- package/dist/{auth-choice-BZIJ1WP4.js → auth-choice-CiMf3Pjp.js} +4 -4
- package/dist/{banner-DdxLX10a.js → banner-BNsB_A87.js} +1 -1
- package/dist/{browser-cli-B8qCOonD.js → browser-cli-Ctn9do4z.js} +3 -3
- package/dist/{browser-cli-d3tBzuZB.js → browser-cli-kDUw45Y0.js} +3 -3
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +13 -13
- package/dist/bundled/session-memory/handler.js +13 -13
- package/dist/{call-CLKMnHOP.js → call-DKi-hnaF.js} +1 -1
- package/dist/{call-Dqx-xSZ7.js → call-DwpGquzW.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-CC5ojwB6.js → channel-options-BMQlkUDX.js} +1 -1
- package/dist/{channel-options-BAqgueJ5.js → channel-options-pAH4A-xX.js} +1 -1
- package/dist/{channel-web-_jV8VUEw.js → channel-web-Dwuj48T5.js} +7 -7
- package/dist/{channels-cli-1we8fBWm.js → channels-cli-CuExxB0U.js} +30 -30
- package/dist/{channels-cli-GldZ8ajW.js → channels-cli-rmDzxb0W.js} +29 -29
- package/dist/{chrome-D07ZncFh.js → chrome-BYOhnxTr.js} +8 -8
- package/dist/{chrome-DJn17LsI.js → chrome-BxwUEWrH.js} +1 -1
- package/dist/{chrome-Cixcv-qk.js → chrome-DAw-AWNi.js} +1 -1
- package/dist/{chrome-DtPv6OzN.js → chrome-DU2ZysN3.js} +1 -1
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-CNO5cyFx.js → cli-BPGZalMg.js} +25 -25
- package/dist/{cli-DZAotBEi.js → cli-Mcq2pPI0.js} +26 -26
- package/dist/{command-registry-DZIdLwVe.js → command-registry-BoEw2RzH.js} +11 -11
- package/dist/{completion-cli-BWw06AVN.js → completion-cli-CE9Xqlyx.js} +1 -1
- package/dist/{completion-cli-DYgPksHH.js → completion-cli-CQVZGJPg.js} +2 -2
- package/dist/{config-CyV6zkEL.js → config-B6OxYMgn.js} +6 -1
- package/dist/{config-BwQutavB.js → config-BNTB6qj8.js} +6 -1
- package/dist/{config-jVLwO6DP.js → config-BUTI-mUZ.js} +6 -1
- package/dist/{config-Bjt5P4vW.js → config-Dz95lSBW.js} +6 -1
- package/dist/{config-cli-DNHtgLYH.js → config-cli-BucNvr-c.js} +2 -2
- package/dist/{config-cli-BOS84uDD.js → config-cli-mU_ckD4l.js} +2 -2
- package/dist/{config-guard-bJv1t515.js → config-guard-B1skCv1C.js} +2 -2
- package/dist/{config-guard-BTGDJDTi.js → config-guard-CEkSg4hl.js} +3 -3
- package/dist/{config-validation-D1EjO6bG.js → config-validation-Cutpn5eO.js} +1 -1
- package/dist/{config-validation-PZAxf4DR.js → config-validation-HDVDlMSV.js} +1 -1
- package/dist/{configure-B7YGhbtM.js → configure-CDOF87Fk.js} +10 -10
- package/dist/{configure-DZQuTL_V.js → configure-CxnBcN95.js} +10 -10
- package/dist/{control-service-B0G5d40m.js → control-service-BYKXzY4f.js} +4 -4
- package/dist/{control-service-BW1BNnC1.js → control-service-rbSHSlcd.js} +4 -4
- package/dist/control-ui/js/app.js +41 -0
- package/dist/{cron-cli-B88WIOK2.js → cron-cli-DCpsXkrw.js} +3 -3
- package/dist/{cron-cli-QxHcrynL.js → cron-cli-QCTdVZuP.js} +3 -3
- package/dist/{daemon-cli-Cy45NZwV.js → daemon-cli-DSDcmWOi.js} +6 -6
- package/dist/{daemon-cli-DK3CCo49.js → daemon-cli-DhJYEAoL.js} +6 -6
- package/dist/daemon-cli.js +6 -1
- package/dist/{daemon-runtime-A-deduW3.js → daemon-runtime-CVFg-ZmT.js} +1 -1
- package/dist/{daemon-runtime-CdKAsAeg.js → daemon-runtime-mE1b-Q48.js} +1 -1
- package/dist/{deliver-BjpaKGTx.js → deliver-B4KZ6-oZ.js} +3 -3
- package/dist/{deliver-BCmoI9iE.js → deliver-Bu0iWeja.js} +3 -3
- package/dist/{deliver-Cm6Yfbzh.js → deliver-C1HRkzPJ.js} +2 -2
- package/dist/{deliver-SIVO_ZZm.js → deliver-DtuY4Wgl.js} +2 -2
- package/dist/{devices-cli-f3yJl6-G.js → devices-cli-BNG-fvdl.js} +2 -2
- package/dist/{devices-cli-D6sKbRkk.js → devices-cli-x3jIP4Ih.js} +2 -2
- package/dist/{directory-cli-DDb20Fzl.js → directory-cli-BxnSZZsW.js} +1 -1
- package/dist/{directory-cli-hohI4d8v.js → directory-cli-KgsAVTA0.js} +1 -1
- package/dist/{dns-cli-DIZyU_2d.js → dns-cli-BuVomfxS.js} +1 -1
- package/dist/{dns-cli-C1SXZIAh.js → dns-cli-Cwr92Aiq.js} +1 -1
- package/dist/{doctor-completion-UC-Jc5jn.js → doctor-completion-CHF_TwGQ.js} +1 -1
- package/dist/{doctor-completion-BayL_S0c.js → doctor-completion-CoftKlUX.js} +1 -1
- package/dist/{doctor-config-flow-DLtGtIf_.js → doctor-config-flow-DhAYwhNB.js} +2 -2
- package/dist/{doctor-config-flow-i4XYSFXR.js → doctor-config-flow-iIzSEQxb.js} +2 -2
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-DpFjEahL.js → exec-approvals-cli-BSgxsdMt.js} +4 -4
- package/dist/{exec-approvals-cli-Cr-mrEfY.js → exec-approvals-cli-CmndFjEA.js} +4 -4
- package/dist/extensionAPI.js +13 -13
- package/dist/{gateway-cli-Cwh2BbPv.js → gateway-cli-G7fiXsQ6.js} +42 -42
- package/dist/{gateway-cli-BFPPqLYw.js → gateway-cli-SNaqDM7f.js} +41 -41
- package/dist/{gateway-rpc-CS_pPYyV.js → gateway-rpc-5fREQe9Q.js} +1 -1
- package/dist/{gateway-rpc-Ddqs16S-.js → gateway-rpc-BMdVa3QV.js} +1 -1
- package/dist/{glass-ui-ws-DB9p7t4H.js → glass-ui-ws-CF0__vuO.js} +34 -34
- package/dist/{glass-ui-ws-BfHJCfCz.js → glass-ui-ws-he25wGFt.js} +33 -33
- package/dist/{health-Bx6RQ4MZ.js → health-en2N_Kqc.js} +5 -5
- package/dist/{health-CLIwZbJe.js → health-q7706M36.js} +5 -5
- package/dist/{hooks-cli-BgALdxuB.js → hooks-cli-C4rVaLzZ.js} +26 -26
- package/dist/{hooks-cli-CF4fT-gm.js → hooks-cli-ChQbBpyb.js} +27 -27
- package/dist/{image-DI1dYFo0.js → image-BWmcNF8N.js} +2 -2
- package/dist/{image-KpMaj86B.js → image-C3wYkWyK.js} +2 -2
- package/dist/{image-BmIvgTV4.js → image-CbyTdMd5.js} +2 -2
- package/dist/{image-BrxGAFvc.js → image-lp19FlzF.js} +2 -2
- package/dist/index.js +34 -34
- package/dist/{lifecycle-core-BnlvcthF.js → lifecycle-core-BZ5sOcHT.js} +2 -2
- package/dist/{lifecycle-core-D8iU9ahw.js → lifecycle-core-C4HzGXA1.js} +2 -2
- package/dist/llm-slug-generator.js +13 -13
- package/dist/{login-CayZfsyE.js → login-BkbDSDPc.js} +2 -2
- package/dist/{login-bQWLSSfZ.js → login-BtBwGFrb.js} +2 -2
- package/dist/{login-DPxmcuIe.js → login-CiVdC-o_.js} +2 -2
- package/dist/{login-QU18rIZK.js → login-DODfJ3Dn.js} +2 -2
- package/dist/{login-qr-Bn4BQkWf.js → login-qr-CBRxijIg.js} +2 -2
- package/dist/{login-qr-BB2Zfn7K.js → login-qr-DPxuLEvD.js} +2 -2
- package/dist/{login-qr-CPn2Q7vV.js → login-qr-Dbw5m381.js} +2 -2
- package/dist/{login-qr-l5XwJWk9.js → login-qr-q201Ckfe.js} +2 -2
- package/dist/{logs-cli-COwO0YyZ.js → logs-cli-CfGj-dOg.js} +3 -3
- package/dist/{logs-cli-2z1YdwSX.js → logs-cli-DtlrLf7u.js} +3 -3
- package/dist/{memory-cli-B7GV_Iz_.js → memory-cli-Btzr8gfD.js} +1 -1
- package/dist/{memory-cli-9q0ppQpo.js → memory-cli-DDumUksr.js} +1 -1
- package/dist/{model-catalog-CsKgWlNp.js → model-catalog-8Son0J4O.js} +2 -2
- package/dist/{model-catalog-b9o0TtF7.js → model-catalog-DNvgFPZn.js} +2 -2
- package/dist/{model-picker-DBsP93uq.js → model-picker-CAm2Bftd.js} +2 -2
- package/dist/{model-picker-CRy3nJeT.js → model-picker-Casgrpw3.js} +2 -2
- package/dist/{models-CPIhph0W.js → models-DOTpfa7b.js} +8 -8
- package/dist/{models-cli-C01GsvW2.js → models-cli-CBl45f7R.js} +28 -28
- package/dist/{models-cli-CLqS4ENq.js → models-cli-MJAY_Wg4.js} +29 -29
- package/dist/{models-config-Bc8qKqev.js → models-config-Be8DRFkB.js} +1 -1
- package/dist/{models-config-BiIYPWCW.js → models-config-CFFjJPe7.js} +1 -1
- package/dist/{node-cli-BeZKOSYR.js → node-cli-DnfDOh1d.js} +9 -9
- package/dist/{node-cli-74pkmapS.js → node-cli-eHn9-YfJ.js} +9 -9
- package/dist/{nodes-cli-nic1q7eb.js → nodes-cli-Ci3oxw8k.js} +3 -3
- package/dist/{nodes-cli-DJHcnIfL.js → nodes-cli-Ct4M7JOe.js} +3 -3
- package/dist/{onboard-CzncEzdT.js → onboard-Bx02XPb1.js} +7 -7
- package/dist/{onboard-BrxB6sbz.js → onboard-DQdGJ1lE.js} +7 -7
- package/dist/{onboard-channels-BBUPobrz.js → onboard-channels-Bp89ZT6Q.js} +1 -1
- package/dist/{onboard-channels-H11ympjW.js → onboard-channels-Ct2eNYUC.js} +1 -1
- package/dist/{onboard-custom-BFbF4nGV.js → onboard-custom-CQOMQkfS.js} +2 -2
- package/dist/{onboard-custom-Bt-wDMSz.js → onboard-custom-XiomtQr7.js} +2 -2
- package/dist/{onboard-helpers-ChH5EhW2.js → onboard-helpers-BBtPmJEe.js} +2 -2
- package/dist/{onboard-helpers-MnxHJAaB.js → onboard-helpers-DFvWPFhU.js} +2 -2
- package/dist/{onboard-remote-57GHsVPU.js → onboard-remote-BURDxwoE.js} +1 -1
- package/dist/{onboard-remote-BRxgNeoe.js → onboard-remote-D-B4EiOE.js} +1 -1
- package/dist/{onboard-skills-DtcVRCTc.js → onboard-skills-BDCzVjxb.js} +1 -1
- package/dist/{onboard-skills-CLnJpRrp.js → onboard-skills-CbzgBT1W.js} +1 -1
- package/dist/{onboarding-D8p8ii63.js → onboarding-Dnn_0VTy.js} +10 -10
- package/dist/{onboarding-D7hzRo_I.js → onboarding-DxUcsrKV.js} +10 -10
- package/dist/{onboarding.finalize-BJUg2rlZ.js → onboarding.finalize-1kzzMLFM.js} +33 -33
- package/dist/{onboarding.finalize-C-rIKbkf.js → onboarding.finalize-Dwr-jEtL.js} +31 -31
- package/dist/{onboarding.gateway-config-CTbWQvl6.js → onboarding.gateway-config-B9zGPfCl.js} +4 -4
- package/dist/{onboarding.gateway-config-oxW0bLBK.js → onboarding.gateway-config-DKwJ5bWd.js} +4 -4
- package/dist/{outbound-BodV7hPd.js → outbound-BIOChOHt.js} +1 -1
- package/dist/{outbound-BOqx1b0e.js → outbound-Bt8rj9kO.js} +1 -1
- package/dist/{outbound-BhKz3zWF.js → outbound-DL8bdXlZ.js} +1 -1
- package/dist/{outbound-CG3KehgB.js → outbound-wnv03tb3.js} +1 -1
- package/dist/{pairing-cli-RbEs_EMc.js → pairing-cli-DSM82gJG.js} +1 -1
- package/dist/{pairing-cli-NErE7ajG.js → pairing-cli-HDWwcqjZ.js} +1 -1
- package/dist/{pi-embedded-b2yPH0UQ.js → pi-embedded-BfEg6Wwb.js} +377 -247
- package/dist/{pi-embedded-helpers-CeNTB0sV.js → pi-embedded-helpers-BgdB5kvy.js} +1 -1
- package/dist/{pi-embedded-helpers-cgZRM5cz.js → pi-embedded-helpers-DA4liAIZ.js} +1 -1
- package/dist/{pi-embedded-helpers-Bdac0DIf.js → pi-embedded-helpers-Dij3O6ox.js} +5 -5
- package/dist/{pi-embedded-helpers-BDI11Fqj.js → pi-embedded-helpers-GaCyI2oH.js} +5 -5
- package/dist/{pi-tools.policy-BYklnTNc.js → pi-tools.policy-DRWb_Cax.js} +2 -2
- package/dist/{pi-tools.policy-B4NDL7r-.js → pi-tools.policy-DxNwL7Dl.js} +2 -2
- package/dist/{plugin-registry-CzWOGG0k.js → plugin-registry-BMFEJ4FA.js} +2 -2
- package/dist/{plugin-registry-29yLAS46.js → plugin-registry-wAQeBSeD.js} +2 -2
- package/dist/plugin-sdk/agents/session-empty-prune.d.ts +37 -0
- package/dist/plugin-sdk/agents/session-transcript-repair.d.ts +8 -0
- package/dist/plugin-sdk/{audio-preflight-DSEypXnx.js → audio-preflight-BacDFPyc.js} +5 -5
- package/dist/plugin-sdk/{channel-web-DwLIjUen.js → channel-web-Ba27v-Om.js} +7 -7
- package/dist/plugin-sdk/{chrome-DC-la42T.js → chrome-BMimuhgP.js} +1 -1
- package/dist/plugin-sdk/config/model-profiles.d.ts +7 -0
- package/dist/plugin-sdk/config/zod-schema.core.d.ts +2 -0
- package/dist/plugin-sdk/config/zod-schema.d.ts +1 -0
- package/dist/plugin-sdk/{config-DgwyZd2S.js → config-DdA6JiyD.js} +6 -1
- package/dist/plugin-sdk/{deliver-7pgLdSpM.js → deliver-Bxa1-mj5.js} +2 -2
- package/dist/plugin-sdk/{image-CqMZSk6f.js → image-aq-JAobP.js} +2 -2
- package/dist/plugin-sdk/index.js +17 -17
- package/dist/plugin-sdk/{login-DJzS9QT2.js → login-CHgiUvI_.js} +2 -2
- package/dist/plugin-sdk/{login-qr-DziBjQY5.js → login-qr-D5vJo1fy.js} +2 -2
- package/dist/plugin-sdk/{outbound-DmsEc64Z.js → outbound-CD38Hxn9.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-C33OSgwG.js → pi-embedded-helpers-BPvzgLtj.js} +5 -5
- package/dist/plugin-sdk/{pw-ai-MIepjtIO.js → pw-ai-fdBOQzz5.js} +2 -2
- package/dist/plugin-sdk/{replies-Bw1Amxop.js → replies-CW_-4klO.js} +1 -1
- package/dist/plugin-sdk/{reply-BxYNpQRu.js → reply-Bok_WQGW.js} +377 -247
- package/dist/plugin-sdk/{runner-Bh4NdzRK.js → runner-BQJ7x06O.js} +2 -2
- package/dist/plugin-sdk/{send-CENVp2ol.js → send-C4t6h9-o.js} +1 -1
- package/dist/plugin-sdk/{send-Bf62p_ul.js → send-Cz_FQ8Ao.js} +1 -1
- package/dist/plugin-sdk/{send-D5_J2DiV.js → send-DG6c7BpZ.js} +1 -1
- package/dist/plugin-sdk/{send-P1G7c4FN.js → send-HKy51Hz_.js} +1 -1
- package/dist/plugin-sdk/{send-Ddy4p4LW.js → send-Xy1L54q4.js} +1 -1
- package/dist/plugin-sdk/{session-Z4-R_Top.js → session-BUzIlHr9.js} +1 -1
- package/dist/plugin-sdk/{web-DiNM_c37.js → web-BoOAa0Xn.js} +17 -17
- package/dist/plugin-sdk/{whatsapp-actions-Bg6DfWkN.js → whatsapp-actions-CZLagx0h.js} +2 -2
- package/dist/{plugins-cli-D4bGKnOF.js → plugins-cli-B36YKKla.js} +26 -26
- package/dist/{plugins-cli-DZ6arND4.js → plugins-cli-DoJbbST7.js} +27 -27
- package/dist/{program-DE9DbHYV.js → program-4f7W2RMs.js} +33 -33
- package/dist/{program-context-iI9_njQv.js → program-context-Y4KnAKNT.js} +38 -38
- package/dist/{prompt-select-styled-SHa0ZJL9.js → prompt-select-styled-D0sLJ4TD.js} +14 -14
- package/dist/{prompt-select-styled-D0ELdY0x.js → prompt-select-styled-Dql_0SI0.js} +14 -14
- package/dist/{provider-auth-helpers-EMBbfX3w.js → provider-auth-helpers-CJbHC_mv.js} +2 -2
- package/dist/{provider-auth-helpers-BI2k0jlH.js → provider-auth-helpers-GSv3namf.js} +2 -2
- package/dist/{push-apns-DyeCPAvI.js → push-apns-giplY7u-.js} +1 -1
- package/dist/{push-apns-DcbeaY5y.js → push-apns-sxB8QxSj.js} +1 -1
- package/dist/{pw-ai-LB6wkt8h.js → pw-ai-BCSFVeD5.js} +2 -2
- package/dist/{pw-ai-sY1BRRsq.js → pw-ai-BO5cSmwD.js} +2 -2
- package/dist/{pw-ai-C2z2aMEp.js → pw-ai-DQohWnzT.js} +2 -2
- package/dist/{pw-ai-C_7yEh9n.js → pw-ai-pQoxTh-a.js} +2 -2
- package/dist/{qr-cli-B-NWpxfN.js → qr-cli-CejYwqsj.js} +1 -1
- package/dist/{qr-cli-TaubpmtG.js → qr-cli-XttU2KOR.js} +1 -1
- package/dist/{register.agent-D4o7bi_u.js → register.agent-_2tVQLMK.js} +34 -34
- package/dist/{register.agent-D-1w3KOa.js → register.agent-vd2BSsyE.js} +32 -32
- package/dist/{register.configure-BIczNshG.js → register.configure-BVKwTrz8.js} +37 -37
- package/dist/{register.configure-BYCEJg1c.js → register.configure-D-XV6_Nb.js} +36 -36
- package/dist/{register.maintenance-k6z5GVrO.js → register.maintenance-BqYR2fop.js} +36 -36
- package/dist/{register.maintenance-Syt4oSuk.js → register.maintenance-XySU31jf.js} +34 -34
- package/dist/{register.message-Bi7QLNId.js → register.message-CCfWNWs3.js} +26 -26
- package/dist/{register.message-BJeeT9xQ.js → register.message-DOyREWdG.js} +27 -27
- package/dist/{register.onboard-B_FeHkL-.js → register.onboard-Dy_D_uMj.js} +33 -33
- package/dist/{register.onboard-DDbxMjmt.js → register.onboard-zmF-euog.js} +32 -32
- package/dist/{register.setup-Cpl67hQ6.js → register.setup-DiGPa1Fw.js} +32 -32
- package/dist/{register.setup-CPi3uss4.js → register.setup-cE7gPp2m.js} +33 -33
- package/dist/{register.status-health-sessions-DsY8YuEo.js → register.status-health-sessions-DWKL1rkz.js} +29 -29
- package/dist/{register.status-health-sessions-CHPN3CNt.js → register.status-health-sessions-ksv1WnIs.js} +31 -31
- package/dist/{register.subclis-D5JRuk93.js → register.subclis-Crt_IYK0.js} +28 -28
- package/dist/{replies-cMkt1-fW.js → replies-BMqtgBhh.js} +1 -1
- package/dist/{replies-CYuZN9PJ.js → replies-Bo49QlAg.js} +1 -1
- package/dist/{replies-C2sQt_cX.js → replies-CBS0567j.js} +1 -1
- package/dist/{replies-zOTZyd6v.js → replies-CfyMcfoY.js} +1 -1
- package/dist/{reply-D55iMWI5.js → reply-CjYJHt_H.js} +388 -258
- package/dist/{routes-ClhmdN8I.js → routes-BAZTZNuQ.js} +3 -3
- package/dist/{routes-DRkO6iuR.js → routes-CMvgBDOg.js} +3 -3
- package/dist/{rpc-DvA01fCj.js → rpc-Co5PQ3IJ.js} +1 -1
- package/dist/{rpc-UsQvUYIP.js → rpc-D0FiEinj.js} +1 -1
- package/dist/{run-main-BWoPODyq.js → run-main-bOlPbL7t.js} +44 -44
- package/dist/{runner-_7xOqQDP.js → runner-B0AbN8wV.js} +2 -2
- package/dist/{runner-CtF7EgsD.js → runner-Ct0suQrd.js} +2 -2
- package/dist/{runner-D3aZ5p3H.js → runner-DRv0uCK_.js} +3 -3
- package/dist/{runner-z_tSZGY5.js → runner-Dd2bbNGV.js} +3 -3
- package/dist/{sandbox-rjqN2SHD.js → sandbox-B6N8cV4d.js} +5 -5
- package/dist/{sandbox-DrIHYiE6.js → sandbox-DY75ZyJD.js} +5 -5
- package/dist/{sandbox-cli-QpZpJ6Hq.js → sandbox-cli-BDM_QM_f.js} +6 -6
- package/dist/{sandbox-cli-BiiThMpq.js → sandbox-cli-DwzaNjIJ.js} +6 -6
- package/dist/{security-cli-DxNPZzVB.js → security-cli-CG1uSlRK.js} +9 -9
- package/dist/{security-cli-s_AbIm-b.js → security-cli-D5BWzqEJ.js} +9 -9
- package/dist/{send-C1ptDV-M.js → send-9SapUCg7.js} +1 -1
- package/dist/{send-DV8npIWi.js → send-B3RdXvjC.js} +1 -1
- package/dist/{send-CVSO0ZdD.js → send-B7HhiTdx.js} +1 -1
- package/dist/{send-DryK_KEK.js → send-B986asZ7.js} +1 -1
- package/dist/{send-DNJAa7Q_.js → send-B9EinkUl.js} +1 -1
- package/dist/{send-De1p8sZA.js → send-BNnv8GtF.js} +1 -1
- package/dist/{send-B9pwTYyE.js → send-BhJZ16uV.js} +1 -1
- package/dist/{send-B62vYwo8.js → send-Bm4ULEzh.js} +1 -1
- package/dist/{send-BJNUY-9E.js → send-BzKHnf3b.js} +1 -1
- package/dist/{send-C6jy9sVB.js → send-CC9V8V81.js} +1 -1
- package/dist/{send-DK-Jat_i.js → send-CQVnyJyF.js} +1 -1
- package/dist/{send-Dx7S4jGp.js → send-CZemAajS.js} +1 -1
- package/dist/{send-BTXR3fPR.js → send-DI9Vhnmw.js} +1 -1
- package/dist/{send-BvCit35j.js → send-DLWaX69q.js} +1 -1
- package/dist/{send-qSITFlVc.js → send-DSnJ503J.js} +1 -1
- package/dist/{send-B7MtdeLq.js → send-DVm0du0_.js} +1 -1
- package/dist/{send-D8DhbDGm.js → send-DaBsat3L.js} +1 -1
- package/dist/{send-iIqnmxNc.js → send-DdLJtOjk.js} +1 -1
- package/dist/{send-4MJyhXk5.js → send-DlQtxlG_.js} +1 -1
- package/dist/{send-DiYc3Z2y.js → send-RfIXG6-I.js} +1 -1
- package/dist/{server-context-C3fvq6h5.js → server-context-CCBZN8a0.js} +5 -5
- package/dist/{server-context-CtYkBX0P.js → server-context-DK-T2rBR.js} +5 -5
- package/dist/{server-methods-DY-jApXo.js → server-methods-CiwWwj6K.js} +15 -15
- package/dist/{server-methods-C4oRmj--.js → server-methods-VimYvcpY.js} +16 -16
- package/dist/{server-node-events--9s3cGoR.js → server-node-events-CHmLiFNV.js} +27 -27
- package/dist/{server-node-events-Bw6yFsJP.js → server-node-events-DYC45lKC.js} +26 -26
- package/dist/{session-XfYb9nxX.js → session-C1cn-CxQ.js} +1 -1
- package/dist/{session-BmC1G2OF.js → session-CUeezgP1.js} +1 -1
- package/dist/{session-3P44Lx9Z.js → session-DsJGtM7g.js} +1 -1
- package/dist/{session-utils-DlQSI-Te.js → session-utils-B8Fif925.js} +3 -3
- package/dist/{session-BUTPdQjj.js → session-v_9AVJhH.js} +1 -1
- package/dist/{sessions-Dxc5UV-H.js → sessions-Cfa6JEB3.js} +1 -1
- package/dist/{sessions-9tWmT3oM.js → sessions-Cpgnq0pA.js} +1 -1
- package/dist/{sessions-BL_hivz0.js → sessions-DfbhRBHR.js} +3 -3
- package/dist/{shared-DEvSdt0I.js → shared-73T9fyuK.js} +1 -1
- package/dist/{shared-DwzDlNQn.js → shared-DdxPzyOH.js} +1 -1
- package/dist/{skills-cli-BHJAAvDv.js → skills-cli-DXkx4vNV.js} +1 -1
- package/dist/{skills-cli-CES7tX87.js → skills-cli-uEA9KXOO.js} +1 -1
- package/dist/{status-DxqgzaIz.js → status-CA5wJHMj.js} +2 -2
- package/dist/{status-CfCqG5a6.js → status-DEpM69Pd.js} +9 -9
- package/dist/{status-CPQrmN1p.js → status-Dt_MXoNa.js} +2 -2
- package/dist/{status-DZHTCKq_.js → status-DxhtJtzE.js} +10 -10
- package/dist/{status.update-BhJp4NkS.js → status.update-C2GN8s9C.js} +1 -1
- package/dist/{status.update-DqXGFKta.js → status.update-CG0ciGaf.js} +1 -1
- package/dist/{subagent-registry-BGKDFTRA.js → subagent-registry-BPwn3Qm7.js} +389 -259
- package/dist/{system-cli-BrZGQcZl.js → system-cli-DFZNGx0i.js} +3 -3
- package/dist/{system-cli-CjgIC8rh.js → system-cli-Z7uzO8qd.js} +3 -3
- package/dist/{systemd-hints-B8AHs8Nn.js → systemd-hints-DT6cDIM2.js} +1 -1
- package/dist/{systemd-hints-DUXXob94.js → systemd-hints-xYZbFny_.js} +1 -1
- package/dist/{tui-BktCSga7.js → tui-DjPsMdL6.js} +4 -4
- package/dist/{tui-CAzxJ9EP.js → tui-DrATGNms.js} +4 -4
- package/dist/{tui-cli-AXeYpVcb.js → tui-cli-D19-MCXt.js} +9 -9
- package/dist/{tui-cli-Bz3RdHqe.js → tui-cli-pWD_NrUR.js} +9 -9
- package/dist/{unified-runner-BhGMOS0G.js → unified-runner-CVkyzT1I.js} +166 -36
- package/dist/{update-cli-n_Tkv8N_.js → update-cli-Dh_dfprI.js} +39 -39
- package/dist/{update-cli-C8EpxduY.js → update-cli-Dv4c5Gup.js} +37 -37
- package/dist/{update-runner-CowTMnrt.js → update-runner-CG_kbbGR.js} +1 -1
- package/dist/{update-runner-Tk50GxTW.js → update-runner-MMFI1UZ0.js} +1 -1
- package/dist/{web-CMLJq-WC.js → web-BUc-ts5b.js} +16 -16
- package/dist/{web-Cz8o-Hc9.js → web-CJk-lv93.js} +16 -16
- package/dist/{web-ONk39lyq.js → web-CfVd3Mhp.js} +29 -29
- package/dist/{web-BIpIz8vD.js → web-DCBOD-Vj.js} +29 -29
- package/dist/{webhooks-cli-v0rfBwU8.js → webhooks-cli-BRxe4uCg.js} +1 -1
- package/dist/{webhooks-cli-Da8YhVu4.js → webhooks-cli-CsRZl0_H.js} +1 -1
- package/dist/{whatsapp-actions-Cz2qhCrD.js → whatsapp-actions-7YbV2-Fv.js} +2 -2
- package/dist/{whatsapp-actions-Ba3KBpGu.js → whatsapp-actions-BylecqEa.js} +2 -2
- package/dist/{whatsapp-actions-AEeCOVko.js → whatsapp-actions-ChO_shrk.js} +2 -2
- package/dist/{whatsapp-actions-BPn8FtPC.js → whatsapp-actions-mBarFBeS.js} +2 -2
- package/dist/{with-timeout-487M8IgO.js → with-timeout-Cgi3TwWN.js} +1 -1
- package/dist/{with-timeout-BU7MJQDD.js → with-timeout-CtVdu_1U.js} +1 -1
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/learning-loop/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +6 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +6 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +6 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/package.json +1 -1
- package/extensions/pipeline/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +6 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +6 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +6 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +6 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
|
@@ -14,29 +14,29 @@ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discov
|
|
|
14
14
|
import { r as isPathInsideWithRealpath } from "./scan-paths-ppKrtZ9U.js";
|
|
15
15
|
import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-hAdgFdrv.js";
|
|
16
16
|
import { a as safeStatSync, c as applyTestPluginDefaults, d as resolveEnableState, f as resolveMemorySlotDecision, h as isDangerousHostEnvVarName, i as isPathInside, n as loadPluginManifestRegistry, r as discoverSymiPlugins, u as normalizePluginsConfig } from "./manifest-registry-Czr39pxG.js";
|
|
17
|
-
import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-
|
|
17
|
+
import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-BNTB6qj8.js";
|
|
18
18
|
import { Nt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-T3qcxXru.js";
|
|
19
|
-
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-
|
|
19
|
+
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-DKi-hnaF.js";
|
|
20
20
|
import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-C9dERklz.js";
|
|
21
21
|
import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-D0lNkCf6.js";
|
|
22
|
-
import { A as DEFAULT_RESET_TRIGGERS, B as resolveGroupSessionKey, D as resolveSessionResetPolicy, E as resolveChannelResetConfig, F as resolveMainSessionKey, G as deliveryContextKey, J as normalizeSessionDeliveryFields, K as mergeDeliveryContext, L as deriveSessionMetaPatch, O as resolveSessionResetType, P as resolveExplicitAgentSessionKey, T as evaluateSessionFreshness, U as resolveSessionLockMaxHoldFromTimeout, V as acquireSessionWriteLock, W as deliveryContextFromSession, Y as normalizeAccountId$3, _ as capArrayByJsonBytes, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as archiveSessionTranscripts, j as resolveFreshSessionTotalTokens, k as resolveThreadFlag, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as normalizeDeliveryContext, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, w as resolveSessionKey } from "./sessions-
|
|
22
|
+
import { A as DEFAULT_RESET_TRIGGERS, B as resolveGroupSessionKey, D as resolveSessionResetPolicy, E as resolveChannelResetConfig, F as resolveMainSessionKey, G as deliveryContextKey, J as normalizeSessionDeliveryFields, K as mergeDeliveryContext, L as deriveSessionMetaPatch, O as resolveSessionResetType, P as resolveExplicitAgentSessionKey, T as evaluateSessionFreshness, U as resolveSessionLockMaxHoldFromTimeout, V as acquireSessionWriteLock, W as deliveryContextFromSession, Y as normalizeAccountId$3, _ as capArrayByJsonBytes, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as archiveSessionTranscripts, j as resolveFreshSessionTotalTokens, k as resolveThreadFlag, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as normalizeDeliveryContext, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, w as resolveSessionKey } from "./sessions-Cfa6JEB3.js";
|
|
23
23
|
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-Csntmwwn.js";
|
|
24
24
|
import { _ as listEnabledDiscordAccounts, a as isWhatsAppGroupJid, c as listEnabledTelegramAccounts, d as resolveTelegramToken, f as resolveSlackAccount, g as createDiscordActionGate, h as resolveSlackBotToken, l as listTelegramAccountIds, m as resolveSlackAppToken, n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId$1, s as createTelegramActionGate, t as getChannelPlugin, u as resolveTelegramAccount, v as resolveDiscordAccount, y as normalizeDiscordToken } from "./plugins-CwSlLxM8.js";
|
|
25
25
|
import { a as logWebSelfId, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, u as readWebSelfId } from "./accounts-D9ITgITj.js";
|
|
26
26
|
import { t as normalizeChatType } from "./chat-type-CeFzWU-6.js";
|
|
27
|
-
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-
|
|
28
|
-
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-
|
|
29
|
-
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-
|
|
30
|
-
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-
|
|
27
|
+
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-B7HhiTdx.js";
|
|
28
|
+
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-CC9V8V81.js";
|
|
29
|
+
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-Cgi3TwWN.js";
|
|
30
|
+
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-Bu0iWeja.js";
|
|
31
31
|
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-Ci8Xsc_Y.js";
|
|
32
32
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-CIjIGxEE.js";
|
|
33
33
|
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-D1eLj5t8.js";
|
|
34
|
-
import { 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 parseTelegramTarget, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, 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 isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-
|
|
34
|
+
import { 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 parseTelegramTarget, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, 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 isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-DlQtxlG_.js";
|
|
35
35
|
import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-CUkaZz2F.js";
|
|
36
|
-
import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-
|
|
37
|
-
import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-
|
|
38
|
-
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-
|
|
39
|
-
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-
|
|
36
|
+
import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-DA4liAIZ.js";
|
|
37
|
+
import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-DY75ZyJD.js";
|
|
38
|
+
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-DAw-AWNi.js";
|
|
39
|
+
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-DK-T2rBR.js";
|
|
40
40
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-Ba_ROWsq.js";
|
|
41
41
|
import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-OWKu4tXF.js";
|
|
42
42
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-Ixuyn7h8.js";
|
|
@@ -48,9 +48,9 @@ import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveS
|
|
|
48
48
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-D5O01TlD.js";
|
|
49
49
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-CVLISeRT.js";
|
|
50
50
|
import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-8sKPnzpp.js";
|
|
51
|
-
import { t as ensureSymiModelsJson } from "./models-config-
|
|
51
|
+
import { t as ensureSymiModelsJson } from "./models-config-Be8DRFkB.js";
|
|
52
52
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BUN71nd5.js";
|
|
53
|
-
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-
|
|
53
|
+
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-Btzr8gfD.js";
|
|
54
54
|
import { i as resolveMemorySearchConfig } from "./manager-Vb2F7vQq.js";
|
|
55
55
|
import { g as runTasksWithConcurrency } from "./sqlite-CQGamAhm.js";
|
|
56
56
|
import { n as retryAsync } from "./retry-C4Q_VPOo.js";
|
|
@@ -63,13 +63,13 @@ import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMedia
|
|
|
63
63
|
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-D-flMHhr.js";
|
|
64
64
|
import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-CkrIpKCc.js";
|
|
65
65
|
import { a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, i as listChatCommands, l as parseCommandArgs, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices } from "./commands-registry-D1K_inhv.js";
|
|
66
|
-
import { _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as extractTextFromChatContent, 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, y as stripReasoningTagsFromText } from "./image-
|
|
66
|
+
import { _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as extractTextFromChatContent, 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, y as stripReasoningTagsFromText } from "./image-C3wYkWyK.js";
|
|
67
67
|
import { n as resolveToolDisplay } from "./tool-display-CXwOC-qw.js";
|
|
68
68
|
import { n as formatTimeAgo } from "./format-relative-DX-rh76l.js";
|
|
69
69
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-72dOKfLG.js";
|
|
70
|
-
import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-
|
|
71
|
-
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-
|
|
72
|
-
import { a as loadCombinedSessionStoreForGateway, u as lookupContextTokens } from "./session-utils-
|
|
70
|
+
import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-Dd2bbNGV.js";
|
|
71
|
+
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-DNvgFPZn.js";
|
|
72
|
+
import { a as loadCombinedSessionStoreForGateway, u as lookupContextTokens } from "./session-utils-B8Fif925.js";
|
|
73
73
|
import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, x as getSkillsSnapshotVersion } from "./skill-commands-C8BcwE33.js";
|
|
74
74
|
import { i as readChannelAllowFromStore, l as listPairingChannels, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-vpO8vXVN.js";
|
|
75
75
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-BhFkwlZW.js";
|
|
@@ -83,19 +83,19 @@ import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChan
|
|
|
83
83
|
import { n as normalizePollInput } from "./polls-DXeUmcgz.js";
|
|
84
84
|
import { t as convertMarkdownTables } from "./tables-CXWwq-Md.js";
|
|
85
85
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-CPeVoSXJ.js";
|
|
86
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
86
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-rbSHSlcd.js";
|
|
87
87
|
import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-CQar2eKe.js";
|
|
88
88
|
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-BzfEFyPn.js";
|
|
89
|
-
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-
|
|
90
|
-
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-
|
|
89
|
+
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-BhJZ16uV.js";
|
|
90
|
+
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-DSnJ503J.js";
|
|
91
91
|
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CjnIuTqX.js";
|
|
92
92
|
import { t as parseTimeoutMs } from "./parse-timeout-zNJBr1fY.js";
|
|
93
93
|
import { t as makeProxyFetch } from "./proxy-DL3MD6-P.js";
|
|
94
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
95
|
-
import { r as detectBinary } from "./onboard-helpers-
|
|
94
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-Bo49QlAg.js";
|
|
95
|
+
import { r as detectBinary } from "./onboard-helpers-BBtPmJEe.js";
|
|
96
96
|
import { t as resolvePairingIdLabel } from "./pairing-labels-D1HDboV2.js";
|
|
97
97
|
import { t as getActiveWebListener } from "./active-listener-De1JhR4W.js";
|
|
98
|
-
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-
|
|
98
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-DxNwL7Dl.js";
|
|
99
99
|
import { createRequire } from "node:module";
|
|
100
100
|
import { execFileSync, spawn, spawnSync } from "node:child_process";
|
|
101
101
|
import os, { homedir } from "node:os";
|
|
@@ -20374,7 +20374,7 @@ async function routeReply(params) {
|
|
|
20374
20374
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
20375
20375
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
20376
20376
|
try {
|
|
20377
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
20377
|
+
const { deliverOutboundPayloads } = await import("./deliver-Bu0iWeja.js").then((n) => n.n);
|
|
20378
20378
|
return {
|
|
20379
20379
|
ok: true,
|
|
20380
20380
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -32418,7 +32418,8 @@ const BUILTIN_PROFILES = [
|
|
|
32418
32418
|
top_p: .95,
|
|
32419
32419
|
top_k: 20,
|
|
32420
32420
|
max_tokens: 16384,
|
|
32421
|
-
presence_penalty: 1.5
|
|
32421
|
+
presence_penalty: 1.5,
|
|
32422
|
+
chatTemplateKwargs: { preserve_thinking: true }
|
|
32422
32423
|
},
|
|
32423
32424
|
streaming: {
|
|
32424
32425
|
deltaThrottleMs: 50,
|
|
@@ -33152,6 +33153,8 @@ function createModelAwareStreamFn(opts) {
|
|
|
33152
33153
|
if (typeof mergedParams.repeat_penalty === "number") injections.repeat_penalty = mergedParams.repeat_penalty;
|
|
33153
33154
|
if (typeof mergedParams.presence_penalty === "number") injections.presence_penalty = mergedParams.presence_penalty;
|
|
33154
33155
|
if (typeof mergedParams.frequency_penalty === "number") injections.frequency_penalty = mergedParams.frequency_penalty;
|
|
33156
|
+
const chatTemplateKwargs = mergedParams.chatTemplateKwargs ?? mergedParams.chat_template_kwargs;
|
|
33157
|
+
if (chatTemplateKwargs && typeof chatTemplateKwargs === "object" && !Array.isArray(chatTemplateKwargs)) injections.chat_template_kwargs = chatTemplateKwargs;
|
|
33155
33158
|
const isVllm = isVllmProvider(opts.provider, opts.modelId, opts.config);
|
|
33156
33159
|
const isOpenRouter = opts.provider === "openrouter";
|
|
33157
33160
|
const extraHeaders = {};
|
|
@@ -33982,7 +33985,11 @@ function handleMessageUpdate(ctx, evt) {
|
|
|
33982
33985
|
emitAgentEvent({
|
|
33983
33986
|
runId: ctx.params.runId,
|
|
33984
33987
|
stream: "thinking",
|
|
33985
|
-
data: {
|
|
33988
|
+
data: {
|
|
33989
|
+
phase: evtType,
|
|
33990
|
+
delta: thinkingDelta,
|
|
33991
|
+
content: thinkingContent
|
|
33992
|
+
}
|
|
33986
33993
|
});
|
|
33987
33994
|
if (ctx.state.streamReasoning) {
|
|
33988
33995
|
const partialThinking = extractAssistantThinking(msg);
|
|
@@ -36024,6 +36031,338 @@ Use the message tool with buttons:
|
|
|
36024
36031
|
[{"label": "✅ Proceed", "data": "/plan-proceed"}, {"label": "✏️ Modify", "data": "/plan-modify"}, {"label": "❌ Cancel", "data": "/plan-cancel"}]
|
|
36025
36032
|
</plan_mode>`;
|
|
36026
36033
|
|
|
36034
|
+
//#endregion
|
|
36035
|
+
//#region src/agents/session-transcript-repair.ts
|
|
36036
|
+
function isToolCallBlock(block) {
|
|
36037
|
+
if (!block || typeof block !== "object") return false;
|
|
36038
|
+
const type = block.type;
|
|
36039
|
+
return typeof type === "string" && (type === "toolCall" || type === "toolUse" || type === "functionCall");
|
|
36040
|
+
}
|
|
36041
|
+
function hasToolCallInput(block) {
|
|
36042
|
+
const hasInput = "input" in block ? block.input !== void 0 && block.input !== null : false;
|
|
36043
|
+
const hasArguments = "arguments" in block ? block.arguments !== void 0 && block.arguments !== null : false;
|
|
36044
|
+
return hasInput || hasArguments;
|
|
36045
|
+
}
|
|
36046
|
+
function hasNonEmptyStringField(value) {
|
|
36047
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
36048
|
+
}
|
|
36049
|
+
function hasToolCallId(block) {
|
|
36050
|
+
return hasNonEmptyStringField(block.id);
|
|
36051
|
+
}
|
|
36052
|
+
function hasToolCallName(block) {
|
|
36053
|
+
return hasNonEmptyStringField(block.name);
|
|
36054
|
+
}
|
|
36055
|
+
function makeMissingToolResult(params) {
|
|
36056
|
+
return {
|
|
36057
|
+
role: "toolResult",
|
|
36058
|
+
toolCallId: params.toolCallId,
|
|
36059
|
+
toolName: params.toolName ?? "unknown",
|
|
36060
|
+
content: [{
|
|
36061
|
+
type: "text",
|
|
36062
|
+
text: "[symi] missing tool result in session history; inserted synthetic error result for transcript repair."
|
|
36063
|
+
}],
|
|
36064
|
+
isError: true,
|
|
36065
|
+
timestamp: Date.now()
|
|
36066
|
+
};
|
|
36067
|
+
}
|
|
36068
|
+
/**
|
|
36069
|
+
* True when an assistant message has no tool calls and only empty/whitespace
|
|
36070
|
+
* text or thinking blocks. This happens when a stream fails before any
|
|
36071
|
+
* content arrives — the blank entry is otherwise persisted and produces
|
|
36072
|
+
* consecutive same-role messages, which strict providers (vLLM) reject with
|
|
36073
|
+
* "role must alternate" errors that poison the session for every future turn.
|
|
36074
|
+
*/
|
|
36075
|
+
function isEmptyAssistantMessage(message) {
|
|
36076
|
+
if (!message || typeof message !== "object") return false;
|
|
36077
|
+
const msg = message;
|
|
36078
|
+
if (msg.role !== "assistant") return false;
|
|
36079
|
+
if (!Array.isArray(msg.content) || msg.content.length === 0) return true;
|
|
36080
|
+
for (const block of msg.content) {
|
|
36081
|
+
if (!block || typeof block !== "object") continue;
|
|
36082
|
+
const type = block.type;
|
|
36083
|
+
if (type === "toolCall" || type === "toolUse" || type === "functionCall") return false;
|
|
36084
|
+
if (type === "text") {
|
|
36085
|
+
const text = block.text;
|
|
36086
|
+
if (typeof text === "string" && text.trim().length > 0) return false;
|
|
36087
|
+
continue;
|
|
36088
|
+
}
|
|
36089
|
+
if (type === "thinking") {
|
|
36090
|
+
const thinking = block.thinking;
|
|
36091
|
+
if (typeof thinking === "string" && thinking.trim().length > 0) return false;
|
|
36092
|
+
continue;
|
|
36093
|
+
}
|
|
36094
|
+
return false;
|
|
36095
|
+
}
|
|
36096
|
+
return true;
|
|
36097
|
+
}
|
|
36098
|
+
function stripToolResultDetails(messages) {
|
|
36099
|
+
let touched = false;
|
|
36100
|
+
const out = [];
|
|
36101
|
+
for (const msg of messages) {
|
|
36102
|
+
if (!msg || typeof msg !== "object" || msg.role !== "toolResult") {
|
|
36103
|
+
out.push(msg);
|
|
36104
|
+
continue;
|
|
36105
|
+
}
|
|
36106
|
+
if (!("details" in msg)) {
|
|
36107
|
+
out.push(msg);
|
|
36108
|
+
continue;
|
|
36109
|
+
}
|
|
36110
|
+
const { details: _details, ...rest } = msg;
|
|
36111
|
+
touched = true;
|
|
36112
|
+
out.push(rest);
|
|
36113
|
+
}
|
|
36114
|
+
return touched ? out : messages;
|
|
36115
|
+
}
|
|
36116
|
+
function repairToolCallInputs(messages) {
|
|
36117
|
+
let droppedToolCalls = 0;
|
|
36118
|
+
let droppedAssistantMessages = 0;
|
|
36119
|
+
let changed = false;
|
|
36120
|
+
const out = [];
|
|
36121
|
+
for (const msg of messages) {
|
|
36122
|
+
if (!msg || typeof msg !== "object") {
|
|
36123
|
+
out.push(msg);
|
|
36124
|
+
continue;
|
|
36125
|
+
}
|
|
36126
|
+
if (msg.role !== "assistant" || !Array.isArray(msg.content)) {
|
|
36127
|
+
out.push(msg);
|
|
36128
|
+
continue;
|
|
36129
|
+
}
|
|
36130
|
+
const nextContent = [];
|
|
36131
|
+
let droppedInMessage = 0;
|
|
36132
|
+
for (const block of msg.content) {
|
|
36133
|
+
if (isToolCallBlock(block) && (!hasToolCallInput(block) || !hasToolCallId(block) || !hasToolCallName(block))) {
|
|
36134
|
+
droppedToolCalls += 1;
|
|
36135
|
+
droppedInMessage += 1;
|
|
36136
|
+
changed = true;
|
|
36137
|
+
continue;
|
|
36138
|
+
}
|
|
36139
|
+
nextContent.push(block);
|
|
36140
|
+
}
|
|
36141
|
+
if (droppedInMessage > 0) {
|
|
36142
|
+
if (nextContent.length === 0) {
|
|
36143
|
+
droppedAssistantMessages += 1;
|
|
36144
|
+
changed = true;
|
|
36145
|
+
continue;
|
|
36146
|
+
}
|
|
36147
|
+
out.push({
|
|
36148
|
+
...msg,
|
|
36149
|
+
content: nextContent
|
|
36150
|
+
});
|
|
36151
|
+
continue;
|
|
36152
|
+
}
|
|
36153
|
+
out.push(msg);
|
|
36154
|
+
}
|
|
36155
|
+
return {
|
|
36156
|
+
messages: changed ? out : messages,
|
|
36157
|
+
droppedToolCalls,
|
|
36158
|
+
droppedAssistantMessages
|
|
36159
|
+
};
|
|
36160
|
+
}
|
|
36161
|
+
function sanitizeToolCallInputs(messages) {
|
|
36162
|
+
return repairToolCallInputs(messages).messages;
|
|
36163
|
+
}
|
|
36164
|
+
function sanitizeToolUseResultPairing(messages) {
|
|
36165
|
+
return repairToolUseResultPairing(messages).messages;
|
|
36166
|
+
}
|
|
36167
|
+
function repairToolUseResultPairing(messages) {
|
|
36168
|
+
const out = [];
|
|
36169
|
+
const added = [];
|
|
36170
|
+
const seenToolResultIds = /* @__PURE__ */ new Set();
|
|
36171
|
+
let droppedDuplicateCount = 0;
|
|
36172
|
+
let droppedOrphanCount = 0;
|
|
36173
|
+
let moved = false;
|
|
36174
|
+
let changed = false;
|
|
36175
|
+
const pushToolResult = (msg) => {
|
|
36176
|
+
const id = extractToolResultId(msg);
|
|
36177
|
+
if (id && seenToolResultIds.has(id)) {
|
|
36178
|
+
droppedDuplicateCount += 1;
|
|
36179
|
+
changed = true;
|
|
36180
|
+
return;
|
|
36181
|
+
}
|
|
36182
|
+
if (id) seenToolResultIds.add(id);
|
|
36183
|
+
out.push(msg);
|
|
36184
|
+
};
|
|
36185
|
+
for (let i = 0; i < messages.length; i += 1) {
|
|
36186
|
+
const msg = messages[i];
|
|
36187
|
+
if (!msg || typeof msg !== "object") {
|
|
36188
|
+
out.push(msg);
|
|
36189
|
+
continue;
|
|
36190
|
+
}
|
|
36191
|
+
const role = msg.role;
|
|
36192
|
+
if (role !== "assistant") {
|
|
36193
|
+
if (role !== "toolResult") out.push(msg);
|
|
36194
|
+
else {
|
|
36195
|
+
droppedOrphanCount += 1;
|
|
36196
|
+
changed = true;
|
|
36197
|
+
}
|
|
36198
|
+
continue;
|
|
36199
|
+
}
|
|
36200
|
+
const assistant = msg;
|
|
36201
|
+
const stopReason = assistant.stopReason;
|
|
36202
|
+
if (stopReason === "error" || stopReason === "aborted") {
|
|
36203
|
+
out.push(msg);
|
|
36204
|
+
continue;
|
|
36205
|
+
}
|
|
36206
|
+
const toolCalls = extractToolCallsFromAssistant(assistant);
|
|
36207
|
+
if (toolCalls.length === 0) {
|
|
36208
|
+
out.push(msg);
|
|
36209
|
+
continue;
|
|
36210
|
+
}
|
|
36211
|
+
const toolCallIds = new Set(toolCalls.map((t) => t.id));
|
|
36212
|
+
const spanResultsById = /* @__PURE__ */ new Map();
|
|
36213
|
+
const remainder = [];
|
|
36214
|
+
let j = i + 1;
|
|
36215
|
+
for (; j < messages.length; j += 1) {
|
|
36216
|
+
const next = messages[j];
|
|
36217
|
+
if (!next || typeof next !== "object") {
|
|
36218
|
+
remainder.push(next);
|
|
36219
|
+
continue;
|
|
36220
|
+
}
|
|
36221
|
+
const nextRole = next.role;
|
|
36222
|
+
if (nextRole === "assistant") break;
|
|
36223
|
+
if (nextRole === "toolResult") {
|
|
36224
|
+
const toolResult = next;
|
|
36225
|
+
const id = extractToolResultId(toolResult);
|
|
36226
|
+
if (id && toolCallIds.has(id)) {
|
|
36227
|
+
if (seenToolResultIds.has(id)) {
|
|
36228
|
+
droppedDuplicateCount += 1;
|
|
36229
|
+
changed = true;
|
|
36230
|
+
continue;
|
|
36231
|
+
}
|
|
36232
|
+
if (!spanResultsById.has(id)) spanResultsById.set(id, toolResult);
|
|
36233
|
+
continue;
|
|
36234
|
+
}
|
|
36235
|
+
}
|
|
36236
|
+
if (nextRole !== "toolResult") remainder.push(next);
|
|
36237
|
+
else {
|
|
36238
|
+
droppedOrphanCount += 1;
|
|
36239
|
+
changed = true;
|
|
36240
|
+
}
|
|
36241
|
+
}
|
|
36242
|
+
out.push(msg);
|
|
36243
|
+
if (spanResultsById.size > 0 && remainder.length > 0) {
|
|
36244
|
+
moved = true;
|
|
36245
|
+
changed = true;
|
|
36246
|
+
}
|
|
36247
|
+
for (const call of toolCalls) {
|
|
36248
|
+
const existing = spanResultsById.get(call.id);
|
|
36249
|
+
if (existing) pushToolResult(existing);
|
|
36250
|
+
else {
|
|
36251
|
+
const missing = makeMissingToolResult({
|
|
36252
|
+
toolCallId: call.id,
|
|
36253
|
+
toolName: call.name
|
|
36254
|
+
});
|
|
36255
|
+
added.push(missing);
|
|
36256
|
+
changed = true;
|
|
36257
|
+
pushToolResult(missing);
|
|
36258
|
+
}
|
|
36259
|
+
}
|
|
36260
|
+
for (const rem of remainder) {
|
|
36261
|
+
if (!rem || typeof rem !== "object") {
|
|
36262
|
+
out.push(rem);
|
|
36263
|
+
continue;
|
|
36264
|
+
}
|
|
36265
|
+
out.push(rem);
|
|
36266
|
+
}
|
|
36267
|
+
i = j - 1;
|
|
36268
|
+
}
|
|
36269
|
+
const changedOrMoved = changed || moved;
|
|
36270
|
+
return {
|
|
36271
|
+
messages: changedOrMoved ? out : messages,
|
|
36272
|
+
added,
|
|
36273
|
+
droppedDuplicateCount,
|
|
36274
|
+
droppedOrphanCount,
|
|
36275
|
+
moved: changedOrMoved
|
|
36276
|
+
};
|
|
36277
|
+
}
|
|
36278
|
+
|
|
36279
|
+
//#endregion
|
|
36280
|
+
//#region src/agents/session-empty-prune.ts
|
|
36281
|
+
/**
|
|
36282
|
+
* Pre-run prune of empty assistant entries from a session JSONL file.
|
|
36283
|
+
*
|
|
36284
|
+
* When a stream fails before any content arrives, pi-coding-agent persists
|
|
36285
|
+
* an assistant message with an empty content array. If this repeats (e.g. a
|
|
36286
|
+
* misconfigured provider fails on every retry), the session ends up with
|
|
36287
|
+
* hundreds of consecutive empty assistant entries. vLLM and other strict
|
|
36288
|
+
* providers then reject the request with a role-ordering error — once the
|
|
36289
|
+
* session is in that state, every future turn fails until the user runs /new.
|
|
36290
|
+
*
|
|
36291
|
+
* This helper runs before SessionManager opens the file, reads the JSONL
|
|
36292
|
+
* line-by-line, filters out any line whose `message` is an empty-content
|
|
36293
|
+
* assistant, and rewrites the file atomically if anything was dropped. The
|
|
36294
|
+
* in-memory SessionManager state and the on-disk file stay consistent.
|
|
36295
|
+
*
|
|
36296
|
+
* The append guard in {@link ./session-tool-result-guard.ts} prevents new
|
|
36297
|
+
* empty entries from being written; this helper retroactively cleans files
|
|
36298
|
+
* that were poisoned before the guard existed.
|
|
36299
|
+
*
|
|
36300
|
+
* @module
|
|
36301
|
+
*/
|
|
36302
|
+
async function readSessionFile(sessionFile) {
|
|
36303
|
+
try {
|
|
36304
|
+
return await fs$1.readFile(sessionFile, "utf-8");
|
|
36305
|
+
} catch {
|
|
36306
|
+
return null;
|
|
36307
|
+
}
|
|
36308
|
+
}
|
|
36309
|
+
async function writeAtomically(sessionFile, text) {
|
|
36310
|
+
const dir = path.dirname(sessionFile);
|
|
36311
|
+
const base = path.basename(sessionFile);
|
|
36312
|
+
const tmp = path.join(dir, `.${base}.prune-${process.pid}-${Date.now()}.tmp`);
|
|
36313
|
+
await fs$1.writeFile(tmp, text, "utf-8");
|
|
36314
|
+
await fs$1.rename(tmp, sessionFile);
|
|
36315
|
+
}
|
|
36316
|
+
/**
|
|
36317
|
+
* Remove empty assistant JSONL entries from the session file.
|
|
36318
|
+
*
|
|
36319
|
+
* Parses each line; lines that don't parse are preserved verbatim so we don't
|
|
36320
|
+
* lose unknown data. Only lines that parse into a `{type:"message", message:
|
|
36321
|
+
* <empty-assistant>}` entry are dropped.
|
|
36322
|
+
*/
|
|
36323
|
+
async function pruneEmptyAssistantsFromSessionFile(sessionFile) {
|
|
36324
|
+
const raw = await readSessionFile(sessionFile);
|
|
36325
|
+
if (raw === null || raw.length === 0) return {
|
|
36326
|
+
rewrote: false,
|
|
36327
|
+
pruned: 0,
|
|
36328
|
+
unparsable: 0
|
|
36329
|
+
};
|
|
36330
|
+
const lines = raw.split("\n");
|
|
36331
|
+
const kept = [];
|
|
36332
|
+
let pruned = 0;
|
|
36333
|
+
let unparsable = 0;
|
|
36334
|
+
for (const line of lines) {
|
|
36335
|
+
if (line.length === 0) {
|
|
36336
|
+
kept.push(line);
|
|
36337
|
+
continue;
|
|
36338
|
+
}
|
|
36339
|
+
let parsed = null;
|
|
36340
|
+
try {
|
|
36341
|
+
parsed = JSON.parse(line);
|
|
36342
|
+
} catch {
|
|
36343
|
+
unparsable += 1;
|
|
36344
|
+
kept.push(line);
|
|
36345
|
+
continue;
|
|
36346
|
+
}
|
|
36347
|
+
if (parsed?.type === "message" && isEmptyAssistantMessage(parsed.message)) {
|
|
36348
|
+
pruned += 1;
|
|
36349
|
+
continue;
|
|
36350
|
+
}
|
|
36351
|
+
kept.push(line);
|
|
36352
|
+
}
|
|
36353
|
+
if (pruned === 0) return {
|
|
36354
|
+
rewrote: false,
|
|
36355
|
+
pruned: 0,
|
|
36356
|
+
unparsable
|
|
36357
|
+
};
|
|
36358
|
+
await writeAtomically(sessionFile, kept.join("\n"));
|
|
36359
|
+
return {
|
|
36360
|
+
rewrote: true,
|
|
36361
|
+
pruned,
|
|
36362
|
+
unparsable
|
|
36363
|
+
};
|
|
36364
|
+
}
|
|
36365
|
+
|
|
36027
36366
|
//#endregion
|
|
36028
36367
|
//#region src/agents/session-file-repair.ts
|
|
36029
36368
|
function isSessionHeader(entry) {
|
|
@@ -36297,221 +36636,6 @@ function sessionLikelyHasOversizedToolResults(params) {
|
|
|
36297
36636
|
return false;
|
|
36298
36637
|
}
|
|
36299
36638
|
|
|
36300
|
-
//#endregion
|
|
36301
|
-
//#region src/agents/session-transcript-repair.ts
|
|
36302
|
-
function isToolCallBlock(block) {
|
|
36303
|
-
if (!block || typeof block !== "object") return false;
|
|
36304
|
-
const type = block.type;
|
|
36305
|
-
return typeof type === "string" && (type === "toolCall" || type === "toolUse" || type === "functionCall");
|
|
36306
|
-
}
|
|
36307
|
-
function hasToolCallInput(block) {
|
|
36308
|
-
const hasInput = "input" in block ? block.input !== void 0 && block.input !== null : false;
|
|
36309
|
-
const hasArguments = "arguments" in block ? block.arguments !== void 0 && block.arguments !== null : false;
|
|
36310
|
-
return hasInput || hasArguments;
|
|
36311
|
-
}
|
|
36312
|
-
function hasNonEmptyStringField(value) {
|
|
36313
|
-
return typeof value === "string" && value.trim().length > 0;
|
|
36314
|
-
}
|
|
36315
|
-
function hasToolCallId(block) {
|
|
36316
|
-
return hasNonEmptyStringField(block.id);
|
|
36317
|
-
}
|
|
36318
|
-
function hasToolCallName(block) {
|
|
36319
|
-
return hasNonEmptyStringField(block.name);
|
|
36320
|
-
}
|
|
36321
|
-
function makeMissingToolResult(params) {
|
|
36322
|
-
return {
|
|
36323
|
-
role: "toolResult",
|
|
36324
|
-
toolCallId: params.toolCallId,
|
|
36325
|
-
toolName: params.toolName ?? "unknown",
|
|
36326
|
-
content: [{
|
|
36327
|
-
type: "text",
|
|
36328
|
-
text: "[symi] missing tool result in session history; inserted synthetic error result for transcript repair."
|
|
36329
|
-
}],
|
|
36330
|
-
isError: true,
|
|
36331
|
-
timestamp: Date.now()
|
|
36332
|
-
};
|
|
36333
|
-
}
|
|
36334
|
-
function stripToolResultDetails(messages) {
|
|
36335
|
-
let touched = false;
|
|
36336
|
-
const out = [];
|
|
36337
|
-
for (const msg of messages) {
|
|
36338
|
-
if (!msg || typeof msg !== "object" || msg.role !== "toolResult") {
|
|
36339
|
-
out.push(msg);
|
|
36340
|
-
continue;
|
|
36341
|
-
}
|
|
36342
|
-
if (!("details" in msg)) {
|
|
36343
|
-
out.push(msg);
|
|
36344
|
-
continue;
|
|
36345
|
-
}
|
|
36346
|
-
const { details: _details, ...rest } = msg;
|
|
36347
|
-
touched = true;
|
|
36348
|
-
out.push(rest);
|
|
36349
|
-
}
|
|
36350
|
-
return touched ? out : messages;
|
|
36351
|
-
}
|
|
36352
|
-
function repairToolCallInputs(messages) {
|
|
36353
|
-
let droppedToolCalls = 0;
|
|
36354
|
-
let droppedAssistantMessages = 0;
|
|
36355
|
-
let changed = false;
|
|
36356
|
-
const out = [];
|
|
36357
|
-
for (const msg of messages) {
|
|
36358
|
-
if (!msg || typeof msg !== "object") {
|
|
36359
|
-
out.push(msg);
|
|
36360
|
-
continue;
|
|
36361
|
-
}
|
|
36362
|
-
if (msg.role !== "assistant" || !Array.isArray(msg.content)) {
|
|
36363
|
-
out.push(msg);
|
|
36364
|
-
continue;
|
|
36365
|
-
}
|
|
36366
|
-
const nextContent = [];
|
|
36367
|
-
let droppedInMessage = 0;
|
|
36368
|
-
for (const block of msg.content) {
|
|
36369
|
-
if (isToolCallBlock(block) && (!hasToolCallInput(block) || !hasToolCallId(block) || !hasToolCallName(block))) {
|
|
36370
|
-
droppedToolCalls += 1;
|
|
36371
|
-
droppedInMessage += 1;
|
|
36372
|
-
changed = true;
|
|
36373
|
-
continue;
|
|
36374
|
-
}
|
|
36375
|
-
nextContent.push(block);
|
|
36376
|
-
}
|
|
36377
|
-
if (droppedInMessage > 0) {
|
|
36378
|
-
if (nextContent.length === 0) {
|
|
36379
|
-
droppedAssistantMessages += 1;
|
|
36380
|
-
changed = true;
|
|
36381
|
-
continue;
|
|
36382
|
-
}
|
|
36383
|
-
out.push({
|
|
36384
|
-
...msg,
|
|
36385
|
-
content: nextContent
|
|
36386
|
-
});
|
|
36387
|
-
continue;
|
|
36388
|
-
}
|
|
36389
|
-
out.push(msg);
|
|
36390
|
-
}
|
|
36391
|
-
return {
|
|
36392
|
-
messages: changed ? out : messages,
|
|
36393
|
-
droppedToolCalls,
|
|
36394
|
-
droppedAssistantMessages
|
|
36395
|
-
};
|
|
36396
|
-
}
|
|
36397
|
-
function sanitizeToolCallInputs(messages) {
|
|
36398
|
-
return repairToolCallInputs(messages).messages;
|
|
36399
|
-
}
|
|
36400
|
-
function sanitizeToolUseResultPairing(messages) {
|
|
36401
|
-
return repairToolUseResultPairing(messages).messages;
|
|
36402
|
-
}
|
|
36403
|
-
function repairToolUseResultPairing(messages) {
|
|
36404
|
-
const out = [];
|
|
36405
|
-
const added = [];
|
|
36406
|
-
const seenToolResultIds = /* @__PURE__ */ new Set();
|
|
36407
|
-
let droppedDuplicateCount = 0;
|
|
36408
|
-
let droppedOrphanCount = 0;
|
|
36409
|
-
let moved = false;
|
|
36410
|
-
let changed = false;
|
|
36411
|
-
const pushToolResult = (msg) => {
|
|
36412
|
-
const id = extractToolResultId(msg);
|
|
36413
|
-
if (id && seenToolResultIds.has(id)) {
|
|
36414
|
-
droppedDuplicateCount += 1;
|
|
36415
|
-
changed = true;
|
|
36416
|
-
return;
|
|
36417
|
-
}
|
|
36418
|
-
if (id) seenToolResultIds.add(id);
|
|
36419
|
-
out.push(msg);
|
|
36420
|
-
};
|
|
36421
|
-
for (let i = 0; i < messages.length; i += 1) {
|
|
36422
|
-
const msg = messages[i];
|
|
36423
|
-
if (!msg || typeof msg !== "object") {
|
|
36424
|
-
out.push(msg);
|
|
36425
|
-
continue;
|
|
36426
|
-
}
|
|
36427
|
-
const role = msg.role;
|
|
36428
|
-
if (role !== "assistant") {
|
|
36429
|
-
if (role !== "toolResult") out.push(msg);
|
|
36430
|
-
else {
|
|
36431
|
-
droppedOrphanCount += 1;
|
|
36432
|
-
changed = true;
|
|
36433
|
-
}
|
|
36434
|
-
continue;
|
|
36435
|
-
}
|
|
36436
|
-
const assistant = msg;
|
|
36437
|
-
const stopReason = assistant.stopReason;
|
|
36438
|
-
if (stopReason === "error" || stopReason === "aborted") {
|
|
36439
|
-
out.push(msg);
|
|
36440
|
-
continue;
|
|
36441
|
-
}
|
|
36442
|
-
const toolCalls = extractToolCallsFromAssistant(assistant);
|
|
36443
|
-
if (toolCalls.length === 0) {
|
|
36444
|
-
out.push(msg);
|
|
36445
|
-
continue;
|
|
36446
|
-
}
|
|
36447
|
-
const toolCallIds = new Set(toolCalls.map((t) => t.id));
|
|
36448
|
-
const spanResultsById = /* @__PURE__ */ new Map();
|
|
36449
|
-
const remainder = [];
|
|
36450
|
-
let j = i + 1;
|
|
36451
|
-
for (; j < messages.length; j += 1) {
|
|
36452
|
-
const next = messages[j];
|
|
36453
|
-
if (!next || typeof next !== "object") {
|
|
36454
|
-
remainder.push(next);
|
|
36455
|
-
continue;
|
|
36456
|
-
}
|
|
36457
|
-
const nextRole = next.role;
|
|
36458
|
-
if (nextRole === "assistant") break;
|
|
36459
|
-
if (nextRole === "toolResult") {
|
|
36460
|
-
const toolResult = next;
|
|
36461
|
-
const id = extractToolResultId(toolResult);
|
|
36462
|
-
if (id && toolCallIds.has(id)) {
|
|
36463
|
-
if (seenToolResultIds.has(id)) {
|
|
36464
|
-
droppedDuplicateCount += 1;
|
|
36465
|
-
changed = true;
|
|
36466
|
-
continue;
|
|
36467
|
-
}
|
|
36468
|
-
if (!spanResultsById.has(id)) spanResultsById.set(id, toolResult);
|
|
36469
|
-
continue;
|
|
36470
|
-
}
|
|
36471
|
-
}
|
|
36472
|
-
if (nextRole !== "toolResult") remainder.push(next);
|
|
36473
|
-
else {
|
|
36474
|
-
droppedOrphanCount += 1;
|
|
36475
|
-
changed = true;
|
|
36476
|
-
}
|
|
36477
|
-
}
|
|
36478
|
-
out.push(msg);
|
|
36479
|
-
if (spanResultsById.size > 0 && remainder.length > 0) {
|
|
36480
|
-
moved = true;
|
|
36481
|
-
changed = true;
|
|
36482
|
-
}
|
|
36483
|
-
for (const call of toolCalls) {
|
|
36484
|
-
const existing = spanResultsById.get(call.id);
|
|
36485
|
-
if (existing) pushToolResult(existing);
|
|
36486
|
-
else {
|
|
36487
|
-
const missing = makeMissingToolResult({
|
|
36488
|
-
toolCallId: call.id,
|
|
36489
|
-
toolName: call.name
|
|
36490
|
-
});
|
|
36491
|
-
added.push(missing);
|
|
36492
|
-
changed = true;
|
|
36493
|
-
pushToolResult(missing);
|
|
36494
|
-
}
|
|
36495
|
-
}
|
|
36496
|
-
for (const rem of remainder) {
|
|
36497
|
-
if (!rem || typeof rem !== "object") {
|
|
36498
|
-
out.push(rem);
|
|
36499
|
-
continue;
|
|
36500
|
-
}
|
|
36501
|
-
out.push(rem);
|
|
36502
|
-
}
|
|
36503
|
-
i = j - 1;
|
|
36504
|
-
}
|
|
36505
|
-
const changedOrMoved = changed || moved;
|
|
36506
|
-
return {
|
|
36507
|
-
messages: changedOrMoved ? out : messages,
|
|
36508
|
-
added,
|
|
36509
|
-
droppedDuplicateCount,
|
|
36510
|
-
droppedOrphanCount,
|
|
36511
|
-
moved: changedOrMoved
|
|
36512
|
-
};
|
|
36513
|
-
}
|
|
36514
|
-
|
|
36515
36639
|
//#endregion
|
|
36516
36640
|
//#region src/agents/session-tool-result-guard.ts
|
|
36517
36641
|
const GUARD_TRUNCATION_SUFFIX = "\n\n⚠️ [Content truncated during persistence — original exceeded size limit. Use offset/limit parameters or request specific sections for large content.]";
|
|
@@ -36592,6 +36716,10 @@ function installSessionToolResultGuard(sessionManager, opts) {
|
|
|
36592
36716
|
const guardedAppend = (message) => {
|
|
36593
36717
|
let nextMessage = message;
|
|
36594
36718
|
if (message.role === "assistant") {
|
|
36719
|
+
if (isEmptyAssistantMessage(message)) {
|
|
36720
|
+
if (allowSyntheticToolResults && pending.size > 0) flushPendingToolResults();
|
|
36721
|
+
return;
|
|
36722
|
+
}
|
|
36595
36723
|
const sanitized = sanitizeToolCallInputs([message]);
|
|
36596
36724
|
if (sanitized.length === 0) {
|
|
36597
36725
|
if (allowSyntheticToolResults && pending.size > 0) flushPendingToolResults();
|
|
@@ -39793,6 +39921,8 @@ async function runEmbeddedAttempt(params) {
|
|
|
39793
39921
|
});
|
|
39794
39922
|
const versionCheck = await handleSessionVersion(params.sessionFile);
|
|
39795
39923
|
if (versionCheck.archived) log$5.warn(`session archived: created by ${versionCheck.poisonVersion}, known corruption range → ${versionCheck.archivePath}`);
|
|
39924
|
+
const pruneReport = await pruneEmptyAssistantsFromSessionFile(params.sessionFile);
|
|
39925
|
+
if (pruneReport.rewrote) log$5.warn(`session prune: removed ${pruneReport.pruned} empty assistant entries from ${params.sessionFile}`);
|
|
39796
39926
|
await prewarmSessionFile(params.sessionFile);
|
|
39797
39927
|
sessionManager = guardSessionManager(SessionManager.open(params.sessionFile), {
|
|
39798
39928
|
agentId: sessionAgentId,
|
|
@@ -44165,7 +44295,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
44165
44295
|
return;
|
|
44166
44296
|
}
|
|
44167
44297
|
try {
|
|
44168
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
44298
|
+
const { deliverOutboundPayloads } = await import("./deliver-Bu0iWeja.js").then((n) => n.n);
|
|
44169
44299
|
await deliverOutboundPayloads({
|
|
44170
44300
|
cfg: params.cfg,
|
|
44171
44301
|
channel,
|
|
@@ -47619,7 +47749,7 @@ async function describeStickerImage(params) {
|
|
|
47619
47749
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
47620
47750
|
try {
|
|
47621
47751
|
const buffer = await fs$1.readFile(imagePath);
|
|
47622
|
-
const { describeImageWithModel } = await import("./image-
|
|
47752
|
+
const { describeImageWithModel } = await import("./image-C3wYkWyK.js").then((n) => n.n);
|
|
47623
47753
|
return (await describeImageWithModel({
|
|
47624
47754
|
buffer,
|
|
47625
47755
|
fileName: "sticker.webp",
|
|
@@ -48042,7 +48172,7 @@ function createWhatsAppLoginTool() {
|
|
|
48042
48172
|
force: Type.Optional(Type.Boolean())
|
|
48043
48173
|
}),
|
|
48044
48174
|
execute: async (_toolCallId, args) => {
|
|
48045
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
48175
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DPxuLEvD.js");
|
|
48046
48176
|
if ((args?.action ?? "start") === "wait") {
|
|
48047
48177
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
48048
48178
|
return {
|
|
@@ -49418,7 +49548,7 @@ async function preflightDiscordMessage(params) {
|
|
|
49418
49548
|
let preflightTranscript;
|
|
49419
49549
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
49420
49550
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
49421
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
49551
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-XrlQA8IZ.js");
|
|
49422
49552
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
49423
49553
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
49424
49554
|
ctx: {
|
|
@@ -53201,27 +53331,27 @@ function isVoiceChannelType(type) {
|
|
|
53201
53331
|
function createDefaultDeps() {
|
|
53202
53332
|
return {
|
|
53203
53333
|
sendMessageWhatsApp: async (...args) => {
|
|
53204
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
53334
|
+
const { sendMessageWhatsApp } = await import("./web-DCBOD-Vj.js");
|
|
53205
53335
|
return await sendMessageWhatsApp(...args);
|
|
53206
53336
|
},
|
|
53207
53337
|
sendMessageTelegram: async (...args) => {
|
|
53208
|
-
const { sendMessageTelegram } = await import("./send-
|
|
53338
|
+
const { sendMessageTelegram } = await import("./send-DlQtxlG_.js").then((n) => n.l);
|
|
53209
53339
|
return await sendMessageTelegram(...args);
|
|
53210
53340
|
},
|
|
53211
53341
|
sendMessageDiscord: async (...args) => {
|
|
53212
|
-
const { sendMessageDiscord } = await import("./send-
|
|
53342
|
+
const { sendMessageDiscord } = await import("./send-CC9V8V81.js").then((n) => n.t);
|
|
53213
53343
|
return await sendMessageDiscord(...args);
|
|
53214
53344
|
},
|
|
53215
53345
|
sendMessageSlack: async (...args) => {
|
|
53216
|
-
const { sendMessageSlack } = await import("./send-
|
|
53346
|
+
const { sendMessageSlack } = await import("./send-B7HhiTdx.js").then((n) => n.n);
|
|
53217
53347
|
return await sendMessageSlack(...args);
|
|
53218
53348
|
},
|
|
53219
53349
|
sendMessageSignal: async (...args) => {
|
|
53220
|
-
const { sendMessageSignal } = await import("./send-
|
|
53350
|
+
const { sendMessageSignal } = await import("./send-BhJZ16uV.js").then((n) => n.i);
|
|
53221
53351
|
return await sendMessageSignal(...args);
|
|
53222
53352
|
},
|
|
53223
53353
|
sendMessageIMessage: async (...args) => {
|
|
53224
|
-
const { sendMessageIMessage } = await import("./send-
|
|
53354
|
+
const { sendMessageIMessage } = await import("./send-DSnJ503J.js").then((n) => n.n);
|
|
53225
53355
|
return await sendMessageIMessage(...args);
|
|
53226
53356
|
}
|
|
53227
53357
|
};
|
|
@@ -64076,7 +64206,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
64076
64206
|
});
|
|
64077
64207
|
const deliverSlashPayloads = async (replies) => {
|
|
64078
64208
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
64079
|
-
import("./replies-
|
|
64209
|
+
import("./replies-Bo49QlAg.js").then((n) => n.r),
|
|
64080
64210
|
import("./chunk-CQyUJNtc.js").then((n) => n.s),
|
|
64081
64211
|
import("./markdown-tables-D82z_Ahc.js").then((n) => n.t)
|
|
64082
64212
|
]);
|
|
@@ -66349,7 +66479,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
66349
66479
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
66350
66480
|
let preflightTranscript;
|
|
66351
66481
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
66352
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
66482
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-XrlQA8IZ.js");
|
|
66353
66483
|
preflightTranscript = await transcribeFirstAudio({
|
|
66354
66484
|
ctx: {
|
|
66355
66485
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -68503,23 +68633,23 @@ let webLoginQrPromise = null;
|
|
|
68503
68633
|
let webChannelPromise = null;
|
|
68504
68634
|
let whatsappActionsPromise = null;
|
|
68505
68635
|
function loadWebOutbound() {
|
|
68506
|
-
webOutboundPromise ??= import("./outbound-
|
|
68636
|
+
webOutboundPromise ??= import("./outbound-Bt8rj9kO.js").then((n) => n.t);
|
|
68507
68637
|
return webOutboundPromise;
|
|
68508
68638
|
}
|
|
68509
68639
|
function loadWebLogin() {
|
|
68510
|
-
webLoginPromise ??= import("./login-
|
|
68640
|
+
webLoginPromise ??= import("./login-CiVdC-o_.js").then((n) => n.n);
|
|
68511
68641
|
return webLoginPromise;
|
|
68512
68642
|
}
|
|
68513
68643
|
function loadWebLoginQr() {
|
|
68514
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
68644
|
+
webLoginQrPromise ??= import("./login-qr-DPxuLEvD.js");
|
|
68515
68645
|
return webLoginQrPromise;
|
|
68516
68646
|
}
|
|
68517
68647
|
function loadWebChannel() {
|
|
68518
|
-
webChannelPromise ??= import("./web-
|
|
68648
|
+
webChannelPromise ??= import("./web-DCBOD-Vj.js");
|
|
68519
68649
|
return webChannelPromise;
|
|
68520
68650
|
}
|
|
68521
68651
|
function loadWhatsAppActions() {
|
|
68522
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
68652
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-7YbV2-Fv.js");
|
|
68523
68653
|
return whatsappActionsPromise;
|
|
68524
68654
|
}
|
|
68525
68655
|
function createPluginRuntime() {
|