chatup 0.2.18__tar.gz → 0.2.19__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 (99) hide show
  1. {chatup-0.2.18/src/chatup.egg-info → chatup-0.2.19}/PKG-INFO +14 -3
  2. {chatup-0.2.18 → chatup-0.2.19}/README.md +12 -1
  3. {chatup-0.2.18 → chatup-0.2.19}/pyproject.toml +1 -1
  4. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/__init__.py +1 -1
  5. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/cli.py +2 -0
  6. chatup-0.2.19/src/chatup/commands/macos.py +48 -0
  7. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/desktop.py +11 -3
  8. {chatup-0.2.18 → chatup-0.2.19/src/chatup.egg-info}/PKG-INFO +14 -3
  9. {chatup-0.2.18 → chatup-0.2.19}/src/chatup.egg-info/SOURCES.txt +1 -0
  10. {chatup-0.2.18 → chatup-0.2.19}/src/chatup.egg-info/requires.txt +1 -1
  11. {chatup-0.2.18 → chatup-0.2.19}/tests/test_pyproject_metadata.py +1 -1
  12. {chatup-0.2.18 → chatup-0.2.19}/tests/test_version.py +1 -1
  13. {chatup-0.2.18 → chatup-0.2.19}/LICENSE +0 -0
  14. {chatup-0.2.18 → chatup-0.2.19}/setup.cfg +0 -0
  15. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/chrome_for_testing.py +0 -0
  16. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/chromedriver.py +0 -0
  17. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/commands/__init__.py +0 -0
  18. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/commands/chrome_for_testing.py +0 -0
  19. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/commands/chromedriver.py +0 -0
  20. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/commands/desktop.py +0 -0
  21. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/commands/playwright.py +0 -0
  22. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/config.py +0 -0
  23. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/const.py +0 -0
  24. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/interaction/__init__.py +0 -0
  25. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/interaction/command_schema.py +0 -0
  26. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/interaction/policy.py +0 -0
  27. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/interaction/warnings.py +0 -0
  28. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/playwright.py +0 -0
  29. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/runtime/__init__.py +0 -0
  30. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/runtime/_managed_artifact.py +0 -0
  31. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/runtime/chrome_for_testing.py +0 -0
  32. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/runtime/chromedriver.py +0 -0
  33. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/runtime/playwright.py +0 -0
  34. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/__init__.py +0 -0
  35. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/assets/hermes/install.sh +0 -0
  36. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/assets/nvm.sh +0 -0
  37. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/cc_connect.py +0 -0
  38. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/chatgpt.py +0 -0
  39. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/claude.py +0 -0
  40. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/cli.py +0 -0
  41. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/codex.py +0 -0
  42. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/crs.py +0 -0
  43. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/cursor_agent.py +0 -0
  44. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/discourse.py +0 -0
  45. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/docker.py +0 -0
  46. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/elements.py +0 -0
  47. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/frp.py +0 -0
  48. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/gitea.py +0 -0
  49. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/hermes.py +0 -0
  50. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/lark_cli.py +0 -0
  51. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/mode_prompt.py +0 -0
  52. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/mysql.py +0 -0
  53. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/nginx.py +0 -0
  54. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/nodejs.py +0 -0
  55. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/opencode.py +0 -0
  56. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/service_credentials.py +0 -0
  57. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/shell_rc.py +0 -0
  58. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/twikoo.py +0 -0
  59. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/uv.py +0 -0
  60. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/workspace/__init__.py +0 -0
  61. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/workspace/cli.py +0 -0
  62. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/workspace/core.py +0 -0
  63. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/workspace/options.py +0 -0
  64. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/workspace/render.py +0 -0
  65. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/workspace/templates/default/en/AGENTS.md +0 -0
  66. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/workspace/templates/default/en/discussion/README.md +0 -0
  67. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/workspace/templates/default/en/projects/README.md +0 -0
  68. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/workspace/templates/default/zh/AGENTS.md +0 -0
  69. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/workspace/templates/default/zh/discussion/README.md +0 -0
  70. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/workspace/templates/default/zh/projects/README.md +0 -0
  71. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/workspace.py +0 -0
  72. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/zsh.py +0 -0
  73. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/setup/zulip.py +0 -0
  74. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/utils/__init__.py +0 -0
  75. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/utils/custom_logger.py +0 -0
  76. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/utils/pathing.py +0 -0
  77. {chatup-0.2.18 → chatup-0.2.19}/src/chatup/utils/platforming.py +0 -0
  78. {chatup-0.2.18 → chatup-0.2.19}/src/chatup.egg-info/dependency_links.txt +0 -0
  79. {chatup-0.2.18 → chatup-0.2.19}/src/chatup.egg-info/entry_points.txt +0 -0
  80. {chatup-0.2.18 → chatup-0.2.19}/src/chatup.egg-info/top_level.txt +0 -0
  81. {chatup-0.2.18 → chatup-0.2.19}/tests/test_browser_backend_cli.py +0 -0
  82. {chatup-0.2.18 → chatup-0.2.19}/tests/test_chatgpt_setup.py +0 -0
  83. {chatup-0.2.18 → chatup-0.2.19}/tests/test_chrome_for_testing.py +0 -0
  84. {chatup-0.2.18 → chatup-0.2.19}/tests/test_chromedriver.py +0 -0
  85. {chatup-0.2.18 → chatup-0.2.19}/tests/test_cli_tree_docs.py +0 -0
  86. {chatup-0.2.18 → chatup-0.2.19}/tests/test_codex_setup.py +0 -0
  87. {chatup-0.2.18 → chatup-0.2.19}/tests/test_crs_setup.py +0 -0
  88. {chatup-0.2.18 → chatup-0.2.19}/tests/test_cursor_agent_setup.py +0 -0
  89. {chatup-0.2.18 → chatup-0.2.19}/tests/test_hermes_model_defaults.py +0 -0
  90. {chatup-0.2.18 → chatup-0.2.19}/tests/test_playwright.py +0 -0
  91. {chatup-0.2.18 → chatup-0.2.19}/tests/test_playwright_cli.py +0 -0
  92. {chatup-0.2.18 → chatup-0.2.19}/tests/test_publish_workflow.py +0 -0
  93. {chatup-0.2.18 → chatup-0.2.19}/tests/test_service_installers.py +0 -0
  94. {chatup-0.2.18 → chatup-0.2.19}/tests/test_setup_cli.py +0 -0
  95. {chatup-0.2.18 → chatup-0.2.19}/tests/test_twikoo_setup.py +0 -0
  96. {chatup-0.2.18 → chatup-0.2.19}/tests/test_uv_activation.py +0 -0
  97. {chatup-0.2.18 → chatup-0.2.19}/tests/test_windows_compat.py +0 -0
  98. {chatup-0.2.18 → chatup-0.2.19}/tests/test_workspace_setup.py +0 -0
  99. {chatup-0.2.18 → chatup-0.2.19}/tests/test_zsh_alias_names.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: chatup
