chattool 7.1.0__tar.gz → 7.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {chattool-7.1.0/src/chattool.egg-info → chattool-7.1.2}/PKG-INFO +65 -61
- {chattool-7.1.0 → chattool-7.1.2}/README.md +50 -45
- {chattool-7.1.0 → chattool-7.1.2}/pyproject.toml +15 -16
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/__init__.py +2 -10
- chattool-7.1.2/src/chattool/client/__init__.py +23 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/client/main.py +0 -12
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/config/__init__.py +0 -12
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/config/aliyun.py +1 -1
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/config/elements.py +0 -12
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/config/tencent.py +1 -1
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/mcp/catalog.py +0 -8
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/mcp/server.py +0 -2
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/serve/__init__.py +0 -2
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/serve/cli.py +0 -7
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/skill/cli.py +2 -2
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/skill/platforms.py +6 -5
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/__init__.py +1 -15
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/cc/cli.py +1 -1
- chattool-7.1.2/src/chattool/tools/cert/__init__.py +5 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/cert/cert_server.py +4 -4
- {chattool-7.1.0 → chattool-7.1.2/src/chattool.egg-info}/PKG-INFO +65 -61
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool.egg-info/SOURCES.txt +0 -46
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool.egg-info/entry_points.txt +0 -1
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool.egg-info/requires.txt +15 -15
- chattool-7.1.0/src/chattool/client/__init__.py +0 -43
- chattool-7.1.0/src/chattool/config/feishu.py +0 -36
- chattool-7.1.0/src/chattool/config/huggingface.py +0 -28
- chattool-7.1.0/src/chattool/config/liblib.py +0 -33
- chattool-7.1.0/src/chattool/config/pollinations.py +0 -23
- chattool-7.1.0/src/chattool/config/siliconflow.py +0 -29
- chattool-7.1.0/src/chattool/config/tongyi.py +0 -33
- chattool-7.1.0/src/chattool/serve/lark_serve.py +0 -177
- chattool-7.1.0/src/chattool/tools/cert/__init__.py +0 -5
- chattool-7.1.0/src/chattool/tools/cert/acme_dns_tiny.py +0 -239
- chattool-7.1.0/src/chattool/tools/cert/cert_updater.py +0 -460
- chattool-7.1.0/src/chattool/tools/cert/cli.py +0 -305
- chattool-7.1.0/src/chattool/tools/dns/__init__.py +0 -38
- chattool-7.1.0/src/chattool/tools/dns/aliyun.py +0 -305
- chattool-7.1.0/src/chattool/tools/dns/base.py +0 -186
- chattool-7.1.0/src/chattool/tools/dns/cli.py +0 -737
- chattool-7.1.0/src/chattool/tools/dns/domain_utils.py +0 -11
- chattool-7.1.0/src/chattool/tools/dns/ip_updater.py +0 -319
- chattool-7.1.0/src/chattool/tools/dns/mcp.py +0 -220
- chattool-7.1.0/src/chattool/tools/dns/tencent.py +0 -283
- chattool-7.1.0/src/chattool/tools/dns/utils.py +0 -30
- chattool-7.1.0/src/chattool/tools/image/__init__.py +0 -45
- chattool-7.1.0/src/chattool/tools/image/base.py +0 -30
- chattool-7.1.0/src/chattool/tools/image/cli.py +0 -423
- chattool-7.1.0/src/chattool/tools/image/codex.py +0 -393
- chattool-7.1.0/src/chattool/tools/image/helpers.py +0 -96
- chattool-7.1.0/src/chattool/tools/image/huggingface.py +0 -44
- chattool-7.1.0/src/chattool/tools/image/liblib.py +0 -150
- chattool-7.1.0/src/chattool/tools/image/pollinations.py +0 -56
- chattool-7.1.0/src/chattool/tools/image/siliconflow.py +0 -92
- chattool-7.1.0/src/chattool/tools/image/tongyi.py +0 -61
- chattool-7.1.0/src/chattool/tools/lark/__init__.py +0 -22
- chattool-7.1.0/src/chattool/tools/lark/bot.py +0 -1721
- chattool-7.1.0/src/chattool/tools/lark/cli.py +0 -239
- chattool-7.1.0/src/chattool/tools/lark/context.py +0 -128
- chattool-7.1.0/src/chattool/tools/lark/docx_blocks.py +0 -96
- chattool-7.1.0/src/chattool/tools/lark/elements.py +0 -119
- chattool-7.1.0/src/chattool/tools/lark/markdown_blocks.py +0 -110
- chattool-7.1.0/src/chattool/tools/lark/session.py +0 -116
- chattool-7.1.0/src/chattool/tools/network/__init__.py +0 -3
- chattool-7.1.0/src/chattool/tools/network/cli.py +0 -236
- chattool-7.1.0/src/chattool/tools/network/link_check.py +0 -171
- chattool-7.1.0/src/chattool/tools/network/mcp.py +0 -45
- chattool-7.1.0/src/chattool/tools/network/scanner.py +0 -133
- chattool-7.1.0/src/chattool/tools/network/service_urls.py +0 -24
- chattool-7.1.0/src/chattool/tools/pypi/__init__.py +0 -41
- chattool-7.1.0/src/chattool/tools/pypi/cli.py +0 -520
- chattool-7.1.0/src/chattool/tools/pypi/main.py +0 -1779
- {chattool-7.1.0 → chattool-7.1.2}/LICENSE +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/MANIFEST.in +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/scripts/migrate_chattool_envs_to_chatarch.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/setup.cfg +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/_all.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/client/cert_client.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/client/svg2gif_client.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/config/azure.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/config/base.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/config/browser.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/config/crs.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/config/openai.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/config/skills.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/config/tplink.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/config/zulip.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/const.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/docker/__init__.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/docker/cli.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/docker/elements.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/docker/main.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/explore/__init__.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/explore/arxiv/__init__.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/explore/arxiv/cli.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/explore/arxiv/client.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/explore/arxiv/daily.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/explore/arxiv/harvest.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/explore/arxiv/models.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/explore/arxiv/presets.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/explore/arxiv/query.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/explore/cli.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/explore/wordpress/__init__.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/explore/wordpress/client.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/explore/wordpress/models.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/interaction/__init__.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/interaction/command_schema.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/interaction/policy.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/interaction/warnings.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/llm/__init__.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/llm/chattype.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/llm/response.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/mcp/__init__.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/mcp/cli.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/serve/capture.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/serve/cert_server.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/serve/local.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/serve/oauth.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/serve/svg2gif.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/skill/__init__.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/skill/interaction.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/skill/validation.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/browser/__init__.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/browser/base.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/browser/cli.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/browser/playwright_impl.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/browser/selenium.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/browser/test_browser.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/browser/test_module.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/browser/test_remote.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/browser/xhs_qrcode.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/cc/__init__.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/cert/email.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/crs/__init__.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/crs/api.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/crs/cli.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/crs/openai_oauth.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/interact.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/nginx/__init__.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/nginx/cli.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/nginx/templates.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/tplogin.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/tplogin_cli.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/zulip/__init__.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/zulip/cli.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/zulip/client.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/zulip/legacy.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/tools/zulip/mcp.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/utils/__init__.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/utils/basic.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/utils/custom_logger.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/utils/fastobj.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/utils/httpclient.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/utils/pathing.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/utils/test_helpers.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool/utils/urltool.py +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool.egg-info/dependency_links.txt +0 -0
- {chattool-7.1.0 → chattool-7.1.2}/src/chattool.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: chattool
|
|
3
|
-
Version: 7.1.
|
|
3
|
+
Version: 7.1.2
|
|
4
4
|
Summary: Toolkit for Chat API
|
|
5
5
|
Author-email: Rex Wang <1073853456@qq.com>
|
|
6
6
|
License: MIT license
|
|
@@ -17,14 +17,20 @@ Requires-Python: >=3.10
|
|
|
17
17
|
Description-Content-Type: text/markdown
|
|
18
18
|
License-File: LICENSE
|
|
19
19
|
Requires-Dist: Click>=7.0
|
|
20
|
-
Requires-Dist: chatgh<0.3.0,>=0.2.6
|
|
21
20
|
Requires-Dist: chatstyle<0.2.0,>=0.1.0
|
|
22
|
-
Requires-Dist: chatenv<0.3.0,>=0.2.
|
|
21
|
+
Requires-Dist: chatenv<0.3.0,>=0.2.2
|
|
23
22
|
Requires-Dist: requests>=2.20
|
|
24
23
|
Requires-Dist: python-dotenv>=0.17.0
|
|
25
24
|
Requires-Dist: colorama
|
|
26
25
|
Requires-Dist: httpx
|
|
27
26
|
Requires-Dist: tomli; python_version < "3.11"
|
|
27
|
+
Provides-Extra: arch
|
|
28
|
+
Requires-Dist: ChatGH<0.3.0,>=0.2.6; extra == "arch"
|
|
29
|
+
Requires-Dist: ChatUp<0.3.0,>=0.2.0; extra == "arch"
|
|
30
|
+
Requires-Dist: ChatPyPI<0.3.0,>=0.2.3; extra == "arch"
|
|
31
|
+
Requires-Dist: ChatNet<0.3.0,>=0.2.0; extra == "arch"
|
|
32
|
+
Requires-Dist: ChatLark<0.2.0,>=0.1.1; extra == "arch"
|
|
33
|
+
Requires-Dist: ChatImg[images]<0.2.0,>=0.1.3; extra == "arch"
|
|
28
34
|
Provides-Extra: interactive
|
|
29
35
|
Requires-Dist: questionary>=2.1.0; extra == "interactive"
|
|
30
36
|
Requires-Dist: prompt_toolkit; extra == "interactive"
|
|
@@ -32,18 +38,11 @@ Provides-Extra: batch
|
|
|
32
38
|
Requires-Dist: batch_executor>=0.3.0; extra == "batch"
|
|
33
39
|
Requires-Dist: filelock; extra == "batch"
|
|
34
40
|
Provides-Extra: dns
|
|
35
|
-
Requires-Dist:
|
|
36
|
-
Requires-Dist: cryptography; extra == "dns"
|
|
37
|
-
Requires-Dist: gitpython; extra == "dns"
|
|
38
|
-
Requires-Dist: netifaces; extra == "dns"
|
|
39
|
-
Requires-Dist: alibabacloud_alidns20150109>=3.5.10; extra == "dns"
|
|
40
|
-
Requires-Dist: alibabacloud_tea_openapi>=0.3.0; extra == "dns"
|
|
41
|
-
Requires-Dist: tencentcloud-sdk-python; extra == "dns"
|
|
41
|
+
Requires-Dist: ChatDNS<0.2.0,>=0.1.1; extra == "dns"
|
|
42
42
|
Provides-Extra: lark
|
|
43
|
-
Requires-Dist:
|
|
44
|
-
Requires-Dist: flask; extra == "lark"
|
|
43
|
+
Requires-Dist: ChatLark<0.2.0,>=0.1.1; extra == "lark"
|
|
45
44
|
Provides-Extra: images
|
|
46
|
-
Requires-Dist:
|
|
45
|
+
Requires-Dist: ChatImg[images]<0.2.0,>=0.1.3; extra == "images"
|
|
47
46
|
Provides-Extra: screenshot
|
|
48
47
|
Requires-Dist: selenium; extra == "screenshot"
|
|
49
48
|
Requires-Dist: pillow; extra == "screenshot"
|
|
@@ -57,14 +56,14 @@ Provides-Extra: serve
|
|
|
57
56
|
Requires-Dist: fastapi; extra == "serve"
|
|
58
57
|
Requires-Dist: uvicorn; extra == "serve"
|
|
59
58
|
Requires-Dist: pydantic>=2.0.0; extra == "serve"
|
|
59
|
+
Requires-Dist: ChatDNS<0.2.0,>=0.1.1; extra == "serve"
|
|
60
60
|
Provides-Extra: mcp
|
|
61
61
|
Requires-Dist: fastmcp; python_version >= "3.10" and extra == "mcp"
|
|
62
62
|
Provides-Extra: client
|
|
63
63
|
Requires-Dist: gitpython; extra == "client"
|
|
64
64
|
Requires-Dist: rich; extra == "client"
|
|
65
65
|
Provides-Extra: pypi
|
|
66
|
-
Requires-Dist:
|
|
67
|
-
Requires-Dist: twine; extra == "pypi"
|
|
66
|
+
Requires-Dist: ChatPyPI<0.3.0,>=0.2.3; extra == "pypi"
|
|
68
67
|
Provides-Extra: setup
|
|
69
68
|
Requires-Dist: chatup<0.3.0,>=0.2.0; extra == "setup"
|
|
70
69
|
Provides-Extra: tools
|
|
@@ -87,7 +86,7 @@ Provides-Extra: dev
|
|
|
87
86
|
Requires-Dist: wheel; extra == "dev"
|
|
88
87
|
Requires-Dist: build; extra == "dev"
|
|
89
88
|
Requires-Dist: twine; extra == "dev"
|
|
90
|
-
Requires-Dist: chattool[docs,setup,tests,tools]; extra == "dev"
|
|
89
|
+
Requires-Dist: chattool[arch,docs,setup,tests,tools]; extra == "dev"
|
|
91
90
|
Dynamic: license-file
|
|
92
91
|
|
|
93
92
|
<div align="center">
|
|
@@ -122,10 +121,12 @@ Dynamic: license-file
|
|
|
122
121
|
```bash
|
|
123
122
|
pip install chattool --upgrade
|
|
124
123
|
pip install "chattool[tools]" # 常用工具全集
|
|
125
|
-
pip install "chattool[mcp
|
|
124
|
+
pip install "chattool[mcp]" # legacy MCP 服务(DNS MCP 本轮不维护)
|
|
126
125
|
pip install "chattool[images]" # 含图像工具
|
|
127
|
-
pip install "chattool[pypi]" #
|
|
126
|
+
pip install "chattool[pypi]" # 安装独立 ChatPyPI,用 chatpypi 管理 Python 包创建/构建/发布
|
|
127
|
+
pip install "chattool[lark]" # 安装独立 ChatLark,用 chatlark 管理飞书/Lark bot helper
|
|
128
128
|
pip install "chattool[setup]" # 安装独立 ChatUp,用 chatup workspace/hermes/cc-connect 等命令做环境初始化
|
|
129
|
+
pip install "chattool[arch]" # 一次性安装 ChatGH / ChatUp / ChatPyPI / ChatNet / ChatLark 这些平行 ChatArch 工具
|
|
129
130
|
pip install "chattool[dev]" # 仓库开发依赖
|
|
130
131
|
```
|
|
131
132
|
|
|
@@ -152,7 +153,7 @@ chatenv set OPENAI_API_KEY=sk-xxx
|
|
|
152
153
|
chatenv new mini -t feishu # 从当前激活配置复制一份新的 Feishu profile
|
|
153
154
|
chatenv new -t openai # 交互式创建 OpenAI profile:先问名称,再补齐字段,不改 active .env
|
|
154
155
|
chatenv save work -t openai && chatenv use work -t openai # 按类型管理 profile
|
|
155
|
-
|
|
156
|
+
chatlark info -e work # 显式使用 Feishu profile,优先级高于当前 shell 环境变量
|
|
156
157
|
chattool cc init -i --quiet # 生成默认 quiet 的 cc-connect 项目配置
|
|
157
158
|
```
|
|
158
159
|
|
|
@@ -178,23 +179,25 @@ async for chunk in Chat().user("写一首诗").async_get_response_stream():
|
|
|
178
179
|
print(chunk.delta_content, end="", flush=True)
|
|
179
180
|
```
|
|
180
181
|
|
|
181
|
-
###
|
|
182
|
+
### 飞书/Lark Bot(已迁移到 ChatLark)
|
|
183
|
+
|
|
184
|
+
飞书/Lark bot helper 已从 ChatTool 分离到独立包 `ChatLark`,请使用一等 CLI `chatlark`。模型调用相关入口暂不接回 ChatTool。
|
|
182
185
|
|
|
183
186
|
```bash
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
187
|
+
pip install "chattool[lark]"
|
|
188
|
+
chatlark send USER_ID "Hello"
|
|
189
|
+
chatlark send "Hello" # 使用 FEISHU_DEFAULT_RECEIVER_ID
|
|
190
|
+
chatlark send -t chat_id "Hello team" # 使用 FEISHU_DEFAULT_CHAT_ID
|
|
191
|
+
chatlark info
|
|
192
|
+
chatlark serve echo
|
|
193
|
+
chatlark serve webhook
|
|
191
194
|
```
|
|
192
195
|
|
|
193
196
|
```python
|
|
194
|
-
from
|
|
197
|
+
from chatlark import LarkBot, ChatSession
|
|
195
198
|
|
|
196
199
|
bot = LarkBot()
|
|
197
|
-
session = ChatSession(
|
|
200
|
+
session = ChatSession(chat_factory=my_chat_factory)
|
|
198
201
|
|
|
199
202
|
@bot.on_message
|
|
200
203
|
def chat(ctx):
|
|
@@ -203,21 +206,23 @@ def chat(ctx):
|
|
|
203
206
|
bot.start()
|
|
204
207
|
```
|
|
205
208
|
|
|
206
|
-
### DNS
|
|
209
|
+
### DNS 管理(已迁移到 ChatDNS)
|
|
210
|
+
|
|
211
|
+
DNS 记录管理、DDNS、IP 探测和 DNS-01 证书自动化已经从 ChatTool 分离到独立包 `ChatDNS`,请使用一等 CLI `chatdns`:
|
|
207
212
|
|
|
208
213
|
```bash
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
214
|
+
chatdns --help
|
|
215
|
+
chatdns list
|
|
216
|
+
chatdns records home.example.com
|
|
217
|
+
chatdns set home.example.com -v 1.2.3.4
|
|
218
|
+
chatdns delete home.example.com -t A --yes
|
|
219
|
+
chatdns ip
|
|
220
|
+
chatdns ddns home.example.com --monitor
|
|
221
|
+
chatdns cert apply -d example.com -e admin@example.com --provider aliyun --staging
|
|
222
|
+
chatdns cert check -d example.com
|
|
218
223
|
```
|
|
219
224
|
|
|
220
|
-
|
|
225
|
+
在 ChatTool 中可通过可选依赖安装:`pip install "chattool[dns]"`。旧的 nested `chattool dns` 命令已移除,避免 ChatTool 继续持有重复 DNS/证书业务实现。
|
|
221
226
|
|
|
222
227
|
### Nginx 配置生成 (`chattool nginx`)
|
|
223
228
|
|
|
@@ -229,16 +234,17 @@ chattool nginx static-root ./nas.conf --set SERVER_NAME=share.example.com --set
|
|
|
229
234
|
chattool nginx -i # 交互式选择模板并逐项填写
|
|
230
235
|
```
|
|
231
236
|
|
|
232
|
-
### AI 绘图 (`
|
|
237
|
+
### AI 绘图 (`chatimg`)
|
|
233
238
|
|
|
234
239
|
```bash
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
240
|
+
pip install "chattool[images]"
|
|
241
|
+
chatimg pollinations generate "a cat in space" -o cat.png
|
|
242
|
+
chatimg siliconflow generate "a cute dog" -o dog.png
|
|
243
|
+
chatimg codex generate "a watercolor fox"
|
|
244
|
+
chatimg openai generate "a clean app icon"
|
|
239
245
|
```
|
|
240
246
|
|
|
241
|
-
|
|
247
|
+
AI image provider 能力已迁移到独立 `ChatImg` / `chatimg`;`chattool image` 已移除,避免 ChatTool 继续持有重复 image provider 实现。
|
|
242
248
|
|
|
243
249
|
### 数据探索 (`chattool explore`)
|
|
244
250
|
|
|
@@ -266,9 +272,8 @@ chattool serve local . --html index.html --dry-run
|
|
|
266
272
|
|
|
267
273
|
| 工具 | 命令 | 说明 |
|
|
268
274
|
|------|------|------|
|
|
269
|
-
| 网络扫描 | `chattool network` | 扫描局域网主机和端口 |
|
|
270
275
|
| Nginx 配置 | `chattool nginx` | 按模板生成常见的反向代理、路径转发和静态目录配置 |
|
|
271
|
-
| PyPI 工具 | `chattool
|
|
276
|
+
| PyPI 工具 | `chatpypi`(来自 `chattool[pypi]` / `chattool[arch]` / `ChatPyPI`) | 创建、构建、校验、上传与探测 Python 包;ChatTool 不再内置 `chattool pypi` |
|
|
272
277
|
| MCP 服务 | `chattool mcp start` | 标准 MCP Server,供 Claude/Cursor 调用 |
|
|
273
278
|
| 环境安装 | `chatup zsh/codex/claude/opencode/hermes/lark-cli/docker` | ChatTool 的 setup 能力已迁移到独立 ChatUp;安装 `chattool[setup]` 或 `chatup` 后使用 `chatup ...` 一级命令配置常用 Agent CLI / WebUI / Docker 环境 |
|
|
274
279
|
| Workspace | `chatup workspace` | 初始化围绕核心项目的人类-AI 协作工作区骨架;当前默认使用 `projects/` 作为实际工作的执行容器,workspace 根目录则保留 general-use 协议与上下文;可选 `--with-chattool`、`--with-chatblog`、`--with-memory` 分别挂载 ChatTool、ChatBlog、ChatMemory |
|
|
@@ -280,7 +285,7 @@ chattool serve local . --html index.html --dry-run
|
|
|
280
285
|
|
|
281
286
|
完整文档见 [chattool.wzhecnu.cn](https://chattool.wzhecnu.cn)
|
|
282
287
|
仓库结构设计草案见 `docs/design/python-library-repo-structure.md`
|
|
283
|
-
PyPI
|
|
288
|
+
PyPI 包管理能力已迁移到独立 `ChatPyPI` / `chatpypi` 包。
|
|
284
289
|
|
|
285
290
|
## 测试约定
|
|
286
291
|
|
|
@@ -288,26 +293,25 @@ PyPI 发布命令设计草案见 `docs/design/chattool-pypi-cli-design.md`
|
|
|
288
293
|
- `tests/mock-cli-tests/`:所有基于 `mock`、`patch`、`monkeypatch`、fake client / API 的 CLI 测试,统一集中到这里。
|
|
289
294
|
- `tests/code-tests/`:非 CLI 的代码测试与历史测试迁移落点。
|
|
290
295
|
|
|
291
|
-
|
|
296
|
+
快速建包请安装并使用独立 `chatpypi`:
|
|
292
297
|
|
|
293
298
|
```bash
|
|
294
|
-
chattool
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
chatpypi
|
|
299
|
+
pip install "chattool[pypi]"
|
|
300
|
+
chatpypi init mychat
|
|
301
|
+
chatpypi init mycli -t chatarch
|
|
302
|
+
chatpypi init -i # 交互式选择模板、mkdocs/workflow 等选项
|
|
303
|
+
chatpypi probe mychat
|
|
298
304
|
```
|
|
299
305
|
|
|
300
|
-
`
|
|
306
|
+
也可以通过 `pip install "chattool[arch]"` 一次性安装 ChatGH、ChatUp、ChatPyPI、ChatNet、ChatLark、ChatImg。
|
|
301
307
|
|
|
302
|
-
|
|
308
|
+
`ChatPyPI` / `chatpypi` 是 Python 包创建、构建、校验、上传与探测能力的 canonical owner;ChatTool 不再内置 `chattool pypi` 或 `chatpypi` wrapper。
|
|
303
309
|
|
|
304
|
-
`
|
|
310
|
+
默认模板生成的 `pyproject.toml` 会写入 `requires-python = ">=3.9"`;`chatarch` 模板默认写入 `requires-python = ">=3.10"`,并依赖 `chatstyle>=0.1.0,<0.2.0` 与 `chatenv>=0.2.2,<0.3.0`。
|
|
305
311
|
|
|
306
|
-
|
|
312
|
+
`chatarch` 模板会额外生成 `DEVELOP.md`、`CHANGELOG.md`、`AGENTS.md`、`README.en.md`、`mkdocs.yml`、`docs/`、`tests/cli-tests/`、`tests/mock-cli-tests/`、`tests/code-tests/` 与 `.github/workflows/` 骨架;发布 workflow 由显式 `v*` tag 或 `workflow_dispatch` 触发,校验 tag 与包内 `__version__` 一致,并通过 PyPI Trusted Publishing 发布。默认不写 `environment: pypi`,除非 PyPI Trusted Publisher 明确配置了同名 environment。
|
|
307
313
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
其中 `chattool pypi probe <name>` 现在默认面向正式 `pypi`,按精确项目名检查名称是否已被占用;若命中现有项目,会顺手输出少量项目摘要信息和最新 release 日期,便于快速判断是否需要换名。
|
|
314
|
+
如只想生成代码与测试骨架,可以用 `--without-mkdocs` 跳过 mkdocs/docs,用 `--without-workflows` 跳过 `.github/workflows/`。
|
|
311
315
|
|
|
312
316
|
## 开源协议
|
|
313
317
|
|
|
@@ -30,10 +30,12 @@
|
|
|
30
30
|
```bash
|
|
31
31
|
pip install chattool --upgrade
|
|
32
32
|
pip install "chattool[tools]" # 常用工具全集
|
|
33
|
-
pip install "chattool[mcp
|
|
33
|
+
pip install "chattool[mcp]" # legacy MCP 服务(DNS MCP 本轮不维护)
|
|
34
34
|
pip install "chattool[images]" # 含图像工具
|
|
35
|
-
pip install "chattool[pypi]" #
|
|
35
|
+
pip install "chattool[pypi]" # 安装独立 ChatPyPI,用 chatpypi 管理 Python 包创建/构建/发布
|
|
36
|
+
pip install "chattool[lark]" # 安装独立 ChatLark,用 chatlark 管理飞书/Lark bot helper
|
|
36
37
|
pip install "chattool[setup]" # 安装独立 ChatUp,用 chatup workspace/hermes/cc-connect 等命令做环境初始化
|
|
38
|
+
pip install "chattool[arch]" # 一次性安装 ChatGH / ChatUp / ChatPyPI / ChatNet / ChatLark 这些平行 ChatArch 工具
|
|
37
39
|
pip install "chattool[dev]" # 仓库开发依赖
|
|
38
40
|
```
|
|
39
41
|
|
|
@@ -60,7 +62,7 @@ chatenv set OPENAI_API_KEY=sk-xxx
|
|
|
60
62
|
chatenv new mini -t feishu # 从当前激活配置复制一份新的 Feishu profile
|
|
61
63
|
chatenv new -t openai # 交互式创建 OpenAI profile:先问名称,再补齐字段,不改 active .env
|
|
62
64
|
chatenv save work -t openai && chatenv use work -t openai # 按类型管理 profile
|
|
63
|
-
|
|
65
|
+
chatlark info -e work # 显式使用 Feishu profile,优先级高于当前 shell 环境变量
|
|
64
66
|
chattool cc init -i --quiet # 生成默认 quiet 的 cc-connect 项目配置
|
|
65
67
|
```
|
|
66
68
|
|
|
@@ -86,23 +88,25 @@ async for chunk in Chat().user("写一首诗").async_get_response_stream():
|
|
|
86
88
|
print(chunk.delta_content, end="", flush=True)
|
|
87
89
|
```
|
|
88
90
|
|
|
89
|
-
###
|
|
91
|
+
### 飞书/Lark Bot(已迁移到 ChatLark)
|
|
92
|
+
|
|
93
|
+
飞书/Lark bot helper 已从 ChatTool 分离到独立包 `ChatLark`,请使用一等 CLI `chatlark`。模型调用相关入口暂不接回 ChatTool。
|
|
90
94
|
|
|
91
95
|
```bash
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
pip install "chattool[lark]"
|
|
97
|
+
chatlark send USER_ID "Hello"
|
|
98
|
+
chatlark send "Hello" # 使用 FEISHU_DEFAULT_RECEIVER_ID
|
|
99
|
+
chatlark send -t chat_id "Hello team" # 使用 FEISHU_DEFAULT_CHAT_ID
|
|
100
|
+
chatlark info
|
|
101
|
+
chatlark serve echo
|
|
102
|
+
chatlark serve webhook
|
|
99
103
|
```
|
|
100
104
|
|
|
101
105
|
```python
|
|
102
|
-
from
|
|
106
|
+
from chatlark import LarkBot, ChatSession
|
|
103
107
|
|
|
104
108
|
bot = LarkBot()
|
|
105
|
-
session = ChatSession(
|
|
109
|
+
session = ChatSession(chat_factory=my_chat_factory)
|
|
106
110
|
|
|
107
111
|
@bot.on_message
|
|
108
112
|
def chat(ctx):
|
|
@@ -111,21 +115,23 @@ def chat(ctx):
|
|
|
111
115
|
bot.start()
|
|
112
116
|
```
|
|
113
117
|
|
|
114
|
-
### DNS
|
|
118
|
+
### DNS 管理(已迁移到 ChatDNS)
|
|
119
|
+
|
|
120
|
+
DNS 记录管理、DDNS、IP 探测和 DNS-01 证书自动化已经从 ChatTool 分离到独立包 `ChatDNS`,请使用一等 CLI `chatdns`:
|
|
115
121
|
|
|
116
122
|
```bash
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
123
|
+
chatdns --help
|
|
124
|
+
chatdns list
|
|
125
|
+
chatdns records home.example.com
|
|
126
|
+
chatdns set home.example.com -v 1.2.3.4
|
|
127
|
+
chatdns delete home.example.com -t A --yes
|
|
128
|
+
chatdns ip
|
|
129
|
+
chatdns ddns home.example.com --monitor
|
|
130
|
+
chatdns cert apply -d example.com -e admin@example.com --provider aliyun --staging
|
|
131
|
+
chatdns cert check -d example.com
|
|
126
132
|
```
|
|
127
133
|
|
|
128
|
-
|
|
134
|
+
在 ChatTool 中可通过可选依赖安装:`pip install "chattool[dns]"`。旧的 nested `chattool dns` 命令已移除,避免 ChatTool 继续持有重复 DNS/证书业务实现。
|
|
129
135
|
|
|
130
136
|
### Nginx 配置生成 (`chattool nginx`)
|
|
131
137
|
|
|
@@ -137,16 +143,17 @@ chattool nginx static-root ./nas.conf --set SERVER_NAME=share.example.com --set
|
|
|
137
143
|
chattool nginx -i # 交互式选择模板并逐项填写
|
|
138
144
|
```
|
|
139
145
|
|
|
140
|
-
### AI 绘图 (`
|
|
146
|
+
### AI 绘图 (`chatimg`)
|
|
141
147
|
|
|
142
148
|
```bash
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
149
|
+
pip install "chattool[images]"
|
|
150
|
+
chatimg pollinations generate "a cat in space" -o cat.png
|
|
151
|
+
chatimg siliconflow generate "a cute dog" -o dog.png
|
|
152
|
+
chatimg codex generate "a watercolor fox"
|
|
153
|
+
chatimg openai generate "a clean app icon"
|
|
147
154
|
```
|
|
148
155
|
|
|
149
|
-
|
|
156
|
+
AI image provider 能力已迁移到独立 `ChatImg` / `chatimg`;`chattool image` 已移除,避免 ChatTool 继续持有重复 image provider 实现。
|
|
150
157
|
|
|
151
158
|
### 数据探索 (`chattool explore`)
|
|
152
159
|
|
|
@@ -174,9 +181,8 @@ chattool serve local . --html index.html --dry-run
|
|
|
174
181
|
|
|
175
182
|
| 工具 | 命令 | 说明 |
|
|
176
183
|
|------|------|------|
|
|
177
|
-
| 网络扫描 | `chattool network` | 扫描局域网主机和端口 |
|
|
178
184
|
| Nginx 配置 | `chattool nginx` | 按模板生成常见的反向代理、路径转发和静态目录配置 |
|
|
179
|
-
| PyPI 工具 | `chattool
|
|
185
|
+
| PyPI 工具 | `chatpypi`(来自 `chattool[pypi]` / `chattool[arch]` / `ChatPyPI`) | 创建、构建、校验、上传与探测 Python 包;ChatTool 不再内置 `chattool pypi` |
|
|
180
186
|
| MCP 服务 | `chattool mcp start` | 标准 MCP Server,供 Claude/Cursor 调用 |
|
|
181
187
|
| 环境安装 | `chatup zsh/codex/claude/opencode/hermes/lark-cli/docker` | ChatTool 的 setup 能力已迁移到独立 ChatUp;安装 `chattool[setup]` 或 `chatup` 后使用 `chatup ...` 一级命令配置常用 Agent CLI / WebUI / Docker 环境 |
|
|
182
188
|
| Workspace | `chatup workspace` | 初始化围绕核心项目的人类-AI 协作工作区骨架;当前默认使用 `projects/` 作为实际工作的执行容器,workspace 根目录则保留 general-use 协议与上下文;可选 `--with-chattool`、`--with-chatblog`、`--with-memory` 分别挂载 ChatTool、ChatBlog、ChatMemory |
|
|
@@ -188,7 +194,7 @@ chattool serve local . --html index.html --dry-run
|
|
|
188
194
|
|
|
189
195
|
完整文档见 [chattool.wzhecnu.cn](https://chattool.wzhecnu.cn)
|
|
190
196
|
仓库结构设计草案见 `docs/design/python-library-repo-structure.md`
|
|
191
|
-
PyPI
|
|
197
|
+
PyPI 包管理能力已迁移到独立 `ChatPyPI` / `chatpypi` 包。
|
|
192
198
|
|
|
193
199
|
## 测试约定
|
|
194
200
|
|
|
@@ -196,26 +202,25 @@ PyPI 发布命令设计草案见 `docs/design/chattool-pypi-cli-design.md`
|
|
|
196
202
|
- `tests/mock-cli-tests/`:所有基于 `mock`、`patch`、`monkeypatch`、fake client / API 的 CLI 测试,统一集中到这里。
|
|
197
203
|
- `tests/code-tests/`:非 CLI 的代码测试与历史测试迁移落点。
|
|
198
204
|
|
|
199
|
-
|
|
205
|
+
快速建包请安装并使用独立 `chatpypi`:
|
|
200
206
|
|
|
201
207
|
```bash
|
|
202
|
-
chattool
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
chatpypi
|
|
208
|
+
pip install "chattool[pypi]"
|
|
209
|
+
chatpypi init mychat
|
|
210
|
+
chatpypi init mycli -t chatarch
|
|
211
|
+
chatpypi init -i # 交互式选择模板、mkdocs/workflow 等选项
|
|
212
|
+
chatpypi probe mychat
|
|
206
213
|
```
|
|
207
214
|
|
|
208
|
-
`
|
|
215
|
+
也可以通过 `pip install "chattool[arch]"` 一次性安装 ChatGH、ChatUp、ChatPyPI、ChatNet、ChatLark、ChatImg。
|
|
209
216
|
|
|
210
|
-
|
|
217
|
+
`ChatPyPI` / `chatpypi` 是 Python 包创建、构建、校验、上传与探测能力的 canonical owner;ChatTool 不再内置 `chattool pypi` 或 `chatpypi` wrapper。
|
|
211
218
|
|
|
212
|
-
`
|
|
219
|
+
默认模板生成的 `pyproject.toml` 会写入 `requires-python = ">=3.9"`;`chatarch` 模板默认写入 `requires-python = ">=3.10"`,并依赖 `chatstyle>=0.1.0,<0.2.0` 与 `chatenv>=0.2.2,<0.3.0`。
|
|
213
220
|
|
|
214
|
-
|
|
221
|
+
`chatarch` 模板会额外生成 `DEVELOP.md`、`CHANGELOG.md`、`AGENTS.md`、`README.en.md`、`mkdocs.yml`、`docs/`、`tests/cli-tests/`、`tests/mock-cli-tests/`、`tests/code-tests/` 与 `.github/workflows/` 骨架;发布 workflow 由显式 `v*` tag 或 `workflow_dispatch` 触发,校验 tag 与包内 `__version__` 一致,并通过 PyPI Trusted Publishing 发布。默认不写 `environment: pypi`,除非 PyPI Trusted Publisher 明确配置了同名 environment。
|
|
215
222
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
其中 `chattool pypi probe <name>` 现在默认面向正式 `pypi`,按精确项目名检查名称是否已被占用;若命中现有项目,会顺手输出少量项目摘要信息和最新 release 日期,便于快速判断是否需要换名。
|
|
223
|
+
如只想生成代码与测试骨架,可以用 `--without-mkdocs` 跳过 mkdocs/docs,用 `--without-workflows` 跳过 `.github/workflows/`。
|
|
219
224
|
|
|
220
225
|
## 开源协议
|
|
221
226
|
|
|
@@ -23,9 +23,8 @@ keywords = ["chattool"]
|
|
|
23
23
|
license = {text = "MIT license"}
|
|
24
24
|
dependencies = [
|
|
25
25
|
"Click>=7.0",
|
|
26
|
-
"chatgh>=0.2.6,<0.3.0",
|
|
27
26
|
"chatstyle>=0.1.0,<0.2.0",
|
|
28
|
-
"chatenv>=0.2.
|
|
27
|
+
"chatenv>=0.2.2,<0.3.0",
|
|
29
28
|
"requests>=2.20",
|
|
30
29
|
"python-dotenv>=0.17.0",
|
|
31
30
|
"colorama",
|
|
@@ -34,6 +33,14 @@ dependencies = [
|
|
|
34
33
|
]
|
|
35
34
|
|
|
36
35
|
[project.optional-dependencies]
|
|
36
|
+
arch = [
|
|
37
|
+
"ChatGH>=0.2.6,<0.3.0",
|
|
38
|
+
"ChatUp>=0.2.0,<0.3.0",
|
|
39
|
+
"ChatPyPI>=0.2.3,<0.3.0",
|
|
40
|
+
"ChatNet>=0.2.0,<0.3.0",
|
|
41
|
+
"ChatLark>=0.1.1,<0.2.0",
|
|
42
|
+
"ChatImg[images]>=0.1.3,<0.2.0",
|
|
43
|
+
]
|
|
37
44
|
interactive = [
|
|
38
45
|
"questionary>=2.1.0",
|
|
39
46
|
"prompt_toolkit",
|
|
@@ -43,20 +50,13 @@ batch = [
|
|
|
43
50
|
"filelock",
|
|
44
51
|
]
|
|
45
52
|
dns = [
|
|
46
|
-
"
|
|
47
|
-
"cryptography",
|
|
48
|
-
"gitpython",
|
|
49
|
-
"netifaces",
|
|
50
|
-
"alibabacloud_alidns20150109>=3.5.10",
|
|
51
|
-
"alibabacloud_tea_openapi>=0.3.0",
|
|
52
|
-
"tencentcloud-sdk-python",
|
|
53
|
+
"ChatDNS>=0.1.1,<0.2.0",
|
|
53
54
|
]
|
|
54
55
|
lark = [
|
|
55
|
-
"
|
|
56
|
-
"flask",
|
|
56
|
+
"ChatLark>=0.1.1,<0.2.0",
|
|
57
57
|
]
|
|
58
58
|
images = [
|
|
59
|
-
"
|
|
59
|
+
"ChatImg[images]>=0.1.3,<0.2.0",
|
|
60
60
|
]
|
|
61
61
|
screenshot = [
|
|
62
62
|
"selenium",
|
|
@@ -73,6 +73,7 @@ serve = [
|
|
|
73
73
|
"fastapi",
|
|
74
74
|
"uvicorn",
|
|
75
75
|
"pydantic>=2.0.0",
|
|
76
|
+
"ChatDNS>=0.1.1,<0.2.0",
|
|
76
77
|
]
|
|
77
78
|
mcp = [
|
|
78
79
|
"fastmcp; python_version >= '3.10'",
|
|
@@ -82,8 +83,7 @@ client = [
|
|
|
82
83
|
"rich",
|
|
83
84
|
]
|
|
84
85
|
pypi = [
|
|
85
|
-
"
|
|
86
|
-
"twine",
|
|
86
|
+
"ChatPyPI>=0.2.3,<0.3.0",
|
|
87
87
|
]
|
|
88
88
|
setup = [
|
|
89
89
|
"chatup>=0.2.0,<0.3.0",
|
|
@@ -111,7 +111,7 @@ dev = [
|
|
|
111
111
|
"wheel",
|
|
112
112
|
"build",
|
|
113
113
|
"twine",
|
|
114
|
-
"chattool[docs,setup,tests,tools]",
|
|
114
|
+
"chattool[arch,docs,setup,tests,tools]",
|
|
115
115
|
]
|
|
116
116
|
[project.urls]
|
|
117
117
|
Homepage = "https://github.com/cubenlp/chattool"
|
|
@@ -119,7 +119,6 @@ Repository = "https://github.com/cubenlp/chattool"
|
|
|
119
119
|
|
|
120
120
|
[project.scripts]
|
|
121
121
|
chattool = "chattool.client:main_cli"
|
|
122
|
-
chatpypi = "chattool.client:main_pypi_cli"
|
|
123
122
|
chatskill = "chattool.client:main_skill_cli"
|
|
124
123
|
chatmcp = "chattool.mcp:main"
|
|
125
124
|
|
|
@@ -4,7 +4,7 @@ import importlib
|
|
|
4
4
|
|
|
5
5
|
__author__ = """Rex Wang"""
|
|
6
6
|
__email__ = "1073853456@qq.com"
|
|
7
|
-
__version__ = "7.1.
|
|
7
|
+
__version__ = "7.1.2"
|
|
8
8
|
|
|
9
9
|
from dotenv import load_dotenv
|
|
10
10
|
|
|
@@ -36,11 +36,7 @@ BaseEnvConfig.load_all(CHATARCH_ENV_DIR)
|
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
_LAZY_ATTRS = {
|
|
39
|
-
"
|
|
40
|
-
"AliyunDNSClient": ("chattool.tools.dns", "AliyunDNSClient"),
|
|
41
|
-
"TencentDNSClient": ("chattool.tools.dns", "TencentDNSClient"),
|
|
42
|
-
"DynamicIPUpdater": ("chattool.tools.dns", "DynamicIPUpdater"),
|
|
43
|
-
"SSLCertUpdater": ("chattool.tools.cert", "SSLCertUpdater"),
|
|
39
|
+
"SSLCertUpdater": ("chatdns", "SSLCertUpdater"),
|
|
44
40
|
}
|
|
45
41
|
|
|
46
42
|
|
|
@@ -69,9 +65,5 @@ __all__ = [
|
|
|
69
65
|
"AliyunConfig",
|
|
70
66
|
"TencentConfig",
|
|
71
67
|
"ZulipConfig",
|
|
72
|
-
"LarkBot",
|
|
73
|
-
"AliyunDNSClient",
|
|
74
|
-
"TencentDNSClient",
|
|
75
|
-
"DynamicIPUpdater",
|
|
76
68
|
"SSLCertUpdater",
|
|
77
69
|
]
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from chattool.interaction import install_cli_warning_filters
|
|
2
|
+
|
|
3
|
+
install_cli_warning_filters()
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def main_cli():
|
|
7
|
+
from .main import cli
|
|
8
|
+
|
|
9
|
+
cli()
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def main_skill_cli():
|
|
13
|
+
import sys
|
|
14
|
+
|
|
15
|
+
from chattool.skill.cli import skill_cli
|
|
16
|
+
|
|
17
|
+
skill_cli.main(args=sys.argv[1:], prog_name="chatskill")
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
__all__ = [
|
|
21
|
+
"main_cli",
|
|
22
|
+
"main_skill_cli",
|
|
23
|
+
]
|
|
@@ -52,13 +52,6 @@ def _load_attr(module_path: str, attr: str) -> click.Command:
|
|
|
52
52
|
return getattr(module, attr)
|
|
53
53
|
|
|
54
54
|
|
|
55
|
-
def _load_dns_group() -> click.Command:
|
|
56
|
-
dns_group = _load_attr("chattool.tools.dns.cli", "cli")
|
|
57
|
-
cert_group = _load_attr("chattool.tools.cert.cli", "cert_cli")
|
|
58
|
-
dns_group.add_command(cert_group, name="cert")
|
|
59
|
-
return dns_group
|
|
60
|
-
|
|
61
|
-
|
|
62
55
|
def _build_serve_group() -> click.Command:
|
|
63
56
|
return _load_attr("chattool.serve.cli", "serve_cli")
|
|
64
57
|
|
|
@@ -88,15 +81,10 @@ def cli():
|
|
|
88
81
|
|
|
89
82
|
cli._lazy_commands.update(
|
|
90
83
|
{
|
|
91
|
-
"dns": _load_dns_group,
|
|
92
|
-
"pypi": lambda: _load_attr("chattool.tools.pypi.cli", "cli"),
|
|
93
84
|
"serve": _build_serve_group,
|
|
94
85
|
"client": _build_client_group,
|
|
95
|
-
"network": lambda: _load_attr("chattool.tools.network.cli", "cli"),
|
|
96
86
|
"nginx": lambda: _load_attr("chattool.tools.nginx.cli", "cli"),
|
|
97
87
|
"mcp": lambda: _load_attr("chattool.mcp.cli", "cli"),
|
|
98
|
-
"lark": lambda: _load_attr("chattool.tools.lark.cli", "cli"),
|
|
99
|
-
"image": lambda: _load_attr("chattool.tools.image.cli", "cli"),
|
|
100
88
|
"tplogin": lambda: _load_attr("chattool.tools.tplogin_cli", "cli"),
|
|
101
89
|
"browser": lambda: _load_attr("chattool.tools.browser.cli", "cli"),
|
|
102
90
|
"zulip": lambda: _load_attr("chattool.tools.zulip.cli", "cli"),
|
|
@@ -6,12 +6,6 @@ from .azure import AzureConfig
|
|
|
6
6
|
from .aliyun import AliyunConfig
|
|
7
7
|
from .tencent import TencentConfig
|
|
8
8
|
from .zulip import ZulipConfig
|
|
9
|
-
from .feishu import FeishuConfig
|
|
10
|
-
from .tongyi import TongyiConfig
|
|
11
|
-
from .huggingface import HuggingFaceConfig
|
|
12
|
-
from .pollinations import PollinationsConfig
|
|
13
|
-
from .liblib import LiblibConfig
|
|
14
|
-
from .siliconflow import SiliconFlowConfig
|
|
15
9
|
from .tplink import TPLinkConfig
|
|
16
10
|
from .browser import BrowserConfig
|
|
17
11
|
|
|
@@ -25,12 +19,6 @@ __all__ = [
|
|
|
25
19
|
"ZulipConfig",
|
|
26
20
|
"AliyunConfig",
|
|
27
21
|
"TencentConfig",
|
|
28
|
-
"FeishuConfig",
|
|
29
|
-
"TongyiConfig",
|
|
30
|
-
"HuggingFaceConfig",
|
|
31
|
-
"PollinationsConfig",
|
|
32
|
-
"LiblibConfig",
|
|
33
|
-
"SiliconFlowConfig",
|
|
34
22
|
"BrowserConfig",
|
|
35
23
|
"TPLinkConfig",
|
|
36
24
|
"SkillsConfig",
|
|
@@ -16,7 +16,7 @@ class AliyunConfig(BaseEnvConfig):
|
|
|
16
16
|
def test(cls):
|
|
17
17
|
print(f"Testing {cls._title}...")
|
|
18
18
|
try:
|
|
19
|
-
from
|
|
19
|
+
from chatdns import AliyunDNSClient
|
|
20
20
|
client = AliyunDNSClient()
|
|
21
21
|
# 尝试获取域名列表,只取1个来验证
|
|
22
22
|
domains = client.describe_domains(page_size=1)
|