chattool 7.1.2__tar.gz → 7.1.3__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.2/src/chattool.egg-info → chattool-7.1.3}/PKG-INFO +5 -2
- {chattool-7.1.2 → chattool-7.1.3}/pyproject.toml +5 -1
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/__init__.py +1 -3
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/client/main.py +0 -1
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/__init__.py +0 -2
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/elements.py +0 -2
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/mcp/catalog.py +1 -7
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/mcp/server.py +1 -3
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/__init__.py +0 -2
- {chattool-7.1.2 → chattool-7.1.3/src/chattool.egg-info}/PKG-INFO +5 -2
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool.egg-info/SOURCES.txt +0 -6
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool.egg-info/requires.txt +5 -1
- chattool-7.1.2/src/chattool/config/zulip.py +0 -31
- chattool-7.1.2/src/chattool/tools/zulip/__init__.py +0 -3
- chattool-7.1.2/src/chattool/tools/zulip/cli.py +0 -539
- chattool-7.1.2/src/chattool/tools/zulip/client.py +0 -222
- chattool-7.1.2/src/chattool/tools/zulip/legacy.py +0 -354
- chattool-7.1.2/src/chattool/tools/zulip/mcp.py +0 -140
- {chattool-7.1.2 → chattool-7.1.3}/LICENSE +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/MANIFEST.in +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/README.md +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/scripts/migrate_chattool_envs_to_chatarch.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/setup.cfg +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/_all.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/client/__init__.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/client/cert_client.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/client/svg2gif_client.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/aliyun.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/azure.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/base.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/browser.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/crs.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/openai.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/skills.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/tencent.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/tplink.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/const.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/docker/__init__.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/docker/cli.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/docker/elements.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/docker/main.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/__init__.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/arxiv/__init__.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/arxiv/cli.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/arxiv/client.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/arxiv/daily.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/arxiv/harvest.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/arxiv/models.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/arxiv/presets.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/arxiv/query.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/cli.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/wordpress/__init__.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/wordpress/client.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/wordpress/models.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/interaction/__init__.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/interaction/command_schema.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/interaction/policy.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/interaction/warnings.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/llm/__init__.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/llm/chattype.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/llm/response.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/mcp/__init__.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/mcp/cli.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/serve/__init__.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/serve/capture.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/serve/cert_server.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/serve/cli.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/serve/local.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/serve/oauth.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/serve/svg2gif.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/skill/__init__.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/skill/cli.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/skill/interaction.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/skill/platforms.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/skill/validation.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/__init__.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/base.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/cli.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/playwright_impl.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/selenium.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/test_browser.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/test_module.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/test_remote.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/xhs_qrcode.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/cc/__init__.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/cc/cli.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/cert/__init__.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/cert/cert_server.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/cert/email.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/crs/__init__.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/crs/api.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/crs/cli.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/crs/openai_oauth.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/interact.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/nginx/__init__.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/nginx/cli.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/nginx/templates.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/tplogin.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/tplogin_cli.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/utils/__init__.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/utils/basic.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/utils/custom_logger.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/utils/fastobj.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/utils/httpclient.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/utils/pathing.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/utils/test_helpers.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool/utils/urltool.py +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool.egg-info/dependency_links.txt +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/src/chattool.egg-info/entry_points.txt +0 -0
- {chattool-7.1.2 → chattool-7.1.3}/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.3
|
|
4
4
|
Summary: Toolkit for Chat API
|
|
5
5
|
Author-email: Rex Wang <1073853456@qq.com>
|
|
6
6
|
License: MIT license
|
|
@@ -31,6 +31,7 @@ Requires-Dist: ChatPyPI<0.3.0,>=0.2.3; extra == "arch"
|
|
|
31
31
|
Requires-Dist: ChatNet<0.3.0,>=0.2.0; extra == "arch"
|
|
32
32
|
Requires-Dist: ChatLark<0.2.0,>=0.1.1; extra == "arch"
|
|
33
33
|
Requires-Dist: ChatImg[images]<0.2.0,>=0.1.3; extra == "arch"
|
|
34
|
+
Requires-Dist: ChatZulip<0.2.0,>=0.1.0; extra == "arch"
|
|
34
35
|
Provides-Extra: interactive
|
|
35
36
|
Requires-Dist: questionary>=2.1.0; extra == "interactive"
|
|
36
37
|
Requires-Dist: prompt_toolkit; extra == "interactive"
|
|
@@ -43,6 +44,8 @@ Provides-Extra: lark
|
|
|
43
44
|
Requires-Dist: ChatLark<0.2.0,>=0.1.1; extra == "lark"
|
|
44
45
|
Provides-Extra: images
|
|
45
46
|
Requires-Dist: ChatImg[images]<0.2.0,>=0.1.3; extra == "images"
|
|
47
|
+
Provides-Extra: zulip
|
|
48
|
+
Requires-Dist: ChatZulip<0.2.0,>=0.1.0; extra == "zulip"
|
|
46
49
|
Provides-Extra: screenshot
|
|
47
50
|
Requires-Dist: selenium; extra == "screenshot"
|
|
48
51
|
Requires-Dist: pillow; extra == "screenshot"
|
|
@@ -67,7 +70,7 @@ Requires-Dist: ChatPyPI<0.3.0,>=0.2.3; extra == "pypi"
|
|
|
67
70
|
Provides-Extra: setup
|
|
68
71
|
Requires-Dist: chatup<0.3.0,>=0.2.0; extra == "setup"
|
|
69
72
|
Provides-Extra: tools
|
|
70
|
-
Requires-Dist: chattool[batch,browser,client,dns,images,interactive,lark,mcp,screenshot,serve]; extra == "tools"
|
|
73
|
+
Requires-Dist: chattool[batch,browser,client,dns,images,interactive,lark,mcp,screenshot,serve,zulip]; extra == "tools"
|
|
71
74
|
Provides-Extra: tests
|
|
72
75
|
Requires-Dist: coverage; extra == "tests"
|
|
73
76
|
Requires-Dist: pytest>=3; extra == "tests"
|
|
@@ -40,6 +40,7 @@ arch = [
|
|
|
40
40
|
"ChatNet>=0.2.0,<0.3.0",
|
|
41
41
|
"ChatLark>=0.1.1,<0.2.0",
|
|
42
42
|
"ChatImg[images]>=0.1.3,<0.2.0",
|
|
43
|
+
"ChatZulip>=0.1.0,<0.2.0",
|
|
43
44
|
]
|
|
44
45
|
interactive = [
|
|
45
46
|
"questionary>=2.1.0",
|
|
@@ -58,6 +59,9 @@ lark = [
|
|
|
58
59
|
images = [
|
|
59
60
|
"ChatImg[images]>=0.1.3,<0.2.0",
|
|
60
61
|
]
|
|
62
|
+
zulip = [
|
|
63
|
+
"ChatZulip>=0.1.0,<0.2.0",
|
|
64
|
+
]
|
|
61
65
|
screenshot = [
|
|
62
66
|
"selenium",
|
|
63
67
|
"pillow",
|
|
@@ -89,7 +93,7 @@ setup = [
|
|
|
89
93
|
"chatup>=0.2.0,<0.3.0",
|
|
90
94
|
]
|
|
91
95
|
tools = [
|
|
92
|
-
"chattool[batch,browser,client,dns,images,interactive,lark,mcp,serve,screenshot]",
|
|
96
|
+
"chattool[batch,browser,client,dns,images,interactive,lark,mcp,serve,screenshot,zulip]",
|
|
93
97
|
]
|
|
94
98
|
tests = [
|
|
95
99
|
"coverage",
|
|
@@ -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.3"
|
|
8
8
|
|
|
9
9
|
from dotenv import load_dotenv
|
|
10
10
|
|
|
@@ -25,7 +25,6 @@ from .config import (
|
|
|
25
25
|
AzureConfig,
|
|
26
26
|
AliyunConfig,
|
|
27
27
|
TencentConfig,
|
|
28
|
-
ZulipConfig,
|
|
29
28
|
BaseEnvConfig,
|
|
30
29
|
)
|
|
31
30
|
|
|
@@ -64,6 +63,5 @@ __all__ = [
|
|
|
64
63
|
"AzureConfig",
|
|
65
64
|
"AliyunConfig",
|
|
66
65
|
"TencentConfig",
|
|
67
|
-
"ZulipConfig",
|
|
68
66
|
"SSLCertUpdater",
|
|
69
67
|
]
|
|
@@ -87,7 +87,6 @@ cli._lazy_commands.update(
|
|
|
87
87
|
"mcp": lambda: _load_attr("chattool.mcp.cli", "cli"),
|
|
88
88
|
"tplogin": lambda: _load_attr("chattool.tools.tplogin_cli", "cli"),
|
|
89
89
|
"browser": lambda: _load_attr("chattool.tools.browser.cli", "cli"),
|
|
90
|
-
"zulip": lambda: _load_attr("chattool.tools.zulip.cli", "cli"),
|
|
91
90
|
"skill": lambda: _load_attr("chattool.skill.cli", "skill_cli"),
|
|
92
91
|
"cc": lambda: _load_attr("chattool.tools.cc.cli", "cli"),
|
|
93
92
|
"docker": lambda: _load_attr("chattool.docker.cli", "docker_cmd"),
|
|
@@ -5,7 +5,6 @@ from .skills import SkillsConfig
|
|
|
5
5
|
from .azure import AzureConfig
|
|
6
6
|
from .aliyun import AliyunConfig
|
|
7
7
|
from .tencent import TencentConfig
|
|
8
|
-
from .zulip import ZulipConfig
|
|
9
8
|
from .tplink import TPLinkConfig
|
|
10
9
|
from .browser import BrowserConfig
|
|
11
10
|
|
|
@@ -16,7 +15,6 @@ __all__ = [
|
|
|
16
15
|
"AzureConfig",
|
|
17
16
|
"OpenAIConfig",
|
|
18
17
|
"CRSConfig",
|
|
19
|
-
"ZulipConfig",
|
|
20
18
|
"AliyunConfig",
|
|
21
19
|
"TencentConfig",
|
|
22
20
|
"BrowserConfig",
|
|
@@ -7,7 +7,6 @@ from .skills import SkillsConfig
|
|
|
7
7
|
from .azure import AzureConfig
|
|
8
8
|
from .aliyun import AliyunConfig
|
|
9
9
|
from .tencent import TencentConfig
|
|
10
|
-
from .zulip import ZulipConfig
|
|
11
10
|
from .tplink import TPLinkConfig
|
|
12
11
|
from .browser import BrowserConfig
|
|
13
12
|
|
|
@@ -18,7 +17,6 @@ __all__ = [
|
|
|
18
17
|
"AzureConfig",
|
|
19
18
|
"OpenAIConfig",
|
|
20
19
|
"CRSConfig",
|
|
21
|
-
"ZulipConfig",
|
|
22
20
|
"AliyunConfig",
|
|
23
21
|
"TencentConfig",
|
|
24
22
|
"BrowserConfig",
|
|
@@ -12,13 +12,7 @@ class MCPToolSpec:
|
|
|
12
12
|
summary: str
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
TOOL_SPECS: Sequence[MCPToolSpec] = (
|
|
16
|
-
MCPToolSpec("zulip_list_streams", "zulip", ("zulip", "read"), "列出 Zulip 频道"),
|
|
17
|
-
MCPToolSpec("zulip_get_messages", "zulip", ("zulip", "read"), "查询 Zulip 消息"),
|
|
18
|
-
MCPToolSpec("zulip_send_message", "zulip", ("zulip", "write"), "发送 Zulip 消息"),
|
|
19
|
-
MCPToolSpec("zulip_react", "zulip", ("zulip", "write"), "添加 Zulip 表情反应"),
|
|
20
|
-
MCPToolSpec("zulip_upload_file", "zulip", ("zulip", "write"), "上传 Zulip 文件"),
|
|
21
|
-
)
|
|
15
|
+
TOOL_SPECS: Sequence[MCPToolSpec] = ()
|
|
22
16
|
|
|
23
17
|
|
|
24
18
|
def get_tool_specs() -> List[MCPToolSpec]:
|
|
@@ -10,9 +10,7 @@ from chattool.utils import setup_logger
|
|
|
10
10
|
|
|
11
11
|
logger = setup_logger("mcp_server", log_level="INFO")
|
|
12
12
|
SERVER_NAME = "ChatTool MCP Server"
|
|
13
|
-
REGISTER_MODULES = (
|
|
14
|
-
"chattool.tools.zulip.mcp",
|
|
15
|
-
)
|
|
13
|
+
REGISTER_MODULES: tuple[str, ...] = ()
|
|
16
14
|
|
|
17
15
|
|
|
18
16
|
def _register_optional_tools(mcp_instance):
|
|
@@ -2,7 +2,6 @@ import importlib
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
_LAZY_ATTRS = {
|
|
5
|
-
"ZulipClient": ("chattool.tools.zulip", "ZulipClient"),
|
|
6
5
|
"InteractiveShell": ("chattool.tools.interact", "InteractiveShell"),
|
|
7
6
|
"SimpleAsyncShell": ("chattool.tools.interact", "SimpleAsyncShell"),
|
|
8
7
|
"SSLCertUpdater": ("chatdns", "SSLCertUpdater"),
|
|
@@ -20,7 +19,6 @@ def __getattr__(name: str):
|
|
|
20
19
|
return value
|
|
21
20
|
|
|
22
21
|
__all__ = [
|
|
23
|
-
"ZulipClient",
|
|
24
22
|
"InteractiveShell", "SimpleAsyncShell",
|
|
25
23
|
"SSLCertUpdater",
|
|
26
24
|
"TPLogin",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: chattool
|
|
3
|
-
Version: 7.1.
|
|
3
|
+
Version: 7.1.3
|
|
4
4
|
Summary: Toolkit for Chat API
|
|
5
5
|
Author-email: Rex Wang <1073853456@qq.com>
|
|
6
6
|
License: MIT license
|
|
@@ -31,6 +31,7 @@ Requires-Dist: ChatPyPI<0.3.0,>=0.2.3; extra == "arch"
|
|
|
31
31
|
Requires-Dist: ChatNet<0.3.0,>=0.2.0; extra == "arch"
|
|
32
32
|
Requires-Dist: ChatLark<0.2.0,>=0.1.1; extra == "arch"
|
|
33
33
|
Requires-Dist: ChatImg[images]<0.2.0,>=0.1.3; extra == "arch"
|
|
34
|
+
Requires-Dist: ChatZulip<0.2.0,>=0.1.0; extra == "arch"
|
|
34
35
|
Provides-Extra: interactive
|
|
35
36
|
Requires-Dist: questionary>=2.1.0; extra == "interactive"
|
|
36
37
|
Requires-Dist: prompt_toolkit; extra == "interactive"
|
|
@@ -43,6 +44,8 @@ Provides-Extra: lark
|
|
|
43
44
|
Requires-Dist: ChatLark<0.2.0,>=0.1.1; extra == "lark"
|
|
44
45
|
Provides-Extra: images
|
|
45
46
|
Requires-Dist: ChatImg[images]<0.2.0,>=0.1.3; extra == "images"
|
|
47
|
+
Provides-Extra: zulip
|
|
48
|
+
Requires-Dist: ChatZulip<0.2.0,>=0.1.0; extra == "zulip"
|
|
46
49
|
Provides-Extra: screenshot
|
|
47
50
|
Requires-Dist: selenium; extra == "screenshot"
|
|
48
51
|
Requires-Dist: pillow; extra == "screenshot"
|
|
@@ -67,7 +70,7 @@ Requires-Dist: ChatPyPI<0.3.0,>=0.2.3; extra == "pypi"
|
|
|
67
70
|
Provides-Extra: setup
|
|
68
71
|
Requires-Dist: chatup<0.3.0,>=0.2.0; extra == "setup"
|
|
69
72
|
Provides-Extra: tools
|
|
70
|
-
Requires-Dist: chattool[batch,browser,client,dns,images,interactive,lark,mcp,screenshot,serve]; extra == "tools"
|
|
73
|
+
Requires-Dist: chattool[batch,browser,client,dns,images,interactive,lark,mcp,screenshot,serve,zulip]; extra == "tools"
|
|
71
74
|
Provides-Extra: tests
|
|
72
75
|
Requires-Dist: coverage; extra == "tests"
|
|
73
76
|
Requires-Dist: pytest>=3; extra == "tests"
|
|
@@ -27,7 +27,6 @@ src/chattool/config/openai.py
|
|
|
27
27
|
src/chattool/config/skills.py
|
|
28
28
|
src/chattool/config/tencent.py
|
|
29
29
|
src/chattool/config/tplink.py
|
|
30
|
-
src/chattool/config/zulip.py
|
|
31
30
|
src/chattool/docker/__init__.py
|
|
32
31
|
src/chattool/docker/cli.py
|
|
33
32
|
src/chattool/docker/elements.py
|
|
@@ -93,11 +92,6 @@ src/chattool/tools/crs/openai_oauth.py
|
|
|
93
92
|
src/chattool/tools/nginx/__init__.py
|
|
94
93
|
src/chattool/tools/nginx/cli.py
|
|
95
94
|
src/chattool/tools/nginx/templates.py
|
|
96
|
-
src/chattool/tools/zulip/__init__.py
|
|
97
|
-
src/chattool/tools/zulip/cli.py
|
|
98
|
-
src/chattool/tools/zulip/client.py
|
|
99
|
-
src/chattool/tools/zulip/legacy.py
|
|
100
|
-
src/chattool/tools/zulip/mcp.py
|
|
101
95
|
src/chattool/utils/__init__.py
|
|
102
96
|
src/chattool/utils/basic.py
|
|
103
97
|
src/chattool/utils/custom_logger.py
|
|
@@ -16,6 +16,7 @@ ChatPyPI<0.3.0,>=0.2.3
|
|
|
16
16
|
ChatNet<0.3.0,>=0.2.0
|
|
17
17
|
ChatLark<0.2.0,>=0.1.1
|
|
18
18
|
ChatImg[images]<0.2.0,>=0.1.3
|
|
19
|
+
ChatZulip<0.2.0,>=0.1.0
|
|
19
20
|
|
|
20
21
|
[batch]
|
|
21
22
|
batch_executor>=0.3.0
|
|
@@ -89,4 +90,7 @@ pytest-asyncio
|
|
|
89
90
|
pytest-mock
|
|
90
91
|
|
|
91
92
|
[tools]
|
|
92
|
-
chattool[batch,browser,client,dns,images,interactive,lark,mcp,screenshot,serve]
|
|
93
|
+
chattool[batch,browser,client,dns,images,interactive,lark,mcp,screenshot,serve,zulip]
|
|
94
|
+
|
|
95
|
+
[zulip]
|
|
96
|
+
ChatZulip<0.2.0,>=0.1.0
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"""ZulipConfig env schema."""
|
|
2
|
-
|
|
3
|
-
from .base import BaseEnvConfig, EnvField
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class ZulipConfig(BaseEnvConfig):
|
|
7
|
-
_title = "Zulip Configuration"
|
|
8
|
-
_aliases = ["zulip"]
|
|
9
|
-
_storage_dir = "Zulip"
|
|
10
|
-
|
|
11
|
-
ZULIP_BOT_EMAIL = EnvField("ZULIP_BOT_EMAIL", desc="Zulip Bot Email")
|
|
12
|
-
ZULIP_BOT_API_KEY = EnvField("ZULIP_BOT_API_KEY", desc="Zulip Bot API Key", is_sensitive=True)
|
|
13
|
-
ZULIP_SITE = EnvField("ZULIP_SITE", desc="Zulip Site URL")
|
|
14
|
-
ZULIP_NEWS_STREAMS = EnvField("ZULIP_NEWS_STREAMS", desc="Comma-separated stream names for news summary")
|
|
15
|
-
ZULIP_NEWS_TOPICS = EnvField("ZULIP_NEWS_TOPICS", desc="Comma-separated topic names for news summary")
|
|
16
|
-
ZULIP_NEWS_SINCE_HOURS = EnvField("ZULIP_NEWS_SINCE_HOURS", default="24", desc="Default hours for news window")
|
|
17
|
-
ZULIP_NEWS_PER_STREAM = EnvField("ZULIP_NEWS_PER_STREAM", default="200", desc="Default per-stream fetch limit for news")
|
|
18
|
-
|
|
19
|
-
@classmethod
|
|
20
|
-
def test(cls):
|
|
21
|
-
print(f"Testing {cls._title}...")
|
|
22
|
-
try:
|
|
23
|
-
from chattool.tools.zulip.client import ZulipClient
|
|
24
|
-
client = ZulipClient()
|
|
25
|
-
profile = client.get_profile()
|
|
26
|
-
print(f"✅ Success! Authenticated as: {profile.get('email')} ({profile.get('full_name')})")
|
|
27
|
-
except Exception as e:
|
|
28
|
-
print(f"❌ Failed: {e}")
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
__all__ = ["ZulipConfig"]
|