@symerian/symi 2.8.17 → 2.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{acp-cli-Bav1bRj2.js → acp-cli-BNM6b6XY.js} +2 -2
- package/dist/{acp-cli-BTu3_kZ1.js → acp-cli-DXsJS3-G.js} +2 -2
- package/dist/{agents-9cAyC5ED.js → agents-FNeM-byc.js} +7 -7
- package/dist/{agents.config-DuwhYjpi.js → agents.config-CjML1ogJ.js} +1 -1
- package/dist/{agents.config-Cu9zTq04.js → agents.config-DUYDFbfP.js} +1 -1
- package/dist/{audio-preflight-C6vpFnOG.js → audio-preflight-CMutcMs5.js} +5 -5
- package/dist/{audio-preflight-C2EgDXSo.js → audio-preflight-CwbuWmdG.js} +11 -11
- package/dist/{audio-preflight-rjCWpcfE.js → audio-preflight-DlO0Hw-w.js} +5 -5
- package/dist/{audio-preflight-1dv3T5Zx.js → audio-preflight-SaT5IcVn.js} +11 -11
- package/dist/{audit-C9nq99IR.js → audit-Ojap-R-Y.js} +5 -5
- package/dist/{audit-CuKP86d_.js → audit-qWCLpveM.js} +5 -5
- package/dist/{auth-choice-DeNzlUAR.js → auth-choice-BjTiWmH-.js} +4 -4
- package/dist/{auth-choice-CPqyqc93.js → auth-choice-RQ5keocP.js} +4 -4
- package/dist/{banner-S1NGA6-s.js → banner-dYiFXA70.js} +1 -1
- package/dist/{browser-cli-ClgQ-C8E.js → browser-cli-BQ9jHIXP.js} +3 -3
- package/dist/{browser-cli-DuPPIcuV.js → browser-cli-BW0C5Y8-.js} +3 -3
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +14 -14
- package/dist/bundled/session-memory/handler.js +14 -14
- package/dist/{call-DYfKEdwh.js → call-BZbBLMOq.js} +1 -1
- package/dist/{call-M4YyUnwu.js → call-X_vwo309.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-C0v4BJgp.js → channel-options-CjZlTumK.js} +1 -1
- package/dist/{channel-options-C6y7Khvq.js → channel-options-DqXYA7rM.js} +1 -1
- package/dist/{channel-web-DirOFV_n.js → channel-web-BITaNjFT.js} +7 -7
- package/dist/{channels-cli-BhNHckMo.js → channels-cli-7cDtM5kW.js} +30 -30
- package/dist/{channels-cli-By_SbriI.js → channels-cli-C8CesA1x.js} +31 -31
- package/dist/{chrome-C08Z0XAa.js → chrome-B1zznUiv.js} +1 -1
- package/dist/{chrome-BJvuH-NZ.js → chrome-BFDOGeu3.js} +1 -1
- package/dist/{chrome-D2ohnA09.js → chrome-faqXQ9f1.js} +1 -1
- package/dist/{chrome-B14NNyfm.js → chrome-t-stBgN6.js} +1 -1
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-B1QQv1cb.js → cli-BJ9_X9eE.js} +27 -27
- package/dist/{cli-Bx4RQCuK.js → cli-ZC_92Xyn.js} +26 -26
- package/dist/{command-registry-uMOPbrbY.js → command-registry-B1ltIC7z.js} +11 -11
- package/dist/{completion-cli-DVD79pVj.js → completion-cli-KSs4eFcq.js} +1 -1
- package/dist/{completion-cli-B6s_3rEE.js → completion-cli-_P0e-rhC.js} +2 -2
- package/dist/{config-BkZ9HOKT.js → config-BXMAsmut.js} +2 -0
- package/dist/{config-PXAJCHa5.js → config-BYCtuYPj.js} +2 -0
- package/dist/{config-BAVNLbja.js → config-CbBZUq-Q.js} +2 -0
- package/dist/{config-DXt3pc08.js → config-DE6JXMtt.js} +2 -0
- package/dist/{config-cli-DzudcNAD.js → config-cli-DIrPShKH.js} +2 -2
- package/dist/{config-cli-DCGgd-ZL.js → config-cli-DjCKp4Pe.js} +2 -2
- package/dist/{config-guard-BvqCjFPk.js → config-guard-BrZXdLQw.js} +2 -2
- package/dist/{config-guard-CaP-V3tf.js → config-guard-DYmSI51f.js} +3 -3
- package/dist/{config-validation-B6Fa3VmF.js → config-validation-CNRgc5vc.js} +1 -1
- package/dist/{config-validation-EmHZVnuz.js → config-validation-fdYfdAc3.js} +1 -1
- package/dist/{configure-CItWwZwI.js → configure-CsZWO6Nr.js} +10 -10
- package/dist/{configure-BybpK_1N.js → configure-Ds8SzTEw.js} +10 -10
- package/dist/{control-service-Bujr5pk7.js → control-service-B5HVCnUI.js} +4 -4
- package/dist/{control-service-C0pRqIFv.js → control-service-DQX3HXS4.js} +4 -4
- package/dist/{cron-cli-C8-Gv5dd.js → cron-cli-CfSmL43G.js} +3 -3
- package/dist/{cron-cli-BEdmHCWZ.js → cron-cli-D2L3-4aw.js} +3 -3
- package/dist/{daemon-cli-BFoJGCHZ.js → daemon-cli-BHwfgmrQ.js} +6 -6
- package/dist/{daemon-cli-D6wyb9bo.js → daemon-cli-D9_xrFGD.js} +6 -6
- package/dist/daemon-cli.js +2 -0
- package/dist/{daemon-runtime-Cp7obV7Q.js → daemon-runtime-BiZG4Kqi.js} +1 -1
- package/dist/{daemon-runtime-D_elkkFW.js → daemon-runtime-DOqm0LLm.js} +1 -1
- package/dist/{deliver-D0bWiRCg.js → deliver--ff__Iq0.js} +2 -2
- package/dist/{deliver-Bdk_R0pQ.js → deliver-CeNdvQJ3.js} +3 -3
- package/dist/{deliver-D7BQXt0l.js → deliver-Cqk3zmyW.js} +3 -3
- package/dist/{deliver-qUx-eLKt.js → deliver-nBdNxMIr.js} +2 -2
- package/dist/{devices-cli-CHt4I-7e.js → devices-cli-BzyrjuAk.js} +2 -2
- package/dist/{devices-cli-BXc6DPkC.js → devices-cli-CEvTb9Vr.js} +2 -2
- package/dist/{directory-cli-DRWJsAT6.js → directory-cli-Ds7uESrp.js} +1 -1
- package/dist/{directory-cli-CQTzAhw1.js → directory-cli-KZHlp_jk.js} +1 -1
- package/dist/{dns-cli-BCKPibb8.js → dns-cli-SNU_PJfw.js} +1 -1
- package/dist/{dns-cli-BBVIay6Z.js → dns-cli-e8z7wTzi.js} +1 -1
- package/dist/{doctor-completion-Bf6dN4D-.js → doctor-completion-CfGWMYVG.js} +1 -1
- package/dist/{doctor-completion-BkwgaO4G.js → doctor-completion-D4bMStWc.js} +1 -1
- package/dist/{doctor-config-flow-BCMxS2lf.js → doctor-config-flow-CJ4__c8U.js} +2 -2
- package/dist/{doctor-config-flow-B2dVxbL7.js → doctor-config-flow-DHXFFSRu.js} +2 -2
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-CKRDAo17.js → exec-approvals-cli-_AbKrXIH.js} +4 -4
- package/dist/{exec-approvals-cli-BBKVrFTj.js → exec-approvals-cli-z9Iy8aWD.js} +4 -4
- package/dist/extensionAPI.js +14 -14
- package/dist/{gateway-cli-7CVmb3cX.js → gateway-cli-B4ElmhPF.js} +116 -72
- package/dist/{gateway-cli-eNV6kb1V.js → gateway-cli-CfO9aUt0.js} +117 -73
- package/dist/{gateway-rpc-DZrB7Sl_.js → gateway-rpc-BlWORxUe.js} +1 -1
- package/dist/{gateway-rpc-BEfosIsg.js → gateway-rpc-D1S1i5HM.js} +1 -1
- package/dist/{glass-ui-ws-B4fsBuHx.js → glass-ui-ws-Bhu3COgn.js} +34 -34
- package/dist/{glass-ui-ws-i91Ms6ts.js → glass-ui-ws-D1UKJUFI.js} +35 -35
- package/dist/{health-dA8r4WJ4.js → health-CCslN1xh.js} +5 -5
- package/dist/{health-C4tWTDu_.js → health-CLRDrjsk.js} +5 -5
- package/dist/{hooks-cli-uGLWBIcW.js → hooks-cli-BrVLhsJ6.js} +27 -27
- package/dist/{hooks-cli-DYn9nXX0.js → hooks-cli-DvLYXNNe.js} +28 -28
- package/dist/{image-6RZuWKy5.js → image-B6aY1oY3.js} +2 -2
- package/dist/{image-C6rCON9L.js → image-CEdTQp1F.js} +2 -2
- package/dist/{image-CnEFsKgw.js → image-Cp6qRPZ2.js} +2 -2
- package/dist/{image-MNvheU8U.js → image-D5bsPk2_.js} +2 -2
- package/dist/index.js +35 -35
- package/dist/{lifecycle-core-v3lT0Ymo.js → lifecycle-core-BUGPz1GT.js} +2 -2
- package/dist/{lifecycle-core-Uucs6Wz6.js → lifecycle-core-CcPnnp9c.js} +2 -2
- package/dist/llm-slug-generator.js +14 -14
- package/dist/{login-EYdkb0dH.js → login-B7OJui4y.js} +2 -2
- package/dist/{login-D4rZWBXe.js → login-Cu0fTI3Z.js} +2 -2
- package/dist/{login-C7EdfiAr.js → login-DKeZ-sOf.js} +2 -2
- package/dist/{login-F4pbdnF5.js → login-DwBazcKM.js} +2 -2
- package/dist/{login-qr-Apnag5S6.js → login-qr-BBrzemk7.js} +2 -2
- package/dist/{login-qr-BElXRp6T.js → login-qr-CtELJan3.js} +2 -2
- package/dist/{login-qr-DdAVHOEC.js → login-qr-DyU6qD2X.js} +2 -2
- package/dist/{login-qr-DML5LgsI.js → login-qr-Ft17VIG6.js} +2 -2
- package/dist/{logs-cli-N5jQvJTm.js → logs-cli-CvgvoxvI.js} +3 -3
- package/dist/{logs-cli-CsHpYc2M.js → logs-cli-Dg6OSEA6.js} +3 -3
- package/dist/{manager-CgQo1mIM.js → manager-8N1YbbDk.js} +1 -1
- package/dist/{manager-D6E6EGWa.js → manager-CztTHQhN.js} +1 -1
- package/dist/{manager-BaSutzfz.js → manager-HASZR70T.js} +1 -1
- package/dist/{manager-DhGfNqfc.js → manager-OSWCBsL_.js} +1 -1
- package/dist/{memory-cli-BMb31chU.js → memory-cli-BDWdeqta.js} +4 -4
- package/dist/{memory-cli-lJe72a5i.js → memory-cli-BmWvHCEJ.js} +4 -4
- package/dist/{model-catalog-D7k3dDQq.js → model-catalog-BhW-vn5v.js} +2 -2
- package/dist/{model-catalog-BuYrTTBn.js → model-catalog-FckJ4pcL.js} +2 -2
- package/dist/{model-picker-BNWV-jU4.js → model-picker-D3ii5sBm.js} +2 -2
- package/dist/{model-picker-n7beL1F5.js → model-picker-DEUeht6L.js} +2 -2
- package/dist/{models-BITN17gY.js → models-5C-QKF0q.js} +8 -8
- package/dist/{models-cli-C6JJWWoI.js → models-cli-B2IebIhR.js} +29 -29
- package/dist/{models-cli-CHjxevMe.js → models-cli-BqW-Y1GI.js} +30 -30
- package/dist/{models-config-J1x_DaPn.js → models-config-CHVfeRDR.js} +1 -1
- package/dist/{models-config-B91ShhoT.js → models-config-DGDMieos.js} +1 -1
- package/dist/{node-cli-BD4E-Y8a.js → node-cli-emEb0aRo.js} +9 -9
- package/dist/{node-cli-CwnTjFkG.js → node-cli-hAxte5bw.js} +9 -9
- package/dist/{nodes-cli-Dv0NXhCO.js → nodes-cli-DQPQqEYN.js} +3 -3
- package/dist/{nodes-cli-DUD8_q_Q.js → nodes-cli-yd9KABqj.js} +3 -3
- package/dist/{onboard-C8Si08MS.js → onboard-BL7Ei8OA.js} +7 -7
- package/dist/{onboard-channels-Cb-bemSg.js → onboard-channels-B-PEQmiI.js} +1 -1
- package/dist/{onboard-channels-PQP9wlk8.js → onboard-channels-Do0lkLVV.js} +1 -1
- package/dist/{onboard-custom-Dk9cL3Uu.js → onboard-custom-BVMtQfB1.js} +2 -2
- package/dist/{onboard-custom-CJGSIPt3.js → onboard-custom-CVA34zSg.js} +2 -2
- package/dist/{onboard-helpers-DWDNKmkJ.js → onboard-helpers-CNFdWQIV.js} +2 -2
- package/dist/{onboard-helpers-CBxazphs.js → onboard-helpers-O6bxf40E.js} +2 -2
- package/dist/{onboard-DdJV-Doq.js → onboard-o5O2Ipvr.js} +7 -7
- package/dist/{onboard-remote-cZrkePlK.js → onboard-remote-QMqQxvh7.js} +1 -1
- package/dist/{onboard-remote-DoIKLWXA.js → onboard-remote-uYveiXQe.js} +1 -1
- package/dist/{onboard-skills-BjGYTueQ.js → onboard-skills-CLb94Ag2.js} +1 -1
- package/dist/{onboard-skills-zauvnEui.js → onboard-skills-Du3aWSN3.js} +1 -1
- package/dist/{onboarding-QAtuyHtA.js → onboarding-3DwQLO4z.js} +10 -10
- package/dist/{onboarding-CAaoPaVQ.js → onboarding-B_F_DbjQ.js} +10 -10
- package/dist/{onboarding.finalize-MuO2mvHv.js → onboarding.finalize-BWejCrVi.js} +32 -32
- package/dist/{onboarding.finalize-BhlQmJlX.js → onboarding.finalize-D_G6Tcqi.js} +34 -34
- package/dist/{onboarding.gateway-config-Dg12RcXA.js → onboarding.gateway-config-D8K7HsWb.js} +4 -4
- package/dist/{onboarding.gateway-config-uIRsaxMy.js → onboarding.gateway-config-Dixr8mmH.js} +4 -4
- package/dist/{outbound-mG1crIsY.js → outbound-CLCy4Nsg.js} +1 -1
- package/dist/{outbound-Zmd7UyQH.js → outbound-DVVulk0E.js} +1 -1
- package/dist/{outbound-B5OgOn1h.js → outbound-DlWjA7jN.js} +1 -1
- package/dist/{outbound-CW8eNbCh.js → outbound-b9pVFyW7.js} +1 -1
- package/dist/{pairing-cli-7X1qlhzF.js → pairing-cli-CchjvjCR.js} +1 -1
- package/dist/{pairing-cli-Cl4t3cDV.js → pairing-cli-Cgj6qx8Z.js} +1 -1
- package/dist/{pi-embedded-helpers-TcYQOZAY.js → pi-embedded-helpers-BPP4adeW.js} +5 -5
- package/dist/{pi-embedded-helpers-YD1JQ5xV.js → pi-embedded-helpers-BgpogTwt.js} +1 -1
- package/dist/{pi-embedded-helpers-DHAJW99p.js → pi-embedded-helpers-DK2WpZI8.js} +1 -1
- package/dist/{pi-embedded-helpers-P13adotN.js → pi-embedded-helpers-DrAT2ieP.js} +5 -5
- package/dist/{pi-embedded-BUYKq7Wv.js → pi-embedded-q_tNOp_h.js} +355 -120
- package/dist/{pi-tools.policy-Bx5zp45n.js → pi-tools.policy-BE7fB_Cf.js} +2 -2
- package/dist/{pi-tools.policy-o0ytjRqu.js → pi-tools.policy-GxaAKOgf.js} +2 -2
- package/dist/{plugin-registry-DEhkDNDx.js → plugin-registry-B_KRAoou.js} +2 -2
- package/dist/{plugin-registry-tXiHw0vr.js → plugin-registry-CRIH5Sdf.js} +2 -2
- package/dist/plugin-sdk/agents/pi-embedded-runner/system-prompt.d.ts +7 -0
- package/dist/plugin-sdk/agents/pi-tools.read-edit-guard.d.ts +5 -0
- package/dist/plugin-sdk/agents/pi-tools.read-edit-tracker.d.ts +26 -0
- package/dist/plugin-sdk/agents/pi-tools.read.d.ts +11 -0
- package/dist/plugin-sdk/agents/system-prompt-skills-autoload.d.ts +21 -0
- package/dist/plugin-sdk/{audio-preflight-DucGa8w7.js → audio-preflight-CwMsvdv8.js} +5 -5
- package/dist/plugin-sdk/{channel-web-C7aP_KKZ.js → channel-web-CiewzSOW.js} +7 -7
- package/dist/plugin-sdk/{chrome-D9kN9org.js → chrome-Cou8jVJ2.js} +1 -1
- package/dist/plugin-sdk/config/model-profiles-builtin.d.ts +16 -0
- package/dist/plugin-sdk/config/resolve-model-profile.d.ts +9 -1
- package/dist/plugin-sdk/config/types.skills.d.ts +8 -0
- package/dist/plugin-sdk/config/zod-schema.d.ts +4 -0
- package/dist/plugin-sdk/{config-BzupW6LN.js → config-DQntj58u.js} +2 -0
- package/dist/plugin-sdk/{deliver-CKgFosI5.js → deliver-OVx3XKTy.js} +2 -2
- package/dist/plugin-sdk/{image-DFyINnvE.js → image-ChrcMCo_.js} +2 -2
- package/dist/plugin-sdk/index.js +18 -18
- package/dist/plugin-sdk/{login-K1YB_7-t.js → login-WuhOM4Dg.js} +2 -2
- package/dist/plugin-sdk/{login-qr-lMl_OqDj.js → login-qr-C87Q7LuN.js} +2 -2
- package/dist/plugin-sdk/{manager-CvrDwB1Q.js → manager-Yvm-LGVR.js} +1 -1
- package/dist/plugin-sdk/{outbound-DW3cqlQW.js → outbound-T0XdUo-H.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-BL7ZRhGv.js → pi-embedded-helpers-DihvU43r.js} +5 -5
- package/dist/plugin-sdk/{pw-ai-B3T0mTHr.js → pw-ai-DUQ9kG2D.js} +2 -2
- package/dist/plugin-sdk/{replies-BR2TPTVW.js → replies-DD0EJRXx.js} +1 -1
- package/dist/plugin-sdk/{reply-BI7Rf3_S.js → reply-I6ZFg_UE.js} +355 -120
- package/dist/plugin-sdk/{runner-BhifC1J_.js → runner-IyZnVyIT.js} +2 -2
- package/dist/plugin-sdk/{send-ZhAe1nXO.js → send-Cxr9NnOd.js} +1 -1
- package/dist/plugin-sdk/{send-BP5pSPaZ.js → send-Dd71o3sZ.js} +1 -1
- package/dist/plugin-sdk/{send-DLO_yV5_.js → send-Do_qdBr_.js} +1 -1
- package/dist/plugin-sdk/{send-CGhw9mO3.js → send-DxXXcQ_o.js} +1 -1
- package/dist/plugin-sdk/{send-jsofmTfJ.js → send-SRQweHTE.js} +1 -1
- package/dist/plugin-sdk/{session-BfyK_04G.js → session-LEZ8u8RX.js} +1 -1
- package/dist/plugin-sdk/{synthesis-B3z0Jqt1.js → synthesis-bQ4DMwsj.js} +14 -14
- package/dist/plugin-sdk/{web-D2WrY-DI.js → web-C3YuHiih.js} +18 -18
- package/dist/plugin-sdk/{whatsapp-actions-eTefsWhW.js → whatsapp-actions-ClWxTG5S.js} +2 -2
- package/dist/{plugins-cli-D1vPxTOQ.js → plugins-cli-Co9cRpLe.js} +27 -27
- package/dist/{plugins-cli-ByG6o7D2.js → plugins-cli-MDYiXsRL.js} +28 -28
- package/dist/{program-Q44fKoq6.js → program-BWqVPm5t.js} +34 -34
- package/dist/{program-context-C3QEc34t.js → program-context-m9C36Cuq.js} +38 -38
- package/dist/{prompt-select-styled-DBVeLysq.js → prompt-select-styled-BKJVEVPk.js} +15 -15
- package/dist/{prompt-select-styled-BSZrZcW2.js → prompt-select-styled-DzjQVaDM.js} +15 -15
- package/dist/{provider-auth-helpers-Bm4cf-Ms.js → provider-auth-helpers-DYJ-0sNe.js} +2 -2
- package/dist/{provider-auth-helpers-rH91VXG-.js → provider-auth-helpers-DaTqy1aA.js} +2 -2
- package/dist/{push-apns-CRD9IH1s.js → push-apns-DdQlLTpV.js} +1 -1
- package/dist/{push-apns-Cj10sUbK.js → push-apns-_aeFBwsP.js} +1 -1
- package/dist/{pw-ai-CeWN4iD9.js → pw-ai-Bpp0J0PM.js} +2 -2
- package/dist/{pw-ai-DYZonrPL.js → pw-ai-D9ZuX3U6.js} +2 -2
- package/dist/{pw-ai-D9fCYPe7.js → pw-ai-DSmC8YuO.js} +2 -2
- package/dist/{pw-ai-40Jf9QIb.js → pw-ai-XSTIQILG.js} +2 -2
- package/dist/{qr-cli-CCWM_3Nb.js → qr-cli-Dq9G8FPl.js} +1 -1
- package/dist/{qr-cli-6eVyM6ek.js → qr-cli-DtHLOD1G.js} +1 -1
- package/dist/{register.agent-Dfu85lRL.js → register.agent-Hi0PN67T.js} +35 -35
- package/dist/{register.agent-DGDnsvVd.js → register.agent-RNTVF_Nk.js} +33 -33
- package/dist/{register.configure-BcdyiQui.js → register.configure-DE2Fg1dO.js} +38 -38
- package/dist/{register.configure-FCTbPCwe.js → register.configure-Dp-F_KKy.js} +37 -37
- package/dist/{register.maintenance-Y8P9AnLe.js → register.maintenance-Bbd-g7nL.js} +37 -37
- package/dist/{register.maintenance-DvDwpW6B.js → register.maintenance-QHRRhtsg.js} +35 -35
- package/dist/{register.message-mTqwOntI.js → register.message-B5uWOXev.js} +27 -27
- package/dist/{register.message-C57ubt4f.js → register.message-BvutRi1a.js} +28 -28
- package/dist/{register.onboard-MIChlygg.js → register.onboard-CNOh527M.js} +34 -34
- package/dist/{register.onboard-YCmMzAW-.js → register.onboard-DRHuoRTm.js} +33 -33
- package/dist/{register.setup-DzUZ2x6y.js → register.setup-Cj0oOZqL.js} +33 -33
- package/dist/{register.setup-sQeN5xag.js → register.setup-D1ePW7dl.js} +34 -34
- package/dist/{register.status-health-sessions-DsptpS7K.js → register.status-health-sessions-DfyO7JaH.js} +30 -30
- package/dist/{register.status-health-sessions-DaPK2tow.js → register.status-health-sessions-sf1XzcPo.js} +32 -32
- package/dist/{register.subclis-17z5d7uO.js → register.subclis-Do_HdpUT.js} +28 -28
- package/dist/{replies-D0NFBbd-.js → replies-BV7oFP7Z.js} +1 -1
- package/dist/{replies-Sxbew659.js → replies-BxvfG7Oj.js} +1 -1
- package/dist/{replies-CZH45dMt.js → replies-CPhYC11m.js} +1 -1
- package/dist/{replies-CUWXgyx2.js → replies-IkylJ7lX.js} +1 -1
- package/dist/{reply-2awhibgG.js → reply-DEub7xci.js} +364 -129
- package/dist/{routes-wmFRpLa9.js → routes-Evl8vnTV.js} +3 -3
- package/dist/{routes-c86p9MPH.js → routes-n7RUgOOW.js} +3 -3
- package/dist/{rpc-BKlQ97aZ.js → rpc-3T_LjHn1.js} +1 -1
- package/dist/{rpc-DC4ol5Xa.js → rpc-DeJsMHDF.js} +1 -1
- package/dist/{run-main-CfVO6DFS.js → run-main-B_ZLo4JR.js} +45 -45
- package/dist/{runner-BBYms6g4.js → runner-BX-ap4VU.js} +3 -3
- package/dist/{runner-DFuAePEr.js → runner-B_6xBcPB.js} +2 -2
- package/dist/{runner-D633VT13.js → runner-CMvsDzah.js} +2 -2
- package/dist/{runner-Cbz8g76d.js → runner-CiThXXY3.js} +3 -3
- package/dist/{sandbox-CCHQuSja.js → sandbox-BQ5LAIBQ.js} +5 -5
- package/dist/{sandbox-WWVXeHlA.js → sandbox-T9SO3y3b.js} +5 -5
- package/dist/{sandbox-cli-BtGgnGrs.js → sandbox-cli-Bi8lblc6.js} +6 -6
- package/dist/{sandbox-cli-momxce7H.js → sandbox-cli-MZJX1Ht6.js} +6 -6
- package/dist/{security-cli-BfiJ3e0Y.js → security-cli-AZBZs6ww.js} +9 -9
- package/dist/{security-cli-CIB7kqEk.js → security-cli-txjMZzBx.js} +9 -9
- package/dist/{send-DvbOiJ-I.js → send-BPBFuPrC.js} +1 -1
- package/dist/{send-SF7x1UHb.js → send-BUBES34Y.js} +1 -1
- package/dist/{send-DpMnSIi5.js → send-BaSqjfd_.js} +1 -1
- package/dist/{send-Dz656vcm.js → send-Bi8XhwOZ.js} +1 -1
- package/dist/{send-Bb4it0te.js → send-BtbWvw2k.js} +1 -1
- package/dist/{send-DFtnbzqy.js → send-C4IU_tV3.js} +1 -1
- package/dist/{send-Iocbaltq.js → send-C6-rN_Li.js} +1 -1
- package/dist/{send-5GrSqB6v.js → send-CSkNKYIc.js} +1 -1
- package/dist/{send-BaFD3lZ7.js → send-CcD9S5so.js} +1 -1
- package/dist/{send-DLVrnezL.js → send-CfejAK2u.js} +1 -1
- package/dist/{send-CJJuN-Fg.js → send-CoSPwGiI.js} +1 -1
- package/dist/{send-9sVK0zP4.js → send-CupfdYEg.js} +1 -1
- package/dist/{send-BKo1T3HF.js → send-CyPj_MLV.js} +1 -1
- package/dist/{send-COVVt64P.js → send-DNqcjLyg.js} +1 -1
- package/dist/{send-C0QjmPaf.js → send-DlYO3ExM.js} +1 -1
- package/dist/{send-Cpk3Ti6-.js → send-Dn1Pirhx.js} +1 -1
- package/dist/{send-B5kAnKqP.js → send-_CmB6CKB.js} +1 -1
- package/dist/{send-DGbBPbV0.js → send-dohExhb8.js} +1 -1
- package/dist/{send-BqOhAhRS.js → send-llekTUks.js} +1 -1
- package/dist/{send-BaBv1rAU.js → send-vmIzYMwN.js} +1 -1
- package/dist/{server-context-C66bI8ZM.js → server-context-BkYSrDni.js} +5 -5
- package/dist/{server-context-DefCxQsB.js → server-context-CGMSzPWd.js} +5 -5
- package/dist/{server-methods-D_g3GJhv.js → server-methods-C-itThFa.js} +17 -17
- package/dist/{server-methods-Bdgs89ve.js → server-methods-P-ayY-6k.js} +16 -16
- package/dist/{server-node-events-Cvgmf8fS.js → server-node-events-D5ee96aZ.js} +27 -27
- package/dist/{server-node-events-BZN3RZ8H.js → server-node-events-tvNFkev2.js} +28 -28
- package/dist/{session-mFiujXaP.js → session-CMploMg7.js} +1 -1
- package/dist/{session-BTeY6Gn2.js → session-CifmyF9K.js} +1 -1
- package/dist/{session-BtL_LuWh.js → session-DQimwuIx.js} +1 -1
- package/dist/{session-BpaF8fzk.js → session-bvybh7vL.js} +1 -1
- package/dist/{session-utils-DaBIs243.js → session-utils-DQ-t0PxQ.js} +3 -3
- package/dist/{sessions-B2KSRtKQ.js → sessions-BIsirZy0.js} +3 -3
- package/dist/{sessions-BeYHj0gr.js → sessions-BKn2DFYs.js} +1 -1
- package/dist/{sessions-BPD85pWA.js → sessions-DCr5nAOw.js} +1 -1
- package/dist/{shared-PtB96PLH.js → shared-F4GNd-mC.js} +1 -1
- package/dist/{shared-C9vLT1Vj.js → shared-iaXjUnvo.js} +1 -1
- package/dist/{skills-cli-dTks7st0.js → skills-cli-BX1J5GLJ.js} +1 -1
- package/dist/{skills-cli-DiND94Um.js → skills-cli-CZgrqMPo.js} +1 -1
- package/dist/{status-CwqBkxi2.js → status-BlTLrS6h.js} +2 -2
- package/dist/{status-Dkr4Celv.js → status-BqjF9Q9S.js} +9 -9
- package/dist/{status-Ca_VZkZV.js → status-CfIkReeE.js} +10 -10
- package/dist/{status-DcxWlds6.js → status-DjvBeoYl.js} +2 -2
- package/dist/{status.update-B5zI1_Id.js → status.update-BZnfRS2e.js} +1 -1
- package/dist/{status.update-8HXdAdwz.js → status.update-C5evp93A.js} +1 -1
- package/dist/{subagent-registry-CncIZPCd.js → subagent-registry-DVYhalAo.js} +365 -130
- package/dist/{synthesis-DOmJ2Gay.js → synthesis-DDQ5zAtf.js} +14 -14
- package/dist/{synthesis-CxvpkXBW.js → synthesis-DRXsTePq.js} +26 -26
- package/dist/{synthesis-lD0Vb_9q.js → synthesis-DgiYnjmZ.js} +14 -14
- package/dist/{synthesis-CTC73eY9.js → synthesis-y-Ozm8YK.js} +27 -27
- package/dist/{system-cli-BERSpUjO.js → system-cli-IeefTiI1.js} +3 -3
- package/dist/{system-cli-C61hzNPk.js → system-cli-hjvWuxnn.js} +3 -3
- package/dist/{systemd-hints-Ct8ebNeC.js → systemd-hints-CW7G2Z_2.js} +1 -1
- package/dist/{systemd-hints-vhJS1sOh.js → systemd-hints-CcsN2P1C.js} +1 -1
- package/dist/{tui-CI_zqapL.js → tui-ByDc_eA-.js} +4 -4
- package/dist/{tui-Dg_cvgVP.js → tui-DulNash-.js} +4 -4
- package/dist/{tui-cli-DtBW_VCL.js → tui-cli-D--Wucil.js} +9 -9
- package/dist/{tui-cli-BD1cbShC.js → tui-cli-cbFjX5ua.js} +9 -9
- package/dist/{unified-runner-JQaSdhSg.js → unified-runner-BRmPenSK.js} +355 -120
- package/dist/{update-cli-CplnPSZ5.js → update-cli-5uhTWLns.js} +38 -38
- package/dist/{update-cli-BO1uw-SU.js → update-cli-BfvcUFky.js} +40 -40
- package/dist/{update-runner-DFp9PDMN.js → update-runner-22u8HOoq.js} +1 -1
- package/dist/{update-runner-Df4mjndq.js → update-runner-DyENgdTM.js} +1 -1
- package/dist/{web-CZoQ03ZE.js → web-B8GaP73t.js} +17 -17
- package/dist/{web-Dn33Cd3-.js → web-CqeSgivQ.js} +30 -30
- package/dist/{web-BEDc6iEz.js → web-Dbe1DwOE.js} +17 -17
- package/dist/{web-CCEVjDcU.js → web-s9NWpUYH.js} +30 -30
- package/dist/{webhooks-cli-BEk3Xj9r.js → webhooks-cli-9lyrT9S-.js} +1 -1
- package/dist/{webhooks-cli-B7WTF3ao.js → webhooks-cli-C56QoA-d.js} +1 -1
- package/dist/{whatsapp-actions-uEcDLORc.js → whatsapp-actions-BV4mjN5j.js} +2 -2
- package/dist/{whatsapp-actions-DmVpLXmh.js → whatsapp-actions-BngdI8G3.js} +2 -2
- package/dist/{whatsapp-actions-DEn0NRir.js → whatsapp-actions-D5RBK0Cm.js} +2 -2
- package/dist/{whatsapp-actions-BUZuNBin.js → whatsapp-actions-Dx8FkbIf.js} +2 -2
- package/dist/{with-timeout-DwriPEWn.js → with-timeout-7gwjaz5c.js} +1 -1
- package/dist/{with-timeout-BuIx7QnX.js → with-timeout-C1vsg3IF.js} +1 -1
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/learning-loop/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +12 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +12 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/package.json +1 -1
- package/extensions/pipeline/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +12 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +12 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +12 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +12 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
|
2
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
4
|
import { $ as isRich, A as normalizeE164, D as isRecord$1, E as formatTerminalLink, H as isPlainObject, I as shortenHomeInString, J as setVerbose, K as logVerbose, L as shortenHomePath, P as resolveUserPath, Q as colorize, R as sleep$1, S as clampInt, T as escapeRegExp, U as danger, V as truncateUtf16Safe, Y as shouldLogVerbose, Z as warn, _ as matchPluginCommand, a as normalizeAnyChannelId, b as CONFIG_DIR, d as createPluginRegistry, et as theme, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, l as requireActivePluginRegistry, lt as resolvePreferredSymiTmpDir, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, o as normalizeChannelId, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, st as normalizeLogLevel, tt as getChildLogger, u as setActivePluginRegistry, v as createInternalHookEvent, w as ensureDir$3, y as triggerInternalHook, z as sliceUtf16Safe } from "./registry-BhoUuugi.js";
|
|
5
|
-
import { A as logInfo, C as resolveSymiPackageRoot, D as spawnWithFallback, E as runExec, O as logDebug, S as loadWorkspaceBootstrapFiles, T as runCommandWithTimeout, a as resolveAgentModelPrimary, b as ensureAgentWorkspace, c as resolveDefaultAgentId, d as resolveSessionAgentIds, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, j as logWarn, k as logError, l as resolveEffectiveModelFallbacks, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId, x as filterBootstrapFilesForSession } from "./agent-scope-Cbl5pNe1.js";
|
|
5
|
+
import { A as logInfo, C as resolveSymiPackageRoot, D as spawnWithFallback, E as runExec, O as logDebug, S as loadWorkspaceBootstrapFiles, T as runCommandWithTimeout, a as resolveAgentModelPrimary, b as ensureAgentWorkspace, c as resolveDefaultAgentId, d as resolveSessionAgentIds, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, j as logWarn, k as logError, l as resolveEffectiveModelFallbacks, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId, w as resolveSymiPackageRootSync, x as filterBootstrapFilesForSession } from "./agent-scope-Cbl5pNe1.js";
|
|
6
6
|
import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-CZixfwU8.js";
|
|
7
7
|
import { $ as DEFAULT_MODEL, A as resolveShellEnvFallbackTimeoutMs, B as dedupeProfileIds, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as getSoonestCooldownExpiry, G as resolveSymiAgentDir, H as markAuthProfileGood, I as isProfileInCooldown, K as withFileLock, L as markAuthProfileFailure, O as getShellPathFromLoginShell, P as resolveAuthProfileOrder, Q as DEFAULT_CONTEXT_TOKENS, R as markAuthProfileUsed, S as getApiKeyForModel, T as resolveApiKeyForProvider, U as ensureAuthProfileStore, V as listProfilesForProvider, W as resolveAuthStorePathForDisplay, X as normalizeSecretInput, Z as resolveAuthProfileDisplayLabel, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, et as DEFAULT_PROVIDER, f as resolveModelRefFromString, i as findNormalizedProviderValue, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveApiKeyForProfile } from "./model-selection-vHAQ4r1b.js";
|
|
8
8
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-K_J_nfgx.js";
|
|
@@ -12,20 +12,20 @@ import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY
|
|
|
12
12
|
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-71oIavrF.js";
|
|
13
13
|
import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-DDEyGwby.js";
|
|
14
14
|
import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
|
|
15
|
-
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-
|
|
16
|
-
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-
|
|
17
|
-
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
|
|
15
|
+
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-vmIzYMwN.js";
|
|
16
|
+
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-CfejAK2u.js";
|
|
17
|
+
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--ff__Iq0.js";
|
|
18
18
|
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-Kbl70eCP.js";
|
|
19
19
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-C1vRJs5w.js";
|
|
20
20
|
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-8zZqL37v.js";
|
|
21
|
-
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-
|
|
21
|
+
import { $ 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-_CmB6CKB.js";
|
|
22
22
|
import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-ByaQt43P.js";
|
|
23
23
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-j5tVLINv.js";
|
|
24
24
|
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-BQINJQIT.js";
|
|
25
|
-
import { $ as mergeDeliveryContext, 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, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, 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 deliveryContextKey, 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 resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-
|
|
26
|
-
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-
|
|
25
|
+
import { $ as mergeDeliveryContext, 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, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, 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 deliveryContextKey, 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 resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-BPP4adeW.js";
|
|
26
|
+
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-CbBZUq-Q.js";
|
|
27
27
|
import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-DWdYdchb.js";
|
|
28
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
28
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-t-stBgN6.js";
|
|
29
29
|
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-XEbTRNYL.js";
|
|
30
30
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-CPfngF0S.js";
|
|
31
31
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
|
|
@@ -36,8 +36,8 @@ import { t as resolveIMessageAccount } from "./accounts-DImOt9jX.js";
|
|
|
36
36
|
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-DkMamAQ-.js";
|
|
37
37
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-C8Tqw4td.js";
|
|
38
38
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-ChC2CXaN.js";
|
|
39
|
-
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-
|
|
40
|
-
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-
|
|
39
|
+
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-D5bsPk2_.js";
|
|
40
|
+
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-CztTHQhN.js";
|
|
41
41
|
import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-479FB0St.js";
|
|
42
42
|
import { n as retryAsync } from "./retry-QGp0jvVi.js";
|
|
43
43
|
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-Dm716SF3.js";
|
|
@@ -49,18 +49,18 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-0kwEfxD4.js";
|
|
|
49
49
|
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-ke7KirEH.js";
|
|
50
50
|
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-CSF7Poen.js";
|
|
51
51
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CgGv6nTy.js";
|
|
52
|
-
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-
|
|
52
|
+
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-B_6xBcPB.js";
|
|
53
53
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-WLZaC77l.js";
|
|
54
54
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-BaoETsQI.js";
|
|
55
55
|
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-C-6tM-GK.js";
|
|
56
56
|
import { n as normalizePollInput } from "./polls-Coxe0Akm.js";
|
|
57
57
|
import { t as convertMarkdownTables } from "./tables-BE0lT1IV.js";
|
|
58
|
-
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-
|
|
59
|
-
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-
|
|
58
|
+
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-dohExhb8.js";
|
|
59
|
+
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-C6-rN_Li.js";
|
|
60
60
|
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Dd2_hyM2.js";
|
|
61
61
|
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-CFRe6XNa.js";
|
|
62
62
|
import { t as makeProxyFetch } from "./proxy-DaT-KQ7w.js";
|
|
63
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
63
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-BV7oFP7Z.js";
|
|
64
64
|
import { t as getActiveWebListener } from "./active-listener-OKZn7EWc.js";
|
|
65
65
|
import { createRequire } from "node:module";
|
|
66
66
|
import * as path$1 from "node:path";
|
|
@@ -3473,7 +3473,7 @@ async function getMemorySearchManager(params) {
|
|
|
3473
3473
|
const wrapper = new FallbackMemoryManager({
|
|
3474
3474
|
primary,
|
|
3475
3475
|
fallbackFactory: async () => {
|
|
3476
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3476
|
+
const { MemoryIndexManager } = await import("./manager-CztTHQhN.js").then((n) => n.n);
|
|
3477
3477
|
return await MemoryIndexManager.get(params);
|
|
3478
3478
|
}
|
|
3479
3479
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -3486,7 +3486,7 @@ async function getMemorySearchManager(params) {
|
|
|
3486
3486
|
}
|
|
3487
3487
|
}
|
|
3488
3488
|
try {
|
|
3489
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3489
|
+
const { MemoryIndexManager } = await import("./manager-CztTHQhN.js").then((n) => n.n);
|
|
3490
3490
|
return { manager: await MemoryIndexManager.get(params) };
|
|
3491
3491
|
} catch (err) {
|
|
3492
3492
|
return {
|
|
@@ -7367,7 +7367,7 @@ async function routeReply(params) {
|
|
|
7367
7367
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
7368
7368
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
7369
7369
|
try {
|
|
7370
|
-
const { deliverOutboundPayloads } = await import("./deliver
|
|
7370
|
+
const { deliverOutboundPayloads } = await import("./deliver--ff__Iq0.js").then((n) => n.n);
|
|
7371
7371
|
return {
|
|
7372
7372
|
ok: true,
|
|
7373
7373
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -10252,16 +10252,16 @@ function shouldComputeCommandAuthorized(text, cfg, options) {
|
|
|
10252
10252
|
|
|
10253
10253
|
//#endregion
|
|
10254
10254
|
//#region src/channels/sender-label.ts
|
|
10255
|
-
function normalize(value) {
|
|
10255
|
+
function normalize$1(value) {
|
|
10256
10256
|
const trimmed = value?.trim();
|
|
10257
10257
|
return trimmed ? trimmed : void 0;
|
|
10258
10258
|
}
|
|
10259
10259
|
function resolveSenderLabel(params) {
|
|
10260
|
-
const name = normalize(params.name);
|
|
10261
|
-
const username = normalize(params.username);
|
|
10262
|
-
const tag = normalize(params.tag);
|
|
10263
|
-
const e164 = normalize(params.e164);
|
|
10264
|
-
const id = normalize(params.id);
|
|
10260
|
+
const name = normalize$1(params.name);
|
|
10261
|
+
const username = normalize$1(params.username);
|
|
10262
|
+
const tag = normalize$1(params.tag);
|
|
10263
|
+
const e164 = normalize$1(params.e164);
|
|
10264
|
+
const id = normalize$1(params.id);
|
|
10265
10265
|
const display = name ?? username ?? tag ?? "";
|
|
10266
10266
|
const idPart = e164 ?? id ?? "";
|
|
10267
10267
|
if (display && idPart && display !== idPart) return `${display} (${idPart})`;
|
|
@@ -30509,8 +30509,39 @@ const GatewayToolSchema = Type.Object({
|
|
|
30509
30509
|
baseHash: Type.Optional(Type.String()),
|
|
30510
30510
|
sessionKey: Type.Optional(Type.String()),
|
|
30511
30511
|
note: Type.Optional(Type.String()),
|
|
30512
|
-
restartDelayMs: Type.Optional(Type.Number())
|
|
30512
|
+
restartDelayMs: Type.Optional(Type.Number()),
|
|
30513
|
+
userRequestAcknowledgment: Type.Optional(Type.String())
|
|
30513
30514
|
});
|
|
30515
|
+
/** Actions that mutate gateway state and require explicit user authorization. */
|
|
30516
|
+
const DESTRUCTIVE_ACTIONS = new Set([
|
|
30517
|
+
"config.apply",
|
|
30518
|
+
"config.patch",
|
|
30519
|
+
"update.run"
|
|
30520
|
+
]);
|
|
30521
|
+
/** Minimum length for a meaningful authorization message. */
|
|
30522
|
+
const MIN_AUTHORIZATION_LENGTH = 10;
|
|
30523
|
+
/**
|
|
30524
|
+
* Asserts the user's request was explicitly acknowledged for destructive
|
|
30525
|
+
* actions. Throws a descriptive error if the acknowledgment is missing,
|
|
30526
|
+
* empty, or trivially short.
|
|
30527
|
+
*
|
|
30528
|
+
* NOTE: This is defense-in-depth, not a hard barrier. A determined model
|
|
30529
|
+
* could still populate the field with fabricated text. The barrier exists
|
|
30530
|
+
* to:
|
|
30531
|
+
* 1. Force the agent to deliberately compose a justification (vs. blind
|
|
30532
|
+
* tool invocation).
|
|
30533
|
+
* 2. Provide an audit trail (the acknowledgment is logged with the tool
|
|
30534
|
+
* call args).
|
|
30535
|
+
* 3. Surface for future tightening (e.g., matching against real session
|
|
30536
|
+
* history).
|
|
30537
|
+
*/
|
|
30538
|
+
function assertUserAuthorization(action, params) {
|
|
30539
|
+
if (!DESTRUCTIVE_ACTIONS.has(action)) return;
|
|
30540
|
+
const ack = params.userRequestAcknowledgment;
|
|
30541
|
+
const trimmed = typeof ack === "string" ? ack.trim() : "";
|
|
30542
|
+
if (!trimmed) throw new Error(`Action '${action}' requires an explicit user authorization. Pass userRequestAcknowledgment with a paraphrase of the user's request (e.g., "user said: please update Symi"). If the user did not explicitly request this action, ask them first instead of invoking it.`);
|
|
30543
|
+
if (trimmed.length < MIN_AUTHORIZATION_LENGTH) throw new Error(`Action '${action}' requires a substantive userRequestAcknowledgment (minimum ${MIN_AUTHORIZATION_LENGTH} characters describing the user's request). Received: ${JSON.stringify(trimmed)}.`);
|
|
30544
|
+
}
|
|
30514
30545
|
function createGatewayTool(opts) {
|
|
30515
30546
|
return {
|
|
30516
30547
|
label: "Gateway",
|
|
@@ -30521,6 +30552,7 @@ function createGatewayTool(opts) {
|
|
|
30521
30552
|
execute: async (_toolCallId, args) => {
|
|
30522
30553
|
const params = args;
|
|
30523
30554
|
const action = readStringParam(params, "action", { required: true });
|
|
30555
|
+
assertUserAuthorization(action, params);
|
|
30524
30556
|
if (action === "restart") {
|
|
30525
30557
|
if (!isRestartEnabled(opts?.config)) throw new Error("Gateway restart is disabled (commands.restart=false).");
|
|
30526
30558
|
const sessionKey = typeof params.sessionKey === "string" && params.sessionKey.trim() ? params.sessionKey.trim() : opts?.agentSessionKey?.trim() || void 0;
|
|
@@ -39502,6 +39534,38 @@ function setCliSessionId(entry, provider, sessionId) {
|
|
|
39502
39534
|
//#endregion
|
|
39503
39535
|
//#region src/config/model-profiles-builtin.ts
|
|
39504
39536
|
/**
|
|
39537
|
+
* Shared safety + output-style additions applied to most built-in profiles
|
|
39538
|
+
* and the Generic fallback. These rules came from a long history of
|
|
39539
|
+
* model-specific bugs (verification-monologue padding, "I have addressed"
|
|
39540
|
+
* preambles, post-answer assessment lists). Keeping them in one place
|
|
39541
|
+
* means a new profile inherits sane defaults instead of starting empty.
|
|
39542
|
+
*
|
|
39543
|
+
* Stage 2.4 of the prompt-reduction plan: rules that ALL profiles need
|
|
39544
|
+
* live here; profile-specific rules (control-token stripping, tool-arg
|
|
39545
|
+
* cleanup, reasoning hints) live in their own per-profile additions.
|
|
39546
|
+
*
|
|
39547
|
+
* Exported so resolve-model-profile.ts can apply the same additions to
|
|
39548
|
+
* the Generic fallback profile — no model resolves to "Generic" without
|
|
39549
|
+
* inheriting the safety/style rules.
|
|
39550
|
+
*/
|
|
39551
|
+
const SAFETY_AND_STYLE_ADDITIONS = [
|
|
39552
|
+
"CRITICAL OUTPUT RULES:",
|
|
39553
|
+
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
39554
|
+
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
39555
|
+
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
39556
|
+
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
39557
|
+
"- If you need to verify your work, do so before writing your response, not after.",
|
|
39558
|
+
"- Send brief progress updates on long tasks so the user knows you are active."
|
|
39559
|
+
];
|
|
39560
|
+
/** Hint for native-reasoning models (Nemotron, Qwen 3.5/3.6) to keep
|
|
39561
|
+
* planning internal. Not applied to Gemma/Ollama because those models
|
|
39562
|
+
* don't have structured thinking and the rule confuses them. */
|
|
39563
|
+
const REASONING_DISCIPLINE_ADDITION = "- Keep planning and reasoning internal. Only speak when you have a result or need user input.";
|
|
39564
|
+
/** Hint for models that leak Gemma-style control tokens (Gemma family,
|
|
39565
|
+
* Ollama hosting any uncensored open model). Forces tool-arg cleanup and
|
|
39566
|
+
* forbids leaking turn markers in user-visible text. */
|
|
39567
|
+
const CONTROL_TOKEN_ADDITIONS = ["- Do not output raw control tokens, channel tags, or turn markers.", "- 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."];
|
|
39568
|
+
/**
|
|
39505
39569
|
* Built-in model profiles. Ordered from most-specific to least-specific so
|
|
39506
39570
|
* that `resolveModelProfile` can return the first match.
|
|
39507
39571
|
*
|
|
@@ -39535,17 +39599,7 @@ const BUILTIN_PROFILES = [
|
|
|
39535
39599
|
hasStructuredThinking: false,
|
|
39536
39600
|
validateToolArgs: true
|
|
39537
39601
|
},
|
|
39538
|
-
promptAdditions: [
|
|
39539
|
-
"CRITICAL OUTPUT RULES:",
|
|
39540
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
39541
|
-
"- Do not output raw control tokens, channel tags, or turn markers.",
|
|
39542
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
39543
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
39544
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
39545
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
39546
|
-
"- Send brief progress updates on long tasks so the user knows you are active.",
|
|
39547
|
-
"- 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."
|
|
39548
|
-
],
|
|
39602
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, ...CONTROL_TOKEN_ADDITIONS],
|
|
39549
39603
|
ui: {
|
|
39550
39604
|
badge: "Local",
|
|
39551
39605
|
watchdogMs: 9e5,
|
|
@@ -39572,16 +39626,7 @@ const BUILTIN_PROFILES = [
|
|
|
39572
39626
|
hasStructuredThinking: true,
|
|
39573
39627
|
validateToolArgs: false
|
|
39574
39628
|
},
|
|
39575
|
-
promptAdditions: [
|
|
39576
|
-
"CRITICAL OUTPUT RULES:",
|
|
39577
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
39578
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
39579
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
39580
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
39581
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
39582
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
39583
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
39584
|
-
],
|
|
39629
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
39585
39630
|
ui: {
|
|
39586
39631
|
badge: "Local",
|
|
39587
39632
|
watchdogMs: 9e5,
|
|
@@ -39607,7 +39652,7 @@ const BUILTIN_PROFILES = [
|
|
|
39607
39652
|
hasStructuredThinking: true,
|
|
39608
39653
|
validateToolArgs: false
|
|
39609
39654
|
},
|
|
39610
|
-
promptAdditions: [],
|
|
39655
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS],
|
|
39611
39656
|
ui: {
|
|
39612
39657
|
badge: "API",
|
|
39613
39658
|
watchdogMs: 3e5,
|
|
@@ -39640,15 +39685,7 @@ const BUILTIN_PROFILES = [
|
|
|
39640
39685
|
hasStructuredThinking: true,
|
|
39641
39686
|
validateToolArgs: false
|
|
39642
39687
|
},
|
|
39643
|
-
promptAdditions: [
|
|
39644
|
-
"CRITICAL OUTPUT RULES:",
|
|
39645
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
39646
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
39647
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
39648
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
39649
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
39650
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
39651
|
-
],
|
|
39688
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
39652
39689
|
ui: {
|
|
39653
39690
|
badge: "Spider",
|
|
39654
39691
|
watchdogMs: 9e5,
|
|
@@ -39681,16 +39718,7 @@ const BUILTIN_PROFILES = [
|
|
|
39681
39718
|
hasStructuredThinking: false,
|
|
39682
39719
|
validateToolArgs: true
|
|
39683
39720
|
},
|
|
39684
|
-
promptAdditions: [
|
|
39685
|
-
"CRITICAL OUTPUT RULES:",
|
|
39686
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
39687
|
-
"- Do not output raw control tokens, channel tags, or turn markers.",
|
|
39688
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
39689
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
39690
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
39691
|
-
"- Send brief progress updates on long tasks so the user knows you are active.",
|
|
39692
|
-
"- 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."
|
|
39693
|
-
],
|
|
39721
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, ...CONTROL_TOKEN_ADDITIONS],
|
|
39694
39722
|
ui: {
|
|
39695
39723
|
badge: "Spider",
|
|
39696
39724
|
watchdogMs: 6e5,
|
|
@@ -39722,16 +39750,7 @@ const BUILTIN_PROFILES = [
|
|
|
39722
39750
|
hasStructuredThinking: true,
|
|
39723
39751
|
validateToolArgs: false
|
|
39724
39752
|
},
|
|
39725
|
-
promptAdditions: [
|
|
39726
|
-
"CRITICAL OUTPUT RULES:",
|
|
39727
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
39728
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
39729
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
39730
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
39731
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
39732
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
39733
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
39734
|
-
],
|
|
39753
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
39735
39754
|
ui: {
|
|
39736
39755
|
badge: "CoreWeave",
|
|
39737
39756
|
watchdogMs: 9e5,
|
|
@@ -39742,7 +39761,15 @@ const BUILTIN_PROFILES = [
|
|
|
39742
39761
|
|
|
39743
39762
|
//#endregion
|
|
39744
39763
|
//#region src/config/resolve-model-profile.ts
|
|
39745
|
-
/**
|
|
39764
|
+
/**
|
|
39765
|
+
* Default profile returned when no match is found.
|
|
39766
|
+
*
|
|
39767
|
+
* Stage 2.4 of the prompt-reduction plan: the Generic fallback now ships
|
|
39768
|
+
* the same safety+style additions as every named profile, so newly-added
|
|
39769
|
+
* models without a profile entry inherit sane defaults instead of
|
|
39770
|
+
* starting empty (which would silently regress safety rules until someone
|
|
39771
|
+
* notices and adds a profile).
|
|
39772
|
+
*/
|
|
39746
39773
|
const FALLBACK_PROFILE = {
|
|
39747
39774
|
match: "*",
|
|
39748
39775
|
label: "Generic",
|
|
@@ -39761,7 +39788,7 @@ const FALLBACK_PROFILE = {
|
|
|
39761
39788
|
hasStructuredThinking: false,
|
|
39762
39789
|
validateToolArgs: false
|
|
39763
39790
|
},
|
|
39764
|
-
promptAdditions: [],
|
|
39791
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS],
|
|
39765
39792
|
ui: {
|
|
39766
39793
|
watchdogMs: 3e5,
|
|
39767
39794
|
armWatchdogOnSend: true
|
|
@@ -46347,10 +46374,90 @@ async function prepareSessionManagerForRun(params) {
|
|
|
46347
46374
|
}
|
|
46348
46375
|
}
|
|
46349
46376
|
|
|
46377
|
+
//#endregion
|
|
46378
|
+
//#region src/agents/system-prompt-skills-autoload.ts
|
|
46379
|
+
const FRONTMATTER_RE = /^---\s*\n[\s\S]*?\n---\s*\n?/;
|
|
46380
|
+
let cachedPackageRoot;
|
|
46381
|
+
function getPackageRoot() {
|
|
46382
|
+
if (cachedPackageRoot === void 0) cachedPackageRoot = resolveSymiPackageRootSync({});
|
|
46383
|
+
return cachedPackageRoot;
|
|
46384
|
+
}
|
|
46385
|
+
function safeSkillName(name) {
|
|
46386
|
+
return /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/.test(name);
|
|
46387
|
+
}
|
|
46388
|
+
function tryLoadSkill(skillName, root) {
|
|
46389
|
+
const skillPath = path.join(root, "skills", skillName, "SKILL.md");
|
|
46390
|
+
try {
|
|
46391
|
+
if (!fs.statSync(skillPath).isFile()) return null;
|
|
46392
|
+
} catch {
|
|
46393
|
+
return null;
|
|
46394
|
+
}
|
|
46395
|
+
try {
|
|
46396
|
+
return fs.readFileSync(skillPath, "utf8");
|
|
46397
|
+
} catch {
|
|
46398
|
+
return null;
|
|
46399
|
+
}
|
|
46400
|
+
}
|
|
46401
|
+
function stripFrontmatter(body) {
|
|
46402
|
+
return body.replace(FRONTMATTER_RE, "").trimStart();
|
|
46403
|
+
}
|
|
46404
|
+
/**
|
|
46405
|
+
* Resolves and loads each named skill. Returns the inlinable Markdown block,
|
|
46406
|
+
* or empty string when no skills loaded / minimal mode / no names supplied.
|
|
46407
|
+
*/
|
|
46408
|
+
function buildAutoLoadedSkillsBlock(opts) {
|
|
46409
|
+
if (opts.minimalMode) return "";
|
|
46410
|
+
const names = opts.skillNames.filter((n) => typeof n === "string" && n.trim().length > 0);
|
|
46411
|
+
if (names.length === 0) return "";
|
|
46412
|
+
const packageRoot = getPackageRoot();
|
|
46413
|
+
const loaded = [];
|
|
46414
|
+
for (const rawName of names) {
|
|
46415
|
+
const name = rawName.trim();
|
|
46416
|
+
if (!safeSkillName(name)) {
|
|
46417
|
+
logWarn(`autoLoadInline: skipping invalid skill name '${rawName}'`);
|
|
46418
|
+
continue;
|
|
46419
|
+
}
|
|
46420
|
+
let body = null;
|
|
46421
|
+
let source = "bundled";
|
|
46422
|
+
if (opts.workspaceDir) {
|
|
46423
|
+
body = tryLoadSkill(name, opts.workspaceDir);
|
|
46424
|
+
source = "workspace";
|
|
46425
|
+
}
|
|
46426
|
+
if (body === null && packageRoot) {
|
|
46427
|
+
body = tryLoadSkill(name, packageRoot);
|
|
46428
|
+
source = "bundled";
|
|
46429
|
+
}
|
|
46430
|
+
if (body === null) {
|
|
46431
|
+
logWarn(`autoLoadInline: skill '${name}' not found in workspace or bundled skills`);
|
|
46432
|
+
continue;
|
|
46433
|
+
}
|
|
46434
|
+
const stripped = stripFrontmatter(body).trim();
|
|
46435
|
+
if (!stripped) {
|
|
46436
|
+
logWarn(`autoLoadInline: skill '${name}' has empty body after frontmatter strip; skipping`);
|
|
46437
|
+
continue;
|
|
46438
|
+
}
|
|
46439
|
+
loaded.push({
|
|
46440
|
+
name,
|
|
46441
|
+
body: stripped,
|
|
46442
|
+
source
|
|
46443
|
+
});
|
|
46444
|
+
}
|
|
46445
|
+
if (loaded.length === 0) return "";
|
|
46446
|
+
return [
|
|
46447
|
+
"",
|
|
46448
|
+
"---",
|
|
46449
|
+
"",
|
|
46450
|
+
"## Auto-loaded Skills",
|
|
46451
|
+
"",
|
|
46452
|
+
loaded.map((skill) => `<!-- auto-loaded: ${skill.name} (${skill.source}) -->\n${skill.body}`).join("\n\n---\n\n"),
|
|
46453
|
+
""
|
|
46454
|
+
].join("\n");
|
|
46455
|
+
}
|
|
46456
|
+
|
|
46350
46457
|
//#endregion
|
|
46351
46458
|
//#region src/agents/pi-embedded-runner/system-prompt.ts
|
|
46352
46459
|
function buildEmbeddedSystemPrompt(params) {
|
|
46353
|
-
|
|
46460
|
+
const corePrompt = buildAgentSystemPrompt({
|
|
46354
46461
|
workspaceDir: params.workspaceDir,
|
|
46355
46462
|
defaultThinkLevel: params.defaultThinkLevel,
|
|
46356
46463
|
reasoningLevel: params.reasoningLevel,
|
|
@@ -46378,6 +46485,14 @@ function buildEmbeddedSystemPrompt(params) {
|
|
|
46378
46485
|
contextFiles: params.contextFiles,
|
|
46379
46486
|
memoryCitationsMode: params.memoryCitationsMode
|
|
46380
46487
|
});
|
|
46488
|
+
const promptMode = params.promptMode ?? "full";
|
|
46489
|
+
const isMinimal = promptMode === "minimal" || promptMode === "none";
|
|
46490
|
+
const skillsBlock = buildAutoLoadedSkillsBlock({
|
|
46491
|
+
skillNames: params.autoLoadInlineSkills ?? [],
|
|
46492
|
+
workspaceDir: params.workspaceDir,
|
|
46493
|
+
minimalMode: isMinimal
|
|
46494
|
+
});
|
|
46495
|
+
return skillsBlock ? `${corePrompt}${skillsBlock}` : corePrompt;
|
|
46381
46496
|
}
|
|
46382
46497
|
function createSystemPromptOverride(systemPrompt) {
|
|
46383
46498
|
const override = systemPrompt.trim();
|
|
@@ -47165,7 +47280,8 @@ async function runEmbeddedAttempt(params) {
|
|
|
47165
47280
|
userTime,
|
|
47166
47281
|
userTimeFormat,
|
|
47167
47282
|
contextFiles,
|
|
47168
|
-
memoryCitationsMode: params.config?.memory?.citations
|
|
47283
|
+
memoryCitationsMode: params.config?.memory?.citations,
|
|
47284
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline
|
|
47169
47285
|
});
|
|
47170
47286
|
const systemPromptReport = buildSystemPromptReport({
|
|
47171
47287
|
source: "run",
|
|
@@ -51648,7 +51764,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
51648
51764
|
return;
|
|
51649
51765
|
}
|
|
51650
51766
|
try {
|
|
51651
|
-
const { deliverOutboundPayloads } = await import("./deliver
|
|
51767
|
+
const { deliverOutboundPayloads } = await import("./deliver--ff__Iq0.js").then((n) => n.n);
|
|
51652
51768
|
await deliverOutboundPayloads({
|
|
51653
51769
|
cfg: params.cfg,
|
|
51654
51770
|
channel,
|
|
@@ -55094,7 +55210,7 @@ async function describeStickerImage(params) {
|
|
|
55094
55210
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
55095
55211
|
try {
|
|
55096
55212
|
const buffer = await fs$1.readFile(imagePath);
|
|
55097
|
-
const { describeImageWithModel } = await import("./image-
|
|
55213
|
+
const { describeImageWithModel } = await import("./image-D5bsPk2_.js").then((n) => n.n);
|
|
55098
55214
|
return (await describeImageWithModel({
|
|
55099
55215
|
buffer,
|
|
55100
55216
|
fileName: "sticker.webp",
|
|
@@ -55517,7 +55633,7 @@ function createWhatsAppLoginTool() {
|
|
|
55517
55633
|
force: Type.Optional(Type.Boolean())
|
|
55518
55634
|
}),
|
|
55519
55635
|
execute: async (_toolCallId, args) => {
|
|
55520
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
55636
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-BBrzemk7.js");
|
|
55521
55637
|
if ((args?.action ?? "start") === "wait") {
|
|
55522
55638
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
55523
55639
|
return {
|
|
@@ -57843,7 +57959,7 @@ async function preflightDiscordMessage(params) {
|
|
|
57843
57959
|
let preflightTranscript;
|
|
57844
57960
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
57845
57961
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
57846
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
57962
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-CMutcMs5.js");
|
|
57847
57963
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
57848
57964
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
57849
57965
|
ctx: {
|
|
@@ -61626,27 +61742,27 @@ function isVoiceChannelType(type) {
|
|
|
61626
61742
|
function createDefaultDeps() {
|
|
61627
61743
|
return {
|
|
61628
61744
|
sendMessageWhatsApp: async (...args) => {
|
|
61629
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
61745
|
+
const { sendMessageWhatsApp } = await import("./web-B8GaP73t.js");
|
|
61630
61746
|
return await sendMessageWhatsApp(...args);
|
|
61631
61747
|
},
|
|
61632
61748
|
sendMessageTelegram: async (...args) => {
|
|
61633
|
-
const { sendMessageTelegram } = await import("./send-
|
|
61749
|
+
const { sendMessageTelegram } = await import("./send-_CmB6CKB.js").then((n) => n.l);
|
|
61634
61750
|
return await sendMessageTelegram(...args);
|
|
61635
61751
|
},
|
|
61636
61752
|
sendMessageDiscord: async (...args) => {
|
|
61637
|
-
const { sendMessageDiscord } = await import("./send-
|
|
61753
|
+
const { sendMessageDiscord } = await import("./send-CfejAK2u.js").then((n) => n.t);
|
|
61638
61754
|
return await sendMessageDiscord(...args);
|
|
61639
61755
|
},
|
|
61640
61756
|
sendMessageSlack: async (...args) => {
|
|
61641
|
-
const { sendMessageSlack } = await import("./send-
|
|
61757
|
+
const { sendMessageSlack } = await import("./send-vmIzYMwN.js").then((n) => n.n);
|
|
61642
61758
|
return await sendMessageSlack(...args);
|
|
61643
61759
|
},
|
|
61644
61760
|
sendMessageSignal: async (...args) => {
|
|
61645
|
-
const { sendMessageSignal } = await import("./send-
|
|
61761
|
+
const { sendMessageSignal } = await import("./send-dohExhb8.js").then((n) => n.i);
|
|
61646
61762
|
return await sendMessageSignal(...args);
|
|
61647
61763
|
},
|
|
61648
61764
|
sendMessageIMessage: async (...args) => {
|
|
61649
|
-
const { sendMessageIMessage } = await import("./send-
|
|
61765
|
+
const { sendMessageIMessage } = await import("./send-C6-rN_Li.js").then((n) => n.n);
|
|
61650
61766
|
return await sendMessageIMessage(...args);
|
|
61651
61767
|
}
|
|
61652
61768
|
};
|
|
@@ -72476,7 +72592,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
72476
72592
|
});
|
|
72477
72593
|
const deliverSlashPayloads = async (replies) => {
|
|
72478
72594
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
72479
|
-
import("./replies-
|
|
72595
|
+
import("./replies-BV7oFP7Z.js").then((n) => n.r),
|
|
72480
72596
|
import("./chunk-Bk95VMr4.js").then((n) => n.s),
|
|
72481
72597
|
import("./markdown-tables-XmEPv2t0.js").then((n) => n.t)
|
|
72482
72598
|
]);
|
|
@@ -74749,7 +74865,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
74749
74865
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
74750
74866
|
let preflightTranscript;
|
|
74751
74867
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
74752
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
74868
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-CMutcMs5.js");
|
|
74753
74869
|
preflightTranscript = await transcribeFirstAudio({
|
|
74754
74870
|
ctx: {
|
|
74755
74871
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -76894,23 +77010,23 @@ let webLoginQrPromise = null;
|
|
|
76894
77010
|
let webChannelPromise = null;
|
|
76895
77011
|
let whatsappActionsPromise = null;
|
|
76896
77012
|
function loadWebOutbound() {
|
|
76897
|
-
webOutboundPromise ??= import("./outbound-
|
|
77013
|
+
webOutboundPromise ??= import("./outbound-CLCy4Nsg.js").then((n) => n.t);
|
|
76898
77014
|
return webOutboundPromise;
|
|
76899
77015
|
}
|
|
76900
77016
|
function loadWebLogin() {
|
|
76901
|
-
webLoginPromise ??= import("./login-
|
|
77017
|
+
webLoginPromise ??= import("./login-B7OJui4y.js").then((n) => n.n);
|
|
76902
77018
|
return webLoginPromise;
|
|
76903
77019
|
}
|
|
76904
77020
|
function loadWebLoginQr() {
|
|
76905
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
77021
|
+
webLoginQrPromise ??= import("./login-qr-BBrzemk7.js");
|
|
76906
77022
|
return webLoginQrPromise;
|
|
76907
77023
|
}
|
|
76908
77024
|
function loadWebChannel() {
|
|
76909
|
-
webChannelPromise ??= import("./web-
|
|
77025
|
+
webChannelPromise ??= import("./web-B8GaP73t.js");
|
|
76910
77026
|
return webChannelPromise;
|
|
76911
77027
|
}
|
|
76912
77028
|
function loadWhatsAppActions() {
|
|
76913
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
77029
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-BV4mjN5j.js");
|
|
76914
77030
|
return whatsappActionsPromise;
|
|
76915
77031
|
}
|
|
76916
77032
|
function createPluginRuntime() {
|
|
@@ -78375,6 +78491,91 @@ function isToolAllowedByPolicies(name, policies) {
|
|
|
78375
78491
|
return policies.every((policy) => isToolAllowedByPolicyName(name, policy));
|
|
78376
78492
|
}
|
|
78377
78493
|
|
|
78494
|
+
//#endregion
|
|
78495
|
+
//#region src/agents/pi-tools.read-edit-guard.ts
|
|
78496
|
+
const RETRY_GUIDANCE_SUFFIX$1 = " Read the file first, then retry the edit.";
|
|
78497
|
+
function readGuardError(filePath) {
|
|
78498
|
+
return /* @__PURE__ */ new Error(`Edit refused: '${filePath}' has not been read in this session. The edit tool requires the agent to read the file first so oldText can match real content rather than hallucinated content.${RETRY_GUIDANCE_SUFFIX$1}`);
|
|
78499
|
+
}
|
|
78500
|
+
function extractPath(args) {
|
|
78501
|
+
if (!args || typeof args !== "object") return;
|
|
78502
|
+
const record = args;
|
|
78503
|
+
const candidate = record.path ?? record.file_path;
|
|
78504
|
+
if (typeof candidate !== "string") return;
|
|
78505
|
+
const trimmed = candidate.trim();
|
|
78506
|
+
return trimmed.length > 0 ? trimmed : void 0;
|
|
78507
|
+
}
|
|
78508
|
+
function wrapReadToolWithTracker(tool, tracker) {
|
|
78509
|
+
return {
|
|
78510
|
+
...tool,
|
|
78511
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
78512
|
+
const result = await tool.execute(toolCallId, args, signal, onUpdate);
|
|
78513
|
+
if (!(!!result && typeof result === "object" && result.isError === true)) {
|
|
78514
|
+
const filePath = extractPath(args);
|
|
78515
|
+
if (filePath) tracker.recordRead(filePath);
|
|
78516
|
+
}
|
|
78517
|
+
return result;
|
|
78518
|
+
}
|
|
78519
|
+
};
|
|
78520
|
+
}
|
|
78521
|
+
function wrapWriteToolWithTracker(tool, tracker) {
|
|
78522
|
+
return {
|
|
78523
|
+
...tool,
|
|
78524
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
78525
|
+
const result = await tool.execute(toolCallId, args, signal, onUpdate);
|
|
78526
|
+
if (!(!!result && typeof result === "object" && result.isError === true)) {
|
|
78527
|
+
const filePath = extractPath(args);
|
|
78528
|
+
if (filePath) tracker.recordWrite(filePath);
|
|
78529
|
+
}
|
|
78530
|
+
return result;
|
|
78531
|
+
}
|
|
78532
|
+
};
|
|
78533
|
+
}
|
|
78534
|
+
function wrapEditToolWithGuard(tool, tracker) {
|
|
78535
|
+
return {
|
|
78536
|
+
...tool,
|
|
78537
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
78538
|
+
const filePath = extractPath(args);
|
|
78539
|
+
if (filePath && !tracker.hasObserved(filePath)) throw readGuardError(filePath);
|
|
78540
|
+
return tool.execute(toolCallId, args, signal, onUpdate);
|
|
78541
|
+
}
|
|
78542
|
+
};
|
|
78543
|
+
}
|
|
78544
|
+
|
|
78545
|
+
//#endregion
|
|
78546
|
+
//#region src/agents/pi-tools.read-edit-tracker.ts
|
|
78547
|
+
function normalize(filePath, workspaceRoot) {
|
|
78548
|
+
if (!workspaceRoot) return filePath;
|
|
78549
|
+
if (path.isAbsolute(filePath)) return path.normalize(filePath);
|
|
78550
|
+
return path.resolve(workspaceRoot, filePath);
|
|
78551
|
+
}
|
|
78552
|
+
function createReadEditTracker(opts = {}) {
|
|
78553
|
+
const observed = /* @__PURE__ */ new Map();
|
|
78554
|
+
const record = (filePath, kind) => {
|
|
78555
|
+
if (typeof filePath !== "string" || !filePath.trim()) return;
|
|
78556
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
78557
|
+
const prior = observed.get(key);
|
|
78558
|
+
if (kind === "written" || prior !== "written") observed.set(key, kind);
|
|
78559
|
+
};
|
|
78560
|
+
return {
|
|
78561
|
+
recordRead: (filePath) => record(filePath, "read"),
|
|
78562
|
+
recordWrite: (filePath) => record(filePath, "written"),
|
|
78563
|
+
observation: (filePath) => {
|
|
78564
|
+
if (typeof filePath !== "string" || !filePath.trim()) return null;
|
|
78565
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
78566
|
+
return observed.get(key) ?? null;
|
|
78567
|
+
},
|
|
78568
|
+
hasObserved: (filePath) => {
|
|
78569
|
+
if (typeof filePath !== "string" || !filePath.trim()) return false;
|
|
78570
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
78571
|
+
return observed.has(key);
|
|
78572
|
+
},
|
|
78573
|
+
reset: () => {
|
|
78574
|
+
observed.clear();
|
|
78575
|
+
}
|
|
78576
|
+
};
|
|
78577
|
+
}
|
|
78578
|
+
|
|
78378
78579
|
//#endregion
|
|
78379
78580
|
//#region src/media/sniff-mime-from-base64.ts
|
|
78380
78581
|
async function sniffMimeFromBase64(base64) {
|
|
@@ -78700,6 +78901,22 @@ function wrapToolParamNormalization(tool, requiredParamGroups) {
|
|
|
78700
78901
|
}
|
|
78701
78902
|
};
|
|
78702
78903
|
}
|
|
78904
|
+
/**
|
|
78905
|
+
* Override a tool's description while preserving execute, parameters, and
|
|
78906
|
+
* other properties. Used by Stage 2.5 of the prompt-reduction plan to move
|
|
78907
|
+
* usage docs from the system prompt into tool descriptions where they
|
|
78908
|
+
* belong contextually.
|
|
78909
|
+
*
|
|
78910
|
+
* The replacement description should include the upstream's tool-purpose
|
|
78911
|
+
* sentence so models that only read the description (without the prompt
|
|
78912
|
+
* section) still have the same baseline understanding.
|
|
78913
|
+
*/
|
|
78914
|
+
function wrapToolWithDescriptionOverride(tool, description) {
|
|
78915
|
+
return {
|
|
78916
|
+
...tool,
|
|
78917
|
+
description
|
|
78918
|
+
};
|
|
78919
|
+
}
|
|
78703
78920
|
function wrapToolWorkspaceRootGuard(tool, root) {
|
|
78704
78921
|
return {
|
|
78705
78922
|
...tool,
|
|
@@ -78940,6 +79157,26 @@ function resolveToolLoopDetectionConfig(params) {
|
|
|
78940
79157
|
}
|
|
78941
79158
|
};
|
|
78942
79159
|
}
|
|
79160
|
+
/**
|
|
79161
|
+
* Edit tool description. Replaces the upstream's terse one-liner with
|
|
79162
|
+
* usage notes migrated from the system prompt's "Edit Tool Best Practices"
|
|
79163
|
+
* section in Stage 2.5 of the prompt-reduction plan. Co-locating these
|
|
79164
|
+
* notes with the tool means they ship only when edit is in palette, and
|
|
79165
|
+
* the system prompt section can be deleted in Stage 4 without losing the
|
|
79166
|
+
* guidance.
|
|
79167
|
+
*
|
|
79168
|
+
* Combined with the read-before-edit guard (Stage 1.3) and the model's
|
|
79169
|
+
* own discipline, this should kill the hallucinated-oldText failure class
|
|
79170
|
+
* for any well-intentioned model.
|
|
79171
|
+
*/
|
|
79172
|
+
const EDIT_TOOL_DESCRIPTION = [
|
|
79173
|
+
"Edit a file by replacing exact text. The oldText must match the file EXACTLY (whitespace, indentation, and all).",
|
|
79174
|
+
"Best practices to avoid match failures:",
|
|
79175
|
+
"- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
|
|
79176
|
+
"- ALWAYS read the file first, then copy the exact text from the read output for oldText. The read-before-edit guard refuses edits to unread files.",
|
|
79177
|
+
"- If an edit fails with 'Could not find the exact text', re-read the file and retry with the exact text from the fresh read. Do NOT skip to a different issue.",
|
|
79178
|
+
"- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines)."
|
|
79179
|
+
].join(" ");
|
|
78943
79180
|
function createSymiCodingTools(options) {
|
|
78944
79181
|
const execToolName = "exec";
|
|
78945
79182
|
const sandbox = options?.sandbox?.enabled ? options.sandbox : void 0;
|
|
@@ -79002,33 +79239,34 @@ function createSymiCodingTools(options) {
|
|
|
79002
79239
|
});
|
|
79003
79240
|
if (sandboxRoot && !sandboxFsBridge) throw new Error("Sandbox filesystem bridge is unavailable.");
|
|
79004
79241
|
const imageSanitization = resolveImageSanitizationLimits(options?.config);
|
|
79242
|
+
const readEditTracker = createReadEditTracker({ workspaceRoot: sandboxRoot ?? workspaceRoot });
|
|
79005
79243
|
const base = codingTools.flatMap((tool) => {
|
|
79006
79244
|
if (tool.name === readTool.name) {
|
|
79007
79245
|
if (sandboxRoot) {
|
|
79008
|
-
const
|
|
79246
|
+
const tracked = wrapReadToolWithTracker(createSandboxedReadTool({
|
|
79009
79247
|
root: sandboxRoot,
|
|
79010
79248
|
bridge: sandboxFsBridge,
|
|
79011
79249
|
modelContextWindowTokens: options?.modelContextWindowTokens,
|
|
79012
79250
|
imageSanitization
|
|
79013
|
-
});
|
|
79014
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
79251
|
+
}), readEditTracker);
|
|
79252
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, sandboxRoot) : tracked];
|
|
79015
79253
|
}
|
|
79016
|
-
const
|
|
79254
|
+
const tracked = wrapReadToolWithTracker(createSymiReadTool(createReadTool(workspaceRoot), {
|
|
79017
79255
|
modelContextWindowTokens: options?.modelContextWindowTokens,
|
|
79018
79256
|
imageSanitization
|
|
79019
|
-
});
|
|
79020
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
79257
|
+
}), readEditTracker);
|
|
79258
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, workspaceRoot) : tracked];
|
|
79021
79259
|
}
|
|
79022
79260
|
if (tool.name === "bash" || tool.name === execToolName) return [];
|
|
79023
79261
|
if (tool.name === "write") {
|
|
79024
79262
|
if (sandboxRoot) return [];
|
|
79025
|
-
const
|
|
79026
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
79263
|
+
const tracked = wrapWriteToolWithTracker(wrapToolParamNormalization(createWriteTool(workspaceRoot), CLAUDE_PARAM_GROUPS.write), readEditTracker);
|
|
79264
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, workspaceRoot) : tracked];
|
|
79027
79265
|
}
|
|
79028
79266
|
if (tool.name === "edit") {
|
|
79029
79267
|
if (sandboxRoot) return [];
|
|
79030
|
-
const
|
|
79031
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
79268
|
+
const guarded = wrapEditToolWithGuard(wrapToolWithDescriptionOverride(wrapToolParamNormalization(createEditTool(workspaceRoot), CLAUDE_PARAM_GROUPS.edit), EDIT_TOOL_DESCRIPTION), readEditTracker);
|
|
79269
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(guarded, workspaceRoot) : guarded];
|
|
79032
79270
|
}
|
|
79033
79271
|
return [tool];
|
|
79034
79272
|
});
|
|
@@ -79071,22 +79309,18 @@ function createSymiCodingTools(options) {
|
|
|
79071
79309
|
} : void 0,
|
|
79072
79310
|
workspaceOnly: applyPatchWorkspaceOnly
|
|
79073
79311
|
});
|
|
79312
|
+
const sandboxedEditTool = sandboxRoot ? wrapEditToolWithGuard(createSandboxedEditTool({
|
|
79313
|
+
root: sandboxRoot,
|
|
79314
|
+
bridge: sandboxFsBridge
|
|
79315
|
+
}), readEditTracker) : null;
|
|
79316
|
+
const sandboxedWriteTool = sandboxRoot ? wrapWriteToolWithTracker(createSandboxedWriteTool({
|
|
79317
|
+
root: sandboxRoot,
|
|
79318
|
+
bridge: sandboxFsBridge
|
|
79319
|
+
}), readEditTracker) : null;
|
|
79074
79320
|
const withHooks = applyToolPolicyPipeline({
|
|
79075
79321
|
tools: applyOwnerOnlyToolPolicy([
|
|
79076
79322
|
...base,
|
|
79077
|
-
...sandboxRoot ? allowWorkspaceWrites ? [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
79078
|
-
root: sandboxRoot,
|
|
79079
|
-
bridge: sandboxFsBridge
|
|
79080
|
-
}), sandboxRoot) : createSandboxedEditTool({
|
|
79081
|
-
root: sandboxRoot,
|
|
79082
|
-
bridge: sandboxFsBridge
|
|
79083
|
-
}), workspaceOnly ? wrapToolWorkspaceRootGuard(createSandboxedWriteTool({
|
|
79084
|
-
root: sandboxRoot,
|
|
79085
|
-
bridge: sandboxFsBridge
|
|
79086
|
-
}), sandboxRoot) : createSandboxedWriteTool({
|
|
79087
|
-
root: sandboxRoot,
|
|
79088
|
-
bridge: sandboxFsBridge
|
|
79089
|
-
})] : [] : [],
|
|
79323
|
+
...sandboxRoot ? allowWorkspaceWrites && sandboxedEditTool && sandboxedWriteTool ? [workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedEditTool, sandboxRoot) : sandboxedEditTool, workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedWriteTool, sandboxRoot) : sandboxedWriteTool] : [] : [],
|
|
79090
79324
|
...applyPatchTool ? [applyPatchTool] : [],
|
|
79091
79325
|
execTool,
|
|
79092
79326
|
processTool,
|
|
@@ -79474,7 +79708,8 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
79474
79708
|
userTime,
|
|
79475
79709
|
userTimeFormat,
|
|
79476
79710
|
contextFiles,
|
|
79477
|
-
memoryCitationsMode: params.config?.memory?.citations
|
|
79711
|
+
memoryCitationsMode: params.config?.memory?.citations,
|
|
79712
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline
|
|
79478
79713
|
}));
|
|
79479
79714
|
const sessionLock = await acquireSessionWriteLock({
|
|
79480
79715
|
sessionFile: params.sessionFile,
|