blun-king-cli 9.0.0 → 9.1.0
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/LIESMICH.txt +32 -13
- package/README.md +39 -20
- package/bin/blun.js +248 -160
- package/bin/core-bootstrap.js +47 -0
- package/bin/king.js +277 -1
- package/bin/launcher-mode.js +15 -3
- package/bin/launcher-runtime.js +293 -0
- package/bin/plugin-bootstrap.js +11 -4
- package/bin/private-paths.js +1577 -10
- package/bin/update-lease.js +399 -0
- package/bin/update-notice.js +1245 -0
- package/blun.mjs +26606 -25239
- package/dist-web/assets/{CodeBlockNode-Bsvp6ZEy.js → CodeBlockNode-CXnTLMNr.js} +1 -1
- package/dist-web/assets/{CodeBlockShell.vue_vue_type_style_index_0_lang-ta7hLjia.js → CodeBlockShell.vue_vue_type_style_index_0_lang-CCF8Ntnq.js} +1 -1
- package/dist-web/assets/{DesignSystemView-BmDDe28A.js → DesignSystemView-BbMOu-XO.js} +1 -1
- package/dist-web/assets/{Tooltip-nEEfaYVY.js → Tooltip-CFQEzqC-.js} +1 -1
- package/dist-web/assets/abnfDiagram-N423BO3Z-CsByy-GW.js +1 -0
- package/dist-web/assets/abnfDiagram-N423BO3Z-Z1APZG5m.js +1 -0
- package/dist-web/assets/arc-C-LXCaja.js +1 -0
- package/dist-web/assets/arc-C4VyWloT.js +1 -0
- package/dist-web/assets/architectureDiagram-T3A2C74G-DZq4L18e.js +36 -0
- package/dist-web/assets/architectureDiagram-T3A2C74G-DpddbUcM.js +36 -0
- package/dist-web/assets/blockDiagram-VBNYF7ZC-BV4sIf98.js +132 -0
- package/dist-web/assets/blockDiagram-VBNYF7ZC-BqccOSMr.js +132 -0
- package/dist-web/assets/{c4Diagram-AAUBKEIU-DtzacMnD.js → c4Diagram-5PPSVZJV-0MRkZlgP.js} +1 -1
- package/dist-web/assets/{c4Diagram-AAUBKEIU-D1VdMx8d.js → c4Diagram-5PPSVZJV-OHAcJrTy.js} +1 -1
- package/dist-web/assets/channel-B2VOQOI-.js +1 -0
- package/dist-web/assets/channel-DKjwM05G.js +1 -0
- package/dist-web/assets/{chunk-ND2GUHAM-DJoY9wNJ.js → chunk-2GRJ4B5K-DqJHs8Fw.js} +1 -1
- package/dist-web/assets/{chunk-ND2GUHAM-C4-rwdcv.js → chunk-2GRJ4B5K-oO6nqeLA.js} +1 -1
- package/dist-web/assets/{chunk-QZHKN3VN-C7YGaShq.js → chunk-2Q5K7J3B-B1nCd91o.js} +1 -1
- package/dist-web/assets/{chunk-QZHKN3VN-_Rz9_NuS.js → chunk-2Q5K7J3B-BC0Hsfqy.js} +1 -1
- package/dist-web/assets/chunk-5RXB4S5H-BfZa4yDH.js +231 -0
- package/dist-web/assets/chunk-5RXB4S5H-neG70kZx.js +231 -0
- package/dist-web/assets/{chunk-FMBD7UC4-DlLNDUx6.js → chunk-5VM5RSS4-l7biGqeH.js} +1 -1
- package/dist-web/assets/{chunk-FMBD7UC4-B2zs_Y-d.js → chunk-5VM5RSS4-u00AcpiJ.js} +1 -1
- package/dist-web/assets/chunk-6Q2QTUOP-BO-F11Gs.js +88 -0
- package/dist-web/assets/chunk-6Q2QTUOP-RUVRPBzG.js +88 -0
- package/dist-web/assets/{chunk-727SXJPM-Dn5wkDO_.js → chunk-GF5L2VYU-Ba-86KTd.js} +5 -5
- package/dist-web/assets/{chunk-727SXJPM-Dk2Xa3bA.js → chunk-GF5L2VYU-BtC69fw0.js} +5 -5
- package/dist-web/assets/{chunk-4BX2VUAB-DxZViaHS.js → chunk-JWPE2WC7-DIOubEqr.js} +1 -1
- package/dist-web/assets/{chunk-4BX2VUAB-WqrE2gaw.js → chunk-JWPE2WC7-u8Pcfhwh.js} +1 -1
- package/dist-web/assets/{chunk-2J33WTMH-Dm_s0_4f.js → chunk-KBJHAD2P-DDUeH_Ba.js} +1 -1
- package/dist-web/assets/{chunk-2J33WTMH-w4sdiKFO.js → chunk-KBJHAD2P-DS3BL64y.js} +1 -1
- package/dist-web/assets/chunk-RYQCIY6F-B9gFMVbS.js +1 -0
- package/dist-web/assets/chunk-RYQCIY6F-xg3EO0le.js +1 -0
- package/dist-web/assets/{chunk-55IACEB6-B5dE1-Um.js → chunk-XXDRQBXY-B60H0rRC.js} +1 -1
- package/dist-web/assets/{chunk-55IACEB6-B12zGIFz.js → chunk-XXDRQBXY-Bn1Xz6TQ.js} +1 -1
- package/dist-web/assets/classDiagram-JCYQIIEL-BA1TjAxj.js +1 -0
- package/dist-web/assets/classDiagram-JCYQIIEL-BNU7Qn4k.js +1 -0
- package/dist-web/assets/classDiagram-v2-OCEON4UE-BA1TjAxj.js +1 -0
- package/dist-web/assets/classDiagram-v2-OCEON4UE-BNU7Qn4k.js +1 -0
- package/dist-web/assets/{cose-bilkent-S5V4N54A-Bi19n8m-.js → cose-bilkent-JH36ORCC-4Ybddg08.js} +1 -1
- package/dist-web/assets/{cose-bilkent-S5V4N54A-c8o8NFp5.js → cose-bilkent-JH36ORCC-DqigO3T4.js} +1 -1
- package/dist-web/assets/cynefin-VYW2F7L2-C-EfYT07.js +178 -0
- package/dist-web/assets/cynefin-VYW2F7L2-rpD93tQ-.js +178 -0
- package/dist-web/assets/cynefinDiagram-MW4NZA55-DWZPLJcD.js +62 -0
- package/dist-web/assets/cynefinDiagram-MW4NZA55-DbTqnkVJ.js +62 -0
- package/dist-web/assets/dagre-VZM6K2ZE-DcM8aEVY.js +4 -0
- package/dist-web/assets/dagre-VZM6K2ZE-M_HVNtqP.js +4 -0
- package/dist-web/assets/diagram-7IWD3JNH-DoNximNF.js +30 -0
- package/dist-web/assets/diagram-7IWD3JNH-UymgsBNa.js +30 -0
- package/dist-web/assets/{diagram-KO2AKTUF-CFQs13i5.js → diagram-B4RE2ZJO-BVA2EhnC.js} +3 -3
- package/dist-web/assets/{diagram-KO2AKTUF-agFIuPJW.js → diagram-B4RE2ZJO-BiYu5WPF.js} +3 -3
- package/dist-web/assets/{diagram-LMA3HP47-TMIXizxR.js → diagram-LBJQPF4R-BD3kkgOO.js} +2 -2
- package/dist-web/assets/{diagram-LMA3HP47-He5zlyMt.js → diagram-LBJQPF4R-m3a1Euj3.js} +2 -2
- package/dist-web/assets/diagram-Q27KOJAE-D1mYQ_cI.js +24 -0
- package/dist-web/assets/diagram-Q27KOJAE-hy_T73PK.js +24 -0
- package/dist-web/assets/diagram-UB23O5K3-BWkoQZ4A.js +41 -0
- package/dist-web/assets/diagram-UB23O5K3-BtX8u6HG.js +41 -0
- package/dist-web/assets/ebnfDiagram-BXEA7PRR-BKs9JUHW.js +1 -0
- package/dist-web/assets/ebnfDiagram-BXEA7PRR-CBAnFkRF.js +1 -0
- package/dist-web/assets/erDiagram-JOGREHBK-3vKcWsxm.js +85 -0
- package/dist-web/assets/erDiagram-JOGREHBK-BIpd6dTf.js +85 -0
- package/dist-web/assets/flowDiagram-UKHOOZJN-D9wBbHm2.js +156 -0
- package/dist-web/assets/flowDiagram-UKHOOZJN-Z83i2UWI.js +156 -0
- package/dist-web/assets/ganttDiagram-PKOTCBZU-Cd_dViF-.js +292 -0
- package/dist-web/assets/ganttDiagram-PKOTCBZU-DFrb_S1d.js +292 -0
- package/dist-web/assets/{gitGraphDiagram-PVQCEYII-BSDFfwdY.js → gitGraphDiagram-DS77QQ5N-BiEEtTo7.js} +3 -3
- package/dist-web/assets/{gitGraphDiagram-PVQCEYII-DMbTATyw.js → gitGraphDiagram-DS77QQ5N-Dp3Ar-hi.js} +3 -3
- package/dist-web/assets/{graph-BwjfAU3j.js → graph-CAUpWmoK.js} +1 -1
- package/dist-web/assets/{graph--OzhPTMs.js → graph-DOmOIIwC.js} +1 -1
- package/dist-web/assets/{index-W6VnSrkB.js → index-Ba1OvLjf.js} +2 -2
- package/dist-web/assets/{index-CkVgGDpx.js → index-CiPA8Kex.js} +4 -4
- package/dist-web/assets/{index-BzK4vJBu.js → index-DdEakFJM.js} +1 -1
- package/dist-web/assets/{index10-Czg_oF-W.js → index10-CNr4U-Nw.js} +1 -1
- package/dist-web/assets/{index11-BjzCZuCr.js → index11-Dto_yZNz.js} +1 -1
- package/dist-web/assets/{index5-DlVoNkCD.js → index5-B2PldaO2.js} +1 -1
- package/dist-web/assets/{index6-BxiXA2yo.js → index6-CBdZmmyx.js} +1 -1
- package/dist-web/assets/{index7-BPdza6d1.js → index7-Dz9oCsUF.js} +1 -1
- package/dist-web/assets/{index8-Q_XzGC1Z.js → index8-B6k25jtU.js} +2 -2
- package/dist-web/assets/{infoDiagram-5YYISTIA-2JF3XEdD.js → infoDiagram-6WML65LV-BSa2g04G.js} +1 -1
- package/dist-web/assets/{infoDiagram-5YYISTIA-UrQusrJq.js → infoDiagram-6WML65LV-D4ph2sIH.js} +1 -1
- package/dist-web/assets/{ishikawaDiagram-YF4QCWOH-7RVUL-vB.js → ishikawaDiagram-WSZJBQD7-DjKjbMm9.js} +5 -5
- package/dist-web/assets/{ishikawaDiagram-YF4QCWOH-C5OstRVV.js → ishikawaDiagram-WSZJBQD7-Hm36UOQe.js} +5 -5
- package/dist-web/assets/{journeyDiagram-JHISSGLW-B34fCMu9.js → journeyDiagram-NVQOT4AX-DttHDfPQ.js} +1 -1
- package/dist-web/assets/{journeyDiagram-JHISSGLW-yctdo4bX.js → journeyDiagram-NVQOT4AX-MvWWPNDV.js} +1 -1
- package/dist-web/assets/{kanban-definition-UN3LZRKU-BS4FBZsQ.js → kanban-definition-27J2QSJJ-C5gB-W0d.js} +7 -7
- package/dist-web/assets/{kanban-definition-UN3LZRKU-CxBCv27E.js → kanban-definition-27J2QSJJ-Cu-E_cXA.js} +5 -5
- package/dist-web/assets/layout-CvP6o9AK.js +1 -0
- package/dist-web/assets/layout-D-LzfAck.js +1 -0
- package/dist-web/assets/{linear-3mB6q2-g.js → linear-B3HWgQI2.js} +1 -1
- package/dist-web/assets/{linear-BKCnUo31.js → linear-BRGe4-d6.js} +1 -1
- package/dist-web/assets/map-CWKZqZjr.js +1 -0
- package/dist-web/assets/map-DxJ2ADlA.js +1 -0
- package/dist-web/assets/mermaid.core-D-9Sx1No.js +314 -0
- package/dist-web/assets/mermaidParser.worker-PTFfzpoB.js +318 -0
- package/dist-web/assets/{mindmap-definition-RKZ34NQL-BmJZpjh6.js → mindmap-definition-FAOFIHXS-C4vnms3i.js} +2 -2
- package/dist-web/assets/{mindmap-definition-RKZ34NQL-1mjWUcf6.js → mindmap-definition-FAOFIHXS-Cg_hoVIq.js} +1 -1
- package/dist-web/assets/pegDiagram-VL7TDLO6-B2fFEFUH.js +1 -0
- package/dist-web/assets/pegDiagram-VL7TDLO6-CSX9hitD.js +1 -0
- package/dist-web/assets/pieDiagram-7S7Q4E2Y-0L0mxahZ.js +39 -0
- package/dist-web/assets/pieDiagram-7S7Q4E2Y-C7T0Cmw1.js +39 -0
- package/dist-web/assets/{quadrantDiagram-W4KKPZXB-BmT_qM09.js → quadrantDiagram-CIZ2JOQS-BBy7w4kD.js} +3 -3
- package/dist-web/assets/{quadrantDiagram-W4KKPZXB-C0kPuyNP.js → quadrantDiagram-CIZ2JOQS-U483z0er.js} +3 -3
- package/dist-web/assets/railroadDiagram-AXF67PYL-D80a2_DJ.js +1 -0
- package/dist-web/assets/railroadDiagram-AXF67PYL-DX8y0MzW.js +1 -0
- package/dist-web/assets/{requirementDiagram-4Y6WPE33-C0YP_Amt.js → requirementDiagram-LRYGKXZP-CeyHfq8t.js} +3 -3
- package/dist-web/assets/{requirementDiagram-4Y6WPE33-CZrxH1Y2.js → requirementDiagram-LRYGKXZP-DGD5J_4k.js} +3 -3
- package/dist-web/assets/sankeyDiagram-W5VNT64P-CCISkkrR.js +40 -0
- package/dist-web/assets/sankeyDiagram-W5VNT64P-CT5PdZz2.js +40 -0
- package/dist-web/assets/sequenceDiagram-SI44F4Z6-BeMzHWXI.js +162 -0
- package/dist-web/assets/sequenceDiagram-SI44F4Z6-jQfm2XS7.js +162 -0
- package/dist-web/assets/sizeCapture-X5ZJPWSS-BQsTdtrv.js +1 -0
- package/dist-web/assets/sizeCapture-X5ZJPWSS-lRZsmCoS.js +1 -0
- package/dist-web/assets/stateDiagram-OKZ733FA-ClCgTdUm.js +1 -0
- package/dist-web/assets/stateDiagram-OKZ733FA-Cv59z5YT.js +1 -0
- package/dist-web/assets/stateDiagram-v2-UEYNNEHI-R8jTc--F.js +1 -0
- package/dist-web/assets/stateDiagram-v2-UEYNNEHI-fi_lrTAx.js +1 -0
- package/dist-web/assets/swimlanes-SLNWSIFB-BCdOUN05.js +2 -0
- package/dist-web/assets/swimlanes-SLNWSIFB-Cu5l7SuR.js +1 -0
- package/dist-web/assets/swimlanesDiagram-ULZ7WXOC-BUd_uYK3.js +8 -0
- package/dist-web/assets/swimlanesDiagram-ULZ7WXOC-CalrsgPK.js +8 -0
- package/dist-web/assets/{timeline-definition-PNZ67QCA-DsVZdrZa.js → timeline-definition-Z64GVDOM-CMjnh4bu.js} +4 -4
- package/dist-web/assets/{timeline-definition-PNZ67QCA-DnB6Usl0.js → timeline-definition-Z64GVDOM-DpWutSKa.js} +4 -4
- package/dist-web/assets/vennDiagram-T6HMQDX7-DKJW_8oU.js +34 -0
- package/dist-web/assets/vennDiagram-T6HMQDX7-DVC5JVsc.js +34 -0
- package/dist-web/assets/{vue.runtime.esm-bundler-pgHGheCW.js → vue.runtime.esm-bundler-BwwRtQwQ.js} +1 -1
- package/dist-web/assets/{wardleyDiagram-YWT4CUSO-oBauTCEw.js → wardleyDiagram-T6FBY63Y-BK2mrq7L.js} +3 -3
- package/dist-web/assets/{wardleyDiagram-YWT4CUSO-DCiyDQNB.js → wardleyDiagram-T6FBY63Y-oUvgepFn.js} +3 -3
- package/dist-web/assets/xychartDiagram-ELKLHX3M-DI6n79q0.js +7 -0
- package/dist-web/assets/xychartDiagram-ELKLHX3M-DUJu9F7-.js +7 -0
- package/dist-web/index.html +1 -1
- package/dist-web/vis/index.html.gz +0 -0
- package/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
- package/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
- package/package.json +9 -11
- package/skills/screenshot-lesen/SKILL.md +0 -1
- package/skills/web-lesen/SKILL.md +0 -1
- package/telegram-plugin/dist/bridge.mjs +7 -25
- package/telegram-plugin/dist/mcp-server.mjs +236 -71
- package/dist-web/assets/arc-4xPfymbf.js +0 -1
- package/dist-web/assets/arc-Doj0wRZ0.js +0 -1
- package/dist-web/assets/architectureDiagram-3BPJPVTR-BGih283a.js +0 -36
- package/dist-web/assets/architectureDiagram-3BPJPVTR-CQ09RrbH.js +0 -36
- package/dist-web/assets/blockDiagram-GPEHLZMM-3ShMf1gu.js +0 -132
- package/dist-web/assets/blockDiagram-GPEHLZMM-CAtDjkJt.js +0 -132
- package/dist-web/assets/channel-DNkUo9e6.js +0 -1
- package/dist-web/assets/channel-DcnUTIGB.js +0 -1
- package/dist-web/assets/chunk-AQP2D5EJ-FS8-f8lF.js +0 -231
- package/dist-web/assets/chunk-AQP2D5EJ-UKhb4V4r.js +0 -231
- package/dist-web/assets/classDiagram-4FO5ZUOK-B1ZO8EbE.js +0 -1
- package/dist-web/assets/classDiagram-4FO5ZUOK-xk6cM9Kq.js +0 -1
- package/dist-web/assets/classDiagram-v2-Q7XG4LA2-B1ZO8EbE.js +0 -1
- package/dist-web/assets/classDiagram-v2-Q7XG4LA2-xk6cM9Kq.js +0 -1
- package/dist-web/assets/dagre-BM42HDAG-CmUO9qKN.js +0 -4
- package/dist-web/assets/dagre-BM42HDAG-DLMfLCoV.js +0 -4
- package/dist-web/assets/diagram-2AECGRRQ-DQTst0OH.js +0 -43
- package/dist-web/assets/diagram-2AECGRRQ-L74iLMqd.js +0 -43
- package/dist-web/assets/diagram-5GNKFQAL-BiBm7CJR.js +0 -10
- package/dist-web/assets/diagram-5GNKFQAL-DoE6q7H1.js +0 -10
- package/dist-web/assets/diagram-OG6HWLK6-BHCt1E0n.js +0 -24
- package/dist-web/assets/diagram-OG6HWLK6-DRyxjFMa.js +0 -24
- package/dist-web/assets/erDiagram-TEJ5UH35-BoDczjGG.js +0 -85
- package/dist-web/assets/erDiagram-TEJ5UH35-yd6SOv_7.js +0 -85
- package/dist-web/assets/flowDiagram-I6XJVG4X-DHoceI7r.js +0 -162
- package/dist-web/assets/flowDiagram-I6XJVG4X-DkYNQv0R.js +0 -162
- package/dist-web/assets/ganttDiagram-6RSMTGT7-Cg1TQBc0.js +0 -292
- package/dist-web/assets/ganttDiagram-6RSMTGT7-Z6klo7KK.js +0 -292
- package/dist-web/assets/layout-C1ojF0zw.js +0 -1
- package/dist-web/assets/layout-SsrduOYp.js +0 -1
- package/dist-web/assets/mermaid.core-D_lKT0dR.js +0 -309
- package/dist-web/assets/mermaidParser.worker-Dx4jPi9z.js +0 -313
- package/dist-web/assets/pieDiagram-4H26LBE5-BU41t2A_.js +0 -30
- package/dist-web/assets/pieDiagram-4H26LBE5-BkwDAvbt.js +0 -30
- package/dist-web/assets/sankeyDiagram-5OEKKPKP-De_o7hDr.js +0 -40
- package/dist-web/assets/sankeyDiagram-5OEKKPKP-Dvuj6bMA.js +0 -40
- package/dist-web/assets/sequenceDiagram-3UESZ5HK-DuCrgPyA.js +0 -162
- package/dist-web/assets/sequenceDiagram-3UESZ5HK-VAxffBe7.js +0 -162
- package/dist-web/assets/stateDiagram-AJRCARHV-CYLupxM7.js +0 -1
- package/dist-web/assets/stateDiagram-AJRCARHV-nDExQydZ.js +0 -1
- package/dist-web/assets/stateDiagram-v2-BHNVJYJU-BhEc7Thx.js +0 -1
- package/dist-web/assets/stateDiagram-v2-BHNVJYJU-BzwD_BIl.js +0 -1
- package/dist-web/assets/vennDiagram-CIIHVFJN-BBHQmCFf.js +0 -34
- package/dist-web/assets/vennDiagram-CIIHVFJN-Cfj-K9NW.js +0 -34
- package/dist-web/assets/wardley-L42UT6IY-BJFn8eDD.js +0 -173
- package/dist-web/assets/wardley-L42UT6IY-BSu8-4hg.js +0 -173
- package/dist-web/assets/xychartDiagram-2RQKCTM6-C2iZpl9I.js +0 -7
- package/dist-web/assets/xychartDiagram-2RQKCTM6-Db_VoDBV.js +0 -7
- package/mnemo/access_routes.js +0 -692
- package/mnemo/agent_governance.js +0 -4242
- package/mnemo/agent_mail.js +0 -901
- package/mnemo/bootstrap_auto.js +0 -137
- package/mnemo/brief_coordination.js +0 -226
- package/mnemo/code_read_tools.js +0 -375
- package/mnemo/context_preview_tools.js +0 -603
- package/mnemo/embeddings.js +0 -66
- package/mnemo/external_repo_ops.js +0 -575
- package/mnemo/facts/example-project-rules.json +0 -90
- package/mnemo/facts/example.json +0 -34
- package/mnemo/identity_schema.sql +0 -139
- package/mnemo/journal_schema.js +0 -561
- package/mnemo/loop_doctor_tools.js +0 -661
- package/mnemo/mail_secret_refs.js +0 -150
- package/mnemo/mcp.js +0 -9309
- package/mnemo/memory_consolidation.js +0 -1914
- package/mnemo/memory_health_tools.js +0 -165
- package/mnemo/package.json +0 -79
- package/mnemo/protected_scope_gate.js +0 -627
- package/mnemo/resource_access_control.js +0 -684
- package/mnemo/runtime_governance.js +0 -1256
- package/mnemo/runtime_turn_gate.js +0 -862
- package/mnemo/sandbox.js +0 -143
- package/mnemo/schema.sql +0 -389
- package/mnemo/shared_utils.js +0 -763
- package/mnemo/skills/agent-auto-resume/SKILL.md +0 -56
- package/mnemo/skills/agent_hand/SKILL.md +0 -43
- package/mnemo/skills/agent_hand/run.js +0 -63
- package/mnemo/skills/book_flight/SKILL.md +0 -34
- package/mnemo/skills/external_repo_review/SKILL.md +0 -43
- package/mnemo/skills/external_repo_review/run.js +0 -73
- package/mnemo/skills/pay_invoice/SKILL.md +0 -34
- package/mnemo/team_quality_ops.js +0 -944
- package/mnemo/timeline_report_tools.js +0 -810
- package/mnemo/write_gate_risk.js +0 -80
- package/mnemo/writer_health.js +0 -152
- package/skills/doku-ingestion/SKILL.md +0 -48
- package/skills/doku-ingestion/ingest_docs.py +0 -133
|
@@ -50,4 +50,3 @@ betrifft, sonst reicht Weg 1.
|
|
|
50
50
|
dazusagen, dass es OCR ist und Unsicherheit moeglich ist.
|
|
51
51
|
- Niemals Secrets aus Bildern im Klartext wiedergeben — Fundort und Art
|
|
52
52
|
nennen, Werte maskieren.
|
|
53
|
-
- Merke dir neue Erkenntnisse zum Rezept (z.B. bessere Parameter) in Mnemo.
|
|
@@ -56,4 +56,3 @@ den, wenn er verfuegbar ist; sonst Crawl4AI auf die offizielle Doku-URL.
|
|
|
56
56
|
fremden geschuetzten Bereiche, keine Logins ohne Auftrag.
|
|
57
57
|
- Immer sagen, DASS und WIE du die Seite geladen hast (per web-lesen/Crawl4AI).
|
|
58
58
|
- Grosse Seiten: nur die relevanten Abschnitte zitieren, nicht alles dumpen.
|
|
59
|
-
- Ergebnisse/Fakten bei Bedarf in Mnemo capturen.
|
|
@@ -59216,7 +59216,7 @@ var import_out = (/* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
59216
59216
|
* BLUN_TELEGRAM_STATE_DIR at a temp dir after import.
|
|
59217
59217
|
*/
|
|
59218
59218
|
function stateDir() {
|
|
59219
|
-
return process.env
|
|
59219
|
+
return process.env["BLUN_TELEGRAM_STATE_DIR"] ?? join(homedir(), ".blun", "channels", "telegram");
|
|
59220
59220
|
}
|
|
59221
59221
|
function accessFile() {
|
|
59222
59222
|
return join(stateDir(), "access.json");
|
|
@@ -59251,7 +59251,7 @@ function sessionLog() {
|
|
|
59251
59251
|
return join(stateDir(), "session.log");
|
|
59252
59252
|
}
|
|
59253
59253
|
function workspaceDir() {
|
|
59254
|
-
return process.env
|
|
59254
|
+
return process.env["BLUN_TELEGRAM_WORKSPACE"] ?? join(stateDir(), "workspace");
|
|
59255
59255
|
}
|
|
59256
59256
|
function ensureStateDir() {
|
|
59257
59257
|
mkdirSync(stateDir(), {
|
|
@@ -59270,7 +59270,9 @@ function loadEnvFile() {
|
|
|
59270
59270
|
try {
|
|
59271
59271
|
for (const line of readFileSync(envFile(), "utf8").split(/\r?\n/)) {
|
|
59272
59272
|
const m = line.match(/^(\w+)=(.*)$/);
|
|
59273
|
-
|
|
59273
|
+
const key = m?.[1];
|
|
59274
|
+
const value = m?.[2];
|
|
59275
|
+
if (key !== void 0 && value !== void 0 && process.env[key] === void 0) process.env[key] = value.trim();
|
|
59274
59276
|
}
|
|
59275
59277
|
} catch {}
|
|
59276
59278
|
}
|
|
@@ -59280,7 +59282,7 @@ const PLACEHOLDER_RE = /replace|paste|your[-_]|xxxx/i;
|
|
|
59280
59282
|
* Telegram tokens always contain a colon (`<bot_id>:<secret>`).
|
|
59281
59283
|
*/
|
|
59282
59284
|
function botToken() {
|
|
59283
|
-
const token = process.env
|
|
59285
|
+
const token = process.env["BLUN_TELEGRAM_BOT_TOKEN"];
|
|
59284
59286
|
if (token === void 0 || token.length === 0) return void 0;
|
|
59285
59287
|
if (PLACEHOLDER_RE.test(token) || !token.includes(":")) return void 0;
|
|
59286
59288
|
return token;
|
|
@@ -67485,14 +67487,7 @@ function resolvePluginNodeLaunch(entry, pluginRoot, options = {}) {
|
|
|
67485
67487
|
env: []
|
|
67486
67488
|
};
|
|
67487
67489
|
}
|
|
67488
|
-
/**
|
|
67489
|
-
* MCP servers explicitly attached by the bridge. A bundled native launch gets
|
|
67490
|
-
* Telegram from the enabled plugin; the mnemo hub is added when
|
|
67491
|
-
* `BLUN_MNEMO_MCP` points at its mcp.js.
|
|
67492
|
-
* (King's own mnemo lane — full mem_* tool access, same durable memory as the
|
|
67493
|
-
* rest of the team). Other launches keep the direct Telegram server, and mnemo
|
|
67494
|
-
* remains optional.
|
|
67495
|
-
*/
|
|
67490
|
+
/** MCP servers explicitly attached by the bridge. */
|
|
67496
67491
|
function buildMcpServers(options = {}) {
|
|
67497
67492
|
const env = options.env ?? process.env;
|
|
67498
67493
|
const here = options.moduleDir ?? dirname(fileURLToPath(import.meta.url));
|
|
@@ -67516,19 +67511,6 @@ function buildMcpServers(options = {}) {
|
|
|
67516
67511
|
}]
|
|
67517
67512
|
});
|
|
67518
67513
|
}
|
|
67519
|
-
const mnemoEntry = env["BLUN_MNEMO_MCP"]?.trim();
|
|
67520
|
-
if (mnemoEntry !== void 0 && mnemoEntry.length > 0) {
|
|
67521
|
-
const mnemoNode = env["BLUN_MNEMO_NODE"]?.trim();
|
|
67522
|
-
servers.push({
|
|
67523
|
-
name: "mnemo",
|
|
67524
|
-
command: mnemoNode !== void 0 && mnemoNode.length > 0 ? mnemoNode : options.execPath ?? process.execPath,
|
|
67525
|
-
args: [mnemoEntry],
|
|
67526
|
-
env: [{
|
|
67527
|
-
name: "MNEMO_AGENT",
|
|
67528
|
-
value: env["BLUN_MNEMO_AGENT"]?.trim() ?? "king"
|
|
67529
|
-
}]
|
|
67530
|
-
});
|
|
67531
|
-
}
|
|
67532
67514
|
return servers;
|
|
67533
67515
|
}
|
|
67534
67516
|
/** Cheap outbox growth marker: byte size (append-only file). */
|
|
@@ -9565,12 +9565,18 @@ var require_data = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
9565
9565
|
};
|
|
9566
9566
|
}));
|
|
9567
9567
|
//#endregion
|
|
9568
|
-
//#region ../../node_modules/.pnpm/fast-uri@3.1.
|
|
9568
|
+
//#region ../../node_modules/.pnpm/fast-uri@3.1.5/node_modules/fast-uri/lib/utils.js
|
|
9569
9569
|
var require_utils$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
9570
9570
|
/** @type {(value: string) => boolean} */
|
|
9571
9571
|
const isUUID = RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu);
|
|
9572
9572
|
/** @type {(value: string) => boolean} */
|
|
9573
9573
|
const isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);
|
|
9574
|
+
/** @type {(value: string) => boolean} */
|
|
9575
|
+
const isHexPair = RegExp.prototype.test.bind(/^[\da-f]{2}$/iu);
|
|
9576
|
+
/** @type {(value: string) => boolean} */
|
|
9577
|
+
const isUnreserved = RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu);
|
|
9578
|
+
/** @type {(value: string) => boolean} */
|
|
9579
|
+
const isPathCharacter = RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);
|
|
9574
9580
|
/**
|
|
9575
9581
|
* @param {Array<string>} input
|
|
9576
9582
|
* @returns {string}
|
|
@@ -9793,19 +9799,103 @@ var require_utils$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
9793
9799
|
return output.join("");
|
|
9794
9800
|
}
|
|
9795
9801
|
/**
|
|
9796
|
-
*
|
|
9797
|
-
*
|
|
9798
|
-
*
|
|
9802
|
+
* Re-escape RFC 3986 gen-delims that must not appear literally in the host.
|
|
9803
|
+
* After the URI regex parses, these characters cannot be literal in the host
|
|
9804
|
+
* field, so any that appear after decoding came from percent-encoding and
|
|
9805
|
+
* must be restored to prevent authority structure changes.
|
|
9806
|
+
*
|
|
9807
|
+
* @param {string} host
|
|
9808
|
+
* @param {boolean} isIP - true for IPv4/IPv6 hosts (skip colon re-escaping)
|
|
9809
|
+
* @returns {string}
|
|
9799
9810
|
*/
|
|
9800
|
-
|
|
9801
|
-
|
|
9802
|
-
|
|
9803
|
-
|
|
9804
|
-
|
|
9805
|
-
|
|
9806
|
-
|
|
9807
|
-
|
|
9808
|
-
|
|
9811
|
+
const HOST_DELIMS = {
|
|
9812
|
+
"@": "%40",
|
|
9813
|
+
"/": "%2F",
|
|
9814
|
+
"?": "%3F",
|
|
9815
|
+
"#": "%23",
|
|
9816
|
+
":": "%3A"
|
|
9817
|
+
};
|
|
9818
|
+
const HOST_DELIM_RE = /[@/?#:]/g;
|
|
9819
|
+
const HOST_DELIM_NO_COLON_RE = /[@/?#]/g;
|
|
9820
|
+
function reescapeHostDelimiters(host, isIP) {
|
|
9821
|
+
const re = isIP ? HOST_DELIM_NO_COLON_RE : HOST_DELIM_RE;
|
|
9822
|
+
re.lastIndex = 0;
|
|
9823
|
+
return host.replace(re, (ch) => HOST_DELIMS[ch]);
|
|
9824
|
+
}
|
|
9825
|
+
/**
|
|
9826
|
+
* Normalizes percent escapes and optionally decodes only unreserved ASCII bytes.
|
|
9827
|
+
* Reserved delimiters such as `%2F` and `%2E` stay escaped.
|
|
9828
|
+
*
|
|
9829
|
+
* @param {string} input
|
|
9830
|
+
* @param {boolean} [decodeUnreserved=false]
|
|
9831
|
+
* @returns {string}
|
|
9832
|
+
*/
|
|
9833
|
+
function normalizePercentEncoding(input, decodeUnreserved = false) {
|
|
9834
|
+
if (input.indexOf("%") === -1) return input;
|
|
9835
|
+
let output = "";
|
|
9836
|
+
for (let i = 0; i < input.length; i++) {
|
|
9837
|
+
if (input[i] === "%" && i + 2 < input.length) {
|
|
9838
|
+
const hex = input.slice(i + 1, i + 3);
|
|
9839
|
+
if (isHexPair(hex)) {
|
|
9840
|
+
const normalizedHex = hex.toUpperCase();
|
|
9841
|
+
const decoded = String.fromCharCode(parseInt(normalizedHex, 16));
|
|
9842
|
+
if (decodeUnreserved && isUnreserved(decoded)) output += decoded;
|
|
9843
|
+
else output += "%" + normalizedHex;
|
|
9844
|
+
i += 2;
|
|
9845
|
+
continue;
|
|
9846
|
+
}
|
|
9847
|
+
}
|
|
9848
|
+
output += input[i];
|
|
9849
|
+
}
|
|
9850
|
+
return output;
|
|
9851
|
+
}
|
|
9852
|
+
/**
|
|
9853
|
+
* Normalizes path data without turning reserved escapes into live path syntax.
|
|
9854
|
+
* Valid escapes are uppercased, raw unsafe characters are escaped, and only
|
|
9855
|
+
* unreserved bytes that are not `.` are decoded.
|
|
9856
|
+
*
|
|
9857
|
+
* @param {string} input
|
|
9858
|
+
* @returns {string}
|
|
9859
|
+
*/
|
|
9860
|
+
function normalizePathEncoding(input) {
|
|
9861
|
+
let output = "";
|
|
9862
|
+
for (let i = 0; i < input.length; i++) {
|
|
9863
|
+
if (input[i] === "%" && i + 2 < input.length) {
|
|
9864
|
+
const hex = input.slice(i + 1, i + 3);
|
|
9865
|
+
if (isHexPair(hex)) {
|
|
9866
|
+
const normalizedHex = hex.toUpperCase();
|
|
9867
|
+
const decoded = String.fromCharCode(parseInt(normalizedHex, 16));
|
|
9868
|
+
if (decoded !== "." && isUnreserved(decoded)) output += decoded;
|
|
9869
|
+
else output += "%" + normalizedHex;
|
|
9870
|
+
i += 2;
|
|
9871
|
+
continue;
|
|
9872
|
+
}
|
|
9873
|
+
}
|
|
9874
|
+
if (isPathCharacter(input[i])) output += input[i];
|
|
9875
|
+
else output += escape(input[i]);
|
|
9876
|
+
}
|
|
9877
|
+
return output;
|
|
9878
|
+
}
|
|
9879
|
+
/**
|
|
9880
|
+
* Escapes a component while preserving existing valid percent escapes.
|
|
9881
|
+
*
|
|
9882
|
+
* @param {string} input
|
|
9883
|
+
* @returns {string}
|
|
9884
|
+
*/
|
|
9885
|
+
function escapePreservingEscapes(input) {
|
|
9886
|
+
let output = "";
|
|
9887
|
+
for (let i = 0; i < input.length; i++) {
|
|
9888
|
+
if (input[i] === "%" && i + 2 < input.length) {
|
|
9889
|
+
const hex = input.slice(i + 1, i + 3);
|
|
9890
|
+
if (isHexPair(hex)) {
|
|
9891
|
+
output += "%" + hex.toUpperCase();
|
|
9892
|
+
i += 2;
|
|
9893
|
+
continue;
|
|
9894
|
+
}
|
|
9895
|
+
}
|
|
9896
|
+
output += escape(input[i]);
|
|
9897
|
+
}
|
|
9898
|
+
return output;
|
|
9809
9899
|
}
|
|
9810
9900
|
/**
|
|
9811
9901
|
* @param {import('../types/index').URIComponent} component
|
|
@@ -9822,7 +9912,7 @@ var require_utils$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
9822
9912
|
if (!isIPv4(host)) {
|
|
9823
9913
|
const ipV6res = normalizeIPv6(host);
|
|
9824
9914
|
if (ipV6res.isIPV6 === true) host = `[${ipV6res.escapedHost}]`;
|
|
9825
|
-
else host =
|
|
9915
|
+
else host = reescapeHostDelimiters(host, false);
|
|
9826
9916
|
}
|
|
9827
9917
|
uriTokens.push(host);
|
|
9828
9918
|
}
|
|
@@ -9835,7 +9925,10 @@ var require_utils$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
9835
9925
|
module.exports = {
|
|
9836
9926
|
nonSimpleDomain,
|
|
9837
9927
|
recomposeAuthority,
|
|
9838
|
-
|
|
9928
|
+
reescapeHostDelimiters,
|
|
9929
|
+
normalizePercentEncoding,
|
|
9930
|
+
normalizePathEncoding,
|
|
9931
|
+
escapePreservingEscapes,
|
|
9839
9932
|
removeDotSegments,
|
|
9840
9933
|
isIPv4,
|
|
9841
9934
|
isUUID,
|
|
@@ -9844,7 +9937,7 @@ var require_utils$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
9844
9937
|
};
|
|
9845
9938
|
}));
|
|
9846
9939
|
//#endregion
|
|
9847
|
-
//#region ../../node_modules/.pnpm/fast-uri@3.1.
|
|
9940
|
+
//#region ../../node_modules/.pnpm/fast-uri@3.1.5/node_modules/fast-uri/lib/schemes.js
|
|
9848
9941
|
var require_schemes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
9849
9942
|
const { isUUID } = require_utils$1();
|
|
9850
9943
|
const URN_REG = /([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;
|
|
@@ -10027,9 +10120,9 @@ var require_schemes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
10027
10120
|
};
|
|
10028
10121
|
}));
|
|
10029
10122
|
//#endregion
|
|
10030
|
-
//#region ../../node_modules/.pnpm/fast-uri@3.1.
|
|
10123
|
+
//#region ../../node_modules/.pnpm/fast-uri@3.1.5/node_modules/fast-uri/index.js
|
|
10031
10124
|
var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
10032
|
-
const { normalizeIPv6, removeDotSegments, recomposeAuthority,
|
|
10125
|
+
const { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, escapePreservingEscapes, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils$1();
|
|
10033
10126
|
const { SCHEMES, getSchemeHandler } = require_schemes();
|
|
10034
10127
|
/**
|
|
10035
10128
|
* @template {import('./types/index').URIComponent|string} T
|
|
@@ -10038,7 +10131,7 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
10038
10131
|
* @returns {T}
|
|
10039
10132
|
*/
|
|
10040
10133
|
function normalize(uri, options) {
|
|
10041
|
-
if (typeof uri === "string") uri =
|
|
10134
|
+
if (typeof uri === "string") uri = normalizeString(uri, options);
|
|
10042
10135
|
else if (typeof uri === "object") uri = parse(serialize(uri, options), options);
|
|
10043
10136
|
return uri;
|
|
10044
10137
|
}
|
|
@@ -10050,7 +10143,10 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
10050
10143
|
*/
|
|
10051
10144
|
function resolve(baseURI, relativeURI, options) {
|
|
10052
10145
|
const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
|
|
10053
|
-
const
|
|
10146
|
+
const { parsed: baseParsed, malformedAuthorityOrPort: baseMalformed } = parseWithStatus(baseURI, schemelessOptions);
|
|
10147
|
+
const { parsed: relativeParsed, malformedAuthorityOrPort: relativeMalformed } = parseWithStatus(relativeURI, schemelessOptions);
|
|
10148
|
+
if (baseMalformed || relativeMalformed) throw new Error(baseParsed.error || relativeParsed.error || "URI is malformed.");
|
|
10149
|
+
const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true);
|
|
10054
10150
|
schemelessOptions.skipEscape = true;
|
|
10055
10151
|
return serialize(resolved, schemelessOptions);
|
|
10056
10152
|
}
|
|
@@ -10114,27 +10210,9 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
10114
10210
|
* @returns {boolean}
|
|
10115
10211
|
*/
|
|
10116
10212
|
function equal(uriA, uriB, options) {
|
|
10117
|
-
|
|
10118
|
-
|
|
10119
|
-
|
|
10120
|
-
...options,
|
|
10121
|
-
skipEscape: true
|
|
10122
|
-
});
|
|
10123
|
-
} else if (typeof uriA === "object") uriA = serialize(normalizeComponentEncoding(uriA, true), {
|
|
10124
|
-
...options,
|
|
10125
|
-
skipEscape: true
|
|
10126
|
-
});
|
|
10127
|
-
if (typeof uriB === "string") {
|
|
10128
|
-
uriB = unescape(uriB);
|
|
10129
|
-
uriB = serialize(normalizeComponentEncoding(parse(uriB, options), true), {
|
|
10130
|
-
...options,
|
|
10131
|
-
skipEscape: true
|
|
10132
|
-
});
|
|
10133
|
-
} else if (typeof uriB === "object") uriB = serialize(normalizeComponentEncoding(uriB, true), {
|
|
10134
|
-
...options,
|
|
10135
|
-
skipEscape: true
|
|
10136
|
-
});
|
|
10137
|
-
return uriA.toLowerCase() === uriB.toLowerCase();
|
|
10213
|
+
const normalizedA = normalizeComparableURI(uriA, options);
|
|
10214
|
+
const normalizedB = normalizeComparableURI(uriB, options);
|
|
10215
|
+
return normalizedA !== void 0 && normalizedB !== void 0 && normalizedA.toLowerCase() === normalizedB.toLowerCase();
|
|
10138
10216
|
}
|
|
10139
10217
|
/**
|
|
10140
10218
|
* @param {Readonly<import('./types/index').URIComponent>} cmpts
|
|
@@ -10163,9 +10241,9 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
10163
10241
|
const schemeHandler = getSchemeHandler(options.scheme || component.scheme);
|
|
10164
10242
|
if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options);
|
|
10165
10243
|
if (component.path !== void 0) if (!options.skipEscape) {
|
|
10166
|
-
component.path =
|
|
10244
|
+
component.path = escapePreservingEscapes(component.path);
|
|
10167
10245
|
if (component.scheme !== void 0) component.path = component.path.split("%3A").join(":");
|
|
10168
|
-
} else component.path =
|
|
10246
|
+
} else component.path = normalizePercentEncoding(component.path);
|
|
10169
10247
|
if (options.reference !== "suffix" && component.scheme) uriTokens.push(component.scheme, ":");
|
|
10170
10248
|
const authority = recomposeAuthority(component);
|
|
10171
10249
|
if (authority !== void 0) {
|
|
@@ -10184,12 +10262,23 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
10184
10262
|
return uriTokens.join("");
|
|
10185
10263
|
}
|
|
10186
10264
|
const URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;
|
|
10265
|
+
const AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\/\/([^/?#]*)/;
|
|
10266
|
+
const AUTHORITY_INTRODUCER_REGION = /^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;
|
|
10267
|
+
/**
|
|
10268
|
+
* @param {import('./types/index').URIComponent} parsed
|
|
10269
|
+
* @param {RegExpMatchArray} matches
|
|
10270
|
+
* @returns {string|undefined}
|
|
10271
|
+
*/
|
|
10272
|
+
function getParseError(parsed, matches) {
|
|
10273
|
+
if (matches[2] !== void 0 && parsed.path && parsed.path[0] !== "/") return "URI path must start with \"/\" when authority is present.";
|
|
10274
|
+
if (typeof parsed.port === "number" && (parsed.port < 0 || parsed.port > 65535)) return "URI port is malformed.";
|
|
10275
|
+
}
|
|
10187
10276
|
/**
|
|
10188
10277
|
* @param {string} uri
|
|
10189
10278
|
* @param {import('./types/index').Options} [opts]
|
|
10190
|
-
* @returns
|
|
10279
|
+
* @returns {{ parsed: import('./types/index').URIComponent, malformedAuthorityOrPort: boolean }}
|
|
10191
10280
|
*/
|
|
10192
|
-
function
|
|
10281
|
+
function parseWithStatus(uri, opts) {
|
|
10193
10282
|
const options = Object.assign({}, opts);
|
|
10194
10283
|
/** @type {import('./types/index').URIComponent} */
|
|
10195
10284
|
const parsed = {
|
|
@@ -10201,9 +10290,29 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
10201
10290
|
query: void 0,
|
|
10202
10291
|
fragment: void 0
|
|
10203
10292
|
};
|
|
10293
|
+
let malformedAuthorityOrPort = false;
|
|
10204
10294
|
let isIP = false;
|
|
10205
10295
|
if (options.reference === "suffix") if (options.scheme) uri = options.scheme + ":" + uri;
|
|
10206
10296
|
else uri = "//" + uri;
|
|
10297
|
+
const authorityMatch = uri.match(AUTHORITY_PREFIX);
|
|
10298
|
+
if (authorityMatch !== null && authorityMatch[1].indexOf("\\") !== -1) {
|
|
10299
|
+
parsed.error = "URI authority must not contain a literal backslash.";
|
|
10300
|
+
malformedAuthorityOrPort = true;
|
|
10301
|
+
}
|
|
10302
|
+
const introducerMatch = uri.match(AUTHORITY_INTRODUCER_REGION);
|
|
10303
|
+
if (introducerMatch !== null) {
|
|
10304
|
+
const region = introducerMatch[1];
|
|
10305
|
+
const normalizedRegion = region.replace(/[\t\n\r]/g, "");
|
|
10306
|
+
if (normalizedRegion.length >= 2) {
|
|
10307
|
+
if (normalizedRegion.slice(0, 2) !== "//") {
|
|
10308
|
+
parsed.error = parsed.error || "URI authority must not contain a literal backslash.";
|
|
10309
|
+
malformedAuthorityOrPort = true;
|
|
10310
|
+
} else if (region.length !== normalizedRegion.length) {
|
|
10311
|
+
parsed.error = parsed.error || "URI authority introducer must not contain whitespace.";
|
|
10312
|
+
malformedAuthorityOrPort = true;
|
|
10313
|
+
}
|
|
10314
|
+
}
|
|
10315
|
+
}
|
|
10207
10316
|
const matches = uri.match(URI_PARSE);
|
|
10208
10317
|
if (matches) {
|
|
10209
10318
|
parsed.scheme = matches[1];
|
|
@@ -10214,6 +10323,11 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
10214
10323
|
parsed.query = matches[7];
|
|
10215
10324
|
parsed.fragment = matches[8];
|
|
10216
10325
|
if (isNaN(parsed.port)) parsed.port = matches[5];
|
|
10326
|
+
const parseError = getParseError(parsed, matches);
|
|
10327
|
+
if (parseError !== void 0) {
|
|
10328
|
+
parsed.error = parsed.error || parseError;
|
|
10329
|
+
malformedAuthorityOrPort = true;
|
|
10330
|
+
}
|
|
10217
10331
|
if (parsed.host) if (isIPv4(parsed.host) === false) {
|
|
10218
10332
|
const ipv6result = normalizeIPv6(parsed.host);
|
|
10219
10333
|
parsed.host = ipv6result.host.toLowerCase();
|
|
@@ -10227,7 +10341,7 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
10227
10341
|
const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme);
|
|
10228
10342
|
if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
|
|
10229
10343
|
if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) try {
|
|
10230
|
-
parsed.host = URL
|
|
10344
|
+
parsed.host = new URL("http://" + parsed.host).hostname;
|
|
10231
10345
|
} catch (e) {
|
|
10232
10346
|
parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
|
|
10233
10347
|
}
|
|
@@ -10235,14 +10349,61 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
10235
10349
|
if (!schemeHandler || schemeHandler && !schemeHandler.skipNormalize) {
|
|
10236
10350
|
if (uri.indexOf("%") !== -1) {
|
|
10237
10351
|
if (parsed.scheme !== void 0) parsed.scheme = unescape(parsed.scheme);
|
|
10238
|
-
if (parsed.host !== void 0) parsed.host = unescape(parsed.host);
|
|
10352
|
+
if (parsed.host !== void 0) parsed.host = reescapeHostDelimiters(unescape(parsed.host), isIP);
|
|
10353
|
+
}
|
|
10354
|
+
if (parsed.path) parsed.path = normalizePathEncoding(parsed.path);
|
|
10355
|
+
if (parsed.fragment) try {
|
|
10356
|
+
parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment));
|
|
10357
|
+
} catch {
|
|
10358
|
+
parsed.error = parsed.error || "URI malformed";
|
|
10239
10359
|
}
|
|
10240
|
-
if (parsed.path) parsed.path = escape(unescape(parsed.path));
|
|
10241
|
-
if (parsed.fragment) parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment));
|
|
10242
10360
|
}
|
|
10243
10361
|
if (schemeHandler && schemeHandler.parse) schemeHandler.parse(parsed, options);
|
|
10244
10362
|
} else parsed.error = parsed.error || "URI can not be parsed.";
|
|
10245
|
-
return
|
|
10363
|
+
return {
|
|
10364
|
+
parsed,
|
|
10365
|
+
malformedAuthorityOrPort
|
|
10366
|
+
};
|
|
10367
|
+
}
|
|
10368
|
+
/**
|
|
10369
|
+
* @param {string} uri
|
|
10370
|
+
* @param {import('./types/index').Options} [opts]
|
|
10371
|
+
* @returns
|
|
10372
|
+
*/
|
|
10373
|
+
function parse(uri, opts) {
|
|
10374
|
+
return parseWithStatus(uri, opts).parsed;
|
|
10375
|
+
}
|
|
10376
|
+
/**
|
|
10377
|
+
* @param {string} uri
|
|
10378
|
+
* @param {import('./types/index').Options} [opts]
|
|
10379
|
+
* @returns {string}
|
|
10380
|
+
*/
|
|
10381
|
+
function normalizeString(uri, opts) {
|
|
10382
|
+
return normalizeStringWithStatus(uri, opts).normalized;
|
|
10383
|
+
}
|
|
10384
|
+
/**
|
|
10385
|
+
* @param {string} uri
|
|
10386
|
+
* @param {import('./types/index').Options} [opts]
|
|
10387
|
+
* @returns {{ normalized: string, malformedAuthorityOrPort: boolean }}
|
|
10388
|
+
*/
|
|
10389
|
+
function normalizeStringWithStatus(uri, opts) {
|
|
10390
|
+
const { parsed, malformedAuthorityOrPort } = parseWithStatus(uri, opts);
|
|
10391
|
+
return {
|
|
10392
|
+
normalized: malformedAuthorityOrPort ? uri : serialize(parsed, opts),
|
|
10393
|
+
malformedAuthorityOrPort
|
|
10394
|
+
};
|
|
10395
|
+
}
|
|
10396
|
+
/**
|
|
10397
|
+
* @param {import ('./types/index').URIComponent|string} uri
|
|
10398
|
+
* @param {import('./types/index').Options} [opts]
|
|
10399
|
+
* @returns {string|undefined}
|
|
10400
|
+
*/
|
|
10401
|
+
function normalizeComparableURI(uri, opts) {
|
|
10402
|
+
if (typeof uri === "string") {
|
|
10403
|
+
const { normalized, malformedAuthorityOrPort } = normalizeStringWithStatus(uri, opts);
|
|
10404
|
+
return malformedAuthorityOrPort ? void 0 : normalized;
|
|
10405
|
+
}
|
|
10406
|
+
if (typeof uri === "object") return serialize(uri, opts);
|
|
10246
10407
|
}
|
|
10247
10408
|
const fastUri = {
|
|
10248
10409
|
SCHEMES,
|
|
@@ -72894,7 +73055,7 @@ var import_out = (/* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
72894
73055
|
* BLUN_TELEGRAM_STATE_DIR at a temp dir after import.
|
|
72895
73056
|
*/
|
|
72896
73057
|
function stateDir() {
|
|
72897
|
-
return process.env
|
|
73058
|
+
return process.env["BLUN_TELEGRAM_STATE_DIR"] ?? join(homedir(), ".blun", "channels", "telegram");
|
|
72898
73059
|
}
|
|
72899
73060
|
function accessFile() {
|
|
72900
73061
|
return join(stateDir(), "access.json");
|
|
@@ -72925,7 +73086,9 @@ function loadEnvFile() {
|
|
|
72925
73086
|
try {
|
|
72926
73087
|
for (const line of readFileSync(envFile(), "utf8").split(/\r?\n/)) {
|
|
72927
73088
|
const m = line.match(/^(\w+)=(.*)$/);
|
|
72928
|
-
|
|
73089
|
+
const key = m?.[1];
|
|
73090
|
+
const value = m?.[2];
|
|
73091
|
+
if (key !== void 0 && value !== void 0 && process.env[key] === void 0) process.env[key] = value.trim();
|
|
72929
73092
|
}
|
|
72930
73093
|
} catch {}
|
|
72931
73094
|
}
|
|
@@ -72935,7 +73098,7 @@ const PLACEHOLDER_RE = /replace|paste|your[-_]|xxxx/i;
|
|
|
72935
73098
|
* Telegram tokens always contain a colon (`<bot_id>:<secret>`).
|
|
72936
73099
|
*/
|
|
72937
73100
|
function botToken() {
|
|
72938
|
-
const token = process.env
|
|
73101
|
+
const token = process.env["BLUN_TELEGRAM_BOT_TOKEN"];
|
|
72939
73102
|
if (token === void 0 || token.length === 0) return void 0;
|
|
72940
73103
|
if (PLACEHOLDER_RE.test(token) || !token.includes(":")) return void 0;
|
|
72941
73104
|
return token;
|
|
@@ -73398,25 +73561,25 @@ async function runTool(api, token, name, args) {
|
|
|
73398
73561
|
switch (name) {
|
|
73399
73562
|
case "reply": return runReply(api, args);
|
|
73400
73563
|
case "react":
|
|
73401
|
-
assertAllowedChat(args
|
|
73402
|
-
await api.setMessageReaction(args
|
|
73564
|
+
assertAllowedChat(args["chat_id"]);
|
|
73565
|
+
await api.setMessageReaction(args["chat_id"], Number(args["message_id"]), [{
|
|
73403
73566
|
type: "emoji",
|
|
73404
|
-
emoji: args
|
|
73567
|
+
emoji: args["emoji"]
|
|
73405
73568
|
}]);
|
|
73406
73569
|
return "reacted";
|
|
73407
|
-
case "download_attachment": return runDownload(api, token, args
|
|
73570
|
+
case "download_attachment": return runDownload(api, token, args["file_id"]);
|
|
73408
73571
|
case "edit_message": {
|
|
73409
|
-
assertAllowedChat(args
|
|
73410
|
-
assertTelegramLanguageReleased(args
|
|
73411
|
-
const parseMode = args
|
|
73412
|
-
const edited = await api.editMessageText(args
|
|
73413
|
-
const id = typeof edited === "object" ? edited.message_id : args
|
|
73572
|
+
assertAllowedChat(args["chat_id"]);
|
|
73573
|
+
assertTelegramLanguageReleased(args["text"], args["release_token"]);
|
|
73574
|
+
const parseMode = args["format"] === "markdownv2" ? "MarkdownV2" : void 0;
|
|
73575
|
+
const edited = await api.editMessageText(args["chat_id"], Number(args["message_id"]), args["text"], parseMode !== void 0 ? { parse_mode: parseMode } : void 0);
|
|
73576
|
+
const id = typeof edited === "object" ? edited.message_id : args["message_id"];
|
|
73414
73577
|
appendJsonl(outboxLog(), {
|
|
73415
73578
|
direction: "out",
|
|
73416
73579
|
kind: "edit",
|
|
73417
|
-
chat_id: args
|
|
73580
|
+
chat_id: args["chat_id"],
|
|
73418
73581
|
message_id: id,
|
|
73419
|
-
text: args
|
|
73582
|
+
text: args["text"]
|
|
73420
73583
|
});
|
|
73421
73584
|
return `edited (id: ${String(id)})`;
|
|
73422
73585
|
}
|
|
@@ -73454,11 +73617,11 @@ function isRecentDuplicate(chatId, text) {
|
|
|
73454
73617
|
return false;
|
|
73455
73618
|
}
|
|
73456
73619
|
async function runReply(api, args) {
|
|
73457
|
-
const chatId = args
|
|
73458
|
-
const text = args
|
|
73459
|
-
const replyTo = args
|
|
73460
|
-
const files = args
|
|
73461
|
-
const parseMode = args
|
|
73620
|
+
const chatId = args["chat_id"];
|
|
73621
|
+
const text = args["text"];
|
|
73622
|
+
const replyTo = args["reply_to"] !== null && args["reply_to"] !== void 0 ? Number(args["reply_to"]) : void 0;
|
|
73623
|
+
const files = args["files"] ?? [];
|
|
73624
|
+
const parseMode = args["format"] === "markdownv2" ? "MarkdownV2" : void 0;
|
|
73462
73625
|
assertAllowedChat(chatId);
|
|
73463
73626
|
if (files.length === 0 && isGroupChat(chatId) && isGroupNoiseReply(text)) {
|
|
73464
73627
|
appendJsonl(outboxLog(), {
|
|
@@ -73478,7 +73641,7 @@ async function runReply(api, args) {
|
|
|
73478
73641
|
});
|
|
73479
73642
|
return "already delivered: an identical message was sent to this chat moments ago — do NOT send it again";
|
|
73480
73643
|
}
|
|
73481
|
-
assertTelegramLanguageReleased(text, args
|
|
73644
|
+
assertTelegramLanguageReleased(text, args["release_token"]);
|
|
73482
73645
|
for (const file of files) {
|
|
73483
73646
|
assertSendable(file);
|
|
73484
73647
|
const info = statSync(file);
|
|
@@ -73493,7 +73656,9 @@ async function runReply(api, args) {
|
|
|
73493
73656
|
try {
|
|
73494
73657
|
for (let i = 0; i < chunks.length; i++) {
|
|
73495
73658
|
const shouldReplyTo = replyTo !== void 0 && replyMode !== "off" && (replyMode === "all" || i === 0);
|
|
73496
|
-
const
|
|
73659
|
+
const chunkText = chunks[i];
|
|
73660
|
+
if (chunkText === void 0) continue;
|
|
73661
|
+
const sent = await api.sendMessage(chatId, chunkText, {
|
|
73497
73662
|
...shouldReplyTo ? { reply_parameters: { message_id: replyTo } } : {},
|
|
73498
73663
|
...parseMode !== void 0 ? { parse_mode: parseMode } : {}
|
|
73499
73664
|
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{T as ln,V as an,W as z,X as q,Y as X,$ as un,a0 as y,a1 as tn,a2 as F,a3 as _,a4 as rn,a5 as o,a6 as on,a7 as sn,a8 as fn}from"./mermaid.core-D_lKT0dR.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,Y,a){var O=I-l,i=D-h,n=Y-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function M(l,h,I,D,v,A,Y){var a=l-I,O=h-D,i=(Y?A:-A)/F(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,$=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*F(on(0,T*T*R-P*P)),V=(P*g-m*S)/R,W=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=V-$,e=W-t,r=w-$,j=p-t;return x*x+e*e>r*r+j*j&&(V=w,W=p),{cx:V,cy:W,x01:-n,y01:-d,x11:V*(v/T-1),y11:W*(v/T-1)}}function hn(){var l=cn,h=yn,I=X(0),D=null,v=gn,A=dn,Y=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,$=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if($>tn-y)a.moveTo(s*z(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*z(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=$,S=$,V=Y.apply(this,arguments)/2,W=V>y&&(D?+D.apply(this,arguments):F(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(W>y){var j=sn(W/u*q(V)),G=sn(W/s*q(V));(P-=j*2)>y?(j*=t?1:-1,R+=j,T-=j):(P=0,R=T=(f+c)/2),(S-=G*2)>y?(G*=t?1:-1,m+=G,g-=G):(S=0,m=g=(f+c)/2)}var B=s*z(m),C=s*q(m),H=u*z(T),J=u*q(T);if(w>y){var K=s*z(g),L=s*q(g),N=u*z(R),Q=u*q(R),E;if($<an)if(E=pn(B,C,N,Q,K,L,H,J)){var U=B-E[0],Z=C-E[1],k=K-E[0],b=L-E[1],nn=1/q(fn((U*k+Z*b)/(F(U*U+Z*Z)*F(k*k+b*b)))/2),en=F(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=M(N,Q,B,C,s,x,t),r=M(K,L,H,J,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(B,C),a.arc(0,0,s,m,g,!t)):a.moveTo(B,C),!(u>y)||!(P>y)?a.lineTo(H,J):p>y?(e=M(H,J,K,L,u,-p,t),r=M(B,C,N,Q,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[z(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:X(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:X(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:X(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:X(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:X(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:X(+n),i):A},i.padAngle=function(n){return arguments.length?(Y=typeof n=="function"?n:X(+n),i):Y},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a0 as ln,a1 as an,a2 as y,a3 as tn,a4 as H,a5 as q,a6 as _,a7 as un,a8 as rn,a9 as L,aa as o,ab as B,ac as sn,ad as on,ae as fn}from"./mermaidParser.worker-Dx4jPi9z.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,C,a){var O=I-l,i=D-h,n=C-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function W(l,h,I,D,v,A,C){var a=l-I,O=h-D,i=(C?A:-A)/L(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,F=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*L(fn(0,T*T*R-P*P)),j=(P*g-m*S)/R,z=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=j-F,e=z-t,r=w-F,G=p-t;return x*x+e*e>r*r+G*G&&(j=w,z=p),{cx:j,cy:z,x01:-n,y01:-d,x11:j*(v/T-1),y11:z*(v/T-1)}}function hn(){var l=cn,h=yn,I=B(0),D=null,v=gn,A=dn,C=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,F=un(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(F>tn-y)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>y&&(D?+D.apply(this,arguments):L(u*u+s*s)),w=_(un(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(z>y){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>y?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>y?(M*=t?1:-1,m+=M,g-=M):(S=0,m=g=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>y){var U=s*H(g),V=s*q(g),X=u*H(R),Y=u*q(R),E;if(F<rn)if(E=pn(J,K,X,Y,U,V,N,Q)){var Z=J-E[0],$=K-E[1],b=U-E[0],k=V-E[1],nn=1/q(on((Z*b+$*k)/(L(Z*Z+$*$)*L(b*b+k*k)))/2),en=L(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(J,K),a.arc(0,0,s,m,g,!t)):a.moveTo(J,K),!(u>y)||!(P>y)?a.lineTo(N,Q):p>y?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[H(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:B(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),i):A},i.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),i):C},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|