wcgw 3.0.2__tar.gz → 3.0.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.
Potentially problematic release.
This version of wcgw might be problematic. Click here for more details.
- {wcgw-3.0.2 → wcgw-3.0.3}/PKG-INFO +2 -1
- {wcgw-3.0.2 → wcgw-3.0.3}/README.md +1 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/pyproject.toml +1 -1
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/bash_state/bash_state.py +2 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/tool_prompts.py +4 -4
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/tools.py +33 -3
- {wcgw-3.0.2 → wcgw-3.0.3}/uv.lock +1 -2
- {wcgw-3.0.2 → wcgw-3.0.3}/.github/workflows/python-publish.yml +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/.github/workflows/python-tests.yml +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/.github/workflows/python-types.yml +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/.gitignore +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/.gitmodules +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/.python-version +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/.vscode/settings.json +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/Dockerfile +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/LICENSE +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/gpt_action_json_schema.json +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/gpt_instructions.txt +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/openai.md +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/.git +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/.github/workflows/main-checks.yml +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/.github/workflows/publish-pypi.yml +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/.github/workflows/pull-request-checks.yml +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/.github/workflows/shared.yml +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/.gitignore +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/.python-version +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/CODE_OF_CONDUCT.md +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/CONTRIBUTING.md +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/LICENSE +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/README.md +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/RELEASE.md +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/SECURITY.md +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/README.md +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-prompt/.python-version +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-prompt/README.md +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-prompt/mcp_simple_prompt/__init__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-prompt/mcp_simple_prompt/__main__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-prompt/mcp_simple_prompt/server.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-prompt/pyproject.toml +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-resource/.python-version +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-resource/README.md +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-resource/mcp_simple_resource/__init__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-resource/mcp_simple_resource/__main__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-resource/mcp_simple_resource/server.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-resource/pyproject.toml +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-tool/.python-version +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-tool/README.md +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-tool/mcp_simple_tool/__init__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-tool/mcp_simple_tool/__main__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-tool/mcp_simple_tool/server.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-tool/pyproject.toml +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/pyproject.toml +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/__init__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/client/__init__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/client/__main__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/client/session.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/client/sse.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/client/stdio.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/py.typed +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/server/__init__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/server/__main__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/server/models.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/server/session.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/server/sse.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/server/stdio.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/server/websocket.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/shared/__init__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/shared/context.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/shared/exceptions.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/shared/memory.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/shared/progress.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/shared/session.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/shared/version.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/src/mcp_wcgw/types.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/tests/__init__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/tests/client/__init__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/tests/client/test_session.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/tests/client/test_stdio.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/tests/conftest.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/tests/server/__init__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/tests/server/test_session.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/tests/server/test_stdio.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/tests/shared/test_memory.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/tests/test_types.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/uv.lock +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/__init__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/__init__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/common.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/diff-instructions.txt +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/encoder/__init__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/file_ops/diff_edit.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/file_ops/search_replace.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/mcp_server/Readme.md +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/mcp_server/__init__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/mcp_server/server.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/memory.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/modes.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/repo_ops/display_tree.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/repo_ops/path_prob.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/repo_ops/paths_model.vocab +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/repo_ops/paths_tokens.model +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/client/repo_ops/repo_context.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/py.typed +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/relay/client.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/relay/serve.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/relay/static/privacy.txt +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw/types_.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw_cli/__init__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw_cli/__main__.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw_cli/anthropic_client.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw_cli/cli.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw_cli/openai_client.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/src/wcgw_cli/openai_utils.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/static/claude-ss.jpg +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/static/computer-use.jpg +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/static/example.jpg +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/static/rocket-icon.png +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/static/ss1.png +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/tests/test_edit.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/tests/test_mcp_server.py +0 -0
- {wcgw-3.0.2 → wcgw-3.0.3}/tests/test_tools.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wcgw
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.3
|
|
4
4
|
Summary: Shell and coding agent on claude and chatgpt
|
|
5
5
|
Project-URL: Homepage, https://github.com/rusiaaman/wcgw
|
|
6
6
|
Author-email: Aman Rusia <gapypi@arcfu.com>
|
|
@@ -77,6 +77,7 @@ Empowering chat applications to code, build and run on your local machine.
|
|
|
77
77
|
- Ask it to run in 'code-writer' mode for code editing and project building. You can provide specific paths with wild card support to prevent other files getting edited.
|
|
78
78
|
- By default it runs in 'wcgw' mode that has no restrictions and full authorisation.
|
|
79
79
|
- More details in [Modes section](#modes)
|
|
80
|
+
- ⚡ **Runs in multiplex terminal** Run `screen -x` to attach to the terminal that the AI runs commands on. See history or interrupt process or interact with the same terminal that AI uses.
|
|
80
81
|
|
|
81
82
|
## Top use cases examples
|
|
82
83
|
|
|
@@ -49,6 +49,7 @@ Empowering chat applications to code, build and run on your local machine.
|
|
|
49
49
|
- Ask it to run in 'code-writer' mode for code editing and project building. You can provide specific paths with wild card support to prevent other files getting edited.
|
|
50
50
|
- By default it runs in 'wcgw' mode that has no restrictions and full authorisation.
|
|
51
51
|
- More details in [Modes section](#modes)
|
|
52
|
+
- ⚡ **Runs in multiplex terminal** Run `screen -x` to attach to the terminal that the AI runs commands on. See history or interrupt process or interact with the same terminal that AI uses.
|
|
52
53
|
|
|
53
54
|
## Top use cases examples
|
|
54
55
|
|
|
@@ -427,6 +427,8 @@ class BashState:
|
|
|
427
427
|
before_val = str(before_val)
|
|
428
428
|
before_lines = render_terminal_output(before_val)
|
|
429
429
|
current_dir = "\n".join(before_lines).strip()
|
|
430
|
+
if current_dir.startswith("pwd"):
|
|
431
|
+
current_dir = current_dir[3:].strip()
|
|
430
432
|
self._cwd = current_dir
|
|
431
433
|
return current_dir
|
|
432
434
|
|
|
@@ -31,7 +31,7 @@ TOOL_PROMPTS = [
|
|
|
31
31
|
- Always call this at the start of the conversation before using any of the shell tools from wcgw.
|
|
32
32
|
- Use `any_workspace_path` to initialize the shell in the appropriate project directory.
|
|
33
33
|
- If the user has mentioned a workspace or project root or any other file or folder use it to set `any_workspace_path`.
|
|
34
|
-
- If user has mentioned any files use `initial_files_to_read` to read, use absolute paths only
|
|
34
|
+
- If user has mentioned any files use `initial_files_to_read` to read, use absolute paths only (~ allowed)
|
|
35
35
|
- By default use mode "wcgw"
|
|
36
36
|
- In "code-writer" mode, set the commands and globs which user asked to set, otherwise use 'all'.
|
|
37
37
|
- Use type="first_call" if it's the first call to this tool.
|
|
@@ -61,7 +61,7 @@ TOOL_PROMPTS = [
|
|
|
61
61
|
name="ReadFiles",
|
|
62
62
|
description="""
|
|
63
63
|
- Read full file content of one or more files.
|
|
64
|
-
- Provide absolute
|
|
64
|
+
- Provide absolute paths only (~ allowed)
|
|
65
65
|
""",
|
|
66
66
|
),
|
|
67
67
|
Prompts(
|
|
@@ -69,7 +69,7 @@ TOOL_PROMPTS = [
|
|
|
69
69
|
name="WriteIfEmpty",
|
|
70
70
|
description="""
|
|
71
71
|
- Write content to an empty or non-existent file. Provide file path and content. Use this instead of BashCommand for writing new files.
|
|
72
|
-
- Provide absolute
|
|
72
|
+
- Provide absolute path only.
|
|
73
73
|
- For editing existing files, use FileEdit instead of this tool.
|
|
74
74
|
""",
|
|
75
75
|
),
|
|
@@ -82,7 +82,7 @@ TOOL_PROMPTS = [
|
|
|
82
82
|
inputSchema=FileEdit.model_json_schema(),
|
|
83
83
|
name="FileEdit",
|
|
84
84
|
description="""
|
|
85
|
-
- Use absolute
|
|
85
|
+
- Use absolute path only.
|
|
86
86
|
- Use SEARCH/REPLACE blocks to edit the file.
|
|
87
87
|
- If the edit fails due to block not matching, please retry with correct block till it matches. Re-read the file to ensure you've all the lines correct.
|
|
88
88
|
"""
|
|
@@ -4,6 +4,7 @@ import glob
|
|
|
4
4
|
import json
|
|
5
5
|
import mimetypes
|
|
6
6
|
import os
|
|
7
|
+
import subprocess
|
|
7
8
|
import traceback
|
|
8
9
|
from dataclasses import dataclass
|
|
9
10
|
from os.path import expanduser
|
|
@@ -308,6 +309,30 @@ def expand_user(path: str) -> str:
|
|
|
308
309
|
return expanduser(path)
|
|
309
310
|
|
|
310
311
|
|
|
312
|
+
def try_open_file(file_path: str) -> None:
|
|
313
|
+
"""Try to open a file using the system's default application."""
|
|
314
|
+
# Determine the appropriate open command based on OS
|
|
315
|
+
open_cmd = None
|
|
316
|
+
if os.uname().sysname == "Darwin": # macOS
|
|
317
|
+
open_cmd = "open"
|
|
318
|
+
elif os.uname().sysname == "Linux":
|
|
319
|
+
# Try common Linux open commands
|
|
320
|
+
for cmd in ["xdg-open", "gnome-open", "kde-open"]:
|
|
321
|
+
try:
|
|
322
|
+
subprocess.run(["which", cmd], timeout=1, capture_output=True)
|
|
323
|
+
open_cmd = cmd
|
|
324
|
+
break
|
|
325
|
+
except:
|
|
326
|
+
continue
|
|
327
|
+
|
|
328
|
+
# Try to open the file if a command is available
|
|
329
|
+
if open_cmd:
|
|
330
|
+
try:
|
|
331
|
+
subprocess.run([open_cmd, file_path], timeout=2)
|
|
332
|
+
except:
|
|
333
|
+
pass
|
|
334
|
+
|
|
335
|
+
|
|
311
336
|
MEDIA_TYPES = Literal["image/jpeg", "image/png", "image/gif", "image/webp"]
|
|
312
337
|
|
|
313
338
|
|
|
@@ -673,6 +698,7 @@ def get_tool_output(
|
|
|
673
698
|
context.console.print("Calling task memory tool")
|
|
674
699
|
relevant_files = []
|
|
675
700
|
warnings = ""
|
|
701
|
+
arg.project_root_path = os.path.expanduser(arg.project_root_path)
|
|
676
702
|
for fglob in arg.relevant_file_globs:
|
|
677
703
|
fglob = expand_user(fglob)
|
|
678
704
|
if not os.path.isabs(fglob) and arg.project_root_path:
|
|
@@ -682,11 +708,15 @@ def get_tool_output(
|
|
|
682
708
|
if not globs:
|
|
683
709
|
warnings += f"Warning: No files found for the glob: {fglob}\n"
|
|
684
710
|
relevant_files_data = read_files(relevant_files[:10_000], None, context)
|
|
685
|
-
|
|
711
|
+
save_path = save_memory(arg, relevant_files_data, context.bash_state.serialize())
|
|
686
712
|
if not relevant_files and arg.relevant_file_globs:
|
|
687
|
-
output_ = f'Error: No files found for the given globs. Context file successfully saved at "{
|
|
713
|
+
output_ = f'Error: No files found for the given globs. Context file successfully saved at "{save_path}", but please fix the error.'
|
|
688
714
|
elif warnings:
|
|
689
|
-
output_ = warnings + "\nContext file successfully saved at " +
|
|
715
|
+
output_ = warnings + "\nContext file successfully saved at " + save_path
|
|
716
|
+
else:
|
|
717
|
+
output_ = save_path
|
|
718
|
+
# Try to open the saved file
|
|
719
|
+
try_open_file(save_path)
|
|
690
720
|
output = output_, 0.0
|
|
691
721
|
else:
|
|
692
722
|
raise ValueError(f"Unknown tool: {arg}")
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
version = 1
|
|
2
|
-
revision = 1
|
|
3
2
|
requires-python = ">=3.11"
|
|
4
3
|
|
|
5
4
|
[[package]]
|
|
@@ -1179,7 +1178,7 @@ wheels = [
|
|
|
1179
1178
|
|
|
1180
1179
|
[[package]]
|
|
1181
1180
|
name = "wcgw"
|
|
1182
|
-
version = "3.0.
|
|
1181
|
+
version = "3.0.3"
|
|
1183
1182
|
source = { editable = "." }
|
|
1184
1183
|
dependencies = [
|
|
1185
1184
|
{ name = "anthropic" },
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-resource/.python-version
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-tool/mcp_simple_tool/__init__.py
RENAMED
|
File without changes
|
{wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-tool/mcp_simple_tool/__main__.py
RENAMED
|
File without changes
|
{wcgw-3.0.2 → wcgw-3.0.3}/src/mcp_wcgw_fork/examples/servers/simple-tool/mcp_simple_tool/server.py
RENAMED
|
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
|
|
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
|
|
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
|