@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
|
@@ -3,7 +3,7 @@ import { $t as triggerInternalHook, A as normalizeChannelId, B as getPluginComma
|
|
|
3
3
|
import { A as buildConfiguredAllowlistKeys, At as resolveShellEnvFallbackTimeoutMs, Ct as resolveEnvApiKey, E as withFileLock, Et as normalizeSecretInput, F as modelKey, H as resolveDefaultModelForAgent, Ht as DEFAULT_MODEL, I as normalizeModelRef$2, K as resolveSubagentSpawnModelSelection, L as normalizeProviderId, M as findNormalizedProviderValue, Ot as getShellPathFromLoginShell, P as isCliProvider, T as resolveSymiAgentDir, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS, W as resolveModelRefFromString, Wt as resolveAuthProfileDisplayLabel, _t as createOllamaStreamFn, a as markAuthProfileFailure, b as ensureAuthProfileStore, bt as requireApiKey, c as resolveApiKeyForProfile, g as markAuthProfileGood, gt as OLLAMA_NATIVE_BASE_URL, h as listProfilesForProvider, i as isProfileInCooldown, j as buildModelAliasIndex, k as buildAllowedModelSet, m as dedupeProfileIds, n as resolveAuthProfileOrder, o as markAuthProfileUsed, q as resolveThinkingDefault, r as getSoonestCooldownExpiry, vt as getApiKeyForModel, w as resolveAuthStorePathForDisplay, wt as resolveModelAuthMode, xt as resolveApiKeyForProvider, yt as getCustomProviderApiKey } from "./auth-profiles-BBniPGeS.js";
|
|
4
4
|
import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
|
|
5
5
|
import { C as resolveThreadParentSessionKey, S as parseAgentSessionKey, _ as getSubagentDepth, b as isCronSessionKey, c as normalizeMainKey, d as sanitizeAgentId, h as normalizeAccountId$2, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, o as classifySessionKeyShape, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, u as resolveThreadSessionKeys, v as isAcpSessionKey, x as isSubagentSessionKey } from "./session-key-DjZ7Z1hW.js";
|
|
6
|
-
import { t as resolveSymiPackageRoot } from "./symi-root-BNuQ4lAT.js";
|
|
6
|
+
import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-BNuQ4lAT.js";
|
|
7
7
|
import { a as logError, i as logDebug, n as runExec, o as logInfo, r as spawnWithFallback, s as logWarn, t as runCommandWithTimeout } from "./exec-CBKBIMpA.js";
|
|
8
8
|
import { C as ensureAgentWorkspace, E as loadWorkspaceBootstrapFiles, a as resolveAgentModelFallbacksOverride, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, f as resolveSessionAgentIds, g as DEFAULT_IDENTITY_FILENAME, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, m as DEFAULT_AGENT_WORKSPACE_DIR, n as listAgentIds, o as resolveAgentModelPrimary, r as resolveAgentConfig, s as resolveAgentSkillsFilter, u as resolveEffectiveModelFallbacks, w as filterBootstrapFilesForSession } from "./agent-scope-D-jRCY0d.js";
|
|
9
9
|
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-DuFIqfeC.js";
|
|
@@ -11,32 +11,33 @@ import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-po
|
|
|
11
11
|
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-CnvkCEt-.js";
|
|
12
12
|
import { a as buildModelAliasLines, n as resolveModel } from "./model-yI45t1OQ.js";
|
|
13
13
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Do3xMEtM.js";
|
|
14
|
+
import { l as parseFrontmatterBlock } from "./frontmatter-B8duUx_6.js";
|
|
14
15
|
import { r as isPathInsideWithRealpath } from "./scan-paths-ppKrtZ9U.js";
|
|
15
16
|
import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-D_oCiaQn.js";
|
|
16
17
|
import { a as safeStatSync, c as applyTestPluginDefaults, d as resolveEnableState, f as resolveMemorySlotDecision, h as isDangerousHostEnvVarName, i as isPathInside, n as loadPluginManifestRegistry, r as discoverSymiPlugins, u as normalizePluginsConfig } from "./manifest-registry-D5bnO5uA.js";
|
|
17
|
-
import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-
|
|
18
|
+
import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-Gfhqs66L.js";
|
|
18
19
|
import { Rt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-CJIMV1WD.js";
|
|
19
|
-
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-
|
|
20
|
+
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-BCTAmPye.js";
|
|
20
21
|
import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-C9dERklz.js";
|
|
21
22
|
import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-D0lNkCf6.js";
|
|
22
|
-
import { A as DEFAULT_RESET_TRIGGERS, B as resolveGroupSessionKey, D as resolveSessionResetPolicy, E as resolveChannelResetConfig, F as resolveMainSessionKey, G as deliveryContextKey, J as normalizeSessionDeliveryFields, K as mergeDeliveryContext, L as deriveSessionMetaPatch, O as resolveSessionResetType, P as resolveExplicitAgentSessionKey, T as evaluateSessionFreshness, U as resolveSessionLockMaxHoldFromTimeout, V as acquireSessionWriteLock, W as deliveryContextFromSession, Y as normalizeAccountId$3, _ as capArrayByJsonBytes, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as archiveSessionTranscripts, j as resolveFreshSessionTotalTokens, k as resolveThreadFlag, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as normalizeDeliveryContext, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, w as resolveSessionKey } from "./sessions-
|
|
23
|
+
import { A as DEFAULT_RESET_TRIGGERS, B as resolveGroupSessionKey, D as resolveSessionResetPolicy, E as resolveChannelResetConfig, F as resolveMainSessionKey, G as deliveryContextKey, J as normalizeSessionDeliveryFields, K as mergeDeliveryContext, L as deriveSessionMetaPatch, O as resolveSessionResetType, P as resolveExplicitAgentSessionKey, T as evaluateSessionFreshness, U as resolveSessionLockMaxHoldFromTimeout, V as acquireSessionWriteLock, W as deliveryContextFromSession, Y as normalizeAccountId$3, _ as capArrayByJsonBytes, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as archiveSessionTranscripts, j as resolveFreshSessionTotalTokens, k as resolveThreadFlag, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as normalizeDeliveryContext, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, w as resolveSessionKey } from "./sessions-CpDbQNFu.js";
|
|
23
24
|
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-Csntmwwn.js";
|
|
24
25
|
import { _ as listEnabledDiscordAccounts, a as isWhatsAppGroupJid, c as listEnabledTelegramAccounts, d as resolveTelegramToken, f as resolveSlackAccount, g as createDiscordActionGate, h as resolveSlackBotToken, l as listTelegramAccountIds, m as resolveSlackAppToken, n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId$1, s as createTelegramActionGate, t as getChannelPlugin, u as resolveTelegramAccount, v as resolveDiscordAccount, y as normalizeDiscordToken } from "./plugins-CwSlLxM8.js";
|
|
25
26
|
import { a as logWebSelfId, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, u as readWebSelfId } from "./accounts-D9ITgITj.js";
|
|
26
27
|
import { t as normalizeChatType } from "./chat-type-CeFzWU-6.js";
|
|
27
|
-
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-
|
|
28
|
-
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-
|
|
29
|
-
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-
|
|
30
|
-
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-
|
|
28
|
+
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-t_DoGd2Y.js";
|
|
29
|
+
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-8Gw3YmOh.js";
|
|
30
|
+
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-BWETfI9T.js";
|
|
31
|
+
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-DaRQn5Ai.js";
|
|
31
32
|
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-Ci8Xsc_Y.js";
|
|
32
33
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-CIjIGxEE.js";
|
|
33
34
|
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-D1eLj5t8.js";
|
|
34
|
-
import { 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 parseTelegramTarget, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, 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 isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-
|
|
35
|
+
import { 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 parseTelegramTarget, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, 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 isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-Cxr6CgGf.js";
|
|
35
36
|
import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-CUkaZz2F.js";
|
|
36
|
-
import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-
|
|
37
|
-
import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-
|
|
38
|
-
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-
|
|
39
|
-
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-
|
|
37
|
+
import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-BlL08R8g.js";
|
|
38
|
+
import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-BTziorto.js";
|
|
39
|
+
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-CO5ZhkcZ.js";
|
|
40
|
+
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-DQIkGNj2.js";
|
|
40
41
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-Ba_ROWsq.js";
|
|
41
42
|
import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-OWKu4tXF.js";
|
|
42
43
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-Ixuyn7h8.js";
|
|
@@ -48,10 +49,10 @@ import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveS
|
|
|
48
49
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-D5O01TlD.js";
|
|
49
50
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-CVLISeRT.js";
|
|
50
51
|
import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-8sKPnzpp.js";
|
|
51
|
-
import { t as ensureSymiModelsJson } from "./models-config-
|
|
52
|
+
import { t as ensureSymiModelsJson } from "./models-config-frWb8fDT.js";
|
|
52
53
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BUN71nd5.js";
|
|
53
|
-
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-
|
|
54
|
-
import { a as resolveMemorySearchConfig, t as MemoryIndexManager } from "./manager-
|
|
54
|
+
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-3RSIw4no.js";
|
|
55
|
+
import { a as resolveMemorySearchConfig, t as MemoryIndexManager } from "./manager-yrUe0KOT.js";
|
|
55
56
|
import { f as runTasksWithConcurrency } from "./internal-C2jxeHS9.js";
|
|
56
57
|
import { n as retryAsync } from "./retry-C4Q_VPOo.js";
|
|
57
58
|
import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-Co0LcWKH.js";
|
|
@@ -63,13 +64,13 @@ import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMedia
|
|
|
63
64
|
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-BRlF7czi.js";
|
|
64
65
|
import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-Ee-evDmm.js";
|
|
65
66
|
import { a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, i as listChatCommands, l as parseCommandArgs, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices } from "./commands-registry-CsxsFveo.js";
|
|
66
|
-
import { _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as extractTextFromChatContent, 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, y as stripReasoningTagsFromText } from "./image-
|
|
67
|
+
import { _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as extractTextFromChatContent, 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, y as stripReasoningTagsFromText } from "./image-dYtWZNKT.js";
|
|
67
68
|
import { n as resolveToolDisplay } from "./tool-display-I4rDxv8J.js";
|
|
68
69
|
import { n as formatTimeAgo } from "./format-relative-BDwAggS5.js";
|
|
69
70
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-DZozDZN-.js";
|
|
70
|
-
import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-
|
|
71
|
-
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-
|
|
72
|
-
import { a as loadCombinedSessionStoreForGateway, u as lookupContextTokens } from "./session-utils
|
|
71
|
+
import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-CY_8vnxU.js";
|
|
72
|
+
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-DRqmevpR.js";
|
|
73
|
+
import { a as loadCombinedSessionStoreForGateway, u as lookupContextTokens } from "./session-utils--1xVj2BC.js";
|
|
73
74
|
import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, x as getSkillsSnapshotVersion } from "./skill-commands-DrX4xCNq.js";
|
|
74
75
|
import { i as readChannelAllowFromStore, l as listPairingChannels, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-B2viSnRj.js";
|
|
75
76
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-Bsts3MRD.js";
|
|
@@ -83,19 +84,19 @@ import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChan
|
|
|
83
84
|
import { n as normalizePollInput } from "./polls-Cm1-n4jF.js";
|
|
84
85
|
import { t as convertMarkdownTables } from "./tables-DL_wkymg.js";
|
|
85
86
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-l9TQg-aP.js";
|
|
86
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
87
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-DnNPjFvU.js";
|
|
87
88
|
import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-BDqsqTKI.js";
|
|
88
89
|
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-CmPVNjnf.js";
|
|
89
|
-
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-
|
|
90
|
-
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-
|
|
90
|
+
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-DbJsN7Lj.js";
|
|
91
|
+
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-D4GfXudZ.js";
|
|
91
92
|
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BFA2RukR.js";
|
|
92
93
|
import { t as parseTimeoutMs } from "./parse-timeout-FUO1ff14.js";
|
|
93
94
|
import { t as makeProxyFetch } from "./proxy-GY5xhMp0.js";
|
|
94
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
95
|
-
import { r as detectBinary } from "./onboard-helpers-
|
|
95
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-Dk0cnpHa.js";
|
|
96
|
+
import { r as detectBinary } from "./onboard-helpers-Ca4KojJF.js";
|
|
96
97
|
import { t as resolvePairingIdLabel } from "./pairing-labels-BHx_CdbP.js";
|
|
97
98
|
import { t as getActiveWebListener } from "./active-listener-DEi7sEFa.js";
|
|
98
|
-
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-
|
|
99
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-BFsWV2pS.js";
|
|
99
100
|
import { createRequire } from "node:module";
|
|
100
101
|
import { execFileSync, spawn, spawnSync } from "node:child_process";
|
|
101
102
|
import os, { homedir } from "node:os";
|
|
@@ -20470,7 +20471,7 @@ async function routeReply(params) {
|
|
|
20470
20471
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
20471
20472
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
20472
20473
|
try {
|
|
20473
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
20474
|
+
const { deliverOutboundPayloads } = await import("./deliver-DaRQn5Ai.js").then((n) => n.n);
|
|
20474
20475
|
return {
|
|
20475
20476
|
ok: true,
|
|
20476
20477
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -29482,6 +29483,231 @@ function createSessionsSpawnTool(opts) {
|
|
|
29482
29483
|
};
|
|
29483
29484
|
}
|
|
29484
29485
|
|
|
29486
|
+
//#endregion
|
|
29487
|
+
//#region src/agents/skills/triggers.ts
|
|
29488
|
+
const QUOTE_RE = /^["'`](.*)["'`]$/;
|
|
29489
|
+
const ARRAY_FORM_RE = /^\[(.*)\]$/s;
|
|
29490
|
+
function stripWrappingQuotes(s) {
|
|
29491
|
+
const m = s.trim().match(QUOTE_RE);
|
|
29492
|
+
return m ? m[1] : s.trim();
|
|
29493
|
+
}
|
|
29494
|
+
/** Parse a single trigger value, dropping empty / whitespace-only entries. */
|
|
29495
|
+
function cleanTrigger(raw) {
|
|
29496
|
+
const trimmed = stripWrappingQuotes(raw).toLowerCase();
|
|
29497
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
29498
|
+
}
|
|
29499
|
+
/**
|
|
29500
|
+
* Parse the value of a `triggers:` frontmatter field into a string[].
|
|
29501
|
+
* Accepts both inline-array form `[a, b, "c d"]` and YAML-list form
|
|
29502
|
+
* (multiline with leading hyphens). Returns deduped lowercased trigger
|
|
29503
|
+
* strings, or empty array on unparseable / missing input.
|
|
29504
|
+
*/
|
|
29505
|
+
function parseTriggersValue(raw) {
|
|
29506
|
+
if (typeof raw !== "string") return [];
|
|
29507
|
+
const trimmed = raw.trim();
|
|
29508
|
+
if (!trimmed) return [];
|
|
29509
|
+
const items = [];
|
|
29510
|
+
const arrayMatch = trimmed.match(ARRAY_FORM_RE);
|
|
29511
|
+
if (arrayMatch) {
|
|
29512
|
+
const inner = arrayMatch[1];
|
|
29513
|
+
let buf = "";
|
|
29514
|
+
let inQuote = null;
|
|
29515
|
+
for (const ch of inner) {
|
|
29516
|
+
if (inQuote) {
|
|
29517
|
+
if (ch === inQuote) inQuote = null;
|
|
29518
|
+
else buf += ch;
|
|
29519
|
+
continue;
|
|
29520
|
+
}
|
|
29521
|
+
if (ch === "\"" || ch === "'") {
|
|
29522
|
+
inQuote = ch;
|
|
29523
|
+
continue;
|
|
29524
|
+
}
|
|
29525
|
+
if (ch === ",") {
|
|
29526
|
+
const cleaned = cleanTrigger(buf);
|
|
29527
|
+
if (cleaned) items.push(cleaned);
|
|
29528
|
+
buf = "";
|
|
29529
|
+
continue;
|
|
29530
|
+
}
|
|
29531
|
+
buf += ch;
|
|
29532
|
+
}
|
|
29533
|
+
const cleaned = cleanTrigger(buf);
|
|
29534
|
+
if (cleaned) items.push(cleaned);
|
|
29535
|
+
} else for (const line of trimmed.split("\n")) {
|
|
29536
|
+
const ltrim = line.trimStart();
|
|
29537
|
+
if (ltrim.startsWith("- ")) {
|
|
29538
|
+
const cleaned = cleanTrigger(ltrim.slice(2));
|
|
29539
|
+
if (cleaned) items.push(cleaned);
|
|
29540
|
+
} else if (ltrim && !ltrim.startsWith("#")) {
|
|
29541
|
+
const cleaned = cleanTrigger(ltrim);
|
|
29542
|
+
if (cleaned) items.push(cleaned);
|
|
29543
|
+
}
|
|
29544
|
+
}
|
|
29545
|
+
const seen = /* @__PURE__ */ new Set();
|
|
29546
|
+
const out = [];
|
|
29547
|
+
for (const t of items) if (!seen.has(t)) {
|
|
29548
|
+
seen.add(t);
|
|
29549
|
+
out.push(t);
|
|
29550
|
+
}
|
|
29551
|
+
return out;
|
|
29552
|
+
}
|
|
29553
|
+
/**
|
|
29554
|
+
* Extract triggers from a parsed frontmatter record. Returns empty array
|
|
29555
|
+
* when the field is absent or unparseable.
|
|
29556
|
+
*/
|
|
29557
|
+
function getSkillTriggers(frontmatter) {
|
|
29558
|
+
return parseTriggersValue(frontmatter.triggers);
|
|
29559
|
+
}
|
|
29560
|
+
|
|
29561
|
+
//#endregion
|
|
29562
|
+
//#region src/agents/tools/skill-search-tool.ts
|
|
29563
|
+
const SkillSearchToolSchema = Type.Object({
|
|
29564
|
+
query: Type.String({
|
|
29565
|
+
minLength: 1,
|
|
29566
|
+
description: "Intent description (2-8 words). Match by trigger keywords first, then description text."
|
|
29567
|
+
}),
|
|
29568
|
+
limit: Type.Optional(Type.Number({
|
|
29569
|
+
minimum: 1,
|
|
29570
|
+
maximum: 10,
|
|
29571
|
+
description: "Max results to return (default 5, capped at 10)."
|
|
29572
|
+
}))
|
|
29573
|
+
});
|
|
29574
|
+
const CACHE_TTL_MS = 6e4;
|
|
29575
|
+
const SAFE_NAME_RE = /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/;
|
|
29576
|
+
function loadSkillFromDir(dir, source) {
|
|
29577
|
+
const name = path.basename(dir);
|
|
29578
|
+
if (!SAFE_NAME_RE.test(name)) return null;
|
|
29579
|
+
const file = path.join(dir, "SKILL.md");
|
|
29580
|
+
let raw;
|
|
29581
|
+
try {
|
|
29582
|
+
if (!fs.statSync(file).isFile()) return null;
|
|
29583
|
+
raw = fs.readFileSync(file, "utf8");
|
|
29584
|
+
} catch {
|
|
29585
|
+
return null;
|
|
29586
|
+
}
|
|
29587
|
+
const fm = parseFrontmatterBlock(raw);
|
|
29588
|
+
return {
|
|
29589
|
+
name,
|
|
29590
|
+
description: (fm.description ?? "").trim(),
|
|
29591
|
+
path: file,
|
|
29592
|
+
triggers: getSkillTriggers(fm),
|
|
29593
|
+
source
|
|
29594
|
+
};
|
|
29595
|
+
}
|
|
29596
|
+
function listSkillDirs(root) {
|
|
29597
|
+
const skillsDir = path.join(root, "skills");
|
|
29598
|
+
let entries;
|
|
29599
|
+
try {
|
|
29600
|
+
entries = fs.readdirSync(skillsDir, { withFileTypes: true });
|
|
29601
|
+
} catch {
|
|
29602
|
+
return [];
|
|
29603
|
+
}
|
|
29604
|
+
return entries.filter((e) => e.isDirectory()).map((e) => path.join(skillsDir, e.name));
|
|
29605
|
+
}
|
|
29606
|
+
let cachedPackageRoot$1;
|
|
29607
|
+
const cachePerWorkspace = /* @__PURE__ */ new Map();
|
|
29608
|
+
function getPackageRoot$1() {
|
|
29609
|
+
if (cachedPackageRoot$1 === void 0) cachedPackageRoot$1 = resolveSymiPackageRootSync({});
|
|
29610
|
+
return cachedPackageRoot$1;
|
|
29611
|
+
}
|
|
29612
|
+
function loadAllSkills(workspaceDir) {
|
|
29613
|
+
const cacheKey = workspaceDir ?? "";
|
|
29614
|
+
const now = Date.now();
|
|
29615
|
+
const existing = cachePerWorkspace.get(cacheKey);
|
|
29616
|
+
if (existing && now - existing.loadedAt < CACHE_TTL_MS) return existing.skills;
|
|
29617
|
+
const seen = /* @__PURE__ */ new Map();
|
|
29618
|
+
if (workspaceDir) for (const dir of listSkillDirs(workspaceDir)) {
|
|
29619
|
+
const skill = loadSkillFromDir(dir, "workspace");
|
|
29620
|
+
if (skill && !seen.has(skill.name)) seen.set(skill.name, skill);
|
|
29621
|
+
}
|
|
29622
|
+
const packageRoot = getPackageRoot$1();
|
|
29623
|
+
if (packageRoot) for (const dir of listSkillDirs(packageRoot)) {
|
|
29624
|
+
const skill = loadSkillFromDir(dir, "bundled");
|
|
29625
|
+
if (skill && !seen.has(skill.name)) seen.set(skill.name, skill);
|
|
29626
|
+
}
|
|
29627
|
+
const skills = [...seen.values()];
|
|
29628
|
+
cachePerWorkspace.set(cacheKey, {
|
|
29629
|
+
skills,
|
|
29630
|
+
loadedAt: now
|
|
29631
|
+
});
|
|
29632
|
+
return skills;
|
|
29633
|
+
}
|
|
29634
|
+
const TOKEN_SPLIT_RE = /[^\w/]+/;
|
|
29635
|
+
function tokenizeQuery(raw) {
|
|
29636
|
+
return raw.toLowerCase().split(TOKEN_SPLIT_RE).filter((t) => t.length >= 2);
|
|
29637
|
+
}
|
|
29638
|
+
/**
|
|
29639
|
+
* Score a query against one skill's triggers + description.
|
|
29640
|
+
* - Trigger score: ratio of query tokens that appear in the trigger set.
|
|
29641
|
+
* - FTS score: 0.4 × ratio of query tokens that appear in the description
|
|
29642
|
+
* (case-insensitive substring match).
|
|
29643
|
+
* - Final = max(trigger, fts) so trigger matches always beat descriptions.
|
|
29644
|
+
* - Returns 0 for "no signal at all" (caller should drop these).
|
|
29645
|
+
*/
|
|
29646
|
+
function scoreSkillMatch(skill, queryTokens) {
|
|
29647
|
+
if (queryTokens.length === 0) return 0;
|
|
29648
|
+
const triggerSet = new Set(skill.triggers.map((t) => t.toLowerCase()));
|
|
29649
|
+
const description = skill.description.toLowerCase();
|
|
29650
|
+
let triggerHits = 0;
|
|
29651
|
+
let ftsHits = 0;
|
|
29652
|
+
for (const token of queryTokens) if (triggerSet.has(token)) triggerHits += 1;
|
|
29653
|
+
else if (description.includes(token)) ftsHits += 1;
|
|
29654
|
+
const triggerScore = triggerHits / queryTokens.length;
|
|
29655
|
+
const ftsScore = ftsHits / queryTokens.length * .4;
|
|
29656
|
+
return Math.max(triggerScore, ftsScore);
|
|
29657
|
+
}
|
|
29658
|
+
/**
|
|
29659
|
+
* Pure-function search; exported for testing without going through the
|
|
29660
|
+
* tool execute wrapper.
|
|
29661
|
+
*/
|
|
29662
|
+
function searchSkills(query, limit, workspaceDir) {
|
|
29663
|
+
const tokens = tokenizeQuery(query);
|
|
29664
|
+
if (tokens.length === 0) return [];
|
|
29665
|
+
const all = loadAllSkills(workspaceDir);
|
|
29666
|
+
const scored = [];
|
|
29667
|
+
for (const skill of all) {
|
|
29668
|
+
const score = scoreSkillMatch(skill, tokens);
|
|
29669
|
+
if (score > 0) scored.push({
|
|
29670
|
+
name: skill.name,
|
|
29671
|
+
description: skill.description,
|
|
29672
|
+
path: skill.path,
|
|
29673
|
+
score
|
|
29674
|
+
});
|
|
29675
|
+
}
|
|
29676
|
+
scored.sort((a, b) => b.score - a.score || a.name.localeCompare(b.name));
|
|
29677
|
+
return scored.slice(0, limit);
|
|
29678
|
+
}
|
|
29679
|
+
function createSkillSearchTool(opts) {
|
|
29680
|
+
return {
|
|
29681
|
+
name: "skill_search",
|
|
29682
|
+
label: "skill_search",
|
|
29683
|
+
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.",
|
|
29684
|
+
parameters: SkillSearchToolSchema,
|
|
29685
|
+
execute: async (_toolCallId, args) => {
|
|
29686
|
+
const params = args;
|
|
29687
|
+
const query = typeof params.query === "string" ? params.query.trim() : "";
|
|
29688
|
+
if (!query) return jsonResult({
|
|
29689
|
+
ok: false,
|
|
29690
|
+
error: "skill_search requires a non-empty `query` string."
|
|
29691
|
+
});
|
|
29692
|
+
const limit = typeof params.limit === "number" && Number.isFinite(params.limit) ? Math.min(10, Math.max(1, Math.floor(params.limit))) : 5;
|
|
29693
|
+
try {
|
|
29694
|
+
return jsonResult({
|
|
29695
|
+
ok: true,
|
|
29696
|
+
query,
|
|
29697
|
+
matches: searchSkills(query, limit, opts?.workspaceDir)
|
|
29698
|
+
});
|
|
29699
|
+
} catch (err) {
|
|
29700
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
29701
|
+
logWarn(`skill_search failed: ${message}`);
|
|
29702
|
+
return jsonResult({
|
|
29703
|
+
ok: false,
|
|
29704
|
+
error: message
|
|
29705
|
+
});
|
|
29706
|
+
}
|
|
29707
|
+
}
|
|
29708
|
+
};
|
|
29709
|
+
}
|
|
29710
|
+
|
|
29485
29711
|
//#endregion
|
|
29486
29712
|
//#region src/agents/tools/subagents-tool.ts
|
|
29487
29713
|
const SUBAGENT_ACTIONS = [
|
|
@@ -31542,6 +31768,7 @@ function createSymiTools(options) {
|
|
|
31542
31768
|
createCronTool({ agentSessionKey: options?.agentSessionKey }),
|
|
31543
31769
|
createTaskListTool({ workspaceDir }),
|
|
31544
31770
|
createTaskCancelTool({ workspaceDir }),
|
|
31771
|
+
createSkillSearchTool({ workspaceDir }),
|
|
31545
31772
|
...messageTool ? [messageTool] : [],
|
|
31546
31773
|
createTtsTool({
|
|
31547
31774
|
agentChannel: options?.agentChannel,
|
|
@@ -32723,6 +32950,38 @@ function setCliSessionId(entry, provider, sessionId) {
|
|
|
32723
32950
|
//#endregion
|
|
32724
32951
|
//#region src/config/model-profiles-builtin.ts
|
|
32725
32952
|
/**
|
|
32953
|
+
* Shared safety + output-style additions applied to most built-in profiles
|
|
32954
|
+
* and the Generic fallback. These rules came from a long history of
|
|
32955
|
+
* model-specific bugs (verification-monologue padding, "I have addressed"
|
|
32956
|
+
* preambles, post-answer assessment lists). Keeping them in one place
|
|
32957
|
+
* means a new profile inherits sane defaults instead of starting empty.
|
|
32958
|
+
*
|
|
32959
|
+
* Stage 2.4 of the prompt-reduction plan: rules that ALL profiles need
|
|
32960
|
+
* live here; profile-specific rules (control-token stripping, tool-arg
|
|
32961
|
+
* cleanup, reasoning hints) live in their own per-profile additions.
|
|
32962
|
+
*
|
|
32963
|
+
* Exported so resolve-model-profile.ts can apply the same additions to
|
|
32964
|
+
* the Generic fallback profile — no model resolves to "Generic" without
|
|
32965
|
+
* inheriting the safety/style rules.
|
|
32966
|
+
*/
|
|
32967
|
+
const SAFETY_AND_STYLE_ADDITIONS = [
|
|
32968
|
+
"CRITICAL OUTPUT RULES:",
|
|
32969
|
+
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
32970
|
+
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
32971
|
+
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
32972
|
+
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
32973
|
+
"- If you need to verify your work, do so before writing your response, not after.",
|
|
32974
|
+
"- Send brief progress updates on long tasks so the user knows you are active."
|
|
32975
|
+
];
|
|
32976
|
+
/** Hint for native-reasoning models (Nemotron, Qwen 3.5/3.6) to keep
|
|
32977
|
+
* planning internal. Not applied to Gemma/Ollama because those models
|
|
32978
|
+
* don't have structured thinking and the rule confuses them. */
|
|
32979
|
+
const REASONING_DISCIPLINE_ADDITION = "- Keep planning and reasoning internal. Only speak when you have a result or need user input.";
|
|
32980
|
+
/** Hint for models that leak Gemma-style control tokens (Gemma family,
|
|
32981
|
+
* Ollama hosting any uncensored open model). Forces tool-arg cleanup and
|
|
32982
|
+
* forbids leaking turn markers in user-visible text. */
|
|
32983
|
+
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."];
|
|
32984
|
+
/**
|
|
32726
32985
|
* Built-in model profiles. Ordered from most-specific to least-specific so
|
|
32727
32986
|
* that `resolveModelProfile` can return the first match.
|
|
32728
32987
|
*
|
|
@@ -32756,17 +33015,7 @@ const BUILTIN_PROFILES = [
|
|
|
32756
33015
|
hasStructuredThinking: false,
|
|
32757
33016
|
validateToolArgs: true
|
|
32758
33017
|
},
|
|
32759
|
-
promptAdditions: [
|
|
32760
|
-
"CRITICAL OUTPUT RULES:",
|
|
32761
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
32762
|
-
"- Do not output raw control tokens, channel tags, or turn markers.",
|
|
32763
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
32764
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
32765
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
32766
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
32767
|
-
"- Send brief progress updates on long tasks so the user knows you are active.",
|
|
32768
|
-
"- 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."
|
|
32769
|
-
],
|
|
33018
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, ...CONTROL_TOKEN_ADDITIONS],
|
|
32770
33019
|
ui: {
|
|
32771
33020
|
badge: "Local",
|
|
32772
33021
|
watchdogMs: 9e5,
|
|
@@ -32793,16 +33042,7 @@ const BUILTIN_PROFILES = [
|
|
|
32793
33042
|
hasStructuredThinking: true,
|
|
32794
33043
|
validateToolArgs: false
|
|
32795
33044
|
},
|
|
32796
|
-
promptAdditions: [
|
|
32797
|
-
"CRITICAL OUTPUT RULES:",
|
|
32798
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
32799
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
32800
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
32801
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
32802
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
32803
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
32804
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
32805
|
-
],
|
|
33045
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
32806
33046
|
ui: {
|
|
32807
33047
|
badge: "Local",
|
|
32808
33048
|
watchdogMs: 9e5,
|
|
@@ -32828,7 +33068,7 @@ const BUILTIN_PROFILES = [
|
|
|
32828
33068
|
hasStructuredThinking: true,
|
|
32829
33069
|
validateToolArgs: false
|
|
32830
33070
|
},
|
|
32831
|
-
promptAdditions: [],
|
|
33071
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS],
|
|
32832
33072
|
ui: {
|
|
32833
33073
|
badge: "API",
|
|
32834
33074
|
watchdogMs: 3e5,
|
|
@@ -32861,15 +33101,7 @@ const BUILTIN_PROFILES = [
|
|
|
32861
33101
|
hasStructuredThinking: true,
|
|
32862
33102
|
validateToolArgs: false
|
|
32863
33103
|
},
|
|
32864
|
-
promptAdditions: [
|
|
32865
|
-
"CRITICAL OUTPUT RULES:",
|
|
32866
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
32867
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
32868
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
32869
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
32870
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
32871
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
32872
|
-
],
|
|
33104
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
32873
33105
|
ui: {
|
|
32874
33106
|
badge: "Spider",
|
|
32875
33107
|
watchdogMs: 9e5,
|
|
@@ -32902,16 +33134,7 @@ const BUILTIN_PROFILES = [
|
|
|
32902
33134
|
hasStructuredThinking: false,
|
|
32903
33135
|
validateToolArgs: true
|
|
32904
33136
|
},
|
|
32905
|
-
promptAdditions: [
|
|
32906
|
-
"CRITICAL OUTPUT RULES:",
|
|
32907
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
32908
|
-
"- Do not output raw control tokens, channel tags, or turn markers.",
|
|
32909
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
32910
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
32911
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
32912
|
-
"- Send brief progress updates on long tasks so the user knows you are active.",
|
|
32913
|
-
"- 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."
|
|
32914
|
-
],
|
|
33137
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, ...CONTROL_TOKEN_ADDITIONS],
|
|
32915
33138
|
ui: {
|
|
32916
33139
|
badge: "Spider",
|
|
32917
33140
|
watchdogMs: 6e5,
|
|
@@ -32943,16 +33166,7 @@ const BUILTIN_PROFILES = [
|
|
|
32943
33166
|
hasStructuredThinking: true,
|
|
32944
33167
|
validateToolArgs: false
|
|
32945
33168
|
},
|
|
32946
|
-
promptAdditions: [
|
|
32947
|
-
"CRITICAL OUTPUT RULES:",
|
|
32948
|
-
"- Your response ends when you have delivered the answer. Do not append anything after.",
|
|
32949
|
-
"- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
|
|
32950
|
-
"- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
|
|
32951
|
-
"- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
|
|
32952
|
-
"- If you need to verify your work, do so before writing your response, not after.",
|
|
32953
|
-
"- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
|
|
32954
|
-
"- When working on multi-step tasks, send a brief one-line status update so the user knows you are active."
|
|
32955
|
-
],
|
|
33169
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS, REASONING_DISCIPLINE_ADDITION],
|
|
32956
33170
|
ui: {
|
|
32957
33171
|
badge: "CoreWeave",
|
|
32958
33172
|
watchdogMs: 9e5,
|
|
@@ -32963,7 +33177,15 @@ const BUILTIN_PROFILES = [
|
|
|
32963
33177
|
|
|
32964
33178
|
//#endregion
|
|
32965
33179
|
//#region src/config/resolve-model-profile.ts
|
|
32966
|
-
/**
|
|
33180
|
+
/**
|
|
33181
|
+
* Default profile returned when no match is found.
|
|
33182
|
+
*
|
|
33183
|
+
* Stage 2.4 of the prompt-reduction plan: the Generic fallback now ships
|
|
33184
|
+
* the same safety+style additions as every named profile, so newly-added
|
|
33185
|
+
* models without a profile entry inherit sane defaults instead of
|
|
33186
|
+
* starting empty (which would silently regress safety rules until someone
|
|
33187
|
+
* notices and adds a profile).
|
|
33188
|
+
*/
|
|
32967
33189
|
const FALLBACK_PROFILE = {
|
|
32968
33190
|
match: "*",
|
|
32969
33191
|
label: "Generic",
|
|
@@ -32982,7 +33204,7 @@ const FALLBACK_PROFILE = {
|
|
|
32982
33204
|
hasStructuredThinking: false,
|
|
32983
33205
|
validateToolArgs: false
|
|
32984
33206
|
},
|
|
32985
|
-
promptAdditions: [],
|
|
33207
|
+
promptAdditions: [...SAFETY_AND_STYLE_ADDITIONS],
|
|
32986
33208
|
ui: {
|
|
32987
33209
|
watchdogMs: 3e5,
|
|
32988
33210
|
armWatchdogOnSend: true
|
|
@@ -39571,10 +39793,155 @@ async function prepareSessionManagerForRun(params) {
|
|
|
39571
39793
|
}
|
|
39572
39794
|
}
|
|
39573
39795
|
|
|
39796
|
+
//#endregion
|
|
39797
|
+
//#region src/agents/system-prompt-skills-autoload.ts
|
|
39798
|
+
const FRONTMATTER_RE = /^---\s*\n[\s\S]*?\n---\s*\n?/;
|
|
39799
|
+
let cachedPackageRoot;
|
|
39800
|
+
function getPackageRoot() {
|
|
39801
|
+
if (cachedPackageRoot === void 0) cachedPackageRoot = resolveSymiPackageRootSync({});
|
|
39802
|
+
return cachedPackageRoot;
|
|
39803
|
+
}
|
|
39804
|
+
function safeSkillName(name) {
|
|
39805
|
+
return /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/.test(name);
|
|
39806
|
+
}
|
|
39807
|
+
function tryLoadSkill(skillName, root) {
|
|
39808
|
+
const skillPath = path.join(root, "skills", skillName, "SKILL.md");
|
|
39809
|
+
try {
|
|
39810
|
+
if (!fs.statSync(skillPath).isFile()) return null;
|
|
39811
|
+
} catch {
|
|
39812
|
+
return null;
|
|
39813
|
+
}
|
|
39814
|
+
try {
|
|
39815
|
+
return fs.readFileSync(skillPath, "utf8");
|
|
39816
|
+
} catch {
|
|
39817
|
+
return null;
|
|
39818
|
+
}
|
|
39819
|
+
}
|
|
39820
|
+
function stripFrontmatter(body) {
|
|
39821
|
+
return body.replace(FRONTMATTER_RE, "").trimStart();
|
|
39822
|
+
}
|
|
39823
|
+
/**
|
|
39824
|
+
* Resolves and loads each named skill. Returns the inlinable Markdown block,
|
|
39825
|
+
* or empty string when no skills loaded / minimal mode / no names supplied.
|
|
39826
|
+
*/
|
|
39827
|
+
function buildAutoLoadedSkillsBlock(opts) {
|
|
39828
|
+
if (opts.minimalMode) return "";
|
|
39829
|
+
const names = opts.skillNames.filter((n) => typeof n === "string" && n.trim().length > 0);
|
|
39830
|
+
if (names.length === 0) return "";
|
|
39831
|
+
const packageRoot = getPackageRoot();
|
|
39832
|
+
const loaded = [];
|
|
39833
|
+
for (const rawName of names) {
|
|
39834
|
+
const name = rawName.trim();
|
|
39835
|
+
if (!safeSkillName(name)) {
|
|
39836
|
+
logWarn(`autoLoadInline: skipping invalid skill name '${rawName}'`);
|
|
39837
|
+
continue;
|
|
39838
|
+
}
|
|
39839
|
+
let body = null;
|
|
39840
|
+
let source = "bundled";
|
|
39841
|
+
if (opts.workspaceDir) {
|
|
39842
|
+
body = tryLoadSkill(name, opts.workspaceDir);
|
|
39843
|
+
source = "workspace";
|
|
39844
|
+
}
|
|
39845
|
+
if (body === null && packageRoot) {
|
|
39846
|
+
body = tryLoadSkill(name, packageRoot);
|
|
39847
|
+
source = "bundled";
|
|
39848
|
+
}
|
|
39849
|
+
if (body === null) {
|
|
39850
|
+
logWarn(`autoLoadInline: skill '${name}' not found in workspace or bundled skills`);
|
|
39851
|
+
continue;
|
|
39852
|
+
}
|
|
39853
|
+
const stripped = stripFrontmatter(body).trim();
|
|
39854
|
+
if (!stripped) {
|
|
39855
|
+
logWarn(`autoLoadInline: skill '${name}' has empty body after frontmatter strip; skipping`);
|
|
39856
|
+
continue;
|
|
39857
|
+
}
|
|
39858
|
+
loaded.push({
|
|
39859
|
+
name,
|
|
39860
|
+
body: stripped,
|
|
39861
|
+
source
|
|
39862
|
+
});
|
|
39863
|
+
}
|
|
39864
|
+
if (loaded.length === 0) return "";
|
|
39865
|
+
return [
|
|
39866
|
+
"",
|
|
39867
|
+
"---",
|
|
39868
|
+
"",
|
|
39869
|
+
"## Auto-loaded Skills",
|
|
39870
|
+
"",
|
|
39871
|
+
loaded.map((skill) => `<!-- auto-loaded: ${skill.name} (${skill.source}) -->\n${skill.body}`).join("\n\n---\n\n"),
|
|
39872
|
+
""
|
|
39873
|
+
].join("\n");
|
|
39874
|
+
}
|
|
39875
|
+
|
|
39876
|
+
//#endregion
|
|
39877
|
+
//#region src/agents/system-prompt-skills-jit.ts
|
|
39878
|
+
const MAX_ANCHOR_DESCRIPTION_CHARS = 100;
|
|
39879
|
+
const MAX_AUTO_INJECT_RESULTS = 3;
|
|
39880
|
+
const MAX_AUTO_INJECT_TOTAL_CHARS = 600;
|
|
39881
|
+
/**
|
|
39882
|
+
* Build the anchor list block. Returns "" when no anchor list configured
|
|
39883
|
+
* or in preload mode (anchor list adds value only in jit/hybrid).
|
|
39884
|
+
*/
|
|
39885
|
+
function buildAnchorListBlock(opts) {
|
|
39886
|
+
if (opts.minimalMode) return "";
|
|
39887
|
+
if (opts.discoveryMode !== "jit" && opts.discoveryMode !== "hybrid") return "";
|
|
39888
|
+
const names = (opts.anchorList ?? []).filter((n) => typeof n === "string" && n.trim().length > 0);
|
|
39889
|
+
if (names.length === 0) return "";
|
|
39890
|
+
const lines = [];
|
|
39891
|
+
for (const name of names) {
|
|
39892
|
+
const description = searchSkills(name, 1, opts.workspaceDir)[0]?.description.trim() ?? "";
|
|
39893
|
+
const truncated = description.length > MAX_ANCHOR_DESCRIPTION_CHARS ? `${description.slice(0, MAX_ANCHOR_DESCRIPTION_CHARS - 1)}…` : description;
|
|
39894
|
+
lines.push(truncated ? `- ${name}: ${truncated}` : `- ${name}`);
|
|
39895
|
+
}
|
|
39896
|
+
return [
|
|
39897
|
+
"",
|
|
39898
|
+
"## Anchor Skills",
|
|
39899
|
+
"These skills are always available. Read their SKILL.md via `read` if relevant. For full discovery use the `skill_search` tool.",
|
|
39900
|
+
lines.join("\n"),
|
|
39901
|
+
""
|
|
39902
|
+
].join("\n");
|
|
39903
|
+
}
|
|
39904
|
+
/**
|
|
39905
|
+
* Build the auto-injected matches block based on the user message triggers.
|
|
39906
|
+
* Returns "" when discoveryMode doesn't ask for it, no message available,
|
|
39907
|
+
* no matches found, or in minimal mode.
|
|
39908
|
+
*/
|
|
39909
|
+
function buildAutoInjectBlock(opts) {
|
|
39910
|
+
if (opts.minimalMode) return "";
|
|
39911
|
+
if (opts.discoveryMode !== "jit" && opts.discoveryMode !== "hybrid") return "";
|
|
39912
|
+
const message = (opts.userMessage ?? "").trim();
|
|
39913
|
+
if (!message) return "";
|
|
39914
|
+
const matches = searchSkills(message, MAX_AUTO_INJECT_RESULTS, opts.workspaceDir);
|
|
39915
|
+
if (matches.length === 0) return "";
|
|
39916
|
+
const lines = [];
|
|
39917
|
+
let total = 0;
|
|
39918
|
+
for (const match of matches) {
|
|
39919
|
+
const description = match.description.trim();
|
|
39920
|
+
const truncated = description.length > MAX_ANCHOR_DESCRIPTION_CHARS ? `${description.slice(0, MAX_ANCHOR_DESCRIPTION_CHARS - 1)}…` : description;
|
|
39921
|
+
const skillRef = path.basename(path.dirname(match.path));
|
|
39922
|
+
const line = truncated ? `- ${skillRef}: ${truncated}` : `- ${skillRef}`;
|
|
39923
|
+
if (total + line.length > MAX_AUTO_INJECT_TOTAL_CHARS) break;
|
|
39924
|
+
lines.push(line);
|
|
39925
|
+
total += line.length + 1;
|
|
39926
|
+
}
|
|
39927
|
+
if (lines.length === 0) return "";
|
|
39928
|
+
return [
|
|
39929
|
+
"",
|
|
39930
|
+
"## Possibly Relevant Skills (auto-suggested for this request)",
|
|
39931
|
+
"These skills' triggers matched keywords in your message. Read the SKILL.md if it applies; otherwise ignore and proceed.",
|
|
39932
|
+
lines.join("\n"),
|
|
39933
|
+
""
|
|
39934
|
+
].join("\n");
|
|
39935
|
+
}
|
|
39936
|
+
/** Convenience: build both blocks concatenated. */
|
|
39937
|
+
function buildSkillsJitBlocks(opts) {
|
|
39938
|
+
return `${buildAnchorListBlock(opts)}${buildAutoInjectBlock(opts)}`;
|
|
39939
|
+
}
|
|
39940
|
+
|
|
39574
39941
|
//#endregion
|
|
39575
39942
|
//#region src/agents/pi-embedded-runner/system-prompt.ts
|
|
39576
39943
|
function buildEmbeddedSystemPrompt(params) {
|
|
39577
|
-
|
|
39944
|
+
const corePrompt = buildAgentSystemPrompt({
|
|
39578
39945
|
workspaceDir: params.workspaceDir,
|
|
39579
39946
|
defaultThinkLevel: params.defaultThinkLevel,
|
|
39580
39947
|
reasoningLevel: params.reasoningLevel,
|
|
@@ -39602,6 +39969,19 @@ function buildEmbeddedSystemPrompt(params) {
|
|
|
39602
39969
|
contextFiles: params.contextFiles,
|
|
39603
39970
|
memoryCitationsMode: params.memoryCitationsMode
|
|
39604
39971
|
});
|
|
39972
|
+
const promptMode = params.promptMode ?? "full";
|
|
39973
|
+
const isMinimal = promptMode === "minimal" || promptMode === "none";
|
|
39974
|
+
return `${corePrompt}${buildAutoLoadedSkillsBlock({
|
|
39975
|
+
skillNames: params.autoLoadInlineSkills ?? [],
|
|
39976
|
+
workspaceDir: params.workspaceDir,
|
|
39977
|
+
minimalMode: isMinimal
|
|
39978
|
+
})}${buildSkillsJitBlocks({
|
|
39979
|
+
discoveryMode: params.skillsDiscoveryMode,
|
|
39980
|
+
anchorList: params.skillsAnchorList,
|
|
39981
|
+
userMessage: params.currentUserMessage,
|
|
39982
|
+
workspaceDir: params.workspaceDir,
|
|
39983
|
+
minimalMode: isMinimal
|
|
39984
|
+
})}`;
|
|
39605
39985
|
}
|
|
39606
39986
|
function createSystemPromptOverride(systemPrompt) {
|
|
39607
39987
|
const override = systemPrompt.trim();
|
|
@@ -40389,7 +40769,11 @@ async function runEmbeddedAttempt(params) {
|
|
|
40389
40769
|
userTime,
|
|
40390
40770
|
userTimeFormat,
|
|
40391
40771
|
contextFiles,
|
|
40392
|
-
memoryCitationsMode: params.config?.memory?.citations
|
|
40772
|
+
memoryCitationsMode: params.config?.memory?.citations,
|
|
40773
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
|
|
40774
|
+
skillsDiscoveryMode: params.config?.skills?.discoveryMode,
|
|
40775
|
+
skillsAnchorList: params.config?.skills?.anchorList,
|
|
40776
|
+
currentUserMessage: params.prompt
|
|
40393
40777
|
});
|
|
40394
40778
|
const systemPromptReport = buildSystemPromptReport({
|
|
40395
40779
|
source: "run",
|
|
@@ -44878,7 +45262,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
44878
45262
|
return;
|
|
44879
45263
|
}
|
|
44880
45264
|
try {
|
|
44881
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
45265
|
+
const { deliverOutboundPayloads } = await import("./deliver-DaRQn5Ai.js").then((n) => n.n);
|
|
44882
45266
|
await deliverOutboundPayloads({
|
|
44883
45267
|
cfg: params.cfg,
|
|
44884
45268
|
channel,
|
|
@@ -48332,7 +48716,7 @@ async function describeStickerImage(params) {
|
|
|
48332
48716
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
48333
48717
|
try {
|
|
48334
48718
|
const buffer = await fs$1.readFile(imagePath);
|
|
48335
|
-
const { describeImageWithModel } = await import("./image-
|
|
48719
|
+
const { describeImageWithModel } = await import("./image-dYtWZNKT.js").then((n) => n.n);
|
|
48336
48720
|
return (await describeImageWithModel({
|
|
48337
48721
|
buffer,
|
|
48338
48722
|
fileName: "sticker.webp",
|
|
@@ -48755,7 +49139,7 @@ function createWhatsAppLoginTool() {
|
|
|
48755
49139
|
force: Type.Optional(Type.Boolean())
|
|
48756
49140
|
}),
|
|
48757
49141
|
execute: async (_toolCallId, args) => {
|
|
48758
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
49142
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-Dq_hs3eJ.js");
|
|
48759
49143
|
if ((args?.action ?? "start") === "wait") {
|
|
48760
49144
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
48761
49145
|
return {
|
|
@@ -50131,7 +50515,7 @@ async function preflightDiscordMessage(params) {
|
|
|
50131
50515
|
let preflightTranscript;
|
|
50132
50516
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
50133
50517
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
50134
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
50518
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-By0dnw-T.js");
|
|
50135
50519
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
50136
50520
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
50137
50521
|
ctx: {
|
|
@@ -53914,27 +54298,27 @@ function isVoiceChannelType(type) {
|
|
|
53914
54298
|
function createDefaultDeps() {
|
|
53915
54299
|
return {
|
|
53916
54300
|
sendMessageWhatsApp: async (...args) => {
|
|
53917
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
54301
|
+
const { sendMessageWhatsApp } = await import("./web-BBbVbRTg.js");
|
|
53918
54302
|
return await sendMessageWhatsApp(...args);
|
|
53919
54303
|
},
|
|
53920
54304
|
sendMessageTelegram: async (...args) => {
|
|
53921
|
-
const { sendMessageTelegram } = await import("./send-
|
|
54305
|
+
const { sendMessageTelegram } = await import("./send-Cxr6CgGf.js").then((n) => n.l);
|
|
53922
54306
|
return await sendMessageTelegram(...args);
|
|
53923
54307
|
},
|
|
53924
54308
|
sendMessageDiscord: async (...args) => {
|
|
53925
|
-
const { sendMessageDiscord } = await import("./send-
|
|
54309
|
+
const { sendMessageDiscord } = await import("./send-8Gw3YmOh.js").then((n) => n.t);
|
|
53926
54310
|
return await sendMessageDiscord(...args);
|
|
53927
54311
|
},
|
|
53928
54312
|
sendMessageSlack: async (...args) => {
|
|
53929
|
-
const { sendMessageSlack } = await import("./send-
|
|
54313
|
+
const { sendMessageSlack } = await import("./send-t_DoGd2Y.js").then((n) => n.n);
|
|
53930
54314
|
return await sendMessageSlack(...args);
|
|
53931
54315
|
},
|
|
53932
54316
|
sendMessageSignal: async (...args) => {
|
|
53933
|
-
const { sendMessageSignal } = await import("./send-
|
|
54317
|
+
const { sendMessageSignal } = await import("./send-DbJsN7Lj.js").then((n) => n.i);
|
|
53934
54318
|
return await sendMessageSignal(...args);
|
|
53935
54319
|
},
|
|
53936
54320
|
sendMessageIMessage: async (...args) => {
|
|
53937
|
-
const { sendMessageIMessage } = await import("./send-
|
|
54321
|
+
const { sendMessageIMessage } = await import("./send-D4GfXudZ.js").then((n) => n.n);
|
|
53938
54322
|
return await sendMessageIMessage(...args);
|
|
53939
54323
|
}
|
|
53940
54324
|
};
|
|
@@ -64789,7 +65173,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
64789
65173
|
});
|
|
64790
65174
|
const deliverSlashPayloads = async (replies) => {
|
|
64791
65175
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
64792
|
-
import("./replies-
|
|
65176
|
+
import("./replies-Dk0cnpHa.js").then((n) => n.r),
|
|
64793
65177
|
import("./chunk-CBaqrC3-.js").then((n) => n.s),
|
|
64794
65178
|
import("./markdown-tables-Xw0UrL4I.js").then((n) => n.t)
|
|
64795
65179
|
]);
|
|
@@ -67062,7 +67446,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
67062
67446
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
67063
67447
|
let preflightTranscript;
|
|
67064
67448
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
67065
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
67449
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-By0dnw-T.js");
|
|
67066
67450
|
preflightTranscript = await transcribeFirstAudio({
|
|
67067
67451
|
ctx: {
|
|
67068
67452
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -69216,23 +69600,23 @@ let webLoginQrPromise = null;
|
|
|
69216
69600
|
let webChannelPromise = null;
|
|
69217
69601
|
let whatsappActionsPromise = null;
|
|
69218
69602
|
function loadWebOutbound() {
|
|
69219
|
-
webOutboundPromise ??= import("./outbound-
|
|
69603
|
+
webOutboundPromise ??= import("./outbound-CDuo0JH3.js").then((n) => n.t);
|
|
69220
69604
|
return webOutboundPromise;
|
|
69221
69605
|
}
|
|
69222
69606
|
function loadWebLogin() {
|
|
69223
|
-
webLoginPromise ??= import("./login-
|
|
69607
|
+
webLoginPromise ??= import("./login-D4OYfM0U.js").then((n) => n.n);
|
|
69224
69608
|
return webLoginPromise;
|
|
69225
69609
|
}
|
|
69226
69610
|
function loadWebLoginQr() {
|
|
69227
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
69611
|
+
webLoginQrPromise ??= import("./login-qr-Dq_hs3eJ.js");
|
|
69228
69612
|
return webLoginQrPromise;
|
|
69229
69613
|
}
|
|
69230
69614
|
function loadWebChannel() {
|
|
69231
|
-
webChannelPromise ??= import("./web-
|
|
69615
|
+
webChannelPromise ??= import("./web-BBbVbRTg.js");
|
|
69232
69616
|
return webChannelPromise;
|
|
69233
69617
|
}
|
|
69234
69618
|
function loadWhatsAppActions() {
|
|
69235
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
69619
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-B5o7eFIc.js");
|
|
69236
69620
|
return whatsappActionsPromise;
|
|
69237
69621
|
}
|
|
69238
69622
|
function createPluginRuntime() {
|
|
@@ -70900,6 +71284,22 @@ function wrapToolParamNormalization(tool, requiredParamGroups) {
|
|
|
70900
71284
|
}
|
|
70901
71285
|
};
|
|
70902
71286
|
}
|
|
71287
|
+
/**
|
|
71288
|
+
* Override a tool's description while preserving execute, parameters, and
|
|
71289
|
+
* other properties. Used by Stage 2.5 of the prompt-reduction plan to move
|
|
71290
|
+
* usage docs from the system prompt into tool descriptions where they
|
|
71291
|
+
* belong contextually.
|
|
71292
|
+
*
|
|
71293
|
+
* The replacement description should include the upstream's tool-purpose
|
|
71294
|
+
* sentence so models that only read the description (without the prompt
|
|
71295
|
+
* section) still have the same baseline understanding.
|
|
71296
|
+
*/
|
|
71297
|
+
function wrapToolWithDescriptionOverride(tool, description) {
|
|
71298
|
+
return {
|
|
71299
|
+
...tool,
|
|
71300
|
+
description
|
|
71301
|
+
};
|
|
71302
|
+
}
|
|
70903
71303
|
function wrapToolWorkspaceRootGuard(tool, root) {
|
|
70904
71304
|
return {
|
|
70905
71305
|
...tool,
|
|
@@ -71140,6 +71540,26 @@ function resolveToolLoopDetectionConfig(params) {
|
|
|
71140
71540
|
}
|
|
71141
71541
|
};
|
|
71142
71542
|
}
|
|
71543
|
+
/**
|
|
71544
|
+
* Edit tool description. Replaces the upstream's terse one-liner with
|
|
71545
|
+
* usage notes migrated from the system prompt's "Edit Tool Best Practices"
|
|
71546
|
+
* section in Stage 2.5 of the prompt-reduction plan. Co-locating these
|
|
71547
|
+
* notes with the tool means they ship only when edit is in palette, and
|
|
71548
|
+
* the system prompt section can be deleted in Stage 4 without losing the
|
|
71549
|
+
* guidance.
|
|
71550
|
+
*
|
|
71551
|
+
* Combined with the read-before-edit guard (Stage 1.3) and the model's
|
|
71552
|
+
* own discipline, this should kill the hallucinated-oldText failure class
|
|
71553
|
+
* for any well-intentioned model.
|
|
71554
|
+
*/
|
|
71555
|
+
const EDIT_TOOL_DESCRIPTION = [
|
|
71556
|
+
"Edit a file by replacing exact text. The oldText must match the file EXACTLY (whitespace, indentation, and all).",
|
|
71557
|
+
"Best practices to avoid match failures:",
|
|
71558
|
+
"- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
|
|
71559
|
+
"- 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.",
|
|
71560
|
+
"- 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.",
|
|
71561
|
+
"- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines)."
|
|
71562
|
+
].join(" ");
|
|
71143
71563
|
function createSymiCodingTools(options) {
|
|
71144
71564
|
const execToolName = "exec";
|
|
71145
71565
|
const sandbox = options?.sandbox?.enabled ? options.sandbox : void 0;
|
|
@@ -71228,7 +71648,7 @@ function createSymiCodingTools(options) {
|
|
|
71228
71648
|
}
|
|
71229
71649
|
if (tool.name === "edit") {
|
|
71230
71650
|
if (sandboxRoot) return [];
|
|
71231
|
-
const guarded = wrapEditToolWithGuard(wrapToolParamNormalization(createEditTool(workspaceRoot), CLAUDE_PARAM_GROUPS.edit), readEditTracker);
|
|
71651
|
+
const guarded = wrapEditToolWithGuard(wrapToolWithDescriptionOverride(wrapToolParamNormalization(createEditTool(workspaceRoot), CLAUDE_PARAM_GROUPS.edit), EDIT_TOOL_DESCRIPTION), readEditTracker);
|
|
71232
71652
|
return [workspaceOnly ? wrapToolWorkspaceRootGuard(guarded, workspaceRoot) : guarded];
|
|
71233
71653
|
}
|
|
71234
71654
|
return [tool];
|
|
@@ -71649,7 +72069,11 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
71649
72069
|
userTime,
|
|
71650
72070
|
userTimeFormat,
|
|
71651
72071
|
contextFiles,
|
|
71652
|
-
memoryCitationsMode: params.config?.memory?.citations
|
|
72072
|
+
memoryCitationsMode: params.config?.memory?.citations,
|
|
72073
|
+
autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
|
|
72074
|
+
skillsDiscoveryMode: params.config?.skills?.discoveryMode,
|
|
72075
|
+
skillsAnchorList: params.config?.skills?.anchorList,
|
|
72076
|
+
currentUserMessage: void 0
|
|
71653
72077
|
}));
|
|
71654
72078
|
const sessionLock = await acquireSessionWriteLock({
|
|
71655
72079
|
sessionFile: params.sessionFile,
|