# This file was autogenerated by uv via the following command:
#    uv export --no-hashes --format requirements-txt -o /tmp/AstrBot-minimal-runtime-noplugins/AstrBot/requirements.txt
-e .
aiocqhttp==1.4.4
    # via astrbot
aiodocker==0.27.0
    # via astrbot
aiofiles==25.1.0
    # via
    #   astrbot
    #   quart
aiohappyeyeballs==2.7.1
    # via aiohttp
aiohttp==3.14.1
    # via
    #   aiodocker
    #   astrbot
    #   dashscope
    #   dingtalk-stream
    #   py-cord
    #   qq-botpy
    #   shipyard-python-sdk
    #   xinference-client
aiosignal==1.4.0
    # via aiohttp
aiosqlite==0.22.1
    # via astrbot
annotated-doc==0.0.4
    # via
    #   fastapi
    #   typer
annotated-types==0.7.0
    # via pydantic
anthropic==0.116.0
    # via astrbot
anyio==4.14.1
    # via
    #   anthropic
    #   google-genai
    #   httpx
    #   mcp
    #   openai
    #   sse-starlette
    #   starlette
    #   watchfiles
apscheduler==3.11.3
    # via
    #   astrbot
    #   qq-botpy
argcomplete==3.6.3
    # via commitizen
attrs==26.1.0
    # via
    #   aiohttp
    #   jsonschema
    #   referencing
audioop-lts==0.2.2 ; python_full_version >= '3.13'
    # via astrbot
beautifulsoup4==4.15.0
    # via
    #   markdownify
    #   markitdown-no-magika
blinker==1.9.0
    # via
    #   flask
    #   quart
certifi==2026.6.17
    # via
    #   astrbot
    #   dashscope
    #   httpcore
    #   httpx
    #   requests
cffi==2.1.0
    # via
    #   cryptography
    #   silk-python
chardet==5.1.0
    # via astrbot
charset-normalizer==3.4.9
    # via
    #   commitizen
    #   markitdown-no-magika
    #   requests
click==8.4.2
    # via
    #   astrbot
    #   flask
    #   quart
    #   uvicorn
cobble==0.1.4
    # via mammoth
colorama==0.4.6
    # via
    #   click
    #   commitizen
    #   loguru
    #   pytest
    #   qrcode
    #   tqdm
    #   typer
commitizen==4.16.4
coverage==7.15.0
    # via pytest-cov
cryptography==49.0.0
    # via
    #   astrbot
    #   dashscope
    #   google-auth
    #   pyjwt
dashscope==1.26.3
    # via astrbot
decli==0.6.3
    # via commitizen
defusedxml==0.7.1
    # via markitdown-no-magika
deprecated==1.3.1
    # via
    #   astrbot
    #   commitizen
dingtalk-stream==0.24.3
    # via astrbot
distro==1.9.0
    # via
    #   anthropic
    #   google-genai
    #   openai
docstring-parser==0.18.0
    # via
    #   anthropic
    #   astrbot
et-xmlfile==2.0.0
    # via openpyxl
faiss-cpu==1.14.3
    # via astrbot
fastapi==0.139.0
    # via astrbot
filelock==3.29.7
    # via astrbot
filetype==1.2.0
    # via shipyard-python-sdk
flask==3.1.3
    # via quart
frozenlist==1.8.0
    # via
    #   aiohttp
    #   aiosignal
google-auth==2.55.2
    # via google-genai
google-genai==2.11.0
    # via astrbot
greenlet==3.5.3
    # via sqlalchemy
h11==0.16.0
    # via
    #   httpcore
    #   hypercorn
    #   uvicorn
    #   wsproto
h2==4.3.0
    # via hypercorn
hpack==4.2.0
    # via h2
httpcore==1.0.9
    # via
    #   httpx
    #   python-telegram-bot
httpx==0.28.1
    # via
    #   aiocqhttp
    #   anthropic
    #   astrbot
    #   dashscope
    #   google-genai
    #   lark-oapi
    #   mcp
    #   openai
    #   python-telegram-bot
    #   shipyard-neo-sdk
