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.
Files changed (110) hide show
  1. {chattool-7.1.2/src/chattool.egg-info → chattool-7.1.3}/PKG-INFO +5 -2
  2. {chattool-7.1.2 → chattool-7.1.3}/pyproject.toml +5 -1
  3. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/__init__.py +1 -3
  4. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/client/main.py +0 -1
  5. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/__init__.py +0 -2
  6. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/elements.py +0 -2
  7. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/mcp/catalog.py +1 -7
  8. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/mcp/server.py +1 -3
  9. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/__init__.py +0 -2
  10. {chattool-7.1.2 → chattool-7.1.3/src/chattool.egg-info}/PKG-INFO +5 -2
  11. {chattool-7.1.2 → chattool-7.1.3}/src/chattool.egg-info/SOURCES.txt +0 -6
  12. {chattool-7.1.2 → chattool-7.1.3}/src/chattool.egg-info/requires.txt +5 -1
  13. chattool-7.1.2/src/chattool/config/zulip.py +0 -31
  14. chattool-7.1.2/src/chattool/tools/zulip/__init__.py +0 -3
  15. chattool-7.1.2/src/chattool/tools/zulip/cli.py +0 -539
  16. chattool-7.1.2/src/chattool/tools/zulip/client.py +0 -222
  17. chattool-7.1.2/src/chattool/tools/zulip/legacy.py +0 -354
  18. chattool-7.1.2/src/chattool/tools/zulip/mcp.py +0 -140
  19. {chattool-7.1.2 → chattool-7.1.3}/LICENSE +0 -0
  20. {chattool-7.1.2 → chattool-7.1.3}/MANIFEST.in +0 -0
  21. {chattool-7.1.2 → chattool-7.1.3}/README.md +0 -0
  22. {chattool-7.1.2 → chattool-7.1.3}/scripts/migrate_chattool_envs_to_chatarch.py +0 -0
  23. {chattool-7.1.2 → chattool-7.1.3}/setup.cfg +0 -0
  24. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/_all.py +0 -0
  25. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/client/__init__.py +0 -0
  26. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/client/cert_client.py +0 -0
  27. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/client/svg2gif_client.py +0 -0
  28. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/aliyun.py +0 -0
  29. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/azure.py +0 -0
  30. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/base.py +0 -0
  31. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/browser.py +0 -0
  32. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/crs.py +0 -0
  33. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/openai.py +0 -0
  34. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/skills.py +0 -0
  35. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/tencent.py +0 -0
  36. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/config/tplink.py +0 -0
  37. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/const.py +0 -0
  38. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/docker/__init__.py +0 -0
  39. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/docker/cli.py +0 -0
  40. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/docker/elements.py +0 -0
  41. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/docker/main.py +0 -0
  42. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/__init__.py +0 -0
  43. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/arxiv/__init__.py +0 -0
  44. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/arxiv/cli.py +0 -0
  45. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/arxiv/client.py +0 -0
  46. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/arxiv/daily.py +0 -0
  47. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/arxiv/harvest.py +0 -0
  48. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/arxiv/models.py +0 -0
  49. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/arxiv/presets.py +0 -0
  50. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/arxiv/query.py +0 -0
  51. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/cli.py +0 -0
  52. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/wordpress/__init__.py +0 -0
  53. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/wordpress/client.py +0 -0
  54. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/explore/wordpress/models.py +0 -0
  55. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/interaction/__init__.py +0 -0
  56. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/interaction/command_schema.py +0 -0
  57. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/interaction/policy.py +0 -0
  58. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/interaction/warnings.py +0 -0
  59. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/llm/__init__.py +0 -0
  60. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/llm/chattype.py +0 -0
  61. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/llm/response.py +0 -0
  62. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/mcp/__init__.py +0 -0
  63. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/mcp/cli.py +0 -0
  64. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/serve/__init__.py +0 -0
  65. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/serve/capture.py +0 -0
  66. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/serve/cert_server.py +0 -0
  67. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/serve/cli.py +0 -0
  68. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/serve/local.py +0 -0
  69. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/serve/oauth.py +0 -0
  70. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/serve/svg2gif.py +0 -0
  71. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/skill/__init__.py +0 -0
  72. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/skill/cli.py +0 -0
  73. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/skill/interaction.py +0 -0
  74. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/skill/platforms.py +0 -0
  75. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/skill/validation.py +0 -0
  76. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/__init__.py +0 -0
  77. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/base.py +0 -0
  78. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/cli.py +0 -0
  79. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/playwright_impl.py +0 -0
  80. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/selenium.py +0 -0
  81. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/test_browser.py +0 -0
  82. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/test_module.py +0 -0
  83. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/test_remote.py +0 -0
  84. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/browser/xhs_qrcode.py +0 -0
  85. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/cc/__init__.py +0 -0
  86. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/cc/cli.py +0 -0
  87. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/cert/__init__.py +0 -0
  88. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/cert/cert_server.py +0 -0
  89. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/cert/email.py +0 -0
  90. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/crs/__init__.py +0 -0
  91. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/crs/api.py +0 -0
  92. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/crs/cli.py +0 -0
  93. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/crs/openai_oauth.py +0 -0
  94. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/interact.py +0 -0
  95. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/nginx/__init__.py +0 -0
  96. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/nginx/cli.py +0 -0
  97. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/nginx/templates.py +0 -0
  98. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/tplogin.py +0 -0
  99. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/tools/tplogin_cli.py +0 -0
  100. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/utils/__init__.py +0 -0
  101. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/utils/basic.py +0 -0
  102. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/utils/custom_logger.py +0 -0
  103. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/utils/fastobj.py +0 -0
  104. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/utils/httpclient.py +0 -0
  105. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/utils/pathing.py +0 -0
  106. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/utils/test_helpers.py +0 -0
  107. {chattool-7.1.2 → chattool-7.1.3}/src/chattool/utils/urltool.py +0 -0
  108. {chattool-7.1.2 → chattool-7.1.3}/src/chattool.egg-info/dependency_links.txt +0 -0
  109. {chattool-7.1.2 → chattool-7.1.3}/src/chattool.egg-info/entry_points.txt +0 -0
  110. {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.2
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.2"
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.2
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"]
@@ -1,3 +0,0 @@
1
- from .client import ZulipClient
2
-
3
- __all__ = ["ZulipClient"]