@symerian/symi 2.6.39 → 2.6.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{accounts-dRUMQQrB.js → accounts-3dCrO3oZ.js} +1 -1
- package/dist/{accounts-D1r2dq1t.js → accounts-BRw8yhIW.js} +21 -21
- package/dist/{accounts-wSphH5gv.js → accounts-BuZxOb3B.js} +1 -1
- package/dist/{acp-cli-ByYHYK_E.js → acp-cli-CArw-nEj.js} +2 -2
- package/dist/{acp-cli-EqE2uipx.js → acp-cli-Cm65S6FL.js} +2 -2
- package/dist/{active-listener-C3pfJhdC.js → active-listener-Br2FcRv7.js} +1 -1
- package/dist/{agent-scope-D68_xfTL.js → agent-scope-CpEJ0B88.js} +3 -3
- package/dist/{agents-BaNrmXzu.js → agents-BUphGO8B.js} +7 -7
- package/dist/{agents.config-C78DHdxT.js → agents.config-C5FjRTiH.js} +1 -1
- package/dist/{agents.config-BOxmN33d.js → agents.config-bWQyGjxK.js} +1 -1
- package/dist/{audio-preflight-DZ_2w4B5.js → audio-preflight-B0alOE_D.js} +5 -5
- package/dist/{audio-preflight-UXg8r6a7.js → audio-preflight-BUO1aDLp.js} +29 -29
- package/dist/{audio-preflight-CzQUZSUK.js → audio-preflight-DEJHmI9r.js} +11 -11
- package/dist/{audio-preflight-BuT_gIRW.js → audio-preflight-EindUWk_.js} +11 -11
- package/dist/{audit-BxqTVyZo.js → audit-B_XnVSC_.js} +5 -5
- package/dist/{audit-Cgd5-Y7W.js → audit-ChxZ7_3y.js} +5 -5
- package/dist/{auth-choice-BnJzLsv5.js → auth-choice-BZIJ1WP4.js} +4 -4
- package/dist/{auth-choice-CnpKK0cS.js → auth-choice-CScrqcEI.js} +4 -4
- package/dist/{auth-profiles-CZZjOpX8.js → auth-profiles-q3HjbboY.js} +17 -17
- package/dist/{banner-DdpNhjX6.js → banner-DdxLX10a.js} +1 -1
- package/dist/{bindings-Bat2RnAR.js → bindings-BsHoBLIE.js} +2 -2
- package/dist/{browser-cli-BrzYV9w9.js → browser-cli-B8qCOonD.js} +3 -3
- package/dist/{browser-cli-Dun4KSp2.js → browser-cli-d3tBzuZB.js} +3 -3
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +54 -54
- package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
- package/dist/bundled/command-logger/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +54 -54
- package/dist/{call-DIDhYlsx.js → call-CLKMnHOP.js} +1 -1
- package/dist/{call-CFhGTNtt.js → call-Dqx-xSZ7.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-activity-Cm1OJRbv.js → channel-activity-D-kw83R0.js} +1 -1
- package/dist/{channel-options-47wHx-rM.js → channel-options-BAqgueJ5.js} +1 -1
- package/dist/{channel-options-CJE7N_QV.js → channel-options-CC5ojwB6.js} +1 -1
- package/dist/{channel-web-CVf8YV4M.js → channel-web-_jV8VUEw.js} +7 -7
- package/dist/{channels-cli-CMLy_xVT.js → channels-cli-1we8fBWm.js} +30 -30
- package/dist/{channels-cli-Iya7tcnY.js → channels-cli-GldZ8ajW.js} +29 -29
- package/dist/{chrome-Dq0bSDVx.js → chrome-Cixcv-qk.js} +1 -1
- package/dist/{chrome-D0sqCqXY.js → chrome-D07ZncFh.js} +14 -14
- package/dist/{chrome-CXbfCc20.js → chrome-DJn17LsI.js} +8 -8
- package/dist/{chrome-DtPkPq9T.js → chrome-DtPv6OzN.js} +1 -1
- package/dist/{chunk-B9x_1qSr.js → chunk-BHW8Yu5A.js} +1 -1
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-dC-CEeDc.js → cli-CNO5cyFx.js} +25 -25
- package/dist/{cli-DmGUr8aj.js → cli-DZAotBEi.js} +26 -26
- package/dist/{command-registry-DSV-4T7A.js → command-registry-DZIdLwVe.js} +11 -11
- package/dist/{commands-registry-DPf4J7nj.js → commands-registry-BSvi46KZ.js} +4 -4
- package/dist/{completion-cli-dlL2VvFw.js → completion-cli-BWw06AVN.js} +1 -1
- package/dist/{completion-cli-DjQVuJdD.js → completion-cli-DYgPksHH.js} +2 -2
- package/dist/{config-CHwyw6l5.js → config-Bjt5P4vW.js} +4 -1
- package/dist/{config-DHBLS1Hl.js → config-BwQutavB.js} +4 -1
- package/dist/{config-giEDOxub.js → config-CyV6zkEL.js} +16 -13
- package/dist/{config-cli-DLFKoU1U.js → config-cli-BOS84uDD.js} +2 -2
- package/dist/{config-cli-Cm4KwczC.js → config-cli-DNHtgLYH.js} +2 -2
- package/dist/{config-guard--WfHrCVe.js → config-guard-BTGDJDTi.js} +3 -3
- package/dist/{config-guard-CPHvOzsC.js → config-guard-bJv1t515.js} +2 -2
- package/dist/{config-DBqxAhpU.js → config-jVLwO6DP.js} +4 -1
- package/dist/{config-validation-BITwrsxY.js → config-validation-D1EjO6bG.js} +1 -1
- package/dist/{config-validation-BckiR0w9.js → config-validation-PZAxf4DR.js} +1 -1
- package/dist/{configure-DNRNOqKI.js → configure-B7YGhbtM.js} +10 -10
- package/dist/{configure-BbFd3c68.js → configure-DZQuTL_V.js} +10 -10
- package/dist/{control-service-Dtn-qw2s.js → control-service-B0G5d40m.js} +4 -4
- package/dist/{control-service-DEVN6FRR.js → control-service-BW1BNnC1.js} +4 -4
- package/dist/control-ui/css/style.css +43 -0
- package/dist/control-ui/index.html +7 -1
- package/dist/control-ui/js/models.js +56 -16
- package/dist/{cron-cli-Bml4UNHa.js → cron-cli-B88WIOK2.js} +3 -3
- package/dist/{cron-cli-C-gg6wfO.js → cron-cli-QxHcrynL.js} +3 -3
- package/dist/{daemon-cli-BPHe9wOW.js → daemon-cli-Cy45NZwV.js} +6 -6
- package/dist/{daemon-cli-0RLS-CwL.js → daemon-cli-DK3CCo49.js} +6 -6
- package/dist/daemon-cli.js +4 -1
- package/dist/{daemon-runtime-CfRwa6qh.js → daemon-runtime-A-deduW3.js} +1 -1
- package/dist/{daemon-runtime-COZ4usfy.js → daemon-runtime-CdKAsAeg.js} +1 -1
- package/dist/{deliver-CXRSdUr1.js → deliver-BCmoI9iE.js} +3 -3
- package/dist/{deliver-DrFtaFZt.js → deliver-BjpaKGTx.js} +3 -3
- package/dist/{deliver-BY58QnO8.js → deliver-Cm6Yfbzh.js} +20 -20
- package/dist/{deliver-DepjYu87.js → deliver-SIVO_ZZm.js} +2 -2
- package/dist/{devices-cli-texa_iUV.js → devices-cli-D6sKbRkk.js} +2 -2
- package/dist/{devices-cli-CI2TOoP1.js → devices-cli-f3yJl6-G.js} +2 -2
- package/dist/{diagnostic-DIKKFHpP.js → diagnostic-CQiU0O8b.js} +1 -1
- package/dist/{directory-cli-D6vlxPje.js → directory-cli-DDb20Fzl.js} +1 -1
- package/dist/{directory-cli-BRMi7Alb.js → directory-cli-hohI4d8v.js} +1 -1
- package/dist/{dns-cli-BsRMpavf.js → dns-cli-C1SXZIAh.js} +1 -1
- package/dist/{dns-cli-BEub5qgQ.js → dns-cli-DIZyU_2d.js} +1 -1
- package/dist/{doctor-completion-Cm7WG43a.js → doctor-completion-BayL_S0c.js} +1 -1
- package/dist/{doctor-completion-Z_RXu40-.js → doctor-completion-UC-Jc5jn.js} +1 -1
- package/dist/{doctor-config-flow-CA3eiKhd.js → doctor-config-flow-DLtGtIf_.js} +2 -2
- package/dist/{doctor-config-flow-BTQvpBys.js → doctor-config-flow-i4XYSFXR.js} +2 -2
- package/dist/entry.js +1 -1
- package/dist/{env-xmBFQPBP.js → env-BDXYbTKj.js} +1 -1
- package/dist/{exec-approvals-cli-wesKZNXl.js → exec-approvals-cli-Cr-mrEfY.js} +4 -4
- package/dist/{exec-approvals-cli-DxKAWA8Y.js → exec-approvals-cli-DpFjEahL.js} +4 -4
- package/dist/extensionAPI.js +13 -13
- package/dist/{frontmatter-CV0YkjoY.js → frontmatter-CTR5f_Ez.js} +2 -2
- package/dist/{gateway-cli-Fnxgv97F.js → gateway-cli-BFPPqLYw.js} +41 -41
- package/dist/{gateway-cli-DliBYmLu.js → gateway-cli-Cwh2BbPv.js} +42 -42
- package/dist/{gateway-rpc-DiTk_nOl.js → gateway-rpc-CS_pPYyV.js} +1 -1
- package/dist/{gateway-rpc-BkB6xEaM.js → gateway-rpc-Ddqs16S-.js} +1 -1
- package/dist/{gemini-auth-C39f2zRe.js → gemini-auth-BkLFtndu.js} +1 -1
- package/dist/{github-copilot-token-B8B2pmph.js → github-copilot-token-cCYzSU9h.js} +7 -7
- package/dist/{glass-ui-ws-B0sH6QQi.js → glass-ui-ws-BfHJCfCz.js} +33 -33
- package/dist/{glass-ui-ws-CfNTIb_g.js → glass-ui-ws-DB9p7t4H.js} +34 -34
- package/dist/{health-9z0Hpkuc.js → health-Bx6RQ4MZ.js} +5 -5
- package/dist/{health-NTpZ8ssG.js → health-CLIwZbJe.js} +5 -5
- package/dist/{hooks-cli-C86OGnVu.js → hooks-cli-BgALdxuB.js} +26 -26
- package/dist/{hooks-cli-wq_uFJly.js → hooks-cli-CF4fT-gm.js} +27 -27
- package/dist/{image-CKMw_vhe.js → image-BmIvgTV4.js} +4 -4
- package/dist/{image-CjuJpc3E.js → image-BrxGAFvc.js} +2 -2
- package/dist/{image-BwXkayiM.js → image-DI1dYFo0.js} +2 -2
- package/dist/{image-CO4meYzg.js → image-KpMaj86B.js} +2 -2
- package/dist/{image-ops-M5agStZn.js → image-ops-C7CauEK8.js} +16 -16
- package/dist/index.js +34 -34
- package/dist/{ir-Z9axTYHx.js → ir-JAy_3A3B.js} +4 -4
- package/dist/{lifecycle-core-DIBHfMOL.js → lifecycle-core-BnlvcthF.js} +2 -2
- package/dist/{lifecycle-core-D0n_6gjJ.js → lifecycle-core-D8iU9ahw.js} +2 -2
- package/dist/llm-slug-generator.js +54 -54
- package/dist/{local-roots-Bh5xx9IO.js → local-roots-Se92wAN5.js} +5 -5
- package/dist/{login-CeXFO0OG.js → login-CayZfsyE.js} +2 -2
- package/dist/{login-tFW8qUTU.js → login-DPxmcuIe.js} +2 -2
- package/dist/{login-y9uojrfG.js → login-QU18rIZK.js} +2 -2
- package/dist/{login-2w0Q7Btb.js → login-bQWLSSfZ.js} +7 -7
- package/dist/{login-qr-CqPpNO1y.js → login-qr-BB2Zfn7K.js} +2 -2
- package/dist/{login-qr-CC0TE3ax.js → login-qr-Bn4BQkWf.js} +2 -2
- package/dist/{login-qr-BMIn_eOf.js → login-qr-CPn2Q7vV.js} +2 -2
- package/dist/{login-qr-BJMvic1s.js → login-qr-l5XwJWk9.js} +12 -12
- package/dist/{logs-cli-Dvs8e7u9.js → logs-cli-2z1YdwSX.js} +3 -3
- package/dist/{logs-cli-Dld6m2xN.js → logs-cli-COwO0YyZ.js} +3 -3
- package/dist/{manager-BoLUtbg2.js → manager-CJ3M1Uxq.js} +22 -22
- package/dist/{manifest-registry-0J48biqr.js → manifest-registry-yb7sAlu4.js} +19 -19
- package/dist/{markdown-tables-DuRhvVpP.js → markdown-tables-Dnj2LQUc.js} +1 -1
- package/dist/{memory-cli-CPONmMrJ.js → memory-cli-9q0ppQpo.js} +1 -1
- package/dist/{memory-cli-C2SWDd8g.js → memory-cli-B7GV_Iz_.js} +1 -1
- package/dist/{message-channel-DwDSKGn4.js → message-channel-OlFBYAw8.js} +1 -1
- package/dist/{model-catalog-r6v4orfa.js → model-catalog-CsKgWlNp.js} +2 -2
- package/dist/{model-catalog-Bn0ffe1O.js → model-catalog-b9o0TtF7.js} +2 -2
- package/dist/{model-picker-D1J9kB3d.js → model-picker-CRy3nJeT.js} +2 -2
- package/dist/{model-picker-TnkH7DsN.js → model-picker-DBsP93uq.js} +2 -2
- package/dist/{models-DfuMRKvu.js → models-CPIhph0W.js} +8 -8
- package/dist/{models-cli-BJv-aMkH.js → models-cli-C01GsvW2.js} +28 -28
- package/dist/{models-cli-FnD3ZD7s.js → models-cli-CLqS4ENq.js} +29 -29
- package/dist/{models-config-CCMpqFyr.js → models-config-Bc8qKqev.js} +1 -1
- package/dist/{models-config-qyOXrOli.js → models-config-BiIYPWCW.js} +1 -1
- package/dist/{node-cli-C4b1vFcY.js → node-cli-74pkmapS.js} +9 -9
- package/dist/{node-cli-C8xs7jkn.js → node-cli-BeZKOSYR.js} +9 -9
- package/dist/{nodes-cli-alQ9Bv_-.js → nodes-cli-DJHcnIfL.js} +3 -3
- package/dist/{nodes-cli-_wKGGKvG.js → nodes-cli-nic1q7eb.js} +3 -3
- package/dist/{onboard-A5dfwOyL.js → onboard-BrxB6sbz.js} +7 -7
- package/dist/{onboard-BSlbkbv-.js → onboard-CzncEzdT.js} +7 -7
- package/dist/{onboard-channels-CEZpwlsw.js → onboard-channels-BBUPobrz.js} +1 -1
- package/dist/{onboard-channels-DjqHX51z.js → onboard-channels-H11ympjW.js} +1 -1
- package/dist/{onboard-custom-yNOjvlgR.js → onboard-custom-BFbF4nGV.js} +2 -2
- package/dist/{onboard-custom-BNyCb71p.js → onboard-custom-Bt-wDMSz.js} +2 -2
- package/dist/{onboard-helpers-DASpwgat.js → onboard-helpers-ChH5EhW2.js} +2 -2
- package/dist/{onboard-helpers-CAjcAisT.js → onboard-helpers-MnxHJAaB.js} +2 -2
- package/dist/{onboard-remote-D-8pd-tx.js → onboard-remote-57GHsVPU.js} +1 -1
- package/dist/{onboard-remote-xXi061GI.js → onboard-remote-BRxgNeoe.js} +1 -1
- package/dist/{onboard-skills-c4Rw-CGf.js → onboard-skills-CLnJpRrp.js} +1 -1
- package/dist/{onboard-skills-Bn2T6lze.js → onboard-skills-DtcVRCTc.js} +1 -1
- package/dist/{onboarding-BTNiewJj.js → onboarding-D7hzRo_I.js} +10 -10
- package/dist/{onboarding-COqa6a28.js → onboarding-D8p8ii63.js} +10 -10
- package/dist/{onboarding.finalize-CAax5IdL.js → onboarding.finalize-BJUg2rlZ.js} +33 -33
- package/dist/{onboarding.finalize-CDsTN9zD.js → onboarding.finalize-C-rIKbkf.js} +31 -31
- package/dist/{onboarding.gateway-config-D6SN3HBb.js → onboarding.gateway-config-CTbWQvl6.js} +4 -4
- package/dist/{onboarding.gateway-config-DOna9Sr4.js → onboarding.gateway-config-oxW0bLBK.js} +4 -4
- package/dist/{outbound-drXCcH8D.js → outbound-BOqx1b0e.js} +1 -1
- package/dist/{outbound-B_wliV26.js → outbound-BhKz3zWF.js} +7 -7
- package/dist/{outbound-BihTVvMr.js → outbound-BodV7hPd.js} +1 -1
- package/dist/{outbound-DyBiNY4z.js → outbound-CG3KehgB.js} +1 -1
- package/dist/{outbound-attachment-BOy-OY4-.js → outbound-attachment-BzwVH4Pn.js} +2 -2
- package/dist/{pairing-cli-CQRAnpvm.js → pairing-cli-NErE7ajG.js} +1 -1
- package/dist/{pairing-cli-CpKm3M-X.js → pairing-cli-RbEs_EMc.js} +1 -1
- package/dist/{paths-DEuVuViW.js → paths-CbQV9WEg.js} +1 -1
- package/dist/{pi-auth-json-BQcKJvH0.js → pi-auth-json-CCaxCywz.js} +1 -1
- package/dist/{pi-embedded-R_JHJFwq.js → pi-embedded-b2yPH0UQ.js} +122 -37
- package/dist/{pi-embedded-helpers-Cr1X3W9i.js → pi-embedded-helpers-BDI11Fqj.js} +73 -73
- package/dist/{pi-embedded-helpers-BJrRH97f.js → pi-embedded-helpers-Bdac0DIf.js} +5 -5
- package/dist/{pi-embedded-helpers-BuVSLhG_.js → pi-embedded-helpers-CeNTB0sV.js} +1 -1
- package/dist/{pi-embedded-helpers-DE9h5GAu.js → pi-embedded-helpers-cgZRM5cz.js} +1 -1
- package/dist/{pi-tools.policy-De00gPXt.js → pi-tools.policy-B4NDL7r-.js} +2 -2
- package/dist/{pi-tools.policy-C6MWZ59E.js → pi-tools.policy-BYklnTNc.js} +2 -2
- package/dist/{plugin-registry-DMUt9X9t.js → plugin-registry-29yLAS46.js} +2 -2
- package/dist/{plugin-registry-DeT0nOee.js → plugin-registry-CzWOGG0k.js} +2 -2
- package/dist/plugin-sdk/{audio-preflight-JLsqSVmS.js → audio-preflight-DSEypXnx.js} +5 -5
- package/dist/plugin-sdk/{channel-web-BtuQPMkd.js → channel-web-DwLIjUen.js} +7 -7
- package/dist/plugin-sdk/{chrome-cPabhZZ4.js → chrome-DC-la42T.js} +1 -1
- package/dist/plugin-sdk/config/model-profiles.d.ts +3 -0
- package/dist/plugin-sdk/config/zod-schema.core.d.ts +6 -0
- package/dist/plugin-sdk/config/zod-schema.d.ts +3 -0
- package/dist/plugin-sdk/{config-XjK1L039.js → config-DgwyZd2S.js} +4 -1
- package/dist/plugin-sdk/{deliver-Clj5uUID.js → deliver-7pgLdSpM.js} +2 -2
- package/dist/plugin-sdk/{image-CAA-0T17.js → image-CqMZSk6f.js} +2 -2
- package/dist/plugin-sdk/index.js +17 -17
- package/dist/plugin-sdk/{login-Btqnuww9.js → login-DJzS9QT2.js} +2 -2
- package/dist/plugin-sdk/{login-qr-Bxhch9R1.js → login-qr-DziBjQY5.js} +2 -2
- package/dist/plugin-sdk/{outbound-D_7ktHfW.js → outbound-DmsEc64Z.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-CDrcAlGW.js → pi-embedded-helpers-C33OSgwG.js} +5 -5
- package/dist/plugin-sdk/{pw-ai-CJjlxWj7.js → pw-ai-MIepjtIO.js} +2 -2
- package/dist/plugin-sdk/{replies-DC9NI2KS.js → replies-Bw1Amxop.js} +1 -1
- package/dist/plugin-sdk/{reply-CnTdwks6.js → reply-BxYNpQRu.js} +118 -33
- package/dist/plugin-sdk/{runner-CBq0_f-j.js → runner-Bh4NdzRK.js} +2 -2
- package/dist/plugin-sdk/{send-u7SJPkmf.js → send-Bf62p_ul.js} +1 -1
- package/dist/plugin-sdk/{send-BditKDxK.js → send-CENVp2ol.js} +1 -1
- package/dist/plugin-sdk/{send-vTA7ntTD.js → send-D5_J2DiV.js} +1 -1
- package/dist/plugin-sdk/{send-BeO7M3pz.js → send-Ddy4p4LW.js} +1 -1
- package/dist/plugin-sdk/{send-CdJoYllr.js → send-P1G7c4FN.js} +1 -1
- package/dist/plugin-sdk/{session-t6hhaLPe.js → session-Z4-R_Top.js} +1 -1
- package/dist/plugin-sdk/{web-BkK8fGjJ.js → web-DiNM_c37.js} +17 -17
- package/dist/plugin-sdk/{whatsapp-actions-DifisvHY.js → whatsapp-actions-Bg6DfWkN.js} +2 -2
- package/dist/{plugins-Bkr5ZdYs.js → plugins-BzmbgY7s.js} +9 -9
- package/dist/{plugins-cli-D85G3qZp.js → plugins-cli-D4bGKnOF.js} +26 -26
- package/dist/{plugins-cli-BCYM8B89.js → plugins-cli-DZ6arND4.js} +27 -27
- package/dist/{program-C4k7oBuC.js → program-DE9DbHYV.js} +33 -33
- package/dist/{program-context-CiGMAzyC.js → program-context-iI9_njQv.js} +38 -38
- package/dist/{prompt-select-styled-CoWkFI4l.js → prompt-select-styled-D0ELdY0x.js} +14 -14
- package/dist/{prompt-select-styled-CYiMonwj.js → prompt-select-styled-SHa0ZJL9.js} +14 -14
- package/dist/{provider-auth-helpers-B8RGFZit.js → provider-auth-helpers-BI2k0jlH.js} +2 -2
- package/dist/{provider-auth-helpers-CfkQBpo7.js → provider-auth-helpers-EMBbfX3w.js} +2 -2
- package/dist/{push-apns-DM6nj062.js → push-apns-DcbeaY5y.js} +1 -1
- package/dist/{push-apns-DmpUv3y4.js → push-apns-DyeCPAvI.js} +1 -1
- package/dist/{pw-ai-C_1hRlOM.js → pw-ai-C2z2aMEp.js} +2 -2
- package/dist/{pw-ai-Ch_WUbQZ.js → pw-ai-C_7yEh9n.js} +11 -11
- package/dist/{pw-ai-CbyO1fbh.js → pw-ai-LB6wkt8h.js} +2 -2
- package/dist/{pw-ai-CS2tDZd2.js → pw-ai-sY1BRRsq.js} +2 -2
- package/dist/{qmd-manager-8-Z3Cdpt.js → qmd-manager-lBS9mT9w.js} +7 -7
- package/dist/{qr-cli-9L-HExyH.js → qr-cli-B-NWpxfN.js} +1 -1
- package/dist/{qr-cli-mgnfD5ce.js → qr-cli-TaubpmtG.js} +1 -1
- package/dist/{register.agent-DcvwdQXs.js → register.agent-D-1w3KOa.js} +32 -32
- package/dist/{register.agent-DX-OyYzL.js → register.agent-D4o7bi_u.js} +34 -34
- package/dist/{register.configure-DBaELzEM.js → register.configure-BIczNshG.js} +37 -37
- package/dist/{register.configure-Bldjj3LP.js → register.configure-BYCEJg1c.js} +36 -36
- package/dist/{register.maintenance-DVv8ljal.js → register.maintenance-Syt4oSuk.js} +34 -34
- package/dist/{register.maintenance-DAwf6cHN.js → register.maintenance-k6z5GVrO.js} +36 -36
- package/dist/{register.message-DUeR-Dz2.js → register.message-BJeeT9xQ.js} +27 -27
- package/dist/{register.message-ClKGIfK4.js → register.message-Bi7QLNId.js} +26 -26
- package/dist/{register.onboard-DJEZcUm5.js → register.onboard-B_FeHkL-.js} +33 -33
- package/dist/{register.onboard-DWrxbBr5.js → register.onboard-DDbxMjmt.js} +32 -32
- package/dist/{register.setup-Ah9E7LHA.js → register.setup-CPi3uss4.js} +33 -33
- package/dist/{register.setup-BDqhSgCz.js → register.setup-Cpl67hQ6.js} +32 -32
- package/dist/{register.status-health-sessions-BJYemCHi.js → register.status-health-sessions-CHPN3CNt.js} +31 -31
- package/dist/{register.status-health-sessions-CMQS8zwA.js → register.status-health-sessions-DsY8YuEo.js} +29 -29
- package/dist/{register.subclis-Bb0yWevQ.js → register.subclis-D5JRuk93.js} +28 -28
- package/dist/{registry-UkL38jvt.js → registry-DYq1AYOv.js} +17 -17
- package/dist/{replies-CbeMv5WZ.js → replies-C2sQt_cX.js} +3 -3
- package/dist/{replies-DO80zq73.js → replies-CYuZN9PJ.js} +1 -1
- package/dist/{replies-vgss3_QA.js → replies-cMkt1-fW.js} +1 -1
- package/dist/{replies-CM5QgPHM.js → replies-zOTZyd6v.js} +1 -1
- package/dist/{reply-YphHjxHp.js → reply-D55iMWI5.js} +129 -44
- package/dist/{reply-prefix-ZnX2V-k9.js → reply-prefix-CvEIl6_d.js} +1 -1
- package/dist/{resolve-route-gl0ZOOKR.js → resolve-route-DX7xcMsD.js} +4 -4
- package/dist/{retry-D25Z8MVS.js → retry-B-y5suGA.js} +1 -1
- package/dist/{routes-B1-BfEDm.js → routes-ClhmdN8I.js} +3 -3
- package/dist/{routes-BFw2-yAN.js → routes-DRkO6iuR.js} +3 -3
- package/dist/{rpc-gJOYujMj.js → rpc-DvA01fCj.js} +1 -1
- package/dist/{rpc--E7i90bk.js → rpc-UsQvUYIP.js} +1 -1
- package/dist/{run-main-CZI2Ne08.js → run-main-BWoPODyq.js} +44 -44
- package/dist/{runner-DKkSu9cc.js → runner-CtF7EgsD.js} +2 -2
- package/dist/{runner-DmM2HhB-.js → runner-D3aZ5p3H.js} +3 -3
- package/dist/{runner-B2Y_5crX.js → runner-_7xOqQDP.js} +22 -22
- package/dist/{runner-CW9KEL7W.js → runner-z_tSZGY5.js} +3 -3
- package/dist/{sandbox-BFzSUT19.js → sandbox-DrIHYiE6.js} +5 -5
- package/dist/{sandbox-cli-BV6FS0bK.js → sandbox-cli-BiiThMpq.js} +6 -6
- package/dist/{sandbox-cli-Cj5__-gh.js → sandbox-cli-QpZpJ6Hq.js} +6 -6
- package/dist/{sandbox-DAOxwUQm.js → sandbox-rjqN2SHD.js} +5 -5
- package/dist/{security-cli-KxA9AZ3q.js → security-cli-DxNPZzVB.js} +9 -9
- package/dist/{security-cli-BA4AGkeh.js → security-cli-s_AbIm-b.js} +9 -9
- package/dist/{send-CR5fRDgW.js → send-4MJyhXk5.js} +1 -1
- package/dist/{send-Cgcbuw8U.js → send-B62vYwo8.js} +1 -1
- package/dist/{send-CPF8hSFp.js → send-B7MtdeLq.js} +1 -1
- package/dist/{send-CY8oqBFg.js → send-B9pwTYyE.js} +1 -1
- package/dist/{send-CFzf_ab4.js → send-BJNUY-9E.js} +1 -1
- package/dist/{send-Dy8tsHUE.js → send-BTXR3fPR.js} +6 -6
- package/dist/{send-CB3dCCmE.js → send-BvCit35j.js} +1 -1
- package/dist/{send-ZI2bG_Jc.js → send-C1ptDV-M.js} +1 -1
- package/dist/{send-DTTtmhjA.js → send-C6jy9sVB.js} +1 -1
- package/dist/{send-CukP8Vq4.js → send-CVSO0ZdD.js} +1 -1
- package/dist/{send-sgxdFZNy.js → send-D8DhbDGm.js} +18 -18
- package/dist/{send-CZr1hVHY.js → send-DK-Jat_i.js} +1 -1
- package/dist/{send-iUSZIdml.js → send-DNJAa7Q_.js} +7 -7
- package/dist/{send-Cutb0ZDY.js → send-DV8npIWi.js} +1 -1
- package/dist/{send-CCNIWI2Z.js → send-De1p8sZA.js} +10 -10
- package/dist/{send-BJTX03Bn.js → send-DiYc3Z2y.js} +1 -1
- package/dist/{send-DHWMRnPk.js → send-DryK_KEK.js} +1 -1
- package/dist/{send-CPSKimCF.js → send-Dx7S4jGp.js} +6 -6
- package/dist/{send-iVPD3yf2.js → send-iIqnmxNc.js} +1 -1
- package/dist/{send-DK_pm_7l.js → send-qSITFlVc.js} +1 -1
- package/dist/{server-context-CHYWo_TC.js → server-context-C3fvq6h5.js} +5 -5
- package/dist/{server-context-H24IFajW.js → server-context-CtYkBX0P.js} +5 -5
- package/dist/{server-methods-C3xXynlm.js → server-methods-C4oRmj--.js} +16 -16
- package/dist/{server-methods-DJ3Bi-Xg.js → server-methods-DY-jApXo.js} +15 -15
- package/dist/{server-node-events-Cgdwex4k.js → server-node-events--9s3cGoR.js} +27 -27
- package/dist/{server-node-events-DS50d7AK.js → server-node-events-Bw6yFsJP.js} +26 -26
- package/dist/{session-CINKYYDi.js → session-3P44Lx9Z.js} +1 -1
- package/dist/{session-BTpKgzso.js → session-BUTPdQjj.js} +8 -8
- package/dist/{session-BF9s_N2s.js → session-BmC1G2OF.js} +1 -1
- package/dist/{session-Ckw7cXeP.js → session-XfYb9nxX.js} +1 -1
- package/dist/{session-utils-Bka9dR4m.js → session-utils-DlQSI-Te.js} +3 -3
- package/dist/{sessions-DgYpBvse.js → sessions-9tWmT3oM.js} +1 -1
- package/dist/{sessions-WBoXk-Ag.js → sessions-BL_hivz0.js} +3 -3
- package/dist/{sessions-CJXnZVjR.js → sessions-Dxc5UV-H.js} +1 -1
- package/dist/{shared-CvNixzwn.js → shared-DEvSdt0I.js} +1 -1
- package/dist/{shared-D8K9MkWg.js → shared-DwzDlNQn.js} +1 -1
- package/dist/{skill-commands-HBkNllDU.js → skill-commands-BiPrghRt.js} +16 -16
- package/dist/{skills-CGHRETGF.js → skills-Bs0AW1g3.js} +24 -24
- package/dist/{skills-cli-C-URp1av.js → skills-cli-BHJAAvDv.js} +1 -1
- package/dist/{skills-cli-CkTGL9dR.js → skills-cli-CES7tX87.js} +1 -1
- package/dist/{sqlite-JHY-uOmS.js → sqlite-BHWvOATS.js} +16 -16
- package/dist/{status-2KD2q2sn.js → status-CPQrmN1p.js} +2 -2
- package/dist/{status-0aNBSe72.js → status-CfCqG5a6.js} +9 -9
- package/dist/{status-D9uWA9pU.js → status-DZHTCKq_.js} +10 -10
- package/dist/{status-BBnhTX-n.js → status-DxqgzaIz.js} +2 -2
- package/dist/{status.update-DbmZz0Aq.js → status.update-BhJp4NkS.js} +1 -1
- package/dist/{status.update-DP0OFqyb.js → status.update-DqXGFKta.js} +1 -1
- package/dist/{store-Ea3zM6xK.js → store-01F_JM7O.js} +6 -6
- package/dist/{subagent-registry-aZczbtLM.js → subagent-registry-BGKDFTRA.js} +130 -45
- package/dist/{subsystem-DN75fnEF.js → subsystem-BjyjJF-d.js} +1 -1
- package/dist/{system-cli-BXewgTZR.js → system-cli-BrZGQcZl.js} +3 -3
- package/dist/{system-cli-CECNjZdB.js → system-cli-CjgIC8rh.js} +3 -3
- package/dist/{systemd-hints-sQipWGd1.js → systemd-hints-B8AHs8Nn.js} +1 -1
- package/dist/{systemd-hints-DZH9qY5W.js → systemd-hints-DUXXob94.js} +1 -1
- package/dist/{tables-Dkg9O8rv.js → tables-BuM4FKR3.js} +1 -1
- package/dist/{target-errors-Pr77jao5.js → target-errors-BEugWC4F.js} +2 -2
- package/dist/{thinking-C9-JAUzD.js → thinking-BprCy23Z.js} +5 -5
- package/dist/{tokens-CCZl4YHT.js → tokens-W0JzCJJM.js} +1 -1
- package/dist/{tool-images-B1qVCntj.js → tool-images-SqqWIT22.js} +2 -2
- package/dist/{tool-loop-detection-C33wf43N.js → tool-loop-detection-D5mBY7AC.js} +3 -3
- package/dist/{tui-DLaU7tTx.js → tui-BktCSga7.js} +4 -4
- package/dist/{tui-2nWOvxxE.js → tui-CAzxJ9EP.js} +4 -4
- package/dist/{tui-cli-B-Nl_8uj.js → tui-cli-AXeYpVcb.js} +9 -9
- package/dist/{tui-cli-D-PVUsS5.js → tui-cli-Bz3RdHqe.js} +9 -9
- package/dist/{unified-runner-hulABWDL.js → unified-runner-BhGMOS0G.js} +309 -224
- package/dist/{update-cli-CnN_k3P1.js → update-cli-C8EpxduY.js} +37 -37
- package/dist/{update-cli-DwGmFbPH.js → update-cli-n_Tkv8N_.js} +39 -39
- package/dist/{update-runner-BkdQhkKR.js → update-runner-CowTMnrt.js} +1 -1
- package/dist/{update-runner-dT5l0kuK.js → update-runner-Tk50GxTW.js} +1 -1
- package/dist/{web-DPki9fDa.js → web-BIpIz8vD.js} +29 -29
- package/dist/{web-DpQ5RaFz.js → web-CMLJq-WC.js} +58 -58
- package/dist/{web-C0ZdaR6w.js → web-Cz8o-Hc9.js} +16 -16
- package/dist/{web-CJSRBiDm.js → web-ONk39lyq.js} +29 -29
- package/dist/{webhooks-cli-ChiCyIaD.js → webhooks-cli-Da8YhVu4.js} +1 -1
- package/dist/{webhooks-cli-iOLEyFdx.js → webhooks-cli-v0rfBwU8.js} +1 -1
- package/dist/{whatsapp-actions-BmcMtU_J.js → whatsapp-actions-AEeCOVko.js} +2 -2
- package/dist/{whatsapp-actions-D_w4AfW9.js → whatsapp-actions-BPn8FtPC.js} +23 -23
- package/dist/{whatsapp-actions-BW8P8Izy.js → whatsapp-actions-Ba3KBpGu.js} +2 -2
- package/dist/{whatsapp-actions-C8nNH4ax.js → whatsapp-actions-Cz2qhCrD.js} +2 -2
- package/dist/{with-timeout-Di0nddLY.js → with-timeout-487M8IgO.js} +1 -1
- package/dist/{with-timeout-D2z7OkiK.js → with-timeout-BU7MJQDD.js} +1 -1
- package/dist/{workspace-DqJ5h-ZB.js → workspace-DscDraUb.js} +27 -27
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/learning-loop/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +6 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +6 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +6 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/package.json +1 -1
- package/extensions/pipeline/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +6 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +6 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +6 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +6 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
- package/dist/paths-CYmyCDsE.js +0 -212
|
@@ -1,77 +1,77 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { c as expandHomePrefix, i as resolveGatewayPort, n as resolveConfigPath, s as resolveStateDir, t as STATE_DIR, u as resolveRequiredHomeDir } from "./paths-
|
|
2
|
+
import { c as expandHomePrefix, i as resolveGatewayPort, n as resolveConfigPath, s as resolveStateDir, t as STATE_DIR, u as resolveRequiredHomeDir } from "./paths-CE7eVGHg.js";
|
|
3
3
|
import { _ as isCronSessionKey, b as resolveThreadParentSessionKey, c as normalizeMainKey, d as sanitizeAgentId, f as DEFAULT_ACCOUNT_ID, g as isAcpSessionKey, h as getSubagentDepth, l as resolveAgentIdFromSessionKey, o as classifySessionKeyShape, p as normalizeAccountId$2, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, u as resolveThreadSessionKeys, v as isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-BCzIW1Y2.js";
|
|
4
|
-
import { $ as warn, B as sleep$1, D as escapeRegExp, E as ensureDir$3, G as danger, I as resolveUserPath, J as logVerbose, M as normalizeE164, O as formatTerminalLink, R as shortenHomeInString, S as CONFIG_DIR, U as truncateUtf16Safe, V as sliceUtf16Safe, W as isPlainObject, X as setVerbose, Z as shouldLogVerbose, _ as matchPluginCommand, a as normalizeAnyChannelId, d as createPluginRegistry, dt as resolvePreferredSymiTmpDir, et as colorize, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, k as isRecord$1, l as requireActivePluginRegistry, lt as normalizeLogLevel, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, nt as theme, o as normalizeChannelId, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, rt as getChildLogger, tt as isRich, u as setActivePluginRegistry, v as createInternalHookEvent, w as clampInt, x as triggerInternalHook, z as shortenHomePath } from "./registry-
|
|
5
|
-
import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, d as resolveSessionAgentIds, i as resolveAgentModelFallbacksOverride, l as resolveEffectiveModelFallbacks, n as resolveAgentConfig, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId } from "./agent-scope-
|
|
6
|
-
import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-
|
|
7
|
-
import { S as logWarn, _ as runExec, b as logError, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, i as DEFAULT_IDENTITY_FILENAME, l as ensureAgentWorkspace, m as resolveSymiPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as logInfo, y as logDebug } from "./workspace-
|
|
8
|
-
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-
|
|
9
|
-
import { $ as resolveAuthProfileDisplayLabel, B as resolveApiKeyForProvider, C as normalizeProviderId, D as resolveModelRefFromString, E as resolveDefaultModelForAgent, F as OLLAMA_NATIVE_BASE_URL, G as getShellPathFromLoginShell, H as resolveModelAuthMode, I as createOllamaStreamFn, L as getApiKeyForModel, O as resolveSubagentSpawnModelSelection, Q as DEFAULT_PROVIDER, R as getCustomProviderApiKey, S as normalizeModelRef$2, T as resolveConfiguredModelRef, V as resolveEnvApiKey, W as normalizeSecretInput, X as DEFAULT_CONTEXT_TOKENS, Z as DEFAULT_MODEL, _ as buildConfiguredAllowlistKeys, a as markAuthProfileFailure, b as isCliProvider, c as dedupeProfileIds, d as ensureAuthProfileStore, et as resolveSymiAgentDir, f as resolveAuthStorePathForDisplay, g as buildAllowedModelSet, i as isProfileInCooldown, k as resolveThinkingDefault, l as listProfilesForProvider, n as resolveAuthProfileOrder, o as markAuthProfileUsed, p as withFileLock, q as resolveShellEnvFallbackTimeoutMs, r as getSoonestCooldownExpiry, s as resolveApiKeyForProfile, u as markAuthProfileGood, v as buildModelAliasIndex, x as modelKey, y as findNormalizedProviderValue, z as requireApiKey } from "./auth-profiles-
|
|
10
|
-
import { n as formatCliCommand, r as resolveCliName, t as isTruthyEnvValue } from "./env-
|
|
11
|
-
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-
|
|
4
|
+
import { $ as warn, B as sleep$1, D as escapeRegExp, E as ensureDir$3, G as danger, I as resolveUserPath, J as logVerbose, M as normalizeE164, O as formatTerminalLink, R as shortenHomeInString, S as CONFIG_DIR, U as truncateUtf16Safe, V as sliceUtf16Safe, W as isPlainObject, X as setVerbose, Z as shouldLogVerbose, _ as matchPluginCommand, a as normalizeAnyChannelId, d as createPluginRegistry, dt as resolvePreferredSymiTmpDir, et as colorize, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, k as isRecord$1, l as requireActivePluginRegistry, lt as normalizeLogLevel, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, nt as theme, o as normalizeChannelId, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, rt as getChildLogger, tt as isRich, u as setActivePluginRegistry, v as createInternalHookEvent, w as clampInt, x as triggerInternalHook, z as shortenHomePath } from "./registry-DYq1AYOv.js";
|
|
5
|
+
import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, d as resolveSessionAgentIds, i as resolveAgentModelFallbacksOverride, l as resolveEffectiveModelFallbacks, n as resolveAgentConfig, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId } from "./agent-scope-CpEJ0B88.js";
|
|
6
|
+
import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
|
|
7
|
+
import { S as logWarn, _ as runExec, b as logError, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, i as DEFAULT_IDENTITY_FILENAME, l as ensureAgentWorkspace, m as resolveSymiPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as logInfo, y as logDebug } from "./workspace-DscDraUb.js";
|
|
8
|
+
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-CbQV9WEg.js";
|
|
9
|
+
import { $ as resolveAuthProfileDisplayLabel, B as resolveApiKeyForProvider, C as normalizeProviderId, D as resolveModelRefFromString, E as resolveDefaultModelForAgent, F as OLLAMA_NATIVE_BASE_URL, G as getShellPathFromLoginShell, H as resolveModelAuthMode, I as createOllamaStreamFn, L as getApiKeyForModel, O as resolveSubagentSpawnModelSelection, Q as DEFAULT_PROVIDER, R as getCustomProviderApiKey, S as normalizeModelRef$2, T as resolveConfiguredModelRef, V as resolveEnvApiKey, W as normalizeSecretInput, X as DEFAULT_CONTEXT_TOKENS, Z as DEFAULT_MODEL, _ as buildConfiguredAllowlistKeys, a as markAuthProfileFailure, b as isCliProvider, c as dedupeProfileIds, d as ensureAuthProfileStore, et as resolveSymiAgentDir, f as resolveAuthStorePathForDisplay, g as buildAllowedModelSet, i as isProfileInCooldown, k as resolveThinkingDefault, l as listProfilesForProvider, n as resolveAuthProfileOrder, o as markAuthProfileUsed, p as withFileLock, q as resolveShellEnvFallbackTimeoutMs, r as getSoonestCooldownExpiry, s as resolveApiKeyForProfile, u as markAuthProfileGood, v as buildModelAliasIndex, x as modelKey, y as findNormalizedProviderValue, z as requireApiKey } from "./auth-profiles-q3HjbboY.js";
|
|
10
|
+
import { n as formatCliCommand, r as resolveCliName, t as isTruthyEnvValue } from "./env-BDXYbTKj.js";
|
|
11
|
+
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-cCYzSU9h.js";
|
|
12
12
|
import { t as parseBooleanValue$1 } from "./boolean-CE7i9tBR.js";
|
|
13
|
-
import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-
|
|
14
|
-
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-
|
|
15
|
-
import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-
|
|
16
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
17
|
-
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-
|
|
13
|
+
import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-BDI11Fqj.js";
|
|
14
|
+
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-CyV6zkEL.js";
|
|
15
|
+
import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-yb7sAlu4.js";
|
|
16
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-D07ZncFh.js";
|
|
17
|
+
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-Bs0AW1g3.js";
|
|
18
18
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-XIsvXeC-.js";
|
|
19
|
-
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-
|
|
19
|
+
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-C7CauEK8.js";
|
|
20
20
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-DpUUUgkK.js";
|
|
21
|
-
import { n as getMediaDir, r as saveMediaBuffer } from "./store-
|
|
22
|
-
import { _ as normalizeAtHashSlug, a as normalizeReasoningLevel, b as normalizeStringEntriesLower, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as resolveChannelGroupToolsPolicy, h as resolveChannelGroupRequireMention, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupPolicy, n as formatXHighModelHint, o as normalizeThinkLevel, p as normalizeSignalMessagingTarget, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeHyphenSlug, y as normalizeStringEntries } from "./thinking-
|
|
23
|
-
import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-
|
|
21
|
+
import { n as getMediaDir, r as saveMediaBuffer } from "./store-01F_JM7O.js";
|
|
22
|
+
import { _ as normalizeAtHashSlug, a as normalizeReasoningLevel, b as normalizeStringEntriesLower, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as resolveChannelGroupToolsPolicy, h as resolveChannelGroupRequireMention, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupPolicy, n as formatXHighModelHint, o as normalizeThinkLevel, p as normalizeSignalMessagingTarget, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeHyphenSlug, y as normalizeStringEntries } from "./thinking-BprCy23Z.js";
|
|
23
|
+
import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-OlFBYAw8.js";
|
|
24
24
|
import { t as normalizeChatType } from "./chat-type-3FRbbjbq.js";
|
|
25
25
|
import { n as resolveConversationLabel } from "./conversation-label-Onz2hiJh.js";
|
|
26
|
-
import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTelegramAccountIds, d as resolveSlackAccount, g as listEnabledDiscordAccounts, h as createDiscordActionGate, i as isWhatsAppGroupJid, l as resolveTelegramAccount, m as resolveSlackBotToken, n as listChannelPlugins, o as createTelegramActionGate, p as resolveSlackAppToken, r as normalizeChannelId$1, s as listEnabledTelegramAccounts, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeDiscordToken } from "./plugins-
|
|
27
|
-
import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-
|
|
28
|
-
import { t as resolveIMessageAccount } from "./accounts-
|
|
29
|
-
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-
|
|
30
|
-
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-
|
|
31
|
-
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-
|
|
26
|
+
import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTelegramAccountIds, d as resolveSlackAccount, g as listEnabledDiscordAccounts, h as createDiscordActionGate, i as isWhatsAppGroupJid, l as resolveTelegramAccount, m as resolveSlackBotToken, n as listChannelPlugins, o as createTelegramActionGate, p as resolveSlackAppToken, r as normalizeChannelId$1, s as listEnabledTelegramAccounts, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeDiscordToken } from "./plugins-BzmbgY7s.js";
|
|
27
|
+
import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-BRw8yhIW.js";
|
|
28
|
+
import { t as resolveIMessageAccount } from "./accounts-3dCrO3oZ.js";
|
|
29
|
+
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BuZxOb3B.js";
|
|
30
|
+
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-BTXR3fPR.js";
|
|
31
|
+
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-De1p8sZA.js";
|
|
32
32
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-BBh3Gsrx.js";
|
|
33
|
-
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-
|
|
34
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-
|
|
35
|
-
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-
|
|
33
|
+
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-SqqWIT22.js";
|
|
34
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-Cm6Yfbzh.js";
|
|
35
|
+
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-CQiU0O8b.js";
|
|
36
36
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Zw87xFym.js";
|
|
37
|
-
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-
|
|
38
|
-
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-
|
|
39
|
-
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-
|
|
40
|
-
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-
|
|
37
|
+
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-BmIvgTV4.js";
|
|
38
|
+
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-CCaxCywz.js";
|
|
39
|
+
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-W0JzCJJM.js";
|
|
40
|
+
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-D8DhbDGm.js";
|
|
41
41
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-CuZX_Q4t.js";
|
|
42
|
-
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-
|
|
43
|
-
import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-
|
|
44
|
-
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-
|
|
45
|
-
import { n as retryAsync } from "./retry-
|
|
46
|
-
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-
|
|
47
|
-
import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-
|
|
48
|
-
import { n as resolveMarkdownTableMode } from "./markdown-tables-
|
|
42
|
+
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CvEIl6_d.js";
|
|
43
|
+
import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-CJ3M1Uxq.js";
|
|
44
|
+
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-BHWvOATS.js";
|
|
45
|
+
import { n as retryAsync } from "./retry-B-y5suGA.js";
|
|
46
|
+
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-BEugWC4F.js";
|
|
47
|
+
import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-BHW8Yu5A.js";
|
|
48
|
+
import { n as resolveMarkdownTableMode } from "./markdown-tables-Dnj2LQUc.js";
|
|
49
49
|
import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-Cj6kcyGt.js";
|
|
50
|
-
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-
|
|
51
|
-
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-
|
|
52
|
-
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-
|
|
53
|
-
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-
|
|
54
|
-
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-
|
|
50
|
+
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-Se92wAN5.js";
|
|
51
|
+
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-JAy_3A3B.js";
|
|
52
|
+
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-BSvi46KZ.js";
|
|
53
|
+
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-_7xOqQDP.js";
|
|
54
|
+
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-BiPrghRt.js";
|
|
55
55
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-Dvqh1Tgb.js";
|
|
56
56
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-Dnti0cFs.js";
|
|
57
57
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-BGS2SHjF.js";
|
|
58
|
-
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-
|
|
58
|
+
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-D-kw83R0.js";
|
|
59
59
|
import { n as normalizePollInput } from "./polls-BKbIUHj7.js";
|
|
60
|
-
import { t as convertMarkdownTables } from "./tables-
|
|
61
|
-
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-
|
|
62
|
-
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-
|
|
63
|
-
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-
|
|
60
|
+
import { t as convertMarkdownTables } from "./tables-BuM4FKR3.js";
|
|
61
|
+
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-Dx7S4jGp.js";
|
|
62
|
+
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-DNJAa7Q_.js";
|
|
63
|
+
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-DX7xcMsD.js";
|
|
64
64
|
import { t as makeProxyFetch } from "./proxy-DVy9foH0.js";
|
|
65
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
66
|
-
import { t as getActiveWebListener } from "./active-listener-
|
|
65
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-C2sQt_cX.js";
|
|
66
|
+
import { t as getActiveWebListener } from "./active-listener-Br2FcRv7.js";
|
|
67
67
|
import { createRequire } from "node:module";
|
|
68
68
|
import * as path$1 from "node:path";
|
|
69
69
|
import path from "node:path";
|
|
70
|
-
import
|
|
70
|
+
import fs, { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
|
|
71
71
|
import os, { homedir } from "node:os";
|
|
72
72
|
import JSON5 from "json5";
|
|
73
|
-
import * as fs$
|
|
74
|
-
import fs from "node:fs/promises";
|
|
73
|
+
import * as fs$2 from "node:fs/promises";
|
|
74
|
+
import fs$1 from "node:fs/promises";
|
|
75
75
|
import { execFile, execFileSync, spawn, spawnSync } from "node:child_process";
|
|
76
76
|
import { inspect, promisify } from "node:util";
|
|
77
77
|
import { fileURLToPath } from "node:url";
|
|
@@ -218,13 +218,96 @@ const BUILTIN_PROFILES = [
|
|
|
218
218
|
}
|
|
219
219
|
},
|
|
220
220
|
{
|
|
221
|
-
match: ["
|
|
222
|
-
label: "Qwen 3.
|
|
221
|
+
match: ["qwen3.6", "spider-qwen36"],
|
|
222
|
+
label: "Qwen 3.6",
|
|
223
|
+
params: {
|
|
224
|
+
temperature: 1,
|
|
225
|
+
top_p: .95,
|
|
226
|
+
top_k: 20,
|
|
227
|
+
max_tokens: 16384,
|
|
228
|
+
presence_penalty: 1.5
|
|
229
|
+
},
|
|
230
|
+
streaming: {
|
|
231
|
+
deltaThrottleMs: 50,
|
|
232
|
+
flushOnFinal: true,
|
|
233
|
+
chunkPattern: "burst"
|
|
234
|
+
},
|
|
235
|
+
filters: {
|
|
236
|
+
stripPatterns: [],
|
|
237
|
+
suppressMonologue: true,
|
|
238
|
+
hasStructuredThinking: true,
|
|
239
|
+
validateToolArgs: false
|
|
240
|
+
},
|
|
241
|
+
promptAdditions: [
|
|
242
|
+
"CRITICAL OUTPUT RULES:",
|
|
243
|
+
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
244
|
+
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
245
|
+
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
246
|
+
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
247
|
+
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
248
|
+
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
249
|
+
],
|
|
250
|
+
ui: {
|
|
251
|
+
badge: "Spider",
|
|
252
|
+
watchdogMs: 9e5,
|
|
253
|
+
armWatchdogOnSend: true
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
match: ["trevorjs/gemma", "spider-gemma4"],
|
|
258
|
+
label: "Gemma 4 (Spider)",
|
|
223
259
|
params: {
|
|
224
260
|
temperature: 1,
|
|
225
261
|
top_p: .95,
|
|
226
262
|
top_k: 64,
|
|
227
|
-
max_tokens:
|
|
263
|
+
max_tokens: 4096,
|
|
264
|
+
stop: ["<end_of_turn>", "<eos>"]
|
|
265
|
+
},
|
|
266
|
+
streaming: {
|
|
267
|
+
deltaThrottleMs: 50,
|
|
268
|
+
flushOnFinal: true,
|
|
269
|
+
chunkPattern: "burst"
|
|
270
|
+
},
|
|
271
|
+
filters: {
|
|
272
|
+
stripPatterns: [
|
|
273
|
+
"<\\|channel>\\w*",
|
|
274
|
+
"<channel\\|>",
|
|
275
|
+
"<start_of_turn>(?:model|user)?",
|
|
276
|
+
"<end_of_turn>"
|
|
277
|
+
],
|
|
278
|
+
suppressMonologue: true,
|
|
279
|
+
hasStructuredThinking: false,
|
|
280
|
+
validateToolArgs: true
|
|
281
|
+
},
|
|
282
|
+
promptAdditions: [
|
|
283
|
+
"CRITICAL OUTPUT RULES:",
|
|
284
|
+
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
285
|
+
"- Do not output raw control tokens, channel tags, or turn markers.",
|
|
286
|
+
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
287
|
+
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
288
|
+
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
289
|
+
"- Send brief progress updates on long tasks so the user knows you are active.",
|
|
290
|
+
"- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax."
|
|
291
|
+
],
|
|
292
|
+
ui: {
|
|
293
|
+
badge: "Spider",
|
|
294
|
+
watchdogMs: 6e5,
|
|
295
|
+
armWatchdogOnSend: true
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
match: [
|
|
300
|
+
"qwen-cw",
|
|
301
|
+
"spider-qwen35",
|
|
302
|
+
"qwen3"
|
|
303
|
+
],
|
|
304
|
+
label: "Qwen 3.5",
|
|
305
|
+
params: {
|
|
306
|
+
temperature: 1,
|
|
307
|
+
top_p: .95,
|
|
308
|
+
top_k: 20,
|
|
309
|
+
max_tokens: 16384,
|
|
310
|
+
presence_penalty: 1.5
|
|
228
311
|
},
|
|
229
312
|
streaming: {
|
|
230
313
|
deltaThrottleMs: 50,
|
|
@@ -3922,7 +4005,7 @@ async function resolveSymiDocsPath(params) {
|
|
|
3922
4005
|
const workspaceDir = params.workspaceDir?.trim();
|
|
3923
4006
|
if (workspaceDir) {
|
|
3924
4007
|
const workspaceDocs = path.join(workspaceDir, "docs");
|
|
3925
|
-
if (
|
|
4008
|
+
if (fs.existsSync(workspaceDocs)) return workspaceDocs;
|
|
3926
4009
|
}
|
|
3927
4010
|
const packageRoot = await resolveSymiPackageRoot({
|
|
3928
4011
|
cwd: params.cwd,
|
|
@@ -3931,7 +4014,7 @@ async function resolveSymiDocsPath(params) {
|
|
|
3931
4014
|
});
|
|
3932
4015
|
if (!packageRoot) return null;
|
|
3933
4016
|
const packageDocs = path.join(packageRoot, "docs");
|
|
3934
|
-
return
|
|
4017
|
+
return fs.existsSync(packageDocs) ? packageDocs : null;
|
|
3935
4018
|
}
|
|
3936
4019
|
|
|
3937
4020
|
//#endregion
|
|
@@ -4240,7 +4323,7 @@ async function getMemorySearchManager(params) {
|
|
|
4240
4323
|
if (cached) return { manager: cached };
|
|
4241
4324
|
}
|
|
4242
4325
|
try {
|
|
4243
|
-
const { QmdMemoryManager } = await import("./qmd-manager-
|
|
4326
|
+
const { QmdMemoryManager } = await import("./qmd-manager-lBS9mT9w.js");
|
|
4244
4327
|
const primary = await QmdMemoryManager.create({
|
|
4245
4328
|
cfg: params.cfg,
|
|
4246
4329
|
agentId: params.agentId,
|
|
@@ -4252,7 +4335,7 @@ async function getMemorySearchManager(params) {
|
|
|
4252
4335
|
const wrapper = new FallbackMemoryManager({
|
|
4253
4336
|
primary,
|
|
4254
4337
|
fallbackFactory: async () => {
|
|
4255
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
4338
|
+
const { MemoryIndexManager } = await import("./manager-CJ3M1Uxq.js").then((n) => n.t);
|
|
4256
4339
|
return await MemoryIndexManager.get(params);
|
|
4257
4340
|
}
|
|
4258
4341
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -4265,7 +4348,7 @@ async function getMemorySearchManager(params) {
|
|
|
4265
4348
|
}
|
|
4266
4349
|
}
|
|
4267
4350
|
try {
|
|
4268
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
4351
|
+
const { MemoryIndexManager } = await import("./manager-CJ3M1Uxq.js").then((n) => n.t);
|
|
4269
4352
|
return { manager: await MemoryIndexManager.get(params) };
|
|
4270
4353
|
} catch (err) {
|
|
4271
4354
|
return {
|
|
@@ -6813,7 +6896,7 @@ async function recordLoopOutcome(args) {
|
|
|
6813
6896
|
if (!args.ctx?.sessionKey) return;
|
|
6814
6897
|
try {
|
|
6815
6898
|
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Zw87xFym.js").then((n) => n.n);
|
|
6816
|
-
const { recordToolCallOutcome } = await import("./tool-loop-detection-
|
|
6899
|
+
const { recordToolCallOutcome } = await import("./tool-loop-detection-D5mBY7AC.js");
|
|
6817
6900
|
recordToolCallOutcome(getDiagnosticSessionState({
|
|
6818
6901
|
sessionKey: args.ctx.sessionKey,
|
|
6819
6902
|
sessionId: args.ctx?.agentId
|
|
@@ -6834,8 +6917,8 @@ async function runBeforeToolCallHook(args) {
|
|
|
6834
6917
|
const params = args.params;
|
|
6835
6918
|
if (args.ctx?.sessionKey) {
|
|
6836
6919
|
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Zw87xFym.js").then((n) => n.n);
|
|
6837
|
-
const { logToolLoopAction } = await import("./diagnostic-
|
|
6838
|
-
const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-
|
|
6920
|
+
const { logToolLoopAction } = await import("./diagnostic-CQiU0O8b.js").then((n) => n.n);
|
|
6921
|
+
const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-D5mBY7AC.js");
|
|
6839
6922
|
const sessionState = getDiagnosticSessionState({
|
|
6840
6923
|
sessionKey: args.ctx.sessionKey,
|
|
6841
6924
|
sessionId: args.ctx?.agentId
|
|
@@ -7122,7 +7205,7 @@ function resolveDefaultIdentityPath() {
|
|
|
7122
7205
|
return path.join(resolveStateDir(), "identity", "device.json");
|
|
7123
7206
|
}
|
|
7124
7207
|
function ensureDir$2(filePath) {
|
|
7125
|
-
|
|
7208
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
7126
7209
|
}
|
|
7127
7210
|
const ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
|
|
7128
7211
|
function base64UrlEncode(buf) {
|
|
@@ -7158,8 +7241,8 @@ function generateIdentity() {
|
|
|
7158
7241
|
}
|
|
7159
7242
|
function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
|
|
7160
7243
|
try {
|
|
7161
|
-
if (
|
|
7162
|
-
const raw =
|
|
7244
|
+
if (fs.existsSync(filePath)) {
|
|
7245
|
+
const raw = fs.readFileSync(filePath, "utf8");
|
|
7163
7246
|
const parsed = JSON.parse(raw);
|
|
7164
7247
|
if (parsed?.version === 1 && typeof parsed.deviceId === "string" && typeof parsed.publicKeyPem === "string" && typeof parsed.privateKeyPem === "string") {
|
|
7165
7248
|
const derivedId = fingerprintPublicKey(parsed.publicKeyPem);
|
|
@@ -7168,9 +7251,9 @@ function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
|
|
|
7168
7251
|
...parsed,
|
|
7169
7252
|
deviceId: derivedId
|
|
7170
7253
|
};
|
|
7171
|
-
|
|
7254
|
+
fs.writeFileSync(filePath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 384 });
|
|
7172
7255
|
try {
|
|
7173
|
-
|
|
7256
|
+
fs.chmodSync(filePath, 384);
|
|
7174
7257
|
} catch {}
|
|
7175
7258
|
return {
|
|
7176
7259
|
deviceId: derivedId,
|
|
@@ -7195,9 +7278,9 @@ function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
|
|
|
7195
7278
|
privateKeyPem: identity.privateKeyPem,
|
|
7196
7279
|
createdAtMs: Date.now()
|
|
7197
7280
|
};
|
|
7198
|
-
|
|
7281
|
+
fs.writeFileSync(filePath, `${JSON.stringify(stored, null, 2)}\n`, { mode: 384 });
|
|
7199
7282
|
try {
|
|
7200
|
-
|
|
7283
|
+
fs.chmodSync(filePath, 384);
|
|
7201
7284
|
} catch {}
|
|
7202
7285
|
return identity;
|
|
7203
7286
|
}
|
|
@@ -7220,7 +7303,7 @@ function normalizeFingerprint(input) {
|
|
|
7220
7303
|
const execFileAsync = promisify(execFile);
|
|
7221
7304
|
async function fileExists(filePath) {
|
|
7222
7305
|
try {
|
|
7223
|
-
await fs.access(filePath);
|
|
7306
|
+
await fs$1.access(filePath);
|
|
7224
7307
|
return true;
|
|
7225
7308
|
} catch {
|
|
7226
7309
|
return false;
|
|
@@ -7247,8 +7330,8 @@ async function generateSelfSignedCert(params) {
|
|
|
7247
7330
|
"-subj",
|
|
7248
7331
|
"/CN=symi-gateway"
|
|
7249
7332
|
]);
|
|
7250
|
-
await fs.chmod(params.keyPath, 384).catch(() => {});
|
|
7251
|
-
await fs.chmod(params.certPath, 384).catch(() => {});
|
|
7333
|
+
await fs$1.chmod(params.keyPath, 384).catch(() => {});
|
|
7334
|
+
await fs$1.chmod(params.certPath, 384).catch(() => {});
|
|
7252
7335
|
params.log?.info?.(`gateway tls: generated self-signed cert at ${shortenHomeInString(params.certPath)}`);
|
|
7253
7336
|
}
|
|
7254
7337
|
async function loadGatewayTlsRuntime(cfg, log) {
|
|
@@ -7286,9 +7369,9 @@ async function loadGatewayTlsRuntime(cfg, log) {
|
|
|
7286
7369
|
error: "gateway tls: cert/key missing"
|
|
7287
7370
|
};
|
|
7288
7371
|
try {
|
|
7289
|
-
const cert = await fs.readFile(certPath, "utf8");
|
|
7290
|
-
const key = await fs.readFile(keyPath, "utf8");
|
|
7291
|
-
const ca = caPath ? await fs.readFile(caPath, "utf8") : void 0;
|
|
7372
|
+
const cert = await fs$1.readFile(certPath, "utf8");
|
|
7373
|
+
const key = await fs$1.readFile(keyPath, "utf8");
|
|
7374
|
+
const ca = caPath ? await fs$1.readFile(caPath, "utf8") : void 0;
|
|
7292
7375
|
const fingerprintSha256 = normalizeFingerprint(new X509Certificate(cert).fingerprint256 ?? "");
|
|
7293
7376
|
if (!fingerprintSha256) return {
|
|
7294
7377
|
enabled: false,
|
|
@@ -7347,8 +7430,8 @@ function resolveDeviceAuthPath(env = process.env) {
|
|
|
7347
7430
|
}
|
|
7348
7431
|
function readStore(filePath) {
|
|
7349
7432
|
try {
|
|
7350
|
-
if (!
|
|
7351
|
-
const raw =
|
|
7433
|
+
if (!fs.existsSync(filePath)) return null;
|
|
7434
|
+
const raw = fs.readFileSync(filePath, "utf8");
|
|
7352
7435
|
const parsed = JSON.parse(raw);
|
|
7353
7436
|
if (parsed?.version !== 1 || typeof parsed.deviceId !== "string") return null;
|
|
7354
7437
|
if (!parsed.tokens || typeof parsed.tokens !== "object") return null;
|
|
@@ -7358,10 +7441,10 @@ function readStore(filePath) {
|
|
|
7358
7441
|
}
|
|
7359
7442
|
}
|
|
7360
7443
|
function writeStore(filePath, store) {
|
|
7361
|
-
|
|
7362
|
-
|
|
7444
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
7445
|
+
fs.writeFileSync(filePath, `${JSON.stringify(store, null, 2)}\n`, { mode: 384 });
|
|
7363
7446
|
try {
|
|
7364
|
-
|
|
7447
|
+
fs.chmodSync(filePath, 384);
|
|
7365
7448
|
} catch {}
|
|
7366
7449
|
}
|
|
7367
7450
|
function loadDeviceAuthToken(params) {
|
|
@@ -10153,7 +10236,7 @@ async function routeReply(params) {
|
|
|
10153
10236
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
10154
10237
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
10155
10238
|
try {
|
|
10156
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
10239
|
+
const { deliverOutboundPayloads } = await import("./deliver-Cm6Yfbzh.js").then((n) => n.n);
|
|
10157
10240
|
return {
|
|
10158
10241
|
ok: true,
|
|
10159
10242
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -10549,7 +10632,7 @@ function normalizeSessionKey(value) {
|
|
|
10549
10632
|
}
|
|
10550
10633
|
function readSessionStore(storePath) {
|
|
10551
10634
|
try {
|
|
10552
|
-
const raw =
|
|
10635
|
+
const raw = fs.readFileSync(storePath, "utf-8");
|
|
10553
10636
|
const parsed = JSON5.parse(raw);
|
|
10554
10637
|
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
|
|
10555
10638
|
} catch {}
|
|
@@ -15608,7 +15691,7 @@ async function createModelSelectionState(params) {
|
|
|
15608
15691
|
}
|
|
15609
15692
|
}
|
|
15610
15693
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
15611
|
-
const { ensureAuthProfileStore } = await import("./auth-profiles-
|
|
15694
|
+
const { ensureAuthProfileStore } = await import("./auth-profiles-q3HjbboY.js").then((n) => n.t);
|
|
15612
15695
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
15613
15696
|
const providerKey = normalizeProviderId(provider);
|
|
15614
15697
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -17981,8 +18064,8 @@ const DEFAULT_SAFE_BINS = [
|
|
|
17981
18064
|
];
|
|
17982
18065
|
function isExecutableFile(filePath) {
|
|
17983
18066
|
try {
|
|
17984
|
-
if (!
|
|
17985
|
-
if (process.platform !== "win32")
|
|
18067
|
+
if (!fs.statSync(filePath).isFile()) return false;
|
|
18068
|
+
if (process.platform !== "win32") fs.accessSync(filePath, fs.constants.X_OK);
|
|
17986
18069
|
return true;
|
|
17987
18070
|
} catch {
|
|
17988
18071
|
return false;
|
|
@@ -18020,7 +18103,7 @@ function normalizeMatchTarget(value) {
|
|
|
18020
18103
|
}
|
|
18021
18104
|
function tryRealpath(value) {
|
|
18022
18105
|
try {
|
|
18023
|
-
return
|
|
18106
|
+
return fs.realpathSync(value);
|
|
18024
18107
|
} catch {
|
|
18025
18108
|
return null;
|
|
18026
18109
|
}
|
|
@@ -19252,7 +19335,7 @@ function mergeLegacyAgent(current, legacy) {
|
|
|
19252
19335
|
}
|
|
19253
19336
|
function ensureDir$1(filePath) {
|
|
19254
19337
|
const dir = path.dirname(filePath);
|
|
19255
|
-
|
|
19338
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
19256
19339
|
}
|
|
19257
19340
|
function coerceAllowlistEntries(allowlist) {
|
|
19258
19341
|
if (!Array.isArray(allowlist) || allowlist.length === 0) return Array.isArray(allowlist) ? allowlist : void 0;
|
|
@@ -19322,11 +19405,11 @@ function generateToken() {
|
|
|
19322
19405
|
function loadExecApprovals() {
|
|
19323
19406
|
const filePath = resolveExecApprovalsPath();
|
|
19324
19407
|
try {
|
|
19325
|
-
if (!
|
|
19408
|
+
if (!fs.existsSync(filePath)) return normalizeExecApprovals({
|
|
19326
19409
|
version: 1,
|
|
19327
19410
|
agents: {}
|
|
19328
19411
|
});
|
|
19329
|
-
const raw =
|
|
19412
|
+
const raw = fs.readFileSync(filePath, "utf8");
|
|
19330
19413
|
const parsed = JSON.parse(raw);
|
|
19331
19414
|
if (parsed?.version !== 1) return normalizeExecApprovals({
|
|
19332
19415
|
version: 1,
|
|
@@ -19343,9 +19426,9 @@ function loadExecApprovals() {
|
|
|
19343
19426
|
function saveExecApprovals(file) {
|
|
19344
19427
|
const filePath = resolveExecApprovalsPath();
|
|
19345
19428
|
ensureDir$1(filePath);
|
|
19346
|
-
|
|
19429
|
+
fs.writeFileSync(filePath, `${JSON.stringify(file, null, 2)}\n`, { mode: 384 });
|
|
19347
19430
|
try {
|
|
19348
|
-
|
|
19431
|
+
fs.chmodSync(filePath, 384);
|
|
19349
19432
|
} catch {}
|
|
19350
19433
|
}
|
|
19351
19434
|
function ensureExecApprovals() {
|
|
@@ -19666,7 +19749,7 @@ function resolvePowerShellPath() {
|
|
|
19666
19749
|
const systemRoot = process.env.SystemRoot || process.env.WINDIR;
|
|
19667
19750
|
if (systemRoot) {
|
|
19668
19751
|
const candidate = path.join(systemRoot, "System32", "WindowsPowerShell", "v1.0", "powershell.exe");
|
|
19669
|
-
if (
|
|
19752
|
+
if (fs.existsSync(candidate)) return candidate;
|
|
19670
19753
|
}
|
|
19671
19754
|
return "powershell.exe";
|
|
19672
19755
|
}
|
|
@@ -19704,7 +19787,7 @@ function resolveShellFromPath(name) {
|
|
|
19704
19787
|
for (const entry of entries) {
|
|
19705
19788
|
const candidate = path.join(entry, name);
|
|
19706
19789
|
try {
|
|
19707
|
-
|
|
19790
|
+
fs.accessSync(candidate, fs.constants.X_OK);
|
|
19708
19791
|
return candidate;
|
|
19709
19792
|
} catch {}
|
|
19710
19793
|
}
|
|
@@ -20452,7 +20535,7 @@ async function resolveSandboxWorkdir(params) {
|
|
|
20452
20535
|
cwd: process.cwd(),
|
|
20453
20536
|
root: params.sandbox.workspaceDir
|
|
20454
20537
|
});
|
|
20455
|
-
if (!(await fs.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
|
|
20538
|
+
if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
|
|
20456
20539
|
const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
|
|
20457
20540
|
const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
|
|
20458
20541
|
return {
|
|
@@ -21503,13 +21586,13 @@ async function validateScriptFileForShellBleed(params) {
|
|
|
21503
21586
|
cwd: params.workdir,
|
|
21504
21587
|
root: params.workdir
|
|
21505
21588
|
});
|
|
21506
|
-
stat = await fs.stat(absPath);
|
|
21589
|
+
stat = await fs$1.stat(absPath);
|
|
21507
21590
|
} catch {
|
|
21508
21591
|
return;
|
|
21509
21592
|
}
|
|
21510
21593
|
if (!stat.isFile()) return;
|
|
21511
21594
|
if (stat.size > 512 * 1024) return;
|
|
21512
|
-
const content = await fs.readFile(absPath, "utf-8");
|
|
21595
|
+
const content = await fs$1.readFile(absPath, "utf-8");
|
|
21513
21596
|
const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
|
|
21514
21597
|
if (first) {
|
|
21515
21598
|
const idx = first.index;
|
|
@@ -22760,7 +22843,7 @@ function walkUpFrom(startDir, opts, resolveAtDir) {
|
|
|
22760
22843
|
function hasGitMarker(repoRoot) {
|
|
22761
22844
|
const gitPath = path.join(repoRoot, ".git");
|
|
22762
22845
|
try {
|
|
22763
|
-
const stat =
|
|
22846
|
+
const stat = fs.statSync(gitPath);
|
|
22764
22847
|
return stat.isDirectory() || stat.isFile();
|
|
22765
22848
|
} catch {
|
|
22766
22849
|
return false;
|
|
@@ -22772,10 +22855,10 @@ function findGitRoot(startDir, opts = {}) {
|
|
|
22772
22855
|
function resolveGitDirFromMarker(repoRoot) {
|
|
22773
22856
|
const gitPath = path.join(repoRoot, ".git");
|
|
22774
22857
|
try {
|
|
22775
|
-
const stat =
|
|
22858
|
+
const stat = fs.statSync(gitPath);
|
|
22776
22859
|
if (stat.isDirectory()) return gitPath;
|
|
22777
22860
|
if (!stat.isFile()) return null;
|
|
22778
|
-
const match =
|
|
22861
|
+
const match = fs.readFileSync(gitPath, "utf-8").match(/gitdir:\s*(.+)/i);
|
|
22779
22862
|
if (!match?.[1]) return null;
|
|
22780
22863
|
return path.resolve(repoRoot, match[1].trim());
|
|
22781
22864
|
} catch {
|
|
@@ -22842,7 +22925,7 @@ const resolveCommitHash = (options = {}) => {
|
|
|
22842
22925
|
cachedCommit = null;
|
|
22843
22926
|
return cachedCommit;
|
|
22844
22927
|
}
|
|
22845
|
-
const head =
|
|
22928
|
+
const head = fs.readFileSync(headPath, "utf-8").trim();
|
|
22846
22929
|
if (!head) {
|
|
22847
22930
|
cachedCommit = null;
|
|
22848
22931
|
return cachedCommit;
|
|
@@ -22850,7 +22933,7 @@ const resolveCommitHash = (options = {}) => {
|
|
|
22850
22933
|
if (head.startsWith("ref:")) {
|
|
22851
22934
|
const ref = head.replace(/^ref:\s*/i, "").trim();
|
|
22852
22935
|
const refPath = path.resolve(path.dirname(headPath), ref);
|
|
22853
|
-
cachedCommit = formatCommit(
|
|
22936
|
+
cachedCommit = formatCommit(fs.readFileSync(refPath, "utf-8").trim());
|
|
22854
22937
|
return cachedCommit;
|
|
22855
22938
|
}
|
|
22856
22939
|
cachedCommit = formatCommit(head);
|
|
@@ -23054,9 +23137,9 @@ const readUsageFromSessionLog = (sessionId, sessionEntry, agentId, sessionKey, s
|
|
|
23054
23137
|
} catch {
|
|
23055
23138
|
return;
|
|
23056
23139
|
}
|
|
23057
|
-
if (!
|
|
23140
|
+
if (!fs.existsSync(logPath)) return;
|
|
23058
23141
|
try {
|
|
23059
|
-
const lines =
|
|
23142
|
+
const lines = fs.readFileSync(logPath, "utf-8").split(/\n+/);
|
|
23060
23143
|
let input = 0;
|
|
23061
23144
|
let output = 0;
|
|
23062
23145
|
let promptTokens = 0;
|
|
@@ -24296,7 +24379,7 @@ function resolveRepoRoot(params) {
|
|
|
24296
24379
|
const configured = params.config?.agents?.defaults?.repoRoot?.trim();
|
|
24297
24380
|
if (configured) try {
|
|
24298
24381
|
const resolved = path.resolve(configured);
|
|
24299
|
-
if (
|
|
24382
|
+
if (fs.statSync(resolved).isDirectory()) return resolved;
|
|
24300
24383
|
} catch {}
|
|
24301
24384
|
const candidates = [params.workspaceDir, params.cwd].map((value) => value?.trim()).filter(Boolean);
|
|
24302
24385
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -24615,7 +24698,7 @@ async function buildContextReply(params) {
|
|
|
24615
24698
|
//#region src/auto-reply/reply/commands-export-session.ts
|
|
24616
24699
|
const EXPORT_HTML_DIR = path.join(path.dirname(fileURLToPath(import.meta.url)), "export-html");
|
|
24617
24700
|
function loadTemplate(fileName) {
|
|
24618
|
-
return
|
|
24701
|
+
return fs.readFileSync(path.join(EXPORT_HTML_DIR, fileName), "utf-8");
|
|
24619
24702
|
}
|
|
24620
24703
|
function generateHtml(sessionData) {
|
|
24621
24704
|
const template = loadTemplate("template.html");
|
|
@@ -24689,7 +24772,7 @@ async function buildExportSessionReply(params) {
|
|
|
24689
24772
|
} catch (err) {
|
|
24690
24773
|
return { text: `❌ Failed to resolve session file: ${err instanceof Error ? err.message : String(err)}` };
|
|
24691
24774
|
}
|
|
24692
|
-
if (!
|
|
24775
|
+
if (!fs.existsSync(sessionFile)) return { text: `❌ Session file not found: ${sessionFile}` };
|
|
24693
24776
|
const sessionManager = SessionManager.open(sessionFile);
|
|
24694
24777
|
const entries = sessionManager.getEntries();
|
|
24695
24778
|
const header = sessionManager.getHeader();
|
|
@@ -24710,8 +24793,8 @@ async function buildExportSessionReply(params) {
|
|
|
24710
24793
|
const defaultFileName = `symi-session-${entry.sessionId.slice(0, 8)}-${timestamp}.html`;
|
|
24711
24794
|
const outputPath = args.outputPath ? path.resolve(args.outputPath.startsWith("~") ? args.outputPath.replace("~", process.env.HOME ?? "") : args.outputPath) : path.join(params.workspaceDir, defaultFileName);
|
|
24712
24795
|
const outputDir = path.dirname(outputPath);
|
|
24713
|
-
if (!
|
|
24714
|
-
|
|
24796
|
+
if (!fs.existsSync(outputDir)) fs.mkdirSync(outputDir, { recursive: true });
|
|
24797
|
+
fs.writeFileSync(outputPath, html, "utf-8");
|
|
24715
24798
|
const relativePath = path.relative(params.workspaceDir, outputPath);
|
|
24716
24799
|
return { text: [
|
|
24717
24800
|
"✅ Session exported!",
|
|
@@ -24825,8 +24908,8 @@ function resolveZaiApiKey() {
|
|
|
24825
24908
|
}
|
|
24826
24909
|
try {
|
|
24827
24910
|
const authPath = path.join(os.homedir(), ".pi", "agent", "auth.json");
|
|
24828
|
-
if (!
|
|
24829
|
-
const data = JSON.parse(
|
|
24911
|
+
if (!fs.existsSync(authPath)) return;
|
|
24912
|
+
const data = JSON.parse(fs.readFileSync(authPath, "utf-8"));
|
|
24830
24913
|
return data["z-ai"]?.access || data.zai?.access;
|
|
24831
24914
|
} catch {
|
|
24832
24915
|
return;
|
|
@@ -26391,7 +26474,7 @@ function shouldPersistAnyBindingState() {
|
|
|
26391
26474
|
}
|
|
26392
26475
|
function shouldPersistBindingMutations() {
|
|
26393
26476
|
if (shouldPersistAnyBindingState()) return true;
|
|
26394
|
-
return
|
|
26477
|
+
return fs.existsSync(resolveThreadBindingsPath());
|
|
26395
26478
|
}
|
|
26396
26479
|
function saveBindingsToDisk(params = {}) {
|
|
26397
26480
|
if (!params.force && !shouldPersistAnyBindingState()) return;
|
|
@@ -27379,7 +27462,7 @@ const applyCostTotal = (totals, costTotal) => {
|
|
|
27379
27462
|
totals.totalCost += costTotal;
|
|
27380
27463
|
};
|
|
27381
27464
|
async function* readJsonlRecords(filePath) {
|
|
27382
|
-
const fileStream =
|
|
27465
|
+
const fileStream = fs.createReadStream(filePath, { encoding: "utf-8" });
|
|
27383
27466
|
const rl = readline.createInterface({
|
|
27384
27467
|
input: fileStream,
|
|
27385
27468
|
crlfDelay: Infinity
|
|
@@ -27451,10 +27534,10 @@ async function loadCostUsageSummary(params) {
|
|
|
27451
27534
|
const dailyMap = /* @__PURE__ */ new Map();
|
|
27452
27535
|
const totals = emptyTotals();
|
|
27453
27536
|
const sessionsDir = resolveSessionTranscriptsDirForAgent(params?.agentId);
|
|
27454
|
-
const entries = await
|
|
27537
|
+
const entries = await fs.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
|
|
27455
27538
|
const files = (await Promise.all(entries.filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map(async (entry) => {
|
|
27456
27539
|
const filePath = path.join(sessionsDir, entry.name);
|
|
27457
|
-
const stats = await
|
|
27540
|
+
const stats = await fs.promises.stat(filePath).catch(() => null);
|
|
27458
27541
|
if (!stats) return null;
|
|
27459
27542
|
if (stats.mtimeMs < sinceTime) return null;
|
|
27460
27543
|
return filePath;
|
|
@@ -27487,7 +27570,7 @@ async function loadCostUsageSummary(params) {
|
|
|
27487
27570
|
}
|
|
27488
27571
|
async function loadSessionCostSummary(params) {
|
|
27489
27572
|
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : void 0);
|
|
27490
|
-
if (!sessionFile || !
|
|
27573
|
+
if (!sessionFile || !fs.existsSync(sessionFile)) return null;
|
|
27491
27574
|
const totals = emptyTotals();
|
|
27492
27575
|
let firstActivity;
|
|
27493
27576
|
let lastActivity;
|
|
@@ -29359,7 +29442,7 @@ async function handleCommands(params) {
|
|
|
29359
29442
|
try {
|
|
29360
29443
|
const messages = [];
|
|
29361
29444
|
if (sessionFile) {
|
|
29362
|
-
const content = await fs.readFile(sessionFile, "utf-8");
|
|
29445
|
+
const content = await fs$1.readFile(sessionFile, "utf-8");
|
|
29363
29446
|
for (const line of content.split("\n")) {
|
|
29364
29447
|
if (!line.trim()) continue;
|
|
29365
29448
|
try {
|
|
@@ -31693,7 +31776,7 @@ function asBoolean(value) {
|
|
|
31693
31776
|
}
|
|
31694
31777
|
function resolveTempPathParts(opts) {
|
|
31695
31778
|
const tmpDir = opts.tmpDir ?? resolvePreferredSymiTmpDir();
|
|
31696
|
-
if (!opts.tmpDir)
|
|
31779
|
+
if (!opts.tmpDir) fs.mkdirSync(tmpDir, {
|
|
31697
31780
|
recursive: true,
|
|
31698
31781
|
mode: 448
|
|
31699
31782
|
});
|
|
@@ -31759,7 +31842,7 @@ async function writeUrlToFile(filePath, url) {
|
|
|
31759
31842
|
if (typeof contentLength === "number" && Number.isFinite(contentLength) && contentLength > MAX_CAMERA_URL_DOWNLOAD_BYTES) throw new Error(`writeUrlToFile: content-length ${contentLength} exceeds max ${MAX_CAMERA_URL_DOWNLOAD_BYTES}`);
|
|
31760
31843
|
const body = res.body;
|
|
31761
31844
|
if (!body) throw new Error(`failed to download ${url}: empty response body`);
|
|
31762
|
-
const fileHandle = await fs$
|
|
31845
|
+
const fileHandle = await fs$2.open(filePath, "w");
|
|
31763
31846
|
let bytes = 0;
|
|
31764
31847
|
let thrown;
|
|
31765
31848
|
try {
|
|
@@ -31778,7 +31861,7 @@ async function writeUrlToFile(filePath, url) {
|
|
|
31778
31861
|
await fileHandle.close();
|
|
31779
31862
|
}
|
|
31780
31863
|
if (thrown) {
|
|
31781
|
-
await fs$
|
|
31864
|
+
await fs$2.unlink(filePath).catch(() => {});
|
|
31782
31865
|
throw thrown;
|
|
31783
31866
|
}
|
|
31784
31867
|
return {
|
|
@@ -31788,7 +31871,7 @@ async function writeUrlToFile(filePath, url) {
|
|
|
31788
31871
|
}
|
|
31789
31872
|
async function writeBase64ToFile(filePath, base64) {
|
|
31790
31873
|
const buf = Buffer.from(base64, "base64");
|
|
31791
|
-
await fs$
|
|
31874
|
+
await fs$2.writeFile(filePath, buf);
|
|
31792
31875
|
return {
|
|
31793
31876
|
path: filePath,
|
|
31794
31877
|
bytes: buf.length
|
|
@@ -31854,7 +31937,7 @@ async function readJsonlFromPath(jsonlPath) {
|
|
|
31854
31937
|
if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
|
|
31855
31938
|
throw new Error("jsonlPath outside allowed roots");
|
|
31856
31939
|
}
|
|
31857
|
-
const canonical = await fs.realpath(resolved).catch(() => resolved);
|
|
31940
|
+
const canonical = await fs$1.realpath(resolved).catch(() => resolved);
|
|
31858
31941
|
if (!isInboundPathAllowed({
|
|
31859
31942
|
filePath: canonical,
|
|
31860
31943
|
roots
|
|
@@ -31862,7 +31945,7 @@ async function readJsonlFromPath(jsonlPath) {
|
|
|
31862
31945
|
if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
|
|
31863
31946
|
throw new Error("jsonlPath outside allowed roots");
|
|
31864
31947
|
}
|
|
31865
|
-
return await fs.readFile(canonical, "utf8");
|
|
31948
|
+
return await fs$1.readFile(canonical, "utf8");
|
|
31866
31949
|
}
|
|
31867
31950
|
const CanvasToolSchema = Type.Object({
|
|
31868
31951
|
action: stringEnum(CANVAS_ACTIONS),
|
|
@@ -32666,12 +32749,12 @@ function resolveRestartSentinelPath(env = process.env) {
|
|
|
32666
32749
|
}
|
|
32667
32750
|
async function writeRestartSentinel(payload, env = process.env) {
|
|
32668
32751
|
const filePath = resolveRestartSentinelPath(env);
|
|
32669
|
-
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
32752
|
+
await fs$1.mkdir(path.dirname(filePath), { recursive: true });
|
|
32670
32753
|
const data = {
|
|
32671
32754
|
version: 1,
|
|
32672
32755
|
payload
|
|
32673
32756
|
};
|
|
32674
|
-
await fs.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
|
|
32757
|
+
await fs$1.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
|
|
32675
32758
|
return filePath;
|
|
32676
32759
|
}
|
|
32677
32760
|
|
|
@@ -33486,7 +33569,7 @@ async function hydrateAttachmentPayload(params) {
|
|
|
33486
33569
|
accountId: params.accountId
|
|
33487
33570
|
}),
|
|
33488
33571
|
sandboxValidated: true,
|
|
33489
|
-
readFile: (filePath) => fs.readFile(filePath)
|
|
33572
|
+
readFile: (filePath) => fs$1.readFile(filePath)
|
|
33490
33573
|
});
|
|
33491
33574
|
params.args.buffer = media.buffer.toString("base64");
|
|
33492
33575
|
if (!contentTypeParam && media.contentType) params.args.contentType = media.contentType;
|
|
@@ -36771,7 +36854,7 @@ function listExistingAgentIdsFromDisk() {
|
|
|
36771
36854
|
const root = resolveStateDir();
|
|
36772
36855
|
const agentsDir = path.join(root, "agents");
|
|
36773
36856
|
try {
|
|
36774
|
-
return
|
|
36857
|
+
return fs.readdirSync(agentsDir, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => normalizeAgentId(entry.name)).filter(Boolean);
|
|
36775
36858
|
} catch {
|
|
36776
36859
|
return [];
|
|
36777
36860
|
}
|
|
@@ -40639,18 +40722,18 @@ function appendImagePathsToPrompt(prompt, paths) {
|
|
|
40639
40722
|
return `${trimmed}${trimmed ? "\n\n" : ""}${paths.join("\n")}`;
|
|
40640
40723
|
}
|
|
40641
40724
|
async function writeCliImages(images) {
|
|
40642
|
-
const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), "symi-cli-images-"));
|
|
40725
|
+
const tempDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "symi-cli-images-"));
|
|
40643
40726
|
const paths = [];
|
|
40644
40727
|
for (let i = 0; i < images.length; i += 1) {
|
|
40645
40728
|
const image = images[i];
|
|
40646
40729
|
const ext = resolveImageExtension(image.mimeType);
|
|
40647
40730
|
const filePath = path.join(tempDir, `image-${i + 1}.${ext}`);
|
|
40648
40731
|
const buffer = Buffer.from(image.data, "base64");
|
|
40649
|
-
await fs.writeFile(filePath, buffer, { mode: 384 });
|
|
40732
|
+
await fs$1.writeFile(filePath, buffer, { mode: 384 });
|
|
40650
40733
|
paths.push(filePath);
|
|
40651
40734
|
}
|
|
40652
40735
|
const cleanup = async () => {
|
|
40653
|
-
await fs.rm(tempDir, {
|
|
40736
|
+
await fs$1.rm(tempDir, {
|
|
40654
40737
|
recursive: true,
|
|
40655
40738
|
force: true
|
|
40656
40739
|
});
|
|
@@ -41724,7 +41807,7 @@ async function runAgentTurnWithFallback(params) {
|
|
|
41724
41807
|
if (corruptedSessionId) {
|
|
41725
41808
|
const transcriptPath = resolveSessionTranscriptPath(corruptedSessionId);
|
|
41726
41809
|
try {
|
|
41727
|
-
|
|
41810
|
+
fs.unlinkSync(transcriptPath);
|
|
41728
41811
|
} catch {}
|
|
41729
41812
|
}
|
|
41730
41813
|
delete params.activeSessionStore[sessionKey];
|
|
@@ -42440,9 +42523,9 @@ function auditPostCompactionReads(readFilePaths, workspaceDir, requiredReads = D
|
|
|
42440
42523
|
* Returns messages from the last N lines (default 100).
|
|
42441
42524
|
*/
|
|
42442
42525
|
function readSessionMessages(sessionFile, maxLines = 100) {
|
|
42443
|
-
if (!
|
|
42526
|
+
if (!fs.existsSync(sessionFile)) return [];
|
|
42444
42527
|
try {
|
|
42445
|
-
const recentLines =
|
|
42528
|
+
const recentLines = fs.readFileSync(sessionFile, "utf-8").trim().split("\n").slice(-maxLines);
|
|
42446
42529
|
const messages = [];
|
|
42447
42530
|
for (const line of recentLines) try {
|
|
42448
42531
|
const entry = JSON.parse(line);
|
|
@@ -42483,8 +42566,8 @@ const MAX_CONTEXT_CHARS = 3e3;
|
|
|
42483
42566
|
async function readPostCompactionContext(workspaceDir) {
|
|
42484
42567
|
const agentsPath = path.join(workspaceDir, "AGENTS.md");
|
|
42485
42568
|
try {
|
|
42486
|
-
if (!
|
|
42487
|
-
const sections = extractSections(await
|
|
42569
|
+
if (!fs.existsSync(agentsPath)) return null;
|
|
42570
|
+
const sections = extractSections(await fs.promises.readFile(agentsPath, "utf-8"), ["Session Startup", "Red Lines"]);
|
|
42488
42571
|
if (sections.length === 0) return null;
|
|
42489
42572
|
const combined = sections.join("\n\n");
|
|
42490
42573
|
return "[Post-compaction context refresh]\n\nSession was just compacted. The conversation summary above is a hint, NOT a substitute for your startup sequence. Execute your Session Startup sequence now — read the required files before responding to the user.\n\nCritical rules from AGENTS.md:\n\n" + (combined.length > MAX_CONTEXT_CHARS ? combined.slice(0, MAX_CONTEXT_CHARS) + "\n...[truncated]..." : combined);
|
|
@@ -42688,7 +42771,7 @@ async function runReplyAgent(params) {
|
|
|
42688
42771
|
if (resolved) transcriptCandidates.add(resolved);
|
|
42689
42772
|
transcriptCandidates.add(resolveSessionTranscriptPath(prevSessionId, agentId));
|
|
42690
42773
|
for (const candidate of transcriptCandidates) try {
|
|
42691
|
-
|
|
42774
|
+
fs.unlinkSync(candidate);
|
|
42692
42775
|
} catch {}
|
|
42693
42776
|
}
|
|
42694
42777
|
return true;
|
|
@@ -43594,7 +43677,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
43594
43677
|
return;
|
|
43595
43678
|
}
|
|
43596
43679
|
try {
|
|
43597
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
43680
|
+
const { deliverOutboundPayloads } = await import("./deliver-Cm6Yfbzh.js").then((n) => n.n);
|
|
43598
43681
|
await deliverOutboundPayloads({
|
|
43599
43682
|
cfg: params.cfg,
|
|
43600
43683
|
channel,
|
|
@@ -43620,7 +43703,7 @@ function forkSessionFromParent(params) {
|
|
|
43620
43703
|
agentId: params.agentId,
|
|
43621
43704
|
sessionsDir: params.sessionsDir
|
|
43622
43705
|
});
|
|
43623
|
-
if (!parentSessionFile || !
|
|
43706
|
+
if (!parentSessionFile || !fs.existsSync(parentSessionFile)) return null;
|
|
43624
43707
|
try {
|
|
43625
43708
|
const manager = SessionManager.open(parentSessionFile);
|
|
43626
43709
|
const leafId = manager.getLeafId();
|
|
@@ -43644,7 +43727,7 @@ function forkSessionFromParent(params) {
|
|
|
43644
43727
|
cwd: manager.getCwd(),
|
|
43645
43728
|
parentSession: parentSessionFile
|
|
43646
43729
|
};
|
|
43647
|
-
|
|
43730
|
+
fs.writeFileSync(sessionFile, `${JSON.stringify(header)}\n`, "utf-8");
|
|
43648
43731
|
return {
|
|
43649
43732
|
sessionId,
|
|
43650
43733
|
sessionFile
|
|
@@ -43969,7 +44052,7 @@ async function stageSandboxMedia(params) {
|
|
|
43969
44052
|
};
|
|
43970
44053
|
try {
|
|
43971
44054
|
const destDir = sandbox ? path.join(effectiveWorkspaceDir, "media", "inbound") : effectiveWorkspaceDir;
|
|
43972
|
-
await fs.mkdir(destDir, { recursive: true });
|
|
44055
|
+
await fs$1.mkdir(destDir, { recursive: true });
|
|
43973
44056
|
const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
|
|
43974
44057
|
cfg,
|
|
43975
44058
|
accountId: ctx.AccountId
|
|
@@ -44019,7 +44102,7 @@ async function stageSandboxMedia(params) {
|
|
|
44019
44102
|
usedNames.add(fileName);
|
|
44020
44103
|
const dest = path.join(destDir, fileName);
|
|
44021
44104
|
if (ctx.MediaRemoteHost) await scpFile(ctx.MediaRemoteHost, source, dest);
|
|
44022
|
-
else await fs.copyFile(source, dest);
|
|
44105
|
+
else await fs$1.copyFile(source, dest);
|
|
44023
44106
|
const stagedPath = sandbox ? path.posix.join("media", "inbound", fileName) : dest;
|
|
44024
44107
|
staged.set(source, stagedPath);
|
|
44025
44108
|
}
|
|
@@ -47039,8 +47122,8 @@ async function describeStickerImage(params) {
|
|
|
47039
47122
|
const { provider, model } = resolved;
|
|
47040
47123
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
47041
47124
|
try {
|
|
47042
|
-
const buffer = await fs.readFile(imagePath);
|
|
47043
|
-
const { describeImageWithModel } = await import("./image-
|
|
47125
|
+
const buffer = await fs$1.readFile(imagePath);
|
|
47126
|
+
const { describeImageWithModel } = await import("./image-BmIvgTV4.js").then((n) => n.n);
|
|
47044
47127
|
return (await describeImageWithModel({
|
|
47045
47128
|
buffer,
|
|
47046
47129
|
fileName: "sticker.webp",
|
|
@@ -47463,7 +47546,7 @@ function createWhatsAppLoginTool() {
|
|
|
47463
47546
|
force: Type.Optional(Type.Boolean())
|
|
47464
47547
|
}),
|
|
47465
47548
|
execute: async (_toolCallId, args) => {
|
|
47466
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
47549
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-l5XwJWk9.js");
|
|
47467
47550
|
if ((args?.action ?? "start") === "wait") {
|
|
47468
47551
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
47469
47552
|
return {
|
|
@@ -47745,7 +47828,7 @@ async function withMemoryManagerForAgent(params) {
|
|
|
47745
47828
|
}
|
|
47746
47829
|
async function checkReadableFile(pathname) {
|
|
47747
47830
|
try {
|
|
47748
|
-
await fs.access(pathname,
|
|
47831
|
+
await fs$1.access(pathname, fs.constants.R_OK);
|
|
47749
47832
|
return { exists: true };
|
|
47750
47833
|
} catch (err) {
|
|
47751
47834
|
const code = err.code;
|
|
@@ -47762,7 +47845,7 @@ async function scanSessionFiles(agentId) {
|
|
|
47762
47845
|
try {
|
|
47763
47846
|
return {
|
|
47764
47847
|
source: "sessions",
|
|
47765
|
-
totalFiles: (await fs.readdir(sessionsDir, { withFileTypes: true })).filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).length,
|
|
47848
|
+
totalFiles: (await fs$1.readdir(sessionsDir, { withFileTypes: true })).filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).length,
|
|
47766
47849
|
issues
|
|
47767
47850
|
};
|
|
47768
47851
|
} catch (err) {
|
|
@@ -47794,7 +47877,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
|
|
|
47794
47877
|
if (alt.issue) issues.push(alt.issue);
|
|
47795
47878
|
const resolvedExtraPaths = normalizeExtraMemoryPaths(workspaceDir, extraPaths);
|
|
47796
47879
|
for (const extraPath of resolvedExtraPaths) try {
|
|
47797
|
-
if ((await fs.lstat(extraPath)).isSymbolicLink()) continue;
|
|
47880
|
+
if ((await fs$1.lstat(extraPath)).isSymbolicLink()) continue;
|
|
47798
47881
|
const extraCheck = await checkReadableFile(extraPath);
|
|
47799
47882
|
if (extraCheck.issue) issues.push(extraCheck.issue);
|
|
47800
47883
|
} catch (err) {
|
|
@@ -47804,7 +47887,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
|
|
|
47804
47887
|
}
|
|
47805
47888
|
let dirReadable = null;
|
|
47806
47889
|
try {
|
|
47807
|
-
await fs.access(memoryDir,
|
|
47890
|
+
await fs$1.access(memoryDir, fs.constants.R_OK);
|
|
47808
47891
|
dirReadable = true;
|
|
47809
47892
|
} catch (err) {
|
|
47810
47893
|
const code = err.code;
|
|
@@ -47852,7 +47935,7 @@ async function summarizeQmdIndexArtifact(manager) {
|
|
|
47852
47935
|
if (!dbPath) return null;
|
|
47853
47936
|
let stat;
|
|
47854
47937
|
try {
|
|
47855
|
-
stat = await fs.stat(dbPath);
|
|
47938
|
+
stat = await fs$1.stat(dbPath);
|
|
47856
47939
|
} catch (err) {
|
|
47857
47940
|
const code = err.code;
|
|
47858
47941
|
if (code === "ENOENT") throw new Error(`QMD index file not found: ${shortenHomePath(dbPath)}`, { cause: err });
|
|
@@ -49702,7 +49785,7 @@ async function preflightDiscordMessage(params) {
|
|
|
49702
49785
|
let preflightTranscript;
|
|
49703
49786
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
49704
49787
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
49705
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
49788
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-BUO1aDLp.js");
|
|
49706
49789
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
49707
49790
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
49708
49791
|
ctx: {
|
|
@@ -50665,7 +50748,7 @@ function identityHasValues(identity) {
|
|
|
50665
50748
|
}
|
|
50666
50749
|
function loadIdentityFromFile(identityPath) {
|
|
50667
50750
|
try {
|
|
50668
|
-
const parsed = parseIdentityMarkdown(
|
|
50751
|
+
const parsed = parseIdentityMarkdown(fs.readFileSync(identityPath, "utf-8"));
|
|
50669
50752
|
if (!identityHasValues(parsed)) return null;
|
|
50670
50753
|
return parsed;
|
|
50671
50754
|
} catch {
|
|
@@ -50704,7 +50787,7 @@ function isDataAvatar(value) {
|
|
|
50704
50787
|
}
|
|
50705
50788
|
function resolveExistingPath(value) {
|
|
50706
50789
|
try {
|
|
50707
|
-
return
|
|
50790
|
+
return fs.realpathSync(value);
|
|
50708
50791
|
} catch {
|
|
50709
50792
|
return path.resolve(value);
|
|
50710
50793
|
}
|
|
@@ -50728,7 +50811,7 @@ function resolveLocalAvatarPath(params) {
|
|
|
50728
50811
|
reason: "unsupported_extension"
|
|
50729
50812
|
};
|
|
50730
50813
|
try {
|
|
50731
|
-
if (!
|
|
50814
|
+
if (!fs.statSync(realPath).isFile()) return {
|
|
50732
50815
|
ok: false,
|
|
50733
50816
|
reason: "missing"
|
|
50734
50817
|
};
|
|
@@ -51591,7 +51674,7 @@ function sanitizeRecentModels(models, limit) {
|
|
|
51591
51674
|
}
|
|
51592
51675
|
async function readJsonFileWithFallback(filePath, fallback) {
|
|
51593
51676
|
try {
|
|
51594
|
-
const raw = await
|
|
51677
|
+
const raw = await fs.promises.readFile(filePath, "utf-8");
|
|
51595
51678
|
return {
|
|
51596
51679
|
value: JSON.parse(raw),
|
|
51597
51680
|
exists: true
|
|
@@ -51609,14 +51692,14 @@ async function readJsonFileWithFallback(filePath, fallback) {
|
|
|
51609
51692
|
}
|
|
51610
51693
|
async function writeJsonFileAtomically(filePath, value) {
|
|
51611
51694
|
const dir = path.dirname(filePath);
|
|
51612
|
-
await
|
|
51695
|
+
await fs.promises.mkdir(dir, {
|
|
51613
51696
|
recursive: true,
|
|
51614
51697
|
mode: 448
|
|
51615
51698
|
});
|
|
51616
51699
|
const tmp = path.join(dir, `${path.basename(filePath)}.${crypto.randomUUID()}.tmp`);
|
|
51617
|
-
await
|
|
51618
|
-
await
|
|
51619
|
-
await
|
|
51700
|
+
await fs.promises.writeFile(tmp, `${JSON.stringify(value, null, 2)}\n`, "utf-8");
|
|
51701
|
+
await fs.promises.chmod(tmp, 384);
|
|
51702
|
+
await fs.promises.rename(tmp, filePath);
|
|
51620
51703
|
}
|
|
51621
51704
|
async function readPreferencesStore(filePath) {
|
|
51622
51705
|
const { value } = await readJsonFileWithFallback(filePath, {
|
|
@@ -53708,27 +53791,27 @@ function isVoiceChannelType(type) {
|
|
|
53708
53791
|
function createDefaultDeps() {
|
|
53709
53792
|
return {
|
|
53710
53793
|
sendMessageWhatsApp: async (...args) => {
|
|
53711
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
53794
|
+
const { sendMessageWhatsApp } = await import("./web-CMLJq-WC.js");
|
|
53712
53795
|
return await sendMessageWhatsApp(...args);
|
|
53713
53796
|
},
|
|
53714
53797
|
sendMessageTelegram: async (...args) => {
|
|
53715
|
-
const { sendMessageTelegram } = await import("./send-
|
|
53798
|
+
const { sendMessageTelegram } = await import("./send-D8DhbDGm.js").then((n) => n.l);
|
|
53716
53799
|
return await sendMessageTelegram(...args);
|
|
53717
53800
|
},
|
|
53718
53801
|
sendMessageDiscord: async (...args) => {
|
|
53719
|
-
const { sendMessageDiscord } = await import("./send-
|
|
53802
|
+
const { sendMessageDiscord } = await import("./send-De1p8sZA.js").then((n) => n.t);
|
|
53720
53803
|
return await sendMessageDiscord(...args);
|
|
53721
53804
|
},
|
|
53722
53805
|
sendMessageSlack: async (...args) => {
|
|
53723
|
-
const { sendMessageSlack } = await import("./send-
|
|
53806
|
+
const { sendMessageSlack } = await import("./send-BTXR3fPR.js").then((n) => n.n);
|
|
53724
53807
|
return await sendMessageSlack(...args);
|
|
53725
53808
|
},
|
|
53726
53809
|
sendMessageSignal: async (...args) => {
|
|
53727
|
-
const { sendMessageSignal } = await import("./send-
|
|
53810
|
+
const { sendMessageSignal } = await import("./send-Dx7S4jGp.js").then((n) => n.i);
|
|
53728
53811
|
return await sendMessageSignal(...args);
|
|
53729
53812
|
},
|
|
53730
53813
|
sendMessageIMessage: async (...args) => {
|
|
53731
|
-
const { sendMessageIMessage } = await import("./send-
|
|
53814
|
+
const { sendMessageIMessage } = await import("./send-DNJAa7Q_.js").then((n) => n.n);
|
|
53732
53815
|
return await sendMessageIMessage(...args);
|
|
53733
53816
|
}
|
|
53734
53817
|
};
|
|
@@ -54637,10 +54720,10 @@ function estimateDurationSeconds(pcm) {
|
|
|
54637
54720
|
return pcm.length / (bytesPerSample * SAMPLE_RATE);
|
|
54638
54721
|
}
|
|
54639
54722
|
async function writeWavFile(pcm) {
|
|
54640
|
-
const tempDir = await fs.mkdtemp(path.join(resolvePreferredSymiTmpDir(), "discord-voice-"));
|
|
54723
|
+
const tempDir = await fs$1.mkdtemp(path.join(resolvePreferredSymiTmpDir(), "discord-voice-"));
|
|
54641
54724
|
const filePath = path.join(tempDir, `segment-${randomUUID()}.wav`);
|
|
54642
54725
|
const wav = buildWavBuffer(pcm);
|
|
54643
|
-
await fs.writeFile(filePath, wav);
|
|
54726
|
+
await fs$1.writeFile(filePath, wav);
|
|
54644
54727
|
scheduleTempCleanup(tempDir);
|
|
54645
54728
|
return {
|
|
54646
54729
|
path: filePath,
|
|
@@ -54649,7 +54732,7 @@ async function writeWavFile(pcm) {
|
|
|
54649
54732
|
}
|
|
54650
54733
|
function scheduleTempCleanup(tempDir, delayMs = 1800 * 1e3) {
|
|
54651
54734
|
setTimeout(() => {
|
|
54652
|
-
fs.rm(tempDir, {
|
|
54735
|
+
fs$1.rm(tempDir, {
|
|
54653
54736
|
recursive: true,
|
|
54654
54737
|
force: true
|
|
54655
54738
|
}).catch((err) => {
|
|
@@ -57713,7 +57796,7 @@ async function detectBinary(name) {
|
|
|
57713
57796
|
if (!isSafeExecutableValue(name)) return false;
|
|
57714
57797
|
const resolved = name.startsWith("~") ? resolveUserPath(name) : name;
|
|
57715
57798
|
if (path.isAbsolute(resolved) || resolved.startsWith(".") || resolved.includes("/") || resolved.includes("\\")) try {
|
|
57716
|
-
await fs.access(resolved);
|
|
57799
|
+
await fs$1.access(resolved);
|
|
57717
57800
|
return true;
|
|
57718
57801
|
} catch {
|
|
57719
57802
|
return false;
|
|
@@ -58263,7 +58346,7 @@ function normalizeAllowList$1(list) {
|
|
|
58263
58346
|
async function detectRemoteHostFromCliPath(cliPath) {
|
|
58264
58347
|
try {
|
|
58265
58348
|
const expanded = cliPath.startsWith("~") ? cliPath.replace(/^~/, process.env.HOME ?? "") : cliPath;
|
|
58266
|
-
const content = await fs.readFile(expanded, "utf8");
|
|
58349
|
+
const content = await fs$1.readFile(expanded, "utf8");
|
|
58267
58350
|
const userHostMatch = content.match(/\bssh\b[^\n]*?\s+([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+)/);
|
|
58268
58351
|
if (userHostMatch) return userHostMatch[1];
|
|
58269
58352
|
return content.match(/\bssh\b[^\n]*?\s+([a-zA-Z][a-zA-Z0-9._-]*)\s+\S*\bimsg\b/)?.[1];
|
|
@@ -58607,7 +58690,7 @@ async function monitorIMessageProvider(opts = {}) {
|
|
|
58607
58690
|
function readFileIfExists(filePath) {
|
|
58608
58691
|
if (!filePath) return;
|
|
58609
58692
|
try {
|
|
58610
|
-
return
|
|
58693
|
+
return fs.readFileSync(filePath, "utf-8").trim();
|
|
58611
58694
|
} catch {
|
|
58612
58695
|
return;
|
|
58613
58696
|
}
|
|
@@ -59168,7 +59251,7 @@ async function downloadLineMedia(messageId, channelAccessToken, maxBytes = 10 *
|
|
|
59168
59251
|
prefix: "line-media",
|
|
59169
59252
|
extension: getExtensionForContentType(contentType)
|
|
59170
59253
|
});
|
|
59171
|
-
await
|
|
59254
|
+
await fs.promises.writeFile(filePath, buffer);
|
|
59172
59255
|
logVerbose(`line: downloaded media ${messageId} to ${filePath} (${buffer.length} bytes)`);
|
|
59173
59256
|
return {
|
|
59174
59257
|
path: filePath,
|
|
@@ -64155,7 +64238,7 @@ function readSlackExternalArgMenuToken(raw) {
|
|
|
64155
64238
|
}
|
|
64156
64239
|
let commandsRegistry;
|
|
64157
64240
|
async function getCommandsRegistry() {
|
|
64158
|
-
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-
|
|
64241
|
+
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-BSvi46KZ.js").then((n) => n.n);
|
|
64159
64242
|
return commandsRegistry;
|
|
64160
64243
|
}
|
|
64161
64244
|
function encodeSlackCommandArgValue(parts) {
|
|
@@ -64497,11 +64580,11 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
64497
64580
|
const channelName = channelInfo?.name;
|
|
64498
64581
|
const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
|
|
64499
64582
|
const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
|
|
64500
|
-
import("./resolve-route-
|
|
64583
|
+
import("./resolve-route-DX7xcMsD.js").then((n) => n.r),
|
|
64501
64584
|
import("./inbound-context-Dvqh1Tgb.js").then((n) => n.n),
|
|
64502
64585
|
Promise.resolve().then(() => provider_dispatcher_exports)
|
|
64503
64586
|
]);
|
|
64504
|
-
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-Onz2hiJh.js").then((n) => n.t), import("./reply-prefix-
|
|
64587
|
+
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-Onz2hiJh.js").then((n) => n.t), import("./reply-prefix-CvEIl6_d.js").then((n) => n.n)]);
|
|
64505
64588
|
const route = resolveAgentRoute({
|
|
64506
64589
|
cfg,
|
|
64507
64590
|
channel: "slack",
|
|
@@ -64558,9 +64641,9 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
64558
64641
|
});
|
|
64559
64642
|
const deliverSlashPayloads = async (replies) => {
|
|
64560
64643
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
64561
|
-
import("./replies-
|
|
64562
|
-
import("./chunk-
|
|
64563
|
-
import("./markdown-tables-
|
|
64644
|
+
import("./replies-C2sQt_cX.js").then((n) => n.r),
|
|
64645
|
+
import("./chunk-BHW8Yu5A.js").then((n) => n.s),
|
|
64646
|
+
import("./markdown-tables-Dnj2LQUc.js").then((n) => n.t)
|
|
64564
64647
|
]);
|
|
64565
64648
|
await deliverSlackSlashReplies({
|
|
64566
64649
|
replies,
|
|
@@ -64613,7 +64696,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
64613
64696
|
let nativeCommands = [];
|
|
64614
64697
|
if (nativeEnabled) {
|
|
64615
64698
|
reg = await getCommandsRegistry();
|
|
64616
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
64699
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-BiPrghRt.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
64617
64700
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
64618
64701
|
skillCommands,
|
|
64619
64702
|
provider: "slack"
|
|
@@ -66831,7 +66914,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
66831
66914
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
66832
66915
|
let preflightTranscript;
|
|
66833
66916
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
66834
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
66917
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-BUO1aDLp.js");
|
|
66835
66918
|
preflightTranscript = await transcribeFirstAudio({
|
|
66836
66919
|
ctx: {
|
|
66837
66920
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -68599,7 +68682,7 @@ function safeParseState(raw) {
|
|
|
68599
68682
|
async function readTelegramUpdateOffset(params) {
|
|
68600
68683
|
const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
|
|
68601
68684
|
try {
|
|
68602
|
-
return safeParseState(await fs.readFile(filePath, "utf-8"))?.lastUpdateId ?? null;
|
|
68685
|
+
return safeParseState(await fs$1.readFile(filePath, "utf-8"))?.lastUpdateId ?? null;
|
|
68603
68686
|
} catch (err) {
|
|
68604
68687
|
if (err.code === "ENOENT") return null;
|
|
68605
68688
|
return null;
|
|
@@ -68608,7 +68691,7 @@ async function readTelegramUpdateOffset(params) {
|
|
|
68608
68691
|
async function writeTelegramUpdateOffset(params) {
|
|
68609
68692
|
const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
|
|
68610
68693
|
const dir = path.dirname(filePath);
|
|
68611
|
-
await fs.mkdir(dir, {
|
|
68694
|
+
await fs$1.mkdir(dir, {
|
|
68612
68695
|
recursive: true,
|
|
68613
68696
|
mode: 448
|
|
68614
68697
|
});
|
|
@@ -68617,9 +68700,9 @@ async function writeTelegramUpdateOffset(params) {
|
|
|
68617
68700
|
version: STORE_VERSION,
|
|
68618
68701
|
lastUpdateId: params.updateId
|
|
68619
68702
|
};
|
|
68620
|
-
await fs.writeFile(tmp, `${JSON.stringify(payload, null, 2)}\n`, { encoding: "utf-8" });
|
|
68621
|
-
await fs.chmod(tmp, 384);
|
|
68622
|
-
await fs.rename(tmp, filePath);
|
|
68703
|
+
await fs$1.writeFile(tmp, `${JSON.stringify(payload, null, 2)}\n`, { encoding: "utf-8" });
|
|
68704
|
+
await fs$1.chmod(tmp, 384);
|
|
68705
|
+
await fs$1.rename(tmp, filePath);
|
|
68623
68706
|
}
|
|
68624
68707
|
|
|
68625
68708
|
//#endregion
|
|
@@ -68976,23 +69059,23 @@ let webLoginQrPromise = null;
|
|
|
68976
69059
|
let webChannelPromise = null;
|
|
68977
69060
|
let whatsappActionsPromise = null;
|
|
68978
69061
|
function loadWebOutbound() {
|
|
68979
|
-
webOutboundPromise ??= import("./outbound-
|
|
69062
|
+
webOutboundPromise ??= import("./outbound-BhKz3zWF.js").then((n) => n.t);
|
|
68980
69063
|
return webOutboundPromise;
|
|
68981
69064
|
}
|
|
68982
69065
|
function loadWebLogin() {
|
|
68983
|
-
webLoginPromise ??= import("./login-
|
|
69066
|
+
webLoginPromise ??= import("./login-bQWLSSfZ.js").then((n) => n.n);
|
|
68984
69067
|
return webLoginPromise;
|
|
68985
69068
|
}
|
|
68986
69069
|
function loadWebLoginQr() {
|
|
68987
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
69070
|
+
webLoginQrPromise ??= import("./login-qr-l5XwJWk9.js");
|
|
68988
69071
|
return webLoginQrPromise;
|
|
68989
69072
|
}
|
|
68990
69073
|
function loadWebChannel() {
|
|
68991
|
-
webChannelPromise ??= import("./web-
|
|
69074
|
+
webChannelPromise ??= import("./web-CMLJq-WC.js");
|
|
68992
69075
|
return webChannelPromise;
|
|
68993
69076
|
}
|
|
68994
69077
|
function loadWhatsAppActions() {
|
|
68995
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
69078
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-BPn8FtPC.js");
|
|
68996
69079
|
return whatsappActionsPromise;
|
|
68997
69080
|
}
|
|
68998
69081
|
function createPluginRuntime() {
|
|
@@ -69213,7 +69296,7 @@ const resolvePluginSdkAliasFile = (params) => {
|
|
|
69213
69296
|
const srcCandidate = path.join(cursor, "src", "plugin-sdk", params.srcFile);
|
|
69214
69297
|
const distCandidate = path.join(cursor, "dist", "plugin-sdk", params.distFile);
|
|
69215
69298
|
const orderedCandidates = isTest ? [distCandidate, srcCandidate] : [distCandidate];
|
|
69216
|
-
for (const candidate of orderedCandidates) if (
|
|
69299
|
+
for (const candidate of orderedCandidates) if (fs.existsSync(candidate)) return candidate;
|
|
69217
69300
|
const parent = path.dirname(cursor);
|
|
69218
69301
|
if (parent === cursor) break;
|
|
69219
69302
|
cursor = parent;
|
|
@@ -69759,7 +69842,7 @@ function resolvePluginTools(params) {
|
|
|
69759
69842
|
//#endregion
|
|
69760
69843
|
//#region src/agents/apply-patch-update.ts
|
|
69761
69844
|
async function defaultReadFile(filePath) {
|
|
69762
|
-
return fs.readFile(filePath, "utf8");
|
|
69845
|
+
return fs$1.readFile(filePath, "utf8");
|
|
69763
69846
|
}
|
|
69764
69847
|
async function applyUpdateHunk(filePath, chunks, options) {
|
|
69765
69848
|
const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
|
|
@@ -70003,10 +70086,10 @@ function resolvePatchFileOps(options) {
|
|
|
70003
70086
|
};
|
|
70004
70087
|
}
|
|
70005
70088
|
return {
|
|
70006
|
-
readFile: (filePath) => fs.readFile(filePath, "utf8"),
|
|
70007
|
-
writeFile: (filePath, content) => fs.writeFile(filePath, content, "utf8"),
|
|
70008
|
-
remove: (filePath) => fs.rm(filePath),
|
|
70009
|
-
mkdirp: (dir) => fs.mkdir(dir, { recursive: true }).then(() => {})
|
|
70089
|
+
readFile: (filePath) => fs$1.readFile(filePath, "utf8"),
|
|
70090
|
+
writeFile: (filePath, content) => fs$1.writeFile(filePath, content, "utf8"),
|
|
70091
|
+
remove: (filePath) => fs$1.rm(filePath),
|
|
70092
|
+
mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
|
|
70010
70093
|
};
|
|
70011
70094
|
}
|
|
70012
70095
|
async function ensureDir(filePath, ops) {
|
|
@@ -71251,7 +71334,7 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
71251
71334
|
};
|
|
71252
71335
|
let content;
|
|
71253
71336
|
try {
|
|
71254
|
-
content = await fs.readFile(sessionFile, "utf-8");
|
|
71337
|
+
content = await fs$1.readFile(sessionFile, "utf-8");
|
|
71255
71338
|
} catch (err) {
|
|
71256
71339
|
if (err?.code === "ENOENT") return {
|
|
71257
71340
|
repaired: false,
|
|
@@ -71299,15 +71382,15 @@ async function repairSessionFileIfNeeded(params) {
|
|
|
71299
71382
|
const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
|
|
71300
71383
|
const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
|
|
71301
71384
|
try {
|
|
71302
|
-
const stat = await fs.stat(sessionFile).catch(() => null);
|
|
71303
|
-
await fs.writeFile(backupPath, content, "utf-8");
|
|
71304
|
-
if (stat) await fs.chmod(backupPath, stat.mode);
|
|
71305
|
-
await fs.writeFile(tmpPath, cleaned, "utf-8");
|
|
71306
|
-
if (stat) await fs.chmod(tmpPath, stat.mode);
|
|
71307
|
-
await fs.rename(tmpPath, sessionFile);
|
|
71385
|
+
const stat = await fs$1.stat(sessionFile).catch(() => null);
|
|
71386
|
+
await fs$1.writeFile(backupPath, content, "utf-8");
|
|
71387
|
+
if (stat) await fs$1.chmod(backupPath, stat.mode);
|
|
71388
|
+
await fs$1.writeFile(tmpPath, cleaned, "utf-8");
|
|
71389
|
+
if (stat) await fs$1.chmod(tmpPath, stat.mode);
|
|
71390
|
+
await fs$1.rename(tmpPath, sessionFile);
|
|
71308
71391
|
} catch (err) {
|
|
71309
71392
|
try {
|
|
71310
|
-
await fs.unlink(tmpPath);
|
|
71393
|
+
await fs$1.unlink(tmpPath);
|
|
71311
71394
|
} catch (cleanupErr) {
|
|
71312
71395
|
params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
|
|
71313
71396
|
}
|
|
@@ -71991,8 +72074,8 @@ async function readWorkspaceContextForSummary() {
|
|
|
71991
72074
|
const workspaceDir = process.cwd();
|
|
71992
72075
|
const agentsPath = path.join(workspaceDir, "AGENTS.md");
|
|
71993
72076
|
try {
|
|
71994
|
-
if (!
|
|
71995
|
-
const sections = extractSections(await
|
|
72077
|
+
if (!fs.existsSync(agentsPath)) return "";
|
|
72078
|
+
const sections = extractSections(await fs.promises.readFile(agentsPath, "utf-8"), ["Session Startup", "Red Lines"]);
|
|
71996
72079
|
if (sections.length === 0) return "";
|
|
71997
72080
|
const combined = sections.join("\n\n");
|
|
71998
72081
|
return `\n\n<workspace-critical-rules>\n${combined.length > MAX_SUMMARY_CONTEXT_CHARS ? combined.slice(0, MAX_SUMMARY_CONTEXT_CHARS) + "\n...[truncated]..." : combined}\n</workspace-critical-rules>`;
|
|
@@ -72548,7 +72631,7 @@ async function prewarmSessionFile(sessionFile) {
|
|
|
72548
72631
|
if (!isSessionManagerCacheEnabled()) return;
|
|
72549
72632
|
if (isSessionManagerCached(sessionFile)) return;
|
|
72550
72633
|
try {
|
|
72551
|
-
const handle = await fs.open(sessionFile, "r");
|
|
72634
|
+
const handle = await fs$1.open(sessionFile, "r");
|
|
72552
72635
|
try {
|
|
72553
72636
|
const buffer = Buffer$1.alloc(4096);
|
|
72554
72637
|
await handle.read(buffer, 0, buffer.length, 0);
|
|
@@ -72681,14 +72764,14 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
72681
72764
|
if (!apiKeyInfo.apiKey) {
|
|
72682
72765
|
if (apiKeyInfo.mode !== "aws-sdk") throw new Error(`No API key resolved for provider "${model.provider}" (auth mode: ${apiKeyInfo.mode}).`);
|
|
72683
72766
|
} else if (model.provider === "github-copilot") {
|
|
72684
|
-
const { resolveCopilotApiToken } = await import("./github-copilot-token-
|
|
72767
|
+
const { resolveCopilotApiToken } = await import("./github-copilot-token-cCYzSU9h.js").then((n) => n.n);
|
|
72685
72768
|
const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
|
|
72686
72769
|
authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
|
|
72687
72770
|
} else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
|
|
72688
72771
|
} catch (err) {
|
|
72689
72772
|
return fail(describeUnknownError(err));
|
|
72690
72773
|
}
|
|
72691
|
-
await fs.mkdir(resolvedWorkspace, { recursive: true });
|
|
72774
|
+
await fs$1.mkdir(resolvedWorkspace, { recursive: true });
|
|
72692
72775
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
72693
72776
|
const sandbox = await resolveSandboxContext({
|
|
72694
72777
|
config: params.config,
|
|
@@ -72696,7 +72779,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
72696
72779
|
workspaceDir: resolvedWorkspace
|
|
72697
72780
|
});
|
|
72698
72781
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
72699
|
-
await fs.mkdir(effectiveWorkspace, { recursive: true });
|
|
72782
|
+
await fs$1.mkdir(effectiveWorkspace, { recursive: true });
|
|
72700
72783
|
await ensureSessionHeader({
|
|
72701
72784
|
sessionFile: params.sessionFile,
|
|
72702
72785
|
sessionId: params.sessionId,
|
|
@@ -73050,12 +73133,12 @@ function getQueuedFileWriter(writers, filePath) {
|
|
|
73050
73133
|
const existing = writers.get(filePath);
|
|
73051
73134
|
if (existing) return existing;
|
|
73052
73135
|
const dir = path.dirname(filePath);
|
|
73053
|
-
const ready = fs.mkdir(dir, { recursive: true }).catch(() => void 0);
|
|
73136
|
+
const ready = fs$1.mkdir(dir, { recursive: true }).catch(() => void 0);
|
|
73054
73137
|
let queue = Promise.resolve();
|
|
73055
73138
|
const writer = {
|
|
73056
73139
|
filePath,
|
|
73057
73140
|
write: (line) => {
|
|
73058
|
-
queue = queue.then(() => ready).then(() => fs.appendFile(filePath, line, "utf8")).catch(() => void 0);
|
|
73141
|
+
queue = queue.then(() => ready).then(() => fs$1.appendFile(filePath, line, "utf8")).catch(() => void 0);
|
|
73059
73142
|
}
|
|
73060
73143
|
};
|
|
73061
73144
|
writers.set(filePath, writer);
|
|
@@ -73531,6 +73614,8 @@ function createModelAwareStreamFn(opts) {
|
|
|
73531
73614
|
if (typeof mergedParams.top_p === "number") injections.top_p = mergedParams.top_p;
|
|
73532
73615
|
if (typeof mergedParams.top_k === "number") injections.top_k = mergedParams.top_k;
|
|
73533
73616
|
if (typeof mergedParams.repeat_penalty === "number") injections.repeat_penalty = mergedParams.repeat_penalty;
|
|
73617
|
+
if (typeof mergedParams.presence_penalty === "number") injections.presence_penalty = mergedParams.presence_penalty;
|
|
73618
|
+
if (typeof mergedParams.frequency_penalty === "number") injections.frequency_penalty = mergedParams.frequency_penalty;
|
|
73534
73619
|
const isVllm = isVllmProvider(opts.provider, opts.modelId, opts.config);
|
|
73535
73620
|
const isOpenRouter = opts.provider === "openrouter";
|
|
73536
73621
|
const extraHeaders = {};
|
|
@@ -74080,11 +74165,11 @@ function appendRawStream(payload) {
|
|
|
74080
74165
|
if (!rawStreamReady) {
|
|
74081
74166
|
rawStreamReady = true;
|
|
74082
74167
|
try {
|
|
74083
|
-
|
|
74168
|
+
fs.mkdirSync(path.dirname(RAW_STREAM_PATH), { recursive: true });
|
|
74084
74169
|
} catch {}
|
|
74085
74170
|
}
|
|
74086
74171
|
try {
|
|
74087
|
-
|
|
74172
|
+
fs.promises.appendFile(RAW_STREAM_PATH, `${JSON.stringify(payload)}\n`);
|
|
74088
74173
|
} catch {}
|
|
74089
74174
|
}
|
|
74090
74175
|
|
|
@@ -75914,7 +75999,7 @@ function isInPoisonRange(version) {
|
|
|
75914
75999
|
*/
|
|
75915
76000
|
async function checkSessionPoison(sessionFile) {
|
|
75916
76001
|
try {
|
|
75917
|
-
const firstLine = (await fs.readFile(sessionFile, "utf-8")).split("\n")[0];
|
|
76002
|
+
const firstLine = (await fs$1.readFile(sessionFile, "utf-8")).split("\n")[0];
|
|
75918
76003
|
if (!firstLine) return null;
|
|
75919
76004
|
const header = JSON.parse(firstLine);
|
|
75920
76005
|
if (header.type !== "session") return null;
|
|
@@ -75932,7 +76017,7 @@ async function checkSessionPoison(sessionFile) {
|
|
|
75932
76017
|
*/
|
|
75933
76018
|
async function archivePoisonedSession(sessionFile) {
|
|
75934
76019
|
const archiveName = `${sessionFile}.archived-poison.${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}`;
|
|
75935
|
-
await fs.rename(sessionFile, archiveName);
|
|
76020
|
+
await fs$1.rename(sessionFile, archiveName);
|
|
75936
76021
|
return archiveName;
|
|
75937
76022
|
}
|
|
75938
76023
|
/**
|
|
@@ -75941,14 +76026,14 @@ async function archivePoisonedSession(sessionFile) {
|
|
|
75941
76026
|
*/
|
|
75942
76027
|
async function stampSessionVersion(sessionFile) {
|
|
75943
76028
|
try {
|
|
75944
|
-
const lines = (await fs.readFile(sessionFile, "utf-8")).split("\n");
|
|
76029
|
+
const lines = (await fs$1.readFile(sessionFile, "utf-8")).split("\n");
|
|
75945
76030
|
if (lines.length === 0) return;
|
|
75946
76031
|
const header = JSON.parse(lines[0]);
|
|
75947
76032
|
if (header.type !== "session") return;
|
|
75948
76033
|
if (header.symiVersion === VERSION) return;
|
|
75949
76034
|
header.symiVersion = VERSION;
|
|
75950
76035
|
lines[0] = JSON.stringify(header);
|
|
75951
|
-
await fs.writeFile(sessionFile, lines.join("\n"), "utf-8");
|
|
76036
|
+
await fs$1.writeFile(sessionFile, lines.join("\n"), "utf-8");
|
|
75952
76037
|
} catch {}
|
|
75953
76038
|
}
|
|
75954
76039
|
/**
|
|
@@ -76111,7 +76196,7 @@ async function prepareSessionManagerForRun(params) {
|
|
|
76111
76196
|
return;
|
|
76112
76197
|
}
|
|
76113
76198
|
if (params.hadSessionFile && header && !hasAssistant) {
|
|
76114
|
-
await fs.writeFile(params.sessionFile, "", "utf-8");
|
|
76199
|
+
await fs$1.writeFile(params.sessionFile, "", "utf-8");
|
|
76115
76200
|
sm.fileEntries = [header];
|
|
76116
76201
|
sm.byId?.clear?.();
|
|
76117
76202
|
sm.labelsById?.clear?.();
|
|
@@ -76669,7 +76754,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
76669
76754
|
const prevCwd = process.cwd();
|
|
76670
76755
|
const runAbortController = new AbortController();
|
|
76671
76756
|
log$9.debug(`embedded run start: runId=${params.runId} sessionId=${params.sessionId} provider=${params.provider} model=${params.modelId} thinking=${params.thinkLevel} messageChannel=${params.messageChannel ?? params.messageProvider ?? "unknown"}`);
|
|
76672
|
-
await fs.mkdir(resolvedWorkspace, { recursive: true });
|
|
76757
|
+
await fs$1.mkdir(resolvedWorkspace, { recursive: true });
|
|
76673
76758
|
const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
|
|
76674
76759
|
const sandbox = await resolveSandboxContext({
|
|
76675
76760
|
config: params.config,
|
|
@@ -76677,7 +76762,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
76677
76762
|
workspaceDir: resolvedWorkspace
|
|
76678
76763
|
});
|
|
76679
76764
|
const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
|
|
76680
|
-
await fs.mkdir(effectiveWorkspace, { recursive: true });
|
|
76765
|
+
await fs$1.mkdir(effectiveWorkspace, { recursive: true });
|
|
76681
76766
|
let restoreSkillEnv;
|
|
76682
76767
|
process.chdir(effectiveWorkspace);
|
|
76683
76768
|
try {
|
|
@@ -76907,7 +76992,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
76907
76992
|
sessionFile: params.sessionFile,
|
|
76908
76993
|
warn: (message) => log$9.warn(message)
|
|
76909
76994
|
});
|
|
76910
|
-
const hadSessionFile = await fs.stat(params.sessionFile).then(() => true).catch(() => false);
|
|
76995
|
+
const hadSessionFile = await fs$1.stat(params.sessionFile).then(() => true).catch(() => false);
|
|
76911
76996
|
const transcriptPolicy = resolveTranscriptPolicy({
|
|
76912
76997
|
modelApi: params.model?.api,
|
|
76913
76998
|
provider: params.provider,
|
|
@@ -77892,7 +77977,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
77892
77977
|
return;
|
|
77893
77978
|
}
|
|
77894
77979
|
if (model.provider === "github-copilot") {
|
|
77895
|
-
const { resolveCopilotApiToken } = await import("./github-copilot-token-
|
|
77980
|
+
const { resolveCopilotApiToken } = await import("./github-copilot-token-cCYzSU9h.js").then((n) => n.n);
|
|
77896
77981
|
const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
|
|
77897
77982
|
authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
|
|
77898
77983
|
} else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
|
|
@@ -77977,7 +78062,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
77977
78062
|
}
|
|
77978
78063
|
runLoopIterations += 1;
|
|
77979
78064
|
attemptedThinking.add(thinkLevel);
|
|
77980
|
-
await fs.mkdir(resolvedWorkspace, { recursive: true });
|
|
78065
|
+
await fs$1.mkdir(resolvedWorkspace, { recursive: true });
|
|
77981
78066
|
const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
|
|
77982
78067
|
const attempt = await runEmbeddedAttempt({
|
|
77983
78068
|
sessionId: params.sessionId,
|