httpx-sse==0.4.3
    # via
    #   dashscope
    #   mcp
hypercorn==0.18.0
    # via quart
hyperframe==6.1.0
    # via h2
idna==3.18
    # via
    #   anyio
    #   httpx
    #   requests
    #   yarl
iniconfig==2.3.0
    # via pytest
itsdangerous==2.2.0
    # via
    #   flask
    #   quart
jieba==0.42.1
    # via astrbot
jinja2==3.1.6
    # via
    #   commitizen
    #   flask
    #   quart
jiter==0.16.0
    # via
    #   anthropic
    #   openai
jsonschema==4.26.0
    # via mcp
jsonschema-specifications==2025.9.1
    # via jsonschema
lark-oapi==1.7.1
    # via astrbot
loguru==0.7.3
    # via astrbot
lxml==6.1.1
    # via markitdown-no-magika
mammoth==1.12.0
    # via markitdown-no-magika
markdown-it-py==4.2.0
    # via rich
markdownify==1.2.3
    # via markitdown-no-magika
markitdown-no-magika==0.1.2
    # via astrbot
markupsafe==3.0.3
    # via
    #   flask
    #   jinja2
    #   quart
    #   werkzeug
mcp==1.28.1
    # via astrbot
mdurl==0.1.2
    # via markdown-it-py
multidict==6.7.1
    # via
    #   aiohttp
    #   yarl
numpy==2.5.1
    # via
    #   faiss-cpu
    #   pandas
    #   rank-bm25
openai==2.45.0
    # via astrbot
openpyxl==3.1.5
    # via markitdown-no-magika
optionaldict==0.1.2
    # via wechatpy
ormsgpack==1.12.2
    # via astrbot
packaging==26.2
    # via
    #   astrbot
    #   commitizen
    #   faiss-cpu
    #   pytest
pandas==3.0.3
    # via markitdown-no-magika
pillow==12.3.0
    # via astrbot
pip==26.1.2
    # via astrbot
pluggy==1.6.0
    # via
    #   pytest
    #   pytest-cov
priority==2.0.0
    # via hypercorn
prompt-toolkit==3.0.51
    # via
    #   commitizen
    #   questionary
propcache==0.5.2
    # via
    #   aiohttp
    #   yarl
psutil==7.1.3
    # via astrbot
py-cord==2.8.0
    # via astrbot
pyasn1==0.6.4
    # via pyasn1-modules
pyasn1-modules==0.4.2
    # via google-auth
pycparser==3.0 ; implementation_name != 'PyPy'
    # via cffi
pycryptodome==3.23.0
    # via lark-oapi
pydantic==2.13.4
    # via
    #   anthropic
    #   astrbot
    #   fastapi
    #   google-genai
    #   mcp
    #   openai
    #   pydantic-settings
    #   shipyard-neo-sdk
    #   sqlmodel
    #   xinference-client
pydantic-core==2.46.4
    # via pydantic
pydantic-settings==2.14.2
    # via mcp
pydub==0.25.1
    # via astrbot
pygments==2.20.0
    # via
    #   pytest
    #   rich
pyjwt==2.13.0
    # via
    #   astrbot
    #   mcp
pyotp==2.10.0
    # via astrbot
pypdf==6.14.2
    # via astrbot
pyromark==0.9.13
    # via telegramify-markdown
pysocks==1.7.1
    # via astrbot
pytest==9.1.1
    # via
    #   pytest-asyncio
    #   pytest-cov
pytest-asyncio==1.4.0
pytest-cov==7.1.0
python-dateutil==2.9.0.post0
    # via
    #   pandas
    #   wechatpy
python-dotenv==1.2.2
    # via pydantic-settings
python-multipart==0.0.32
    # via mcp
python-ripgrep==0.0.8
    # via astrbot
python-socks==2.8.2
    # via astrbot
python-telegram-bot==22.8
    # via astrbot
