返回 JoyAI-Echo
pyproject.toml
根目录 / echo_longvideo / Director_Agent / pyproject.toml
1 [project]
2 name = "echo-director-agent"
3 version = "0.1.5.post2"
4 description = "A local-first video director agent powered by Echo and nanobot"
5 readme = { file = "README.md", content-type = "text/markdown" }
6 requires-python = ">=3.11,<3.13"
7 license = {text = "MIT"}
8 keywords = ["ai", "agent", "video", "echo", "nanobot"]
9 classifiers = [
10 "Development Status :: 3 - Alpha",
11 "Intended Audience :: Developers",
12 "License :: OSI Approved :: MIT License",
13 "Programming Language :: Python :: 3.11",
14 "Programming Language :: Python :: 3.12",
15 ]
16 license-files = [
17 "LICENSE",
18 "THIRD_PARTY_NOTICES.md",
19 ]
20
21 dependencies = [
22 "typer>=0.20.0,<1.0.0",
23 "anthropic>=0.45.0,<1.0.0",
24 "pydantic>=2.12.0,<3.0.0",
25 "pydantic-settings>=2.12.0,<3.0.0",
26 "websockets>=16.0,<17.0",
27 "httpx>=0.28.0,<1.0.0",
28 "ddgs>=9.5.5,<10.0.0",
29 "oauth-cli-kit>=0.1.3,<1.0.0",
30 "loguru>=0.7.3,<1.0.0",
31 "readability-lxml>=0.8.4,<1.0.0",
32 "rich>=14.0.0,<15.0.0",
33 "croniter>=6.0.0,<7.0.0",
34 "prompt-toolkit>=3.0.50,<4.0.0",
35 "questionary>=2.0.0,<3.0.0",
36 "mcp>=1.26.0,<2.0.0",
37 "json-repair>=0.57.0,<1.0.0",
38 "chardet>=3.0.2,<6.0.0",
39 "openai>=2.8.0",
40 "tiktoken>=0.12.0,<1.0.0",
41 "jinja2>=3.1.0,<4.0.0",
42 "dulwich>=0.22.0,<1.0.0",
43 "pyyaml>=6.0,<7.0.0",
44 "pypdf>=5.0.0,<6.0.0",
45 "omegaconf>=2.3.0,<3.0.0",
46 "python-docx>=1.1.0,<2.0.0",
47 "openpyxl>=3.1.0,<4.0.0",
48 "python-pptx>=1.0.0,<2.0.0",
49 "filelock>=3.25.2",
50 "boto3>=1.34.0,<2.0.0",
51 ]
52
53 [project.optional-dependencies]
54 api = [
55 "aiohttp>=3.9.0,<4.0.0",
56 ]
57 telegram = [
58 "python-telegram-bot[socks]>=22.6,<23.0",
59 "socksio>=1.0.0,<2.0.0",
60 "python-socks[asyncio]>=2.8.0,<3.0.0; sys_platform != 'win32'",
61 ]
62 feishu = [
63 "lark-oapi>=1.5.0,<2.0.0",
64 ]
65 dingtalk = [
66 "dingtalk-stream>=0.24.0,<1.0.0",
67 ]
68 slack = [
69 "slack-sdk>=3.39.0,<4.0.0",
70 "slackify-markdown>=0.2.0,<1.0.0",
71 "websocket-client>=1.9.0,<2.0.0",
72 ]
73 qq = [
74 "aiohttp>=3.9.0,<4.0.0",
75 "qq-botpy>=1.2.0,<2.0.0",
76 ]
77 mochat = [
78 "python-socketio>=5.16.0,<6.0.0",
79 "msgpack>=1.1.0,<2.0.0",
80 ]
81 wecom = [
82 "wecom-aibot-sdk-python>=0.1.5",
83 ]
84 weixin = [
85 "qrcode[pil]>=8.0",
86 "pycryptodome>=3.20.0",
87 ]
88 msteams = [
89 "PyJWT>=2.0,<3.0",
90 "cryptography>=41.0",
91 ]
92
93 matrix = [
94 "matrix-nio[e2e]>=0.25.2; sys_platform != 'win32'",
95 "mistune>=3.0.0,<4.0.0",
96 "nh3>=0.2.17,<1.0.0",
97 ]
98 discord = [
99 "discord.py>=2.5.2,<3.0.0",
100 ]
101 langsmith = [
102 "langsmith>=0.1.0",
103 ]
104 pdf = [
105 "pymupdf>=1.25.0",
106 ]
107 dev = [
108 "aiohttp>=3.9.0,<4.0.0",
109 "ruff>=0.1.0",
110 "pymupdf>=1.25.0",
111 ]
112
113 [project.scripts]
114 nanobot = "nanobot.cli.commands:app"
115
116 [build-system]
117 requires = ["hatchling"]
118 build-backend = "hatchling.build"
119
120 [tool.hatch.metadata]
121 allow-direct-references = true
122
123 [tool.hatch.build]
124 include = [
125 "nanobot/**/*.py",
126 "nanobot/templates/**/*.md",
127 "nanobot/skills/**/*.md",
128 "nanobot/skills/**/*.sh",
129 ]
130 artifacts = [
131 "nanobot/web/dist/**/*",
132 ]
133
134 [tool.hatch.build.hooks.custom]
135 path = "hatch_build.py"
136
137 [tool.hatch.build.targets.wheel]
138 packages = ["nanobot"]
139
140 [tool.hatch.build.targets.wheel.sources]
141 "nanobot" = "nanobot"
142
143 [tool.hatch.build.targets.wheel.force-include]
144 "bridge" = "nanobot/bridge"
145 "pe" = "nanobot/_bundled/pe"
146
147 [tool.hatch.build.targets.sdist]
148 include = [
149 "nanobot/",
150 "bridge/",
151 "pe/",
152 "nanobot/web/dist/",
153 ".config.local.example.json",
154 "README.md",
155 "LICENSE",
156 "THIRD_PARTY_NOTICES.md",
157 "hatch_build.py",
158 "pyproject.toml",
159 ]
160
161 [tool.ruff]
162 line-length = 100
163 target-version = "py311"
164
165 [tool.ruff.lint]
166 select = ["E", "F", "I", "N", "W"]
167 ignore = ["E501"]
168
168 lines TOML