Move consolidation policy into MemoryConsolidator, keep backward compatibility for legacy config, and compress history by token budget instead of message count.
109 lines
2.5 KiB
TOML
109 lines
2.5 KiB
TOML
[project]
|
|
name = "nanobot-ai"
|
|
version = "0.1.4.post4"
|
|
description = "A lightweight personal AI assistant framework"
|
|
requires-python = ">=3.11"
|
|
license = {text = "MIT"}
|
|
authors = [
|
|
{name = "nanobot contributors"}
|
|
]
|
|
keywords = ["ai", "agent", "chatbot"]
|
|
classifiers = [
|
|
"Development Status :: 3 - Alpha",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
]
|
|
|
|
dependencies = [
|
|
"typer>=0.20.0,<1.0.0",
|
|
"litellm>=1.81.5,<2.0.0",
|
|
"pydantic>=2.12.0,<3.0.0",
|
|
"pydantic-settings>=2.12.0,<3.0.0",
|
|
"websockets>=16.0,<17.0",
|
|
"websocket-client>=1.9.0,<2.0.0",
|
|
"httpx>=0.28.0,<1.0.0",
|
|
"oauth-cli-kit>=0.1.3,<1.0.0",
|
|
"loguru>=0.7.3,<1.0.0",
|
|
"readability-lxml>=0.8.4,<1.0.0",
|
|
"rich>=14.0.0,<15.0.0",
|
|
"croniter>=6.0.0,<7.0.0",
|
|
"dingtalk-stream>=0.24.0,<1.0.0",
|
|
"python-telegram-bot[socks]>=22.6,<23.0",
|
|
"lark-oapi>=1.5.0,<2.0.0",
|
|
"socksio>=1.0.0,<2.0.0",
|
|
"python-socketio>=5.16.0,<6.0.0",
|
|
"msgpack>=1.1.0,<2.0.0",
|
|
"slack-sdk>=3.39.0,<4.0.0",
|
|
"slackify-markdown>=0.2.0,<1.0.0",
|
|
"qq-botpy>=1.2.0,<2.0.0",
|
|
"python-socks[asyncio]>=2.8.0,<3.0.0",
|
|
"prompt-toolkit>=3.0.50,<4.0.0",
|
|
"mcp>=1.26.0,<2.0.0",
|
|
"json-repair>=0.57.0,<1.0.0",
|
|
"chardet>=3.0.2,<6.0.0",
|
|
"openai>=2.8.0",
|
|
"tiktoken>=0.12.0,<1.0.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
matrix = [
|
|
"matrix-nio[e2e]>=0.25.2",
|
|
"mistune>=3.0.0,<4.0.0",
|
|
"nh3>=0.2.17,<1.0.0",
|
|
]
|
|
dev = [
|
|
"pytest>=9.0.0,<10.0.0",
|
|
"pytest-asyncio>=1.3.0,<2.0.0",
|
|
"ruff>=0.1.0",
|
|
"matrix-nio[e2e]>=0.25.2",
|
|
"mistune>=3.0.0,<4.0.0",
|
|
"nh3>=0.2.17,<1.0.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
nanobot = "nanobot.cli.commands:app"
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["nanobot"]
|
|
|
|
[tool.hatch.build.targets.wheel.sources]
|
|
"nanobot" = "nanobot"
|
|
|
|
# Include non-Python files in skills and templates
|
|
[tool.hatch.build]
|
|
include = [
|
|
"nanobot/**/*.py",
|
|
"nanobot/templates/**/*.md",
|
|
"nanobot/skills/**/*.md",
|
|
"nanobot/skills/**/*.sh",
|
|
]
|
|
|
|
[tool.hatch.build.targets.sdist]
|
|
include = [
|
|
"nanobot/",
|
|
"bridge/",
|
|
"README.md",
|
|
"LICENSE",
|
|
]
|
|
|
|
[tool.hatch.build.targets.wheel.force-include]
|
|
"bridge" = "nanobot/bridge"
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py311"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "N", "W"]
|
|
ignore = ["E501"]
|
|
|
|
[tool.pytest.ini_options]
|
|
asyncio_mode = "auto"
|
|
testpaths = ["tests"]
|