wcgw 5.4.0__tar.gz → 5.4.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.

Files changed (59) hide show
  1. {wcgw-5.4.0 → wcgw-5.4.1}/Dockerfile +3 -0
  2. {wcgw-5.4.0 → wcgw-5.4.1}/PKG-INFO +1 -1
  3. {wcgw-5.4.0 → wcgw-5.4.1}/pyproject.toml +1 -1
  4. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/diff-instructions.txt +1 -2
  5. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/types_.py +1 -1
  6. {wcgw-5.4.0 → wcgw-5.4.1}/.github/workflows/python-publish.yml +0 -0
  7. {wcgw-5.4.0 → wcgw-5.4.1}/.github/workflows/python-tests.yml +0 -0
  8. {wcgw-5.4.0 → wcgw-5.4.1}/.github/workflows/python-types.yml +0 -0
  9. {wcgw-5.4.0 → wcgw-5.4.1}/.gitignore +0 -0
  10. {wcgw-5.4.0 → wcgw-5.4.1}/.gitmodules +0 -0
  11. {wcgw-5.4.0 → wcgw-5.4.1}/.python-version +0 -0
  12. {wcgw-5.4.0 → wcgw-5.4.1}/.vscode/settings.json +0 -0
  13. {wcgw-5.4.0 → wcgw-5.4.1}/CLAUDE.md +0 -0
  14. {wcgw-5.4.0 → wcgw-5.4.1}/LICENSE +0 -0
  15. {wcgw-5.4.0 → wcgw-5.4.1}/README.md +0 -0
  16. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/__init__.py +0 -0
  17. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/__init__.py +0 -0
  18. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/bash_state/bash_state.py +0 -0
  19. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/bash_state/parser/__init__.py +0 -0
  20. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/bash_state/parser/bash_statement_parser.py +0 -0
  21. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/common.py +0 -0
  22. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/encoder/__init__.py +0 -0
  23. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/file_ops/diff_edit.py +0 -0
  24. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/file_ops/extensions.py +0 -0
  25. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/file_ops/search_replace.py +0 -0
  26. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/mcp_server/Readme.md +0 -0
  27. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/mcp_server/__init__.py +0 -0
  28. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/mcp_server/server.py +0 -0
  29. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/memory.py +0 -0
  30. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/modes.py +0 -0
  31. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/repo_ops/display_tree.py +0 -0
  32. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/repo_ops/file_stats.py +0 -0
  33. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/repo_ops/path_prob.py +0 -0
  34. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/repo_ops/paths_model.vocab +0 -0
  35. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/repo_ops/paths_tokens.model +0 -0
  36. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/repo_ops/repo_context.py +0 -0
  37. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/tool_prompts.py +0 -0
  38. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/client/tools.py +0 -0
  39. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw/py.typed +0 -0
  40. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw_cli/__init__.py +0 -0
  41. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw_cli/__main__.py +0 -0
  42. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw_cli/anthropic_client.py +0 -0
  43. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw_cli/cli.py +0 -0
  44. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw_cli/openai_client.py +0 -0
  45. {wcgw-5.4.0 → wcgw-5.4.1}/src/wcgw_cli/openai_utils.py +0 -0
  46. {wcgw-5.4.0 → wcgw-5.4.1}/static/claude-ss.jpg +0 -0
  47. {wcgw-5.4.0 → wcgw-5.4.1}/static/computer-use.jpg +0 -0
  48. {wcgw-5.4.0 → wcgw-5.4.1}/static/example.jpg +0 -0
  49. {wcgw-5.4.0 → wcgw-5.4.1}/static/rocket-icon.png +0 -0
  50. {wcgw-5.4.0 → wcgw-5.4.1}/static/ss1.png +0 -0
  51. {wcgw-5.4.0 → wcgw-5.4.1}/static/workflow-demo.gif +0 -0
  52. {wcgw-5.4.0 → wcgw-5.4.1}/tests/test_bash_parser.py +0 -0
  53. {wcgw-5.4.0 → wcgw-5.4.1}/tests/test_bash_parser_complex.py +0 -0
  54. {wcgw-5.4.0 → wcgw-5.4.1}/tests/test_edit.py +0 -0
  55. {wcgw-5.4.0 → wcgw-5.4.1}/tests/test_file_range_tracking.py +0 -0
  56. {wcgw-5.4.0 → wcgw-5.4.1}/tests/test_mcp_server.py +0 -0
  57. {wcgw-5.4.0 → wcgw-5.4.1}/tests/test_readfiles.py +0 -0
  58. {wcgw-5.4.0 → wcgw-5.4.1}/tests/test_tools.py +0 -0
  59. {wcgw-5.4.0 → wcgw-5.4.1}/uv.lock +0 -0
@@ -35,6 +35,9 @@ FROM python:3.12-slim-bookworm
35
35
 
36
36
  RUN apt-get update && apt-get install -y screen && rm -rf /var/lib/apt/lists/*
37
37
 
38
+ # Create app user and group
39
+ RUN groupadd -r app && useradd -r -g app app
40
+
38
41
  # Set the working directory in the container
39
42
  WORKDIR /workspace
40
43
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wcgw
3
- Version: 5.4.0
3
+ Version: 5.4.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>
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  authors = [{ name = "Aman Rusia", email = "gapypi@arcfu.com" }]
3
3
  name = "wcgw"
4
- version = "5.4.0"
4
+ version = "5.4.1"
5
5
  description = "Shell and coding agent for Claude and other mcp clients"
6
6
  readme = "README.md"
7
7
  requires-python = ">=3.11"
@@ -61,8 +61,7 @@ def call_hello_renamed():
61
61
  # *SEARCH/REPLACE block* Rules:
62
62
 
63
63
  - Every "SEARCH" section must *EXACTLY MATCH* the existing file content, character for character, including all comments, docstrings, whitespaces, etc.
64
- - In a single call the edit blocks should be constructed from top to bottom of the file in a sequence.
65
- - An edit block can't edit over a previous edit in the same tool call.
64
+ - Use multiple search/replace blocks in a single FileWriteOrEdit tool call to edit in a single file in multiple places from top to bottom (separate calls are slower).
66
65
  - Including multiple unique *SEARCH/REPLACE* blocks if needed.
67
66
  - Include enough and only enough lines in each SEARCH section to uniquely match each set of lines that need to change.
68
67
  - Keep *SEARCH/REPLACE* blocks concise.
@@ -87,7 +87,7 @@ class Command(BaseModel):
87
87
 
88
88
 
89
89
  class StatusCheck(BaseModel):
90
- status_check: Literal[True]
90
+ status_check: Literal[True] = True
91
91
  type: Literal["status_check"] = "status_check"
92
92
 
93
93
 
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
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
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