@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
|
@@ -12,21 +12,21 @@ import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY
|
|
|
12
12
|
import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTelegramAccountIds, d as resolveSlackAccount, g as listEnabledDiscordAccounts, h as createDiscordActionGate, i as isWhatsAppGroupJid, l as resolveTelegramAccount, m as resolveSlackBotToken, n as listChannelPlugins, o as createTelegramActionGate, p as resolveSlackAppToken, r as normalizeChannelId$1, s as listEnabledTelegramAccounts, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeDiscordToken } from "./plugins-71oIavrF.js";
|
|
13
13
|
import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-DDEyGwby.js";
|
|
14
14
|
import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
|
|
15
|
-
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-
|
|
16
|
-
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-
|
|
17
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver
|
|
15
|
+
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-F2Cpm-SJ.js";
|
|
16
|
+
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-D27q8Oqo.js";
|
|
17
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-XYF4JahT.js";
|
|
18
18
|
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-Kbl70eCP.js";
|
|
19
19
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-C1vRJs5w.js";
|
|
20
20
|
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-8zZqL37v.js";
|
|
21
|
-
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-
|
|
21
|
+
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-depbZ9aA.js";
|
|
22
22
|
import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-ByaQt43P.js";
|
|
23
23
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-j5tVLINv.js";
|
|
24
24
|
import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-BQINJQIT.js";
|
|
25
|
-
import { $ as mergeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as deliveryContextKey, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-
|
|
26
|
-
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-
|
|
25
|
+
import { $ as mergeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as deliveryContextKey, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-DuZtk5SK.js";
|
|
26
|
+
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-D7Zr88dI.js";
|
|
27
27
|
import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-DWdYdchb.js";
|
|
28
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
29
|
-
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-
|
|
28
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-B-hW5hrK.js";
|
|
29
|
+
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, h as parseFrontmatterBlock, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-D0hfZgFz.js";
|
|
30
30
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-CPfngF0S.js";
|
|
31
31
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
|
|
32
32
|
import { n as getMediaDir, r as saveMediaBuffer } from "./store-bnzGvI16.js";
|
|
@@ -36,8 +36,8 @@ import { t as resolveIMessageAccount } from "./accounts-DImOt9jX.js";
|
|
|
36
36
|
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-DkMamAQ-.js";
|
|
37
37
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-C8Tqw4td.js";
|
|
38
38
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-ChC2CXaN.js";
|
|
39
|
-
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-
|
|
40
|
-
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-
|
|
39
|
+
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-BjyeKf1c.js";
|
|
40
|
+
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-Bj8GFlcZ.js";
|
|
41
41
|
import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-479FB0St.js";
|
|
42
42
|
import { n as retryAsync } from "./retry-QGp0jvVi.js";
|
|
43
43
|
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-Dm716SF3.js";
|
|
@@ -47,20 +47,20 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-DwuL
|
|
|
47
47
|
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-BuSWcEvl.js";
|
|
48
48
|
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-0kwEfxD4.js";
|
|
49
49
|
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-ke7KirEH.js";
|
|
50
|
-
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-
|
|
50
|
+
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-QmLQo8Tj.js";
|
|
51
51
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CgGv6nTy.js";
|
|
52
|
-
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-
|
|
52
|
+
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-Dbs3i8HW.js";
|
|
53
53
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-WLZaC77l.js";
|
|
54
54
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-BaoETsQI.js";
|
|
55
55
|
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-C-6tM-GK.js";
|
|
56
56
|
import { n as normalizePollInput } from "./polls-Coxe0Akm.js";
|
|
57
57
|
import { t as convertMarkdownTables } from "./tables-BE0lT1IV.js";
|
|
58
|
-
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-
|
|
59
|
-
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-
|
|
58
|
+
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-Dj6_LS_W.js";
|
|
59
|
+
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-B0szkIfv.js";
|
|
60
60
|
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Dd2_hyM2.js";
|
|
61
61
|
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-CFRe6XNa.js";
|
|
62
62
|
import { t as makeProxyFetch } from "./proxy-DaT-KQ7w.js";
|
|
63
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
63
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-Dmo0pSSf.js";
|
|
64
64
|
import { t as getActiveWebListener } from "./active-listener-OKZn7EWc.js";
|
|
65
65
|
import { createRequire } from "node:module";
|
|
66
66
|
import * as path$1 from "node:path";
|
|
@@ -3473,7 +3473,7 @@ async function getMemorySearchManager(params) {
|
|
|
3473
3473
|
const wrapper = new FallbackMemoryManager({
|
|
3474
3474
|
primary,
|
|
3475
3475
|
fallbackFactory: async () => {
|
|
3476
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3476
|
+
const { MemoryIndexManager } = await import("./manager-Bj8GFlcZ.js").then((n) => n.n);
|
|
3477
3477
|
return await MemoryIndexManager.get(params);
|
|
3478
3478
|
}
|
|
3479
3479
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -3486,7 +3486,7 @@ async function getMemorySearchManager(params) {
|
|
|
3486
3486
|
}
|
|
3487
3487
|
}
|
|
3488
3488
|
try {
|
|
3489
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3489
|
+
const { MemoryIndexManager } = await import("./manager-Bj8GFlcZ.js").then((n) => n.n);
|
|
3490
3490
|
return { manager: await MemoryIndexManager.get(params) };
|
|
3491
3491
|
} catch (err) {
|
|
3492
3492
|
return {
|
|
@@ -7367,7 +7367,7 @@ async function routeReply(params) {
|
|
|
7367
7367
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
7368
7368
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
7369
7369
|
try {
|
|
7370
|
-
const { deliverOutboundPayloads } = await import("./deliver
|
|
7370
|
+
const { deliverOutboundPayloads } = await import("./deliver-XYF4JahT.js").then((n) => n.n);
|
|
7371
7371
|
return {
|
|
7372
7372
|
ok: true,
|
|
7373
7373
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -21604,6 +21604,7 @@ function sanitizeForPromptLiteral(value) {
|
|
|
21604
21604
|
//#region src/agents/system-prompt.ts
|
|
21605
21605
|
function buildSkillsSection(params) {
|
|
21606
21606
|
if (params.isMinimal) return [];
|
|
21607
|
+
if (params.dropCatalog) return [];
|
|
21607
21608
|
const trimmed = params.skillsPrompt?.trim();
|
|
21608
21609
|
if (!trimmed) return [];
|
|
21609
21610
|
return [
|
|
@@ -21708,7 +21709,7 @@ function buildVoiceSection(params) {
|
|
|
21708
21709
|
];
|
|
21709
21710
|
}
|
|
21710
21711
|
function buildVerifyYourWorkSection(params) {
|
|
21711
|
-
if (params.isMinimal) return [];
|
|
21712
|
+
if (params.isMinimal || params.compactMode) return [];
|
|
21712
21713
|
const exec = params.execToolName;
|
|
21713
21714
|
const read = params.readToolName;
|
|
21714
21715
|
return [
|
|
@@ -21897,6 +21898,7 @@ function buildAgentSystemPrompt(params) {
|
|
|
21897
21898
|
const promptMode = params.promptMode ?? "full";
|
|
21898
21899
|
const isMinimal = promptMode === "minimal" || promptMode === "none";
|
|
21899
21900
|
const isCoding = promptMode === "coding";
|
|
21901
|
+
const compactMode = params.compactMode === true;
|
|
21900
21902
|
const sandboxContainerWorkspace = params.sandboxInfo?.containerWorkspaceDir?.trim();
|
|
21901
21903
|
const sanitizedWorkspaceDir = sanitizeForPromptLiteral(params.workspaceDir);
|
|
21902
21904
|
const sanitizedSandboxContainerWorkspace = sandboxContainerWorkspace ? sanitizeForPromptLiteral(sandboxContainerWorkspace) : "";
|
|
@@ -21912,7 +21914,8 @@ function buildAgentSystemPrompt(params) {
|
|
|
21912
21914
|
const skillsSection = buildSkillsSection({
|
|
21913
21915
|
skillsPrompt,
|
|
21914
21916
|
isMinimal,
|
|
21915
|
-
readToolName
|
|
21917
|
+
readToolName,
|
|
21918
|
+
dropCatalog: compactMode && (params.skillsDiscoveryMode === "jit" || params.skillsDiscoveryMode === "hybrid")
|
|
21916
21919
|
});
|
|
21917
21920
|
const memorySection = buildMemorySection({
|
|
21918
21921
|
isMinimal,
|
|
@@ -21955,39 +21958,43 @@ function buildAgentSystemPrompt(params) {
|
|
|
21955
21958
|
"If a task is more complex or takes longer, spawn a sub-agent. Completion is push-based: it will auto-announce when done.",
|
|
21956
21959
|
"Do not poll `subagents list` / `sessions_list` in a loop; only check status on-demand (for intervention, debugging, or when explicitly asked).",
|
|
21957
21960
|
"",
|
|
21958
|
-
|
|
21959
|
-
|
|
21960
|
-
|
|
21961
|
-
|
|
21962
|
-
|
|
21963
|
-
|
|
21964
|
-
|
|
21965
|
-
|
|
21966
|
-
|
|
21967
|
-
|
|
21968
|
-
|
|
21969
|
-
|
|
21970
|
-
|
|
21971
|
-
|
|
21961
|
+
...compactMode ? [] : [
|
|
21962
|
+
"## Tool Call Style",
|
|
21963
|
+
"Default: do not narrate routine, low-risk tool calls (just call the tool).",
|
|
21964
|
+
"Narrate only when it helps: multi-step work, complex/challenging problems, sensitive actions (e.g., deletions), or when the user explicitly asks.",
|
|
21965
|
+
"Keep narration brief and value-dense; avoid repeating obvious steps.",
|
|
21966
|
+
"Use plain human language for narration unless in a technical context.",
|
|
21967
|
+
"",
|
|
21968
|
+
"## Edit Tool Best Practices",
|
|
21969
|
+
"When using the edit tool, the oldText must match the file EXACTLY (whitespace, indentation, and all).",
|
|
21970
|
+
"To avoid match failures:",
|
|
21971
|
+
"- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
|
|
21972
|
+
"- ALWAYS read the file first, then copy the exact text from the read output for oldText.",
|
|
21973
|
+
"- 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.",
|
|
21974
|
+
"- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines).",
|
|
21975
|
+
""
|
|
21976
|
+
],
|
|
21972
21977
|
...safetySection,
|
|
21973
|
-
"
|
|
21974
|
-
|
|
21975
|
-
|
|
21976
|
-
|
|
21977
|
-
|
|
21978
|
-
|
|
21979
|
-
|
|
21980
|
-
|
|
21981
|
-
|
|
21978
|
+
...compactMode ? ["For Symi CLI commands, ask the user to run `symi help` and paste the output.", ""] : [
|
|
21979
|
+
"## Symi CLI Quick Reference",
|
|
21980
|
+
"Symi is controlled via subcommands. Do not invent commands.",
|
|
21981
|
+
"To manage the Gateway daemon service (start/stop/restart):",
|
|
21982
|
+
"- symi gateway status",
|
|
21983
|
+
"- symi gateway start",
|
|
21984
|
+
"- symi gateway stop",
|
|
21985
|
+
"- symi gateway restart",
|
|
21986
|
+
"If unsure, ask the user to run `symi help` (or `symi gateway --help`) and paste the output.",
|
|
21987
|
+
""
|
|
21988
|
+
],
|
|
21982
21989
|
...skillsSection,
|
|
21983
21990
|
...memorySection,
|
|
21984
|
-
hasGateway && !isMinimal && !isCoding ? "## Symi Self-Update" : "",
|
|
21985
|
-
hasGateway && !isMinimal && !isCoding ? [
|
|
21991
|
+
hasGateway && !isMinimal && !isCoding && !compactMode ? "## Symi Self-Update" : "",
|
|
21992
|
+
hasGateway && !isMinimal && !isCoding && !compactMode ? [
|
|
21986
21993
|
"Get Updates (self-update) is ONLY allowed when the user explicitly asks for it.",
|
|
21987
21994
|
"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.",
|
|
21988
21995
|
"Actions: config.get, config.schema, config.apply (validate + write full config, then restart), update.run (update deps or git, then restart).",
|
|
21989
21996
|
"After restart, Symi pings the last active session automatically."
|
|
21990
|
-
].join("\n") : "",
|
|
21997
|
+
].join("\n") : hasGateway && !isMinimal && !isCoding && compactMode ? "Gateway destructive actions (config.apply, config.patch, update.run) require explicit user authorization via userRequestAcknowledgment — never invoke speculatively." : "",
|
|
21991
21998
|
hasGateway && !isMinimal && !isCoding ? "" : "",
|
|
21992
21999
|
"",
|
|
21993
22000
|
params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "## Model Aliases" : "",
|
|
@@ -22004,7 +22011,8 @@ function buildAgentSystemPrompt(params) {
|
|
|
22004
22011
|
...buildVerifyYourWorkSection({
|
|
22005
22012
|
isMinimal,
|
|
22006
22013
|
execToolName,
|
|
22007
|
-
readToolName
|
|
22014
|
+
readToolName,
|
|
22015
|
+
compactMode
|
|
22008
22016
|
}),
|
|
22009
22017
|
params.sandboxInfo?.enabled ? "## Sandbox" : "",
|
|
22010
22018
|
params.sandboxInfo?.enabled ? [
|
|
@@ -22050,23 +22058,26 @@ function buildAgentSystemPrompt(params) {
|
|
|
22050
22058
|
}
|
|
22051
22059
|
if (params.reactionGuidance) {
|
|
22052
22060
|
const { level, channel } = params.reactionGuidance;
|
|
22053
|
-
|
|
22054
|
-
|
|
22055
|
-
|
|
22056
|
-
|
|
22057
|
-
|
|
22058
|
-
|
|
22059
|
-
|
|
22060
|
-
|
|
22061
|
-
|
|
22062
|
-
"
|
|
22063
|
-
|
|
22064
|
-
|
|
22065
|
-
|
|
22066
|
-
|
|
22067
|
-
|
|
22068
|
-
|
|
22069
|
-
|
|
22061
|
+
if (compactMode) lines.push("## Reactions", `Reactions for ${channel} are in ${level.toUpperCase()} mode — see the reactions-${level} skill (auto-loaded).`, "");
|
|
22062
|
+
else {
|
|
22063
|
+
const guidanceText = level === "minimal" ? [
|
|
22064
|
+
`Reactions are enabled for ${channel} in MINIMAL mode.`,
|
|
22065
|
+
"React ONLY when truly relevant:",
|
|
22066
|
+
"- Acknowledge important user requests or confirmations",
|
|
22067
|
+
"- Express genuine sentiment (humor, appreciation) sparingly",
|
|
22068
|
+
"- Avoid reacting to routine messages or your own replies",
|
|
22069
|
+
"Guideline: at most 1 reaction per 5-10 exchanges."
|
|
22070
|
+
].join("\n") : [
|
|
22071
|
+
`Reactions are enabled for ${channel} in EXTENSIVE mode.`,
|
|
22072
|
+
"Feel free to react liberally:",
|
|
22073
|
+
"- Acknowledge messages with appropriate emojis",
|
|
22074
|
+
"- Express sentiment and personality through reactions",
|
|
22075
|
+
"- React to interesting content, humor, or notable events",
|
|
22076
|
+
"- Use reactions to confirm understanding or agreement",
|
|
22077
|
+
"Guideline: react whenever it feels natural."
|
|
22078
|
+
].join("\n");
|
|
22079
|
+
lines.push("## Reactions", guidanceText, "");
|
|
22080
|
+
}
|
|
22070
22081
|
}
|
|
22071
22082
|
if (reasoningHint) lines.push("## Reasoning Format", reasoningHint, "");
|
|
22072
22083
|
const validContextFiles = (params.contextFiles ?? []).filter((file) => typeof file.path === "string" && file.path.trim().length > 0);
|
|
@@ -36293,6 +36304,231 @@ function createSessionsSpawnTool(opts) {
|
|
|
36293
36304
|
};
|
|
36294
36305
|
}
|
|
36295
36306
|
|
|
36307
|
+
//#endregion
|
|
36308
|
+
//#region src/agents/skills/triggers.ts
|
|
36309
|
+
const QUOTE_RE = /^["'`](.*)["'`]$/;
|
|
36310
|
+
const ARRAY_FORM_RE = /^\[(.*)\]$/s;
|
|
36311
|
+
function stripWrappingQuotes(s) {
|
|
36312
|
+
const m = s.trim().match(QUOTE_RE);
|
|
36313
|
+
return m ? m[1] : s.trim();
|
|
36314
|
+
}
|
|
36315
|
+
/** Parse a single trigger value, dropping empty / whitespace-only entries. */
|
|
36316
|
+
function cleanTrigger(raw) {
|
|
36317
|
+
const trimmed = stripWrappingQuotes(raw).toLowerCase();
|
|
36318
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
36319
|
+
}
|
|
36320
|
+
/**
|
|
36321
|
+
* Parse the value of a `triggers:` frontmatter field into a string[].
|
|
36322
|
+
* Accepts both inline-array form `[a, b, "c d"]` and YAML-list form
|
|
36323
|
+
* (multiline with leading hyphens). Returns deduped lowercased trigger
|
|
36324
|
+
* strings, or empty array on unparseable / missing input.
|
|
36325
|
+
*/
|
|
36326
|
+
function parseTriggersValue(raw) {
|
|
36327
|
+
if (typeof raw !== "string") return [];
|
|
36328
|
+
const trimmed = raw.trim();
|
|
36329
|
+
if (!trimmed) return [];
|
|
36330
|
+
const items = [];
|
|
36331
|
+
const arrayMatch = trimmed.match(ARRAY_FORM_RE);
|
|
36332
|
+
if (arrayMatch) {
|
|
36333
|
+
const inner = arrayMatch[1];
|
|
36334
|
+
let buf = "";
|
|
36335
|
+
let inQuote = null;
|
|
36336
|
+
for (const ch of inner) {
|
|
36337
|
+
if (inQuote) {
|
|
36338
|
+
if (ch === inQuote) inQuote = null;
|
|
36339
|
+
else buf += ch;
|
|
36340
|
+
continue;
|
|
36341
|
+
}
|
|
36342
|
+
if (ch === "\"" || ch === "'") {
|
|
36343
|
+
inQuote = ch;
|
|
36344
|
+
continue;
|
|
36345
|
+
}
|
|
36346
|
+
if (ch === ",") {
|
|
36347
|
+
const cleaned = cleanTrigger(buf);
|
|
36348
|
+
if (cleaned) items.push(cleaned);
|
|
36349
|
+
buf = "";
|
|
36350
|
+
continue;
|
|
36351
|
+
}
|
|
36352
|
+
buf += ch;
|
|
36353
|
+
}
|
|
36354
|
+
const cleaned = cleanTrigger(buf);
|
|
36355
|
+
if (cleaned) items.push(cleaned);
|
|
36356
|
+
} else for (const line of trimmed.split("\n")) {
|
|
36357
|
+
const ltrim = line.trimStart();
|
|
36358
|
+
if (ltrim.startsWith("- ")) {
|
|
36359
|
+
const cleaned = cleanTrigger(ltrim.slice(2));
|
|
36360
|
+
if (cleaned) items.push(cleaned);
|
|
36361
|
+
} else if (ltrim && !ltrim.startsWith("#")) {
|
|
36362
|
+
const cleaned = cleanTrigger(ltrim);
|
|
36363
|
+
if (cleaned) items.push(cleaned);
|
|
36364
|
+
}
|
|
36365
|
+
}
|
|
36366
|
+
const seen = /* @__PURE__ */ new Set();
|
|
36367
|
+
const out = [];
|
|
36368
|
+
for (const t of items) if (!seen.has(t)) {
|
|
36369
|
+
seen.add(t);
|
|
36370
|
+
out.push(t);
|
|
36371
|
+
}
|
|
36372
|
+
return out;
|
|
36373
|
+
}
|
|
36374
|
+
/**
|
|
36375
|
+
* Extract triggers from a parsed frontmatter record. Returns empty array
|
|
36376
|
+
* when the field is absent or unparseable.
|
|
36377
|
+
*/
|
|
36378
|
+
function getSkillTriggers(frontmatter) {
|
|
36379
|
+
return parseTriggersValue(frontmatter.triggers);
|
|
36380
|
+
}
|
|
36381
|
+
|
|
36382
|
+
//#endregion
|
|
36383
|
+
//#region src/agents/tools/skill-search-tool.ts
|
|
36384
|
+
const SkillSearchToolSchema = Type.Object({
|
|
36385
|
+
query: Type.String({
|
|
36386
|
+
minLength: 1,
|
|
36387
|
+
description: "Intent description (2-8 words). Match by trigger keywords first, then description text."
|
|
36388
|
+
}),
|
|
36389
|
+
limit: Type.Optional(Type.Number({
|
|
36390
|
+
minimum: 1,
|
|
36391
|
+
maximum: 10,
|
|
36392
|
+
description: "Max results to return (default 5, capped at 10)."
|
|
36393
|
+
}))
|
|
36394
|
+
});
|
|
36395
|
+
const CACHE_TTL_MS = 6e4;
|
|
36396
|
+
const SAFE_NAME_RE = /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/;
|
|
36397
|
+
function loadSkillFromDir(dir, source) {
|
|
36398
|
+
const name = path.basename(dir);
|
|
36399
|
+
if (!SAFE_NAME_RE.test(name)) return null;
|
|
36400
|
+
const file = path.join(dir, "SKILL.md");
|
|
36401
|
+
let raw;
|
|
36402
|
+
try {
|
|
36403
|
+
if (!fs.statSync(file).isFile()) return null;
|
|
36404
|
+
raw = fs.readFileSync(file, "utf8");
|
|
36405
|
+
} catch {
|
|
36406
|
+
return null;
|
|
36407
|
+
}
|
|
36408
|
+
const fm = parseFrontmatterBlock(raw);
|
|
36409
|
+
return {
|
|
36410
|
+
name,
|
|
36411
|
+
description: (fm.description ?? "").trim(),
|
|
36412
|
+
path: file,
|
|
36413
|
+
triggers: getSkillTriggers(fm),
|
|
36414
|
+
source
|
|
36415
|
+
};
|
|
36416
|
+
}
|
|
36417
|
+
function listSkillDirs(root) {
|
|
36418
|
+
const skillsDir = path.join(root, "skills");
|
|
36419
|
+
let entries;
|
|
36420
|
+
try {
|
|
36421
|
+
entries = fs.readdirSync(skillsDir, { withFileTypes: true });
|
|
36422
|
+
} catch {
|
|
36423
|
+
return [];
|
|
36424
|
+
}
|
|
36425
|
+
return entries.filter((e) => e.isDirectory()).map((e) => path.join(skillsDir, e.name));
|
|
36426
|
+
}
|
|
36427
|
+
let cachedPackageRoot$1;
|
|
36428
|
+
const cachePerWorkspace = /* @__PURE__ */ new Map();
|
|
36429
|
+
function getPackageRoot$1() {
|
|
36430
|
+
if (cachedPackageRoot$1 === void 0) cachedPackageRoot$1 = resolveSymiPackageRootSync({});
|
|
36431
|
+
return cachedPackageRoot$1;
|
|
36432
|
+
}
|
|
36433
|
+
function loadAllSkills(workspaceDir) {
|
|
36434
|
+
const cacheKey = workspaceDir ?? "";
|
|
36435
|
+
const now = Date.now();
|
|
36436
|
+
const existing = cachePerWorkspace.get(cacheKey);
|
|
36437
|
+
if (existing && now - existing.loadedAt < CACHE_TTL_MS) return existing.skills;
|
|
36438
|
+
const seen = /* @__PURE__ */ new Map();
|
|
36439
|
+
if (workspaceDir) for (const dir of listSkillDirs(workspaceDir)) {
|
|
36440
|
+
const skill = loadSkillFromDir(dir, "workspace");
|
|
36441
|
+
if (skill && !seen.has(skill.name)) seen.set(skill.name, skill);
|
|
36442
|
+
}
|
|
36443
|
+
const packageRoot = getPackageRoot$1();
|
|
36444
|
+
if (packageRoot) for (const dir of listSkillDirs(packageRoot)) {
|
|
36445
|
+
const skill = loadSkillFromDir(dir, "bundled");
|
|
36446
|
+
if (skill && !seen.has(skill.name)) seen.set(skill.name, skill);
|
|
36447
|
+
}
|
|
36448
|
+
const skills = [...seen.values()];
|
|
36449
|
+
cachePerWorkspace.set(cacheKey, {
|
|
36450
|
+
skills,
|
|
36451
|
+
loadedAt: now
|
|
36452
|
+
});
|
|
36453
|
+
return skills;
|
|
36454
|
+
}
|
|
36455
|
+
const TOKEN_SPLIT_RE = /[^\w/]+/;
|
|
36456
|
+
function tokenizeQuery(raw) {
|
|
36457
|
+
return raw.toLowerCase().split(TOKEN_SPLIT_RE).filter((t) => t.length >= 2);
|
|
36458
|
+
}
|
|
36459
|
+
/**
|
|
36460
|
+
* Score a query against one skill's triggers + description.
|
|
36461
|
+
* - Trigger score: ratio of query tokens that appear in the trigger set.
|
|
36462
|
+
* - FTS score: 0.4 × ratio of query tokens that appear in the description
|
|
36463
|
+
* (case-insensitive substring match).
|
|
36464
|
+
* - Final = max(trigger, fts) so trigger matches always beat descriptions.
|
|
36465
|
+
* - Returns 0 for "no signal at all" (caller should drop these).
|
|
36466
|
+
*/
|
|
36467
|
+
function scoreSkillMatch(skill, queryTokens) {
|
|
36468
|
+
if (queryTokens.length === 0) return 0;
|
|
36469
|
+
const triggerSet = new Set(skill.triggers.map((t) => t.toLowerCase()));
|
|
36470
|
+
const description = skill.description.toLowerCase();
|
|
36471
|
+
let triggerHits = 0;
|
|
36472
|
+
let ftsHits = 0;
|
|
36473
|
+
for (const token of queryTokens) if (triggerSet.has(token)) triggerHits += 1;
|
|
36474
|
+
else if (description.includes(token)) ftsHits += 1;
|
|
36475
|
+
const triggerScore = triggerHits / queryTokens.length;
|
|
36476
|
+
const ftsScore = ftsHits / queryTokens.length * .4;
|
|
36477
|
+
return Math.max(triggerScore, ftsScore);
|
|
36478
|
+
}
|
|
36479
|
+
/**
|
|
36480
|
+
* Pure-function search; exported for testing without going through the
|
|
36481
|
+
* tool execute wrapper.
|
|
36482
|
+
*/
|
|
36483
|
+
function searchSkills(query, limit, workspaceDir) {
|
|
36484
|
+
const tokens = tokenizeQuery(query);
|
|
36485
|
+
if (tokens.length === 0) return [];
|
|
36486
|
+
const all = loadAllSkills(workspaceDir);
|
|
36487
|
+
const scored = [];
|
|
36488
|
+
for (const skill of all) {
|
|
36489
|
+
const score = scoreSkillMatch(skill, tokens);
|
|
36490
|
+
if (score > 0) scored.push({
|
|
36491
|
+
name: skill.name,
|
|
36492
|
+
description: skill.description,
|
|
36493
|
+
path: skill.path,
|
|
36494
|
+
score
|
|
36495
|
+
});
|
|
36496
|
+
}
|
|
36497
|
+
scored.sort((a, b) => b.score - a.score || a.name.localeCompare(b.name));
|
|
36498
|
+
return scored.slice(0, limit);
|
|
36499
|
+
}
|
|
36500
|
+
function createSkillSearchTool(opts) {
|
|
36501
|
+
return {
|
|
36502
|
+
name: "skill_search",
|
|
36503
|
+
label: "skill_search",
|
|
36504
|
+
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.",
|
|
36505
|
+
parameters: SkillSearchToolSchema,
|
|
36506
|
+
execute: async (_toolCallId, args) => {
|
|
36507
|
+
const params = args;
|
|
36508
|
+
const query = typeof params.query === "string" ? params.query.trim() : "";
|
|
36509
|
+
if (!query) return jsonResult({
|
|
36510
|
+
ok: false,
|
|
36511
|
+
error: "skill_search requires a non-empty `query` string."
|
|
36512
|
+
});
|
|
36513
|
+
const limit = typeof params.limit === "number" && Number.isFinite(params.limit) ? Math.min(10, Math.max(1, Math.floor(params.limit))) : 5;
|
|
36514
|
+
try {
|
|
36515
|
+
return jsonResult({
|
|
36516
|
+
ok: true,
|
|
36517
|
+
query,
|
|
36518
|
+
matches: searchSkills(query, limit, opts?.workspaceDir)
|
|
36519
|
+
});
|
|
36520
|
+
} catch (err) {
|
|
36521
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
36522
|
+
logWarn(`skill_search failed: ${message}`);
|
|
36523
|
+
return jsonResult({
|
|
36524
|
+
ok: false,
|
|
36525
|
+
error: message
|
|
36526
|
+
});
|
|
36527
|
+
}
|
|
36528
|
+
}
|
|
36529
|
+
};
|
|
36530
|
+
}
|
|
36531
|
+
|
|
36296
36532
|
//#endregion
|
|
36297
36533
|
//#region src/agents/tools/subagents-tool.ts
|
|
36298
36534
|
const SUBAGENT_ACTIONS = [
|
|
@@ -38353,6 +38589,7 @@ function createSymiTools(options) {
|
|
|
38353
38589
|
createCronTool({ agentSessionKey: options?.agentSessionKey }),
|
|
38354
38590
|
createTaskListTool({ workspaceDir }),
|
|
38355
38591
|
createTaskCancelTool({ workspaceDir }),
|
|
38592
|
+
createSkillSearchTool({ workspaceDir }),
|
|
38356
38593
|
...messageTool ? [messageTool] : [],
|
|
38357
38594
|
createTtsTool({
|
|
38358
38595
|
agentChannel: options?.agentChannel,
|
|
@@ -46454,6 +46691,71 @@ function buildAutoLoadedSkillsBlock(opts) {
|
|
|
46454
46691
|
].join("\n");
|
|
46455
46692
|
}
|
|
46456
46693
|
|
|
46694
|
+
//#endregion
|
|
46695
|
+
//#region src/agents/system-prompt-skills-jit.ts
|
|
46696
|
+
const MAX_ANCHOR_DESCRIPTION_CHARS = 100;
|
|
46697
|
+
const MAX_AUTO_INJECT_RESULTS = 3;
|
|
46698
|
+
const MAX_AUTO_INJECT_TOTAL_CHARS = 600;
|
|
46699
|
+
/**
|
|
46700
|
+
* Build the anchor list block. Returns "" when no anchor list configured
|
|
46701
|
+
* or in preload mode (anchor list adds value only in jit/hybrid).
|
|
46702
|
+
*/
|
|
46703
|
+
function buildAnchorListBlock(opts) {
|
|
46704
|
+
if (opts.minimalMode) return "";
|
|
46705
|
+
if (opts.discoveryMode !== "jit" && opts.discoveryMode !== "hybrid") return "";
|
|
46706
|
+
const names = (opts.anchorList ?? []).filter((n) => typeof n === "string" && n.trim().length > 0);
|
|
46707
|
+
if (names.length === 0) return "";
|
|
46708
|
+
const lines = [];
|
|
46709
|
+
for (const name of names) {
|
|
46710
|
+
const description = searchSkills(name, 1, opts.workspaceDir)[0]?.description.trim() ?? "";
|
|
46711
|
+
const truncated = description.length > MAX_ANCHOR_DESCRIPTION_CHARS ? `${description.slice(0, MAX_ANCHOR_DESCRIPTION_CHARS - 1)}…` : description;
|
|
46712
|
+
lines.push(truncated ? `- ${name}: ${truncated}` : `- ${name}`);
|
|
46713
|
+
}
|
|
46714
|
+
return [
|
|
46715
|
+
"",
|
|
46716
|
+
"## Anchor Skills",
|
|
46717
|
+
"These skills are always available. Read their SKILL.md via `read` if relevant. For full discovery use the `skill_search` tool.",
|
|
46718
|
+
lines.join("\n"),
|
|
46719
|
+
""
|
|
46720
|
+
].join("\n");
|
|
46721
|
+
}
|
|
46722
|
+
/**
|
|
46723
|
+
* Build the auto-injected matches block based on the user message triggers.
|
|
46724
|
+
* Returns "" when discoveryMode doesn't ask for it, no message available,
|
|
46725
|
+
* no matches found, or in minimal mode.
|
|
46726
|
+
*/
|
|
46727
|
+
function buildAutoInjectBlock(opts) {
|
|
46728
|
+
if (opts.minimalMode) return "";
|
|
46729
|
+
if (opts.discoveryMode !== "jit" && opts.discoveryMode !== "hybrid") return "";
|
|
46730
|
+
const message = (opts.userMessage ?? "").trim();
|
|
46731
|
+
if (!message) return "";
|
|
46732
|
+
const matches = searchSkills(message, MAX_AUTO_INJECT_RESULTS, opts.workspaceDir);
|
|
46733
|
+
if (matches.length === 0) return "";
|
|
46734
|
+
const lines = [];
|
|
46735
|
+
let total = 0;
|
|
46736
|
+
for (const match of matches) {
|
|
46737
|
+
const description = match.description.trim();
|
|
46738
|
+
const truncated = description.length > MAX_ANCHOR_DESCRIPTION_CHARS ? `${description.slice(0, MAX_ANCHOR_DESCRIPTION_CHARS - 1)}…` : description;
|
|
46739
|
+
const skillRef = path.basename(path.dirname(match.path));
|
|
46740
|
+
const line = truncated ? `- ${skillRef}: ${truncated}` : `- ${skillRef}`;
|
|
46741
|
+
if (total + line.length > MAX_AUTO_INJECT_TOTAL_CHARS) break;
|
|
46742
|
+
lines.push(line);
|
|
46743
|
+
total += line.length + 1;
|
|
46744
|
+
}
|
|
46745
|
+
if (lines.length === 0) return "";
|
|
46746
|
+
return [
|
|
46747
|
+
"",
|
|
46748
|
+
"## Possibly Relevant Skills (auto-suggested for this request)",
|
|
46749
|
+
"These skills' triggers matched keywords in your message. Read the SKILL.md if it applies; otherwise ignore and proceed.",
|
|
46750
|
+
lines.join("\n"),
|
|
46751
|
+
""
|
|
46752
|
+
].join("\n");
|
|
46753
|
+
}
|
|
46754
|
+
/** Convenience: build both blocks concatenated. */
|
|
46755
|
+
function buildSkillsJitBlocks(opts) {
|
|
46756
|
+
return `${buildAnchorListBlock(opts)}${buildAutoInjectBlock(opts)}`;
|
|
46757
|
+
}
|
|
46758
|
+
|
|
46457
46759
|
//#endregion
|
|
46458
46760
|
//#region src/agents/pi-embedded-runner/system-prompt.ts
|
|
46459
46761
|
function buildEmbeddedSystemPrompt(params) {
|
|
@@ -46483,16 +46785,23 @@ function buildEmbeddedSystemPrompt(params) {
|
|
|
46483
46785
|
userTime: params.userTime,
|
|
46484
46786
|
userTimeFormat: params.userTimeFormat,
|
|
46485
46787
|
contextFiles: params.contextFiles,
|
|
46486
|
-
memoryCitationsMode: params.memoryCitationsMode
|
|
46788
|
+
memoryCitationsMode: params.memoryCitationsMode,
|
|
46789
|
+
compactMode: params.compactMode,
|
|
46790
|
+
skillsDiscoveryMode: params.skillsDiscoveryMode
|
|
46487
46791
|
});
|
|
46488
46792
|
const promptMode = params.promptMode ?? "full";
|
|
46489
46793
|
const isMinimal = promptMode === "minimal" || promptMode === "none";
|
|
46490
|
-
|
|
46794
|
+
return `${corePrompt}${buildAutoLoadedSkillsBlock({
|
|
46491
46795
|
skillNames: params.autoLoadInlineSkills ?? [],
|
|
46492
46796
|
workspaceDir: params.workspaceDir,
|
|
46493
46797
|
minimalMode: isMinimal
|
|
46494
|
-
})
|
|
46495
|
-
|
|
46798
|
+
})}${buildSkillsJitBlocks({
|
|
46799
|
+
discoveryMode: params.skillsDiscoveryMode,
|
|
46800
|
+
anchorList: params.skillsAnchorList,
|
|
46801
|
+
userMessage: params.currentUserMessage,
|
|
46802
|
+
workspaceDir: params.workspaceDir,
|
|
46803
|
+
minimalMode: isMinimal
|
|
46804
|
+
})}`;
|
|
46496
46805
|
}
|
|
46497
46806
|
function createSystemPromptOverride(systemPrompt) {
|
|
46498
46807
|
const override = systemPrompt.trim();
|
|
@@ -47281,7 +47590,11 @@ async function runEmbeddedAttempt(params) {
|
|
|
47281
47590
|
userTimeFormat,
|
|
47282
47591
|
contextFiles,
|
|
47283
47592
|
memoryCitationsMode: params.config?.memory?.citations,
|
|
47284
|
-
autoLoadInlineSkills: params.config?.skills?.autoLoadInline
|
|
47593
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
|
|
47594
|
+
skillsDiscoveryMode: params.config?.skills?.discoveryMode,
|
|
47595
|
+
skillsAnchorList: params.config?.skills?.anchorList,
|
|
47596
|
+
currentUserMessage: params.prompt,
|
|
47597
|
+
compactMode: params.config?.prompt?.compactMode
|
|
47285
47598
|
});
|
|
47286
47599
|
const systemPromptReport = buildSystemPromptReport({
|
|
47287
47600
|
source: "run",
|
|
@@ -51764,7 +52077,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
51764
52077
|
return;
|
|
51765
52078
|
}
|
|
51766
52079
|
try {
|
|
51767
|
-
const { deliverOutboundPayloads } = await import("./deliver
|
|
52080
|
+
const { deliverOutboundPayloads } = await import("./deliver-XYF4JahT.js").then((n) => n.n);
|
|
51768
52081
|
await deliverOutboundPayloads({
|
|
51769
52082
|
cfg: params.cfg,
|
|
51770
52083
|
channel,
|
|
@@ -55210,7 +55523,7 @@ async function describeStickerImage(params) {
|
|
|
55210
55523
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
55211
55524
|
try {
|
|
55212
55525
|
const buffer = await fs$1.readFile(imagePath);
|
|
55213
|
-
const { describeImageWithModel } = await import("./image-
|
|
55526
|
+
const { describeImageWithModel } = await import("./image-BjyeKf1c.js").then((n) => n.n);
|
|
55214
55527
|
return (await describeImageWithModel({
|
|
55215
55528
|
buffer,
|
|
55216
55529
|
fileName: "sticker.webp",
|
|
@@ -55633,7 +55946,7 @@ function createWhatsAppLoginTool() {
|
|
|
55633
55946
|
force: Type.Optional(Type.Boolean())
|
|
55634
55947
|
}),
|
|
55635
55948
|
execute: async (_toolCallId, args) => {
|
|
55636
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
55949
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CZXIrzvh.js");
|
|
55637
55950
|
if ((args?.action ?? "start") === "wait") {
|
|
55638
55951
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
55639
55952
|
return {
|
|
@@ -57959,7 +58272,7 @@ async function preflightDiscordMessage(params) {
|
|
|
57959
58272
|
let preflightTranscript;
|
|
57960
58273
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
57961
58274
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
57962
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
58275
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-Dtsvq6Hj.js");
|
|
57963
58276
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
57964
58277
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
57965
58278
|
ctx: {
|
|
@@ -61742,27 +62055,27 @@ function isVoiceChannelType(type) {
|
|
|
61742
62055
|
function createDefaultDeps() {
|
|
61743
62056
|
return {
|
|
61744
62057
|
sendMessageWhatsApp: async (...args) => {
|
|
61745
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
62058
|
+
const { sendMessageWhatsApp } = await import("./web-DaChMSyM.js");
|
|
61746
62059
|
return await sendMessageWhatsApp(...args);
|
|
61747
62060
|
},
|
|
61748
62061
|
sendMessageTelegram: async (...args) => {
|
|
61749
|
-
const { sendMessageTelegram } = await import("./send-
|
|
62062
|
+
const { sendMessageTelegram } = await import("./send-depbZ9aA.js").then((n) => n.l);
|
|
61750
62063
|
return await sendMessageTelegram(...args);
|
|
61751
62064
|
},
|
|
61752
62065
|
sendMessageDiscord: async (...args) => {
|
|
61753
|
-
const { sendMessageDiscord } = await import("./send-
|
|
62066
|
+
const { sendMessageDiscord } = await import("./send-D27q8Oqo.js").then((n) => n.t);
|
|
61754
62067
|
return await sendMessageDiscord(...args);
|
|
61755
62068
|
},
|
|
61756
62069
|
sendMessageSlack: async (...args) => {
|
|
61757
|
-
const { sendMessageSlack } = await import("./send-
|
|
62070
|
+
const { sendMessageSlack } = await import("./send-F2Cpm-SJ.js").then((n) => n.n);
|
|
61758
62071
|
return await sendMessageSlack(...args);
|
|
61759
62072
|
},
|
|
61760
62073
|
sendMessageSignal: async (...args) => {
|
|
61761
|
-
const { sendMessageSignal } = await import("./send-
|
|
62074
|
+
const { sendMessageSignal } = await import("./send-Dj6_LS_W.js").then((n) => n.i);
|
|
61762
62075
|
return await sendMessageSignal(...args);
|
|
61763
62076
|
},
|
|
61764
62077
|
sendMessageIMessage: async (...args) => {
|
|
61765
|
-
const { sendMessageIMessage } = await import("./send-
|
|
62078
|
+
const { sendMessageIMessage } = await import("./send-B0szkIfv.js").then((n) => n.n);
|
|
61766
62079
|
return await sendMessageIMessage(...args);
|
|
61767
62080
|
}
|
|
61768
62081
|
};
|
|
@@ -72592,7 +72905,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
72592
72905
|
});
|
|
72593
72906
|
const deliverSlashPayloads = async (replies) => {
|
|
72594
72907
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
72595
|
-
import("./replies-
|
|
72908
|
+
import("./replies-Dmo0pSSf.js").then((n) => n.r),
|
|
72596
72909
|
import("./chunk-Bk95VMr4.js").then((n) => n.s),
|
|
72597
72910
|
import("./markdown-tables-XmEPv2t0.js").then((n) => n.t)
|
|
72598
72911
|
]);
|
|
@@ -72647,7 +72960,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
72647
72960
|
let nativeCommands = [];
|
|
72648
72961
|
if (nativeEnabled) {
|
|
72649
72962
|
reg = await getCommandsRegistry();
|
|
72650
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
72963
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-QmLQo8Tj.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
72651
72964
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
72652
72965
|
skillCommands,
|
|
72653
72966
|
provider: "slack"
|
|
@@ -74865,7 +75178,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
74865
75178
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
74866
75179
|
let preflightTranscript;
|
|
74867
75180
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
74868
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
75181
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-Dtsvq6Hj.js");
|
|
74869
75182
|
preflightTranscript = await transcribeFirstAudio({
|
|
74870
75183
|
ctx: {
|
|
74871
75184
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -77010,23 +77323,23 @@ let webLoginQrPromise = null;
|
|
|
77010
77323
|
let webChannelPromise = null;
|
|
77011
77324
|
let whatsappActionsPromise = null;
|
|
77012
77325
|
function loadWebOutbound() {
|
|
77013
|
-
webOutboundPromise ??= import("./outbound-
|
|
77326
|
+
webOutboundPromise ??= import("./outbound-BD7PNRhC.js").then((n) => n.t);
|
|
77014
77327
|
return webOutboundPromise;
|
|
77015
77328
|
}
|
|
77016
77329
|
function loadWebLogin() {
|
|
77017
|
-
webLoginPromise ??= import("./login-
|
|
77330
|
+
webLoginPromise ??= import("./login-Cv_LYGzG.js").then((n) => n.n);
|
|
77018
77331
|
return webLoginPromise;
|
|
77019
77332
|
}
|
|
77020
77333
|
function loadWebLoginQr() {
|
|
77021
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
77334
|
+
webLoginQrPromise ??= import("./login-qr-CZXIrzvh.js");
|
|
77022
77335
|
return webLoginQrPromise;
|
|
77023
77336
|
}
|
|
77024
77337
|
function loadWebChannel() {
|
|
77025
|
-
webChannelPromise ??= import("./web-
|
|
77338
|
+
webChannelPromise ??= import("./web-DaChMSyM.js");
|
|
77026
77339
|
return webChannelPromise;
|
|
77027
77340
|
}
|
|
77028
77341
|
function loadWhatsAppActions() {
|
|
77029
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
77342
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-CkT3dnmD.js");
|
|
77030
77343
|
return whatsappActionsPromise;
|
|
77031
77344
|
}
|
|
77032
77345
|
function createPluginRuntime() {
|
|
@@ -79709,7 +80022,11 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
79709
80022
|
userTimeFormat,
|
|
79710
80023
|
contextFiles,
|
|
79711
80024
|
memoryCitationsMode: params.config?.memory?.citations,
|
|
79712
|
-
autoLoadInlineSkills: params.config?.skills?.autoLoadInline
|
|
80025
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
|
|
80026
|
+
skillsDiscoveryMode: params.config?.skills?.discoveryMode,
|
|
80027
|
+
skillsAnchorList: params.config?.skills?.anchorList,
|
|
80028
|
+
currentUserMessage: void 0,
|
|
80029
|
+
compactMode: params.config?.prompt?.compactMode
|
|
79713
80030
|
}));
|
|
79714
80031
|
const sessionLock = await acquireSessionWriteLock({
|
|
79715
80032
|
sessionFile: params.sessionFile,
|