claude-dev-cli 0.8.3__tar.gz → 0.8.4__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 claude-dev-cli might be problematic. Click here for more details.
- {claude_dev_cli-0.8.3/src/claude_dev_cli.egg-info → claude_dev_cli-0.8.4}/PKG-INFO +1 -1
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/pyproject.toml +1 -1
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/__init__.py +1 -1
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/config.py +29 -2
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4/src/claude_dev_cli.egg-info}/PKG-INFO +1 -1
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/tests/test_config.py +22 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/LICENSE +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/MANIFEST.in +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/README.md +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/setup.cfg +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/cli.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/commands.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/context.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/core.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/history.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/plugins/__init__.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/plugins/base.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/plugins/diff_editor/__init__.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/plugins/diff_editor/plugin.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/plugins/diff_editor/viewer.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/secure_storage.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/template_manager.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/templates.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/toon_utils.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/usage.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/warp_integration.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/workflows.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli.egg-info/SOURCES.txt +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli.egg-info/dependency_links.txt +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli.egg-info/entry_points.txt +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli.egg-info/requires.txt +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli.egg-info/top_level.txt +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/tests/test_cli.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/tests/test_commands.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/tests/test_context.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/tests/test_core.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/tests/test_diff_editor.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/tests/test_history.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/tests/test_secure_storage.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/tests/test_template_manager.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/tests/test_toon_utils.py +0 -0
- {claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/tests/test_usage.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-dev-cli
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.4
|
|
4
4
|
Summary: A powerful CLI tool for developers using Claude AI with multi-API routing, test generation, code review, and usage tracking
|
|
5
5
|
Author-email: Julio <thinmanj@users.noreply.github.com>
|
|
6
6
|
License: MIT
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "claude-dev-cli"
|
|
7
|
-
version = "0.8.
|
|
7
|
+
version = "0.8.4"
|
|
8
8
|
description = "A powerful CLI tool for developers using Claude AI with multi-API routing, test generation, code review, and usage tracking"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
@@ -84,6 +84,13 @@ class Config:
|
|
|
84
84
|
|
|
85
85
|
def _ensure_config_dir(self) -> None:
|
|
86
86
|
"""Ensure configuration directory exists."""
|
|
87
|
+
# Check if config_dir exists as a file (not directory)
|
|
88
|
+
if self.config_dir.exists() and not self.config_dir.is_dir():
|
|
89
|
+
raise RuntimeError(
|
|
90
|
+
f"Configuration path {self.config_dir} exists but is not a directory. "
|
|
91
|
+
f"Please remove or rename this file."
|
|
92
|
+
)
|
|
93
|
+
|
|
87
94
|
self.config_dir.mkdir(parents=True, exist_ok=True)
|
|
88
95
|
self.usage_log.touch(exist_ok=True)
|
|
89
96
|
|
|
@@ -101,8 +108,28 @@ class Config:
|
|
|
101
108
|
self._save_config(default_config)
|
|
102
109
|
return default_config
|
|
103
110
|
|
|
104
|
-
|
|
105
|
-
|
|
111
|
+
# Check if config_file is actually a directory
|
|
112
|
+
if self.config_file.is_dir():
|
|
113
|
+
raise RuntimeError(
|
|
114
|
+
f"Configuration file {self.config_file} is a directory. "
|
|
115
|
+
f"Please remove this directory."
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
try:
|
|
119
|
+
with open(self.config_file, 'r') as f:
|
|
120
|
+
config = json.load(f)
|
|
121
|
+
|
|
122
|
+
# Ensure required keys exist (for backwards compatibility)
|
|
123
|
+
if "context" not in config:
|
|
124
|
+
config["context"] = ContextConfig().model_dump()
|
|
125
|
+
if "summarization" not in config:
|
|
126
|
+
config["summarization"] = SummarizationConfig().model_dump()
|
|
127
|
+
|
|
128
|
+
return config
|
|
129
|
+
except (json.JSONDecodeError, IOError) as e:
|
|
130
|
+
raise RuntimeError(
|
|
131
|
+
f"Failed to load configuration from {self.config_file}: {e}"
|
|
132
|
+
)
|
|
106
133
|
|
|
107
134
|
def _save_config(self, data: Optional[Dict] = None) -> None:
|
|
108
135
|
"""Save configuration to file."""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-dev-cli
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.4
|
|
4
4
|
Summary: A powerful CLI tool for developers using Claude AI with multi-API routing, test generation, code review, and usage tracking
|
|
5
5
|
Author-email: Julio <thinmanj@users.noreply.github.com>
|
|
6
6
|
License: MIT
|
|
@@ -70,6 +70,28 @@ class TestConfig:
|
|
|
70
70
|
assert config.config_dir.exists()
|
|
71
71
|
assert config.usage_log.exists()
|
|
72
72
|
|
|
73
|
+
def test_config_dir_as_file_raises(self, temp_home: Path) -> None:
|
|
74
|
+
"""Test that having config path as file raises error."""
|
|
75
|
+
# Create config path as a file instead of directory
|
|
76
|
+
config_path = temp_home / ".claude-dev-cli"
|
|
77
|
+
config_path.write_text("invalid file")
|
|
78
|
+
|
|
79
|
+
with pytest.raises(RuntimeError, match="exists but is not a directory"):
|
|
80
|
+
Config()
|
|
81
|
+
|
|
82
|
+
def test_config_file_as_dir_raises(self, temp_home: Path) -> None:
|
|
83
|
+
"""Test that having config.json as directory raises error."""
|
|
84
|
+
# Create config directory
|
|
85
|
+
config_dir = temp_home / ".claude-dev-cli"
|
|
86
|
+
config_dir.mkdir(parents=True, exist_ok=True)
|
|
87
|
+
|
|
88
|
+
# Create config.json as a directory
|
|
89
|
+
config_file = config_dir / "config.json"
|
|
90
|
+
config_file.mkdir()
|
|
91
|
+
|
|
92
|
+
with pytest.raises(RuntimeError, match="is a directory"):
|
|
93
|
+
Config()
|
|
94
|
+
|
|
73
95
|
def test_init_creates_default_config(self, temp_home: Path) -> None:
|
|
74
96
|
"""Test that Config.__init__ creates default config file."""
|
|
75
97
|
config = Config()
|
|
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
|
{claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/plugins/diff_editor/__init__.py
RENAMED
|
File without changes
|
{claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/plugins/diff_editor/plugin.py
RENAMED
|
File without changes
|
{claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli/plugins/diff_editor/viewer.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
|
{claude_dev_cli-0.8.3 → claude_dev_cli-0.8.4}/src/claude_dev_cli.egg-info/dependency_links.txt
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
|