@symerian/symi 3.1.0 → 3.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{acp-cli-DUfYPxyp.js → acp-cli-BfBM-bKP.js} +2 -2
- package/dist/{acp-cli-C9NtVXJ7.js → acp-cli-J89cntBu.js} +2 -2
- package/dist/{agent-DMDBKAcJ.js → agent-CEXPWtuC.js} +8 -8
- package/dist/{agent-DKz-M9N_.js → agent-DRRQgy58.js} +7 -7
- package/dist/{agents-DXs9Kjwj.js → agents-PqUWeR3A.js} +5 -5
- package/dist/{audit-CCWHhR0Z.js → audit-DK86QmIj.js} +5 -5
- package/dist/{audit-CHQE7ltJ.js → audit-hp8a-n1l.js} +5 -5
- package/dist/{auth-choice-6RytjsbC.js → auth-choice-DdATugur.js} +4 -4
- package/dist/{auth-choice-CG-QKZd6.js → auth-choice-YNYbPMs1.js} +4 -4
- package/dist/{banner-DQd0lIpu.js → banner-DAqLFzv_.js} +1 -1
- package/dist/{browser-cli-WqkpY2cc.js → browser-cli-BFWcoE7z.js} +3 -3
- package/dist/{browser-cli-Cldf7Y9g.js → browser-cli-xKtmzl_A.js} +3 -3
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +8 -8
- package/dist/bundled/session-memory/handler.js +7 -7
- package/dist/{call-C14bzfoZ.js → call-BWteI0cy.js} +1 -1
- package/dist/{call-Dlm86eg6.js → call-Ddoic0fC.js} +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-Co6PcwNY.js → channel-options-Cj-XhO9V.js} +1 -1
- package/dist/{channel-options-CU13eaBX.js → channel-options-D2f8AA_b.js} +1 -1
- package/dist/{channels-cli-BT-CS0Dv.js → channels-cli-CeA5OW3-.js} +22 -22
- package/dist/{channels-cli-DwLILpia.js → channels-cli-CyfuYRAC.js} +24 -24
- package/dist/{chrome-B7_foWil.js → chrome-B8nPYMUV.js} +1 -1
- package/dist/{chrome-BLHu6Hyz.js → chrome-CsuV4F-9.js} +1 -1
- package/dist/{chrome-O5GtGEaR.js → chrome-DFQDh6ZB.js} +8 -8
- package/dist/{chrome-BkXobQ6Q.js → chrome-_qwUb3dO.js} +1 -1
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-C10IlksY.js → cli-B9QF1-A3.js} +18 -18
- package/dist/{cli-BTsGbyHe.js → cli-FC0iA9c9.js} +20 -20
- package/dist/{command-registry-DmjX-MJb.js → command-registry-DrPydEca.js} +11 -11
- package/dist/{completion-cli-DezSeZQA.js → completion-cli-B14HjsvE.js} +2 -2
- package/dist/{completion-cli-CKczmer5.js → completion-cli-Cbn8Wdpx.js} +1 -1
- package/dist/{config-BKcjFxGR.js → config-BsPVEzE3.js} +2 -2
- package/dist/{config-D-YxNuAZ.js → config-Cxfzso_Z.js} +0 -8
- package/dist/{config-cli-DbYlv3aw.js → config-cli-CZW8jojl.js} +2 -2
- package/dist/{config-cli-DakRgeD4.js → config-cli-YoysCWxO.js} +2 -2
- package/dist/{config-guard-iJNdTPmt.js → config-guard-B0j0Tq1a.js} +2 -2
- package/dist/{config-guard-DviVtynm.js → config-guard-BYoKKsDW.js} +3 -3
- package/dist/{config-CYwm_UYz.js → config-scZRRn2T.js} +0 -8
- package/dist/{config-validation-Cn58Yz2s.js → config-validation-D7Od5Yqx.js} +1 -1
- package/dist/{config-validation-Dz_Chn19.js → config-validation-DmJ-I8eH.js} +1 -1
- package/dist/{configure-B7CIs5tQ.js → configure-B5KQwmrU.js} +10 -10
- package/dist/{configure-DFMNvP2v.js → configure-DcDDW9Dx.js} +10 -10
- package/dist/{control-service-C6SdUJGs.js → control-service-CDWcS4TE.js} +4 -4
- package/dist/{control-service-Cuc3K1O-.js → control-service-CROUSYRb.js} +4 -4
- package/dist/control-ui/js/app.js +34 -2
- package/dist/{cron-cli-BWyaUoA8.js → cron-cli-CtVolwJM.js} +3 -3
- package/dist/{cron-cli-DSyOv8Mh.js → cron-cli-xfWPxnjt.js} +3 -3
- package/dist/{daemon-cli-C6LEQAIf.js → daemon-cli-Bh8S3XNY.js} +6 -6
- package/dist/{daemon-cli-BN0BS9To.js → daemon-cli-CLoBnTjH.js} +6 -6
- package/dist/daemon-cli.js +0 -8
- package/dist/{daemon-runtime-bdvJvhh0.js → daemon-runtime-C1vaS1KN.js} +1 -1
- package/dist/{daemon-runtime-Bt9_ZcwQ.js → daemon-runtime-Ciny4f0a.js} +1 -1
- package/dist/{deliver-BMg6XjUA.js → deliver-B3SdFgzA.js} +5 -5
- package/dist/{deliver-Cxzii_el.js → deliver-BrnGAti2.js} +5 -5
- package/dist/{deliver-CCNTT73z.js → deliver-CBLpHLj6.js} +1 -1
- package/dist/{deliver-SxI9drJl.js → deliver-CqJ3B363.js} +1 -1
- package/dist/{deps-CAJEf96g.js → deps-MXbZhSGc.js} +1 -1
- package/dist/{devices-cli-DATAjJ0Q.js → devices-cli-DMrDlrXV.js} +2 -2
- package/dist/{devices-cli-CmMoR2St.js → devices-cli-DgofB48n.js} +2 -2
- package/dist/{directory-cli-DyC04ktV.js → directory-cli-CSsy_RiQ.js} +1 -1
- package/dist/{directory-cli-DVYDMCQg.js → directory-cli-Cq_gMduw.js} +1 -1
- package/dist/{dns-cli-zHmXgnTc.js → dns-cli-D-XQUb_J.js} +1 -1
- package/dist/{dns-cli-UVvW1-bj.js → dns-cli-DqVGfq3s.js} +1 -1
- package/dist/{doctor-completion-BCVASe0n.js → doctor-completion-0Ciu6bXw.js} +1 -1
- package/dist/{doctor-completion-AGw1egU_.js → doctor-completion-bp85dPn_.js} +1 -1
- package/dist/{doctor-config-flow-ClsCvpwI.js → doctor-config-flow-BAjJwPwp.js} +2 -2
- package/dist/{doctor-config-flow-Brr2nZj7.js → doctor-config-flow-BdDRykfz.js} +2 -2
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-tYolA4fT.js → exec-approvals-cli-BGMboqEF.js} +4 -4
- package/dist/{exec-approvals-cli-sqdNtDAS.js → exec-approvals-cli-Dq0mIyao.js} +4 -4
- package/dist/extensionAPI.js +6 -6
- package/dist/{gateway-cli-CvFiUm5D.js → gateway-cli-B87rKDcz.js} +39 -387
- package/dist/{gateway-cli-BZXfKM1n.js → gateway-cli-DwmmDmvN.js} +38 -386
- package/dist/{gateway-rpc-I4V_rlyD.js → gateway-rpc-D7xbL4xK.js} +1 -1
- package/dist/{gateway-rpc-CEmRl_5F.js → gateway-rpc-DQJ06sR6.js} +1 -1
- package/dist/{glass-ui-ws-CHyGj7GA.js → glass-ui-ws-CWWX4RFk.js} +29 -29
- package/dist/{glass-ui-ws-BSTHY5PU.js → glass-ui-ws-DqoK5k3P.js} +30 -30
- package/dist/{health-vDQ4nRJB.js → health-Bd4Kn-Uq.js} +5 -5
- package/dist/{health-OGl_XbRn.js → health-BtU-6tKH.js} +6 -6
- package/dist/{hooks-cli-VqgCW0Qc.js → hooks-cli-BL3GZVk5.js} +19 -19
- package/dist/{hooks-cli-CrqaQVL9.js → hooks-cli-mDZU8rDD.js} +21 -21
- package/dist/index.js +25 -25
- package/dist/{lifecycle-core-DbKdqcKY.js → lifecycle-core-3xu6LRYA.js} +2 -2
- package/dist/{lifecycle-core-yGgMuHuO.js → lifecycle-core-DneYEGDD.js} +2 -2
- package/dist/llm-slug-generator.js +7 -7
- package/dist/{logs-cli-CwHWy3uX.js → logs-cli-BBAd4pwH.js} +3 -3
- package/dist/{logs-cli-Bm2kMpGM.js → logs-cli-ccmeDLDg.js} +3 -3
- package/dist/{manager-DSlfEjVk.js → manager-B2DFgFTm.js} +1 -1
- package/dist/{manager-BKktUaAk.js → manager-C1CQhXcw.js} +1 -1
- package/dist/{manager-BWi2hK4Y.js → manager-C7f-dMSW.js} +1 -1
- package/dist/{manager-BoTf2TBM.js → manager-I-tRC_wz.js} +1 -1
- package/dist/{memory-cli-B7Ls3Iv1.js → memory-cli-Bj9XSnKb.js} +4 -4
- package/dist/{memory-cli-stuQ5Kfc.js → memory-cli-WT8ROETg.js} +4 -4
- package/dist/{model-catalog-BaFhU6Fx.js → model-catalog-BBMq_UVY.js} +1 -1
- package/dist/{model-catalog-K_qqpcC9.js → model-catalog-BRC9B0qI.js} +2 -2
- package/dist/{model-picker-BawF3VfC.js → model-picker-DpqkZ7e1.js} +2 -2
- package/dist/{model-picker-DPAI_Ae2.js → model-picker-_zh6CfZc.js} +2 -2
- package/dist/{models-cli-DdfXroYi.js → models-cli-D8tfyD-y.js} +24 -24
- package/dist/{models-cli-D5fOoioI.js → models-cli-aErLhUPp.js} +22 -22
- package/dist/{models-config-B0mXwbnd.js → models-config-DjrYhBZX.js} +1 -1
- package/dist/{models-BNuVMqEB.js → models-vodK37zz.js} +8 -8
- package/dist/{node-cli-2WEdC_wl.js → node-cli-BUFlN1NC.js} +9 -9
- package/dist/{node-cli-CnFjINUo.js → node-cli-DvjDG6DY.js} +9 -9
- package/dist/{nodes-cli-CVaZrBSK.js → nodes-cli-BSRfBidu.js} +3 -3
- package/dist/{nodes-cli-CPDPd-lG.js → nodes-cli-Cxe4GDbb.js} +3 -3
- package/dist/{onboard-CHrTg-R0.js → onboard-RBwcsRLX.js} +7 -7
- package/dist/{onboard-channels-fgjkUOFq.js → onboard-channels-DTfKco-3.js} +1 -1
- package/dist/{onboard-channels-Bk10gQ24.js → onboard-channels-DVwRGIr8.js} +1 -1
- package/dist/{onboard-custom-DZ0tCPYA.js → onboard-custom-B9JDxREb.js} +2 -2
- package/dist/{onboard-custom-C6Ntk4T6.js → onboard-custom-DzHUFAMR.js} +2 -2
- package/dist/{onboard-helpers-CilvN36L.js → onboard-helpers-B8Cx3IOC.js} +2 -2
- package/dist/{onboard-helpers-ClA4h5_K.js → onboard-helpers-BII4m6Bg.js} +2 -2
- package/dist/{onboard-BzRDv60Y.js → onboard-pZ4uh1rG.js} +7 -7
- package/dist/{onboard-remote-CTIJEEno.js → onboard-remote-Dlbf_X-4.js} +5 -5
- package/dist/{onboard-remote-BldpXiDu.js → onboard-remote-Jw3zoknX.js} +1 -1
- package/dist/{onboard-skills-ADTC4TUU.js → onboard-skills-BII_cah6.js} +1 -1
- package/dist/{onboard-skills-o3A3Swd4.js → onboard-skills-Bavc8Y6d.js} +1 -1
- package/dist/{onboarding-ClbxBHpB.js → onboarding-Djyshvaw.js} +10 -10
- package/dist/{onboarding-BGwkx8NB.js → onboarding-ZEJVYSg3.js} +10 -10
- package/dist/{onboarding.finalize-D6zND3C7.js → onboarding.finalize-D10xj022.js} +26 -26
- package/dist/{onboarding.finalize-BnIBZwze.js → onboarding.finalize-Djz7joj6.js} +28 -28
- package/dist/{onboarding.gateway-config-D5P3DUUI.js → onboarding.gateway-config-BPR3HkR2.js} +4 -4
- package/dist/{onboarding.gateway-config-CCyqcBFt.js → onboarding.gateway-config-CsIQ9sAd.js} +4 -4
- package/dist/{outbound-send-deps-KBVliaIJ.js → outbound-send-deps-CWt3ExwB.js} +1 -1
- package/dist/{pairing-cli-v87bBSWV.js → pairing-cli-BrH39gjt.js} +1 -1
- package/dist/{pairing-cli-CCTGZIlT.js → pairing-cli-CraUdeOv.js} +1 -1
- package/dist/{pi-embedded-L-sMlPsa.js → pi-embedded-DuflRZe_.js} +13 -13
- package/dist/{pi-embedded-helpers-B4IwWdI4.js → pi-embedded-helpers-D0D-YFKs.js} +1 -1
- package/dist/{pi-embedded-helpers-WbBv3O-3.js → pi-embedded-helpers-D4ztxySY.js} +1 -1
- package/dist/{pi-tools.policy-Cm2mPWWM.js → pi-tools.policy-BF_-fAip.js} +2 -2
- package/dist/{pi-tools.policy-DNgBKXTL.js → pi-tools.policy-C_GiT5Ck.js} +2 -2
- package/dist/{plugin-registry-CqwECVKt.js → plugin-registry-DHfoCwrG.js} +2 -2
- package/dist/{plugin-registry-C46oqC4P.js → plugin-registry-DKcH2JE_.js} +2 -2
- package/dist/plugin-sdk/gateway/server-chat.d.ts +47 -0
- package/dist/plugin-sdk/index.js +0 -8
- package/dist/{plugins-cli-B02JN03S.js → plugins-cli-CWyPtszc.js} +21 -21
- package/dist/{plugins-cli-DEpMh_AU.js → plugins-cli-ssYO3M4S.js} +19 -19
- package/dist/{program-B8S2KFzC.js → program-BWzfeG-8.js} +27 -27
- package/dist/{program-context-DCb3cVEC.js → program-context-xIF2kV0x.js} +38 -38
- package/dist/{prompt-select-styled-BJ3NsTmX.js → prompt-select-styled-8b8DmPbN.js} +15 -15
- package/dist/{prompt-select-styled-ZdXAuRQQ.js → prompt-select-styled-BUEb8xR1.js} +15 -15
- package/dist/{provider-auth-helpers-BBApWDj8.js → provider-auth-helpers-DcNngSF0.js} +2 -2
- package/dist/{provider-auth-helpers-BHaaf_C1.js → provider-auth-helpers-vX_S0ALE.js} +2 -2
- package/dist/{push-apns-DlP4T9Pl.js → push-apns-DxBDQXtP.js} +1 -1
- package/dist/{push-apns-CZG-Sec1.js → push-apns-pjFzQgQX.js} +1 -1
- package/dist/{pw-ai-CcThCit8.js → pw-ai-D5XTVAAy.js} +2 -2
- package/dist/{pw-ai-BT6WYVgD.js → pw-ai-DFmjn-D8.js} +2 -2
- package/dist/{pw-ai-CYE0188Y.js → pw-ai-DGylJ6uj.js} +2 -2
- package/dist/{pw-ai-B9riepO_.js → pw-ai-MxiZ-sjO.js} +2 -2
- package/dist/{qr-cli-FyVy5rgL.js → qr-cli-X0AMG0ES.js} +1 -1
- package/dist/{qr-cli-De3FYKdn.js → qr-cli-ZQCsZbxy.js} +1 -1
- package/dist/{register.agent-B4MClVne.js → register.agent-88zeMqb_.js} +30 -30
- package/dist/{register.agent-BDaFZQMb.js → register.agent-C9ynHkGB.js} +27 -27
- package/dist/{register.configure-vxWz3QF_.js → register.configure-DlS5n4iv.js} +31 -31
- package/dist/{register.configure-Bbq6Pfz4.js → register.configure-nIyIBn3w.js} +31 -31
- package/dist/{register.maintenance-BBxWlFhs.js → register.maintenance-CnWw_Lyo.js} +29 -29
- package/dist/{register.maintenance-CX4sIokB.js → register.maintenance-D7vGx_sc.js} +31 -31
- package/dist/{register.message-pVlrdXcl.js → register.message-CMgjp7K9.js} +20 -20
- package/dist/{register.message-BdYU9TBN.js → register.message-CRbIEz_z.js} +22 -22
- package/dist/{register.onboard-Be8PMN1Z.js → register.onboard-BUBMscso.js} +27 -27
- package/dist/{register.onboard-UzFm__iV.js → register.onboard-D3Xe692c.js} +28 -28
- package/dist/{register.setup-w0_6rARS.js → register.setup-D7g2F9Ti.js} +28 -28
- package/dist/{register.setup-Dq7WlLOL.js → register.setup-DaglHDjt.js} +27 -27
- package/dist/{register.status-health-sessions-BoUKcfbS.js → register.status-health-sessions-17TPGabp.js} +26 -26
- package/dist/{register.status-health-sessions-Lxz44Abz.js → register.status-health-sessions-DHh9h8xA.js} +24 -24
- package/dist/{register.subclis-Cb1ErrVQ.js → register.subclis-B3hydKN2.js} +28 -28
- package/dist/{replies-BpJPH2hc.js → replies-BK444q35.js} +1 -1
- package/dist/{replies-DSaEOCgv.js → replies-C6QyTmQW.js} +1 -1
- package/dist/{replies-RnWQ3nKx.js → replies-CBXhYQKz.js} +1 -1
- package/dist/{replies-Cts6obnK.js → replies-Hxxgo5oF.js} +1 -1
- package/dist/{routes--kmISnRJ.js → routes-DxrqrN_9.js} +3 -3
- package/dist/{routes-BPOSBzut.js → routes-XZvpN4jt.js} +3 -3
- package/dist/{rpc-D8VMyohd.js → rpc-ChsvBOac.js} +1 -1
- package/dist/{rpc-Bm9M4Wg1.js → rpc-lrBk7i0P.js} +1 -1
- package/dist/{run-main-DmC4wWlp.js → run-main-Bt-WQm1x.js} +38 -38
- package/dist/{run-reply-turn-CrfZuxxN.js → run-reply-turn-BFPeqYgl.js} +1 -1
- package/dist/{sandbox-CKUsc_dq.js → sandbox-Cy3Vg-tx.js} +5 -5
- package/dist/{sandbox-iRNEuFgO.js → sandbox-D0BDTW6J.js} +5 -5
- package/dist/{sandbox-cli-EnXxgz9y.js → sandbox-cli-D7S-canm.js} +6 -6
- package/dist/{sandbox-cli-DxaSKb_E.js → sandbox-cli-DZljTg7d.js} +6 -6
- package/dist/{security-cli-3qifLVSV.js → security-cli-Bjhh88X6.js} +9 -9
- package/dist/{security-cli-CzIqX7ZY.js → security-cli-BuKw0-_8.js} +9 -9
- package/dist/{send-DSoVd8gQ.js → send-CcZ9i_LC.js} +1 -1
- package/dist/{send-BOhR5xu0.js → send-CpGIU58f.js} +1 -1
- package/dist/{send-DRmWH4n5.js → send-Ct2sWmDQ.js} +1 -1
- package/dist/{server-context-bi7CcxfQ.js → server-context-B9wEJH9W.js} +5 -5
- package/dist/{server-context-BmxBVIv7.js → server-context-CIMejxOx.js} +5 -5
- package/dist/{server-methods-C97G9dYe.js → server-methods-BBZIZzXL.js} +376 -20
- package/dist/{server-methods-DFt60s1H.js → server-methods-DaSFpTl-.js} +375 -19
- package/dist/{server-node-events-DZxA-yXb.js → server-node-events-BQEpHt9X.js} +23 -23
- package/dist/{server-node-events-D11AUIyh.js → server-node-events-IDt8hC2u.js} +21 -21
- package/dist/{session-utils-CrnY8rsC.js → session-utils-Cz8JJaAg.js} +3 -3
- package/dist/{sessions-CrQE7gq3.js → sessions-BXbrIigY.js} +1 -1
- package/dist/{sessions-LI9mFmYJ.js → sessions-CkXuHlJX.js} +1 -1
- package/dist/{sessions-SokOLKeJ.js → sessions-D6DTsw1W.js} +3 -3
- package/dist/{shared-7ryC0qEG.js → shared-BOTWXPOB.js} +1 -1
- package/dist/{shared-BLmd-eho.js → shared-p8Maztrs.js} +1 -1
- package/dist/{skills-cli-Ba5dqnlJ.js → skills-cli-B-cFIUJz.js} +1 -1
- package/dist/{skills-cli-DjB_y1v8.js → skills-cli-CmfEiLAw.js} +1 -1
- package/dist/{ssrf-BgA_8lbe.js → ssrf-Bw8oiPrP.js} +0 -8
- package/dist/{ssrf-CY_-n5zv.js → ssrf-D_Vm7pW2.js} +0 -8
- package/dist/{status-BIFL3qPs.js → status-6xghwlf1.js} +2 -2
- package/dist/{status-VrUpaIhD.js → status-C1mhNRbD.js} +9 -9
- package/dist/{status-er3ceIYD.js → status-DRVnRoTo.js} +10 -10
- package/dist/{status-H7a1x6Bo.js → status-DfZj0OL9.js} +2 -2
- package/dist/{status.update-BkqkfjdZ.js → status.update-BbUgxGoZ.js} +1 -1
- package/dist/{status.update-pKELdmOb.js → status.update-D2JhbGJA.js} +1 -1
- package/dist/{subagent-registry-DNcSxvl3.js → subagent-registry-Clebo068.js} +22 -22
- package/dist/{synthesis-CPZoVKlB.js → synthesis-CTniyTVP.js} +7 -7
- package/dist/{synthesis-DA7kfAUJ.js → synthesis-DNlJetcg.js} +6 -6
- package/dist/{synthesis-D9CyMOsH.js → synthesis-DmO9gicE.js} +18 -18
- package/dist/{synthesis-dF7N0Wom.js → synthesis-slPZ4fBh.js} +20 -20
- package/dist/{system-cli-BlFmLLLL.js → system-cli-C-ZdVxHQ.js} +3 -3
- package/dist/{system-cli-DJKNNfnj.js → system-cli-C2XPvZM1.js} +3 -3
- package/dist/{systemd-hints-DuKMWx63.js → systemd-hints-CTf6Uif8.js} +1 -1
- package/dist/{systemd-hints-YEalUHIV.js → systemd-hints-DtDxA-Zu.js} +1 -1
- package/dist/{tui-BcNRiyl9.js → tui-DtpuuaO4.js} +4 -4
- package/dist/{tui-DEGjDTCT.js → tui-IQDR3lwq.js} +4 -4
- package/dist/{tui-cli-D7CPaWwk.js → tui-cli-ChMTt69J.js} +9 -9
- package/dist/{tui-cli-CvdJmxYe.js → tui-cli-D7LRzH2F.js} +9 -9
- package/dist/{unified-runner-BdN9pHa8.js → unified-runner-B4vj4_WA.js} +11 -11
- package/dist/{unified-runner-BX17do1W.js → unified-runner-sIP8uml4.js} +20 -20
- package/dist/{update-cli-Bg3c9ORr.js → update-cli-DG6iVa21.js} +34 -34
- package/dist/{update-cli-DZtbV25O.js → update-cli-DldGC3QO.js} +32 -32
- package/dist/{update-runner-CwPl1B2f.js → update-runner-BrTc6tK0.js} +1 -1
- package/dist/{update-runner-BrVkeUcH.js → update-runner-D5HXwUeR.js} +1 -1
- package/dist/{webhooks-cli-BhV2FyAB.js → webhooks-cli-B-pptn0k.js} +1 -1
- package/dist/{webhooks-cli-B9_1T4Gi.js → webhooks-cli-C2eWOEg3.js} +1 -1
- package/dist/{with-timeout-D1RTXHZO.js → with-timeout-Bi143Knd.js} +1 -1
- package/dist/{with-timeout-DNvX8V3I.js → with-timeout-DFeXJy0t.js} +1 -1
- package/package.json +1 -1
|
@@ -5,46 +5,47 @@ import { t as resolveSymiPackageRoot } from "./symi-root-CK6iELVh.js";
|
|
|
5
5
|
import { C as ensureAgentWorkspace, S as DEFAULT_USER_FILENAME, T as isWorkspaceOnboardingCompleted, _ as DEFAULT_MEMORY_ALT_FILENAME, b as DEFAULT_SYMIPULSE_FILENAME, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, g as DEFAULT_IDENTITY_FILENAME, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, n as listAgentIds, p as DEFAULT_AGENTS_FILENAME, t as listAgentEntries, v as DEFAULT_MEMORY_FILENAME, x as DEFAULT_TOOLS_FILENAME, y as DEFAULT_SYMICORE_FILENAME } from "./agent-scope-D60vGDop.js";
|
|
6
6
|
import { i as loadWorkspaceSkillEntries } from "./skills-D-FoKZ1g.js";
|
|
7
7
|
import { t as buildWorkspaceSkillStatus } from "./skills-status-B9Q2CZBy.js";
|
|
8
|
-
import { L as VERSION, O as applyMergePatch, R as resolveRuntimeServiceVersion, a as parseConfigJson5, c as resolveConfigSnapshotHash, g as sensitive, i as loadConfig, k as applyLegacyMigrations, l as writeConfigFile, m as SymiSchema, o as readConfigFileSnapshot, p as validateConfigObjectWithPlugins, s as readConfigFileSnapshotForWrite } from "./config-
|
|
8
|
+
import { L as VERSION, O as applyMergePatch, R as resolveRuntimeServiceVersion, a as parseConfigJson5, c as resolveConfigSnapshotHash, g as sensitive, i as loadConfig, k as applyLegacyMigrations, l as writeConfigFile, m as SymiSchema, o as readConfigFileSnapshot, p as validateConfigObjectWithPlugins, s as readConfigFileSnapshotForWrite } from "./config-Cxfzso_Z.js";
|
|
9
9
|
import { $ as validateNodePairRejectParams, A as validateCronStatusParams, At as validateWebLoginWaitParams, B as validateExecApprovalsGetParams, C as validateConfigSetParams, Ct as validateSkillsUpdateParams, D as validateCronRemoveParams, Dt as validateUpdateRunParams, E as validateCronListParams, Et as validateTasksListParams, F as validateDevicePairRemoveParams, G as validateModelsListParams, Gt as rejectDevicePairing, H as validateExecApprovalsNodeSetParams, I as validateDeviceTokenRevokeParams, It as ErrorCodes, J as validateNodeInvokeParams, Jt as revokeDeviceToken, K as validateNodeDescribeParams, Kt as removePairedDevice, L as validateDeviceTokenRotateParams, Lt as errorShape, M as validateDevicePairApproveParams, Mt as validateWizardNextParams, N as validateDevicePairListParams, Nt as validateWizardStartParams, O as validateCronRunParams, Ot as validateWakeParams, P as validateDevicePairRejectParams, Pt as validateWizardStatusParams, Q as validateNodePairListParams, S as validateConfigSchemaParams, St as validateSkillsStatusParams, T as validateCronAddParams, Tt as validateTalkModeParams, U as validateExecApprovalsSetParams, V as validateExecApprovalsNodeGetParams, Vt as approveDevicePairing, W as validateLogsTailParams, Wt as listDevicePairing, X as validateNodeListParams, Xt as summarizeDeviceTokens, Y as validateNodeInvokeResultParams, Yt as rotateDeviceToken, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSessionsRestoreParams, a as validateAgentWaitParams, b as validateConfigGetParams, bt as validateSkillsBinsParams, c as validateAgentsFilesGetParams, ct as validateSessionsCompactParams, d as validateAgentsListParams, dt as validateSessionsFavoriteFileParams, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsListParams, g as validateChatHistoryParams, gt as validateSessionsResolveParams, h as validateChatAbortParams, ht as validateSessionsResetParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as validateWizardCancelParams, k as validateCronRunsParams, kt as validateWebLoginStartParams, l as validateAgentsFilesListParams, lt as validateSessionsDeleteFileParams, m as validateChannelsStatusParams, mt as validateSessionsPreviewParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsPatchParams, q as validateNodeEventParams, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsAdoptFileParams, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsDeleteParams, v as validateChatSendParams, vt as validateSessionsSearchParams, wt as validateTalkConfigParams, x as validateConfigPatchParams, xt as validateSkillsInstallParams, y as validateConfigApplyParams, yt as validateSessionsUsageParams, zt as parseSessionLabel } from "./client-BrmuCW-S.js";
|
|
10
|
-
import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-
|
|
10
|
+
import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-BWteI0cy.js";
|
|
11
11
|
import { f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, i as isGatewayMessageChannel, l as normalizeMessageChannel, n as isDeliverableMessageChannel, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-CNPAq1Tl.js";
|
|
12
12
|
import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-DZAnUH5B.js";
|
|
13
13
|
import { s as pickPrimaryLanIPv4 } from "./net-DZ5Ayk-W.js";
|
|
14
14
|
import { i as normalizeInputProvenance } from "./input-provenance-D0lNkCf6.js";
|
|
15
|
-
import { $n as setTtsEnabled, A as waitForEmbeddedPiRunEnd, Bt as scheduleGatewaySigusr1Restart, C as buildGlassUiProfile, Cn as prepareAgentRun, E as runUnifiedTurn, Fn as isAbortTrigger, G as ensureOutboundSessionEntry, Gn as getTtsProvider, In as stopSubagentsForRequester, Jn as resolveTtsApiKey, K as resolveOutboundSessionRoute, Kn as isTtsEnabled, Mn as normalizeGroupActivation, Mt as persistBrowserProxyFiles, O as abortEmbeddedPiRun, Pn as formatZonedTimestamp, Qn as resolveTtsProviderOrder, R as buildAgentTurnParams, Sn as resolveAgentTimeoutMs, Tn as isSystemEventContextChanged, Ut as loadProviderUsageSummary, V as listTasksInWorkdir, Vn as resolveUserTimezone, Xn as resolveTtsConfig, Y as resolveOutboundTarget, Yn as resolveTtsAutoMode, Z as normalizePollInput, Zn as resolveTtsPrefsPath, a as listSubagentRunsForRequester, br as registerAgentRunContext, c as clearSessionQueues, cn as applyModelOverrideToSessionEntry, dt as writeRestartSentinel, er as setTtsProvider, i as listDescendantRunsForRequester, jn as BARE_SESSION_RESET_PROMPT, jt as applyBrowserProxyPaths, ln as applyVerboseOverride, m as loadSymiPlugins, mt as normalizeCronJobPatch, nn as normalizeSendPolicy, nr as OPENAI_TTS_MODELS, ot as formatDoctorNonInteractiveHint, pt as normalizeCronJobCreate, qn as isTtsProviderConfigured, rn as resolveSendPolicy, rr as OPENAI_TTS_VOICES, tr as textToSpeech, un as parseVerboseOverride, wn as enqueueSystemEvent, x as createReplyDispatcher, y as getChannelActivity, yr as onAgentEvent, z as prepareReplyTurn } from "./subagent-registry-
|
|
16
|
-
import { F as resolveMainSessionKey, I as resolveMainSessionKeyFromConfig, J as normalizeSessionDeliveryFields, N as resolveAgentMainSessionKey, P as resolveExplicitAgentSessionKey, R as snapshotSessionOrigin, S as stripEnvelopeFromMessages, _ as capArrayByJsonBytes, d as updateSessionStore, g as archiveSessionTranscripts, h as archiveFileOnDisk, o as loadSessionStore, t as extractDeliveryInfo, v as readSessionMessages, x as resolveSessionTranscriptCandidates, y as readSessionPreviewItemsFromTranscript } from "./sessions-
|
|
15
|
+
import { $n as setTtsEnabled, A as waitForEmbeddedPiRunEnd, Bt as scheduleGatewaySigusr1Restart, C as buildGlassUiProfile, Cn as prepareAgentRun, E as runUnifiedTurn, F as classifyOutboundMessage, Fn as isAbortTrigger, G as ensureOutboundSessionEntry, Gn as getTtsProvider, In as stopSubagentsForRequester, Jn as resolveTtsApiKey, K as resolveOutboundSessionRoute, Kn as isTtsEnabled, Mn as normalizeGroupActivation, Mt as persistBrowserProxyFiles, O as abortEmbeddedPiRun, Pn as formatZonedTimestamp, Qn as resolveTtsProviderOrder, R as buildAgentTurnParams, Sn as resolveAgentTimeoutMs, Tn as isSystemEventContextChanged, Ut as loadProviderUsageSummary, V as listTasksInWorkdir, Vn as resolveUserTimezone, Xn as resolveTtsConfig, Y as resolveOutboundTarget, Yn as resolveTtsAutoMode, Z as normalizePollInput, Zn as resolveTtsPrefsPath, a as listSubagentRunsForRequester, br as registerAgentRunContext, c as clearSessionQueues, cn as applyModelOverrideToSessionEntry, dr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, dt as writeRestartSentinel, er as setTtsProvider, i as listDescendantRunsForRequester, jn as BARE_SESSION_RESET_PROMPT, jt as applyBrowserProxyPaths, ln as applyVerboseOverride, m as loadSymiPlugins, mt as normalizeCronJobPatch, n as countActiveRunsForSession, nn as normalizeSendPolicy, nr as OPENAI_TTS_MODELS, ot as formatDoctorNonInteractiveHint, pt as normalizeCronJobCreate, qn as isTtsProviderConfigured, rn as resolveSendPolicy, rr as OPENAI_TTS_VOICES, tr as textToSpeech, un as parseVerboseOverride, vr as getAgentRunContext, wn as enqueueSystemEvent, x as createReplyDispatcher, y as getChannelActivity, yr as onAgentEvent, z as prepareReplyTurn } from "./subagent-registry-Clebo068.js";
|
|
16
|
+
import { F as resolveMainSessionKey, I as resolveMainSessionKeyFromConfig, J as normalizeSessionDeliveryFields, N as resolveAgentMainSessionKey, P as resolveExplicitAgentSessionKey, R as snapshotSessionOrigin, S as stripEnvelopeFromMessages, _ as capArrayByJsonBytes, d as updateSessionStore, g as archiveSessionTranscripts, h as archiveFileOnDisk, o as loadSessionStore, t as extractDeliveryInfo, v as readSessionMessages, x as resolveSessionTranscriptCandidates, y as readSessionPreviewItemsFromTranscript } from "./sessions-BXbrIigY.js";
|
|
17
|
+
import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-DN4W-XdV.js";
|
|
17
18
|
import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CYQsm6Gy.js";
|
|
18
|
-
import { n as createBrowserRouteDispatcher } from "./with-timeout-
|
|
19
|
-
import { h as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-
|
|
19
|
+
import { n as createBrowserRouteDispatcher } from "./with-timeout-DFeXJy0t.js";
|
|
20
|
+
import { h as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-CqJ3B363.js";
|
|
20
21
|
import { t as movePathToTrash } from "./trash-BEXyYJdG.js";
|
|
21
22
|
import { c as resolveStorePath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, s as resolveSessionTranscriptsDirForAgent } from "./paths-BDcioH8W.js";
|
|
22
|
-
import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-C72VJ9y9.js";
|
|
23
|
+
import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-C72VJ9y9.js";
|
|
23
24
|
import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-B9wo4eUI.js";
|
|
24
|
-
import { r as getMemorySearchManager } from "./memory-cli-
|
|
25
|
+
import { r as getMemorySearchManager } from "./memory-cli-Bj9XSnKb.js";
|
|
25
26
|
import { _ as requestNodePairing, g as renamePairedNode, h as rejectNodePairing, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, y as verifyNodeToken } from "./skill-commands-BFRS0Miy.js";
|
|
26
27
|
import { t as listAgentWorkspaceDirs } from "./workspace-dirs-CTCDVlcA.js";
|
|
27
|
-
import { a as loadCombinedSessionStoreForGateway, c as resolveGatewaySessionStoreTarget, i as listSessionsFromStore, l as resolveSessionModelRef, o as loadSessionEntry, r as listAgentsForGateway, s as pruneLegacyStoreKeys, t as canonicalizeSpawnedByForAgent } from "./session-utils-
|
|
28
|
+
import { a as loadCombinedSessionStoreForGateway, c as resolveGatewaySessionStoreTarget, i as listSessionsFromStore, l as resolveSessionModelRef, o as loadSessionEntry, r as listAgentsForGateway, s as pruneLegacyStoreKeys, t as canonicalizeSpawnedByForAgent } from "./session-utils-Cz8JJaAg.js";
|
|
28
29
|
import { a as mergeExecApprovalsSocketDefaults, c as readExecApprovalsSnapshot, p as saveExecApprovals, r as ensureExecApprovals, s as normalizeExecApprovals } from "./exec-approvals-BV3NU43w.js";
|
|
29
30
|
import { i as loadSessionUsageTimeSeries, n as loadCostUsageSummary, r as loadSessionCostSummary, t as discoverAllSessions } from "./session-cost-usage-hoPpLUY3.js";
|
|
30
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
31
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-CROUSYRb.js";
|
|
31
32
|
import { i as parseAbsoluteTimeMs } from "./stagger-C7dzX2Sp.js";
|
|
32
33
|
import { t as buildChannelUiCatalog } from "./catalog--zyy0Tdj.js";
|
|
33
34
|
import { t as WizardCancelledError } from "./prompts-D6s7Ev5r.js";
|
|
34
35
|
import { t as resolveChannelDefaultAccountId } from "./helpers-BdX-ab0f.js";
|
|
35
36
|
import { t as buildChannelAccountSnapshot } from "./status-CBkcR9vW.js";
|
|
36
|
-
import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-
|
|
37
|
-
import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-
|
|
38
|
-
import { r as getStatusSummary } from "./status-
|
|
39
|
-
import { c as setHeartbeatsEnabled, d as getLastHeartbeatEvent, p as abortHeartbeatRunForSession } from "./health-
|
|
40
|
-
import { r as createOutboundSendDeps } from "./outbound-send-deps-
|
|
37
|
+
import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-B8Cx3IOC.js";
|
|
38
|
+
import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-hp8a-n1l.js";
|
|
39
|
+
import { r as getStatusSummary } from "./status-DRVnRoTo.js";
|
|
40
|
+
import { c as setHeartbeatsEnabled, d as getLastHeartbeatEvent, p as abortHeartbeatRunForSession, u as resolveHeartbeatVisibility } from "./health-Bd4Kn-Uq.js";
|
|
41
|
+
import { r as createOutboundSendDeps } from "./outbound-send-deps-CWt3ExwB.js";
|
|
41
42
|
import { m as normalizeUpdateChannel } from "./update-check-CZiE16y_.js";
|
|
42
|
-
import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-
|
|
43
|
-
import { i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-
|
|
43
|
+
import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-pjFzQgQX.js";
|
|
44
|
+
import { i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-CEXPWtuC.js";
|
|
44
45
|
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-CoFNHkcF.js";
|
|
45
46
|
import { t as resolveSystemRunCommand } from "./system-run-command-XG1_P_la.js";
|
|
46
47
|
import { t as installSkill } from "./skills-install-FR75WmBn.js";
|
|
47
|
-
import { t as runGatewayUpdate } from "./update-runner-
|
|
48
|
+
import { t as runGatewayUpdate } from "./update-runner-BrTc6tK0.js";
|
|
48
49
|
import { spawnSync } from "node:child_process";
|
|
49
50
|
import * as os$1 from "node:os";
|
|
50
51
|
import os from "node:os";
|
|
@@ -403,6 +404,355 @@ function startGatewayConfigReloader(opts) {
|
|
|
403
404
|
} };
|
|
404
405
|
}
|
|
405
406
|
|
|
407
|
+
//#endregion
|
|
408
|
+
//#region src/gateway/server-chat.ts
|
|
409
|
+
function resolveHeartbeatAckMaxChars() {
|
|
410
|
+
try {
|
|
411
|
+
const cfg = loadConfig();
|
|
412
|
+
return Math.max(0, cfg.agents?.defaults?.heartbeat?.ackMaxChars ?? DEFAULT_HEARTBEAT_ACK_MAX_CHARS);
|
|
413
|
+
} catch {
|
|
414
|
+
return DEFAULT_HEARTBEAT_ACK_MAX_CHARS;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
function resolveHeartbeatContext(runId, sourceRunId) {
|
|
418
|
+
const primary = getAgentRunContext(runId);
|
|
419
|
+
if (primary?.isHeartbeat) return primary;
|
|
420
|
+
if (sourceRunId && sourceRunId !== runId) {
|
|
421
|
+
const source = getAgentRunContext(sourceRunId);
|
|
422
|
+
if (source?.isHeartbeat) return source;
|
|
423
|
+
}
|
|
424
|
+
return primary;
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Check if heartbeat ACK/noise should be hidden from interactive chat surfaces.
|
|
428
|
+
*/
|
|
429
|
+
function shouldHideHeartbeatChatOutput(runId, sourceRunId) {
|
|
430
|
+
if (!resolveHeartbeatContext(runId, sourceRunId)?.isHeartbeat) return false;
|
|
431
|
+
try {
|
|
432
|
+
return !resolveHeartbeatVisibility({
|
|
433
|
+
cfg: loadConfig(),
|
|
434
|
+
channel: "webchat"
|
|
435
|
+
}).showOk;
|
|
436
|
+
} catch {
|
|
437
|
+
return true;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
function createChatRunRegistry() {
|
|
441
|
+
const chatRunSessions = /* @__PURE__ */ new Map();
|
|
442
|
+
const add = (sessionId, entry) => {
|
|
443
|
+
const queue = chatRunSessions.get(sessionId);
|
|
444
|
+
if (queue) queue.push(entry);
|
|
445
|
+
else chatRunSessions.set(sessionId, [entry]);
|
|
446
|
+
};
|
|
447
|
+
const peek = (sessionId) => chatRunSessions.get(sessionId)?.[0];
|
|
448
|
+
const shift = (sessionId) => {
|
|
449
|
+
const queue = chatRunSessions.get(sessionId);
|
|
450
|
+
if (!queue || queue.length === 0) return;
|
|
451
|
+
const entry = queue.shift();
|
|
452
|
+
if (!queue.length) chatRunSessions.delete(sessionId);
|
|
453
|
+
return entry;
|
|
454
|
+
};
|
|
455
|
+
const remove = (sessionId, clientRunId, sessionKey) => {
|
|
456
|
+
const queue = chatRunSessions.get(sessionId);
|
|
457
|
+
if (!queue || queue.length === 0) return;
|
|
458
|
+
const idx = queue.findIndex((entry) => entry.clientRunId === clientRunId && (sessionKey ? entry.sessionKey === sessionKey : true));
|
|
459
|
+
if (idx < 0) return;
|
|
460
|
+
const [entry] = queue.splice(idx, 1);
|
|
461
|
+
if (!queue.length) chatRunSessions.delete(sessionId);
|
|
462
|
+
return entry;
|
|
463
|
+
};
|
|
464
|
+
const clear = () => {
|
|
465
|
+
chatRunSessions.clear();
|
|
466
|
+
};
|
|
467
|
+
return {
|
|
468
|
+
add,
|
|
469
|
+
peek,
|
|
470
|
+
shift,
|
|
471
|
+
remove,
|
|
472
|
+
clear
|
|
473
|
+
};
|
|
474
|
+
}
|
|
475
|
+
function createChatRunState() {
|
|
476
|
+
const registry = createChatRunRegistry();
|
|
477
|
+
const buffers = /* @__PURE__ */ new Map();
|
|
478
|
+
const deltaSentAt = /* @__PURE__ */ new Map();
|
|
479
|
+
const pendingDeltaText = /* @__PURE__ */ new Map();
|
|
480
|
+
const abortedRuns = /* @__PURE__ */ new Map();
|
|
481
|
+
const clear = () => {
|
|
482
|
+
registry.clear();
|
|
483
|
+
buffers.clear();
|
|
484
|
+
deltaSentAt.clear();
|
|
485
|
+
pendingDeltaText.clear();
|
|
486
|
+
abortedRuns.clear();
|
|
487
|
+
};
|
|
488
|
+
return {
|
|
489
|
+
registry,
|
|
490
|
+
buffers,
|
|
491
|
+
deltaSentAt,
|
|
492
|
+
pendingDeltaText,
|
|
493
|
+
abortedRuns,
|
|
494
|
+
clear
|
|
495
|
+
};
|
|
496
|
+
}
|
|
497
|
+
const TOOL_EVENT_RECIPIENT_TTL_MS = 600 * 1e3;
|
|
498
|
+
const TOOL_EVENT_RECIPIENT_FINAL_GRACE_MS = 30 * 1e3;
|
|
499
|
+
function createToolEventRecipientRegistry() {
|
|
500
|
+
const recipients = /* @__PURE__ */ new Map();
|
|
501
|
+
const prune = () => {
|
|
502
|
+
if (recipients.size === 0) return;
|
|
503
|
+
const now = Date.now();
|
|
504
|
+
for (const [runId, entry] of recipients) if (now >= (entry.finalizedAt ? entry.finalizedAt + TOOL_EVENT_RECIPIENT_FINAL_GRACE_MS : entry.updatedAt + TOOL_EVENT_RECIPIENT_TTL_MS)) recipients.delete(runId);
|
|
505
|
+
};
|
|
506
|
+
const add = (runId, connId) => {
|
|
507
|
+
if (!runId || !connId) return;
|
|
508
|
+
const now = Date.now();
|
|
509
|
+
const existing = recipients.get(runId);
|
|
510
|
+
if (existing) {
|
|
511
|
+
existing.connIds.add(connId);
|
|
512
|
+
existing.updatedAt = now;
|
|
513
|
+
} else recipients.set(runId, {
|
|
514
|
+
connIds: new Set([connId]),
|
|
515
|
+
updatedAt: now
|
|
516
|
+
});
|
|
517
|
+
prune();
|
|
518
|
+
};
|
|
519
|
+
const get = (runId) => {
|
|
520
|
+
const entry = recipients.get(runId);
|
|
521
|
+
if (!entry) return;
|
|
522
|
+
entry.updatedAt = Date.now();
|
|
523
|
+
prune();
|
|
524
|
+
return entry.connIds;
|
|
525
|
+
};
|
|
526
|
+
const markFinal = (runId) => {
|
|
527
|
+
const entry = recipients.get(runId);
|
|
528
|
+
if (!entry) return;
|
|
529
|
+
entry.finalizedAt = Date.now();
|
|
530
|
+
prune();
|
|
531
|
+
};
|
|
532
|
+
return {
|
|
533
|
+
add,
|
|
534
|
+
get,
|
|
535
|
+
markFinal
|
|
536
|
+
};
|
|
537
|
+
}
|
|
538
|
+
function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSession, agentRunSeq, chatRunState, resolveSessionKeyForRun, clearAgentRunContext, toolEventRecipients }) {
|
|
539
|
+
const emitChatDelta = (sessionKey, clientRunId, sourceRunId, seq, text) => {
|
|
540
|
+
if (isSilentReplyText(text, SILENT_REPLY_TOKEN)) return;
|
|
541
|
+
const prev = chatRunState.buffers.get(clientRunId) ?? "";
|
|
542
|
+
chatRunState.buffers.set(clientRunId, prev + text);
|
|
543
|
+
if (shouldHideHeartbeatChatOutput(clientRunId, sourceRunId)) return;
|
|
544
|
+
const now = Date.now();
|
|
545
|
+
if (now - (chatRunState.deltaSentAt.get(clientRunId) ?? 0) < 150) {
|
|
546
|
+
chatRunState.pendingDeltaText.set(clientRunId, (chatRunState.pendingDeltaText.get(clientRunId) ?? "") + text);
|
|
547
|
+
return;
|
|
548
|
+
}
|
|
549
|
+
const buffered = chatRunState.pendingDeltaText.get(clientRunId) ?? "";
|
|
550
|
+
chatRunState.pendingDeltaText.delete(clientRunId);
|
|
551
|
+
const fullText = buffered + text;
|
|
552
|
+
chatRunState.deltaSentAt.set(clientRunId, now);
|
|
553
|
+
const payload = {
|
|
554
|
+
runId: clientRunId,
|
|
555
|
+
sessionKey,
|
|
556
|
+
seq,
|
|
557
|
+
state: "delta",
|
|
558
|
+
...resolveHeartbeatContext(clientRunId, sourceRunId)?.isHeartbeat ? { isHeartbeat: true } : {},
|
|
559
|
+
message: {
|
|
560
|
+
role: "assistant",
|
|
561
|
+
content: [{
|
|
562
|
+
type: "text",
|
|
563
|
+
text: fullText
|
|
564
|
+
}],
|
|
565
|
+
timestamp: now
|
|
566
|
+
}
|
|
567
|
+
};
|
|
568
|
+
broadcast("chat", payload, { dropIfSlow: true });
|
|
569
|
+
nodeSendToSession(sessionKey, "chat", payload);
|
|
570
|
+
};
|
|
571
|
+
const emitChatFinal = (sessionKey, clientRunId, sourceRunId, seq, jobState, error) => {
|
|
572
|
+
const remainingDelta = chatRunState.pendingDeltaText.get(clientRunId);
|
|
573
|
+
if (remainingDelta && !shouldHideHeartbeatChatOutput(clientRunId, sourceRunId)) {
|
|
574
|
+
const flushPayload = {
|
|
575
|
+
runId: clientRunId,
|
|
576
|
+
sessionKey,
|
|
577
|
+
seq,
|
|
578
|
+
state: "delta",
|
|
579
|
+
...resolveHeartbeatContext(clientRunId, sourceRunId)?.isHeartbeat ? { isHeartbeat: true } : {},
|
|
580
|
+
message: {
|
|
581
|
+
role: "assistant",
|
|
582
|
+
content: [{
|
|
583
|
+
type: "text",
|
|
584
|
+
text: remainingDelta
|
|
585
|
+
}],
|
|
586
|
+
timestamp: Date.now()
|
|
587
|
+
}
|
|
588
|
+
};
|
|
589
|
+
broadcast("chat", flushPayload);
|
|
590
|
+
nodeSendToSession(sessionKey, "chat", flushPayload);
|
|
591
|
+
}
|
|
592
|
+
chatRunState.pendingDeltaText.delete(clientRunId);
|
|
593
|
+
const bufferedText = chatRunState.buffers.get(clientRunId)?.trim() ?? "";
|
|
594
|
+
const heartbeatCtx = resolveHeartbeatContext(clientRunId, sourceRunId);
|
|
595
|
+
const isHeartbeatRun = !!heartbeatCtx?.isHeartbeat;
|
|
596
|
+
const heartbeatHidden = isHeartbeatRun && shouldHideHeartbeatChatOutput(clientRunId, sourceRunId);
|
|
597
|
+
const filterResult = isHeartbeatRun && !heartbeatHidden ? {
|
|
598
|
+
action: "deliver",
|
|
599
|
+
output: bufferedText,
|
|
600
|
+
reason: "deliver"
|
|
601
|
+
} : classifyOutboundMessage(bufferedText, {
|
|
602
|
+
isHeartbeat: heartbeatHidden,
|
|
603
|
+
heartbeatAckMaxChars: resolveHeartbeatAckMaxChars()
|
|
604
|
+
});
|
|
605
|
+
const text = filterResult.output.trim();
|
|
606
|
+
const shouldSuppressSilent = filterResult.action === "drop";
|
|
607
|
+
chatRunState.buffers.delete(clientRunId);
|
|
608
|
+
chatRunState.deltaSentAt.delete(clientRunId);
|
|
609
|
+
if (jobState === "done") {
|
|
610
|
+
const payload = {
|
|
611
|
+
runId: clientRunId,
|
|
612
|
+
sessionKey,
|
|
613
|
+
seq,
|
|
614
|
+
state: "final",
|
|
615
|
+
activeSubagentCount: countActiveRunsForSession(sessionKey),
|
|
616
|
+
...heartbeatCtx?.isHeartbeat ? { isHeartbeat: true } : {},
|
|
617
|
+
message: text && !shouldSuppressSilent ? {
|
|
618
|
+
role: "assistant",
|
|
619
|
+
content: [{
|
|
620
|
+
type: "text",
|
|
621
|
+
text
|
|
622
|
+
}],
|
|
623
|
+
timestamp: Date.now()
|
|
624
|
+
} : void 0
|
|
625
|
+
};
|
|
626
|
+
broadcast("chat", payload);
|
|
627
|
+
nodeSendToSession(sessionKey, "chat", payload);
|
|
628
|
+
return;
|
|
629
|
+
}
|
|
630
|
+
const payload = {
|
|
631
|
+
runId: clientRunId,
|
|
632
|
+
sessionKey,
|
|
633
|
+
seq,
|
|
634
|
+
state: "error",
|
|
635
|
+
errorMessage: error ? formatForLog(error) : void 0,
|
|
636
|
+
...heartbeatCtx?.isHeartbeat ? { isHeartbeat: true } : {}
|
|
637
|
+
};
|
|
638
|
+
broadcast("chat", payload);
|
|
639
|
+
nodeSendToSession(sessionKey, "chat", payload);
|
|
640
|
+
};
|
|
641
|
+
const resolveToolVerboseLevel = (runId, sessionKey) => {
|
|
642
|
+
const runVerbose = normalizeVerboseLevel(getAgentRunContext(runId)?.verboseLevel);
|
|
643
|
+
if (runVerbose) return runVerbose;
|
|
644
|
+
if (!sessionKey) return "off";
|
|
645
|
+
try {
|
|
646
|
+
const { cfg, entry } = loadSessionEntry(sessionKey);
|
|
647
|
+
const sessionVerbose = normalizeVerboseLevel(entry?.verboseLevel);
|
|
648
|
+
if (sessionVerbose) return sessionVerbose;
|
|
649
|
+
return normalizeVerboseLevel(cfg.agents?.defaults?.verboseDefault) ?? "off";
|
|
650
|
+
} catch {
|
|
651
|
+
return "off";
|
|
652
|
+
}
|
|
653
|
+
};
|
|
654
|
+
return (evt) => {
|
|
655
|
+
const chatLink = chatRunState.registry.peek(evt.runId);
|
|
656
|
+
const eventSessionKey = typeof evt.sessionKey === "string" && evt.sessionKey.trim() ? evt.sessionKey : void 0;
|
|
657
|
+
const sessionKey = chatLink?.sessionKey ?? eventSessionKey ?? resolveSessionKeyForRun(evt.runId);
|
|
658
|
+
if (sessionKey?.startsWith("temp:")) return;
|
|
659
|
+
const clientRunId = chatLink?.clientRunId ?? evt.runId;
|
|
660
|
+
const eventRunId = chatLink?.clientRunId ?? evt.runId;
|
|
661
|
+
const eventForClients = chatLink ? {
|
|
662
|
+
...evt,
|
|
663
|
+
runId: eventRunId
|
|
664
|
+
} : evt;
|
|
665
|
+
const isAborted = chatRunState.abortedRuns.has(clientRunId) || chatRunState.abortedRuns.has(evt.runId);
|
|
666
|
+
const heartbeatAgentCtx = resolveHeartbeatContext(clientRunId, evt.runId);
|
|
667
|
+
const agentPayload = {
|
|
668
|
+
...eventForClients,
|
|
669
|
+
...sessionKey ? { sessionKey } : {},
|
|
670
|
+
...heartbeatAgentCtx?.isHeartbeat ? { isHeartbeat: true } : {}
|
|
671
|
+
};
|
|
672
|
+
const last = agentRunSeq.get(evt.runId) ?? 0;
|
|
673
|
+
const isToolEvent = evt.stream === "tool";
|
|
674
|
+
const toolVerbose = isToolEvent ? resolveToolVerboseLevel(evt.runId, sessionKey) : "off";
|
|
675
|
+
const toolPayload = isToolEvent && toolVerbose !== "full" ? (() => {
|
|
676
|
+
const data = evt.data ? { ...evt.data } : {};
|
|
677
|
+
delete data.result;
|
|
678
|
+
delete data.partialResult;
|
|
679
|
+
return sessionKey ? {
|
|
680
|
+
...eventForClients,
|
|
681
|
+
sessionKey,
|
|
682
|
+
data
|
|
683
|
+
} : {
|
|
684
|
+
...eventForClients,
|
|
685
|
+
data
|
|
686
|
+
};
|
|
687
|
+
})() : agentPayload;
|
|
688
|
+
if (evt.seq !== last + 1) broadcast("agent", {
|
|
689
|
+
runId: eventRunId,
|
|
690
|
+
stream: "error",
|
|
691
|
+
ts: Date.now(),
|
|
692
|
+
sessionKey,
|
|
693
|
+
...heartbeatAgentCtx?.isHeartbeat ? { isHeartbeat: true } : {},
|
|
694
|
+
data: {
|
|
695
|
+
reason: "seq gap",
|
|
696
|
+
expected: last + 1,
|
|
697
|
+
received: evt.seq
|
|
698
|
+
}
|
|
699
|
+
});
|
|
700
|
+
agentRunSeq.set(evt.runId, evt.seq);
|
|
701
|
+
if (isToolEvent) {
|
|
702
|
+
const recipients = toolEventRecipients.get(evt.runId);
|
|
703
|
+
if (recipients && recipients.size > 0) broadcastToConnIds("agent", toolPayload, recipients);
|
|
704
|
+
} else broadcast("agent", agentPayload);
|
|
705
|
+
const lifecyclePhase = evt.stream === "lifecycle" && typeof evt.data?.phase === "string" ? evt.data.phase : null;
|
|
706
|
+
if (lifecyclePhase === "start" && sessionKey && !isAborted) {
|
|
707
|
+
if (!resolveHeartbeatContext(clientRunId, evt.runId)?.isHeartbeat) broadcast("chat", {
|
|
708
|
+
runId: clientRunId,
|
|
709
|
+
sessionKey,
|
|
710
|
+
seq: evt.seq,
|
|
711
|
+
state: "thinking"
|
|
712
|
+
});
|
|
713
|
+
}
|
|
714
|
+
if (lifecyclePhase && sessionKey && sessionKey.includes(":subagent:")) {
|
|
715
|
+
if (lifecyclePhase === "start") broadcast("subagent", {
|
|
716
|
+
phase: "started",
|
|
717
|
+
sessionKey,
|
|
718
|
+
runId: clientRunId
|
|
719
|
+
});
|
|
720
|
+
else if (lifecyclePhase === "end" || lifecyclePhase === "error") broadcast("subagent", {
|
|
721
|
+
phase: "completed",
|
|
722
|
+
sessionKey,
|
|
723
|
+
runId: clientRunId
|
|
724
|
+
});
|
|
725
|
+
}
|
|
726
|
+
if (sessionKey) {
|
|
727
|
+
if (!isToolEvent || toolVerbose !== "off") nodeSendToSession(sessionKey, "agent", isToolEvent ? toolPayload : agentPayload);
|
|
728
|
+
if (!isAborted && evt.stream === "assistant" && typeof evt.data?.text === "string") {
|
|
729
|
+
const deltaText = typeof evt.data?.delta === "string" && evt.data.delta ? evt.data.delta : evt.data.text;
|
|
730
|
+
emitChatDelta(sessionKey, clientRunId, evt.runId, evt.seq, deltaText);
|
|
731
|
+
} else if (!isAborted && (lifecyclePhase === "end" || lifecyclePhase === "error")) if (chatLink) {
|
|
732
|
+
const finished = chatRunState.registry.shift(evt.runId);
|
|
733
|
+
if (!finished) {
|
|
734
|
+
clearAgentRunContext(evt.runId);
|
|
735
|
+
return;
|
|
736
|
+
}
|
|
737
|
+
emitChatFinal(finished.sessionKey, finished.clientRunId, evt.runId, evt.seq, lifecyclePhase === "error" ? "error" : "done", evt.data?.error);
|
|
738
|
+
} else emitChatFinal(sessionKey, eventRunId, evt.runId, evt.seq, lifecyclePhase === "error" ? "error" : "done", evt.data?.error);
|
|
739
|
+
else if (isAborted && (lifecyclePhase === "end" || lifecyclePhase === "error")) {
|
|
740
|
+
chatRunState.abortedRuns.delete(clientRunId);
|
|
741
|
+
chatRunState.abortedRuns.delete(evt.runId);
|
|
742
|
+
chatRunState.buffers.delete(clientRunId);
|
|
743
|
+
chatRunState.deltaSentAt.delete(clientRunId);
|
|
744
|
+
if (chatLink) chatRunState.registry.remove(evt.runId, clientRunId, sessionKey);
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
if (lifecyclePhase === "end" || lifecyclePhase === "error") {
|
|
748
|
+
toolEventRecipients.markFinal(evt.runId);
|
|
749
|
+
clearAgentRunContext(evt.runId);
|
|
750
|
+
agentRunSeq.delete(evt.runId);
|
|
751
|
+
agentRunSeq.delete(clientRunId);
|
|
752
|
+
}
|
|
753
|
+
};
|
|
754
|
+
}
|
|
755
|
+
|
|
406
756
|
//#endregion
|
|
407
757
|
//#region src/cron/run-log.ts
|
|
408
758
|
function resolveCronRunLogPath(params) {
|
|
@@ -496,12 +846,14 @@ function resolveChatRunExpiresAtMs(params) {
|
|
|
496
846
|
}
|
|
497
847
|
function broadcastChatAborted(ops, params) {
|
|
498
848
|
const { runId, sessionKey, stopReason, partialText } = params;
|
|
849
|
+
const heartbeatCtx = resolveHeartbeatContext(runId);
|
|
499
850
|
const payload = {
|
|
500
851
|
runId,
|
|
501
852
|
sessionKey,
|
|
502
853
|
seq: (ops.agentRunSeq.get(runId) ?? 0) + 1,
|
|
503
854
|
state: "aborted",
|
|
504
855
|
stopReason,
|
|
856
|
+
...heartbeatCtx?.isHeartbeat ? { isHeartbeat: true } : {},
|
|
505
857
|
message: partialText ? {
|
|
506
858
|
role: "assistant",
|
|
507
859
|
content: [{
|
|
@@ -4110,11 +4462,13 @@ function nextChatSeq(context, runId) {
|
|
|
4110
4462
|
}
|
|
4111
4463
|
function broadcastChatFinal(params) {
|
|
4112
4464
|
const seq = nextChatSeq({ agentRunSeq: params.context.agentRunSeq }, params.runId);
|
|
4465
|
+
const heartbeatCtx = resolveHeartbeatContext(params.runId);
|
|
4113
4466
|
const payload = {
|
|
4114
4467
|
runId: params.runId,
|
|
4115
4468
|
sessionKey: params.sessionKey,
|
|
4116
4469
|
seq,
|
|
4117
4470
|
state: "final",
|
|
4471
|
+
...heartbeatCtx?.isHeartbeat ? { isHeartbeat: true } : {},
|
|
4118
4472
|
message: params.message
|
|
4119
4473
|
};
|
|
4120
4474
|
params.context.broadcast("chat", payload);
|
|
@@ -4123,11 +4477,13 @@ function broadcastChatFinal(params) {
|
|
|
4123
4477
|
}
|
|
4124
4478
|
function broadcastChatError(params) {
|
|
4125
4479
|
const seq = nextChatSeq({ agentRunSeq: params.context.agentRunSeq }, params.runId);
|
|
4480
|
+
const heartbeatCtx = resolveHeartbeatContext(params.runId);
|
|
4126
4481
|
const payload = {
|
|
4127
4482
|
runId: params.runId,
|
|
4128
4483
|
sessionKey: params.sessionKey,
|
|
4129
4484
|
seq,
|
|
4130
4485
|
state: "error",
|
|
4486
|
+
...heartbeatCtx?.isHeartbeat ? { isHeartbeat: true } : {},
|
|
4131
4487
|
errorMessage: params.errorMessage
|
|
4132
4488
|
};
|
|
4133
4489
|
params.context.broadcast("chat", payload);
|
|
@@ -7491,7 +7847,7 @@ const nodeHandlers = {
|
|
|
7491
7847
|
const p = params;
|
|
7492
7848
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
7493
7849
|
await respondUnavailableOnThrow(respond, async () => {
|
|
7494
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
7850
|
+
const { handleNodeEvent } = await import("./server-node-events-BQEpHt9X.js");
|
|
7495
7851
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
7496
7852
|
await handleNodeEvent({
|
|
7497
7853
|
deps: context.deps,
|
|
@@ -9601,4 +9957,4 @@ async function handleGatewayRequest(opts) {
|
|
|
9601
9957
|
}
|
|
9602
9958
|
|
|
9603
9959
|
//#endregion
|
|
9604
|
-
export {
|
|
9960
|
+
export { createAgentEventHandler as C, startGatewayConfigReloader as E, resolveCronRunLogPath as S, createToolEventRecipientRegistry as T, MAX_PAYLOAD_BYTES as _, loadFavoritesSet as a, abortChatRunById as b, resolveAssistantIdentity as c, formatError as d, loadVoiceWakeConfig as f, MAX_BUFFERED_BYTES as g, HEALTH_REFRESH_INTERVAL_MS as h, safeParseJson as i, listSystemPresence as l, DEDUPE_TTL_MS as m, handleGatewayRequest as n, reconcileFavorites as o, DEDUPE_MAX as p, broadcastPresenceSnapshot as r, DEFAULT_ASSISTANT_IDENTITY as s, coreGatewayHandlers as t, upsertPresence as u, TICK_INTERVAL_MS as v, createChatRunState as w, appendCronRunLog as x, getHandshakeTimeoutMs as y };
|