@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
|
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
|
2
2
|
import { c as expandHomePrefix, i as resolveGatewayPort, n as resolveConfigPath, s as resolveStateDir, t as STATE_DIR, u as resolveRequiredHomeDir } from "./paths-CE7eVGHg.js";
|
|
3
3
|
import { _ as isCronSessionKey, b as resolveThreadParentSessionKey, c as normalizeMainKey, d as sanitizeAgentId, f as DEFAULT_ACCOUNT_ID, g as isAcpSessionKey, h as getSubagentDepth, l as resolveAgentIdFromSessionKey, o as classifySessionKeyShape, p as normalizeAccountId$2, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, u as resolveThreadSessionKeys, v as isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-BCzIW1Y2.js";
|
|
4
4
|
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, d as createPluginRegistry, et as theme, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, l as requireActivePluginRegistry, lt as resolvePreferredSymiTmpDir, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, o as normalizeChannelId, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, st as normalizeLogLevel, tt as getChildLogger, u as setActivePluginRegistry, v as createInternalHookEvent, w as ensureDir$3, y as triggerInternalHook, z as sliceUtf16Safe } from "./registry-BhoUuugi.js";
|
|
5
|
-
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-Cbl5pNe1.js";
|
|
5
|
+
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-Cbl5pNe1.js";
|
|
6
6
|
import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-CZixfwU8.js";
|
|
7
7
|
import { $ as DEFAULT_MODEL, A as resolveShellEnvFallbackTimeoutMs, B as dedupeProfileIds, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as getSoonestCooldownExpiry, G as resolveSymiAgentDir, H as markAuthProfileGood, I as isProfileInCooldown, K as withFileLock, L as markAuthProfileFailure, O as getShellPathFromLoginShell, P as resolveAuthProfileOrder, Q as DEFAULT_CONTEXT_TOKENS, R as markAuthProfileUsed, S as getApiKeyForModel, T as resolveApiKeyForProvider, U as ensureAuthProfileStore, V as listProfilesForProvider, W as resolveAuthStorePathForDisplay, X as normalizeSecretInput, Z as resolveAuthProfileDisplayLabel, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, et as DEFAULT_PROVIDER, f as resolveModelRefFromString, i as findNormalizedProviderValue, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveApiKeyForProfile } from "./model-selection-vHAQ4r1b.js";
|
|
8
8
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-K_J_nfgx.js";
|
|
@@ -12,21 +12,21 @@ import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY
|
|
|
12
12
|
import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTelegramAccountIds, d as resolveSlackAccount, g as listEnabledDiscordAccounts, h as createDiscordActionGate, i as isWhatsAppGroupJid, l as resolveTelegramAccount, m as resolveSlackBotToken, n as listChannelPlugins, o as createTelegramActionGate, p as resolveSlackAppToken, r as normalizeChannelId$1, s as listEnabledTelegramAccounts, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeDiscordToken } from "./plugins-71oIavrF.js";
|
|
13
13
|
import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-DDEyGwby.js";
|
|
14
14
|
import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
|
|
15
|
-
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-
|
|
16
|
-
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-
|
|
17
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-
|
|
15
|
+
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-F2Cpm-SJ.js";
|
|
16
|
+
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-D27q8Oqo.js";
|
|
17
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-XYF4JahT.js";
|
|
18
18
|
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-Kbl70eCP.js";
|
|
19
19
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-C1vRJs5w.js";
|
|
20
20
|
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-8zZqL37v.js";
|
|
21
|
-
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-
|
|
21
|
+
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-depbZ9aA.js";
|
|
22
22
|
import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-ByaQt43P.js";
|
|
23
23
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-j5tVLINv.js";
|
|
24
24
|
import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-BQINJQIT.js";
|
|
25
|
-
import { $ as mergeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as deliveryContextKey, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-
|
|
26
|
-
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-
|
|
25
|
+
import { $ as mergeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as deliveryContextKey, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-DuZtk5SK.js";
|
|
26
|
+
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-D7Zr88dI.js";
|
|
27
27
|
import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-DWdYdchb.js";
|
|
28
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
29
|
-
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-
|
|
28
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-B-hW5hrK.js";
|
|
29
|
+
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, h as parseFrontmatterBlock, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-D0hfZgFz.js";
|
|
30
30
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-CPfngF0S.js";
|
|
31
31
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
|
|
32
32
|
import { n as getMediaDir, r as saveMediaBuffer } from "./store-bnzGvI16.js";
|
|
@@ -36,8 +36,8 @@ import { t as resolveIMessageAccount } from "./accounts-DImOt9jX.js";
|
|
|
36
36
|
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-DkMamAQ-.js";
|
|
37
37
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-C8Tqw4td.js";
|
|
38
38
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-ChC2CXaN.js";
|
|
39
|
-
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-
|
|
40
|
-
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-
|
|
39
|
+
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-BjyeKf1c.js";
|
|
40
|
+
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-CLPHK-qG.js";
|
|
41
41
|
import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-479FB0St.js";
|
|
42
42
|
import { n as retryAsync } from "./retry-QGp0jvVi.js";
|
|
43
43
|
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-Dm716SF3.js";
|
|
@@ -47,20 +47,20 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-DwuL
|
|
|
47
47
|
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-BuSWcEvl.js";
|
|
48
48
|
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-0kwEfxD4.js";
|
|
49
49
|
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-ke7KirEH.js";
|
|
50
|
-
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-
|
|
50
|
+
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-QmLQo8Tj.js";
|
|
51
51
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CgGv6nTy.js";
|
|
52
|
-
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-
|
|
52
|
+
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-Dbs3i8HW.js";
|
|
53
53
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-WLZaC77l.js";
|
|
54
54
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-BaoETsQI.js";
|
|
55
55
|
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-C-6tM-GK.js";
|
|
56
56
|
import { n as normalizePollInput } from "./polls-Coxe0Akm.js";
|
|
57
57
|
import { t as convertMarkdownTables } from "./tables-BE0lT1IV.js";
|
|
58
|
-
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-
|
|
59
|
-
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-
|
|
58
|
+
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-Dj6_LS_W.js";
|
|
59
|
+
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-B0szkIfv.js";
|
|
60
60
|
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Dd2_hyM2.js";
|
|
61
61
|
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-CFRe6XNa.js";
|
|
62
62
|
import { t as makeProxyFetch } from "./proxy-DaT-KQ7w.js";
|
|
63
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
63
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-Dmo0pSSf.js";
|
|
64
64
|
import { t as getActiveWebListener } from "./active-listener-OKZn7EWc.js";
|
|
65
65
|
import { createRequire } from "node:module";
|
|
66
66
|
import * as path$1 from "node:path";
|
|
@@ -3473,7 +3473,7 @@ async function getMemorySearchManager(params) {
|
|
|
3473
3473
|
const wrapper = new FallbackMemoryManager({
|
|
3474
3474
|
primary,
|
|
3475
3475
|
fallbackFactory: async () => {
|
|
3476
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3476
|
+
const { MemoryIndexManager } = await import("./manager-CLPHK-qG.js").then((n) => n.n);
|
|
3477
3477
|
return await MemoryIndexManager.get(params);
|
|
3478
3478
|
}
|
|
3479
3479
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -3486,7 +3486,7 @@ async function getMemorySearchManager(params) {
|
|
|
3486
3486
|
}
|
|
3487
3487
|
}
|
|
3488
3488
|
try {
|
|
3489
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3489
|
+
const { MemoryIndexManager } = await import("./manager-CLPHK-qG.js").then((n) => n.n);
|
|
3490
3490
|
return { manager: await MemoryIndexManager.get(params) };
|
|
3491
3491
|
} catch (err) {
|
|
3492
3492
|
return {
|
|
@@ -7367,7 +7367,7 @@ async function routeReply(params) {
|
|
|
7367
7367
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
7368
7368
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
7369
7369
|
try {
|
|
7370
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
7370
|
+
const { deliverOutboundPayloads } = await import("./deliver-XYF4JahT.js").then((n) => n.n);
|
|
7371
7371
|
return {
|
|
7372
7372
|
ok: true,
|
|
7373
7373
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -36293,6 +36293,231 @@ function createSessionsSpawnTool(opts) {
|
|
|
36293
36293
|
};
|
|
36294
36294
|
}
|
|
36295
36295
|
|
|
36296
|
+
//#endregion
|
|
36297
|
+
//#region src/agents/skills/triggers.ts
|
|
36298
|
+
const QUOTE_RE = /^["'`](.*)["'`]$/;
|
|
36299
|
+
const ARRAY_FORM_RE = /^\[(.*)\]$/s;
|
|
36300
|
+
function stripWrappingQuotes(s) {
|
|
36301
|
+
const m = s.trim().match(QUOTE_RE);
|
|
36302
|
+
return m ? m[1] : s.trim();
|
|
36303
|
+
}
|
|
36304
|
+
/** Parse a single trigger value, dropping empty / whitespace-only entries. */
|
|
36305
|
+
function cleanTrigger(raw) {
|
|
36306
|
+
const trimmed = stripWrappingQuotes(raw).toLowerCase();
|
|
36307
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
36308
|
+
}
|
|
36309
|
+
/**
|
|
36310
|
+
* Parse the value of a `triggers:` frontmatter field into a string[].
|
|
36311
|
+
* Accepts both inline-array form `[a, b, "c d"]` and YAML-list form
|
|
36312
|
+
* (multiline with leading hyphens). Returns deduped lowercased trigger
|
|
36313
|
+
* strings, or empty array on unparseable / missing input.
|
|
36314
|
+
*/
|
|
36315
|
+
function parseTriggersValue(raw) {
|
|
36316
|
+
if (typeof raw !== "string") return [];
|
|
36317
|
+
const trimmed = raw.trim();
|
|
36318
|
+
if (!trimmed) return [];
|
|
36319
|
+
const items = [];
|
|
36320
|
+
const arrayMatch = trimmed.match(ARRAY_FORM_RE);
|
|
36321
|
+
if (arrayMatch) {
|
|
36322
|
+
const inner = arrayMatch[1];
|
|
36323
|
+
let buf = "";
|
|
36324
|
+
let inQuote = null;
|
|
36325
|
+
for (const ch of inner) {
|
|
36326
|
+
if (inQuote) {
|
|
36327
|
+
if (ch === inQuote) inQuote = null;
|
|
36328
|
+
else buf += ch;
|
|
36329
|
+
continue;
|
|
36330
|
+
}
|
|
36331
|
+
if (ch === "\"" || ch === "'") {
|
|
36332
|
+
inQuote = ch;
|
|
36333
|
+
continue;
|
|
36334
|
+
}
|
|
36335
|
+
if (ch === ",") {
|
|
36336
|
+
const cleaned = cleanTrigger(buf);
|
|
36337
|
+
if (cleaned) items.push(cleaned);
|
|
36338
|
+
buf = "";
|
|
36339
|
+
continue;
|
|
36340
|
+
}
|
|
36341
|
+
buf += ch;
|
|
36342
|
+
}
|
|
36343
|
+
const cleaned = cleanTrigger(buf);
|
|
36344
|
+
if (cleaned) items.push(cleaned);
|
|
36345
|
+
} else for (const line of trimmed.split("\n")) {
|
|
36346
|
+
const ltrim = line.trimStart();
|
|
36347
|
+
if (ltrim.startsWith("- ")) {
|
|
36348
|
+
const cleaned = cleanTrigger(ltrim.slice(2));
|
|
36349
|
+
if (cleaned) items.push(cleaned);
|
|
36350
|
+
} else if (ltrim && !ltrim.startsWith("#")) {
|
|
36351
|
+
const cleaned = cleanTrigger(ltrim);
|
|
36352
|
+
if (cleaned) items.push(cleaned);
|
|
36353
|
+
}
|
|
36354
|
+
}
|
|
36355
|
+
const seen = /* @__PURE__ */ new Set();
|
|
36356
|
+
const out = [];
|
|
36357
|
+
for (const t of items) if (!seen.has(t)) {
|
|
36358
|
+
seen.add(t);
|
|
36359
|
+
out.push(t);
|
|
36360
|
+
}
|
|
36361
|
+
return out;
|
|
36362
|
+
}
|
|
36363
|
+
/**
|
|
36364
|
+
* Extract triggers from a parsed frontmatter record. Returns empty array
|
|
36365
|
+
* when the field is absent or unparseable.
|
|
36366
|
+
*/
|
|
36367
|
+
function getSkillTriggers(frontmatter) {
|
|
36368
|
+
return parseTriggersValue(frontmatter.triggers);
|
|
36369
|
+
}
|
|
36370
|
+
|
|
36371
|
+
//#endregion
|
|
36372
|
+
//#region src/agents/tools/skill-search-tool.ts
|
|
36373
|
+
const SkillSearchToolSchema = Type.Object({
|
|
36374
|
+
query: Type.String({
|
|
36375
|
+
minLength: 1,
|
|
36376
|
+
description: "Intent description (2-8 words). Match by trigger keywords first, then description text."
|
|
36377
|
+
}),
|
|
36378
|
+
limit: Type.Optional(Type.Number({
|
|
36379
|
+
minimum: 1,
|
|
36380
|
+
maximum: 10,
|
|
36381
|
+
description: "Max results to return (default 5, capped at 10)."
|
|
36382
|
+
}))
|
|
36383
|
+
});
|
|
36384
|
+
const CACHE_TTL_MS = 6e4;
|
|
36385
|
+
const SAFE_NAME_RE = /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/;
|
|
36386
|
+
function loadSkillFromDir(dir, source) {
|
|
36387
|
+
const name = path.basename(dir);
|
|
36388
|
+
if (!SAFE_NAME_RE.test(name)) return null;
|
|
36389
|
+
const file = path.join(dir, "SKILL.md");
|
|
36390
|
+
let raw;
|
|
36391
|
+
try {
|
|
36392
|
+
if (!fs.statSync(file).isFile()) return null;
|
|
36393
|
+
raw = fs.readFileSync(file, "utf8");
|
|
36394
|
+
} catch {
|
|
36395
|
+
return null;
|
|
36396
|
+
}
|
|
36397
|
+
const fm = parseFrontmatterBlock(raw);
|
|
36398
|
+
return {
|
|
36399
|
+
name,
|
|
36400
|
+
description: (fm.description ?? "").trim(),
|
|
36401
|
+
path: file,
|
|
36402
|
+
triggers: getSkillTriggers(fm),
|
|
36403
|
+
source
|
|
36404
|
+
};
|
|
36405
|
+
}
|
|
36406
|
+
function listSkillDirs(root) {
|
|
36407
|
+
const skillsDir = path.join(root, "skills");
|
|
36408
|
+
let entries;
|
|
36409
|
+
try {
|
|
36410
|
+
entries = fs.readdirSync(skillsDir, { withFileTypes: true });
|
|
36411
|
+
} catch {
|
|
36412
|
+
return [];
|
|
36413
|
+
}
|
|
36414
|
+
return entries.filter((e) => e.isDirectory()).map((e) => path.join(skillsDir, e.name));
|
|
36415
|
+
}
|
|
36416
|
+
let cachedPackageRoot$1;
|
|
36417
|
+
const cachePerWorkspace = /* @__PURE__ */ new Map();
|
|
36418
|
+
function getPackageRoot$1() {
|
|
36419
|
+
if (cachedPackageRoot$1 === void 0) cachedPackageRoot$1 = resolveSymiPackageRootSync({});
|
|
36420
|
+
return cachedPackageRoot$1;
|
|
36421
|
+
}
|
|
36422
|
+
function loadAllSkills(workspaceDir) {
|
|
36423
|
+
const cacheKey = workspaceDir ?? "";
|
|
36424
|
+
const now = Date.now();
|
|
36425
|
+
const existing = cachePerWorkspace.get(cacheKey);
|
|
36426
|
+
if (existing && now - existing.loadedAt < CACHE_TTL_MS) return existing.skills;
|
|
36427
|
+
const seen = /* @__PURE__ */ new Map();
|
|
36428
|
+
if (workspaceDir) for (const dir of listSkillDirs(workspaceDir)) {
|
|
36429
|
+
const skill = loadSkillFromDir(dir, "workspace");
|
|
36430
|
+
if (skill && !seen.has(skill.name)) seen.set(skill.name, skill);
|
|
36431
|
+
}
|
|
36432
|
+
const packageRoot = getPackageRoot$1();
|
|
36433
|
+
if (packageRoot) for (const dir of listSkillDirs(packageRoot)) {
|
|
36434
|
+
const skill = loadSkillFromDir(dir, "bundled");
|
|
36435
|
+
if (skill && !seen.has(skill.name)) seen.set(skill.name, skill);
|
|
36436
|
+
}
|
|
36437
|
+
const skills = [...seen.values()];
|
|
36438
|
+
cachePerWorkspace.set(cacheKey, {
|
|
36439
|
+
skills,
|
|
36440
|
+
loadedAt: now
|
|
36441
|
+
});
|
|
36442
|
+
return skills;
|
|
36443
|
+
}
|
|
36444
|
+
const TOKEN_SPLIT_RE = /[^\w/]+/;
|
|
36445
|
+
function tokenizeQuery(raw) {
|
|
36446
|
+
return raw.toLowerCase().split(TOKEN_SPLIT_RE).filter((t) => t.length >= 2);
|
|
36447
|
+
}
|
|
36448
|
+
/**
|
|
36449
|
+
* Score a query against one skill's triggers + description.
|
|
36450
|
+
* - Trigger score: ratio of query tokens that appear in the trigger set.
|
|
36451
|
+
* - FTS score: 0.4 × ratio of query tokens that appear in the description
|
|
36452
|
+
* (case-insensitive substring match).
|
|
36453
|
+
* - Final = max(trigger, fts) so trigger matches always beat descriptions.
|
|
36454
|
+
* - Returns 0 for "no signal at all" (caller should drop these).
|
|
36455
|
+
*/
|
|
36456
|
+
function scoreSkillMatch(skill, queryTokens) {
|
|
36457
|
+
if (queryTokens.length === 0) return 0;
|
|
36458
|
+
const triggerSet = new Set(skill.triggers.map((t) => t.toLowerCase()));
|
|
36459
|
+
const description = skill.description.toLowerCase();
|
|
36460
|
+
let triggerHits = 0;
|
|
36461
|
+
let ftsHits = 0;
|
|
36462
|
+
for (const token of queryTokens) if (triggerSet.has(token)) triggerHits += 1;
|
|
36463
|
+
else if (description.includes(token)) ftsHits += 1;
|
|
36464
|
+
const triggerScore = triggerHits / queryTokens.length;
|
|
36465
|
+
const ftsScore = ftsHits / queryTokens.length * .4;
|
|
36466
|
+
return Math.max(triggerScore, ftsScore);
|
|
36467
|
+
}
|
|
36468
|
+
/**
|
|
36469
|
+
* Pure-function search; exported for testing without going through the
|
|
36470
|
+
* tool execute wrapper.
|
|
36471
|
+
*/
|
|
36472
|
+
function searchSkills(query, limit, workspaceDir) {
|
|
36473
|
+
const tokens = tokenizeQuery(query);
|
|
36474
|
+
if (tokens.length === 0) return [];
|
|
36475
|
+
const all = loadAllSkills(workspaceDir);
|
|
36476
|
+
const scored = [];
|
|
36477
|
+
for (const skill of all) {
|
|
36478
|
+
const score = scoreSkillMatch(skill, tokens);
|
|
36479
|
+
if (score > 0) scored.push({
|
|
36480
|
+
name: skill.name,
|
|
36481
|
+
description: skill.description,
|
|
36482
|
+
path: skill.path,
|
|
36483
|
+
score
|
|
36484
|
+
});
|
|
36485
|
+
}
|
|
36486
|
+
scored.sort((a, b) => b.score - a.score || a.name.localeCompare(b.name));
|
|
36487
|
+
return scored.slice(0, limit);
|
|
36488
|
+
}
|
|
36489
|
+
function createSkillSearchTool(opts) {
|
|
36490
|
+
return {
|
|
36491
|
+
name: "skill_search",
|
|
36492
|
+
label: "skill_search",
|
|
36493
|
+
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.",
|
|
36494
|
+
parameters: SkillSearchToolSchema,
|
|
36495
|
+
execute: async (_toolCallId, args) => {
|
|
36496
|
+
const params = args;
|
|
36497
|
+
const query = typeof params.query === "string" ? params.query.trim() : "";
|
|
36498
|
+
if (!query) return jsonResult({
|
|
36499
|
+
ok: false,
|
|
36500
|
+
error: "skill_search requires a non-empty `query` string."
|
|
36501
|
+
});
|
|
36502
|
+
const limit = typeof params.limit === "number" && Number.isFinite(params.limit) ? Math.min(10, Math.max(1, Math.floor(params.limit))) : 5;
|
|
36503
|
+
try {
|
|
36504
|
+
return jsonResult({
|
|
36505
|
+
ok: true,
|
|
36506
|
+
query,
|
|
36507
|
+
matches: searchSkills(query, limit, opts?.workspaceDir)
|
|
36508
|
+
});
|
|
36509
|
+
} catch (err) {
|
|
36510
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
36511
|
+
logWarn(`skill_search failed: ${message}`);
|
|
36512
|
+
return jsonResult({
|
|
36513
|
+
ok: false,
|
|
36514
|
+
error: message
|
|
36515
|
+
});
|
|
36516
|
+
}
|
|
36517
|
+
}
|
|
36518
|
+
};
|
|
36519
|
+
}
|
|
36520
|
+
|
|
36296
36521
|
//#endregion
|
|
36297
36522
|
//#region src/agents/tools/subagents-tool.ts
|
|
36298
36523
|
const SUBAGENT_ACTIONS = [
|
|
@@ -38353,6 +38578,7 @@ function createSymiTools(options) {
|
|
|
38353
38578
|
createCronTool({ agentSessionKey: options?.agentSessionKey }),
|
|
38354
38579
|
createTaskListTool({ workspaceDir }),
|
|
38355
38580
|
createTaskCancelTool({ workspaceDir }),
|
|
38581
|
+
createSkillSearchTool({ workspaceDir }),
|
|
38356
38582
|
...messageTool ? [messageTool] : [],
|
|
38357
38583
|
createTtsTool({
|
|
38358
38584
|
agentChannel: options?.agentChannel,
|
|
@@ -39534,6 +39760,38 @@ function setCliSessionId(entry, provider, sessionId) {
|
|
|
39534
39760
|
//#endregion
|
|
39535
39761
|
//#region src/config/model-profiles-builtin.ts
|
|
39536
39762
|
/**
|
|
39763
|
+
* Shared safety + output-style additions applied to most built-in profiles
|
|
39764
|
+
* and the Generic fallback. These rules came from a long history of
|
|
39765
|
+
* model-specific bugs (verification-monologue padding, "I have addressed"
|
|
39766
|
+
* preambles, post-answer assessment lists). Keeping them in one place
|
|
39767
|
+
* means a new profile inherits sane defaults instead of starting empty.
|
|
39768
|
+
*
|
|
39769
|
+
* Stage 2.4 of the prompt-reduction plan: rules that ALL profiles need
|
|
39770
|
+
* live here; profile-specific rules (control-token stripping, tool-arg
|
|
39771
|
+
* cleanup, reasoning hints) live in their own per-profile additions.
|
|
39772
|
+
*
|
|
39773
|
+
* Exported so resolve-model-profile.ts can apply the same additions to
|
|
39774
|
+
* the Generic fallback profile — no model resolves to "Generic" without
|
|
39775
|
+
* inheriting the safety/style rules.
|
|
39776
|
+
*/
|
|
39777
|
+
const SAFETY_AND_STYLE_ADDITIONS = [
|
|
39778
|
+
"CRITICAL OUTPUT RULES:",
|
|
39779
|
+
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
39780
|
+
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
39781
|
+
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
39782
|
+
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
39783
|
+
"- If you need to verify your work, do so before writing your response, not after.",
|
|
39784
|
+
"- Send brief progress updates on long tasks so the user knows you are active."
|
|
39785
|
+
];
|
|
39786
|
+
/** Hint for native-reasoning models (Nemotron, Qwen 3.5/3.6) to keep
|
|
39787
|
+
* planning internal. Not applied to Gemma/Ollama because those models
|
|
39788
|
+
* don't have structured thinking and the rule confuses them. */
|
|
39789
|
+
const REASONING_DISCIPLINE_ADDITION = "- Keep planning and reasoning internal. Only speak when you have a result or need user input.";
|
|
39790
|
+
/** Hint for models that leak Gemma-style control tokens (Gemma family,
|
|
39791
|
+
* Ollama hosting any uncensored open model). Forces tool-arg cleanup and
|
|
39792
|
+
* forbids leaking turn markers in user-visible text. */
|
|
39793
|
+
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."];
|
|
39794
|
+
/**
|
|
39537
39795
|
* Built-in model profiles. Ordered from most-specific to least-specific so
|
|
39538
39796
|
* that `resolveModelProfile` can return the first match.
|
|
39539
39797
|
*
|
|
@@ -39567,17 +39825,7 @@ const BUILTIN_PROFILES = [
|
|
|
39567
39825
|
hasStructuredThinking: false,
|
|
39568
39826
|
validateToolArgs: true
|
|
39569
39827
|
},
|
|
39570
|
-
promptAdditions: [
|
|
39571
|
-
"CRITICAL OUTPUT RULES:",
|
|
39572
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
39573
|
-
"- Do not output raw control tokens, channel tags, or turn markers.",
|
|
39574
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
39575
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
39576
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
39577
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
39578
|
-
"- Send brief progress updates on long tasks so the user knows you are active.",
|
|
39579
|
-
"- 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."
|
|
39580
|
-
],
|
|
39828
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, ...CONTROL_TOKEN_ADDITIONS],
|
|
39581
39829
|
ui: {
|
|
39582
39830
|
badge: "Local",
|
|
39583
39831
|
watchdogMs: 9e5,
|
|
@@ -39604,16 +39852,7 @@ const BUILTIN_PROFILES = [
|
|
|
39604
39852
|
hasStructuredThinking: true,
|
|
39605
39853
|
validateToolArgs: false
|
|
39606
39854
|
},
|
|
39607
|
-
promptAdditions: [
|
|
39608
|
-
"CRITICAL OUTPUT RULES:",
|
|
39609
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
39610
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
39611
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
39612
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
39613
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
39614
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
39615
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
39616
|
-
],
|
|
39855
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
39617
39856
|
ui: {
|
|
39618
39857
|
badge: "Local",
|
|
39619
39858
|
watchdogMs: 9e5,
|
|
@@ -39639,7 +39878,7 @@ const BUILTIN_PROFILES = [
|
|
|
39639
39878
|
hasStructuredThinking: true,
|
|
39640
39879
|
validateToolArgs: false
|
|
39641
39880
|
},
|
|
39642
|
-
promptAdditions: [],
|
|
39881
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS],
|
|
39643
39882
|
ui: {
|
|
39644
39883
|
badge: "API",
|
|
39645
39884
|
watchdogMs: 3e5,
|
|
@@ -39672,15 +39911,7 @@ const BUILTIN_PROFILES = [
|
|
|
39672
39911
|
hasStructuredThinking: true,
|
|
39673
39912
|
validateToolArgs: false
|
|
39674
39913
|
},
|
|
39675
|
-
promptAdditions: [
|
|
39676
|
-
"CRITICAL OUTPUT RULES:",
|
|
39677
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
39678
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
39679
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
39680
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
39681
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
39682
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
39683
|
-
],
|
|
39914
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
39684
39915
|
ui: {
|
|
39685
39916
|
badge: "Spider",
|
|
39686
39917
|
watchdogMs: 9e5,
|
|
@@ -39713,16 +39944,7 @@ const BUILTIN_PROFILES = [
|
|
|
39713
39944
|
hasStructuredThinking: false,
|
|
39714
39945
|
validateToolArgs: true
|
|
39715
39946
|
},
|
|
39716
|
-
promptAdditions: [
|
|
39717
|
-
"CRITICAL OUTPUT RULES:",
|
|
39718
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
39719
|
-
"- Do not output raw control tokens, channel tags, or turn markers.",
|
|
39720
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
39721
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
39722
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
39723
|
-
"- Send brief progress updates on long tasks so the user knows you are active.",
|
|
39724
|
-
"- 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."
|
|
39725
|
-
],
|
|
39947
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, ...CONTROL_TOKEN_ADDITIONS],
|
|
39726
39948
|
ui: {
|
|
39727
39949
|
badge: "Spider",
|
|
39728
39950
|
watchdogMs: 6e5,
|
|
@@ -39754,16 +39976,7 @@ const BUILTIN_PROFILES = [
|
|
|
39754
39976
|
hasStructuredThinking: true,
|
|
39755
39977
|
validateToolArgs: false
|
|
39756
39978
|
},
|
|
39757
|
-
promptAdditions: [
|
|
39758
|
-
"CRITICAL OUTPUT RULES:",
|
|
39759
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
39760
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
39761
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
39762
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
39763
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
39764
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
39765
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
39766
|
-
],
|
|
39979
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
39767
39980
|
ui: {
|
|
39768
39981
|
badge: "CoreWeave",
|
|
39769
39982
|
watchdogMs: 9e5,
|
|
@@ -39774,7 +39987,15 @@ const BUILTIN_PROFILES = [
|
|
|
39774
39987
|
|
|
39775
39988
|
//#endregion
|
|
39776
39989
|
//#region src/config/resolve-model-profile.ts
|
|
39777
|
-
/**
|
|
39990
|
+
/**
|
|
39991
|
+
* Default profile returned when no match is found.
|
|
39992
|
+
*
|
|
39993
|
+
* Stage 2.4 of the prompt-reduction plan: the Generic fallback now ships
|
|
39994
|
+
* the same safety+style additions as every named profile, so newly-added
|
|
39995
|
+
* models without a profile entry inherit sane defaults instead of
|
|
39996
|
+
* starting empty (which would silently regress safety rules until someone
|
|
39997
|
+
* notices and adds a profile).
|
|
39998
|
+
*/
|
|
39778
39999
|
const FALLBACK_PROFILE = {
|
|
39779
40000
|
match: "*",
|
|
39780
40001
|
label: "Generic",
|
|
@@ -39793,7 +40014,7 @@ const FALLBACK_PROFILE = {
|
|
|
39793
40014
|
hasStructuredThinking: false,
|
|
39794
40015
|
validateToolArgs: false
|
|
39795
40016
|
},
|
|
39796
|
-
promptAdditions: [],
|
|
40017
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS],
|
|
39797
40018
|
ui: {
|
|
39798
40019
|
watchdogMs: 3e5,
|
|
39799
40020
|
armWatchdogOnSend: true
|
|
@@ -46379,10 +46600,155 @@ async function prepareSessionManagerForRun(params) {
|
|
|
46379
46600
|
}
|
|
46380
46601
|
}
|
|
46381
46602
|
|
|
46603
|
+
//#endregion
|
|
46604
|
+
//#region src/agents/system-prompt-skills-autoload.ts
|
|
46605
|
+
const FRONTMATTER_RE = /^---\s*\n[\s\S]*?\n---\s*\n?/;
|
|
46606
|
+
let cachedPackageRoot;
|
|
46607
|
+
function getPackageRoot() {
|
|
46608
|
+
if (cachedPackageRoot === void 0) cachedPackageRoot = resolveSymiPackageRootSync({});
|
|
46609
|
+
return cachedPackageRoot;
|
|
46610
|
+
}
|
|
46611
|
+
function safeSkillName(name) {
|
|
46612
|
+
return /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/.test(name);
|
|
46613
|
+
}
|
|
46614
|
+
function tryLoadSkill(skillName, root) {
|
|
46615
|
+
const skillPath = path.join(root, "skills", skillName, "SKILL.md");
|
|
46616
|
+
try {
|
|
46617
|
+
if (!fs.statSync(skillPath).isFile()) return null;
|
|
46618
|
+
} catch {
|
|
46619
|
+
return null;
|
|
46620
|
+
}
|
|
46621
|
+
try {
|
|
46622
|
+
return fs.readFileSync(skillPath, "utf8");
|
|
46623
|
+
} catch {
|
|
46624
|
+
return null;
|
|
46625
|
+
}
|
|
46626
|
+
}
|
|
46627
|
+
function stripFrontmatter(body) {
|
|
46628
|
+
return body.replace(FRONTMATTER_RE, "").trimStart();
|
|
46629
|
+
}
|
|
46630
|
+
/**
|
|
46631
|
+
* Resolves and loads each named skill. Returns the inlinable Markdown block,
|
|
46632
|
+
* or empty string when no skills loaded / minimal mode / no names supplied.
|
|
46633
|
+
*/
|
|
46634
|
+
function buildAutoLoadedSkillsBlock(opts) {
|
|
46635
|
+
if (opts.minimalMode) return "";
|
|
46636
|
+
const names = opts.skillNames.filter((n) => typeof n === "string" && n.trim().length > 0);
|
|
46637
|
+
if (names.length === 0) return "";
|
|
46638
|
+
const packageRoot = getPackageRoot();
|
|
46639
|
+
const loaded = [];
|
|
46640
|
+
for (const rawName of names) {
|
|
46641
|
+
const name = rawName.trim();
|
|
46642
|
+
if (!safeSkillName(name)) {
|
|
46643
|
+
logWarn(`autoLoadInline: skipping invalid skill name '${rawName}'`);
|
|
46644
|
+
continue;
|
|
46645
|
+
}
|
|
46646
|
+
let body = null;
|
|
46647
|
+
let source = "bundled";
|
|
46648
|
+
if (opts.workspaceDir) {
|
|
46649
|
+
body = tryLoadSkill(name, opts.workspaceDir);
|
|
46650
|
+
source = "workspace";
|
|
46651
|
+
}
|
|
46652
|
+
if (body === null && packageRoot) {
|
|
46653
|
+
body = tryLoadSkill(name, packageRoot);
|
|
46654
|
+
source = "bundled";
|
|
46655
|
+
}
|
|
46656
|
+
if (body === null) {
|
|
46657
|
+
logWarn(`autoLoadInline: skill '${name}' not found in workspace or bundled skills`);
|
|
46658
|
+
continue;
|
|
46659
|
+
}
|
|
46660
|
+
const stripped = stripFrontmatter(body).trim();
|
|
46661
|
+
if (!stripped) {
|
|
46662
|
+
logWarn(`autoLoadInline: skill '${name}' has empty body after frontmatter strip; skipping`);
|
|
46663
|
+
continue;
|
|
46664
|
+
}
|
|
46665
|
+
loaded.push({
|
|
46666
|
+
name,
|
|
46667
|
+
body: stripped,
|
|
46668
|
+
source
|
|
46669
|
+
});
|
|
46670
|
+
}
|
|
46671
|
+
if (loaded.length === 0) return "";
|
|
46672
|
+
return [
|
|
46673
|
+
"",
|
|
46674
|
+
"---",
|
|
46675
|
+
"",
|
|
46676
|
+
"## Auto-loaded Skills",
|
|
46677
|
+
"",
|
|
46678
|
+
loaded.map((skill) => `<!-- auto-loaded: ${skill.name} (${skill.source}) -->\n${skill.body}`).join("\n\n---\n\n"),
|
|
46679
|
+
""
|
|
46680
|
+
].join("\n");
|
|
46681
|
+
}
|
|
46682
|
+
|
|
46683
|
+
//#endregion
|
|
46684
|
+
//#region src/agents/system-prompt-skills-jit.ts
|
|
46685
|
+
const MAX_ANCHOR_DESCRIPTION_CHARS = 100;
|
|
46686
|
+
const MAX_AUTO_INJECT_RESULTS = 3;
|
|
46687
|
+
const MAX_AUTO_INJECT_TOTAL_CHARS = 600;
|
|
46688
|
+
/**
|
|
46689
|
+
* Build the anchor list block. Returns "" when no anchor list configured
|
|
46690
|
+
* or in preload mode (anchor list adds value only in jit/hybrid).
|
|
46691
|
+
*/
|
|
46692
|
+
function buildAnchorListBlock(opts) {
|
|
46693
|
+
if (opts.minimalMode) return "";
|
|
46694
|
+
if (opts.discoveryMode !== "jit" && opts.discoveryMode !== "hybrid") return "";
|
|
46695
|
+
const names = (opts.anchorList ?? []).filter((n) => typeof n === "string" && n.trim().length > 0);
|
|
46696
|
+
if (names.length === 0) return "";
|
|
46697
|
+
const lines = [];
|
|
46698
|
+
for (const name of names) {
|
|
46699
|
+
const description = searchSkills(name, 1, opts.workspaceDir)[0]?.description.trim() ?? "";
|
|
46700
|
+
const truncated = description.length > MAX_ANCHOR_DESCRIPTION_CHARS ? `${description.slice(0, MAX_ANCHOR_DESCRIPTION_CHARS - 1)}…` : description;
|
|
46701
|
+
lines.push(truncated ? `- ${name}: ${truncated}` : `- ${name}`);
|
|
46702
|
+
}
|
|
46703
|
+
return [
|
|
46704
|
+
"",
|
|
46705
|
+
"## Anchor Skills",
|
|
46706
|
+
"These skills are always available. Read their SKILL.md via `read` if relevant. For full discovery use the `skill_search` tool.",
|
|
46707
|
+
lines.join("\n"),
|
|
46708
|
+
""
|
|
46709
|
+
].join("\n");
|
|
46710
|
+
}
|
|
46711
|
+
/**
|
|
46712
|
+
* Build the auto-injected matches block based on the user message triggers.
|
|
46713
|
+
* Returns "" when discoveryMode doesn't ask for it, no message available,
|
|
46714
|
+
* no matches found, or in minimal mode.
|
|
46715
|
+
*/
|
|
46716
|
+
function buildAutoInjectBlock(opts) {
|
|
46717
|
+
if (opts.minimalMode) return "";
|
|
46718
|
+
if (opts.discoveryMode !== "jit" && opts.discoveryMode !== "hybrid") return "";
|
|
46719
|
+
const message = (opts.userMessage ?? "").trim();
|
|
46720
|
+
if (!message) return "";
|
|
46721
|
+
const matches = searchSkills(message, MAX_AUTO_INJECT_RESULTS, opts.workspaceDir);
|
|
46722
|
+
if (matches.length === 0) return "";
|
|
46723
|
+
const lines = [];
|
|
46724
|
+
let total = 0;
|
|
46725
|
+
for (const match of matches) {
|
|
46726
|
+
const description = match.description.trim();
|
|
46727
|
+
const truncated = description.length > MAX_ANCHOR_DESCRIPTION_CHARS ? `${description.slice(0, MAX_ANCHOR_DESCRIPTION_CHARS - 1)}…` : description;
|
|
46728
|
+
const skillRef = path.basename(path.dirname(match.path));
|
|
46729
|
+
const line = truncated ? `- ${skillRef}: ${truncated}` : `- ${skillRef}`;
|
|
46730
|
+
if (total + line.length > MAX_AUTO_INJECT_TOTAL_CHARS) break;
|
|
46731
|
+
lines.push(line);
|
|
46732
|
+
total += line.length + 1;
|
|
46733
|
+
}
|
|
46734
|
+
if (lines.length === 0) return "";
|
|
46735
|
+
return [
|
|
46736
|
+
"",
|
|
46737
|
+
"## Possibly Relevant Skills (auto-suggested for this request)",
|
|
46738
|
+
"These skills' triggers matched keywords in your message. Read the SKILL.md if it applies; otherwise ignore and proceed.",
|
|
46739
|
+
lines.join("\n"),
|
|
46740
|
+
""
|
|
46741
|
+
].join("\n");
|
|
46742
|
+
}
|
|
46743
|
+
/** Convenience: build both blocks concatenated. */
|
|
46744
|
+
function buildSkillsJitBlocks(opts) {
|
|
46745
|
+
return `${buildAnchorListBlock(opts)}${buildAutoInjectBlock(opts)}`;
|
|
46746
|
+
}
|
|
46747
|
+
|
|
46382
46748
|
//#endregion
|
|
46383
46749
|
//#region src/agents/pi-embedded-runner/system-prompt.ts
|
|
46384
46750
|
function buildEmbeddedSystemPrompt(params) {
|
|
46385
|
-
|
|
46751
|
+
const corePrompt = buildAgentSystemPrompt({
|
|
46386
46752
|
workspaceDir: params.workspaceDir,
|
|
46387
46753
|
defaultThinkLevel: params.defaultThinkLevel,
|
|
46388
46754
|
reasoningLevel: params.reasoningLevel,
|
|
@@ -46410,6 +46776,19 @@ function buildEmbeddedSystemPrompt(params) {
|
|
|
46410
46776
|
contextFiles: params.contextFiles,
|
|
46411
46777
|
memoryCitationsMode: params.memoryCitationsMode
|
|
46412
46778
|
});
|
|
46779
|
+
const promptMode = params.promptMode ?? "full";
|
|
46780
|
+
const isMinimal = promptMode === "minimal" || promptMode === "none";
|
|
46781
|
+
return `${corePrompt}${buildAutoLoadedSkillsBlock({
|
|
46782
|
+
skillNames: params.autoLoadInlineSkills ?? [],
|
|
46783
|
+
workspaceDir: params.workspaceDir,
|
|
46784
|
+
minimalMode: isMinimal
|
|
46785
|
+
})}${buildSkillsJitBlocks({
|
|
46786
|
+
discoveryMode: params.skillsDiscoveryMode,
|
|
46787
|
+
anchorList: params.skillsAnchorList,
|
|
46788
|
+
userMessage: params.currentUserMessage,
|
|
46789
|
+
workspaceDir: params.workspaceDir,
|
|
46790
|
+
minimalMode: isMinimal
|
|
46791
|
+
})}`;
|
|
46413
46792
|
}
|
|
46414
46793
|
function createSystemPromptOverride(systemPrompt) {
|
|
46415
46794
|
const override = systemPrompt.trim();
|
|
@@ -47197,7 +47576,11 @@ async function runEmbeddedAttempt(params) {
|
|
|
47197
47576
|
userTime,
|
|
47198
47577
|
userTimeFormat,
|
|
47199
47578
|
contextFiles,
|
|
47200
|
-
memoryCitationsMode: params.config?.memory?.citations
|
|
47579
|
+
memoryCitationsMode: params.config?.memory?.citations,
|
|
47580
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
|
|
47581
|
+
skillsDiscoveryMode: params.config?.skills?.discoveryMode,
|
|
47582
|
+
skillsAnchorList: params.config?.skills?.anchorList,
|
|
47583
|
+
currentUserMessage: params.prompt
|
|
47201
47584
|
});
|
|
47202
47585
|
const systemPromptReport = buildSystemPromptReport({
|
|
47203
47586
|
source: "run",
|
|
@@ -51680,7 +52063,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
51680
52063
|
return;
|
|
51681
52064
|
}
|
|
51682
52065
|
try {
|
|
51683
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
52066
|
+
const { deliverOutboundPayloads } = await import("./deliver-XYF4JahT.js").then((n) => n.n);
|
|
51684
52067
|
await deliverOutboundPayloads({
|
|
51685
52068
|
cfg: params.cfg,
|
|
51686
52069
|
channel,
|
|
@@ -55126,7 +55509,7 @@ async function describeStickerImage(params) {
|
|
|
55126
55509
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
55127
55510
|
try {
|
|
55128
55511
|
const buffer = await fs$1.readFile(imagePath);
|
|
55129
|
-
const { describeImageWithModel } = await import("./image-
|
|
55512
|
+
const { describeImageWithModel } = await import("./image-BjyeKf1c.js").then((n) => n.n);
|
|
55130
55513
|
return (await describeImageWithModel({
|
|
55131
55514
|
buffer,
|
|
55132
55515
|
fileName: "sticker.webp",
|
|
@@ -55549,7 +55932,7 @@ function createWhatsAppLoginTool() {
|
|
|
55549
55932
|
force: Type.Optional(Type.Boolean())
|
|
55550
55933
|
}),
|
|
55551
55934
|
execute: async (_toolCallId, args) => {
|
|
55552
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
55935
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CZXIrzvh.js");
|
|
55553
55936
|
if ((args?.action ?? "start") === "wait") {
|
|
55554
55937
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
55555
55938
|
return {
|
|
@@ -57875,7 +58258,7 @@ async function preflightDiscordMessage(params) {
|
|
|
57875
58258
|
let preflightTranscript;
|
|
57876
58259
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
57877
58260
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
57878
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
58261
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-Dtsvq6Hj.js");
|
|
57879
58262
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
57880
58263
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
57881
58264
|
ctx: {
|
|
@@ -61658,27 +62041,27 @@ function isVoiceChannelType(type) {
|
|
|
61658
62041
|
function createDefaultDeps() {
|
|
61659
62042
|
return {
|
|
61660
62043
|
sendMessageWhatsApp: async (...args) => {
|
|
61661
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
62044
|
+
const { sendMessageWhatsApp } = await import("./web-CIj8erCe.js");
|
|
61662
62045
|
return await sendMessageWhatsApp(...args);
|
|
61663
62046
|
},
|
|
61664
62047
|
sendMessageTelegram: async (...args) => {
|
|
61665
|
-
const { sendMessageTelegram } = await import("./send-
|
|
62048
|
+
const { sendMessageTelegram } = await import("./send-depbZ9aA.js").then((n) => n.l);
|
|
61666
62049
|
return await sendMessageTelegram(...args);
|
|
61667
62050
|
},
|
|
61668
62051
|
sendMessageDiscord: async (...args) => {
|
|
61669
|
-
const { sendMessageDiscord } = await import("./send-
|
|
62052
|
+
const { sendMessageDiscord } = await import("./send-D27q8Oqo.js").then((n) => n.t);
|
|
61670
62053
|
return await sendMessageDiscord(...args);
|
|
61671
62054
|
},
|
|
61672
62055
|
sendMessageSlack: async (...args) => {
|
|
61673
|
-
const { sendMessageSlack } = await import("./send-
|
|
62056
|
+
const { sendMessageSlack } = await import("./send-F2Cpm-SJ.js").then((n) => n.n);
|
|
61674
62057
|
return await sendMessageSlack(...args);
|
|
61675
62058
|
},
|
|
61676
62059
|
sendMessageSignal: async (...args) => {
|
|
61677
|
-
const { sendMessageSignal } = await import("./send-
|
|
62060
|
+
const { sendMessageSignal } = await import("./send-Dj6_LS_W.js").then((n) => n.i);
|
|
61678
62061
|
return await sendMessageSignal(...args);
|
|
61679
62062
|
},
|
|
61680
62063
|
sendMessageIMessage: async (...args) => {
|
|
61681
|
-
const { sendMessageIMessage } = await import("./send-
|
|
62064
|
+
const { sendMessageIMessage } = await import("./send-B0szkIfv.js").then((n) => n.n);
|
|
61682
62065
|
return await sendMessageIMessage(...args);
|
|
61683
62066
|
}
|
|
61684
62067
|
};
|
|
@@ -72508,7 +72891,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
72508
72891
|
});
|
|
72509
72892
|
const deliverSlashPayloads = async (replies) => {
|
|
72510
72893
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
72511
|
-
import("./replies-
|
|
72894
|
+
import("./replies-Dmo0pSSf.js").then((n) => n.r),
|
|
72512
72895
|
import("./chunk-Bk95VMr4.js").then((n) => n.s),
|
|
72513
72896
|
import("./markdown-tables-XmEPv2t0.js").then((n) => n.t)
|
|
72514
72897
|
]);
|
|
@@ -72563,7 +72946,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
72563
72946
|
let nativeCommands = [];
|
|
72564
72947
|
if (nativeEnabled) {
|
|
72565
72948
|
reg = await getCommandsRegistry();
|
|
72566
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
72949
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-QmLQo8Tj.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
72567
72950
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
72568
72951
|
skillCommands,
|
|
72569
72952
|
provider: "slack"
|
|
@@ -74781,7 +75164,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
74781
75164
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
74782
75165
|
let preflightTranscript;
|
|
74783
75166
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
74784
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
75167
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-Dtsvq6Hj.js");
|
|
74785
75168
|
preflightTranscript = await transcribeFirstAudio({
|
|
74786
75169
|
ctx: {
|
|
74787
75170
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -76926,23 +77309,23 @@ let webLoginQrPromise = null;
|
|
|
76926
77309
|
let webChannelPromise = null;
|
|
76927
77310
|
let whatsappActionsPromise = null;
|
|
76928
77311
|
function loadWebOutbound() {
|
|
76929
|
-
webOutboundPromise ??= import("./outbound-
|
|
77312
|
+
webOutboundPromise ??= import("./outbound-BD7PNRhC.js").then((n) => n.t);
|
|
76930
77313
|
return webOutboundPromise;
|
|
76931
77314
|
}
|
|
76932
77315
|
function loadWebLogin() {
|
|
76933
|
-
webLoginPromise ??= import("./login-
|
|
77316
|
+
webLoginPromise ??= import("./login-Cv_LYGzG.js").then((n) => n.n);
|
|
76934
77317
|
return webLoginPromise;
|
|
76935
77318
|
}
|
|
76936
77319
|
function loadWebLoginQr() {
|
|
76937
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
77320
|
+
webLoginQrPromise ??= import("./login-qr-CZXIrzvh.js");
|
|
76938
77321
|
return webLoginQrPromise;
|
|
76939
77322
|
}
|
|
76940
77323
|
function loadWebChannel() {
|
|
76941
|
-
webChannelPromise ??= import("./web-
|
|
77324
|
+
webChannelPromise ??= import("./web-CIj8erCe.js");
|
|
76942
77325
|
return webChannelPromise;
|
|
76943
77326
|
}
|
|
76944
77327
|
function loadWhatsAppActions() {
|
|
76945
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
77328
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-CkT3dnmD.js");
|
|
76946
77329
|
return whatsappActionsPromise;
|
|
76947
77330
|
}
|
|
76948
77331
|
function createPluginRuntime() {
|
|
@@ -78817,6 +79200,22 @@ function wrapToolParamNormalization(tool, requiredParamGroups) {
|
|
|
78817
79200
|
}
|
|
78818
79201
|
};
|
|
78819
79202
|
}
|
|
79203
|
+
/**
|
|
79204
|
+
* Override a tool's description while preserving execute, parameters, and
|
|
79205
|
+
* other properties. Used by Stage 2.5 of the prompt-reduction plan to move
|
|
79206
|
+
* usage docs from the system prompt into tool descriptions where they
|
|
79207
|
+
* belong contextually.
|
|
79208
|
+
*
|
|
79209
|
+
* The replacement description should include the upstream's tool-purpose
|
|
79210
|
+
* sentence so models that only read the description (without the prompt
|
|
79211
|
+
* section) still have the same baseline understanding.
|
|
79212
|
+
*/
|
|
79213
|
+
function wrapToolWithDescriptionOverride(tool, description) {
|
|
79214
|
+
return {
|
|
79215
|
+
...tool,
|
|
79216
|
+
description
|
|
79217
|
+
};
|
|
79218
|
+
}
|
|
78820
79219
|
function wrapToolWorkspaceRootGuard(tool, root) {
|
|
78821
79220
|
return {
|
|
78822
79221
|
...tool,
|
|
@@ -79057,6 +79456,26 @@ function resolveToolLoopDetectionConfig(params) {
|
|
|
79057
79456
|
}
|
|
79058
79457
|
};
|
|
79059
79458
|
}
|
|
79459
|
+
/**
|
|
79460
|
+
* Edit tool description. Replaces the upstream's terse one-liner with
|
|
79461
|
+
* usage notes migrated from the system prompt's "Edit Tool Best Practices"
|
|
79462
|
+
* section in Stage 2.5 of the prompt-reduction plan. Co-locating these
|
|
79463
|
+
* notes with the tool means they ship only when edit is in palette, and
|
|
79464
|
+
* the system prompt section can be deleted in Stage 4 without losing the
|
|
79465
|
+
* guidance.
|
|
79466
|
+
*
|
|
79467
|
+
* Combined with the read-before-edit guard (Stage 1.3) and the model's
|
|
79468
|
+
* own discipline, this should kill the hallucinated-oldText failure class
|
|
79469
|
+
* for any well-intentioned model.
|
|
79470
|
+
*/
|
|
79471
|
+
const EDIT_TOOL_DESCRIPTION = [
|
|
79472
|
+
"Edit a file by replacing exact text. The oldText must match the file EXACTLY (whitespace, indentation, and all).",
|
|
79473
|
+
"Best practices to avoid match failures:",
|
|
79474
|
+
"- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
|
|
79475
|
+
"- 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.",
|
|
79476
|
+
"- 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.",
|
|
79477
|
+
"- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines)."
|
|
79478
|
+
].join(" ");
|
|
79060
79479
|
function createSymiCodingTools(options) {
|
|
79061
79480
|
const execToolName = "exec";
|
|
79062
79481
|
const sandbox = options?.sandbox?.enabled ? options.sandbox : void 0;
|
|
@@ -79145,7 +79564,7 @@ function createSymiCodingTools(options) {
|
|
|
79145
79564
|
}
|
|
79146
79565
|
if (tool.name === "edit") {
|
|
79147
79566
|
if (sandboxRoot) return [];
|
|
79148
|
-
const guarded = wrapEditToolWithGuard(wrapToolParamNormalization(createEditTool(workspaceRoot), CLAUDE_PARAM_GROUPS.edit), readEditTracker);
|
|
79567
|
+
const guarded = wrapEditToolWithGuard(wrapToolWithDescriptionOverride(wrapToolParamNormalization(createEditTool(workspaceRoot), CLAUDE_PARAM_GROUPS.edit), EDIT_TOOL_DESCRIPTION), readEditTracker);
|
|
79149
79568
|
return [workspaceOnly ? wrapToolWorkspaceRootGuard(guarded, workspaceRoot) : guarded];
|
|
79150
79569
|
}
|
|
79151
79570
|
return [tool];
|
|
@@ -79588,7 +80007,11 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
79588
80007
|
userTime,
|
|
79589
80008
|
userTimeFormat,
|
|
79590
80009
|
contextFiles,
|
|
79591
|
-
memoryCitationsMode: params.config?.memory?.citations
|
|
80010
|
+
memoryCitationsMode: params.config?.memory?.citations,
|
|
80011
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
|
|
80012
|
+
skillsDiscoveryMode: params.config?.skills?.discoveryMode,
|
|
80013
|
+
skillsAnchorList: params.config?.skills?.anchorList,
|
|
80014
|
+
currentUserMessage: void 0
|
|
79592
80015
|
}));
|
|
79593
80016
|
const sessionLock = await acquireSessionWriteLock({
|
|
79594
80017
|
sessionFile: params.sessionFile,
|