Add HeXi bot codebase: custom plugins, web frontends, tests

- hexi core: message handling, rate limiting, cooldown, plugin manager
- Custom plugins: BF stats, daily check-in, quotes, persona cards, etc.
- Community plugins vendored under hexi/plugins with local fixes
- Web admin frontends (learning-chat, persona-admin), unified hexi/web
- Tests for rate_limit/cooldown/memes/persona; poetry.lock

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-09-01 13:13:40 +08:00
co-authored by Claude
parent 1783c60afa
commit b61d09f09f
3201 changed files with 160436 additions and 171 deletions
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000" overflow="visible"><g class="svelte-1cr2wym" style=""><g transform="translate(500 500) scale(1 1)" class="svelte-1cr2wym"><g transform="translate(-500 -500)" class="svelte-1cr2wym"><clipPath id="svgIc_clipShape_2092"><path d="M940,500c0,243-197,440-440,440S60,743,60,500,257,60,500,60,940,257,940,500Z" transform="scale(1 1)" class="svelte-1cr2wym"></path></clipPath><clipPath id="svgIc_clipShapeBG_2092"><path d="M940,500c0,243-197,440-440,440S60,743,60,500,257,60,500,60,940,257,940,500Z" transform="scale(0.96 0.96)" transform-origin="center center" class="svelte-1cr2wym"></path></clipPath><g style="opacity: 0.4; "><path id="icDrop2092" d="M940,500c0,243-197,440-440,440S60,743,60,500,257,60,500,60,940,257,940,500Z" fill="#ff9f00" stroke="#ff9f00" stroke-width="72" paint-order="stroke"></path></g><g clip-path="url('#svgIc_clipShape_2092')" style="opacity: 1;"><path id="icBack2092" d="M940,500c0,243-197,440-440,440S60,743,60,500,257,60,500,60,940,257,940,500Z" fill="#282828"></path></g><g clip-path="url('#svgIc_clipShape_2092')"><g transform="scale(1 1)" transform-origin="center center" class="svelte-1cr2wym"><g style="opacity: 1; color: #ff9900; "> <g style=" pointer-events: none; " class="noselect notouch svelte-1fita6j" opacity="1"><g transform="scale(1 1)" class="svelte-1fita6j"><g transform="translate(500 500) scale(1 1)" class="svelte-1fita6j"><g opacity="1" transform="translate(-500 -500)" class="svelte-1fita6j"><g clip-path="url('#svgIc_clipShape_2093')"><g style="color: ;"><path class="anim_target svelte-1fita6j" id="icPath12093i0" d="M261,327l-11-36c-1-3-3-6-5-10l-53,13-2-4,47-30c-12-26-28-45-57-57,86-3,208,47,229,130l-28-12c1,62-1,120,32,173l8,47c-56-30-93-78-134-122l-39,27-4-3,30-46-8-39-52,17ZM586,493l-7,49c56-29,92-79,134-121l40,27,4-4-29-45c4-13-2-28,11-38l49,17-48-51,15-45,55,13v-4l-47-30c13-27,31-44,57-59-113,6-211,59-229,133l24-11C623,384,611,455,586,493ZM342,628l17,26,5-25,49-20V577c-50-23-93-53-119-102-60,28-106,83-110,131l42-10v47l33-31,31,15,4,29C315,649,320,627,342,628Zm241-49,2,31,49,19,5,24,18-25c22,0,27,24,45,27l6-30,31-13,34,31V595l47,12c-23-61-57-106-116-134C678,527,632,554,583,579ZM517,467l-17-29-19,31c-22,0-22,0-46-12l12,27-16,22c50,24,121,23,136-1l-15-23,16-31C548,462,536,476,517,467ZM427,668H412l-7,36-28-13c6,56,42,120,83,146-24-37-41-74-50-115l20-25Zm166,36-7-37-15,3v30l18,22c-8,42-28,78-46,116,42-41,72-87,81-147ZM479,560l-34-16,3,33,34,16Zm38,34,34-18,2-32-34,16Zm-70,66c13,22,17,49,34,74V676C465,661,465,661,447,659Zm75,71,31-79-35,18v58ZM478,613l-31-13c-5,30,14,35,37,44Zm38,27c36-11,36-11,34-41l-29,14Z" style="pointer-events: none;" stroke-miterlimit="1.77" fill="currentColor" stroke="currentColor" stroke-width="0" stroke-linecap="round" stroke-linejoin="miter" transform="translate(60 90) scale(0.88)"></path></g></g><title>Dragonroach</title></g></g></g></g></g></g></g></g></g><title>Dragonroach</title></g><title>Dragonroach</title></svg>

After

Width:  |  Height:  |  Size: 2.9 KiB