@symerian/symi 2.0.16 → 2.0.18
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-CSX62tsS.js → acp-cli-Cp81ShIC.js} +3 -3
- package/dist/{acp-cli-CrfY9UHo.js → acp-cli-h36Zuriy.js} +3 -3
- package/dist/{agents-CP6mOf0j.js → agents-B2jtcp_Y.js} +8 -8
- package/dist/{agents.config-CFps8Krs.js → agents.config-ButbIjGA.js} +1 -1
- package/dist/{agents.config-Da5XukaM.js → agents.config-DTJxgmnd.js} +1 -1
- package/dist/{api-key-rotation-BukD0zzl.js → api-key-rotation-De1ivBc0.js} +1 -1
- package/dist/{audio-preflight-DRQD_nt1.js → audio-preflight-B_VLZd_F.js} +7 -7
- package/dist/{audio-preflight-CQ5_RYEe.js → audio-preflight-CSix46JB.js} +13 -13
- package/dist/{audio-preflight-DSeaWZZW.js → audio-preflight-DGpde3Ae.js} +13 -13
- package/dist/{audio-preflight-Cq4C-m27.js → audio-preflight-k4jOy8Bo.js} +7 -7
- package/dist/{audit-Do2bVss3.js → audit-BbhuQjTl.js} +7 -7
- package/dist/{audit-x_SzU263.js → audit-BmuBsZal.js} +7 -7
- package/dist/{auth-choice-CZ9ugRNS.js → auth-choice-BMHb00f1.js} +7 -7
- package/dist/{auth-choice-za414gQg.js → auth-choice-Du7VUK1p.js} +7 -7
- package/dist/{auth-profiles-BD22fK4p.js → auth-profiles-Cs3GPB03.js} +6 -2
- package/dist/{auth-token-CNnt7guc.js → auth-token-CbDExtp_.js} +1 -1
- package/dist/{auth-token-BrlnZiCq.js → auth-token-DdkoxDu3.js} +1 -1
- package/dist/{banner-DHgxDWv_.js → banner-BoFDxo1X.js} +1 -1
- package/dist/{browser-cli-BydQRa6Z.js → browser-cli-Bu0BnRct.js} +4 -4
- package/dist/{browser-cli-Bz2dcSy1.js → browser-cli-DEnpvEPP.js} +4 -4
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +18 -18
- package/dist/bundled/session-memory/handler.js +18 -18
- package/dist/{call-BVw7l9v8.js → call-6AGLOo_A.js} +1 -1
- package/dist/{call-CJYWtIM9.js → call-TvMa4u8t.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-D7RdZp1E.js → channel-options-BzQJoPFc.js} +1 -1
- package/dist/{channel-options-BCZol8_4.js → channel-options-D1K0w33c.js} +1 -1
- package/dist/{channel-web-Dki5eEiP.js → channel-web-NaWX5pUl.js} +8 -8
- package/dist/{channels-cli-CwliXNUk.js → channels-cli-BGX2AX0X.js} +38 -38
- package/dist/{channels-cli-CILkYyG3.js → channels-cli-KVy9GUcY.js} +39 -39
- package/dist/{chrome-BgIDB_SH.js → chrome-CaijV4gw.js} +1 -1
- package/dist/{chrome-D9OwvWm7.js → chrome-Cgiw9tI6.js} +1 -1
- package/dist/{chrome-h6BnL8Lp.js → chrome-DX-9I4dn.js} +1 -1
- package/dist/{chrome-LmEyZdbC.js → chrome-DrxNYzTD.js} +1 -1
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-aAOs92a8.js → cli-DAaNQKv7.js} +33 -33
- package/dist/{cli-CLHi2LEP.js → cli-MBTHCM04.js} +34 -34
- package/dist/{command-registry-OHfvK1Oq.js → command-registry-DRHBO07P.js} +11 -11
- package/dist/{commands-registry-DyWjIe7d.js → commands-registry-B_V42ZiZ.js} +1 -1
- package/dist/{commands-registry-Copoizgv.js → commands-registry-DN93gKlx.js} +1 -1
- package/dist/{commands-registry-uo2OKqdL.js → commands-registry-nK_mZXUN.js} +1 -1
- package/dist/{commands-registry-C3C4Rv3O.js → commands-registry-tuRMQmX4.js} +1 -1
- package/dist/{completion-cli-DSHmAUFN.js → completion-cli-By9Hj91p.js} +1 -1
- package/dist/{completion-cli-D7iBY_Z-.js → completion-cli-E2HmAubG.js} +2 -2
- package/dist/{config-BjGo9GnL.js → config-BUHRlrbS.js} +5 -2
- package/dist/{config-amjzHiWZ.js → config-COvlkain.js} +5 -2
- package/dist/{config-DM0K7qC1.js → config-C_1uZzwy.js} +5 -2
- package/dist/{config-Dgn_cL29.js → config-DB5jMj3Z.js} +5 -2
- package/dist/{config-cli-CcbYdW1-.js → config-cli-DaV2gvHS.js} +3 -3
- package/dist/{config-cli-BlusBXAA.js → config-cli-gvLM_Jmx.js} +3 -3
- package/dist/{config-guard-BpQn1MKk.js → config-guard-CP12zw3r.js} +2 -2
- package/dist/{config-guard-Cnu2qssk.js → config-guard-DLAUq-eu.js} +5 -5
- package/dist/{config-validation-BHjDr-an.js → config-validation-BdUdtuuI.js} +1 -1
- package/dist/{config-validation-pVfqbrLy.js → config-validation-CJNWEllT.js} +1 -1
- package/dist/{configure-CJf-vDqN.js → configure-BPdAIpJb.js} +11 -11
- package/dist/{configure-rrxn5n5n.js → configure-DjRUXJNv.js} +11 -11
- package/dist/{control-service-DVFF3PrV.js → control-service-CwdjvhxE.js} +4 -4
- package/dist/{control-service-DMz_CcLi.js → control-service-D670V6cS.js} +4 -4
- package/dist/control-ui/js/app.js +79 -0
- package/dist/control-ui/js/render.js +39 -0
- package/dist/{cron-cli-CMb8Tfrd.js → cron-cli-BVdg2ZHh.js} +4 -4
- package/dist/{cron-cli-B9s3FO4y.js → cron-cli-CWybZWLu.js} +4 -4
- package/dist/{daemon-cli-DY782AjS.js → daemon-cli-A0V_cYcw.js} +6 -6
- package/dist/{daemon-cli-duUjaj82.js → daemon-cli-BSKnv95o.js} +6 -6
- package/dist/daemon-cli.js +4 -1
- package/dist/{daemon-runtime-B38pOixq.js → daemon-runtime-BgbGrT3P.js} +1 -1
- package/dist/{daemon-runtime-CjgoCPLb.js → daemon-runtime-DtGPdsmL.js} +1 -1
- package/dist/{deliver-DONp5mgd.js → deliver-CUJWonlP.js} +3 -3
- package/dist/{deliver-B3UoBZdC.js → deliver-DXVMhb3A.js} +2 -2
- package/dist/{deliver-2Y_F_0yh.js → deliver-sMuSzZX6.js} +3 -3
- package/dist/{deliver-CZF9f8aC.js → deliver-wRQauy5B.js} +2 -2
- package/dist/{devices-cli-Ch8p42OS.js → devices-cli-Bwg8gUuS.js} +3 -3
- package/dist/{devices-cli-Cahrr6Rd.js → devices-cli-DBDevKR4.js} +3 -3
- package/dist/{directory-cli-B0H80BMR.js → directory-cli-2W4B1Ct_.js} +2 -2
- package/dist/{directory-cli-DH9ww80p.js → directory-cli-B9wwg8xg.js} +2 -2
- package/dist/{dm-policy-shared-BovJdm5T.js → dm-policy-shared-CvHrO6D_.js} +1 -1
- package/dist/{dm-policy-shared-DckBYBwg.js → dm-policy-shared-flFO0wFg.js} +1 -1
- package/dist/{dns-cli-CVMQnrzw.js → dns-cli-Dc8SoCMN.js} +2 -2
- package/dist/{dns-cli-Lzt29-Zu.js → dns-cli-go7hrLbV.js} +2 -2
- package/dist/{doctor-completion-B6R-Um0m.js → doctor-completion-CJ6GgqdP.js} +1 -1
- package/dist/{doctor-completion-Db9Ka2VX.js → doctor-completion-cGUMfSWW.js} +1 -1
- package/dist/{doctor-config-flow-C_56SUPO.js → doctor-config-flow-CSyqq_3u.js} +3 -3
- package/dist/{doctor-config-flow-B150h841.js → doctor-config-flow-DpVhYkFY.js} +3 -3
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-CSTHY6Vs.js → exec-approvals-cli-Bc7-sWEN.js} +5 -5
- package/dist/{exec-approvals-cli-lduNEUnu.js → exec-approvals-cli-NGv-JYZx.js} +5 -5
- package/dist/extensionAPI.js +18 -18
- package/dist/{gateway-cli-VZ3pwSh3.js → gateway-cli-BACTzHef.js} +52 -52
- package/dist/{gateway-cli-DVzEvDKA.js → gateway-cli-DIUZJz3l.js} +51 -51
- package/dist/{gateway-rpc-BTXPWO6j.js → gateway-rpc-CzQ2-09T.js} +1 -1
- package/dist/{gateway-rpc-Cx0HPjI7.js → gateway-rpc-DijKM-l5.js} +1 -1
- package/dist/{gemini-auth-7AWT6JXV.js → gemini-auth-2cinXFeY.js} +1 -1
- package/dist/{gemini-auth-BHSrr2_B.js → gemini-auth-DmWoaMTb.js} +1 -1
- package/dist/{gemini-auth-K6vg8B5c.js → gemini-auth-DtBB7-5F.js} +1 -1
- package/dist/{glass-ui-ws-CAm9wWND.js → glass-ui-ws-BBYLD-43.js} +43 -43
- package/dist/{glass-ui-ws-DmPVzO59.js → glass-ui-ws-DMW9fQLQ.js} +42 -42
- package/dist/{health-CnH3J7xA.js → health-BIgxejdY.js} +5 -5
- package/dist/{health-CYZdOaco.js → health-D9sE5ymK.js} +5 -5
- package/dist/{hooks-cli-CHMoGB4O.js → hooks-cli-DnvETK6m.js} +34 -34
- package/dist/{hooks-cli-C7tb9Ef0.js → hooks-cli-EthBM_qY.js} +35 -35
- package/dist/{image-RFofsrof.js → image-Bf_jHnTg.js} +3 -3
- package/dist/{image-B4LY9KFw.js → image-CEcLOmLW.js} +3 -3
- package/dist/{image-DrZEJQwQ.js → image-DCArHTqR.js} +3 -3
- package/dist/{image-DOnOTocl.js → image-Kl1J-62v.js} +3 -3
- package/dist/index.js +42 -42
- package/dist/{lifecycle-core-De5BcVI4.js → lifecycle-core-fFRFJvPD.js} +2 -2
- package/dist/{lifecycle-core-BYV6-zd8.js → lifecycle-core-pG9T1o7U.js} +2 -2
- package/dist/llm-slug-generator.js +18 -18
- package/dist/{login-BH17fJ5L.js → login-BwU6oNNU.js} +2 -2
- package/dist/{login-BG_7eJLu.js → login-CM1U-ARd.js} +2 -2
- package/dist/{login-CXSct1EH.js → login-CvotLxMc.js} +2 -2
- package/dist/{login-BZYFLDxo.js → login-J-hL4MZQ.js} +2 -2
- package/dist/{login-qr-BLmEvZVj.js → login-qr-CADWVR1b.js} +3 -3
- package/dist/{login-qr-zVpxocbF.js → login-qr-CW01jgLl.js} +3 -3
- package/dist/{login-qr-DoNfx43Q.js → login-qr-CiPw9ee6.js} +3 -3
- package/dist/{login-qr-9OQSnm5L.js → login-qr-_FriwsNr.js} +3 -3
- package/dist/{logs-cli-Cvhx1c0V.js → logs-cli-DPaTYFru.js} +4 -4
- package/dist/{logs-cli-DUzUCojZ.js → logs-cli-mM7GM-9Q.js} +4 -4
- package/dist/{manager-oiX42wby.js → manager-Cw42HtQ7.js} +136 -19
- package/dist/{manager-C_DoJrcP.js → manager-D0d-bOOe.js} +136 -19
- package/dist/{manager-B5EXdBQV.js → manager-D5ZbBYmN.js} +136 -19
- package/dist/{manager-CYHgFXd8.js → manager-DqkRhYYl.js} +136 -19
- package/dist/{memory-cli-D4J9SO7Z.js → memory-cli-C7w-I03k.js} +206 -3
- package/dist/{memory-cli-BhnOq4Ev.js → memory-cli-Pp2xuPKC.js} +206 -3
- package/dist/{model-CLebVu_U.js → model-ApXxvnzl.js} +1 -1
- package/dist/{model-DaukLY-k.js → model-DDV7HL-B.js} +1 -1
- package/dist/{model-auth-CeL58m55.js → model-auth-Db8I8QVL.js} +6 -2
- package/dist/{model-catalog-Dj5pIc1G.js → model-catalog-61-kKlKu.js} +4 -4
- package/dist/{model-catalog-CX8kAHv8.js → model-catalog-QboGjwLO.js} +4 -4
- package/dist/{model-picker-ay4NPk8S.js → model-picker-CSnZDydf.js} +3 -3
- package/dist/{model-picker-CDXdeNr-.js → model-picker-iDZTbvXk.js} +3 -3
- package/dist/{model-selection-Csawd2_i.js → model-selection-BBrZnKDw.js} +6 -2
- package/dist/{model-selection--4t4F87n.js → model-selection-DBPwoBvb.js} +6 -2
- package/dist/{models-wHzbWyGd.js → models-B_oSANn2.js} +14 -14
- package/dist/{models-cli-CTptBZ1_.js → models-cli-CzdeeUpE.js} +40 -40
- package/dist/{models-cli-xt0_lwNn.js → models-cli-u62LAXdh.js} +39 -39
- package/dist/{models-config-u4va9_AO.js → models-config-BTd2aHYU.js} +2 -2
- package/dist/{models-config-Cb41NmVa.js → models-config-CMJN_5Vh.js} +2 -2
- package/dist/{node-cli-BhCoxgBf.js → node-cli-BEvFRkYC.js} +10 -10
- package/dist/{node-cli-C8scjTTR.js → node-cli-BQyxhqF5.js} +10 -10
- package/dist/{nodes-cli-DvFB1bRc.js → nodes-cli-C2hHbQ47.js} +4 -4
- package/dist/{nodes-cli-BHnGJEDY.js → nodes-cli-FbzJ-7tA.js} +4 -4
- package/dist/{onboard-CLT8dKkn.js → onboard-CwNzqMn1.js} +10 -10
- package/dist/{onboard-CqrqIyTw.js → onboard-DcBV5QjY.js} +10 -10
- package/dist/{onboard-channels-B1qEMRuK.js → onboard-channels-C0wtv2Cp.js} +2 -2
- package/dist/{onboard-channels-Dq99OYWi.js → onboard-channels-C79jGR3_.js} +2 -2
- package/dist/{onboard-custom-BKR6vm2R.js → onboard-custom-CwTH9Yg-.js} +3 -3
- package/dist/{onboard-custom-BPHkLBMT.js → onboard-custom-adn6IG8i.js} +3 -3
- package/dist/{onboard-helpers-Dsr4zKCb.js → onboard-helpers-Bt2zwkKD.js} +2 -2
- package/dist/{onboard-helpers-CYxzQfe5.js → onboard-helpers-CKM-mWPH.js} +2 -2
- package/dist/{onboard-remote-d48SMpNw.js → onboard-remote-C-4NSq0W.js} +1 -1
- package/dist/{onboard-remote-3c_muVej.js → onboard-remote-P6H-x_vQ.js} +1 -1
- package/dist/{onboard-skills-2HJIpm3O.js → onboard-skills-C9ZAlUR6.js} +2 -2
- package/dist/{onboard-skills-b_chEkYH.js → onboard-skills-DlbXWPzM.js} +2 -2
- package/dist/{onboarding-yfMTHyHB.js → onboarding-C2vTobUO.js} +11 -11
- package/dist/{onboarding-Bs82247P.js → onboarding-CT_P8dE6.js} +11 -11
- package/dist/{onboarding.finalize-QC0g7ZLU.js → onboarding.finalize-BdeyH2Eh.js} +39 -39
- package/dist/{onboarding.finalize-DkZuXXiU.js → onboarding.finalize-DPQDvxEp.js} +41 -41
- package/dist/{onboarding.gateway-config-BkXJPv7f.js → onboarding.gateway-config-DKVcVoUF.js} +5 -5
- package/dist/{onboarding.gateway-config-stm3z82Y.js → onboarding.gateway-config-IqmHGk2A.js} +5 -5
- package/dist/{openai-model-default-DF334-MD.js → openai-model-default-BMY_YH9P.js} +2 -2
- package/dist/{openai-model-default-DJwRgrAC.js → openai-model-default-l66tU27B.js} +2 -2
- package/dist/{outbound-Cedd_yui.js → outbound-0ici4ICv.js} +1 -1
- package/dist/{outbound-BNMysnJ1.js → outbound-BEumB8qs.js} +1 -1
- package/dist/{outbound-Bv4FdtnF.js → outbound-CzuytbQ5.js} +1 -1
- package/dist/{outbound-DfOF58G2.js → outbound-DTZdWgeZ.js} +1 -1
- package/dist/{pairing-cli-7_4ayuXX.js → pairing-cli-CUu3LyX0.js} +4 -4
- package/dist/{pairing-cli-B7oA36Ke.js → pairing-cli-D_9vmECc.js} +4 -4
- package/dist/{pairing-labels-B-WwqJ-z.js → pairing-labels-Ca15tgVV.js} +1 -1
- package/dist/{pairing-labels-sIj1ZLt-.js → pairing-labels-D_XOc2nT.js} +1 -1
- package/dist/{pairing-store-CFwkjcA5.js → pairing-store-DdUVpKvp.js} +1 -1
- package/dist/{pairing-store-CicZMhK8.js → pairing-store-cjckhuQX.js} +1 -1
- package/dist/{pi-auth-json-BNhcohVK.js → pi-auth-json-BJB80_DY.js} +1 -1
- package/dist/{pi-auth-json-DV2ruNQM.js → pi-auth-json-BqB9Z6Gg.js} +1 -1
- package/dist/{pi-auth-json-B83DuyYZ.js → pi-auth-json-Bzpuls50.js} +2 -2
- package/dist/{pi-auth-json-CNgAAznq.js → pi-auth-json-etIDtHw9.js} +1 -1
- package/dist/{pi-embedded-DDe6lqPs.js → pi-embedded-DUUw7-tO.js} +448 -60
- package/dist/{pi-embedded-B3nbPN60.js → pi-embedded-DmUwEsG1.js} +448 -60
- package/dist/{pi-embedded-helpers-kB5lBgXk.js → pi-embedded-helpers-CLip13MP.js} +6 -6
- package/dist/{pi-embedded-helpers-CgxKWHj9.js → pi-embedded-helpers-D57pDra0.js} +1 -1
- package/dist/{pi-embedded-helpers--yFTAWwW.js → pi-embedded-helpers-D9Rvkx8A.js} +6 -6
- package/dist/{pi-embedded-helpers-ueCT6VlS.js → pi-embedded-helpers-f7cnM8BN.js} +1 -1
- package/dist/{pi-tools.policy-T6Z5F-_n.js → pi-tools.policy-BV1RWUnE.js} +2 -2
- package/dist/{pi-tools.policy-DPmdlOwE.js → pi-tools.policy-BegHNtNO.js} +2 -2
- package/dist/{plugin-auto-enable-D4BRdbII.js → plugin-auto-enable-B-WfJQ_3.js} +1 -1
- package/dist/{plugin-auto-enable-DdvlcMuw.js → plugin-auto-enable-CdctkFTt.js} +1 -1
- package/dist/{plugin-registry-DWJeC9bW.js → plugin-registry-C80itc6t.js} +2 -2
- package/dist/{plugin-registry-SCI1BVkI.js → plugin-registry-DrYURaBs.js} +2 -2
- package/dist/plugin-sdk/agents/memory-search.d.ts +2 -2
- package/dist/plugin-sdk/agents/synthetic-models.d.ts +1 -1
- package/dist/plugin-sdk/agents/system-prompt.d.ts +2 -1
- package/dist/plugin-sdk/{api-key-rotation-Qy7QGV8_.js → api-key-rotation-DNKq8sDG.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-CpYjfwrA.js → audio-preflight-D5K2YgFn.js} +7 -7
- package/dist/plugin-sdk/{channel-web-BUTyAx0r.js → channel-web-Bkv0U1ox.js} +7 -7
- package/dist/plugin-sdk/{chrome-BFy_lpld.js → chrome-DJ6LIeRu.js} +1 -1
- package/dist/plugin-sdk/{commands-registry-CvppXodz.js → commands-registry-un-LmdXo.js} +1 -1
- package/dist/plugin-sdk/config/types.agent-defaults.d.ts +2 -0
- package/dist/plugin-sdk/config/types.tools.d.ts +2 -2
- package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +3 -2
- package/dist/plugin-sdk/config/zod-schema.agent-runtime.d.ts +4 -4
- package/dist/plugin-sdk/config/zod-schema.agents.d.ts +5 -4
- package/dist/plugin-sdk/config/zod-schema.d.ts +5 -4
- package/dist/plugin-sdk/{config-Do1-fcaS.js → config-8u0WDlgj.js} +5 -2
- package/dist/plugin-sdk/{deliver-BwnrMlHO.js → deliver-Bip_mCNI.js} +2 -2
- package/dist/plugin-sdk/{image-k_W1USVr.js → image-DX2HTDUY.js} +3 -3
- package/dist/plugin-sdk/index.js +22 -22
- package/dist/plugin-sdk/{login-DPofXJE3.js → login-CKLot2mH.js} +2 -2
- package/dist/plugin-sdk/{login-qr-CNatqAUv.js → login-qr-DOVV9TXm.js} +3 -3
- package/dist/plugin-sdk/{manager-DnoXj4EG.js → manager-BItSTruD.js} +136 -19
- package/dist/plugin-sdk/memory/embeddings-ollama.d.ts +27 -0
- package/dist/plugin-sdk/memory/embeddings.d.ts +4 -1
- package/dist/plugin-sdk/memory/manager-sync-ops.d.ts +1 -1
- package/dist/plugin-sdk/memory/manager.d.ts +1 -1
- package/dist/plugin-sdk/{model-selection-D6J2MZsj.js → model-selection-aEd_4vFO.js} +6 -2
- package/dist/plugin-sdk/{outbound-w5v_6nFD.js → outbound-uamhXJrA.js} +1 -1
- package/dist/plugin-sdk/{pi-auth-json-BmWuNdJA.js → pi-auth-json-FyiScmI7.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-Cs2-_EpL.js → pi-embedded-helpers-JY-1kHdk.js} +6 -6
- package/dist/plugin-sdk/{pw-ai-BoitXk7j.js → pw-ai-BG29-fkq.js} +3 -3
- package/dist/plugin-sdk/{replies-BU-tUT8j.js → replies-B1pTxZOl.js} +1 -1
- package/dist/plugin-sdk/{reply-CjWIATx5.js → reply-B576Fhv8.js} +446 -58
- package/dist/plugin-sdk/{runner-Br1179I4.js → runner-BL2UhCUB.js} +5 -5
- package/dist/plugin-sdk/{send-Ts2lINh9.js → send-CARqECtw.js} +1 -1
- package/dist/plugin-sdk/{send-CE6VxWke.js → send-CJEdtrU7.js} +1 -1
- package/dist/plugin-sdk/{send-P8PiZ2Os.js → send-DnSED91h.js} +2 -2
- package/dist/plugin-sdk/{send-Dkyi5g1U.js → send-e3xSJ8To.js} +1 -1
- package/dist/plugin-sdk/{send-BaLZTKkj.js → send-oZqyXIiB.js} +1 -1
- package/dist/plugin-sdk/{session-Bwdr4g-M.js → session-CzQVSJF5.js} +1 -1
- package/dist/plugin-sdk/{skill-commands-NTPqO_az.js → skill-commands-Cwps3qpb.js} +1 -1
- package/dist/plugin-sdk/{web-C1q3B85D.js → web-mZ4uDhBl.js} +22 -22
- package/dist/plugin-sdk/{whatsapp-actions-Di-yCTCj.js → whatsapp-actions-1-Mp-KwB.js} +3 -3
- package/dist/{plugins-cli-D2GDnmKk.js → plugins-cli-Cv9eBXlW.js} +34 -34
- package/dist/{plugins-cli-QSrupxLG.js → plugins-cli-Dnq6iHh8.js} +35 -35
- package/dist/{program-context-CIOqtCr8.js → program-context-D_OS2K8H.js} +38 -38
- package/dist/{program-7hcHnpYu.js → program-iimCXTOX.js} +41 -41
- package/dist/{prompt-select-styled-DpVAhv1V.js → prompt-select-styled-B1V6teLm.js} +17 -17
- package/dist/{prompt-select-styled-DC-k-kBQ.js → prompt-select-styled-BHDOHzSI.js} +17 -17
- package/dist/{provider-auth-helpers-BGhm_DOe.js → provider-auth-helpers-nXDpwc0f.js} +4 -4
- package/dist/{provider-auth-helpers-DvwmlisW.js → provider-auth-helpers-ozVqcIrR.js} +4 -4
- package/dist/{push-apns-CiOx7dgB.js → push-apns-BZ7FEmsK.js} +1 -1
- package/dist/{push-apns-BZu5OVg5.js → push-apns-Dmo8BBk4.js} +1 -1
- package/dist/{pw-ai-CQzJmf8V.js → pw-ai-3nNWe272.js} +3 -3
- package/dist/{pw-ai-CAkn033M.js → pw-ai-BUH9Ew6q.js} +3 -3
- package/dist/{pw-ai-C_C5as1t.js → pw-ai-DQuj9c2U.js} +3 -3
- package/dist/{pw-ai-CdaTpZo1.js → pw-ai-DhirpjMU.js} +3 -3
- package/dist/{qr-cli-Diq_Rb3t.js → qr-cli-CGS8DyNl.js} +2 -2
- package/dist/{qr-cli-DlVBiDQm.js → qr-cli-CHnzhKoc.js} +2 -2
- package/dist/{register.agent-CDD5Z9Fj.js → register.agent-BOuUXJJS.js} +43 -43
- package/dist/{register.agent-Ds6PkEYl.js → register.agent-DYzV2wmB.js} +45 -45
- package/dist/{register.configure-COyj6XWC.js → register.configure-C4oljj3F.js} +47 -47
- package/dist/{register.configure-CBRYdCX2.js → register.configure-CHvDZtU1.js} +48 -48
- package/dist/{register.maintenance-DwHXDl_N.js → register.maintenance-DIylvylR.js} +44 -44
- package/dist/{register.maintenance-CyJQDrP0.js → register.maintenance-DhprP_dA.js} +46 -46
- package/dist/{register.message-BNe6-SJE.js → register.message-B9SgsGyt.js} +35 -35
- package/dist/{register.message-CvQ7LEYe.js → register.message-DF4_1evm.js} +34 -34
- package/dist/{register.onboard-BxxfWU46.js → register.onboard-CdwNCs_L.js} +42 -42
- package/dist/{register.onboard-CuRnx0wV.js → register.onboard-DOJyYmJS.js} +43 -43
- package/dist/{register.setup-qmcQQ6EM.js → register.setup-0Due7c9e.js} +43 -43
- package/dist/{register.setup-B4rO_Fld.js → register.setup-DxV_KIbP.js} +42 -42
- package/dist/{register.status-health-sessions-CQ0_UB_j.js → register.status-health-sessions-C584c9tm.js} +38 -38
- package/dist/{register.status-health-sessions-4OEVg4h6.js → register.status-health-sessions-D1tqd_k_.js} +40 -40
- package/dist/{register.subclis-68XcQ3ao.js → register.subclis-DuON_fJu.js} +28 -28
- package/dist/{replies-QloQerhz.js → replies-BXYTRk0Z.js} +1 -1
- package/dist/{replies-D9V19U2-.js → replies-Bhx469BX.js} +1 -1
- package/dist/{replies-CTKReSzx.js → replies-BnmCXHdE.js} +1 -1
- package/dist/{replies-DqdOBkTB.js → replies-UxER0fi1.js} +1 -1
- package/dist/{reply-DI3kOl7x.js → reply-BzqL_47o.js} +257 -70
- package/dist/{routes-qIyRWgzF.js → routes-DH3bW8wF.js} +3 -3
- package/dist/{routes-BYphcpth.js → routes-lbqRkIBb.js} +3 -3
- package/dist/{rpc-CvzWzHjS.js → rpc-BkvZNT-M.js} +1 -1
- package/dist/{rpc-DfC0wvv1.js → rpc-DYXJGfFr.js} +1 -1
- package/dist/{run-main-DiJI5-hU.js → run-main-CcFCZNx_.js} +53 -53
- package/dist/{runner-DOvsNiYz.js → runner-BHZy2rvh.js} +5 -5
- package/dist/{runner-BXN4KYDK.js → runner-CNY0hwm-.js} +5 -5
- package/dist/{runner-VHq3quQZ.js → runner-CplzHJ1b.js} +5 -5
- package/dist/{runner-uDZlTCm2.js → runner-Cu0qqBIE.js} +5 -5
- package/dist/{sandbox-rMmahr2s.js → sandbox-B0QOR7Cn.js} +5 -5
- package/dist/{sandbox-cli-C90jqh9l.js → sandbox-cli-CPkB96x-.js} +7 -7
- package/dist/{sandbox-cli-Duc05KL9.js → sandbox-cli-DAY7EbKl.js} +7 -7
- package/dist/{sandbox-CbuJolk2.js → sandbox-psIl5_gT.js} +5 -5
- package/dist/{security-cli-BTcKFy-k.js → security-cli-Bolpxy60.js} +12 -12
- package/dist/{security-cli-BPqLtK8x.js → security-cli-C2ZKf8ET.js} +12 -12
- package/dist/{send-BVZGeP2r.js → send-8dFVpIIg.js} +1 -1
- package/dist/{send-CHOArYFe.js → send-BPqK6C8h.js} +1 -1
- package/dist/{send-D0dzPf6g.js → send-BVRNZ9hM.js} +1 -1
- package/dist/{send-CzE5UKr-.js → send-BbscKwuU.js} +1 -1
- package/dist/{send-Do-0Kcmv.js → send-Bj2SQQVP.js} +1 -1
- package/dist/{send-BeASPkFg.js → send-Bj3PJmrF.js} +1 -1
- package/dist/{send-De_WCeGZ.js → send-Bv-112XA.js} +1 -1
- package/dist/{send-BH09HKsX.js → send-C8fjzstb.js} +1 -1
- package/dist/{send-mi3NHnwI.js → send-C8ohJBK5.js} +2 -2
- package/dist/{send-BsocounR.js → send-CIvsJpdo.js} +2 -2
- package/dist/{send-BVw7fCyL.js → send-CUhH6I6A.js} +1 -1
- package/dist/{send-3YM-aarb.js → send-CWrxWRjz.js} +1 -1
- package/dist/{send-CYfaZNZ4.js → send-Ci0uVV_k.js} +1 -1
- package/dist/{send-C7u4_H5t.js → send-Ci3UEBVK.js} +1 -1
- package/dist/{send-hNornLoH.js → send-CzxMGZc_.js} +2 -2
- package/dist/{send-DEWzWqfZ.js → send-DEcC_kQP.js} +1 -1
- package/dist/{send-D16XtYvC.js → send-DPKghOxz.js} +1 -1
- package/dist/{send-D3M6pMr5.js → send-DZbplWNh.js} +1 -1
- package/dist/{send-D_yJMeJa.js → send-DiBs_eJc.js} +2 -2
- package/dist/{send-B18gkuvz.js → send-FW1P3D82.js} +1 -1
- package/dist/{server-context-bMIwnOnH.js → server-context-AHh7m1PV.js} +5 -5
- package/dist/{server-context-DG2dIhAy.js → server-context-cw7ha2ct.js} +5 -5
- package/dist/{server-methods-DnTo3Oou.js → server-methods-BriHyeA7.js} +17 -17
- package/dist/{server-methods-B_JpD0c-.js → server-methods-CJ7xa1ot.js} +18 -18
- package/dist/{server-node-events-IlWB4f_P.js → server-node-events-CCId0gGy.js} +34 -34
- package/dist/{server-node-events-t5pGPXLD.js → server-node-events-_q8duhVi.js} +35 -35
- package/dist/{session-BeJq-MLE.js → session-B4Bibpie.js} +1 -1
- package/dist/{session-T0JXlYWe.js → session-D4FMCkcS.js} +1 -1
- package/dist/{session-BjcsCwgz.js → session-Dw3zM2St.js} +1 -1
- package/dist/{session-BkVBeAkg.js → session-lD2CnIWX.js} +1 -1
- package/dist/{session-utils-Cdv2Qaq2.js → session-utils-DySzoW4O.js} +4 -4
- package/dist/{sessions-CX93jXmG.js → sessions-BVbSbD60.js} +4 -4
- package/dist/{sessions-DJAxaVI7.js → sessions-CRTZnttk.js} +2 -2
- package/dist/{sessions-BEyCtqBB.js → sessions-L4e356Ra.js} +2 -2
- package/dist/{shared-CMw4odDH.js → shared-DZ9YCnZC.js} +2 -2
- package/dist/{shared-CLXhDldI.js → shared-oaw6SrnD.js} +2 -2
- package/dist/{skill-commands-CWySL97a.js → skill-commands-BlfEmZ8t.js} +1 -1
- package/dist/{skill-commands-B64uavY9.js → skill-commands-C2kxEz5h.js} +1 -1
- package/dist/{skill-commands-DrFCB9F9.js → skill-commands-CSBmZ_di.js} +1 -1
- package/dist/{skill-commands-DWcJOIzP.js → skill-commands-C_ZNSYNS.js} +1 -1
- package/dist/{skills-cli-DIx7YItN.js → skills-cli-D9gvgM58.js} +2 -2
- package/dist/{skills-cli-CQ7XQ4Kn.js → skills-cli-DBVcmBEp.js} +2 -2
- package/dist/{status-s1Tp-jVl.js → status-BUX2e6T-.js} +11 -11
- package/dist/{status-cWLYsK8x.js → status-C6UoBmkd.js} +2 -2
- package/dist/{status-BXQGCrxj.js → status-DJDE9f6i.js} +12 -12
- package/dist/{status-kOpLSgWJ.js → status-oObYVZk-.js} +2 -2
- package/dist/{status.update-DlaskfTr.js → status.update-CbAFtv61.js} +1 -1
- package/dist/{status.update-BXs3adtg.js → status.update-qDyKo2AJ.js} +1 -1
- package/dist/{subagent-registry-XHBZsH3Q.js → subagent-registry-BmP1Rhns.js} +258 -71
- package/dist/{system-cli-DPNDYRBr.js → system-cli-DpluDf4c.js} +4 -4
- package/dist/{system-cli-D10NhXw1.js → system-cli-gtr03ReO.js} +4 -4
- package/dist/{systemd-hints-Bm2H1erP.js → systemd-hints-Bmr_bzjF.js} +1 -1
- package/dist/{systemd-hints-BBPT8Use.js → systemd-hints-CnG98ooq.js} +1 -1
- package/dist/{tui-pvq_HI-q.js → tui-DnLFki4B.js} +16 -7
- package/dist/{tui-4d-MyU6O.js → tui-UMEqttti.js} +16 -7
- package/dist/{tui-cli-BsSKYVE3.js → tui-cli-ChVrbXQ7.js} +11 -11
- package/dist/{tui-cli-9uTZZ13F.js → tui-cli-DaL5S2ce.js} +11 -11
- package/dist/{update-cli-B3VC_mrH.js → update-cli-Bxb34ox7.js} +49 -49
- package/dist/{update-cli-_1YRH17q.js → update-cli-C-zL3WoC.js} +47 -47
- package/dist/{update-runner-Dsc1_XOK.js → update-runner-D9rjTCpa.js} +1 -1
- package/dist/{update-runner-DBbX4Iin.js → update-runner-rav9ZMjZ.js} +1 -1
- package/dist/{web-JIG-oxRW.js → web-4xYayj1G.js} +37 -37
- package/dist/{web-DjgeLZ5l.js → web-BS91XHKA.js} +21 -21
- package/dist/{web-DzjJ_iNt.js → web-DlKbVYgh.js} +37 -37
- package/dist/{web-CmZZsoMg.js → web-OmlhMCcZ.js} +21 -21
- package/dist/{webhooks-cli-B0Crq2Ec.js → webhooks-cli-BxXpx8Hu.js} +2 -2
- package/dist/{webhooks-cli-CLIdArAE.js → webhooks-cli-CvbEWtdd.js} +2 -2
- package/dist/{whatsapp-actions-Jfx4zcwv.js → whatsapp-actions-7xW0TEHg.js} +3 -3
- package/dist/{whatsapp-actions-B821AFp-.js → whatsapp-actions-B3zu-BhB.js} +3 -3
- package/dist/{whatsapp-actions-BL7tCNC_.js → whatsapp-actions-BWERIEcF.js} +3 -3
- package/dist/{whatsapp-actions-BIjGyW3T.js → whatsapp-actions-DAFOi466.js} +3 -3
- package/dist/{with-timeout-Cj_xUxo6.js → with-timeout-C6nbJrH1.js} +1 -1
- package/dist/{with-timeout-BeA4Jxcl.js → with-timeout-CNkLG3QR.js} +1 -1
- package/docs/reference/templates/SYMIPULSE.md +23 -1
- package/package.json +1 -1
|
@@ -11,22 +11,22 @@ import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExis
|
|
|
11
11
|
import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
|
|
12
12
|
import { t as parseBooleanValue$1 } from "./boolean-B8-BqKGQ.js";
|
|
13
13
|
import { n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-BaxDnULz.js";
|
|
14
|
-
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-
|
|
15
|
-
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-
|
|
16
|
-
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-
|
|
14
|
+
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-BPqK6C8h.js";
|
|
15
|
+
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-DZbplWNh.js";
|
|
16
|
+
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-DXVMhb3A.js";
|
|
17
17
|
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-CI0kRQkt.js";
|
|
18
18
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Bxo4UHOL.js";
|
|
19
19
|
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-CWktKM8a.js";
|
|
20
|
-
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-
|
|
20
|
+
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-DiBs_eJc.js";
|
|
21
21
|
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-CvJzsyvE.js";
|
|
22
|
-
import { A as normalizeProviderId, C as buildAllowedModelSet, D as isCliProvider, E as findNormalizedProviderValue, F as resolveSubagentSpawnModelSelection, G as DEFAULT_MODEL, H as OLLAMA_NATIVE_BASE_URL, I as resolveThinkingDefault, J as normalizeSecretInput, K as DEFAULT_PROVIDER, M as resolveConfiguredModelRef, N as resolveDefaultModelForAgent, O as modelKey, P as resolveModelRefFromString, T as buildModelAliasIndex, U as createOllamaStreamFn, W as DEFAULT_CONTEXT_TOKENS, Y as getShellPathFromLoginShell, Z as resolveShellEnvFallbackTimeoutMs, _ as ensureAuthProfileStore, a as resolveEnvApiKey, b as withFileLock, c as resolveAuthProfileOrder, d as markAuthProfileFailure, f as markAuthProfileUsed, g as markAuthProfileGood, h as listProfilesForProvider, i as resolveApiKeyForProvider, k as normalizeModelRef$2, l as getSoonestCooldownExpiry, m as dedupeProfileIds, n as getCustomProviderApiKey, o as resolveModelAuthMode, p as resolveApiKeyForProfile, q as resolveAuthProfileDisplayLabel, r as requireApiKey, t as getApiKeyForModel, u as isProfileInCooldown, v as resolveAuthStorePathForDisplay, w as buildConfiguredAllowlistKeys, y as resolveSymiAgentDir } from "./model-auth-
|
|
22
|
+
import { A as normalizeProviderId, C as buildAllowedModelSet, D as isCliProvider, E as findNormalizedProviderValue, F as resolveSubagentSpawnModelSelection, G as DEFAULT_MODEL, H as OLLAMA_NATIVE_BASE_URL, I as resolveThinkingDefault, J as normalizeSecretInput, K as DEFAULT_PROVIDER, M as resolveConfiguredModelRef, N as resolveDefaultModelForAgent, O as modelKey, P as resolveModelRefFromString, T as buildModelAliasIndex, U as createOllamaStreamFn, W as DEFAULT_CONTEXT_TOKENS, Y as getShellPathFromLoginShell, Z as resolveShellEnvFallbackTimeoutMs, _ as ensureAuthProfileStore, a as resolveEnvApiKey, b as withFileLock, c as resolveAuthProfileOrder, d as markAuthProfileFailure, f as markAuthProfileUsed, g as markAuthProfileGood, h as listProfilesForProvider, i as resolveApiKeyForProvider, k as normalizeModelRef$2, l as getSoonestCooldownExpiry, m as dedupeProfileIds, n as getCustomProviderApiKey, o as resolveModelAuthMode, p as resolveApiKeyForProfile, q as resolveAuthProfileDisplayLabel, r as requireApiKey, t as getApiKeyForModel, u as isProfileInCooldown, v as resolveAuthStorePathForDisplay, w as buildConfiguredAllowlistKeys, y as resolveSymiAgentDir } from "./model-auth-Db8I8QVL.js";
|
|
23
23
|
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-C_qUP7p5.js";
|
|
24
24
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
|
|
25
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-Dz5lr5b0.js";
|
|
26
|
-
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-
|
|
27
|
-
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-
|
|
26
|
+
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-CLip13MP.js";
|
|
27
|
+
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-C_1uZzwy.js";
|
|
28
28
|
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-D0IQ3WuX.js";
|
|
29
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
29
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-DrxNYzTD.js";
|
|
30
30
|
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-BFekKL7i.js";
|
|
31
31
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-BoQgnc8X.js";
|
|
32
32
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-BTMDZjHT.js";
|
|
@@ -37,9 +37,9 @@ import { t as resolveIMessageAccount } from "./accounts-qtxJ-6em.js";
|
|
|
37
37
|
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-DLyHUt31.js";
|
|
38
38
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-DDYvbmRV.js";
|
|
39
39
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-DXB7tqWi.js";
|
|
40
|
-
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-
|
|
40
|
+
import { 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-Bf_jHnTg.js";
|
|
41
41
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-XlyuyChD.js";
|
|
42
|
-
import {
|
|
42
|
+
import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-D5ZbBYmN.js";
|
|
43
43
|
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-DRbx2dhW.js";
|
|
44
44
|
import { n as retryAsync } from "./retry-Cly39XZB.js";
|
|
45
45
|
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-Be1SwYlW.js";
|
|
@@ -48,20 +48,20 @@ import { n as resolveMarkdownTableMode } from "./markdown-tables-iMQQZu4Q.js";
|
|
|
48
48
|
import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-DL3f_O53.js";
|
|
49
49
|
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-DMwIh5cS.js";
|
|
50
50
|
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DccrnjsE.js";
|
|
51
|
-
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-
|
|
52
|
-
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-
|
|
51
|
+
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-tuRMQmX4.js";
|
|
52
|
+
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-C2kxEz5h.js";
|
|
53
53
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-BlHX0H3E.js";
|
|
54
|
-
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-
|
|
54
|
+
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-BHZy2rvh.js";
|
|
55
55
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-Bso4i15F.js";
|
|
56
56
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-Bup9wS1y.js";
|
|
57
57
|
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-CsM_hJ_s.js";
|
|
58
58
|
import { n as normalizePollInput } from "./polls-CCuCaqgv.js";
|
|
59
59
|
import { t as convertMarkdownTables } from "./tables-DuZspiBu.js";
|
|
60
|
-
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-
|
|
61
|
-
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-
|
|
60
|
+
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-BbscKwuU.js";
|
|
61
|
+
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-Bj3PJmrF.js";
|
|
62
62
|
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CZ-1eqw0.js";
|
|
63
63
|
import { t as makeProxyFetch } from "./proxy-CBJ1upuz.js";
|
|
64
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
64
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-Bhx469BX.js";
|
|
65
65
|
import { t as getActiveWebListener } from "./active-listener-C9r8ZB9m.js";
|
|
66
66
|
import { createRequire } from "node:module";
|
|
67
67
|
import * as fs$2 from "node:fs/promises";
|
|
@@ -3474,7 +3474,7 @@ async function getMemorySearchManager(params) {
|
|
|
3474
3474
|
const wrapper = new FallbackMemoryManager({
|
|
3475
3475
|
primary,
|
|
3476
3476
|
fallbackFactory: async () => {
|
|
3477
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3477
|
+
const { MemoryIndexManager } = await import("./manager-D5ZbBYmN.js").then((n) => n.t);
|
|
3478
3478
|
return await MemoryIndexManager.get(params);
|
|
3479
3479
|
}
|
|
3480
3480
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -3487,7 +3487,7 @@ async function getMemorySearchManager(params) {
|
|
|
3487
3487
|
}
|
|
3488
3488
|
}
|
|
3489
3489
|
try {
|
|
3490
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3490
|
+
const { MemoryIndexManager } = await import("./manager-D5ZbBYmN.js").then((n) => n.t);
|
|
3491
3491
|
return { manager: await MemoryIndexManager.get(params) };
|
|
3492
3492
|
} catch (err) {
|
|
3493
3493
|
return {
|
|
@@ -7201,7 +7201,7 @@ async function routeReply(params) {
|
|
|
7201
7201
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
7202
7202
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
7203
7203
|
try {
|
|
7204
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
7204
|
+
const { deliverOutboundPayloads } = await import("./deliver-DXVMhb3A.js").then((n) => n.n);
|
|
7205
7205
|
return {
|
|
7206
7206
|
ok: true,
|
|
7207
7207
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -12654,7 +12654,7 @@ async function createModelSelectionState(params) {
|
|
|
12654
12654
|
}
|
|
12655
12655
|
}
|
|
12656
12656
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
12657
|
-
const { ensureAuthProfileStore } = await import("./model-auth-
|
|
12657
|
+
const { ensureAuthProfileStore } = await import("./model-auth-Db8I8QVL.js").then((n) => n.s);
|
|
12658
12658
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
12659
12659
|
const providerKey = normalizeProviderId(provider);
|
|
12660
12660
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -14225,7 +14225,7 @@ function ensureNestedObject(root, path) {
|
|
|
14225
14225
|
}
|
|
14226
14226
|
return current;
|
|
14227
14227
|
}
|
|
14228
|
-
function setNestedValue(root, path, value) {
|
|
14228
|
+
function setNestedValue$1(root, path, value) {
|
|
14229
14229
|
if (path.length === 0) return;
|
|
14230
14230
|
if (path.length === 1) {
|
|
14231
14231
|
root[path[0]] = value;
|
|
@@ -14559,7 +14559,7 @@ const handleAllowlistCommand = async (params, allowTextCommands) => {
|
|
|
14559
14559
|
}
|
|
14560
14560
|
if (configChanged) {
|
|
14561
14561
|
if (next.length === 0) deleteNestedValue(target, allowlistPath);
|
|
14562
|
-
else setNestedValue(target, allowlistPath, next);
|
|
14562
|
+
else setNestedValue$1(target, allowlistPath, next);
|
|
14563
14563
|
if (scope === "dm" && (channelId === "slack" || channelId === "discord")) deleteNestedValue(target, ["dm", "allowFrom"]);
|
|
14564
14564
|
}
|
|
14565
14565
|
if (configChanged) {
|
|
@@ -21458,8 +21458,8 @@ function buildMemorySection(params) {
|
|
|
21458
21458
|
lines.push("");
|
|
21459
21459
|
return lines;
|
|
21460
21460
|
}
|
|
21461
|
-
function buildUserIdentitySection(ownerLine, isMinimal) {
|
|
21462
|
-
if (!ownerLine || isMinimal) return [];
|
|
21461
|
+
function buildUserIdentitySection(ownerLine, isMinimal, isCoding) {
|
|
21462
|
+
if (!ownerLine || isMinimal || isCoding) return [];
|
|
21463
21463
|
return [
|
|
21464
21464
|
"## Authorized Senders",
|
|
21465
21465
|
ownerLine,
|
|
@@ -21483,8 +21483,8 @@ function buildTimeSection(params) {
|
|
|
21483
21483
|
""
|
|
21484
21484
|
];
|
|
21485
21485
|
}
|
|
21486
|
-
function buildReplyTagsSection(isMinimal) {
|
|
21487
|
-
if (isMinimal) return [];
|
|
21486
|
+
function buildReplyTagsSection(isMinimal, isCoding) {
|
|
21487
|
+
if (isMinimal || isCoding) return [];
|
|
21488
21488
|
return [
|
|
21489
21489
|
"## Reply Tags",
|
|
21490
21490
|
"To request a native reply/quote on supported surfaces, include one tag in your reply:",
|
|
@@ -21497,7 +21497,7 @@ function buildReplyTagsSection(isMinimal) {
|
|
|
21497
21497
|
];
|
|
21498
21498
|
}
|
|
21499
21499
|
function buildMessagingSection(params) {
|
|
21500
|
-
if (params.isMinimal) return [];
|
|
21500
|
+
if (params.isMinimal || params.isCoding) return [];
|
|
21501
21501
|
return [
|
|
21502
21502
|
"## Messaging",
|
|
21503
21503
|
"- Reply in current session → automatically routes to the source channel (Signal, Telegram, etc.)",
|
|
@@ -21520,7 +21520,7 @@ function buildMessagingSection(params) {
|
|
|
21520
21520
|
];
|
|
21521
21521
|
}
|
|
21522
21522
|
function buildVoiceSection(params) {
|
|
21523
|
-
if (params.isMinimal) return [];
|
|
21523
|
+
if (params.isMinimal || params.isCoding) return [];
|
|
21524
21524
|
const hint = params.ttsHint?.trim();
|
|
21525
21525
|
if (!hint) return [];
|
|
21526
21526
|
return [
|
|
@@ -21529,6 +21529,71 @@ function buildVoiceSection(params) {
|
|
|
21529
21529
|
""
|
|
21530
21530
|
];
|
|
21531
21531
|
}
|
|
21532
|
+
function buildVerifyYourWorkSection(params) {
|
|
21533
|
+
if (params.isMinimal) return [];
|
|
21534
|
+
const exec = params.execToolName;
|
|
21535
|
+
const read = params.readToolName;
|
|
21536
|
+
return [
|
|
21537
|
+
"## Verify Your Work",
|
|
21538
|
+
[
|
|
21539
|
+
"Before delivering any code, script, configuration, or technical artifact, you MUST perform a structured verification pass.",
|
|
21540
|
+
"Skipping verification is the single most common cause of incomplete or broken outputs.",
|
|
21541
|
+
"Treat this section as mandatory for every coding task, not optional polish."
|
|
21542
|
+
].join(" "),
|
|
21543
|
+
"",
|
|
21544
|
+
"### 1. Re-read the request",
|
|
21545
|
+
[
|
|
21546
|
+
"Before you finalize your response, re-read the user's original message (and any follow-ups) in full.",
|
|
21547
|
+
"Extract every discrete requirement, constraint, and preference they stated.",
|
|
21548
|
+
"Write them down internally as a checklist.",
|
|
21549
|
+
"This catches drift: it is easy to start solving a related-but-different problem mid-task."
|
|
21550
|
+
].join(" "),
|
|
21551
|
+
"",
|
|
21552
|
+
"### 2. Check each requirement against your output",
|
|
21553
|
+
[
|
|
21554
|
+
"Walk through your internal checklist point by point.",
|
|
21555
|
+
"For each requirement, locate the exact lines in your output that satisfy it.",
|
|
21556
|
+
"If you cannot point to concrete lines that fulfill a requirement, the work is not done — go back and address the gap before responding.",
|
|
21557
|
+
"Pay special attention to edge cases, error handling, and boundary conditions the user mentioned."
|
|
21558
|
+
].join(" "),
|
|
21559
|
+
"",
|
|
21560
|
+
"### 3. Run the code",
|
|
21561
|
+
[
|
|
21562
|
+
`Whenever possible, use ${exec} to actually run, compile, lint, or test your code before presenting it.`,
|
|
21563
|
+
"Do not guess whether code works — execute it and observe the result.",
|
|
21564
|
+
"If the code produces errors, fix them and re-run until it succeeds.",
|
|
21565
|
+
"For scripts: run them with representative inputs.",
|
|
21566
|
+
"For libraries/modules: write and execute a minimal smoke test.",
|
|
21567
|
+
"For config files: validate syntax (e.g., json, yaml, toml parsers).",
|
|
21568
|
+
"If execution is genuinely impossible (no runtime available, user explicitly said not to run), state that you were unable to verify execution and explain why."
|
|
21569
|
+
].join(" "),
|
|
21570
|
+
"",
|
|
21571
|
+
"### 4. Include tests when requested",
|
|
21572
|
+
[
|
|
21573
|
+
"If the user asked for tests, they are a hard requirement — not a nice-to-have.",
|
|
21574
|
+
"Deliver the tests alongside the implementation, not as an afterthought.",
|
|
21575
|
+
"Run the tests and confirm they pass before responding.",
|
|
21576
|
+
"If the user did not explicitly ask for tests but the change is non-trivial, consider whether a test would catch a regression and offer one."
|
|
21577
|
+
].join(" "),
|
|
21578
|
+
"",
|
|
21579
|
+
"### 5. Self-review",
|
|
21580
|
+
[
|
|
21581
|
+
`After everything above, use ${read} to re-read any files you created or modified.`,
|
|
21582
|
+
"Look at them with fresh eyes as if reviewing someone else's code.",
|
|
21583
|
+
"Check for: typos, missing imports, unused variables, inconsistent naming, hardcoded values that should be configurable, incomplete error handling, and security issues (exposed secrets, injection vectors, missing input validation).",
|
|
21584
|
+
"If you find problems during self-review, fix them, re-run verification, and only then respond."
|
|
21585
|
+
].join(" "),
|
|
21586
|
+
"",
|
|
21587
|
+
"### Verification failures",
|
|
21588
|
+
[
|
|
21589
|
+
"If any step above reveals a gap, do NOT respond with a partial answer and a disclaimer.",
|
|
21590
|
+
"Instead, fix the issue silently and re-verify.",
|
|
21591
|
+
"The user should receive working, complete output — not a draft with known issues.",
|
|
21592
|
+
"Only flag genuinely unresolvable ambiguities (where you need the user's decision to proceed)."
|
|
21593
|
+
].join(" "),
|
|
21594
|
+
""
|
|
21595
|
+
];
|
|
21596
|
+
}
|
|
21532
21597
|
function buildDocsSection(params) {
|
|
21533
21598
|
const docsPath = params.docsPath?.trim();
|
|
21534
21599
|
if (!docsPath || params.isMinimal) return [];
|
|
@@ -21653,6 +21718,7 @@ function buildAgentSystemPrompt(params) {
|
|
|
21653
21718
|
const messageChannelOptions = listDeliverableMessageChannels().join("|");
|
|
21654
21719
|
const promptMode = params.promptMode ?? "full";
|
|
21655
21720
|
const isMinimal = promptMode === "minimal" || promptMode === "none";
|
|
21721
|
+
const isCoding = promptMode === "coding";
|
|
21656
21722
|
const sandboxContainerWorkspace = params.sandboxInfo?.containerWorkspaceDir?.trim();
|
|
21657
21723
|
const sanitizedWorkspaceDir = sanitizeForPromptLiteral(params.workspaceDir);
|
|
21658
21724
|
const sanitizedSandboxContainerWorkspace = sandboxContainerWorkspace ? sanitizeForPromptLiteral(sandboxContainerWorkspace) : "";
|
|
@@ -21729,19 +21795,19 @@ function buildAgentSystemPrompt(params) {
|
|
|
21729
21795
|
"",
|
|
21730
21796
|
...skillsSection,
|
|
21731
21797
|
...memorySection,
|
|
21732
|
-
hasGateway && !isMinimal ? "## Symi Self-Update" : "",
|
|
21733
|
-
hasGateway && !isMinimal ? [
|
|
21798
|
+
hasGateway && !isMinimal && !isCoding ? "## Symi Self-Update" : "",
|
|
21799
|
+
hasGateway && !isMinimal && !isCoding ? [
|
|
21734
21800
|
"Get Updates (self-update) is ONLY allowed when the user explicitly asks for it.",
|
|
21735
21801
|
"Do not run config.apply or update.run unless the user explicitly requests an update or config change; if it's not explicit, ask first.",
|
|
21736
21802
|
"Actions: config.get, config.schema, config.apply (validate + write full config, then restart), update.run (update deps or git, then restart).",
|
|
21737
21803
|
"After restart, Symi pings the last active session automatically."
|
|
21738
21804
|
].join("\n") : "",
|
|
21739
|
-
hasGateway && !isMinimal ? "" : "",
|
|
21805
|
+
hasGateway && !isMinimal && !isCoding ? "" : "",
|
|
21740
21806
|
"",
|
|
21741
|
-
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "## Model Aliases" : "",
|
|
21742
|
-
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "Prefer aliases when specifying model overrides; full provider/model is also accepted." : "",
|
|
21743
|
-
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? params.modelAliasLines.join("\n") : "",
|
|
21744
|
-
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "" : "",
|
|
21807
|
+
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "## Model Aliases" : "",
|
|
21808
|
+
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "Prefer aliases when specifying model overrides; full provider/model is also accepted." : "",
|
|
21809
|
+
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? params.modelAliasLines.join("\n") : "",
|
|
21810
|
+
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "" : "",
|
|
21745
21811
|
userTimezone ? "If you need the current date, time, or day of week, run session_status (📊 session_status)." : "",
|
|
21746
21812
|
"## Workspace",
|
|
21747
21813
|
`Your working directory is: ${displayWorkspaceDir}`,
|
|
@@ -21749,6 +21815,11 @@ function buildAgentSystemPrompt(params) {
|
|
|
21749
21815
|
...workspaceNotes,
|
|
21750
21816
|
"",
|
|
21751
21817
|
...docsSection,
|
|
21818
|
+
...buildVerifyYourWorkSection({
|
|
21819
|
+
isMinimal,
|
|
21820
|
+
execToolName,
|
|
21821
|
+
readToolName
|
|
21822
|
+
}),
|
|
21752
21823
|
params.sandboxInfo?.enabled ? "## Sandbox" : "",
|
|
21753
21824
|
params.sandboxInfo?.enabled ? [
|
|
21754
21825
|
"You are running in a sandboxed runtime (tools execute in Docker).",
|
|
@@ -21766,14 +21837,15 @@ function buildAgentSystemPrompt(params) {
|
|
|
21766
21837
|
params.sandboxInfo.elevated?.allowed ? `Current elevated level: ${params.sandboxInfo.elevated.defaultLevel} (ask runs exec on host with approvals; full auto-approves).` : ""
|
|
21767
21838
|
].filter(Boolean).join("\n") : "",
|
|
21768
21839
|
params.sandboxInfo?.enabled ? "" : "",
|
|
21769
|
-
...buildUserIdentitySection(ownerLine, isMinimal),
|
|
21840
|
+
...buildUserIdentitySection(ownerLine, isMinimal, isCoding),
|
|
21770
21841
|
...buildTimeSection({ userTimezone }),
|
|
21771
21842
|
"## Workspace Files (injected)",
|
|
21772
21843
|
"These user-editable files are loaded by Symi and included below in Project Context.",
|
|
21773
21844
|
"",
|
|
21774
|
-
...buildReplyTagsSection(isMinimal),
|
|
21845
|
+
...buildReplyTagsSection(isMinimal, isCoding),
|
|
21775
21846
|
...buildMessagingSection({
|
|
21776
21847
|
isMinimal,
|
|
21848
|
+
isCoding,
|
|
21777
21849
|
availableTools,
|
|
21778
21850
|
messageChannelOptions,
|
|
21779
21851
|
inlineButtonsEnabled,
|
|
@@ -21782,6 +21854,7 @@ function buildAgentSystemPrompt(params) {
|
|
|
21782
21854
|
}),
|
|
21783
21855
|
...buildVoiceSection({
|
|
21784
21856
|
isMinimal,
|
|
21857
|
+
isCoding,
|
|
21785
21858
|
ttsHint: params.ttsHint
|
|
21786
21859
|
})
|
|
21787
21860
|
];
|
|
@@ -21821,8 +21894,8 @@ function buildAgentSystemPrompt(params) {
|
|
|
21821
21894
|
lines.push("");
|
|
21822
21895
|
for (const file of validContextFiles) lines.push(`## ${file.path}`, "", file.content, "");
|
|
21823
21896
|
}
|
|
21824
|
-
if (!isMinimal) lines.push("## Silent Replies", `When you have nothing to say, respond with ONLY: ${SILENT_REPLY_TOKEN}`, "", "⚠️ Rules:", "- It must be your ENTIRE message — nothing else", `- Never append it to an actual response (never include "${SILENT_REPLY_TOKEN}" in real replies)`, "- Never wrap it in markdown or code blocks", "", `❌ Wrong: "Here's help... ${SILENT_REPLY_TOKEN}"`, `❌ Wrong: "${SILENT_REPLY_TOKEN}"`, `✅ Right: ${SILENT_REPLY_TOKEN}`, "");
|
|
21825
|
-
if (!isMinimal) lines.push("## Heartbeats", heartbeatPromptLine, "If you receive a heartbeat poll (a user message matching the heartbeat prompt above), and there is nothing that needs attention, reply exactly:", "SYMIPULSE_OK", "Symi treats a leading/trailing \"SYMIPULSE_OK\" as a heartbeat ack (and may discard it).", "If something needs attention, do NOT include \"SYMIPULSE_OK\"; reply with the alert text instead.", "");
|
|
21897
|
+
if (!isMinimal && !isCoding) lines.push("## Silent Replies", `When you have nothing to say, respond with ONLY: ${SILENT_REPLY_TOKEN}`, "", "⚠️ Rules:", "- It must be your ENTIRE message — nothing else", `- Never append it to an actual response (never include "${SILENT_REPLY_TOKEN}" in real replies)`, "- Never wrap it in markdown or code blocks", "", `❌ Wrong: "Here's help... ${SILENT_REPLY_TOKEN}"`, `❌ Wrong: "${SILENT_REPLY_TOKEN}"`, `✅ Right: ${SILENT_REPLY_TOKEN}`, "");
|
|
21898
|
+
if (!isMinimal && !isCoding) lines.push("## Heartbeats", heartbeatPromptLine, "If you receive a heartbeat poll (a user message matching the heartbeat prompt above), and there is nothing that needs attention, reply exactly:", "SYMIPULSE_OK", "Symi treats a leading/trailing \"SYMIPULSE_OK\" as a heartbeat ack (and may discard it).", "If something needs attention, do NOT include \"SYMIPULSE_OK\"; reply with the alert text instead.", "");
|
|
21826
21899
|
lines.push("## Runtime", buildRuntimeLine(runtimeInfo, runtimeChannel, runtimeCapabilities, params.defaultThinkLevel), `Reasoning: ${reasoningLevel} (hidden unless on/stream). Toggle /reasoning; /status shows Reasoning when enabled.`);
|
|
21827
21900
|
return lines.filter(Boolean).join("\n");
|
|
21828
21901
|
}
|
|
@@ -41574,7 +41647,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
41574
41647
|
return;
|
|
41575
41648
|
}
|
|
41576
41649
|
try {
|
|
41577
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
41650
|
+
const { deliverOutboundPayloads } = await import("./deliver-DXVMhb3A.js").then((n) => n.n);
|
|
41578
41651
|
await deliverOutboundPayloads({
|
|
41579
41652
|
cfg: params.cfg,
|
|
41580
41653
|
channel,
|
|
@@ -45017,7 +45090,7 @@ async function describeStickerImage(params) {
|
|
|
45017
45090
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
45018
45091
|
try {
|
|
45019
45092
|
const buffer = await fs.readFile(imagePath);
|
|
45020
|
-
const { describeImageWithModel } = await import("./image-
|
|
45093
|
+
const { describeImageWithModel } = await import("./image-Bf_jHnTg.js").then((n) => n.n);
|
|
45021
45094
|
return (await describeImageWithModel({
|
|
45022
45095
|
buffer,
|
|
45023
45096
|
fileName: "sticker.webp",
|
|
@@ -45440,7 +45513,7 @@ function createWhatsAppLoginTool() {
|
|
|
45440
45513
|
force: Type.Optional(Type.Boolean())
|
|
45441
45514
|
}),
|
|
45442
45515
|
execute: async (_toolCallId, args) => {
|
|
45443
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
45516
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-_FriwsNr.js");
|
|
45444
45517
|
if ((args?.action ?? "start") === "wait") {
|
|
45445
45518
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
45446
45519
|
return {
|
|
@@ -46166,6 +46239,207 @@ function registerMemoryCli(program) {
|
|
|
46166
46239
|
}
|
|
46167
46240
|
});
|
|
46168
46241
|
});
|
|
46242
|
+
memory.command("setup").description("Auto-detect and configure the best embedding provider").option("--agent <id>", "Agent id (default: default agent)").option("--dry-run", "Show what would be configured without writing", false).option("--verbose", "Verbose logging", false).action(async (opts) => {
|
|
46243
|
+
setVerbose(Boolean(opts.verbose));
|
|
46244
|
+
await runMemorySetup(opts);
|
|
46245
|
+
});
|
|
46246
|
+
}
|
|
46247
|
+
async function detectEmbeddingProviders(cfg) {
|
|
46248
|
+
const detected = [];
|
|
46249
|
+
const ollamaProbe = await probeOllamaEmbeddingModels(resolveOllamaBaseUrl(cfg));
|
|
46250
|
+
if (ollamaProbe && ollamaProbe.models.length > 0) detected.push({
|
|
46251
|
+
id: "ollama",
|
|
46252
|
+
model: ollamaProbe.models[0],
|
|
46253
|
+
baseUrl: ollamaProbe.baseUrl,
|
|
46254
|
+
reason: `Ollama at ${ollamaProbe.baseUrl} — ${ollamaProbe.models[0]}`
|
|
46255
|
+
});
|
|
46256
|
+
for (const remote of [
|
|
46257
|
+
{
|
|
46258
|
+
id: "openai",
|
|
46259
|
+
envKey: "OPENAI_API_KEY",
|
|
46260
|
+
defaultModel: "text-embedding-3-small"
|
|
46261
|
+
},
|
|
46262
|
+
{
|
|
46263
|
+
id: "gemini",
|
|
46264
|
+
envKey: "GEMINI_API_KEY",
|
|
46265
|
+
defaultModel: "gemini-embedding-001"
|
|
46266
|
+
},
|
|
46267
|
+
{
|
|
46268
|
+
id: "voyage",
|
|
46269
|
+
envKey: "VOYAGE_API_KEY",
|
|
46270
|
+
defaultModel: "voyage-4-large"
|
|
46271
|
+
}
|
|
46272
|
+
]) {
|
|
46273
|
+
const envValue = process.env[remote.envKey]?.trim();
|
|
46274
|
+
let hasKey = Boolean(envValue);
|
|
46275
|
+
if (!hasKey) try {
|
|
46276
|
+
const resolved = await resolveApiKeyForProvider({
|
|
46277
|
+
provider: remote.id,
|
|
46278
|
+
cfg
|
|
46279
|
+
});
|
|
46280
|
+
hasKey = Boolean(resolved?.apiKey);
|
|
46281
|
+
} catch {}
|
|
46282
|
+
if (hasKey) detected.push({
|
|
46283
|
+
id: remote.id,
|
|
46284
|
+
model: remote.defaultModel,
|
|
46285
|
+
reason: `${remote.id} — API key found`
|
|
46286
|
+
});
|
|
46287
|
+
}
|
|
46288
|
+
return detected;
|
|
46289
|
+
}
|
|
46290
|
+
function setNestedValue(obj, path, value) {
|
|
46291
|
+
let current = obj;
|
|
46292
|
+
for (let i = 0; i < path.length - 1; i++) {
|
|
46293
|
+
const key = path[i];
|
|
46294
|
+
if (current[key] === void 0 || typeof current[key] !== "object" || current[key] === null) current[key] = {};
|
|
46295
|
+
current = current[key];
|
|
46296
|
+
}
|
|
46297
|
+
current[path[path.length - 1]] = value;
|
|
46298
|
+
}
|
|
46299
|
+
async function runMemorySetup(opts) {
|
|
46300
|
+
const rich = isRich();
|
|
46301
|
+
const heading = (text) => colorize(rich, theme.heading, text);
|
|
46302
|
+
const success = (text) => colorize(rich, theme.success, text);
|
|
46303
|
+
const warn = (text) => colorize(rich, theme.warn, text);
|
|
46304
|
+
const info = (text) => colorize(rich, theme.info, text);
|
|
46305
|
+
const muted = (text) => colorize(rich, theme.muted, text);
|
|
46306
|
+
const cfg = loadConfig();
|
|
46307
|
+
const agentId = resolveAgent(cfg, opts.agent);
|
|
46308
|
+
defaultRuntime.log(heading("Detecting embedding providers..."));
|
|
46309
|
+
defaultRuntime.log("");
|
|
46310
|
+
const detected = await detectEmbeddingProviders(cfg);
|
|
46311
|
+
const ollamaBase = resolveOllamaBaseUrl(cfg);
|
|
46312
|
+
const ollamaFound = detected.some((d) => d.id === "ollama");
|
|
46313
|
+
const openaiFound = detected.some((d) => d.id === "openai");
|
|
46314
|
+
const geminiFound = detected.some((d) => d.id === "gemini");
|
|
46315
|
+
const voyageFound = detected.some((d) => d.id === "voyage");
|
|
46316
|
+
if (ollamaFound) defaultRuntime.log(` ${success("✓")} ${detected.find((d) => d.id === "ollama").reason}`);
|
|
46317
|
+
else defaultRuntime.log(` ${warn("✗")} Ollama — not reachable at ${ollamaBase} or no embedding models`);
|
|
46318
|
+
if (openaiFound) defaultRuntime.log(` ${success("✓")} ${detected.find((d) => d.id === "openai").reason}`);
|
|
46319
|
+
else defaultRuntime.log(` ${warn("✗")} OpenAI — no API key`);
|
|
46320
|
+
if (geminiFound) defaultRuntime.log(` ${success("✓")} ${detected.find((d) => d.id === "gemini").reason}`);
|
|
46321
|
+
else defaultRuntime.log(` ${warn("✗")} Gemini — no API key`);
|
|
46322
|
+
if (voyageFound) defaultRuntime.log(` ${success("✓")} ${detected.find((d) => d.id === "voyage").reason}`);
|
|
46323
|
+
else defaultRuntime.log(` ${warn("✗")} Voyage — no API key`);
|
|
46324
|
+
defaultRuntime.log("");
|
|
46325
|
+
if (detected.length === 0) {
|
|
46326
|
+
defaultRuntime.error("No embedding providers detected.");
|
|
46327
|
+
defaultRuntime.error("");
|
|
46328
|
+
defaultRuntime.error("To fix, do one of:");
|
|
46329
|
+
defaultRuntime.error(" - Install Ollama and pull an embedding model: ollama pull nomic-embed-text");
|
|
46330
|
+
defaultRuntime.error(" - Set OPENAI_API_KEY environment variable");
|
|
46331
|
+
defaultRuntime.error(" - Set GEMINI_API_KEY or VOYAGE_API_KEY environment variable");
|
|
46332
|
+
process.exitCode = 1;
|
|
46333
|
+
return;
|
|
46334
|
+
}
|
|
46335
|
+
const best = detected[0];
|
|
46336
|
+
defaultRuntime.log(`${heading("Configuring:")} ${info(best.id)} (${best.model})`);
|
|
46337
|
+
if (opts.dryRun) {
|
|
46338
|
+
defaultRuntime.log(muted(" (dry run — no changes written)"));
|
|
46339
|
+
const configProvider = best.id === "ollama" ? "openai" : best.id;
|
|
46340
|
+
defaultRuntime.log(` provider = ${info(configProvider)}${best.id === "ollama" ? muted(" (via Ollama)") : ""}`);
|
|
46341
|
+
defaultRuntime.log(` model = ${info(best.model)}`);
|
|
46342
|
+
if (best.baseUrl) {
|
|
46343
|
+
const configUrl = best.id === "ollama" ? `${best.baseUrl}/v1` : best.baseUrl;
|
|
46344
|
+
defaultRuntime.log(` remote.baseUrl = ${info(configUrl)}`);
|
|
46345
|
+
}
|
|
46346
|
+
return;
|
|
46347
|
+
}
|
|
46348
|
+
const snapshot = await readConfigFileSnapshot();
|
|
46349
|
+
const next = structuredClone(snapshot.resolved);
|
|
46350
|
+
const memPath = [
|
|
46351
|
+
"agents",
|
|
46352
|
+
"defaults",
|
|
46353
|
+
"memorySearch"
|
|
46354
|
+
];
|
|
46355
|
+
setNestedValue(next, [...memPath, "enabled"], true);
|
|
46356
|
+
setNestedValue(next, [...memPath, "sources"], ["memory", "sessions"]);
|
|
46357
|
+
if (best.id === "ollama" && best.baseUrl) {
|
|
46358
|
+
setNestedValue(next, [...memPath, "provider"], "openai");
|
|
46359
|
+
setNestedValue(next, [...memPath, "model"], best.model);
|
|
46360
|
+
setNestedValue(next, [
|
|
46361
|
+
...memPath,
|
|
46362
|
+
"remote",
|
|
46363
|
+
"baseUrl"
|
|
46364
|
+
], `${best.baseUrl}/v1`);
|
|
46365
|
+
setNestedValue(next, [
|
|
46366
|
+
...memPath,
|
|
46367
|
+
"remote",
|
|
46368
|
+
"apiKey"
|
|
46369
|
+
], "ollama-local");
|
|
46370
|
+
} else {
|
|
46371
|
+
setNestedValue(next, [...memPath, "provider"], best.id);
|
|
46372
|
+
setNestedValue(next, [...memPath, "model"], best.model);
|
|
46373
|
+
if (best.baseUrl) setNestedValue(next, [
|
|
46374
|
+
...memPath,
|
|
46375
|
+
"remote",
|
|
46376
|
+
"baseUrl"
|
|
46377
|
+
], best.baseUrl);
|
|
46378
|
+
}
|
|
46379
|
+
await writeConfigFile(next);
|
|
46380
|
+
defaultRuntime.log(` ${success("✓")} Updated symi.json`);
|
|
46381
|
+
defaultRuntime.log("");
|
|
46382
|
+
defaultRuntime.log(heading("Indexing memory files..."));
|
|
46383
|
+
const freshCfg = loadConfig();
|
|
46384
|
+
let indexOk = false;
|
|
46385
|
+
await withMemoryManagerForAgent({
|
|
46386
|
+
cfg: freshCfg,
|
|
46387
|
+
agentId,
|
|
46388
|
+
run: async (manager) => {
|
|
46389
|
+
const syncFn = manager.sync ? manager.sync.bind(manager) : void 0;
|
|
46390
|
+
if (!syncFn) {
|
|
46391
|
+
defaultRuntime.log(warn(" Memory backend does not support indexing."));
|
|
46392
|
+
return;
|
|
46393
|
+
}
|
|
46394
|
+
try {
|
|
46395
|
+
await withProgressTotals({
|
|
46396
|
+
label: "Indexing memory…",
|
|
46397
|
+
total: 0
|
|
46398
|
+
}, async (update, progress) => {
|
|
46399
|
+
await syncFn({
|
|
46400
|
+
reason: "cli",
|
|
46401
|
+
force: true,
|
|
46402
|
+
progress: (syncUpdate) => {
|
|
46403
|
+
update({
|
|
46404
|
+
completed: syncUpdate.completed,
|
|
46405
|
+
total: syncUpdate.total,
|
|
46406
|
+
label: syncUpdate.label
|
|
46407
|
+
});
|
|
46408
|
+
if (syncUpdate.label) progress.setLabel(syncUpdate.label);
|
|
46409
|
+
}
|
|
46410
|
+
});
|
|
46411
|
+
});
|
|
46412
|
+
const status = manager.status();
|
|
46413
|
+
defaultRuntime.log(` ${success("✓")} ${status.files ?? 0} files → ${status.chunks ?? 0} chunks` + (status.vector?.dims ? ` (${status.vector.dims}-dim vectors)` : ""));
|
|
46414
|
+
indexOk = true;
|
|
46415
|
+
} catch (err) {
|
|
46416
|
+
defaultRuntime.error(` ${warn("✗")} Index failed: ${formatErrorMessage(err)}`);
|
|
46417
|
+
}
|
|
46418
|
+
}
|
|
46419
|
+
});
|
|
46420
|
+
if (!indexOk) {
|
|
46421
|
+
process.exitCode = 1;
|
|
46422
|
+
return;
|
|
46423
|
+
}
|
|
46424
|
+
defaultRuntime.log("");
|
|
46425
|
+
defaultRuntime.log(heading("Verifying search..."));
|
|
46426
|
+
await withMemoryManagerForAgent({
|
|
46427
|
+
cfg: freshCfg,
|
|
46428
|
+
agentId,
|
|
46429
|
+
run: async (manager) => {
|
|
46430
|
+
try {
|
|
46431
|
+
const results = await manager.search("test memory verification", { maxResults: 3 });
|
|
46432
|
+
defaultRuntime.log(` ${success("✓")} Test query returned ${results.length} results` + (results.length > 0 ? ` (score ${results[results.length - 1].score.toFixed(2)}–${results[0].score.toFixed(2)})` : ""));
|
|
46433
|
+
} catch (err) {
|
|
46434
|
+
defaultRuntime.log(` ${warn("✗")} Search verification failed: ${formatErrorMessage(err)}`);
|
|
46435
|
+
process.exitCode = 1;
|
|
46436
|
+
return;
|
|
46437
|
+
}
|
|
46438
|
+
}
|
|
46439
|
+
});
|
|
46440
|
+
defaultRuntime.log("");
|
|
46441
|
+
defaultRuntime.log(success("Memory system is fully operational."));
|
|
46442
|
+
defaultRuntime.log(muted("Restart the gateway to apply: systemctl --user restart symi-gateway"));
|
|
46169
46443
|
}
|
|
46170
46444
|
|
|
46171
46445
|
//#endregion
|
|
@@ -47478,7 +47752,7 @@ async function preflightDiscordMessage(params) {
|
|
|
47478
47752
|
let preflightTranscript;
|
|
47479
47753
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
47480
47754
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
47481
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
47755
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-B_VLZd_F.js");
|
|
47482
47756
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
47483
47757
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
47484
47758
|
ctx: {
|
|
@@ -51484,27 +51758,27 @@ function isVoiceChannelType(type) {
|
|
|
51484
51758
|
function createDefaultDeps() {
|
|
51485
51759
|
return {
|
|
51486
51760
|
sendMessageWhatsApp: async (...args) => {
|
|
51487
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
51761
|
+
const { sendMessageWhatsApp } = await import("./web-OmlhMCcZ.js");
|
|
51488
51762
|
return await sendMessageWhatsApp(...args);
|
|
51489
51763
|
},
|
|
51490
51764
|
sendMessageTelegram: async (...args) => {
|
|
51491
|
-
const { sendMessageTelegram } = await import("./send-
|
|
51765
|
+
const { sendMessageTelegram } = await import("./send-DiBs_eJc.js").then((n) => n.l);
|
|
51492
51766
|
return await sendMessageTelegram(...args);
|
|
51493
51767
|
},
|
|
51494
51768
|
sendMessageDiscord: async (...args) => {
|
|
51495
|
-
const { sendMessageDiscord } = await import("./send-
|
|
51769
|
+
const { sendMessageDiscord } = await import("./send-DZbplWNh.js").then((n) => n.t);
|
|
51496
51770
|
return await sendMessageDiscord(...args);
|
|
51497
51771
|
},
|
|
51498
51772
|
sendMessageSlack: async (...args) => {
|
|
51499
|
-
const { sendMessageSlack } = await import("./send-
|
|
51773
|
+
const { sendMessageSlack } = await import("./send-BPqK6C8h.js").then((n) => n.n);
|
|
51500
51774
|
return await sendMessageSlack(...args);
|
|
51501
51775
|
},
|
|
51502
51776
|
sendMessageSignal: async (...args) => {
|
|
51503
|
-
const { sendMessageSignal } = await import("./send-
|
|
51777
|
+
const { sendMessageSignal } = await import("./send-BbscKwuU.js").then((n) => n.i);
|
|
51504
51778
|
return await sendMessageSignal(...args);
|
|
51505
51779
|
},
|
|
51506
51780
|
sendMessageIMessage: async (...args) => {
|
|
51507
|
-
const { sendMessageIMessage } = await import("./send-
|
|
51781
|
+
const { sendMessageIMessage } = await import("./send-Bj3PJmrF.js").then((n) => n.n);
|
|
51508
51782
|
return await sendMessageIMessage(...args);
|
|
51509
51783
|
}
|
|
51510
51784
|
};
|
|
@@ -61930,7 +62204,7 @@ function readSlackExternalArgMenuToken(raw) {
|
|
|
61930
62204
|
}
|
|
61931
62205
|
let commandsRegistry;
|
|
61932
62206
|
async function getCommandsRegistry() {
|
|
61933
|
-
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-
|
|
62207
|
+
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-tuRMQmX4.js").then((n) => n.n);
|
|
61934
62208
|
return commandsRegistry;
|
|
61935
62209
|
}
|
|
61936
62210
|
function encodeSlackCommandArgValue(parts) {
|
|
@@ -62333,7 +62607,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
62333
62607
|
});
|
|
62334
62608
|
const deliverSlashPayloads = async (replies) => {
|
|
62335
62609
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
62336
|
-
import("./replies-
|
|
62610
|
+
import("./replies-Bhx469BX.js").then((n) => n.r),
|
|
62337
62611
|
import("./chunk-BW5f05BR.js").then((n) => n.s),
|
|
62338
62612
|
import("./markdown-tables-iMQQZu4Q.js").then((n) => n.t)
|
|
62339
62613
|
]);
|
|
@@ -62388,7 +62662,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
62388
62662
|
let nativeCommands = [];
|
|
62389
62663
|
if (nativeEnabled) {
|
|
62390
62664
|
reg = await getCommandsRegistry();
|
|
62391
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
62665
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-C2kxEz5h.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
62392
62666
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
62393
62667
|
skillCommands,
|
|
62394
62668
|
provider: "slack"
|
|
@@ -64606,7 +64880,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
64606
64880
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
64607
64881
|
let preflightTranscript;
|
|
64608
64882
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
64609
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
64883
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-B_VLZd_F.js");
|
|
64610
64884
|
preflightTranscript = await transcribeFirstAudio({
|
|
64611
64885
|
ctx: {
|
|
64612
64886
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -66751,23 +67025,23 @@ let webLoginQrPromise = null;
|
|
|
66751
67025
|
let webChannelPromise = null;
|
|
66752
67026
|
let whatsappActionsPromise = null;
|
|
66753
67027
|
function loadWebOutbound() {
|
|
66754
|
-
webOutboundPromise ??= import("./outbound-
|
|
67028
|
+
webOutboundPromise ??= import("./outbound-0ici4ICv.js").then((n) => n.t);
|
|
66755
67029
|
return webOutboundPromise;
|
|
66756
67030
|
}
|
|
66757
67031
|
function loadWebLogin() {
|
|
66758
|
-
webLoginPromise ??= import("./login-
|
|
67032
|
+
webLoginPromise ??= import("./login-CM1U-ARd.js").then((n) => n.n);
|
|
66759
67033
|
return webLoginPromise;
|
|
66760
67034
|
}
|
|
66761
67035
|
function loadWebLoginQr() {
|
|
66762
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
67036
|
+
webLoginQrPromise ??= import("./login-qr-_FriwsNr.js");
|
|
66763
67037
|
return webLoginQrPromise;
|
|
66764
67038
|
}
|
|
66765
67039
|
function loadWebChannel() {
|
|
66766
|
-
webChannelPromise ??= import("./web-
|
|
67040
|
+
webChannelPromise ??= import("./web-OmlhMCcZ.js");
|
|
66767
67041
|
return webChannelPromise;
|
|
66768
67042
|
}
|
|
66769
67043
|
function loadWhatsAppActions() {
|
|
66770
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
67044
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-BWERIEcF.js");
|
|
66771
67045
|
return whatsappActionsPromise;
|
|
66772
67046
|
}
|
|
66773
67047
|
function createPluginRuntime() {
|
|
@@ -72075,7 +72349,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
72075
72349
|
config: params.config
|
|
72076
72350
|
});
|
|
72077
72351
|
const isDefaultAgent = sessionAgentId === defaultAgentId;
|
|
72078
|
-
const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : "full";
|
|
72352
|
+
const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
|
|
72079
72353
|
const docsPath = await resolveSymiDocsPath({
|
|
72080
72354
|
workspaceDir: effectiveWorkspace,
|
|
72081
72355
|
argv1: process.argv[1],
|
|
@@ -72315,6 +72589,9 @@ function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
|
|
|
72315
72589
|
const streamParams = {};
|
|
72316
72590
|
if (typeof extraParams.temperature === "number") streamParams.temperature = extraParams.temperature;
|
|
72317
72591
|
if (typeof extraParams.maxTokens === "number") streamParams.maxTokens = extraParams.maxTokens;
|
|
72592
|
+
if (typeof extraParams.top_p === "number") streamParams.top_p = extraParams.top_p;
|
|
72593
|
+
if (typeof extraParams.top_k === "number") streamParams.top_k = extraParams.top_k;
|
|
72594
|
+
if (typeof extraParams.repeat_penalty === "number") streamParams.repeat_penalty = extraParams.repeat_penalty;
|
|
72318
72595
|
const cacheRetention = resolveCacheRetention(extraParams, provider);
|
|
72319
72596
|
if (cacheRetention) streamParams.cacheRetention = cacheRetention;
|
|
72320
72597
|
if (Object.keys(streamParams).length === 0) return;
|
|
@@ -75595,7 +75872,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
75595
75872
|
}
|
|
75596
75873
|
});
|
|
75597
75874
|
const isDefaultAgent = sessionAgentId === defaultAgentId;
|
|
75598
|
-
const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : "full";
|
|
75875
|
+
const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
|
|
75599
75876
|
const docsPath = await resolveSymiDocsPath({
|
|
75600
75877
|
workspaceDir: effectiveWorkspace,
|
|
75601
75878
|
argv1: process.argv[1],
|
|
@@ -76610,6 +76887,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
76610
76887
|
let lastRunPromptUsage;
|
|
76611
76888
|
let autoCompactionCount = 0;
|
|
76612
76889
|
let runLoopIterations = 0;
|
|
76890
|
+
let verificationPassCompleted = false;
|
|
76613
76891
|
try {
|
|
76614
76892
|
while (true) {
|
|
76615
76893
|
if (runLoopIterations >= MAX_RUN_LOOP_ITERATIONS) {
|
|
@@ -76979,6 +77257,116 @@ async function runEmbeddedPiAgent(params) {
|
|
|
76979
77257
|
suppressToolErrorWarnings: params.suppressToolErrorWarnings,
|
|
76980
77258
|
inlineToolResultsAllowed: false
|
|
76981
77259
|
});
|
|
77260
|
+
if (!verificationPassCompleted && !aborted && !timedOut && !promptError && payloads.length > 0 && !isCronSessionKey(params.sessionKey) && !isSubagentSessionKey(params.sessionKey)) {
|
|
77261
|
+
const CODE_TOOL_NAMES = new Set([
|
|
77262
|
+
"exec",
|
|
77263
|
+
"bash",
|
|
77264
|
+
"write",
|
|
77265
|
+
"edit",
|
|
77266
|
+
"file_write",
|
|
77267
|
+
"file_edit",
|
|
77268
|
+
"write_file",
|
|
77269
|
+
"edit_file",
|
|
77270
|
+
"create_file",
|
|
77271
|
+
"patch"
|
|
77272
|
+
]);
|
|
77273
|
+
const hasCodeToolUsage = attempt.toolMetas.some((tm) => CODE_TOOL_NAMES.has(tm.toolName.toLowerCase()));
|
|
77274
|
+
const hasCodeBlocks = attempt.assistantTexts.some((text) => /```[\s\S]*?```/.test(text));
|
|
77275
|
+
if (hasCodeToolUsage || hasCodeBlocks) {
|
|
77276
|
+
verificationPassCompleted = true;
|
|
77277
|
+
log$2.debug(`[verification] starting verification pass: runId=${params.runId} sessionId=${params.sessionId} trigger=${hasCodeToolUsage ? "tool_usage" : "code_blocks"}`);
|
|
77278
|
+
const verificationPrompt = "Review your response against the original user request. Check: (1) Did you address every requirement? (2) Did you include tests if requested? (3) Did you run and verify the code works? If you missed anything, fix it now. If everything looks correct, briefly confirm.";
|
|
77279
|
+
try {
|
|
77280
|
+
const verifyAttempt = await runEmbeddedAttempt({
|
|
77281
|
+
sessionId: params.sessionId,
|
|
77282
|
+
sessionKey: params.sessionKey,
|
|
77283
|
+
messageChannel: params.messageChannel,
|
|
77284
|
+
messageProvider: params.messageProvider,
|
|
77285
|
+
agentAccountId: params.agentAccountId,
|
|
77286
|
+
messageTo: params.messageTo,
|
|
77287
|
+
messageThreadId: params.messageThreadId,
|
|
77288
|
+
groupId: params.groupId,
|
|
77289
|
+
groupChannel: params.groupChannel,
|
|
77290
|
+
groupSpace: params.groupSpace,
|
|
77291
|
+
spawnedBy: params.spawnedBy,
|
|
77292
|
+
senderIsOwner: params.senderIsOwner,
|
|
77293
|
+
currentChannelId: params.currentChannelId,
|
|
77294
|
+
currentThreadTs: params.currentThreadTs,
|
|
77295
|
+
replyToMode: params.replyToMode,
|
|
77296
|
+
hasRepliedRef: params.hasRepliedRef,
|
|
77297
|
+
sessionFile: params.sessionFile,
|
|
77298
|
+
workspaceDir: resolvedWorkspace,
|
|
77299
|
+
agentDir,
|
|
77300
|
+
config: params.config,
|
|
77301
|
+
skillsSnapshot: params.skillsSnapshot,
|
|
77302
|
+
prompt: verificationPrompt,
|
|
77303
|
+
images: void 0,
|
|
77304
|
+
disableTools: params.disableTools,
|
|
77305
|
+
provider,
|
|
77306
|
+
modelId,
|
|
77307
|
+
model,
|
|
77308
|
+
authStorage,
|
|
77309
|
+
modelRegistry,
|
|
77310
|
+
agentId: workspaceResolution.agentId,
|
|
77311
|
+
thinkLevel,
|
|
77312
|
+
verboseLevel: params.verboseLevel,
|
|
77313
|
+
reasoningLevel: params.reasoningLevel,
|
|
77314
|
+
toolResultFormat: resolvedToolResultFormat,
|
|
77315
|
+
execOverrides: params.execOverrides,
|
|
77316
|
+
bashElevated: params.bashElevated,
|
|
77317
|
+
timeoutMs: params.timeoutMs,
|
|
77318
|
+
runId: params.runId,
|
|
77319
|
+
abortSignal: params.abortSignal,
|
|
77320
|
+
shouldEmitToolResult: params.shouldEmitToolResult,
|
|
77321
|
+
shouldEmitToolOutput: params.shouldEmitToolOutput,
|
|
77322
|
+
onPartialReply: params.onPartialReply,
|
|
77323
|
+
onAssistantMessageStart: params.onAssistantMessageStart,
|
|
77324
|
+
onBlockReply: params.onBlockReply,
|
|
77325
|
+
onBlockReplyFlush: params.onBlockReplyFlush,
|
|
77326
|
+
blockReplyBreak: params.blockReplyBreak,
|
|
77327
|
+
blockReplyChunking: params.blockReplyChunking,
|
|
77328
|
+
onReasoningStream: params.onReasoningStream,
|
|
77329
|
+
onReasoningEnd: params.onReasoningEnd,
|
|
77330
|
+
onToolResult: params.onToolResult,
|
|
77331
|
+
onAgentEvent: params.onAgentEvent,
|
|
77332
|
+
extraSystemPrompt: params.extraSystemPrompt,
|
|
77333
|
+
inputProvenance: params.inputProvenance,
|
|
77334
|
+
streamParams: params.streamParams,
|
|
77335
|
+
ownerNumbers: params.ownerNumbers,
|
|
77336
|
+
enforceFinalTag: params.enforceFinalTag
|
|
77337
|
+
});
|
|
77338
|
+
const verifyUsage = normalizeUsage(verifyAttempt.lastAssistant?.usage);
|
|
77339
|
+
mergeUsageIntoAccumulator(usageAccumulator, verifyAttempt.attemptUsage ?? verifyUsage);
|
|
77340
|
+
if (verifyAttempt.compactionCount) autoCompactionCount += verifyAttempt.compactionCount;
|
|
77341
|
+
const verifyHasToolUsage = verifyAttempt.toolMetas.length > 0;
|
|
77342
|
+
const verifyHasContent = verifyAttempt.assistantTexts.some((t) => t.trim().length > 0);
|
|
77343
|
+
if (verifyHasToolUsage || verifyHasContent) {
|
|
77344
|
+
const verifyPayloads = buildEmbeddedRunPayloads({
|
|
77345
|
+
assistantTexts: [...attempt.assistantTexts, ...verifyAttempt.assistantTexts],
|
|
77346
|
+
toolMetas: [...attempt.toolMetas, ...verifyAttempt.toolMetas],
|
|
77347
|
+
lastAssistant: verifyAttempt.lastAssistant ?? attempt.lastAssistant,
|
|
77348
|
+
lastToolError: verifyAttempt.lastToolError ?? attempt.lastToolError,
|
|
77349
|
+
config: params.config,
|
|
77350
|
+
sessionKey: params.sessionKey ?? params.sessionId,
|
|
77351
|
+
provider: activeErrorContext.provider,
|
|
77352
|
+
model: activeErrorContext.model,
|
|
77353
|
+
verboseLevel: params.verboseLevel,
|
|
77354
|
+
reasoningLevel: params.reasoningLevel,
|
|
77355
|
+
toolResultFormat: resolvedToolResultFormat,
|
|
77356
|
+
suppressToolErrorWarnings: params.suppressToolErrorWarnings,
|
|
77357
|
+
inlineToolResultsAllowed: false
|
|
77358
|
+
});
|
|
77359
|
+
if (verifyPayloads.length > 0) {
|
|
77360
|
+
payloads.length = 0;
|
|
77361
|
+
payloads.push(...verifyPayloads);
|
|
77362
|
+
}
|
|
77363
|
+
log$2.debug(`[verification] verification produced corrections: runId=${params.runId} tools=${verifyAttempt.toolMetas.length} texts=${verifyAttempt.assistantTexts.length}`);
|
|
77364
|
+
} else log$2.debug(`[verification] verification confirmed original response: runId=${params.runId}`);
|
|
77365
|
+
} catch (verifyErr) {
|
|
77366
|
+
log$2.warn(`[verification] verification pass failed, keeping original response: runId=${params.runId} error=${String(verifyErr)}`);
|
|
77367
|
+
}
|
|
77368
|
+
}
|
|
77369
|
+
}
|
|
76982
77370
|
if (timedOut && !timedOutDuringCompaction && payloads.length === 0) return {
|
|
76983
77371
|
payloads: [{
|
|
76984
77372
|
text: "Request timed out before a response was generated. Please try again, or increase `agents.defaults.timeoutSeconds` in your config.",
|