3
- Version: 0.2.18
3
+ Version: 0.2.19
4
4
  Summary: ChatArch setup CLI extracted from ChatTool
5
5
  Author-email: rexwzh <1073853456@qq.com>
6
6
  License-Expression: MIT
@@ -14,7 +14,7 @@ Requires-Python: >=3.10
14
14
  Description-Content-Type: text/markdown
15
15
  License-File: LICENSE
16
16
  Requires-Dist: click<9.0,>=8.0
17
- Requires-Dist: chatstyle<0.3.0,>=0.2.0
17
+ Requires-Dist: chatstyle[tui]<0.3.0,>=0.2.0
18
18
  Requires-Dist: chatenv<0.3.0,>=0.2.11
19
19
  Requires-Dist: python-dotenv<2.0,>=1.0
20
20
  Requires-Dist: colorama
@@ -76,6 +76,17 @@ chatup nginx proxy-pass ./gitea-local.conf --set SERVER_NAME=gitea.local.example
76
76
  chatup crs --install-dir ~/.chatarch/crs/local --port 12392 --redis-port 6379
77
77
  ```
78
78
 
79
+ ## macOS 常用应用
80
+
81
+ ```bash
82
+ chatup macos # 勾选安装,默认全选 Snipaste、iTerm2、Chrome
83
+ chatup macos --app snipaste # 只安装 Snipaste
84
+ chatup macos -I # 不询问,安装默认三项
85
+ chatup macos --dry-run # 只预览安装计划
86
+ ```
87
+
88
+ 仅限 macOS。终端中用空格切换勾选,回车安装;取消全部勾选则直接退出。可重复传入 `--app snipaste|iterm|chrome` 选择多个应用。直接使用官方安装包,无需 Homebrew,已有应用验证后复用。详见[macOS 安装入口](https://arch.gh.wzhecnu.cn/ChatUp/commands/#macos)。
89
+
79
90
  ## Chrome 与 iTerm2
80
91
 
81
92
  ```bash
@@ -105,7 +116,7 @@ chatup chatgpt --yes # Windows 首次安装时接受 Store 协议
105
116
  | --- | --- |