pywin32==312 ; sys_platform == 'win32'
    # via mcp
pyyaml==6.0.3
    # via
    #   commitizen
    #   qq-botpy
qq-botpy==1.2.1
    # via astrbot
qrcode==8.2
    # via astrbot
quart==0.20.0
    # via
    #   aiocqhttp
    #   astrbot
questionary==2.1.1
    # via commitizen
rank-bm25==0.2.2
    # via astrbot
referencing==0.37.0
    # via
    #   jsonschema
    #   jsonschema-specifications
requests==2.34.2
    # via
    #   dashscope
    #   dingtalk-stream
    #   google-auth
    #   google-genai
    #   lark-oapi
    #   markitdown-no-magika
    #   requests-toolbelt
    #   wechatpy
    #   xinference-client
requests-toolbelt==1.0.0
    # via lark-oapi
rich==15.0.0
    # via
    #   dashscope
    #   typer
rpds-py==2026.6.3
    # via
    #   jsonschema
    #   referencing
ruff==0.15.21
shellingham==1.5.4
    # via typer
shipyard-neo-sdk==0.2.0
    # via astrbot
shipyard-python-sdk==0.2.4
    # via astrbot
silk-python==0.2.8
    # via astrbot
six==1.17.0
    # via
    #   markdownify
    #   python-dateutil
    #   wechatpy
slack-sdk==3.43.0
    # via astrbot
sniffio==1.3.1
    # via
    #   anthropic
    #   google-genai
    #   openai
socksio==1.0.0
    # via httpx
soupsieve==2.8.4
    # via beautifulsoup4
sqlalchemy==2.0.51
    # via
    #   astrbot
    #   sqlmodel
sqlmodel==0.0.39
    # via astrbot
sse-starlette==3.4.5
    # via mcp
starlette==1.3.1
    # via
    #   fastapi
    #   mcp
    #   sse-starlette
telegramify-markdown==1.2.0
    # via astrbot
tenacity==9.1.4
    # via
    #   astrbot
    #   google-genai
termcolor==3.3.0
    # via commitizen
tomlkit==0.15.0
    # via commitizen
tqdm==4.68.4
    # via openai
typer==0.26.8
    # via dashscope
typing-extensions==4.16.0
    # via
    #   aiohttp
    #   aiosignal
    #   anthropic
    #   anyio
    #   beautifulsoup4
    #   fastapi
    #   google-genai
    #   mcp
    #   openai
    #   py-cord
    #   pydantic
    #   pydantic-core
    #   pyromark
    #   pytest-asyncio
    #   referencing
    #   sqlalchemy
    #   sqlmodel
    #   starlette
    #   typing-inspection
    #   xinference-client
typing-inspection==0.4.2
    # via
    #   fastapi
    #   mcp
    #   pydantic
    #   pydantic-settings
tzdata==2026.2 ; sys_platform == 'emscripten' or sys_platform == 'win32'
    # via
    #   pandas
    #   tzlocal
tzlocal==5.4.4
    # via apscheduler
urllib3==2.7.0
    # via requests
uvicorn==0.51.0 ; sys_platform != 'emscripten'
    # via mcp
watchfiles==1.2.0
    # via astrbot
wcwidth==0.8.2
    # via prompt-toolkit
websocket-client==1.9.0
    # via dashscope
websockets==15.0.1
    # via
    #   astrbot
    #   dingtalk-stream
    #   google-genai
    #   lark-oapi
wechatpy==1.8.18
    # via astrbot
werkzeug==3.1.8
    # via
    #   flask
    #   quart
win32-setctime==1.2.0 ; sys_platform == 'win32'
    # via loguru
wrapt==2.2.2
    # via deprecated
wsproto==1.3.2
    # via hypercorn
xinference-client==2.12.0
    # via astrbot
xlrd==2.0.2
    # via markitdown-no-magika
xmltodict==1.0.4
    # via wechatpy
yarl==1.24.2
    # via aiohttp
