๐Ÿ“ฆ agentscope-ai / CoPaw

๐Ÿ“„ pyproject.toml ยท 72 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72[project]
name = "copaw"
dynamic = ["version"]
description = "CoPaw is a **personal assistant** that runs in your own environment. It talks to you over multiple channels (DingTalk, Feishu, QQ, Discord, iMessage, etc.) and runs scheduled tasks according to your configuration. **What it can do is driven by Skills โ€” the possibilities are open-ended.** Built-in skills include cron, PDF/Office handling, news digest, file reading, and more; you can add custom skills. All data and tasks run on your machine; no third-party hosting."
readme = "README.md"
requires-python = ">=3.10,<3.14"
dependencies = [
    "agentscope==1.0.16.dev0",
    "agentscope-runtime==1.1.0",
    "discord-py>=2.3",
    "dingtalk-stream>=0.24.3",
    "uvicorn>=0.40.0",
    "apscheduler>=3.11.2,<4",
    "playwright>=1.49.0",
    "questionary>=2.1.1",
    "mss>=9.0.0",
    "reme-ai==0.3.0.0",
    "transformers>=4.30.0",
    "python-dotenv>=1.0.0",
    "onnxruntime<1.24",
    "lark-oapi>=1.5.3",
]

[tool.setuptools.dynamic]
version = {attr = "copaw.__version__.__version__"}

[tool.setuptools]
packages = { find = { where = ["src"] } }
include-package-data = true

[tool.setuptools.package-data]
# Dockerfile copies console build output to src/copaw/console/ (no dist subdir).
"copaw" = [
    "console/**",
    "agents/md_files/**",
    "agents/skills/**",
    "tokenizer/**",
]

[build-system]
requires = ["setuptools>=42", "wheel"]
build-backend = "setuptools.build_meta"

[project.scripts]
copaw = "copaw.cli.main:cli"

[project.optional-dependencies]
dev = [
    "pytest>=8.3.5",
    "pytest-asyncio>=0.23.0",
    "pre-commit>=4.2.0",
    "pytest-cov>=6.2.1",
]
local = [
    "huggingface_hub>=0.20.0",
]
llamacpp = [
    "copaw[local]",
    "llama-cpp-python>=0.3.0",
]
mlx = [
    "copaw[local]",
    "mlx-lm>=0.10.0",
]

[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
markers = [
    "slow: marks tests as slow (deselect with '-m \"not slow\"')",
]