106
117
  | 基础运行环境 | `doctor`、`uv`、`nodejs`、`docker`、`zsh`、`chrome-for-testing`、`chromedriver`、`playwright`、`frp` |
107
118
  | 工作区脚手架 | `workspace` |
108
- | 桌面应用 | `chrome`、`iterm`(仅 macOS)、`chatgpt`(含 Codex) |
119
+ | 桌面应用 | `macos`(Snipaste/iTerm2/Chrome 多选)、`chrome`、`iterm`(仅 macOS)、`chatgpt`(含 Codex) |
109
120
  | 本地服务安装 | `gitea`、`discourse`、`zulip`、`mysql`、`nginx`、`crs` |
110
121
  | Agent 工具链 | `cc-connect`、`claude`、`codex`、`cursor-agent`、`opencode`、`hermes`、`lark-cli` |
111
122
 
@@ -45,6 +45,17 @@ chatup nginx proxy-pass ./gitea-local.conf --set SERVER_NAME=gitea.local.example
45
45
  chatup crs --install-dir ~/.chatarch/crs/local --port 12392 --redis-port 6379
46
46
  ```
47
47
 
48
+ ## macOS 常用应用
49
+
50
+ ```bash
51
+ chatup macos # 勾选安装,默认全选 Snipaste、iTerm2、Chrome
52
+ chatup macos --app snipaste # 只安装 Snipaste
53
+ chatup macos -I # 不询问,安装默认三项
54
+ chatup macos --dry-run # 只预览安装计划
55
+ ```
56
+
57
+ 仅限 macOS。终端中用空格切换勾选,回车安装;取消全部勾选则直接退出。可重复传入 `--app snipaste|iterm|chrome` 选择多个应用。直接使用官方安装包,无需 Homebrew,已有应用验证后复用。详见[macOS 安装入口](https://arch.gh.wzhecnu.cn/ChatUp/commands/#macos)。
58
+
48
59
  ## Chrome 与 iTerm2
49
60
 
50
61
  ```bash
@@ -74,7 +85,7 @@ chatup chatgpt --yes # Windows 首次安装时接受 Store 协议
74
85
  | --- | --- |
75
86
  | 基础运行环境 | `doctor`、`uv`、`nodejs`、`docker`、`zsh`、`chrome-for-testing`、`chromedriver`、`playwright`、`frp` |
76
87
  | 工作区脚手架 | `workspace` |
77
- | 桌面应用 | `chrome`、`iterm`(仅 macOS)、`chatgpt`(含 Codex) |
88
+ | 桌面应用 | `macos`(Snipaste/iTerm2/Chrome 多选)、`chrome`、`iterm`(仅 macOS)、`chatgpt`(含 Codex) |
78
89
  | 本地服务安装 | `gitea`、`discourse`、`zulip`、`mysql`、`nginx`、`crs` |
79
90
  | Agent 工具链 | `cc-connect`、`claude`、`codex`、`cursor-agent`、`opencode`、`hermes`、`lark-cli` |
80
91
 
@@ -11,7 +11,7 @@ requires-python = ">=3.10"
11
11
  license = "MIT"
