@symerian/symi 2.9.0 → 2.9.2
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-Bav1bRj2.js → acp-cli-Bc6ZQZ4f.js} +2 -2
- package/dist/{acp-cli-BTu3_kZ1.js → acp-cli-Dy9QuDBN.js} +2 -2
- package/dist/{agents-CvNeiuSB.js → agents-DTl30WoB.js} +7 -7
- package/dist/{agents.config-BCgY5FjE.js → agents.config-CO8F9mkD.js} +1 -1
- package/dist/{agents.config-Ct64cGQ8.js → agents.config-CZ3GFxPg.js} +1 -1
- package/dist/{audio-preflight-C2EgDXSo.js → audio-preflight-8UNY1akA.js} +11 -11
- package/dist/{audio-preflight-1dv3T5Zx.js → audio-preflight-By0dnw-T.js} +11 -11
- package/dist/{audio-preflight-Cb-T0r6e.js → audio-preflight-DQR2Ivi-.js} +5 -5
- package/dist/{audio-preflight-C6vpFnOG.js → audio-preflight-Dtsvq6Hj.js} +6 -6
- package/dist/{audit-CuKP86d_.js → audit-DGwhL71Q.js} +5 -5
- package/dist/{audit-C9nq99IR.js → audit-OPWWS900.js} +5 -5
- package/dist/{auth-choice-DmMyKZX4.js → auth-choice-BYDGn7lJ.js} +4 -4
- package/dist/{auth-choice-ChFU9OCF.js → auth-choice-BoOyy-ZT.js} +4 -4
- package/dist/{banner-Bf46tqiY.js → banner-D4MiyUnv.js} +1 -1
- package/dist/{browser-cli-ClgQ-C8E.js → browser-cli-CGLTZ9KQ.js} +3 -3
- package/dist/{browser-cli-DuPPIcuV.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-M4YyUnwu.js → call-BCTAmPye.js} +1 -1
- package/dist/{call-DYfKEdwh.js → call-BIETyST6.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-Bqc2VCgt.js → channel-options-B6qP-vR-.js} +1 -1
- package/dist/{channel-options-D4a0ZJ72.js → channel-options-BiSSYYQC.js} +1 -1
- package/dist/{channel-web-YNC2xS5K.js → channel-web-DP97EUhx.js} +7 -7
- package/dist/{channels-cli-BFJcNLbB.js → channels-cli-6LNvJQPb.js} +30 -30
- package/dist/{channels-cli-h3GnmmM9.js → channels-cli-CE_A3Hai.js} +31 -31
- package/dist/{chrome-B14NNyfm.js → chrome-B-hW5hrK.js} +1 -1
- package/dist/{chrome-ROtrXlNs.js → chrome-BaMQiegP.js} +1 -1
- package/dist/{chrome-D2ohnA09.js → chrome-CO5ZhkcZ.js} +1 -1
- package/dist/{chrome-BJvuH-NZ.js → chrome-CtTba9sH.js} +1 -1
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-BX54CAM7.js → cli-D4j_JTug.js} +27 -27
- package/dist/{cli-BpQlSGVs.js → cli-DwQ3mqhI.js} +26 -26
- package/dist/{command-registry-BiRjJ2Sy.js → command-registry-b62Qpsi2.js} +11 -11
- package/dist/{completion-cli-BYXofVqv.js → completion-cli-DUT2XYgK.js} +2 -2
- package/dist/{completion-cli-C8K5J1ld.js → completion-cli-RQyC3L-t.js} +1 -1
- package/dist/{config-PXAJCHa5.js → config-CitI_jxW.js} +8 -0
- package/dist/{config-BAVNLbja.js → config-D7Zr88dI.js} +8 -0
- package/dist/{config-BkZ9HOKT.js → config-Do4JxgLI.js} +8 -0
- package/dist/{config-DXt3pc08.js → config-Gfhqs66L.js} +8 -0
- package/dist/{config-cli-BPPD3xqE.js → config-cli-Di8VOhbp.js} +2 -2
- package/dist/{config-cli-Deoo6r2K.js → config-cli-H52N8rp1.js} +2 -2
- package/dist/{config-guard-BvqCjFPk.js → config-guard-BLcbR_sH.js} +2 -2
- package/dist/{config-guard-CaP-V3tf.js → config-guard-CgPPAm7S.js} +3 -3
- package/dist/{config-validation-B6Fa3VmF.js → config-validation-B6GnatLw.js} +1 -1
- package/dist/{config-validation-EmHZVnuz.js → config-validation-UMq2H_tR.js} +1 -1
- package/dist/{configure-D4f0P3bH.js → configure-BF9crM5K.js} +10 -10
- package/dist/{configure-BKHxUAAh.js → configure-DQxuawe-.js} +10 -10
- package/dist/{control-service-C0pRqIFv.js → control-service-BkyH7qkF.js} +4 -4
- package/dist/{control-service-Bujr5pk7.js → control-service-DnNPjFvU.js} +4 -4
- package/dist/{cron-cli-C8-Gv5dd.js → cron-cli-CcgewYtp.js} +3 -3
- package/dist/{cron-cli-BEdmHCWZ.js → cron-cli-DEcQk1bb.js} +3 -3
- package/dist/{daemon-cli-D6wyb9bo.js → daemon-cli-BNZu5unw.js} +6 -6
- package/dist/{daemon-cli-BFoJGCHZ.js → daemon-cli-BiBjGGfw.js} +6 -6
- package/dist/daemon-cli.js +8 -0
- package/dist/{daemon-runtime-Cp7obV7Q.js → daemon-runtime-C-Mwepv_.js} +1 -1
- package/dist/{daemon-runtime-D_elkkFW.js → daemon-runtime-C86WnKU5.js} +1 -1
- package/dist/{deliver-Bdk_R0pQ.js → deliver-DaRQn5Ai.js} +3 -3
- package/dist/{deliver-D7BQXt0l.js → deliver-DrgHcdVo.js} +3 -3
- package/dist/{deliver-B0OUq6RP.js → deliver-Dx39g9ey.js} +2 -2
- package/dist/{deliver-D0bWiRCg.js → deliver-XYF4JahT.js} +2 -2
- package/dist/{devices-cli-CHt4I-7e.js → devices-cli-Wb4H-vyx.js} +2 -2
- package/dist/{devices-cli-BXc6DPkC.js → devices-cli-hX2lrsCy.js} +2 -2
- package/dist/{directory-cli-CQTzAhw1.js → directory-cli-CLIYvXkV.js} +1 -1
- package/dist/{directory-cli-DRWJsAT6.js → directory-cli-C_vm-dsr.js} +1 -1
- package/dist/{dns-cli-BBVIay6Z.js → dns-cli-BJuUZ4pr.js} +1 -1
- package/dist/{dns-cli-BCKPibb8.js → dns-cli-CTCAHPcB.js} +1 -1
- package/dist/{doctor-completion-gMWymNcA.js → doctor-completion-BKXQ50ee.js} +1 -1
- package/dist/{doctor-completion-woDYSVtY.js → doctor-completion-BS2JEeZy.js} +1 -1
- package/dist/{doctor-config-flow-BCMxS2lf.js → doctor-config-flow-BFHsvL2k.js} +2 -2
- package/dist/{doctor-config-flow-B2dVxbL7.js → doctor-config-flow-l2aPNzHP.js} +2 -2
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-BBKVrFTj.js → exec-approvals-cli-BXDSu2Ze.js} +4 -4
- package/dist/{exec-approvals-cli-CKRDAo17.js → exec-approvals-cli-uAM6-swA.js} +4 -4
- package/dist/extensionAPI.js +16 -16
- package/dist/{gateway-cli-DsnkTUOp.js → gateway-cli-Do9KUPqe.js} +42 -42
- package/dist/{gateway-cli-Bnh42-56.js → gateway-cli-moPf-zP5.js} +43 -43
- package/dist/{gateway-rpc-BEfosIsg.js → gateway-rpc-DMEPdgmc.js} +1 -1
- package/dist/{gateway-rpc-DZrB7Sl_.js → gateway-rpc-Wa_4MrZb.js} +1 -1
- package/dist/{glass-ui-ws-0Y0KsBvU.js → glass-ui-ws-D53pvIov.js} +35 -35
- package/dist/{glass-ui-ws-uj3DRmL8.js → glass-ui-ws-Dfro-3R8.js} +34 -34
- package/dist/{health-Dl2WRoTa.js → health-BQGRC0xh.js} +5 -5
- package/dist/{health-CcV5nKIK.js → health-CV741PBg.js} +5 -5
- package/dist/{hooks-cli-CTcHtm_0.js → hooks-cli-CG-PDY2U.js} +28 -28
- package/dist/{hooks-cli-DEJe3dUH.js → hooks-cli-CWXGIL9L.js} +27 -27
- package/dist/{image-MNvheU8U.js → image-BjyeKf1c.js} +2 -2
- package/dist/{image-BuVL0jHI.js → image-C-JvPPpM.js} +2 -2
- package/dist/{image-6RZuWKy5.js → image-GaF72sln.js} +2 -2
- package/dist/{image-CnEFsKgw.js → image-dYtWZNKT.js} +2 -2
- package/dist/index.js +35 -35
- package/dist/{lifecycle-core-Uucs6Wz6.js → lifecycle-core-BMVHLJi_.js} +2 -2
- package/dist/{lifecycle-core-v3lT0Ymo.js → lifecycle-core-HOQrbQ-_.js} +2 -2
- package/dist/llm-slug-generator.js +14 -14
- package/dist/{login-F4pbdnF5.js → login-Cd4DTmg6.js} +2 -2
- package/dist/{login-EYdkb0dH.js → login-Cv_LYGzG.js} +2 -2
- package/dist/{login-C7EdfiAr.js → login-D4OYfM0U.js} +2 -2
- package/dist/{login-D4rZWBXe.js → login-DqhTprwd.js} +2 -2
- package/dist/{login-qr-Apnag5S6.js → login-qr-CZXIrzvh.js} +2 -2
- package/dist/{login-qr-DdAVHOEC.js → login-qr-DiyxAHpv.js} +2 -2
- package/dist/{login-qr-BElXRp6T.js → login-qr-Dq_hs3eJ.js} +2 -2
- package/dist/{login-qr-DML5LgsI.js → login-qr-Xgw7JPYo.js} +2 -2
- package/dist/{logs-cli-N5jQvJTm.js → logs-cli-DZTxEhiM.js} +3 -3
- package/dist/{logs-cli-CsHpYc2M.js → logs-cli-Dh-aAqF3.js} +3 -3
- package/dist/{manager-9Mni2AA9.js → manager-B_2KzUSI.js} +1 -1
- package/dist/{manager-CjW8kPVc.js → manager-Bc-MeMho.js} +1 -1
- package/dist/{manager-C-H0XXJq.js → manager-CLPHK-qG.js} +1 -1
- package/dist/{manager-QPF0UtOC.js → manager-yrUe0KOT.js} +1 -1
- package/dist/{memory-cli-OW9XfyYu.js → memory-cli-3RSIw4no.js} +4 -4
- package/dist/{memory-cli-BTByRgM0.js → memory-cli-BKNnDIdx.js} +4 -4
- package/dist/{model-catalog-D7k3dDQq.js → model-catalog-BFJW_s3i.js} +2 -2
- package/dist/{model-catalog-BuYrTTBn.js → model-catalog-DRqmevpR.js} +2 -2
- package/dist/{model-picker-BNWV-jU4.js → model-picker-BT8MumhL.js} +2 -2
- package/dist/{model-picker-n7beL1F5.js → model-picker-DhsG4iZa.js} +2 -2
- package/dist/{models-Q1jV8ArL.js → models-D_C2JFPw.js} +8 -8
- package/dist/{models-cli-Cy6H1sFq.js → models-cli-DQE60EtL.js} +30 -30
- package/dist/{models-cli-pfVmmgpv.js → models-cli-j2O4e1Lu.js} +29 -29
- package/dist/{models-config-B91ShhoT.js → models-config-DdK8uWQW.js} +1 -1
- package/dist/{models-config-J1x_DaPn.js → models-config-frWb8fDT.js} +1 -1
- package/dist/{node-cli-CwnTjFkG.js → node-cli-DB4Z23h8.js} +9 -9
- package/dist/{node-cli-BD4E-Y8a.js → node-cli-DcRlL2Np.js} +9 -9
- package/dist/{nodes-cli-Dv0NXhCO.js → nodes-cli-B42u9UxB.js} +3 -3
- package/dist/{nodes-cli-DUD8_q_Q.js → nodes-cli-DQ9YsQmy.js} +3 -3
- package/dist/{onboard-CvpyaUQd.js → onboard-Ckw89oRF.js} +7 -7
- package/dist/{onboard-EL8foMiP.js → onboard-DUIZfWqa.js} +7 -7
- package/dist/{onboard-channels-BRoSUijQ.js → onboard-channels-B8Ouc5sR.js} +1 -1
- package/dist/{onboard-channels-Bupbm6zh.js → onboard-channels-Oa9IlsGt.js} +1 -1
- package/dist/{onboard-custom-Dk9cL3Uu.js → onboard-custom-7TON2w6b.js} +2 -2
- package/dist/{onboard-custom-CJGSIPt3.js → onboard-custom-Bb3xuH0G.js} +2 -2
- package/dist/{onboard-helpers-CBxazphs.js → onboard-helpers-BiCrYw-N.js} +2 -2
- package/dist/{onboard-helpers-DWDNKmkJ.js → onboard-helpers-Ca4KojJF.js} +2 -2
- package/dist/{onboard-remote-cZrkePlK.js → onboard-remote-B8MQTgX-.js} +1 -1
- package/dist/{onboard-remote-DoIKLWXA.js → onboard-remote-IMqgmH78.js} +1 -1
- package/dist/{onboard-skills-BjGYTueQ.js → onboard-skills-BP1P7f-w.js} +1 -1
- package/dist/{onboard-skills-zauvnEui.js → onboard-skills-BcvPjVfl.js} +1 -1
- package/dist/{onboarding-Ch8WSJ3j.js → onboarding-Cjh-Y8ha.js} +10 -10
- package/dist/{onboarding-Dg5ydWSh.js → onboarding-JFWHlqAb.js} +10 -10
- package/dist/{onboarding.finalize-Bo8-8TtH.js → onboarding.finalize-CkGLgiEA.js} +32 -32
- package/dist/{onboarding.finalize-CCTaCp2s.js → onboarding.finalize-spzEoVkm.js} +34 -34
- package/dist/{onboarding.gateway-config-Dg12RcXA.js → onboarding.gateway-config-Cp8mV8S9.js} +4 -4
- package/dist/{onboarding.gateway-config-uIRsaxMy.js → onboarding.gateway-config-tmzsyFbT.js} +4 -4
- package/dist/{outbound-mG1crIsY.js → outbound-BD7PNRhC.js} +1 -1
- package/dist/{outbound-Zmd7UyQH.js → outbound-BaF9dF-H.js} +1 -1
- package/dist/{outbound-CW8eNbCh.js → outbound-CDuo0JH3.js} +1 -1
- package/dist/{outbound-B5OgOn1h.js → outbound-CPcVipU-.js} +1 -1
- package/dist/{pairing-cli-Cl4t3cDV.js → pairing-cli-CfuG75IW.js} +1 -1
- package/dist/{pairing-cli-7X1qlhzF.js → pairing-cli-K09J3MIl.js} +1 -1
- package/dist/{pi-embedded-Bl3YkBkI.js → pi-embedded-D6Zi01El.js} +517 -94
- package/dist/{pi-embedded-helpers-D1_Sab0M.js → pi-embedded-helpers-B1P8lkqj.js} +5 -5
- package/dist/{pi-embedded-helpers-YD1JQ5xV.js → pi-embedded-helpers-BlL08R8g.js} +1 -1
- package/dist/{pi-embedded-helpers-DHAJW99p.js → pi-embedded-helpers-CmY04lZ7.js} +1 -1
- package/dist/{pi-embedded-helpers-TcYQOZAY.js → pi-embedded-helpers-DuZtk5SK.js} +6 -6
- package/dist/{pi-tools.policy-Bx5zp45n.js → pi-tools.policy-54ABEJtH.js} +2 -2
- package/dist/{pi-tools.policy-o0ytjRqu.js → pi-tools.policy-BFsWV2pS.js} +2 -2
- package/dist/{plugin-registry-BVYZLxmo.js → plugin-registry-CYglC746.js} +2 -2
- package/dist/{plugin-registry-Bn9Mj8mP.js → plugin-registry-zGF6HUkQ.js} +2 -2
- package/dist/plugin-sdk/agents/pi-embedded-runner/system-prompt.d.ts +21 -0
- package/dist/plugin-sdk/agents/pi-tools.read.d.ts +11 -0
- package/dist/plugin-sdk/agents/skills/triggers.d.ts +12 -0
- package/dist/plugin-sdk/agents/system-prompt-skills-autoload.d.ts +21 -0
- package/dist/plugin-sdk/agents/system-prompt-skills-jit.d.ts +28 -0
- package/dist/plugin-sdk/agents/tools/skill-search-tool.d.ts +30 -0
- package/dist/plugin-sdk/{audio-preflight-DucGa8w7.js → audio-preflight-CoKYDdd4.js} +6 -6
- package/dist/plugin-sdk/{channel-web-BhqGIC7q.js → channel-web-eeGSjU9N.js} +7 -7
- package/dist/plugin-sdk/{chrome-D9kN9org.js → chrome-CdjVSHtz.js} +1 -1
- package/dist/plugin-sdk/config/model-profiles-builtin.d.ts +16 -0
- package/dist/plugin-sdk/config/resolve-model-profile.d.ts +9 -1
- package/dist/plugin-sdk/config/types.skills.d.ts +22 -0
- package/dist/plugin-sdk/config/zod-schema.d.ts +6 -0
- package/dist/plugin-sdk/{config-BzupW6LN.js → config-Cf-PzD3r.js} +8 -0
- package/dist/plugin-sdk/{deliver-CKgFosI5.js → deliver-hjUeDZ7e.js} +2 -2
- package/dist/plugin-sdk/{image-DFyINnvE.js → image-CS95I-I5.js} +2 -2
- package/dist/plugin-sdk/index.js +20 -20
- package/dist/plugin-sdk/{login-K1YB_7-t.js → login-BhLw-aw1.js} +2 -2
- package/dist/plugin-sdk/{login-qr-lMl_OqDj.js → login-qr-B4dxH543.js} +2 -2
- package/dist/plugin-sdk/{manager-DdOb0Em2.js → manager-DZ5-lr4s.js} +1 -1
- package/dist/plugin-sdk/{outbound-DW3cqlQW.js → outbound-D7yJKgEX.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-BL7ZRhGv.js → pi-embedded-helpers-6EL59cK1.js} +6 -6
- package/dist/plugin-sdk/{pw-ai-B3T0mTHr.js → pw-ai-DWcXZkbZ.js} +2 -2
- package/dist/plugin-sdk/{replies-BR2TPTVW.js → replies-B4fizDsZ.js} +1 -1
- package/dist/plugin-sdk/{reply-Cjjf4VYT.js → reply-BRGoceel.js} +517 -94
- package/dist/plugin-sdk/{runner-BhifC1J_.js → runner-D9c_MNRa.js} +2 -2
- package/dist/plugin-sdk/{send-DLO_yV5_.js → send-BAzimHH-.js} +1 -1
- package/dist/plugin-sdk/{send-CGhw9mO3.js → send-BfqyNBU1.js} +1 -1
- package/dist/plugin-sdk/{send-ZhAe1nXO.js → send-CF7BhO8B.js} +1 -1
- package/dist/plugin-sdk/{send-jsofmTfJ.js → send-CJIEYVXL.js} +1 -1
- package/dist/plugin-sdk/{send-BP5pSPaZ.js → send-DDpZS9jb.js} +1 -1
- package/dist/plugin-sdk/{session-BfyK_04G.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-CZ8BYNXP.js → synthesis-DVsG2Tbp.js} +16 -16
- package/dist/plugin-sdk/{web-B8upqMUo.js → web-7u3fdT2S.js} +20 -20
- package/dist/plugin-sdk/{whatsapp-actions-eTefsWhW.js → whatsapp-actions-B_3do0s7.js} +2 -2
- package/dist/{plugins-cli-CYOQh2DM.js → plugins-cli-CLb_0vH6.js} +27 -27
- package/dist/{plugins-cli-3h1N5N8n.js → plugins-cli-ndIGvW38.js} +28 -28
- package/dist/{program-D3_xE9BL.js → program-BovNsUAh.js} +34 -34
- package/dist/{program-context-COwsYCbf.js → program-context-mFSRQPMm.js} +38 -38
- package/dist/{prompt-select-styled-rKPBDv7n.js → prompt-select-styled-DlKhnnDV.js} +15 -15
- package/dist/{prompt-select-styled-D88AWCeM.js → prompt-select-styled-vhI0kQYd.js} +15 -15
- package/dist/{provider-auth-helpers-rff7s_gC.js → provider-auth-helpers-DXlKD0hY.js} +2 -2
- package/dist/{provider-auth-helpers-CyZyVx-V.js → provider-auth-helpers-U0t5YhCn.js} +2 -2
- package/dist/{push-apns-BNzgqUl3.js → push-apns-hN0N3Wcu.js} +1 -1
- package/dist/{push-apns-d9qKGKPe.js → push-apns-rDsc17-c.js} +1 -1
- package/dist/{pw-ai-D9fCYPe7.js → pw-ai-B8IypzYb.js} +2 -2
- package/dist/{pw-ai-DYZonrPL.js → pw-ai-BYRvpqBg.js} +2 -2
- package/dist/{pw-ai-DWkC5eGA.js → pw-ai-BlWK9Tr3.js} +2 -2
- package/dist/{pw-ai-40Jf9QIb.js → pw-ai-BwKx4yAQ.js} +2 -2
- package/dist/{qr-cli-6eVyM6ek.js → qr-cli-B7hz3Zj2.js} +1 -1
- package/dist/{qr-cli-CCWM_3Nb.js → qr-cli-Zf3abH3y.js} +1 -1
- package/dist/{register.agent-D_MON8p-.js → register.agent-B1liWWB3.js} +35 -35
- package/dist/{register.agent-BjaqQA02.js → register.agent-Cyij2g-g.js} +33 -33
- package/dist/{register.configure-BWkkQhpH.js → register.configure-CoYKlH75.js} +37 -37
- package/dist/{register.configure-UJi9sfNv.js → register.configure-keWh1w1p.js} +38 -38
- package/dist/{register.maintenance-ChskcWGz.js → register.maintenance-CsA9QQRE.js} +37 -37
- package/dist/{register.maintenance-DJptz3DR.js → register.maintenance-CvY-Yar9.js} +35 -35
- package/dist/{register.message-CiadI_oS.js → register.message-D7815_7Y.js} +28 -28
- package/dist/{register.message-BDTsiyrW.js → register.message-DltuBwIg.js} +27 -27
- package/dist/{register.onboard-KR_-4TLY.js → register.onboard-CY50To_-.js} +33 -33
- package/dist/{register.onboard-BflOE1jy.js → register.onboard-FcZymlrx.js} +34 -34
- package/dist/{register.setup-Cl0sD25T.js → register.setup-8dkIizGs.js} +34 -34
- package/dist/{register.setup-W-oNfOp0.js → register.setup-X011Evir.js} +33 -33
- package/dist/{register.status-health-sessions-CCQs235z.js → register.status-health-sessions-DRkIaw1q.js} +32 -32
- package/dist/{register.status-health-sessions-CT_SmmOH.js → register.status-health-sessions-u9ZbWWea.js} +30 -30
- package/dist/{register.subclis-ByZAz4st.js → register.subclis-vTS3UwIU.js} +28 -28
- package/dist/{replies-CUWXgyx2.js → replies-A6SltFjk.js} +1 -1
- package/dist/{replies-CZH45dMt.js → replies-CsNZ9ImJ.js} +1 -1
- package/dist/{replies-Sxbew659.js → replies-Dk0cnpHa.js} +1 -1
- package/dist/{replies-D0NFBbd-.js → replies-Dmo0pSSf.js} +1 -1
- package/dist/{reply-CgyjcoxC.js → reply-Dx9DWIO2.js} +524 -100
- package/dist/{routes-c86p9MPH.js → routes-B3wAMCSw.js} +3 -3
- package/dist/{routes-wmFRpLa9.js → routes-DH2Da7TP.js} +3 -3
- package/dist/{rpc-BKlQ97aZ.js → rpc-BPtq6BO7.js} +1 -1
- package/dist/{rpc-DC4ol5Xa.js → rpc-DCB41PXt.js} +1 -1
- package/dist/{run-main-xmWpjZL9.js → run-main-BQKf71Kt.js} +45 -45
- package/dist/{runner-ecX1WzDt.js → runner-C4opGXAA.js} +2 -2
- package/dist/{runner-Cbz8g76d.js → runner-CY_8vnxU.js} +3 -3
- package/dist/{runner-DFuAePEr.js → runner-Dbs3i8HW.js} +2 -2
- package/dist/{runner-BBYms6g4.js → runner-Im1oOE3i.js} +3 -3
- package/dist/{sandbox-WWVXeHlA.js → sandbox-BTziorto.js} +5 -5
- package/dist/{sandbox-cli-momxce7H.js → sandbox-cli-BVpVuidu.js} +6 -6
- package/dist/{sandbox-cli-BtGgnGrs.js → sandbox-cli-rOwF1Yuh.js} +6 -6
- package/dist/{sandbox-CCHQuSja.js → sandbox-wUKYI3zy.js} +5 -5
- package/dist/{security-cli-BfiJ3e0Y.js → security-cli-Bb4vR6LY.js} +9 -9
- package/dist/{security-cli-CIB7kqEk.js → security-cli-Cg7KhJC7.js} +9 -9
- package/dist/{send-BaFD3lZ7.js → send-8Gw3YmOh.js} +1 -1
- package/dist/{send-Bb4it0te.js → send-90t8KM2a.js} +1 -1
- package/dist/{send-C0QjmPaf.js → send-9ktd0CBZ.js} +1 -1
- package/dist/{send-Iocbaltq.js → send-B0szkIfv.js} +1 -1
- package/dist/{send-BKo1T3HF.js → send-B7kMNQ-T.js} +1 -1
- package/dist/{send-COVVt64P.js → send-BbZtP8GJ.js} +1 -1
- package/dist/{send-DFtnbzqy.js → send-CQj8FBE3.js} +1 -1
- package/dist/{send-Dz656vcm.js → send-Cxr6CgGf.js} +1 -1
- package/dist/{send-DLVrnezL.js → send-D27q8Oqo.js} +1 -1
- package/dist/{send-9sVK0zP4.js → send-D4GfXudZ.js} +1 -1
- package/dist/{send-DvbOiJ-I.js → send-D5Siw6wn.js} +1 -1
- package/dist/{send-SF7x1UHb.js → send-DanpvmZQ.js} +1 -1
- package/dist/{send-5GrSqB6v.js → send-DbJsN7Lj.js} +1 -1
- package/dist/{send-DGbBPbV0.js → send-Dj6_LS_W.js} +1 -1
- package/dist/{send-BaBv1rAU.js → send-F2Cpm-SJ.js} +1 -1
- package/dist/{send-DpMnSIi5.js → send-aXMPprv9.js} +1 -1
- package/dist/{send-B5kAnKqP.js → send-depbZ9aA.js} +1 -1
- package/dist/{send-BqOhAhRS.js → send-nRhkxbqX.js} +1 -1
- package/dist/{send-CJJuN-Fg.js → send-t_DoGd2Y.js} +1 -1
- package/dist/{send-Cpk3Ti6-.js → send-zMHWALCW.js} +1 -1
- package/dist/{server-context-DefCxQsB.js → server-context-BPuBLXYG.js} +5 -5
- package/dist/{server-context-C66bI8ZM.js → server-context-DQIkGNj2.js} +5 -5
- package/dist/{server-methods-DDpCXuOU.js → server-methods-1TzYth88.js} +17 -17
- package/dist/{server-methods-CBn954AO.js → server-methods-DeIwhdBv.js} +16 -16
- package/dist/{server-node-events-BBEMSKVE.js → server-node-events-CFMtnBFU.js} +28 -28
- package/dist/{server-node-events-BUEZ3py9.js → server-node-events-DF_ks0oa.js} +27 -27
- package/dist/{session-BTeY6Gn2.js → session-C4odFBc2.js} +1 -1
- package/dist/{session-BpaF8fzk.js → session-CTTpxOx1.js} +1 -1
- package/dist/{session-mFiujXaP.js → session-Cs58by4_.js} +1 -1
- package/dist/{session-BtL_LuWh.js → session-d5_vMl76.js} +1 -1
- package/dist/{session-utils-DaBIs243.js → session-utils--1xVj2BC.js} +3 -3
- package/dist/{sessions-B2KSRtKQ.js → sessions-BikjOqQs.js} +3 -3
- package/dist/{sessions-BeYHj0gr.js → sessions-CVWGQEWu.js} +1 -1
- package/dist/{sessions-BPD85pWA.js → sessions-CpDbQNFu.js} +1 -1
- package/dist/{shared-C9vLT1Vj.js → shared-DHpMu95O.js} +1 -1
- package/dist/{shared-PtB96PLH.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-dTks7st0.js → skills-cli-6wYY0Xes.js} +1 -1
- package/dist/{skills-cli-DiND94Um.js → skills-cli-CkTThcTU.js} +1 -1
- package/dist/{status-BjMiGq0n.js → status-CvElSWg2.js} +2 -2
- package/dist/{status-PfvX-BjO.js → status-CwZgLSfx.js} +10 -10
- package/dist/{status-CpvzoCOC.js → status-DEQAH4oA.js} +2 -2
- package/dist/{status-CG5iHUJ6.js → status-vO4-v0vI.js} +9 -9
- package/dist/{status.update-8HXdAdwz.js → status.update-BSaVYFQv.js} +1 -1
- package/dist/{status.update-B5zI1_Id.js → status.update-DoXJrRh6.js} +1 -1
- package/dist/{subagent-registry-D0IYimMO.js → subagent-registry-K1lQH7iR.js} +525 -101
- package/dist/{synthesis-D55QrjAJ.js → synthesis-AYqn8_O8.js} +27 -27
- package/dist/{synthesis-CBwKBuLy.js → synthesis-CZhOC8n4.js} +14 -14
- package/dist/{synthesis-BVZ5RJLg.js → synthesis-DazoL-DI.js} +26 -26
- package/dist/{synthesis-itgrzpuj.js → synthesis-DhxkkJq7.js} +16 -16
- package/dist/{system-cli-BERSpUjO.js → system-cli-BmccUOcE.js} +3 -3
- package/dist/{system-cli-C61hzNPk.js → system-cli-DJIrqTFB.js} +3 -3
- package/dist/{systemd-hints-Ct8ebNeC.js → systemd-hints-BbqPFaZ2.js} +1 -1
- package/dist/{systemd-hints-vhJS1sOh.js → systemd-hints-CfnF9j3s.js} +1 -1
- package/dist/{tui-Dg_cvgVP.js → tui-Cc1L4YuN.js} +4 -4
- package/dist/{tui-CI_zqapL.js → tui-D5we2kr7.js} +4 -4
- package/dist/{tui-cli-BD1cbShC.js → tui-cli-BHBp8e8w.js} +9 -9
- package/dist/{tui-cli-DtBW_VCL.js → tui-cli-CmVmkEzr.js} +9 -9
- package/dist/{unified-runner-BhnvjB1J.js → unified-runner-CavADnkK.js} +515 -91
- package/dist/{update-cli-CL1_LPBS.js → update-cli-DPf2vrJK.js} +40 -40
- package/dist/{update-cli-D3K4mhrr.js → update-cli-DmxFKAmJ.js} +38 -38
- package/dist/{update-runner-Bmq67eos.js → update-runner-D4UIv_1p.js} +1 -1
- package/dist/{update-runner-DMucmRlv.js → update-runner-XU-jPEg_.js} +1 -1
- package/dist/{web-B0lZdBBl.js → web-BBbVbRTg.js} +30 -30
- package/dist/{web-DCO_YCRw.js → web-BJIv_6uQ.js} +17 -17
- package/dist/{web-DmgQtLx3.js → web-C-E-O8iP.js} +30 -30
- package/dist/{web-C1HPdY_D.js → web-CIj8erCe.js} +19 -19
- package/dist/{webhooks-cli-BEk3Xj9r.js → webhooks-cli-BPWIcZ4r.js} +1 -1
- package/dist/{webhooks-cli-B7WTF3ao.js → webhooks-cli-DCw-yCzR.js} +1 -1
- package/dist/{whatsapp-actions-BUZuNBin.js → whatsapp-actions-B5o7eFIc.js} +2 -2
- package/dist/{whatsapp-actions-DEn0NRir.js → whatsapp-actions-CJkCiI_n.js} +2 -2
- package/dist/{whatsapp-actions-uEcDLORc.js → whatsapp-actions-CkT3dnmD.js} +2 -2
- package/dist/{whatsapp-actions-DmVpLXmh.js → whatsapp-actions-DRvUrapa.js} +2 -2
- package/dist/{with-timeout-DwriPEWn.js → with-timeout-7M4c248g.js} +1 -1
- package/dist/{with-timeout-BuIx7QnX.js → with-timeout-BWETfI9T.js} +1 -1
- 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/coding-agent/SKILL.md +1 -0
- package/skills/connect-email/SKILL.md +1 -0
- package/skills/discord/SKILL.md +1 -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/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/trello/SKILL.md +1 -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
|
@@ -8,12 +8,12 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-ChYu
|
|
|
8
8
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-CUNoPTKm.js";
|
|
9
9
|
import { $ as isRich, A as normalizeE164, D as isRecord$1, E as formatTerminalLink, H as isPlainObject, I as shortenHomeInString, J as setVerbose, K as logVerbose, L as shortenHomePath, P as resolveUserPath, Q as colorize, R as sleep$1, S as clampInt, T as escapeRegExp, U as danger, V as truncateUtf16Safe, Y as shouldLogVerbose, Z as warn, _ as matchPluginCommand, a as normalizeAnyChannelId, b as CONFIG_DIR, ct as normalizeLogLevel, d as createPluginRegistry, et as theme, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, l as requireActivePluginRegistry, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, o as normalizeChannelId$1, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, tt as getChildLogger, u as setActivePluginRegistry, ut as resolvePreferredSymiTmpDir, v as createInternalHookEvent, w as ensureDir$3, y as triggerInternalHook, z as sliceUtf16Safe } from "./registry--_pGht6S.js";
|
|
10
10
|
import { n as retryAsync } from "./retry-ilSJqnz9.js";
|
|
11
|
-
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, At as fetchDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, E as listThreadsDiscord, Et as normalizeChannelSlug, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as buildChannelKeyCandidates, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as applyChannelMatchMeta, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-
|
|
12
|
-
import { B as getConfigOverrides, C as resolveIMessageRemoteAttachmentRoots, G as parseConfigPath, H as setConfigOverride, J as isSafeExecutableValue, K as setConfigValueAtPath, R as parseDurationMs, S as resolveIMessageAttachmentRoots, U as unsetConfigOverride, V as resetConfigOverrides, W as getConfigValueAtPath, X as resolveAgentMaxConcurrent, Y as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Z as VERSION, _ as normalizeTelegramCommandName, a as writeConfigFile, b as isInboundPathAllowed, g as TELEGRAM_COMMAND_NAME_PATTERN, i as resolveConfigSnapshotHash, n as loadConfig, o as validateConfigObjectWithPlugins, q as unsetConfigValueAtPath, r as readConfigFileSnapshot, v as resolveTelegramCustomCommands, w as normalizeScpRemoteHost, z as validateJsonSchemaValue } from "./config-
|
|
11
|
+
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, At as fetchDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, E as listThreadsDiscord, Et as normalizeChannelSlug, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as buildChannelKeyCandidates, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as applyChannelMatchMeta, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-CF7BhO8B.js";
|
|
12
|
+
import { B as getConfigOverrides, C as resolveIMessageRemoteAttachmentRoots, G as parseConfigPath, H as setConfigOverride, J as isSafeExecutableValue, K as setConfigValueAtPath, R as parseDurationMs, S as resolveIMessageAttachmentRoots, U as unsetConfigOverride, V as resetConfigOverrides, W as getConfigValueAtPath, X as resolveAgentMaxConcurrent, Y as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Z as VERSION, _ as normalizeTelegramCommandName, a as writeConfigFile, b as isInboundPathAllowed, g as TELEGRAM_COMMAND_NAME_PATTERN, i as resolveConfigSnapshotHash, n as loadConfig, o as validateConfigObjectWithPlugins, q as unsetConfigValueAtPath, r as readConfigFileSnapshot, v as resolveTelegramCustomCommands, w as normalizeScpRemoteHost, z as validateJsonSchemaValue } from "./config-Cf-PzD3r.js";
|
|
13
13
|
import { a as clearActiveProgressLine, i as defaultRuntime, o as registerActiveProgressLine, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
|
|
14
14
|
import { i as parseBooleanValue$1, n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
|
|
15
15
|
import { $ as resolveShellEnvFallbackTimeoutMs, A as getSoonestCooldownExpiry, B as resolveSymiAgentDir, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as dedupeProfileIds, H as withFileLock, I as listProfilesForProvider, J as DEFAULT_CONTEXT_TOKENS, K as normalizeSecretInput, L as markAuthProfileGood, M as markAuthProfileFailure, N as markAuthProfileUsed, P as resolveApiKeyForProfile, R as ensureAuthProfileStore, S as getApiKeyForModel, T as resolveApiKeyForProvider, X as DEFAULT_PROVIDER, Y as DEFAULT_MODEL, Z as getShellPathFromLoginShell, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, i as findNormalizedProviderValue, j as isProfileInCooldown, k as resolveAuthProfileOrder, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, q as resolveAuthProfileDisplayLabel, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveAuthStorePathForDisplay } from "./model-selection-CtVwtb6y.js";
|
|
16
|
-
import { A as logInfo, C as resolveSymiPackageRoot, D as spawnWithFallback, E as runExec, O as logDebug, S as loadWorkspaceBootstrapFiles, T as runCommandWithTimeout, a as resolveAgentModelPrimary, b as ensureAgentWorkspace, c as resolveDefaultAgentId, d as resolveSessionAgentIds, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, j as logWarn, k as logError, l as resolveEffectiveModelFallbacks, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId, x as filterBootstrapFilesForSession } from "./agent-scope-C3gMMKCU.js";
|
|
16
|
+
import { A as logInfo, C as resolveSymiPackageRoot, D as spawnWithFallback, E as runExec, O as logDebug, S as loadWorkspaceBootstrapFiles, T as runCommandWithTimeout, a as resolveAgentModelPrimary, b as ensureAgentWorkspace, c as resolveDefaultAgentId, d as resolveSessionAgentIds, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, j as logWarn, k as logError, l as resolveEffectiveModelFallbacks, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId, w as resolveSymiPackageRootSync, x as filterBootstrapFilesForSession } from "./agent-scope-C3gMMKCU.js";
|
|
17
17
|
import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-hy3Bn-r9.js";
|
|
18
18
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-Bv8oZiTO.js";
|
|
19
19
|
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-Ji7f0gqq.js";
|
|
@@ -27,38 +27,38 @@ import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel
|
|
|
27
27
|
import { t as normalizeChatType } from "./chat-type-CEMQNtWX.js";
|
|
28
28
|
import { n as resolveMarkdownTableMode } from "./markdown-tables-Dfaqilz6.js";
|
|
29
29
|
import { t as convertMarkdownTables } from "./tables-DR0NmBeH.js";
|
|
30
|
-
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-
|
|
30
|
+
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-CJIEYVXL.js";
|
|
31
31
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-D7Lno-TE.js";
|
|
32
32
|
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-B7YyMnIi.js";
|
|
33
|
-
import { a as createSlackWebClient, c as validateSlackBlocksArray, i as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack } from "./send-
|
|
34
|
-
import { $ as parseTelegramTarget, A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as readChannelAllowFromStore, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as upsertChannelPairingRequest, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, Q as isVoiceCompatibleAudio, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as addChannelAllowFromStoreEntry, X as listPairingChannels, Y as getPairingAdapter, Z as withTelegramApiErrorLogging, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, et as resolveTelegramTargetChatType, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as toLocationContext, o as sendMessageTelegram, p as markdownToTelegramChunks, q as removeChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as formatLocationText, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-
|
|
35
|
-
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as registerUnhandledRejectionHandler, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as buildRandomTempFilePath } from "./runner-
|
|
33
|
+
import { a as createSlackWebClient, c as validateSlackBlocksArray, i as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack } from "./send-DDpZS9jb.js";
|
|
34
|
+
import { $ as parseTelegramTarget, A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as readChannelAllowFromStore, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as upsertChannelPairingRequest, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, Q as isVoiceCompatibleAudio, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as addChannelAllowFromStoreEntry, X as listPairingChannels, Y as getPairingAdapter, Z as withTelegramApiErrorLogging, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, et as resolveTelegramTargetChatType, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as toLocationContext, o as sendMessageTelegram, p as markdownToTelegramChunks, q as removeChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as formatLocationText, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-BAzimHH-.js";
|
|
35
|
+
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as registerUnhandledRejectionHandler, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as buildRandomTempFilePath } from "./runner-D9c_MNRa.js";
|
|
36
36
|
import { a as resolveAckReaction, c as resolveHumanDelayConfig, i as resolveResponsePrefixTemplate, n as createReplyPrefixOptions, o as resolveAgentIdentity, s as resolveEffectiveMessagesConfig } from "./reply-prefix-BHuV5t70.js";
|
|
37
37
|
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-CWMflosr.js";
|
|
38
|
-
import { c as getSkillsSnapshotVersion, d as resolvePairingPaths, f as createAsyncLock, i as resolveSkillCommandInvocation, l as generatePairingToken, m as writeJsonAtomic, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as readJsonFile, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as pruneExpiredPending } from "./skill-commands-
|
|
39
|
-
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-
|
|
40
|
-
import { M as isSecureWebSocketUrl, N as rawDataToString, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
38
|
+
import { c as getSkillsSnapshotVersion, d as resolvePairingPaths, f as createAsyncLock, i as resolveSkillCommandInvocation, l as generatePairingToken, m as writeJsonAtomic, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as readJsonFile, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as pruneExpiredPending } from "./skill-commands-C70yD9PL.js";
|
|
39
|
+
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-DuQ-xGok.js";
|
|
40
|
+
import { M as isSecureWebSocketUrl, N as rawDataToString, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, x as ensureChromeExtensionRelayServer } from "./chrome-CdjVSHtz.js";
|
|
41
41
|
import { A as normalizeHyphenSlug, F as resolveChannelGroupRequireMention, I as resolveChannelGroupToolsPolicy, M as normalizeStringEntriesLower, P as resolveChannelGroupPolicy, a as normalizeReasoningLevel, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, i as normalizeElevatedLevel, j as normalizeStringEntries, k as normalizeAtHashSlug, l as resolveResponseUsageMode, m as normalizeSignalMessagingTarget, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-DCNUIAHY.js";
|
|
42
42
|
import { r as resolveIMessageAccount } from "./accounts-Dtszw3Zn.js";
|
|
43
43
|
import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BToL3HlP.js";
|
|
44
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeChannelTargetInput, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as buildTargetResolverSignature, h as throwIfAborted, 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 normalizeTargetForProvider, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-
|
|
45
|
-
import { $ as normalizeToolName, A as isTransientHttpError, At as countToolResults, B as resolveProfile, Bt as resolveChannelResetConfig, C as isContextOverflowError, Ct as deliveryContextKey, D as isRateLimitAssistantError, Dt as normalizeAccountId$3, E as isLikelyContextOverflowError, Et as normalizeSessionDeliveryFields, F as resolveSandboxContext, Ft as normalizeInputProvenance, G as resolveBrowserControlAuth, Gt as resolveFreshSessionTotalTokens, H as resolveExistingPathsWithinRoot, Ht as resolveSessionResetType, I as resolveSandboxRuntimeStatus, It as acquireSessionWriteLock, J as buildPluginToolGroups, Jt as resolveMainSessionKey, K as resolveSandboxConfigForAgent, Kt as canonicalizeMainSessionAlias, L as createBrowserRouteContext, Lt as resolveSessionLockMaxHoldFromTimeout, M as parseImageSizeError, Mt as INPUT_PROVENANCE_KIND_VALUES, N as sanitizeUserFacingText, Nt as applyInputProvenanceToUserMessage, O as isRawApiErrorPayload, Ot as archiveSessionTranscripts, P as ensureSandboxWorkspaceForSession, Pt as hasInterSessionUserProvenance, Q as mergeAlsoAllowPolicy, R as registerBrowserRoutes, Rt as resolveSessionKey, S as isCompactionFailureError, St as deliveryContextFromSession, T as isFailoverErrorMessage, Tt as normalizeDeliveryContext, U as getBridgeAuthForPort, Ut as resolveThreadFlag, V as DEFAULT_UPLOAD_DIR, Vt as resolveSessionResetPolicy, W as ensureBrowserControlAuth, Wt as DEFAULT_RESET_TRIGGERS, X as expandPolicyWithPluginGroups, Xt as resolveGroupSessionKey, Y as collectExplicitAllowlist, Yt as deriveSessionMetaPatch, Z as expandToolGroups, _ as formatRawAssistantErrorForUi, _t as updateLastRoute, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isBillingAssistantError, bt as isCacheEnabled, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as isAntigravityClaude, dt as appendAssistantMessageToSessionTranscript, et as resolveToolProfilePolicy, f as isGoogleModelApi, g as formatBillingErrorMessage, gt as recordSessionMetaFromInbound, h as formatAssistantErrorText, ht as readSessionUpdatedAt, it as buildBootstrapContextFiles, j as parseImageDimensionError, jt as extractToolCallNames, k as isTimeoutErrorMessage, kt as capArrayByJsonBytes, l as extractToolResultId, lt as extractDeliveryInfo, m as classifyFailoverReason, mt as loadSessionStore, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as BILLING_ERROR_USER_MESSAGE, pt as resolveAndPersistSessionFile, q as applyOwnerOnlyToolPolicy, qt as resolveExplicitAgentSessionKey, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as downgradeOpenAIReasoningBlocks, ut as parseSessionThreadInfo, v as getApiErrorPayloadFingerprint, vt as updateSessionStore, w as isFailoverAssistantError, wt as mergeDeliveryContext, x as isCloudCodeAssistFormatError, xt as resolveCacheTtlMs$1, y as isAuthAssistantError, yt as updateSessionStoreEntry, z as resolveBrowserConfig, zt as evaluateSessionFreshness } from "./pi-embedded-helpers-
|
|
44
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeChannelTargetInput, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as buildTargetResolverSignature, h as throwIfAborted, 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 normalizeTargetForProvider, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-hjUeDZ7e.js";
|
|
45
|
+
import { $ as normalizeToolName, A as isTransientHttpError, At as countToolResults, B as resolveProfile, Bt as resolveChannelResetConfig, C as isContextOverflowError, Ct as deliveryContextKey, D as isRateLimitAssistantError, Dt as normalizeAccountId$3, E as isLikelyContextOverflowError, Et as normalizeSessionDeliveryFields, F as resolveSandboxContext, Ft as normalizeInputProvenance, G as resolveBrowserControlAuth, Gt as resolveFreshSessionTotalTokens, H as resolveExistingPathsWithinRoot, Ht as resolveSessionResetType, I as resolveSandboxRuntimeStatus, It as acquireSessionWriteLock, J as buildPluginToolGroups, Jt as resolveMainSessionKey, K as resolveSandboxConfigForAgent, Kt as canonicalizeMainSessionAlias, L as createBrowserRouteContext, Lt as resolveSessionLockMaxHoldFromTimeout, M as parseImageSizeError, Mt as INPUT_PROVENANCE_KIND_VALUES, N as sanitizeUserFacingText, Nt as applyInputProvenanceToUserMessage, O as isRawApiErrorPayload, Ot as archiveSessionTranscripts, P as ensureSandboxWorkspaceForSession, Pt as hasInterSessionUserProvenance, Q as mergeAlsoAllowPolicy, R as registerBrowserRoutes, Rt as resolveSessionKey, S as isCompactionFailureError, St as deliveryContextFromSession, T as isFailoverErrorMessage, Tt as normalizeDeliveryContext, U as getBridgeAuthForPort, Ut as resolveThreadFlag, V as DEFAULT_UPLOAD_DIR, Vt as resolveSessionResetPolicy, W as ensureBrowserControlAuth, Wt as DEFAULT_RESET_TRIGGERS, X as expandPolicyWithPluginGroups, Xt as resolveGroupSessionKey, Y as collectExplicitAllowlist, Yt as deriveSessionMetaPatch, Z as expandToolGroups, _ as formatRawAssistantErrorForUi, _t as updateLastRoute, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isBillingAssistantError, bt as isCacheEnabled, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as isAntigravityClaude, dt as appendAssistantMessageToSessionTranscript, et as resolveToolProfilePolicy, f as isGoogleModelApi, g as formatBillingErrorMessage, gt as recordSessionMetaFromInbound, h as formatAssistantErrorText, ht as readSessionUpdatedAt, it as buildBootstrapContextFiles, j as parseImageDimensionError, jt as extractToolCallNames, k as isTimeoutErrorMessage, kt as capArrayByJsonBytes, l as extractToolResultId, lt as extractDeliveryInfo, m as classifyFailoverReason, mt as loadSessionStore, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as BILLING_ERROR_USER_MESSAGE, pt as resolveAndPersistSessionFile, q as applyOwnerOnlyToolPolicy, qt as resolveExplicitAgentSessionKey, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as downgradeOpenAIReasoningBlocks, ut as parseSessionThreadInfo, v as getApiErrorPayloadFingerprint, vt as updateSessionStore, w as isFailoverAssistantError, wt as mergeDeliveryContext, x as isCloudCodeAssistFormatError, xt as resolveCacheTtlMs$1, y as isAuthAssistantError, yt as updateSessionStoreEntry, z as resolveBrowserConfig, zt as evaluateSessionFreshness } from "./pi-embedded-helpers-6EL59cK1.js";
|
|
46
46
|
import { n as resolveConversationLabel } from "./conversation-label-yNSj43Jt.js";
|
|
47
47
|
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-A0xdf3yk.js";
|
|
48
48
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-x1D4Vniz.js";
|
|
49
49
|
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-_oc91gNi.js";
|
|
50
50
|
import { i as saveMediaBuffer, r as getMediaDir } from "./store-Do3t33-c.js";
|
|
51
51
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-D5EzMeL_.js";
|
|
52
|
-
import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as resolveToolDisplay, x as ensureSymiModelsJson, y as stripReasoningTagsFromText } from "./image-
|
|
52
|
+
import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as resolveToolDisplay, x as ensureSymiModelsJson, y as stripReasoningTagsFromText } from "./image-CS95I-I5.js";
|
|
53
53
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-LbcEa65a.js";
|
|
54
54
|
import { c as normalizeExtraMemoryPaths, m as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-Qi-tyvHh.js";
|
|
55
55
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Wd5tNeQG.js";
|
|
56
|
-
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-
|
|
56
|
+
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-DZ5-lr4s.js";
|
|
57
57
|
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-BuYpmEx-.js";
|
|
58
|
-
import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-
|
|
58
|
+
import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-BfqyNBU1.js";
|
|
59
59
|
import { t as makeProxyFetch } from "./proxy-D27OUbrW.js";
|
|
60
60
|
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CHQ7BTlU.js";
|
|
61
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
61
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-B4fizDsZ.js";
|
|
62
62
|
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-DiyK6bgV.js";
|
|
63
63
|
import { t as getActiveWebListener } from "./active-listener-CJuvR4C2.js";
|
|
64
64
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-CP722fTK.js";
|
|
@@ -11638,7 +11638,7 @@ async function getMemorySearchManager(params) {
|
|
|
11638
11638
|
const wrapper = new FallbackMemoryManager({
|
|
11639
11639
|
primary,
|
|
11640
11640
|
fallbackFactory: async () => {
|
|
11641
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
11641
|
+
const { MemoryIndexManager } = await import("./manager-DZ5-lr4s.js").then((n) => n.n);
|
|
11642
11642
|
return await MemoryIndexManager.get(params);
|
|
11643
11643
|
}
|
|
11644
11644
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -11651,7 +11651,7 @@ async function getMemorySearchManager(params) {
|
|
|
11651
11651
|
}
|
|
11652
11652
|
}
|
|
11653
11653
|
try {
|
|
11654
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
11654
|
+
const { MemoryIndexManager } = await import("./manager-DZ5-lr4s.js").then((n) => n.n);
|
|
11655
11655
|
return { manager: await MemoryIndexManager.get(params) };
|
|
11656
11656
|
} catch (err) {
|
|
11657
11657
|
return {
|
|
@@ -15653,7 +15653,7 @@ async function routeReply(params) {
|
|
|
15653
15653
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
15654
15654
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
15655
15655
|
try {
|
|
15656
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
15656
|
+
const { deliverOutboundPayloads } = await import("./deliver-hjUeDZ7e.js").then((n) => n.n);
|
|
15657
15657
|
return {
|
|
15658
15658
|
ok: true,
|
|
15659
15659
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -18127,7 +18127,7 @@ async function describeStickerImage(params) {
|
|
|
18127
18127
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
18128
18128
|
try {
|
|
18129
18129
|
const buffer = await fs$1.readFile(imagePath);
|
|
18130
|
-
const { describeImageWithModel } = await import("./image-
|
|
18130
|
+
const { describeImageWithModel } = await import("./image-CS95I-I5.js").then((n) => n.n);
|
|
18131
18131
|
return (await describeImageWithModel({
|
|
18132
18132
|
buffer,
|
|
18133
18133
|
fileName: "sticker.webp",
|
|
@@ -18538,7 +18538,7 @@ function createWhatsAppLoginTool() {
|
|
|
18538
18538
|
force: Type.Optional(Type.Boolean())
|
|
18539
18539
|
}),
|
|
18540
18540
|
execute: async (_toolCallId, args) => {
|
|
18541
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
18541
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-B4dxH543.js");
|
|
18542
18542
|
if ((args?.action ?? "start") === "wait") {
|
|
18543
18543
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
18544
18544
|
return {
|
|
@@ -20693,7 +20693,7 @@ async function preflightDiscordMessage(params) {
|
|
|
20693
20693
|
let preflightTranscript;
|
|
20694
20694
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
20695
20695
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
20696
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
20696
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-CoKYDdd4.js");
|
|
20697
20697
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
20698
20698
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
20699
20699
|
ctx: {
|
|
@@ -27382,6 +27382,38 @@ async function runWithImageModelFallback(params) {
|
|
|
27382
27382
|
//#endregion
|
|
27383
27383
|
//#region src/config/model-profiles-builtin.ts
|
|
27384
27384
|
/**
|
|
27385
|
+
* Shared safety + output-style additions applied to most built-in profiles
|
|
27386
|
+
* and the Generic fallback. These rules came from a long history of
|
|
27387
|
+
* model-specific bugs (verification-monologue padding, "I have addressed"
|
|
27388
|
+
* preambles, post-answer assessment lists). Keeping them in one place
|
|
27389
|
+
* means a new profile inherits sane defaults instead of starting empty.
|
|
27390
|
+
*
|
|
27391
|
+
* Stage 2.4 of the prompt-reduction plan: rules that ALL profiles need
|
|
27392
|
+
* live here; profile-specific rules (control-token stripping, tool-arg
|
|
27393
|
+
* cleanup, reasoning hints) live in their own per-profile additions.
|
|
27394
|
+
*
|
|
27395
|
+
* Exported so resolve-model-profile.ts can apply the same additions to
|
|
27396
|
+
* the Generic fallback profile — no model resolves to "Generic" without
|
|
27397
|
+
* inheriting the safety/style rules.
|
|
27398
|
+
*/
|
|
27399
|
+
const SAFETY_AND_STYLE_ADDITIONS = [
|
|
27400
|
+
"CRITICAL OUTPUT RULES:",
|
|
27401
|
+
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
27402
|
+
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
27403
|
+
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
27404
|
+
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
27405
|
+
"- If you need to verify your work, do so before writing your response, not after.",
|
|
27406
|
+
"- Send brief progress updates on long tasks so the user knows you are active."
|
|
27407
|
+
];
|
|
27408
|
+
/** Hint for native-reasoning models (Nemotron, Qwen 3.5/3.6) to keep
|
|
27409
|
+
* planning internal. Not applied to Gemma/Ollama because those models
|
|
27410
|
+
* don't have structured thinking and the rule confuses them. */
|
|
27411
|
+
const REASONING_DISCIPLINE_ADDITION = "- Keep planning and reasoning internal. Only speak when you have a result or need user input.";
|
|
27412
|
+
/** Hint for models that leak Gemma-style control tokens (Gemma family,
|
|
27413
|
+
* Ollama hosting any uncensored open model). Forces tool-arg cleanup and
|
|
27414
|
+
* forbids leaking turn markers in user-visible text. */
|
|
27415
|
+
const CONTROL_TOKEN_ADDITIONS = ["- Do not output raw control tokens, channel tags, or turn markers.", "- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax."];
|
|
27416
|
+
/**
|
|
27385
27417
|
* Built-in model profiles. Ordered from most-specific to least-specific so
|
|
27386
27418
|
* that `resolveModelProfile` can return the first match.
|
|
27387
27419
|
*
|
|
@@ -27415,17 +27447,7 @@ const BUILTIN_PROFILES = [
|
|
|
27415
27447
|
hasStructuredThinking: false,
|
|
27416
27448
|
validateToolArgs: true
|
|
27417
27449
|
},
|
|
27418
|
-
promptAdditions: [
|
|
27419
|
-
"CRITICAL OUTPUT RULES:",
|
|
27420
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
27421
|
-
"- Do not output raw control tokens, channel tags, or turn markers.",
|
|
27422
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
27423
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
27424
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
27425
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
27426
|
-
"- Send brief progress updates on long tasks so the user knows you are active.",
|
|
27427
|
-
"- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax."
|
|
27428
|
-
],
|
|
27450
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, ...CONTROL_TOKEN_ADDITIONS],
|
|
27429
27451
|
ui: {
|
|
27430
27452
|
badge: "Local",
|
|
27431
27453
|
watchdogMs: 9e5,
|
|
@@ -27452,16 +27474,7 @@ const BUILTIN_PROFILES = [
|
|
|
27452
27474
|
hasStructuredThinking: true,
|
|
27453
27475
|
validateToolArgs: false
|
|
27454
27476
|
},
|
|
27455
|
-
promptAdditions: [
|
|
27456
|
-
"CRITICAL OUTPUT RULES:",
|
|
27457
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
27458
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
27459
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
27460
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
27461
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
27462
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
27463
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
27464
|
-
],
|
|
27477
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
27465
27478
|
ui: {
|
|
27466
27479
|
badge: "Local",
|
|
27467
27480
|
watchdogMs: 9e5,
|
|
@@ -27487,7 +27500,7 @@ const BUILTIN_PROFILES = [
|
|
|
27487
27500
|
hasStructuredThinking: true,
|
|
27488
27501
|
validateToolArgs: false
|
|
27489
27502
|
},
|
|
27490
|
-
promptAdditions: [],
|
|
27503
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS],
|
|
27491
27504
|
ui: {
|
|
27492
27505
|
badge: "API",
|
|
27493
27506
|
watchdogMs: 3e5,
|
|
@@ -27520,15 +27533,7 @@ const BUILTIN_PROFILES = [
|
|
|
27520
27533
|
hasStructuredThinking: true,
|
|
27521
27534
|
validateToolArgs: false
|
|
27522
27535
|
},
|
|
27523
|
-
promptAdditions: [
|
|
27524
|
-
"CRITICAL OUTPUT RULES:",
|
|
27525
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
27526
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
27527
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
27528
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
27529
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
27530
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
27531
|
-
],
|
|
27536
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
27532
27537
|
ui: {
|
|
27533
27538
|
badge: "Spider",
|
|
27534
27539
|
watchdogMs: 9e5,
|
|
@@ -27561,16 +27566,7 @@ const BUILTIN_PROFILES = [
|
|
|
27561
27566
|
hasStructuredThinking: false,
|
|
27562
27567
|
validateToolArgs: true
|
|
27563
27568
|
},
|
|
27564
|
-
promptAdditions: [
|
|
27565
|
-
"CRITICAL OUTPUT RULES:",
|
|
27566
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
27567
|
-
"- Do not output raw control tokens, channel tags, or turn markers.",
|
|
27568
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
27569
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
27570
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
27571
|
-
"- Send brief progress updates on long tasks so the user knows you are active.",
|
|
27572
|
-
"- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax."
|
|
27573
|
-
],
|
|
27569
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, ...CONTROL_TOKEN_ADDITIONS],
|
|
27574
27570
|
ui: {
|
|
27575
27571
|
badge: "Spider",
|
|
27576
27572
|
watchdogMs: 6e5,
|
|
@@ -27602,16 +27598,7 @@ const BUILTIN_PROFILES = [
|
|
|
27602
27598
|
hasStructuredThinking: true,
|
|
27603
27599
|
validateToolArgs: false
|
|
27604
27600
|
},
|
|
27605
|
-
promptAdditions: [
|
|
27606
|
-
"CRITICAL OUTPUT RULES:",
|
|
27607
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
27608
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
27609
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
27610
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
27611
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
27612
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
27613
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
27614
|
-
],
|
|
27601
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
27615
27602
|
ui: {
|
|
27616
27603
|
badge: "CoreWeave",
|
|
27617
27604
|
watchdogMs: 9e5,
|
|
@@ -27622,7 +27609,15 @@ const BUILTIN_PROFILES = [
|
|
|
27622
27609
|
|
|
27623
27610
|
//#endregion
|
|
27624
27611
|
//#region src/config/resolve-model-profile.ts
|
|
27625
|
-
/**
|
|
27612
|
+
/**
|
|
27613
|
+
* Default profile returned when no match is found.
|
|
27614
|
+
*
|
|
27615
|
+
* Stage 2.4 of the prompt-reduction plan: the Generic fallback now ships
|
|
27616
|
+
* the same safety+style additions as every named profile, so newly-added
|
|
27617
|
+
* models without a profile entry inherit sane defaults instead of
|
|
27618
|
+
* starting empty (which would silently regress safety rules until someone
|
|
27619
|
+
* notices and adds a profile).
|
|
27620
|
+
*/
|
|
27626
27621
|
const FALLBACK_PROFILE = {
|
|
27627
27622
|
match: "*",
|
|
27628
27623
|
label: "Generic",
|
|
@@ -27641,7 +27636,7 @@ const FALLBACK_PROFILE = {
|
|
|
27641
27636
|
hasStructuredThinking: false,
|
|
27642
27637
|
validateToolArgs: false
|
|
27643
27638
|
},
|
|
27644
|
-
promptAdditions: [],
|
|
27639
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS],
|
|
27645
27640
|
ui: {
|
|
27646
27641
|
watchdogMs: 3e5,
|
|
27647
27642
|
armWatchdogOnSend: true
|
|
@@ -34191,6 +34186,376 @@ async function prepareSessionManagerForRun(params) {
|
|
|
34191
34186
|
}
|
|
34192
34187
|
}
|
|
34193
34188
|
|
|
34189
|
+
//#endregion
|
|
34190
|
+
//#region src/agents/system-prompt-skills-autoload.ts
|
|
34191
|
+
const FRONTMATTER_RE = /^---\s*\n[\s\S]*?\n---\s*\n?/;
|
|
34192
|
+
let cachedPackageRoot$1;
|
|
34193
|
+
function getPackageRoot$1() {
|
|
34194
|
+
if (cachedPackageRoot$1 === void 0) cachedPackageRoot$1 = resolveSymiPackageRootSync({});
|
|
34195
|
+
return cachedPackageRoot$1;
|
|
34196
|
+
}
|
|
34197
|
+
function safeSkillName(name) {
|
|
34198
|
+
return /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/.test(name);
|
|
34199
|
+
}
|
|
34200
|
+
function tryLoadSkill(skillName, root) {
|
|
34201
|
+
const skillPath = path.join(root, "skills", skillName, "SKILL.md");
|
|
34202
|
+
try {
|
|
34203
|
+
if (!fs.statSync(skillPath).isFile()) return null;
|
|
34204
|
+
} catch {
|
|
34205
|
+
return null;
|
|
34206
|
+
}
|
|
34207
|
+
try {
|
|
34208
|
+
return fs.readFileSync(skillPath, "utf8");
|
|
34209
|
+
} catch {
|
|
34210
|
+
return null;
|
|
34211
|
+
}
|
|
34212
|
+
}
|
|
34213
|
+
function stripFrontmatter(body) {
|
|
34214
|
+
return body.replace(FRONTMATTER_RE, "").trimStart();
|
|
34215
|
+
}
|
|
34216
|
+
/**
|
|
34217
|
+
* Resolves and loads each named skill. Returns the inlinable Markdown block,
|
|
34218
|
+
* or empty string when no skills loaded / minimal mode / no names supplied.
|
|
34219
|
+
*/
|
|
34220
|
+
function buildAutoLoadedSkillsBlock(opts) {
|
|
34221
|
+
if (opts.minimalMode) return "";
|
|
34222
|
+
const names = opts.skillNames.filter((n) => typeof n === "string" && n.trim().length > 0);
|
|
34223
|
+
if (names.length === 0) return "";
|
|
34224
|
+
const packageRoot = getPackageRoot$1();
|
|
34225
|
+
const loaded = [];
|
|
34226
|
+
for (const rawName of names) {
|
|
34227
|
+
const name = rawName.trim();
|
|
34228
|
+
if (!safeSkillName(name)) {
|
|
34229
|
+
logWarn(`autoLoadInline: skipping invalid skill name '${rawName}'`);
|
|
34230
|
+
continue;
|
|
34231
|
+
}
|
|
34232
|
+
let body = null;
|
|
34233
|
+
let source = "bundled";
|
|
34234
|
+
if (opts.workspaceDir) {
|
|
34235
|
+
body = tryLoadSkill(name, opts.workspaceDir);
|
|
34236
|
+
source = "workspace";
|
|
34237
|
+
}
|
|
34238
|
+
if (body === null && packageRoot) {
|
|
34239
|
+
body = tryLoadSkill(name, packageRoot);
|
|
34240
|
+
source = "bundled";
|
|
34241
|
+
}
|
|
34242
|
+
if (body === null) {
|
|
34243
|
+
logWarn(`autoLoadInline: skill '${name}' not found in workspace or bundled skills`);
|
|
34244
|
+
continue;
|
|
34245
|
+
}
|
|
34246
|
+
const stripped = stripFrontmatter(body).trim();
|
|
34247
|
+
if (!stripped) {
|
|
34248
|
+
logWarn(`autoLoadInline: skill '${name}' has empty body after frontmatter strip; skipping`);
|
|
34249
|
+
continue;
|
|
34250
|
+
}
|
|
34251
|
+
loaded.push({
|
|
34252
|
+
name,
|
|
34253
|
+
body: stripped,
|
|
34254
|
+
source
|
|
34255
|
+
});
|
|
34256
|
+
}
|
|
34257
|
+
if (loaded.length === 0) return "";
|
|
34258
|
+
return [
|
|
34259
|
+
"",
|
|
34260
|
+
"---",
|
|
34261
|
+
"",
|
|
34262
|
+
"## Auto-loaded Skills",
|
|
34263
|
+
"",
|
|
34264
|
+
loaded.map((skill) => `<!-- auto-loaded: ${skill.name} (${skill.source}) -->\n${skill.body}`).join("\n\n---\n\n"),
|
|
34265
|
+
""
|
|
34266
|
+
].join("\n");
|
|
34267
|
+
}
|
|
34268
|
+
|
|
34269
|
+
//#endregion
|
|
34270
|
+
//#region src/agents/skills/triggers.ts
|
|
34271
|
+
const QUOTE_RE = /^["'`](.*)["'`]$/;
|
|
34272
|
+
const ARRAY_FORM_RE = /^\[(.*)\]$/s;
|
|
34273
|
+
function stripWrappingQuotes(s) {
|
|
34274
|
+
const m = s.trim().match(QUOTE_RE);
|
|
34275
|
+
return m ? m[1] : s.trim();
|
|
34276
|
+
}
|
|
34277
|
+
/** Parse a single trigger value, dropping empty / whitespace-only entries. */
|
|
34278
|
+
function cleanTrigger(raw) {
|
|
34279
|
+
const trimmed = stripWrappingQuotes(raw).toLowerCase();
|
|
34280
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
34281
|
+
}
|
|
34282
|
+
/**
|
|
34283
|
+
* Parse the value of a `triggers:` frontmatter field into a string[].
|
|
34284
|
+
* Accepts both inline-array form `[a, b, "c d"]` and YAML-list form
|
|
34285
|
+
* (multiline with leading hyphens). Returns deduped lowercased trigger
|
|
34286
|
+
* strings, or empty array on unparseable / missing input.
|
|
34287
|
+
*/
|
|
34288
|
+
function parseTriggersValue(raw) {
|
|
34289
|
+
if (typeof raw !== "string") return [];
|
|
34290
|
+
const trimmed = raw.trim();
|
|
34291
|
+
if (!trimmed) return [];
|
|
34292
|
+
const items = [];
|
|
34293
|
+
const arrayMatch = trimmed.match(ARRAY_FORM_RE);
|
|
34294
|
+
if (arrayMatch) {
|
|
34295
|
+
const inner = arrayMatch[1];
|
|
34296
|
+
let buf = "";
|
|
34297
|
+
let inQuote = null;
|
|
34298
|
+
for (const ch of inner) {
|
|
34299
|
+
if (inQuote) {
|
|
34300
|
+
if (ch === inQuote) inQuote = null;
|
|
34301
|
+
else buf += ch;
|
|
34302
|
+
continue;
|
|
34303
|
+
}
|
|
34304
|
+
if (ch === "\"" || ch === "'") {
|
|
34305
|
+
inQuote = ch;
|
|
34306
|
+
continue;
|
|
34307
|
+
}
|
|
34308
|
+
if (ch === ",") {
|
|
34309
|
+
const cleaned = cleanTrigger(buf);
|
|
34310
|
+
if (cleaned) items.push(cleaned);
|
|
34311
|
+
buf = "";
|
|
34312
|
+
continue;
|
|
34313
|
+
}
|
|
34314
|
+
buf += ch;
|
|
34315
|
+
}
|
|
34316
|
+
const cleaned = cleanTrigger(buf);
|
|
34317
|
+
if (cleaned) items.push(cleaned);
|
|
34318
|
+
} else for (const line of trimmed.split("\n")) {
|
|
34319
|
+
const ltrim = line.trimStart();
|
|
34320
|
+
if (ltrim.startsWith("- ")) {
|
|
34321
|
+
const cleaned = cleanTrigger(ltrim.slice(2));
|
|
34322
|
+
if (cleaned) items.push(cleaned);
|
|
34323
|
+
} else if (ltrim && !ltrim.startsWith("#")) {
|
|
34324
|
+
const cleaned = cleanTrigger(ltrim);
|
|
34325
|
+
if (cleaned) items.push(cleaned);
|
|
34326
|
+
}
|
|
34327
|
+
}
|
|
34328
|
+
const seen = /* @__PURE__ */ new Set();
|
|
34329
|
+
const out = [];
|
|
34330
|
+
for (const t of items) if (!seen.has(t)) {
|
|
34331
|
+
seen.add(t);
|
|
34332
|
+
out.push(t);
|
|
34333
|
+
}
|
|
34334
|
+
return out;
|
|
34335
|
+
}
|
|
34336
|
+
/**
|
|
34337
|
+
* Extract triggers from a parsed frontmatter record. Returns empty array
|
|
34338
|
+
* when the field is absent or unparseable.
|
|
34339
|
+
*/
|
|
34340
|
+
function getSkillTriggers(frontmatter) {
|
|
34341
|
+
return parseTriggersValue(frontmatter.triggers);
|
|
34342
|
+
}
|
|
34343
|
+
|
|
34344
|
+
//#endregion
|
|
34345
|
+
//#region src/agents/tools/skill-search-tool.ts
|
|
34346
|
+
const SkillSearchToolSchema = Type.Object({
|
|
34347
|
+
query: Type.String({
|
|
34348
|
+
minLength: 1,
|
|
34349
|
+
description: "Intent description (2-8 words). Match by trigger keywords first, then description text."
|
|
34350
|
+
}),
|
|
34351
|
+
limit: Type.Optional(Type.Number({
|
|
34352
|
+
minimum: 1,
|
|
34353
|
+
maximum: 10,
|
|
34354
|
+
description: "Max results to return (default 5, capped at 10)."
|
|
34355
|
+
}))
|
|
34356
|
+
});
|
|
34357
|
+
const CACHE_TTL_MS = 6e4;
|
|
34358
|
+
const SAFE_NAME_RE = /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/;
|
|
34359
|
+
function loadSkillFromDir(dir, source) {
|
|
34360
|
+
const name = path.basename(dir);
|
|
34361
|
+
if (!SAFE_NAME_RE.test(name)) return null;
|
|
34362
|
+
const file = path.join(dir, "SKILL.md");
|
|
34363
|
+
let raw;
|
|
34364
|
+
try {
|
|
34365
|
+
if (!fs.statSync(file).isFile()) return null;
|
|
34366
|
+
raw = fs.readFileSync(file, "utf8");
|
|
34367
|
+
} catch {
|
|
34368
|
+
return null;
|
|
34369
|
+
}
|
|
34370
|
+
const fm = parseFrontmatterBlock(raw);
|
|
34371
|
+
return {
|
|
34372
|
+
name,
|
|
34373
|
+
description: (fm.description ?? "").trim(),
|
|
34374
|
+
path: file,
|
|
34375
|
+
triggers: getSkillTriggers(fm),
|
|
34376
|
+
source
|
|
34377
|
+
};
|
|
34378
|
+
}
|
|
34379
|
+
function listSkillDirs(root) {
|
|
34380
|
+
const skillsDir = path.join(root, "skills");
|
|
34381
|
+
let entries;
|
|
34382
|
+
try {
|
|
34383
|
+
entries = fs.readdirSync(skillsDir, { withFileTypes: true });
|
|
34384
|
+
} catch {
|
|
34385
|
+
return [];
|
|
34386
|
+
}
|
|
34387
|
+
return entries.filter((e) => e.isDirectory()).map((e) => path.join(skillsDir, e.name));
|
|
34388
|
+
}
|
|
34389
|
+
let cachedPackageRoot;
|
|
34390
|
+
const cachePerWorkspace = /* @__PURE__ */ new Map();
|
|
34391
|
+
function getPackageRoot() {
|
|
34392
|
+
if (cachedPackageRoot === void 0) cachedPackageRoot = resolveSymiPackageRootSync({});
|
|
34393
|
+
return cachedPackageRoot;
|
|
34394
|
+
}
|
|
34395
|
+
function loadAllSkills(workspaceDir) {
|
|
34396
|
+
const cacheKey = workspaceDir ?? "";
|
|
34397
|
+
const now = Date.now();
|
|
34398
|
+
const existing = cachePerWorkspace.get(cacheKey);
|
|
34399
|
+
if (existing && now - existing.loadedAt < CACHE_TTL_MS) return existing.skills;
|
|
34400
|
+
const seen = /* @__PURE__ */ new Map();
|
|
34401
|
+
if (workspaceDir) for (const dir of listSkillDirs(workspaceDir)) {
|
|
34402
|
+
const skill = loadSkillFromDir(dir, "workspace");
|
|
34403
|
+
if (skill && !seen.has(skill.name)) seen.set(skill.name, skill);
|
|
34404
|
+
}
|
|
34405
|
+
const packageRoot = getPackageRoot();
|
|
34406
|
+
if (packageRoot) for (const dir of listSkillDirs(packageRoot)) {
|
|
34407
|
+
const skill = loadSkillFromDir(dir, "bundled");
|
|
34408
|
+
if (skill && !seen.has(skill.name)) seen.set(skill.name, skill);
|
|
34409
|
+
}
|
|
34410
|
+
const skills = [...seen.values()];
|
|
34411
|
+
cachePerWorkspace.set(cacheKey, {
|
|
34412
|
+
skills,
|
|
34413
|
+
loadedAt: now
|
|
34414
|
+
});
|
|
34415
|
+
return skills;
|
|
34416
|
+
}
|
|
34417
|
+
const TOKEN_SPLIT_RE = /[^\w/]+/;
|
|
34418
|
+
function tokenizeQuery(raw) {
|
|
34419
|
+
return raw.toLowerCase().split(TOKEN_SPLIT_RE).filter((t) => t.length >= 2);
|
|
34420
|
+
}
|
|
34421
|
+
/**
|
|
34422
|
+
* Score a query against one skill's triggers + description.
|
|
34423
|
+
* - Trigger score: ratio of query tokens that appear in the trigger set.
|
|
34424
|
+
* - FTS score: 0.4 × ratio of query tokens that appear in the description
|
|
34425
|
+
* (case-insensitive substring match).
|
|
34426
|
+
* - Final = max(trigger, fts) so trigger matches always beat descriptions.
|
|
34427
|
+
* - Returns 0 for "no signal at all" (caller should drop these).
|
|
34428
|
+
*/
|
|
34429
|
+
function scoreSkillMatch(skill, queryTokens) {
|
|
34430
|
+
if (queryTokens.length === 0) return 0;
|
|
34431
|
+
const triggerSet = new Set(skill.triggers.map((t) => t.toLowerCase()));
|
|
34432
|
+
const description = skill.description.toLowerCase();
|
|
34433
|
+
let triggerHits = 0;
|
|
34434
|
+
let ftsHits = 0;
|
|
34435
|
+
for (const token of queryTokens) if (triggerSet.has(token)) triggerHits += 1;
|
|
34436
|
+
else if (description.includes(token)) ftsHits += 1;
|
|
34437
|
+
const triggerScore = triggerHits / queryTokens.length;
|
|
34438
|
+
const ftsScore = ftsHits / queryTokens.length * .4;
|
|
34439
|
+
return Math.max(triggerScore, ftsScore);
|
|
34440
|
+
}
|
|
34441
|
+
/**
|
|
34442
|
+
* Pure-function search; exported for testing without going through the
|
|
34443
|
+
* tool execute wrapper.
|
|
34444
|
+
*/
|
|
34445
|
+
function searchSkills(query, limit, workspaceDir) {
|
|
34446
|
+
const tokens = tokenizeQuery(query);
|
|
34447
|
+
if (tokens.length === 0) return [];
|
|
34448
|
+
const all = loadAllSkills(workspaceDir);
|
|
34449
|
+
const scored = [];
|
|
34450
|
+
for (const skill of all) {
|
|
34451
|
+
const score = scoreSkillMatch(skill, tokens);
|
|
34452
|
+
if (score > 0) scored.push({
|
|
34453
|
+
name: skill.name,
|
|
34454
|
+
description: skill.description,
|
|
34455
|
+
path: skill.path,
|
|
34456
|
+
score
|
|
34457
|
+
});
|
|
34458
|
+
}
|
|
34459
|
+
scored.sort((a, b) => b.score - a.score || a.name.localeCompare(b.name));
|
|
34460
|
+
return scored.slice(0, limit);
|
|
34461
|
+
}
|
|
34462
|
+
function createSkillSearchTool(opts) {
|
|
34463
|
+
return {
|
|
34464
|
+
name: "skill_search",
|
|
34465
|
+
label: "skill_search",
|
|
34466
|
+
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.",
|
|
34467
|
+
parameters: SkillSearchToolSchema,
|
|
34468
|
+
execute: async (_toolCallId, args) => {
|
|
34469
|
+
const params = args;
|
|
34470
|
+
const query = typeof params.query === "string" ? params.query.trim() : "";
|
|
34471
|
+
if (!query) return jsonResult({
|
|
34472
|
+
ok: false,
|
|
34473
|
+
error: "skill_search requires a non-empty `query` string."
|
|
34474
|
+
});
|
|
34475
|
+
const limit = typeof params.limit === "number" && Number.isFinite(params.limit) ? Math.min(10, Math.max(1, Math.floor(params.limit))) : 5;
|
|
34476
|
+
try {
|
|
34477
|
+
return jsonResult({
|
|
34478
|
+
ok: true,
|
|
34479
|
+
query,
|
|
34480
|
+
matches: searchSkills(query, limit, opts?.workspaceDir)
|
|
34481
|
+
});
|
|
34482
|
+
} catch (err) {
|
|
34483
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
34484
|
+
logWarn(`skill_search failed: ${message}`);
|
|
34485
|
+
return jsonResult({
|
|
34486
|
+
ok: false,
|
|
34487
|
+
error: message
|
|
34488
|
+
});
|
|
34489
|
+
}
|
|
34490
|
+
}
|
|
34491
|
+
};
|
|
34492
|
+
}
|
|
34493
|
+
|
|
34494
|
+
//#endregion
|
|
34495
|
+
//#region src/agents/system-prompt-skills-jit.ts
|
|
34496
|
+
const MAX_ANCHOR_DESCRIPTION_CHARS = 100;
|
|
34497
|
+
const MAX_AUTO_INJECT_RESULTS = 3;
|
|
34498
|
+
const MAX_AUTO_INJECT_TOTAL_CHARS = 600;
|
|
34499
|
+
/**
|
|
34500
|
+
* Build the anchor list block. Returns "" when no anchor list configured
|
|
34501
|
+
* or in preload mode (anchor list adds value only in jit/hybrid).
|
|
34502
|
+
*/
|
|
34503
|
+
function buildAnchorListBlock(opts) {
|
|
34504
|
+
if (opts.minimalMode) return "";
|
|
34505
|
+
if (opts.discoveryMode !== "jit" && opts.discoveryMode !== "hybrid") return "";
|
|
34506
|
+
const names = (opts.anchorList ?? []).filter((n) => typeof n === "string" && n.trim().length > 0);
|
|
34507
|
+
if (names.length === 0) return "";
|
|
34508
|
+
const lines = [];
|
|
34509
|
+
for (const name of names) {
|
|
34510
|
+
const description = searchSkills(name, 1, opts.workspaceDir)[0]?.description.trim() ?? "";
|
|
34511
|
+
const truncated = description.length > MAX_ANCHOR_DESCRIPTION_CHARS ? `${description.slice(0, MAX_ANCHOR_DESCRIPTION_CHARS - 1)}…` : description;
|
|
34512
|
+
lines.push(truncated ? `- ${name}: ${truncated}` : `- ${name}`);
|
|
34513
|
+
}
|
|
34514
|
+
return [
|
|
34515
|
+
"",
|
|
34516
|
+
"## Anchor Skills",
|
|
34517
|
+
"These skills are always available. Read their SKILL.md via `read` if relevant. For full discovery use the `skill_search` tool.",
|
|
34518
|
+
lines.join("\n"),
|
|
34519
|
+
""
|
|
34520
|
+
].join("\n");
|
|
34521
|
+
}
|
|
34522
|
+
/**
|
|
34523
|
+
* Build the auto-injected matches block based on the user message triggers.
|
|
34524
|
+
* Returns "" when discoveryMode doesn't ask for it, no message available,
|
|
34525
|
+
* no matches found, or in minimal mode.
|
|
34526
|
+
*/
|
|
34527
|
+
function buildAutoInjectBlock(opts) {
|
|
34528
|
+
if (opts.minimalMode) return "";
|
|
34529
|
+
if (opts.discoveryMode !== "jit" && opts.discoveryMode !== "hybrid") return "";
|
|
34530
|
+
const message = (opts.userMessage ?? "").trim();
|
|
34531
|
+
if (!message) return "";
|
|
34532
|
+
const matches = searchSkills(message, MAX_AUTO_INJECT_RESULTS, opts.workspaceDir);
|
|
34533
|
+
if (matches.length === 0) return "";
|
|
34534
|
+
const lines = [];
|
|
34535
|
+
let total = 0;
|
|
34536
|
+
for (const match of matches) {
|
|
34537
|
+
const description = match.description.trim();
|
|
34538
|
+
const truncated = description.length > MAX_ANCHOR_DESCRIPTION_CHARS ? `${description.slice(0, MAX_ANCHOR_DESCRIPTION_CHARS - 1)}…` : description;
|
|
34539
|
+
const skillRef = path.basename(path.dirname(match.path));
|
|
34540
|
+
const line = truncated ? `- ${skillRef}: ${truncated}` : `- ${skillRef}`;
|
|
34541
|
+
if (total + line.length > MAX_AUTO_INJECT_TOTAL_CHARS) break;
|
|
34542
|
+
lines.push(line);
|
|
34543
|
+
total += line.length + 1;
|
|
34544
|
+
}
|
|
34545
|
+
if (lines.length === 0) return "";
|
|
34546
|
+
return [
|
|
34547
|
+
"",
|
|
34548
|
+
"## Possibly Relevant Skills (auto-suggested for this request)",
|
|
34549
|
+
"These skills' triggers matched keywords in your message. Read the SKILL.md if it applies; otherwise ignore and proceed.",
|
|
34550
|
+
lines.join("\n"),
|
|
34551
|
+
""
|
|
34552
|
+
].join("\n");
|
|
34553
|
+
}
|
|
34554
|
+
/** Convenience: build both blocks concatenated. */
|
|
34555
|
+
function buildSkillsJitBlocks(opts) {
|
|
34556
|
+
return `${buildAnchorListBlock(opts)}${buildAutoInjectBlock(opts)}`;
|
|
34557
|
+
}
|
|
34558
|
+
|
|
34194
34559
|
//#endregion
|
|
34195
34560
|
//#region src/agents/tool-summaries.ts
|
|
34196
34561
|
function buildToolSummaryMap(tools) {
|
|
@@ -34206,7 +34571,7 @@ function buildToolSummaryMap(tools) {
|
|
|
34206
34571
|
//#endregion
|
|
34207
34572
|
//#region src/agents/pi-embedded-runner/system-prompt.ts
|
|
34208
34573
|
function buildEmbeddedSystemPrompt(params) {
|
|
34209
|
-
|
|
34574
|
+
const corePrompt = buildAgentSystemPrompt({
|
|
34210
34575
|
workspaceDir: params.workspaceDir,
|
|
34211
34576
|
defaultThinkLevel: params.defaultThinkLevel,
|
|
34212
34577
|
reasoningLevel: params.reasoningLevel,
|
|
@@ -34234,6 +34599,19 @@ function buildEmbeddedSystemPrompt(params) {
|
|
|
34234
34599
|
contextFiles: params.contextFiles,
|
|
34235
34600
|
memoryCitationsMode: params.memoryCitationsMode
|
|
34236
34601
|
});
|
|
34602
|
+
const promptMode = params.promptMode ?? "full";
|
|
34603
|
+
const isMinimal = promptMode === "minimal" || promptMode === "none";
|
|
34604
|
+
return `${corePrompt}${buildAutoLoadedSkillsBlock({
|
|
34605
|
+
skillNames: params.autoLoadInlineSkills ?? [],
|
|
34606
|
+
workspaceDir: params.workspaceDir,
|
|
34607
|
+
minimalMode: isMinimal
|
|
34608
|
+
})}${buildSkillsJitBlocks({
|
|
34609
|
+
discoveryMode: params.skillsDiscoveryMode,
|
|
34610
|
+
anchorList: params.skillsAnchorList,
|
|
34611
|
+
userMessage: params.currentUserMessage,
|
|
34612
|
+
workspaceDir: params.workspaceDir,
|
|
34613
|
+
minimalMode: isMinimal
|
|
34614
|
+
})}`;
|
|
34237
34615
|
}
|
|
34238
34616
|
function createSystemPromptOverride(systemPrompt) {
|
|
34239
34617
|
const override = systemPrompt.trim();
|
|
@@ -35021,7 +35399,11 @@ async function runEmbeddedAttempt(params) {
|
|
|
35021
35399
|
userTime,
|
|
35022
35400
|
userTimeFormat,
|
|
35023
35401
|
contextFiles,
|
|
35024
|
-
memoryCitationsMode: params.config?.memory?.citations
|
|
35402
|
+
memoryCitationsMode: params.config?.memory?.citations,
|
|
35403
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
|
|
35404
|
+
skillsDiscoveryMode: params.config?.skills?.discoveryMode,
|
|
35405
|
+
skillsAnchorList: params.config?.skills?.anchorList,
|
|
35406
|
+
currentUserMessage: params.prompt
|
|
35025
35407
|
});
|
|
35026
35408
|
const systemPromptReport = buildSystemPromptReport({
|
|
35027
35409
|
source: "run",
|
|
@@ -36901,27 +37283,27 @@ async function runAgentTurn(params) {
|
|
|
36901
37283
|
function createDefaultDeps() {
|
|
36902
37284
|
return {
|
|
36903
37285
|
sendMessageWhatsApp: async (...args) => {
|
|
36904
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
37286
|
+
const { sendMessageWhatsApp } = await import("./web-7u3fdT2S.js");
|
|
36905
37287
|
return await sendMessageWhatsApp(...args);
|
|
36906
37288
|
},
|
|
36907
37289
|
sendMessageTelegram: async (...args) => {
|
|
36908
|
-
const { sendMessageTelegram } = await import("./send-
|
|
37290
|
+
const { sendMessageTelegram } = await import("./send-BAzimHH-.js").then((n) => n.l);
|
|
36909
37291
|
return await sendMessageTelegram(...args);
|
|
36910
37292
|
},
|
|
36911
37293
|
sendMessageDiscord: async (...args) => {
|
|
36912
|
-
const { sendMessageDiscord } = await import("./send-
|
|
37294
|
+
const { sendMessageDiscord } = await import("./send-CF7BhO8B.js").then((n) => n.t);
|
|
36913
37295
|
return await sendMessageDiscord(...args);
|
|
36914
37296
|
},
|
|
36915
37297
|
sendMessageSlack: async (...args) => {
|
|
36916
|
-
const { sendMessageSlack } = await import("./send-
|
|
37298
|
+
const { sendMessageSlack } = await import("./send-DDpZS9jb.js").then((n) => n.n);
|
|
36917
37299
|
return await sendMessageSlack(...args);
|
|
36918
37300
|
},
|
|
36919
37301
|
sendMessageSignal: async (...args) => {
|
|
36920
|
-
const { sendMessageSignal } = await import("./send-
|
|
37302
|
+
const { sendMessageSignal } = await import("./send-BfqyNBU1.js").then((n) => n.i);
|
|
36921
37303
|
return await sendMessageSignal(...args);
|
|
36922
37304
|
},
|
|
36923
37305
|
sendMessageIMessage: async (...args) => {
|
|
36924
|
-
const { sendMessageIMessage } = await import("./send-
|
|
37306
|
+
const { sendMessageIMessage } = await import("./send-CJIEYVXL.js").then((n) => n.n);
|
|
36925
37307
|
return await sendMessageIMessage(...args);
|
|
36926
37308
|
}
|
|
36927
37309
|
};
|
|
@@ -47476,7 +47858,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
47476
47858
|
});
|
|
47477
47859
|
const deliverSlashPayloads = async (replies) => {
|
|
47478
47860
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
47479
|
-
import("./replies-
|
|
47861
|
+
import("./replies-B4fizDsZ.js").then((n) => n.r),
|
|
47480
47862
|
import("./chunk-jvk9axTQ.js").then((n) => n.s),
|
|
47481
47863
|
import("./markdown-tables-Dfaqilz6.js").then((n) => n.t)
|
|
47482
47864
|
]);
|
|
@@ -47531,7 +47913,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
47531
47913
|
let nativeCommands = [];
|
|
47532
47914
|
if (nativeEnabled) {
|
|
47533
47915
|
reg = await getCommandsRegistry();
|
|
47534
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
47916
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-C70yD9PL.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
47535
47917
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
47536
47918
|
skillCommands,
|
|
47537
47919
|
provider: "slack"
|
|
@@ -52182,7 +52564,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
52182
52564
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
52183
52565
|
let preflightTranscript;
|
|
52184
52566
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
52185
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
52567
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-CoKYDdd4.js");
|
|
52186
52568
|
preflightTranscript = await transcribeFirstAudio({
|
|
52187
52569
|
ctx: {
|
|
52188
52570
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -54327,23 +54709,23 @@ let webLoginQrPromise = null;
|
|
|
54327
54709
|
let webChannelPromise = null;
|
|
54328
54710
|
let whatsappActionsPromise = null;
|
|
54329
54711
|
function loadWebOutbound() {
|
|
54330
|
-
webOutboundPromise ??= import("./outbound-
|
|
54712
|
+
webOutboundPromise ??= import("./outbound-D7yJKgEX.js").then((n) => n.t);
|
|
54331
54713
|
return webOutboundPromise;
|
|
54332
54714
|
}
|
|
54333
54715
|
function loadWebLogin() {
|
|
54334
|
-
webLoginPromise ??= import("./login-
|
|
54716
|
+
webLoginPromise ??= import("./login-BhLw-aw1.js").then((n) => n.n);
|
|
54335
54717
|
return webLoginPromise;
|
|
54336
54718
|
}
|
|
54337
54719
|
function loadWebLoginQr() {
|
|
54338
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
54720
|
+
webLoginQrPromise ??= import("./login-qr-B4dxH543.js");
|
|
54339
54721
|
return webLoginQrPromise;
|
|
54340
54722
|
}
|
|
54341
54723
|
function loadWebChannel() {
|
|
54342
|
-
webChannelPromise ??= import("./web-
|
|
54724
|
+
webChannelPromise ??= import("./web-7u3fdT2S.js");
|
|
54343
54725
|
return webChannelPromise;
|
|
54344
54726
|
}
|
|
54345
54727
|
function loadWhatsAppActions() {
|
|
54346
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
54728
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-B_3do0s7.js");
|
|
54347
54729
|
return whatsappActionsPromise;
|
|
54348
54730
|
}
|
|
54349
54731
|
function createPluginRuntime() {
|
|
@@ -60231,6 +60613,22 @@ function wrapToolParamNormalization(tool, requiredParamGroups) {
|
|
|
60231
60613
|
}
|
|
60232
60614
|
};
|
|
60233
60615
|
}
|
|
60616
|
+
/**
|
|
60617
|
+
* Override a tool's description while preserving execute, parameters, and
|
|
60618
|
+
* other properties. Used by Stage 2.5 of the prompt-reduction plan to move
|
|
60619
|
+
* usage docs from the system prompt into tool descriptions where they
|
|
60620
|
+
* belong contextually.
|
|
60621
|
+
*
|
|
60622
|
+
* The replacement description should include the upstream's tool-purpose
|
|
60623
|
+
* sentence so models that only read the description (without the prompt
|
|
60624
|
+
* section) still have the same baseline understanding.
|
|
60625
|
+
*/
|
|
60626
|
+
function wrapToolWithDescriptionOverride(tool, description) {
|
|
60627
|
+
return {
|
|
60628
|
+
...tool,
|
|
60629
|
+
description
|
|
60630
|
+
};
|
|
60631
|
+
}
|
|
60234
60632
|
function wrapToolWorkspaceRootGuard(tool, root) {
|
|
60235
60633
|
return {
|
|
60236
60634
|
...tool,
|
|
@@ -70447,6 +70845,7 @@ function createSymiTools(options) {
|
|
|
70447
70845
|
createCronTool({ agentSessionKey: options?.agentSessionKey }),
|
|
70448
70846
|
createTaskListTool({ workspaceDir }),
|
|
70449
70847
|
createTaskCancelTool({ workspaceDir }),
|
|
70848
|
+
createSkillSearchTool({ workspaceDir }),
|
|
70450
70849
|
...messageTool ? [messageTool] : [],
|
|
70451
70850
|
createTtsTool({
|
|
70452
70851
|
agentChannel: options?.agentChannel,
|
|
@@ -70642,6 +71041,26 @@ function resolveToolLoopDetectionConfig(params) {
|
|
|
70642
71041
|
}
|
|
70643
71042
|
};
|
|
70644
71043
|
}
|
|
71044
|
+
/**
|
|
71045
|
+
* Edit tool description. Replaces the upstream's terse one-liner with
|
|
71046
|
+
* usage notes migrated from the system prompt's "Edit Tool Best Practices"
|
|
71047
|
+
* section in Stage 2.5 of the prompt-reduction plan. Co-locating these
|
|
71048
|
+
* notes with the tool means they ship only when edit is in palette, and
|
|
71049
|
+
* the system prompt section can be deleted in Stage 4 without losing the
|
|
71050
|
+
* guidance.
|
|
71051
|
+
*
|
|
71052
|
+
* Combined with the read-before-edit guard (Stage 1.3) and the model's
|
|
71053
|
+
* own discipline, this should kill the hallucinated-oldText failure class
|
|
71054
|
+
* for any well-intentioned model.
|
|
71055
|
+
*/
|
|
71056
|
+
const EDIT_TOOL_DESCRIPTION = [
|
|
71057
|
+
"Edit a file by replacing exact text. The oldText must match the file EXACTLY (whitespace, indentation, and all).",
|
|
71058
|
+
"Best practices to avoid match failures:",
|
|
71059
|
+
"- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
|
|
71060
|
+
"- ALWAYS read the file first, then copy the exact text from the read output for oldText. The read-before-edit guard refuses edits to unread files.",
|
|
71061
|
+
"- 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 skip to a different issue.",
|
|
71062
|
+
"- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines)."
|
|
71063
|
+
].join(" ");
|
|
70645
71064
|
function createSymiCodingTools(options) {
|
|
70646
71065
|
const execToolName = "exec";
|
|
70647
71066
|
const sandbox = options?.sandbox?.enabled ? options.sandbox : void 0;
|
|
@@ -70730,7 +71149,7 @@ function createSymiCodingTools(options) {
|
|
|
70730
71149
|
}
|
|
70731
71150
|
if (tool.name === "edit") {
|
|
70732
71151
|
if (sandboxRoot) return [];
|
|
70733
|
-
const guarded = wrapEditToolWithGuard(wrapToolParamNormalization(createEditTool(workspaceRoot), CLAUDE_PARAM_GROUPS.edit), readEditTracker);
|
|
71152
|
+
const guarded = wrapEditToolWithGuard(wrapToolWithDescriptionOverride(wrapToolParamNormalization(createEditTool(workspaceRoot), CLAUDE_PARAM_GROUPS.edit), EDIT_TOOL_DESCRIPTION), readEditTracker);
|
|
70734
71153
|
return [workspaceOnly ? wrapToolWorkspaceRootGuard(guarded, workspaceRoot) : guarded];
|
|
70735
71154
|
}
|
|
70736
71155
|
return [tool];
|
|
@@ -71173,7 +71592,11 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
71173
71592
|
userTime,
|
|
71174
71593
|
userTimeFormat,
|
|
71175
71594
|
contextFiles,
|
|
71176
|
-
memoryCitationsMode: params.config?.memory?.citations
|
|
71595
|
+
memoryCitationsMode: params.config?.memory?.citations,
|
|
71596
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
|
|
71597
|
+
skillsDiscoveryMode: params.config?.skills?.discoveryMode,
|
|
71598
|
+
skillsAnchorList: params.config?.skills?.anchorList,
|
|
71599
|
+
currentUserMessage: void 0
|
|
71177
71600
|
}));
|
|
71178
71601
|
const sessionLock = await acquireSessionWriteLock({
|
|
71179
71602
|
sessionFile: params.sessionFile,
|
|
@@ -79235,7 +79658,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
79235
79658
|
return;
|
|
79236
79659
|
}
|
|
79237
79660
|
try {
|
|
79238
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
79661
|
+
const { deliverOutboundPayloads } = await import("./deliver-hjUeDZ7e.js").then((n) => n.n);
|
|
79239
79662
|
await deliverOutboundPayloads({
|
|
79240
79663
|
cfg: params.cfg,
|
|
79241
79664
|
channel,
|