@symerian/symi 2.6.40 → 2.6.42
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-DDRDszOI.js} +7 -7
- package/dist/{agents.config-C5FjRTiH.js → agents.config-BEVb1Pyx.js} +1 -1
- package/dist/{agents.config-bWQyGjxK.js → agents.config-BKCY6F2A.js} +1 -1
- package/dist/{audio-preflight-DEJHmI9r.js → audio-preflight-CIiS5cfP.js} +11 -11
- package/dist/{audio-preflight-BUO1aDLp.js → audio-preflight-COaFw917.js} +5 -5
- package/dist/{audio-preflight-B0alOE_D.js → audio-preflight-DD18zIZd.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-BbzReh6k.js} +4 -4
- package/dist/{auth-choice-BZIJ1WP4.js → auth-choice-D2xXwBeN.js} +4 -4
- package/dist/{banner-DdxLX10a.js → banner-DqqRwplt.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-DQcpDVCx.js} +1 -1
- package/dist/{channel-options-BAqgueJ5.js → channel-options-DcazVJQf.js} +1 -1
- package/dist/{channel-web-_jV8VUEw.js → channel-web-u5yMYO4j.js} +7 -7
- package/dist/{channels-cli-GldZ8ajW.js → channels-cli-Bog4Kn3X.js} +29 -29
- package/dist/{channels-cli-1we8fBWm.js → channels-cli-C3iJE8eg.js} +30 -30
- package/dist/{chrome-DJn17LsI.js → chrome-BxwUEWrH.js} +1 -1
- package/dist/{chrome-D07ZncFh.js → chrome-CbA-qnhp.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-QybdZdE7.js} +25 -25
- package/dist/{cli-DZAotBEi.js → cli-eBtEEHLK.js} +26 -26
- package/dist/{command-registry-DZIdLwVe.js → command-registry-BWnZSpbL.js} +11 -11
- package/dist/{completion-cli-BWw06AVN.js → completion-cli-BhJFXaVU.js} +1 -1
- package/dist/{completion-cli-DYgPksHH.js → completion-cli-CUKm7Hb6.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-B796xZBe.js} +2 -2
- package/dist/{config-cli-BOS84uDD.js → config-cli-CjnQyv45.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-D3wIQ0yI.js} +10 -10
- package/dist/{configure-DZQuTL_V.js → configure-DUqT7Dyn.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-C7NePF9Z.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-BayL_S0c.js → doctor-completion-D3oUNFQM.js} +1 -1
- package/dist/{doctor-completion-UC-Jc5jn.js → doctor-completion-DBE1IVKj.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-BFPPqLYw.js → gateway-cli-BguO9yV4.js} +43 -42
- package/dist/{gateway-cli-Cwh2BbPv.js → gateway-cli-Dc1RT_b9.js} +44 -43
- 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-D0UYleBF.js} +34 -34
- package/dist/{glass-ui-ws-BfHJCfCz.js → glass-ui-ws-DoIZyE9O.js} +33 -33
- package/dist/{health-Bx6RQ4MZ.js → health-D3w4YMlC.js} +5 -5
- package/dist/{health-CLIwZbJe.js → health-cVvZdeDu.js} +5 -5
- package/dist/{hooks-cli-CF4fT-gm.js → hooks-cli-DZIbjfOA.js} +27 -27
- package/dist/{hooks-cli-BgALdxuB.js → hooks-cli-te5hzOAB.js} +26 -26
- package/dist/{image-DI1dYFo0.js → image-BWmcNF8N.js} +2 -2
- package/dist/{image-BmIvgTV4.js → image-C3ugMkb5.js} +2 -2
- package/dist/{image-KpMaj86B.js → image-C3wYkWyK.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-BCfPhQ4m.js} +8 -8
- package/dist/{models-cli-C01GsvW2.js → models-cli-BFAtjNIF.js} +28 -28
- package/dist/{models-cli-CLqS4ENq.js → models-cli-Cj2CwbPw.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-BMq8qc1m.js} +7 -7
- package/dist/{onboard-BrxB6sbz.js → onboard-VcdBF5TB.js} +7 -7
- package/dist/{onboard-channels-H11ympjW.js → onboard-channels-B5wgcffj.js} +1 -1
- package/dist/{onboard-channels-BBUPobrz.js → onboard-channels-CiOun4k1.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-D7hzRo_I.js → onboarding-CGNpTyg2.js} +10 -10
- package/dist/{onboarding-D8p8ii63.js → onboarding-Dp7p6zKa.js} +10 -10
- package/dist/{onboarding.finalize-C-rIKbkf.js → onboarding.finalize-B6DOu8vp.js} +31 -31
- package/dist/{onboarding.finalize-BJUg2rlZ.js → onboarding.finalize-CrsE5P43.js} +33 -33
- 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-DQe8vBwU.js} +415 -248
- package/dist/{pi-embedded-helpers-BDI11Fqj.js → pi-embedded-helpers-BgRcgoC9.js} +5 -5
- 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-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-BzIbwU3K.js} +2 -2
- package/dist/{plugin-registry-29yLAS46.js → plugin-registry-D3TUplW8.js} +2 -2
- package/dist/plugin-sdk/agents/pi-embedded-runner/long-task-prompt.d.ts +5 -0
- 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-B6m8UOCl.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-CGoJQT_s.js} +415 -248
- 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-CJjSOTnI.js} +17 -17
- package/dist/plugin-sdk/{whatsapp-actions-Bg6DfWkN.js → whatsapp-actions-CZLagx0h.js} +2 -2
- package/dist/{plugins-cli-DZ6arND4.js → plugins-cli-BD1Jb2Ml.js} +27 -27
- package/dist/{plugins-cli-D4bGKnOF.js → plugins-cli-DFyRjAtJ.js} +26 -26
- package/dist/{program-context-iI9_njQv.js → program-context-45vPEw2G.js} +38 -38
- package/dist/{program-DE9DbHYV.js → program-qGm2M9PG.js} +33 -33
- package/dist/{prompt-select-styled-SHa0ZJL9.js → prompt-select-styled-DRIS9jSv.js} +14 -14
- package/dist/{prompt-select-styled-D0ELdY0x.js → prompt-select-styled-DRraJGwA.js} +14 -14
- package/dist/{provider-auth-helpers-BI2k0jlH.js → provider-auth-helpers-BNOWsjW5.js} +2 -2
- package/dist/{provider-auth-helpers-EMBbfX3w.js → provider-auth-helpers-BREVjR7R.js} +2 -2
- package/dist/{push-apns-DcbeaY5y.js → push-apns-CObVeJLC.js} +1 -1
- package/dist/{push-apns-DyeCPAvI.js → push-apns-CYC70eKy.js} +1 -1
- package/dist/{pw-ai-C_7yEh9n.js → pw-ai--LDjnyuN.js} +2 -2
- 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/{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-D-1w3KOa.js → register.agent-DRrHvYcz.js} +32 -32
- package/dist/{register.agent-D4o7bi_u.js → register.agent-DzzY8jON.js} +34 -34
- package/dist/{register.configure-BYCEJg1c.js → register.configure-BxtTIFTa.js} +36 -36
- package/dist/{register.configure-BIczNshG.js → register.configure-DlXkwkNR.js} +37 -37
- package/dist/{register.maintenance-Syt4oSuk.js → register.maintenance-CXLXouZV.js} +34 -34
- package/dist/{register.maintenance-k6z5GVrO.js → register.maintenance-LEf8Q_5p.js} +36 -36
- package/dist/{register.message-Bi7QLNId.js → register.message-C4ifV9vG.js} +26 -26
- package/dist/{register.message-BJeeT9xQ.js → register.message-DsPa-xHV.js} +27 -27
- package/dist/{register.onboard-DDbxMjmt.js → register.onboard-CrY4PxLP.js} +32 -32
- package/dist/{register.onboard-B_FeHkL-.js → register.onboard-DLRPa_4B.js} +33 -33
- package/dist/{register.setup-CPi3uss4.js → register.setup-By37g1vN.js} +33 -33
- package/dist/{register.setup-Cpl67hQ6.js → register.setup-fBG_dJfi.js} +32 -32
- package/dist/{register.status-health-sessions-DsY8YuEo.js → register.status-health-sessions-Ckw86-gn.js} +29 -29
- package/dist/{register.status-health-sessions-CHPN3CNt.js → register.status-health-sessions-DG7KGnD0.js} +31 -31
- package/dist/{register.subclis-D5JRuk93.js → register.subclis-C_xKLugM.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-DyjXROKp.js} +426 -259
- 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-Cg3ecTbO.js} +44 -44
- 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/{runner-_7xOqQDP.js → runner-cJ3m-bxK.js} +2 -2
- 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-CW8eFTGD.js} +15 -15
- package/dist/{server-methods-C4oRmj--.js → server-methods-CWcLut3F.js} +16 -16
- package/dist/{server-node-events--9s3cGoR.js → server-node-events-C2h9OPo7.js} +27 -27
- package/dist/{server-node-events-Bw6yFsJP.js → server-node-events-CDB0u8PP.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-B2Qt-5kL.js} +2 -2
- package/dist/{status-CPQrmN1p.js → status-CMx3GAax.js} +2 -2
- package/dist/{status-DZHTCKq_.js → status-DfPfMVNZ.js} +10 -10
- package/dist/{status-CfCqG5a6.js → status-ZPW5EACm.js} +9 -9
- 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-DQHg3jUV.js} +427 -260
- 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-DvOFqcrw.js} +200 -33
- package/dist/{update-cli-n_Tkv8N_.js → update-cli-DBasZeVl.js} +39 -39
- package/dist/{update-cli-C8EpxduY.js → update-cli-Df9rh_aN.js} +37 -37
- package/dist/{update-runner-Tk50GxTW.js → update-runner-BRKFzAwV.js} +1 -1
- package/dist/{update-runner-CowTMnrt.js → update-runner-DVa6cMqp.js} +1 -1
- package/dist/{web-Cz8o-Hc9.js → web-CGh5tw__.js} +16 -16
- package/dist/{web-CMLJq-WC.js → web-Cw3bFAiP.js} +16 -16
- package/dist/{web-BIpIz8vD.js → web-Dd05xbUr.js} +29 -29
- package/dist/{web-ONk39lyq.js → web-KiuDkd0x.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 +12 -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 +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +12 -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 +12 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +12 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +12 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +12 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
- package/skills/long-task/SKILL.md +57 -0
- package/skills/long-task/scripts/detach-task.sh +58 -0
|
@@ -14,34 +14,34 @@ import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
|
|
|
14
14
|
import { t as parseBooleanValue$1 } from "./boolean-BsqeuxE6.js";
|
|
15
15
|
import { t as isTruthyEnvValue } from "./env-DPCHYPeH.js";
|
|
16
16
|
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-aT-I_DTX.js";
|
|
17
|
-
import { $ as parseDiscordTarget, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as createDiscordRestClient, 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 createDiscordClient, 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 resolveDiscordSystemLocation, a as removeReactionDiscord, at as normalizeDiscordAllowList, b as sendWebhookMessageDiscord, bt as fetchChannelPermissionsDiscord, c as formatDiscordComponentEventText, ct as resolveDiscordChannelConfigWithFallback, d as parseDiscordModalCustomId, dt as resolveDiscordOwnerAllowFrom, et as resolveDiscordChannelId, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordShouldRequireMention, g as sendMessageDiscord, gt as formatDiscordUserTag, h as resolveDiscordModalEntry, ht as formatDiscordReactionEmoji, i as removeOwnReactionsDiscord, it as isDiscordGroupAllowedByPolicy, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as resolveDiscordGuildEntry, m as resolveDiscordComponentEntry, mt as shouldEmitDiscordReactionNotification, n as fetchReactionsDiscord, nt as listDiscordDirectoryPeersLive, o as sendDiscordComponentMessage, ot as normalizeDiscordSlug, p as readDiscordComponentSpec, pt as resolveGroupDmAllow, q as deleteChannelDiscord, r as reactMessageDiscord, rt as allowListMatches$1, s as createDiscordFormModal, st as resolveDiscordAllowListMatch, tt as listDiscordDirectoryGroupsLive, u as parseDiscordComponentCustomIdForCarbon, ut as resolveDiscordMemberAccessState, v as sendStickerDiscord, vt as resolveTimestampMs, w as fetchMessageDiscord, wt as chunkDiscordTextWithMode, x as createThreadDiscord, xt as hasAnyGuildPermissionDiscord, y as sendVoiceMessageDiscord, yt as fetchDiscord, z as listGuildChannelsDiscord } from "./send-
|
|
18
|
-
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 { $ as parseDiscordTarget, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as createDiscordRestClient, 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 createDiscordClient, 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 resolveDiscordSystemLocation, a as removeReactionDiscord, at as normalizeDiscordAllowList, b as sendWebhookMessageDiscord, bt as fetchChannelPermissionsDiscord, c as formatDiscordComponentEventText, ct as resolveDiscordChannelConfigWithFallback, d as parseDiscordModalCustomId, dt as resolveDiscordOwnerAllowFrom, et as resolveDiscordChannelId, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordShouldRequireMention, g as sendMessageDiscord, gt as formatDiscordUserTag, h as resolveDiscordModalEntry, ht as formatDiscordReactionEmoji, i as removeOwnReactionsDiscord, it as isDiscordGroupAllowedByPolicy, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as resolveDiscordGuildEntry, m as resolveDiscordComponentEntry, mt as shouldEmitDiscordReactionNotification, n as fetchReactionsDiscord, nt as listDiscordDirectoryPeersLive, o as sendDiscordComponentMessage, ot as normalizeDiscordSlug, p as readDiscordComponentSpec, pt as resolveGroupDmAllow, q as deleteChannelDiscord, r as reactMessageDiscord, rt as allowListMatches$1, s as createDiscordFormModal, st as resolveDiscordAllowListMatch, tt as listDiscordDirectoryGroupsLive, u as parseDiscordComponentCustomIdForCarbon, ut as resolveDiscordMemberAccessState, v as sendStickerDiscord, vt as resolveTimestampMs, w as fetchMessageDiscord, wt as chunkDiscordTextWithMode, x as createThreadDiscord, xt as hasAnyGuildPermissionDiscord, y as sendVoiceMessageDiscord, yt as fetchDiscord, z as listGuildChannelsDiscord } from "./send-CQVnyJyF.js";
|
|
18
|
+
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-Dz95lSBW.js";
|
|
19
19
|
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-C4BxOMWX.js";
|
|
20
20
|
import { a as isPathInsideWithRealpath } from "./legacy-names-Be3msDZo.js";
|
|
21
21
|
import { t as normalizeChatType } from "./chat-type-DyovJwCt.js";
|
|
22
22
|
import { n as resolveConversationLabel } from "./conversation-label-Bn5j3lUT.js";
|
|
23
23
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CmmmT8IP.js";
|
|
24
|
-
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-
|
|
25
|
-
import { _ as stripThinkingTagsFromText, a as decodeDataUrl, b as minimaxUnderstandImage, 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 stripReasoningTagsFromText, y as extractTextFromChatContent } from "./image-
|
|
26
|
-
import { t as ensureSymiModelsJson } from "./models-config-
|
|
24
|
+
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-DRv0uCK_.js";
|
|
25
|
+
import { _ as stripThinkingTagsFromText, a as decodeDataUrl, b as minimaxUnderstandImage, 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 stripReasoningTagsFromText, y as extractTextFromChatContent } from "./image-BWmcNF8N.js";
|
|
26
|
+
import { t as ensureSymiModelsJson } from "./models-config-CFFjJPe7.js";
|
|
27
27
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-4uUnLc3n.js";
|
|
28
|
-
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-
|
|
29
|
-
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-
|
|
30
|
-
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-
|
|
31
|
-
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-
|
|
28
|
+
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-BgdB5kvy.js";
|
|
29
|
+
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-B6N8cV4d.js";
|
|
30
|
+
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-DU2ZysN3.js";
|
|
31
|
+
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-CCBZN8a0.js";
|
|
32
32
|
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-6jdJQ5ZL.js";
|
|
33
33
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-BF3TeRH2.js";
|
|
34
34
|
import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-BBm9fwuG.js";
|
|
35
35
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-BCYMnxkM.js";
|
|
36
36
|
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-1OJMSAUX.js";
|
|
37
37
|
import { n as getMediaDir, r as saveMediaBuffer } from "./store-r1DJSDq-.js";
|
|
38
|
-
import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, E as readSessionTitleFieldsFromTranscript, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, K as buildGroupDisplayName, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, V as resolveExplicitAgentSessionKey, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, b as normalizeAccountId$3, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as resolveGroupSessionKey, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, v as normalizeDeliveryContext, y as normalizeSessionDeliveryFields, z as canonicalizeMainSessionAlias } from "./sessions-
|
|
38
|
+
import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, E as readSessionTitleFieldsFromTranscript, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, K as buildGroupDisplayName, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, V as resolveExplicitAgentSessionKey, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, b as normalizeAccountId$3, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as resolveGroupSessionKey, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, v as normalizeDeliveryContext, y as normalizeSessionDeliveryFields, z as canonicalizeMainSessionAlias } from "./sessions-Cpgnq0pA.js";
|
|
39
39
|
import { a as resolveChannelGroupRequireMention, c as normalizeHyphenSlug, i as resolveChannelGroupPolicy, l as normalizeStringEntries, n as listChannelDocks, r as normalizeSignalMessagingTarget, s as normalizeAtHashSlug, t as getChannelDock, u as normalizeStringEntriesLower } from "./dock-BhS32F6E.js";
|
|
40
40
|
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-DKDeQZF0.js";
|
|
41
41
|
import { a as logWebSelfId, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, u as readWebSelfId } from "./accounts-DDuIpcln.js";
|
|
42
42
|
import { t as resolveIMessageAccount } from "./accounts-bK-Yqdwx.js";
|
|
43
43
|
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-DyJN4_vR.js";
|
|
44
|
-
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-
|
|
44
|
+
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-DVm0du0_.js";
|
|
45
45
|
import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-CyhzMxFA.js";
|
|
46
46
|
import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-BzbXHcaD.js";
|
|
47
47
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-DdnTeoR1.js";
|
|
@@ -51,16 +51,16 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-Db3d
|
|
|
51
51
|
import { t as fetchWithSsrFGuard } from "./fetch-guard-DOPkVbh3.js";
|
|
52
52
|
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, t as getAgentScopedMediaLocalRoots } from "./local-roots-aAFLQGkY.js";
|
|
53
53
|
import { v as runTasksWithConcurrency } from "./sqlite-Dx3J_aSE.js";
|
|
54
|
-
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-
|
|
54
|
+
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-8Son0J4O.js";
|
|
55
55
|
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-BuceUQDl.js";
|
|
56
|
-
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-
|
|
57
|
-
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-
|
|
56
|
+
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-CtVdu_1U.js";
|
|
57
|
+
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-B4KZ6-oZ.js";
|
|
58
58
|
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-CH0skkp6.js";
|
|
59
59
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-CUslJyKP.js";
|
|
60
|
-
import { A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as toLocationContext, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as parseTelegramTarget, K as withTelegramApiErrorLogging, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as formatLocationText, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, 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 buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-
|
|
60
|
+
import { A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as toLocationContext, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as parseTelegramTarget, K as withTelegramApiErrorLogging, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as formatLocationText, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, 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 buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-B3RdXvjC.js";
|
|
61
61
|
import { a as buildModelAliasLines, n as resolveModel } from "./model-tWhwnFf8.js";
|
|
62
62
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CE2YmmsD.js";
|
|
63
|
-
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-
|
|
63
|
+
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-DDumUksr.js";
|
|
64
64
|
import { i as resolveMemorySearchConfig } from "./manager-D4LJSRyZ.js";
|
|
65
65
|
import { n as retryAsync } from "./retry-BoS4e4X_.js";
|
|
66
66
|
import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-7AvoVa10.js";
|
|
@@ -70,23 +70,23 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DZam9q5M.js";
|
|
|
70
70
|
import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-BNLCWX6e.js";
|
|
71
71
|
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-BT0-zzs3.js";
|
|
72
72
|
import { Nt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-jI1oE0_k.js";
|
|
73
|
-
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-
|
|
73
|
+
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-DwpGquzW.js";
|
|
74
74
|
import { n as formatTimeAgo } from "./format-relative-BXoxEQVN.js";
|
|
75
75
|
import { n as normalizePollInput } from "./polls-DhH5YkzN.js";
|
|
76
76
|
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-BOiuJS3t.js";
|
|
77
77
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-DTNGXEzX.js";
|
|
78
78
|
import { t as convertMarkdownTables } from "./tables-BEzT0Da4.js";
|
|
79
|
-
import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-
|
|
79
|
+
import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-Bm4ULEzh.js";
|
|
80
80
|
import { i as readChannelAllowFromStore, l as listPairingChannels, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-CK726Dzq.js";
|
|
81
81
|
import { t as makeProxyFetch } from "./proxy-DU7W9XSc.js";
|
|
82
82
|
import { i as formatDurationSeconds, r as formatDurationPrecise, t as formatDurationCompact$1 } from "./format-duration-D0B0Uo-I.js";
|
|
83
83
|
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BMoTaVAH.js";
|
|
84
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
84
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-BMqtgBhh.js";
|
|
85
85
|
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-Cxw-jNxU.js";
|
|
86
86
|
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-zHckislA.js";
|
|
87
87
|
import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary, s as deriveSessionTotalTokens } from "./session-cost-usage-BXAI7CNH.js";
|
|
88
|
-
import { a as normalizeIMessageHandle, c as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, i as isAllowedIMessageSender, o as parseIMessageTarget, r as formatIMessageChatTarget, s as createIMessageRpcClient, t as sendMessageIMessage } from "./send-
|
|
89
|
-
import { r as detectBinary } from "./onboard-helpers-
|
|
88
|
+
import { a as normalizeIMessageHandle, c as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, i as isAllowedIMessageSender, o as parseIMessageTarget, r as formatIMessageChatTarget, s as createIMessageRpcClient, t as sendMessageIMessage } from "./send-9SapUCg7.js";
|
|
89
|
+
import { r as detectBinary } from "./onboard-helpers-DFvWPFhU.js";
|
|
90
90
|
import { t as resolvePairingIdLabel } from "./pairing-labels-DyXoD1DS.js";
|
|
91
91
|
import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-BgUx3Bm4.js";
|
|
92
92
|
import { t as getActiveWebListener } from "./active-listener-SKkHHqlN.js";
|
|
@@ -94,8 +94,8 @@ import { _ as getTrustedSafeBinDirs, b as buildSafeShellCommand, d as resolveExe
|
|
|
94
94
|
import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeUrlToFile, g as normalizePathPrepend, h as mergePathPrepend, i as parseEnvPairs, l as parseCameraSnapPayload, m as applyPathPrepend, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as buildNodeShellCommand, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-8Bq7DiSa.js";
|
|
95
95
|
import { n as parseNodeList, r as parsePairingList, t as resolveNodeIdFromCandidates } from "./node-match-CdUiymRU.js";
|
|
96
96
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-CaTOIqVn.js";
|
|
97
|
-
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-
|
|
98
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
97
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-DRWb_Cax.js";
|
|
98
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-BYKXzY4f.js";
|
|
99
99
|
import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-CvFURHzt.js";
|
|
100
100
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-CafH8-8D.js";
|
|
101
101
|
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-V2xDgw16.js";
|
|
@@ -10416,7 +10416,7 @@ async function routeReply(params) {
|
|
|
10416
10416
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
10417
10417
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
10418
10418
|
try {
|
|
10419
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
10419
|
+
const { deliverOutboundPayloads } = await import("./deliver-B4KZ6-oZ.js").then((n) => n.n);
|
|
10420
10420
|
return {
|
|
10421
10421
|
ok: true,
|
|
10422
10422
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -12966,7 +12966,7 @@ async function describeStickerImage(params) {
|
|
|
12966
12966
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
12967
12967
|
try {
|
|
12968
12968
|
const buffer = await fs$1.readFile(imagePath);
|
|
12969
|
-
const { describeImageWithModel } = await import("./image-
|
|
12969
|
+
const { describeImageWithModel } = await import("./image-BWmcNF8N.js").then((n) => n.n);
|
|
12970
12970
|
return (await describeImageWithModel({
|
|
12971
12971
|
buffer,
|
|
12972
12972
|
fileName: "sticker.webp",
|
|
@@ -13389,7 +13389,7 @@ function createWhatsAppLoginTool() {
|
|
|
13389
13389
|
force: Type.Optional(Type.Boolean())
|
|
13390
13390
|
}),
|
|
13391
13391
|
execute: async (_toolCallId, args) => {
|
|
13392
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
13392
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CBRxijIg.js");
|
|
13393
13393
|
if ((args?.action ?? "start") === "wait") {
|
|
13394
13394
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
13395
13395
|
return {
|
|
@@ -15605,7 +15605,7 @@ async function preflightDiscordMessage(params) {
|
|
|
15605
15605
|
let preflightTranscript;
|
|
15606
15606
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
15607
15607
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
15608
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
15608
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-CIiS5cfP.js");
|
|
15609
15609
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
15610
15610
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
15611
15611
|
ctx: {
|
|
@@ -22493,7 +22493,8 @@ const BUILTIN_PROFILES = [
|
|
|
22493
22493
|
top_p: .95,
|
|
22494
22494
|
top_k: 20,
|
|
22495
22495
|
max_tokens: 16384,
|
|
22496
|
-
presence_penalty: 1.5
|
|
22496
|
+
presence_penalty: 1.5,
|
|
22497
|
+
chatTemplateKwargs: { preserve_thinking: true }
|
|
22497
22498
|
},
|
|
22498
22499
|
streaming: {
|
|
22499
22500
|
deltaThrottleMs: 50,
|
|
@@ -23227,6 +23228,8 @@ function createModelAwareStreamFn(opts) {
|
|
|
23227
23228
|
if (typeof mergedParams.repeat_penalty === "number") injections.repeat_penalty = mergedParams.repeat_penalty;
|
|
23228
23229
|
if (typeof mergedParams.presence_penalty === "number") injections.presence_penalty = mergedParams.presence_penalty;
|
|
23229
23230
|
if (typeof mergedParams.frequency_penalty === "number") injections.frequency_penalty = mergedParams.frequency_penalty;
|
|
23231
|
+
const chatTemplateKwargs = mergedParams.chatTemplateKwargs ?? mergedParams.chat_template_kwargs;
|
|
23232
|
+
if (chatTemplateKwargs && typeof chatTemplateKwargs === "object" && !Array.isArray(chatTemplateKwargs)) injections.chat_template_kwargs = chatTemplateKwargs;
|
|
23230
23233
|
const isVllm = isVllmProvider(opts.provider, opts.modelId, opts.config);
|
|
23231
23234
|
const isOpenRouter = opts.provider === "openrouter";
|
|
23232
23235
|
const extraHeaders = {};
|
|
@@ -23834,7 +23837,11 @@ function handleMessageUpdate(ctx, evt) {
|
|
|
23834
23837
|
emitAgentEvent({
|
|
23835
23838
|
runId: ctx.params.runId,
|
|
23836
23839
|
stream: "thinking",
|
|
23837
|
-
data: {
|
|
23840
|
+
data: {
|
|
23841
|
+
phase: evtType,
|
|
23842
|
+
delta: thinkingDelta,
|
|
23843
|
+
content: thinkingContent
|
|
23844
|
+
}
|
|
23838
23845
|
});
|
|
23839
23846
|
if (ctx.state.streamReasoning) {
|
|
23840
23847
|
const partialThinking = extractAssistantThinking(msg);
|
|
@@ -25889,6 +25896,338 @@ Use the message tool with buttons:
|
|
|
25889
25896
|
[{"label": "✅ Proceed", "data": "/plan-proceed"}, {"label": "✏️ Modify", "data": "/plan-modify"}, {"label": "❌ Cancel", "data": "/plan-cancel"}]
|
|
25890
25897
|
</plan_mode>`;
|
|
25891
25898
|
|
|
25899
|
+
//#endregion
|
|
25900
|
+
//#region src/agents/session-transcript-repair.ts
|
|
25901
|
+
function isToolCallBlock(block) {
|
|
25902
|
+
if (!block || typeof block !== "object") return false;
|
|
25903
|
+
const type = block.type;
|
|
25904
|
+
return typeof type === "string" && (type === "toolCall" || type === "toolUse" || type === "functionCall");
|
|
25905
|
+
}
|
|
25906
|
+
function hasToolCallInput(block) {
|
|
25907
|
+
const hasInput = "input" in block ? block.input !== void 0 && block.input !== null : false;
|
|
25908
|
+
const hasArguments = "arguments" in block ? block.arguments !== void 0 && block.arguments !== null : false;
|
|
25909
|
+
return hasInput || hasArguments;
|
|
25910
|
+
}
|
|
25911
|
+
function hasNonEmptyStringField(value) {
|
|
25912
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
25913
|
+
}
|
|
25914
|
+
function hasToolCallId(block) {
|
|
25915
|
+
return hasNonEmptyStringField(block.id);
|
|
25916
|
+
}
|
|
25917
|
+
function hasToolCallName(block) {
|
|
25918
|
+
return hasNonEmptyStringField(block.name);
|
|
25919
|
+
}
|
|
25920
|
+
function makeMissingToolResult(params) {
|
|
25921
|
+
return {
|
|
25922
|
+
role: "toolResult",
|
|
25923
|
+
toolCallId: params.toolCallId,
|
|
25924
|
+
toolName: params.toolName ?? "unknown",
|
|
25925
|
+
content: [{
|
|
25926
|
+
type: "text",
|
|
25927
|
+
text: "[symi] missing tool result in session history; inserted synthetic error result for transcript repair."
|
|
25928
|
+
}],
|
|
25929
|
+
isError: true,
|
|
25930
|
+
timestamp: Date.now()
|
|
25931
|
+
};
|
|
25932
|
+
}
|
|
25933
|
+
/**
|
|
25934
|
+
* True when an assistant message has no tool calls and only empty/whitespace
|
|
25935
|
+
* text or thinking blocks. This happens when a stream fails before any
|
|
25936
|
+
* content arrives — the blank entry is otherwise persisted and produces
|
|
25937
|
+
* consecutive same-role messages, which strict providers (vLLM) reject with
|
|
25938
|
+
* "role must alternate" errors that poison the session for every future turn.
|
|
25939
|
+
*/
|
|
25940
|
+
function isEmptyAssistantMessage(message) {
|
|
25941
|
+
if (!message || typeof message !== "object") return false;
|
|
25942
|
+
const msg = message;
|
|
25943
|
+
if (msg.role !== "assistant") return false;
|
|
25944
|
+
if (!Array.isArray(msg.content) || msg.content.length === 0) return true;
|
|
25945
|
+
for (const block of msg.content) {
|
|
25946
|
+
if (!block || typeof block !== "object") continue;
|
|
25947
|
+
const type = block.type;
|
|
25948
|
+
if (type === "toolCall" || type === "toolUse" || type === "functionCall") return false;
|
|
25949
|
+
if (type === "text") {
|
|
25950
|
+
const text = block.text;
|
|
25951
|
+
if (typeof text === "string" && text.trim().length > 0) return false;
|
|
25952
|
+
continue;
|
|
25953
|
+
}
|
|
25954
|
+
if (type === "thinking") {
|
|
25955
|
+
const thinking = block.thinking;
|
|
25956
|
+
if (typeof thinking === "string" && thinking.trim().length > 0) return false;
|
|
25957
|
+
continue;
|
|
25958
|
+
}
|
|
25959
|
+
return false;
|
|
25960
|
+
}
|
|
25961
|
+
return true;
|
|
25962
|
+
}
|
|
25963
|
+
function stripToolResultDetails(messages) {
|
|
25964
|
+
let touched = false;
|
|
25965
|
+
const out = [];
|
|
25966
|
+
for (const msg of messages) {
|
|
25967
|
+
if (!msg || typeof msg !== "object" || msg.role !== "toolResult") {
|
|
25968
|
+
out.push(msg);
|
|
25969
|
+
continue;
|
|
25970
|
+
}
|
|
25971
|
+
if (!("details" in msg)) {
|
|
25972
|
+
out.push(msg);
|
|
25973
|
+
continue;
|
|
25974
|
+
}
|
|
25975
|
+
const { details: _details, ...rest } = msg;
|
|
25976
|
+
touched = true;
|
|
25977
|
+
out.push(rest);
|
|
25978
|
+
}
|
|
25979
|
+
return touched ? out : messages;
|
|
25980
|
+
}
|
|
25981
|
+
function repairToolCallInputs(messages) {
|
|
25982
|
+
let droppedToolCalls = 0;
|
|
25983
|
+
let droppedAssistantMessages = 0;
|
|
25984
|
+
let changed = false;
|
|
25985
|
+
const out = [];
|
|
25986
|
+
for (const msg of messages) {
|
|
25987
|
+
if (!msg || typeof msg !== "object") {
|
|
25988
|
+
out.push(msg);
|
|
25989
|
+
continue;
|
|
25990
|
+
}
|
|
25991
|
+
if (msg.role !== "assistant" || !Array.isArray(msg.content)) {
|
|
25992
|
+
out.push(msg);
|
|
25993
|
+
continue;
|
|
25994
|
+
}
|
|
25995
|
+
const nextContent = [];
|
|
25996
|
+
let droppedInMessage = 0;
|
|
25997
|
+
for (const block of msg.content) {
|
|
25998
|
+
if (isToolCallBlock(block) && (!hasToolCallInput(block) || !hasToolCallId(block) || !hasToolCallName(block))) {
|
|
25999
|
+
droppedToolCalls += 1;
|
|
26000
|
+
droppedInMessage += 1;
|
|
26001
|
+
changed = true;
|
|
26002
|
+
continue;
|
|
26003
|
+
}
|
|
26004
|
+
nextContent.push(block);
|
|
26005
|
+
}
|
|
26006
|
+
if (droppedInMessage > 0) {
|
|
26007
|
+
if (nextContent.length === 0) {
|
|
26008
|
+
droppedAssistantMessages += 1;
|
|
26009
|
+
changed = true;
|
|
26010
|
+
continue;
|
|
26011
|
+
}
|
|
26012
|
+
out.push({
|
|
26013
|
+
...msg,
|
|
26014
|
+
content: nextContent
|
|
26015
|
+
});
|
|
26016
|
+
continue;
|
|
26017
|
+
}
|
|
26018
|
+
out.push(msg);
|
|
26019
|
+
}
|
|
26020
|
+
return {
|
|
26021
|
+
messages: changed ? out : messages,
|
|
26022
|
+
droppedToolCalls,
|
|
26023
|
+
droppedAssistantMessages
|
|
26024
|
+
};
|
|
26025
|
+
}
|
|
26026
|
+
function sanitizeToolCallInputs(messages) {
|
|
26027
|
+
return repairToolCallInputs(messages).messages;
|
|
26028
|
+
}
|
|
26029
|
+
function sanitizeToolUseResultPairing(messages) {
|
|
26030
|
+
return repairToolUseResultPairing(messages).messages;
|
|
26031
|
+
}
|
|
26032
|
+
function repairToolUseResultPairing(messages) {
|
|
26033
|
+
const out = [];
|
|
26034
|
+
const added = [];
|
|
26035
|
+
const seenToolResultIds = /* @__PURE__ */ new Set();
|
|
26036
|
+
let droppedDuplicateCount = 0;
|
|
26037
|
+
let droppedOrphanCount = 0;
|
|
26038
|
+
let moved = false;
|
|
26039
|
+
let changed = false;
|
|
26040
|
+
const pushToolResult = (msg) => {
|
|
26041
|
+
const id = extractToolResultId(msg);
|
|
26042
|
+
if (id && seenToolResultIds.has(id)) {
|
|
26043
|
+
droppedDuplicateCount += 1;
|
|
26044
|
+
changed = true;
|
|
26045
|
+
return;
|
|
26046
|
+
}
|
|
26047
|
+
if (id) seenToolResultIds.add(id);
|
|
26048
|
+
out.push(msg);
|
|
26049
|
+
};
|
|
26050
|
+
for (let i = 0; i < messages.length; i += 1) {
|
|
26051
|
+
const msg = messages[i];
|
|
26052
|
+
if (!msg || typeof msg !== "object") {
|
|
26053
|
+
out.push(msg);
|
|
26054
|
+
continue;
|
|
26055
|
+
}
|
|
26056
|
+
const role = msg.role;
|
|
26057
|
+
if (role !== "assistant") {
|
|
26058
|
+
if (role !== "toolResult") out.push(msg);
|
|
26059
|
+
else {
|
|
26060
|
+
droppedOrphanCount += 1;
|
|
26061
|
+
changed = true;
|
|
26062
|
+
}
|
|
26063
|
+
continue;
|
|
26064
|
+
}
|
|
26065
|
+
const assistant = msg;
|
|
26066
|
+
const stopReason = assistant.stopReason;
|
|
26067
|
+
if (stopReason === "error" || stopReason === "aborted") {
|
|
26068
|
+
out.push(msg);
|
|
26069
|
+
continue;
|
|
26070
|
+
}
|
|
26071
|
+
const toolCalls = extractToolCallsFromAssistant(assistant);
|
|
26072
|
+
if (toolCalls.length === 0) {
|
|
26073
|
+
out.push(msg);
|
|
26074
|
+
continue;
|
|
26075
|
+
}
|
|
26076
|
+
const toolCallIds = new Set(toolCalls.map((t) => t.id));
|
|
26077
|
+
const spanResultsById = /* @__PURE__ */ new Map();
|
|
26078
|
+
const remainder = [];
|
|
26079
|
+
let j = i + 1;
|
|
26080
|
+
for (; j < messages.length; j += 1) {
|
|
26081
|
+
const next = messages[j];
|
|
26082
|
+
if (!next || typeof next !== "object") {
|
|
26083
|
+
remainder.push(next);
|
|
26084
|
+
continue;
|
|
26085
|
+
}
|
|
26086
|
+
const nextRole = next.role;
|
|
26087
|
+
if (nextRole === "assistant") break;
|
|
26088
|
+
if (nextRole === "toolResult") {
|
|
26089
|
+
const toolResult = next;
|
|
26090
|
+
const id = extractToolResultId(toolResult);
|
|
26091
|
+
if (id && toolCallIds.has(id)) {
|
|
26092
|
+
if (seenToolResultIds.has(id)) {
|
|
26093
|
+
droppedDuplicateCount += 1;
|
|
26094
|
+
changed = true;
|
|
26095
|
+
continue;
|
|
26096
|
+
}
|
|
26097
|
+
if (!spanResultsById.has(id)) spanResultsById.set(id, toolResult);
|
|
26098
|
+
continue;
|
|
26099
|
+
}
|
|
26100
|
+
}
|
|
26101
|
+
if (nextRole !== "toolResult") remainder.push(next);
|
|
26102
|
+
else {
|
|
26103
|
+
droppedOrphanCount += 1;
|
|
26104
|
+
changed = true;
|
|
26105
|
+
}
|
|
26106
|
+
}
|
|
26107
|
+
out.push(msg);
|
|
26108
|
+
if (spanResultsById.size > 0 && remainder.length > 0) {
|
|
26109
|
+
moved = true;
|
|
26110
|
+
changed = true;
|
|
26111
|
+
}
|
|
26112
|
+
for (const call of toolCalls) {
|
|
26113
|
+
const existing = spanResultsById.get(call.id);
|
|
26114
|
+
if (existing) pushToolResult(existing);
|
|
26115
|
+
else {
|
|
26116
|
+
const missing = makeMissingToolResult({
|
|
26117
|
+
toolCallId: call.id,
|
|
26118
|
+
toolName: call.name
|
|
26119
|
+
});
|
|
26120
|
+
added.push(missing);
|
|
26121
|
+
changed = true;
|
|
26122
|
+
pushToolResult(missing);
|
|
26123
|
+
}
|
|
26124
|
+
}
|
|
26125
|
+
for (const rem of remainder) {
|
|
26126
|
+
if (!rem || typeof rem !== "object") {
|
|
26127
|
+
out.push(rem);
|
|
26128
|
+
continue;
|
|
26129
|
+
}
|
|
26130
|
+
out.push(rem);
|
|
26131
|
+
}
|
|
26132
|
+
i = j - 1;
|
|
26133
|
+
}
|
|
26134
|
+
const changedOrMoved = changed || moved;
|
|
26135
|
+
return {
|
|
26136
|
+
messages: changedOrMoved ? out : messages,
|
|
26137
|
+
added,
|
|
26138
|
+
droppedDuplicateCount,
|
|
26139
|
+
droppedOrphanCount,
|
|
26140
|
+
moved: changedOrMoved
|
|
26141
|
+
};
|
|
26142
|
+
}
|
|
26143
|
+
|
|
26144
|
+
//#endregion
|
|
26145
|
+
//#region src/agents/session-empty-prune.ts
|
|
26146
|
+
/**
|
|
26147
|
+
* Pre-run prune of empty assistant entries from a session JSONL file.
|
|
26148
|
+
*
|
|
26149
|
+
* When a stream fails before any content arrives, pi-coding-agent persists
|
|
26150
|
+
* an assistant message with an empty content array. If this repeats (e.g. a
|
|
26151
|
+
* misconfigured provider fails on every retry), the session ends up with
|
|
26152
|
+
* hundreds of consecutive empty assistant entries. vLLM and other strict
|
|
26153
|
+
* providers then reject the request with a role-ordering error — once the
|
|
26154
|
+
* session is in that state, every future turn fails until the user runs /new.
|
|
26155
|
+
*
|
|
26156
|
+
* This helper runs before SessionManager opens the file, reads the JSONL
|
|
26157
|
+
* line-by-line, filters out any line whose `message` is an empty-content
|
|
26158
|
+
* assistant, and rewrites the file atomically if anything was dropped. The
|
|
26159
|
+
* in-memory SessionManager state and the on-disk file stay consistent.
|
|
26160
|
+
*
|
|
26161
|
+
* The append guard in {@link ./session-tool-result-guard.ts} prevents new
|
|
26162
|
+
* empty entries from being written; this helper retroactively cleans files
|
|
26163
|
+
* that were poisoned before the guard existed.
|
|
26164
|
+
*
|
|
26165
|
+
* @module
|
|
26166
|
+
*/
|
|
26167
|
+
async function readSessionFile(sessionFile) {
|
|
26168
|
+
try {
|
|
26169
|
+
return await fs$1.readFile(sessionFile, "utf-8");
|
|
26170
|
+
} catch {
|
|
26171
|
+
return null;
|
|
26172
|
+
}
|
|
26173
|
+
}
|
|
26174
|
+
async function writeAtomically(sessionFile, text) {
|
|
26175
|
+
const dir = path.dirname(sessionFile);
|
|
26176
|
+
const base = path.basename(sessionFile);
|
|
26177
|
+
const tmp = path.join(dir, `.${base}.prune-${process.pid}-${Date.now()}.tmp`);
|
|
26178
|
+
await fs$1.writeFile(tmp, text, "utf-8");
|
|
26179
|
+
await fs$1.rename(tmp, sessionFile);
|
|
26180
|
+
}
|
|
26181
|
+
/**
|
|
26182
|
+
* Remove empty assistant JSONL entries from the session file.
|
|
26183
|
+
*
|
|
26184
|
+
* Parses each line; lines that don't parse are preserved verbatim so we don't
|
|
26185
|
+
* lose unknown data. Only lines that parse into a `{type:"message", message:
|
|
26186
|
+
* <empty-assistant>}` entry are dropped.
|
|
26187
|
+
*/
|
|
26188
|
+
async function pruneEmptyAssistantsFromSessionFile(sessionFile) {
|
|
26189
|
+
const raw = await readSessionFile(sessionFile);
|
|
26190
|
+
if (raw === null || raw.length === 0) return {
|
|
26191
|
+
rewrote: false,
|
|
26192
|
+
pruned: 0,
|
|
26193
|
+
unparsable: 0
|
|
26194
|
+
};
|
|
26195
|
+
const lines = raw.split("\n");
|
|
26196
|
+
const kept = [];
|
|
26197
|
+
let pruned = 0;
|
|
26198
|
+
let unparsable = 0;
|
|
26199
|
+
for (const line of lines) {
|
|
26200
|
+
if (line.length === 0) {
|
|
26201
|
+
kept.push(line);
|
|
26202
|
+
continue;
|
|
26203
|
+
}
|
|
26204
|
+
let parsed = null;
|
|
26205
|
+
try {
|
|
26206
|
+
parsed = JSON.parse(line);
|
|
26207
|
+
} catch {
|
|
26208
|
+
unparsable += 1;
|
|
26209
|
+
kept.push(line);
|
|
26210
|
+
continue;
|
|
26211
|
+
}
|
|
26212
|
+
if (parsed?.type === "message" && isEmptyAssistantMessage(parsed.message)) {
|
|
26213
|
+
pruned += 1;
|
|
26214
|
+
continue;
|
|
26215
|
+
}
|
|
26216
|
+
kept.push(line);
|
|
26217
|
+
}
|
|
26218
|
+
if (pruned === 0) return {
|
|
26219
|
+
rewrote: false,
|
|
26220
|
+
pruned: 0,
|
|
26221
|
+
unparsable
|
|
26222
|
+
};
|
|
26223
|
+
await writeAtomically(sessionFile, kept.join("\n"));
|
|
26224
|
+
return {
|
|
26225
|
+
rewrote: true,
|
|
26226
|
+
pruned,
|
|
26227
|
+
unparsable
|
|
26228
|
+
};
|
|
26229
|
+
}
|
|
26230
|
+
|
|
25892
26231
|
//#endregion
|
|
25893
26232
|
//#region src/agents/session-file-repair.ts
|
|
25894
26233
|
function isSessionHeader(entry) {
|
|
@@ -26162,221 +26501,6 @@ function sessionLikelyHasOversizedToolResults(params) {
|
|
|
26162
26501
|
return false;
|
|
26163
26502
|
}
|
|
26164
26503
|
|
|
26165
|
-
//#endregion
|
|
26166
|
-
//#region src/agents/session-transcript-repair.ts
|
|
26167
|
-
function isToolCallBlock(block) {
|
|
26168
|
-
if (!block || typeof block !== "object") return false;
|
|
26169
|
-
const type = block.type;
|
|
26170
|
-
return typeof type === "string" && (type === "toolCall" || type === "toolUse" || type === "functionCall");
|
|
26171
|
-
}
|
|
26172
|
-
function hasToolCallInput(block) {
|
|
26173
|
-
const hasInput = "input" in block ? block.input !== void 0 && block.input !== null : false;
|
|
26174
|
-
const hasArguments = "arguments" in block ? block.arguments !== void 0 && block.arguments !== null : false;
|
|
26175
|
-
return hasInput || hasArguments;
|
|
26176
|
-
}
|
|
26177
|
-
function hasNonEmptyStringField(value) {
|
|
26178
|
-
return typeof value === "string" && value.trim().length > 0;
|
|
26179
|
-
}
|
|
26180
|
-
function hasToolCallId(block) {
|
|
26181
|
-
return hasNonEmptyStringField(block.id);
|
|
26182
|
-
}
|
|
26183
|
-
function hasToolCallName(block) {
|
|
26184
|
-
return hasNonEmptyStringField(block.name);
|
|
26185
|
-
}
|
|
26186
|
-
function makeMissingToolResult(params) {
|
|
26187
|
-
return {
|
|
26188
|
-
role: "toolResult",
|
|
26189
|
-
toolCallId: params.toolCallId,
|
|
26190
|
-
toolName: params.toolName ?? "unknown",
|
|
26191
|
-
content: [{
|
|
26192
|
-
type: "text",
|
|
26193
|
-
text: "[symi] missing tool result in session history; inserted synthetic error result for transcript repair."
|
|
26194
|
-
}],
|
|
26195
|
-
isError: true,
|
|
26196
|
-
timestamp: Date.now()
|
|
26197
|
-
};
|
|
26198
|
-
}
|
|
26199
|
-
function stripToolResultDetails(messages) {
|
|
26200
|
-
let touched = false;
|
|
26201
|
-
const out = [];
|
|
26202
|
-
for (const msg of messages) {
|
|
26203
|
-
if (!msg || typeof msg !== "object" || msg.role !== "toolResult") {
|
|
26204
|
-
out.push(msg);
|
|
26205
|
-
continue;
|
|
26206
|
-
}
|
|
26207
|
-
if (!("details" in msg)) {
|
|
26208
|
-
out.push(msg);
|
|
26209
|
-
continue;
|
|
26210
|
-
}
|
|
26211
|
-
const { details: _details, ...rest } = msg;
|
|
26212
|
-
touched = true;
|
|
26213
|
-
out.push(rest);
|
|
26214
|
-
}
|
|
26215
|
-
return touched ? out : messages;
|
|
26216
|
-
}
|
|
26217
|
-
function repairToolCallInputs(messages) {
|
|
26218
|
-
let droppedToolCalls = 0;
|
|
26219
|
-
let droppedAssistantMessages = 0;
|
|
26220
|
-
let changed = false;
|
|
26221
|
-
const out = [];
|
|
26222
|
-
for (const msg of messages) {
|
|
26223
|
-
if (!msg || typeof msg !== "object") {
|
|
26224
|
-
out.push(msg);
|
|
26225
|
-
continue;
|
|
26226
|
-
}
|
|
26227
|
-
if (msg.role !== "assistant" || !Array.isArray(msg.content)) {
|
|
26228
|
-
out.push(msg);
|
|
26229
|
-
continue;
|
|
26230
|
-
}
|
|
26231
|
-
const nextContent = [];
|
|
26232
|
-
let droppedInMessage = 0;
|
|
26233
|
-
for (const block of msg.content) {
|
|
26234
|
-
if (isToolCallBlock(block) && (!hasToolCallInput(block) || !hasToolCallId(block) || !hasToolCallName(block))) {
|
|
26235
|
-
droppedToolCalls += 1;
|
|
26236
|
-
droppedInMessage += 1;
|
|
26237
|
-
changed = true;
|
|
26238
|
-
continue;
|
|
26239
|
-
}
|
|
26240
|
-
nextContent.push(block);
|
|
26241
|
-
}
|
|
26242
|
-
if (droppedInMessage > 0) {
|
|
26243
|
-
if (nextContent.length === 0) {
|
|
26244
|
-
droppedAssistantMessages += 1;
|
|
26245
|
-
changed = true;
|
|
26246
|
-
continue;
|
|
26247
|
-
}
|
|
26248
|
-
out.push({
|
|
26249
|
-
...msg,
|
|
26250
|
-
content: nextContent
|
|
26251
|
-
});
|
|
26252
|
-
continue;
|
|
26253
|
-
}
|
|
26254
|
-
out.push(msg);
|
|
26255
|
-
}
|
|
26256
|
-
return {
|
|
26257
|
-
messages: changed ? out : messages,
|
|
26258
|
-
droppedToolCalls,
|
|
26259
|
-
droppedAssistantMessages
|
|
26260
|
-
};
|
|
26261
|
-
}
|
|
26262
|
-
function sanitizeToolCallInputs(messages) {
|
|
26263
|
-
return repairToolCallInputs(messages).messages;
|
|
26264
|
-
}
|
|
26265
|
-
function sanitizeToolUseResultPairing(messages) {
|
|
26266
|
-
return repairToolUseResultPairing(messages).messages;
|
|
26267
|
-
}
|
|
26268
|
-
function repairToolUseResultPairing(messages) {
|
|
26269
|
-
const out = [];
|
|
26270
|
-
const added = [];
|
|
26271
|
-
const seenToolResultIds = /* @__PURE__ */ new Set();
|
|
26272
|
-
let droppedDuplicateCount = 0;
|
|
26273
|
-
let droppedOrphanCount = 0;
|
|
26274
|
-
let moved = false;
|
|
26275
|
-
let changed = false;
|
|
26276
|
-
const pushToolResult = (msg) => {
|
|
26277
|
-
const id = extractToolResultId(msg);
|
|
26278
|
-
if (id && seenToolResultIds.has(id)) {
|
|
26279
|
-
droppedDuplicateCount += 1;
|
|
26280
|
-
changed = true;
|
|
26281
|
-
return;
|
|
26282
|
-
}
|
|
26283
|
-
if (id) seenToolResultIds.add(id);
|
|
26284
|
-
out.push(msg);
|
|
26285
|
-
};
|
|
26286
|
-
for (let i = 0; i < messages.length; i += 1) {
|
|
26287
|
-
const msg = messages[i];
|
|
26288
|
-
if (!msg || typeof msg !== "object") {
|
|
26289
|
-
out.push(msg);
|
|
26290
|
-
continue;
|
|
26291
|
-
}
|
|
26292
|
-
const role = msg.role;
|
|
26293
|
-
if (role !== "assistant") {
|
|
26294
|
-
if (role !== "toolResult") out.push(msg);
|
|
26295
|
-
else {
|
|
26296
|
-
droppedOrphanCount += 1;
|
|
26297
|
-
changed = true;
|
|
26298
|
-
}
|
|
26299
|
-
continue;
|
|
26300
|
-
}
|
|
26301
|
-
const assistant = msg;
|
|
26302
|
-
const stopReason = assistant.stopReason;
|
|
26303
|
-
if (stopReason === "error" || stopReason === "aborted") {
|
|
26304
|
-
out.push(msg);
|
|
26305
|
-
continue;
|
|
26306
|
-
}
|
|
26307
|
-
const toolCalls = extractToolCallsFromAssistant(assistant);
|
|
26308
|
-
if (toolCalls.length === 0) {
|
|
26309
|
-
out.push(msg);
|
|
26310
|
-
continue;
|
|
26311
|
-
}
|
|
26312
|
-
const toolCallIds = new Set(toolCalls.map((t) => t.id));
|
|
26313
|
-
const spanResultsById = /* @__PURE__ */ new Map();
|
|
26314
|
-
const remainder = [];
|
|
26315
|
-
let j = i + 1;
|
|
26316
|
-
for (; j < messages.length; j += 1) {
|
|
26317
|
-
const next = messages[j];
|
|
26318
|
-
if (!next || typeof next !== "object") {
|
|
26319
|
-
remainder.push(next);
|
|
26320
|
-
continue;
|
|
26321
|
-
}
|
|
26322
|
-
const nextRole = next.role;
|
|
26323
|
-
if (nextRole === "assistant") break;
|
|
26324
|
-
if (nextRole === "toolResult") {
|
|
26325
|
-
const toolResult = next;
|
|
26326
|
-
const id = extractToolResultId(toolResult);
|
|
26327
|
-
if (id && toolCallIds.has(id)) {
|
|
26328
|
-
if (seenToolResultIds.has(id)) {
|
|
26329
|
-
droppedDuplicateCount += 1;
|
|
26330
|
-
changed = true;
|
|
26331
|
-
continue;
|
|
26332
|
-
}
|
|
26333
|
-
if (!spanResultsById.has(id)) spanResultsById.set(id, toolResult);
|
|
26334
|
-
continue;
|
|
26335
|
-
}
|
|
26336
|
-
}
|
|
26337
|
-
if (nextRole !== "toolResult") remainder.push(next);
|
|
26338
|
-
else {
|
|
26339
|
-
droppedOrphanCount += 1;
|
|
26340
|
-
changed = true;
|
|
26341
|
-
}
|
|
26342
|
-
}
|
|
26343
|
-
out.push(msg);
|
|
26344
|
-
if (spanResultsById.size > 0 && remainder.length > 0) {
|
|
26345
|
-
moved = true;
|
|
26346
|
-
changed = true;
|
|
26347
|
-
}
|
|
26348
|
-
for (const call of toolCalls) {
|
|
26349
|
-
const existing = spanResultsById.get(call.id);
|
|
26350
|
-
if (existing) pushToolResult(existing);
|
|
26351
|
-
else {
|
|
26352
|
-
const missing = makeMissingToolResult({
|
|
26353
|
-
toolCallId: call.id,
|
|
26354
|
-
toolName: call.name
|
|
26355
|
-
});
|
|
26356
|
-
added.push(missing);
|
|
26357
|
-
changed = true;
|
|
26358
|
-
pushToolResult(missing);
|
|
26359
|
-
}
|
|
26360
|
-
}
|
|
26361
|
-
for (const rem of remainder) {
|
|
26362
|
-
if (!rem || typeof rem !== "object") {
|
|
26363
|
-
out.push(rem);
|
|
26364
|
-
continue;
|
|
26365
|
-
}
|
|
26366
|
-
out.push(rem);
|
|
26367
|
-
}
|
|
26368
|
-
i = j - 1;
|
|
26369
|
-
}
|
|
26370
|
-
const changedOrMoved = changed || moved;
|
|
26371
|
-
return {
|
|
26372
|
-
messages: changedOrMoved ? out : messages,
|
|
26373
|
-
added,
|
|
26374
|
-
droppedDuplicateCount,
|
|
26375
|
-
droppedOrphanCount,
|
|
26376
|
-
moved: changedOrMoved
|
|
26377
|
-
};
|
|
26378
|
-
}
|
|
26379
|
-
|
|
26380
26504
|
//#endregion
|
|
26381
26505
|
//#region src/agents/session-tool-result-guard.ts
|
|
26382
26506
|
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.]";
|
|
@@ -26457,6 +26581,10 @@ function installSessionToolResultGuard(sessionManager, opts) {
|
|
|
26457
26581
|
const guardedAppend = (message) => {
|
|
26458
26582
|
let nextMessage = message;
|
|
26459
26583
|
if (message.role === "assistant") {
|
|
26584
|
+
if (isEmptyAssistantMessage(message)) {
|
|
26585
|
+
if (allowSyntheticToolResults && pending.size > 0) flushPendingToolResults();
|
|
26586
|
+
return;
|
|
26587
|
+
}
|
|
26460
26588
|
const sanitized = sanitizeToolCallInputs([message]);
|
|
26461
26589
|
if (sanitized.length === 0) {
|
|
26462
26590
|
if (allowSyntheticToolResults && pending.size > 0) flushPendingToolResults();
|
|
@@ -28702,6 +28830,38 @@ function getHistoryLimitFromSessionKey(sessionKey, config) {
|
|
|
28702
28830
|
*/
|
|
28703
28831
|
const getDmHistoryLimitFromSessionKey = getHistoryLimitFromSessionKey;
|
|
28704
28832
|
|
|
28833
|
+
//#endregion
|
|
28834
|
+
//#region src/agents/pi-embedded-runner/long-task-prompt.ts
|
|
28835
|
+
const SCRIPT_REL_PATH = "skills/long-task/scripts/detach-task.sh";
|
|
28836
|
+
let cachedScriptPath;
|
|
28837
|
+
async function resolveDetachScriptPath(params) {
|
|
28838
|
+
if (cachedScriptPath !== void 0) return cachedScriptPath;
|
|
28839
|
+
const packageRoot = await resolveSymiPackageRoot({
|
|
28840
|
+
cwd: params.cwd,
|
|
28841
|
+
argv1: params.argv1,
|
|
28842
|
+
moduleUrl: params.moduleUrl
|
|
28843
|
+
});
|
|
28844
|
+
if (!packageRoot) {
|
|
28845
|
+
cachedScriptPath = null;
|
|
28846
|
+
return null;
|
|
28847
|
+
}
|
|
28848
|
+
const candidate = path.join(packageRoot, SCRIPT_REL_PATH);
|
|
28849
|
+
cachedScriptPath = fs.existsSync(candidate) ? candidate : null;
|
|
28850
|
+
return cachedScriptPath;
|
|
28851
|
+
}
|
|
28852
|
+
async function buildLongTaskPromptSuffix(params) {
|
|
28853
|
+
const scriptPath = await resolveDetachScriptPath(params);
|
|
28854
|
+
if (!scriptPath) return "";
|
|
28855
|
+
return "\n\n" + [
|
|
28856
|
+
"LONG-RUNNING TASK PATTERN:",
|
|
28857
|
+
"- For any task that may exceed 15 minutes (deep nmap scans of /24 or larger, full brute-force sweeps, long builds, exhaustive enumeration): detach from the agent turn. Do NOT foreground-block the exec tool for the full duration; the agent turn will hit its timeout and SIGTERM the process mid-run.",
|
|
28858
|
+
`- Detach pattern: exec \`${scriptPath} <task-id> <workdir> <command...>\`. The script spawns under setsid+nohup, writes PID / cmd / started / status / log files in the workdir. Use the agent workspace as the workdir.`,
|
|
28859
|
+
"- Immediately after detaching, respond to the user with: task id, PID, log file path, your ETA estimate, and that a cron monitor has been scheduled.",
|
|
28860
|
+
"- Register a cron monitor using the `cron` tool with action=add. Schedule every 2-3 minutes. Job prompt must include the task-id, PID, log path, and status path so the future turn has enough context. Example job prompt: \"Check if PID <pid> is alive (kill -0). If alive: tail -n 20 <log>, post one-sentence progress update. If not alive: read <status> and tail <log>, post a final summary, then call cron tool with action=remove id=<this-cron-id>.\"",
|
|
28861
|
+
"- When the monitor turn observes status=complete, it MUST call the cron tool with action=remove to clean up its own job. Do not leave stale monitors running."
|
|
28862
|
+
].join("\n");
|
|
28863
|
+
}
|
|
28864
|
+
|
|
28705
28865
|
//#endregion
|
|
28706
28866
|
//#region src/agents/pi-embedded-runner/runs.ts
|
|
28707
28867
|
const ACTIVE_EMBEDDED_RUNS = /* @__PURE__ */ new Map();
|
|
@@ -29767,7 +29927,12 @@ async function runEmbeddedAttempt(params) {
|
|
|
29767
29927
|
const profileModelKey = params.modelId ?? "";
|
|
29768
29928
|
const modelProfile = resolveModelProfile(profileModelKey, params.config?.models?.profiles);
|
|
29769
29929
|
log$7.debug(`[profile] resolved: modelId=${profileModelKey} → profile=${modelProfile.label} validateToolArgs=${modelProfile.filters?.validateToolArgs ?? false}`);
|
|
29770
|
-
const
|
|
29930
|
+
const profilePromptSuffix = modelProfile.promptAdditions.length > 0 ? "\n\n" + modelProfile.promptAdditions.join("\n") : "";
|
|
29931
|
+
const systemPromptText = createSystemPromptOverride(appendPrompt + await buildLongTaskPromptSuffix({
|
|
29932
|
+
argv1: process.argv[1],
|
|
29933
|
+
cwd: process.cwd(),
|
|
29934
|
+
moduleUrl: import.meta.url
|
|
29935
|
+
}) + profilePromptSuffix)();
|
|
29771
29936
|
const sessionLock = await acquireSessionWriteLock({
|
|
29772
29937
|
sessionFile: params.sessionFile,
|
|
29773
29938
|
maxHoldMs: resolveSessionLockMaxHoldFromTimeout({ timeoutMs: params.timeoutMs })
|
|
@@ -29788,6 +29953,8 @@ async function runEmbeddedAttempt(params) {
|
|
|
29788
29953
|
});
|
|
29789
29954
|
const versionCheck = await handleSessionVersion(params.sessionFile);
|
|
29790
29955
|
if (versionCheck.archived) log$7.warn(`session archived: created by ${versionCheck.poisonVersion}, known corruption range → ${versionCheck.archivePath}`);
|
|
29956
|
+
const pruneReport = await pruneEmptyAssistantsFromSessionFile(params.sessionFile);
|
|
29957
|
+
if (pruneReport.rewrote) log$7.warn(`session prune: removed ${pruneReport.pruned} empty assistant entries from ${params.sessionFile}`);
|
|
29791
29958
|
await prewarmSessionFile(params.sessionFile);
|
|
29792
29959
|
sessionManager = guardSessionManager(SessionManager.open(params.sessionFile), {
|
|
29793
29960
|
agentId: sessionAgentId,
|
|
@@ -31574,27 +31741,27 @@ async function runAgentTurn(params) {
|
|
|
31574
31741
|
function createDefaultDeps() {
|
|
31575
31742
|
return {
|
|
31576
31743
|
sendMessageWhatsApp: async (...args) => {
|
|
31577
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
31744
|
+
const { sendMessageWhatsApp } = await import("./web-KiuDkd0x.js");
|
|
31578
31745
|
return await sendMessageWhatsApp(...args);
|
|
31579
31746
|
},
|
|
31580
31747
|
sendMessageTelegram: async (...args) => {
|
|
31581
|
-
const { sendMessageTelegram } = await import("./send-
|
|
31748
|
+
const { sendMessageTelegram } = await import("./send-B3RdXvjC.js").then((n) => n.l);
|
|
31582
31749
|
return await sendMessageTelegram(...args);
|
|
31583
31750
|
},
|
|
31584
31751
|
sendMessageDiscord: async (...args) => {
|
|
31585
|
-
const { sendMessageDiscord } = await import("./send-
|
|
31752
|
+
const { sendMessageDiscord } = await import("./send-CQVnyJyF.js").then((n) => n.t);
|
|
31586
31753
|
return await sendMessageDiscord(...args);
|
|
31587
31754
|
},
|
|
31588
31755
|
sendMessageSlack: async (...args) => {
|
|
31589
|
-
const { sendMessageSlack } = await import("./send-
|
|
31756
|
+
const { sendMessageSlack } = await import("./send-DVm0du0_.js").then((n) => n.n);
|
|
31590
31757
|
return await sendMessageSlack(...args);
|
|
31591
31758
|
},
|
|
31592
31759
|
sendMessageSignal: async (...args) => {
|
|
31593
|
-
const { sendMessageSignal } = await import("./send-
|
|
31760
|
+
const { sendMessageSignal } = await import("./send-Bm4ULEzh.js").then((n) => n.i);
|
|
31594
31761
|
return await sendMessageSignal(...args);
|
|
31595
31762
|
},
|
|
31596
31763
|
sendMessageIMessage: async (...args) => {
|
|
31597
|
-
const { sendMessageIMessage } = await import("./send-
|
|
31764
|
+
const { sendMessageIMessage } = await import("./send-9SapUCg7.js").then((n) => n.n);
|
|
31598
31765
|
return await sendMessageIMessage(...args);
|
|
31599
31766
|
}
|
|
31600
31767
|
};
|
|
@@ -43145,7 +43312,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
43145
43312
|
});
|
|
43146
43313
|
const deliverSlashPayloads = async (replies) => {
|
|
43147
43314
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
43148
|
-
import("./replies-
|
|
43315
|
+
import("./replies-BMqtgBhh.js").then((n) => n.r),
|
|
43149
43316
|
import("./chunk-1dhPX1NK.js").then((n) => n.s),
|
|
43150
43317
|
import("./markdown-tables-CEbN0fEm.js").then((n) => n.t)
|
|
43151
43318
|
]);
|
|
@@ -47839,7 +48006,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
47839
48006
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
47840
48007
|
let preflightTranscript;
|
|
47841
48008
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
47842
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
48009
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-CIiS5cfP.js");
|
|
47843
48010
|
preflightTranscript = await transcribeFirstAudio({
|
|
47844
48011
|
ctx: {
|
|
47845
48012
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -49993,23 +50160,23 @@ let webLoginQrPromise = null;
|
|
|
49993
50160
|
let webChannelPromise = null;
|
|
49994
50161
|
let whatsappActionsPromise = null;
|
|
49995
50162
|
function loadWebOutbound() {
|
|
49996
|
-
webOutboundPromise ??= import("./outbound-
|
|
50163
|
+
webOutboundPromise ??= import("./outbound-wnv03tb3.js").then((n) => n.t);
|
|
49997
50164
|
return webOutboundPromise;
|
|
49998
50165
|
}
|
|
49999
50166
|
function loadWebLogin() {
|
|
50000
|
-
webLoginPromise ??= import("./login-
|
|
50167
|
+
webLoginPromise ??= import("./login-DODfJ3Dn.js").then((n) => n.n);
|
|
50001
50168
|
return webLoginPromise;
|
|
50002
50169
|
}
|
|
50003
50170
|
function loadWebLoginQr() {
|
|
50004
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
50171
|
+
webLoginQrPromise ??= import("./login-qr-CBRxijIg.js");
|
|
50005
50172
|
return webLoginQrPromise;
|
|
50006
50173
|
}
|
|
50007
50174
|
function loadWebChannel() {
|
|
50008
|
-
webChannelPromise ??= import("./web-
|
|
50175
|
+
webChannelPromise ??= import("./web-KiuDkd0x.js");
|
|
50009
50176
|
return webChannelPromise;
|
|
50010
50177
|
}
|
|
50011
50178
|
function loadWhatsAppActions() {
|
|
50012
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
50179
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-ChO_shrk.js");
|
|
50013
50180
|
return whatsappActionsPromise;
|
|
50014
50181
|
}
|
|
50015
50182
|
function createPluginRuntime() {
|
|
@@ -72708,7 +72875,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
72708
72875
|
return;
|
|
72709
72876
|
}
|
|
72710
72877
|
try {
|
|
72711
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
72878
|
+
const { deliverOutboundPayloads } = await import("./deliver-B4KZ6-oZ.js").then((n) => n.n);
|
|
72712
72879
|
await deliverOutboundPayloads({
|
|
72713
72880
|
cfg: params.cfg,
|
|
72714
72881
|
channel,
|