12
12
  dependencies = [
13
13
  "click>=8.0,<9.0",
14
- "chatstyle>=0.2.0,<0.3.0",
14
+ "chatstyle[tui]>=0.2.0,<0.3.0",
15
15
  "chatenv>=0.2.11,<0.3.0",
16
16
  "python-dotenv>=1.0,<2.0",
17
17
  "colorama",
@@ -2,4 +2,4 @@
2
2
 
3
3
  __all__ = ["__version__"]
4
4
 
5
- __version__ = "0.2.18"
5
+ __version__ = "0.2.19"
@@ -7,6 +7,7 @@ from chatup import __version__
7
7
  from chatup.commands.chrome_for_testing import cli as chrome_for_testing_cli
8
8
  from chatup.commands.chromedriver import cli as chromedriver_cli
9
9
  from chatup.commands.desktop import chrome_cli, iterm_cli
10
+ from chatup.commands.macos import macos_cli
10
11
  from chatup.commands.playwright import cli as playwright_cli
11
12
  from chatup.setup.cli import register_setup_commands
12
13
 
@@ -35,6 +36,7 @@ main.add_command(chromedriver_cli)
35
36
  main.add_command(playwright_cli)
36
37
  main.add_command(chrome_cli)
37
38
  main.add_command(iterm_cli)
39
+ main.add_command(macos_cli)
38
40
 
39
41
 
40
42
  if __name__ == "__main__":
@@ -0,0 +1,48 @@
1
+ """Select and install the supported macOS desktop applications."""
2
+ from __future__ import annotations
3
+
4
+ import platform
5
+
6
+ import click
7
+
8
+ from chatup.interaction import (
9
+ abort_if_force_without_tty,
10
+ add_interactive_option,
11
+ ask_checkbox,
12
+ create_choice,
13
+ resolve_interactive_mode,
14
+ )
15
+
16
+ from .desktop import _install
17
+
18
+ MACOS_APPS = {"snipaste": "Snipaste", "iterm": "iTerm2", "chrome": "Google Chrome"}
19
+
20
+
21
+ @click.command(name="macos")
22
+ @click.option("--app", "apps", type=click.Choice(list(MACOS_APPS)), multiple=True,
23
+ help="Install only this app; repeat to select several. Defaults to all three.")
24
+ @click.option("--dry-run", is_flag=True, help="Preview selected apps without downloading or installing.")
25
+ @click.option("--log-level", type=click.Choice(["DEBUG", "INFO", "WARNING", "ERROR"], case_sensitive=False), default="INFO")
26
+ @add_interactive_option
27
+ def macos_cli(apps, dry_run, log_level, interactive) -> None:
28
+ """Install Snipaste, iTerm2 and Chrome on macOS; all selected by default."""
29
+ if platform.system() != "Darwin":
30
+ raise click.ClickException("chatup macos is supported on macOS only.")
31
+ selected = list(dict.fromkeys(apps)) if apps else list(MACOS_APPS)
32
+ _, can_prompt, force, _, need_prompt = resolve_interactive_mode(
33
+ interactive, auto_prompt_condition=not apps and not dry_run,
34
+ )
35
+ abort_if_force_without_tty(force, can_prompt, "Usage: chatup macos [--app NAME] [-i|-I]")
36
+ if need_prompt:
37
+ selected = ask_checkbox(
38
+ "Select macOS apps to install",
39
+ choices=[create_choice(label, name) for name, label in MACOS_APPS.items()],
40
+ default_values=selected,
41
+ instruction="(Space: toggle, Enter: install selected, Ctrl-C: cancel)",
42
+ )
43
+ if not selected:
44
+ click.echo("No apps selected; nothing installed.")
45
+ return
46
+ click.echo("Selected apps: " + ", ".join(MACOS_APPS[name] for name in selected))
47
+ for app in selected:
48
+ _install(app, dry_run=dry_run, log_level=log_level)
@@ -1,4 +1,4 @@
1
- """Native installers for regular Google Chrome and the macOS iTerm2 app."""
1
+ """Native installers for Google Chrome and supported macOS desktop apps."""
2
2
  from __future__ import annotations
3
3
 
4
4
  import logging
@@ -35,6 +35,14 @@ MAC_APPS = {
35
35
  "url": "https://iterm2.com/downloads/stable/latest",
36
36
  "format": "zip",
37
37
  },
38
+ "snipaste": {
39
+ "app": "Snipaste",
40
+ "bundle": "Snipaste.app",
41
+ "bundle_id": "com.Snipaste",
42
+ "team_id": "NGTL73P583",
43
+ "url": "https://dl.snipaste.com/mac",
44
+ "format": "dmg",
45
+ },
38
46
  }
