ollama-coding-agent 0.3.0__tar.gz → 0.4.0__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 (24) hide show
  1. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/PKG-INFO +1 -1
  2. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/coding_agent/mcp_client.py +17 -1
  3. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/ollama_coding_agent.egg-info/PKG-INFO +1 -1
  4. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/pyproject.toml +1 -1
  5. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/LICENSE +0 -0
  6. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/PYPI_README.md +0 -0
  7. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/README.md +0 -0
  8. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/coding_agent/__init__.py +0 -0
  9. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/coding_agent/__main__.py +0 -0
  10. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/coding_agent/agent.py +0 -0
  11. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/coding_agent/cli.py +0 -0
  12. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/coding_agent/config.py +0 -0
  13. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/coding_agent/intent.py +0 -0
  14. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/coding_agent/mcp_server.py +0 -0
  15. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/coding_agent/ollama_client.py +0 -0
  16. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/coding_agent/session_store.py +0 -0
  17. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/coding_agent/tools.py +0 -0
  18. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/coding_agent/ui.py +0 -0
  19. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/ollama_coding_agent.egg-info/SOURCES.txt +0 -0
  20. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/ollama_coding_agent.egg-info/dependency_links.txt +0 -0
  21. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/ollama_coding_agent.egg-info/entry_points.txt +0 -0
  22. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/ollama_coding_agent.egg-info/requires.txt +0 -0
  23. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/ollama_coding_agent.egg-info/top_level.txt +0 -0
  24. {ollama_coding_agent-0.3.0 → ollama_coding_agent-0.4.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ollama-coding-agent
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: AI coding agent driving Qwen Coder (or any Ollama-compatible model) through a scoped toolset via MCP
5
5
  License-Expression: MIT
6
6
  Project-URL: Homepage, https://github.com/HarryChen1995/coding_agent
@@ -40,6 +40,22 @@ def save_mcp_config(path: str, servers: dict) -> None:
40
40
  f.write("\n")
41
41
 
42
42
 
43
+ def _split_command(s: str) -> list:
44
+ """Split a command string into tokens, Windows-path-safe. shlex.split()'s
45
+ default POSIX mode treats backslash as an escape character, which
46
+ silently eats every backslash in a Windows path (`C:\\Users\\...` becomes
47
+ `C:Users...`) — so split in non-POSIX mode instead (preserves backslashes
48
+ literally) and manually strip matching quotes non-POSIX mode leaves on
49
+ quoted tokens."""
50
+ tokens = shlex.split(s, posix=False)
51
+ cleaned = []
52
+ for t in tokens:
53
+ if len(t) >= 2 and t[0] == t[-1] and t[0] in ('"', "'"):
54
+ t = t[1:-1]
55
+ cleaned.append(t)
56
+ return cleaned
57
+
58
+
43
59
  def parse_mcp_server_specs(specs: list) -> dict:
44
60
  """Parse repeatable `--mcp-server` CLI values into the same shape
45
61
  load_mcp_config() returns, so both sources can be merged uniformly.
@@ -68,7 +84,7 @@ def parse_mcp_server_specs(specs: list) -> dict:
68
84
  raise ValueError(f"Invalid --mcp-server transport {transport!r} for {name!r} — expected one of {_TRANSPORTS}")
69
85
  servers[name] = {"url": url, "transport": transport}
70
86
  else:
71
- parts = shlex.split(rest)
87
+ parts = _split_command(rest)
72
88
  if not parts:
73
89
  raise ValueError(f'Invalid --mcp-server value {spec!r} — expected "name=command args..."')
74
90
  servers[name] = {"command": parts[0], "args": parts[1:]}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ollama-coding-agent
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: AI coding agent driving Qwen Coder (or any Ollama-compatible model) through a scoped toolset via MCP
5
5
  License-Expression: MIT
6
6
  Project-URL: Homepage, https://github.com/HarryChen1995/coding_agent
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ollama-coding-agent"
7
- version = "0.3.0"
7
+ version = "0.4.0"
8
8
  description = "AI coding agent driving Qwen Coder (or any Ollama-compatible model) through a scoped toolset via MCP"
9
9
  readme = "PYPI_README.md"
10
10
  requires-python = ">=3.10"