@symerian/symi 2.9.1 → 2.9.3
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-BNM6b6XY.js → acp-cli-Bc6ZQZ4f.js} +2 -2
- package/dist/{acp-cli-DXsJS3-G.js → acp-cli-Dy9QuDBN.js} +2 -2
- package/dist/{agents-FNeM-byc.js → agents-D6V_7iZL.js} +7 -7
- package/dist/{agents.config-CjML1ogJ.js → agents.config-B-NRTvyi.js} +1 -1
- package/dist/{agents.config-DUYDFbfP.js → agents.config-BeX0kxT3.js} +1 -1
- package/dist/{audio-preflight-CwbuWmdG.js → audio-preflight-8UNY1akA.js} +11 -11
- package/dist/{audio-preflight-SaT5IcVn.js → audio-preflight-By0dnw-T.js} +11 -11
- package/dist/{audio-preflight-DlO0Hw-w.js → audio-preflight-CbyJ_yDs.js} +5 -5
- package/dist/{audio-preflight-CMutcMs5.js → audio-preflight-Dtsvq6Hj.js} +6 -6
- package/dist/{audit-qWCLpveM.js → audit-DGwhL71Q.js} +5 -5
- package/dist/{audit-Ojap-R-Y.js → audit-OPWWS900.js} +5 -5
- package/dist/{auth-choice-BjTiWmH-.js → auth-choice-4lzxjIcf.js} +4 -4
- package/dist/{auth-choice-RQ5keocP.js → auth-choice-BJQjxe_Y.js} +4 -4
- package/dist/{banner-dYiFXA70.js → banner-Q3fjWWy3.js} +1 -1
- package/dist/{browser-cli-BQ9jHIXP.js → browser-cli-CGLTZ9KQ.js} +3 -3
- package/dist/{browser-cli-BW0C5Y8-.js → browser-cli-qpJlsofO.js} +3 -3
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +14 -14
- package/dist/bundled/session-memory/handler.js +14 -14
- package/dist/{call-X_vwo309.js → call-BCTAmPye.js} +1 -1
- package/dist/{call-BZbBLMOq.js → call-BIETyST6.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-DqXYA7rM.js → channel-options-CQ0Q0xZr.js} +1 -1
- package/dist/{channel-options-CjZlTumK.js → channel-options-D6U_Dpa2.js} +1 -1
- package/dist/{channel-web-BITaNjFT.js → channel-web-D6aolbVC.js} +7 -7
- package/dist/{channels-cli-C8CesA1x.js → channels-cli-By4y_t51.js} +31 -31
- package/dist/{channels-cli-7cDtM5kW.js → channels-cli-CxuKeNkr.js} +30 -30
- package/dist/{chrome-t-stBgN6.js → chrome-B-hW5hrK.js} +1 -1
- package/dist/{chrome-B1zznUiv.js → chrome-CJHOBnUB.js} +1 -1
- package/dist/{chrome-faqXQ9f1.js → chrome-CO5ZhkcZ.js} +1 -1
- package/dist/{chrome-BFDOGeu3.js → chrome-CtTba9sH.js} +1 -1
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-ZC_92Xyn.js → cli-41r_BAjv.js} +26 -26
- package/dist/{cli-BJ9_X9eE.js → cli-B1gtEojq.js} +27 -27
- package/dist/{command-registry-B1ltIC7z.js → command-registry-FJWuYmEn.js} +11 -11
- package/dist/{completion-cli-KSs4eFcq.js → completion-cli-C20c_vzO.js} +1 -1
- package/dist/{completion-cli-_P0e-rhC.js → completion-cli-DWVW4P54.js} +2 -2
- package/dist/{config-BYCtuYPj.js → config-CitI_jxW.js} +6 -0
- package/dist/{config-CbBZUq-Q.js → config-D7Zr88dI.js} +6 -0
- package/dist/{config-BXMAsmut.js → config-Do4JxgLI.js} +6 -0
- package/dist/{config-DE6JXMtt.js → config-Gfhqs66L.js} +6 -0
- package/dist/{config-cli-DIrPShKH.js → config-cli-CJQ-12f7.js} +2 -2
- package/dist/{config-cli-DjCKp4Pe.js → config-cli-CLXuCFJc.js} +2 -2
- package/dist/{config-guard-BrZXdLQw.js → config-guard-BLcbR_sH.js} +2 -2
- package/dist/{config-guard-DYmSI51f.js → config-guard-CgPPAm7S.js} +3 -3
- package/dist/{config-validation-CNRgc5vc.js → config-validation-B6GnatLw.js} +1 -1
- package/dist/{config-validation-fdYfdAc3.js → config-validation-UMq2H_tR.js} +1 -1
- package/dist/{configure-Ds8SzTEw.js → configure-DrIhqYYW.js} +10 -10
- package/dist/{configure-CsZWO6Nr.js → configure-I99ztt2Y.js} +10 -10
- package/dist/{control-service-DQX3HXS4.js → control-service-BkyH7qkF.js} +4 -4
- package/dist/{control-service-B5HVCnUI.js → control-service-DnNPjFvU.js} +4 -4
- package/dist/{cron-cli-CfSmL43G.js → cron-cli-CcgewYtp.js} +3 -3
- package/dist/{cron-cli-D2L3-4aw.js → cron-cli-DEcQk1bb.js} +3 -3
- package/dist/{daemon-cli-D9_xrFGD.js → daemon-cli-BNZu5unw.js} +6 -6
- package/dist/{daemon-cli-BHwfgmrQ.js → daemon-cli-BiBjGGfw.js} +6 -6
- package/dist/daemon-cli.js +6 -0
- package/dist/{daemon-runtime-BiZG4Kqi.js → daemon-runtime-C-Mwepv_.js} +1 -1
- package/dist/{daemon-runtime-DOqm0LLm.js → daemon-runtime-C86WnKU5.js} +1 -1
- package/dist/{deliver-nBdNxMIr.js → deliver-D5655IkX.js} +2 -2
- package/dist/{deliver-CeNdvQJ3.js → deliver-DaRQn5Ai.js} +3 -3
- package/dist/{deliver-Cqk3zmyW.js → deliver-DrgHcdVo.js} +3 -3
- package/dist/{deliver--ff__Iq0.js → deliver-XYF4JahT.js} +2 -2
- package/dist/{devices-cli-BzyrjuAk.js → devices-cli-Wb4H-vyx.js} +2 -2
- package/dist/{devices-cli-CEvTb9Vr.js → devices-cli-hX2lrsCy.js} +2 -2
- package/dist/{directory-cli-KZHlp_jk.js → directory-cli-CLIYvXkV.js} +1 -1
- package/dist/{directory-cli-Ds7uESrp.js → directory-cli-C_vm-dsr.js} +1 -1
- package/dist/{dns-cli-e8z7wTzi.js → dns-cli-BJuUZ4pr.js} +1 -1
- package/dist/{dns-cli-SNU_PJfw.js → dns-cli-CTCAHPcB.js} +1 -1
- package/dist/{doctor-completion-D4bMStWc.js → doctor-completion-B4pjrehH.js} +1 -1
- package/dist/{doctor-completion-CfGWMYVG.js → doctor-completion-C9A7E6Wb.js} +1 -1
- package/dist/{doctor-config-flow-CJ4__c8U.js → doctor-config-flow-BFHsvL2k.js} +2 -2
- package/dist/{doctor-config-flow-DHXFFSRu.js → doctor-config-flow-l2aPNzHP.js} +2 -2
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-z9Iy8aWD.js → exec-approvals-cli-BXDSu2Ze.js} +4 -4
- package/dist/{exec-approvals-cli-_AbKrXIH.js → exec-approvals-cli-uAM6-swA.js} +4 -4
- package/dist/extensionAPI.js +16 -16
- package/dist/{gateway-cli-B4ElmhPF.js → gateway-cli-BByLEck3.js} +42 -42
- package/dist/{gateway-cli-CfO9aUt0.js → gateway-cli-cZpbavO4.js} +43 -43
- package/dist/{gateway-rpc-D1S1i5HM.js → gateway-rpc-DMEPdgmc.js} +1 -1
- package/dist/{gateway-rpc-BlWORxUe.js → gateway-rpc-Wa_4MrZb.js} +1 -1
- package/dist/{glass-ui-ws-D1UKJUFI.js → glass-ui-ws-09XXkYnX.js} +35 -35
- package/dist/{glass-ui-ws-Bhu3COgn.js → glass-ui-ws-DUHaC6lE.js} +34 -34
- package/dist/{health-CLRDrjsk.js → health-Bvo3NXZK.js} +5 -5
- package/dist/{health-CCslN1xh.js → health-CYHbTw04.js} +5 -5
- package/dist/{hooks-cli-BrVLhsJ6.js → hooks-cli-BwFW4lKC.js} +27 -27
- package/dist/{hooks-cli-DvLYXNNe.js → hooks-cli-CiFs-0g0.js} +28 -28
- package/dist/{image-D5bsPk2_.js → image-BjyeKf1c.js} +2 -2
- package/dist/{image-CEdTQp1F.js → image-BqpivNGG.js} +2 -2
- package/dist/{image-B6aY1oY3.js → image-GaF72sln.js} +2 -2
- package/dist/{image-Cp6qRPZ2.js → image-dYtWZNKT.js} +2 -2
- package/dist/index.js +35 -35
- package/dist/{lifecycle-core-CcPnnp9c.js → lifecycle-core-BMVHLJi_.js} +2 -2
- package/dist/{lifecycle-core-BUGPz1GT.js → lifecycle-core-HOQrbQ-_.js} +2 -2
- package/dist/llm-slug-generator.js +14 -14
- package/dist/{login-DwBazcKM.js → login-Cd4DTmg6.js} +2 -2
- package/dist/{login-B7OJui4y.js → login-Cv_LYGzG.js} +2 -2
- package/dist/{login-DKeZ-sOf.js → login-D4OYfM0U.js} +2 -2
- package/dist/{login-Cu0fTI3Z.js → login-DqhTprwd.js} +2 -2
- package/dist/{login-qr-BBrzemk7.js → login-qr-CZXIrzvh.js} +2 -2
- package/dist/{login-qr-DyU6qD2X.js → login-qr-DiyxAHpv.js} +2 -2
- package/dist/{login-qr-CtELJan3.js → login-qr-Dq_hs3eJ.js} +2 -2
- package/dist/{login-qr-Ft17VIG6.js → login-qr-Xgw7JPYo.js} +2 -2
- package/dist/{logs-cli-CvgvoxvI.js → logs-cli-DZTxEhiM.js} +3 -3
- package/dist/{logs-cli-Dg6OSEA6.js → logs-cli-Dh-aAqF3.js} +3 -3
- package/dist/{manager-CztTHQhN.js → manager-Bj8GFlcZ.js} +1 -1
- package/dist/{manager-8N1YbbDk.js → manager-BsfrsBPw.js} +1 -1
- package/dist/{manager-OSWCBsL_.js → manager-CB20PmUH.js} +1 -1
- package/dist/{manager-HASZR70T.js → manager-CMB15ft8.js} +1 -1
- package/dist/{memory-cli-BDWdeqta.js → memory-cli-CoTkaEhh.js} +4 -4
- package/dist/{memory-cli-BmWvHCEJ.js → memory-cli-Cuhhh4qN.js} +4 -4
- package/dist/{model-catalog-BhW-vn5v.js → model-catalog-BFJW_s3i.js} +2 -2
- package/dist/{model-catalog-FckJ4pcL.js → model-catalog-DRqmevpR.js} +2 -2
- package/dist/{model-picker-D3ii5sBm.js → model-picker-BT8MumhL.js} +2 -2
- package/dist/{model-picker-DEUeht6L.js → model-picker-DhsG4iZa.js} +2 -2
- package/dist/{models-5C-QKF0q.js → models-CdIe1IJX.js} +8 -8
- package/dist/{models-cli-BqW-Y1GI.js → models-cli-CZcMWBL0.js} +30 -30
- package/dist/{models-cli-B2IebIhR.js → models-cli-o07a-fh5.js} +29 -29
- package/dist/{models-config-DGDMieos.js → models-config-DdK8uWQW.js} +1 -1
- package/dist/{models-config-CHVfeRDR.js → models-config-frWb8fDT.js} +1 -1
- package/dist/{node-cli-hAxte5bw.js → node-cli-DB4Z23h8.js} +9 -9
- package/dist/{node-cli-emEb0aRo.js → node-cli-DcRlL2Np.js} +9 -9
- package/dist/{nodes-cli-DQPQqEYN.js → nodes-cli-B42u9UxB.js} +3 -3
- package/dist/{nodes-cli-yd9KABqj.js → nodes-cli-DQ9YsQmy.js} +3 -3
- package/dist/{onboard-BL7Ei8OA.js → onboard-44op-88v.js} +7 -7
- package/dist/{onboard-o5O2Ipvr.js → onboard-Cjlal6-V.js} +7 -7
- package/dist/{onboard-channels-B-PEQmiI.js → onboard-channels-BseAErC9.js} +1 -1
- package/dist/{onboard-channels-Do0lkLVV.js → onboard-channels-Lt1TlRrb.js} +1 -1
- package/dist/{onboard-custom-BVMtQfB1.js → onboard-custom-7TON2w6b.js} +2 -2
- package/dist/{onboard-custom-CVA34zSg.js → onboard-custom-Bb3xuH0G.js} +2 -2
- package/dist/{onboard-helpers-O6bxf40E.js → onboard-helpers-BiCrYw-N.js} +2 -2
- package/dist/{onboard-helpers-CNFdWQIV.js → onboard-helpers-Ca4KojJF.js} +2 -2
- package/dist/{onboard-remote-QMqQxvh7.js → onboard-remote-B8MQTgX-.js} +1 -1
- package/dist/{onboard-remote-uYveiXQe.js → onboard-remote-IMqgmH78.js} +1 -1
- package/dist/{onboard-skills-CLb94Ag2.js → onboard-skills-BP1P7f-w.js} +1 -1
- package/dist/{onboard-skills-Du3aWSN3.js → onboard-skills-BcvPjVfl.js} +1 -1
- package/dist/{onboarding-B_F_DbjQ.js → onboarding-DODsq7cg.js} +10 -10
- package/dist/{onboarding-3DwQLO4z.js → onboarding-DYJYybkl.js} +10 -10
- package/dist/{onboarding.finalize-BWejCrVi.js → onboarding.finalize-BX-xeFu7.js} +32 -32
- package/dist/{onboarding.finalize-D_G6Tcqi.js → onboarding.finalize-DhhWr8GR.js} +34 -34
- package/dist/{onboarding.gateway-config-D8K7HsWb.js → onboarding.gateway-config-Cp8mV8S9.js} +4 -4
- package/dist/{onboarding.gateway-config-Dixr8mmH.js → onboarding.gateway-config-tmzsyFbT.js} +4 -4
- package/dist/{outbound-CLCy4Nsg.js → outbound-BD7PNRhC.js} +1 -1
- package/dist/{outbound-DVVulk0E.js → outbound-BaF9dF-H.js} +1 -1
- package/dist/{outbound-b9pVFyW7.js → outbound-CDuo0JH3.js} +1 -1
- package/dist/{outbound-DlWjA7jN.js → outbound-CPcVipU-.js} +1 -1
- package/dist/{pairing-cli-Cgj6qx8Z.js → pairing-cli-CfuG75IW.js} +1 -1
- package/dist/{pairing-cli-CchjvjCR.js → pairing-cli-K09J3MIl.js} +1 -1
- package/dist/{pi-embedded-q_tNOp_h.js → pi-embedded-UMBd-Mrj.js} +405 -88
- package/dist/{pi-embedded-helpers-BgpogTwt.js → pi-embedded-helpers-BlL08R8g.js} +1 -1
- package/dist/{pi-embedded-helpers-DrAT2ieP.js → pi-embedded-helpers-CU-kYRrF.js} +5 -5
- package/dist/{pi-embedded-helpers-DK2WpZI8.js → pi-embedded-helpers-CmY04lZ7.js} +1 -1
- package/dist/{pi-embedded-helpers-BPP4adeW.js → pi-embedded-helpers-DuZtk5SK.js} +6 -6
- package/dist/{pi-tools.policy-BE7fB_Cf.js → pi-tools.policy-54ABEJtH.js} +2 -2
- package/dist/{pi-tools.policy-GxaAKOgf.js → pi-tools.policy-BFsWV2pS.js} +2 -2
- package/dist/{plugin-registry-B_KRAoou.js → plugin-registry-Di_isjUm.js} +2 -2
- package/dist/{plugin-registry-CRIH5Sdf.js → plugin-registry-HrZC-Iww.js} +2 -2
- package/dist/plugin-sdk/agents/pi-embedded-runner/system-prompt.d.ts +23 -0
- package/dist/plugin-sdk/agents/skills/triggers.d.ts +12 -0
- package/dist/plugin-sdk/agents/system-prompt-skills-jit.d.ts +28 -0
- package/dist/plugin-sdk/agents/system-prompt.d.ts +17 -0
- package/dist/plugin-sdk/agents/tools/skill-search-tool.d.ts +30 -0
- package/dist/plugin-sdk/{audio-preflight-CwMsvdv8.js → audio-preflight-CoKYDdd4.js} +6 -6
- package/dist/plugin-sdk/{channel-web-CiewzSOW.js → channel-web-CzZZsS3O.js} +7 -7
- package/dist/plugin-sdk/{chrome-Cou8jVJ2.js → chrome-CdjVSHtz.js} +1 -1
- package/dist/plugin-sdk/config/types.skills.d.ts +14 -0
- package/dist/plugin-sdk/config/types.symi.d.ts +7 -0
- package/dist/plugin-sdk/config/zod-schema.d.ts +2 -0
- package/dist/plugin-sdk/{config-DQntj58u.js → config-Cf-PzD3r.js} +6 -0
- package/dist/plugin-sdk/{deliver-OVx3XKTy.js → deliver-hjUeDZ7e.js} +2 -2
- package/dist/plugin-sdk/{image-ChrcMCo_.js → image-CS95I-I5.js} +2 -2
- package/dist/plugin-sdk/index.js +20 -20
- package/dist/plugin-sdk/{login-WuhOM4Dg.js → login-BhLw-aw1.js} +2 -2
- package/dist/plugin-sdk/{login-qr-C87Q7LuN.js → login-qr-B4dxH543.js} +2 -2
- package/dist/plugin-sdk/{manager-Yvm-LGVR.js → manager-BiRYpsW7.js} +1 -1
- package/dist/plugin-sdk/{outbound-T0XdUo-H.js → outbound-D7yJKgEX.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-DihvU43r.js → pi-embedded-helpers-6EL59cK1.js} +6 -6
- package/dist/plugin-sdk/{pw-ai-DUQ9kG2D.js → pw-ai-DWcXZkbZ.js} +2 -2
- package/dist/plugin-sdk/{replies-DD0EJRXx.js → replies-B4fizDsZ.js} +1 -1
- package/dist/plugin-sdk/{reply-I6ZFg_UE.js → reply-DYEklKOc.js} +410 -93
- package/dist/plugin-sdk/{runner-IyZnVyIT.js → runner-D9c_MNRa.js} +2 -2
- package/dist/plugin-sdk/{send-Do_qdBr_.js → send-BAzimHH-.js} +1 -1
- package/dist/plugin-sdk/{send-DxXXcQ_o.js → send-BfqyNBU1.js} +1 -1
- package/dist/plugin-sdk/{send-Cxr9NnOd.js → send-CF7BhO8B.js} +1 -1
- package/dist/plugin-sdk/{send-SRQweHTE.js → send-CJIEYVXL.js} +1 -1
- package/dist/plugin-sdk/{send-Dd71o3sZ.js → send-DDpZS9jb.js} +1 -1
- package/dist/plugin-sdk/{session-LEZ8u8RX.js → session-BfTQAyNx.js} +1 -1
- package/dist/plugin-sdk/{skill-commands-DEfqC_kJ.js → skill-commands-C70yD9PL.js} +1 -1
- package/dist/plugin-sdk/{skills-C9DbB-Kp.js → skills-DuQ-xGok.js} +1 -1
- package/dist/plugin-sdk/{synthesis-bQ4DMwsj.js → synthesis-CaDiVumM.js} +16 -16
- package/dist/plugin-sdk/{web-C3YuHiih.js → web-DU4xaLZf.js} +20 -20
- package/dist/plugin-sdk/{whatsapp-actions-ClWxTG5S.js → whatsapp-actions-B_3do0s7.js} +2 -2
- package/dist/{plugins-cli-Co9cRpLe.js → plugins-cli-BlBz4J4q.js} +27 -27
- package/dist/{plugins-cli-MDYiXsRL.js → plugins-cli-CMz1ww6G.js} +28 -28
- package/dist/{program-context-m9C36Cuq.js → program-context-ByWsh-2T.js} +38 -38
- package/dist/{program-BWqVPm5t.js → program-dFZ5CYgD.js} +34 -34
- package/dist/{prompt-select-styled-DzjQVaDM.js → prompt-select-styled-BkwnTGjt.js} +15 -15
- package/dist/{prompt-select-styled-BKJVEVPk.js → prompt-select-styled-nywEyQoQ.js} +15 -15
- package/dist/{provider-auth-helpers-DaTqy1aA.js → provider-auth-helpers-CQ604vQz.js} +2 -2
- package/dist/{provider-auth-helpers-DYJ-0sNe.js → provider-auth-helpers-CgJE4rvP.js} +2 -2
- package/dist/{push-apns-_aeFBwsP.js → push-apns-CQlSAman.js} +1 -1
- package/dist/{push-apns-DdQlLTpV.js → push-apns-CbjqnCIn.js} +1 -1
- package/dist/{pw-ai-DSmC8YuO.js → pw-ai-B8IypzYb.js} +2 -2
- package/dist/{pw-ai-D9ZuX3U6.js → pw-ai-BYRvpqBg.js} +2 -2
- package/dist/{pw-ai-Bpp0J0PM.js → pw-ai-BjfsUmjw.js} +2 -2
- package/dist/{pw-ai-XSTIQILG.js → pw-ai-BwKx4yAQ.js} +2 -2
- package/dist/{qr-cli-DtHLOD1G.js → qr-cli-B7hz3Zj2.js} +1 -1
- package/dist/{qr-cli-Dq9G8FPl.js → qr-cli-Zf3abH3y.js} +1 -1
- package/dist/{register.agent-RNTVF_Nk.js → register.agent-BaLgPcGg.js} +33 -33
- package/dist/{register.agent-Hi0PN67T.js → register.agent-Hw7FS0tf.js} +35 -35
- package/dist/{register.configure-Dp-F_KKy.js → register.configure-BC-jW4EY.js} +37 -37
- package/dist/{register.configure-DE2Fg1dO.js → register.configure-D6bKnyeR.js} +38 -38
- package/dist/{register.maintenance-Bbd-g7nL.js → register.maintenance-7LeID6wA.js} +37 -37
- package/dist/{register.maintenance-QHRRhtsg.js → register.maintenance-DQ73gAH0.js} +35 -35
- package/dist/{register.message-B5uWOXev.js → register.message-D2Ubr7KY.js} +27 -27
- package/dist/{register.message-BvutRi1a.js → register.message-odamuJP5.js} +28 -28
- package/dist/{register.onboard-DRHuoRTm.js → register.onboard-Bv3BjuIZ.js} +33 -33
- package/dist/{register.onboard-CNOh527M.js → register.onboard-DwYvxoBx.js} +34 -34
- package/dist/{register.setup-Cj0oOZqL.js → register.setup-B6ylBd_s.js} +33 -33
- package/dist/{register.setup-D1ePW7dl.js → register.setup-BvNMj7Tn.js} +34 -34
- package/dist/{register.status-health-sessions-DfyO7JaH.js → register.status-health-sessions-Bx0oTY_P.js} +30 -30
- package/dist/{register.status-health-sessions-sf1XzcPo.js → register.status-health-sessions-Cr65vOYW.js} +32 -32
- package/dist/{register.subclis-Do_HdpUT.js → register.subclis-BzbNYOC6.js} +28 -28
- package/dist/{replies-IkylJ7lX.js → replies-A6SltFjk.js} +1 -1
- package/dist/{replies-CPhYC11m.js → replies-CsNZ9ImJ.js} +1 -1
- package/dist/{replies-BxvfG7Oj.js → replies-Dk0cnpHa.js} +1 -1
- package/dist/{replies-BV7oFP7Z.js → replies-Dmo0pSSf.js} +1 -1
- package/dist/{reply-DEub7xci.js → reply-Bymjl4wV.js} +417 -99
- package/dist/{routes-n7RUgOOW.js → routes-B3wAMCSw.js} +3 -3
- package/dist/{routes-Evl8vnTV.js → routes-DH2Da7TP.js} +3 -3
- package/dist/{rpc-3T_LjHn1.js → rpc-BPtq6BO7.js} +1 -1
- package/dist/{rpc-DeJsMHDF.js → rpc-DCB41PXt.js} +1 -1
- package/dist/{run-main-B_ZLo4JR.js → run-main-BAaL6QjO.js} +45 -45
- package/dist/{runner-CiThXXY3.js → runner-CY_8vnxU.js} +3 -3
- package/dist/{runner-B_6xBcPB.js → runner-Dbs3i8HW.js} +2 -2
- package/dist/{runner-CMvsDzah.js → runner-DzNo-GCz.js} +2 -2
- package/dist/{runner-BX-ap4VU.js → runner-Im1oOE3i.js} +3 -3
- package/dist/{sandbox-T9SO3y3b.js → sandbox-BTziorto.js} +5 -5
- package/dist/{sandbox-cli-MZJX1Ht6.js → sandbox-cli-BVpVuidu.js} +6 -6
- package/dist/{sandbox-cli-Bi8lblc6.js → sandbox-cli-rOwF1Yuh.js} +6 -6
- package/dist/{sandbox-BQ5LAIBQ.js → sandbox-wUKYI3zy.js} +5 -5
- package/dist/{security-cli-AZBZs6ww.js → security-cli-Bb4vR6LY.js} +9 -9
- package/dist/{security-cli-txjMZzBx.js → security-cli-Cg7KhJC7.js} +9 -9
- package/dist/{send-CcD9S5so.js → send-8Gw3YmOh.js} +1 -1
- package/dist/{send-BtbWvw2k.js → send-90t8KM2a.js} +1 -1
- package/dist/{send-DlYO3ExM.js → send-9ktd0CBZ.js} +1 -1
- package/dist/{send-C6-rN_Li.js → send-B0szkIfv.js} +1 -1
- package/dist/{send-CyPj_MLV.js → send-B7kMNQ-T.js} +1 -1
- package/dist/{send-DNqcjLyg.js → send-BbZtP8GJ.js} +1 -1
- package/dist/{send-C4IU_tV3.js → send-CQj8FBE3.js} +1 -1
- package/dist/{send-Bi8XhwOZ.js → send-Cxr6CgGf.js} +1 -1
- package/dist/{send-CfejAK2u.js → send-D27q8Oqo.js} +1 -1
- package/dist/{send-CupfdYEg.js → send-D4GfXudZ.js} +1 -1
- package/dist/{send-BPBFuPrC.js → send-D5Siw6wn.js} +1 -1
- package/dist/{send-BUBES34Y.js → send-DanpvmZQ.js} +1 -1
- package/dist/{send-CSkNKYIc.js → send-DbJsN7Lj.js} +1 -1
- package/dist/{send-dohExhb8.js → send-Dj6_LS_W.js} +1 -1
- package/dist/{send-vmIzYMwN.js → send-F2Cpm-SJ.js} +1 -1
- package/dist/{send-BaSqjfd_.js → send-aXMPprv9.js} +1 -1
- package/dist/{send-_CmB6CKB.js → send-depbZ9aA.js} +1 -1
- package/dist/{send-llekTUks.js → send-nRhkxbqX.js} +1 -1
- package/dist/{send-CoSPwGiI.js → send-t_DoGd2Y.js} +1 -1
- package/dist/{send-Dn1Pirhx.js → send-zMHWALCW.js} +1 -1
- package/dist/{server-context-CGMSzPWd.js → server-context-BPuBLXYG.js} +5 -5
- package/dist/{server-context-BkYSrDni.js → server-context-DQIkGNj2.js} +5 -5
- package/dist/{server-methods-C-itThFa.js → server-methods-C4j7W_qQ.js} +17 -17
- package/dist/{server-methods-P-ayY-6k.js → server-methods-Ds4i0Q2F.js} +16 -16
- package/dist/{server-node-events-D5ee96aZ.js → server-node-events-D0gNq3h6.js} +27 -27
- package/dist/{server-node-events-tvNFkev2.js → server-node-events-tbjGwgHF.js} +28 -28
- package/dist/{session-CifmyF9K.js → session-C4odFBc2.js} +1 -1
- package/dist/{session-bvybh7vL.js → session-CTTpxOx1.js} +1 -1
- package/dist/{session-CMploMg7.js → session-Cs58by4_.js} +1 -1
- package/dist/{session-DQimwuIx.js → session-d5_vMl76.js} +1 -1
- package/dist/{session-utils-DQ-t0PxQ.js → session-utils--1xVj2BC.js} +3 -3
- package/dist/{sessions-BIsirZy0.js → sessions-BikjOqQs.js} +3 -3
- package/dist/{sessions-BKn2DFYs.js → sessions-CVWGQEWu.js} +1 -1
- package/dist/{sessions-DCr5nAOw.js → sessions-CpDbQNFu.js} +1 -1
- package/dist/{shared-iaXjUnvo.js → shared-DHpMu95O.js} +1 -1
- package/dist/{shared-F4GNd-mC.js → shared-NCp143fJ.js} +1 -1
- package/dist/{skill-commands-CSF7Poen.js → skill-commands-QmLQo8Tj.js} +1 -1
- package/dist/{skills-XEbTRNYL.js → skills-D0hfZgFz.js} +1 -1
- package/dist/{skills-cli-BX1J5GLJ.js → skills-cli-6wYY0Xes.js} +1 -1
- package/dist/{skills-cli-CZgrqMPo.js → skills-cli-CkTThcTU.js} +1 -1
- package/dist/{status-BlTLrS6h.js → status-BdkVcIDX.js} +2 -2
- package/dist/{status-BqjF9Q9S.js → status-BfNSBvnp.js} +9 -9
- package/dist/{status-CfIkReeE.js → status-CGabcN-L.js} +10 -10
- package/dist/{status-DjvBeoYl.js → status-DpVc9DSG.js} +2 -2
- package/dist/{status.update-C5evp93A.js → status.update-BSaVYFQv.js} +1 -1
- package/dist/{status.update-BZnfRS2e.js → status.update-DoXJrRh6.js} +1 -1
- package/dist/{subagent-registry-DVYhalAo.js → subagent-registry-0D_yjdW5.js} +413 -95
- package/dist/{synthesis-DRXsTePq.js → synthesis-1f-yGtS7.js} +26 -26
- package/dist/{synthesis-y-Ozm8YK.js → synthesis-A2SfvBRN.js} +27 -27
- package/dist/{synthesis-DDQ5zAtf.js → synthesis-Bf2XnlvP.js} +16 -16
- package/dist/{synthesis-DgiYnjmZ.js → synthesis-DFQ_rjEF.js} +14 -14
- package/dist/{system-cli-IeefTiI1.js → system-cli-BmccUOcE.js} +3 -3
- package/dist/{system-cli-hjvWuxnn.js → system-cli-DJIrqTFB.js} +3 -3
- package/dist/{systemd-hints-CW7G2Z_2.js → systemd-hints-BbqPFaZ2.js} +1 -1
- package/dist/{systemd-hints-CcsN2P1C.js → systemd-hints-CfnF9j3s.js} +1 -1
- package/dist/{tui-DulNash-.js → tui-Cc1L4YuN.js} +4 -4
- package/dist/{tui-ByDc_eA-.js → tui-D5we2kr7.js} +4 -4
- package/dist/{tui-cli-cbFjX5ua.js → tui-cli-BHBp8e8w.js} +9 -9
- package/dist/{tui-cli-D--Wucil.js → tui-cli-CmVmkEzr.js} +9 -9
- package/dist/{unified-runner-BRmPenSK.js → unified-runner-j_Vn4K8X.js} +408 -90
- package/dist/{update-cli-5uhTWLns.js → update-cli-B3t4yUU6.js} +38 -38
- package/dist/{update-cli-BfvcUFky.js → update-cli-CWMGbbPM.js} +40 -40
- package/dist/{update-runner-DyENgdTM.js → update-runner-CfzHxbsu.js} +1 -1
- package/dist/{update-runner-22u8HOoq.js → update-runner-UfVHKth_.js} +1 -1
- package/dist/{web-Dbe1DwOE.js → web-BSf9H0_w.js} +17 -17
- package/dist/{web-s9NWpUYH.js → web-DCTvbYTy.js} +30 -30
- package/dist/{web-CqeSgivQ.js → web-DIDhNbES.js} +30 -30
- package/dist/{web-B8GaP73t.js → web-DaChMSyM.js} +19 -19
- package/dist/{webhooks-cli-9lyrT9S-.js → webhooks-cli-BPWIcZ4r.js} +1 -1
- package/dist/{webhooks-cli-C56QoA-d.js → webhooks-cli-DCw-yCzR.js} +1 -1
- package/dist/{whatsapp-actions-Dx8FkbIf.js → whatsapp-actions-B5o7eFIc.js} +2 -2
- package/dist/{whatsapp-actions-D5RBK0Cm.js → whatsapp-actions-CJkCiI_n.js} +2 -2
- package/dist/{whatsapp-actions-BV4mjN5j.js → whatsapp-actions-CkT3dnmD.js} +2 -2
- package/dist/{whatsapp-actions-BngdI8G3.js → whatsapp-actions-DRvUrapa.js} +2 -2
- package/dist/{with-timeout-7gwjaz5c.js → with-timeout-7M4c248g.js} +1 -1
- package/dist/{with-timeout-C1vsg3IF.js → with-timeout-BWETfI9T.js} +1 -1
- package/docs/capabilities.md +153 -0
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/learning-loop/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +12 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +12 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/package.json +1 -1
- package/extensions/pipeline/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +12 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +12 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +12 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +12 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
- package/skills/1password/SKILL.md +1 -0
- package/skills/apple-notes/SKILL.md +1 -0
- package/skills/apple-reminders/SKILL.md +1 -0
- package/skills/bear-notes/SKILL.md +1 -0
- package/skills/blogwatcher/SKILL.md +1 -0
- package/skills/blucli/SKILL.md +1 -0
- package/skills/bluebubbles/SKILL.md +1 -0
- package/skills/camsnap/SKILL.md +1 -0
- package/skills/canvas/SKILL.md +6 -0
- package/skills/channel-routing/SKILL.md +42 -0
- package/skills/coding-agent/SKILL.md +1 -0
- package/skills/connect-email/SKILL.md +1 -0
- package/skills/discord/SKILL.md +1 -0
- package/skills/document-generation/SKILL.md +64 -0
- package/skills/eightctl/SKILL.md +1 -0
- package/skills/food-order/SKILL.md +1 -0
- package/skills/gemini/SKILL.md +1 -0
- package/skills/gh-issues/SKILL.md +1 -0
- package/skills/gifgrep/SKILL.md +1 -0
- package/skills/github/SKILL.md +1 -0
- package/skills/gog/SKILL.md +1 -0
- package/skills/goplaces/SKILL.md +1 -0
- package/skills/healthcheck/SKILL.md +1 -0
- package/skills/himalaya/SKILL.md +1 -0
- package/skills/imsg/SKILL.md +1 -0
- package/skills/long-task/SKILL.md +1 -0
- package/skills/mcporter/SKILL.md +1 -0
- package/skills/model-usage/SKILL.md +1 -0
- package/skills/nano-banana-pro/SKILL.md +1 -0
- package/skills/nano-pdf/SKILL.md +1 -0
- package/skills/notion/SKILL.md +1 -0
- package/skills/obsidian/SKILL.md +1 -0
- package/skills/openai-image-gen/SKILL.md +1 -0
- package/skills/openai-whisper/SKILL.md +1 -0
- package/skills/openai-whisper-api/SKILL.md +1 -0
- package/skills/openhue/SKILL.md +1 -0
- package/skills/oracle/SKILL.md +1 -0
- package/skills/ordercli/SKILL.md +1 -0
- package/skills/peekaboo/SKILL.md +1 -0
- package/skills/reactions-extensive/SKILL.md +30 -0
- package/skills/reactions-minimal/SKILL.md +31 -0
- package/skills/safe-edit/SKILL.md +51 -0
- package/skills/sag/SKILL.md +1 -0
- package/skills/session-logs/SKILL.md +1 -0
- package/skills/sherpa-onnx-tts/SKILL.md +1 -0
- package/skills/skill-creator/SKILL.md +1 -0
- package/skills/slack/SKILL.md +1 -0
- package/skills/songsee/SKILL.md +1 -0
- package/skills/sonoscli/SKILL.md +1 -0
- package/skills/spotify-player/SKILL.md +1 -0
- package/skills/summarize/SKILL.md +1 -0
- package/skills/symihub/SKILL.md +1 -0
- package/skills/things-mac/SKILL.md +1 -0
- package/skills/tmux/SKILL.md +1 -0
- package/skills/tool-narration/SKILL.md +40 -0
- package/skills/trello/SKILL.md +1 -0
- package/skills/verify-output/SKILL.md +47 -0
- package/skills/video-frames/SKILL.md +1 -0
- package/skills/voice-call/SKILL.md +1 -0
- package/skills/wacli/SKILL.md +1 -0
- package/skills/weather/SKILL.md +1 -0
- package/skills/xurl/SKILL.md +1 -0
|
@@ -10,10 +10,11 @@ import { $ as resolveAuthProfileDisplayLabel, B as resolveApiKeyForProvider, C a
|
|
|
10
10
|
import { n as formatCliCommand, r as resolveCliName, t as isTruthyEnvValue } from "./env-BDXYbTKj.js";
|
|
11
11
|
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-cCYzSU9h.js";
|
|
12
12
|
import { t as parseBooleanValue$1 } from "./boolean-CE7i9tBR.js";
|
|
13
|
-
import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-
|
|
14
|
-
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-
|
|
13
|
+
import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-CU-kYRrF.js";
|
|
14
|
+
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-Do4JxgLI.js";
|
|
15
15
|
import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-CBCGTsIb.js";
|
|
16
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
16
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-CJHOBnUB.js";
|
|
17
|
+
import { l as parseFrontmatterBlock } from "./frontmatter-CTR5f_Ez.js";
|
|
17
18
|
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-CXxrn_e2.js";
|
|
18
19
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-XIsvXeC-.js";
|
|
19
20
|
import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-C7CauEK8.js";
|
|
@@ -27,20 +28,20 @@ import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTele
|
|
|
27
28
|
import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-BRw8yhIW.js";
|
|
28
29
|
import { t as resolveIMessageAccount } from "./accounts-3dCrO3oZ.js";
|
|
29
30
|
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BuZxOb3B.js";
|
|
30
|
-
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-
|
|
31
|
-
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-
|
|
31
|
+
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-B7kMNQ-T.js";
|
|
32
|
+
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-9ktd0CBZ.js";
|
|
32
33
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-BBh3Gsrx.js";
|
|
33
34
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-SqqWIT22.js";
|
|
34
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-
|
|
35
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-D5655IkX.js";
|
|
35
36
|
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-BUcR3Meg.js";
|
|
36
37
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Zw87xFym.js";
|
|
37
|
-
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-
|
|
38
|
+
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-BqpivNGG.js";
|
|
38
39
|
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-RXOlh8ar.js";
|
|
39
40
|
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-W0JzCJJM.js";
|
|
40
|
-
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-
|
|
41
|
+
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-90t8KM2a.js";
|
|
41
42
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-CuZX_Q4t.js";
|
|
42
43
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CvEIl6_d.js";
|
|
43
|
-
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-
|
|
44
|
+
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-CMB15ft8.js";
|
|
44
45
|
import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-DjnxpF_K.js";
|
|
45
46
|
import { n as retryAsync } from "./retry-B-y5suGA.js";
|
|
46
47
|
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-DeJTztcq.js";
|
|
@@ -50,7 +51,7 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-CVCB
|
|
|
50
51
|
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-ClipCZ9s.js";
|
|
51
52
|
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-7tMVY7D_.js";
|
|
52
53
|
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-DxbSTLNQ.js";
|
|
53
|
-
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-
|
|
54
|
+
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-DzNo-GCz.js";
|
|
54
55
|
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-DG2lcozb.js";
|
|
55
56
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-DZQU0r3y.js";
|
|
56
57
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-ClslA6GS.js";
|
|
@@ -58,11 +59,11 @@ import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-po
|
|
|
58
59
|
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-D8QD7GoV.js";
|
|
59
60
|
import { n as normalizePollInput } from "./polls-Kt7OzYCK.js";
|
|
60
61
|
import { t as convertMarkdownTables } from "./tables-DoG-pFrf.js";
|
|
61
|
-
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-
|
|
62
|
-
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-
|
|
62
|
+
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-zMHWALCW.js";
|
|
63
|
+
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-CQj8FBE3.js";
|
|
63
64
|
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Jy5dFY67.js";
|
|
64
65
|
import { t as makeProxyFetch } from "./proxy-d9fklNTC.js";
|
|
65
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
66
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-A6SltFjk.js";
|
|
66
67
|
import { t as getActiveWebListener } from "./active-listener-BVZOh2T1.js";
|
|
67
68
|
import { createRequire } from "node:module";
|
|
68
69
|
import * as path$1 from "node:path";
|
|
@@ -4335,7 +4336,7 @@ async function getMemorySearchManager(params) {
|
|
|
4335
4336
|
const wrapper = new FallbackMemoryManager({
|
|
4336
4337
|
primary,
|
|
4337
4338
|
fallbackFactory: async () => {
|
|
4338
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
4339
|
+
const { MemoryIndexManager } = await import("./manager-CMB15ft8.js").then((n) => n.n);
|
|
4339
4340
|
return await MemoryIndexManager.get(params);
|
|
4340
4341
|
}
|
|
4341
4342
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -4348,7 +4349,7 @@ async function getMemorySearchManager(params) {
|
|
|
4348
4349
|
}
|
|
4349
4350
|
}
|
|
4350
4351
|
try {
|
|
4351
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
4352
|
+
const { MemoryIndexManager } = await import("./manager-CMB15ft8.js").then((n) => n.n);
|
|
4352
4353
|
return { manager: await MemoryIndexManager.get(params) };
|
|
4353
4354
|
} catch (err) {
|
|
4354
4355
|
return {
|
|
@@ -6445,10 +6446,10 @@ function buildEmbeddedSandboxInfo(sandbox, execElevated) {
|
|
|
6445
6446
|
//#endregion
|
|
6446
6447
|
//#region src/agents/system-prompt-skills-autoload.ts
|
|
6447
6448
|
const FRONTMATTER_RE = /^---\s*\n[\s\S]*?\n---\s*\n?/;
|
|
6448
|
-
let cachedPackageRoot;
|
|
6449
|
-
function getPackageRoot() {
|
|
6450
|
-
if (cachedPackageRoot === void 0) cachedPackageRoot = resolveSymiPackageRootSync({});
|
|
6451
|
-
return cachedPackageRoot;
|
|
6449
|
+
let cachedPackageRoot$1;
|
|
6450
|
+
function getPackageRoot$1() {
|
|
6451
|
+
if (cachedPackageRoot$1 === void 0) cachedPackageRoot$1 = resolveSymiPackageRootSync({});
|
|
6452
|
+
return cachedPackageRoot$1;
|
|
6452
6453
|
}
|
|
6453
6454
|
function safeSkillName(name) {
|
|
6454
6455
|
return /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/.test(name);
|
|
@@ -6477,7 +6478,7 @@ function buildAutoLoadedSkillsBlock(opts) {
|
|
|
6477
6478
|
if (opts.minimalMode) return "";
|
|
6478
6479
|
const names = opts.skillNames.filter((n) => typeof n === "string" && n.trim().length > 0);
|
|
6479
6480
|
if (names.length === 0) return "";
|
|
6480
|
-
const packageRoot = getPackageRoot();
|
|
6481
|
+
const packageRoot = getPackageRoot$1();
|
|
6481
6482
|
const loaded = [];
|
|
6482
6483
|
for (const rawName of names) {
|
|
6483
6484
|
const name = rawName.trim();
|
|
@@ -6522,10 +6523,301 @@ function buildAutoLoadedSkillsBlock(opts) {
|
|
|
6522
6523
|
].join("\n");
|
|
6523
6524
|
}
|
|
6524
6525
|
|
|
6526
|
+
//#endregion
|
|
6527
|
+
//#region src/agents/skills/triggers.ts
|
|
6528
|
+
const QUOTE_RE = /^["'`](.*)["'`]$/;
|
|
6529
|
+
const ARRAY_FORM_RE = /^\[(.*)\]$/s;
|
|
6530
|
+
function stripWrappingQuotes(s) {
|
|
6531
|
+
const m = s.trim().match(QUOTE_RE);
|
|
6532
|
+
return m ? m[1] : s.trim();
|
|
6533
|
+
}
|
|
6534
|
+
/** Parse a single trigger value, dropping empty / whitespace-only entries. */
|
|
6535
|
+
function cleanTrigger(raw) {
|
|
6536
|
+
const trimmed = stripWrappingQuotes(raw).toLowerCase();
|
|
6537
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
6538
|
+
}
|
|
6539
|
+
/**
|
|
6540
|
+
* Parse the value of a `triggers:` frontmatter field into a string[].
|
|
6541
|
+
* Accepts both inline-array form `[a, b, "c d"]` and YAML-list form
|
|
6542
|
+
* (multiline with leading hyphens). Returns deduped lowercased trigger
|
|
6543
|
+
* strings, or empty array on unparseable / missing input.
|
|
6544
|
+
*/
|
|
6545
|
+
function parseTriggersValue(raw) {
|
|
6546
|
+
if (typeof raw !== "string") return [];
|
|
6547
|
+
const trimmed = raw.trim();
|
|
6548
|
+
if (!trimmed) return [];
|
|
6549
|
+
const items = [];
|
|
6550
|
+
const arrayMatch = trimmed.match(ARRAY_FORM_RE);
|
|
6551
|
+
if (arrayMatch) {
|
|
6552
|
+
const inner = arrayMatch[1];
|
|
6553
|
+
let buf = "";
|
|
6554
|
+
let inQuote = null;
|
|
6555
|
+
for (const ch of inner) {
|
|
6556
|
+
if (inQuote) {
|
|
6557
|
+
if (ch === inQuote) inQuote = null;
|
|
6558
|
+
else buf += ch;
|
|
6559
|
+
continue;
|
|
6560
|
+
}
|
|
6561
|
+
if (ch === "\"" || ch === "'") {
|
|
6562
|
+
inQuote = ch;
|
|
6563
|
+
continue;
|
|
6564
|
+
}
|
|
6565
|
+
if (ch === ",") {
|
|
6566
|
+
const cleaned = cleanTrigger(buf);
|
|
6567
|
+
if (cleaned) items.push(cleaned);
|
|
6568
|
+
buf = "";
|
|
6569
|
+
continue;
|
|
6570
|
+
}
|
|
6571
|
+
buf += ch;
|
|
6572
|
+
}
|
|
6573
|
+
const cleaned = cleanTrigger(buf);
|
|
6574
|
+
if (cleaned) items.push(cleaned);
|
|
6575
|
+
} else for (const line of trimmed.split("\n")) {
|
|
6576
|
+
const ltrim = line.trimStart();
|
|
6577
|
+
if (ltrim.startsWith("- ")) {
|
|
6578
|
+
const cleaned = cleanTrigger(ltrim.slice(2));
|
|
6579
|
+
if (cleaned) items.push(cleaned);
|
|
6580
|
+
} else if (ltrim && !ltrim.startsWith("#")) {
|
|
6581
|
+
const cleaned = cleanTrigger(ltrim);
|
|
6582
|
+
if (cleaned) items.push(cleaned);
|
|
6583
|
+
}
|
|
6584
|
+
}
|
|
6585
|
+
const seen = /* @__PURE__ */ new Set();
|
|
6586
|
+
const out = [];
|
|
6587
|
+
for (const t of items) if (!seen.has(t)) {
|
|
6588
|
+
seen.add(t);
|
|
6589
|
+
out.push(t);
|
|
6590
|
+
}
|
|
6591
|
+
return out;
|
|
6592
|
+
}
|
|
6593
|
+
/**
|
|
6594
|
+
* Extract triggers from a parsed frontmatter record. Returns empty array
|
|
6595
|
+
* when the field is absent or unparseable.
|
|
6596
|
+
*/
|
|
6597
|
+
function getSkillTriggers(frontmatter) {
|
|
6598
|
+
return parseTriggersValue(frontmatter.triggers);
|
|
6599
|
+
}
|
|
6600
|
+
|
|
6601
|
+
//#endregion
|
|
6602
|
+
//#region src/agents/tools/skill-search-tool.ts
|
|
6603
|
+
const SkillSearchToolSchema = Type.Object({
|
|
6604
|
+
query: Type.String({
|
|
6605
|
+
minLength: 1,
|
|
6606
|
+
description: "Intent description (2-8 words). Match by trigger keywords first, then description text."
|
|
6607
|
+
}),
|
|
6608
|
+
limit: Type.Optional(Type.Number({
|
|
6609
|
+
minimum: 1,
|
|
6610
|
+
maximum: 10,
|
|
6611
|
+
description: "Max results to return (default 5, capped at 10)."
|
|
6612
|
+
}))
|
|
6613
|
+
});
|
|
6614
|
+
const CACHE_TTL_MS = 6e4;
|
|
6615
|
+
const SAFE_NAME_RE = /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/;
|
|
6616
|
+
function loadSkillFromDir(dir, source) {
|
|
6617
|
+
const name = path.basename(dir);
|
|
6618
|
+
if (!SAFE_NAME_RE.test(name)) return null;
|
|
6619
|
+
const file = path.join(dir, "SKILL.md");
|
|
6620
|
+
let raw;
|
|
6621
|
+
try {
|
|
6622
|
+
if (!fs.statSync(file).isFile()) return null;
|
|
6623
|
+
raw = fs.readFileSync(file, "utf8");
|
|
6624
|
+
} catch {
|
|
6625
|
+
return null;
|
|
6626
|
+
}
|
|
6627
|
+
const fm = parseFrontmatterBlock(raw);
|
|
6628
|
+
return {
|
|
6629
|
+
name,
|
|
6630
|
+
description: (fm.description ?? "").trim(),
|
|
6631
|
+
path: file,
|
|
6632
|
+
triggers: getSkillTriggers(fm),
|
|
6633
|
+
source
|
|
6634
|
+
};
|
|
6635
|
+
}
|
|
6636
|
+
function listSkillDirs(root) {
|
|
6637
|
+
const skillsDir = path.join(root, "skills");
|
|
6638
|
+
let entries;
|
|
6639
|
+
try {
|
|
6640
|
+
entries = fs.readdirSync(skillsDir, { withFileTypes: true });
|
|
6641
|
+
} catch {
|
|
6642
|
+
return [];
|
|
6643
|
+
}
|
|
6644
|
+
return entries.filter((e) => e.isDirectory()).map((e) => path.join(skillsDir, e.name));
|
|
6645
|
+
}
|
|
6646
|
+
let cachedPackageRoot;
|
|
6647
|
+
const cachePerWorkspace = /* @__PURE__ */ new Map();
|
|
6648
|
+
function getPackageRoot() {
|
|
6649
|
+
if (cachedPackageRoot === void 0) cachedPackageRoot = resolveSymiPackageRootSync({});
|
|
6650
|
+
return cachedPackageRoot;
|
|
6651
|
+
}
|
|
6652
|
+
function loadAllSkills(workspaceDir) {
|
|
6653
|
+
const cacheKey = workspaceDir ?? "";
|
|
6654
|
+
const now = Date.now();
|
|
6655
|
+
const existing = cachePerWorkspace.get(cacheKey);
|
|
6656
|
+
if (existing && now - existing.loadedAt < CACHE_TTL_MS) return existing.skills;
|
|
6657
|
+
const seen = /* @__PURE__ */ new Map();
|
|
6658
|
+
if (workspaceDir) for (const dir of listSkillDirs(workspaceDir)) {
|
|
6659
|
+
const skill = loadSkillFromDir(dir, "workspace");
|
|
6660
|
+
if (skill && !seen.has(skill.name)) seen.set(skill.name, skill);
|
|
6661
|
+
}
|
|
6662
|
+
const packageRoot = getPackageRoot();
|
|
6663
|
+
if (packageRoot) for (const dir of listSkillDirs(packageRoot)) {
|
|
6664
|
+
const skill = loadSkillFromDir(dir, "bundled");
|
|
6665
|
+
if (skill && !seen.has(skill.name)) seen.set(skill.name, skill);
|
|
6666
|
+
}
|
|
6667
|
+
const skills = [...seen.values()];
|
|
6668
|
+
cachePerWorkspace.set(cacheKey, {
|
|
6669
|
+
skills,
|
|
6670
|
+
loadedAt: now
|
|
6671
|
+
});
|
|
6672
|
+
return skills;
|
|
6673
|
+
}
|
|
6674
|
+
const TOKEN_SPLIT_RE = /[^\w/]+/;
|
|
6675
|
+
function tokenizeQuery(raw) {
|
|
6676
|
+
return raw.toLowerCase().split(TOKEN_SPLIT_RE).filter((t) => t.length >= 2);
|
|
6677
|
+
}
|
|
6678
|
+
/**
|
|
6679
|
+
* Score a query against one skill's triggers + description.
|
|
6680
|
+
* - Trigger score: ratio of query tokens that appear in the trigger set.
|
|
6681
|
+
* - FTS score: 0.4 × ratio of query tokens that appear in the description
|
|
6682
|
+
* (case-insensitive substring match).
|
|
6683
|
+
* - Final = max(trigger, fts) so trigger matches always beat descriptions.
|
|
6684
|
+
* - Returns 0 for "no signal at all" (caller should drop these).
|
|
6685
|
+
*/
|
|
6686
|
+
function scoreSkillMatch(skill, queryTokens) {
|
|
6687
|
+
if (queryTokens.length === 0) return 0;
|
|
6688
|
+
const triggerSet = new Set(skill.triggers.map((t) => t.toLowerCase()));
|
|
6689
|
+
const description = skill.description.toLowerCase();
|
|
6690
|
+
let triggerHits = 0;
|
|
6691
|
+
let ftsHits = 0;
|
|
6692
|
+
for (const token of queryTokens) if (triggerSet.has(token)) triggerHits += 1;
|
|
6693
|
+
else if (description.includes(token)) ftsHits += 1;
|
|
6694
|
+
const triggerScore = triggerHits / queryTokens.length;
|
|
6695
|
+
const ftsScore = ftsHits / queryTokens.length * .4;
|
|
6696
|
+
return Math.max(triggerScore, ftsScore);
|
|
6697
|
+
}
|
|
6698
|
+
/**
|
|
6699
|
+
* Pure-function search; exported for testing without going through the
|
|
6700
|
+
* tool execute wrapper.
|
|
6701
|
+
*/
|
|
6702
|
+
function searchSkills(query, limit, workspaceDir) {
|
|
6703
|
+
const tokens = tokenizeQuery(query);
|
|
6704
|
+
if (tokens.length === 0) return [];
|
|
6705
|
+
const all = loadAllSkills(workspaceDir);
|
|
6706
|
+
const scored = [];
|
|
6707
|
+
for (const skill of all) {
|
|
6708
|
+
const score = scoreSkillMatch(skill, tokens);
|
|
6709
|
+
if (score > 0) scored.push({
|
|
6710
|
+
name: skill.name,
|
|
6711
|
+
description: skill.description,
|
|
6712
|
+
path: skill.path,
|
|
6713
|
+
score
|
|
6714
|
+
});
|
|
6715
|
+
}
|
|
6716
|
+
scored.sort((a, b) => b.score - a.score || a.name.localeCompare(b.name));
|
|
6717
|
+
return scored.slice(0, limit);
|
|
6718
|
+
}
|
|
6719
|
+
function createSkillSearchTool(opts) {
|
|
6720
|
+
return {
|
|
6721
|
+
name: "skill_search",
|
|
6722
|
+
label: "skill_search",
|
|
6723
|
+
description: "Find skills relevant to the current task. Returns matching skills with name/description/path; `read` the SKILL.md to apply. Call before non-trivial tool work — search by intent ('connect email', 'long task') not tool name.",
|
|
6724
|
+
parameters: SkillSearchToolSchema,
|
|
6725
|
+
execute: async (_toolCallId, args) => {
|
|
6726
|
+
const params = args;
|
|
6727
|
+
const query = typeof params.query === "string" ? params.query.trim() : "";
|
|
6728
|
+
if (!query) return jsonResult({
|
|
6729
|
+
ok: false,
|
|
6730
|
+
error: "skill_search requires a non-empty `query` string."
|
|
6731
|
+
});
|
|
6732
|
+
const limit = typeof params.limit === "number" && Number.isFinite(params.limit) ? Math.min(10, Math.max(1, Math.floor(params.limit))) : 5;
|
|
6733
|
+
try {
|
|
6734
|
+
return jsonResult({
|
|
6735
|
+
ok: true,
|
|
6736
|
+
query,
|
|
6737
|
+
matches: searchSkills(query, limit, opts?.workspaceDir)
|
|
6738
|
+
});
|
|
6739
|
+
} catch (err) {
|
|
6740
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
6741
|
+
logWarn(`skill_search failed: ${message}`);
|
|
6742
|
+
return jsonResult({
|
|
6743
|
+
ok: false,
|
|
6744
|
+
error: message
|
|
6745
|
+
});
|
|
6746
|
+
}
|
|
6747
|
+
}
|
|
6748
|
+
};
|
|
6749
|
+
}
|
|
6750
|
+
|
|
6751
|
+
//#endregion
|
|
6752
|
+
//#region src/agents/system-prompt-skills-jit.ts
|
|
6753
|
+
const MAX_ANCHOR_DESCRIPTION_CHARS = 100;
|
|
6754
|
+
const MAX_AUTO_INJECT_RESULTS = 3;
|
|
6755
|
+
const MAX_AUTO_INJECT_TOTAL_CHARS = 600;
|
|
6756
|
+
/**
|
|
6757
|
+
* Build the anchor list block. Returns "" when no anchor list configured
|
|
6758
|
+
* or in preload mode (anchor list adds value only in jit/hybrid).
|
|
6759
|
+
*/
|
|
6760
|
+
function buildAnchorListBlock(opts) {
|
|
6761
|
+
if (opts.minimalMode) return "";
|
|
6762
|
+
if (opts.discoveryMode !== "jit" && opts.discoveryMode !== "hybrid") return "";
|
|
6763
|
+
const names = (opts.anchorList ?? []).filter((n) => typeof n === "string" && n.trim().length > 0);
|
|
6764
|
+
if (names.length === 0) return "";
|
|
6765
|
+
const lines = [];
|
|
6766
|
+
for (const name of names) {
|
|
6767
|
+
const description = searchSkills(name, 1, opts.workspaceDir)[0]?.description.trim() ?? "";
|
|
6768
|
+
const truncated = description.length > MAX_ANCHOR_DESCRIPTION_CHARS ? `${description.slice(0, MAX_ANCHOR_DESCRIPTION_CHARS - 1)}…` : description;
|
|
6769
|
+
lines.push(truncated ? `- ${name}: ${truncated}` : `- ${name}`);
|
|
6770
|
+
}
|
|
6771
|
+
return [
|
|
6772
|
+
"",
|
|
6773
|
+
"## Anchor Skills",
|
|
6774
|
+
"These skills are always available. Read their SKILL.md via `read` if relevant. For full discovery use the `skill_search` tool.",
|
|
6775
|
+
lines.join("\n"),
|
|
6776
|
+
""
|
|
6777
|
+
].join("\n");
|
|
6778
|
+
}
|
|
6779
|
+
/**
|
|
6780
|
+
* Build the auto-injected matches block based on the user message triggers.
|
|
6781
|
+
* Returns "" when discoveryMode doesn't ask for it, no message available,
|
|
6782
|
+
* no matches found, or in minimal mode.
|
|
6783
|
+
*/
|
|
6784
|
+
function buildAutoInjectBlock(opts) {
|
|
6785
|
+
if (opts.minimalMode) return "";
|
|
6786
|
+
if (opts.discoveryMode !== "jit" && opts.discoveryMode !== "hybrid") return "";
|
|
6787
|
+
const message = (opts.userMessage ?? "").trim();
|
|
6788
|
+
if (!message) return "";
|
|
6789
|
+
const matches = searchSkills(message, MAX_AUTO_INJECT_RESULTS, opts.workspaceDir);
|
|
6790
|
+
if (matches.length === 0) return "";
|
|
6791
|
+
const lines = [];
|
|
6792
|
+
let total = 0;
|
|
6793
|
+
for (const match of matches) {
|
|
6794
|
+
const description = match.description.trim();
|
|
6795
|
+
const truncated = description.length > MAX_ANCHOR_DESCRIPTION_CHARS ? `${description.slice(0, MAX_ANCHOR_DESCRIPTION_CHARS - 1)}…` : description;
|
|
6796
|
+
const skillRef = path.basename(path.dirname(match.path));
|
|
6797
|
+
const line = truncated ? `- ${skillRef}: ${truncated}` : `- ${skillRef}`;
|
|
6798
|
+
if (total + line.length > MAX_AUTO_INJECT_TOTAL_CHARS) break;
|
|
6799
|
+
lines.push(line);
|
|
6800
|
+
total += line.length + 1;
|
|
6801
|
+
}
|
|
6802
|
+
if (lines.length === 0) return "";
|
|
6803
|
+
return [
|
|
6804
|
+
"",
|
|
6805
|
+
"## Possibly Relevant Skills (auto-suggested for this request)",
|
|
6806
|
+
"These skills' triggers matched keywords in your message. Read the SKILL.md if it applies; otherwise ignore and proceed.",
|
|
6807
|
+
lines.join("\n"),
|
|
6808
|
+
""
|
|
6809
|
+
].join("\n");
|
|
6810
|
+
}
|
|
6811
|
+
/** Convenience: build both blocks concatenated. */
|
|
6812
|
+
function buildSkillsJitBlocks(opts) {
|
|
6813
|
+
return `${buildAnchorListBlock(opts)}${buildAutoInjectBlock(opts)}`;
|
|
6814
|
+
}
|
|
6815
|
+
|
|
6525
6816
|
//#endregion
|
|
6526
6817
|
//#region src/agents/system-prompt.ts
|
|
6527
6818
|
function buildSkillsSection(params) {
|
|
6528
6819
|
if (params.isMinimal) return [];
|
|
6820
|
+
if (params.dropCatalog) return [];
|
|
6529
6821
|
const trimmed = params.skillsPrompt?.trim();
|
|
6530
6822
|
if (!trimmed) return [];
|
|
6531
6823
|
return [
|
|
@@ -6630,7 +6922,7 @@ function buildVoiceSection(params) {
|
|
|
6630
6922
|
];
|
|
6631
6923
|
}
|
|
6632
6924
|
function buildVerifyYourWorkSection(params) {
|
|
6633
|
-
if (params.isMinimal) return [];
|
|
6925
|
+
if (params.isMinimal || params.compactMode) return [];
|
|
6634
6926
|
const exec = params.execToolName;
|
|
6635
6927
|
const read = params.readToolName;
|
|
6636
6928
|
return [
|
|
@@ -6819,6 +7111,7 @@ function buildAgentSystemPrompt(params) {
|
|
|
6819
7111
|
const promptMode = params.promptMode ?? "full";
|
|
6820
7112
|
const isMinimal = promptMode === "minimal" || promptMode === "none";
|
|
6821
7113
|
const isCoding = promptMode === "coding";
|
|
7114
|
+
const compactMode = params.compactMode === true;
|
|
6822
7115
|
const sandboxContainerWorkspace = params.sandboxInfo?.containerWorkspaceDir?.trim();
|
|
6823
7116
|
const sanitizedWorkspaceDir = sanitizeForPromptLiteral(params.workspaceDir);
|
|
6824
7117
|
const sanitizedSandboxContainerWorkspace = sandboxContainerWorkspace ? sanitizeForPromptLiteral(sandboxContainerWorkspace) : "";
|
|
@@ -6834,7 +7127,8 @@ function buildAgentSystemPrompt(params) {
|
|
|
6834
7127
|
const skillsSection = buildSkillsSection({
|
|
6835
7128
|
skillsPrompt,
|
|
6836
7129
|
isMinimal,
|
|
6837
|
-
readToolName
|
|
7130
|
+
readToolName,
|
|
7131
|
+
dropCatalog: compactMode && (params.skillsDiscoveryMode === "jit" || params.skillsDiscoveryMode === "hybrid")
|
|
6838
7132
|
});
|
|
6839
7133
|
const memorySection = buildMemorySection({
|
|
6840
7134
|
isMinimal,
|
|
@@ -6877,39 +7171,43 @@ function buildAgentSystemPrompt(params) {
|
|
|
6877
7171
|
"If a task is more complex or takes longer, spawn a sub-agent. Completion is push-based: it will auto-announce when done.",
|
|
6878
7172
|
"Do not poll `subagents list` / `sessions_list` in a loop; only check status on-demand (for intervention, debugging, or when explicitly asked).",
|
|
6879
7173
|
"",
|
|
6880
|
-
|
|
6881
|
-
|
|
6882
|
-
|
|
6883
|
-
|
|
6884
|
-
|
|
6885
|
-
|
|
6886
|
-
|
|
6887
|
-
|
|
6888
|
-
|
|
6889
|
-
|
|
6890
|
-
|
|
6891
|
-
|
|
6892
|
-
|
|
6893
|
-
|
|
7174
|
+
...compactMode ? [] : [
|
|
7175
|
+
"## Tool Call Style",
|
|
7176
|
+
"Default: do not narrate routine, low-risk tool calls (just call the tool).",
|
|
7177
|
+
"Narrate only when it helps: multi-step work, complex/challenging problems, sensitive actions (e.g., deletions), or when the user explicitly asks.",
|
|
7178
|
+
"Keep narration brief and value-dense; avoid repeating obvious steps.",
|
|
7179
|
+
"Use plain human language for narration unless in a technical context.",
|
|
7180
|
+
"",
|
|
7181
|
+
"## Edit Tool Best Practices",
|
|
7182
|
+
"When using the edit tool, the oldText must match the file EXACTLY (whitespace, indentation, and all).",
|
|
7183
|
+
"To avoid match failures:",
|
|
7184
|
+
"- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
|
|
7185
|
+
"- ALWAYS read the file first, then copy the exact text from the read output for oldText.",
|
|
7186
|
+
"- If an edit fails with 'Could not find the exact text', re-read the file and retry with the exact text from the fresh read. Do NOT move on or fix a different issue.",
|
|
7187
|
+
"- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines).",
|
|
7188
|
+
""
|
|
7189
|
+
],
|
|
6894
7190
|
...safetySection,
|
|
6895
|
-
"
|
|
6896
|
-
|
|
6897
|
-
|
|
6898
|
-
|
|
6899
|
-
|
|
6900
|
-
|
|
6901
|
-
|
|
6902
|
-
|
|
6903
|
-
|
|
7191
|
+
...compactMode ? ["For Symi CLI commands, ask the user to run `symi help` and paste the output.", ""] : [
|
|
7192
|
+
"## Symi CLI Quick Reference",
|
|
7193
|
+
"Symi is controlled via subcommands. Do not invent commands.",
|
|
7194
|
+
"To manage the Gateway daemon service (start/stop/restart):",
|
|
7195
|
+
"- symi gateway status",
|
|
7196
|
+
"- symi gateway start",
|
|
7197
|
+
"- symi gateway stop",
|
|
7198
|
+
"- symi gateway restart",
|
|
7199
|
+
"If unsure, ask the user to run `symi help` (or `symi gateway --help`) and paste the output.",
|
|
7200
|
+
""
|
|
7201
|
+
],
|
|
6904
7202
|
...skillsSection,
|
|
6905
7203
|
...memorySection,
|
|
6906
|
-
hasGateway && !isMinimal && !isCoding ? "## Symi Self-Update" : "",
|
|
6907
|
-
hasGateway && !isMinimal && !isCoding ? [
|
|
7204
|
+
hasGateway && !isMinimal && !isCoding && !compactMode ? "## Symi Self-Update" : "",
|
|
7205
|
+
hasGateway && !isMinimal && !isCoding && !compactMode ? [
|
|
6908
7206
|
"Get Updates (self-update) is ONLY allowed when the user explicitly asks for it.",
|
|
6909
7207
|
"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.",
|
|
6910
7208
|
"Actions: config.get, config.schema, config.apply (validate + write full config, then restart), update.run (update deps or git, then restart).",
|
|
6911
7209
|
"After restart, Symi pings the last active session automatically."
|
|
6912
|
-
].join("\n") : "",
|
|
7210
|
+
].join("\n") : hasGateway && !isMinimal && !isCoding && compactMode ? "Gateway destructive actions (config.apply, config.patch, update.run) require explicit user authorization via userRequestAcknowledgment — never invoke speculatively." : "",
|
|
6913
7211
|
hasGateway && !isMinimal && !isCoding ? "" : "",
|
|
6914
7212
|
"",
|
|
6915
7213
|
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "## Model Aliases" : "",
|
|
@@ -6926,7 +7224,8 @@ function buildAgentSystemPrompt(params) {
|
|
|
6926
7224
|
...buildVerifyYourWorkSection({
|
|
6927
7225
|
isMinimal,
|
|
6928
7226
|
execToolName,
|
|
6929
|
-
readToolName
|
|
7227
|
+
readToolName,
|
|
7228
|
+
compactMode
|
|
6930
7229
|
}),
|
|
6931
7230
|
params.sandboxInfo?.enabled ? "## Sandbox" : "",
|
|
6932
7231
|
params.sandboxInfo?.enabled ? [
|
|
@@ -6972,23 +7271,26 @@ function buildAgentSystemPrompt(params) {
|
|
|
6972
7271
|
}
|
|
6973
7272
|
if (params.reactionGuidance) {
|
|
6974
7273
|
const { level, channel } = params.reactionGuidance;
|
|
6975
|
-
|
|
6976
|
-
|
|
6977
|
-
|
|
6978
|
-
|
|
6979
|
-
|
|
6980
|
-
|
|
6981
|
-
|
|
6982
|
-
|
|
6983
|
-
|
|
6984
|
-
"
|
|
6985
|
-
|
|
6986
|
-
|
|
6987
|
-
|
|
6988
|
-
|
|
6989
|
-
|
|
6990
|
-
|
|
6991
|
-
|
|
7274
|
+
if (compactMode) lines.push("## Reactions", `Reactions for ${channel} are in ${level.toUpperCase()} mode — see the reactions-${level} skill (auto-loaded).`, "");
|
|
7275
|
+
else {
|
|
7276
|
+
const guidanceText = level === "minimal" ? [
|
|
7277
|
+
`Reactions are enabled for ${channel} in MINIMAL mode.`,
|
|
7278
|
+
"React ONLY when truly relevant:",
|
|
7279
|
+
"- Acknowledge important user requests or confirmations",
|
|
7280
|
+
"- Express genuine sentiment (humor, appreciation) sparingly",
|
|
7281
|
+
"- Avoid reacting to routine messages or your own replies",
|
|
7282
|
+
"Guideline: at most 1 reaction per 5-10 exchanges."
|
|
7283
|
+
].join("\n") : [
|
|
7284
|
+
`Reactions are enabled for ${channel} in EXTENSIVE mode.`,
|
|
7285
|
+
"Feel free to react liberally:",
|
|
7286
|
+
"- Acknowledge messages with appropriate emojis",
|
|
7287
|
+
"- Express sentiment and personality through reactions",
|
|
7288
|
+
"- React to interesting content, humor, or notable events",
|
|
7289
|
+
"- Use reactions to confirm understanding or agreement",
|
|
7290
|
+
"Guideline: react whenever it feels natural."
|
|
7291
|
+
].join("\n");
|
|
7292
|
+
lines.push("## Reactions", guidanceText, "");
|
|
7293
|
+
}
|
|
6992
7294
|
}
|
|
6993
7295
|
if (reasoningHint) lines.push("## Reasoning Format", reasoningHint, "");
|
|
6994
7296
|
const validContextFiles = (params.contextFiles ?? []).filter((file) => typeof file.path === "string" && file.path.trim().length > 0);
|
|
@@ -7064,16 +7366,23 @@ function buildEmbeddedSystemPrompt(params) {
|
|
|
7064
7366
|
userTime: params.userTime,
|
|
7065
7367
|
userTimeFormat: params.userTimeFormat,
|
|
7066
7368
|
contextFiles: params.contextFiles,
|
|
7067
|
-
memoryCitationsMode: params.memoryCitationsMode
|
|
7369
|
+
memoryCitationsMode: params.memoryCitationsMode,
|
|
7370
|
+
compactMode: params.compactMode,
|
|
7371
|
+
skillsDiscoveryMode: params.skillsDiscoveryMode
|
|
7068
7372
|
});
|
|
7069
7373
|
const promptMode = params.promptMode ?? "full";
|
|
7070
7374
|
const isMinimal = promptMode === "minimal" || promptMode === "none";
|
|
7071
|
-
|
|
7375
|
+
return `${corePrompt}${buildAutoLoadedSkillsBlock({
|
|
7072
7376
|
skillNames: params.autoLoadInlineSkills ?? [],
|
|
7073
7377
|
workspaceDir: params.workspaceDir,
|
|
7074
7378
|
minimalMode: isMinimal
|
|
7075
|
-
})
|
|
7076
|
-
|
|
7379
|
+
})}${buildSkillsJitBlocks({
|
|
7380
|
+
discoveryMode: params.skillsDiscoveryMode,
|
|
7381
|
+
anchorList: params.skillsAnchorList,
|
|
7382
|
+
userMessage: params.currentUserMessage,
|
|
7383
|
+
workspaceDir: params.workspaceDir,
|
|
7384
|
+
minimalMode: isMinimal
|
|
7385
|
+
})}`;
|
|
7077
7386
|
}
|
|
7078
7387
|
function createSystemPromptOverride(systemPrompt) {
|
|
7079
7388
|
const override = systemPrompt.trim();
|
|
@@ -10526,7 +10835,7 @@ async function routeReply(params) {
|
|
|
10526
10835
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
10527
10836
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
10528
10837
|
try {
|
|
10529
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
10838
|
+
const { deliverOutboundPayloads } = await import("./deliver-D5655IkX.js").then((n) => n.n);
|
|
10530
10839
|
return {
|
|
10531
10840
|
ok: true,
|
|
10532
10841
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -40540,6 +40849,7 @@ function createSymiTools(options) {
|
|
|
40540
40849
|
createCronTool({ agentSessionKey: options?.agentSessionKey }),
|
|
40541
40850
|
createTaskListTool({ workspaceDir }),
|
|
40542
40851
|
createTaskCancelTool({ workspaceDir }),
|
|
40852
|
+
createSkillSearchTool({ workspaceDir }),
|
|
40543
40853
|
...messageTool ? [messageTool] : [],
|
|
40544
40854
|
createTtsTool({
|
|
40545
40855
|
agentChannel: options?.agentChannel,
|
|
@@ -44319,7 +44629,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
44319
44629
|
return;
|
|
44320
44630
|
}
|
|
44321
44631
|
try {
|
|
44322
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
44632
|
+
const { deliverOutboundPayloads } = await import("./deliver-D5655IkX.js").then((n) => n.n);
|
|
44323
44633
|
await deliverOutboundPayloads({
|
|
44324
44634
|
cfg: params.cfg,
|
|
44325
44635
|
channel,
|
|
@@ -47765,7 +48075,7 @@ async function describeStickerImage(params) {
|
|
|
47765
48075
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
47766
48076
|
try {
|
|
47767
48077
|
const buffer = await fs$1.readFile(imagePath);
|
|
47768
|
-
const { describeImageWithModel } = await import("./image-
|
|
48078
|
+
const { describeImageWithModel } = await import("./image-BqpivNGG.js").then((n) => n.n);
|
|
47769
48079
|
return (await describeImageWithModel({
|
|
47770
48080
|
buffer,
|
|
47771
48081
|
fileName: "sticker.webp",
|
|
@@ -48188,7 +48498,7 @@ function createWhatsAppLoginTool() {
|
|
|
48188
48498
|
force: Type.Optional(Type.Boolean())
|
|
48189
48499
|
}),
|
|
48190
48500
|
execute: async (_toolCallId, args) => {
|
|
48191
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
48501
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DiyxAHpv.js");
|
|
48192
48502
|
if ((args?.action ?? "start") === "wait") {
|
|
48193
48503
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
48194
48504
|
return {
|
|
@@ -50514,7 +50824,7 @@ async function preflightDiscordMessage(params) {
|
|
|
50514
50824
|
let preflightTranscript;
|
|
50515
50825
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
50516
50826
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
50517
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
50827
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-CbyJ_yDs.js");
|
|
50518
50828
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
50519
50829
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
50520
50830
|
ctx: {
|
|
@@ -54520,27 +54830,27 @@ function isVoiceChannelType(type) {
|
|
|
54520
54830
|
function createDefaultDeps() {
|
|
54521
54831
|
return {
|
|
54522
54832
|
sendMessageWhatsApp: async (...args) => {
|
|
54523
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
54833
|
+
const { sendMessageWhatsApp } = await import("./web-BSf9H0_w.js");
|
|
54524
54834
|
return await sendMessageWhatsApp(...args);
|
|
54525
54835
|
},
|
|
54526
54836
|
sendMessageTelegram: async (...args) => {
|
|
54527
|
-
const { sendMessageTelegram } = await import("./send-
|
|
54837
|
+
const { sendMessageTelegram } = await import("./send-90t8KM2a.js").then((n) => n.l);
|
|
54528
54838
|
return await sendMessageTelegram(...args);
|
|
54529
54839
|
},
|
|
54530
54840
|
sendMessageDiscord: async (...args) => {
|
|
54531
|
-
const { sendMessageDiscord } = await import("./send-
|
|
54841
|
+
const { sendMessageDiscord } = await import("./send-9ktd0CBZ.js").then((n) => n.t);
|
|
54532
54842
|
return await sendMessageDiscord(...args);
|
|
54533
54843
|
},
|
|
54534
54844
|
sendMessageSlack: async (...args) => {
|
|
54535
|
-
const { sendMessageSlack } = await import("./send-
|
|
54845
|
+
const { sendMessageSlack } = await import("./send-B7kMNQ-T.js").then((n) => n.n);
|
|
54536
54846
|
return await sendMessageSlack(...args);
|
|
54537
54847
|
},
|
|
54538
54848
|
sendMessageSignal: async (...args) => {
|
|
54539
|
-
const { sendMessageSignal } = await import("./send-
|
|
54849
|
+
const { sendMessageSignal } = await import("./send-zMHWALCW.js").then((n) => n.i);
|
|
54540
54850
|
return await sendMessageSignal(...args);
|
|
54541
54851
|
},
|
|
54542
54852
|
sendMessageIMessage: async (...args) => {
|
|
54543
|
-
const { sendMessageIMessage } = await import("./send-
|
|
54853
|
+
const { sendMessageIMessage } = await import("./send-CQj8FBE3.js").then((n) => n.n);
|
|
54544
54854
|
return await sendMessageIMessage(...args);
|
|
54545
54855
|
}
|
|
54546
54856
|
};
|
|
@@ -65370,7 +65680,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
65370
65680
|
});
|
|
65371
65681
|
const deliverSlashPayloads = async (replies) => {
|
|
65372
65682
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
65373
|
-
import("./replies-
|
|
65683
|
+
import("./replies-A6SltFjk.js").then((n) => n.r),
|
|
65374
65684
|
import("./chunk-BRe1o4Af.js").then((n) => n.s),
|
|
65375
65685
|
import("./markdown-tables-x2Xe2UXh.js").then((n) => n.t)
|
|
65376
65686
|
]);
|
|
@@ -67643,7 +67953,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
67643
67953
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
67644
67954
|
let preflightTranscript;
|
|
67645
67955
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
67646
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
67956
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-CbyJ_yDs.js");
|
|
67647
67957
|
preflightTranscript = await transcribeFirstAudio({
|
|
67648
67958
|
ctx: {
|
|
67649
67959
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -69788,23 +70098,23 @@ let webLoginQrPromise = null;
|
|
|
69788
70098
|
let webChannelPromise = null;
|
|
69789
70099
|
let whatsappActionsPromise = null;
|
|
69790
70100
|
function loadWebOutbound() {
|
|
69791
|
-
webOutboundPromise ??= import("./outbound-
|
|
70101
|
+
webOutboundPromise ??= import("./outbound-BaF9dF-H.js").then((n) => n.t);
|
|
69792
70102
|
return webOutboundPromise;
|
|
69793
70103
|
}
|
|
69794
70104
|
function loadWebLogin() {
|
|
69795
|
-
webLoginPromise ??= import("./login-
|
|
70105
|
+
webLoginPromise ??= import("./login-DqhTprwd.js").then((n) => n.n);
|
|
69796
70106
|
return webLoginPromise;
|
|
69797
70107
|
}
|
|
69798
70108
|
function loadWebLoginQr() {
|
|
69799
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
70109
|
+
webLoginQrPromise ??= import("./login-qr-DiyxAHpv.js");
|
|
69800
70110
|
return webLoginQrPromise;
|
|
69801
70111
|
}
|
|
69802
70112
|
function loadWebChannel() {
|
|
69803
|
-
webChannelPromise ??= import("./web-
|
|
70113
|
+
webChannelPromise ??= import("./web-BSf9H0_w.js");
|
|
69804
70114
|
return webChannelPromise;
|
|
69805
70115
|
}
|
|
69806
70116
|
function loadWhatsAppActions() {
|
|
69807
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
70117
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-DRvUrapa.js");
|
|
69808
70118
|
return whatsappActionsPromise;
|
|
69809
70119
|
}
|
|
69810
70120
|
function createPluginRuntime() {
|
|
@@ -73807,7 +74117,11 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
73807
74117
|
userTimeFormat,
|
|
73808
74118
|
contextFiles,
|
|
73809
74119
|
memoryCitationsMode: params.config?.memory?.citations,
|
|
73810
|
-
autoLoadInlineSkills: params.config?.skills?.autoLoadInline
|
|
74120
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
|
|
74121
|
+
skillsDiscoveryMode: params.config?.skills?.discoveryMode,
|
|
74122
|
+
skillsAnchorList: params.config?.skills?.anchorList,
|
|
74123
|
+
currentUserMessage: void 0,
|
|
74124
|
+
compactMode: params.config?.prompt?.compactMode
|
|
73811
74125
|
}));
|
|
73812
74126
|
const sessionLock = await acquireSessionWriteLock({
|
|
73813
74127
|
sessionFile: params.sessionFile,
|
|
@@ -77998,7 +78312,11 @@ async function runEmbeddedAttempt(params) {
|
|
|
77998
78312
|
userTimeFormat,
|
|
77999
78313
|
contextFiles,
|
|
78000
78314
|
memoryCitationsMode: params.config?.memory?.citations,
|
|
78001
|
-
autoLoadInlineSkills: params.config?.skills?.autoLoadInline
|
|
78315
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
|
|
78316
|
+
skillsDiscoveryMode: params.config?.skills?.discoveryMode,
|
|
78317
|
+
skillsAnchorList: params.config?.skills?.anchorList,
|
|
78318
|
+
currentUserMessage: params.prompt,
|
|
78319
|
+
compactMode: params.config?.prompt?.compactMode
|
|
78002
78320
|
});
|
|
78003
78321
|
const systemPromptReport = buildSystemPromptReport({
|
|
78004
78322
|
source: "run",
|