@symerian/symi 2.0.6 → 2.0.8
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/{agents-CypLQ-TX.js → agents-Ck7Cf272.js} +4 -4
- package/dist/{agents.config-DWqwPV32.js → agents.config-BTWn70A_.js} +1 -1
- package/dist/{agents.config-S5g63_Ww.js → agents.config-DRDcXXQC.js} +1 -1
- package/dist/{audio-preflight-Cq4C-m27.js → audio-preflight-B6L8N6Ly.js} +13 -12
- package/dist/{audio-preflight-DSeaWZZW.js → audio-preflight-BQbkYWBq.js} +6 -5
- package/dist/{audio-preflight-DbUFnPX1.js → audio-preflight-Bk54IW__.js} +17 -16
- package/dist/{audio-preflight-CO2seHjy.js → audio-preflight-Bl8Xkt6g.js} +12 -11
- package/dist/{audit-DKUpFt8z.js → audit-Bv_hWhC7.js} +2 -2
- package/dist/{audit-CiugrQda.js → audit-Dmg0_STU.js} +2 -2
- package/dist/{auth-choice-1csNxn5J.js → auth-choice-B2vfWdxb.js} +1 -1
- package/dist/{auth-choice-DxhF9BuU.js → auth-choice-BTHtq4sU.js} +4 -4
- package/dist/{banner-CV_YEEQe.js → banner-C93WYZhg.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +34 -34
- package/dist/bundled/session-memory/handler.js +34 -34
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-NbbM348A.js → channel-options-DzVgaV8r.js} +1 -1
- package/dist/{channel-options-DN7ZZEMr.js → channel-options-FXf1Vm4X.js} +1 -1
- package/dist/{channel-web-BUODlmfF.js → channel-web-DXNS1120.js} +8 -8
- package/dist/{channels-cli-6MNbtk6T.js → channels-cli-VMjbf17C.js} +32 -32
- package/dist/{channels-cli-DOoGJd4k.js → channels-cli-jwN3bQiA.js} +12 -12
- package/dist/{chrome-BATLK3yK.js → chrome-2-wXJfuH.js} +8 -8
- package/dist/{chrome-h6BnL8Lp.js → chrome-B_zrSLce.js} +7 -7
- package/dist/{chunk-BW5f05BR.js → chunk-BPSLqkZN.js} +1 -1
- package/dist/{chunk-DTMTDXwE.js → chunk-rw3-yl6B.js} +1 -1
- package/dist/{cli-TVchR8N9.js → cli-B0zfZMTk.js} +29 -29
- package/dist/{cli-DxHEDvD7.js → cli-pVI3InZO.js} +9 -9
- package/dist/{command-registry-S2yEeoft.js → command-registry-BfDMSQVM.js} +9 -9
- package/dist/{commands-registry-C3C4Rv3O.js → commands-registry-CZ5P8CpC.js} +2 -2
- package/dist/{commands-registry-Copoizgv.js → commands-registry-UwWpNkQg.js} +1 -1
- package/dist/{completion-cli-u1z9O4lQ.js → completion-cli-BIb71n9R.js} +2 -2
- package/dist/{completion-cli-BrgaQVPk.js → completion-cli-CtFc2LrR.js} +1 -1
- package/dist/{config-DM0K7qC1.js → config-D3XlX-h-.js} +1 -1
- package/dist/{config-cli-CUdFNGGC.js → config-cli-5k0J0n8w.js} +1 -1
- package/dist/{config-cli-CipxRDcw.js → config-cli-S34vsL8T.js} +1 -1
- package/dist/{config-guard-BpQn1MKk.js → config-guard-Ca5SgLv4.js} +1 -1
- package/dist/{config-guard-Cnu2qssk.js → config-guard-lpwxY7-I.js} +3 -2
- package/dist/{configure-D9n_M6Ra.js → configure-CwPEm658.js} +3 -3
- package/dist/{configure-B2DVh1MI.js → configure-DK60UZR-.js} +6 -6
- package/dist/{deliver-DONp5mgd.js → deliver-BubWdk2x.js} +2 -2
- package/dist/{deliver-DD3gs9SF.js → deliver-DGaRNkFI.js} +5 -5
- package/dist/{deliver-2Y_F_0yh.js → deliver-DTHhqsN5.js} +5 -5
- package/dist/{deliver-CZF9f8aC.js → deliver-jK_qcWx-.js} +5 -5
- package/dist/{diagnostic-CI0kRQkt.js → diagnostic-BIVLRT_X.js} +1 -1
- package/dist/{diagnostic-D0xmLpej.js → diagnostic-C-7DW8ZL.js} +1 -1
- package/dist/{doctor-completion-Beg_3VG2.js → doctor-completion-B0H-LZ9F.js} +1 -1
- package/dist/{doctor-completion-94bdxcgy.js → doctor-completion-B7omSm-D.js} +1 -1
- package/dist/{doctor-config-flow-C_56SUPO.js → doctor-config-flow-CifTPMbU.js} +1 -1
- package/dist/{doctor-config-flow-B150h841.js → doctor-config-flow-Da5WjdWM.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +29 -29
- package/dist/{fetch-DTNGXEzX.js → fetch-BrtlUMgb.js} +1 -1
- package/dist/{fetch-guard-DOPkVbh3.js → fetch-guard-DPA1vbaF.js} +1 -1
- package/dist/{gateway-cli-CKIJn013.js → gateway-cli-BIQu6Utl.js} +43 -43
- package/dist/{gateway-cli-BkfAKxxR.js → gateway-cli-C9FvkbFy.js} +20 -20
- package/dist/{gemini-auth-7AWT6JXV.js → gemini-auth-Ca6F0cNq.js} +1 -1
- package/dist/{glass-ui-ws-BQ6j-PII.js → glass-ui-ws-CwHtwMkP.js} +16 -16
- package/dist/{glass-ui-ws-BrvN2A06.js → glass-ui-ws-DpKEdS_Z.js} +39 -39
- package/dist/{health-BUaaGug2.js → health-Cey03nVq.js} +4 -4
- package/dist/{health-9kUMJPU4.js → health-KL2iuEbF.js} +5 -5
- package/dist/{heartbeat-visibility-U4BL57eQ.js → heartbeat-visibility-D4Xy8Sv0.js} +2 -2
- package/dist/{heartbeat-visibility-B8TDjqpW.js → heartbeat-visibility-DS9JNq6T.js} +2 -2
- package/dist/{hooks-cli-CBkjAKu_.js → hooks-cli-BQF_wX5P.js} +10 -10
- package/dist/{hooks-cli-CxqrpSnT.js → hooks-cli-Dzw7jPNk.js} +30 -30
- package/dist/{image-RLbZ3RUn.js → image-BJiE96Ml.js} +4 -4
- package/dist/{image-DrZEJQwQ.js → image-BPHwlO8o.js} +2 -2
- package/dist/{image-B4LY9KFw.js → image-CPNmq0j8.js} +1 -1
- package/dist/{image-DOnOTocl.js → image-qnqUW4nb.js} +2 -2
- package/dist/index.js +36 -36
- package/dist/{ir-DccrnjsE.js → ir-B4l25ISI.js} +3 -3
- package/dist/{ir-DZam9q5M.js → ir-DEVHhjq7.js} +1 -1
- package/dist/{ir-F0moAwIl.js → ir-DPLo2LIn.js} +3 -3
- package/dist/llm-slug-generator.js +34 -34
- package/dist/{local-roots-CC8jiKDk.js → local-roots-BDORNz_Q.js} +1 -1
- package/dist/{local-roots-aAFLQGkY.js → local-roots-C31eq7PP.js} +1 -1
- package/dist/{local-roots-DMwIh5cS.js → local-roots-Dg0r0pJL.js} +1 -1
- package/dist/{login-BG_7eJLu.js → login-DNi-TGJT.js} +2 -2
- package/dist/{login-qr-9OQSnm5L.js → login-qr-DWlyS1Bc.js} +4 -4
- package/dist/{manager-B5EXdBQV.js → manager-BX65xO2I.js} +2 -2
- package/dist/{manager-C_DoJrcP.js → manager-DjVWQ1JF.js} +3 -3
- package/dist/{memory-cli-D4J9SO7Z.js → memory-cli-BsBiPX0L.js} +4 -4
- package/dist/{model-auth-CeL58m55.js → model-auth-Daguh6Kb.js} +1 -1
- package/dist/{model-picker-DXwUsLAy.js → model-picker-CiSWZdy1.js} +1 -1
- package/dist/{models-CZSMuo5B.js → models-CmtHVZ9B.js} +2 -2
- package/dist/{models-cli-Ds23awjm.js → models-cli-CoLpqD2i.js} +11 -11
- package/dist/{models-cli-MqWvGB7f.js → models-cli-CzXJgEMc.js} +30 -30
- package/dist/{onboard-G9IN6QQx.js → onboard-CYpfv_zR.js} +2 -2
- package/dist/{onboard-D3oW4O-4.js → onboard-CctP17cu.js} +5 -5
- package/dist/{onboard-channels-dfTDyb59.js → onboard-channels-BfEIJ5D9.js} +1 -1
- package/dist/{onboard-channels-oFTqVfhO.js → onboard-channels-KDLz_5CQ.js} +1 -1
- package/dist/{onboard-custom-DoIhWPnb.js → onboard-custom-B3RZopk5.js} +2 -2
- package/dist/{onboard-skills-BD8JNVwL.js → onboard-skills-DfKmsYuM.js} +1 -1
- package/dist/{onboarding-Ckpz4QDg.js → onboarding-D8u579LU.js} +7 -7
- package/dist/{onboarding-g2bI9l8x.js → onboarding-HyPoSPVD.js} +4 -4
- package/dist/{onboarding.finalize-C1lR3Y__.js → onboarding.finalize-BVxx88Nj.js} +15 -15
- package/dist/{onboarding.finalize-MWEKi_hL.js → onboarding.finalize-DKJJyaEK.js} +34 -34
- package/dist/{onboarding.gateway-config-DipSuaKH.js → onboarding.gateway-config-C88Tut4n.js} +2 -1
- package/dist/{onboarding.gateway-config-Cj_s_IG8.js → onboarding.gateway-config-svEaDNCf.js} +2 -1
- package/dist/{openai-model-default-DF334-MD.js → openai-model-default-BkscYpXX.js} +1 -1
- package/dist/{outbound-DfOF58G2.js → outbound-56UQxS1I.js} +2 -2
- package/dist/{outbound-BNMysnJ1.js → outbound-ByC0HdWz.js} +2 -2
- package/dist/{outbound-Cedd_yui.js → outbound-DpGc1neG.js} +3 -3
- package/dist/{outbound-attachment-D_QuKi8U.js → outbound-attachment-C-GD7uJh.js} +1 -1
- package/dist/{outbound-attachment-DjNDa3zn.js → outbound-attachment-CJZwroQb.js} +2 -2
- package/dist/{outbound-attachment-entfcjDW.js → outbound-attachment-Cir36qaG.js} +2 -2
- package/dist/{pi-auth-json-BNhcohVK.js → pi-auth-json-CHgA276j.js} +2 -2
- package/dist/{pi-embedded-BJC3CNWN.js → pi-embedded-C5XncARS.js} +223 -161
- package/dist/{pi-embedded-Cll2enMR.js → pi-embedded-FBOXa0Py.js} +211 -149
- package/dist/{pi-embedded-helpers-x8rJur4F.js → pi-embedded-helpers-B8JQjQlx.js} +109 -13
- package/dist/{pi-embedded-helpers--yFTAWwW.js → pi-embedded-helpers-BqnI9Mzn.js} +107 -11
- package/dist/{pi-embedded-helpers-ueCT6VlS.js → pi-embedded-helpers-Ct3OLzYp.js} +2 -2
- package/dist/{pi-embedded-helpers-CgxKWHj9.js → pi-embedded-helpers-DhWpSwU-.js} +1 -1
- package/dist/{pi-tools.policy-DPmdlOwE.js → pi-tools.policy-BXcx55vF.js} +1 -1
- package/dist/{pi-tools.policy-T6Z5F-_n.js → pi-tools.policy-Bs2MTSlR.js} +1 -1
- package/dist/{plugin-registry-C5KPfoPc.js → plugin-registry-BDz-xHIX.js} +1 -1
- package/dist/{plugin-registry-KUffgxdX.js → plugin-registry-CdUu6pO0.js} +1 -1
- package/dist/plugin-sdk/agents/plan-mode.d.ts +32 -0
- package/dist/plugin-sdk/{audio-preflight-CpYjfwrA.js → audio-preflight-CAWn5TBW.js} +4 -3
- package/dist/plugin-sdk/{channel-web-DTV6QoJV.js → channel-web-CdAlKpn7.js} +3 -3
- package/dist/plugin-sdk/{deliver-BwnrMlHO.js → deliver-PnVwVXLm.js} +1 -1
- package/dist/plugin-sdk/gateway/chat-sanitize.d.ts +10 -0
- package/dist/plugin-sdk/{image-k_W1USVr.js → image-BGfQ0dkr.js} +1 -1
- package/dist/plugin-sdk/index.js +6 -6
- package/dist/plugin-sdk/{pi-embedded-helpers-Cs2-_EpL.js → pi-embedded-helpers-BMudP5Tn.js} +98 -2
- package/dist/plugin-sdk/{reply-CzCsghFB.js → reply-QYyMp-Tw.js} +169 -107
- package/dist/plugin-sdk/{runner-Br1179I4.js → runner-qajBqJHY.js} +1 -1
- package/dist/plugin-sdk/{web-BLcsH45O.js → web-CVs35ve3.js} +6 -6
- package/dist/{plugins-cli-DRDUAaBR.js → plugins-cli-D0KwuqdQ.js} +30 -30
- package/dist/{plugins-cli-BIHhue19.js → plugins-cli-g3VAbxTK.js} +10 -10
- package/dist/{program-BCEnYzi8.js → program-CARq3XaO.js} +16 -16
- package/dist/{program-context-CS1wSnZE.js → program-context-D3z9orfX.js} +21 -21
- package/dist/{prompt-select-styled-AZW_g_xe.js → prompt-select-styled-BFHQx73x.js} +10 -10
- package/dist/{prompt-select-styled-99u32PPK.js → prompt-select-styled-CwssKDY4.js} +7 -7
- package/dist/{provider-auth-helpers-CeJqzcdK.js → provider-auth-helpers-DJ3yECqH.js} +1 -1
- package/dist/{provider-auth-helpers-DqJ69hdw.js → provider-auth-helpers-gNJWrk0O.js} +1 -1
- package/dist/{push-apns-Dwt-_Kns.js → push-apns-CZM-8wga.js} +1 -1
- package/dist/{push-apns-C5xLtVxl.js → push-apns-D1GxPyeO.js} +1 -1
- package/dist/{pw-ai-CCt1nIO-.js → pw-ai-D8UzqLyI.js} +4 -4
- package/dist/{pw-ai-C_C5as1t.js → pw-ai-s-d46DCX.js} +1 -1
- package/dist/{qmd-manager-D85GJrir.js → qmd-manager-DeZm1nJL.js} +1 -1
- package/dist/{register.agent-nnrj8tc5.js → register.agent-4Vr8rfNN.js} +35 -35
- package/dist/{register.agent-Cyq17z22.js → register.agent-BQ5ERQ9d.js} +14 -14
- package/dist/{register.configure-D1zZ3jgM.js → register.configure-BKh4lgRd.js} +14 -14
- package/dist/{register.configure-DSknC_88.js → register.configure-Do3kZMFp.js} +39 -39
- package/dist/{register.maintenance-Dt1AUhn3.js → register.maintenance-BMPh4huD.js} +17 -17
- package/dist/{register.maintenance-ClQi_hVH.js → register.maintenance-DvrBn6u3.js} +37 -37
- package/dist/{register.message-x7nPJjwN.js → register.message-BNNSKB5m.js} +10 -10
- package/dist/{register.message-C0R7nCJf.js → register.message-BYL16pRB.js} +30 -30
- package/dist/{register.onboard-BOXdnoFU.js → register.onboard-CPPotri6.js} +35 -35
- package/dist/{register.onboard-Bry0wxl_.js → register.onboard-CZY5K__u.js} +12 -12
- package/dist/{register.setup-C5d8909b.js → register.setup-CMc-wYv4.js} +12 -12
- package/dist/{register.setup-fPrs1eMy.js → register.setup-DU2rUacO.js} +35 -35
- package/dist/{register.status-health-sessions-Bg3bAzzg.js → register.status-health-sessions-DDeNkHlW.js} +13 -13
- package/dist/{register.status-health-sessions-C6FKgGFx.js → register.status-health-sessions-Dm0neK04.js} +34 -34
- package/dist/{register.subclis-BrOWQICr.js → register.subclis-D69k9OGJ.js} +12 -12
- package/dist/{replies-D9V19U2-.js → replies-B4-OBhpP.js} +2 -2
- package/dist/{replies-DqdOBkTB.js → replies-ConxSQu4.js} +2 -2
- package/dist/{replies-QloQerhz.js → replies-DPvPoRgq.js} +2 -2
- package/dist/{reply-D_FZec1Q.js → reply-B7N_xCT0.js} +202 -166
- package/dist/{run-main-BNSY40iN.js → run-main-Dw4qcIps.js} +25 -25
- package/dist/{runner-C0tJTZmp.js → runner-BJmolY3h.js} +6 -6
- package/dist/{runner-BXN4KYDK.js → runner-CR105aVj.js} +1 -1
- package/dist/{runner-DjHRFXSI.js → runner-Ct0-sE8b.js} +8 -8
- package/dist/{runner-uDZlTCm2.js → runner-t-wbbvf-.js} +4 -4
- package/dist/{sandbox-rMmahr2s.js → sandbox-BGegLZ1X.js} +1 -1
- package/dist/{sandbox-CbuJolk2.js → sandbox-CAcCcpV3.js} +1 -1
- package/dist/{sandbox-cli-C90jqh9l.js → sandbox-cli-CvvSZr3D.js} +3 -2
- package/dist/{sandbox-cli-Duc05KL9.js → sandbox-cli-GaFIkZTh.js} +3 -2
- package/dist/{security-cli-Bt0VkUtO.js → security-cli-DJpFpYUY.js} +5 -4
- package/dist/{security-cli-YGXUUBvD.js → security-cli-Vyuc8XY7.js} +5 -4
- package/dist/{send-CzE5UKr-.js → send-B9JhmJSo.js} +5 -5
- package/dist/{send-D_yJMeJa.js → send-COvqFO3S.js} +4 -4
- package/dist/{send-DEWzWqfZ.js → send-CiVBt5gu.js} +4 -4
- package/dist/{send-BeASPkFg.js → send-D3qb_2Q-.js} +4 -4
- package/dist/{send-mi3NHnwI.js → send-DBTO2dLX.js} +2 -2
- package/dist/{send-De_WCeGZ.js → send-DDt3Bdxx.js} +4 -4
- package/dist/{send-3YM-aarb.js → send-DXoJ5lC_.js} +1 -1
- package/dist/{send-Do-0Kcmv.js → send-DmlK72uJ.js} +3 -3
- package/dist/{send-BsocounR.js → send-Dz76LuDQ.js} +2 -2
- package/dist/{send-CHOArYFe.js → send-DzmRVAHq.js} +3 -3
- package/dist/{send-BVZGeP2r.js → send-LZO3UNRb.js} +3 -3
- package/dist/{send-B18gkuvz.js → send-OEyo5LFE.js} +2 -2
- package/dist/{send-D0dzPf6g.js → send-TQWniAsM.js} +2 -2
- package/dist/{send-D16XtYvC.js → send-bTMPppyJ.js} +4 -4
- package/dist/{send-D3M6pMr5.js → send-yBb6c4og.js} +5 -5
- package/dist/{server-methods-BBkI0oCw.js → server-methods-C7N7UMSW.js} +14 -14
- package/dist/{server-methods-CQo9n7_8.js → server-methods-CkOu6zha.js} +13 -13
- package/dist/{server-node-events-DBIaf_Oj.js → server-node-events-BVdEI7tT.js} +10 -10
- package/dist/{server-node-events-DXVd5rRh.js → server-node-events-DHR0gLJD.js} +30 -30
- package/dist/{session-T0JXlYWe.js → session-_ViRAnAz.js} +1 -1
- package/dist/{session-utils-Cdv2Qaq2.js → session-utils-BcI6SO4J.js} +1 -1
- package/dist/{sessions-CX93jXmG.js → sessions-Cyr_cPRu.js} +2 -2
- package/dist/{sessions-BEyCtqBB.js → sessions-DcjESPyL.js} +263 -3
- package/dist/{sessions-DJAxaVI7.js → sessions-WDdS9Yo7.js} +262 -2
- package/dist/{skill-commands-DWcJOIzP.js → skill-commands-Bc-ztbDr.js} +1 -1
- package/dist/{skill-commands-B64uavY9.js → skill-commands-D_bBwwvA.js} +1 -1
- package/dist/{skills-install-D67isO1L.js → skills-install-CKFZBTH2.js} +1 -1
- package/dist/{status-CqnXLNV0.js → status-BenJOJF2.js} +5 -5
- package/dist/{status-CsoUJxpm.js → status-C8wS7Lbr.js} +7 -7
- package/dist/{status-B77mKduK.js → status-DcY3KTFx.js} +1 -1
- package/dist/{status-Be3sgGJN.js → status-DxNQmdA8.js} +1 -1
- package/dist/{status.update-DlaskfTr.js → status.update-D40obmG1.js} +1 -1
- package/dist/{store-C0wvOkae.js → store-Bb4oiLME.js} +1 -1
- package/dist/{store-bnzGvI16.js → store-C4ZvS7QX.js} +1 -1
- package/dist/{subagent-registry-BH79W7i1.js → subagent-registry-ujHhkiDm.js} +174 -138
- package/dist/{tables-BEzT0Da4.js → tables-CjPLB3aX.js} +1 -1
- package/dist/{tables-DuZspiBu.js → tables-XnT3BCYh.js} +1 -1
- package/dist/{tables-COnZ169v.js → tables-dfFTl4Oa.js} +1 -1
- package/dist/{target-errors-7AvoVa10.js → target-errors-B_xs1J06.js} +1 -1
- package/dist/{target-errors-BbOqxMY0.js → target-errors-CL9BfceM.js} +2 -2
- package/dist/{target-errors-Be1SwYlW.js → target-errors-LR7w6--g.js} +2 -2
- package/dist/{thinking-CdlENGRW.js → thinking-EjJEKdLq.js} +1 -1
- package/dist/{thinking-W85Rb32m.js → thinking-XA7vussX.js} +1 -1
- package/dist/{tool-images-ChC2CXaN.js → tool-images-BHM4TeU5.js} +1 -1
- package/dist/{tool-images-DXB7tqWi.js → tool-images-BwAkbbBM.js} +1 -1
- package/dist/{tui-CcirlGg5.js → tui-CzysFxZ0.js} +3 -3
- package/dist/{tui-0rURH3b3.js → tui-DMKdRwFF.js} +2 -2
- package/dist/{tui-cli-hcbzeOtp.js → tui-cli-CKHu_yYJ.js} +5 -4
- package/dist/{tui-cli-D3VMk5c8.js → tui-cli-Hzw_5-oe.js} +7 -6
- package/dist/{update-check-CtckACbb.js → update-check-DK1kMuwI.js} +1 -1
- package/dist/{update-cli-Ce9xf_CT.js → update-cli-Byw3vUdU.js} +17 -17
- package/dist/{update-cli-BhPzUXNP.js → update-cli-D__K_5cn.js} +38 -38
- package/dist/{update-runner-DYnn5y5L.js → update-runner-CqciHxLK.js} +2 -2
- package/dist/{update-runner-BpQxWph5.js → update-runner-yKAKuw2W.js} +1 -1
- package/dist/{web-uh4O13Iu.js → web-B2v6AvX-.js} +31 -31
- package/dist/{web-sN6ARhg2.js → web-DJzj2HU0.js} +9 -9
- package/dist/{web-D3J3pm9B.js → web-ENDSDPaD.js} +37 -37
- package/dist/{web-07aQbQrq.js → web-cJUlI_Wb.js} +30 -30
- package/dist/{whatsapp-actions-Jfx4zcwv.js → whatsapp-actions-BcsFR5tf.js} +7 -7
- package/dist/{whatsapp-actions-BIjGyW3T.js → whatsapp-actions-CUczC854.js} +9 -9
- package/dist/{whatsapp-actions-BL7tCNC_.js → whatsapp-actions-ia2odzch.js} +12 -12
- package/docs/reference/templates/AGENTS.md +18 -0
- package/docs/reference/templates/SYMICORE.md +2 -0
- package/package.json +1 -1
- /package/dist/{accounts-8zZqL37v.js → accounts-9VRq1rY7.js} +0 -0
- /package/dist/{accounts-CWktKM8a.js → accounts-BCS-nbgN.js} +0 -0
- /package/dist/{api-key-rotation-BukD0zzl.js → api-key-rotation-erqZ9Tuc.js} +0 -0
- /package/dist/{diagnostic-session-state-Bxo4UHOL.js → diagnostic-session-state-Bu3E4Enn.js} +0 -0
- /package/dist/{diagnostic-session-state-C1vRJs5w.js → diagnostic-session-state-DmrztgHU.js} +0 -0
- /package/dist/{fetch-timeout-Db3da8yR.js → fetch-timeout-DoySHqfO.js} +0 -0
- /package/dist/{github-copilot-token-C_qUP7p5.js → github-copilot-token-BqpAEW8G.js} +0 -0
- /package/dist/{image-ops-CvJzsyvE.js → image-ops-DD37OhdR.js} +0 -0
- /package/dist/{image-ops-ByaQt43P.js → image-ops-UtlmP67m.js} +0 -0
- /package/dist/{message-channel-BQINJQIT.js → message-channel-B3YUM8IG.js} +0 -0
- /package/dist/{message-channel-Dz5lr5b0.js → message-channel-Bj7aZphL.js} +0 -0
- /package/dist/{model-catalog-DjJ9GtKX.js → model-catalog-DhaH7him.js} +0 -0
- /package/dist/{pi-model-discovery-j5tVLINv.js → pi-model-discovery-C-yOXpma.js} +0 -0
- /package/dist/{sqlite-Dx3J_aSE.js → sqlite-DhNyBVPk.js} +0 -0
- /package/dist/{tokens-BuceUQDl.js → tokens-DBCvs-Ns.js} +0 -0
- /package/dist/{tool-display-D8N3rsYt.js → tool-display-pHB3J5PK.js} +0 -0
- /package/dist/{tool-images-DvUBlqjX.js → tool-images-CLRUTPlM.js} +0 -0
- /package/dist/{transcript-events-DdnTeoR1.js → transcript-events-CJRvASY_.js} +0 -0
|
@@ -8,58 +8,58 @@ import { $ as DEFAULT_PROVIDER, A as resolveShellEnvFallbackTimeoutMs, B as dedu
|
|
|
8
8
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-K_J_nfgx.js";
|
|
9
9
|
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-BbsJ0Qbo.js";
|
|
10
10
|
import { i as resolveCliName, n as parseBooleanValue$1, r as formatCliCommand, t as isTruthyEnvValue } from "./env-CQ_DQOwT.js";
|
|
11
|
-
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN,
|
|
11
|
+
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-Cn6drXx2.js";
|
|
12
|
+
import { $ as mergeDeliveryContext, $t as stripHeartbeatToken, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as deliveryContextKey, Qt as resolveHeartbeatPrompt, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-BqnI9Mzn.js";
|
|
12
13
|
import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTelegramAccountIds, d as resolveSlackAccount, g as listEnabledDiscordAccounts, h as createDiscordActionGate, i as isWhatsAppGroupJid, l as resolveTelegramAccount, m as resolveSlackBotToken, n as listChannelPlugins, o as createTelegramActionGate, p as resolveSlackAppToken, r as normalizeChannelId$1, s as listEnabledTelegramAccounts, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeDiscordToken } from "./plugins-71oIavrF.js";
|
|
13
14
|
import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-DDEyGwby.js";
|
|
14
15
|
import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
|
|
15
|
-
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-
|
|
16
|
-
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-
|
|
17
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-
|
|
18
|
-
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-
|
|
19
|
-
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-
|
|
20
|
-
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-
|
|
21
|
-
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-
|
|
22
|
-
import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-
|
|
23
|
-
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-
|
|
24
|
-
import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-
|
|
25
|
-
import { $ as mergeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as deliveryContextKey, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers--yFTAWwW.js";
|
|
16
|
+
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-TQWniAsM.js";
|
|
17
|
+
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-DDt3Bdxx.js";
|
|
18
|
+
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-jK_qcWx-.js";
|
|
19
|
+
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-C-7DW8ZL.js";
|
|
20
|
+
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Bu3E4Enn.js";
|
|
21
|
+
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-9VRq1rY7.js";
|
|
22
|
+
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-DBTO2dLX.js";
|
|
23
|
+
import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-UtlmP67m.js";
|
|
24
|
+
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
|
|
25
|
+
import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-B3YUM8IG.js";
|
|
26
26
|
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-BjGo9GnL.js";
|
|
27
27
|
import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-D-mTF1cj.js";
|
|
28
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
28
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-B_zrSLce.js";
|
|
29
29
|
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-BNpGMnp-.js";
|
|
30
30
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-CPfngF0S.js";
|
|
31
31
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
|
|
32
|
-
import { n as getMediaDir, r as saveMediaBuffer } from "./store-
|
|
33
|
-
import { _ as normalizeAtHashSlug, a as normalizeReasoningLevel, b as normalizeStringEntriesLower, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as resolveChannelGroupToolsPolicy, h as resolveChannelGroupRequireMention, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupPolicy, n as formatXHighModelHint, o as normalizeThinkLevel, p as normalizeSignalMessagingTarget, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeHyphenSlug, y as normalizeStringEntries } from "./thinking-
|
|
32
|
+
import { n as getMediaDir, r as saveMediaBuffer } from "./store-C4ZvS7QX.js";
|
|
33
|
+
import { _ as normalizeAtHashSlug, a as normalizeReasoningLevel, b as normalizeStringEntriesLower, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as resolveChannelGroupToolsPolicy, h as resolveChannelGroupRequireMention, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupPolicy, n as formatXHighModelHint, o as normalizeThinkLevel, p as normalizeSignalMessagingTarget, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeHyphenSlug, y as normalizeStringEntries } from "./thinking-XA7vussX.js";
|
|
34
34
|
import { n as resolveConversationLabel } from "./conversation-label-BShfMyKA.js";
|
|
35
35
|
import { t as resolveIMessageAccount } from "./accounts-DImOt9jX.js";
|
|
36
36
|
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-DkMamAQ-.js";
|
|
37
37
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-C8Tqw4td.js";
|
|
38
|
-
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-
|
|
39
|
-
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-
|
|
38
|
+
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-BHM4TeU5.js";
|
|
39
|
+
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-qnqUW4nb.js";
|
|
40
40
|
import { n as resolveMemorySearchConfig } from "./manager-oiX42wby.js";
|
|
41
41
|
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-BNh23mUR.js";
|
|
42
42
|
import { n as retryAsync } from "./retry-QGp0jvVi.js";
|
|
43
|
-
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-
|
|
44
|
-
import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-
|
|
43
|
+
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-LR7w6--g.js";
|
|
44
|
+
import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-rw3-yl6B.js";
|
|
45
45
|
import { n as resolveMarkdownTableMode } from "./markdown-tables-DawaaZEe.js";
|
|
46
46
|
import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-BheTNyes.js";
|
|
47
|
-
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-
|
|
48
|
-
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-
|
|
49
|
-
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-
|
|
50
|
-
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-
|
|
47
|
+
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-BDORNz_Q.js";
|
|
48
|
+
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DPLo2LIn.js";
|
|
49
|
+
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-UwWpNkQg.js";
|
|
50
|
+
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-Bc-ztbDr.js";
|
|
51
51
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-QOi5vzUt.js";
|
|
52
|
-
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-
|
|
52
|
+
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-t-wbbvf-.js";
|
|
53
53
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-DtLn7YU3.js";
|
|
54
54
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-DtXYsHEc.js";
|
|
55
55
|
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-D9q-fIPB.js";
|
|
56
56
|
import { n as normalizePollInput } from "./polls-DQcEziPg.js";
|
|
57
|
-
import { t as convertMarkdownTables } from "./tables-
|
|
58
|
-
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-
|
|
59
|
-
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-
|
|
57
|
+
import { t as convertMarkdownTables } from "./tables-dfFTl4Oa.js";
|
|
58
|
+
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-bTMPppyJ.js";
|
|
59
|
+
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-DmlK72uJ.js";
|
|
60
60
|
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-We7ViAbg.js";
|
|
61
61
|
import { t as makeProxyFetch } from "./proxy-BaSHbVlA.js";
|
|
62
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
62
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-ConxSQu4.js";
|
|
63
63
|
import { t as getActiveWebListener } from "./active-listener-1krIj9TM.js";
|
|
64
64
|
import { createRequire } from "node:module";
|
|
65
65
|
import * as path$1 from "node:path";
|
|
@@ -79,7 +79,7 @@ import { EdgeTTS } from "node-edge-tts";
|
|
|
79
79
|
import AjvPkg from "ajv";
|
|
80
80
|
import { createServer } from "node:http";
|
|
81
81
|
import { ProxyAgent, fetch as fetch$1 } from "undici";
|
|
82
|
-
import WebSocket
|
|
82
|
+
import WebSocket, { WebSocket as WebSocket$1 } from "ws";
|
|
83
83
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
84
84
|
import { createJiti } from "jiti";
|
|
85
85
|
import { Type } from "@sinclair/typebox";
|
|
@@ -100,101 +100,6 @@ import { run, sequentialize } from "@grammyjs/runner";
|
|
|
100
100
|
import { apiThrottler } from "@grammyjs/transformer-throttler";
|
|
101
101
|
import { EventEmitter } from "node:events";
|
|
102
102
|
|
|
103
|
-
//#region src/auto-reply/heartbeat.ts
|
|
104
|
-
const HEARTBEAT_PROMPT = "Read SYMIPULSE.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply SYMIPULSE_OK.";
|
|
105
|
-
const DEFAULT_HEARTBEAT_ACK_MAX_CHARS = 300;
|
|
106
|
-
function resolveHeartbeatPrompt(raw) {
|
|
107
|
-
return (typeof raw === "string" ? raw.trim() : "") || HEARTBEAT_PROMPT;
|
|
108
|
-
}
|
|
109
|
-
function stripTokenAtEdges(raw) {
|
|
110
|
-
let text = raw.trim();
|
|
111
|
-
if (!text) return {
|
|
112
|
-
text: "",
|
|
113
|
-
didStrip: false
|
|
114
|
-
};
|
|
115
|
-
const token = SYMIPULSE_TOKEN;
|
|
116
|
-
const tokenAtEndWithOptionalTrailingPunctuation = new RegExp(`${escapeRegExp(token)}[^\\w]{0,4}$`);
|
|
117
|
-
if (!text.includes(token)) return {
|
|
118
|
-
text,
|
|
119
|
-
didStrip: false
|
|
120
|
-
};
|
|
121
|
-
let didStrip = false;
|
|
122
|
-
let changed = true;
|
|
123
|
-
while (changed) {
|
|
124
|
-
changed = false;
|
|
125
|
-
const next = text.trim();
|
|
126
|
-
if (next.startsWith(token)) {
|
|
127
|
-
text = next.slice(token.length).trimStart();
|
|
128
|
-
didStrip = true;
|
|
129
|
-
changed = true;
|
|
130
|
-
continue;
|
|
131
|
-
}
|
|
132
|
-
if (tokenAtEndWithOptionalTrailingPunctuation.test(next)) {
|
|
133
|
-
const idx = next.lastIndexOf(token);
|
|
134
|
-
const before = next.slice(0, idx).trimEnd();
|
|
135
|
-
if (!before) text = "";
|
|
136
|
-
else text = `${before}${next.slice(idx + token.length).trimStart()}`.trimEnd();
|
|
137
|
-
didStrip = true;
|
|
138
|
-
changed = true;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
return {
|
|
142
|
-
text: text.replace(/\s+/g, " ").trim(),
|
|
143
|
-
didStrip
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
function stripHeartbeatToken(raw, opts = {}) {
|
|
147
|
-
if (!raw) return {
|
|
148
|
-
shouldSkip: true,
|
|
149
|
-
text: "",
|
|
150
|
-
didStrip: false
|
|
151
|
-
};
|
|
152
|
-
const trimmed = raw.trim();
|
|
153
|
-
if (!trimmed) return {
|
|
154
|
-
shouldSkip: true,
|
|
155
|
-
text: "",
|
|
156
|
-
didStrip: false
|
|
157
|
-
};
|
|
158
|
-
const mode = opts.mode ?? "message";
|
|
159
|
-
const maxAckCharsRaw = opts.maxAckChars;
|
|
160
|
-
const parsedAckChars = typeof maxAckCharsRaw === "string" ? Number(maxAckCharsRaw) : maxAckCharsRaw;
|
|
161
|
-
const maxAckChars = Math.max(0, typeof parsedAckChars === "number" && Number.isFinite(parsedAckChars) ? parsedAckChars : DEFAULT_HEARTBEAT_ACK_MAX_CHARS);
|
|
162
|
-
const stripMarkup = (text) => text.replace(/<[^>]*>/g, " ").replace(/ /gi, " ").replace(/^[*`~_]+/, "").replace(/[*`~_]+$/, "");
|
|
163
|
-
const trimmedNormalized = stripMarkup(trimmed);
|
|
164
|
-
if (!(trimmed.includes(SYMIPULSE_TOKEN) || trimmedNormalized.includes(SYMIPULSE_TOKEN))) return {
|
|
165
|
-
shouldSkip: false,
|
|
166
|
-
text: trimmed,
|
|
167
|
-
didStrip: false
|
|
168
|
-
};
|
|
169
|
-
const strippedOriginal = stripTokenAtEdges(trimmed);
|
|
170
|
-
const strippedNormalized = stripTokenAtEdges(trimmedNormalized);
|
|
171
|
-
const picked = strippedOriginal.didStrip && strippedOriginal.text ? strippedOriginal : strippedNormalized;
|
|
172
|
-
if (!picked.didStrip) return {
|
|
173
|
-
shouldSkip: false,
|
|
174
|
-
text: trimmed,
|
|
175
|
-
didStrip: false
|
|
176
|
-
};
|
|
177
|
-
if (!picked.text) return {
|
|
178
|
-
shouldSkip: true,
|
|
179
|
-
text: "",
|
|
180
|
-
didStrip: true
|
|
181
|
-
};
|
|
182
|
-
const rest = picked.text.trim();
|
|
183
|
-
if (mode === "heartbeat") {
|
|
184
|
-
if (rest.length <= maxAckChars) return {
|
|
185
|
-
shouldSkip: true,
|
|
186
|
-
text: "",
|
|
187
|
-
didStrip: true
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
return {
|
|
191
|
-
shouldSkip: false,
|
|
192
|
-
text: rest,
|
|
193
|
-
didStrip: true
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
//#endregion
|
|
198
103
|
//#region src/channels/allowlist-match.ts
|
|
199
104
|
function formatAllowlistMatchMeta(match) {
|
|
200
105
|
return `matchKey=${match?.matchKey ?? "none"} matchSource=${match?.matchSource ?? "none"}`;
|
|
@@ -5713,7 +5618,7 @@ var GatewayClient = class {
|
|
|
5713
5618
|
if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
|
|
5714
5619
|
});
|
|
5715
5620
|
}
|
|
5716
|
-
this.ws = new WebSocket(url, wsOptions);
|
|
5621
|
+
this.ws = new WebSocket$1(url, wsOptions);
|
|
5717
5622
|
this.ws.on("open", () => {
|
|
5718
5623
|
if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
|
|
5719
5624
|
const tlsError = this.validateTlsFingerprint();
|
|
@@ -5932,7 +5837,7 @@ var GatewayClient = class {
|
|
|
5932
5837
|
return null;
|
|
5933
5838
|
}
|
|
5934
5839
|
async request(method, params, opts) {
|
|
5935
|
-
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
|
|
5840
|
+
if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
|
|
5936
5841
|
const id = randomUUID();
|
|
5937
5842
|
const frame = {
|
|
5938
5843
|
type: "req",
|
|
@@ -7198,7 +7103,7 @@ async function routeReply(params) {
|
|
|
7198
7103
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
7199
7104
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
7200
7105
|
try {
|
|
7201
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
7106
|
+
const { deliverOutboundPayloads } = await import("./deliver-jK_qcWx-.js").then((n) => n.n);
|
|
7202
7107
|
return {
|
|
7203
7108
|
ok: true,
|
|
7204
7109
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -12433,7 +12338,7 @@ const MODEL_CACHE = /* @__PURE__ */ new Map();
|
|
|
12433
12338
|
await ensureSymiModelsJson(cfg);
|
|
12434
12339
|
} catch {}
|
|
12435
12340
|
try {
|
|
12436
|
-
const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-
|
|
12341
|
+
const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-DaNAekda.js").then((n) => n.r);
|
|
12437
12342
|
const agentDir = resolveSymiAgentDir();
|
|
12438
12343
|
const modelRegistry = discoverModels(discoverAuthStorage(agentDir), agentDir);
|
|
12439
12344
|
applyDiscoveredContextWindows({
|
|
@@ -41571,7 +41476,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
41571
41476
|
return;
|
|
41572
41477
|
}
|
|
41573
41478
|
try {
|
|
41574
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
41479
|
+
const { deliverOutboundPayloads } = await import("./deliver-jK_qcWx-.js").then((n) => n.n);
|
|
41575
41480
|
await deliverOutboundPayloads({
|
|
41576
41481
|
cfg: params.cfg,
|
|
41577
41482
|
channel,
|
|
@@ -45014,7 +44919,7 @@ async function describeStickerImage(params) {
|
|
|
45014
44919
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
45015
44920
|
try {
|
|
45016
44921
|
const buffer = await fs$1.readFile(imagePath);
|
|
45017
|
-
const { describeImageWithModel } = await import("./image-
|
|
44922
|
+
const { describeImageWithModel } = await import("./image-qnqUW4nb.js").then((n) => n.n);
|
|
45018
44923
|
return (await describeImageWithModel({
|
|
45019
44924
|
buffer,
|
|
45020
44925
|
fileName: "sticker.webp",
|
|
@@ -47475,7 +47380,7 @@ async function preflightDiscordMessage(params) {
|
|
|
47475
47380
|
let preflightTranscript;
|
|
47476
47381
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
47477
47382
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
47478
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
47383
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-B6L8N6Ly.js");
|
|
47479
47384
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
47480
47385
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
47481
47386
|
ctx: {
|
|
@@ -51481,27 +51386,27 @@ function isVoiceChannelType(type) {
|
|
|
51481
51386
|
function createDefaultDeps() {
|
|
51482
51387
|
return {
|
|
51483
51388
|
sendMessageWhatsApp: async (...args) => {
|
|
51484
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
51389
|
+
const { sendMessageWhatsApp } = await import("./web-cJUlI_Wb.js");
|
|
51485
51390
|
return await sendMessageWhatsApp(...args);
|
|
51486
51391
|
},
|
|
51487
51392
|
sendMessageTelegram: async (...args) => {
|
|
51488
|
-
const { sendMessageTelegram } = await import("./send-
|
|
51393
|
+
const { sendMessageTelegram } = await import("./send-DBTO2dLX.js").then((n) => n.l);
|
|
51489
51394
|
return await sendMessageTelegram(...args);
|
|
51490
51395
|
},
|
|
51491
51396
|
sendMessageDiscord: async (...args) => {
|
|
51492
|
-
const { sendMessageDiscord } = await import("./send-
|
|
51397
|
+
const { sendMessageDiscord } = await import("./send-DDt3Bdxx.js").then((n) => n.t);
|
|
51493
51398
|
return await sendMessageDiscord(...args);
|
|
51494
51399
|
},
|
|
51495
51400
|
sendMessageSlack: async (...args) => {
|
|
51496
|
-
const { sendMessageSlack } = await import("./send-
|
|
51401
|
+
const { sendMessageSlack } = await import("./send-TQWniAsM.js").then((n) => n.n);
|
|
51497
51402
|
return await sendMessageSlack(...args);
|
|
51498
51403
|
},
|
|
51499
51404
|
sendMessageSignal: async (...args) => {
|
|
51500
|
-
const { sendMessageSignal } = await import("./send-
|
|
51405
|
+
const { sendMessageSignal } = await import("./send-bTMPppyJ.js").then((n) => n.i);
|
|
51501
51406
|
return await sendMessageSignal(...args);
|
|
51502
51407
|
},
|
|
51503
51408
|
sendMessageIMessage: async (...args) => {
|
|
51504
|
-
const { sendMessageIMessage } = await import("./send-
|
|
51409
|
+
const { sendMessageIMessage } = await import("./send-DmlK72uJ.js").then((n) => n.n);
|
|
51505
51410
|
return await sendMessageIMessage(...args);
|
|
51506
51411
|
}
|
|
51507
51412
|
};
|
|
@@ -54385,7 +54290,7 @@ function createDiscordGatewayPlugin(params) {
|
|
|
54385
54290
|
super(options);
|
|
54386
54291
|
}
|
|
54387
54292
|
createWebSocket(url) {
|
|
54388
|
-
return new WebSocket
|
|
54293
|
+
return new WebSocket(url, { agent });
|
|
54389
54294
|
}
|
|
54390
54295
|
}
|
|
54391
54296
|
return new ProxyGatewayPlugin();
|
|
@@ -61927,7 +61832,7 @@ function readSlackExternalArgMenuToken(raw) {
|
|
|
61927
61832
|
}
|
|
61928
61833
|
let commandsRegistry;
|
|
61929
61834
|
async function getCommandsRegistry() {
|
|
61930
|
-
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-
|
|
61835
|
+
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-UwWpNkQg.js").then((n) => n.n);
|
|
61931
61836
|
return commandsRegistry;
|
|
61932
61837
|
}
|
|
61933
61838
|
function encodeSlackCommandArgValue(parts) {
|
|
@@ -62330,8 +62235,8 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
62330
62235
|
});
|
|
62331
62236
|
const deliverSlashPayloads = async (replies) => {
|
|
62332
62237
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
62333
|
-
import("./replies-
|
|
62334
|
-
import("./chunk-
|
|
62238
|
+
import("./replies-ConxSQu4.js").then((n) => n.r),
|
|
62239
|
+
import("./chunk-rw3-yl6B.js").then((n) => n.s),
|
|
62335
62240
|
import("./markdown-tables-DawaaZEe.js").then((n) => n.t)
|
|
62336
62241
|
]);
|
|
62337
62242
|
await deliverSlackSlashReplies({
|
|
@@ -62385,7 +62290,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
62385
62290
|
let nativeCommands = [];
|
|
62386
62291
|
if (nativeEnabled) {
|
|
62387
62292
|
reg = await getCommandsRegistry();
|
|
62388
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
62293
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-Bc-ztbDr.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
62389
62294
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
62390
62295
|
skillCommands,
|
|
62391
62296
|
provider: "slack"
|
|
@@ -64603,7 +64508,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
64603
64508
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
64604
64509
|
let preflightTranscript;
|
|
64605
64510
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
64606
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
64511
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-B6L8N6Ly.js");
|
|
64607
64512
|
preflightTranscript = await transcribeFirstAudio({
|
|
64608
64513
|
ctx: {
|
|
64609
64514
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -66748,7 +66653,7 @@ let webLoginQrPromise = null;
|
|
|
66748
66653
|
let webChannelPromise = null;
|
|
66749
66654
|
let whatsappActionsPromise = null;
|
|
66750
66655
|
function loadWebOutbound() {
|
|
66751
|
-
webOutboundPromise ??= import("./outbound-
|
|
66656
|
+
webOutboundPromise ??= import("./outbound-ByC0HdWz.js").then((n) => n.t);
|
|
66752
66657
|
return webOutboundPromise;
|
|
66753
66658
|
}
|
|
66754
66659
|
function loadWebLogin() {
|
|
@@ -66760,11 +66665,11 @@ function loadWebLoginQr() {
|
|
|
66760
66665
|
return webLoginQrPromise;
|
|
66761
66666
|
}
|
|
66762
66667
|
function loadWebChannel() {
|
|
66763
|
-
webChannelPromise ??= import("./web-
|
|
66668
|
+
webChannelPromise ??= import("./web-cJUlI_Wb.js");
|
|
66764
66669
|
return webChannelPromise;
|
|
66765
66670
|
}
|
|
66766
66671
|
function loadWhatsAppActions() {
|
|
66767
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
66672
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-CUczC854.js");
|
|
66768
66673
|
return whatsappActionsPromise;
|
|
66769
66674
|
}
|
|
66770
66675
|
function createPluginRuntime() {
|
|
@@ -68042,7 +67947,7 @@ function shouldEmitLoopWarning(state, warningKey, count) {
|
|
|
68042
67947
|
async function recordLoopOutcome(args) {
|
|
68043
67948
|
if (!args.ctx?.sessionKey) return;
|
|
68044
67949
|
try {
|
|
68045
|
-
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-
|
|
67950
|
+
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Bu3E4Enn.js").then((n) => n.n);
|
|
68046
67951
|
const { recordToolCallOutcome } = await import("./tool-loop-detection-BgbtzUGc.js");
|
|
68047
67952
|
recordToolCallOutcome(getDiagnosticSessionState({
|
|
68048
67953
|
sessionKey: args.ctx.sessionKey,
|
|
@@ -68063,8 +67968,8 @@ async function runBeforeToolCallHook(args) {
|
|
|
68063
67968
|
const toolName = normalizeToolName(args.toolName || "tool");
|
|
68064
67969
|
const params = args.params;
|
|
68065
67970
|
if (args.ctx?.sessionKey) {
|
|
68066
|
-
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-
|
|
68067
|
-
const { logToolLoopAction } = await import("./diagnostic-
|
|
67971
|
+
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Bu3E4Enn.js").then((n) => n.n);
|
|
67972
|
+
const { logToolLoopAction } = await import("./diagnostic-C-7DW8ZL.js").then((n) => n.n);
|
|
68068
67973
|
const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-BgbtzUGc.js");
|
|
68069
67974
|
const sessionState = getDiagnosticSessionState({
|
|
68070
67975
|
sessionKey: args.ctx.sessionKey,
|
|
@@ -74587,6 +74492,152 @@ function subscribeEmbeddedPiSession(params) {
|
|
|
74587
74492
|
};
|
|
74588
74493
|
}
|
|
74589
74494
|
|
|
74495
|
+
//#endregion
|
|
74496
|
+
//#region src/agents/plan-mode.ts
|
|
74497
|
+
/**
|
|
74498
|
+
* Plan Mode — automatic complexity detection and structured planning.
|
|
74499
|
+
*
|
|
74500
|
+
* When a user message is complex (multi-step, multi-file, refactoring, etc.),
|
|
74501
|
+
* Symi auto-enters plan mode: read-only investigation → structured plan →
|
|
74502
|
+
* user approval → context-cleared execution.
|
|
74503
|
+
*/
|
|
74504
|
+
const PLAN_KEYWORDS = new Set([
|
|
74505
|
+
"investigate",
|
|
74506
|
+
"refactor",
|
|
74507
|
+
"migrate",
|
|
74508
|
+
"redesign",
|
|
74509
|
+
"set up",
|
|
74510
|
+
"setup",
|
|
74511
|
+
"build",
|
|
74512
|
+
"implement",
|
|
74513
|
+
"architect",
|
|
74514
|
+
"overhaul",
|
|
74515
|
+
"restructure",
|
|
74516
|
+
"rewrite"
|
|
74517
|
+
]);
|
|
74518
|
+
const ANALYSIS_KEYWORDS = new Set([
|
|
74519
|
+
"analyze",
|
|
74520
|
+
"analyse",
|
|
74521
|
+
"compare",
|
|
74522
|
+
"audit",
|
|
74523
|
+
"review",
|
|
74524
|
+
"evaluate",
|
|
74525
|
+
"assess"
|
|
74526
|
+
]);
|
|
74527
|
+
const SEQUENTIAL_MARKERS = [
|
|
74528
|
+
/\bthen\b/i,
|
|
74529
|
+
/\bafter that\b/i,
|
|
74530
|
+
/\bonce .+ is done\b/i,
|
|
74531
|
+
/\bnext,?\s/i,
|
|
74532
|
+
/\bfollowed by\b/i,
|
|
74533
|
+
/\bfinally\b/i
|
|
74534
|
+
];
|
|
74535
|
+
const NUMBERED_LIST_RE = /^\s*\d+[.)]\s/gm;
|
|
74536
|
+
const FILE_PATH_RE = /(?:\/[\w.-]+){2,}|[\w.-]+\.[a-z]{1,4}/g;
|
|
74537
|
+
/**
|
|
74538
|
+
* Score a user message for complexity.
|
|
74539
|
+
* Returns a numeric score; >= PLAN_MODE_THRESHOLD triggers plan mode.
|
|
74540
|
+
*/
|
|
74541
|
+
function scorePlanComplexity(prompt) {
|
|
74542
|
+
let score = 0;
|
|
74543
|
+
const lower = prompt.toLowerCase();
|
|
74544
|
+
if (prompt.length > 500) {
|
|
74545
|
+
if ([...PLAN_KEYWORDS, ...ANALYSIS_KEYWORDS].some((kw) => lower.includes(kw)) || FILE_PATH_RE.test(prompt)) score += 3;
|
|
74546
|
+
}
|
|
74547
|
+
const numberedItems = prompt.match(NUMBERED_LIST_RE);
|
|
74548
|
+
if (numberedItems && numberedItems.length >= 3) score += 2;
|
|
74549
|
+
for (const kw of PLAN_KEYWORDS) if (lower.includes(kw)) {
|
|
74550
|
+
score += 2;
|
|
74551
|
+
break;
|
|
74552
|
+
}
|
|
74553
|
+
for (const re of SEQUENTIAL_MARKERS) if (re.test(prompt)) {
|
|
74554
|
+
score += 2;
|
|
74555
|
+
break;
|
|
74556
|
+
}
|
|
74557
|
+
const filePaths = prompt.match(FILE_PATH_RE);
|
|
74558
|
+
if (filePaths && new Set(filePaths).size >= 2) score += 1;
|
|
74559
|
+
for (const kw of ANALYSIS_KEYWORDS) if (lower.includes(kw)) {
|
|
74560
|
+
score += 1;
|
|
74561
|
+
break;
|
|
74562
|
+
}
|
|
74563
|
+
return score;
|
|
74564
|
+
}
|
|
74565
|
+
const PLAN_MODE_THRESHOLD = 5;
|
|
74566
|
+
/**
|
|
74567
|
+
* Determine whether a prompt should trigger plan mode.
|
|
74568
|
+
*
|
|
74569
|
+
* Priority:
|
|
74570
|
+
* 1. /plan prefix → always
|
|
74571
|
+
* 2. /noplan prefix → never
|
|
74572
|
+
* 3. Subagent/cron sessions → never
|
|
74573
|
+
* 4. Heuristic scoring
|
|
74574
|
+
*/
|
|
74575
|
+
function shouldEnterPlanMode(prompt, opts = {}) {
|
|
74576
|
+
const trimmed = prompt.trim();
|
|
74577
|
+
if (/^\/plan\b/i.test(trimmed)) return {
|
|
74578
|
+
enter: true,
|
|
74579
|
+
reason: "explicit /plan directive",
|
|
74580
|
+
score: 99,
|
|
74581
|
+
stripped: trimmed.replace(/^\/plan\s*/i, "").trim()
|
|
74582
|
+
};
|
|
74583
|
+
if (/^\/noplan\b/i.test(trimmed)) return {
|
|
74584
|
+
enter: false,
|
|
74585
|
+
reason: "explicit /noplan directive",
|
|
74586
|
+
score: 0,
|
|
74587
|
+
stripped: trimmed.replace(/^\/noplan\s*/i, "").trim()
|
|
74588
|
+
};
|
|
74589
|
+
if (opts.isSubagent) return {
|
|
74590
|
+
enter: false,
|
|
74591
|
+
reason: "subagent session",
|
|
74592
|
+
score: 0
|
|
74593
|
+
};
|
|
74594
|
+
if (opts.isCron) return {
|
|
74595
|
+
enter: false,
|
|
74596
|
+
reason: "cron session",
|
|
74597
|
+
score: 0
|
|
74598
|
+
};
|
|
74599
|
+
const score = scorePlanComplexity(trimmed);
|
|
74600
|
+
if (score >= PLAN_MODE_THRESHOLD) return {
|
|
74601
|
+
enter: true,
|
|
74602
|
+
reason: `complexity score ${score} >= ${PLAN_MODE_THRESHOLD}`,
|
|
74603
|
+
score
|
|
74604
|
+
};
|
|
74605
|
+
return {
|
|
74606
|
+
enter: false,
|
|
74607
|
+
reason: `complexity score ${score} < ${PLAN_MODE_THRESHOLD}`,
|
|
74608
|
+
score
|
|
74609
|
+
};
|
|
74610
|
+
}
|
|
74611
|
+
const PLAN_MODE_SYSTEM_PROMPT = `<plan_mode>
|
|
74612
|
+
You have entered PLAN MODE because this task is complex.
|
|
74613
|
+
|
|
74614
|
+
RULES:
|
|
74615
|
+
- DO NOT write, edit, or create any files yet
|
|
74616
|
+
- DO NOT execute destructive commands (rm, mv, git reset, etc.)
|
|
74617
|
+
- DO read files, search code, check runtime state
|
|
74618
|
+
- DO use memory_search, web_search, exec (read-only commands like ls, cat, git status, git log)
|
|
74619
|
+
- Produce a detailed step-by-step implementation plan
|
|
74620
|
+
|
|
74621
|
+
OUTPUT FORMAT:
|
|
74622
|
+
1. **Summary** — what needs to be done and why
|
|
74623
|
+
2. **Investigation** — files read, code searched, state checked
|
|
74624
|
+
3. **Files to modify** — list every file that will be created, edited, or deleted
|
|
74625
|
+
4. **Implementation phases** — numbered steps with:
|
|
74626
|
+
- What changes in each phase
|
|
74627
|
+
- Which files are touched
|
|
74628
|
+
- Dependencies on prior phases
|
|
74629
|
+
5. **Risks & considerations** — things that could go wrong, edge cases, rollback strategy
|
|
74630
|
+
|
|
74631
|
+
After presenting the plan, ask the user to choose one of these options.
|
|
74632
|
+
Present these as inline buttons if the channel supports them:
|
|
74633
|
+
- **Proceed** — clear context and execute the plan
|
|
74634
|
+
- **Modify** — adjust the plan based on feedback
|
|
74635
|
+
- **Cancel** — abandon the plan
|
|
74636
|
+
|
|
74637
|
+
Use the message tool with buttons:
|
|
74638
|
+
[{"label": "✅ Proceed", "data": "/plan-proceed"}, {"label": "✏️ Modify", "data": "/plan-modify"}, {"label": "❌ Cancel", "data": "/plan-cancel"}]
|
|
74639
|
+
</plan_mode>`;
|
|
74640
|
+
|
|
74590
74641
|
//#endregion
|
|
74591
74642
|
//#region src/agents/pi-embedded-runner/abort.ts
|
|
74592
74643
|
/**
|
|
@@ -75840,6 +75891,17 @@ async function runEmbeddedAttempt(params) {
|
|
|
75840
75891
|
log$2.debug(`auto-recall: skipped (${String(recallErr)})`);
|
|
75841
75892
|
}
|
|
75842
75893
|
}
|
|
75894
|
+
{
|
|
75895
|
+
const planResult = shouldEnterPlanMode(effectivePrompt, {
|
|
75896
|
+
isSubagent: isSubagentSessionKey(params.sessionKey),
|
|
75897
|
+
isCron: isCronSessionKey(params.sessionKey)
|
|
75898
|
+
});
|
|
75899
|
+
if (planResult.enter) {
|
|
75900
|
+
if (planResult.stripped != null) effectivePrompt = planResult.stripped;
|
|
75901
|
+
effectivePrompt = `${PLAN_MODE_SYSTEM_PROMPT}\n\n${effectivePrompt}`;
|
|
75902
|
+
log$2.info(`plan-mode: activated (${planResult.reason}) for runId=${params.runId}`);
|
|
75903
|
+
} else if (planResult.stripped != null) effectivePrompt = planResult.stripped;
|
|
75904
|
+
}
|
|
75843
75905
|
log$2.debug(`embedded run prompt start: runId=${params.runId} sessionId=${params.sessionId}`);
|
|
75844
75906
|
cacheTrace?.recordStage("prompt:before", {
|
|
75845
75907
|
prompt: effectivePrompt,
|