gitextract_wetyu4kh/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── 1.bug.yml │ │ └── 2.feature.yml │ └── workflows/ │ ├── deploy-image-arm.yml │ └── deploy-image.yml ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── agent/ │ ├── chat/ │ │ ├── __init__.py │ │ └── service.py │ ├── memory/ │ │ ├── __init__.py │ │ ├── chunker.py │ │ ├── config.py │ │ ├── conversation_store.py │ │ ├── embedding.py │ │ ├── manager.py │ │ ├── service.py │ │ ├── storage.py │ │ └── summarizer.py │ ├── prompt/ │ │ ├── __init__.py │ │ ├── builder.py │ │ └── workspace.py │ ├── protocol/ │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── agent_stream.py │ │ ├── context.py │ │ ├── message_utils.py │ │ ├── models.py │ │ ├── result.py │ │ └── task.py │ ├── skills/ │ │ ├── __init__.py │ │ ├── config.py │ │ ├── formatter.py │ │ ├── frontmatter.py │ │ ├── loader.py │ │ ├── manager.py │ │ ├── service.py │ │ └── types.py │ └── tools/ │ ├── __init__.py │ ├── base_tool.py │ ├── bash/ │ │ ├── __init__.py │ │ └── bash.py │ ├── browser_tool.py │ ├── edit/ │ │ ├── __init__.py │ │ └── edit.py │ ├── env_config/ │ │ ├── __init__.py │ │ └── env_config.py │ ├── ls/ │ │ ├── __init__.py │ │ └── ls.py │ ├── memory/ │ │ ├── __init__.py │ │ ├── memory_get.py │ │ └── memory_search.py │ ├── read/ │ │ ├── __init__.py │ │ └── read.py │ ├── scheduler/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── integration.py │ │ ├── scheduler_service.py │ │ ├── scheduler_tool.py │ │ └── task_store.py │ ├── send/ │ │ ├── __init__.py │ │ └── send.py │ ├── tool_manager.py │ ├── utils/ │ │ ├── __init__.py │ │ ├── diff.py │ │ └── truncate.py │ ├── vision/ │ │ ├── __init__.py │ │ └── vision.py │ ├── web_fetch/ │ │ ├── __init__.py │ │ └── web_fetch.py │ ├── web_search/ │ │ ├── __init__.py │ │ └── web_search.py │ └── write/ │ ├── __init__.py │ └── write.py ├── app.py ├── bridge/ │ ├── agent_bridge.py │ ├── agent_event_handler.py │ ├── agent_initializer.py │ ├── bridge.py │ ├── context.py │ └── reply.py ├── channel/ │ ├── channel.py │ ├── channel_factory.py │ ├── chat_channel.py │ ├── chat_message.py │ ├── dingtalk/ │ │ ├── dingtalk_channel.py │ │ └── dingtalk_message.py │ ├── feishu/ │ │ ├── README.md │ │ ├── feishu_channel.py │ │ └── feishu_message.py │ ├── file_cache.py │ ├── qq/ │ │ ├── __init__.py │ │ ├── qq_channel.py │ │ └── qq_message.py │ ├── terminal/ │ │ └── terminal_channel.py │ ├── web/ │ │ ├── README.md │ │ ├── chat.html │ │ ├── static/ │ │ │ ├── css/ │ │ │ │ └── console.css │ │ │ └── js/ │ │ │ └── console.js │ │ └── web_channel.py │ ├── wechatcom/ │ │ ├── README.md │ │ ├── wechatcomapp_channel.py │ │ ├── wechatcomapp_client.py │ │ └── wechatcomapp_message.py │ ├── wechatmp/ │ │ ├── README.md │ │ ├── active_reply.py │ │ ├── common.py │ │ ├── passive_reply.py │ │ ├── wechatmp_channel.py │ │ ├── wechatmp_client.py │ │ └── wechatmp_message.py │ └── wecom_bot/ │ ├── __init__.py │ ├── wecom_bot_channel.py │ └── wecom_bot_message.py ├── common/ │ ├── cloud_client.py │ ├── const.py │ ├── dequeue.py │ ├── expired_dict.py │ ├── log.py │ ├── memory.py │ ├── package_manager.py │ ├── singleton.py │ ├── sorted_dict.py │ ├── time_check.py │ ├── tmp_dir.py │ ├── token_bucket.py │ └── utils.py ├── config-template.json ├── config.py ├── docker/ │ ├── Dockerfile.latest │ ├── build.latest.sh │ ├── docker-compose.yml │ └── entrypoint.sh ├── docs/ │ ├── agent.md │ ├── channels/ │ │ ├── dingtalk.mdx │ │ ├── feishu.mdx │ │ ├── qq.mdx │ │ ├── web.mdx │ │ ├── wechatmp.mdx │ │ ├── wecom-bot.mdx │ │ └── wecom.mdx │ ├── docs.json │ ├── en/ │ │ ├── README.md │ │ ├── channels/ │ │ │ ├── dingtalk.mdx │ │ │ ├── feishu.mdx │ │ │ ├── qq.mdx │ │ │ ├── web.mdx │ │ │ ├── wechatmp.mdx │ │ │ ├── wecom-bot.mdx │ │ │ └── wecom.mdx │ │ ├── guide/ │ │ │ ├── manual-install.mdx │ │ │ └── quick-start.mdx │ │ ├── intro/ │ │ │ ├── architecture.mdx │ │ │ ├── features.mdx │ │ │ └── index.mdx │ │ ├── memory.mdx │ │ ├── models/ │ │ │ ├── claude.mdx │ │ │ ├── coding-plan.mdx │ │ │ ├── deepseek.mdx │ │ │ ├── doubao.mdx │ │ │ ├── gemini.mdx │ │ │ ├── glm.mdx │ │ │ ├── index.mdx │ │ │ ├── kimi.mdx │ │ │ ├── linkai.mdx │ │ │ ├── minimax.mdx │ │ │ ├── openai.mdx │ │ │ └── qwen.mdx │ │ ├── releases/ │ │ │ ├── overview.mdx │ │ │ ├── v2.0.0.mdx │ │ │ ├── v2.0.1.mdx │ │ │ └── v2.0.2.mdx │ │ ├── skills/ │ │ │ ├── image-vision.mdx │ │ │ ├── index.mdx │ │ │ ├── linkai-agent.mdx │ │ │ ├── skill-creator.mdx │ │ │ └── web-fetch.mdx │ │ └── tools/ │ │ ├── bash.mdx │ │ ├── browser.mdx │ │ ├── edit.mdx │ │ ├── env-config.mdx │ │ ├── index.mdx │ │ ├── ls.mdx │ │ ├── memory.mdx │ │ ├── read.mdx │ │ ├── scheduler.mdx │ │ ├── send.mdx │ │ ├── web-search.mdx │ │ └── write.mdx │ ├── guide/ │ │ ├── manual-install.mdx │ │ ├── quick-start.mdx │ │ └── upgrade.mdx │ ├── intro/ │ │ ├── architecture.mdx │ │ ├── features.mdx │ │ └── index.mdx │ ├── ja/ │ │ ├── README.md │ │ ├── channels/ │ │ │ ├── dingtalk.mdx │ │ │ ├── feishu.mdx │ │ │ ├── qq.mdx │ │ │ ├── web.mdx │ │ │ ├── wechatmp.mdx │ │ │ ├── wecom-bot.mdx │ │ │ └── wecom.mdx │ │ ├── guide/ │ │ │ ├── manual-install.mdx │ │ │ ├── quick-start.mdx │ │ │ └── upgrade.mdx │ │ ├── intro/ │ │ │ ├── architecture.mdx │ │ │ ├── features.mdx │ │ │ └── index.mdx │ │ ├── memory.mdx │ │ ├── models/ │ │ │ ├── claude.mdx │ │ │ ├── coding-plan.mdx │ │ │ ├── deepseek.mdx │ │ │ ├── doubao.mdx │ │ │ ├── gemini.mdx │ │ │ ├── glm.mdx │ │ │ ├── index.mdx │ │ │ ├── kimi.mdx │ │ │ ├── linkai.mdx │ │ │ ├── minimax.mdx │ │ │ ├── openai.mdx │ │ │ └── qwen.mdx │ │ ├── releases/ │ │ │ ├── overview.mdx │ │ │ ├── v2.0.0.mdx │ │ │ ├── v2.0.1.mdx │ │ │ ├── v2.0.2.mdx │ │ │ └── v2.0.3.mdx │ │ ├── skills/ │ │ │ ├── image-vision.mdx │ │ │ ├── index.mdx │ │ │ ├── linkai-agent.mdx │ │ │ ├── skill-creator.mdx │ │ │ └── web-fetch.mdx │ │ └── tools/ │ │ ├── bash.mdx │ │ ├── browser.mdx │ │ ├── edit.mdx │ │ ├── env-config.mdx │ │ ├── index.mdx │ │ ├── ls.mdx │ │ ├── memory.mdx │ │ ├── read.mdx │ │ ├── scheduler.mdx │ │ ├── send.mdx │ │ ├── web-search.mdx │ │ └── write.mdx │ ├── memory.mdx │ ├── models/ │ │ ├── claude.mdx │ │ ├── coding-plan.mdx │ │ ├── deepseek.mdx │ │ ├── doubao.mdx │ │ ├── gemini.mdx │ │ ├── glm.mdx │ │ ├── index.mdx │ │ ├── kimi.mdx │ │ ├── linkai.mdx │ │ ├── minimax.mdx │ │ ├── openai.mdx │ │ └── qwen.mdx │ ├── releases/ │ │ ├── overview.mdx │ │ ├── v2.0.0.mdx │ │ ├── v2.0.1.mdx │ │ ├── v2.0.2.mdx │ │ └── v2.0.3.mdx │ ├── skills/ │ │ ├── image-vision.mdx │ │ ├── index.mdx │ │ ├── linkai-agent.mdx │ │ ├── skill-creator.mdx │ │ └── web-fetch.mdx │ └── tools/ │ ├── bash.mdx │ ├── browser.mdx │ ├── edit.mdx │ ├── env-config.mdx │ ├── index.mdx │ ├── ls.mdx │ ├── memory.mdx │ ├── read.mdx │ ├── scheduler.mdx │ ├── send.mdx │ ├── web-search.mdx │ └── write.mdx ├── models/ │ ├── ali/ │ │ ├── ali_qwen_bot.py │ │ └── ali_qwen_session.py │ ├── baidu/ │ │ ├── baidu_unit_bot.py │ │ ├── baidu_wenxin.py │ │ └── baidu_wenxin_session.py │ ├── bot.py │ ├── bot_factory.py │ ├── chatgpt/ │ │ ├── chat_gpt_bot.py │ │ └── chat_gpt_session.py │ ├── claudeapi/ │ │ └── claude_api_bot.py │ ├── dashscope/ │ │ ├── dashscope_bot.py │ │ └── dashscope_session.py │ ├── doubao/ │ │ ├── __init__.py │ │ ├── doubao_bot.py │ │ └── doubao_session.py │ ├── gemini/ │ │ └── google_gemini_bot.py │ ├── linkai/ │ │ └── link_ai_bot.py │ ├── minimax/ │ │ ├── minimax_bot.py │ │ └── minimax_session.py │ ├── modelscope/ │ │ ├── modelscope_bot.py │ │ └── modelscope_session.py │ ├── moonshot/ │ │ ├── moonshot_bot.py │ │ └── moonshot_session.py │ ├── openai/ │ │ ├── open_ai_bot.py │ │ ├── open_ai_image.py │ │ ├── open_ai_session.py │ │ └── openai_compat.py │ ├── openai_compatible_bot.py │ ├── session_manager.py │ ├── xunfei/ │ │ └── xunfei_spark_bot.py │ └── zhipuai/ │ ├── zhipu_ai_image.py │ ├── zhipu_ai_session.py │ └── zhipuai_bot.py ├── plugins/ │ ├── agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── config-template.yaml │ ├── banwords/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── __init__.py │ │ ├── banwords.py │ │ ├── banwords.txt.template │ │ ├── config.json.template │ │ └── lib/ │ │ └── WordsSearch.py │ ├── dungeon/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── dungeon.py │ ├── finish/ │ │ ├── __init__.py │ │ └── finish.py │ ├── godcmd/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── config.json.template │ │ └── godcmd.py │ ├── hello/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── config.json.template │ │ └── hello.py │ ├── keyword/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── config.json.template │ │ └── keyword.py │ ├── linkai/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── config.json.template │ │ ├── linkai.py │ │ ├── midjourney.py │ │ ├── summary.py │ │ └── utils.py │ ├── role/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── role.py │ │ └── roles.json │ └── tool/ │ ├── README.md │ ├── config.json.template │ └── tool.py ├── requirements-optional.txt ├── requirements.txt ├── run.sh ├── scripts/ │ ├── shutdown.sh │ ├── start.sh │ └── tout.sh ├── skills/ │ ├── README.md │ ├── linkai-agent/ │ │ ├── README.md │ │ ├── SKILL.md │ │ └── config.json.template │ └── skill-creator/ │ ├── SKILL.md │ └── scripts/ │ ├── init_skill.py │ ├── package_skill.py │ └── quick_validate.py ├── translate/ │ ├── baidu/ │ │ └── baidu_translate.py │ ├── factory.py │ └── translator.py └── voice/ ├── ali/ │ ├── ali_api.py │ ├── ali_voice.py │ └── config.json.template ├── audio_convert.py ├── azure/ │ ├── azure_voice.py │ └── config.json.template ├── baidu/ │ ├── README.md │ ├── baidu_voice.py │ └── config.json.template ├── edge/ │ └── edge_voice.py ├── elevent/ │ └── elevent_voice.py ├── factory.py ├── google/ │ └── google_voice.py ├── linkai/ │ └── linkai_voice.py ├── openai/ │ └── openai_voice.py ├── pytts/ │ └── pytts_voice.py ├── tencent/ │ ├── config.json.template │ └── tencent_voice.py ├── voice.py └── xunfei/ ├── config.json.template ├── xunfei_asr.py ├── xunfei_tts.py └── xunfei_voice.py