@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
|
@@ -8,11 +8,11 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-ChYu
|
|
|
8
8
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-CUNoPTKm.js";
|
|
9
9
|
import { $ as isRich, A as normalizeE164, D as isRecord$1, E as formatTerminalLink, H as isPlainObject, I as shortenHomeInString, J as setVerbose, K as logVerbose, L as shortenHomePath, P as resolveUserPath, Q as colorize, R as sleep$1, S as clampInt, T as escapeRegExp, U as danger, V as truncateUtf16Safe, Y as shouldLogVerbose, Z as warn, _ as matchPluginCommand, a as normalizeAnyChannelId, b as CONFIG_DIR, ct as normalizeLogLevel, d as createPluginRegistry, et as theme, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, l as requireActivePluginRegistry, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, o as normalizeChannelId$1, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, tt as getChildLogger, u as setActivePluginRegistry, ut as resolvePreferredSymiTmpDir, v as createInternalHookEvent, w as ensureDir$3, y as triggerInternalHook, z as sliceUtf16Safe } from "./registry--_pGht6S.js";
|
|
10
10
|
import { n as retryAsync } from "./retry-ilSJqnz9.js";
|
|
11
|
-
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, At as fetchDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, E as listThreadsDiscord, Et as normalizeChannelSlug, 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 buildChannelKeyCandidates, 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 applyChannelMatchMeta, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-
|
|
12
|
-
import { B as getConfigOverrides, C as resolveIMessageRemoteAttachmentRoots, G as parseConfigPath, H as setConfigOverride, J as isSafeExecutableValue, K as setConfigValueAtPath, R as parseDurationMs, S as resolveIMessageAttachmentRoots, U as unsetConfigOverride, V as resetConfigOverrides, W as getConfigValueAtPath, X as resolveAgentMaxConcurrent, Y as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Z as VERSION, _ as normalizeTelegramCommandName, a as writeConfigFile, b as isInboundPathAllowed, g as TELEGRAM_COMMAND_NAME_PATTERN, i as resolveConfigSnapshotHash, n as loadConfig, o as validateConfigObjectWithPlugins, q as unsetConfigValueAtPath, r as readConfigFileSnapshot, v as resolveTelegramCustomCommands, w as normalizeScpRemoteHost, z as validateJsonSchemaValue } from "./config-
|
|
11
|
+
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, At as fetchDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, E as listThreadsDiscord, Et as normalizeChannelSlug, 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 buildChannelKeyCandidates, 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 applyChannelMatchMeta, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-e3xSJ8To.js";
|
|
12
|
+
import { B as getConfigOverrides, C as resolveIMessageRemoteAttachmentRoots, G as parseConfigPath, H as setConfigOverride, J as isSafeExecutableValue, K as setConfigValueAtPath, R as parseDurationMs, S as resolveIMessageAttachmentRoots, U as unsetConfigOverride, V as resetConfigOverrides, W as getConfigValueAtPath, X as resolveAgentMaxConcurrent, Y as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Z as VERSION, _ as normalizeTelegramCommandName, a as writeConfigFile, b as isInboundPathAllowed, g as TELEGRAM_COMMAND_NAME_PATTERN, i as resolveConfigSnapshotHash, n as loadConfig, o as validateConfigObjectWithPlugins, q as unsetConfigValueAtPath, r as readConfigFileSnapshot, v as resolveTelegramCustomCommands, w as normalizeScpRemoteHost, z as validateJsonSchemaValue } from "./config-8u0WDlgj.js";
|
|
13
13
|
import { a as clearActiveProgressLine, i as defaultRuntime, o as registerActiveProgressLine, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
|
|
14
14
|
import { i as parseBooleanValue$1, n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
|
|
15
|
-
import { A as getSoonestCooldownExpiry, B as resolveSymiAgentDir, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as dedupeProfileIds, G as normalizeSecretInput, H as withFileLock, I as listProfilesForProvider, J as DEFAULT_MODEL, K as resolveAuthProfileDisplayLabel, L as markAuthProfileGood, M as markAuthProfileFailure, N as markAuthProfileUsed, P as resolveApiKeyForProfile, Q as resolveShellEnvFallbackTimeoutMs, R as ensureAuthProfileStore, S as getApiKeyForModel, T as resolveApiKeyForProvider, X as getShellPathFromLoginShell, Y as DEFAULT_PROVIDER, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, i as findNormalizedProviderValue, j as isProfileInCooldown, k as resolveAuthProfileOrder, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, q as DEFAULT_CONTEXT_TOKENS, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveAuthStorePathForDisplay } from "./model-selection-
|
|
15
|
+
import { A as getSoonestCooldownExpiry, B as resolveSymiAgentDir, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as dedupeProfileIds, G as normalizeSecretInput, H as withFileLock, I as listProfilesForProvider, J as DEFAULT_MODEL, K as resolveAuthProfileDisplayLabel, L as markAuthProfileGood, M as markAuthProfileFailure, N as markAuthProfileUsed, P as resolveApiKeyForProfile, Q as resolveShellEnvFallbackTimeoutMs, R as ensureAuthProfileStore, S as getApiKeyForModel, T as resolveApiKeyForProvider, X as getShellPathFromLoginShell, Y as DEFAULT_PROVIDER, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, i as findNormalizedProviderValue, j as isProfileInCooldown, k as resolveAuthProfileOrder, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, q as DEFAULT_CONTEXT_TOKENS, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveAuthStorePathForDisplay } from "./model-selection-aEd_4vFO.js";
|
|
16
16
|
import { A as logInfo, C as resolveSymiPackageRoot, D as spawnWithFallback, E as runExec, O as logDebug, S as loadWorkspaceBootstrapFiles, T as runCommandWithTimeout, a as resolveAgentModelPrimary, b as ensureAgentWorkspace, c as resolveDefaultAgentId, d as resolveSessionAgentIds, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, j as logWarn, k as logError, l as resolveEffectiveModelFallbacks, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId, x as filterBootstrapFilesForSession } from "./agent-scope-C3gMMKCU.js";
|
|
17
17
|
import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-B3ugY9-f.js";
|
|
18
18
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-Bv8oZiTO.js";
|
|
@@ -27,38 +27,38 @@ import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel
|
|
|
27
27
|
import { t as normalizeChatType } from "./chat-type-CEMQNtWX.js";
|
|
28
28
|
import { n as resolveMarkdownTableMode } from "./markdown-tables-Dfaqilz6.js";
|
|
29
29
|
import { t as convertMarkdownTables } from "./tables-DR0NmBeH.js";
|
|
30
|
-
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-
|
|
30
|
+
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-CARqECtw.js";
|
|
31
31
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-D7Lno-TE.js";
|
|
32
32
|
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-B7YyMnIi.js";
|
|
33
|
-
import { a as createSlackWebClient, c as validateSlackBlocksArray, i as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack } from "./send-
|
|
34
|
-
import { $ as parseTelegramTarget, A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as readChannelAllowFromStore, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as upsertChannelPairingRequest, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, Q as isVoiceCompatibleAudio, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as addChannelAllowFromStoreEntry, X as listPairingChannels, Y as getPairingAdapter, Z as withTelegramApiErrorLogging, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, et as resolveTelegramTargetChatType, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as toLocationContext, o as sendMessageTelegram, p as markdownToTelegramChunks, q as removeChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as formatLocationText, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-
|
|
35
|
-
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as registerUnhandledRejectionHandler, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as buildRandomTempFilePath } from "./runner-
|
|
33
|
+
import { a as createSlackWebClient, c as validateSlackBlocksArray, i as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack } from "./send-oZqyXIiB.js";
|
|
34
|
+
import { $ as parseTelegramTarget, A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as readChannelAllowFromStore, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as upsertChannelPairingRequest, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, Q as isVoiceCompatibleAudio, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as addChannelAllowFromStoreEntry, X as listPairingChannels, Y as getPairingAdapter, Z as withTelegramApiErrorLogging, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, et as resolveTelegramTargetChatType, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as toLocationContext, o as sendMessageTelegram, p as markdownToTelegramChunks, q as removeChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as formatLocationText, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-DnSED91h.js";
|
|
35
|
+
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as registerUnhandledRejectionHandler, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as buildRandomTempFilePath } from "./runner-BL2UhCUB.js";
|
|
36
36
|
import { a as resolveAckReaction, c as resolveHumanDelayConfig, i as resolveResponsePrefixTemplate, n as createReplyPrefixOptions, o as resolveAgentIdentity, s as resolveEffectiveMessagesConfig } from "./reply-prefix-BHuV5t70.js";
|
|
37
37
|
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-CWMflosr.js";
|
|
38
|
-
import { c as getSkillsSnapshotVersion, d as resolvePairingPaths, f as createAsyncLock, i as resolveSkillCommandInvocation, l as generatePairingToken, m as writeJsonAtomic, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as readJsonFile, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as pruneExpiredPending } from "./skill-commands-
|
|
38
|
+
import { c as getSkillsSnapshotVersion, d as resolvePairingPaths, f as createAsyncLock, i as resolveSkillCommandInvocation, l as generatePairingToken, m as writeJsonAtomic, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as readJsonFile, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as pruneExpiredPending } from "./skill-commands-Cwps3qpb.js";
|
|
39
39
|
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-B1GeRYlu.js";
|
|
40
|
-
import { M as isSecureWebSocketUrl, N as rawDataToString, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
40
|
+
import { M as isSecureWebSocketUrl, N as rawDataToString, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, x as ensureChromeExtensionRelayServer } from "./chrome-DJ6LIeRu.js";
|
|
41
41
|
import { A as normalizeHyphenSlug, F as resolveChannelGroupRequireMention, I as resolveChannelGroupToolsPolicy, M as normalizeStringEntriesLower, P as resolveChannelGroupPolicy, a as normalizeReasoningLevel, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, i as normalizeElevatedLevel, j as normalizeStringEntries, k as normalizeAtHashSlug, l as resolveResponseUsageMode, m as normalizeSignalMessagingTarget, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-DCNUIAHY.js";
|
|
42
42
|
import { r as resolveIMessageAccount } from "./accounts-Dtszw3Zn.js";
|
|
43
43
|
import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BToL3HlP.js";
|
|
44
|
-
import { C as getGlobalHookRunner, S as throwIfAborted, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as splitMediaFromOutput, 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 parseReplyDirectives, w as initializeGlobalHookRunner, x as parseInlineDirectives$1, y as MEDIA_TOKEN_RE } from "./deliver-
|
|
45
|
-
import { $ as normalizeToolName, A as isTransientHttpError, At as countToolResults, B as resolveProfile, Bt as resolveChannelResetConfig, C as isContextOverflowError, Ct as deliveryContextKey, D as isRateLimitAssistantError, Dt as normalizeAccountId$3, E as isLikelyContextOverflowError, Et as normalizeSessionDeliveryFields, F as resolveSandboxContext, Ft as normalizeInputProvenance, G as resolveBrowserControlAuth, Gt as resolveFreshSessionTotalTokens, H as resolveExistingPathsWithinRoot, Ht as resolveSessionResetType, I as resolveSandboxRuntimeStatus, It as acquireSessionWriteLock, J as buildPluginToolGroups, Jt as resolveMainSessionKey, K as resolveSandboxConfigForAgent, Kt as canonicalizeMainSessionAlias, L as createBrowserRouteContext, Lt as resolveSessionLockMaxHoldFromTimeout, M as parseImageSizeError, Mt as INPUT_PROVENANCE_KIND_VALUES, N as sanitizeUserFacingText, Nt as applyInputProvenanceToUserMessage, O as isRawApiErrorPayload, Ot as archiveSessionTranscripts, P as ensureSandboxWorkspaceForSession, Pt as hasInterSessionUserProvenance, Q as mergeAlsoAllowPolicy, R as registerBrowserRoutes, Rt as resolveSessionKey, S as isCompactionFailureError, St as deliveryContextFromSession, T as isFailoverErrorMessage, Tt as normalizeDeliveryContext, U as getBridgeAuthForPort, Ut as resolveThreadFlag, V as DEFAULT_UPLOAD_DIR, Vt as resolveSessionResetPolicy, W as ensureBrowserControlAuth, Wt as DEFAULT_RESET_TRIGGERS, X as expandPolicyWithPluginGroups, Xt as resolveGroupSessionKey, Y as collectExplicitAllowlist, Yt as deriveSessionMetaPatch, Z as expandToolGroups, _ as formatRawAssistantErrorForUi, _t as updateLastRoute, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isBillingAssistantError, bt as isCacheEnabled, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as isAntigravityClaude, dt as appendAssistantMessageToSessionTranscript, et as resolveToolProfilePolicy, f as isGoogleModelApi, g as formatBillingErrorMessage, gt as recordSessionMetaFromInbound, h as formatAssistantErrorText, ht as readSessionUpdatedAt, it as buildBootstrapContextFiles, j as parseImageDimensionError, jt as extractToolCallNames, k as isTimeoutErrorMessage, kt as capArrayByJsonBytes, l as extractToolResultId, lt as extractDeliveryInfo, m as classifyFailoverReason, mt as loadSessionStore, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as BILLING_ERROR_USER_MESSAGE, pt as resolveAndPersistSessionFile, q as applyOwnerOnlyToolPolicy, qt as resolveExplicitAgentSessionKey, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as downgradeOpenAIReasoningBlocks, ut as parseSessionThreadInfo, v as getApiErrorPayloadFingerprint, vt as updateSessionStore, w as isFailoverAssistantError, wt as mergeDeliveryContext, x as isCloudCodeAssistFormatError, xt as resolveCacheTtlMs$1, y as isAuthAssistantError, yt as updateSessionStoreEntry, z as resolveBrowserConfig, zt as evaluateSessionFreshness } from "./pi-embedded-helpers-
|
|
44
|
+
import { C as getGlobalHookRunner, S as throwIfAborted, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as splitMediaFromOutput, 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 parseReplyDirectives, w as initializeGlobalHookRunner, x as parseInlineDirectives$1, y as MEDIA_TOKEN_RE } from "./deliver-Bip_mCNI.js";
|
|
45
|
+
import { $ as normalizeToolName, A as isTransientHttpError, At as countToolResults, B as resolveProfile, Bt as resolveChannelResetConfig, C as isContextOverflowError, Ct as deliveryContextKey, D as isRateLimitAssistantError, Dt as normalizeAccountId$3, E as isLikelyContextOverflowError, Et as normalizeSessionDeliveryFields, F as resolveSandboxContext, Ft as normalizeInputProvenance, G as resolveBrowserControlAuth, Gt as resolveFreshSessionTotalTokens, H as resolveExistingPathsWithinRoot, Ht as resolveSessionResetType, I as resolveSandboxRuntimeStatus, It as acquireSessionWriteLock, J as buildPluginToolGroups, Jt as resolveMainSessionKey, K as resolveSandboxConfigForAgent, Kt as canonicalizeMainSessionAlias, L as createBrowserRouteContext, Lt as resolveSessionLockMaxHoldFromTimeout, M as parseImageSizeError, Mt as INPUT_PROVENANCE_KIND_VALUES, N as sanitizeUserFacingText, Nt as applyInputProvenanceToUserMessage, O as isRawApiErrorPayload, Ot as archiveSessionTranscripts, P as ensureSandboxWorkspaceForSession, Pt as hasInterSessionUserProvenance, Q as mergeAlsoAllowPolicy, R as registerBrowserRoutes, Rt as resolveSessionKey, S as isCompactionFailureError, St as deliveryContextFromSession, T as isFailoverErrorMessage, Tt as normalizeDeliveryContext, U as getBridgeAuthForPort, Ut as resolveThreadFlag, V as DEFAULT_UPLOAD_DIR, Vt as resolveSessionResetPolicy, W as ensureBrowserControlAuth, Wt as DEFAULT_RESET_TRIGGERS, X as expandPolicyWithPluginGroups, Xt as resolveGroupSessionKey, Y as collectExplicitAllowlist, Yt as deriveSessionMetaPatch, Z as expandToolGroups, _ as formatRawAssistantErrorForUi, _t as updateLastRoute, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isBillingAssistantError, bt as isCacheEnabled, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as isAntigravityClaude, dt as appendAssistantMessageToSessionTranscript, et as resolveToolProfilePolicy, f as isGoogleModelApi, g as formatBillingErrorMessage, gt as recordSessionMetaFromInbound, h as formatAssistantErrorText, ht as readSessionUpdatedAt, it as buildBootstrapContextFiles, j as parseImageDimensionError, jt as extractToolCallNames, k as isTimeoutErrorMessage, kt as capArrayByJsonBytes, l as extractToolResultId, lt as extractDeliveryInfo, m as classifyFailoverReason, mt as loadSessionStore, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as BILLING_ERROR_USER_MESSAGE, pt as resolveAndPersistSessionFile, q as applyOwnerOnlyToolPolicy, qt as resolveExplicitAgentSessionKey, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as downgradeOpenAIReasoningBlocks, ut as parseSessionThreadInfo, v as getApiErrorPayloadFingerprint, vt as updateSessionStore, w as isFailoverAssistantError, wt as mergeDeliveryContext, x as isCloudCodeAssistFormatError, xt as resolveCacheTtlMs$1, y as isAuthAssistantError, yt as updateSessionStoreEntry, z as resolveBrowserConfig, zt as evaluateSessionFreshness } from "./pi-embedded-helpers-JY-1kHdk.js";
|
|
46
46
|
import { n as resolveConversationLabel } from "./conversation-label-yNSj43Jt.js";
|
|
47
47
|
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-A0xdf3yk.js";
|
|
48
48
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-x1D4Vniz.js";
|
|
49
49
|
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-mFf4i4G9.js";
|
|
50
50
|
import { i as saveMediaBuffer, r as getMediaDir } from "./store-Do3t33-c.js";
|
|
51
51
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-D5EzMeL_.js";
|
|
52
|
-
import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as resolveToolDisplay, x as ensureSymiModelsJson, y as stripReasoningTagsFromText } from "./image-
|
|
52
|
+
import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as resolveToolDisplay, x as ensureSymiModelsJson, y as stripReasoningTagsFromText } from "./image-DX2HTDUY.js";
|
|
53
53
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-LbcEa65a.js";
|
|
54
54
|
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, v as runTasksWithConcurrency } from "./sqlite-Cq_7Cg4E.js";
|
|
55
55
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Wd5tNeQG.js";
|
|
56
|
-
import {
|
|
57
|
-
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-
|
|
58
|
-
import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-
|
|
56
|
+
import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-BItSTruD.js";
|
|
57
|
+
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-un-LmdXo.js";
|
|
58
|
+
import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-CJEdtrU7.js";
|
|
59
59
|
import { t as makeProxyFetch } from "./proxy-MquBDehr.js";
|
|
60
60
|
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-D3JH_D2N.js";
|
|
61
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
61
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-B1pTxZOl.js";
|
|
62
62
|
import { t as getActiveWebListener } from "./active-listener-bEk__wbB.js";
|
|
63
63
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-CBq0jVRw.js";
|
|
64
64
|
import { createRequire } from "node:module";
|
|
@@ -7790,7 +7790,7 @@ async function createModelSelectionState(params) {
|
|
|
7790
7790
|
}
|
|
7791
7791
|
}
|
|
7792
7792
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
7793
|
-
const { ensureAuthProfileStore } = await import("./model-selection-
|
|
7793
|
+
const { ensureAuthProfileStore } = await import("./model-selection-aEd_4vFO.js").then((n) => n.O);
|
|
7794
7794
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
7795
7795
|
const providerKey = normalizeProviderId(provider);
|
|
7796
7796
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -11554,7 +11554,7 @@ async function getMemorySearchManager(params) {
|
|
|
11554
11554
|
const wrapper = new FallbackMemoryManager({
|
|
11555
11555
|
primary,
|
|
11556
11556
|
fallbackFactory: async () => {
|
|
11557
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
11557
|
+
const { MemoryIndexManager } = await import("./manager-BItSTruD.js").then((n) => n.t);
|
|
11558
11558
|
return await MemoryIndexManager.get(params);
|
|
11559
11559
|
}
|
|
11560
11560
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -11567,7 +11567,7 @@ async function getMemorySearchManager(params) {
|
|
|
11567
11567
|
}
|
|
11568
11568
|
}
|
|
11569
11569
|
try {
|
|
11570
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
11570
|
+
const { MemoryIndexManager } = await import("./manager-BItSTruD.js").then((n) => n.t);
|
|
11571
11571
|
return { manager: await MemoryIndexManager.get(params) };
|
|
11572
11572
|
} catch (err) {
|
|
11573
11573
|
return {
|
|
@@ -15483,7 +15483,7 @@ async function routeReply(params) {
|
|
|
15483
15483
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
15484
15484
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
15485
15485
|
try {
|
|
15486
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
15486
|
+
const { deliverOutboundPayloads } = await import("./deliver-Bip_mCNI.js").then((n) => n.n);
|
|
15487
15487
|
return {
|
|
15488
15488
|
ok: true,
|
|
15489
15489
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -17957,7 +17957,7 @@ async function describeStickerImage(params) {
|
|
|
17957
17957
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
17958
17958
|
try {
|
|
17959
17959
|
const buffer = await fs$1.readFile(imagePath);
|
|
17960
|
-
const { describeImageWithModel } = await import("./image-
|
|
17960
|
+
const { describeImageWithModel } = await import("./image-DX2HTDUY.js").then((n) => n.n);
|
|
17961
17961
|
return (await describeImageWithModel({
|
|
17962
17962
|
buffer,
|
|
17963
17963
|
fileName: "sticker.webp",
|
|
@@ -18368,7 +18368,7 @@ function createWhatsAppLoginTool() {
|
|
|
18368
18368
|
force: Type.Optional(Type.Boolean())
|
|
18369
18369
|
}),
|
|
18370
18370
|
execute: async (_toolCallId, args) => {
|
|
18371
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
18371
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DOVV9TXm.js");
|
|
18372
18372
|
if ((args?.action ?? "start") === "wait") {
|
|
18373
18373
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
18374
18374
|
return {
|
|
@@ -19055,6 +19055,207 @@ function registerMemoryCli(program) {
|
|
|
19055
19055
|
}
|
|
19056
19056
|
});
|
|
19057
19057
|
});
|
|
19058
|
+
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) => {
|
|
19059
|
+
setVerbose(Boolean(opts.verbose));
|
|
19060
|
+
await runMemorySetup(opts);
|
|
19061
|
+
});
|
|
19062
|
+
}
|
|
19063
|
+
async function detectEmbeddingProviders(cfg) {
|
|
19064
|
+
const detected = [];
|
|
19065
|
+
const ollamaProbe = await probeOllamaEmbeddingModels(resolveOllamaBaseUrl(cfg));
|
|
19066
|
+
if (ollamaProbe && ollamaProbe.models.length > 0) detected.push({
|
|
19067
|
+
id: "ollama",
|
|
19068
|
+
model: ollamaProbe.models[0],
|
|
19069
|
+
baseUrl: ollamaProbe.baseUrl,
|
|
19070
|
+
reason: `Ollama at ${ollamaProbe.baseUrl} — ${ollamaProbe.models[0]}`
|
|
19071
|
+
});
|
|
19072
|
+
for (const remote of [
|
|
19073
|
+
{
|
|
19074
|
+
id: "openai",
|
|
19075
|
+
envKey: "OPENAI_API_KEY",
|
|
19076
|
+
defaultModel: "text-embedding-3-small"
|
|
19077
|
+
},
|
|
19078
|
+
{
|
|
19079
|
+
id: "gemini",
|
|
19080
|
+
envKey: "GEMINI_API_KEY",
|
|
19081
|
+
defaultModel: "gemini-embedding-001"
|
|
19082
|
+
},
|
|
19083
|
+
{
|
|
19084
|
+
id: "voyage",
|
|
19085
|
+
envKey: "VOYAGE_API_KEY",
|
|
19086
|
+
defaultModel: "voyage-4-large"
|
|
19087
|
+
}
|
|
19088
|
+
]) {
|
|
19089
|
+
const envValue = process.env[remote.envKey]?.trim();
|
|
19090
|
+
let hasKey = Boolean(envValue);
|
|
19091
|
+
if (!hasKey) try {
|
|
19092
|
+
const resolved = await resolveApiKeyForProvider({
|
|
19093
|
+
provider: remote.id,
|
|
19094
|
+
cfg
|
|
19095
|
+
});
|
|
19096
|
+
hasKey = Boolean(resolved?.apiKey);
|
|
19097
|
+
} catch {}
|
|
19098
|
+
if (hasKey) detected.push({
|
|
19099
|
+
id: remote.id,
|
|
19100
|
+
model: remote.defaultModel,
|
|
19101
|
+
reason: `${remote.id} — API key found`
|
|
19102
|
+
});
|
|
19103
|
+
}
|
|
19104
|
+
return detected;
|
|
19105
|
+
}
|
|
19106
|
+
function setNestedValue$1(obj, path, value) {
|
|
19107
|
+
let current = obj;
|
|
19108
|
+
for (let i = 0; i < path.length - 1; i++) {
|
|
19109
|
+
const key = path[i];
|
|
19110
|
+
if (current[key] === void 0 || typeof current[key] !== "object" || current[key] === null) current[key] = {};
|
|
19111
|
+
current = current[key];
|
|
19112
|
+
}
|
|
19113
|
+
current[path[path.length - 1]] = value;
|
|
19114
|
+
}
|
|
19115
|
+
async function runMemorySetup(opts) {
|
|
19116
|
+
const rich = isRich();
|
|
19117
|
+
const heading = (text) => colorize(rich, theme.heading, text);
|
|
19118
|
+
const success = (text) => colorize(rich, theme.success, text);
|
|
19119
|
+
const warn = (text) => colorize(rich, theme.warn, text);
|
|
19120
|
+
const info = (text) => colorize(rich, theme.info, text);
|
|
19121
|
+
const muted = (text) => colorize(rich, theme.muted, text);
|
|
19122
|
+
const cfg = loadConfig();
|
|
19123
|
+
const agentId = resolveAgent(cfg, opts.agent);
|
|
19124
|
+
defaultRuntime.log(heading("Detecting embedding providers..."));
|
|
19125
|
+
defaultRuntime.log("");
|
|
19126
|
+
const detected = await detectEmbeddingProviders(cfg);
|
|
19127
|
+
const ollamaBase = resolveOllamaBaseUrl(cfg);
|
|
19128
|
+
const ollamaFound = detected.some((d) => d.id === "ollama");
|
|
19129
|
+
const openaiFound = detected.some((d) => d.id === "openai");
|
|
19130
|
+
const geminiFound = detected.some((d) => d.id === "gemini");
|
|
19131
|
+
const voyageFound = detected.some((d) => d.id === "voyage");
|
|
19132
|
+
if (ollamaFound) defaultRuntime.log(` ${success("✓")} ${detected.find((d) => d.id === "ollama").reason}`);
|
|
19133
|
+
else defaultRuntime.log(` ${warn("✗")} Ollama — not reachable at ${ollamaBase} or no embedding models`);
|
|
19134
|
+
if (openaiFound) defaultRuntime.log(` ${success("✓")} ${detected.find((d) => d.id === "openai").reason}`);
|
|
19135
|
+
else defaultRuntime.log(` ${warn("✗")} OpenAI — no API key`);
|
|
19136
|
+
if (geminiFound) defaultRuntime.log(` ${success("✓")} ${detected.find((d) => d.id === "gemini").reason}`);
|
|
19137
|
+
else defaultRuntime.log(` ${warn("✗")} Gemini — no API key`);
|
|
19138
|
+
if (voyageFound) defaultRuntime.log(` ${success("✓")} ${detected.find((d) => d.id === "voyage").reason}`);
|
|
19139
|
+
else defaultRuntime.log(` ${warn("✗")} Voyage — no API key`);
|
|
19140
|
+
defaultRuntime.log("");
|
|
19141
|
+
if (detected.length === 0) {
|
|
19142
|
+
defaultRuntime.error("No embedding providers detected.");
|
|
19143
|
+
defaultRuntime.error("");
|
|
19144
|
+
defaultRuntime.error("To fix, do one of:");
|
|
19145
|
+
defaultRuntime.error(" - Install Ollama and pull an embedding model: ollama pull nomic-embed-text");
|
|
19146
|
+
defaultRuntime.error(" - Set OPENAI_API_KEY environment variable");
|
|
19147
|
+
defaultRuntime.error(" - Set GEMINI_API_KEY or VOYAGE_API_KEY environment variable");
|
|
19148
|
+
process.exitCode = 1;
|
|
19149
|
+
return;
|
|
19150
|
+
}
|
|
19151
|
+
const best = detected[0];
|
|
19152
|
+
defaultRuntime.log(`${heading("Configuring:")} ${info(best.id)} (${best.model})`);
|
|
19153
|
+
if (opts.dryRun) {
|
|
19154
|
+
defaultRuntime.log(muted(" (dry run — no changes written)"));
|
|
19155
|
+
const configProvider = best.id === "ollama" ? "openai" : best.id;
|
|
19156
|
+
defaultRuntime.log(` provider = ${info(configProvider)}${best.id === "ollama" ? muted(" (via Ollama)") : ""}`);
|
|
19157
|
+
defaultRuntime.log(` model = ${info(best.model)}`);
|
|
19158
|
+
if (best.baseUrl) {
|
|
19159
|
+
const configUrl = best.id === "ollama" ? `${best.baseUrl}/v1` : best.baseUrl;
|
|
19160
|
+
defaultRuntime.log(` remote.baseUrl = ${info(configUrl)}`);
|
|
19161
|
+
}
|
|
19162
|
+
return;
|
|
19163
|
+
}
|
|
19164
|
+
const snapshot = await readConfigFileSnapshot();
|
|
19165
|
+
const next = structuredClone(snapshot.resolved);
|
|
19166
|
+
const memPath = [
|
|
19167
|
+
"agents",
|
|
19168
|
+
"defaults",
|
|
19169
|
+
"memorySearch"
|
|
19170
|
+
];
|
|
19171
|
+
setNestedValue$1(next, [...memPath, "enabled"], true);
|
|
19172
|
+
setNestedValue$1(next, [...memPath, "sources"], ["memory", "sessions"]);
|
|
19173
|
+
if (best.id === "ollama" && best.baseUrl) {
|
|
19174
|
+
setNestedValue$1(next, [...memPath, "provider"], "openai");
|
|
19175
|
+
setNestedValue$1(next, [...memPath, "model"], best.model);
|
|
19176
|
+
setNestedValue$1(next, [
|
|
19177
|
+
...memPath,
|
|
19178
|
+
"remote",
|
|
19179
|
+
"baseUrl"
|
|
19180
|
+
], `${best.baseUrl}/v1`);
|
|
19181
|
+
setNestedValue$1(next, [
|
|
19182
|
+
...memPath,
|
|
19183
|
+
"remote",
|
|
19184
|
+
"apiKey"
|
|
19185
|
+
], "ollama-local");
|
|
19186
|
+
} else {
|
|
19187
|
+
setNestedValue$1(next, [...memPath, "provider"], best.id);
|
|
19188
|
+
setNestedValue$1(next, [...memPath, "model"], best.model);
|
|
19189
|
+
if (best.baseUrl) setNestedValue$1(next, [
|
|
19190
|
+
...memPath,
|
|
19191
|
+
"remote",
|
|
19192
|
+
"baseUrl"
|
|
19193
|
+
], best.baseUrl);
|
|
19194
|
+
}
|
|
19195
|
+
await writeConfigFile(next);
|
|
19196
|
+
defaultRuntime.log(` ${success("✓")} Updated symi.json`);
|
|
19197
|
+
defaultRuntime.log("");
|
|
19198
|
+
defaultRuntime.log(heading("Indexing memory files..."));
|
|
19199
|
+
const freshCfg = loadConfig();
|
|
19200
|
+
let indexOk = false;
|
|
19201
|
+
await withMemoryManagerForAgent({
|
|
19202
|
+
cfg: freshCfg,
|
|
19203
|
+
agentId,
|
|
19204
|
+
run: async (manager) => {
|
|
19205
|
+
const syncFn = manager.sync ? manager.sync.bind(manager) : void 0;
|
|
19206
|
+
if (!syncFn) {
|
|
19207
|
+
defaultRuntime.log(warn(" Memory backend does not support indexing."));
|
|
19208
|
+
return;
|
|
19209
|
+
}
|
|
19210
|
+
try {
|
|
19211
|
+
await withProgressTotals({
|
|
19212
|
+
label: "Indexing memory…",
|
|
19213
|
+
total: 0
|
|
19214
|
+
}, async (update, progress) => {
|
|
19215
|
+
await syncFn({
|
|
19216
|
+
reason: "cli",
|
|
19217
|
+
force: true,
|
|
19218
|
+
progress: (syncUpdate) => {
|
|
19219
|
+
update({
|
|
19220
|
+
completed: syncUpdate.completed,
|
|
19221
|
+
total: syncUpdate.total,
|
|
19222
|
+
label: syncUpdate.label
|
|
19223
|
+
});
|
|
19224
|
+
if (syncUpdate.label) progress.setLabel(syncUpdate.label);
|
|
19225
|
+
}
|
|
19226
|
+
});
|
|
19227
|
+
});
|
|
19228
|
+
const status = manager.status();
|
|
19229
|
+
defaultRuntime.log(` ${success("✓")} ${status.files ?? 0} files → ${status.chunks ?? 0} chunks` + (status.vector?.dims ? ` (${status.vector.dims}-dim vectors)` : ""));
|
|
19230
|
+
indexOk = true;
|
|
19231
|
+
} catch (err) {
|
|
19232
|
+
defaultRuntime.error(` ${warn("✗")} Index failed: ${formatErrorMessage(err)}`);
|
|
19233
|
+
}
|
|
19234
|
+
}
|
|
19235
|
+
});
|
|
19236
|
+
if (!indexOk) {
|
|
19237
|
+
process.exitCode = 1;
|
|
19238
|
+
return;
|
|
19239
|
+
}
|
|
19240
|
+
defaultRuntime.log("");
|
|
19241
|
+
defaultRuntime.log(heading("Verifying search..."));
|
|
19242
|
+
await withMemoryManagerForAgent({
|
|
19243
|
+
cfg: freshCfg,
|
|
19244
|
+
agentId,
|
|
19245
|
+
run: async (manager) => {
|
|
19246
|
+
try {
|
|
19247
|
+
const results = await manager.search("test memory verification", { maxResults: 3 });
|
|
19248
|
+
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)})` : ""));
|
|
19249
|
+
} catch (err) {
|
|
19250
|
+
defaultRuntime.log(` ${warn("✗")} Search verification failed: ${formatErrorMessage(err)}`);
|
|
19251
|
+
process.exitCode = 1;
|
|
19252
|
+
return;
|
|
19253
|
+
}
|
|
19254
|
+
}
|
|
19255
|
+
});
|
|
19256
|
+
defaultRuntime.log("");
|
|
19257
|
+
defaultRuntime.log(success("Memory system is fully operational."));
|
|
19258
|
+
defaultRuntime.log(muted("Restart the gateway to apply: systemctl --user restart symi-gateway"));
|
|
19058
19259
|
}
|
|
19059
19260
|
|
|
19060
19261
|
//#endregion
|
|
@@ -20235,7 +20436,7 @@ async function preflightDiscordMessage(params) {
|
|
|
20235
20436
|
let preflightTranscript;
|
|
20236
20437
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
20237
20438
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
20238
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
20439
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-D5K2YgFn.js");
|
|
20239
20440
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
20240
20441
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
20241
20442
|
ctx: {
|
|
@@ -25444,8 +25645,8 @@ function buildMemorySection(params) {
|
|
|
25444
25645
|
lines.push("");
|
|
25445
25646
|
return lines;
|
|
25446
25647
|
}
|
|
25447
|
-
function buildUserIdentitySection(ownerLine, isMinimal) {
|
|
25448
|
-
if (!ownerLine || isMinimal) return [];
|
|
25648
|
+
function buildUserIdentitySection(ownerLine, isMinimal, isCoding) {
|
|
25649
|
+
if (!ownerLine || isMinimal || isCoding) return [];
|
|
25449
25650
|
return [
|
|
25450
25651
|
"## Authorized Senders",
|
|
25451
25652
|
ownerLine,
|
|
@@ -25469,8 +25670,8 @@ function buildTimeSection(params) {
|
|
|
25469
25670
|
""
|
|
25470
25671
|
];
|
|
25471
25672
|
}
|
|
25472
|
-
function buildReplyTagsSection(isMinimal) {
|
|
25473
|
-
if (isMinimal) return [];
|
|
25673
|
+
function buildReplyTagsSection(isMinimal, isCoding) {
|
|
25674
|
+
if (isMinimal || isCoding) return [];
|
|
25474
25675
|
return [
|
|
25475
25676
|
"## Reply Tags",
|
|
25476
25677
|
"To request a native reply/quote on supported surfaces, include one tag in your reply:",
|
|
@@ -25483,7 +25684,7 @@ function buildReplyTagsSection(isMinimal) {
|
|
|
25483
25684
|
];
|
|
25484
25685
|
}
|
|
25485
25686
|
function buildMessagingSection(params) {
|
|
25486
|
-
if (params.isMinimal) return [];
|
|
25687
|
+
if (params.isMinimal || params.isCoding) return [];
|
|
25487
25688
|
return [
|
|
25488
25689
|
"## Messaging",
|
|
25489
25690
|
"- Reply in current session → automatically routes to the source channel (Signal, Telegram, etc.)",
|
|
@@ -25506,7 +25707,7 @@ function buildMessagingSection(params) {
|
|
|
25506
25707
|
];
|
|
25507
25708
|
}
|
|
25508
25709
|
function buildVoiceSection(params) {
|
|
25509
|
-
if (params.isMinimal) return [];
|
|
25710
|
+
if (params.isMinimal || params.isCoding) return [];
|
|
25510
25711
|
const hint = params.ttsHint?.trim();
|
|
25511
25712
|
if (!hint) return [];
|
|
25512
25713
|
return [
|
|
@@ -25515,6 +25716,71 @@ function buildVoiceSection(params) {
|
|
|
25515
25716
|
""
|
|
25516
25717
|
];
|
|
25517
25718
|
}
|
|
25719
|
+
function buildVerifyYourWorkSection(params) {
|
|
25720
|
+
if (params.isMinimal) return [];
|
|
25721
|
+
const exec = params.execToolName;
|
|
25722
|
+
const read = params.readToolName;
|
|
25723
|
+
return [
|
|
25724
|
+
"## Verify Your Work",
|
|
25725
|
+
[
|
|
25726
|
+
"Before delivering any code, script, configuration, or technical artifact, you MUST perform a structured verification pass.",
|
|
25727
|
+
"Skipping verification is the single most common cause of incomplete or broken outputs.",
|
|
25728
|
+
"Treat this section as mandatory for every coding task, not optional polish."
|
|
25729
|
+
].join(" "),
|
|
25730
|
+
"",
|
|
25731
|
+
"### 1. Re-read the request",
|
|
25732
|
+
[
|
|
25733
|
+
"Before you finalize your response, re-read the user's original message (and any follow-ups) in full.",
|
|
25734
|
+
"Extract every discrete requirement, constraint, and preference they stated.",
|
|
25735
|
+
"Write them down internally as a checklist.",
|
|
25736
|
+
"This catches drift: it is easy to start solving a related-but-different problem mid-task."
|
|
25737
|
+
].join(" "),
|
|
25738
|
+
"",
|
|
25739
|
+
"### 2. Check each requirement against your output",
|
|
25740
|
+
[
|
|
25741
|
+
"Walk through your internal checklist point by point.",
|
|
25742
|
+
"For each requirement, locate the exact lines in your output that satisfy it.",
|
|
25743
|
+
"If you cannot point to concrete lines that fulfill a requirement, the work is not done — go back and address the gap before responding.",
|
|
25744
|
+
"Pay special attention to edge cases, error handling, and boundary conditions the user mentioned."
|
|
25745
|
+
].join(" "),
|
|
25746
|
+
"",
|
|
25747
|
+
"### 3. Run the code",
|
|
25748
|
+
[
|
|
25749
|
+
`Whenever possible, use ${exec} to actually run, compile, lint, or test your code before presenting it.`,
|
|
25750
|
+
"Do not guess whether code works — execute it and observe the result.",
|
|
25751
|
+
"If the code produces errors, fix them and re-run until it succeeds.",
|
|
25752
|
+
"For scripts: run them with representative inputs.",
|
|
25753
|
+
"For libraries/modules: write and execute a minimal smoke test.",
|
|
25754
|
+
"For config files: validate syntax (e.g., json, yaml, toml parsers).",
|
|
25755
|
+
"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."
|
|
25756
|
+
].join(" "),
|
|
25757
|
+
"",
|
|
25758
|
+
"### 4. Include tests when requested",
|
|
25759
|
+
[
|
|
25760
|
+
"If the user asked for tests, they are a hard requirement — not a nice-to-have.",
|
|
25761
|
+
"Deliver the tests alongside the implementation, not as an afterthought.",
|
|
25762
|
+
"Run the tests and confirm they pass before responding.",
|
|
25763
|
+
"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."
|
|
25764
|
+
].join(" "),
|
|
25765
|
+
"",
|
|
25766
|
+
"### 5. Self-review",
|
|
25767
|
+
[
|
|
25768
|
+
`After everything above, use ${read} to re-read any files you created or modified.`,
|
|
25769
|
+
"Look at them with fresh eyes as if reviewing someone else's code.",
|
|
25770
|
+
"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).",
|
|
25771
|
+
"If you find problems during self-review, fix them, re-run verification, and only then respond."
|
|
25772
|
+
].join(" "),
|
|
25773
|
+
"",
|
|
25774
|
+
"### Verification failures",
|
|
25775
|
+
[
|
|
25776
|
+
"If any step above reveals a gap, do NOT respond with a partial answer and a disclaimer.",
|
|
25777
|
+
"Instead, fix the issue silently and re-verify.",
|
|
25778
|
+
"The user should receive working, complete output — not a draft with known issues.",
|
|
25779
|
+
"Only flag genuinely unresolvable ambiguities (where you need the user's decision to proceed)."
|
|
25780
|
+
].join(" "),
|
|
25781
|
+
""
|
|
25782
|
+
];
|
|
25783
|
+
}
|
|
25518
25784
|
function buildDocsSection(params) {
|
|
25519
25785
|
const docsPath = params.docsPath?.trim();
|
|
25520
25786
|
if (!docsPath || params.isMinimal) return [];
|
|
@@ -25639,6 +25905,7 @@ function buildAgentSystemPrompt(params) {
|
|
|
25639
25905
|
const messageChannelOptions = listDeliverableMessageChannels().join("|");
|
|
25640
25906
|
const promptMode = params.promptMode ?? "full";
|
|
25641
25907
|
const isMinimal = promptMode === "minimal" || promptMode === "none";
|
|
25908
|
+
const isCoding = promptMode === "coding";
|
|
25642
25909
|
const sandboxContainerWorkspace = params.sandboxInfo?.containerWorkspaceDir?.trim();
|
|
25643
25910
|
const sanitizedWorkspaceDir = sanitizeForPromptLiteral(params.workspaceDir);
|
|
25644
25911
|
const sanitizedSandboxContainerWorkspace = sandboxContainerWorkspace ? sanitizeForPromptLiteral(sandboxContainerWorkspace) : "";
|
|
@@ -25715,19 +25982,19 @@ function buildAgentSystemPrompt(params) {
|
|
|
25715
25982
|
"",
|
|
25716
25983
|
...skillsSection,
|
|
25717
25984
|
...memorySection,
|
|
25718
|
-
hasGateway && !isMinimal ? "## Symi Self-Update" : "",
|
|
25719
|
-
hasGateway && !isMinimal ? [
|
|
25985
|
+
hasGateway && !isMinimal && !isCoding ? "## Symi Self-Update" : "",
|
|
25986
|
+
hasGateway && !isMinimal && !isCoding ? [
|
|
25720
25987
|
"Get Updates (self-update) is ONLY allowed when the user explicitly asks for it.",
|
|
25721
25988
|
"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.",
|
|
25722
25989
|
"Actions: config.get, config.schema, config.apply (validate + write full config, then restart), update.run (update deps or git, then restart).",
|
|
25723
25990
|
"After restart, Symi pings the last active session automatically."
|
|
25724
25991
|
].join("\n") : "",
|
|
25725
|
-
hasGateway && !isMinimal ? "" : "",
|
|
25992
|
+
hasGateway && !isMinimal && !isCoding ? "" : "",
|
|
25726
25993
|
"",
|
|
25727
|
-
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "## Model Aliases" : "",
|
|
25728
|
-
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "Prefer aliases when specifying model overrides; full provider/model is also accepted." : "",
|
|
25729
|
-
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? params.modelAliasLines.join("\n") : "",
|
|
25730
|
-
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal ? "" : "",
|
|
25994
|
+
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "## Model Aliases" : "",
|
|
25995
|
+
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "Prefer aliases when specifying model overrides; full provider/model is also accepted." : "",
|
|
25996
|
+
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? params.modelAliasLines.join("\n") : "",
|
|
25997
|
+
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "" : "",
|
|
25731
25998
|
userTimezone ? "If you need the current date, time, or day of week, run session_status (📊 session_status)." : "",
|
|
25732
25999
|
"## Workspace",
|
|
25733
26000
|
`Your working directory is: ${displayWorkspaceDir}`,
|
|
@@ -25735,6 +26002,11 @@ function buildAgentSystemPrompt(params) {
|
|
|
25735
26002
|
...workspaceNotes,
|
|
25736
26003
|
"",
|
|
25737
26004
|
...docsSection,
|
|
26005
|
+
...buildVerifyYourWorkSection({
|
|
26006
|
+
isMinimal,
|
|
26007
|
+
execToolName,
|
|
26008
|
+
readToolName
|
|
26009
|
+
}),
|
|
25738
26010
|
params.sandboxInfo?.enabled ? "## Sandbox" : "",
|
|
25739
26011
|
params.sandboxInfo?.enabled ? [
|
|
25740
26012
|
"You are running in a sandboxed runtime (tools execute in Docker).",
|
|
@@ -25752,14 +26024,15 @@ function buildAgentSystemPrompt(params) {
|
|
|
25752
26024
|
params.sandboxInfo.elevated?.allowed ? `Current elevated level: ${params.sandboxInfo.elevated.defaultLevel} (ask runs exec on host with approvals; full auto-approves).` : ""
|
|
25753
26025
|
].filter(Boolean).join("\n") : "",
|
|
25754
26026
|
params.sandboxInfo?.enabled ? "" : "",
|
|
25755
|
-
...buildUserIdentitySection(ownerLine, isMinimal),
|
|
26027
|
+
...buildUserIdentitySection(ownerLine, isMinimal, isCoding),
|
|
25756
26028
|
...buildTimeSection({ userTimezone }),
|
|
25757
26029
|
"## Workspace Files (injected)",
|
|
25758
26030
|
"These user-editable files are loaded by Symi and included below in Project Context.",
|
|
25759
26031
|
"",
|
|
25760
|
-
...buildReplyTagsSection(isMinimal),
|
|
26032
|
+
...buildReplyTagsSection(isMinimal, isCoding),
|
|
25761
26033
|
...buildMessagingSection({
|
|
25762
26034
|
isMinimal,
|
|
26035
|
+
isCoding,
|
|
25763
26036
|
availableTools,
|
|
25764
26037
|
messageChannelOptions,
|
|
25765
26038
|
inlineButtonsEnabled,
|
|
@@ -25768,6 +26041,7 @@ function buildAgentSystemPrompt(params) {
|
|
|
25768
26041
|
}),
|
|
25769
26042
|
...buildVoiceSection({
|
|
25770
26043
|
isMinimal,
|
|
26044
|
+
isCoding,
|
|
25771
26045
|
ttsHint: params.ttsHint
|
|
25772
26046
|
})
|
|
25773
26047
|
];
|
|
@@ -25807,8 +26081,8 @@ function buildAgentSystemPrompt(params) {
|
|
|
25807
26081
|
lines.push("");
|
|
25808
26082
|
for (const file of validContextFiles) lines.push(`## ${file.path}`, "", file.content, "");
|
|
25809
26083
|
}
|
|
25810
|
-
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}`, "");
|
|
25811
|
-
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.", "");
|
|
26084
|
+
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}`, "");
|
|
26085
|
+
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.", "");
|
|
25812
26086
|
lines.push("## Runtime", buildRuntimeLine(runtimeInfo, runtimeChannel, runtimeCapabilities, params.defaultThinkLevel), `Reasoning: ${reasoningLevel} (hidden unless on/stream). Toggle /reasoning; /status shows Reasoning when enabled.`);
|
|
25813
26087
|
return lines.filter(Boolean).join("\n");
|
|
25814
26088
|
}
|
|
@@ -26835,27 +27109,27 @@ async function runWithImageModelFallback(params) {
|
|
|
26835
27109
|
function createDefaultDeps() {
|
|
26836
27110
|
return {
|
|
26837
27111
|
sendMessageWhatsApp: async (...args) => {
|
|
26838
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
27112
|
+
const { sendMessageWhatsApp } = await import("./web-mZ4uDhBl.js");
|
|
26839
27113
|
return await sendMessageWhatsApp(...args);
|
|
26840
27114
|
},
|
|
26841
27115
|
sendMessageTelegram: async (...args) => {
|
|
26842
|
-
const { sendMessageTelegram } = await import("./send-
|
|
27116
|
+
const { sendMessageTelegram } = await import("./send-DnSED91h.js").then((n) => n.l);
|
|
26843
27117
|
return await sendMessageTelegram(...args);
|
|
26844
27118
|
},
|
|
26845
27119
|
sendMessageDiscord: async (...args) => {
|
|
26846
|
-
const { sendMessageDiscord } = await import("./send-
|
|
27120
|
+
const { sendMessageDiscord } = await import("./send-e3xSJ8To.js").then((n) => n.t);
|
|
26847
27121
|
return await sendMessageDiscord(...args);
|
|
26848
27122
|
},
|
|
26849
27123
|
sendMessageSlack: async (...args) => {
|
|
26850
|
-
const { sendMessageSlack } = await import("./send-
|
|
27124
|
+
const { sendMessageSlack } = await import("./send-oZqyXIiB.js").then((n) => n.n);
|
|
26851
27125
|
return await sendMessageSlack(...args);
|
|
26852
27126
|
},
|
|
26853
27127
|
sendMessageSignal: async (...args) => {
|
|
26854
|
-
const { sendMessageSignal } = await import("./send-
|
|
27128
|
+
const { sendMessageSignal } = await import("./send-CJEdtrU7.js").then((n) => n.i);
|
|
26855
27129
|
return await sendMessageSignal(...args);
|
|
26856
27130
|
},
|
|
26857
27131
|
sendMessageIMessage: async (...args) => {
|
|
26858
|
-
const { sendMessageIMessage } = await import("./send-
|
|
27132
|
+
const { sendMessageIMessage } = await import("./send-CARqECtw.js").then((n) => n.n);
|
|
26859
27133
|
return await sendMessageIMessage(...args);
|
|
26860
27134
|
}
|
|
26861
27135
|
};
|
|
@@ -37062,7 +37336,7 @@ function readSlackExternalArgMenuToken(raw) {
|
|
|
37062
37336
|
}
|
|
37063
37337
|
let commandsRegistry;
|
|
37064
37338
|
async function getCommandsRegistry() {
|
|
37065
|
-
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-
|
|
37339
|
+
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-un-LmdXo.js").then((n) => n.n);
|
|
37066
37340
|
return commandsRegistry;
|
|
37067
37341
|
}
|
|
37068
37342
|
function encodeSlackCommandArgValue(parts) {
|
|
@@ -37465,7 +37739,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
37465
37739
|
});
|
|
37466
37740
|
const deliverSlashPayloads = async (replies) => {
|
|
37467
37741
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
37468
|
-
import("./replies-
|
|
37742
|
+
import("./replies-B1pTxZOl.js").then((n) => n.r),
|
|
37469
37743
|
import("./chunk-jvk9axTQ.js").then((n) => n.s),
|
|
37470
37744
|
import("./markdown-tables-Dfaqilz6.js").then((n) => n.t)
|
|
37471
37745
|
]);
|
|
@@ -37520,7 +37794,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
37520
37794
|
let nativeCommands = [];
|
|
37521
37795
|
if (nativeEnabled) {
|
|
37522
37796
|
reg = await getCommandsRegistry();
|
|
37523
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
37797
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-Cwps3qpb.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
37524
37798
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
37525
37799
|
skillCommands,
|
|
37526
37800
|
provider: "slack"
|
|
@@ -42301,7 +42575,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
42301
42575
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
42302
42576
|
let preflightTranscript;
|
|
42303
42577
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
42304
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
42578
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-D5K2YgFn.js");
|
|
42305
42579
|
preflightTranscript = await transcribeFirstAudio({
|
|
42306
42580
|
ctx: {
|
|
42307
42581
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -44446,23 +44720,23 @@ let webLoginQrPromise = null;
|
|
|
44446
44720
|
let webChannelPromise = null;
|
|
44447
44721
|
let whatsappActionsPromise = null;
|
|
44448
44722
|
function loadWebOutbound() {
|
|
44449
|
-
webOutboundPromise ??= import("./outbound-
|
|
44723
|
+
webOutboundPromise ??= import("./outbound-uamhXJrA.js").then((n) => n.t);
|
|
44450
44724
|
return webOutboundPromise;
|
|
44451
44725
|
}
|
|
44452
44726
|
function loadWebLogin() {
|
|
44453
|
-
webLoginPromise ??= import("./login-
|
|
44727
|
+
webLoginPromise ??= import("./login-CKLot2mH.js").then((n) => n.n);
|
|
44454
44728
|
return webLoginPromise;
|
|
44455
44729
|
}
|
|
44456
44730
|
function loadWebLoginQr() {
|
|
44457
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
44731
|
+
webLoginQrPromise ??= import("./login-qr-DOVV9TXm.js");
|
|
44458
44732
|
return webLoginQrPromise;
|
|
44459
44733
|
}
|
|
44460
44734
|
function loadWebChannel() {
|
|
44461
|
-
webChannelPromise ??= import("./web-
|
|
44735
|
+
webChannelPromise ??= import("./web-mZ4uDhBl.js");
|
|
44462
44736
|
return webChannelPromise;
|
|
44463
44737
|
}
|
|
44464
44738
|
function loadWhatsAppActions() {
|
|
44465
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
44739
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-1-Mp-KwB.js");
|
|
44466
44740
|
return whatsappActionsPromise;
|
|
44467
44741
|
}
|
|
44468
44742
|
function createPluginRuntime() {
|
|
@@ -63705,7 +63979,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
63705
63979
|
config: params.config
|
|
63706
63980
|
});
|
|
63707
63981
|
const isDefaultAgent = sessionAgentId === defaultAgentId;
|
|
63708
|
-
const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : "full";
|
|
63982
|
+
const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
|
|
63709
63983
|
const docsPath = await resolveSymiDocsPath({
|
|
63710
63984
|
workspaceDir: effectiveWorkspace,
|
|
63711
63985
|
argv1: process.argv[1],
|
|
@@ -63945,6 +64219,9 @@ function createStreamFnWithExtraParams(baseStreamFn, extraParams, provider) {
|
|
|
63945
64219
|
const streamParams = {};
|
|
63946
64220
|
if (typeof extraParams.temperature === "number") streamParams.temperature = extraParams.temperature;
|
|
63947
64221
|
if (typeof extraParams.maxTokens === "number") streamParams.maxTokens = extraParams.maxTokens;
|
|
64222
|
+
if (typeof extraParams.top_p === "number") streamParams.top_p = extraParams.top_p;
|
|
64223
|
+
if (typeof extraParams.top_k === "number") streamParams.top_k = extraParams.top_k;
|
|
64224
|
+
if (typeof extraParams.repeat_penalty === "number") streamParams.repeat_penalty = extraParams.repeat_penalty;
|
|
63948
64225
|
const cacheRetention = resolveCacheRetention(extraParams, provider);
|
|
63949
64226
|
if (cacheRetention) streamParams.cacheRetention = cacheRetention;
|
|
63950
64227
|
if (Object.keys(streamParams).length === 0) return;
|
|
@@ -67225,7 +67502,7 @@ async function runEmbeddedAttempt(params) {
|
|
|
67225
67502
|
}
|
|
67226
67503
|
});
|
|
67227
67504
|
const isDefaultAgent = sessionAgentId === defaultAgentId;
|
|
67228
|
-
const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : "full";
|
|
67505
|
+
const promptMode = isSubagentSessionKey(params.sessionKey) || isCronSessionKey(params.sessionKey) ? "minimal" : params.config?.agents?.defaults?.promptMode === "coding" ? "coding" : "full";
|
|
67229
67506
|
const docsPath = await resolveSymiDocsPath({
|
|
67230
67507
|
workspaceDir: effectiveWorkspace,
|
|
67231
67508
|
argv1: process.argv[1],
|
|
@@ -68240,6 +68517,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
68240
68517
|
let lastRunPromptUsage;
|
|
68241
68518
|
let autoCompactionCount = 0;
|
|
68242
68519
|
let runLoopIterations = 0;
|
|
68520
|
+
let verificationPassCompleted = false;
|
|
68243
68521
|
try {
|
|
68244
68522
|
while (true) {
|
|
68245
68523
|
if (runLoopIterations >= MAX_RUN_LOOP_ITERATIONS) {
|
|
@@ -68609,6 +68887,116 @@ async function runEmbeddedPiAgent(params) {
|
|
|
68609
68887
|
suppressToolErrorWarnings: params.suppressToolErrorWarnings,
|
|
68610
68888
|
inlineToolResultsAllowed: false
|
|
68611
68889
|
});
|
|
68890
|
+
if (!verificationPassCompleted && !aborted && !timedOut && !promptError && payloads.length > 0 && !isCronSessionKey(params.sessionKey) && !isSubagentSessionKey(params.sessionKey)) {
|
|
68891
|
+
const CODE_TOOL_NAMES = new Set([
|
|
68892
|
+
"exec",
|
|
68893
|
+
"bash",
|
|
68894
|
+
"write",
|
|
68895
|
+
"edit",
|
|
68896
|
+
"file_write",
|
|
68897
|
+
"file_edit",
|
|
68898
|
+
"write_file",
|
|
68899
|
+
"edit_file",
|
|
68900
|
+
"create_file",
|
|
68901
|
+
"patch"
|
|
68902
|
+
]);
|
|
68903
|
+
const hasCodeToolUsage = attempt.toolMetas.some((tm) => CODE_TOOL_NAMES.has(tm.toolName.toLowerCase()));
|
|
68904
|
+
const hasCodeBlocks = attempt.assistantTexts.some((text) => /```[\s\S]*?```/.test(text));
|
|
68905
|
+
if (hasCodeToolUsage || hasCodeBlocks) {
|
|
68906
|
+
verificationPassCompleted = true;
|
|
68907
|
+
log$2.debug(`[verification] starting verification pass: runId=${params.runId} sessionId=${params.sessionId} trigger=${hasCodeToolUsage ? "tool_usage" : "code_blocks"}`);
|
|
68908
|
+
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.";
|
|
68909
|
+
try {
|
|
68910
|
+
const verifyAttempt = await runEmbeddedAttempt({
|
|
68911
|
+
sessionId: params.sessionId,
|
|
68912
|
+
sessionKey: params.sessionKey,
|
|
68913
|
+
messageChannel: params.messageChannel,
|
|
68914
|
+
messageProvider: params.messageProvider,
|
|
68915
|
+
agentAccountId: params.agentAccountId,
|
|
68916
|
+
messageTo: params.messageTo,
|
|
68917
|
+
messageThreadId: params.messageThreadId,
|
|
68918
|
+
groupId: params.groupId,
|
|
68919
|
+
groupChannel: params.groupChannel,
|
|
68920
|
+
groupSpace: params.groupSpace,
|
|
68921
|
+
spawnedBy: params.spawnedBy,
|
|
68922
|
+
senderIsOwner: params.senderIsOwner,
|
|
68923
|
+
currentChannelId: params.currentChannelId,
|
|
68924
|
+
currentThreadTs: params.currentThreadTs,
|
|
68925
|
+
replyToMode: params.replyToMode,
|
|
68926
|
+
hasRepliedRef: params.hasRepliedRef,
|
|
68927
|
+
sessionFile: params.sessionFile,
|
|
68928
|
+
workspaceDir: resolvedWorkspace,
|
|
68929
|
+
agentDir,
|
|
68930
|
+
config: params.config,
|
|
68931
|
+
skillsSnapshot: params.skillsSnapshot,
|
|
68932
|
+
prompt: verificationPrompt,
|
|
68933
|
+
images: void 0,
|
|
68934
|
+
disableTools: params.disableTools,
|
|
68935
|
+
provider,
|
|
68936
|
+
modelId,
|
|
68937
|
+
model,
|
|
68938
|
+
authStorage,
|
|
68939
|
+
modelRegistry,
|
|
68940
|
+
agentId: workspaceResolution.agentId,
|
|
68941
|
+
thinkLevel,
|
|
68942
|
+
verboseLevel: params.verboseLevel,
|
|
68943
|
+
reasoningLevel: params.reasoningLevel,
|
|
68944
|
+
toolResultFormat: resolvedToolResultFormat,
|
|
68945
|
+
execOverrides: params.execOverrides,
|
|
68946
|
+
bashElevated: params.bashElevated,
|
|
68947
|
+
timeoutMs: params.timeoutMs,
|
|
68948
|
+
runId: params.runId,
|
|
68949
|
+
abortSignal: params.abortSignal,
|
|
68950
|
+
shouldEmitToolResult: params.shouldEmitToolResult,
|
|
68951
|
+
shouldEmitToolOutput: params.shouldEmitToolOutput,
|
|
68952
|
+
onPartialReply: params.onPartialReply,
|
|
68953
|
+
onAssistantMessageStart: params.onAssistantMessageStart,
|
|
68954
|
+
onBlockReply: params.onBlockReply,
|
|
68955
|
+
onBlockReplyFlush: params.onBlockReplyFlush,
|
|
68956
|
+
blockReplyBreak: params.blockReplyBreak,
|
|
68957
|
+
blockReplyChunking: params.blockReplyChunking,
|
|
68958
|
+
onReasoningStream: params.onReasoningStream,
|
|
68959
|
+
onReasoningEnd: params.onReasoningEnd,
|
|
68960
|
+
onToolResult: params.onToolResult,
|
|
68961
|
+
onAgentEvent: params.onAgentEvent,
|
|
68962
|
+
extraSystemPrompt: params.extraSystemPrompt,
|
|
68963
|
+
inputProvenance: params.inputProvenance,
|
|
68964
|
+
streamParams: params.streamParams,
|
|
68965
|
+
ownerNumbers: params.ownerNumbers,
|
|
68966
|
+
enforceFinalTag: params.enforceFinalTag
|
|
68967
|
+
});
|
|
68968
|
+
const verifyUsage = normalizeUsage(verifyAttempt.lastAssistant?.usage);
|
|
68969
|
+
mergeUsageIntoAccumulator(usageAccumulator, verifyAttempt.attemptUsage ?? verifyUsage);
|
|
68970
|
+
if (verifyAttempt.compactionCount) autoCompactionCount += verifyAttempt.compactionCount;
|
|
68971
|
+
const verifyHasToolUsage = verifyAttempt.toolMetas.length > 0;
|
|
68972
|
+
const verifyHasContent = verifyAttempt.assistantTexts.some((t) => t.trim().length > 0);
|
|
68973
|
+
if (verifyHasToolUsage || verifyHasContent) {
|
|
68974
|
+
const verifyPayloads = buildEmbeddedRunPayloads({
|
|
68975
|
+
assistantTexts: [...attempt.assistantTexts, ...verifyAttempt.assistantTexts],
|
|
68976
|
+
toolMetas: [...attempt.toolMetas, ...verifyAttempt.toolMetas],
|
|
68977
|
+
lastAssistant: verifyAttempt.lastAssistant ?? attempt.lastAssistant,
|
|
68978
|
+
lastToolError: verifyAttempt.lastToolError ?? attempt.lastToolError,
|
|
68979
|
+
config: params.config,
|
|
68980
|
+
sessionKey: params.sessionKey ?? params.sessionId,
|
|
68981
|
+
provider: activeErrorContext.provider,
|
|
68982
|
+
model: activeErrorContext.model,
|
|
68983
|
+
verboseLevel: params.verboseLevel,
|
|
68984
|
+
reasoningLevel: params.reasoningLevel,
|
|
68985
|
+
toolResultFormat: resolvedToolResultFormat,
|
|
68986
|
+
suppressToolErrorWarnings: params.suppressToolErrorWarnings,
|
|
68987
|
+
inlineToolResultsAllowed: false
|
|
68988
|
+
});
|
|
68989
|
+
if (verifyPayloads.length > 0) {
|
|
68990
|
+
payloads.length = 0;
|
|
68991
|
+
payloads.push(...verifyPayloads);
|
|
68992
|
+
}
|
|
68993
|
+
log$2.debug(`[verification] verification produced corrections: runId=${params.runId} tools=${verifyAttempt.toolMetas.length} texts=${verifyAttempt.assistantTexts.length}`);
|
|
68994
|
+
} else log$2.debug(`[verification] verification confirmed original response: runId=${params.runId}`);
|
|
68995
|
+
} catch (verifyErr) {
|
|
68996
|
+
log$2.warn(`[verification] verification pass failed, keeping original response: runId=${params.runId} error=${String(verifyErr)}`);
|
|
68997
|
+
}
|
|
68998
|
+
}
|
|
68999
|
+
}
|
|
68612
69000
|
if (timedOut && !timedOutDuringCompaction && payloads.length === 0) return {
|
|
68613
69001
|
payloads: [{
|
|
68614
69002
|
text: "Request timed out before a response was generated. Please try again, or increase `agents.defaults.timeoutSeconds` in your config.",
|
|
@@ -76523,7 +76911,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
76523
76911
|
return;
|
|
76524
76912
|
}
|
|
76525
76913
|
try {
|
|
76526
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
76914
|
+
const { deliverOutboundPayloads } = await import("./deliver-Bip_mCNI.js").then((n) => n.n);
|
|
76527
76915
|
await deliverOutboundPayloads({
|
|
76528
76916
|
cfg: params.cfg,
|
|
76529
76917
|
channel,
|