wcgw 5.1.0__tar.gz → 5.1.1__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.
Potentially problematic release.
This version of wcgw might be problematic. Click here for more details.
- {wcgw-5.1.0 → wcgw-5.1.1}/.github/workflows/python-tests.yml +1 -1
- {wcgw-5.1.0 → wcgw-5.1.1}/.github/workflows/python-types.yml +1 -1
- {wcgw-5.1.0 → wcgw-5.1.1}/PKG-INFO +5 -18
- {wcgw-5.1.0 → wcgw-5.1.1}/README.md +4 -17
- {wcgw-5.1.0 → wcgw-5.1.1}/pyproject.toml +1 -1
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/repo_ops/display_tree.py +4 -4
- {wcgw-5.1.0 → wcgw-5.1.1}/uv.lock +397 -352
- {wcgw-5.1.0 → wcgw-5.1.1}/.github/workflows/python-publish.yml +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/.gitignore +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/.gitmodules +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/.python-version +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/.vscode/settings.json +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/CLAUDE.md +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/Dockerfile +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/LICENSE +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/__init__.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/__init__.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/bash_state/bash_state.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/bash_state/parser/__init__.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/bash_state/parser/bash_statement_parser.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/common.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/diff-instructions.txt +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/encoder/__init__.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/file_ops/diff_edit.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/file_ops/extensions.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/file_ops/search_replace.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/mcp_server/Readme.md +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/mcp_server/__init__.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/mcp_server/server.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/memory.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/modes.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/repo_ops/file_stats.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/repo_ops/path_prob.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/repo_ops/paths_model.vocab +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/repo_ops/paths_tokens.model +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/repo_ops/repo_context.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/tool_prompts.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/client/tools.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/py.typed +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw/types_.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw_cli/__init__.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw_cli/__main__.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw_cli/anthropic_client.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw_cli/cli.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw_cli/openai_client.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/src/wcgw_cli/openai_utils.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/static/claude-ss.jpg +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/static/computer-use.jpg +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/static/example.jpg +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/static/rocket-icon.png +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/static/ss1.png +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/static/workflow-demo.gif +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/tests/test_bash_parser.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/tests/test_bash_parser_complex.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/tests/test_edit.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/tests/test_file_range_tracking.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/tests/test_mcp_server.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/tests/test_readfiles.py +0 -0
- {wcgw-5.1.0 → wcgw-5.1.1}/tests/test_tools.py +0 -0
|
@@ -27,7 +27,7 @@ jobs:
|
|
|
27
27
|
pip install uv
|
|
28
28
|
- name: Run tests with coverage
|
|
29
29
|
run: |
|
|
30
|
-
uv run --group tests --python "${{ matrix.python-version }}" pytest --cov=wcgw --cov-report=xml --cov-report=term-missing
|
|
30
|
+
uv run --frozen --group tests --python "${{ matrix.python-version }}" pytest --cov=wcgw --cov-report=xml --cov-report=term-missing
|
|
31
31
|
- name: Upload coverage reports to Codecov
|
|
32
32
|
uses: codecov/codecov-action@v4
|
|
33
33
|
if: success()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wcgw
|
|
3
|
-
Version: 5.1.
|
|
3
|
+
Version: 5.1.1
|
|
4
4
|
Summary: Shell and coding agent for Claude and other mcp clients
|
|
5
5
|
Project-URL: Homepage, https://github.com/rusiaaman/wcgw
|
|
6
6
|
Author-email: Aman Rusia <gapypi@arcfu.com>
|
|
@@ -118,13 +118,7 @@ Then create or update `claude_desktop_config.json` (~/Library/Application Suppor
|
|
|
118
118
|
"mcpServers": {
|
|
119
119
|
"wcgw": {
|
|
120
120
|
"command": "uv",
|
|
121
|
-
"args": [
|
|
122
|
-
"tool",
|
|
123
|
-
"run",
|
|
124
|
-
"--python",
|
|
125
|
-
"3.12",
|
|
126
|
-
"wcgw@latest"
|
|
127
|
-
]
|
|
121
|
+
"args": ["tool", "run", "--python", "3.12", "wcgw@latest"]
|
|
128
122
|
}
|
|
129
123
|
}
|
|
130
124
|
}
|
|
@@ -153,14 +147,7 @@ Then add or update the claude config file `%APPDATA%\Claude\claude_desktop_confi
|
|
|
153
147
|
"mcpServers": {
|
|
154
148
|
"wcgw": {
|
|
155
149
|
"command": "wsl.exe",
|
|
156
|
-
"args": [
|
|
157
|
-
"uv",
|
|
158
|
-
"tool",
|
|
159
|
-
"run",
|
|
160
|
-
"--python",
|
|
161
|
-
"3.12",
|
|
162
|
-
"wcgw@latest"
|
|
163
|
-
]
|
|
150
|
+
"args": ["uv", "tool", "run", "--python", "3.12", "wcgw@latest"]
|
|
164
151
|
}
|
|
165
152
|
}
|
|
166
153
|
}
|
|
@@ -232,7 +219,7 @@ Then you can update `/Users/username/Library/Application Support/Claude/claude_d
|
|
|
232
219
|
```
|
|
233
220
|
{
|
|
234
221
|
"mcpServers": {
|
|
235
|
-
"
|
|
222
|
+
"wcgw": {
|
|
236
223
|
"command": "docker",
|
|
237
224
|
"args": [
|
|
238
225
|
"run",
|
|
@@ -240,7 +227,7 @@ Then you can update `/Users/username/Library/Application Support/Claude/claude_d
|
|
|
240
227
|
"--rm",
|
|
241
228
|
"--mount",
|
|
242
229
|
"type=bind,src=/Users/username/Desktop,dst=/workspace/Desktop",
|
|
243
|
-
"wcgw"
|
|
230
|
+
"wcgw"
|
|
244
231
|
]
|
|
245
232
|
}
|
|
246
233
|
}
|
|
@@ -87,13 +87,7 @@ Then create or update `claude_desktop_config.json` (~/Library/Application Suppor
|
|
|
87
87
|
"mcpServers": {
|
|
88
88
|
"wcgw": {
|
|
89
89
|
"command": "uv",
|
|
90
|
-
"args": [
|
|
91
|
-
"tool",
|
|
92
|
-
"run",
|
|
93
|
-
"--python",
|
|
94
|
-
"3.12",
|
|
95
|
-
"wcgw@latest"
|
|
96
|
-
]
|
|
90
|
+
"args": ["tool", "run", "--python", "3.12", "wcgw@latest"]
|
|
97
91
|
}
|
|
98
92
|
}
|
|
99
93
|
}
|
|
@@ -122,14 +116,7 @@ Then add or update the claude config file `%APPDATA%\Claude\claude_desktop_confi
|
|
|
122
116
|
"mcpServers": {
|
|
123
117
|
"wcgw": {
|
|
124
118
|
"command": "wsl.exe",
|
|
125
|
-
"args": [
|
|
126
|
-
"uv",
|
|
127
|
-
"tool",
|
|
128
|
-
"run",
|
|
129
|
-
"--python",
|
|
130
|
-
"3.12",
|
|
131
|
-
"wcgw@latest"
|
|
132
|
-
]
|
|
119
|
+
"args": ["uv", "tool", "run", "--python", "3.12", "wcgw@latest"]
|
|
133
120
|
}
|
|
134
121
|
}
|
|
135
122
|
}
|
|
@@ -201,7 +188,7 @@ Then you can update `/Users/username/Library/Application Support/Claude/claude_d
|
|
|
201
188
|
```
|
|
202
189
|
{
|
|
203
190
|
"mcpServers": {
|
|
204
|
-
"
|
|
191
|
+
"wcgw": {
|
|
205
192
|
"command": "docker",
|
|
206
193
|
"args": [
|
|
207
194
|
"run",
|
|
@@ -209,7 +196,7 @@ Then you can update `/Users/username/Library/Application Support/Claude/claude_d
|
|
|
209
196
|
"--rm",
|
|
210
197
|
"--mount",
|
|
211
198
|
"type=bind,src=/Users/username/Desktop,dst=/workspace/Desktop",
|
|
212
|
-
"wcgw"
|
|
199
|
+
"wcgw"
|
|
213
200
|
]
|
|
214
201
|
}
|
|
215
202
|
}
|
|
@@ -15,7 +15,7 @@ class DirectoryTree:
|
|
|
15
15
|
self.root = root
|
|
16
16
|
self.max_files = max_files
|
|
17
17
|
self.expanded_files: Set[Path] = set()
|
|
18
|
-
self.expanded_dirs = set
|
|
18
|
+
self.expanded_dirs: Set[Path] = set()
|
|
19
19
|
|
|
20
20
|
if not self.root.exists():
|
|
21
21
|
raise ValueError(f"Root path {root} does not exist")
|
|
@@ -77,11 +77,11 @@ class DirectoryTree:
|
|
|
77
77
|
def _display_recursive(
|
|
78
78
|
current_path: Path, indent: int = 0, depth: int = 0
|
|
79
79
|
) -> None:
|
|
80
|
-
# Print current directory name
|
|
80
|
+
# Print current directory name with a trailing slash for directories
|
|
81
81
|
if current_path == self.root:
|
|
82
|
-
writer.write(f"{current_path}
|
|
82
|
+
writer.write(f"{current_path}/\n")
|
|
83
83
|
else:
|
|
84
|
-
writer.write(f"{' ' * indent}{current_path.name}
|
|
84
|
+
writer.write(f"{' ' * indent}{current_path.name}/\n")
|
|
85
85
|
|
|
86
86
|
# Don't recurse beyond depth 1 unless path contains expanded files
|
|
87
87
|
if depth > 0 and current_path not in self.expanded_dirs:
|