@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
|
@@ -3,7 +3,7 @@ import { $t as triggerInternalHook, A as normalizeChannelId, B as getPluginComma
|
|
|
3
3
|
import { A as buildConfiguredAllowlistKeys, At as resolveShellEnvFallbackTimeoutMs, Ct as resolveEnvApiKey, E as withFileLock, Et as normalizeSecretInput, F as modelKey, H as resolveDefaultModelForAgent, Ht as DEFAULT_MODEL, I as normalizeModelRef$2, K as resolveSubagentSpawnModelSelection, L as normalizeProviderId, M as findNormalizedProviderValue, Ot as getShellPathFromLoginShell, P as isCliProvider, T as resolveSymiAgentDir, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS, W as resolveModelRefFromString, Wt as resolveAuthProfileDisplayLabel, _t as createOllamaStreamFn, a as markAuthProfileFailure, b as ensureAuthProfileStore, bt as requireApiKey, c as resolveApiKeyForProfile, g as markAuthProfileGood, gt as OLLAMA_NATIVE_BASE_URL, h as listProfilesForProvider, i as isProfileInCooldown, j as buildModelAliasIndex, k as buildAllowedModelSet, m as dedupeProfileIds, n as resolveAuthProfileOrder, o as markAuthProfileUsed, q as resolveThinkingDefault, r as getSoonestCooldownExpiry, vt as getApiKeyForModel, w as resolveAuthStorePathForDisplay, wt as resolveModelAuthMode, xt as resolveApiKeyForProvider, yt as getCustomProviderApiKey } from "./auth-profiles-BBniPGeS.js";
|
|
4
4
|
import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
|
|
5
5
|
import { C as resolveThreadParentSessionKey, S as parseAgentSessionKey, _ as getSubagentDepth, b as isCronSessionKey, c as normalizeMainKey, d as sanitizeAgentId, h as normalizeAccountId$2, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, o as classifySessionKeyShape, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, u as resolveThreadSessionKeys, v as isAcpSessionKey, x as isSubagentSessionKey } from "./session-key-DjZ7Z1hW.js";
|
|
6
|
-
import { t as resolveSymiPackageRoot } from "./symi-root-BNuQ4lAT.js";
|
|
6
|
+
import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-BNuQ4lAT.js";
|
|
7
7
|
import { a as logError, i as logDebug, n as runExec, o as logInfo, r as spawnWithFallback, s as logWarn, t as runCommandWithTimeout } from "./exec-CBKBIMpA.js";
|
|
8
8
|
import { C as ensureAgentWorkspace, E as loadWorkspaceBootstrapFiles, a as resolveAgentModelFallbacksOverride, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, f as resolveSessionAgentIds, g as DEFAULT_IDENTITY_FILENAME, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, m as DEFAULT_AGENT_WORKSPACE_DIR, n as listAgentIds, o as resolveAgentModelPrimary, r as resolveAgentConfig, s as resolveAgentSkillsFilter, u as resolveEffectiveModelFallbacks, w as filterBootstrapFilesForSession } from "./agent-scope-D-jRCY0d.js";
|
|
9
9
|
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-DuFIqfeC.js";
|
|
@@ -14,29 +14,29 @@ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discov
|
|
|
14
14
|
import { r as isPathInsideWithRealpath } from "./scan-paths-ppKrtZ9U.js";
|
|
15
15
|
import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-D_oCiaQn.js";
|
|
16
16
|
import { a as safeStatSync, c as applyTestPluginDefaults, d as resolveEnableState, f as resolveMemorySlotDecision, h as isDangerousHostEnvVarName, i as isPathInside, n as loadPluginManifestRegistry, r as discoverSymiPlugins, u as normalizePluginsConfig } from "./manifest-registry-D5bnO5uA.js";
|
|
17
|
-
import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-
|
|
17
|
+
import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-DE6JXMtt.js";
|
|
18
18
|
import { Rt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-CJIMV1WD.js";
|
|
19
|
-
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-
|
|
19
|
+
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-X_vwo309.js";
|
|
20
20
|
import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-C9dERklz.js";
|
|
21
21
|
import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-D0lNkCf6.js";
|
|
22
|
-
import { A as DEFAULT_RESET_TRIGGERS, B as resolveGroupSessionKey, D as resolveSessionResetPolicy, E as resolveChannelResetConfig, F as resolveMainSessionKey, G as deliveryContextKey, J as normalizeSessionDeliveryFields, K as mergeDeliveryContext, L as deriveSessionMetaPatch, O as resolveSessionResetType, P as resolveExplicitAgentSessionKey, T as evaluateSessionFreshness, U as resolveSessionLockMaxHoldFromTimeout, V as acquireSessionWriteLock, W as deliveryContextFromSession, Y as normalizeAccountId$3, _ as capArrayByJsonBytes, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as archiveSessionTranscripts, j as resolveFreshSessionTotalTokens, k as resolveThreadFlag, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as normalizeDeliveryContext, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, w as resolveSessionKey } from "./sessions-
|
|
22
|
+
import { A as DEFAULT_RESET_TRIGGERS, B as resolveGroupSessionKey, D as resolveSessionResetPolicy, E as resolveChannelResetConfig, F as resolveMainSessionKey, G as deliveryContextKey, J as normalizeSessionDeliveryFields, K as mergeDeliveryContext, L as deriveSessionMetaPatch, O as resolveSessionResetType, P as resolveExplicitAgentSessionKey, T as evaluateSessionFreshness, U as resolveSessionLockMaxHoldFromTimeout, V as acquireSessionWriteLock, W as deliveryContextFromSession, Y as normalizeAccountId$3, _ as capArrayByJsonBytes, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as archiveSessionTranscripts, j as resolveFreshSessionTotalTokens, k as resolveThreadFlag, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as normalizeDeliveryContext, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, w as resolveSessionKey } from "./sessions-DCr5nAOw.js";
|
|
23
23
|
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-Csntmwwn.js";
|
|
24
24
|
import { _ as listEnabledDiscordAccounts, a as isWhatsAppGroupJid, c as listEnabledTelegramAccounts, d as resolveTelegramToken, f as resolveSlackAccount, g as createDiscordActionGate, h as resolveSlackBotToken, l as listTelegramAccountIds, m as resolveSlackAppToken, n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId$1, s as createTelegramActionGate, t as getChannelPlugin, u as resolveTelegramAccount, v as resolveDiscordAccount, y as normalizeDiscordToken } from "./plugins-CwSlLxM8.js";
|
|
25
25
|
import { a as logWebSelfId, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, u as readWebSelfId } from "./accounts-D9ITgITj.js";
|
|
26
26
|
import { t as normalizeChatType } from "./chat-type-CeFzWU-6.js";
|
|
27
|
-
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-
|
|
28
|
-
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-
|
|
29
|
-
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-
|
|
30
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-
|
|
27
|
+
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-CoSPwGiI.js";
|
|
28
|
+
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-CcD9S5so.js";
|
|
29
|
+
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-C1vsg3IF.js";
|
|
30
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-CeNdvQJ3.js";
|
|
31
31
|
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-Ci8Xsc_Y.js";
|
|
32
32
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-CIjIGxEE.js";
|
|
33
33
|
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-D1eLj5t8.js";
|
|
34
|
-
import { A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as parseTelegramTarget, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-
|
|
34
|
+
import { A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as parseTelegramTarget, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-Bi8XhwOZ.js";
|
|
35
35
|
import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-CUkaZz2F.js";
|
|
36
|
-
import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-
|
|
37
|
-
import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-
|
|
38
|
-
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-
|
|
39
|
-
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-
|
|
36
|
+
import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-BgpogTwt.js";
|
|
37
|
+
import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-T9SO3y3b.js";
|
|
38
|
+
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-faqXQ9f1.js";
|
|
39
|
+
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-BkYSrDni.js";
|
|
40
40
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-Ba_ROWsq.js";
|
|
41
41
|
import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-OWKu4tXF.js";
|
|
42
42
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-Ixuyn7h8.js";
|
|
@@ -48,10 +48,10 @@ import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveS
|
|
|
48
48
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-D5O01TlD.js";
|
|
49
49
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-CVLISeRT.js";
|
|
50
50
|
import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-8sKPnzpp.js";
|
|
51
|
-
import { t as ensureSymiModelsJson } from "./models-config-
|
|
51
|
+
import { t as ensureSymiModelsJson } from "./models-config-CHVfeRDR.js";
|
|
52
52
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BUN71nd5.js";
|
|
53
|
-
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-
|
|
54
|
-
import { a as resolveMemorySearchConfig, t as MemoryIndexManager } from "./manager-
|
|
53
|
+
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-BmWvHCEJ.js";
|
|
54
|
+
import { a as resolveMemorySearchConfig, t as MemoryIndexManager } from "./manager-8N1YbbDk.js";
|
|
55
55
|
import { f as runTasksWithConcurrency } from "./internal-C2jxeHS9.js";
|
|
56
56
|
import { n as retryAsync } from "./retry-C4Q_VPOo.js";
|
|
57
57
|
import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-Co0LcWKH.js";
|
|
@@ -63,13 +63,13 @@ import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMedia
|
|
|
63
63
|
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-BRlF7czi.js";
|
|
64
64
|
import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-Ee-evDmm.js";
|
|
65
65
|
import { a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, i as listChatCommands, l as parseCommandArgs, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices } from "./commands-registry-CsxsFveo.js";
|
|
66
|
-
import { _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, y as stripReasoningTagsFromText } from "./image-
|
|
66
|
+
import { _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, y as stripReasoningTagsFromText } from "./image-Cp6qRPZ2.js";
|
|
67
67
|
import { n as resolveToolDisplay } from "./tool-display-I4rDxv8J.js";
|
|
68
68
|
import { n as formatTimeAgo } from "./format-relative-BDwAggS5.js";
|
|
69
69
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-DZozDZN-.js";
|
|
70
|
-
import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-
|
|
71
|
-
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-
|
|
72
|
-
import { a as loadCombinedSessionStoreForGateway, u as lookupContextTokens } from "./session-utils-
|
|
70
|
+
import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-CiThXXY3.js";
|
|
71
|
+
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-FckJ4pcL.js";
|
|
72
|
+
import { a as loadCombinedSessionStoreForGateway, u as lookupContextTokens } from "./session-utils-DQ-t0PxQ.js";
|
|
73
73
|
import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, x as getSkillsSnapshotVersion } from "./skill-commands-DrX4xCNq.js";
|
|
74
74
|
import { i as readChannelAllowFromStore, l as listPairingChannels, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-B2viSnRj.js";
|
|
75
75
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-Bsts3MRD.js";
|
|
@@ -83,19 +83,19 @@ import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChan
|
|
|
83
83
|
import { n as normalizePollInput } from "./polls-Cm1-n4jF.js";
|
|
84
84
|
import { t as convertMarkdownTables } from "./tables-DL_wkymg.js";
|
|
85
85
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-l9TQg-aP.js";
|
|
86
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
86
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-B5HVCnUI.js";
|
|
87
87
|
import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BDqsqTKI.js";
|
|
88
88
|
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-CmPVNjnf.js";
|
|
89
|
-
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-
|
|
90
|
-
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-
|
|
89
|
+
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-CSkNKYIc.js";
|
|
90
|
+
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-CupfdYEg.js";
|
|
91
91
|
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BFA2RukR.js";
|
|
92
92
|
import { t as parseTimeoutMs } from "./parse-timeout-FUO1ff14.js";
|
|
93
93
|
import { t as makeProxyFetch } from "./proxy-GY5xhMp0.js";
|
|
94
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
95
|
-
import { r as detectBinary } from "./onboard-helpers-
|
|
94
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-BxvfG7Oj.js";
|
|
95
|
+
import { r as detectBinary } from "./onboard-helpers-CNFdWQIV.js";
|
|
96
96
|
import { t as resolvePairingIdLabel } from "./pairing-labels-BHx_CdbP.js";
|
|
97
97
|
import { t as getActiveWebListener } from "./active-listener-DEi7sEFa.js";
|
|
98
|
-
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-
|
|
98
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-GxaAKOgf.js";
|
|
99
99
|
import { createRequire } from "node:module";
|
|
100
100
|
import { execFileSync, spawn, spawnSync } from "node:child_process";
|
|
101
101
|
import os, { homedir } from "node:os";
|
|
@@ -4957,16 +4957,16 @@ function shouldComputeCommandAuthorized(text, cfg, options) {
|
|
|
4957
4957
|
|
|
4958
4958
|
//#endregion
|
|
4959
4959
|
//#region src/channels/sender-label.ts
|
|
4960
|
-
function normalize(value) {
|
|
4960
|
+
function normalize$1(value) {
|
|
4961
4961
|
const trimmed = value?.trim();
|
|
4962
4962
|
return trimmed ? trimmed : void 0;
|
|
4963
4963
|
}
|
|
4964
4964
|
function resolveSenderLabel(params) {
|
|
4965
|
-
const name = normalize(params.name);
|
|
4966
|
-
const username = normalize(params.username);
|
|
4967
|
-
const tag = normalize(params.tag);
|
|
4968
|
-
const e164 = normalize(params.e164);
|
|
4969
|
-
const id = normalize(params.id);
|
|
4965
|
+
const name = normalize$1(params.name);
|
|
4966
|
+
const username = normalize$1(params.username);
|
|
4967
|
+
const tag = normalize$1(params.tag);
|
|
4968
|
+
const e164 = normalize$1(params.e164);
|
|
4969
|
+
const id = normalize$1(params.id);
|
|
4970
4970
|
const display = name ?? username ?? tag ?? "";
|
|
4971
4971
|
const idPart = e164 ?? id ?? "";
|
|
4972
4972
|
if (display && idPart && display !== idPart) return `${display} (${idPart})`;
|
|
@@ -20470,7 +20470,7 @@ async function routeReply(params) {
|
|
|
20470
20470
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
20471
20471
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
20472
20472
|
try {
|
|
20473
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
20473
|
+
const { deliverOutboundPayloads } = await import("./deliver-CeNdvQJ3.js").then((n) => n.n);
|
|
20474
20474
|
return {
|
|
20475
20475
|
ok: true,
|
|
20476
20476
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -23720,8 +23720,39 @@ const GatewayToolSchema = Type.Object({
|
|
|
23720
23720
|
baseHash: Type.Optional(Type.String()),
|
|
23721
23721
|
sessionKey: Type.Optional(Type.String()),
|
|
23722
23722
|
note: Type.Optional(Type.String()),
|
|
23723
|
-
restartDelayMs: Type.Optional(Type.Number())
|
|
23723
|
+
restartDelayMs: Type.Optional(Type.Number()),
|
|
23724
|
+
userRequestAcknowledgment: Type.Optional(Type.String())
|
|
23724
23725
|
});
|
|
23726
|
+
/** Actions that mutate gateway state and require explicit user authorization. */
|
|
23727
|
+
const DESTRUCTIVE_ACTIONS = new Set([
|
|
23728
|
+
"config.apply",
|
|
23729
|
+
"config.patch",
|
|
23730
|
+
"update.run"
|
|
23731
|
+
]);
|
|
23732
|
+
/** Minimum length for a meaningful authorization message. */
|
|
23733
|
+
const MIN_AUTHORIZATION_LENGTH = 10;
|
|
23734
|
+
/**
|
|
23735
|
+
* Asserts the user's request was explicitly acknowledged for destructive
|
|
23736
|
+
* actions. Throws a descriptive error if the acknowledgment is missing,
|
|
23737
|
+
* empty, or trivially short.
|
|
23738
|
+
*
|
|
23739
|
+
* NOTE: This is defense-in-depth, not a hard barrier. A determined model
|
|
23740
|
+
* could still populate the field with fabricated text. The barrier exists
|
|
23741
|
+
* to:
|
|
23742
|
+
* 1. Force the agent to deliberately compose a justification (vs. blind
|
|
23743
|
+
* tool invocation).
|
|
23744
|
+
* 2. Provide an audit trail (the acknowledgment is logged with the tool
|
|
23745
|
+
* call args).
|
|
23746
|
+
* 3. Surface for future tightening (e.g., matching against real session
|
|
23747
|
+
* history).
|
|
23748
|
+
*/
|
|
23749
|
+
function assertUserAuthorization(action, params) {
|
|
23750
|
+
if (!DESTRUCTIVE_ACTIONS.has(action)) return;
|
|
23751
|
+
const ack = params.userRequestAcknowledgment;
|
|
23752
|
+
const trimmed = typeof ack === "string" ? ack.trim() : "";
|
|
23753
|
+
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.`);
|
|
23754
|
+
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)}.`);
|
|
23755
|
+
}
|
|
23725
23756
|
function createGatewayTool(opts) {
|
|
23726
23757
|
return {
|
|
23727
23758
|
label: "Gateway",
|
|
@@ -23732,6 +23763,7 @@ function createGatewayTool(opts) {
|
|
|
23732
23763
|
execute: async (_toolCallId, args) => {
|
|
23733
23764
|
const params = args;
|
|
23734
23765
|
const action = readStringParam(params, "action", { required: true });
|
|
23766
|
+
assertUserAuthorization(action, params);
|
|
23735
23767
|
if (action === "restart") {
|
|
23736
23768
|
if (!isRestartEnabled(opts?.config)) throw new Error("Gateway restart is disabled (commands.restart=false).");
|
|
23737
23769
|
const sessionKey = typeof params.sessionKey === "string" && params.sessionKey.trim() ? params.sessionKey.trim() : opts?.agentSessionKey?.trim() || void 0;
|
|
@@ -32691,6 +32723,38 @@ function setCliSessionId(entry, provider, sessionId) {
|
|
|
32691
32723
|
//#endregion
|
|
32692
32724
|
//#region src/config/model-profiles-builtin.ts
|
|
32693
32725
|
/**
|
|
32726
|
+
* Shared safety + output-style additions applied to most built-in profiles
|
|
32727
|
+
* and the Generic fallback. These rules came from a long history of
|
|
32728
|
+
* model-specific bugs (verification-monologue padding, "I have addressed"
|
|
32729
|
+
* preambles, post-answer assessment lists). Keeping them in one place
|
|
32730
|
+
* means a new profile inherits sane defaults instead of starting empty.
|
|
32731
|
+
*
|
|
32732
|
+
* Stage 2.4 of the prompt-reduction plan: rules that ALL profiles need
|
|
32733
|
+
* live here; profile-specific rules (control-token stripping, tool-arg
|
|
32734
|
+
* cleanup, reasoning hints) live in their own per-profile additions.
|
|
32735
|
+
*
|
|
32736
|
+
* Exported so resolve-model-profile.ts can apply the same additions to
|
|
32737
|
+
* the Generic fallback profile — no model resolves to "Generic" without
|
|
32738
|
+
* inheriting the safety/style rules.
|
|
32739
|
+
*/
|
|
32740
|
+
const SAFETY_AND_STYLE_ADDITIONS = [
|
|
32741
|
+
"CRITICAL OUTPUT RULES:",
|
|
32742
|
+
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
32743
|
+
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
32744
|
+
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
32745
|
+
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
32746
|
+
"- If you need to verify your work, do so before writing your response, not after.",
|
|
32747
|
+
"- Send brief progress updates on long tasks so the user knows you are active."
|
|
32748
|
+
];
|
|
32749
|
+
/** Hint for native-reasoning models (Nemotron, Qwen 3.5/3.6) to keep
|
|
32750
|
+
* planning internal. Not applied to Gemma/Ollama because those models
|
|
32751
|
+
* don't have structured thinking and the rule confuses them. */
|
|
32752
|
+
const REASONING_DISCIPLINE_ADDITION = "- Keep planning and reasoning internal. Only speak when you have a result or need user input.";
|
|
32753
|
+
/** Hint for models that leak Gemma-style control tokens (Gemma family,
|
|
32754
|
+
* Ollama hosting any uncensored open model). Forces tool-arg cleanup and
|
|
32755
|
+
* forbids leaking turn markers in user-visible text. */
|
|
32756
|
+
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."];
|
|
32757
|
+
/**
|
|
32694
32758
|
* Built-in model profiles. Ordered from most-specific to least-specific so
|
|
32695
32759
|
* that `resolveModelProfile` can return the first match.
|
|
32696
32760
|
*
|
|
@@ -32724,17 +32788,7 @@ const BUILTIN_PROFILES = [
|
|
|
32724
32788
|
hasStructuredThinking: false,
|
|
32725
32789
|
validateToolArgs: true
|
|
32726
32790
|
},
|
|
32727
|
-
promptAdditions: [
|
|
32728
|
-
"CRITICAL OUTPUT RULES:",
|
|
32729
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
32730
|
-
"- Do not output raw control tokens, channel tags, or turn markers.",
|
|
32731
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
32732
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
32733
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
32734
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
32735
|
-
"- Send brief progress updates on long tasks so the user knows you are active.",
|
|
32736
|
-
"- 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."
|
|
32737
|
-
],
|
|
32791
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, ...CONTROL_TOKEN_ADDITIONS],
|
|
32738
32792
|
ui: {
|
|
32739
32793
|
badge: "Local",
|
|
32740
32794
|
watchdogMs: 9e5,
|
|
@@ -32761,16 +32815,7 @@ const BUILTIN_PROFILES = [
|
|
|
32761
32815
|
hasStructuredThinking: true,
|
|
32762
32816
|
validateToolArgs: false
|
|
32763
32817
|
},
|
|
32764
|
-
promptAdditions: [
|
|
32765
|
-
"CRITICAL OUTPUT RULES:",
|
|
32766
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
32767
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
32768
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
32769
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
32770
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
32771
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
32772
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
32773
|
-
],
|
|
32818
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
32774
32819
|
ui: {
|
|
32775
32820
|
badge: "Local",
|
|
32776
32821
|
watchdogMs: 9e5,
|
|
@@ -32796,7 +32841,7 @@ const BUILTIN_PROFILES = [
|
|
|
32796
32841
|
hasStructuredThinking: true,
|
|
32797
32842
|
validateToolArgs: false
|
|
32798
32843
|
},
|
|
32799
|
-
promptAdditions: [],
|
|
32844
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS],
|
|
32800
32845
|
ui: {
|
|
32801
32846
|
badge: "API",
|
|
32802
32847
|
watchdogMs: 3e5,
|
|
@@ -32829,15 +32874,7 @@ const BUILTIN_PROFILES = [
|
|
|
32829
32874
|
hasStructuredThinking: true,
|
|
32830
32875
|
validateToolArgs: false
|
|
32831
32876
|
},
|
|
32832
|
-
promptAdditions: [
|
|
32833
|
-
"CRITICAL OUTPUT RULES:",
|
|
32834
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
32835
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
32836
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
32837
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
32838
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
32839
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
32840
|
-
],
|
|
32877
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
32841
32878
|
ui: {
|
|
32842
32879
|
badge: "Spider",
|
|
32843
32880
|
watchdogMs: 9e5,
|
|
@@ -32870,16 +32907,7 @@ const BUILTIN_PROFILES = [
|
|
|
32870
32907
|
hasStructuredThinking: false,
|
|
32871
32908
|
validateToolArgs: true
|
|
32872
32909
|
},
|
|
32873
|
-
promptAdditions: [
|
|
32874
|
-
"CRITICAL OUTPUT RULES:",
|
|
32875
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
32876
|
-
"- Do not output raw control tokens, channel tags, or turn markers.",
|
|
32877
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
32878
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
32879
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
32880
|
-
"- Send brief progress updates on long tasks so the user knows you are active.",
|
|
32881
|
-
"- 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."
|
|
32882
|
-
],
|
|
32910
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, ...CONTROL_TOKEN_ADDITIONS],
|
|
32883
32911
|
ui: {
|
|
32884
32912
|
badge: "Spider",
|
|
32885
32913
|
watchdogMs: 6e5,
|
|
@@ -32911,16 +32939,7 @@ const BUILTIN_PROFILES = [
|
|
|
32911
32939
|
hasStructuredThinking: true,
|
|
32912
32940
|
validateToolArgs: false
|
|
32913
32941
|
},
|
|
32914
|
-
promptAdditions: [
|
|
32915
|
-
"CRITICAL OUTPUT RULES:",
|
|
32916
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
32917
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
32918
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
32919
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
32920
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
32921
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
32922
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
32923
|
-
],
|
|
32942
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
32924
32943
|
ui: {
|
|
32925
32944
|
badge: "CoreWeave",
|
|
32926
32945
|
watchdogMs: 9e5,
|
|
@@ -32931,7 +32950,15 @@ const BUILTIN_PROFILES = [
|
|
|
32931
32950
|
|
|
32932
32951
|
//#endregion
|
|
32933
32952
|
//#region src/config/resolve-model-profile.ts
|
|
32934
|
-
/**
|
|
32953
|
+
/**
|
|
32954
|
+
* Default profile returned when no match is found.
|
|
32955
|
+
*
|
|
32956
|
+
* Stage 2.4 of the prompt-reduction plan: the Generic fallback now ships
|
|
32957
|
+
* the same safety+style additions as every named profile, so newly-added
|
|
32958
|
+
* models without a profile entry inherit sane defaults instead of
|
|
32959
|
+
* starting empty (which would silently regress safety rules until someone
|
|
32960
|
+
* notices and adds a profile).
|
|
32961
|
+
*/
|
|
32935
32962
|
const FALLBACK_PROFILE = {
|
|
32936
32963
|
match: "*",
|
|
32937
32964
|
label: "Generic",
|
|
@@ -32950,7 +32977,7 @@ const FALLBACK_PROFILE = {
|
|
|
32950
32977
|
hasStructuredThinking: false,
|
|
32951
32978
|
validateToolArgs: false
|
|
32952
32979
|
},
|
|
32953
|
-
promptAdditions: [],
|
|
32980
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS],
|
|
32954
32981
|
ui: {
|
|
32955
32982
|
watchdogMs: 3e5,
|
|
32956
32983
|
armWatchdogOnSend: true
|
|
@@ -39539,10 +39566,90 @@ async function prepareSessionManagerForRun(params) {
|
|
|
39539
39566
|
}
|
|
39540
39567
|
}
|
|
39541
39568
|
|
|
39569
|
+
//#endregion
|
|
39570
|
+
//#region src/agents/system-prompt-skills-autoload.ts
|
|
39571
|
+
const FRONTMATTER_RE = /^---\s*\n[\s\S]*?\n---\s*\n?/;
|
|
39572
|
+
let cachedPackageRoot;
|
|
39573
|
+
function getPackageRoot() {
|
|
39574
|
+
if (cachedPackageRoot === void 0) cachedPackageRoot = resolveSymiPackageRootSync({});
|
|
39575
|
+
return cachedPackageRoot;
|
|
39576
|
+
}
|
|
39577
|
+
function safeSkillName(name) {
|
|
39578
|
+
return /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/.test(name);
|
|
39579
|
+
}
|
|
39580
|
+
function tryLoadSkill(skillName, root) {
|
|
39581
|
+
const skillPath = path.join(root, "skills", skillName, "SKILL.md");
|
|
39582
|
+
try {
|
|
39583
|
+
if (!fs.statSync(skillPath).isFile()) return null;
|
|
39584
|
+
} catch {
|
|
39585
|
+
return null;
|
|
39586
|
+
}
|
|
39587
|
+
try {
|
|
39588
|
+
return fs.readFileSync(skillPath, "utf8");
|
|
39589
|
+
} catch {
|
|
39590
|
+
return null;
|
|
39591
|
+
}
|
|
39592
|
+
}
|
|
39593
|
+
function stripFrontmatter(body) {
|
|
39594
|
+
return body.replace(FRONTMATTER_RE, "").trimStart();
|
|
39595
|
+
}
|
|
39596
|
+
/**
|
|
39597
|
+
* Resolves and loads each named skill. Returns the inlinable Markdown block,
|
|
39598
|
+
* or empty string when no skills loaded / minimal mode / no names supplied.
|
|
39599
|
+
*/
|
|
39600
|
+
function buildAutoLoadedSkillsBlock(opts) {
|
|
39601
|
+
if (opts.minimalMode) return "";
|
|
39602
|
+
const names = opts.skillNames.filter((n) => typeof n === "string" && n.trim().length > 0);
|
|
39603
|
+
if (names.length === 0) return "";
|
|
39604
|
+
const packageRoot = getPackageRoot();
|
|
39605
|
+
const loaded = [];
|
|
39606
|
+
for (const rawName of names) {
|
|
39607
|
+
const name = rawName.trim();
|
|
39608
|
+
if (!safeSkillName(name)) {
|
|
39609
|
+
logWarn(`autoLoadInline: skipping invalid skill name '${rawName}'`);
|
|
39610
|
+
continue;
|
|
39611
|
+
}
|
|
39612
|
+
let body = null;
|
|
39613
|
+
let source = "bundled";
|
|
39614
|
+
if (opts.workspaceDir) {
|
|
39615
|
+
body = tryLoadSkill(name, opts.workspaceDir);
|
|
39616
|
+
source = "workspace";
|
|
39617
|
+
}
|
|
39618
|
+
if (body === null && packageRoot) {
|
|
39619
|
+
body = tryLoadSkill(name, packageRoot);
|
|
39620
|
+
source = "bundled";
|
|
39621
|
+
}
|
|
39622
|
+
if (body === null) {
|
|
39623
|
+
logWarn(`autoLoadInline: skill '${name}' not found in workspace or bundled skills`);
|
|
39624
|
+
continue;
|
|
39625
|
+
}
|
|
39626
|
+
const stripped = stripFrontmatter(body).trim();
|
|
39627
|
+
if (!stripped) {
|
|
39628
|
+
logWarn(`autoLoadInline: skill '${name}' has empty body after frontmatter strip; skipping`);
|
|
39629
|
+
continue;
|
|
39630
|
+
}
|
|
39631
|
+
loaded.push({
|
|
39632
|
+
name,
|
|
39633
|
+
body: stripped,
|
|
39634
|
+
source
|
|
39635
|
+
});
|
|
39636
|
+
}
|
|
39637
|
+
if (loaded.length === 0) return "";
|
|
39638
|
+
return [
|
|
39639
|
+
"",
|
|
39640
|
+
"---",
|
|
39641
|
+
"",
|
|
39642
|
+
"## Auto-loaded Skills",
|
|
39643
|
+
"",
|
|
39644
|
+
loaded.map((skill) => `<!-- auto-loaded: ${skill.name} (${skill.source}) -->\n${skill.body}`).join("\n\n---\n\n"),
|
|
39645
|
+
""
|
|
39646
|
+
].join("\n");
|
|
39647
|
+
}
|
|
39648
|
+
|
|
39542
39649
|
//#endregion
|
|
39543
39650
|
//#region src/agents/pi-embedded-runner/system-prompt.ts
|
|
39544
39651
|
function buildEmbeddedSystemPrompt(params) {
|
|
39545
|
-
|
|
39652
|
+
const corePrompt = buildAgentSystemPrompt({
|
|
39546
39653
|
workspaceDir: params.workspaceDir,
|
|
39547
39654
|
defaultThinkLevel: params.defaultThinkLevel,
|
|
39548
39655
|
reasoningLevel: params.reasoningLevel,
|
|
@@ -39570,6 +39677,14 @@ function buildEmbeddedSystemPrompt(params) {
|
|
|
39570
39677
|
contextFiles: params.contextFiles,
|
|
39571
39678
|
memoryCitationsMode: params.memoryCitationsMode
|
|
39572
39679
|
});
|
|
39680
|
+
const promptMode = params.promptMode ?? "full";
|
|
39681
|
+
const isMinimal = promptMode === "minimal" || promptMode === "none";
|
|
39682
|
+
const skillsBlock = buildAutoLoadedSkillsBlock({
|
|
39683
|
+
skillNames: params.autoLoadInlineSkills ?? [],
|
|
39684
|
+
workspaceDir: params.workspaceDir,
|
|
39685
|
+
minimalMode: isMinimal
|
|
39686
|
+
});
|
|
39687
|
+
return skillsBlock ? `${corePrompt}${skillsBlock}` : corePrompt;
|
|
39573
39688
|
}
|
|
39574
39689
|
function createSystemPromptOverride(systemPrompt) {
|
|
39575
39690
|
const override = systemPrompt.trim();
|
|
@@ -40357,7 +40472,8 @@ async function runEmbeddedAttempt(params) {
|
|
|
40357
40472
|
userTime,
|
|
40358
40473
|
userTimeFormat,
|
|
40359
40474
|
contextFiles,
|
|
40360
|
-
memoryCitationsMode: params.config?.memory?.citations
|
|
40475
|
+
memoryCitationsMode: params.config?.memory?.citations,
|
|
40476
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline
|
|
40361
40477
|
});
|
|
40362
40478
|
const systemPromptReport = buildSystemPromptReport({
|
|
40363
40479
|
source: "run",
|
|
@@ -44846,7 +44962,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
44846
44962
|
return;
|
|
44847
44963
|
}
|
|
44848
44964
|
try {
|
|
44849
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
44965
|
+
const { deliverOutboundPayloads } = await import("./deliver-CeNdvQJ3.js").then((n) => n.n);
|
|
44850
44966
|
await deliverOutboundPayloads({
|
|
44851
44967
|
cfg: params.cfg,
|
|
44852
44968
|
channel,
|
|
@@ -48300,7 +48416,7 @@ async function describeStickerImage(params) {
|
|
|
48300
48416
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
48301
48417
|
try {
|
|
48302
48418
|
const buffer = await fs$1.readFile(imagePath);
|
|
48303
|
-
const { describeImageWithModel } = await import("./image-
|
|
48419
|
+
const { describeImageWithModel } = await import("./image-Cp6qRPZ2.js").then((n) => n.n);
|
|
48304
48420
|
return (await describeImageWithModel({
|
|
48305
48421
|
buffer,
|
|
48306
48422
|
fileName: "sticker.webp",
|
|
@@ -48723,7 +48839,7 @@ function createWhatsAppLoginTool() {
|
|
|
48723
48839
|
force: Type.Optional(Type.Boolean())
|
|
48724
48840
|
}),
|
|
48725
48841
|
execute: async (_toolCallId, args) => {
|
|
48726
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
48842
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CtELJan3.js");
|
|
48727
48843
|
if ((args?.action ?? "start") === "wait") {
|
|
48728
48844
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
48729
48845
|
return {
|
|
@@ -50099,7 +50215,7 @@ async function preflightDiscordMessage(params) {
|
|
|
50099
50215
|
let preflightTranscript;
|
|
50100
50216
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
50101
50217
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
50102
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
50218
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-SaT5IcVn.js");
|
|
50103
50219
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
50104
50220
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
50105
50221
|
ctx: {
|
|
@@ -53882,27 +53998,27 @@ function isVoiceChannelType(type) {
|
|
|
53882
53998
|
function createDefaultDeps() {
|
|
53883
53999
|
return {
|
|
53884
54000
|
sendMessageWhatsApp: async (...args) => {
|
|
53885
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
54001
|
+
const { sendMessageWhatsApp } = await import("./web-s9NWpUYH.js");
|
|
53886
54002
|
return await sendMessageWhatsApp(...args);
|
|
53887
54003
|
},
|
|
53888
54004
|
sendMessageTelegram: async (...args) => {
|
|
53889
|
-
const { sendMessageTelegram } = await import("./send-
|
|
54005
|
+
const { sendMessageTelegram } = await import("./send-Bi8XhwOZ.js").then((n) => n.l);
|
|
53890
54006
|
return await sendMessageTelegram(...args);
|
|
53891
54007
|
},
|
|
53892
54008
|
sendMessageDiscord: async (...args) => {
|
|
53893
|
-
const { sendMessageDiscord } = await import("./send-
|
|
54009
|
+
const { sendMessageDiscord } = await import("./send-CcD9S5so.js").then((n) => n.t);
|
|
53894
54010
|
return await sendMessageDiscord(...args);
|
|
53895
54011
|
},
|
|
53896
54012
|
sendMessageSlack: async (...args) => {
|
|
53897
|
-
const { sendMessageSlack } = await import("./send-
|
|
54013
|
+
const { sendMessageSlack } = await import("./send-CoSPwGiI.js").then((n) => n.n);
|
|
53898
54014
|
return await sendMessageSlack(...args);
|
|
53899
54015
|
},
|
|
53900
54016
|
sendMessageSignal: async (...args) => {
|
|
53901
|
-
const { sendMessageSignal } = await import("./send-
|
|
54017
|
+
const { sendMessageSignal } = await import("./send-CSkNKYIc.js").then((n) => n.i);
|
|
53902
54018
|
return await sendMessageSignal(...args);
|
|
53903
54019
|
},
|
|
53904
54020
|
sendMessageIMessage: async (...args) => {
|
|
53905
|
-
const { sendMessageIMessage } = await import("./send-
|
|
54021
|
+
const { sendMessageIMessage } = await import("./send-CupfdYEg.js").then((n) => n.n);
|
|
53906
54022
|
return await sendMessageIMessage(...args);
|
|
53907
54023
|
}
|
|
53908
54024
|
};
|
|
@@ -64757,7 +64873,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
64757
64873
|
});
|
|
64758
64874
|
const deliverSlashPayloads = async (replies) => {
|
|
64759
64875
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
64760
|
-
import("./replies-
|
|
64876
|
+
import("./replies-BxvfG7Oj.js").then((n) => n.r),
|
|
64761
64877
|
import("./chunk-CBaqrC3-.js").then((n) => n.s),
|
|
64762
64878
|
import("./markdown-tables-Xw0UrL4I.js").then((n) => n.t)
|
|
64763
64879
|
]);
|
|
@@ -67030,7 +67146,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
67030
67146
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
67031
67147
|
let preflightTranscript;
|
|
67032
67148
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
67033
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
67149
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-SaT5IcVn.js");
|
|
67034
67150
|
preflightTranscript = await transcribeFirstAudio({
|
|
67035
67151
|
ctx: {
|
|
67036
67152
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -69184,23 +69300,23 @@ let webLoginQrPromise = null;
|
|
|
69184
69300
|
let webChannelPromise = null;
|
|
69185
69301
|
let whatsappActionsPromise = null;
|
|
69186
69302
|
function loadWebOutbound() {
|
|
69187
|
-
webOutboundPromise ??= import("./outbound-
|
|
69303
|
+
webOutboundPromise ??= import("./outbound-b9pVFyW7.js").then((n) => n.t);
|
|
69188
69304
|
return webOutboundPromise;
|
|
69189
69305
|
}
|
|
69190
69306
|
function loadWebLogin() {
|
|
69191
|
-
webLoginPromise ??= import("./login-
|
|
69307
|
+
webLoginPromise ??= import("./login-DKeZ-sOf.js").then((n) => n.n);
|
|
69192
69308
|
return webLoginPromise;
|
|
69193
69309
|
}
|
|
69194
69310
|
function loadWebLoginQr() {
|
|
69195
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
69311
|
+
webLoginQrPromise ??= import("./login-qr-CtELJan3.js");
|
|
69196
69312
|
return webLoginQrPromise;
|
|
69197
69313
|
}
|
|
69198
69314
|
function loadWebChannel() {
|
|
69199
|
-
webChannelPromise ??= import("./web-
|
|
69315
|
+
webChannelPromise ??= import("./web-s9NWpUYH.js");
|
|
69200
69316
|
return webChannelPromise;
|
|
69201
69317
|
}
|
|
69202
69318
|
function loadWhatsAppActions() {
|
|
69203
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
69319
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-Dx8FkbIf.js");
|
|
69204
69320
|
return whatsappActionsPromise;
|
|
69205
69321
|
}
|
|
69206
69322
|
function createPluginRuntime() {
|
|
@@ -70458,6 +70574,91 @@ function wrapToolWithAbortSignal(tool, abortSignal) {
|
|
|
70458
70574
|
};
|
|
70459
70575
|
}
|
|
70460
70576
|
|
|
70577
|
+
//#endregion
|
|
70578
|
+
//#region src/agents/pi-tools.read-edit-guard.ts
|
|
70579
|
+
const RETRY_GUIDANCE_SUFFIX$1 = " Read the file first, then retry the edit.";
|
|
70580
|
+
function readGuardError(filePath) {
|
|
70581
|
+
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}`);
|
|
70582
|
+
}
|
|
70583
|
+
function extractPath(args) {
|
|
70584
|
+
if (!args || typeof args !== "object") return;
|
|
70585
|
+
const record = args;
|
|
70586
|
+
const candidate = record.path ?? record.file_path;
|
|
70587
|
+
if (typeof candidate !== "string") return;
|
|
70588
|
+
const trimmed = candidate.trim();
|
|
70589
|
+
return trimmed.length > 0 ? trimmed : void 0;
|
|
70590
|
+
}
|
|
70591
|
+
function wrapReadToolWithTracker(tool, tracker) {
|
|
70592
|
+
return {
|
|
70593
|
+
...tool,
|
|
70594
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
70595
|
+
const result = await tool.execute(toolCallId, args, signal, onUpdate);
|
|
70596
|
+
if (!(!!result && typeof result === "object" && result.isError === true)) {
|
|
70597
|
+
const filePath = extractPath(args);
|
|
70598
|
+
if (filePath) tracker.recordRead(filePath);
|
|
70599
|
+
}
|
|
70600
|
+
return result;
|
|
70601
|
+
}
|
|
70602
|
+
};
|
|
70603
|
+
}
|
|
70604
|
+
function wrapWriteToolWithTracker(tool, tracker) {
|
|
70605
|
+
return {
|
|
70606
|
+
...tool,
|
|
70607
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
70608
|
+
const result = await tool.execute(toolCallId, args, signal, onUpdate);
|
|
70609
|
+
if (!(!!result && typeof result === "object" && result.isError === true)) {
|
|
70610
|
+
const filePath = extractPath(args);
|
|
70611
|
+
if (filePath) tracker.recordWrite(filePath);
|
|
70612
|
+
}
|
|
70613
|
+
return result;
|
|
70614
|
+
}
|
|
70615
|
+
};
|
|
70616
|
+
}
|
|
70617
|
+
function wrapEditToolWithGuard(tool, tracker) {
|
|
70618
|
+
return {
|
|
70619
|
+
...tool,
|
|
70620
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
70621
|
+
const filePath = extractPath(args);
|
|
70622
|
+
if (filePath && !tracker.hasObserved(filePath)) throw readGuardError(filePath);
|
|
70623
|
+
return tool.execute(toolCallId, args, signal, onUpdate);
|
|
70624
|
+
}
|
|
70625
|
+
};
|
|
70626
|
+
}
|
|
70627
|
+
|
|
70628
|
+
//#endregion
|
|
70629
|
+
//#region src/agents/pi-tools.read-edit-tracker.ts
|
|
70630
|
+
function normalize(filePath, workspaceRoot) {
|
|
70631
|
+
if (!workspaceRoot) return filePath;
|
|
70632
|
+
if (path.isAbsolute(filePath)) return path.normalize(filePath);
|
|
70633
|
+
return path.resolve(workspaceRoot, filePath);
|
|
70634
|
+
}
|
|
70635
|
+
function createReadEditTracker(opts = {}) {
|
|
70636
|
+
const observed = /* @__PURE__ */ new Map();
|
|
70637
|
+
const record = (filePath, kind) => {
|
|
70638
|
+
if (typeof filePath !== "string" || !filePath.trim()) return;
|
|
70639
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
70640
|
+
const prior = observed.get(key);
|
|
70641
|
+
if (kind === "written" || prior !== "written") observed.set(key, kind);
|
|
70642
|
+
};
|
|
70643
|
+
return {
|
|
70644
|
+
recordRead: (filePath) => record(filePath, "read"),
|
|
70645
|
+
recordWrite: (filePath) => record(filePath, "written"),
|
|
70646
|
+
observation: (filePath) => {
|
|
70647
|
+
if (typeof filePath !== "string" || !filePath.trim()) return null;
|
|
70648
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
70649
|
+
return observed.get(key) ?? null;
|
|
70650
|
+
},
|
|
70651
|
+
hasObserved: (filePath) => {
|
|
70652
|
+
if (typeof filePath !== "string" || !filePath.trim()) return false;
|
|
70653
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
70654
|
+
return observed.has(key);
|
|
70655
|
+
},
|
|
70656
|
+
reset: () => {
|
|
70657
|
+
observed.clear();
|
|
70658
|
+
}
|
|
70659
|
+
};
|
|
70660
|
+
}
|
|
70661
|
+
|
|
70461
70662
|
//#endregion
|
|
70462
70663
|
//#region src/media/sniff-mime-from-base64.ts
|
|
70463
70664
|
async function sniffMimeFromBase64(base64) {
|
|
@@ -70783,6 +70984,22 @@ function wrapToolParamNormalization(tool, requiredParamGroups) {
|
|
|
70783
70984
|
}
|
|
70784
70985
|
};
|
|
70785
70986
|
}
|
|
70987
|
+
/**
|
|
70988
|
+
* Override a tool's description while preserving execute, parameters, and
|
|
70989
|
+
* other properties. Used by Stage 2.5 of the prompt-reduction plan to move
|
|
70990
|
+
* usage docs from the system prompt into tool descriptions where they
|
|
70991
|
+
* belong contextually.
|
|
70992
|
+
*
|
|
70993
|
+
* The replacement description should include the upstream's tool-purpose
|
|
70994
|
+
* sentence so models that only read the description (without the prompt
|
|
70995
|
+
* section) still have the same baseline understanding.
|
|
70996
|
+
*/
|
|
70997
|
+
function wrapToolWithDescriptionOverride(tool, description) {
|
|
70998
|
+
return {
|
|
70999
|
+
...tool,
|
|
71000
|
+
description
|
|
71001
|
+
};
|
|
71002
|
+
}
|
|
70786
71003
|
function wrapToolWorkspaceRootGuard(tool, root) {
|
|
70787
71004
|
return {
|
|
70788
71005
|
...tool,
|
|
@@ -71023,6 +71240,26 @@ function resolveToolLoopDetectionConfig(params) {
|
|
|
71023
71240
|
}
|
|
71024
71241
|
};
|
|
71025
71242
|
}
|
|
71243
|
+
/**
|
|
71244
|
+
* Edit tool description. Replaces the upstream's terse one-liner with
|
|
71245
|
+
* usage notes migrated from the system prompt's "Edit Tool Best Practices"
|
|
71246
|
+
* section in Stage 2.5 of the prompt-reduction plan. Co-locating these
|
|
71247
|
+
* notes with the tool means they ship only when edit is in palette, and
|
|
71248
|
+
* the system prompt section can be deleted in Stage 4 without losing the
|
|
71249
|
+
* guidance.
|
|
71250
|
+
*
|
|
71251
|
+
* Combined with the read-before-edit guard (Stage 1.3) and the model's
|
|
71252
|
+
* own discipline, this should kill the hallucinated-oldText failure class
|
|
71253
|
+
* for any well-intentioned model.
|
|
71254
|
+
*/
|
|
71255
|
+
const EDIT_TOOL_DESCRIPTION = [
|
|
71256
|
+
"Edit a file by replacing exact text. The oldText must match the file EXACTLY (whitespace, indentation, and all).",
|
|
71257
|
+
"Best practices to avoid match failures:",
|
|
71258
|
+
"- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
|
|
71259
|
+
"- 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.",
|
|
71260
|
+
"- 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.",
|
|
71261
|
+
"- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines)."
|
|
71262
|
+
].join(" ");
|
|
71026
71263
|
function createSymiCodingTools(options) {
|
|
71027
71264
|
const execToolName = "exec";
|
|
71028
71265
|
const sandbox = options?.sandbox?.enabled ? options.sandbox : void 0;
|
|
@@ -71085,33 +71322,34 @@ function createSymiCodingTools(options) {
|
|
|
71085
71322
|
});
|
|
71086
71323
|
if (sandboxRoot && !sandboxFsBridge) throw new Error("Sandbox filesystem bridge is unavailable.");
|
|
71087
71324
|
const imageSanitization = resolveImageSanitizationLimits(options?.config);
|
|
71325
|
+
const readEditTracker = createReadEditTracker({ workspaceRoot: sandboxRoot ?? workspaceRoot });
|
|
71088
71326
|
const base = codingTools.flatMap((tool) => {
|
|
71089
71327
|
if (tool.name === readTool.name) {
|
|
71090
71328
|
if (sandboxRoot) {
|
|
71091
|
-
const
|
|
71329
|
+
const tracked = wrapReadToolWithTracker(createSandboxedReadTool({
|
|
71092
71330
|
root: sandboxRoot,
|
|
71093
71331
|
bridge: sandboxFsBridge,
|
|
71094
71332
|
modelContextWindowTokens: options?.modelContextWindowTokens,
|
|
71095
71333
|
imageSanitization
|
|
71096
|
-
});
|
|
71097
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
71334
|
+
}), readEditTracker);
|
|
71335
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, sandboxRoot) : tracked];
|
|
71098
71336
|
}
|
|
71099
|
-
const
|
|
71337
|
+
const tracked = wrapReadToolWithTracker(createSymiReadTool(createReadTool(workspaceRoot), {
|
|
71100
71338
|
modelContextWindowTokens: options?.modelContextWindowTokens,
|
|
71101
71339
|
imageSanitization
|
|
71102
|
-
});
|
|
71103
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
71340
|
+
}), readEditTracker);
|
|
71341
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, workspaceRoot) : tracked];
|
|
71104
71342
|
}
|
|
71105
71343
|
if (tool.name === "bash" || tool.name === execToolName) return [];
|
|
71106
71344
|
if (tool.name === "write") {
|
|
71107
71345
|
if (sandboxRoot) return [];
|
|
71108
|
-
const
|
|
71109
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
71346
|
+
const tracked = wrapWriteToolWithTracker(wrapToolParamNormalization(createWriteTool(workspaceRoot), CLAUDE_PARAM_GROUPS.write), readEditTracker);
|
|
71347
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, workspaceRoot) : tracked];
|
|
71110
71348
|
}
|
|
71111
71349
|
if (tool.name === "edit") {
|
|
71112
71350
|
if (sandboxRoot) return [];
|
|
71113
|
-
const
|
|
71114
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
71351
|
+
const guarded = wrapEditToolWithGuard(wrapToolWithDescriptionOverride(wrapToolParamNormalization(createEditTool(workspaceRoot), CLAUDE_PARAM_GROUPS.edit), EDIT_TOOL_DESCRIPTION), readEditTracker);
|
|
71352
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(guarded, workspaceRoot) : guarded];
|
|
71115
71353
|
}
|
|
71116
71354
|
return [tool];
|
|
71117
71355
|
});
|
|
@@ -71154,22 +71392,18 @@ function createSymiCodingTools(options) {
|
|
|
71154
71392
|
} : void 0,
|
|
71155
71393
|
workspaceOnly: applyPatchWorkspaceOnly
|
|
71156
71394
|
});
|
|
71395
|
+
const sandboxedEditTool = sandboxRoot ? wrapEditToolWithGuard(createSandboxedEditTool({
|
|
71396
|
+
root: sandboxRoot,
|
|
71397
|
+
bridge: sandboxFsBridge
|
|
71398
|
+
}), readEditTracker) : null;
|
|
71399
|
+
const sandboxedWriteTool = sandboxRoot ? wrapWriteToolWithTracker(createSandboxedWriteTool({
|
|
71400
|
+
root: sandboxRoot,
|
|
71401
|
+
bridge: sandboxFsBridge
|
|
71402
|
+
}), readEditTracker) : null;
|
|
71157
71403
|
const withHooks = applyToolPolicyPipeline({
|
|
71158
71404
|
tools: applyOwnerOnlyToolPolicy([
|
|
71159
71405
|
...base,
|
|
71160
|
-
...sandboxRoot ? allowWorkspaceWrites ? [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
71161
|
-
root: sandboxRoot,
|
|
71162
|
-
bridge: sandboxFsBridge
|
|
71163
|
-
}), sandboxRoot) : createSandboxedEditTool({
|
|
71164
|
-
root: sandboxRoot,
|
|
71165
|
-
bridge: sandboxFsBridge
|
|
71166
|
-
}), workspaceOnly ? wrapToolWorkspaceRootGuard(createSandboxedWriteTool({
|
|
71167
|
-
root: sandboxRoot,
|
|
71168
|
-
bridge: sandboxFsBridge
|
|
71169
|
-
}), sandboxRoot) : createSandboxedWriteTool({
|
|
71170
|
-
root: sandboxRoot,
|
|
71171
|
-
bridge: sandboxFsBridge
|
|
71172
|
-
})] : [] : [],
|
|
71406
|
+
...sandboxRoot ? allowWorkspaceWrites && sandboxedEditTool && sandboxedWriteTool ? [workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedEditTool, sandboxRoot) : sandboxedEditTool, workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedWriteTool, sandboxRoot) : sandboxedWriteTool] : [] : [],
|
|
71173
71407
|
...applyPatchTool ? [applyPatchTool] : [],
|
|
71174
71408
|
execTool,
|
|
71175
71409
|
processTool,
|
|
@@ -71535,7 +71769,8 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
71535
71769
|
userTime,
|
|
71536
71770
|
userTimeFormat,
|
|
71537
71771
|
contextFiles,
|
|
71538
|
-
memoryCitationsMode: params.config?.memory?.citations
|
|
71772
|
+
memoryCitationsMode: params.config?.memory?.citations,
|
|
71773
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline
|
|
71539
71774
|
}));
|
|
71540
71775
|
const sessionLock = await acquireSessionWriteLock({
|
|
71541
71776
|
sessionFile: params.sessionFile,
|