39
47
  LINUX_PACKAGES = {
40
48
  "apt-get": ("deb", ["install"]),
@@ -59,8 +67,8 @@ def plan_desktop_install(
59
67
  spec = MAC_APPS[app]
60
68
  system = platform.system()
61
69
  plan = {"app": spec["app"], "platform": system}
62
- if app == "iterm" and system != "Darwin":
63
- raise RuntimeError(f"iTerm2 is supported on macOS only; current platform: {system}.")
70
+ if app != "chrome" and system != "Darwin":
71
+ raise RuntimeError(f"{spec['app']} is supported on macOS only; current platform: {system}.")
64
72
  if system == "Darwin":
65
73
  if platform.machine().lower() not in {"arm64", "aarch64", "x86_64", "amd64"}:
66
74
  raise RuntimeError(f"Unsupported macOS architecture: {platform.machine()}.")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: chatup
3
- Version: 0.2.18
3
+ Version: 0.2.19
4
4
  Summary: ChatArch setup CLI extracted from ChatTool
5
5
  Author-email: rexwzh <1073853456@qq.com>
6
6
  License-Expression: MIT
@@ -14,7 +14,7 @@ Requires-Python: >=3.10
14
14
  Description-Content-Type: text/markdown
15
15
  License-File: LICENSE
16
16
  Requires-Dist: click<9.0,>=8.0
17
- Requires-Dist: chatstyle<0.3.0,>=0.2.0
17
+ Requires-Dist: chatstyle[tui]<0.3.0,>=0.2.0
18
18
  Requires-Dist: chatenv<0.3.0,>=0.2.11
19
19
  Requires-Dist: python-dotenv<2.0,>=1.0
20
20
  Requires-Dist: colorama
@@ -76,6 +76,17 @@ chatup nginx proxy-pass ./gitea-local.conf --set SERVER_NAME=gitea.local.example
76
76
  chatup crs --install-dir ~/.chatarch/crs/local --port 12392 --redis-port 6379
77
77
  ```
78
78
 
79
+ ## macOS 常用应用
80
+
81
+ ```bash
82
+ chatup macos # 勾选安装,默认全选 Snipaste、iTerm2、Chrome
83
+ chatup macos --app snipaste # 只安装 Snipaste
84
+ chatup macos -I # 不询问,安装默认三项
85
+ chatup macos --dry-run # 只预览安装计划
86
+ ```
87
+
88
+ 仅限 macOS。终端中用空格切换勾选,回车安装;取消全部勾选则直接退出。可重复传入 `--app snipaste|iterm|chrome` 选择多个应用。直接使用官方安装包,无需 Homebrew,已有应用验证后复用。详见[macOS 安装入口](https://arch.gh.wzhecnu.cn/ChatUp/commands/#macos)。
89
+
79
90
  ## Chrome 与 iTerm2
80
91
 
81
92
  ```bash
@@ -105,7 +116,7 @@ chatup chatgpt --yes # Windows 首次安装时接受 Store 协议
105
116
  | --- | --- |
106
117
  | 基础运行环境 | `doctor`、`uv`、`nodejs`、`docker`、`zsh`、`chrome-for-testing`、`chromedriver`、`playwright`、`frp` |
107
118
  | 工作区脚手架 | `workspace` |
108
- | 桌面应用 | `chrome`、`iterm`(仅 macOS)、`chatgpt`(含 Codex) |
119
+ | 桌面应用 | `macos`(Snipaste/iTerm2/Chrome 多选)、`chrome`、`iterm`(仅 macOS)、`chatgpt`(含 Codex) |
109
120
  | 本地服务安装 | `gitea`、`discourse`、`zulip`、`mysql`、`nginx`、`crs` |
110
121
  | Agent 工具链 | `cc-connect`、`claude`、`codex`、`cursor-agent`、`opencode`、`hermes`、`lark-cli` |
111
122
 
@@ -18,6 +18,7 @@ src/chatup/commands/__init__.py
18
18
  src/chatup/commands/chrome_for_testing.py
19
19
  src/chatup/commands/chromedriver.py
20
20
  src/chatup/commands/desktop.py
21
+ src/chatup/commands/macos.py
21
22
  src/chatup/commands/playwright.py
22
23
  src/chatup/interaction/__init__.py
23
24
  src/chatup/interaction/command_schema.py
@@ -1,5 +1,5 @@
1
1
  click<9.0,>=8.0
2
- chatstyle<0.3.0,>=0.2.0
2
+ chatstyle[tui]<0.3.0,>=0.2.0
3
3
  chatenv<0.3.0,>=0.2.11
4
4
  python-dotenv<2.0,>=1.0
5
5
  colorama
@@ -22,7 +22,7 @@ def test_chatup_depends_on_chatenv_and_registers_cursor_agent_config_provider():
22
22
 
23
23
  assert data["project"]["requires-python"] == ">=3.10"
24
24
  assert "click>=8.0,<9.0" in data["project"]["dependencies"]
25
- assert "chatstyle>=0.2.0,<0.3.0" in data["project"]["dependencies"]
25
+ assert "chatstyle[tui]>=0.2.0,<0.3.0" in data["project"]["dependencies"]
26
26
  assert "chatenv>=0.2.11,<0.3.0" in data["project"]["dependencies"]
27
27
  assert "python-dotenv>=1.0,<2.0" in data["project"]["dependencies"]
28
28
  entry_points = data["project"]["entry-points"]["chatenv.configs"]
@@ -5,7 +5,7 @@ from chatup.cli import main
5
5
 
6
6
 
7
7
  def test_version_present():
8
- assert __version__ == "0.2.18"
8
+ assert __version__ == "0.2.19"
9
9
 
10
10
 
11
11
  def test_cli_help():
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes