@symerian/symi 2.8.6 → 2.8.7
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/{accounts-BRw8yhIW.js → accounts-D1r2dq1t.js} +21 -21
- package/dist/{accounts-3dCrO3oZ.js → accounts-dRUMQQrB.js} +1 -1
- package/dist/{accounts-BuZxOb3B.js → accounts-wSphH5gv.js} +1 -1
- package/dist/{active-listener-Br2FcRv7.js → active-listener-C3pfJhdC.js} +1 -1
- package/dist/{agent-scope-CpEJ0B88.js → agent-scope-D68_xfTL.js} +3 -3
- package/dist/{agents-DWuqUDaG.js → agents-CKqrLbBd.js} +4 -4
- package/dist/{agents.config-DWsjuONZ.js → agents.config-D17kikNs.js} +1 -1
- package/dist/{agents.config-B8euVOOW.js → agents.config-DnEa79_a.js} +1 -1
- package/dist/{audio-preflight-D0nJ1LEt.js → audio-preflight-DFLcuVNn.js} +29 -29
- package/dist/{audio-preflight-CKbpf-IL.js → audio-preflight-DJXj9QP9.js} +5 -5
- package/dist/{audio-preflight-BQaUmV6k.js → audio-preflight-DfALITTK.js} +5 -5
- package/dist/{audio-preflight-D_g9Duqw.js → audio-preflight-lr-WPpc9.js} +4 -4
- package/dist/{audit-DCOp_J5K.js → audit-DVUHZrf4.js} +2 -2
- package/dist/{audit-BIeVybsA.js → audit-DgAM_dWL.js} +2 -2
- package/dist/{auth-choice-kpk3L0TR.js → auth-choice-KEir_3i_.js} +1 -1
- package/dist/{auth-choice-hKVjPWaU.js → auth-choice-obR6mZqe.js} +1 -1
- package/dist/{auth-profiles-C2vj6htZ.js → auth-profiles-aJfgABnE.js} +17 -17
- package/dist/{banner-C1RFNTRm.js → banner-BEYICVDD.js} +1 -1
- package/dist/{bindings-BsHoBLIE.js → bindings-Bat2RnAR.js} +2 -2
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +54 -54
- package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
- package/dist/bundled/command-logger/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +54 -54
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-activity-D-kw83R0.js → channel-activity-Cm1OJRbv.js} +1 -1
- package/dist/{channel-options-Vjegw-bn.js → channel-options-D9g8Ji5_.js} +1 -1
- package/dist/{channel-options-Pit7RtN-.js → channel-options-H9pR0AWZ.js} +1 -1
- package/dist/{channel-web-BVm_UWyj.js → channel-web-B9-EHnds.js} +3 -3
- package/dist/{channels-cli-Bh07AMec.js → channels-cli-C_YU5GaO.js} +11 -11
- package/dist/{channels-cli-CXws5tG8.js → channels-cli-mCf_KwBC.js} +12 -12
- package/dist/{chrome-C08Z0XAa.js → chrome-B0yKTuIS.js} +21 -21
- package/dist/{chrome-BUT--ob3.js → chrome-B14NNyfm.js} +7 -7
- package/dist/{chunk-BHW8Yu5A.js → chunk-B9x_1qSr.js} +1 -1
- package/dist/{cli-D5qinxg-.js → cli-D8xchhQH.js} +8 -8
- package/dist/{cli-TABOKnEJ.js → cli-WAg9Zydm.js} +9 -9
- package/dist/{command-registry-DEe4juCf.js → command-registry-nSYGDoue.js} +9 -9
- package/dist/{commands-registry-CfoYlMQB.js → commands-registry-CeBC8Vy2.js} +4 -4
- package/dist/{completion-cli-W3fyiL94.js → completion-cli-BzV4_BVf.js} +1 -1
- package/dist/{completion-cli-D0j-46vF.js → completion-cli-CR5v_bKh.js} +2 -2
- package/dist/{config-BkZ9HOKT.js → config-Dp67YMkg.js} +12 -12
- package/dist/{config-cli-DLBtnr_W.js → config-cli-DFXYnUAB.js} +1 -1
- package/dist/{config-cli-CajteLy8.js → config-cli-wcQ2PQ2b.js} +1 -1
- package/dist/{config-guard-DjlYIjka.js → config-guard-CJ4iAPK5.js} +1 -1
- package/dist/{config-guard-BJE6xSY9.js → config-guard-DsOhmFl6.js} +2 -2
- package/dist/{configure-B79KjBCS.js → configure-CCux4ZEl.js} +3 -3
- package/dist/{configure-2PdZnKO6.js → configure-DSXgdzrp.js} +3 -3
- package/dist/control-ui/js/app.js +13 -60
- package/dist/control-ui/js/render.js +4 -72
- package/dist/{deliver-CiL9mQXH.js → deliver-BLt_liXS.js} +2 -2
- package/dist/{deliver-CLZGlRZt.js → deliver-DPWY9adX.js} +20 -20
- package/dist/{deliver-B36OzmeP.js → deliver-DrC7tG6s.js} +1 -1
- package/dist/{deliver-CXpvGXqJ.js → deliver-lG9ITE8w.js} +2 -2
- package/dist/{diagnostic-CQiU0O8b.js → diagnostic-DIKKFHpP.js} +1 -1
- package/dist/{doctor-completion-DOnUbTdS.js → doctor-completion-D-deyczv.js} +1 -1
- package/dist/{doctor-completion-mlj3aq0W.js → doctor-completion-jev9bFib.js} +1 -1
- package/dist/{doctor-config-flow-DFk-NaP5.js → doctor-config-flow-C81j0-sE.js} +1 -1
- package/dist/{doctor-config-flow-BRB_O0jG.js → doctor-config-flow-CN8seKLA.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/{env-BDXYbTKj.js → env-xmBFQPBP.js} +1 -1
- package/dist/extensionAPI.js +6 -6
- package/dist/{frontmatter-CTR5f_Ez.js → frontmatter-CV0YkjoY.js} +2 -2
- package/dist/{gateway-cli-D7jQypRh.js → gateway-cli-BJvattWu.js} +19 -19
- package/dist/{gateway-cli-nHVe7vxD.js → gateway-cli-_BIiMqiD.js} +18 -18
- package/dist/{gemini-auth-BefM10YB.js → gemini-auth-JP7SzVpY.js} +1 -1
- package/dist/{github-copilot-token-cCYzSU9h.js → github-copilot-token-B8B2pmph.js} +7 -7
- package/dist/{glass-ui-ws-BgVPCNjg.js → glass-ui-ws-BHVpfzRg.js} +16 -16
- package/dist/{glass-ui-ws-CMMnvVpl.js → glass-ui-ws-DRWpg6Qb.js} +15 -15
- package/dist/{health-DvkoG4Dw.js → health-7ZvWXkvm.js} +3 -3
- package/dist/{health-DKxSHkOQ.js → health-D1L94KKE.js} +3 -3
- package/dist/{hooks-cli-DV1GeJpO.js → hooks-cli-B-JbgOoq.js} +9 -9
- package/dist/{hooks-cli-DsWn_3um.js → hooks-cli-BjYy0UUP.js} +10 -10
- package/dist/{image-BHhzdmbq.js → image-CKeN0xJL.js} +1 -1
- package/dist/{image-BnO8X_hj.js → image-DCB54N2j.js} +4 -4
- package/dist/{image-CJ_QZqzR.js → image-DXco5IYt.js} +1 -1
- package/dist/{image-C2IvljWU.js → image-D_qN_IxA.js} +1 -1
- package/dist/{image-ops-C7CauEK8.js → image-ops-M5agStZn.js} +16 -16
- package/dist/index.js +14 -14
- package/dist/{ir-JAy_3A3B.js → ir-Z9axTYHx.js} +4 -4
- package/dist/llm-slug-generator.js +54 -54
- package/dist/{local-roots-Se92wAN5.js → local-roots-Bh5xx9IO.js} +5 -5
- package/dist/{login-CksRbu5D.js → login-Z-O7e3RD.js} +7 -7
- package/dist/{login-qr-COIr6FGZ.js → login-qr-Cqe-9-jf.js} +12 -12
- package/dist/{manager-DXyJKTj7.js → manager-ayAJucg2.js} +22 -22
- package/dist/{manifest-registry-CBCGTsIb.js → manifest-registry-QT5_77XA.js} +19 -19
- package/dist/{markdown-tables-Dnj2LQUc.js → markdown-tables-DuRhvVpP.js} +1 -1
- package/dist/{message-channel-OlFBYAw8.js → message-channel-DwDSKGn4.js} +1 -1
- package/dist/{models-BohMMqeG.js → models-PeKQE2ct.js} +2 -2
- package/dist/{models-cli-DabormMV.js → models-cli-ChoXOtnk.js} +9 -9
- package/dist/{models-cli-CJywE4w7.js → models-cli-lSGGkLeL.js} +11 -11
- package/dist/{onboard-ygIcreY9.js → onboard-9PT0Wv1A.js} +2 -2
- package/dist/{onboard-CyuUucGA.js → onboard-B8q4Vpz1.js} +2 -2
- package/dist/{onboard-channels-DU6do-N5.js → onboard-channels-CN0qvsHO.js} +1 -1
- package/dist/{onboard-channels-DaY1NwXd.js → onboard-channels-Cg4bD8ps.js} +1 -1
- package/dist/{onboarding-Bqz1NgoR.js → onboarding-BAn2oNRB.js} +4 -4
- package/dist/{onboarding-BfeyfvK_.js → onboarding-hJaI3u5t.js} +4 -4
- package/dist/{onboarding.finalize-CG0xwhEw.js → onboarding.finalize-BPZZr8Cm.js} +13 -13
- package/dist/{onboarding.finalize-DzTo4LEo.js → onboarding.finalize-BTrhVcW5.js} +15 -15
- package/dist/{onboarding.gateway-config-7LGxdDrq.js → onboarding.gateway-config-TM8ERKyn.js} +1 -1
- package/dist/{onboarding.gateway-config-DJJRuyZ_.js → onboarding.gateway-config-vGTQDqA6.js} +1 -1
- package/dist/{outbound-attachment-BzwVH4Pn.js → outbound-attachment-BOy-OY4-.js} +2 -2
- package/dist/{outbound-CX-uuDet.js → outbound-xWV2AYDD.js} +7 -7
- package/dist/paths-CYmyCDsE.js +212 -0
- package/dist/{paths-CbQV9WEg.js → paths-DEuVuViW.js} +1 -1
- package/dist/{pi-auth-json-RXOlh8ar.js → pi-auth-json-Q3FwtPeJ.js} +1 -1
- package/dist/{pi-embedded-BaNpG0Aq.js → pi-embedded-F3kbSP7M.js} +20 -16
- package/dist/{pi-embedded-helpers-DcN8GHTt.js → pi-embedded-helpers-CFTCaByg.js} +73 -73
- package/dist/{pi-embedded-helpers-BET359cH.js → pi-embedded-helpers-D8YgtMdl.js} +4 -4
- package/dist/{pi-embedded-helpers-jo_kKs-Z.js → pi-embedded-helpers-DSscUmkR.js} +1 -1
- package/dist/{pi-embedded-helpers-DiXXYmgo.js → pi-embedded-helpers-DpOccVre.js} +1 -1
- package/dist/{pi-tools.policy-p7LLu64F.js → pi-tools.policy-BpN-v9bT.js} +1 -1
- package/dist/{pi-tools.policy-CGVKAOoE.js → pi-tools.policy-DOVQ8dDx.js} +1 -1
- package/dist/{plugin-registry-DG2IOSY3.js → plugin-registry-BVoIgv-5.js} +1 -1
- package/dist/{plugin-registry-DTm-oyEP.js → plugin-registry-DFPTE_HO.js} +1 -1
- package/dist/plugin-sdk/{channel-web-D-ct3FR3.js → channel-web-BNGOwMat.js} +1 -1
- package/dist/plugin-sdk/index.js +2 -2
- package/dist/plugin-sdk/{reply-Gpdxnjey.js → reply-DcNZU8lj.js} +6 -2
- package/dist/plugin-sdk/{web-BFa_GJSK.js → web-CeR-wf-N.js} +2 -2
- package/dist/{plugins-BzmbgY7s.js → plugins-Bkr5ZdYs.js} +9 -9
- package/dist/{plugins-cli-BrHhfpbX.js → plugins-cli-BwM4f91E.js} +10 -10
- package/dist/{plugins-cli-BJpemLCS.js → plugins-cli-uoGDkhOc.js} +9 -9
- package/dist/{program-CYzFuO3w.js → program-DhBZLOgJ.js} +16 -16
- package/dist/{program-context-G2iHoB5D.js → program-context-BJEZcvA2.js} +20 -20
- package/dist/{prompt-select-styled-lVyrkSPI.js → prompt-select-styled-CJjLDUCj.js} +7 -7
- package/dist/{prompt-select-styled-P0KS75Rt.js → prompt-select-styled-CMBgFELR.js} +7 -7
- package/dist/{provider-auth-helpers-CoYjxsb2.js → provider-auth-helpers-DeWQHkRc.js} +1 -1
- package/dist/{provider-auth-helpers-Cygsm5_L.js → provider-auth-helpers-S2j3hcBK.js} +1 -1
- package/dist/{push-apns-CHM_4e6x.js → push-apns-CJ2CpgRB.js} +1 -1
- package/dist/{push-apns-BMfcGm-A.js → push-apns-YD8SuIy0.js} +1 -1
- package/dist/{pw-ai-B476LzSK.js → pw-ai-DHoYzirP.js} +11 -11
- package/dist/{pw-ai-DE8wmtet.js → pw-ai-DTmHAKPA.js} +1 -1
- package/dist/{qmd-manager-lBS9mT9w.js → qmd-manager-8-Z3Cdpt.js} +7 -7
- package/dist/{register.agent-BTmY2MoW.js → register.agent-B2u3ouKf.js} +14 -14
- package/dist/{register.agent-efba5ajU.js → register.agent-gMPMyFRj.js} +12 -12
- package/dist/{register.configure-DHSfWAqs.js → register.configure-C6mVcNay.js} +14 -14
- package/dist/{register.configure-EQOE0vHS.js → register.configure-DncWEkhU.js} +13 -13
- package/dist/{register.maintenance-CzcgKkH3.js → register.maintenance-Cz1IOILv.js} +15 -15
- package/dist/{register.maintenance-CsczzIEq.js → register.maintenance-D5oV0fjR.js} +17 -17
- package/dist/{register.message-Bc3A_dfj.js → register.message-B6hxm3rn.js} +9 -9
- package/dist/{register.message-u6gwfQPX.js → register.message-QejTHJGQ.js} +10 -10
- package/dist/{register.onboard-CtKNq5I_.js → register.onboard-CA06T3Jp.js} +12 -12
- package/dist/{register.onboard-yDsskHey.js → register.onboard-kJuHrfio.js} +11 -11
- package/dist/{register.setup-BPeB8JTw.js → register.setup-BD8QKVsT.js} +11 -11
- package/dist/{register.setup-BJqk3N2q.js → register.setup-C11edfdp.js} +12 -12
- package/dist/{register.status-health-sessions-CU6Uv3iO.js → register.status-health-sessions-257I77oA.js} +13 -13
- package/dist/{register.status-health-sessions-KzzMJ0H1.js → register.status-health-sessions-CrTiF0_d.js} +11 -11
- package/dist/{register.subclis-C_464foT.js → register.subclis-CnOalkYH.js} +12 -12
- package/dist/{registry-DYq1AYOv.js → registry-UkL38jvt.js} +17 -17
- package/dist/{replies-BWgZR_w5.js → replies-CWH084Xr.js} +3 -3
- package/dist/{reply-kWKTXRkY.js → reply-o0IEwJ_P.js} +18 -14
- package/dist/{reply-prefix-CvEIl6_d.js → reply-prefix-ZnX2V-k9.js} +1 -1
- package/dist/{resolve-route-DX7xcMsD.js → resolve-route-gl0ZOOKR.js} +4 -4
- package/dist/{retry-B-y5suGA.js → retry-D25Z8MVS.js} +1 -1
- package/dist/{run-main-I-kj1_yf.js → run-main-BuVFHsuQ.js} +25 -25
- package/dist/{runner-D5nFF9E6.js → runner-C-ygJOAu.js} +22 -22
- package/dist/{runner-BVgCl6yZ.js → runner-COpebDew.js} +1 -1
- package/dist/{runner-BopCEjwB.js → runner-CSdQSvE8.js} +1 -1
- package/dist/{runner-eBF6SlQ6.js → runner-C_BlQ2fG.js} +1 -1
- package/dist/{sandbox-ooxzsj2D.js → sandbox-BOVopTqv.js} +1 -1
- package/dist/{sandbox-Cl2r-bXv.js → sandbox-CDxHBl3I.js} +1 -1
- package/dist/{sandbox-cli-CZSrSTkk.js → sandbox-cli-0eu7BCa8.js} +2 -2
- package/dist/{sandbox-cli-BH45SMwC.js → sandbox-cli-BpfYaZBG.js} +2 -2
- package/dist/{security-cli-CEI0zQJs.js → security-cli-B5s73Le2.js} +4 -4
- package/dist/{security-cli-Bz-Sv5-H.js → security-cli-CzWHkrqD.js} +4 -4
- package/dist/{send-CCmxHtaA.js → send-BJhQtCyM.js} +6 -6
- package/dist/{send-xTfsDEE2.js → send-CF_nzDHe.js} +18 -18
- package/dist/{send-vqwluhp3.js → send-Cf47Nas6.js} +7 -7
- package/dist/{send-B7aHpAco.js → send-DERqzyba.js} +6 -6
- package/dist/{send-Yzy50T1h.js → send-DQoKXmre.js} +10 -10
- package/dist/{server-methods-DuXvSLX-.js → server-methods-D0laPfTZ.js} +10 -10
- package/dist/{server-methods-DQHU-PVR.js → server-methods-D1eF0-Yu.js} +11 -11
- package/dist/{server-node-events-CwAM91fd.js → server-node-events-D3iV_wDf.js} +9 -9
- package/dist/{server-node-events-ecaGjg5E.js → server-node-events-b7X9bVIS.js} +10 -10
- package/dist/{session-BTLA3Rm7.js → session-C1eFu8k4.js} +8 -8
- package/dist/{session-utils-Dwt6eGX6.js → session-utils-BPXkhuNM.js} +1 -1
- package/dist/{sessions-Do060W3W.js → sessions-BPD85pWA.js} +2 -3
- package/dist/{sessions-vYQs1OzE.js → sessions-BeYHj0gr.js} +2 -3
- package/dist/{sessions-DQxygr94.js → sessions-NTd36-CO.js} +2 -2
- package/dist/{skill-commands-D1hG6Ikz.js → skill-commands-CKXkvl80.js} +16 -16
- package/dist/{skills-CXxrn_e2.js → skills-DxmX9HVT.js} +24 -24
- package/dist/{sqlite-BHWvOATS.js → sqlite-JHY-uOmS.js} +16 -16
- package/dist/{status-v8DOdpX6.js → status-Cv3PcsRo.js} +4 -4
- package/dist/{status-DNVKHGLC.js → status-CwrFTb4t.js} +1 -1
- package/dist/{status-CW9LMA2M.js → status-K22ODH_m.js} +1 -1
- package/dist/{status-DsFAg-bK.js → status-eVKjxfUO.js} +5 -5
- package/dist/{store-01F_JM7O.js → store-Ea3zM6xK.js} +6 -6
- package/dist/{subagent-registry-C8UsZ8F0.js → subagent-registry-4XZvxwX0.js} +19 -15
- package/dist/{subsystem-BjyjJF-d.js → subsystem-DN75fnEF.js} +1 -1
- package/dist/{tables-BuM4FKR3.js → tables-Dkg9O8rv.js} +1 -1
- package/dist/{target-errors-BEugWC4F.js → target-errors-Pr77jao5.js} +2 -2
- package/dist/{thinking-BprCy23Z.js → thinking-C9-JAUzD.js} +5 -5
- package/dist/{tokens-W0JzCJJM.js → tokens-CCZl4YHT.js} +1 -1
- package/dist/{tool-images-SqqWIT22.js → tool-images-B1qVCntj.js} +2 -2
- package/dist/{tool-loop-detection-D5mBY7AC.js → tool-loop-detection-C33wf43N.js} +3 -3
- package/dist/{tui-B61kHmM2.js → tui-DfPeXwah.js} +2 -2
- package/dist/{tui-CiGfEtDa.js → tui-LZPdrFmK.js} +2 -2
- package/dist/{tui-cli-CwNXfDnk.js → tui-cli-Bm3TJgXf.js} +4 -4
- package/dist/{tui-cli-DHKMCeGp.js → tui-cli-DFXZ7r1F.js} +4 -4
- package/dist/{unified-runner-BojeuKIk.js → unified-runner-BL7URnpP.js} +235 -231
- package/dist/{update-cli-BwX8SW9m.js → update-cli-Bf-HR0_b.js} +17 -17
- package/dist/{update-cli-DQOw6sqy.js → update-cli-CjtzOlMZ.js} +15 -15
- package/dist/{update-runner-BhXkq5Gw.js → update-runner-CxuU59aU.js} +1 -1
- package/dist/{update-runner-C56OyqSE.js → update-runner-i95oVXRi.js} +1 -1
- package/dist/{web-Dxkxcp7P.js → web-B3QBvAid.js} +58 -58
- package/dist/{web-CGicnDRL.js → web-CTog1mw0.js} +9 -9
- package/dist/{web-f1xT-H2y.js → web-D6aUh_IC.js} +6 -6
- package/dist/{web-NSGlkQEO.js → web-D_WLAogr.js} +9 -9
- package/dist/{whatsapp-actions-CiXMwRR8.js → whatsapp-actions-pddprZ8J.js} +23 -23
- package/dist/{workspace-DscDraUb.js → workspace-DqJ5h-ZB.js} +27 -27
- 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 +6 -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 +6 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +6 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/index.ts +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 +6 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +6 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +6 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +6 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as resolveOAuthDir, c as expandHomePrefix, l as resolveEffectiveHomeDir, n as resolveConfigPath, u as resolveRequiredHomeDir } from "./paths-
|
|
1
|
+
import { a as resolveOAuthDir, c as expandHomePrefix, l as resolveEffectiveHomeDir, n as resolveConfigPath, u as resolveRequiredHomeDir } from "./paths-CYmyCDsE.js";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import
|
|
3
|
+
import fsSync from "node:fs";
|
|
4
4
|
import os from "node:os";
|
|
5
5
|
import { Logger } from "tslog";
|
|
6
6
|
import JSON5 from "json5";
|
|
@@ -12,9 +12,9 @@ function isNodeErrorWithCode(err, code) {
|
|
|
12
12
|
return typeof err === "object" && err !== null && "code" in err && err.code === code;
|
|
13
13
|
}
|
|
14
14
|
function resolvePreferredSymiTmpDir(options = {}) {
|
|
15
|
-
const accessSync = options.accessSync ??
|
|
16
|
-
const lstatSync = options.lstatSync ??
|
|
17
|
-
const mkdirSync = options.mkdirSync ??
|
|
15
|
+
const accessSync = options.accessSync ?? fsSync.accessSync;
|
|
16
|
+
const lstatSync = options.lstatSync ?? fsSync.lstatSync;
|
|
17
|
+
const mkdirSync = options.mkdirSync ?? fsSync.mkdirSync;
|
|
18
18
|
const getuid = options.getuid ?? (() => {
|
|
19
19
|
try {
|
|
20
20
|
return typeof process.getuid === "function" ? process.getuid() : void 0;
|
|
@@ -38,14 +38,14 @@ function resolvePreferredSymiTmpDir(options = {}) {
|
|
|
38
38
|
try {
|
|
39
39
|
const preferred = lstatSync(POSIX_SYMI_TMP_DIR);
|
|
40
40
|
if (!preferred.isDirectory() || preferred.isSymbolicLink()) return fallback();
|
|
41
|
-
accessSync(POSIX_SYMI_TMP_DIR,
|
|
41
|
+
accessSync(POSIX_SYMI_TMP_DIR, fsSync.constants.W_OK | fsSync.constants.X_OK);
|
|
42
42
|
if (!isSecureDirForUser(preferred)) return fallback();
|
|
43
43
|
return POSIX_SYMI_TMP_DIR;
|
|
44
44
|
} catch (err) {
|
|
45
45
|
if (!isNodeErrorWithCode(err, "ENOENT")) return fallback();
|
|
46
46
|
}
|
|
47
47
|
try {
|
|
48
|
-
accessSync("/tmp",
|
|
48
|
+
accessSync("/tmp", fsSync.constants.W_OK | fsSync.constants.X_OK);
|
|
49
49
|
mkdirSync(POSIX_SYMI_TMP_DIR, {
|
|
50
50
|
recursive: true,
|
|
51
51
|
mode: 448
|
|
@@ -68,8 +68,8 @@ function resolvePreferredSymiTmpDir(options = {}) {
|
|
|
68
68
|
function readLoggingConfig() {
|
|
69
69
|
const configPath = resolveConfigPath();
|
|
70
70
|
try {
|
|
71
|
-
if (!
|
|
72
|
-
const raw =
|
|
71
|
+
if (!fsSync.existsSync(configPath)) return;
|
|
72
|
+
const raw = fsSync.readFileSync(configPath, "utf-8");
|
|
73
73
|
const logging = JSON5.parse(raw)?.logging;
|
|
74
74
|
if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
|
|
75
75
|
return logging;
|
|
@@ -172,7 +172,7 @@ function isFileLogLevelEnabled(level) {
|
|
|
172
172
|
return levelToMinLevel(level) <= levelToMinLevel(settings.level);
|
|
173
173
|
}
|
|
174
174
|
function buildLogger(settings) {
|
|
175
|
-
|
|
175
|
+
fsSync.mkdirSync(path.dirname(settings.file), { recursive: true });
|
|
176
176
|
if (isRollingPath(settings.file)) pruneOldRollingLogs(path.dirname(settings.file));
|
|
177
177
|
const logger = new Logger({
|
|
178
178
|
name: "symi",
|
|
@@ -186,7 +186,7 @@ function buildLogger(settings) {
|
|
|
186
186
|
...logObj,
|
|
187
187
|
time
|
|
188
188
|
});
|
|
189
|
-
|
|
189
|
+
fsSync.appendFileSync(settings.file, `${line}\n`, { encoding: "utf8" });
|
|
190
190
|
} catch {}
|
|
191
191
|
});
|
|
192
192
|
for (const transport of externalTransports) attachExternalTransport(logger, transport);
|
|
@@ -238,14 +238,14 @@ function isRollingPath(file) {
|
|
|
238
238
|
}
|
|
239
239
|
function pruneOldRollingLogs(dir) {
|
|
240
240
|
try {
|
|
241
|
-
const entries =
|
|
241
|
+
const entries = fsSync.readdirSync(dir, { withFileTypes: true });
|
|
242
242
|
const cutoff = Date.now() - MAX_LOG_AGE_MS;
|
|
243
243
|
for (const entry of entries) {
|
|
244
244
|
if (!entry.isFile()) continue;
|
|
245
245
|
if (!entry.name.startsWith(`${LOG_PREFIX}-`) || !entry.name.endsWith(LOG_SUFFIX)) continue;
|
|
246
246
|
const fullPath = path.join(dir, entry.name);
|
|
247
247
|
try {
|
|
248
|
-
if (
|
|
248
|
+
if (fsSync.statSync(fullPath).mtimeMs < cutoff) fsSync.rmSync(fullPath, { force: true });
|
|
249
249
|
} catch {}
|
|
250
250
|
}
|
|
251
251
|
} catch {}
|
|
@@ -326,14 +326,14 @@ function isPlainObject(value) {
|
|
|
326
326
|
//#endregion
|
|
327
327
|
//#region src/utils.ts
|
|
328
328
|
async function ensureDir(dir) {
|
|
329
|
-
await
|
|
329
|
+
await fsSync.promises.mkdir(dir, { recursive: true });
|
|
330
330
|
}
|
|
331
331
|
/**
|
|
332
332
|
* Check if a file or directory exists at the given path.
|
|
333
333
|
*/
|
|
334
334
|
async function pathExists(targetPath) {
|
|
335
335
|
try {
|
|
336
|
-
await
|
|
336
|
+
await fsSync.promises.access(targetPath);
|
|
337
337
|
return true;
|
|
338
338
|
} catch {
|
|
339
339
|
return false;
|
|
@@ -416,7 +416,7 @@ function readLidReverseMapping(lid, opts) {
|
|
|
416
416
|
for (const dir of mappingDirs) {
|
|
417
417
|
const mappingPath = path.join(dir, mappingFilename);
|
|
418
418
|
try {
|
|
419
|
-
const data =
|
|
419
|
+
const data = fsSync.readFileSync(mappingPath, "utf8");
|
|
420
420
|
const phone = JSON.parse(data);
|
|
421
421
|
if (phone === null || phone === void 0) continue;
|
|
422
422
|
return normalizeE164(String(phone));
|
|
@@ -500,7 +500,7 @@ function resolveConfigDir(env = process.env, homedir = os.homedir) {
|
|
|
500
500
|
if (override) return resolveUserPath(override);
|
|
501
501
|
const newDir = path.join(resolveRequiredHomeDir(env, homedir), ".symi");
|
|
502
502
|
try {
|
|
503
|
-
if (
|
|
503
|
+
if (fsSync.existsSync(newDir)) return newDir;
|
|
504
504
|
} catch {}
|
|
505
505
|
return newDir;
|
|
506
506
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { r as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-
|
|
3
|
-
import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-
|
|
4
|
-
import { i as chunkMarkdownTextWithMode } from "./chunk-
|
|
2
|
+
import { r as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-DERqzyba.js";
|
|
3
|
+
import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-CCZl4YHT.js";
|
|
4
|
+
import { i as chunkMarkdownTextWithMode } from "./chunk-B9x_1qSr.js";
|
|
5
5
|
|
|
6
6
|
//#region src/auto-reply/reply/reply-reference.ts
|
|
7
7
|
function createReplyReferencePlanner(options) {
|
|
@@ -21,12 +21,12 @@ import { a as isPathInsideWithRealpath } from "./legacy-names-Be3msDZo.js";
|
|
|
21
21
|
import { t as normalizeChatType } from "./chat-type-DyovJwCt.js";
|
|
22
22
|
import { n as resolveConversationLabel } from "./conversation-label-Bn5j3lUT.js";
|
|
23
23
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CmmmT8IP.js";
|
|
24
|
-
import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-
|
|
25
|
-
import { _ as stripThinkingTagsFromText, a as decodeDataUrl, b as minimaxUnderstandImage, 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 stripReasoningTagsFromText, y as extractTextFromChatContent } from "./image-
|
|
24
|
+
import { _ as applyTemplate, a as resolveMediaAttachmentLocalRoots, c as resolveAttachmentKind, d as registerUnhandledRejectionHandler, f as resolveConcurrency, g as CLI_OUTPUT_MAX_BUFFER, h as resolveMediaUnderstandingScope, i as resolveAutoImageModel, l as buildRandomTempFilePath, m as normalizeMediaUnderstandingChatType, n as createMediaAttachmentCache, o as runCapability, p as resolveTimeoutMs, r as normalizeMediaAttachments, t as buildProviderRegistry } from "./runner-C_BlQ2fG.js";
|
|
25
|
+
import { _ as stripThinkingTagsFromText, a as decodeDataUrl, b as minimaxUnderstandImage, 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 stripReasoningTagsFromText, y as extractTextFromChatContent } from "./image-D_qN_IxA.js";
|
|
26
26
|
import { t as ensureSymiModelsJson } from "./models-config-B91ShhoT.js";
|
|
27
27
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-4uUnLc3n.js";
|
|
28
|
-
import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-
|
|
29
|
-
import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-
|
|
28
|
+
import { A as isTransientHttpError, C as isContextOverflowError, D as isRateLimitAssistantError, E as isLikelyContextOverflowError, F as ensureSessionHeader, I as resolveBootstrapMaxChars, L as resolveBootstrapTotalMaxChars, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRawApiErrorPayload, P as buildBootstrapContextFiles, R as sanitizeGoogleTurnOrdering, S as isCompactionFailureError, T as isFailoverErrorMessage, _ as formatRawAssistantErrorForUi, a as isMessagingToolDuplicateNormalized, b as isBillingAssistantError, c as extractToolCallsFromAssistant, d as isAntigravityClaude, f as isGoogleModelApi, g as formatBillingErrorMessage, h as formatAssistantErrorText, j as parseImageDimensionError, k as isTimeoutErrorMessage, l as extractToolResultId, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as getApiErrorPayloadFingerprint, w as isFailoverAssistantError, x as isCloudCodeAssistFormatError, y as isAuthAssistantError } from "./pi-embedded-helpers-DpOccVre.js";
|
|
29
|
+
import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-BOVopTqv.js";
|
|
30
30
|
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-BJvuH-NZ.js";
|
|
31
31
|
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-C2gfYdh8.js";
|
|
32
32
|
import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-BG8FpqDp.js";
|
|
@@ -35,7 +35,7 @@ import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./
|
|
|
35
35
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-BCYMnxkM.js";
|
|
36
36
|
import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-1OJMSAUX.js";
|
|
37
37
|
import { n as getMediaDir, r as saveMediaBuffer } from "./store-r1DJSDq-.js";
|
|
38
|
-
import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, E as readSessionTitleFieldsFromTranscript, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, K as buildGroupDisplayName, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, V as resolveExplicitAgentSessionKey, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, b as normalizeAccountId$3, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as resolveGroupSessionKey, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, v as normalizeDeliveryContext, y as normalizeSessionDeliveryFields, z as canonicalizeMainSessionAlias } from "./sessions-
|
|
38
|
+
import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, E as readSessionTitleFieldsFromTranscript, F as resolveSessionResetType, H as resolveMainSessionKey, I as resolveThreadFlag, J as acquireSessionWriteLock, K as buildGroupDisplayName, L as DEFAULT_RESET_TRIGGERS, M as evaluateSessionFreshness, N as resolveChannelResetConfig, P as resolveSessionResetPolicy, R as resolveFreshSessionTotalTokens, S as archiveSessionTranscripts, V as resolveExplicitAgentSessionKey, W as deriveSessionMetaPatch, X as resolveSessionLockMaxHoldFromTimeout, _ as mergeDeliveryContext, a as resolveAndPersistSessionFile, b as normalizeAccountId$3, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as deliveryContextKey, h as deliveryContextFromSession, j as resolveSessionKey, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as resolveGroupSessionKey, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, v as normalizeDeliveryContext, y as normalizeSessionDeliveryFields, z as canonicalizeMainSessionAlias } from "./sessions-BeYHj0gr.js";
|
|
39
39
|
import { a as resolveChannelGroupRequireMention, c as normalizeHyphenSlug, i as resolveChannelGroupPolicy, l as normalizeStringEntries, n as listChannelDocks, r as normalizeSignalMessagingTarget, s as normalizeAtHashSlug, t as getChannelDock, u as normalizeStringEntriesLower } from "./dock-BhS32F6E.js";
|
|
40
40
|
import { _ as listEnabledDiscordAccounts, a as isWhatsAppGroupJid, c as listEnabledTelegramAccounts, d as resolveTelegramToken, f as resolveSlackAccount, g as createDiscordActionGate, h as resolveSlackBotToken, l as listTelegramAccountIds, m as resolveSlackAppToken, n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId$1, s as createTelegramActionGate, t as getChannelPlugin, u as resolveTelegramAccount, v as resolveDiscordAccount, y as normalizeDiscordToken } from "./plugins-DKDeQZF0.js";
|
|
41
41
|
import { a as logWebSelfId, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, u as readWebSelfId } from "./accounts-DDuIpcln.js";
|
|
@@ -54,7 +54,7 @@ import { v as runTasksWithConcurrency } from "./sqlite-Dx3J_aSE.js";
|
|
|
54
54
|
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-Dex2EDUJ.js";
|
|
55
55
|
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-BuceUQDl.js";
|
|
56
56
|
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-emS7y-kf.js";
|
|
57
|
-
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-
|
|
57
|
+
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-lG9ITE8w.js";
|
|
58
58
|
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-CH0skkp6.js";
|
|
59
59
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-CUslJyKP.js";
|
|
60
60
|
import { A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as toLocationContext, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as parseTelegramTarget, K as withTelegramApiErrorLogging, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as formatLocationText, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-DFftzTHo.js";
|
|
@@ -94,7 +94,7 @@ import { _ as getTrustedSafeBinDirs, b as buildSafeShellCommand, d as resolveExe
|
|
|
94
94
|
import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeUrlToFile, g as normalizePathPrepend, h as mergePathPrepend, i as parseEnvPairs, l as parseCameraSnapPayload, m as applyPathPrepend, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as buildNodeShellCommand, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-8Bq7DiSa.js";
|
|
95
95
|
import { n as parseNodeList, r as parsePairingList, t as resolveNodeIdFromCandidates } from "./node-match-CdUiymRU.js";
|
|
96
96
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-CaTOIqVn.js";
|
|
97
|
-
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-
|
|
97
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-BpN-v9bT.js";
|
|
98
98
|
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-D0IdaeI8.js";
|
|
99
99
|
import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-CvFURHzt.js";
|
|
100
100
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-CafH8-8D.js";
|
|
@@ -10416,7 +10416,7 @@ async function routeReply(params) {
|
|
|
10416
10416
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
10417
10417
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
10418
10418
|
try {
|
|
10419
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
10419
|
+
const { deliverOutboundPayloads } = await import("./deliver-lG9ITE8w.js").then((n) => n.n);
|
|
10420
10420
|
return {
|
|
10421
10421
|
ok: true,
|
|
10422
10422
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -12966,7 +12966,7 @@ async function describeStickerImage(params) {
|
|
|
12966
12966
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
12967
12967
|
try {
|
|
12968
12968
|
const buffer = await fs$1.readFile(imagePath);
|
|
12969
|
-
const { describeImageWithModel } = await import("./image-
|
|
12969
|
+
const { describeImageWithModel } = await import("./image-D_qN_IxA.js").then((n) => n.n);
|
|
12970
12970
|
return (await describeImageWithModel({
|
|
12971
12971
|
buffer,
|
|
12972
12972
|
fileName: "sticker.webp",
|
|
@@ -15605,7 +15605,7 @@ async function preflightDiscordMessage(params) {
|
|
|
15605
15605
|
let preflightTranscript;
|
|
15606
15606
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
15607
15607
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
15608
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
15608
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-DJXj9QP9.js");
|
|
15609
15609
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
15610
15610
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
15611
15611
|
ctx: {
|
|
@@ -30410,6 +30410,10 @@ async function runEmbeddedAttempt(params) {
|
|
|
30410
30410
|
effectivePrompt = `${hookResult.prependContext}\n\n${params.prompt}`;
|
|
30411
30411
|
log$7.debug(`hooks: prepended context to prompt (${hookResult.prependContext.length} chars)`);
|
|
30412
30412
|
}
|
|
30413
|
+
if (hookResult?.systemPrompt) {
|
|
30414
|
+
applySystemPromptOverrideToSession(activeSession, `${systemPromptText}\n\n${hookResult.systemPrompt}`);
|
|
30415
|
+
log$7.debug(`hooks: appended systemPrompt from plugin hook (${hookResult.systemPrompt.length} chars)`);
|
|
30416
|
+
}
|
|
30413
30417
|
{
|
|
30414
30418
|
const autoRecallAgentId = normalizeAgentId(params.sessionKey);
|
|
30415
30419
|
if ((params.config ? resolveMemorySearchConfig(params.config, autoRecallAgentId) : null) && params.config) try {
|
|
@@ -31807,7 +31811,7 @@ async function runAgentTurn(params) {
|
|
|
31807
31811
|
function createDefaultDeps() {
|
|
31808
31812
|
return {
|
|
31809
31813
|
sendMessageWhatsApp: async (...args) => {
|
|
31810
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
31814
|
+
const { sendMessageWhatsApp } = await import("./web-D_WLAogr.js");
|
|
31811
31815
|
return await sendMessageWhatsApp(...args);
|
|
31812
31816
|
},
|
|
31813
31817
|
sendMessageTelegram: async (...args) => {
|
|
@@ -48072,7 +48076,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
48072
48076
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
48073
48077
|
let preflightTranscript;
|
|
48074
48078
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
48075
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
48079
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-DJXj9QP9.js");
|
|
48076
48080
|
preflightTranscript = await transcribeFirstAudio({
|
|
48077
48081
|
ctx: {
|
|
48078
48082
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -50238,7 +50242,7 @@ function loadWebLoginQr() {
|
|
|
50238
50242
|
return webLoginQrPromise;
|
|
50239
50243
|
}
|
|
50240
50244
|
function loadWebChannel() {
|
|
50241
|
-
webChannelPromise ??= import("./web-
|
|
50245
|
+
webChannelPromise ??= import("./web-D_WLAogr.js");
|
|
50242
50246
|
return webChannelPromise;
|
|
50243
50247
|
}
|
|
50244
50248
|
function loadWhatsAppActions() {
|
|
@@ -72941,7 +72945,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
72941
72945
|
return;
|
|
72942
72946
|
}
|
|
72943
72947
|
try {
|
|
72944
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
72948
|
+
const { deliverOutboundPayloads } = await import("./deliver-lG9ITE8w.js").then((n) => n.n);
|
|
72945
72949
|
await deliverOutboundPayloads({
|
|
72946
72950
|
cfg: params.cfg,
|
|
72947
72951
|
channel,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { n as resolveAgentConfig } from "./agent-scope-
|
|
2
|
+
import { n as resolveAgentConfig } from "./agent-scope-D68_xfTL.js";
|
|
3
3
|
|
|
4
4
|
//#region src/agents/identity.ts
|
|
5
5
|
const DEFAULT_ACK_REACTION = "👀";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { d as sanitizeAgentId, f as DEFAULT_ACCOUNT_ID, i as buildAgentPeerSessionKey, n as DEFAULT_MAIN_KEY, p as normalizeAccountId, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-BCzIW1Y2.js";
|
|
3
|
-
import { Z as shouldLogVerbose } from "./registry-
|
|
4
|
-
import { c as resolveDefaultAgentId } from "./agent-scope-
|
|
5
|
-
import { y as logDebug } from "./workspace-
|
|
3
|
+
import { Z as shouldLogVerbose } from "./registry-UkL38jvt.js";
|
|
4
|
+
import { c as resolveDefaultAgentId } from "./agent-scope-D68_xfTL.js";
|
|
5
|
+
import { y as logDebug } from "./workspace-DqJ5h-ZB.js";
|
|
6
6
|
import { t as normalizeChatType } from "./chat-type-3FRbbjbq.js";
|
|
7
|
-
import { t as listBindings } from "./bindings-
|
|
7
|
+
import { t as listBindings } from "./bindings-Bat2RnAR.js";
|
|
8
8
|
|
|
9
9
|
//#region src/routing/resolve-route.ts
|
|
10
10
|
var resolve_route_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -14,8 +14,8 @@ import "./client-qUlxXXVJ.js";
|
|
|
14
14
|
import "./call-BrRWr7Lj.js";
|
|
15
15
|
import "./message-channel-C9dERklz.js";
|
|
16
16
|
import "./pairing-token-Byh6drgn.js";
|
|
17
|
-
import "./subagent-registry-
|
|
18
|
-
import "./sessions-
|
|
17
|
+
import "./subagent-registry-4XZvxwX0.js";
|
|
18
|
+
import "./sessions-BPD85pWA.js";
|
|
19
19
|
import "./tokens-Csntmwwn.js";
|
|
20
20
|
import "./plugins-CwSlLxM8.js";
|
|
21
21
|
import "./accounts-D9ITgITj.js";
|
|
@@ -24,14 +24,14 @@ import "./logging-CFvkxgcX.js";
|
|
|
24
24
|
import "./send-BcvVKfh2.js";
|
|
25
25
|
import "./send-DnsTDCll.js";
|
|
26
26
|
import "./with-timeout-BIXdW2Bg.js";
|
|
27
|
-
import "./deliver-
|
|
27
|
+
import "./deliver-BLt_liXS.js";
|
|
28
28
|
import "./diagnostic-Ci8Xsc_Y.js";
|
|
29
29
|
import "./diagnostic-session-state-CIjIGxEE.js";
|
|
30
30
|
import "./accounts-D1eLj5t8.js";
|
|
31
31
|
import "./send-CaUqpyyp.js";
|
|
32
32
|
import "./image-ops-CUkaZz2F.js";
|
|
33
|
-
import "./pi-embedded-helpers-
|
|
34
|
-
import "./sandbox-
|
|
33
|
+
import "./pi-embedded-helpers-DSscUmkR.js";
|
|
34
|
+
import "./sandbox-CDxHBl3I.js";
|
|
35
35
|
import "./chrome-D2ohnA09.js";
|
|
36
36
|
import "./tailscale-CbbvYNVw.js";
|
|
37
37
|
import "./auth-BfDMhFAj.js";
|
|
@@ -66,11 +66,11 @@ import "./ir-D-flMHhr.js";
|
|
|
66
66
|
import "./render-e7fENCYH.js";
|
|
67
67
|
import "./commands-CkrIpKCc.js";
|
|
68
68
|
import "./commands-registry-CccyRhnX.js";
|
|
69
|
-
import "./image-
|
|
69
|
+
import "./image-DXco5IYt.js";
|
|
70
70
|
import "./tool-display-CXwOC-qw.js";
|
|
71
|
-
import { u as installUnhandledRejectionHandler } from "./runner-
|
|
71
|
+
import { u as installUnhandledRejectionHandler } from "./runner-CSdQSvE8.js";
|
|
72
72
|
import "./model-catalog-DKGSg6jF.js";
|
|
73
|
-
import "./session-utils-
|
|
73
|
+
import "./session-utils-BPXkhuNM.js";
|
|
74
74
|
import "./skill-commands-BSJONVkt.js";
|
|
75
75
|
import "./workspace-dirs-CPNL2Acu.js";
|
|
76
76
|
import "./pairing-store-NgA78L2g.js";
|
|
@@ -97,16 +97,16 @@ import "./replies-CsUBFXf6.js";
|
|
|
97
97
|
import "./onboard-helpers-7H_XiJt-.js";
|
|
98
98
|
import "./prompt-style-DwCXob2h.js";
|
|
99
99
|
import "./pairing-labels-DwceB1dG.js";
|
|
100
|
-
import "./pi-tools.policy-
|
|
100
|
+
import "./pi-tools.policy-DOVQ8dDx.js";
|
|
101
101
|
import { t as ensureSymiCliOnPath } from "./path-env-Bic_wXs9.js";
|
|
102
102
|
import "./catalog-buoA8ik4.js";
|
|
103
103
|
import "./note-DDecZomM.js";
|
|
104
104
|
import "./plugin-auto-enable-BvmQklg-.js";
|
|
105
|
-
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-
|
|
105
|
+
import { t as ensurePluginRegistryLoaded } from "./plugin-registry-BVoIgv-5.js";
|
|
106
106
|
import { t as assertSupportedRuntime } from "./runtime-guard-D7waq_Ho.js";
|
|
107
|
-
import { t as emitCliBanner } from "./banner-
|
|
108
|
-
import "./doctor-config-flow-
|
|
109
|
-
import { n as ensureConfigReady } from "./config-guard-
|
|
107
|
+
import { t as emitCliBanner } from "./banner-BEYICVDD.js";
|
|
108
|
+
import "./doctor-config-flow-C81j0-sE.js";
|
|
109
|
+
import { n as ensureConfigReady } from "./config-guard-CJ4iAPK5.js";
|
|
110
110
|
import process$1 from "node:process";
|
|
111
111
|
import { fileURLToPath } from "node:url";
|
|
112
112
|
|
|
@@ -119,7 +119,7 @@ const routeHealth = {
|
|
|
119
119
|
const verbose = getVerboseFlag(argv, { includeDebug: true });
|
|
120
120
|
const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
|
|
121
121
|
if (timeoutMs === null) return false;
|
|
122
|
-
const { healthCommand } = await import("./health-
|
|
122
|
+
const { healthCommand } = await import("./health-7ZvWXkvm.js").then((n) => n.i);
|
|
123
123
|
await healthCommand({
|
|
124
124
|
json,
|
|
125
125
|
timeoutMs,
|
|
@@ -139,7 +139,7 @@ const routeStatus = {
|
|
|
139
139
|
const verbose = getVerboseFlag(argv, { includeDebug: true });
|
|
140
140
|
const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
|
|
141
141
|
if (timeoutMs === null) return false;
|
|
142
|
-
const { statusCommand } = await import("./status-
|
|
142
|
+
const { statusCommand } = await import("./status-eVKjxfUO.js").then((n) => n.t);
|
|
143
143
|
await statusCommand({
|
|
144
144
|
json,
|
|
145
145
|
deep,
|
|
@@ -159,7 +159,7 @@ const routeSessions = {
|
|
|
159
159
|
if (store === null) return false;
|
|
160
160
|
const active = getFlagValue(argv, "--active");
|
|
161
161
|
if (active === null) return false;
|
|
162
|
-
const { sessionsCommand } = await import("./sessions-
|
|
162
|
+
const { sessionsCommand } = await import("./sessions-NTd36-CO.js").then((n) => n.n);
|
|
163
163
|
await sessionsCommand({
|
|
164
164
|
json,
|
|
165
165
|
store,
|
|
@@ -173,7 +173,7 @@ const routeAgentsList = {
|
|
|
173
173
|
run: async (argv) => {
|
|
174
174
|
const json = hasFlag(argv, "--json");
|
|
175
175
|
const bindings = hasFlag(argv, "--bindings");
|
|
176
|
-
const { agentsListCommand } = await import("./agents-
|
|
176
|
+
const { agentsListCommand } = await import("./agents-CKqrLbBd.js").then((n) => n.t);
|
|
177
177
|
await agentsListCommand({
|
|
178
178
|
json,
|
|
179
179
|
bindings
|
|
@@ -244,7 +244,7 @@ const routes = [
|
|
|
244
244
|
const pathArg = getCommandPositionals(argv)[2];
|
|
245
245
|
if (!pathArg) return false;
|
|
246
246
|
const json = hasFlag(argv, "--json");
|
|
247
|
-
const { runConfigGet } = await import("./config-cli-
|
|
247
|
+
const { runConfigGet } = await import("./config-cli-wcQ2PQ2b.js");
|
|
248
248
|
await runConfigGet({
|
|
249
249
|
path: pathArg,
|
|
250
250
|
json
|
|
@@ -257,7 +257,7 @@ const routes = [
|
|
|
257
257
|
run: async (argv) => {
|
|
258
258
|
const pathArg = getCommandPositionals(argv)[2];
|
|
259
259
|
if (!pathArg) return false;
|
|
260
|
-
const { runConfigUnset } = await import("./config-cli-
|
|
260
|
+
const { runConfigUnset } = await import("./config-cli-wcQ2PQ2b.js");
|
|
261
261
|
await runConfigUnset({ path: pathArg });
|
|
262
262
|
return true;
|
|
263
263
|
}
|
|
@@ -271,7 +271,7 @@ const routes = [
|
|
|
271
271
|
const local = hasFlag(argv, "--local");
|
|
272
272
|
const json = hasFlag(argv, "--json");
|
|
273
273
|
const plain = hasFlag(argv, "--plain");
|
|
274
|
-
const { modelsListCommand } = await import("./models-
|
|
274
|
+
const { modelsListCommand } = await import("./models-PeKQE2ct.js").then((n) => n.t);
|
|
275
275
|
await modelsListCommand({
|
|
276
276
|
all,
|
|
277
277
|
local,
|
|
@@ -302,7 +302,7 @@ const routes = [
|
|
|
302
302
|
const plain = hasFlag(argv, "--plain");
|
|
303
303
|
const check = hasFlag(argv, "--check");
|
|
304
304
|
const probe = hasFlag(argv, "--probe");
|
|
305
|
-
const { modelsStatusCommand } = await import("./models-
|
|
305
|
+
const { modelsStatusCommand } = await import("./models-PeKQE2ct.js").then((n) => n.t);
|
|
306
306
|
await modelsStatusCommand({
|
|
307
307
|
json,
|
|
308
308
|
plain,
|
|
@@ -380,7 +380,7 @@ async function runCli(argv = process$1.argv) {
|
|
|
380
380
|
assertSupportedRuntime();
|
|
381
381
|
if (await tryRouteCli(normalizedArgv)) return;
|
|
382
382
|
enableConsoleCapture();
|
|
383
|
-
const { buildProgram } = await import("./program-
|
|
383
|
+
const { buildProgram } = await import("./program-DhBZLOgJ.js");
|
|
384
384
|
const program = buildProgram();
|
|
385
385
|
installUnhandledRejectionHandler();
|
|
386
386
|
process$1.on("uncaughtException", (error) => {
|
|
@@ -412,10 +412,10 @@ async function runCli(argv = process$1.argv) {
|
|
|
412
412
|
const { getProgramContext } = await import("./program-context-CqzR_m-7.js").then((n) => n.n);
|
|
413
413
|
const ctx = getProgramContext(program);
|
|
414
414
|
if (ctx) {
|
|
415
|
-
const { registerCoreCliByName } = await import("./command-registry-
|
|
415
|
+
const { registerCoreCliByName } = await import("./command-registry-nSYGDoue.js").then((n) => n.t);
|
|
416
416
|
await registerCoreCliByName(program, ctx, primary, parseArgv);
|
|
417
417
|
}
|
|
418
|
-
const { registerSubCliByName } = await import("./register.subclis-
|
|
418
|
+
const { registerSubCliByName } = await import("./register.subclis-CnOalkYH.js").then((n) => n.a);
|
|
419
419
|
await registerSubCliByName(program, primary);
|
|
420
420
|
}
|
|
421
421
|
const hasBuiltinPrimary = primary !== null && program.commands.some((command) => command.name() === primary);
|
|
@@ -424,7 +424,7 @@ async function runCli(argv = process$1.argv) {
|
|
|
424
424
|
primary,
|
|
425
425
|
hasBuiltinPrimary
|
|
426
426
|
})) {
|
|
427
|
-
const { registerPluginCliCommands } = await import("./cli-
|
|
427
|
+
const { registerPluginCliCommands } = await import("./cli-WAg9Zydm.js");
|
|
428
428
|
const { loadConfig } = await import("./config-DXt3pc08.js").then((n) => n.t);
|
|
429
429
|
registerPluginCliCommands(program, loadConfig());
|
|
430
430
|
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { J as logVerbose, Z as shouldLogVerbose } from "./registry-
|
|
2
|
-
import { _ as runExec } from "./workspace-
|
|
3
|
-
import { A as normalizeGoogleModelId, B as resolveApiKeyForProvider, C as normalizeProviderId, et as resolveSymiAgentDir, z as requireApiKey } from "./auth-profiles-
|
|
4
|
-
import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-
|
|
5
|
-
import { c as detectMime, f as isAudioFileName, m as kindFromMime, u as getFileExtension } from "./image-ops-
|
|
1
|
+
import { J as logVerbose, Z as shouldLogVerbose } from "./registry-UkL38jvt.js";
|
|
2
|
+
import { _ as runExec } from "./workspace-DqJ5h-ZB.js";
|
|
3
|
+
import { A as normalizeGoogleModelId, B as resolveApiKeyForProvider, C as normalizeProviderId, et as resolveSymiAgentDir, z as requireApiKey } from "./auth-profiles-aJfgABnE.js";
|
|
4
|
+
import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-Dp67YMkg.js";
|
|
5
|
+
import { c as detectMime, f as isAudioFileName, m as kindFromMime, u as getFileExtension } from "./image-ops-M5agStZn.js";
|
|
6
6
|
import { t as normalizeChatType } from "./chat-type-3FRbbjbq.js";
|
|
7
|
-
import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-
|
|
8
|
-
import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-
|
|
7
|
+
import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-DCB54N2j.js";
|
|
8
|
+
import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-JP7SzVpY.js";
|
|
9
9
|
import { n as fetchWithTimeout } from "./fetch-timeout-Cj6kcyGt.js";
|
|
10
|
-
import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-
|
|
10
|
+
import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-Bh5xx9IO.js";
|
|
11
11
|
import path from "node:path";
|
|
12
12
|
import { constants } from "node:fs";
|
|
13
13
|
import os from "node:os";
|
|
14
|
-
import fs
|
|
14
|
+
import fs from "node:fs/promises";
|
|
15
15
|
import { fileURLToPath } from "node:url";
|
|
16
16
|
import crypto from "node:crypto";
|
|
17
17
|
import process$1 from "node:process";
|
|
@@ -693,7 +693,7 @@ var MediaAttachmentCache = class {
|
|
|
693
693
|
const size = await this.ensureLocalStat(entry);
|
|
694
694
|
if (entry.resolvedPath) {
|
|
695
695
|
if (size !== void 0 && size > params.maxBytes) throw new MediaUnderstandingSkipError("maxBytes", `Attachment ${params.attachmentIndex + 1} exceeds maxBytes ${params.maxBytes}`);
|
|
696
|
-
const buffer = await fs
|
|
696
|
+
const buffer = await fs.readFile(entry.resolvedPath);
|
|
697
697
|
entry.buffer = buffer;
|
|
698
698
|
entry.bufferMime = entry.bufferMime ?? entry.attachment.mime ?? await detectMime({
|
|
699
699
|
buffer,
|
|
@@ -763,10 +763,10 @@ var MediaAttachmentCache = class {
|
|
|
763
763
|
prefix: "symi-media",
|
|
764
764
|
extension: path.extname(bufferResult.fileName || "") || ""
|
|
765
765
|
});
|
|
766
|
-
await fs
|
|
766
|
+
await fs.writeFile(tmpPath, bufferResult.buffer);
|
|
767
767
|
entry.tempPath = tmpPath;
|
|
768
768
|
entry.tempCleanup = async () => {
|
|
769
|
-
await fs
|
|
769
|
+
await fs.unlink(tmpPath).catch(() => {});
|
|
770
770
|
};
|
|
771
771
|
return {
|
|
772
772
|
path: tmpPath,
|
|
@@ -813,12 +813,12 @@ var MediaAttachmentCache = class {
|
|
|
813
813
|
if (entry.statSize !== void 0) return entry.statSize;
|
|
814
814
|
try {
|
|
815
815
|
const currentPath = entry.resolvedPath;
|
|
816
|
-
const stat = await fs
|
|
816
|
+
const stat = await fs.stat(currentPath);
|
|
817
817
|
if (!stat.isFile()) {
|
|
818
818
|
entry.resolvedPath = void 0;
|
|
819
819
|
return;
|
|
820
820
|
}
|
|
821
|
-
const canonicalPath = await fs
|
|
821
|
+
const canonicalPath = await fs.realpath(currentPath).catch(() => currentPath);
|
|
822
822
|
if (!isInboundPathAllowed({
|
|
823
823
|
filePath: canonicalPath,
|
|
824
824
|
roots: await this.getCanonicalLocalPathRoots()
|
|
@@ -840,7 +840,7 @@ var MediaAttachmentCache = class {
|
|
|
840
840
|
if (this.canonicalLocalPathRoots) return await this.canonicalLocalPathRoots;
|
|
841
841
|
this.canonicalLocalPathRoots = (async () => mergeInboundPathRoots(this.localPathRoots, await Promise.all(this.localPathRoots.map(async (root) => {
|
|
842
842
|
if (root.includes("*")) return root;
|
|
843
|
-
return await fs
|
|
843
|
+
return await fs.realpath(root).catch(() => root);
|
|
844
844
|
}))))();
|
|
845
845
|
return await this.canonicalLocalPathRoots;
|
|
846
846
|
}
|
|
@@ -883,7 +883,7 @@ async function loadModelCatalog(params) {
|
|
|
883
883
|
try {
|
|
884
884
|
const cfg = params?.config ?? loadConfig();
|
|
885
885
|
await ensureSymiModelsJson(cfg);
|
|
886
|
-
await (await import("./pi-auth-json-
|
|
886
|
+
await (await import("./pi-auth-json-Q3FwtPeJ.js").then((n) => n.n)).ensurePiAuthJsonFromAuthProfiles(resolveSymiAgentDir(), { config: cfg });
|
|
887
887
|
const piSdk = await importPiSdk();
|
|
888
888
|
const agentDir = resolveSymiAgentDir();
|
|
889
889
|
const { join } = await import("node:path");
|
|
@@ -943,7 +943,7 @@ function findModelInCatalog(catalog, provider, modelId) {
|
|
|
943
943
|
async function fileExists(filePath) {
|
|
944
944
|
if (!filePath) return false;
|
|
945
945
|
try {
|
|
946
|
-
await fs
|
|
946
|
+
await fs.stat(filePath);
|
|
947
947
|
return true;
|
|
948
948
|
} catch {
|
|
949
949
|
return false;
|
|
@@ -1043,7 +1043,7 @@ async function resolveCliOutput(params) {
|
|
|
1043
1043
|
const commandId = commandBase(params.command);
|
|
1044
1044
|
const fileOutput = commandId === "whisper-cli" ? resolveWhisperCppOutputPath(params.args) : commandId === "whisper" ? resolveWhisperOutputPath(params.args, params.mediaPath) : null;
|
|
1045
1045
|
if (fileOutput && await fileExists(fileOutput)) try {
|
|
1046
|
-
const content = await fs
|
|
1046
|
+
const content = await fs.readFile(fileOutput, "utf8");
|
|
1047
1047
|
if (content.trim()) return content.trim();
|
|
1048
1048
|
} catch {}
|
|
1049
1049
|
if (commandId === "gemini") {
|
|
@@ -1334,7 +1334,7 @@ async function runCliEntry(params) {
|
|
|
1334
1334
|
maxBytes,
|
|
1335
1335
|
timeoutMs
|
|
1336
1336
|
});
|
|
1337
|
-
const outputDir = await fs
|
|
1337
|
+
const outputDir = await fs.mkdtemp(path.join(os.tmpdir(), "symi-media-cli-"));
|
|
1338
1338
|
const mediaPath = pathResult.path;
|
|
1339
1339
|
const outputBase = path.join(outputDir, path.parse(mediaPath).name);
|
|
1340
1340
|
const templCtx = {
|
|
@@ -1368,7 +1368,7 @@ async function runCliEntry(params) {
|
|
|
1368
1368
|
model: command
|
|
1369
1369
|
};
|
|
1370
1370
|
} finally {
|
|
1371
|
-
await fs
|
|
1371
|
+
await fs.rm(outputDir, {
|
|
1372
1372
|
recursive: true,
|
|
1373
1373
|
force: true
|
|
1374
1374
|
}).catch(() => {});
|
|
@@ -1412,9 +1412,9 @@ function candidateBinaryNames(name) {
|
|
|
1412
1412
|
}
|
|
1413
1413
|
async function isExecutable(filePath) {
|
|
1414
1414
|
try {
|
|
1415
|
-
if (!(await fs
|
|
1415
|
+
if (!(await fs.stat(filePath)).isFile()) return false;
|
|
1416
1416
|
if (process.platform === "win32") return true;
|
|
1417
|
-
await fs
|
|
1417
|
+
await fs.access(filePath, constants.X_OK);
|
|
1418
1418
|
return true;
|
|
1419
1419
|
} catch {
|
|
1420
1420
|
return false;
|
|
@@ -4,7 +4,7 @@ import { G as resolveSymiAgentDir, T as resolveApiKeyForProvider, c as normalize
|
|
|
4
4
|
import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
|
|
5
5
|
import { _ as kindFromMime, d as detectMime, h as isAudioFileName, p as getFileExtension } from "./image-ops-ByaQt43P.js";
|
|
6
6
|
import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-BAVNLbja.js";
|
|
7
|
-
import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-
|
|
7
|
+
import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-CKeN0xJL.js";
|
|
8
8
|
import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-DVcG-42i.js";
|
|
9
9
|
import { n as fetchWithTimeout } from "./fetch-timeout-BheTNyes.js";
|
|
10
10
|
import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-CC8jiKDk.js";
|
|
@@ -9,7 +9,7 @@ import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation
|
|
|
9
9
|
import { n as fetchWithTimeout } from "./fetch-timeout-L2NTusph.js";
|
|
10
10
|
import { t as fetchWithSsrFGuard } from "./fetch-guard-Dp7VnmeK.js";
|
|
11
11
|
import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, r as MediaFetchError } from "./local-roots-CpUKTvDW.js";
|
|
12
|
-
import { t as describeImageWithModel } from "./image-
|
|
12
|
+
import { t as describeImageWithModel } from "./image-DXco5IYt.js";
|
|
13
13
|
import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-DKGSg6jF.js";
|
|
14
14
|
import process$1 from "node:process";
|
|
15
15
|
import os from "node:os";
|
|
@@ -3,7 +3,7 @@ import { n as runExec } from "./exec-CWkblSrI.js";
|
|
|
3
3
|
import { E as normalizeGoogleModelId, K as requireApiKey, l as normalizeProviderId, q as resolveApiKeyForProvider } from "./model-selection-C-eIBa0H.js";
|
|
4
4
|
import { _ as isInboundPathAllowed, g as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, v as mergeInboundPathRoots, y as resolveIMessageAttachmentRoots } from "./config-PXAJCHa5.js";
|
|
5
5
|
import { t as normalizeChatType } from "./chat-type-DyovJwCt.js";
|
|
6
|
-
import { t as describeImageWithModel } from "./image-
|
|
6
|
+
import { t as describeImageWithModel } from "./image-D_qN_IxA.js";
|
|
7
7
|
import { r as formatUncaughtError, t as extractErrorCode } from "./errors-BF3TeRH2.js";
|
|
8
8
|
import { c as detectMime, f as isAudioFileName, m as kindFromMime, u as getFileExtension } from "./image-ops-1OJMSAUX.js";
|
|
9
9
|
import { n as fetchWithTimeout } from "./fetch-timeout-Db3da8yR.js";
|
|
@@ -12,7 +12,7 @@ import { r as isLoopbackHost } from "./ws-C7EXRv8z.js";
|
|
|
12
12
|
import { a as resolveProfile, m as resolveBrowserControlAuth, p as ensureBrowserControlAuth, t as createBrowserRouteContext } from "./server-context-C2gfYdh8.js";
|
|
13
13
|
import { d as resolveSandboxInputPath, f as resolveSandboxPath, g as sanitizeEnvVars, o as syncSkillsToWorkspace } from "./skills-BG8FpqDp.js";
|
|
14
14
|
import { t as registerBrowserRoutes } from "./routes-2b4mQUhe.js";
|
|
15
|
-
import { B as resolveAgentMainSessionKey, J as acquireSessionWriteLock, z as canonicalizeMainSessionAlias } from "./sessions-
|
|
15
|
+
import { B as resolveAgentMainSessionKey, J as acquireSessionWriteLock, z as canonicalizeMainSessionAlias } from "./sessions-BeYHj0gr.js";
|
|
16
16
|
import { existsSync, realpathSync } from "node:fs";
|
|
17
17
|
import path, { posix } from "node:path";
|
|
18
18
|
import fs$1 from "node:fs/promises";
|