@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 { g as resolveStateDir, r as STATE_DIR, u as resolveGatewayPort, y as res
|
|
|
3
3
|
import { B as theme, C as sleep$1, D as isPlainObject, E as truncateUtf16Safe, F as shouldLogVerbose, J as normalizeLogLevel, L as warn, M as logVerbose, O as danger, S as shortenHomePath, V as getChildLogger, X as resolvePreferredSymiTmpDir, d as isRecord$1, i as clampInt, l as escapeRegExp, m as normalizeE164, t as CONFIG_DIR, w as sliceUtf16Safe, x as shortenHomeInString, y as resolveUserPath } from "./utils-B-0b9bGM.js";
|
|
4
4
|
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-EAliFiVK.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, y as isCronRunSessionKey } from "./session-key-DCt45XZa.js";
|
|
6
|
-
import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
|
|
6
|
+
import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
|
|
7
7
|
import { C as createInternalHookEvent, T as triggerInternalHook, _ as clearPluginCommands, b as listPluginCommands, c as normalizeAnyChannelId, f as requireActivePluginRegistry, g as normalizePluginHttpPath, h as createPluginRegistry, l as normalizeChannelId, n as CHAT_CHANNEL_ORDER, p as setActivePluginRegistry, r as DEFAULT_CHAT_CHANNEL, v as executePluginCommand, x as matchPluginCommand, y as getPluginCommandSpecs } from "./registry-Cja8eT7G.js";
|
|
8
8
|
import { d as createNonExitingRuntime, f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
|
|
9
9
|
import { a as logError, i as logDebug, n as runExec, o as logInfo, r as spawnWithFallback, s as logWarn, t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
|
|
@@ -14,34 +14,34 @@ import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
|
|
|
14
14
|
import { t as parseBooleanValue$1 } from "./boolean-BsqeuxE6.js";
|
|
15
15
|
import { t as isTruthyEnvValue } from "./env-DPCHYPeH.js";
|
|
16
16
|
import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-aT-I_DTX.js";
|
|
17
|
-
import { $ as parseDiscordTarget, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as createDiscordRestClient, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as createDiscordClient, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordSystemLocation, a as removeReactionDiscord, at as normalizeDiscordAllowList, b as sendWebhookMessageDiscord, bt as fetchChannelPermissionsDiscord, c as formatDiscordComponentEventText, ct as resolveDiscordChannelConfigWithFallback, d as parseDiscordModalCustomId, dt as resolveDiscordOwnerAllowFrom, et as resolveDiscordChannelId, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordShouldRequireMention, g as sendMessageDiscord, gt as formatDiscordUserTag, h as resolveDiscordModalEntry, ht as formatDiscordReactionEmoji, i as removeOwnReactionsDiscord, it as isDiscordGroupAllowedByPolicy, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as resolveDiscordGuildEntry, m as resolveDiscordComponentEntry, mt as shouldEmitDiscordReactionNotification, n as fetchReactionsDiscord, nt as listDiscordDirectoryPeersLive, o as sendDiscordComponentMessage, ot as normalizeDiscordSlug, p as readDiscordComponentSpec, pt as resolveGroupDmAllow, q as deleteChannelDiscord, r as reactMessageDiscord, rt as allowListMatches$1, s as createDiscordFormModal, st as resolveDiscordAllowListMatch, tt as listDiscordDirectoryGroupsLive, u as parseDiscordComponentCustomIdForCarbon, ut as resolveDiscordMemberAccessState, v as sendStickerDiscord, vt as resolveTimestampMs, w as fetchMessageDiscord, wt as chunkDiscordTextWithMode, x as createThreadDiscord, xt as hasAnyGuildPermissionDiscord, y as sendVoiceMessageDiscord, yt as fetchDiscord, z as listGuildChannelsDiscord } from "./send-
|
|
18
|
-
import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-
|
|
17
|
+
import { $ as parseDiscordTarget, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as createDiscordRestClient, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as createDiscordClient, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordSystemLocation, a as removeReactionDiscord, at as normalizeDiscordAllowList, b as sendWebhookMessageDiscord, bt as fetchChannelPermissionsDiscord, c as formatDiscordComponentEventText, ct as resolveDiscordChannelConfigWithFallback, d as parseDiscordModalCustomId, dt as resolveDiscordOwnerAllowFrom, et as resolveDiscordChannelId, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordShouldRequireMention, g as sendMessageDiscord, gt as formatDiscordUserTag, h as resolveDiscordModalEntry, ht as formatDiscordReactionEmoji, i as removeOwnReactionsDiscord, it as isDiscordGroupAllowedByPolicy, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as resolveDiscordGuildEntry, m as resolveDiscordComponentEntry, mt as shouldEmitDiscordReactionNotification, n as fetchReactionsDiscord, nt as listDiscordDirectoryPeersLive, o as sendDiscordComponentMessage, ot as normalizeDiscordSlug, p as readDiscordComponentSpec, pt as resolveGroupDmAllow, q as deleteChannelDiscord, r as reactMessageDiscord, rt as allowListMatches$1, s as createDiscordFormModal, st as resolveDiscordAllowListMatch, tt as listDiscordDirectoryGroupsLive, u as parseDiscordComponentCustomIdForCarbon, ut as resolveDiscordMemberAccessState, v as sendStickerDiscord, vt as resolveTimestampMs, w as fetchMessageDiscord, wt as chunkDiscordTextWithMode, x as createThreadDiscord, xt as hasAnyGuildPermissionDiscord, y as sendVoiceMessageDiscord, yt as fetchDiscord, z as listGuildChannelsDiscord } from "./send-DNqcjLyg.js";
|
|
18
|
+
import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-BYCtuYPj.js";
|
|
19
19
|
import { a as safeStatSync, c as applyTestPluginDefaults, d as resolveEnableState, f as resolveMemorySlotDecision, h as isDangerousHostEnvVarName, i as isPathInside, n as loadPluginManifestRegistry, r as discoverSymiPlugins, u as normalizePluginsConfig } from "./manifest-registry-BDSRH8nU.js";
|
|
20
20
|
import { a as isPathInsideWithRealpath } from "./legacy-names-Be3msDZo.js";
|
|
21
21
|
import { t as normalizeChatType } from "./chat-type-DyovJwCt.js";
|
|
22
22
|
import { n as resolveConversationLabel } from "./conversation-label-Bn5j3lUT.js";
|
|
23
23
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CmmmT8IP.js";
|
|
24
|
-
import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-
|
|
25
|
-
import { _ as stripThinkingTagsFromText, a as decodeDataUrl, b as minimaxUnderstandImage, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as stripReasoningTagsFromText, y as extractTextFromChatContent } from "./image-
|
|
26
|
-
import { t as ensureSymiModelsJson } from "./models-config-
|
|
24
|
+
import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-BX-ap4VU.js";
|
|
25
|
+
import { _ as stripThinkingTagsFromText, a as decodeDataUrl, b as minimaxUnderstandImage, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as stripReasoningTagsFromText, y as extractTextFromChatContent } from "./image-B6aY1oY3.js";
|
|
26
|
+
import { t as ensureSymiModelsJson } from "./models-config-DGDMieos.js";
|
|
27
27
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-4uUnLc3n.js";
|
|
28
|
-
import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-
|
|
29
|
-
import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-
|
|
30
|
-
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-
|
|
31
|
-
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-
|
|
28
|
+
import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-DK2WpZI8.js";
|
|
29
|
+
import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-BQ5LAIBQ.js";
|
|
30
|
+
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-BFDOGeu3.js";
|
|
31
|
+
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-CGMSzPWd.js";
|
|
32
32
|
import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-BG8FpqDp.js";
|
|
33
33
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-BF3TeRH2.js";
|
|
34
34
|
import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-BBm9fwuG.js";
|
|
35
35
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-BCYMnxkM.js";
|
|
36
36
|
import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-1OJMSAUX.js";
|
|
37
37
|
import { n as getMediaDir, r as saveMediaBuffer } from "./store-r1DJSDq-.js";
|
|
38
|
-
import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, E as readSessionTitleFieldsFromTranscript, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, K as buildGroupDisplayName, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, V as resolveExplicitAgentSessionKey, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, b as normalizeAccountId$3, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as resolveGroupSessionKey, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, v as normalizeDeliveryContext, y as normalizeSessionDeliveryFields, z as canonicalizeMainSessionAlias } from "./sessions-
|
|
38
|
+
import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, E as readSessionTitleFieldsFromTranscript, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, K as buildGroupDisplayName, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, V as resolveExplicitAgentSessionKey, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, b as normalizeAccountId$3, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as resolveGroupSessionKey, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, v as normalizeDeliveryContext, y as normalizeSessionDeliveryFields, z as canonicalizeMainSessionAlias } from "./sessions-BKn2DFYs.js";
|
|
39
39
|
import { a as resolveChannelGroupRequireMention, c as normalizeHyphenSlug, i as resolveChannelGroupPolicy, l as normalizeStringEntries, n as listChannelDocks, r as normalizeSignalMessagingTarget, s as normalizeAtHashSlug, t as getChannelDock, u as normalizeStringEntriesLower } from "./dock-BhS32F6E.js";
|
|
40
40
|
import { _ as listEnabledDiscordAccounts, a as isWhatsAppGroupJid, c as listEnabledTelegramAccounts, d as resolveTelegramToken, f as resolveSlackAccount, g as createDiscordActionGate, h as resolveSlackBotToken, l as listTelegramAccountIds, m as resolveSlackAppToken, n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId$1, s as createTelegramActionGate, t as getChannelPlugin, u as resolveTelegramAccount, v as resolveDiscordAccount, y as normalizeDiscordToken } from "./plugins-DKDeQZF0.js";
|
|
41
41
|
import { a as logWebSelfId, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, u as readWebSelfId } from "./accounts-DDuIpcln.js";
|
|
42
42
|
import { t as resolveIMessageAccount } from "./accounts-bK-Yqdwx.js";
|
|
43
43
|
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-DyJN4_vR.js";
|
|
44
|
-
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-
|
|
44
|
+
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-llekTUks.js";
|
|
45
45
|
import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-CyhzMxFA.js";
|
|
46
46
|
import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-BzbXHcaD.js";
|
|
47
47
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-DdnTeoR1.js";
|
|
@@ -51,17 +51,17 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-Db3d
|
|
|
51
51
|
import { t as fetchWithSsrFGuard } from "./fetch-guard-DOPkVbh3.js";
|
|
52
52
|
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, t as getAgentScopedMediaLocalRoots } from "./local-roots-aAFLQGkY.js";
|
|
53
53
|
import { m as runTasksWithConcurrency } from "./internal-iXV867Nr.js";
|
|
54
|
-
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-
|
|
54
|
+
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-BhW-vn5v.js";
|
|
55
55
|
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-BuceUQDl.js";
|
|
56
|
-
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-
|
|
57
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeChannelTargetInput, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as buildTargetResolverSignature, h as throwIfAborted, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as normalizeTargetForProvider, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-
|
|
56
|
+
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-7gwjaz5c.js";
|
|
57
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeChannelTargetInput, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as buildTargetResolverSignature, h as throwIfAborted, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as normalizeTargetForProvider, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-Cqk3zmyW.js";
|
|
58
58
|
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-JkjuvDGH.js";
|
|
59
59
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-CUslJyKP.js";
|
|
60
|
-
import { A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as toLocationContext, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as parseTelegramTarget, K as withTelegramApiErrorLogging, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as formatLocationText, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-
|
|
60
|
+
import { A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as toLocationContext, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as parseTelegramTarget, K as withTelegramApiErrorLogging, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as formatLocationText, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-BaSqjfd_.js";
|
|
61
61
|
import { a as buildModelAliasLines, n as resolveModel } from "./model-ECsJuJew.js";
|
|
62
62
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CE2YmmsD.js";
|
|
63
|
-
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-
|
|
64
|
-
import { a as resolveMemorySearchConfig, t as MemoryIndexManager } from "./manager-
|
|
63
|
+
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-BDWdeqta.js";
|
|
64
|
+
import { a as resolveMemorySearchConfig, t as MemoryIndexManager } from "./manager-OSWCBsL_.js";
|
|
65
65
|
import { n as retryAsync } from "./retry-BoS4e4X_.js";
|
|
66
66
|
import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-C9e6dMU_.js";
|
|
67
67
|
import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-DIi9uyC6.js";
|
|
@@ -70,23 +70,23 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-jTXFdH5R.js";
|
|
|
70
70
|
import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-vWB85AXk.js";
|
|
71
71
|
import { a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, i as listChatCommands, l as parseCommandArgs, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices } from "./commands-registry-D_uByLpw.js";
|
|
72
72
|
import { Rt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-pd8kwOFJ.js";
|
|
73
|
-
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-
|
|
73
|
+
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-BZbBLMOq.js";
|
|
74
74
|
import { n as formatTimeAgo } from "./format-relative-CviDPm2s.js";
|
|
75
75
|
import { n as normalizePollInput } from "./polls-DZoQqmds.js";
|
|
76
76
|
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-CoTZV03i.js";
|
|
77
77
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-BECUf3wn.js";
|
|
78
78
|
import { t as convertMarkdownTables } from "./tables-C3TR-LvH.js";
|
|
79
|
-
import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-
|
|
79
|
+
import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-BPBFuPrC.js";
|
|
80
80
|
import { i as readChannelAllowFromStore, l as listPairingChannels, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-iAT1if6k.js";
|
|
81
81
|
import { t as makeProxyFetch } from "./proxy-mdETjik4.js";
|
|
82
82
|
import { i as formatDurationSeconds, r as formatDurationPrecise, t as formatDurationCompact$1 } from "./format-duration-DeLiQNNv.js";
|
|
83
83
|
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-FCaqxoqg.js";
|
|
84
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
84
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-CPhYC11m.js";
|
|
85
85
|
import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, x as getSkillsSnapshotVersion } from "./skill-commands-Bz5sreu5.js";
|
|
86
86
|
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-C87_fedd.js";
|
|
87
87
|
import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary, s as deriveSessionTotalTokens } from "./session-cost-usage-RPrhIvZF.js";
|
|
88
|
-
import { a as normalizeIMessageHandle, c as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, i as isAllowedIMessageSender, o as parseIMessageTarget, r as formatIMessageChatTarget, s as createIMessageRpcClient, t as sendMessageIMessage } from "./send-
|
|
89
|
-
import { r as detectBinary } from "./onboard-helpers-
|
|
88
|
+
import { a as normalizeIMessageHandle, c as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, i as isAllowedIMessageSender, o as parseIMessageTarget, r as formatIMessageChatTarget, s as createIMessageRpcClient, t as sendMessageIMessage } from "./send-BUBES34Y.js";
|
|
89
|
+
import { r as detectBinary } from "./onboard-helpers-O6bxf40E.js";
|
|
90
90
|
import { t as resolvePairingIdLabel } from "./pairing-labels-CTL1gXZb.js";
|
|
91
91
|
import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-D4P4IiJ6.js";
|
|
92
92
|
import { t as getActiveWebListener } from "./active-listener-Cif6x8mY.js";
|
|
@@ -94,8 +94,8 @@ import { _ as getTrustedSafeBinDirs, b as buildSafeShellCommand, d as resolveExe
|
|
|
94
94
|
import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeUrlToFile, g as normalizePathPrepend, h as mergePathPrepend, i as parseEnvPairs, l as parseCameraSnapPayload, m as applyPathPrepend, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as buildNodeShellCommand, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-BZS89z6C.js";
|
|
95
95
|
import { n as parseNodeList, r as parsePairingList, t as resolveNodeIdFromCandidates } from "./node-match-D3rffA64.js";
|
|
96
96
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-CjL9F9WT.js";
|
|
97
|
-
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-
|
|
98
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
97
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-BE7fB_Cf.js";
|
|
98
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-DQX3HXS4.js";
|
|
99
99
|
import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-CZ1Rrj7O.js";
|
|
100
100
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-DF8wPn-_.js";
|
|
101
101
|
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-9fIQGtZy.js";
|
|
@@ -9782,16 +9782,16 @@ function shouldComputeCommandAuthorized(text, cfg, options) {
|
|
|
9782
9782
|
|
|
9783
9783
|
//#endregion
|
|
9784
9784
|
//#region src/channels/sender-label.ts
|
|
9785
|
-
function normalize(value) {
|
|
9785
|
+
function normalize$1(value) {
|
|
9786
9786
|
const trimmed = value?.trim();
|
|
9787
9787
|
return trimmed ? trimmed : void 0;
|
|
9788
9788
|
}
|
|
9789
9789
|
function resolveSenderLabel(params) {
|
|
9790
|
-
const name = normalize(params.name);
|
|
9791
|
-
const username = normalize(params.username);
|
|
9792
|
-
const tag = normalize(params.tag);
|
|
9793
|
-
const e164 = normalize(params.e164);
|
|
9794
|
-
const id = normalize(params.id);
|
|
9790
|
+
const name = normalize$1(params.name);
|
|
9791
|
+
const username = normalize$1(params.username);
|
|
9792
|
+
const tag = normalize$1(params.tag);
|
|
9793
|
+
const e164 = normalize$1(params.e164);
|
|
9794
|
+
const id = normalize$1(params.id);
|
|
9795
9795
|
const display = name ?? username ?? tag ?? "";
|
|
9796
9796
|
const idPart = e164 ?? id ?? "";
|
|
9797
9797
|
if (display && idPart && display !== idPart) return `${display} (${idPart})`;
|
|
@@ -10502,7 +10502,7 @@ async function routeReply(params) {
|
|
|
10502
10502
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
10503
10503
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
10504
10504
|
try {
|
|
10505
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
10505
|
+
const { deliverOutboundPayloads } = await import("./deliver-Cqk3zmyW.js").then((n) => n.n);
|
|
10506
10506
|
return {
|
|
10507
10507
|
ok: true,
|
|
10508
10508
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -13052,7 +13052,7 @@ async function describeStickerImage(params) {
|
|
|
13052
13052
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
13053
13053
|
try {
|
|
13054
13054
|
const buffer = await fs$1.readFile(imagePath);
|
|
13055
|
-
const { describeImageWithModel } = await import("./image-
|
|
13055
|
+
const { describeImageWithModel } = await import("./image-B6aY1oY3.js").then((n) => n.n);
|
|
13056
13056
|
return (await describeImageWithModel({
|
|
13057
13057
|
buffer,
|
|
13058
13058
|
fileName: "sticker.webp",
|
|
@@ -13475,7 +13475,7 @@ function createWhatsAppLoginTool() {
|
|
|
13475
13475
|
force: Type.Optional(Type.Boolean())
|
|
13476
13476
|
}),
|
|
13477
13477
|
execute: async (_toolCallId, args) => {
|
|
13478
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
13478
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-Ft17VIG6.js");
|
|
13479
13479
|
if ((args?.action ?? "start") === "wait") {
|
|
13480
13480
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
13481
13481
|
return {
|
|
@@ -15691,7 +15691,7 @@ async function preflightDiscordMessage(params) {
|
|
|
15691
15691
|
let preflightTranscript;
|
|
15692
15692
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
15693
15693
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
15694
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
15694
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-CwbuWmdG.js");
|
|
15695
15695
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
15696
15696
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
15697
15697
|
ctx: {
|
|
@@ -22469,6 +22469,38 @@ async function runWithImageModelFallback(params) {
|
|
|
22469
22469
|
//#endregion
|
|
22470
22470
|
//#region src/config/model-profiles-builtin.ts
|
|
22471
22471
|
/**
|
|
22472
|
+
* Shared safety + output-style additions applied to most built-in profiles
|
|
22473
|
+
* and the Generic fallback. These rules came from a long history of
|
|
22474
|
+
* model-specific bugs (verification-monologue padding, "I have addressed"
|
|
22475
|
+
* preambles, post-answer assessment lists). Keeping them in one place
|
|
22476
|
+
* means a new profile inherits sane defaults instead of starting empty.
|
|
22477
|
+
*
|
|
22478
|
+
* Stage 2.4 of the prompt-reduction plan: rules that ALL profiles need
|
|
22479
|
+
* live here; profile-specific rules (control-token stripping, tool-arg
|
|
22480
|
+
* cleanup, reasoning hints) live in their own per-profile additions.
|
|
22481
|
+
*
|
|
22482
|
+
* Exported so resolve-model-profile.ts can apply the same additions to
|
|
22483
|
+
* the Generic fallback profile — no model resolves to "Generic" without
|
|
22484
|
+
* inheriting the safety/style rules.
|
|
22485
|
+
*/
|
|
22486
|
+
const SAFETY_AND_STYLE_ADDITIONS = [
|
|
22487
|
+
"CRITICAL OUTPUT RULES:",
|
|
22488
|
+
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
22489
|
+
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
22490
|
+
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
22491
|
+
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
22492
|
+
"- If you need to verify your work, do so before writing your response, not after.",
|
|
22493
|
+
"- Send brief progress updates on long tasks so the user knows you are active."
|
|
22494
|
+
];
|
|
22495
|
+
/** Hint for native-reasoning models (Nemotron, Qwen 3.5/3.6) to keep
|
|
22496
|
+
* planning internal. Not applied to Gemma/Ollama because those models
|
|
22497
|
+
* don't have structured thinking and the rule confuses them. */
|
|
22498
|
+
const REASONING_DISCIPLINE_ADDITION = "- Keep planning and reasoning internal. Only speak when you have a result or need user input.";
|
|
22499
|
+
/** Hint for models that leak Gemma-style control tokens (Gemma family,
|
|
22500
|
+
* Ollama hosting any uncensored open model). Forces tool-arg cleanup and
|
|
22501
|
+
* forbids leaking turn markers in user-visible text. */
|
|
22502
|
+
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."];
|
|
22503
|
+
/**
|
|
22472
22504
|
* Built-in model profiles. Ordered from most-specific to least-specific so
|
|
22473
22505
|
* that `resolveModelProfile` can return the first match.
|
|
22474
22506
|
*
|
|
@@ -22502,17 +22534,7 @@ const BUILTIN_PROFILES = [
|
|
|
22502
22534
|
hasStructuredThinking: false,
|
|
22503
22535
|
validateToolArgs: true
|
|
22504
22536
|
},
|
|
22505
|
-
promptAdditions: [
|
|
22506
|
-
"CRITICAL OUTPUT RULES:",
|
|
22507
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
22508
|
-
"- Do not output raw control tokens, channel tags, or turn markers.",
|
|
22509
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
22510
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
22511
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
22512
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
22513
|
-
"- Send brief progress updates on long tasks so the user knows you are active.",
|
|
22514
|
-
"- 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."
|
|
22515
|
-
],
|
|
22537
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, ...CONTROL_TOKEN_ADDITIONS],
|
|
22516
22538
|
ui: {
|
|
22517
22539
|
badge: "Local",
|
|
22518
22540
|
watchdogMs: 9e5,
|
|
@@ -22539,16 +22561,7 @@ const BUILTIN_PROFILES = [
|
|
|
22539
22561
|
hasStructuredThinking: true,
|
|
22540
22562
|
validateToolArgs: false
|
|
22541
22563
|
},
|
|
22542
|
-
promptAdditions: [
|
|
22543
|
-
"CRITICAL OUTPUT RULES:",
|
|
22544
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
22545
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
22546
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
22547
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
22548
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
22549
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
22550
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
22551
|
-
],
|
|
22564
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
22552
22565
|
ui: {
|
|
22553
22566
|
badge: "Local",
|
|
22554
22567
|
watchdogMs: 9e5,
|
|
@@ -22574,7 +22587,7 @@ const BUILTIN_PROFILES = [
|
|
|
22574
22587
|
hasStructuredThinking: true,
|
|
22575
22588
|
validateToolArgs: false
|
|
22576
22589
|
},
|
|
22577
|
-
promptAdditions: [],
|
|
22590
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS],
|
|
22578
22591
|
ui: {
|
|
22579
22592
|
badge: "API",
|
|
22580
22593
|
watchdogMs: 3e5,
|
|
@@ -22607,15 +22620,7 @@ const BUILTIN_PROFILES = [
|
|
|
22607
22620
|
hasStructuredThinking: true,
|
|
22608
22621
|
validateToolArgs: false
|
|
22609
22622
|
},
|
|
22610
|
-
promptAdditions: [
|
|
22611
|
-
"CRITICAL OUTPUT RULES:",
|
|
22612
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
22613
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
22614
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
22615
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
22616
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
22617
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
22618
|
-
],
|
|
22623
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
22619
22624
|
ui: {
|
|
22620
22625
|
badge: "Spider",
|
|
22621
22626
|
watchdogMs: 9e5,
|
|
@@ -22648,16 +22653,7 @@ const BUILTIN_PROFILES = [
|
|
|
22648
22653
|
hasStructuredThinking: false,
|
|
22649
22654
|
validateToolArgs: true
|
|
22650
22655
|
},
|
|
22651
|
-
promptAdditions: [
|
|
22652
|
-
"CRITICAL OUTPUT RULES:",
|
|
22653
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
22654
|
-
"- Do not output raw control tokens, channel tags, or turn markers.",
|
|
22655
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
22656
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
22657
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
22658
|
-
"- Send brief progress updates on long tasks so the user knows you are active.",
|
|
22659
|
-
"- 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."
|
|
22660
|
-
],
|
|
22656
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, ...CONTROL_TOKEN_ADDITIONS],
|
|
22661
22657
|
ui: {
|
|
22662
22658
|
badge: "Spider",
|
|
22663
22659
|
watchdogMs: 6e5,
|
|
@@ -22689,16 +22685,7 @@ const BUILTIN_PROFILES = [
|
|
|
22689
22685
|
hasStructuredThinking: true,
|
|
22690
22686
|
validateToolArgs: false
|
|
22691
22687
|
},
|
|
22692
|
-
promptAdditions: [
|
|
22693
|
-
"CRITICAL OUTPUT RULES:",
|
|
22694
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
22695
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
22696
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
22697
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
22698
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
22699
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
22700
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
22701
|
-
],
|
|
22688
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
22702
22689
|
ui: {
|
|
22703
22690
|
badge: "CoreWeave",
|
|
22704
22691
|
watchdogMs: 9e5,
|
|
@@ -22709,7 +22696,15 @@ const BUILTIN_PROFILES = [
|
|
|
22709
22696
|
|
|
22710
22697
|
//#endregion
|
|
22711
22698
|
//#region src/config/resolve-model-profile.ts
|
|
22712
|
-
/**
|
|
22699
|
+
/**
|
|
22700
|
+
* Default profile returned when no match is found.
|
|
22701
|
+
*
|
|
22702
|
+
* Stage 2.4 of the prompt-reduction plan: the Generic fallback now ships
|
|
22703
|
+
* the same safety+style additions as every named profile, so newly-added
|
|
22704
|
+
* models without a profile entry inherit sane defaults instead of
|
|
22705
|
+
* starting empty (which would silently regress safety rules until someone
|
|
22706
|
+
* notices and adds a profile).
|
|
22707
|
+
*/
|
|
22713
22708
|
const FALLBACK_PROFILE = {
|
|
22714
22709
|
match: "*",
|
|
22715
22710
|
label: "Generic",
|
|
@@ -22728,7 +22723,7 @@ const FALLBACK_PROFILE = {
|
|
|
22728
22723
|
hasStructuredThinking: false,
|
|
22729
22724
|
validateToolArgs: false
|
|
22730
22725
|
},
|
|
22731
|
-
promptAdditions: [],
|
|
22726
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS],
|
|
22732
22727
|
ui: {
|
|
22733
22728
|
watchdogMs: 3e5,
|
|
22734
22729
|
armWatchdogOnSend: true
|
|
@@ -29225,6 +29220,86 @@ async function prepareSessionManagerForRun(params) {
|
|
|
29225
29220
|
}
|
|
29226
29221
|
}
|
|
29227
29222
|
|
|
29223
|
+
//#endregion
|
|
29224
|
+
//#region src/agents/system-prompt-skills-autoload.ts
|
|
29225
|
+
const FRONTMATTER_RE = /^---\s*\n[\s\S]*?\n---\s*\n?/;
|
|
29226
|
+
let cachedPackageRoot;
|
|
29227
|
+
function getPackageRoot() {
|
|
29228
|
+
if (cachedPackageRoot === void 0) cachedPackageRoot = resolveSymiPackageRootSync({});
|
|
29229
|
+
return cachedPackageRoot;
|
|
29230
|
+
}
|
|
29231
|
+
function safeSkillName(name) {
|
|
29232
|
+
return /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/.test(name);
|
|
29233
|
+
}
|
|
29234
|
+
function tryLoadSkill(skillName, root) {
|
|
29235
|
+
const skillPath = path.join(root, "skills", skillName, "SKILL.md");
|
|
29236
|
+
try {
|
|
29237
|
+
if (!fs.statSync(skillPath).isFile()) return null;
|
|
29238
|
+
} catch {
|
|
29239
|
+
return null;
|
|
29240
|
+
}
|
|
29241
|
+
try {
|
|
29242
|
+
return fs.readFileSync(skillPath, "utf8");
|
|
29243
|
+
} catch {
|
|
29244
|
+
return null;
|
|
29245
|
+
}
|
|
29246
|
+
}
|
|
29247
|
+
function stripFrontmatter(body) {
|
|
29248
|
+
return body.replace(FRONTMATTER_RE, "").trimStart();
|
|
29249
|
+
}
|
|
29250
|
+
/**
|
|
29251
|
+
* Resolves and loads each named skill. Returns the inlinable Markdown block,
|
|
29252
|
+
* or empty string when no skills loaded / minimal mode / no names supplied.
|
|
29253
|
+
*/
|
|
29254
|
+
function buildAutoLoadedSkillsBlock(opts) {
|
|
29255
|
+
if (opts.minimalMode) return "";
|
|
29256
|
+
const names = opts.skillNames.filter((n) => typeof n === "string" && n.trim().length > 0);
|
|
29257
|
+
if (names.length === 0) return "";
|
|
29258
|
+
const packageRoot = getPackageRoot();
|
|
29259
|
+
const loaded = [];
|
|
29260
|
+
for (const rawName of names) {
|
|
29261
|
+
const name = rawName.trim();
|
|
29262
|
+
if (!safeSkillName(name)) {
|
|
29263
|
+
logWarn(`autoLoadInline: skipping invalid skill name '${rawName}'`);
|
|
29264
|
+
continue;
|
|
29265
|
+
}
|
|
29266
|
+
let body = null;
|
|
29267
|
+
let source = "bundled";
|
|
29268
|
+
if (opts.workspaceDir) {
|
|
29269
|
+
body = tryLoadSkill(name, opts.workspaceDir);
|
|
29270
|
+
source = "workspace";
|
|
29271
|
+
}
|
|
29272
|
+
if (body === null && packageRoot) {
|
|
29273
|
+
body = tryLoadSkill(name, packageRoot);
|
|
29274
|
+
source = "bundled";
|
|
29275
|
+
}
|
|
29276
|
+
if (body === null) {
|
|
29277
|
+
logWarn(`autoLoadInline: skill '${name}' not found in workspace or bundled skills`);
|
|
29278
|
+
continue;
|
|
29279
|
+
}
|
|
29280
|
+
const stripped = stripFrontmatter(body).trim();
|
|
29281
|
+
if (!stripped) {
|
|
29282
|
+
logWarn(`autoLoadInline: skill '${name}' has empty body after frontmatter strip; skipping`);
|
|
29283
|
+
continue;
|
|
29284
|
+
}
|
|
29285
|
+
loaded.push({
|
|
29286
|
+
name,
|
|
29287
|
+
body: stripped,
|
|
29288
|
+
source
|
|
29289
|
+
});
|
|
29290
|
+
}
|
|
29291
|
+
if (loaded.length === 0) return "";
|
|
29292
|
+
return [
|
|
29293
|
+
"",
|
|
29294
|
+
"---",
|
|
29295
|
+
"",
|
|
29296
|
+
"## Auto-loaded Skills",
|
|
29297
|
+
"",
|
|
29298
|
+
loaded.map((skill) => `<!-- auto-loaded: ${skill.name} (${skill.source}) -->\n${skill.body}`).join("\n\n---\n\n"),
|
|
29299
|
+
""
|
|
29300
|
+
].join("\n");
|
|
29301
|
+
}
|
|
29302
|
+
|
|
29228
29303
|
//#endregion
|
|
29229
29304
|
//#region src/agents/tool-summaries.ts
|
|
29230
29305
|
function buildToolSummaryMap(tools) {
|
|
@@ -29240,7 +29315,7 @@ function buildToolSummaryMap(tools) {
|
|
|
29240
29315
|
//#endregion
|
|
29241
29316
|
//#region src/agents/pi-embedded-runner/system-prompt.ts
|
|
29242
29317
|
function buildEmbeddedSystemPrompt(params) {
|
|
29243
|
-
|
|
29318
|
+
const corePrompt = buildAgentSystemPrompt({
|
|
29244
29319
|
workspaceDir: params.workspaceDir,
|
|
29245
29320
|
defaultThinkLevel: params.defaultThinkLevel,
|
|
29246
29321
|
reasoningLevel: params.reasoningLevel,
|
|
@@ -29268,6 +29343,14 @@ function buildEmbeddedSystemPrompt(params) {
|
|
|
29268
29343
|
contextFiles: params.contextFiles,
|
|
29269
29344
|
memoryCitationsMode: params.memoryCitationsMode
|
|
29270
29345
|
});
|
|
29346
|
+
const promptMode = params.promptMode ?? "full";
|
|
29347
|
+
const isMinimal = promptMode === "minimal" || promptMode === "none";
|
|
29348
|
+
const skillsBlock = buildAutoLoadedSkillsBlock({
|
|
29349
|
+
skillNames: params.autoLoadInlineSkills ?? [],
|
|
29350
|
+
workspaceDir: params.workspaceDir,
|
|
29351
|
+
minimalMode: isMinimal
|
|
29352
|
+
});
|
|
29353
|
+
return skillsBlock ? `${corePrompt}${skillsBlock}` : corePrompt;
|
|
29271
29354
|
}
|
|
29272
29355
|
function createSystemPromptOverride(systemPrompt) {
|
|
29273
29356
|
const override = systemPrompt.trim();
|
|
@@ -30055,7 +30138,8 @@ async function runEmbeddedAttempt(params) {
|
|
|
30055
30138
|
userTime,
|
|
30056
30139
|
userTimeFormat,
|
|
30057
30140
|
contextFiles,
|
|
30058
|
-
memoryCitationsMode: params.config?.memory?.citations
|
|
30141
|
+
memoryCitationsMode: params.config?.memory?.citations,
|
|
30142
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline
|
|
30059
30143
|
});
|
|
30060
30144
|
const systemPromptReport = buildSystemPromptReport({
|
|
30061
30145
|
source: "run",
|
|
@@ -31935,27 +32019,27 @@ async function runAgentTurn(params) {
|
|
|
31935
32019
|
function createDefaultDeps() {
|
|
31936
32020
|
return {
|
|
31937
32021
|
sendMessageWhatsApp: async (...args) => {
|
|
31938
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
32022
|
+
const { sendMessageWhatsApp } = await import("./web-CqeSgivQ.js");
|
|
31939
32023
|
return await sendMessageWhatsApp(...args);
|
|
31940
32024
|
},
|
|
31941
32025
|
sendMessageTelegram: async (...args) => {
|
|
31942
|
-
const { sendMessageTelegram } = await import("./send-
|
|
32026
|
+
const { sendMessageTelegram } = await import("./send-BaSqjfd_.js").then((n) => n.l);
|
|
31943
32027
|
return await sendMessageTelegram(...args);
|
|
31944
32028
|
},
|
|
31945
32029
|
sendMessageDiscord: async (...args) => {
|
|
31946
|
-
const { sendMessageDiscord } = await import("./send-
|
|
32030
|
+
const { sendMessageDiscord } = await import("./send-DNqcjLyg.js").then((n) => n.t);
|
|
31947
32031
|
return await sendMessageDiscord(...args);
|
|
31948
32032
|
},
|
|
31949
32033
|
sendMessageSlack: async (...args) => {
|
|
31950
|
-
const { sendMessageSlack } = await import("./send-
|
|
32034
|
+
const { sendMessageSlack } = await import("./send-llekTUks.js").then((n) => n.n);
|
|
31951
32035
|
return await sendMessageSlack(...args);
|
|
31952
32036
|
},
|
|
31953
32037
|
sendMessageSignal: async (...args) => {
|
|
31954
|
-
const { sendMessageSignal } = await import("./send-
|
|
32038
|
+
const { sendMessageSignal } = await import("./send-BPBFuPrC.js").then((n) => n.i);
|
|
31955
32039
|
return await sendMessageSignal(...args);
|
|
31956
32040
|
},
|
|
31957
32041
|
sendMessageIMessage: async (...args) => {
|
|
31958
|
-
const { sendMessageIMessage } = await import("./send-
|
|
32042
|
+
const { sendMessageIMessage } = await import("./send-BUBES34Y.js").then((n) => n.n);
|
|
31959
32043
|
return await sendMessageIMessage(...args);
|
|
31960
32044
|
}
|
|
31961
32045
|
};
|
|
@@ -43506,7 +43590,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
43506
43590
|
});
|
|
43507
43591
|
const deliverSlashPayloads = async (replies) => {
|
|
43508
43592
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
43509
|
-
import("./replies-
|
|
43593
|
+
import("./replies-CPhYC11m.js").then((n) => n.r),
|
|
43510
43594
|
import("./chunk-DIi9uyC6.js").then((n) => n.s),
|
|
43511
43595
|
import("./markdown-tables-kCfKPOgH.js").then((n) => n.t)
|
|
43512
43596
|
]);
|
|
@@ -48200,7 +48284,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
48200
48284
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
48201
48285
|
let preflightTranscript;
|
|
48202
48286
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
48203
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
48287
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-CwbuWmdG.js");
|
|
48204
48288
|
preflightTranscript = await transcribeFirstAudio({
|
|
48205
48289
|
ctx: {
|
|
48206
48290
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -50354,23 +50438,23 @@ let webLoginQrPromise = null;
|
|
|
50354
50438
|
let webChannelPromise = null;
|
|
50355
50439
|
let whatsappActionsPromise = null;
|
|
50356
50440
|
function loadWebOutbound() {
|
|
50357
|
-
webOutboundPromise ??= import("./outbound-
|
|
50441
|
+
webOutboundPromise ??= import("./outbound-DlWjA7jN.js").then((n) => n.t);
|
|
50358
50442
|
return webOutboundPromise;
|
|
50359
50443
|
}
|
|
50360
50444
|
function loadWebLogin() {
|
|
50361
|
-
webLoginPromise ??= import("./login-
|
|
50445
|
+
webLoginPromise ??= import("./login-DwBazcKM.js").then((n) => n.n);
|
|
50362
50446
|
return webLoginPromise;
|
|
50363
50447
|
}
|
|
50364
50448
|
function loadWebLoginQr() {
|
|
50365
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
50449
|
+
webLoginQrPromise ??= import("./login-qr-Ft17VIG6.js");
|
|
50366
50450
|
return webLoginQrPromise;
|
|
50367
50451
|
}
|
|
50368
50452
|
function loadWebChannel() {
|
|
50369
|
-
webChannelPromise ??= import("./web-
|
|
50453
|
+
webChannelPromise ??= import("./web-CqeSgivQ.js");
|
|
50370
50454
|
return webChannelPromise;
|
|
50371
50455
|
}
|
|
50372
50456
|
function loadWhatsAppActions() {
|
|
50373
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
50457
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-D5RBK0Cm.js");
|
|
50374
50458
|
return whatsappActionsPromise;
|
|
50375
50459
|
}
|
|
50376
50460
|
function createPluginRuntime() {
|
|
@@ -54060,6 +54144,91 @@ function wrapToolWithAbortSignal(tool, abortSignal) {
|
|
|
54060
54144
|
};
|
|
54061
54145
|
}
|
|
54062
54146
|
|
|
54147
|
+
//#endregion
|
|
54148
|
+
//#region src/agents/pi-tools.read-edit-guard.ts
|
|
54149
|
+
const RETRY_GUIDANCE_SUFFIX$1 = " Read the file first, then retry the edit.";
|
|
54150
|
+
function readGuardError(filePath) {
|
|
54151
|
+
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}`);
|
|
54152
|
+
}
|
|
54153
|
+
function extractPath(args) {
|
|
54154
|
+
if (!args || typeof args !== "object") return;
|
|
54155
|
+
const record = args;
|
|
54156
|
+
const candidate = record.path ?? record.file_path;
|
|
54157
|
+
if (typeof candidate !== "string") return;
|
|
54158
|
+
const trimmed = candidate.trim();
|
|
54159
|
+
return trimmed.length > 0 ? trimmed : void 0;
|
|
54160
|
+
}
|
|
54161
|
+
function wrapReadToolWithTracker(tool, tracker) {
|
|
54162
|
+
return {
|
|
54163
|
+
...tool,
|
|
54164
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
54165
|
+
const result = await tool.execute(toolCallId, args, signal, onUpdate);
|
|
54166
|
+
if (!(!!result && typeof result === "object" && result.isError === true)) {
|
|
54167
|
+
const filePath = extractPath(args);
|
|
54168
|
+
if (filePath) tracker.recordRead(filePath);
|
|
54169
|
+
}
|
|
54170
|
+
return result;
|
|
54171
|
+
}
|
|
54172
|
+
};
|
|
54173
|
+
}
|
|
54174
|
+
function wrapWriteToolWithTracker(tool, tracker) {
|
|
54175
|
+
return {
|
|
54176
|
+
...tool,
|
|
54177
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
54178
|
+
const result = await tool.execute(toolCallId, args, signal, onUpdate);
|
|
54179
|
+
if (!(!!result && typeof result === "object" && result.isError === true)) {
|
|
54180
|
+
const filePath = extractPath(args);
|
|
54181
|
+
if (filePath) tracker.recordWrite(filePath);
|
|
54182
|
+
}
|
|
54183
|
+
return result;
|
|
54184
|
+
}
|
|
54185
|
+
};
|
|
54186
|
+
}
|
|
54187
|
+
function wrapEditToolWithGuard(tool, tracker) {
|
|
54188
|
+
return {
|
|
54189
|
+
...tool,
|
|
54190
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
54191
|
+
const filePath = extractPath(args);
|
|
54192
|
+
if (filePath && !tracker.hasObserved(filePath)) throw readGuardError(filePath);
|
|
54193
|
+
return tool.execute(toolCallId, args, signal, onUpdate);
|
|
54194
|
+
}
|
|
54195
|
+
};
|
|
54196
|
+
}
|
|
54197
|
+
|
|
54198
|
+
//#endregion
|
|
54199
|
+
//#region src/agents/pi-tools.read-edit-tracker.ts
|
|
54200
|
+
function normalize(filePath, workspaceRoot) {
|
|
54201
|
+
if (!workspaceRoot) return filePath;
|
|
54202
|
+
if (path.isAbsolute(filePath)) return path.normalize(filePath);
|
|
54203
|
+
return path.resolve(workspaceRoot, filePath);
|
|
54204
|
+
}
|
|
54205
|
+
function createReadEditTracker(opts = {}) {
|
|
54206
|
+
const observed = /* @__PURE__ */ new Map();
|
|
54207
|
+
const record = (filePath, kind) => {
|
|
54208
|
+
if (typeof filePath !== "string" || !filePath.trim()) return;
|
|
54209
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
54210
|
+
const prior = observed.get(key);
|
|
54211
|
+
if (kind === "written" || prior !== "written") observed.set(key, kind);
|
|
54212
|
+
};
|
|
54213
|
+
return {
|
|
54214
|
+
recordRead: (filePath) => record(filePath, "read"),
|
|
54215
|
+
recordWrite: (filePath) => record(filePath, "written"),
|
|
54216
|
+
observation: (filePath) => {
|
|
54217
|
+
if (typeof filePath !== "string" || !filePath.trim()) return null;
|
|
54218
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
54219
|
+
return observed.get(key) ?? null;
|
|
54220
|
+
},
|
|
54221
|
+
hasObserved: (filePath) => {
|
|
54222
|
+
if (typeof filePath !== "string" || !filePath.trim()) return false;
|
|
54223
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
54224
|
+
return observed.has(key);
|
|
54225
|
+
},
|
|
54226
|
+
reset: () => {
|
|
54227
|
+
observed.clear();
|
|
54228
|
+
}
|
|
54229
|
+
};
|
|
54230
|
+
}
|
|
54231
|
+
|
|
54063
54232
|
//#endregion
|
|
54064
54233
|
//#region src/media/sniff-mime-from-base64.ts
|
|
54065
54234
|
async function sniffMimeFromBase64(base64) {
|
|
@@ -54385,6 +54554,22 @@ function wrapToolParamNormalization(tool, requiredParamGroups) {
|
|
|
54385
54554
|
}
|
|
54386
54555
|
};
|
|
54387
54556
|
}
|
|
54557
|
+
/**
|
|
54558
|
+
* Override a tool's description while preserving execute, parameters, and
|
|
54559
|
+
* other properties. Used by Stage 2.5 of the prompt-reduction plan to move
|
|
54560
|
+
* usage docs from the system prompt into tool descriptions where they
|
|
54561
|
+
* belong contextually.
|
|
54562
|
+
*
|
|
54563
|
+
* The replacement description should include the upstream's tool-purpose
|
|
54564
|
+
* sentence so models that only read the description (without the prompt
|
|
54565
|
+
* section) still have the same baseline understanding.
|
|
54566
|
+
*/
|
|
54567
|
+
function wrapToolWithDescriptionOverride(tool, description) {
|
|
54568
|
+
return {
|
|
54569
|
+
...tool,
|
|
54570
|
+
description
|
|
54571
|
+
};
|
|
54572
|
+
}
|
|
54388
54573
|
function wrapToolWorkspaceRootGuard(tool, root) {
|
|
54389
54574
|
return {
|
|
54390
54575
|
...tool,
|
|
@@ -56961,8 +57146,39 @@ const GatewayToolSchema = Type.Object({
|
|
|
56961
57146
|
baseHash: Type.Optional(Type.String()),
|
|
56962
57147
|
sessionKey: Type.Optional(Type.String()),
|
|
56963
57148
|
note: Type.Optional(Type.String()),
|
|
56964
|
-
restartDelayMs: Type.Optional(Type.Number())
|
|
57149
|
+
restartDelayMs: Type.Optional(Type.Number()),
|
|
57150
|
+
userRequestAcknowledgment: Type.Optional(Type.String())
|
|
56965
57151
|
});
|
|
57152
|
+
/** Actions that mutate gateway state and require explicit user authorization. */
|
|
57153
|
+
const DESTRUCTIVE_ACTIONS = new Set([
|
|
57154
|
+
"config.apply",
|
|
57155
|
+
"config.patch",
|
|
57156
|
+
"update.run"
|
|
57157
|
+
]);
|
|
57158
|
+
/** Minimum length for a meaningful authorization message. */
|
|
57159
|
+
const MIN_AUTHORIZATION_LENGTH = 10;
|
|
57160
|
+
/**
|
|
57161
|
+
* Asserts the user's request was explicitly acknowledged for destructive
|
|
57162
|
+
* actions. Throws a descriptive error if the acknowledgment is missing,
|
|
57163
|
+
* empty, or trivially short.
|
|
57164
|
+
*
|
|
57165
|
+
* NOTE: This is defense-in-depth, not a hard barrier. A determined model
|
|
57166
|
+
* could still populate the field with fabricated text. The barrier exists
|
|
57167
|
+
* to:
|
|
57168
|
+
* 1. Force the agent to deliberately compose a justification (vs. blind
|
|
57169
|
+
* tool invocation).
|
|
57170
|
+
* 2. Provide an audit trail (the acknowledgment is logged with the tool
|
|
57171
|
+
* call args).
|
|
57172
|
+
* 3. Surface for future tightening (e.g., matching against real session
|
|
57173
|
+
* history).
|
|
57174
|
+
*/
|
|
57175
|
+
function assertUserAuthorization(action, params) {
|
|
57176
|
+
if (!DESTRUCTIVE_ACTIONS.has(action)) return;
|
|
57177
|
+
const ack = params.userRequestAcknowledgment;
|
|
57178
|
+
const trimmed = typeof ack === "string" ? ack.trim() : "";
|
|
57179
|
+
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.`);
|
|
57180
|
+
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)}.`);
|
|
57181
|
+
}
|
|
56966
57182
|
function createGatewayTool(opts) {
|
|
56967
57183
|
return {
|
|
56968
57184
|
label: "Gateway",
|
|
@@ -56973,6 +57189,7 @@ function createGatewayTool(opts) {
|
|
|
56973
57189
|
execute: async (_toolCallId, args) => {
|
|
56974
57190
|
const params = args;
|
|
56975
57191
|
const action = readStringParam(params, "action", { required: true });
|
|
57192
|
+
assertUserAuthorization(action, params);
|
|
56976
57193
|
if (action === "restart") {
|
|
56977
57194
|
if (!isRestartEnabled(opts?.config)) throw new Error("Gateway restart is disabled (commands.restart=false).");
|
|
56978
57195
|
const sessionKey = typeof params.sessionKey === "string" && params.sessionKey.trim() ? params.sessionKey.trim() : opts?.agentSessionKey?.trim() || void 0;
|
|
@@ -65203,6 +65420,26 @@ function resolveToolLoopDetectionConfig(params) {
|
|
|
65203
65420
|
}
|
|
65204
65421
|
};
|
|
65205
65422
|
}
|
|
65423
|
+
/**
|
|
65424
|
+
* Edit tool description. Replaces the upstream's terse one-liner with
|
|
65425
|
+
* usage notes migrated from the system prompt's "Edit Tool Best Practices"
|
|
65426
|
+
* section in Stage 2.5 of the prompt-reduction plan. Co-locating these
|
|
65427
|
+
* notes with the tool means they ship only when edit is in palette, and
|
|
65428
|
+
* the system prompt section can be deleted in Stage 4 without losing the
|
|
65429
|
+
* guidance.
|
|
65430
|
+
*
|
|
65431
|
+
* Combined with the read-before-edit guard (Stage 1.3) and the model's
|
|
65432
|
+
* own discipline, this should kill the hallucinated-oldText failure class
|
|
65433
|
+
* for any well-intentioned model.
|
|
65434
|
+
*/
|
|
65435
|
+
const EDIT_TOOL_DESCRIPTION = [
|
|
65436
|
+
"Edit a file by replacing exact text. The oldText must match the file EXACTLY (whitespace, indentation, and all).",
|
|
65437
|
+
"Best practices to avoid match failures:",
|
|
65438
|
+
"- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
|
|
65439
|
+
"- 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.",
|
|
65440
|
+
"- 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.",
|
|
65441
|
+
"- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines)."
|
|
65442
|
+
].join(" ");
|
|
65206
65443
|
function createSymiCodingTools(options) {
|
|
65207
65444
|
const execToolName = "exec";
|
|
65208
65445
|
const sandbox = options?.sandbox?.enabled ? options.sandbox : void 0;
|
|
@@ -65265,33 +65502,34 @@ function createSymiCodingTools(options) {
|
|
|
65265
65502
|
});
|
|
65266
65503
|
if (sandboxRoot && !sandboxFsBridge) throw new Error("Sandbox filesystem bridge is unavailable.");
|
|
65267
65504
|
const imageSanitization = resolveImageSanitizationLimits(options?.config);
|
|
65505
|
+
const readEditTracker = createReadEditTracker({ workspaceRoot: sandboxRoot ?? workspaceRoot });
|
|
65268
65506
|
const base = codingTools.flatMap((tool) => {
|
|
65269
65507
|
if (tool.name === readTool.name) {
|
|
65270
65508
|
if (sandboxRoot) {
|
|
65271
|
-
const
|
|
65509
|
+
const tracked = wrapReadToolWithTracker(createSandboxedReadTool({
|
|
65272
65510
|
root: sandboxRoot,
|
|
65273
65511
|
bridge: sandboxFsBridge,
|
|
65274
65512
|
modelContextWindowTokens: options?.modelContextWindowTokens,
|
|
65275
65513
|
imageSanitization
|
|
65276
|
-
});
|
|
65277
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
65514
|
+
}), readEditTracker);
|
|
65515
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, sandboxRoot) : tracked];
|
|
65278
65516
|
}
|
|
65279
|
-
const
|
|
65517
|
+
const tracked = wrapReadToolWithTracker(createSymiReadTool(createReadTool(workspaceRoot), {
|
|
65280
65518
|
modelContextWindowTokens: options?.modelContextWindowTokens,
|
|
65281
65519
|
imageSanitization
|
|
65282
|
-
});
|
|
65283
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
65520
|
+
}), readEditTracker);
|
|
65521
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, workspaceRoot) : tracked];
|
|
65284
65522
|
}
|
|
65285
65523
|
if (tool.name === "bash" || tool.name === execToolName) return [];
|
|
65286
65524
|
if (tool.name === "write") {
|
|
65287
65525
|
if (sandboxRoot) return [];
|
|
65288
|
-
const
|
|
65289
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
65526
|
+
const tracked = wrapWriteToolWithTracker(wrapToolParamNormalization(createWriteTool(workspaceRoot), CLAUDE_PARAM_GROUPS.write), readEditTracker);
|
|
65527
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, workspaceRoot) : tracked];
|
|
65290
65528
|
}
|
|
65291
65529
|
if (tool.name === "edit") {
|
|
65292
65530
|
if (sandboxRoot) return [];
|
|
65293
|
-
const
|
|
65294
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
65531
|
+
const guarded = wrapEditToolWithGuard(wrapToolWithDescriptionOverride(wrapToolParamNormalization(createEditTool(workspaceRoot), CLAUDE_PARAM_GROUPS.edit), EDIT_TOOL_DESCRIPTION), readEditTracker);
|
|
65532
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(guarded, workspaceRoot) : guarded];
|
|
65295
65533
|
}
|
|
65296
65534
|
return [tool];
|
|
65297
65535
|
});
|
|
@@ -65334,22 +65572,18 @@ function createSymiCodingTools(options) {
|
|
|
65334
65572
|
} : void 0,
|
|
65335
65573
|
workspaceOnly: applyPatchWorkspaceOnly
|
|
65336
65574
|
});
|
|
65575
|
+
const sandboxedEditTool = sandboxRoot ? wrapEditToolWithGuard(createSandboxedEditTool({
|
|
65576
|
+
root: sandboxRoot,
|
|
65577
|
+
bridge: sandboxFsBridge
|
|
65578
|
+
}), readEditTracker) : null;
|
|
65579
|
+
const sandboxedWriteTool = sandboxRoot ? wrapWriteToolWithTracker(createSandboxedWriteTool({
|
|
65580
|
+
root: sandboxRoot,
|
|
65581
|
+
bridge: sandboxFsBridge
|
|
65582
|
+
}), readEditTracker) : null;
|
|
65337
65583
|
const withHooks = applyToolPolicyPipeline({
|
|
65338
65584
|
tools: applyOwnerOnlyToolPolicy([
|
|
65339
65585
|
...base,
|
|
65340
|
-
...sandboxRoot ? allowWorkspaceWrites ? [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
65341
|
-
root: sandboxRoot,
|
|
65342
|
-
bridge: sandboxFsBridge
|
|
65343
|
-
}), sandboxRoot) : createSandboxedEditTool({
|
|
65344
|
-
root: sandboxRoot,
|
|
65345
|
-
bridge: sandboxFsBridge
|
|
65346
|
-
}), workspaceOnly ? wrapToolWorkspaceRootGuard(createSandboxedWriteTool({
|
|
65347
|
-
root: sandboxRoot,
|
|
65348
|
-
bridge: sandboxFsBridge
|
|
65349
|
-
}), sandboxRoot) : createSandboxedWriteTool({
|
|
65350
|
-
root: sandboxRoot,
|
|
65351
|
-
bridge: sandboxFsBridge
|
|
65352
|
-
})] : [] : [],
|
|
65586
|
+
...sandboxRoot ? allowWorkspaceWrites && sandboxedEditTool && sandboxedWriteTool ? [workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedEditTool, sandboxRoot) : sandboxedEditTool, workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedWriteTool, sandboxRoot) : sandboxedWriteTool] : [] : [],
|
|
65353
65587
|
...applyPatchTool ? [applyPatchTool] : [],
|
|
65354
65588
|
execTool,
|
|
65355
65589
|
processTool,
|
|
@@ -65715,7 +65949,8 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
65715
65949
|
userTime,
|
|
65716
65950
|
userTimeFormat,
|
|
65717
65951
|
contextFiles,
|
|
65718
|
-
memoryCitationsMode: params.config?.memory?.citations
|
|
65952
|
+
memoryCitationsMode: params.config?.memory?.citations,
|
|
65953
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline
|
|
65719
65954
|
}));
|
|
65720
65955
|
const sessionLock = await acquireSessionWriteLock({
|
|
65721
65956
|
sessionFile: params.sessionFile,
|
|
@@ -73391,7 +73626,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
73391
73626
|
return;
|
|
73392
73627
|
}
|
|
73393
73628
|
try {
|
|
73394
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
73629
|
+
const { deliverOutboundPayloads } = await import("./deliver-Cqk3zmyW.js").then((n) => n.n);
|
|
73395
73630
|
await deliverOutboundPayloads({
|
|
73396
73631
|
cfg: params.cfg,
|
|
73397
73632
|
channel,
|