@symerian/symi 2.8.13 → 2.8.15
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-D7uCUCr8.js → acp-cli-BgR7mxTS.js} +2 -2
- package/dist/{acp-cli-CAU8UW9I.js → acp-cli-D1JYg9c1.js} +2 -2
- package/dist/{agents-CgCg4syn.js → agents-BhhAcFrX.js} +5 -5
- package/dist/{agents.config-BnPC7uct.js → agents.config-BOvsz6E6.js} +1 -1
- package/dist/{agents.config-DqWxpgkX.js → agents.config-D967tgmP.js} +1 -1
- package/dist/{audit-Oa5dsn5p.js → audit-Dr_8rC6G.js} +3 -3
- package/dist/{audit-Bi9Je9FZ.js → audit-xiwEIT96.js} +3 -3
- package/dist/{auth-choice-BKwypsnS.js → auth-choice-DEKKbufH.js} +2 -2
- package/dist/{auth-choice-BIlBt2d0.js → auth-choice-Pzy-t2mh.js} +2 -2
- package/dist/{banner-CX5CuLWQ.js → banner-CiHQEfyr.js} +1 -1
- package/dist/{browser-cli-5ME9iiC3.js → browser-cli-BQeCPbES.js} +3 -3
- package/dist/{browser-cli-BTci35qB.js → browser-cli-IXepRCZR.js} +3 -3
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +2 -2
- package/dist/{call-Cmb04dff.js → call-BkJK3eYP.js} +2 -1
- package/dist/{call-BrRWr7Lj.js → call-CAGvQYXj.js} +2 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-mUKQVJQl.js → channel-options-DGuilErd.js} +1 -1
- package/dist/{channel-options-7y9EuPLO.js → channel-options-_erlRi2w.js} +1 -1
- package/dist/{channel-web-Dldh4zVI.js → channel-web-DwfovJKQ.js} +1 -1
- package/dist/{channels-cli-Q6Q8LokG.js → channels-cli-B2Zf1oz9.js} +10 -10
- package/dist/{channels-cli-Dz9vV1KL.js → channels-cli-DUsK2bXE.js} +10 -10
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-DMsLCQbO.js → cli-BpmyiZc9.js} +7 -7
- package/dist/{cli-D4WYEtu4.js → cli-DUiSlxsb.js} +7 -7
- package/dist/{client-C7AOOnKZ.js → client-CYsBIR3j.js} +27 -1
- package/dist/{client-qUlxXXVJ.js → client-Cmq13-uF.js} +27 -1
- package/dist/{command-registry-cEqGIx4b.js → command-registry-B8LVEWW9.js} +11 -11
- package/dist/{completion-cli-Bw0jbNaG.js → completion-cli-D-_MV8eA.js} +1 -1
- package/dist/{completion-cli-C5GCKfKT.js → completion-cli-DZeK6_ev.js} +2 -2
- package/dist/{config-cli-DP0hP7WR.js → config-cli-B7ZvHIMY.js} +1 -1
- package/dist/{config-cli-DgHooQ4_.js → config-cli-D_m0QL6c.js} +1 -1
- package/dist/{configure-OUiXvgMg.js → configure-DFg-N_i2.js} +6 -6
- package/dist/{configure-BQUkaPdS.js → configure-DXml-xDR.js} +6 -6
- package/dist/control-ui/index.html +7 -0
- package/dist/control-ui/js/menu.js +2 -0
- package/dist/control-ui/js/settings.js +1 -0
- package/dist/{cron-cli-CGJveo7P.js → cron-cli-CZCm3aLt.js} +3 -3
- package/dist/{cron-cli-Crh_r2aK.js → cron-cli-Dq2FEfK1.js} +3 -3
- package/dist/{daemon-cli-Cq-IaYw4.js → daemon-cli-B2_uIgDM.js} +2 -2
- package/dist/{daemon-cli-CAIg9sMo.js → daemon-cli-CweMes2K.js} +2 -2
- package/dist/daemon-cli.js +27 -0
- package/dist/{devices-cli-CUT_8CuJ.js → devices-cli-3ui-Wcaj.js} +2 -2
- package/dist/{devices-cli-hSn5vjJZ.js → devices-cli-DeoPyzAd.js} +2 -2
- package/dist/{doctor-completion-BSMAyCq_.js → doctor-completion-CQXl3jf4.js} +1 -1
- package/dist/{doctor-completion-DlKvncR9.js → doctor-completion-Cu7DwgVw.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-BTfZiH6z.js → exec-approvals-cli-Bx9loYnQ.js} +4 -4
- package/dist/{exec-approvals-cli-DTad2Zi_.js → exec-approvals-cli-CTEn_Eu_.js} +4 -4
- package/dist/extensionAPI.js +2 -2
- package/dist/{gateway-cli-NI7W2QxR.js → gateway-cli-B2XchN3Y.js} +35 -17
- package/dist/{gateway-cli-BlRNLVfU.js → gateway-cli-P0olUhID.js} +35 -17
- package/dist/{gateway-rpc-BKJyAcQd.js → gateway-rpc-DbSbyIcL.js} +1 -1
- package/dist/{gateway-rpc-DActF8Qj.js → gateway-rpc-QsFn5Zr1.js} +1 -1
- package/dist/{glass-ui-ws-BBkFBsKB.js → glass-ui-ws-Cs2jfN42.js} +14 -14
- package/dist/{glass-ui-ws-DxrESDzy.js → glass-ui-ws-tIVOcdB2.js} +14 -14
- package/dist/{health-D4vU-wV-.js → health-Cs8wf7Hb.js} +2 -2
- package/dist/{health-fOu0S75U.js → health-DMy1nA4K.js} +2 -2
- package/dist/{hooks-cli-BdgnXYmw.js → hooks-cli-D6awUCDl.js} +8 -8
- package/dist/{hooks-cli-DdSggQYs.js → hooks-cli-DIH-zxCG.js} +8 -8
- package/dist/index.js +12 -12
- package/dist/llm-slug-generator.js +2 -2
- package/dist/{logs-cli-BPnrAg0W.js → logs-cli-1hn28HCu.js} +3 -3
- package/dist/{logs-cli-DiDesnnp.js → logs-cli-R4WwQvR2.js} +3 -3
- package/dist/{manager-syNf_ZrI.js → manager-B60Ncruq.js} +1 -1
- package/dist/{manager-DRrGn88w.js → manager-B76ofKkW.js} +1 -1
- package/dist/{manager-_RGWWymD.js → manager-D0_H4LHh.js} +1 -1
- package/dist/{manager-TOeH0D8K.js → manager-wF-n_prX.js} +1 -1
- package/dist/{memory-cli-0jm-n36m.js → memory-cli-DRLrIa8h.js} +3 -3
- package/dist/{memory-cli-BSOOwpt1.js → memory-cli-eSWCbEiS.js} +3 -3
- package/dist/{models-sGeWQOmg.js → models-B5H41UsH.js} +3 -3
- package/dist/{models-cli-DV-J1cm0.js → models-cli-CHFi2_kC.js} +9 -9
- package/dist/{models-cli-CtkoEyh3.js → models-cli-CVfq_g6h.js} +8 -8
- package/dist/{node-cli-DwDQpTW5.js → node-cli-BBN6PoOG.js} +1 -1
- package/dist/{node-cli-DEcCM2p0.js → node-cli-BsAzTrAx.js} +1 -1
- package/dist/{nodes-cli-CqBLemeB.js → nodes-cli-DE60dv81.js} +3 -3
- package/dist/{nodes-cli-u8k6TPmF.js → nodes-cli-t3azniiS.js} +3 -3
- package/dist/{onboard-CWBYuaCm.js → onboard-DKK6UJjF.js} +3 -3
- package/dist/{onboard-FeTHeA1y.js → onboard-DgPzeL3U.js} +3 -3
- package/dist/{onboard-channels-D8bDJYPc.js → onboard-channels-BTuYOQO-.js} +1 -1
- package/dist/{onboard-channels-DpZkjldS.js → onboard-channels-DvNwlvWZ.js} +1 -1
- package/dist/{onboard-helpers-C8f_xi6R.js → onboard-helpers-B7jBYbCU.js} +1 -1
- package/dist/{onboard-helpers-CF0Cp3OB.js → onboard-helpers-DjlGq6iG.js} +1 -1
- package/dist/{onboard-remote-DgGH0dTe.js → onboard-remote-CXuHbtrT.js} +1 -1
- package/dist/{onboard-remote-CWal5_aZ.js → onboard-remote-D7wGqONm.js} +1 -1
- package/dist/{onboard-skills-DnzJLU2H.js → onboard-skills-BDhqz3te.js} +1 -1
- package/dist/{onboard-skills-CO2TjuO3.js → onboard-skills-ChQnpMi-.js} +1 -1
- package/dist/{onboarding-c2qhwP0x.js → onboarding-CCHq8fd9.js} +7 -7
- package/dist/{onboarding-BsPnnH5g.js → onboarding-CeqXuQPm.js} +7 -7
- package/dist/{onboarding.finalize-7St3fmk2.js → onboarding.finalize-Cw4TWelq.js} +13 -13
- package/dist/{onboarding.finalize-id9EHg1P.js → onboarding.finalize-DxWVkNx9.js} +12 -12
- package/dist/{onboarding.gateway-config-DlV0vso8.js → onboarding.gateway-config-Cm5jIfRz.js} +3 -3
- package/dist/{onboarding.gateway-config-D4rQoPRi.js → onboarding.gateway-config-wAyLcGRu.js} +3 -3
- package/dist/{pi-embedded-DCBB1_SC.js → pi-embedded-CGwqumSe.js} +339 -10
- package/dist/{pi-tools.policy-BZrM6a-w.js → pi-tools.policy-Bx5zp45n.js} +2 -0
- package/dist/{pi-tools.policy-QIVWAVVI.js → pi-tools.policy-o0ytjRqu.js} +2 -0
- package/dist/{plugin-registry-BJSfTT8c.js → plugin-registry-CJKHlm9W.js} +1 -1
- package/dist/{plugin-registry-Cy1kfzAy.js → plugin-registry-kiYkB_km.js} +1 -1
- package/dist/plugin-sdk/{accounts-BtaOa4z_.js → accounts-BToL3HlP.js} +1 -1
- package/dist/plugin-sdk/{accounts-Ddm33hQm.js → accounts-D9zGZU5t.js} +3 -3
- package/dist/plugin-sdk/{accounts-s-AdhXVR.js → accounts-Dtszw3Zn.js} +1 -1
- package/dist/plugin-sdk/{active-listener-DYjn3fML.js → active-listener-CJuvR4C2.js} +1 -1
- package/dist/plugin-sdk/{agent-scope-CYYpcO9W.js → agent-scope-C3gMMKCU.js} +2 -2
- package/dist/plugin-sdk/agents/pi-embedded-runner/long-task-prompt.d.ts +7 -0
- package/dist/plugin-sdk/agents/tools/task-tool.d.ts +7 -0
- package/dist/plugin-sdk/{api-key-rotation-DGJZ8SVa.js → api-key-rotation-CBsLb_4V.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-CiVw8470.js → audio-preflight-DucGa8w7.js} +24 -24
- package/dist/plugin-sdk/{bindings-C7hRtgYW.js → bindings-BbwoUGPx.js} +2 -2
- package/dist/plugin-sdk/{channel-activity-DoC1xtDu.js → channel-activity-Ji7f0gqq.js} +1 -1
- package/dist/plugin-sdk/{channel-web-BSDjZSwm.js → channel-web-C9SUmtjL.js} +22 -22
- package/dist/plugin-sdk/{chrome-CEqfiEs0.js → chrome-D9kN9org.js} +3 -3
- package/dist/plugin-sdk/{chunk-Dw2XBYXv.js → chunk-jvk9axTQ.js} +1 -1
- package/dist/plugin-sdk/{command-format-GKSevep4.js → command-format-DSdvQ_M5.js} +1 -1
- package/dist/plugin-sdk/{commands-registry-BhW_oGNt.js → commands-registry-BuYpmEx-.js} +4 -4
- package/dist/plugin-sdk/{config-Ckum15iC.js → config-BzupW6LN.js} +9 -9
- package/dist/plugin-sdk/{consolidate-COuTEt4Z.js → consolidate-CafShdsH.js} +2 -2
- package/dist/plugin-sdk/{deliver-B8Y2t-RH.js → deliver-CKgFosI5.js} +10 -10
- package/dist/plugin-sdk/{diagnostic-BR07buTm.js → diagnostic-_oc91gNi.js} +1 -1
- package/dist/plugin-sdk/gateway/protocol/index.d.ts +6 -3
- package/dist/plugin-sdk/gateway/protocol/schema/tasks.d.ts +40 -0
- package/dist/plugin-sdk/gateway/protocol/schema/types.d.ts +3 -0
- package/dist/plugin-sdk/gateway/protocol/schema.d.ts +1 -0
- package/dist/plugin-sdk/{image-CCmNHDV0.js → image-DFyINnvE.js} +4 -4
- package/dist/plugin-sdk/{image-ops-BlQR__MN.js → image-ops-Bnp6LXEx.js} +1 -1
- package/dist/plugin-sdk/index.js +54 -54
- package/dist/plugin-sdk/infra/long-task-state.d.ts +34 -0
- package/dist/plugin-sdk/{ir-BJ6BHE5b.js → ir-Fb3qpcis.js} +4 -4
- package/dist/plugin-sdk/{local-roots-BHLNSI8U.js → local-roots-Ckk1QfzI.js} +3 -3
- package/dist/plugin-sdk/{login-g_rQAcuM.js → login-K1YB_7-t.js} +7 -7
- package/dist/plugin-sdk/{login-qr-BOUmLSY3.js → login-qr-lMl_OqDj.js} +9 -9
- package/dist/plugin-sdk/{manager-B9GigLWj.js → manager-DUmxOoHb.js} +9 -9
- package/dist/plugin-sdk/{manifest-registry-BRx4JDK0.js → manifest-registry-hy3Bn-r9.js} +1 -1
- package/dist/plugin-sdk/{markdown-tables-BoYFajMu.js → markdown-tables-Dfaqilz6.js} +1 -1
- package/dist/plugin-sdk/{message-channel-COTAJzHd.js → message-channel-BdI5Ra9S.js} +1 -1
- package/dist/plugin-sdk/{model-selection-Bbs4XGPG.js → model-selection-CtVwtb6y.js} +4 -4
- package/dist/plugin-sdk/{outbound-BVhSNFy0.js → outbound-DW3cqlQW.js} +7 -7
- package/dist/plugin-sdk/{outbound-attachment-B56R1Wi4.js → outbound-attachment-D7ME_Kib.js} +2 -2
- package/dist/plugin-sdk/{pi-auth-json-CB2bV0Jd.js → pi-auth-json-DiyK6bgV.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-dd3G9Hfi.js → pi-embedded-helpers-BL7ZRhGv.js} +17 -17
- package/dist/plugin-sdk/{plugins-BNByVCIH.js → plugins-BbAvhC25.js} +4 -4
- package/dist/plugin-sdk/{pw-ai-BXeOYCz_.js → pw-ai-B3T0mTHr.js} +8 -8
- package/dist/plugin-sdk/{qmd-manager-wIr8qz2n.js → qmd-manager-BlUikj9s.js} +4 -4
- package/dist/plugin-sdk/{registry-D0xTnUWt.js → registry--_pGht6S.js} +2 -2
- package/dist/plugin-sdk/{replies-CQ4szNhV.js → replies-BR2TPTVW.js} +3 -3
- package/dist/plugin-sdk/{reply-DD8z_dUW.js → reply-DwJ-3Et9.js} +412 -83
- package/dist/plugin-sdk/{reply-prefix-uxfMZW4p.js → reply-prefix-BHuV5t70.js} +1 -1
- package/dist/plugin-sdk/{resolve-outbound-target-BiyAyTWz.js → resolve-outbound-target-BkCUbYGV.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-CWfcnhza.js → resolve-route-CHQ7BTlU.js} +3 -3
- package/dist/plugin-sdk/{retry-CwQ_iIj8.js → retry-ilSJqnz9.js} +1 -1
- package/dist/plugin-sdk/{runner-BuxCHv_O.js → runner-BhifC1J_.js} +9 -9
- package/dist/plugin-sdk/{send-fNRDT21N.js → send-BP5pSPaZ.js} +6 -6
- package/dist/plugin-sdk/{send-BtO-7fHs.js → send-CGhw9mO3.js} +6 -6
- package/dist/plugin-sdk/{send-CKXzQuXo.js → send-DLO_yV5_.js} +10 -10
- package/dist/plugin-sdk/{send-Djq5IPRa.js → send-ZhAe1nXO.js} +10 -10
- package/dist/plugin-sdk/{send-XSuwT1PC.js → send-jsofmTfJ.js} +7 -7
- package/dist/plugin-sdk/{session-ARbcLHE9.js → session-BfyK_04G.js} +4 -4
- package/dist/plugin-sdk/{skill-commands-yzJVuTIW.js → skill-commands-DEfqC_kJ.js} +5 -5
- package/dist/plugin-sdk/{skills-BfsaS1F9.js → skills-C9DbB-Kp.js} +7 -7
- package/dist/plugin-sdk/{sqlite-A3wGzttn.js → sqlite-CmVrFEYD.js} +1 -1
- package/dist/plugin-sdk/{store-BdrNabcU.js → store-Do3t33-c.js} +2 -2
- package/dist/plugin-sdk/{subsystem-B2uDN3TV.js → subsystem-Coz2AgU8.js} +1 -1
- package/dist/plugin-sdk/{synthesis-Dv5GwSky.js → synthesis-BzYtaV97.js} +49 -49
- package/dist/plugin-sdk/{tables-DNwXwNFa.js → tables-DR0NmBeH.js} +1 -1
- package/dist/plugin-sdk/{target-errors-Paro1BjP.js → target-errors-B7YyMnIi.js} +2 -2
- package/dist/plugin-sdk/{thinking-CXqf7WTe.js → thinking-DCNUIAHY.js} +5 -5
- package/dist/plugin-sdk/{tokens-bC3UVmVH.js → tokens-CWMflosr.js} +1 -1
- package/dist/plugin-sdk/{tool-images-HJ2sfZDV.js → tool-images-D7Lno-TE.js} +2 -2
- package/dist/plugin-sdk/{tool-loop-detection-gmtzSlNZ.js → tool-loop-detection-DseOlBug.js} +2 -2
- package/dist/plugin-sdk/web-BQzPfsd0.js +66 -0
- package/dist/plugin-sdk/{whatsapp-actions-B_1l8JMU.js → whatsapp-actions-eTefsWhW.js} +21 -21
- package/dist/{plugins-cli-6UYkZBH0.js → plugins-cli-DTI2yj-y.js} +8 -8
- package/dist/{plugins-cli-DPetEhfv.js → plugins-cli-tV4C5XJc.js} +8 -8
- package/dist/{program-CVy9LVoS.js → program-8Zg4CY5d.js} +13 -13
- package/dist/{program-context-CBI6gIf-.js → program-context-BcKgBBit.js} +30 -30
- package/dist/{prompt-select-styled-Bv675D48.js → prompt-select-styled-CfKZlGfF.js} +8 -8
- package/dist/{prompt-select-styled-BlXl_Qf7.js → prompt-select-styled-DigPcXuk.js} +8 -8
- package/dist/{provider-auth-helpers-RUQD5XAm.js → provider-auth-helpers-BH3oyYln.js} +1 -1
- package/dist/{provider-auth-helpers-BB1lhCy5.js → provider-auth-helpers-Db02DMW2.js} +1 -1
- package/dist/{push-apns-rPetW5cI.js → push-apns-7rC1ybp8.js} +1 -1
- package/dist/{push-apns-Cr-a1KBt.js → push-apns-f_6DGP6z.js} +1 -1
- package/dist/{register.agent-DKDwNHQi.js → register.agent-CocfT8Pk.js} +12 -12
- package/dist/{register.agent-j6OlKEU-.js → register.agent-DETyFsMT.js} +11 -11
- package/dist/{register.configure-BgIXIq9d.js → register.configure-BAiFzdYa.js} +14 -14
- package/dist/{register.configure-CopgSygi.js → register.configure-VcTwHq1a.js} +14 -14
- package/dist/{register.maintenance-DjaGkVtr.js → register.maintenance-BajFgQEm.js} +13 -13
- package/dist/{register.maintenance-BKsCM6NG.js → register.maintenance-Bpr3QjJ1.js} +14 -14
- package/dist/{register.message-bxhUcSyj.js → register.message-96EL0HQW.js} +8 -8
- package/dist/{register.message-C3oHvmdl.js → register.message-CXabSYfO.js} +8 -8
- package/dist/{register.onboard-D0DHcb20.js → register.onboard-2KClPynN.js} +10 -10
- package/dist/{register.onboard-DijWH8Vd.js → register.onboard-mHEZSai5.js} +10 -10
- package/dist/{register.setup-XlCTnTm_.js → register.setup-B-piY6Vs.js} +10 -10
- package/dist/{register.setup-CrFzd94c.js → register.setup-Di6tWG-W.js} +10 -10
- package/dist/{register.status-health-sessions-AWCg_uLf.js → register.status-health-sessions-BhIYRApE.js} +10 -10
- package/dist/{register.status-health-sessions-VwvDWUxZ.js → register.status-health-sessions-ZX2odxGg.js} +10 -10
- package/dist/{register.subclis-Bw8k5Z5C.js → register.subclis-CQtXpheE.js} +20 -20
- package/dist/{reply-D7_t00Jt.js → reply-D455A6SA.js} +314 -14
- package/dist/{rpc-DYHXLh0P.js → rpc-C3ZUAjXK.js} +1 -1
- package/dist/{rpc-DdlEeEXT.js → rpc-St4eAsjR.js} +1 -1
- package/dist/{run-main-7BEaNeDG.js → run-main-CnqZnevI.js} +21 -21
- package/dist/{security-cli-BpnzAB5_.js → security-cli-B8gavsuQ.js} +4 -4
- package/dist/{security-cli-D9WEiEjD.js → security-cli-BSvxNP9m.js} +4 -4
- package/dist/{server-methods-FQ-PqiVC.js → server-methods-CYPSYbhs.js} +55 -11
- package/dist/{server-methods-CTeJHJSZ.js → server-methods-DYjr-KwQ.js} +55 -11
- package/dist/{server-node-events-Z7epDloV.js → server-node-events-C58gVs27.js} +8 -8
- package/dist/{server-node-events-BqvcHbuK.js → server-node-events-DqJIrx86.js} +8 -8
- package/dist/{status-CKROJwI2.js → status-B_zW9YJ8.js} +1 -1
- package/dist/{status-DLFbpd9v.js → status-DjjA-TOx.js} +6 -6
- package/dist/{status-DMigoL7q.js → status-Qt6QDFJ1.js} +6 -6
- package/dist/{status-x7WCSVhG.js → status-sO6Y-c-v.js} +1 -1
- package/dist/{subagent-registry-BvP8AGdE.js → subagent-registry-B1HJJs3Q.js} +314 -14
- package/dist/{synthesis-DDId6n26.js → synthesis-BCSo0xoc.js} +7 -7
- package/dist/{synthesis-E4flT91F.js → synthesis-Ch82MDG8.js} +2 -2
- package/dist/{synthesis-By7KPUAm.js → synthesis-DAUJa_9I.js} +7 -7
- package/dist/{synthesis-DgQz6kPf.js → synthesis-DzSo6S9Y.js} +2 -2
- package/dist/{system-cli-BFopJ_xI.js → system-cli-BN9MXNk7.js} +3 -3
- package/dist/{system-cli-DryauSOX.js → system-cli-CD5latLh.js} +3 -3
- package/dist/{tui-CvHbwJ3G.js → tui-Cu4TZK3I.js} +2 -2
- package/dist/{tui-BiBFm_RY.js → tui-DLkE0D7e.js} +2 -2
- package/dist/{tui-cli-CmyT9ctV.js → tui-cli-BfuEq3Q-.js} +3 -3
- package/dist/{tui-cli-CU6A8Bu2.js → tui-cli-DC9Bq-N_.js} +3 -3
- package/dist/{unified-runner-DaSb-TsZ.js → unified-runner-CpyVnelK.js} +339 -10
- package/dist/{update-cli-C5H6DkNM.js → update-cli-BLQsvLIy.js} +14 -14
- package/dist/{update-cli-D0relAZw.js → update-cli-CgDLDu8d.js} +15 -15
- package/dist/{update-runner-D99V_zHX.js → update-runner-B1vMjo7o.js} +1 -1
- package/dist/{update-runner-B_yVOk8Z.js → update-runner-DUHTdrZ0.js} +1 -1
- package/dist/{web-BQh2S6oq.js → web-Dbg9lDZ4.js} +7 -7
- package/dist/{web-Bdebat5l.js → web-Dhh_eI3q.js} +8 -8
- package/dist/{web-BBz1kF_9.js → web-DpAeT8By.js} +2 -2
- package/dist/{web-CiYoJfrl.js → web-PhjuzK8Y.js} +2 -2
- 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/dist/plugin-sdk/web-CmKqZEsX.js +0 -66
|
@@ -1,73 +1,73 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { _ as isCronSessionKey, b as resolveThreadParentSessionKey, c as normalizeMainKey, d as sanitizeAgentId, f as DEFAULT_ACCOUNT_ID, g as isAcpSessionKey, h as getSubagentDepth, l as resolveAgentIdFromSessionKey, o as classifySessionKeyShape, p as normalizeAccountId$2, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, u as resolveThreadSessionKeys, v as isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-C_0eELjb.js";
|
|
3
|
-
import { c as logoutWeb, f as readWebSelfId, g as webAuthExists, o as getWebAuthAgeMs, r as resolveWhatsAppAccount, s as logWebSelfId } from "./accounts-
|
|
3
|
+
import { c as logoutWeb, f as readWebSelfId, g as webAuthExists, o as getWebAuthAgeMs, r as resolveWhatsAppAccount, s as logWebSelfId } from "./accounts-D9zGZU5t.js";
|
|
4
4
|
import { c as expandHomePrefix, i as resolveGatewayPort, n as resolveConfigPath, s as resolveStateDir, t as STATE_DIR, u as resolveRequiredHomeDir } from "./paths-DR2yt_mP.js";
|
|
5
5
|
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-D9X2phUj.js";
|
|
6
|
-
import { A as resolveSlackBotToken, C as resolveTelegramToken, D as resolveSlackAccount, F as resolveDiscordAccount, I as normalizeDiscordToken, N as listEnabledDiscordAccounts, S as resolveTelegramAccount, _ as normalizeWhatsAppTarget, b as listTelegramAccountIds, g as isWhatsAppGroupJid, h as resolveSlackChannelId, j as createDiscordActionGate, k as resolveSlackAppToken, m as parseSlackTarget, n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, v as createTelegramActionGate, y as listEnabledTelegramAccounts } from "./plugins-
|
|
6
|
+
import { A as resolveSlackBotToken, C as resolveTelegramToken, D as resolveSlackAccount, F as resolveDiscordAccount, I as normalizeDiscordToken, N as listEnabledDiscordAccounts, S as resolveTelegramAccount, _ as normalizeWhatsAppTarget, b as listTelegramAccountIds, g as isWhatsAppGroupJid, h as resolveSlackChannelId, j as createDiscordActionGate, k as resolveSlackAppToken, m as parseSlackTarget, n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, v as createTelegramActionGate, y as listEnabledTelegramAccounts } from "./plugins-BbAvhC25.js";
|
|
7
7
|
import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-ChYuW7LE.js";
|
|
8
8
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-CUNoPTKm.js";
|
|
9
|
-
import { $ as isRich, A as normalizeE164, D as isRecord$1, E as formatTerminalLink, H as isPlainObject, I as shortenHomeInString, J as setVerbose, K as logVerbose, L as shortenHomePath, P as resolveUserPath, Q as colorize, R as sleep$1, S as clampInt, T as escapeRegExp, U as danger, V as truncateUtf16Safe, Y as shouldLogVerbose, Z as warn, _ as matchPluginCommand, a as normalizeAnyChannelId, b as CONFIG_DIR, ct as normalizeLogLevel, d as createPluginRegistry, et as theme, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, l as requireActivePluginRegistry, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, o as normalizeChannelId$1, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, tt as getChildLogger, u as setActivePluginRegistry, ut as resolvePreferredSymiTmpDir, v as createInternalHookEvent, w as ensureDir$3, y as triggerInternalHook, z as sliceUtf16Safe } from "./registry
|
|
10
|
-
import { n as retryAsync } from "./retry-
|
|
11
|
-
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, At as fetchDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, E as listThreadsDiscord, Et as normalizeChannelSlug, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as buildChannelKeyCandidates, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as applyChannelMatchMeta, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-
|
|
12
|
-
import { B as getConfigOverrides, C as resolveIMessageRemoteAttachmentRoots, G as parseConfigPath, H as setConfigOverride, J as isSafeExecutableValue, K as setConfigValueAtPath, R as parseDurationMs, S as resolveIMessageAttachmentRoots, U as unsetConfigOverride, V as resetConfigOverrides, W as getConfigValueAtPath, X as resolveAgentMaxConcurrent, Y as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Z as VERSION, _ as normalizeTelegramCommandName, a as writeConfigFile, b as isInboundPathAllowed, g as TELEGRAM_COMMAND_NAME_PATTERN, i as resolveConfigSnapshotHash, n as loadConfig, o as validateConfigObjectWithPlugins, q as unsetConfigValueAtPath, r as readConfigFileSnapshot, v as resolveTelegramCustomCommands, w as normalizeScpRemoteHost, z as validateJsonSchemaValue } from "./config-
|
|
13
|
-
import { a as clearActiveProgressLine, i as defaultRuntime, o as registerActiveProgressLine, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger } from "./subsystem-
|
|
14
|
-
import { i as parseBooleanValue$1, n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-
|
|
15
|
-
import { $ as resolveShellEnvFallbackTimeoutMs, A as getSoonestCooldownExpiry, B as resolveSymiAgentDir, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as dedupeProfileIds, H as withFileLock, I as listProfilesForProvider, J as DEFAULT_CONTEXT_TOKENS, K as normalizeSecretInput, L as markAuthProfileGood, M as markAuthProfileFailure, N as markAuthProfileUsed, P as resolveApiKeyForProfile, R as ensureAuthProfileStore, S as getApiKeyForModel, T as resolveApiKeyForProvider, X as DEFAULT_PROVIDER, Y as DEFAULT_MODEL, Z as getShellPathFromLoginShell, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, i as findNormalizedProviderValue, j as isProfileInCooldown, k as resolveAuthProfileOrder, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, q as resolveAuthProfileDisplayLabel, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveAuthStorePathForDisplay } from "./model-selection-
|
|
16
|
-
import { A as logInfo, C as resolveSymiPackageRoot, D as spawnWithFallback, E as runExec, O as logDebug, S as loadWorkspaceBootstrapFiles, T as runCommandWithTimeout, a as resolveAgentModelPrimary, b as ensureAgentWorkspace, c as resolveDefaultAgentId, d as resolveSessionAgentIds, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, j as logWarn, k as logError, l as resolveEffectiveModelFallbacks, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId, x as filterBootstrapFilesForSession } from "./agent-scope-
|
|
17
|
-
import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-
|
|
9
|
+
import { $ as isRich, A as normalizeE164, D as isRecord$1, E as formatTerminalLink, H as isPlainObject, I as shortenHomeInString, J as setVerbose, K as logVerbose, L as shortenHomePath, P as resolveUserPath, Q as colorize, R as sleep$1, S as clampInt, T as escapeRegExp, U as danger, V as truncateUtf16Safe, Y as shouldLogVerbose, Z as warn, _ as matchPluginCommand, a as normalizeAnyChannelId, b as CONFIG_DIR, ct as normalizeLogLevel, d as createPluginRegistry, et as theme, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, l as requireActivePluginRegistry, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, o as normalizeChannelId$1, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, tt as getChildLogger, u as setActivePluginRegistry, ut as resolvePreferredSymiTmpDir, v as createInternalHookEvent, w as ensureDir$3, y as triggerInternalHook, z as sliceUtf16Safe } from "./registry--_pGht6S.js";
|
|
10
|
+
import { n as retryAsync } from "./retry-ilSJqnz9.js";
|
|
11
|
+
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, At as fetchDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, E as listThreadsDiscord, Et as normalizeChannelSlug, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as buildChannelKeyCandidates, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as applyChannelMatchMeta, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-ZhAe1nXO.js";
|
|
12
|
+
import { B as getConfigOverrides, C as resolveIMessageRemoteAttachmentRoots, G as parseConfigPath, H as setConfigOverride, J as isSafeExecutableValue, K as setConfigValueAtPath, R as parseDurationMs, S as resolveIMessageAttachmentRoots, U as unsetConfigOverride, V as resetConfigOverrides, W as getConfigValueAtPath, X as resolveAgentMaxConcurrent, Y as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Z as VERSION, _ as normalizeTelegramCommandName, a as writeConfigFile, b as isInboundPathAllowed, g as TELEGRAM_COMMAND_NAME_PATTERN, i as resolveConfigSnapshotHash, n as loadConfig, o as validateConfigObjectWithPlugins, q as unsetConfigValueAtPath, r as readConfigFileSnapshot, v as resolveTelegramCustomCommands, w as normalizeScpRemoteHost, z as validateJsonSchemaValue } from "./config-BzupW6LN.js";
|
|
13
|
+
import { a as clearActiveProgressLine, i as defaultRuntime, o as registerActiveProgressLine, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
|
|
14
|
+
import { i as parseBooleanValue$1, n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
|
|
15
|
+
import { $ as resolveShellEnvFallbackTimeoutMs, A as getSoonestCooldownExpiry, B as resolveSymiAgentDir, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as dedupeProfileIds, H as withFileLock, I as listProfilesForProvider, J as DEFAULT_CONTEXT_TOKENS, K as normalizeSecretInput, L as markAuthProfileGood, M as markAuthProfileFailure, N as markAuthProfileUsed, P as resolveApiKeyForProfile, R as ensureAuthProfileStore, S as getApiKeyForModel, T as resolveApiKeyForProvider, X as DEFAULT_PROVIDER, Y as DEFAULT_MODEL, Z as getShellPathFromLoginShell, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, i as findNormalizedProviderValue, j as isProfileInCooldown, k as resolveAuthProfileOrder, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, q as resolveAuthProfileDisplayLabel, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveAuthStorePathForDisplay } from "./model-selection-CtVwtb6y.js";
|
|
16
|
+
import { A as logInfo, C as resolveSymiPackageRoot, D as spawnWithFallback, E as runExec, O as logDebug, S as loadWorkspaceBootstrapFiles, T as runCommandWithTimeout, a as resolveAgentModelPrimary, b as ensureAgentWorkspace, c as resolveDefaultAgentId, d as resolveSessionAgentIds, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, j as logWarn, k as logError, l as resolveEffectiveModelFallbacks, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId, x as filterBootstrapFilesForSession } from "./agent-scope-C3gMMKCU.js";
|
|
17
|
+
import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-hy3Bn-r9.js";
|
|
18
18
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-Bv8oZiTO.js";
|
|
19
|
-
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-
|
|
19
|
+
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-Ji7f0gqq.js";
|
|
20
20
|
import { n as normalizePollInput } from "./polls-3WJMd-G-.js";
|
|
21
|
-
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-
|
|
21
|
+
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-Bnp6LXEx.js";
|
|
22
22
|
import { a as isBlockedHostnameOrIp, c as normalizeHostname, t as SsrFBlockedError } from "./ssrf-DKZ8eBrk.js";
|
|
23
|
-
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-
|
|
24
|
-
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-
|
|
25
|
-
import { a as chunkText, c as resolveChunkMode, d as findFenceSpanAt, f as isSafeFenceBreak, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, p as parseFenceSpans, r as chunkMarkdownText, t as chunkByNewline } from "./chunk-
|
|
26
|
-
import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-
|
|
23
|
+
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-Ckk1QfzI.js";
|
|
24
|
+
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-Fb3qpcis.js";
|
|
25
|
+
import { a as chunkText, c as resolveChunkMode, d as findFenceSpanAt, f as isSafeFenceBreak, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, p as parseFenceSpans, r as chunkMarkdownText, t as chunkByNewline } from "./chunk-jvk9axTQ.js";
|
|
26
|
+
import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-BdI5Ra9S.js";
|
|
27
27
|
import { t as normalizeChatType } from "./chat-type-CEMQNtWX.js";
|
|
28
|
-
import { n as resolveMarkdownTableMode } from "./markdown-tables-
|
|
29
|
-
import { t as convertMarkdownTables } from "./tables-
|
|
30
|
-
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-
|
|
31
|
-
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-
|
|
32
|
-
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-
|
|
33
|
-
import { a as createSlackWebClient, c as validateSlackBlocksArray, i as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack } from "./send-
|
|
34
|
-
import { $ as parseTelegramTarget, A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as readChannelAllowFromStore, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as upsertChannelPairingRequest, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, Q as isVoiceCompatibleAudio, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as addChannelAllowFromStoreEntry, X as listPairingChannels, Y as getPairingAdapter, Z as withTelegramApiErrorLogging, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, et as resolveTelegramTargetChatType, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as toLocationContext, o as sendMessageTelegram, p as markdownToTelegramChunks, q as removeChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as formatLocationText, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-
|
|
35
|
-
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as registerUnhandledRejectionHandler, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as buildRandomTempFilePath } from "./runner-
|
|
36
|
-
import { a as resolveAckReaction, c as resolveHumanDelayConfig, i as resolveResponsePrefixTemplate, n as createReplyPrefixOptions, o as resolveAgentIdentity, s as resolveEffectiveMessagesConfig } from "./reply-prefix-
|
|
37
|
-
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-
|
|
38
|
-
import { c as getSkillsSnapshotVersion, d as resolvePairingPaths, f as createAsyncLock, i as resolveSkillCommandInvocation, l as generatePairingToken, m as writeJsonAtomic, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as readJsonFile, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as pruneExpiredPending } from "./skill-commands-
|
|
39
|
-
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-
|
|
40
|
-
import { M as isSecureWebSocketUrl, N as rawDataToString, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
41
|
-
import { A as normalizeHyphenSlug, F as resolveChannelGroupRequireMention, I as resolveChannelGroupToolsPolicy, M as normalizeStringEntriesLower, P as resolveChannelGroupPolicy, a as normalizeReasoningLevel, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, i as normalizeElevatedLevel, j as normalizeStringEntries, k as normalizeAtHashSlug, l as resolveResponseUsageMode, m as normalizeSignalMessagingTarget, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-
|
|
42
|
-
import { r as resolveIMessageAccount } from "./accounts-
|
|
43
|
-
import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-
|
|
44
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeChannelTargetInput, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as buildTargetResolverSignature, h as throwIfAborted, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as normalizeTargetForProvider, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-
|
|
45
|
-
import { $ as normalizeToolName, A as isTransientHttpError, At as countToolResults, B as resolveProfile, Bt as resolveChannelResetConfig, C as isContextOverflowError, Ct as deliveryContextKey, D as isRateLimitAssistantError, Dt as normalizeAccountId$3, E as isLikelyContextOverflowError, Et as normalizeSessionDeliveryFields, F as resolveSandboxContext, Ft as normalizeInputProvenance, G as resolveBrowserControlAuth, Gt as resolveFreshSessionTotalTokens, H as resolveExistingPathsWithinRoot, Ht as resolveSessionResetType, I as resolveSandboxRuntimeStatus, It as acquireSessionWriteLock, J as buildPluginToolGroups, Jt as resolveMainSessionKey, K as resolveSandboxConfigForAgent, Kt as canonicalizeMainSessionAlias, L as createBrowserRouteContext, Lt as resolveSessionLockMaxHoldFromTimeout, M as parseImageSizeError, Mt as INPUT_PROVENANCE_KIND_VALUES, N as sanitizeUserFacingText, Nt as applyInputProvenanceToUserMessage, O as isRawApiErrorPayload, Ot as archiveSessionTranscripts, P as ensureSandboxWorkspaceForSession, Pt as hasInterSessionUserProvenance, Q as mergeAlsoAllowPolicy, R as registerBrowserRoutes, Rt as resolveSessionKey, S as isCompactionFailureError, St as deliveryContextFromSession, T as isFailoverErrorMessage, Tt as normalizeDeliveryContext, U as getBridgeAuthForPort, Ut as resolveThreadFlag, V as DEFAULT_UPLOAD_DIR, Vt as resolveSessionResetPolicy, W as ensureBrowserControlAuth, Wt as DEFAULT_RESET_TRIGGERS, X as expandPolicyWithPluginGroups, Xt as resolveGroupSessionKey, Y as collectExplicitAllowlist, Yt as deriveSessionMetaPatch, Z as expandToolGroups, _ as formatRawAssistantErrorForUi, _t as updateLastRoute, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isBillingAssistantError, bt as isCacheEnabled, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as isAntigravityClaude, dt as appendAssistantMessageToSessionTranscript, et as resolveToolProfilePolicy, f as isGoogleModelApi, g as formatBillingErrorMessage, gt as recordSessionMetaFromInbound, h as formatAssistantErrorText, ht as readSessionUpdatedAt, it as buildBootstrapContextFiles, j as parseImageDimensionError, jt as extractToolCallNames, k as isTimeoutErrorMessage, kt as capArrayByJsonBytes, l as extractToolResultId, lt as extractDeliveryInfo, m as classifyFailoverReason, mt as loadSessionStore, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as BILLING_ERROR_USER_MESSAGE, pt as resolveAndPersistSessionFile, q as applyOwnerOnlyToolPolicy, qt as resolveExplicitAgentSessionKey, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as downgradeOpenAIReasoningBlocks, ut as parseSessionThreadInfo, v as getApiErrorPayloadFingerprint, vt as updateSessionStore, w as isFailoverAssistantError, wt as mergeDeliveryContext, x as isCloudCodeAssistFormatError, xt as resolveCacheTtlMs$1, y as isAuthAssistantError, yt as updateSessionStoreEntry, z as resolveBrowserConfig, zt as evaluateSessionFreshness } from "./pi-embedded-helpers-
|
|
28
|
+
import { n as resolveMarkdownTableMode } from "./markdown-tables-Dfaqilz6.js";
|
|
29
|
+
import { t as convertMarkdownTables } from "./tables-DR0NmBeH.js";
|
|
30
|
+
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-jsofmTfJ.js";
|
|
31
|
+
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-D7Lno-TE.js";
|
|
32
|
+
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-B7YyMnIi.js";
|
|
33
|
+
import { a as createSlackWebClient, c as validateSlackBlocksArray, i as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack } from "./send-BP5pSPaZ.js";
|
|
34
|
+
import { $ as parseTelegramTarget, A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as readChannelAllowFromStore, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as upsertChannelPairingRequest, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, Q as isVoiceCompatibleAudio, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as addChannelAllowFromStoreEntry, X as listPairingChannels, Y as getPairingAdapter, Z as withTelegramApiErrorLogging, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, et as resolveTelegramTargetChatType, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as toLocationContext, o as sendMessageTelegram, p as markdownToTelegramChunks, q as removeChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as formatLocationText, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-DLO_yV5_.js";
|
|
35
|
+
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as registerUnhandledRejectionHandler, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as buildRandomTempFilePath } from "./runner-BhifC1J_.js";
|
|
36
|
+
import { a as resolveAckReaction, c as resolveHumanDelayConfig, i as resolveResponsePrefixTemplate, n as createReplyPrefixOptions, o as resolveAgentIdentity, s as resolveEffectiveMessagesConfig } from "./reply-prefix-BHuV5t70.js";
|
|
37
|
+
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-CWMflosr.js";
|
|
38
|
+
import { c as getSkillsSnapshotVersion, d as resolvePairingPaths, f as createAsyncLock, i as resolveSkillCommandInvocation, l as generatePairingToken, m as writeJsonAtomic, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as readJsonFile, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as pruneExpiredPending } from "./skill-commands-DEfqC_kJ.js";
|
|
39
|
+
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-C9DbB-Kp.js";
|
|
40
|
+
import { M as isSecureWebSocketUrl, N as rawDataToString, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, x as ensureChromeExtensionRelayServer } from "./chrome-D9kN9org.js";
|
|
41
|
+
import { A as normalizeHyphenSlug, F as resolveChannelGroupRequireMention, I as resolveChannelGroupToolsPolicy, M as normalizeStringEntriesLower, P as resolveChannelGroupPolicy, a as normalizeReasoningLevel, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, i as normalizeElevatedLevel, j as normalizeStringEntries, k as normalizeAtHashSlug, l as resolveResponseUsageMode, m as normalizeSignalMessagingTarget, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-DCNUIAHY.js";
|
|
42
|
+
import { r as resolveIMessageAccount } from "./accounts-Dtszw3Zn.js";
|
|
43
|
+
import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BToL3HlP.js";
|
|
44
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeChannelTargetInput, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as buildTargetResolverSignature, h as throwIfAborted, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as normalizeTargetForProvider, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-CKgFosI5.js";
|
|
45
|
+
import { $ as normalizeToolName, A as isTransientHttpError, At as countToolResults, B as resolveProfile, Bt as resolveChannelResetConfig, C as isContextOverflowError, Ct as deliveryContextKey, D as isRateLimitAssistantError, Dt as normalizeAccountId$3, E as isLikelyContextOverflowError, Et as normalizeSessionDeliveryFields, F as resolveSandboxContext, Ft as normalizeInputProvenance, G as resolveBrowserControlAuth, Gt as resolveFreshSessionTotalTokens, H as resolveExistingPathsWithinRoot, Ht as resolveSessionResetType, I as resolveSandboxRuntimeStatus, It as acquireSessionWriteLock, J as buildPluginToolGroups, Jt as resolveMainSessionKey, K as resolveSandboxConfigForAgent, Kt as canonicalizeMainSessionAlias, L as createBrowserRouteContext, Lt as resolveSessionLockMaxHoldFromTimeout, M as parseImageSizeError, Mt as INPUT_PROVENANCE_KIND_VALUES, N as sanitizeUserFacingText, Nt as applyInputProvenanceToUserMessage, O as isRawApiErrorPayload, Ot as archiveSessionTranscripts, P as ensureSandboxWorkspaceForSession, Pt as hasInterSessionUserProvenance, Q as mergeAlsoAllowPolicy, R as registerBrowserRoutes, Rt as resolveSessionKey, S as isCompactionFailureError, St as deliveryContextFromSession, T as isFailoverErrorMessage, Tt as normalizeDeliveryContext, U as getBridgeAuthForPort, Ut as resolveThreadFlag, V as DEFAULT_UPLOAD_DIR, Vt as resolveSessionResetPolicy, W as ensureBrowserControlAuth, Wt as DEFAULT_RESET_TRIGGERS, X as expandPolicyWithPluginGroups, Xt as resolveGroupSessionKey, Y as collectExplicitAllowlist, Yt as deriveSessionMetaPatch, Z as expandToolGroups, _ as formatRawAssistantErrorForUi, _t as updateLastRoute, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isBillingAssistantError, bt as isCacheEnabled, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as isAntigravityClaude, dt as appendAssistantMessageToSessionTranscript, et as resolveToolProfilePolicy, f as isGoogleModelApi, g as formatBillingErrorMessage, gt as recordSessionMetaFromInbound, h as formatAssistantErrorText, ht as readSessionUpdatedAt, it as buildBootstrapContextFiles, j as parseImageDimensionError, jt as extractToolCallNames, k as isTimeoutErrorMessage, kt as capArrayByJsonBytes, l as extractToolResultId, lt as extractDeliveryInfo, m as classifyFailoverReason, mt as loadSessionStore, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as BILLING_ERROR_USER_MESSAGE, pt as resolveAndPersistSessionFile, q as applyOwnerOnlyToolPolicy, qt as resolveExplicitAgentSessionKey, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as downgradeOpenAIReasoningBlocks, ut as parseSessionThreadInfo, v as getApiErrorPayloadFingerprint, vt as updateSessionStore, w as isFailoverAssistantError, wt as mergeDeliveryContext, x as isCloudCodeAssistFormatError, xt as resolveCacheTtlMs$1, y as isAuthAssistantError, yt as updateSessionStoreEntry, z as resolveBrowserConfig, zt as evaluateSessionFreshness } from "./pi-embedded-helpers-BL7ZRhGv.js";
|
|
46
46
|
import { n as resolveConversationLabel } from "./conversation-label-yNSj43Jt.js";
|
|
47
47
|
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-A0xdf3yk.js";
|
|
48
48
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-x1D4Vniz.js";
|
|
49
|
-
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-
|
|
50
|
-
import { i as saveMediaBuffer, r as getMediaDir } from "./store-
|
|
49
|
+
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-_oc91gNi.js";
|
|
50
|
+
import { i as saveMediaBuffer, r as getMediaDir } from "./store-Do3t33-c.js";
|
|
51
51
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-D5EzMeL_.js";
|
|
52
|
-
import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as resolveToolDisplay, x as ensureSymiModelsJson, y as stripReasoningTagsFromText } from "./image-
|
|
52
|
+
import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as resolveToolDisplay, x as ensureSymiModelsJson, y as stripReasoningTagsFromText } from "./image-DFyINnvE.js";
|
|
53
53
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-LbcEa65a.js";
|
|
54
54
|
import { c as normalizeExtraMemoryPaths, m as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-Qi-tyvHh.js";
|
|
55
55
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Wd5tNeQG.js";
|
|
56
|
-
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-
|
|
57
|
-
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-
|
|
58
|
-
import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-
|
|
56
|
+
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-DUmxOoHb.js";
|
|
57
|
+
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-BuYpmEx-.js";
|
|
58
|
+
import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-CGhw9mO3.js";
|
|
59
59
|
import { t as makeProxyFetch } from "./proxy-D27OUbrW.js";
|
|
60
|
-
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-
|
|
61
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
62
|
-
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-
|
|
63
|
-
import { t as getActiveWebListener } from "./active-listener-
|
|
60
|
+
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CHQ7BTlU.js";
|
|
61
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-BR2TPTVW.js";
|
|
62
|
+
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-DiyK6bgV.js";
|
|
63
|
+
import { t as getActiveWebListener } from "./active-listener-CJuvR4C2.js";
|
|
64
64
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-CP722fTK.js";
|
|
65
65
|
import { createRequire } from "node:module";
|
|
66
66
|
import fs, { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
|
|
67
67
|
import * as path$1 from "node:path";
|
|
68
68
|
import path from "node:path";
|
|
69
69
|
import os, { homedir } from "node:os";
|
|
70
|
-
import
|
|
70
|
+
import json5 from "json5";
|
|
71
71
|
import { ApplicationCommandOptionType, ButtonStyle, ChannelType, PermissionFlagsBits, Routes, StickerFormatType } from "discord-api-types/v10";
|
|
72
72
|
import { Button, ChannelSelectMenu, ChannelType as ChannelType$1, Client, Command, CommandWithSubcommands, Container, MentionableSelectMenu, MessageCreateListener, MessageReactionAddListener, MessageReactionRemoveListener, MessageType, Modal, PresenceUpdateListener, ReadyListener, RoleSelectMenu, Row, Separator, StringSelectMenu, TextDisplay, UserSelectMenu, serializePayload } from "@buape/carbon";
|
|
73
73
|
import crypto, { X509Certificate, createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
|
|
@@ -4006,6 +4006,31 @@ const SessionsUsageParamsSchema = Type.Object({
|
|
|
4006
4006
|
includeContextWeight: Type.Optional(Type.Boolean())
|
|
4007
4007
|
}, { additionalProperties: false });
|
|
4008
4008
|
|
|
4009
|
+
//#endregion
|
|
4010
|
+
//#region src/gateway/protocol/schema/tasks.ts
|
|
4011
|
+
/**
|
|
4012
|
+
* tasks.list — enumerates long-running detached tasks across configured
|
|
4013
|
+
* agent workspaces. Optional `workdir` override scans a single absolute
|
|
4014
|
+
* directory instead.
|
|
4015
|
+
*/
|
|
4016
|
+
const TasksListParamsSchema = Type.Object({ workdir: Type.Optional(Type.String()) }, { additionalProperties: false });
|
|
4017
|
+
const TaskInfoSchema = Type.Object({
|
|
4018
|
+
id: Type.String(),
|
|
4019
|
+
agentId: Type.Optional(Type.String()),
|
|
4020
|
+
workdir: Type.String(),
|
|
4021
|
+
pid: Type.Union([Type.Integer(), Type.Null()]),
|
|
4022
|
+
alive: Type.Boolean(),
|
|
4023
|
+
archived: Type.Boolean(),
|
|
4024
|
+
status: Type.String(),
|
|
4025
|
+
started: Type.Union([Type.String(), Type.Null()]),
|
|
4026
|
+
cmd: Type.Union([Type.String(), Type.Null()]),
|
|
4027
|
+
pidPath: Type.String(),
|
|
4028
|
+
statusPath: Type.String(),
|
|
4029
|
+
archivedPath: Type.String(),
|
|
4030
|
+
logPath: Type.String()
|
|
4031
|
+
}, { additionalProperties: false });
|
|
4032
|
+
const TasksListResultSchema = Type.Object({ tasks: Type.Array(TaskInfoSchema) }, { additionalProperties: false });
|
|
4033
|
+
|
|
4009
4034
|
//#endregion
|
|
4010
4035
|
//#region src/gateway/protocol/schema/wizard.ts
|
|
4011
4036
|
const WizardRunStatusSchema = Type.Union([
|
|
@@ -4091,6 +4116,7 @@ const validateAgentIdentityParams = ajv.compile(AgentIdentityParamsSchema);
|
|
|
4091
4116
|
const validateAgentWaitParams = ajv.compile(AgentWaitParamsSchema);
|
|
4092
4117
|
const validateWakeParams = ajv.compile(WakeParamsSchema);
|
|
4093
4118
|
const validateAgentsListParams = ajv.compile(AgentsListParamsSchema);
|
|
4119
|
+
const validateTasksListParams = ajv.compile(TasksListParamsSchema);
|
|
4094
4120
|
const validateAgentsCreateParams = ajv.compile(AgentsCreateParamsSchema);
|
|
4095
4121
|
const validateAgentsUpdateParams = ajv.compile(AgentsUpdateParamsSchema);
|
|
4096
4122
|
const validateAgentsDeleteParams = ajv.compile(AgentsDeleteParamsSchema);
|
|
@@ -4513,6 +4539,7 @@ const METHOD_SCOPE_GROUPS = {
|
|
|
4513
4539
|
"cron.list",
|
|
4514
4540
|
"cron.status",
|
|
4515
4541
|
"cron.runs",
|
|
4542
|
+
"tasks.list",
|
|
4516
4543
|
"system-presence",
|
|
4517
4544
|
"last-heartbeat",
|
|
4518
4545
|
"node.list",
|
|
@@ -7811,7 +7838,7 @@ async function createModelSelectionState(params) {
|
|
|
7811
7838
|
}
|
|
7812
7839
|
}
|
|
7813
7840
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
7814
|
-
const { ensureAuthProfileStore } = await import("./model-selection-
|
|
7841
|
+
const { ensureAuthProfileStore } = await import("./model-selection-CtVwtb6y.js").then((n) => n.O);
|
|
7815
7842
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
7816
7843
|
const providerKey = normalizeProviderId(provider);
|
|
7817
7844
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -11563,7 +11590,7 @@ async function getMemorySearchManager(params) {
|
|
|
11563
11590
|
if (cached) return { manager: cached };
|
|
11564
11591
|
}
|
|
11565
11592
|
try {
|
|
11566
|
-
const { QmdMemoryManager } = await import("./qmd-manager-
|
|
11593
|
+
const { QmdMemoryManager } = await import("./qmd-manager-BlUikj9s.js");
|
|
11567
11594
|
const primary = await QmdMemoryManager.create({
|
|
11568
11595
|
cfg: params.cfg,
|
|
11569
11596
|
agentId: params.agentId,
|
|
@@ -11575,7 +11602,7 @@ async function getMemorySearchManager(params) {
|
|
|
11575
11602
|
const wrapper = new FallbackMemoryManager({
|
|
11576
11603
|
primary,
|
|
11577
11604
|
fallbackFactory: async () => {
|
|
11578
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
11605
|
+
const { MemoryIndexManager } = await import("./manager-DUmxOoHb.js").then((n) => n.n);
|
|
11579
11606
|
return await MemoryIndexManager.get(params);
|
|
11580
11607
|
}
|
|
11581
11608
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -11588,7 +11615,7 @@ async function getMemorySearchManager(params) {
|
|
|
11588
11615
|
}
|
|
11589
11616
|
}
|
|
11590
11617
|
try {
|
|
11591
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
11618
|
+
const { MemoryIndexManager } = await import("./manager-DUmxOoHb.js").then((n) => n.n);
|
|
11592
11619
|
return { manager: await MemoryIndexManager.get(params) };
|
|
11593
11620
|
} catch (err) {
|
|
11594
11621
|
return {
|
|
@@ -12733,7 +12760,7 @@ function normalizeSessionKey(value) {
|
|
|
12733
12760
|
function readSessionStore(storePath) {
|
|
12734
12761
|
try {
|
|
12735
12762
|
const raw = fs.readFileSync(storePath, "utf-8");
|
|
12736
|
-
const parsed =
|
|
12763
|
+
const parsed = json5.parse(raw);
|
|
12737
12764
|
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
|
|
12738
12765
|
} catch {}
|
|
12739
12766
|
return {};
|
|
@@ -15590,7 +15617,7 @@ async function routeReply(params) {
|
|
|
15590
15617
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
15591
15618
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
15592
15619
|
try {
|
|
15593
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
15620
|
+
const { deliverOutboundPayloads } = await import("./deliver-CKgFosI5.js").then((n) => n.n);
|
|
15594
15621
|
return {
|
|
15595
15622
|
ok: true,
|
|
15596
15623
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -18064,7 +18091,7 @@ async function describeStickerImage(params) {
|
|
|
18064
18091
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
18065
18092
|
try {
|
|
18066
18093
|
const buffer = await fs$1.readFile(imagePath);
|
|
18067
|
-
const { describeImageWithModel } = await import("./image-
|
|
18094
|
+
const { describeImageWithModel } = await import("./image-DFyINnvE.js").then((n) => n.n);
|
|
18068
18095
|
return (await describeImageWithModel({
|
|
18069
18096
|
buffer,
|
|
18070
18097
|
fileName: "sticker.webp",
|
|
@@ -18475,7 +18502,7 @@ function createWhatsAppLoginTool() {
|
|
|
18475
18502
|
force: Type.Optional(Type.Boolean())
|
|
18476
18503
|
}),
|
|
18477
18504
|
execute: async (_toolCallId, args) => {
|
|
18478
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
18505
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-lMl_OqDj.js");
|
|
18479
18506
|
if ((args?.action ?? "start") === "wait") {
|
|
18480
18507
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
18481
18508
|
return {
|
|
@@ -20630,7 +20657,7 @@ async function preflightDiscordMessage(params) {
|
|
|
20630
20657
|
let preflightTranscript;
|
|
20631
20658
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
20632
20659
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
20633
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
20660
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-DucGa8w7.js");
|
|
20634
20661
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
20635
20662
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
20636
20663
|
ctx: {
|
|
@@ -30271,7 +30298,7 @@ async function recordLoopOutcome(args) {
|
|
|
30271
30298
|
if (!args.ctx?.sessionKey) return;
|
|
30272
30299
|
try {
|
|
30273
30300
|
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Wd5tNeQG.js").then((n) => n.n);
|
|
30274
|
-
const { recordToolCallOutcome } = await import("./tool-loop-detection-
|
|
30301
|
+
const { recordToolCallOutcome } = await import("./tool-loop-detection-DseOlBug.js");
|
|
30275
30302
|
recordToolCallOutcome(getDiagnosticSessionState({
|
|
30276
30303
|
sessionKey: args.ctx.sessionKey,
|
|
30277
30304
|
sessionId: args.ctx?.agentId
|
|
@@ -30292,8 +30319,8 @@ async function runBeforeToolCallHook(args) {
|
|
|
30292
30319
|
const params = args.params;
|
|
30293
30320
|
if (args.ctx?.sessionKey) {
|
|
30294
30321
|
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Wd5tNeQG.js").then((n) => n.n);
|
|
30295
|
-
const { logToolLoopAction } = await import("./diagnostic-
|
|
30296
|
-
const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-
|
|
30322
|
+
const { logToolLoopAction } = await import("./diagnostic-_oc91gNi.js").then((n) => n.n);
|
|
30323
|
+
const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-DseOlBug.js");
|
|
30297
30324
|
const sessionState = getDiagnosticSessionState({
|
|
30298
30325
|
sessionKey: args.ctx.sessionKey,
|
|
30299
30326
|
sessionId: args.ctx?.agentId
|
|
@@ -33902,6 +33929,7 @@ async function resolveDetachScriptPath(params) {
|
|
|
33902
33929
|
return cachedScriptPath;
|
|
33903
33930
|
}
|
|
33904
33931
|
async function buildLongTaskPromptSuffix(params) {
|
|
33932
|
+
if (params.cronEnabled === false) return "";
|
|
33905
33933
|
const scriptPath = await resolveDetachScriptPath(params);
|
|
33906
33934
|
if (!scriptPath) return "";
|
|
33907
33935
|
return "\n\n" + [
|
|
@@ -33916,12 +33944,13 @@ async function buildLongTaskPromptSuffix(params) {
|
|
|
33916
33944
|
"- Register a cron monitor via the `cron` tool's `add` action. Use the schema documented in that tool's own description for the exact field names — do NOT guess. The monitor should fire roughly every 3 minutes as an isolated agentTurn job, and its message must literally contain the task-id, PID, log path, and status path so the future turn has enough context without re-deriving them.",
|
|
33917
33945
|
"- Safe status read (inside the monitor turn):",
|
|
33918
33946
|
" `status=$(cat \"<workdir>/task-<id>.status\" 2>/dev/null || echo missing)`",
|
|
33919
|
-
" Possible values: `running pid=<N> started=<ISO>`, `complete rc=<N> ended=<ISO>`, `aborted rc=<N> signal=<TERM|INT|HUP> ended=<ISO>`, or `missing`
|
|
33947
|
+
" Possible values: `running pid=<N> started=<ISO>`, `complete rc=<N> ended=<ISO>`, `aborted rc=<N> signal=<TERM|INT|HUP> ended=<ISO>`, `archived swept-from=… at=<ISO>` if the janitor archived an old finished task, or `missing` only when neither `.status` nor `.archived` exists (task crashed or workdir was wiped).",
|
|
33920
33948
|
"- Monitor responsibilities each tick:",
|
|
33921
33949
|
" • If status begins with `running`: tail -n 20 <log>, post a one-sentence progress line.",
|
|
33922
33950
|
" • If status begins with `complete`: post a final summary with rc and tail, then call cron action=remove on this job id.",
|
|
33923
33951
|
" • If status begins with `aborted`: post a failure summary with signal and tail, then call cron action=remove.",
|
|
33924
|
-
" • Never leave stale monitors running after the task finishes."
|
|
33952
|
+
" • Never leave stale monitors running after the task finishes.",
|
|
33953
|
+
"- Inspecting and killing tasks: use `task_list` to enumerate detached tasks in the workspace (returns id/pid/alive/status/started for each), and `task_cancel` with `taskId` (and optional `signal`, default SIGTERM) to terminate a running task. Prefer these over raw `kill`/`ps` exec calls — they share the detach script's task-id allow-list and report alreadyDead cleanly."
|
|
33925
33954
|
].join("\n");
|
|
33926
33955
|
}
|
|
33927
33956
|
|
|
@@ -34991,7 +35020,8 @@ async function runEmbeddedAttempt(params) {
|
|
|
34991
35020
|
const longTaskSuffix = await buildLongTaskPromptSuffix({
|
|
34992
35021
|
argv1: process.argv[1],
|
|
34993
35022
|
cwd: process.cwd(),
|
|
34994
|
-
moduleUrl: import.meta.url
|
|
35023
|
+
moduleUrl: import.meta.url,
|
|
35024
|
+
cronEnabled: process.env.SYMI_SKIP_CRON !== "1" && params.config?.cron?.enabled !== false
|
|
34995
35025
|
});
|
|
34996
35026
|
const emailCapabilitySuffix = buildEmailCapabilityPromptSuffix();
|
|
34997
35027
|
const systemPromptText = createSystemPromptOverride(appendPrompt + longTaskSuffix + emailCapabilitySuffix + profilePromptSuffix)();
|
|
@@ -36835,27 +36865,27 @@ async function runAgentTurn(params) {
|
|
|
36835
36865
|
function createDefaultDeps() {
|
|
36836
36866
|
return {
|
|
36837
36867
|
sendMessageWhatsApp: async (...args) => {
|
|
36838
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
36868
|
+
const { sendMessageWhatsApp } = await import("./web-BQzPfsd0.js");
|
|
36839
36869
|
return await sendMessageWhatsApp(...args);
|
|
36840
36870
|
},
|
|
36841
36871
|
sendMessageTelegram: async (...args) => {
|
|
36842
|
-
const { sendMessageTelegram } = await import("./send-
|
|
36872
|
+
const { sendMessageTelegram } = await import("./send-DLO_yV5_.js").then((n) => n.l);
|
|
36843
36873
|
return await sendMessageTelegram(...args);
|
|
36844
36874
|
},
|
|
36845
36875
|
sendMessageDiscord: async (...args) => {
|
|
36846
|
-
const { sendMessageDiscord } = await import("./send-
|
|
36876
|
+
const { sendMessageDiscord } = await import("./send-ZhAe1nXO.js").then((n) => n.t);
|
|
36847
36877
|
return await sendMessageDiscord(...args);
|
|
36848
36878
|
},
|
|
36849
36879
|
sendMessageSlack: async (...args) => {
|
|
36850
|
-
const { sendMessageSlack } = await import("./send-
|
|
36880
|
+
const { sendMessageSlack } = await import("./send-BP5pSPaZ.js").then((n) => n.n);
|
|
36851
36881
|
return await sendMessageSlack(...args);
|
|
36852
36882
|
},
|
|
36853
36883
|
sendMessageSignal: async (...args) => {
|
|
36854
|
-
const { sendMessageSignal } = await import("./send-
|
|
36884
|
+
const { sendMessageSignal } = await import("./send-CGhw9mO3.js").then((n) => n.i);
|
|
36855
36885
|
return await sendMessageSignal(...args);
|
|
36856
36886
|
},
|
|
36857
36887
|
sendMessageIMessage: async (...args) => {
|
|
36858
|
-
const { sendMessageIMessage } = await import("./send-
|
|
36888
|
+
const { sendMessageIMessage } = await import("./send-jsofmTfJ.js").then((n) => n.n);
|
|
36859
36889
|
return await sendMessageIMessage(...args);
|
|
36860
36890
|
}
|
|
36861
36891
|
};
|
|
@@ -47007,7 +47037,7 @@ function readSlackExternalArgMenuToken(raw) {
|
|
|
47007
47037
|
}
|
|
47008
47038
|
let commandsRegistry;
|
|
47009
47039
|
async function getCommandsRegistry() {
|
|
47010
|
-
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-
|
|
47040
|
+
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-BuYpmEx-.js").then((n) => n.n);
|
|
47011
47041
|
return commandsRegistry;
|
|
47012
47042
|
}
|
|
47013
47043
|
function encodeSlackCommandArgValue(parts) {
|
|
@@ -47349,11 +47379,11 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
47349
47379
|
const channelName = channelInfo?.name;
|
|
47350
47380
|
const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
|
|
47351
47381
|
const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
|
|
47352
|
-
import("./resolve-route-
|
|
47382
|
+
import("./resolve-route-CHQ7BTlU.js").then((n) => n.r),
|
|
47353
47383
|
import("./inbound-context-D5EzMeL_.js").then((n) => n.n),
|
|
47354
47384
|
Promise.resolve().then(() => provider_dispatcher_exports)
|
|
47355
47385
|
]);
|
|
47356
|
-
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-yNSj43Jt.js").then((n) => n.t), import("./reply-prefix-
|
|
47386
|
+
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-yNSj43Jt.js").then((n) => n.t), import("./reply-prefix-BHuV5t70.js").then((n) => n.r)]);
|
|
47357
47387
|
const route = resolveAgentRoute({
|
|
47358
47388
|
cfg,
|
|
47359
47389
|
channel: "slack",
|
|
@@ -47410,9 +47440,9 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
47410
47440
|
});
|
|
47411
47441
|
const deliverSlashPayloads = async (replies) => {
|
|
47412
47442
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
47413
|
-
import("./replies-
|
|
47414
|
-
import("./chunk-
|
|
47415
|
-
import("./markdown-tables-
|
|
47443
|
+
import("./replies-BR2TPTVW.js").then((n) => n.r),
|
|
47444
|
+
import("./chunk-jvk9axTQ.js").then((n) => n.s),
|
|
47445
|
+
import("./markdown-tables-Dfaqilz6.js").then((n) => n.t)
|
|
47416
47446
|
]);
|
|
47417
47447
|
await deliverSlackSlashReplies({
|
|
47418
47448
|
replies,
|
|
@@ -47465,7 +47495,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
47465
47495
|
let nativeCommands = [];
|
|
47466
47496
|
if (nativeEnabled) {
|
|
47467
47497
|
reg = await getCommandsRegistry();
|
|
47468
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
47498
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-DEfqC_kJ.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
47469
47499
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
47470
47500
|
skillCommands,
|
|
47471
47501
|
provider: "slack"
|
|
@@ -52116,7 +52146,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
52116
52146
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
52117
52147
|
let preflightTranscript;
|
|
52118
52148
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
52119
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
52149
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-DucGa8w7.js");
|
|
52120
52150
|
preflightTranscript = await transcribeFirstAudio({
|
|
52121
52151
|
ctx: {
|
|
52122
52152
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -54261,23 +54291,23 @@ let webLoginQrPromise = null;
|
|
|
54261
54291
|
let webChannelPromise = null;
|
|
54262
54292
|
let whatsappActionsPromise = null;
|
|
54263
54293
|
function loadWebOutbound() {
|
|
54264
|
-
webOutboundPromise ??= import("./outbound-
|
|
54294
|
+
webOutboundPromise ??= import("./outbound-DW3cqlQW.js").then((n) => n.t);
|
|
54265
54295
|
return webOutboundPromise;
|
|
54266
54296
|
}
|
|
54267
54297
|
function loadWebLogin() {
|
|
54268
|
-
webLoginPromise ??= import("./login-
|
|
54298
|
+
webLoginPromise ??= import("./login-K1YB_7-t.js").then((n) => n.n);
|
|
54269
54299
|
return webLoginPromise;
|
|
54270
54300
|
}
|
|
54271
54301
|
function loadWebLoginQr() {
|
|
54272
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
54302
|
+
webLoginQrPromise ??= import("./login-qr-lMl_OqDj.js");
|
|
54273
54303
|
return webLoginQrPromise;
|
|
54274
54304
|
}
|
|
54275
54305
|
function loadWebChannel() {
|
|
54276
|
-
webChannelPromise ??= import("./web-
|
|
54306
|
+
webChannelPromise ??= import("./web-BQzPfsd0.js");
|
|
54277
54307
|
return webChannelPromise;
|
|
54278
54308
|
}
|
|
54279
54309
|
function loadWhatsAppActions() {
|
|
54280
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
54310
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-eTefsWhW.js");
|
|
54281
54311
|
return whatsappActionsPromise;
|
|
54282
54312
|
}
|
|
54283
54313
|
function createPluginRuntime() {
|
|
@@ -57540,7 +57570,7 @@ async function resolveSandboxWorkdir(params) {
|
|
|
57540
57570
|
};
|
|
57541
57571
|
}
|
|
57542
57572
|
}
|
|
57543
|
-
function resolveWorkdir(workdir, warnings) {
|
|
57573
|
+
function resolveWorkdir$1(workdir, warnings) {
|
|
57544
57574
|
const fallback = safeCwd() ?? homedir();
|
|
57545
57575
|
try {
|
|
57546
57576
|
if (statSync(workdir).isDirectory()) return workdir;
|
|
@@ -58682,7 +58712,7 @@ function createExecTool(defaults) {
|
|
|
58682
58712
|
});
|
|
58683
58713
|
workdir = resolved.hostWorkdir;
|
|
58684
58714
|
containerWorkdir = resolved.containerWorkdir;
|
|
58685
|
-
} else workdir = resolveWorkdir(rawWorkdir, warnings);
|
|
58715
|
+
} else workdir = resolveWorkdir$1(rawWorkdir, warnings);
|
|
58686
58716
|
const baseEnv = coerceEnv(process.env);
|
|
58687
58717
|
if (host !== "sandbox" && params.env) validateHostEnv(params.env);
|
|
58688
58718
|
const mergedEnv = params.env ? {
|
|
@@ -59596,6 +59626,8 @@ const SUBAGENT_TOOL_DENY_ALWAYS = [
|
|
|
59596
59626
|
"whatsapp_login",
|
|
59597
59627
|
"session_status",
|
|
59598
59628
|
"cron",
|
|
59629
|
+
"task_list",
|
|
59630
|
+
"task_cancel",
|
|
59599
59631
|
"memory_search",
|
|
59600
59632
|
"memory_get",
|
|
59601
59633
|
"memory_pin",
|
|
@@ -68665,6 +68697,301 @@ function createSubagentsTool(opts) {
|
|
|
68665
68697
|
};
|
|
68666
68698
|
}
|
|
68667
68699
|
|
|
68700
|
+
//#endregion
|
|
68701
|
+
//#region src/infra/long-task-state.ts
|
|
68702
|
+
/**
|
|
68703
|
+
* Shared helpers for reading the on-disk state files written by
|
|
68704
|
+
* skills/long-task/scripts/detach-task.sh:
|
|
68705
|
+
*
|
|
68706
|
+
* task-<id>.pid — PID of the detached process
|
|
68707
|
+
* task-<id>.cmd — literal command line
|
|
68708
|
+
* task-<id>.started — ISO-8601 start timestamp
|
|
68709
|
+
* task-<id>.log — combined stdout + stderr
|
|
68710
|
+
* task-<id>.status — current state line
|
|
68711
|
+
* task-<id>.archived — tombstone written by the janitor when it sweeps
|
|
68712
|
+
* a finished task more than 7 days old
|
|
68713
|
+
*
|
|
68714
|
+
* Both the agent-facing tools (task_list / task_cancel) and the gateway's
|
|
68715
|
+
* tasks.list RPC consume this helper so the two views stay in sync.
|
|
68716
|
+
*/
|
|
68717
|
+
const TASK_FILE_PREFIX = "task-";
|
|
68718
|
+
const TASK_ID_RE = /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/;
|
|
68719
|
+
const TASK_FILE_SUFFIXES = [
|
|
68720
|
+
".pid",
|
|
68721
|
+
".status",
|
|
68722
|
+
".started",
|
|
68723
|
+
".cmd",
|
|
68724
|
+
".log",
|
|
68725
|
+
".archived"
|
|
68726
|
+
];
|
|
68727
|
+
function defaultIsPidAlive(pid) {
|
|
68728
|
+
try {
|
|
68729
|
+
process.kill(pid, 0);
|
|
68730
|
+
return true;
|
|
68731
|
+
} catch (err) {
|
|
68732
|
+
if (err.code === "EPERM") return true;
|
|
68733
|
+
return false;
|
|
68734
|
+
}
|
|
68735
|
+
}
|
|
68736
|
+
async function safeRead(filePath) {
|
|
68737
|
+
try {
|
|
68738
|
+
return (await fs.promises.readFile(filePath, "utf8")).trim();
|
|
68739
|
+
} catch {
|
|
68740
|
+
return null;
|
|
68741
|
+
}
|
|
68742
|
+
}
|
|
68743
|
+
async function readTaskInfo(workdir, id, isPidAlive = defaultIsPidAlive) {
|
|
68744
|
+
const pidPath = path.join(workdir, `${TASK_FILE_PREFIX}${id}.pid`);
|
|
68745
|
+
const statusPath = path.join(workdir, `${TASK_FILE_PREFIX}${id}.status`);
|
|
68746
|
+
const archivedPath = path.join(workdir, `${TASK_FILE_PREFIX}${id}.archived`);
|
|
68747
|
+
const logPath = path.join(workdir, `${TASK_FILE_PREFIX}${id}.log`);
|
|
68748
|
+
const [pidText, status, started, cmd, archived] = await Promise.all([
|
|
68749
|
+
safeRead(pidPath),
|
|
68750
|
+
safeRead(statusPath),
|
|
68751
|
+
safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.started`)),
|
|
68752
|
+
safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.cmd`)),
|
|
68753
|
+
safeRead(archivedPath)
|
|
68754
|
+
]);
|
|
68755
|
+
let pid = null;
|
|
68756
|
+
if (pidText) {
|
|
68757
|
+
const parsed = Number.parseInt(pidText, 10);
|
|
68758
|
+
if (Number.isFinite(parsed) && parsed > 0) pid = parsed;
|
|
68759
|
+
}
|
|
68760
|
+
let resolvedStatus;
|
|
68761
|
+
if (status) resolvedStatus = status;
|
|
68762
|
+
else if (archived) resolvedStatus = archived;
|
|
68763
|
+
else resolvedStatus = "missing";
|
|
68764
|
+
return {
|
|
68765
|
+
id,
|
|
68766
|
+
pid,
|
|
68767
|
+
alive: pid !== null && isPidAlive(pid),
|
|
68768
|
+
archived: archived !== null,
|
|
68769
|
+
status: resolvedStatus,
|
|
68770
|
+
started,
|
|
68771
|
+
cmd,
|
|
68772
|
+
pidPath,
|
|
68773
|
+
statusPath,
|
|
68774
|
+
archivedPath,
|
|
68775
|
+
logPath
|
|
68776
|
+
};
|
|
68777
|
+
}
|
|
68778
|
+
async function listTasksInWorkdir(workdir, isPidAlive = defaultIsPidAlive) {
|
|
68779
|
+
let entries;
|
|
68780
|
+
try {
|
|
68781
|
+
entries = await fs.promises.readdir(workdir);
|
|
68782
|
+
} catch {
|
|
68783
|
+
return [];
|
|
68784
|
+
}
|
|
68785
|
+
const taskIds = /* @__PURE__ */ new Set();
|
|
68786
|
+
for (const entry of entries) {
|
|
68787
|
+
if (!entry.startsWith(TASK_FILE_PREFIX)) continue;
|
|
68788
|
+
for (const suffix of TASK_FILE_SUFFIXES) if (entry.endsWith(suffix)) {
|
|
68789
|
+
const id = entry.slice(5, -suffix.length);
|
|
68790
|
+
if (id.length > 0 && TASK_ID_RE.test(id)) taskIds.add(id);
|
|
68791
|
+
break;
|
|
68792
|
+
}
|
|
68793
|
+
}
|
|
68794
|
+
return await Promise.all([...taskIds].toSorted().map((id) => readTaskInfo(workdir, id, isPidAlive)));
|
|
68795
|
+
}
|
|
68796
|
+
|
|
68797
|
+
//#endregion
|
|
68798
|
+
//#region src/agents/tools/task-tool.ts
|
|
68799
|
+
/**
|
|
68800
|
+
* Long-task management tools (task_list, task_cancel).
|
|
68801
|
+
*
|
|
68802
|
+
* Companions to the detach-task pattern in skills/long-task. The detach
|
|
68803
|
+
* script writes task-<id>.{pid,cmd,started,log,status} state files into
|
|
68804
|
+
* the agent's workspace; these tools read and act on those files so the
|
|
68805
|
+
* agent can answer "what's running?" and kill a task without needing
|
|
68806
|
+
* shell access. Shared scanning logic lives in
|
|
68807
|
+
* src/infra/long-task-state.ts so the gateway's tasks.list RPC and these
|
|
68808
|
+
* agent tools agree on every shape detail.
|
|
68809
|
+
*
|
|
68810
|
+
* task-id allow-list mirrors detach-task.sh: 1–60 chars from
|
|
68811
|
+
* [a-zA-Z0-9._-], must not start with '.' or '-'. Diverging would let the
|
|
68812
|
+
* agent kill processes it never spawned via path traversal.
|
|
68813
|
+
*/
|
|
68814
|
+
const ALLOWED_SIGNALS = new Set([
|
|
68815
|
+
"SIGTERM",
|
|
68816
|
+
"SIGINT",
|
|
68817
|
+
"SIGHUP",
|
|
68818
|
+
"SIGQUIT",
|
|
68819
|
+
"SIGKILL",
|
|
68820
|
+
"SIGUSR1",
|
|
68821
|
+
"SIGUSR2"
|
|
68822
|
+
]);
|
|
68823
|
+
const TaskListSchema = Type.Object({ workdir: Type.Optional(Type.String()) });
|
|
68824
|
+
const TaskCancelSchema = Type.Object({
|
|
68825
|
+
taskId: Type.String(),
|
|
68826
|
+
workdir: Type.Optional(Type.String()),
|
|
68827
|
+
signal: Type.Optional(Type.String())
|
|
68828
|
+
});
|
|
68829
|
+
function normaliseSignal(input) {
|
|
68830
|
+
if (!input) return "SIGTERM";
|
|
68831
|
+
const upper = input.trim().toUpperCase();
|
|
68832
|
+
const candidate = upper.startsWith("SIG") ? upper : `SIG${upper}`;
|
|
68833
|
+
if (ALLOWED_SIGNALS.has(candidate)) return candidate;
|
|
68834
|
+
throw new Error(`Unsupported signal: ${input}. Allowed: TERM, INT, HUP, QUIT, KILL, USR1, USR2.`);
|
|
68835
|
+
}
|
|
68836
|
+
function isPidAlive(pid) {
|
|
68837
|
+
try {
|
|
68838
|
+
process.kill(pid, 0);
|
|
68839
|
+
return true;
|
|
68840
|
+
} catch (err) {
|
|
68841
|
+
if (err.code === "EPERM") return true;
|
|
68842
|
+
return false;
|
|
68843
|
+
}
|
|
68844
|
+
}
|
|
68845
|
+
function resolveWorkdir(deps, override) {
|
|
68846
|
+
const raw = override?.trim();
|
|
68847
|
+
if (!raw) return deps.workspaceDir;
|
|
68848
|
+
if (!path.isAbsolute(raw)) throw new Error(`workdir must be an absolute path (got: ${raw})`);
|
|
68849
|
+
return raw;
|
|
68850
|
+
}
|
|
68851
|
+
function createTaskListTool(deps) {
|
|
68852
|
+
return {
|
|
68853
|
+
label: "Task List",
|
|
68854
|
+
name: "task_list",
|
|
68855
|
+
description: `List long-running detached tasks in the agent's workspace.
|
|
68856
|
+
|
|
68857
|
+
Globs task-<id>.{pid,status,started,cmd,log,archived} files, reads their
|
|
68858
|
+
state, and checks each PID's liveness. Use this to find the task-id of a
|
|
68859
|
+
running detach-task before calling task_cancel, or to answer "what's
|
|
68860
|
+
running right now?" without re-asking the user.
|
|
68861
|
+
|
|
68862
|
+
Returns: { workdir, tasks: [{ id, pid, alive, status, archived, started, cmd, pidPath, statusPath, archivedPath, logPath }] }.
|
|
68863
|
+
- archived=true means the janitor swept this task's live state files (>7d
|
|
68864
|
+
dead) and replaced them with a tombstone. The canonical end status is
|
|
68865
|
+
preserved in the .archived file. Distinct from "missing" (no tombstone,
|
|
68866
|
+
no live files) which means the task crashed or its workdir was wiped.
|
|
68867
|
+
- Tasks whose .pid file is missing are still listed (alive=false, pid=null)
|
|
68868
|
+
so the agent can spot orphan state files.`,
|
|
68869
|
+
parameters: TaskListSchema,
|
|
68870
|
+
execute: async (_toolCallId, args) => {
|
|
68871
|
+
const override = readStringParam(args, "workdir");
|
|
68872
|
+
let workdir;
|
|
68873
|
+
try {
|
|
68874
|
+
workdir = resolveWorkdir(deps, override);
|
|
68875
|
+
} catch (err) {
|
|
68876
|
+
return jsonResult({
|
|
68877
|
+
workdir: override ?? deps.workspaceDir,
|
|
68878
|
+
tasks: [],
|
|
68879
|
+
error: err instanceof Error ? err.message : String(err)
|
|
68880
|
+
});
|
|
68881
|
+
}
|
|
68882
|
+
try {
|
|
68883
|
+
const tasks = await listTasksInWorkdir(workdir, isPidAlive);
|
|
68884
|
+
return jsonResult({
|
|
68885
|
+
workdir,
|
|
68886
|
+
tasks
|
|
68887
|
+
});
|
|
68888
|
+
} catch (err) {
|
|
68889
|
+
return jsonResult({
|
|
68890
|
+
workdir,
|
|
68891
|
+
tasks: [],
|
|
68892
|
+
error: err instanceof Error ? err.message : String(err)
|
|
68893
|
+
});
|
|
68894
|
+
}
|
|
68895
|
+
}
|
|
68896
|
+
};
|
|
68897
|
+
}
|
|
68898
|
+
function createTaskCancelTool(deps) {
|
|
68899
|
+
return {
|
|
68900
|
+
label: "Task Cancel",
|
|
68901
|
+
name: "task_cancel",
|
|
68902
|
+
description: `Send a signal (default SIGTERM) to a running detached task.
|
|
68903
|
+
|
|
68904
|
+
Reads task-<id>.pid in the workdir, validates the recorded PID is alive,
|
|
68905
|
+
and sends the signal via process.kill. The task's TERM/INT/HUP trap will
|
|
68906
|
+
write an "aborted" status before exiting, so a follow-up task_list call
|
|
68907
|
+
sees the canonical end state.
|
|
68908
|
+
|
|
68909
|
+
task-id must match the same allow-list as detach-task.sh: 1–60 chars from
|
|
68910
|
+
[a-zA-Z0-9._-], no leading '.' or '-'. signal accepts TERM (default), INT,
|
|
68911
|
+
HUP, QUIT, KILL, USR1, USR2 — with or without the "SIG" prefix.
|
|
68912
|
+
|
|
68913
|
+
Returns: { ok, taskId, pid, sentSignal, alreadyDead?, error? }.`,
|
|
68914
|
+
parameters: TaskCancelSchema,
|
|
68915
|
+
execute: async (_toolCallId, args) => {
|
|
68916
|
+
const params = args;
|
|
68917
|
+
const taskId = readStringParam(params, "taskId", { required: true });
|
|
68918
|
+
if (!TASK_ID_RE.test(taskId)) return jsonResult({
|
|
68919
|
+
ok: false,
|
|
68920
|
+
taskId,
|
|
68921
|
+
error: "taskId must be 1–60 chars from [a-zA-Z0-9._-] and must not start with '.' or '-'."
|
|
68922
|
+
});
|
|
68923
|
+
const override = readStringParam(params, "workdir");
|
|
68924
|
+
let workdir;
|
|
68925
|
+
try {
|
|
68926
|
+
workdir = resolveWorkdir(deps, override);
|
|
68927
|
+
} catch (err) {
|
|
68928
|
+
return jsonResult({
|
|
68929
|
+
ok: false,
|
|
68930
|
+
taskId,
|
|
68931
|
+
error: err instanceof Error ? err.message : String(err)
|
|
68932
|
+
});
|
|
68933
|
+
}
|
|
68934
|
+
const signalRaw = readStringParam(params, "signal");
|
|
68935
|
+
let signal;
|
|
68936
|
+
try {
|
|
68937
|
+
signal = normaliseSignal(signalRaw);
|
|
68938
|
+
} catch (err) {
|
|
68939
|
+
return jsonResult({
|
|
68940
|
+
ok: false,
|
|
68941
|
+
taskId,
|
|
68942
|
+
error: err instanceof Error ? err.message : String(err)
|
|
68943
|
+
});
|
|
68944
|
+
}
|
|
68945
|
+
const pidPath = path.join(workdir, `${TASK_FILE_PREFIX}${taskId}.pid`);
|
|
68946
|
+
let pidText;
|
|
68947
|
+
try {
|
|
68948
|
+
pidText = (await fs.promises.readFile(pidPath, "utf8")).trim();
|
|
68949
|
+
} catch (err) {
|
|
68950
|
+
if (err.code === "ENOENT") return jsonResult({
|
|
68951
|
+
ok: false,
|
|
68952
|
+
taskId,
|
|
68953
|
+
error: `no pid file at ${pidPath} — task is unknown or already cleaned up`
|
|
68954
|
+
});
|
|
68955
|
+
return jsonResult({
|
|
68956
|
+
ok: false,
|
|
68957
|
+
taskId,
|
|
68958
|
+
error: err instanceof Error ? err.message : String(err)
|
|
68959
|
+
});
|
|
68960
|
+
}
|
|
68961
|
+
const pid = Number.parseInt(pidText, 10);
|
|
68962
|
+
if (!Number.isFinite(pid) || pid <= 0) return jsonResult({
|
|
68963
|
+
ok: false,
|
|
68964
|
+
taskId,
|
|
68965
|
+
error: `pid file at ${pidPath} did not contain a positive integer`
|
|
68966
|
+
});
|
|
68967
|
+
if (!isPidAlive(pid)) return jsonResult({
|
|
68968
|
+
ok: false,
|
|
68969
|
+
taskId,
|
|
68970
|
+
pid,
|
|
68971
|
+
alreadyDead: true,
|
|
68972
|
+
error: "process is no longer running"
|
|
68973
|
+
});
|
|
68974
|
+
try {
|
|
68975
|
+
process.kill(pid, signal);
|
|
68976
|
+
} catch (err) {
|
|
68977
|
+
return jsonResult({
|
|
68978
|
+
ok: false,
|
|
68979
|
+
taskId,
|
|
68980
|
+
pid,
|
|
68981
|
+
sentSignal: signal,
|
|
68982
|
+
error: err instanceof Error ? err.message : String(err)
|
|
68983
|
+
});
|
|
68984
|
+
}
|
|
68985
|
+
return jsonResult({
|
|
68986
|
+
ok: true,
|
|
68987
|
+
taskId,
|
|
68988
|
+
pid,
|
|
68989
|
+
sentSignal: signal
|
|
68990
|
+
});
|
|
68991
|
+
}
|
|
68992
|
+
};
|
|
68993
|
+
}
|
|
68994
|
+
|
|
68668
68995
|
//#endregion
|
|
68669
68996
|
//#region src/agents/tools/tts-tool.ts
|
|
68670
68997
|
const TtsToolSchema = Type.Object({
|
|
@@ -69965,6 +70292,8 @@ function createSymiTools(options) {
|
|
|
69965
70292
|
config: options?.config
|
|
69966
70293
|
}),
|
|
69967
70294
|
createCronTool({ agentSessionKey: options?.agentSessionKey }),
|
|
70295
|
+
createTaskListTool({ workspaceDir }),
|
|
70296
|
+
createTaskCancelTool({ workspaceDir }),
|
|
69968
70297
|
...messageTool ? [messageTool] : [],
|
|
69969
70298
|
createTtsTool({
|
|
69970
70299
|
agentChannel: options?.agentChannel,
|
|
@@ -78756,7 +79085,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
78756
79085
|
return;
|
|
78757
79086
|
}
|
|
78758
79087
|
try {
|
|
78759
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
79088
|
+
const { deliverOutboundPayloads } = await import("./deliver-CKgFosI5.js").then((n) => n.n);
|
|
78760
79089
|
await deliverOutboundPayloads({
|
|
78761
79090
|
cfg: params.cfg,
|
|
78762
79091
|
channel,
|