@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
|
@@ -8,8 +8,8 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-ChYu
|
|
|
8
8
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-CUNoPTKm.js";
|
|
9
9
|
import { $ as isRich, A as normalizeE164, D as isRecord$1, E as formatTerminalLink, H as isPlainObject, I as shortenHomeInString, J as setVerbose, K as logVerbose, L as shortenHomePath, P as resolveUserPath, Q as colorize, R as sleep$1, S as clampInt, T as escapeRegExp, U as danger, V as truncateUtf16Safe, Y as shouldLogVerbose, Z as warn, _ as matchPluginCommand, a as normalizeAnyChannelId, b as CONFIG_DIR, ct as normalizeLogLevel, d as createPluginRegistry, et as theme, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, l as requireActivePluginRegistry, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, o as normalizeChannelId$1, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, tt as getChildLogger, u as setActivePluginRegistry, ut as resolvePreferredSymiTmpDir, v as createInternalHookEvent, w as ensureDir$3, y as triggerInternalHook, z as sliceUtf16Safe } from "./registry--_pGht6S.js";
|
|
10
10
|
import { n as retryAsync } from "./retry-ilSJqnz9.js";
|
|
11
|
-
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, At as fetchDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, E as listThreadsDiscord, Et as normalizeChannelSlug, 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 buildChannelKeyCandidates, 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 applyChannelMatchMeta, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-
|
|
12
|
-
import { B as getConfigOverrides, C as resolveIMessageRemoteAttachmentRoots, G as parseConfigPath, H as setConfigOverride, J as isSafeExecutableValue, K as setConfigValueAtPath, R as parseDurationMs, S as resolveIMessageAttachmentRoots, U as unsetConfigOverride, V as resetConfigOverrides, W as getConfigValueAtPath, X as resolveAgentMaxConcurrent, Y as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Z as VERSION, _ as normalizeTelegramCommandName, a as writeConfigFile, b as isInboundPathAllowed, g as TELEGRAM_COMMAND_NAME_PATTERN, i as resolveConfigSnapshotHash, n as loadConfig, o as validateConfigObjectWithPlugins, q as unsetConfigValueAtPath, r as readConfigFileSnapshot, v as resolveTelegramCustomCommands, w as normalizeScpRemoteHost, z as validateJsonSchemaValue } from "./config-
|
|
11
|
+
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, At as fetchDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, E as listThreadsDiscord, Et as normalizeChannelSlug, 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 buildChannelKeyCandidates, 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 applyChannelMatchMeta, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-HKy51Hz_.js";
|
|
12
|
+
import { B as getConfigOverrides, C as resolveIMessageRemoteAttachmentRoots, G as parseConfigPath, H as setConfigOverride, J as isSafeExecutableValue, K as setConfigValueAtPath, R as parseDurationMs, S as resolveIMessageAttachmentRoots, U as unsetConfigOverride, V as resetConfigOverrides, W as getConfigValueAtPath, X as resolveAgentMaxConcurrent, Y as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Z as VERSION, _ as normalizeTelegramCommandName, a as writeConfigFile, b as isInboundPathAllowed, g as TELEGRAM_COMMAND_NAME_PATTERN, i as resolveConfigSnapshotHash, n as loadConfig, o as validateConfigObjectWithPlugins, q as unsetConfigValueAtPath, r as readConfigFileSnapshot, v as resolveTelegramCustomCommands, w as normalizeScpRemoteHost, z as validateJsonSchemaValue } from "./config-DdA6JiyD.js";
|
|
13
13
|
import { a as clearActiveProgressLine, i as defaultRuntime, o as registerActiveProgressLine, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
|
|
14
14
|
import { i as parseBooleanValue$1, n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
|
|
15
15
|
import { $ as resolveShellEnvFallbackTimeoutMs, A as getSoonestCooldownExpiry, B as resolveSymiAgentDir, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as dedupeProfileIds, H as withFileLock, I as listProfilesForProvider, J as DEFAULT_CONTEXT_TOKENS, K as normalizeSecretInput, L as markAuthProfileGood, M as markAuthProfileFailure, N as markAuthProfileUsed, P as resolveApiKeyForProfile, R as ensureAuthProfileStore, S as getApiKeyForModel, T as resolveApiKeyForProvider, X as DEFAULT_PROVIDER, Y as DEFAULT_MODEL, Z as getShellPathFromLoginShell, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, i as findNormalizedProviderValue, j as isProfileInCooldown, k as resolveAuthProfileOrder, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, q as resolveAuthProfileDisplayLabel, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveAuthStorePathForDisplay } from "./model-selection-DduIg_Yt.js";
|
|
@@ -27,38 +27,38 @@ import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel
|
|
|
27
27
|
import { t as normalizeChatType } from "./chat-type-CEMQNtWX.js";
|
|
28
28
|
import { n as resolveMarkdownTableMode } from "./markdown-tables-Dfaqilz6.js";
|
|
29
29
|
import { t as convertMarkdownTables } from "./tables-DR0NmBeH.js";
|
|
30
|
-
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-
|
|
30
|
+
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-Xy1L54q4.js";
|
|
31
31
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-D7Lno-TE.js";
|
|
32
32
|
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-B7YyMnIi.js";
|
|
33
|
-
import { a as createSlackWebClient, c as validateSlackBlocksArray, i as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack } from "./send-
|
|
34
|
-
import { $ as parseTelegramTarget, A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as readChannelAllowFromStore, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as upsertChannelPairingRequest, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, Q as isVoiceCompatibleAudio, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as addChannelAllowFromStoreEntry, X as listPairingChannels, Y as getPairingAdapter, Z as withTelegramApiErrorLogging, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, et as resolveTelegramTargetChatType, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as toLocationContext, o as sendMessageTelegram, p as markdownToTelegramChunks, q as removeChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as formatLocationText, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-
|
|
35
|
-
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as registerUnhandledRejectionHandler, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as buildRandomTempFilePath } from "./runner-
|
|
33
|
+
import { a as createSlackWebClient, c as validateSlackBlocksArray, i as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack } from "./send-DG6c7BpZ.js";
|
|
34
|
+
import { $ as parseTelegramTarget, A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as readChannelAllowFromStore, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as upsertChannelPairingRequest, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, Q as isVoiceCompatibleAudio, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as addChannelAllowFromStoreEntry, X as listPairingChannels, Y as getPairingAdapter, Z as withTelegramApiErrorLogging, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, et as resolveTelegramTargetChatType, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as toLocationContext, o as sendMessageTelegram, p as markdownToTelegramChunks, q as removeChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as formatLocationText, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-Cz_FQ8Ao.js";
|
|
35
|
+
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as registerUnhandledRejectionHandler, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as buildRandomTempFilePath } from "./runner-BQJ7x06O.js";
|
|
36
36
|
import { a as resolveAckReaction, c as resolveHumanDelayConfig, i as resolveResponsePrefixTemplate, n as createReplyPrefixOptions, o as resolveAgentIdentity, s as resolveEffectiveMessagesConfig } from "./reply-prefix-BHuV5t70.js";
|
|
37
37
|
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-CWMflosr.js";
|
|
38
38
|
import { c as getSkillsSnapshotVersion, d as resolvePairingPaths, f as createAsyncLock, i as resolveSkillCommandInvocation, l as generatePairingToken, m as writeJsonAtomic, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as readJsonFile, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as pruneExpiredPending } from "./skill-commands-D-rpF3bM.js";
|
|
39
39
|
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-B1GeRYlu.js";
|
|
40
|
-
import { M as isSecureWebSocketUrl, N as rawDataToString, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
40
|
+
import { M as isSecureWebSocketUrl, N as rawDataToString, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, x as ensureChromeExtensionRelayServer } from "./chrome-BMimuhgP.js";
|
|
41
41
|
import { A as normalizeHyphenSlug, F as resolveChannelGroupRequireMention, I as resolveChannelGroupToolsPolicy, M as normalizeStringEntriesLower, P as resolveChannelGroupPolicy, a as normalizeReasoningLevel, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, i as normalizeElevatedLevel, j as normalizeStringEntries, k as normalizeAtHashSlug, l as resolveResponseUsageMode, m as normalizeSignalMessagingTarget, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-DCNUIAHY.js";
|
|
42
42
|
import { r as resolveIMessageAccount } from "./accounts-Dtszw3Zn.js";
|
|
43
43
|
import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BToL3HlP.js";
|
|
44
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeChannelTargetInput, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as buildTargetResolverSignature, h as throwIfAborted, 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 normalizeTargetForProvider, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-
|
|
45
|
-
import { $ as normalizeToolName, A as isTransientHttpError, At as countToolResults, B as resolveProfile, Bt as resolveChannelResetConfig, C as isContextOverflowError, Ct as deliveryContextKey, D as isRateLimitAssistantError, Dt as normalizeAccountId$3, E as isLikelyContextOverflowError, Et as normalizeSessionDeliveryFields, F as resolveSandboxContext, Ft as normalizeInputProvenance, G as resolveBrowserControlAuth, Gt as resolveFreshSessionTotalTokens, H as resolveExistingPathsWithinRoot, Ht as resolveSessionResetType, I as resolveSandboxRuntimeStatus, It as acquireSessionWriteLock, J as buildPluginToolGroups, Jt as resolveMainSessionKey, K as resolveSandboxConfigForAgent, Kt as canonicalizeMainSessionAlias, L as createBrowserRouteContext, Lt as resolveSessionLockMaxHoldFromTimeout, M as parseImageSizeError, Mt as INPUT_PROVENANCE_KIND_VALUES, N as sanitizeUserFacingText, Nt as applyInputProvenanceToUserMessage, O as isRawApiErrorPayload, Ot as archiveSessionTranscripts, P as ensureSandboxWorkspaceForSession, Pt as hasInterSessionUserProvenance, Q as mergeAlsoAllowPolicy, R as registerBrowserRoutes, Rt as resolveSessionKey, S as isCompactionFailureError, St as deliveryContextFromSession, T as isFailoverErrorMessage, Tt as normalizeDeliveryContext, U as getBridgeAuthForPort, Ut as resolveThreadFlag, V as DEFAULT_UPLOAD_DIR, Vt as resolveSessionResetPolicy, W as ensureBrowserControlAuth, Wt as DEFAULT_RESET_TRIGGERS, X as expandPolicyWithPluginGroups, Xt as resolveGroupSessionKey, Y as collectExplicitAllowlist, Yt as deriveSessionMetaPatch, Z as expandToolGroups, _ as formatRawAssistantErrorForUi, _t as updateLastRoute, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isBillingAssistantError, bt as isCacheEnabled, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as isAntigravityClaude, dt as appendAssistantMessageToSessionTranscript, et as resolveToolProfilePolicy, f as isGoogleModelApi, g as formatBillingErrorMessage, gt as recordSessionMetaFromInbound, h as formatAssistantErrorText, ht as readSessionUpdatedAt, it as buildBootstrapContextFiles, j as parseImageDimensionError, jt as extractToolCallNames, k as isTimeoutErrorMessage, kt as capArrayByJsonBytes, l as extractToolResultId, lt as extractDeliveryInfo, m as classifyFailoverReason, mt as loadSessionStore, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as BILLING_ERROR_USER_MESSAGE, pt as resolveAndPersistSessionFile, q as applyOwnerOnlyToolPolicy, qt as resolveExplicitAgentSessionKey, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as downgradeOpenAIReasoningBlocks, ut as parseSessionThreadInfo, v as getApiErrorPayloadFingerprint, vt as updateSessionStore, w as isFailoverAssistantError, wt as mergeDeliveryContext, x as isCloudCodeAssistFormatError, xt as resolveCacheTtlMs$1, y as isAuthAssistantError, yt as updateSessionStoreEntry, z as resolveBrowserConfig, zt as evaluateSessionFreshness } from "./pi-embedded-helpers-
|
|
44
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeChannelTargetInput, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as buildTargetResolverSignature, h as throwIfAborted, 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 normalizeTargetForProvider, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-Bxa1-mj5.js";
|
|
45
|
+
import { $ as normalizeToolName, A as isTransientHttpError, At as countToolResults, B as resolveProfile, Bt as resolveChannelResetConfig, C as isContextOverflowError, Ct as deliveryContextKey, D as isRateLimitAssistantError, Dt as normalizeAccountId$3, E as isLikelyContextOverflowError, Et as normalizeSessionDeliveryFields, F as resolveSandboxContext, Ft as normalizeInputProvenance, G as resolveBrowserControlAuth, Gt as resolveFreshSessionTotalTokens, H as resolveExistingPathsWithinRoot, Ht as resolveSessionResetType, I as resolveSandboxRuntimeStatus, It as acquireSessionWriteLock, J as buildPluginToolGroups, Jt as resolveMainSessionKey, K as resolveSandboxConfigForAgent, Kt as canonicalizeMainSessionAlias, L as createBrowserRouteContext, Lt as resolveSessionLockMaxHoldFromTimeout, M as parseImageSizeError, Mt as INPUT_PROVENANCE_KIND_VALUES, N as sanitizeUserFacingText, Nt as applyInputProvenanceToUserMessage, O as isRawApiErrorPayload, Ot as archiveSessionTranscripts, P as ensureSandboxWorkspaceForSession, Pt as hasInterSessionUserProvenance, Q as mergeAlsoAllowPolicy, R as registerBrowserRoutes, Rt as resolveSessionKey, S as isCompactionFailureError, St as deliveryContextFromSession, T as isFailoverErrorMessage, Tt as normalizeDeliveryContext, U as getBridgeAuthForPort, Ut as resolveThreadFlag, V as DEFAULT_UPLOAD_DIR, Vt as resolveSessionResetPolicy, W as ensureBrowserControlAuth, Wt as DEFAULT_RESET_TRIGGERS, X as expandPolicyWithPluginGroups, Xt as resolveGroupSessionKey, Y as collectExplicitAllowlist, Yt as deriveSessionMetaPatch, Z as expandToolGroups, _ as formatRawAssistantErrorForUi, _t as updateLastRoute, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isBillingAssistantError, bt as isCacheEnabled, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as isAntigravityClaude, dt as appendAssistantMessageToSessionTranscript, et as resolveToolProfilePolicy, f as isGoogleModelApi, g as formatBillingErrorMessage, gt as recordSessionMetaFromInbound, h as formatAssistantErrorText, ht as readSessionUpdatedAt, it as buildBootstrapContextFiles, j as parseImageDimensionError, jt as extractToolCallNames, k as isTimeoutErrorMessage, kt as capArrayByJsonBytes, l as extractToolResultId, lt as extractDeliveryInfo, m as classifyFailoverReason, mt as loadSessionStore, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as BILLING_ERROR_USER_MESSAGE, pt as resolveAndPersistSessionFile, q as applyOwnerOnlyToolPolicy, qt as resolveExplicitAgentSessionKey, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as downgradeOpenAIReasoningBlocks, ut as parseSessionThreadInfo, v as getApiErrorPayloadFingerprint, vt as updateSessionStore, w as isFailoverAssistantError, wt as mergeDeliveryContext, x as isCloudCodeAssistFormatError, xt as resolveCacheTtlMs$1, y as isAuthAssistantError, yt as updateSessionStoreEntry, z as resolveBrowserConfig, zt as evaluateSessionFreshness } from "./pi-embedded-helpers-BPvzgLtj.js";
|
|
46
46
|
import { n as resolveConversationLabel } from "./conversation-label-yNSj43Jt.js";
|
|
47
47
|
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-A0xdf3yk.js";
|
|
48
48
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-x1D4Vniz.js";
|
|
49
49
|
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-EyuCSUXO.js";
|
|
50
50
|
import { i as saveMediaBuffer, r as getMediaDir } from "./store-Do3t33-c.js";
|
|
51
51
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-D5EzMeL_.js";
|
|
52
|
-
import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as resolveToolDisplay, x as ensureSymiModelsJson, y as stripReasoningTagsFromText } from "./image-
|
|
52
|
+
import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as resolveToolDisplay, x as ensureSymiModelsJson, y as stripReasoningTagsFromText } from "./image-aq-JAobP.js";
|
|
53
53
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-LbcEa65a.js";
|
|
54
54
|
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, v as runTasksWithConcurrency } from "./sqlite-Cq_7Cg4E.js";
|
|
55
55
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Wd5tNeQG.js";
|
|
56
56
|
import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-CJXUXj6F.js";
|
|
57
57
|
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-C9W8UWBh.js";
|
|
58
|
-
import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-
|
|
58
|
+
import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-C4t6h9-o.js";
|
|
59
59
|
import { t as makeProxyFetch } from "./proxy-MquBDehr.js";
|
|
60
60
|
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-D3JH_D2N.js";
|
|
61
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
61
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-CW_-4klO.js";
|
|
62
62
|
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-CcR0OJ6f.js";
|
|
63
63
|
import { t as getActiveWebListener } from "./active-listener-BRYwA2Ic.js";
|
|
64
64
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-Bug27PHS.js";
|
|
@@ -15491,7 +15491,7 @@ async function routeReply(params) {
|
|
|
15491
15491
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
15492
15492
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
15493
15493
|
try {
|
|
15494
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
15494
|
+
const { deliverOutboundPayloads } = await import("./deliver-Bxa1-mj5.js").then((n) => n.n);
|
|
15495
15495
|
return {
|
|
15496
15496
|
ok: true,
|
|
15497
15497
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -17965,7 +17965,7 @@ async function describeStickerImage(params) {
|
|
|
17965
17965
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
17966
17966
|
try {
|
|
17967
17967
|
const buffer = await fs$1.readFile(imagePath);
|
|
17968
|
-
const { describeImageWithModel } = await import("./image-
|
|
17968
|
+
const { describeImageWithModel } = await import("./image-aq-JAobP.js").then((n) => n.n);
|
|
17969
17969
|
return (await describeImageWithModel({
|
|
17970
17970
|
buffer,
|
|
17971
17971
|
fileName: "sticker.webp",
|
|
@@ -18376,7 +18376,7 @@ function createWhatsAppLoginTool() {
|
|
|
18376
18376
|
force: Type.Optional(Type.Boolean())
|
|
18377
18377
|
}),
|
|
18378
18378
|
execute: async (_toolCallId, args) => {
|
|
18379
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
18379
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-D5vJo1fy.js");
|
|
18380
18380
|
if ((args?.action ?? "start") === "wait") {
|
|
18381
18381
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
18382
18382
|
return {
|
|
@@ -20444,7 +20444,7 @@ async function preflightDiscordMessage(params) {
|
|
|
20444
20444
|
let preflightTranscript;
|
|
20445
20445
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
20446
20446
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
20447
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
20447
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-BacDFPyc.js");
|
|
20448
20448
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
20449
20449
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
20450
20450
|
ctx: {
|
|
@@ -27243,7 +27243,8 @@ const BUILTIN_PROFILES = [
|
|
|
27243
27243
|
top_p: .95,
|
|
27244
27244
|
top_k: 20,
|
|
27245
27245
|
max_tokens: 16384,
|
|
27246
|
-
presence_penalty: 1.5
|
|
27246
|
+
presence_penalty: 1.5,
|
|
27247
|
+
chatTemplateKwargs: { preserve_thinking: true }
|
|
27247
27248
|
},
|
|
27248
27249
|
streaming: {
|
|
27249
27250
|
deltaThrottleMs: 50,
|
|
@@ -28033,6 +28034,8 @@ function createModelAwareStreamFn(opts) {
|
|
|
28033
28034
|
if (typeof mergedParams.repeat_penalty === "number") injections.repeat_penalty = mergedParams.repeat_penalty;
|
|
28034
28035
|
if (typeof mergedParams.presence_penalty === "number") injections.presence_penalty = mergedParams.presence_penalty;
|
|
28035
28036
|
if (typeof mergedParams.frequency_penalty === "number") injections.frequency_penalty = mergedParams.frequency_penalty;
|
|
28037
|
+
const chatTemplateKwargs = mergedParams.chatTemplateKwargs ?? mergedParams.chat_template_kwargs;
|
|
28038
|
+
if (chatTemplateKwargs && typeof chatTemplateKwargs === "object" && !Array.isArray(chatTemplateKwargs)) injections.chat_template_kwargs = chatTemplateKwargs;
|
|
28036
28039
|
const isVllm = isVllmProvider(opts.provider, opts.modelId, opts.config);
|
|
28037
28040
|
const isOpenRouter = opts.provider === "openrouter";
|
|
28038
28041
|
const extraHeaders = {};
|
|
@@ -28640,7 +28643,11 @@ function handleMessageUpdate(ctx, evt) {
|
|
|
28640
28643
|
emitAgentEvent({
|
|
28641
28644
|
runId: ctx.params.runId,
|
|
28642
28645
|
stream: "thinking",
|
|
28643
|
-
data: {
|
|
28646
|
+
data: {
|
|
28647
|
+
phase: evtType,
|
|
28648
|
+
delta: thinkingDelta,
|
|
28649
|
+
content: thinkingContent
|
|
28650
|
+
}
|
|
28644
28651
|
});
|
|
28645
28652
|
if (ctx.state.streamReasoning) {
|
|
28646
28653
|
const partialThinking = extractAssistantThinking(msg);
|
|
@@ -30695,6 +30702,338 @@ Use the message tool with buttons:
|
|
|
30695
30702
|
[{"label": "✅ Proceed", "data": "/plan-proceed"}, {"label": "✏️ Modify", "data": "/plan-modify"}, {"label": "❌ Cancel", "data": "/plan-cancel"}]
|
|
30696
30703
|
</plan_mode>`;
|
|
30697
30704
|
|
|
30705
|
+
//#endregion
|
|
30706
|
+
//#region src/agents/session-transcript-repair.ts
|
|
30707
|
+
function isToolCallBlock(block) {
|
|
30708
|
+
if (!block || typeof block !== "object") return false;
|
|
30709
|
+
const type = block.type;
|
|
30710
|
+
return typeof type === "string" && (type === "toolCall" || type === "toolUse" || type === "functionCall");
|
|
30711
|
+
}
|
|
30712
|
+
function hasToolCallInput(block) {
|
|
30713
|
+
const hasInput = "input" in block ? block.input !== void 0 && block.input !== null : false;
|
|
30714
|
+
const hasArguments = "arguments" in block ? block.arguments !== void 0 && block.arguments !== null : false;
|
|
30715
|
+
return hasInput || hasArguments;
|
|
30716
|
+
}
|
|
30717
|
+
function hasNonEmptyStringField(value) {
|
|
30718
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
30719
|
+
}
|
|
30720
|
+
function hasToolCallId(block) {
|
|
30721
|
+
return hasNonEmptyStringField(block.id);
|
|
30722
|
+
}
|
|
30723
|
+
function hasToolCallName(block) {
|
|
30724
|
+
return hasNonEmptyStringField(block.name);
|
|
30725
|
+
}
|
|
30726
|
+
function makeMissingToolResult(params) {
|
|
30727
|
+
return {
|
|
30728
|
+
role: "toolResult",
|
|
30729
|
+
toolCallId: params.toolCallId,
|
|
30730
|
+
toolName: params.toolName ?? "unknown",
|
|
30731
|
+
content: [{
|
|
30732
|
+
type: "text",
|
|
30733
|
+
text: "[symi] missing tool result in session history; inserted synthetic error result for transcript repair."
|
|
30734
|
+
}],
|
|
30735
|
+
isError: true,
|
|
30736
|
+
timestamp: Date.now()
|
|
30737
|
+
};
|
|
30738
|
+
}
|
|
30739
|
+
/**
|
|
30740
|
+
* True when an assistant message has no tool calls and only empty/whitespace
|
|
30741
|
+
* text or thinking blocks. This happens when a stream fails before any
|
|
30742
|
+
* content arrives — the blank entry is otherwise persisted and produces
|
|
30743
|
+
* consecutive same-role messages, which strict providers (vLLM) reject with
|
|
30744
|
+
* "role must alternate" errors that poison the session for every future turn.
|
|
30745
|
+
*/
|
|
30746
|
+
function isEmptyAssistantMessage(message) {
|
|
30747
|
+
if (!message || typeof message !== "object") return false;
|
|
30748
|
+
const msg = message;
|
|
30749
|
+
if (msg.role !== "assistant") return false;
|
|
30750
|
+
if (!Array.isArray(msg.content) || msg.content.length === 0) return true;
|
|
30751
|
+
for (const block of msg.content) {
|
|
30752
|
+
if (!block || typeof block !== "object") continue;
|
|
30753
|
+
const type = block.type;
|
|
30754
|
+
if (type === "toolCall" || type === "toolUse" || type === "functionCall") return false;
|
|
30755
|
+
if (type === "text") {
|
|
30756
|
+
const text = block.text;
|
|
30757
|
+
if (typeof text === "string" && text.trim().length > 0) return false;
|
|
30758
|
+
continue;
|
|
30759
|
+
}
|
|
30760
|
+
if (type === "thinking") {
|
|
30761
|
+
const thinking = block.thinking;
|
|
30762
|
+
if (typeof thinking === "string" && thinking.trim().length > 0) return false;
|
|
30763
|
+
continue;
|
|
30764
|
+
}
|
|
30765
|
+
return false;
|
|
30766
|
+
}
|
|
30767
|
+
return true;
|
|
30768
|
+
}
|
|
30769
|
+
function stripToolResultDetails(messages) {
|
|
30770
|
+
let touched = false;
|
|
30771
|
+
const out = [];
|
|
30772
|
+
for (const msg of messages) {
|
|
30773
|
+
if (!msg || typeof msg !== "object" || msg.role !== "toolResult") {
|
|
30774
|
+
out.push(msg);
|
|
30775
|
+
continue;
|
|
30776
|
+
}
|
|
30777
|
+
if (!("details" in msg)) {
|
|
30778
|
+
out.push(msg);
|
|
30779
|
+
continue;
|
|
30780
|
+
}
|
|
30781
|
+
const { details: _details, ...rest } = msg;
|
|
30782
|
+
touched = true;
|
|
30783
|
+
out.push(rest);
|
|
30784
|
+
}
|
|
30785
|
+
return touched ? out : messages;
|
|
30786
|
+
}
|
|
30787
|
+
function repairToolCallInputs(messages) {
|
|
30788
|
+
let droppedToolCalls = 0;
|
|
30789
|
+
let droppedAssistantMessages = 0;
|
|
30790
|
+
let changed = false;
|
|
30791
|
+
const out = [];
|
|
30792
|
+
for (const msg of messages) {
|
|
30793
|
+
if (!msg || typeof msg !== "object") {
|
|
30794
|
+
out.push(msg);
|
|
30795
|
+
continue;
|
|
30796
|
+
}
|
|
30797
|
+
if (msg.role !== "assistant" || !Array.isArray(msg.content)) {
|
|
30798
|
+
out.push(msg);
|
|
30799
|
+
continue;
|
|
30800
|
+
}
|
|
30801
|
+
const nextContent = [];
|
|
30802
|
+
let droppedInMessage = 0;
|
|
30803
|
+
for (const block of msg.content) {
|
|
30804
|
+
if (isToolCallBlock(block) && (!hasToolCallInput(block) || !hasToolCallId(block) || !hasToolCallName(block))) {
|
|
30805
|
+
droppedToolCalls += 1;
|
|
30806
|
+
droppedInMessage += 1;
|
|
30807
|
+
changed = true;
|
|
30808
|
+
continue;
|
|
30809
|
+
}
|
|
30810
|
+
nextContent.push(block);
|
|
30811
|
+
}
|
|
30812
|
+
if (droppedInMessage > 0) {
|
|
30813
|
+
if (nextContent.length === 0) {
|
|
30814
|
+
droppedAssistantMessages += 1;
|
|
30815
|
+
changed = true;
|
|
30816
|
+
continue;
|
|
30817
|
+
}
|
|
30818
|
+
out.push({
|
|
30819
|
+
...msg,
|
|
30820
|
+
content: nextContent
|
|
30821
|
+
});
|
|
30822
|
+
continue;
|
|
30823
|
+
}
|
|
30824
|
+
out.push(msg);
|
|
30825
|
+
}
|
|
30826
|
+
return {
|
|
30827
|
+
messages: changed ? out : messages,
|
|
30828
|
+
droppedToolCalls,
|
|
30829
|
+
droppedAssistantMessages
|
|
30830
|
+
};
|
|
30831
|
+
}
|
|
30832
|
+
function sanitizeToolCallInputs(messages) {
|
|
30833
|
+
return repairToolCallInputs(messages).messages;
|
|
30834
|
+
}
|
|
30835
|
+
function sanitizeToolUseResultPairing(messages) {
|
|
30836
|
+
return repairToolUseResultPairing(messages).messages;
|
|
30837
|
+
}
|
|
30838
|
+
function repairToolUseResultPairing(messages) {
|
|
30839
|
+
const out = [];
|
|
30840
|
+
const added = [];
|
|
30841
|
+
const seenToolResultIds = /* @__PURE__ */ new Set();
|
|
30842
|
+
let droppedDuplicateCount = 0;
|
|
30843
|
+
let droppedOrphanCount = 0;
|
|
30844
|
+
let moved = false;
|
|
30845
|
+
let changed = false;
|
|
30846
|
+
const pushToolResult = (msg) => {
|
|
30847
|
+
const id = extractToolResultId(msg);
|
|
30848
|
+
if (id && seenToolResultIds.has(id)) {
|
|
30849
|
+
droppedDuplicateCount += 1;
|
|
30850
|
+
changed = true;
|
|
30851
|
+
return;
|
|
30852
|
+
}
|
|
30853
|
+
if (id) seenToolResultIds.add(id);
|
|
30854
|
+
out.push(msg);
|
|
30855
|
+
};
|
|
30856
|
+
for (let i = 0; i < messages.length; i += 1) {
|
|
30857
|
+
const msg = messages[i];
|
|
30858
|
+
if (!msg || typeof msg !== "object") {
|
|
30859
|
+
out.push(msg);
|
|
30860
|
+
continue;
|
|
30861
|
+
}
|
|
30862
|
+
const role = msg.role;
|
|
30863
|
+
if (role !== "assistant") {
|
|
30864
|
+
if (role !== "toolResult") out.push(msg);
|
|
30865
|
+
else {
|
|
30866
|
+
droppedOrphanCount += 1;
|
|
30867
|
+
changed = true;
|
|
30868
|
+
}
|
|
30869
|
+
continue;
|
|
30870
|
+
}
|
|
30871
|
+
const assistant = msg;
|
|
30872
|
+
const stopReason = assistant.stopReason;
|
|
30873
|
+
if (stopReason === "error" || stopReason === "aborted") {
|
|
30874
|
+
out.push(msg);
|
|
30875
|
+
continue;
|
|
30876
|
+
}
|
|
30877
|
+
const toolCalls = extractToolCallsFromAssistant(assistant);
|
|
30878
|
+
if (toolCalls.length === 0) {
|
|
30879
|
+
out.push(msg);
|
|
30880
|
+
continue;
|
|
30881
|
+
}
|
|
30882
|
+
const toolCallIds = new Set(toolCalls.map((t) => t.id));
|
|
30883
|
+
const spanResultsById = /* @__PURE__ */ new Map();
|
|
30884
|
+
const remainder = [];
|
|
30885
|
+
let j = i + 1;
|
|
30886
|
+
for (; j < messages.length; j += 1) {
|
|
30887
|
+
const next = messages[j];
|
|
30888
|
+
if (!next || typeof next !== "object") {
|
|
30889
|
+
remainder.push(next);
|
|
30890
|
+
continue;
|
|
30891
|
+
}
|
|
30892
|
+
const nextRole = next.role;
|
|
30893
|
+
if (nextRole === "assistant") break;
|
|
30894
|
+
if (nextRole === "toolResult") {
|
|
30895
|
+
const toolResult = next;
|
|
30896
|
+
const id = extractToolResultId(toolResult);
|
|
30897
|
+
if (id && toolCallIds.has(id)) {
|
|
30898
|
+
if (seenToolResultIds.has(id)) {
|
|
30899
|
+
droppedDuplicateCount += 1;
|
|
30900
|
+
changed = true;
|
|
30901
|
+
continue;
|
|
30902
|
+
}
|
|
30903
|
+
if (!spanResultsById.has(id)) spanResultsById.set(id, toolResult);
|
|
30904
|
+
continue;
|
|
30905
|
+
}
|
|
30906
|
+
}
|
|
30907
|
+
if (nextRole !== "toolResult") remainder.push(next);
|
|
30908
|
+
else {
|
|
30909
|
+
droppedOrphanCount += 1;
|
|
30910
|
+
changed = true;
|
|
30911
|
+
}
|
|
30912
|
+
}
|
|
30913
|
+
out.push(msg);
|
|
30914
|
+
if (spanResultsById.size > 0 && remainder.length > 0) {
|
|
30915
|
+
moved = true;
|
|
30916
|
+
changed = true;
|
|
30917
|
+
}
|
|
30918
|
+
for (const call of toolCalls) {
|
|
30919
|
+
const existing = spanResultsById.get(call.id);
|
|
30920
|
+
if (existing) pushToolResult(existing);
|
|
30921
|
+
else {
|
|
30922
|
+
const missing = makeMissingToolResult({
|
|
30923
|
+
toolCallId: call.id,
|
|
30924
|
+
toolName: call.name
|
|
30925
|
+
});
|
|
30926
|
+
added.push(missing);
|
|
30927
|
+
changed = true;
|
|
30928
|
+
pushToolResult(missing);
|
|
30929
|
+
}
|
|
30930
|
+
}
|
|
30931
|
+
for (const rem of remainder) {
|
|
30932
|
+
if (!rem || typeof rem !== "object") {
|
|
30933
|
+
out.push(rem);
|
|
30934
|
+
continue;
|
|
30935
|
+
}
|
|
30936
|
+
out.push(rem);
|
|
30937
|
+
}
|
|
30938
|
+
i = j - 1;
|
|
30939
|
+
}
|
|
30940
|
+
const changedOrMoved = changed || moved;
|
|
30941
|
+
return {
|
|
30942
|
+
messages: changedOrMoved ? out : messages,
|
|
30943
|
+
added,
|
|
30944
|
+
droppedDuplicateCount,
|
|
30945
|
+
droppedOrphanCount,
|
|
30946
|
+
moved: changedOrMoved
|
|
30947
|
+
};
|
|
30948
|
+
}
|
|
30949
|
+
|
|
30950
|
+
//#endregion
|
|
30951
|
+
//#region src/agents/session-empty-prune.ts
|
|
30952
|
+
/**
|
|
30953
|
+
* Pre-run prune of empty assistant entries from a session JSONL file.
|
|
30954
|
+
*
|
|
30955
|
+
* When a stream fails before any content arrives, pi-coding-agent persists
|
|
30956
|
+
* an assistant message with an empty content array. If this repeats (e.g. a
|
|
30957
|
+
* misconfigured provider fails on every retry), the session ends up with
|
|
30958
|
+
* hundreds of consecutive empty assistant entries. vLLM and other strict
|
|
30959
|
+
* providers then reject the request with a role-ordering error — once the
|
|
30960
|
+
* session is in that state, every future turn fails until the user runs /new.
|
|
30961
|
+
*
|
|
30962
|
+
* This helper runs before SessionManager opens the file, reads the JSONL
|
|
30963
|
+
* line-by-line, filters out any line whose `message` is an empty-content
|
|
30964
|
+
* assistant, and rewrites the file atomically if anything was dropped. The
|
|
30965
|
+
* in-memory SessionManager state and the on-disk file stay consistent.
|
|
30966
|
+
*
|
|
30967
|
+
* The append guard in {@link ./session-tool-result-guard.ts} prevents new
|
|
30968
|
+
* empty entries from being written; this helper retroactively cleans files
|
|
30969
|
+
* that were poisoned before the guard existed.
|
|
30970
|
+
*
|
|
30971
|
+
* @module
|
|
30972
|
+
*/
|
|
30973
|
+
async function readSessionFile(sessionFile) {
|
|
30974
|
+
try {
|
|
30975
|
+
return await fs$1.readFile(sessionFile, "utf-8");
|
|
30976
|
+
} catch {
|
|
30977
|
+
return null;
|
|
30978
|
+
}
|
|
30979
|
+
}
|
|
30980
|
+
async function writeAtomically(sessionFile, text) {
|
|
30981
|
+
const dir = path.dirname(sessionFile);
|
|
30982
|
+
const base = path.basename(sessionFile);
|
|
30983
|
+
const tmp = path.join(dir, `.${base}.prune-${process.pid}-${Date.now()}.tmp`);
|
|
30984
|
+
await fs$1.writeFile(tmp, text, "utf-8");
|
|
30985
|
+
await fs$1.rename(tmp, sessionFile);
|
|
30986
|
+
}
|
|
30987
|
+
/**
|
|
30988
|
+
* Remove empty assistant JSONL entries from the session file.
|
|
30989
|
+
*
|
|
30990
|
+
* Parses each line; lines that don't parse are preserved verbatim so we don't
|
|
30991
|
+
* lose unknown data. Only lines that parse into a `{type:"message", message:
|
|
30992
|
+
* <empty-assistant>}` entry are dropped.
|
|
30993
|
+
*/
|
|
30994
|
+
async function pruneEmptyAssistantsFromSessionFile(sessionFile) {
|
|
30995
|
+
const raw = await readSessionFile(sessionFile);
|
|
30996
|
+
if (raw === null || raw.length === 0) return {
|
|
30997
|
+
rewrote: false,
|
|
30998
|
+
pruned: 0,
|
|
30999
|
+
unparsable: 0
|
|
31000
|
+
};
|
|
31001
|
+
const lines = raw.split("\n");
|
|
31002
|
+
const kept = [];
|
|
31003
|
+
let pruned = 0;
|
|
31004
|
+
let unparsable = 0;
|
|
31005
|
+
for (const line of lines) {
|
|
31006
|
+
if (line.length === 0) {
|
|
31007
|
+
kept.push(line);
|
|
31008
|
+
continue;
|
|
31009
|
+
}
|
|
31010
|
+
let parsed = null;
|
|
31011
|
+
try {
|
|
31012
|
+
parsed = JSON.parse(line);
|
|
31013
|
+
} catch {
|
|
31014
|
+
unparsable += 1;
|
|
31015
|
+
kept.push(line);
|
|
31016
|
+
continue;
|
|
31017
|
+
}
|
|
31018
|
+
if (parsed?.type === "message" && isEmptyAssistantMessage(parsed.message)) {
|
|
31019
|
+
pruned += 1;
|
|
31020
|
+
continue;
|
|
31021
|
+
}
|
|
31022
|
+
kept.push(line);
|
|
31023
|
+
}
|
|
31024
|
+
if (pruned === 0) return {
|
|
31025
|
+
rewrote: false,
|
|
31026
|
+
pruned: 0,
|
|
31027
|
+
unparsable
|
|
31028
|
+
};
|
|
31029
|
+
await writeAtomically(sessionFile, kept.join("\n"));
|
|
31030
|
+
return {
|
|
31031
|
+
rewrote: true,
|
|
31032
|
+
pruned,
|
|
31033
|
+
unparsable
|
|
31034
|
+
};
|
|
31035
|
+
}
|
|
31036
|
+
|
|
30698
31037
|
//#endregion
|
|
30699
31038
|
//#region src/agents/session-file-repair.ts
|
|
30700
31039
|
function isSessionHeader(entry) {
|
|
@@ -30968,221 +31307,6 @@ function sessionLikelyHasOversizedToolResults(params) {
|
|
|
30968
31307
|
return false;
|
|
30969
31308
|
}
|
|
30970
31309
|
|
|
30971
|
-
//#endregion
|
|
30972
|
-
//#region src/agents/session-transcript-repair.ts
|
|
30973
|
-
function isToolCallBlock(block) {
|
|
30974
|
-
if (!block || typeof block !== "object") return false;
|
|
30975
|
-
const type = block.type;
|
|
30976
|
-
return typeof type === "string" && (type === "toolCall" || type === "toolUse" || type === "functionCall");
|
|
30977
|
-
}
|
|
30978
|
-
function hasToolCallInput(block) {
|
|
30979
|
-
const hasInput = "input" in block ? block.input !== void 0 && block.input !== null : false;
|
|
30980
|
-
const hasArguments = "arguments" in block ? block.arguments !== void 0 && block.arguments !== null : false;
|
|
30981
|
-
return hasInput || hasArguments;
|
|
30982
|
-
}
|
|
30983
|
-
function hasNonEmptyStringField(value) {
|
|
30984
|
-
return typeof value === "string" && value.trim().length > 0;
|
|
30985
|
-
}
|
|
30986
|
-
function hasToolCallId(block) {
|
|
30987
|
-
return hasNonEmptyStringField(block.id);
|
|
30988
|
-
}
|
|
30989
|
-
function hasToolCallName(block) {
|
|
30990
|
-
return hasNonEmptyStringField(block.name);
|
|
30991
|
-
}
|
|
30992
|
-
function makeMissingToolResult(params) {
|
|
30993
|
-
return {
|
|
30994
|
-
role: "toolResult",
|
|
30995
|
-
toolCallId: params.toolCallId,
|
|
30996
|
-
toolName: params.toolName ?? "unknown",
|
|
30997
|
-
content: [{
|
|
30998
|
-
type: "text",
|
|
30999
|
-
text: "[symi] missing tool result in session history; inserted synthetic error result for transcript repair."
|
|
31000
|
-
}],
|
|
31001
|
-
isError: true,
|
|
31002
|
-
timestamp: Date.now()
|
|
31003
|
-
};
|
|
31004
|
-
}
|
|
31005
|
-
function stripToolResultDetails(messages) {
|
|
31006
|
-
let touched = false;
|
|
31007
|
-
const out = [];
|
|
31008
|
-
for (const msg of messages) {
|
|
31009
|
-
if (!msg || typeof msg !== "object" || msg.role !== "toolResult") {
|
|
31010
|
-
out.push(msg);
|
|
31011
|
-
continue;
|
|
31012
|
-
}
|
|
31013
|
-
if (!("details" in msg)) {
|
|
31014
|
-
out.push(msg);
|
|
31015
|
-
continue;
|
|
31016
|
-
}
|
|
31017
|
-
const { details: _details, ...rest } = msg;
|
|
31018
|
-
touched = true;
|
|
31019
|
-
out.push(rest);
|
|
31020
|
-
}
|
|
31021
|
-
return touched ? out : messages;
|
|
31022
|
-
}
|
|
31023
|
-
function repairToolCallInputs(messages) {
|
|
31024
|
-
let droppedToolCalls = 0;
|
|
31025
|
-
let droppedAssistantMessages = 0;
|
|
31026
|
-
let changed = false;
|
|
31027
|
-
const out = [];
|
|
31028
|
-
for (const msg of messages) {
|
|
31029
|
-
if (!msg || typeof msg !== "object") {
|
|
31030
|
-
out.push(msg);
|
|
31031
|
-
continue;
|
|
31032
|
-
}
|
|
31033
|
-
if (msg.role !== "assistant" || !Array.isArray(msg.content)) {
|
|
31034
|
-
out.push(msg);
|
|
31035
|
-
continue;
|
|
31036
|
-
}
|
|
31037
|
-
const nextContent = [];
|
|
31038
|
-
let droppedInMessage = 0;
|
|
31039
|
-
for (const block of msg.content) {
|
|
31040
|
-
if (isToolCallBlock(block) && (!hasToolCallInput(block) || !hasToolCallId(block) || !hasToolCallName(block))) {
|
|
31041
|
-
droppedToolCalls += 1;
|
|
31042
|
-
droppedInMessage += 1;
|
|
31043
|
-
changed = true;
|
|
31044
|
-
continue;
|
|
31045
|
-
}
|
|
31046
|
-
nextContent.push(block);
|
|
31047
|
-
}
|
|
31048
|
-
if (droppedInMessage > 0) {
|
|
31049
|
-
if (nextContent.length === 0) {
|
|
31050
|
-
droppedAssistantMessages += 1;
|
|
31051
|
-
changed = true;
|
|
31052
|
-
continue;
|
|
31053
|
-
}
|
|
31054
|
-
out.push({
|
|
31055
|
-
...msg,
|
|
31056
|
-
content: nextContent
|
|
31057
|
-
});
|
|
31058
|
-
continue;
|
|
31059
|
-
}
|
|
31060
|
-
out.push(msg);
|
|
31061
|
-
}
|
|
31062
|
-
return {
|
|
31063
|
-
messages: changed ? out : messages,
|
|
31064
|
-
droppedToolCalls,
|
|
31065
|
-
droppedAssistantMessages
|
|
31066
|
-
};
|
|
31067
|
-
}
|
|
31068
|
-
function sanitizeToolCallInputs(messages) {
|
|
31069
|
-
return repairToolCallInputs(messages).messages;
|
|
31070
|
-
}
|
|
31071
|
-
function sanitizeToolUseResultPairing(messages) {
|
|
31072
|
-
return repairToolUseResultPairing(messages).messages;
|
|
31073
|
-
}
|
|
31074
|
-
function repairToolUseResultPairing(messages) {
|
|
31075
|
-
const out = [];
|
|
31076
|
-
const added = [];
|
|
31077
|
-
const seenToolResultIds = /* @__PURE__ */ new Set();
|
|
31078
|
-
let droppedDuplicateCount = 0;
|
|
31079
|
-
let droppedOrphanCount = 0;
|
|
31080
|
-
let moved = false;
|
|
31081
|
-
let changed = false;
|
|
31082
|
-
const pushToolResult = (msg) => {
|
|
31083
|
-
const id = extractToolResultId(msg);
|
|
31084
|
-
if (id && seenToolResultIds.has(id)) {
|
|
31085
|
-
droppedDuplicateCount += 1;
|
|
31086
|
-
changed = true;
|
|
31087
|
-
return;
|
|
31088
|
-
}
|
|
31089
|
-
if (id) seenToolResultIds.add(id);
|
|
31090
|
-
out.push(msg);
|
|
31091
|
-
};
|
|
31092
|
-
for (let i = 0; i < messages.length; i += 1) {
|
|
31093
|
-
const msg = messages[i];
|
|
31094
|
-
if (!msg || typeof msg !== "object") {
|
|
31095
|
-
out.push(msg);
|
|
31096
|
-
continue;
|
|
31097
|
-
}
|
|
31098
|
-
const role = msg.role;
|
|
31099
|
-
if (role !== "assistant") {
|
|
31100
|
-
if (role !== "toolResult") out.push(msg);
|
|
31101
|
-
else {
|
|
31102
|
-
droppedOrphanCount += 1;
|
|
31103
|
-
changed = true;
|
|
31104
|
-
}
|
|
31105
|
-
continue;
|
|
31106
|
-
}
|
|
31107
|
-
const assistant = msg;
|
|
31108
|
-
const stopReason = assistant.stopReason;
|
|
31109
|
-
if (stopReason === "error" || stopReason === "aborted") {
|
|
31110
|
-
out.push(msg);
|
|
31111
|
-
continue;
|
|
31112
|
-
}
|
|
31113
|
-
const toolCalls = extractToolCallsFromAssistant(assistant);
|
|
31114
|
-
if (toolCalls.length === 0) {
|
|
31115
|
-
out.push(msg);
|
|
31116
|
-
continue;
|
|
31117
|
-
}
|
|
31118
|
-
const toolCallIds = new Set(toolCalls.map((t) => t.id));
|
|
31119
|
-
const spanResultsById = /* @__PURE__ */ new Map();
|
|
31120
|
-
const remainder = [];
|
|
31121
|
-
let j = i + 1;
|
|
31122
|
-
for (; j < messages.length; j += 1) {
|
|
31123
|
-
const next = messages[j];
|
|
31124
|
-
if (!next || typeof next !== "object") {
|
|
31125
|
-
remainder.push(next);
|
|
31126
|
-
continue;
|
|
31127
|
-
}
|
|
31128
|
-
const nextRole = next.role;
|
|
31129
|
-
if (nextRole === "assistant") break;
|
|
31130
|
-
if (nextRole === "toolResult") {
|
|
31131
|
-
const toolResult = next;
|
|
31132
|
-
const id = extractToolResultId(toolResult);
|
|
31133
|
-
if (id && toolCallIds.has(id)) {
|
|
31134
|
-
if (seenToolResultIds.has(id)) {
|
|
31135
|
-
droppedDuplicateCount += 1;
|
|
31136
|
-
changed = true;
|
|
31137
|
-
continue;
|
|
31138
|
-
}
|
|
31139
|
-
if (!spanResultsById.has(id)) spanResultsById.set(id, toolResult);
|
|
31140
|
-
continue;
|
|
31141
|
-
}
|
|
31142
|
-
}
|
|
31143
|
-
if (nextRole !== "toolResult") remainder.push(next);
|
|
31144
|
-
else {
|
|
31145
|
-
droppedOrphanCount += 1;
|
|
31146
|
-
changed = true;
|
|
31147
|
-
}
|
|
31148
|
-
}
|
|
31149
|
-
out.push(msg);
|
|
31150
|
-
if (spanResultsById.size > 0 && remainder.length > 0) {
|
|
31151
|
-
moved = true;
|
|
31152
|
-
changed = true;
|
|
31153
|
-
}
|
|
31154
|
-
for (const call of toolCalls) {
|
|
31155
|
-
const existing = spanResultsById.get(call.id);
|
|
31156
|
-
if (existing) pushToolResult(existing);
|
|
31157
|
-
else {
|
|
31158
|
-
const missing = makeMissingToolResult({
|
|
31159
|
-
toolCallId: call.id,
|
|
31160
|
-
toolName: call.name
|
|
31161
|
-
});
|
|
31162
|
-
added.push(missing);
|
|
31163
|
-
changed = true;
|
|
31164
|
-
pushToolResult(missing);
|
|
31165
|
-
}
|
|
31166
|
-
}
|
|
31167
|
-
for (const rem of remainder) {
|
|
31168
|
-
if (!rem || typeof rem !== "object") {
|
|
31169
|
-
out.push(rem);
|
|
31170
|
-
continue;
|
|
31171
|
-
}
|
|
31172
|
-
out.push(rem);
|
|
31173
|
-
}
|
|
31174
|
-
i = j - 1;
|
|
31175
|
-
}
|
|
31176
|
-
const changedOrMoved = changed || moved;
|
|
31177
|
-
return {
|
|
31178
|
-
messages: changedOrMoved ? out : messages,
|
|
31179
|
-
added,
|
|
31180
|
-
droppedDuplicateCount,
|
|
31181
|
-
droppedOrphanCount,
|
|
31182
|
-
moved: changedOrMoved
|
|
31183
|
-
};
|
|
31184
|
-
}
|
|
31185
|
-
|
|
31186
31310
|
//#endregion
|
|
31187
31311
|
//#region src/agents/session-tool-result-guard.ts
|
|
31188
31312
|
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.]";
|
|
@@ -31263,6 +31387,10 @@ function installSessionToolResultGuard(sessionManager, opts) {
|
|
|
31263
31387
|
const guardedAppend = (message) => {
|
|
31264
31388
|
let nextMessage = message;
|
|
31265
31389
|
if (message.role === "assistant") {
|
|
31390
|
+
if (isEmptyAssistantMessage(message)) {
|
|
31391
|
+
if (allowSyntheticToolResults && pending.size > 0) flushPendingToolResults();
|
|
31392
|
+
return;
|
|
31393
|
+
}
|
|
31266
31394
|
const sanitized = sanitizeToolCallInputs([message]);
|
|
31267
31395
|
if (sanitized.length === 0) {
|
|
31268
31396
|
if (allowSyntheticToolResults && pending.size > 0) flushPendingToolResults();
|
|
@@ -34591,6 +34719,8 @@ async function runEmbeddedAttempt(params) {
|
|
|
34591
34719
|
});
|
|
34592
34720
|
const versionCheck = await handleSessionVersion(params.sessionFile);
|
|
34593
34721
|
if (versionCheck.archived) log$7.warn(`session archived: created by ${versionCheck.poisonVersion}, known corruption range → ${versionCheck.archivePath}`);
|
|
34722
|
+
const pruneReport = await pruneEmptyAssistantsFromSessionFile(params.sessionFile);
|
|
34723
|
+
if (pruneReport.rewrote) log$7.warn(`session prune: removed ${pruneReport.pruned} empty assistant entries from ${params.sessionFile}`);
|
|
34594
34724
|
await prewarmSessionFile(params.sessionFile);
|
|
34595
34725
|
sessionManager = guardSessionManager(SessionManager.open(params.sessionFile), {
|
|
34596
34726
|
agentId: sessionAgentId,
|
|
@@ -36377,27 +36507,27 @@ async function runAgentTurn(params) {
|
|
|
36377
36507
|
function createDefaultDeps() {
|
|
36378
36508
|
return {
|
|
36379
36509
|
sendMessageWhatsApp: async (...args) => {
|
|
36380
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
36510
|
+
const { sendMessageWhatsApp } = await import("./web-BoOAa0Xn.js");
|
|
36381
36511
|
return await sendMessageWhatsApp(...args);
|
|
36382
36512
|
},
|
|
36383
36513
|
sendMessageTelegram: async (...args) => {
|
|
36384
|
-
const { sendMessageTelegram } = await import("./send-
|
|
36514
|
+
const { sendMessageTelegram } = await import("./send-Cz_FQ8Ao.js").then((n) => n.l);
|
|
36385
36515
|
return await sendMessageTelegram(...args);
|
|
36386
36516
|
},
|
|
36387
36517
|
sendMessageDiscord: async (...args) => {
|
|
36388
|
-
const { sendMessageDiscord } = await import("./send-
|
|
36518
|
+
const { sendMessageDiscord } = await import("./send-HKy51Hz_.js").then((n) => n.t);
|
|
36389
36519
|
return await sendMessageDiscord(...args);
|
|
36390
36520
|
},
|
|
36391
36521
|
sendMessageSlack: async (...args) => {
|
|
36392
|
-
const { sendMessageSlack } = await import("./send-
|
|
36522
|
+
const { sendMessageSlack } = await import("./send-DG6c7BpZ.js").then((n) => n.n);
|
|
36393
36523
|
return await sendMessageSlack(...args);
|
|
36394
36524
|
},
|
|
36395
36525
|
sendMessageSignal: async (...args) => {
|
|
36396
|
-
const { sendMessageSignal } = await import("./send-
|
|
36526
|
+
const { sendMessageSignal } = await import("./send-C4t6h9-o.js").then((n) => n.i);
|
|
36397
36527
|
return await sendMessageSignal(...args);
|
|
36398
36528
|
},
|
|
36399
36529
|
sendMessageIMessage: async (...args) => {
|
|
36400
|
-
const { sendMessageIMessage } = await import("./send-
|
|
36530
|
+
const { sendMessageIMessage } = await import("./send-Xy1L54q4.js").then((n) => n.n);
|
|
36401
36531
|
return await sendMessageIMessage(...args);
|
|
36402
36532
|
}
|
|
36403
36533
|
};
|
|
@@ -46952,7 +47082,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
46952
47082
|
});
|
|
46953
47083
|
const deliverSlashPayloads = async (replies) => {
|
|
46954
47084
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
46955
|
-
import("./replies-
|
|
47085
|
+
import("./replies-CW_-4klO.js").then((n) => n.r),
|
|
46956
47086
|
import("./chunk-jvk9axTQ.js").then((n) => n.s),
|
|
46957
47087
|
import("./markdown-tables-Dfaqilz6.js").then((n) => n.t)
|
|
46958
47088
|
]);
|
|
@@ -51658,7 +51788,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
51658
51788
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
51659
51789
|
let preflightTranscript;
|
|
51660
51790
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
51661
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
51791
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-BacDFPyc.js");
|
|
51662
51792
|
preflightTranscript = await transcribeFirstAudio({
|
|
51663
51793
|
ctx: {
|
|
51664
51794
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -53803,23 +53933,23 @@ let webLoginQrPromise = null;
|
|
|
53803
53933
|
let webChannelPromise = null;
|
|
53804
53934
|
let whatsappActionsPromise = null;
|
|
53805
53935
|
function loadWebOutbound() {
|
|
53806
|
-
webOutboundPromise ??= import("./outbound-
|
|
53936
|
+
webOutboundPromise ??= import("./outbound-CD38Hxn9.js").then((n) => n.t);
|
|
53807
53937
|
return webOutboundPromise;
|
|
53808
53938
|
}
|
|
53809
53939
|
function loadWebLogin() {
|
|
53810
|
-
webLoginPromise ??= import("./login-
|
|
53940
|
+
webLoginPromise ??= import("./login-CHgiUvI_.js").then((n) => n.n);
|
|
53811
53941
|
return webLoginPromise;
|
|
53812
53942
|
}
|
|
53813
53943
|
function loadWebLoginQr() {
|
|
53814
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
53944
|
+
webLoginQrPromise ??= import("./login-qr-D5vJo1fy.js");
|
|
53815
53945
|
return webLoginQrPromise;
|
|
53816
53946
|
}
|
|
53817
53947
|
function loadWebChannel() {
|
|
53818
|
-
webChannelPromise ??= import("./web-
|
|
53948
|
+
webChannelPromise ??= import("./web-BoOAa0Xn.js");
|
|
53819
53949
|
return webChannelPromise;
|
|
53820
53950
|
}
|
|
53821
53951
|
function loadWhatsAppActions() {
|
|
53822
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
53952
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-CZLagx0h.js");
|
|
53823
53953
|
return whatsappActionsPromise;
|
|
53824
53954
|
}
|
|
53825
53955
|
function createPluginRuntime() {
|
|
@@ -78264,7 +78394,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
78264
78394
|
return;
|
|
78265
78395
|
}
|
|
78266
78396
|
try {
|
|
78267
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
78397
|
+
const { deliverOutboundPayloads } = await import("./deliver-Bxa1-mj5.js").then((n) => n.n);
|
|
78268
78398
|
await deliverOutboundPayloads({
|
|
78269
78399
|
cfg: params.cfg,
|
|
78270
78400
|
channel,
|