@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
|
@@ -4,16 +4,16 @@ import { _ as isCronSessionKey, b as resolveThreadParentSessionKey, c as normali
|
|
|
4
4
|
import { $ as warn, B as sleep$1, D as escapeRegExp, E as ensureDir$3, G as danger, I as resolveUserPath, J as logVerbose, M as normalizeE164, O as formatTerminalLink, R as shortenHomeInString, S as CONFIG_DIR, U as truncateUtf16Safe, V as sliceUtf16Safe, W as isPlainObject, X as setVerbose, Z as shouldLogVerbose, _ as matchPluginCommand, a as normalizeAnyChannelId, d as createPluginRegistry, dt as resolvePreferredSymiTmpDir, et as colorize, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, k as isRecord$1, l as requireActivePluginRegistry, lt as normalizeLogLevel, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, nt as theme, o as normalizeChannelId, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, rt as getChildLogger, tt as isRich, u as setActivePluginRegistry, v as createInternalHookEvent, w as clampInt, x as triggerInternalHook, z as shortenHomePath } from "./registry-DYq1AYOv.js";
|
|
5
5
|
import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, d as resolveSessionAgentIds, i as resolveAgentModelFallbacksOverride, l as resolveEffectiveModelFallbacks, n as resolveAgentConfig, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId } from "./agent-scope-CpEJ0B88.js";
|
|
6
6
|
import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
|
|
7
|
-
import { S as logWarn, _ as runExec, b as logError, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, i as DEFAULT_IDENTITY_FILENAME, l as ensureAgentWorkspace, m as resolveSymiPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as logInfo, y as logDebug } from "./workspace-DscDraUb.js";
|
|
7
|
+
import { S as logWarn, _ as runExec, b as logError, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, h as resolveSymiPackageRootSync, i as DEFAULT_IDENTITY_FILENAME, l as ensureAgentWorkspace, m as resolveSymiPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as logInfo, y as logDebug } from "./workspace-DscDraUb.js";
|
|
8
8
|
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-CbQV9WEg.js";
|
|
9
9
|
import { $ as resolveAuthProfileDisplayLabel, B as resolveApiKeyForProvider, C as normalizeProviderId, D as resolveModelRefFromString, E as resolveDefaultModelForAgent, F as OLLAMA_NATIVE_BASE_URL, G as getShellPathFromLoginShell, H as resolveModelAuthMode, I as createOllamaStreamFn, L as getApiKeyForModel, O as resolveSubagentSpawnModelSelection, Q as DEFAULT_PROVIDER, R as getCustomProviderApiKey, S as normalizeModelRef$2, T as resolveConfiguredModelRef, V as resolveEnvApiKey, W as normalizeSecretInput, X as DEFAULT_CONTEXT_TOKENS, Z as DEFAULT_MODEL, _ as buildConfiguredAllowlistKeys, a as markAuthProfileFailure, b as isCliProvider, c as dedupeProfileIds, d as ensureAuthProfileStore, et as resolveSymiAgentDir, f as resolveAuthStorePathForDisplay, g as buildAllowedModelSet, i as isProfileInCooldown, k as resolveThinkingDefault, l as listProfilesForProvider, n as resolveAuthProfileOrder, o as markAuthProfileUsed, p as withFileLock, q as resolveShellEnvFallbackTimeoutMs, r as getSoonestCooldownExpiry, s as resolveApiKeyForProfile, u as markAuthProfileGood, v as buildModelAliasIndex, x as modelKey, y as findNormalizedProviderValue, z as requireApiKey } from "./auth-profiles-C2vj6htZ.js";
|
|
10
10
|
import { n as formatCliCommand, r as resolveCliName, t as isTruthyEnvValue } from "./env-BDXYbTKj.js";
|
|
11
11
|
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-cCYzSU9h.js";
|
|
12
12
|
import { t as parseBooleanValue$1 } from "./boolean-CE7i9tBR.js";
|
|
13
|
-
import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-
|
|
14
|
-
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-
|
|
13
|
+
import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-DrAT2ieP.js";
|
|
14
|
+
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-BXMAsmut.js";
|
|
15
15
|
import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-CBCGTsIb.js";
|
|
16
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
16
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-B1zznUiv.js";
|
|
17
17
|
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-CXxrn_e2.js";
|
|
18
18
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-XIsvXeC-.js";
|
|
19
19
|
import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-C7CauEK8.js";
|
|
@@ -27,20 +27,20 @@ import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTele
|
|
|
27
27
|
import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-BRw8yhIW.js";
|
|
28
28
|
import { t as resolveIMessageAccount } from "./accounts-3dCrO3oZ.js";
|
|
29
29
|
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BuZxOb3B.js";
|
|
30
|
-
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-
|
|
31
|
-
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-
|
|
30
|
+
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-CyPj_MLV.js";
|
|
31
|
+
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-DlYO3ExM.js";
|
|
32
32
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-BBh3Gsrx.js";
|
|
33
33
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-SqqWIT22.js";
|
|
34
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-
|
|
34
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-nBdNxMIr.js";
|
|
35
35
|
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-BUcR3Meg.js";
|
|
36
36
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Zw87xFym.js";
|
|
37
|
-
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-
|
|
37
|
+
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-CEdTQp1F.js";
|
|
38
38
|
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-RXOlh8ar.js";
|
|
39
39
|
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-W0JzCJJM.js";
|
|
40
|
-
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-
|
|
40
|
+
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-BtbWvw2k.js";
|
|
41
41
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-CuZX_Q4t.js";
|
|
42
42
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CvEIl6_d.js";
|
|
43
|
-
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-
|
|
43
|
+
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-HASZR70T.js";
|
|
44
44
|
import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-DjnxpF_K.js";
|
|
45
45
|
import { n as retryAsync } from "./retry-B-y5suGA.js";
|
|
46
46
|
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-DeJTztcq.js";
|
|
@@ -50,7 +50,7 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-CVCB
|
|
|
50
50
|
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-ClipCZ9s.js";
|
|
51
51
|
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-7tMVY7D_.js";
|
|
52
52
|
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-DxbSTLNQ.js";
|
|
53
|
-
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-
|
|
53
|
+
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-CMvsDzah.js";
|
|
54
54
|
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-DG2lcozb.js";
|
|
55
55
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-DZQU0r3y.js";
|
|
56
56
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-ClslA6GS.js";
|
|
@@ -58,11 +58,11 @@ import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-po
|
|
|
58
58
|
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-D8QD7GoV.js";
|
|
59
59
|
import { n as normalizePollInput } from "./polls-Kt7OzYCK.js";
|
|
60
60
|
import { t as convertMarkdownTables } from "./tables-DoG-pFrf.js";
|
|
61
|
-
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-
|
|
62
|
-
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-
|
|
61
|
+
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-Dn1Pirhx.js";
|
|
62
|
+
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-C4IU_tV3.js";
|
|
63
63
|
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Jy5dFY67.js";
|
|
64
64
|
import { t as makeProxyFetch } from "./proxy-d9fklNTC.js";
|
|
65
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
65
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-IkylJ7lX.js";
|
|
66
66
|
import { t as getActiveWebListener } from "./active-listener-BVZOh2T1.js";
|
|
67
67
|
import { createRequire } from "node:module";
|
|
68
68
|
import * as path$1 from "node:path";
|
|
@@ -105,6 +105,38 @@ import { apiThrottler } from "@grammyjs/transformer-throttler";
|
|
|
105
105
|
|
|
106
106
|
//#region src/config/model-profiles-builtin.ts
|
|
107
107
|
/**
|
|
108
|
+
* Shared safety + output-style additions applied to most built-in profiles
|
|
109
|
+
* and the Generic fallback. These rules came from a long history of
|
|
110
|
+
* model-specific bugs (verification-monologue padding, "I have addressed"
|
|
111
|
+
* preambles, post-answer assessment lists). Keeping them in one place
|
|
112
|
+
* means a new profile inherits sane defaults instead of starting empty.
|
|
113
|
+
*
|
|
114
|
+
* Stage 2.4 of the prompt-reduction plan: rules that ALL profiles need
|
|
115
|
+
* live here; profile-specific rules (control-token stripping, tool-arg
|
|
116
|
+
* cleanup, reasoning hints) live in their own per-profile additions.
|
|
117
|
+
*
|
|
118
|
+
* Exported so resolve-model-profile.ts can apply the same additions to
|
|
119
|
+
* the Generic fallback profile — no model resolves to "Generic" without
|
|
120
|
+
* inheriting the safety/style rules.
|
|
121
|
+
*/
|
|
122
|
+
const SAFETY_AND_STYLE_ADDITIONS = [
|
|
123
|
+
"CRITICAL OUTPUT RULES:",
|
|
124
|
+
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
125
|
+
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
126
|
+
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
127
|
+
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
128
|
+
"- If you need to verify your work, do so before writing your response, not after.",
|
|
129
|
+
"- Send brief progress updates on long tasks so the user knows you are active."
|
|
130
|
+
];
|
|
131
|
+
/** Hint for native-reasoning models (Nemotron, Qwen 3.5/3.6) to keep
|
|
132
|
+
* planning internal. Not applied to Gemma/Ollama because those models
|
|
133
|
+
* don't have structured thinking and the rule confuses them. */
|
|
134
|
+
const REASONING_DISCIPLINE_ADDITION = "- Keep planning and reasoning internal. Only speak when you have a result or need user input.";
|
|
135
|
+
/** Hint for models that leak Gemma-style control tokens (Gemma family,
|
|
136
|
+
* Ollama hosting any uncensored open model). Forces tool-arg cleanup and
|
|
137
|
+
* forbids leaking turn markers in user-visible text. */
|
|
138
|
+
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."];
|
|
139
|
+
/**
|
|
108
140
|
* Built-in model profiles. Ordered from most-specific to least-specific so
|
|
109
141
|
* that `resolveModelProfile` can return the first match.
|
|
110
142
|
*
|
|
@@ -138,17 +170,7 @@ const BUILTIN_PROFILES = [
|
|
|
138
170
|
hasStructuredThinking: false,
|
|
139
171
|
validateToolArgs: true
|
|
140
172
|
},
|
|
141
|
-
promptAdditions: [
|
|
142
|
-
"CRITICAL OUTPUT RULES:",
|
|
143
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
144
|
-
"- Do not output raw control tokens, channel tags, or turn markers.",
|
|
145
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
146
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
147
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
148
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
149
|
-
"- Send brief progress updates on long tasks so the user knows you are active.",
|
|
150
|
-
"- 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."
|
|
151
|
-
],
|
|
173
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, ...CONTROL_TOKEN_ADDITIONS],
|
|
152
174
|
ui: {
|
|
153
175
|
badge: "Local",
|
|
154
176
|
watchdogMs: 9e5,
|
|
@@ -175,16 +197,7 @@ const BUILTIN_PROFILES = [
|
|
|
175
197
|
hasStructuredThinking: true,
|
|
176
198
|
validateToolArgs: false
|
|
177
199
|
},
|
|
178
|
-
promptAdditions: [
|
|
179
|
-
"CRITICAL OUTPUT RULES:",
|
|
180
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
181
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
182
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
183
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
184
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
185
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
186
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
187
|
-
],
|
|
200
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
188
201
|
ui: {
|
|
189
202
|
badge: "Local",
|
|
190
203
|
watchdogMs: 9e5,
|
|
@@ -210,7 +223,7 @@ const BUILTIN_PROFILES = [
|
|
|
210
223
|
hasStructuredThinking: true,
|
|
211
224
|
validateToolArgs: false
|
|
212
225
|
},
|
|
213
|
-
promptAdditions: [],
|
|
226
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS],
|
|
214
227
|
ui: {
|
|
215
228
|
badge: "API",
|
|
216
229
|
watchdogMs: 3e5,
|
|
@@ -243,15 +256,7 @@ const BUILTIN_PROFILES = [
|
|
|
243
256
|
hasStructuredThinking: true,
|
|
244
257
|
validateToolArgs: false
|
|
245
258
|
},
|
|
246
|
-
promptAdditions: [
|
|
247
|
-
"CRITICAL OUTPUT RULES:",
|
|
248
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
249
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
250
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
251
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
252
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
253
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
254
|
-
],
|
|
259
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
255
260
|
ui: {
|
|
256
261
|
badge: "Spider",
|
|
257
262
|
watchdogMs: 9e5,
|
|
@@ -284,16 +289,7 @@ const BUILTIN_PROFILES = [
|
|
|
284
289
|
hasStructuredThinking: false,
|
|
285
290
|
validateToolArgs: true
|
|
286
291
|
},
|
|
287
|
-
promptAdditions: [
|
|
288
|
-
"CRITICAL OUTPUT RULES:",
|
|
289
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
290
|
-
"- Do not output raw control tokens, channel tags, or turn markers.",
|
|
291
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
292
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
293
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
294
|
-
"- Send brief progress updates on long tasks so the user knows you are active.",
|
|
295
|
-
"- 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."
|
|
296
|
-
],
|
|
292
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, ...CONTROL_TOKEN_ADDITIONS],
|
|
297
293
|
ui: {
|
|
298
294
|
badge: "Spider",
|
|
299
295
|
watchdogMs: 6e5,
|
|
@@ -325,16 +321,7 @@ const BUILTIN_PROFILES = [
|
|
|
325
321
|
hasStructuredThinking: true,
|
|
326
322
|
validateToolArgs: false
|
|
327
323
|
},
|
|
328
|
-
promptAdditions: [
|
|
329
|
-
"CRITICAL OUTPUT RULES:",
|
|
330
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
331
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
332
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
333
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
334
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
335
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
336
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
337
|
-
],
|
|
324
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
338
325
|
ui: {
|
|
339
326
|
badge: "CoreWeave",
|
|
340
327
|
watchdogMs: 9e5,
|
|
@@ -345,7 +332,15 @@ const BUILTIN_PROFILES = [
|
|
|
345
332
|
|
|
346
333
|
//#endregion
|
|
347
334
|
//#region src/config/resolve-model-profile.ts
|
|
348
|
-
/**
|
|
335
|
+
/**
|
|
336
|
+
* Default profile returned when no match is found.
|
|
337
|
+
*
|
|
338
|
+
* Stage 2.4 of the prompt-reduction plan: the Generic fallback now ships
|
|
339
|
+
* the same safety+style additions as every named profile, so newly-added
|
|
340
|
+
* models without a profile entry inherit sane defaults instead of
|
|
341
|
+
* starting empty (which would silently regress safety rules until someone
|
|
342
|
+
* notices and adds a profile).
|
|
343
|
+
*/
|
|
349
344
|
const FALLBACK_PROFILE = {
|
|
350
345
|
match: "*",
|
|
351
346
|
label: "Generic",
|
|
@@ -364,7 +359,7 @@ const FALLBACK_PROFILE = {
|
|
|
364
359
|
hasStructuredThinking: false,
|
|
365
360
|
validateToolArgs: false
|
|
366
361
|
},
|
|
367
|
-
promptAdditions: [],
|
|
362
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS],
|
|
368
363
|
ui: {
|
|
369
364
|
watchdogMs: 3e5,
|
|
370
365
|
armWatchdogOnSend: true
|
|
@@ -4340,7 +4335,7 @@ async function getMemorySearchManager(params) {
|
|
|
4340
4335
|
const wrapper = new FallbackMemoryManager({
|
|
4341
4336
|
primary,
|
|
4342
4337
|
fallbackFactory: async () => {
|
|
4343
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
4338
|
+
const { MemoryIndexManager } = await import("./manager-HASZR70T.js").then((n) => n.n);
|
|
4344
4339
|
return await MemoryIndexManager.get(params);
|
|
4345
4340
|
}
|
|
4346
4341
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -4353,7 +4348,7 @@ async function getMemorySearchManager(params) {
|
|
|
4353
4348
|
}
|
|
4354
4349
|
}
|
|
4355
4350
|
try {
|
|
4356
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
4351
|
+
const { MemoryIndexManager } = await import("./manager-HASZR70T.js").then((n) => n.n);
|
|
4357
4352
|
return { manager: await MemoryIndexManager.get(params) };
|
|
4358
4353
|
} catch (err) {
|
|
4359
4354
|
return {
|
|
@@ -6447,6 +6442,86 @@ function buildEmbeddedSandboxInfo(sandbox, execElevated) {
|
|
|
6447
6442
|
};
|
|
6448
6443
|
}
|
|
6449
6444
|
|
|
6445
|
+
//#endregion
|
|
6446
|
+
//#region src/agents/system-prompt-skills-autoload.ts
|
|
6447
|
+
const FRONTMATTER_RE = /^---\s*\n[\s\S]*?\n---\s*\n?/;
|
|
6448
|
+
let cachedPackageRoot;
|
|
6449
|
+
function getPackageRoot() {
|
|
6450
|
+
if (cachedPackageRoot === void 0) cachedPackageRoot = resolveSymiPackageRootSync({});
|
|
6451
|
+
return cachedPackageRoot;
|
|
6452
|
+
}
|
|
6453
|
+
function safeSkillName(name) {
|
|
6454
|
+
return /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/.test(name);
|
|
6455
|
+
}
|
|
6456
|
+
function tryLoadSkill(skillName, root) {
|
|
6457
|
+
const skillPath = path.join(root, "skills", skillName, "SKILL.md");
|
|
6458
|
+
try {
|
|
6459
|
+
if (!fs.statSync(skillPath).isFile()) return null;
|
|
6460
|
+
} catch {
|
|
6461
|
+
return null;
|
|
6462
|
+
}
|
|
6463
|
+
try {
|
|
6464
|
+
return fs.readFileSync(skillPath, "utf8");
|
|
6465
|
+
} catch {
|
|
6466
|
+
return null;
|
|
6467
|
+
}
|
|
6468
|
+
}
|
|
6469
|
+
function stripFrontmatter(body) {
|
|
6470
|
+
return body.replace(FRONTMATTER_RE, "").trimStart();
|
|
6471
|
+
}
|
|
6472
|
+
/**
|
|
6473
|
+
* Resolves and loads each named skill. Returns the inlinable Markdown block,
|
|
6474
|
+
* or empty string when no skills loaded / minimal mode / no names supplied.
|
|
6475
|
+
*/
|
|
6476
|
+
function buildAutoLoadedSkillsBlock(opts) {
|
|
6477
|
+
if (opts.minimalMode) return "";
|
|
6478
|
+
const names = opts.skillNames.filter((n) => typeof n === "string" && n.trim().length > 0);
|
|
6479
|
+
if (names.length === 0) return "";
|
|
6480
|
+
const packageRoot = getPackageRoot();
|
|
6481
|
+
const loaded = [];
|
|
6482
|
+
for (const rawName of names) {
|
|
6483
|
+
const name = rawName.trim();
|
|
6484
|
+
if (!safeSkillName(name)) {
|
|
6485
|
+
logWarn(`autoLoadInline: skipping invalid skill name '${rawName}'`);
|
|
6486
|
+
continue;
|
|
6487
|
+
}
|
|
6488
|
+
let body = null;
|
|
6489
|
+
let source = "bundled";
|
|
6490
|
+
if (opts.workspaceDir) {
|
|
6491
|
+
body = tryLoadSkill(name, opts.workspaceDir);
|
|
6492
|
+
source = "workspace";
|
|
6493
|
+
}
|
|
6494
|
+
if (body === null && packageRoot) {
|
|
6495
|
+
body = tryLoadSkill(name, packageRoot);
|
|
6496
|
+
source = "bundled";
|
|
6497
|
+
}
|
|
6498
|
+
if (body === null) {
|
|
6499
|
+
logWarn(`autoLoadInline: skill '${name}' not found in workspace or bundled skills`);
|
|
6500
|
+
continue;
|
|
6501
|
+
}
|
|
6502
|
+
const stripped = stripFrontmatter(body).trim();
|
|
6503
|
+
if (!stripped) {
|
|
6504
|
+
logWarn(`autoLoadInline: skill '${name}' has empty body after frontmatter strip; skipping`);
|
|
6505
|
+
continue;
|
|
6506
|
+
}
|
|
6507
|
+
loaded.push({
|
|
6508
|
+
name,
|
|
6509
|
+
body: stripped,
|
|
6510
|
+
source
|
|
6511
|
+
});
|
|
6512
|
+
}
|
|
6513
|
+
if (loaded.length === 0) return "";
|
|
6514
|
+
return [
|
|
6515
|
+
"",
|
|
6516
|
+
"---",
|
|
6517
|
+
"",
|
|
6518
|
+
"## Auto-loaded Skills",
|
|
6519
|
+
"",
|
|
6520
|
+
loaded.map((skill) => `<!-- auto-loaded: ${skill.name} (${skill.source}) -->\n${skill.body}`).join("\n\n---\n\n"),
|
|
6521
|
+
""
|
|
6522
|
+
].join("\n");
|
|
6523
|
+
}
|
|
6524
|
+
|
|
6450
6525
|
//#endregion
|
|
6451
6526
|
//#region src/agents/system-prompt.ts
|
|
6452
6527
|
function buildSkillsSection(params) {
|
|
@@ -6963,7 +7038,7 @@ function buildToolSummaryMap(tools) {
|
|
|
6963
7038
|
//#endregion
|
|
6964
7039
|
//#region src/agents/pi-embedded-runner/system-prompt.ts
|
|
6965
7040
|
function buildEmbeddedSystemPrompt(params) {
|
|
6966
|
-
|
|
7041
|
+
const corePrompt = buildAgentSystemPrompt({
|
|
6967
7042
|
workspaceDir: params.workspaceDir,
|
|
6968
7043
|
defaultThinkLevel: params.defaultThinkLevel,
|
|
6969
7044
|
reasoningLevel: params.reasoningLevel,
|
|
@@ -6991,6 +7066,14 @@ function buildEmbeddedSystemPrompt(params) {
|
|
|
6991
7066
|
contextFiles: params.contextFiles,
|
|
6992
7067
|
memoryCitationsMode: params.memoryCitationsMode
|
|
6993
7068
|
});
|
|
7069
|
+
const promptMode = params.promptMode ?? "full";
|
|
7070
|
+
const isMinimal = promptMode === "minimal" || promptMode === "none";
|
|
7071
|
+
const skillsBlock = buildAutoLoadedSkillsBlock({
|
|
7072
|
+
skillNames: params.autoLoadInlineSkills ?? [],
|
|
7073
|
+
workspaceDir: params.workspaceDir,
|
|
7074
|
+
minimalMode: isMinimal
|
|
7075
|
+
});
|
|
7076
|
+
return skillsBlock ? `${corePrompt}${skillsBlock}` : corePrompt;
|
|
6994
7077
|
}
|
|
6995
7078
|
function createSystemPromptOverride(systemPrompt) {
|
|
6996
7079
|
const override = systemPrompt.trim();
|
|
@@ -10443,7 +10526,7 @@ async function routeReply(params) {
|
|
|
10443
10526
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
10444
10527
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
10445
10528
|
try {
|
|
10446
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
10529
|
+
const { deliverOutboundPayloads } = await import("./deliver-nBdNxMIr.js").then((n) => n.n);
|
|
10447
10530
|
return {
|
|
10448
10531
|
ok: true,
|
|
10449
10532
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -13328,16 +13411,16 @@ function shouldComputeCommandAuthorized(text, cfg, options) {
|
|
|
13328
13411
|
|
|
13329
13412
|
//#endregion
|
|
13330
13413
|
//#region src/channels/sender-label.ts
|
|
13331
|
-
function normalize(value) {
|
|
13414
|
+
function normalize$1(value) {
|
|
13332
13415
|
const trimmed = value?.trim();
|
|
13333
13416
|
return trimmed ? trimmed : void 0;
|
|
13334
13417
|
}
|
|
13335
13418
|
function resolveSenderLabel(params) {
|
|
13336
|
-
const name = normalize(params.name);
|
|
13337
|
-
const username = normalize(params.username);
|
|
13338
|
-
const tag = normalize(params.tag);
|
|
13339
|
-
const e164 = normalize(params.e164);
|
|
13340
|
-
const id = normalize(params.id);
|
|
13419
|
+
const name = normalize$1(params.name);
|
|
13420
|
+
const username = normalize$1(params.username);
|
|
13421
|
+
const tag = normalize$1(params.tag);
|
|
13422
|
+
const e164 = normalize$1(params.e164);
|
|
13423
|
+
const id = normalize$1(params.id);
|
|
13341
13424
|
const display = name ?? username ?? tag ?? "";
|
|
13342
13425
|
const idPart = e164 ?? id ?? "";
|
|
13343
13426
|
if (display && idPart && display !== idPart) return `${display} (${idPart})`;
|
|
@@ -32995,8 +33078,39 @@ const GatewayToolSchema = Type.Object({
|
|
|
32995
33078
|
baseHash: Type.Optional(Type.String()),
|
|
32996
33079
|
sessionKey: Type.Optional(Type.String()),
|
|
32997
33080
|
note: Type.Optional(Type.String()),
|
|
32998
|
-
restartDelayMs: Type.Optional(Type.Number())
|
|
33081
|
+
restartDelayMs: Type.Optional(Type.Number()),
|
|
33082
|
+
userRequestAcknowledgment: Type.Optional(Type.String())
|
|
32999
33083
|
});
|
|
33084
|
+
/** Actions that mutate gateway state and require explicit user authorization. */
|
|
33085
|
+
const DESTRUCTIVE_ACTIONS = new Set([
|
|
33086
|
+
"config.apply",
|
|
33087
|
+
"config.patch",
|
|
33088
|
+
"update.run"
|
|
33089
|
+
]);
|
|
33090
|
+
/** Minimum length for a meaningful authorization message. */
|
|
33091
|
+
const MIN_AUTHORIZATION_LENGTH = 10;
|
|
33092
|
+
/**
|
|
33093
|
+
* Asserts the user's request was explicitly acknowledged for destructive
|
|
33094
|
+
* actions. Throws a descriptive error if the acknowledgment is missing,
|
|
33095
|
+
* empty, or trivially short.
|
|
33096
|
+
*
|
|
33097
|
+
* NOTE: This is defense-in-depth, not a hard barrier. A determined model
|
|
33098
|
+
* could still populate the field with fabricated text. The barrier exists
|
|
33099
|
+
* to:
|
|
33100
|
+
* 1. Force the agent to deliberately compose a justification (vs. blind
|
|
33101
|
+
* tool invocation).
|
|
33102
|
+
* 2. Provide an audit trail (the acknowledgment is logged with the tool
|
|
33103
|
+
* call args).
|
|
33104
|
+
* 3. Surface for future tightening (e.g., matching against real session
|
|
33105
|
+
* history).
|
|
33106
|
+
*/
|
|
33107
|
+
function assertUserAuthorization(action, params) {
|
|
33108
|
+
if (!DESTRUCTIVE_ACTIONS.has(action)) return;
|
|
33109
|
+
const ack = params.userRequestAcknowledgment;
|
|
33110
|
+
const trimmed = typeof ack === "string" ? ack.trim() : "";
|
|
33111
|
+
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.`);
|
|
33112
|
+
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)}.`);
|
|
33113
|
+
}
|
|
33000
33114
|
function createGatewayTool(opts) {
|
|
33001
33115
|
return {
|
|
33002
33116
|
label: "Gateway",
|
|
@@ -33007,6 +33121,7 @@ function createGatewayTool(opts) {
|
|
|
33007
33121
|
execute: async (_toolCallId, args) => {
|
|
33008
33122
|
const params = args;
|
|
33009
33123
|
const action = readStringParam(params, "action", { required: true });
|
|
33124
|
+
assertUserAuthorization(action, params);
|
|
33010
33125
|
if (action === "restart") {
|
|
33011
33126
|
if (!isRestartEnabled(opts?.config)) throw new Error("Gateway restart is disabled (commands.restart=false).");
|
|
33012
33127
|
const sessionKey = typeof params.sessionKey === "string" && params.sessionKey.trim() ? params.sessionKey.trim() : opts?.agentSessionKey?.trim() || void 0;
|
|
@@ -44204,7 +44319,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
44204
44319
|
return;
|
|
44205
44320
|
}
|
|
44206
44321
|
try {
|
|
44207
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
44322
|
+
const { deliverOutboundPayloads } = await import("./deliver-nBdNxMIr.js").then((n) => n.n);
|
|
44208
44323
|
await deliverOutboundPayloads({
|
|
44209
44324
|
cfg: params.cfg,
|
|
44210
44325
|
channel,
|
|
@@ -47650,7 +47765,7 @@ async function describeStickerImage(params) {
|
|
|
47650
47765
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
47651
47766
|
try {
|
|
47652
47767
|
const buffer = await fs$1.readFile(imagePath);
|
|
47653
|
-
const { describeImageWithModel } = await import("./image-
|
|
47768
|
+
const { describeImageWithModel } = await import("./image-CEdTQp1F.js").then((n) => n.n);
|
|
47654
47769
|
return (await describeImageWithModel({
|
|
47655
47770
|
buffer,
|
|
47656
47771
|
fileName: "sticker.webp",
|
|
@@ -48073,7 +48188,7 @@ function createWhatsAppLoginTool() {
|
|
|
48073
48188
|
force: Type.Optional(Type.Boolean())
|
|
48074
48189
|
}),
|
|
48075
48190
|
execute: async (_toolCallId, args) => {
|
|
48076
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
48191
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DyU6qD2X.js");
|
|
48077
48192
|
if ((args?.action ?? "start") === "wait") {
|
|
48078
48193
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
48079
48194
|
return {
|
|
@@ -50399,7 +50514,7 @@ async function preflightDiscordMessage(params) {
|
|
|
50399
50514
|
let preflightTranscript;
|
|
50400
50515
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
50401
50516
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
50402
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
50517
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-DlO0Hw-w.js");
|
|
50403
50518
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
50404
50519
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
50405
50520
|
ctx: {
|
|
@@ -54405,27 +54520,27 @@ function isVoiceChannelType(type) {
|
|
|
54405
54520
|
function createDefaultDeps() {
|
|
54406
54521
|
return {
|
|
54407
54522
|
sendMessageWhatsApp: async (...args) => {
|
|
54408
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
54523
|
+
const { sendMessageWhatsApp } = await import("./web-Dbe1DwOE.js");
|
|
54409
54524
|
return await sendMessageWhatsApp(...args);
|
|
54410
54525
|
},
|
|
54411
54526
|
sendMessageTelegram: async (...args) => {
|
|
54412
|
-
const { sendMessageTelegram } = await import("./send-
|
|
54527
|
+
const { sendMessageTelegram } = await import("./send-BtbWvw2k.js").then((n) => n.l);
|
|
54413
54528
|
return await sendMessageTelegram(...args);
|
|
54414
54529
|
},
|
|
54415
54530
|
sendMessageDiscord: async (...args) => {
|
|
54416
|
-
const { sendMessageDiscord } = await import("./send-
|
|
54531
|
+
const { sendMessageDiscord } = await import("./send-DlYO3ExM.js").then((n) => n.t);
|
|
54417
54532
|
return await sendMessageDiscord(...args);
|
|
54418
54533
|
},
|
|
54419
54534
|
sendMessageSlack: async (...args) => {
|
|
54420
|
-
const { sendMessageSlack } = await import("./send-
|
|
54535
|
+
const { sendMessageSlack } = await import("./send-CyPj_MLV.js").then((n) => n.n);
|
|
54421
54536
|
return await sendMessageSlack(...args);
|
|
54422
54537
|
},
|
|
54423
54538
|
sendMessageSignal: async (...args) => {
|
|
54424
|
-
const { sendMessageSignal } = await import("./send-
|
|
54539
|
+
const { sendMessageSignal } = await import("./send-Dn1Pirhx.js").then((n) => n.i);
|
|
54425
54540
|
return await sendMessageSignal(...args);
|
|
54426
54541
|
},
|
|
54427
54542
|
sendMessageIMessage: async (...args) => {
|
|
54428
|
-
const { sendMessageIMessage } = await import("./send-
|
|
54543
|
+
const { sendMessageIMessage } = await import("./send-C4IU_tV3.js").then((n) => n.n);
|
|
54429
54544
|
return await sendMessageIMessage(...args);
|
|
54430
54545
|
}
|
|
54431
54546
|
};
|
|
@@ -65255,7 +65370,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
65255
65370
|
});
|
|
65256
65371
|
const deliverSlashPayloads = async (replies) => {
|
|
65257
65372
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
65258
|
-
import("./replies-
|
|
65373
|
+
import("./replies-IkylJ7lX.js").then((n) => n.r),
|
|
65259
65374
|
import("./chunk-BRe1o4Af.js").then((n) => n.s),
|
|
65260
65375
|
import("./markdown-tables-x2Xe2UXh.js").then((n) => n.t)
|
|
65261
65376
|
]);
|
|
@@ -67528,7 +67643,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
67528
67643
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
67529
67644
|
let preflightTranscript;
|
|
67530
67645
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
67531
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
67646
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-DlO0Hw-w.js");
|
|
67532
67647
|
preflightTranscript = await transcribeFirstAudio({
|
|
67533
67648
|
ctx: {
|
|
67534
67649
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -69673,23 +69788,23 @@ let webLoginQrPromise = null;
|
|
|
69673
69788
|
let webChannelPromise = null;
|
|
69674
69789
|
let whatsappActionsPromise = null;
|
|
69675
69790
|
function loadWebOutbound() {
|
|
69676
|
-
webOutboundPromise ??= import("./outbound-
|
|
69791
|
+
webOutboundPromise ??= import("./outbound-DVVulk0E.js").then((n) => n.t);
|
|
69677
69792
|
return webOutboundPromise;
|
|
69678
69793
|
}
|
|
69679
69794
|
function loadWebLogin() {
|
|
69680
|
-
webLoginPromise ??= import("./login-
|
|
69795
|
+
webLoginPromise ??= import("./login-Cu0fTI3Z.js").then((n) => n.n);
|
|
69681
69796
|
return webLoginPromise;
|
|
69682
69797
|
}
|
|
69683
69798
|
function loadWebLoginQr() {
|
|
69684
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
69799
|
+
webLoginQrPromise ??= import("./login-qr-DyU6qD2X.js");
|
|
69685
69800
|
return webLoginQrPromise;
|
|
69686
69801
|
}
|
|
69687
69802
|
function loadWebChannel() {
|
|
69688
|
-
webChannelPromise ??= import("./web-
|
|
69803
|
+
webChannelPromise ??= import("./web-Dbe1DwOE.js");
|
|
69689
69804
|
return webChannelPromise;
|
|
69690
69805
|
}
|
|
69691
69806
|
function loadWhatsAppActions() {
|
|
69692
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
69807
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-BngdI8G3.js");
|
|
69693
69808
|
return whatsappActionsPromise;
|
|
69694
69809
|
}
|
|
69695
69810
|
function createPluginRuntime() {
|
|
@@ -71154,6 +71269,91 @@ function isToolAllowedByPolicies(name, policies) {
|
|
|
71154
71269
|
return policies.every((policy) => isToolAllowedByPolicyName(name, policy));
|
|
71155
71270
|
}
|
|
71156
71271
|
|
|
71272
|
+
//#endregion
|
|
71273
|
+
//#region src/agents/pi-tools.read-edit-guard.ts
|
|
71274
|
+
const RETRY_GUIDANCE_SUFFIX$1 = " Read the file first, then retry the edit.";
|
|
71275
|
+
function readGuardError(filePath) {
|
|
71276
|
+
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}`);
|
|
71277
|
+
}
|
|
71278
|
+
function extractPath(args) {
|
|
71279
|
+
if (!args || typeof args !== "object") return;
|
|
71280
|
+
const record = args;
|
|
71281
|
+
const candidate = record.path ?? record.file_path;
|
|
71282
|
+
if (typeof candidate !== "string") return;
|
|
71283
|
+
const trimmed = candidate.trim();
|
|
71284
|
+
return trimmed.length > 0 ? trimmed : void 0;
|
|
71285
|
+
}
|
|
71286
|
+
function wrapReadToolWithTracker(tool, tracker) {
|
|
71287
|
+
return {
|
|
71288
|
+
...tool,
|
|
71289
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
71290
|
+
const result = await tool.execute(toolCallId, args, signal, onUpdate);
|
|
71291
|
+
if (!(!!result && typeof result === "object" && result.isError === true)) {
|
|
71292
|
+
const filePath = extractPath(args);
|
|
71293
|
+
if (filePath) tracker.recordRead(filePath);
|
|
71294
|
+
}
|
|
71295
|
+
return result;
|
|
71296
|
+
}
|
|
71297
|
+
};
|
|
71298
|
+
}
|
|
71299
|
+
function wrapWriteToolWithTracker(tool, tracker) {
|
|
71300
|
+
return {
|
|
71301
|
+
...tool,
|
|
71302
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
71303
|
+
const result = await tool.execute(toolCallId, args, signal, onUpdate);
|
|
71304
|
+
if (!(!!result && typeof result === "object" && result.isError === true)) {
|
|
71305
|
+
const filePath = extractPath(args);
|
|
71306
|
+
if (filePath) tracker.recordWrite(filePath);
|
|
71307
|
+
}
|
|
71308
|
+
return result;
|
|
71309
|
+
}
|
|
71310
|
+
};
|
|
71311
|
+
}
|
|
71312
|
+
function wrapEditToolWithGuard(tool, tracker) {
|
|
71313
|
+
return {
|
|
71314
|
+
...tool,
|
|
71315
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
71316
|
+
const filePath = extractPath(args);
|
|
71317
|
+
if (filePath && !tracker.hasObserved(filePath)) throw readGuardError(filePath);
|
|
71318
|
+
return tool.execute(toolCallId, args, signal, onUpdate);
|
|
71319
|
+
}
|
|
71320
|
+
};
|
|
71321
|
+
}
|
|
71322
|
+
|
|
71323
|
+
//#endregion
|
|
71324
|
+
//#region src/agents/pi-tools.read-edit-tracker.ts
|
|
71325
|
+
function normalize(filePath, workspaceRoot) {
|
|
71326
|
+
if (!workspaceRoot) return filePath;
|
|
71327
|
+
if (path.isAbsolute(filePath)) return path.normalize(filePath);
|
|
71328
|
+
return path.resolve(workspaceRoot, filePath);
|
|
71329
|
+
}
|
|
71330
|
+
function createReadEditTracker(opts = {}) {
|
|
71331
|
+
const observed = /* @__PURE__ */ new Map();
|
|
71332
|
+
const record = (filePath, kind) => {
|
|
71333
|
+
if (typeof filePath !== "string" || !filePath.trim()) return;
|
|
71334
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
71335
|
+
const prior = observed.get(key);
|
|
71336
|
+
if (kind === "written" || prior !== "written") observed.set(key, kind);
|
|
71337
|
+
};
|
|
71338
|
+
return {
|
|
71339
|
+
recordRead: (filePath) => record(filePath, "read"),
|
|
71340
|
+
recordWrite: (filePath) => record(filePath, "written"),
|
|
71341
|
+
observation: (filePath) => {
|
|
71342
|
+
if (typeof filePath !== "string" || !filePath.trim()) return null;
|
|
71343
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
71344
|
+
return observed.get(key) ?? null;
|
|
71345
|
+
},
|
|
71346
|
+
hasObserved: (filePath) => {
|
|
71347
|
+
if (typeof filePath !== "string" || !filePath.trim()) return false;
|
|
71348
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
71349
|
+
return observed.has(key);
|
|
71350
|
+
},
|
|
71351
|
+
reset: () => {
|
|
71352
|
+
observed.clear();
|
|
71353
|
+
}
|
|
71354
|
+
};
|
|
71355
|
+
}
|
|
71356
|
+
|
|
71157
71357
|
//#endregion
|
|
71158
71358
|
//#region src/media/sniff-mime-from-base64.ts
|
|
71159
71359
|
async function sniffMimeFromBase64(base64) {
|
|
@@ -71479,6 +71679,22 @@ function wrapToolParamNormalization(tool, requiredParamGroups) {
|
|
|
71479
71679
|
}
|
|
71480
71680
|
};
|
|
71481
71681
|
}
|
|
71682
|
+
/**
|
|
71683
|
+
* Override a tool's description while preserving execute, parameters, and
|
|
71684
|
+
* other properties. Used by Stage 2.5 of the prompt-reduction plan to move
|
|
71685
|
+
* usage docs from the system prompt into tool descriptions where they
|
|
71686
|
+
* belong contextually.
|
|
71687
|
+
*
|
|
71688
|
+
* The replacement description should include the upstream's tool-purpose
|
|
71689
|
+
* sentence so models that only read the description (without the prompt
|
|
71690
|
+
* section) still have the same baseline understanding.
|
|
71691
|
+
*/
|
|
71692
|
+
function wrapToolWithDescriptionOverride(tool, description) {
|
|
71693
|
+
return {
|
|
71694
|
+
...tool,
|
|
71695
|
+
description
|
|
71696
|
+
};
|
|
71697
|
+
}
|
|
71482
71698
|
function wrapToolWorkspaceRootGuard(tool, root) {
|
|
71483
71699
|
return {
|
|
71484
71700
|
...tool,
|
|
@@ -71719,6 +71935,26 @@ function resolveToolLoopDetectionConfig(params) {
|
|
|
71719
71935
|
}
|
|
71720
71936
|
};
|
|
71721
71937
|
}
|
|
71938
|
+
/**
|
|
71939
|
+
* Edit tool description. Replaces the upstream's terse one-liner with
|
|
71940
|
+
* usage notes migrated from the system prompt's "Edit Tool Best Practices"
|
|
71941
|
+
* section in Stage 2.5 of the prompt-reduction plan. Co-locating these
|
|
71942
|
+
* notes with the tool means they ship only when edit is in palette, and
|
|
71943
|
+
* the system prompt section can be deleted in Stage 4 without losing the
|
|
71944
|
+
* guidance.
|
|
71945
|
+
*
|
|
71946
|
+
* Combined with the read-before-edit guard (Stage 1.3) and the model's
|
|
71947
|
+
* own discipline, this should kill the hallucinated-oldText failure class
|
|
71948
|
+
* for any well-intentioned model.
|
|
71949
|
+
*/
|
|
71950
|
+
const EDIT_TOOL_DESCRIPTION = [
|
|
71951
|
+
"Edit a file by replacing exact text. The oldText must match the file EXACTLY (whitespace, indentation, and all).",
|
|
71952
|
+
"Best practices to avoid match failures:",
|
|
71953
|
+
"- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
|
|
71954
|
+
"- 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.",
|
|
71955
|
+
"- 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.",
|
|
71956
|
+
"- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines)."
|
|
71957
|
+
].join(" ");
|
|
71722
71958
|
function createSymiCodingTools(options) {
|
|
71723
71959
|
const execToolName = "exec";
|
|
71724
71960
|
const sandbox = options?.sandbox?.enabled ? options.sandbox : void 0;
|
|
@@ -71781,33 +72017,34 @@ function createSymiCodingTools(options) {
|
|
|
71781
72017
|
});
|
|
71782
72018
|
if (sandboxRoot && !sandboxFsBridge) throw new Error("Sandbox filesystem bridge is unavailable.");
|
|
71783
72019
|
const imageSanitization = resolveImageSanitizationLimits(options?.config);
|
|
72020
|
+
const readEditTracker = createReadEditTracker({ workspaceRoot: sandboxRoot ?? workspaceRoot });
|
|
71784
72021
|
const base = codingTools.flatMap((tool) => {
|
|
71785
72022
|
if (tool.name === readTool.name) {
|
|
71786
72023
|
if (sandboxRoot) {
|
|
71787
|
-
const
|
|
72024
|
+
const tracked = wrapReadToolWithTracker(createSandboxedReadTool({
|
|
71788
72025
|
root: sandboxRoot,
|
|
71789
72026
|
bridge: sandboxFsBridge,
|
|
71790
72027
|
modelContextWindowTokens: options?.modelContextWindowTokens,
|
|
71791
72028
|
imageSanitization
|
|
71792
|
-
});
|
|
71793
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
72029
|
+
}), readEditTracker);
|
|
72030
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, sandboxRoot) : tracked];
|
|
71794
72031
|
}
|
|
71795
|
-
const
|
|
72032
|
+
const tracked = wrapReadToolWithTracker(createSymiReadTool(createReadTool(workspaceRoot), {
|
|
71796
72033
|
modelContextWindowTokens: options?.modelContextWindowTokens,
|
|
71797
72034
|
imageSanitization
|
|
71798
|
-
});
|
|
71799
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
72035
|
+
}), readEditTracker);
|
|
72036
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, workspaceRoot) : tracked];
|
|
71800
72037
|
}
|
|
71801
72038
|
if (tool.name === "bash" || tool.name === execToolName) return [];
|
|
71802
72039
|
if (tool.name === "write") {
|
|
71803
72040
|
if (sandboxRoot) return [];
|
|
71804
|
-
const
|
|
71805
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
72041
|
+
const tracked = wrapWriteToolWithTracker(wrapToolParamNormalization(createWriteTool(workspaceRoot), CLAUDE_PARAM_GROUPS.write), readEditTracker);
|
|
72042
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, workspaceRoot) : tracked];
|
|
71806
72043
|
}
|
|
71807
72044
|
if (tool.name === "edit") {
|
|
71808
72045
|
if (sandboxRoot) return [];
|
|
71809
|
-
const
|
|
71810
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
72046
|
+
const guarded = wrapEditToolWithGuard(wrapToolWithDescriptionOverride(wrapToolParamNormalization(createEditTool(workspaceRoot), CLAUDE_PARAM_GROUPS.edit), EDIT_TOOL_DESCRIPTION), readEditTracker);
|
|
72047
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(guarded, workspaceRoot) : guarded];
|
|
71811
72048
|
}
|
|
71812
72049
|
return [tool];
|
|
71813
72050
|
});
|
|
@@ -71850,22 +72087,18 @@ function createSymiCodingTools(options) {
|
|
|
71850
72087
|
} : void 0,
|
|
71851
72088
|
workspaceOnly: applyPatchWorkspaceOnly
|
|
71852
72089
|
});
|
|
72090
|
+
const sandboxedEditTool = sandboxRoot ? wrapEditToolWithGuard(createSandboxedEditTool({
|
|
72091
|
+
root: sandboxRoot,
|
|
72092
|
+
bridge: sandboxFsBridge
|
|
72093
|
+
}), readEditTracker) : null;
|
|
72094
|
+
const sandboxedWriteTool = sandboxRoot ? wrapWriteToolWithTracker(createSandboxedWriteTool({
|
|
72095
|
+
root: sandboxRoot,
|
|
72096
|
+
bridge: sandboxFsBridge
|
|
72097
|
+
}), readEditTracker) : null;
|
|
71853
72098
|
const withHooks = applyToolPolicyPipeline({
|
|
71854
72099
|
tools: applyOwnerOnlyToolPolicy([
|
|
71855
72100
|
...base,
|
|
71856
|
-
...sandboxRoot ? allowWorkspaceWrites ? [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
71857
|
-
root: sandboxRoot,
|
|
71858
|
-
bridge: sandboxFsBridge
|
|
71859
|
-
}), sandboxRoot) : createSandboxedEditTool({
|
|
71860
|
-
root: sandboxRoot,
|
|
71861
|
-
bridge: sandboxFsBridge
|
|
71862
|
-
}), workspaceOnly ? wrapToolWorkspaceRootGuard(createSandboxedWriteTool({
|
|
71863
|
-
root: sandboxRoot,
|
|
71864
|
-
bridge: sandboxFsBridge
|
|
71865
|
-
}), sandboxRoot) : createSandboxedWriteTool({
|
|
71866
|
-
root: sandboxRoot,
|
|
71867
|
-
bridge: sandboxFsBridge
|
|
71868
|
-
})] : [] : [],
|
|
72101
|
+
...sandboxRoot ? allowWorkspaceWrites && sandboxedEditTool && sandboxedWriteTool ? [workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedEditTool, sandboxRoot) : sandboxedEditTool, workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedWriteTool, sandboxRoot) : sandboxedWriteTool] : [] : [],
|
|
71869
72102
|
...applyPatchTool ? [applyPatchTool] : [],
|
|
71870
72103
|
execTool,
|
|
71871
72104
|
processTool,
|
|
@@ -73573,7 +73806,8 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
73573
73806
|
userTime,
|
|
73574
73807
|
userTimeFormat,
|
|
73575
73808
|
contextFiles,
|
|
73576
|
-
memoryCitationsMode: params.config?.memory?.citations
|
|
73809
|
+
memoryCitationsMode: params.config?.memory?.citations,
|
|
73810
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline
|
|
73577
73811
|
}));
|
|
73578
73812
|
const sessionLock = await acquireSessionWriteLock({
|
|
73579
73813
|
sessionFile: params.sessionFile,
|
|
@@ -77763,7 +77997,8 @@ async function runEmbeddedAttempt(params) {
|
|
|
77763
77997
|
userTime,
|
|
77764
77998
|
userTimeFormat,
|
|
77765
77999
|
contextFiles,
|
|
77766
|
-
memoryCitationsMode: params.config?.memory?.citations
|
|
78000
|
+
memoryCitationsMode: params.config?.memory?.citations,
|
|
78001
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline
|
|
77767
78002
|
});
|
|
77768
78003
|
const systemPromptReport = buildSystemPromptReport({
|
|
77769
78004
|
source: "run",
|