code-aide 1.0.0__tar.gz → 1.0.2__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.
- {code_aide-1.0.0 → code_aide-1.0.2}/PKG-INFO +8 -3
- {code_aide-1.0.0 → code_aide-1.0.2}/README.md +6 -1
- {code_aide-1.0.0 → code_aide-1.0.2}/pyproject.toml +2 -2
- {code_aide-1.0.0 → code_aide-1.0.2}/src/code_aide/__init__.py +1 -1
- {code_aide-1.0.0 → code_aide-1.0.2}/src/code_aide/commands_actions.py +1 -1
- {code_aide-1.0.0 → code_aide-1.0.2}/src/code_aide/data/tools.json +18 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/src/code_aide/prereqs.py +26 -8
- {code_aide-1.0.0 → code_aide-1.0.2}/tests/test_config.py +1 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/.github/workflows/ci.yml +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/.github/workflows/publish.yml +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/.gitignore +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/AGENTS.md +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/CLAUDE.md +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/LICENSE +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/src/code_aide/__main__.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/src/code_aide/commands_tools.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/src/code_aide/config.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/src/code_aide/console.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/src/code_aide/constants.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/src/code_aide/detection.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/src/code_aide/entry.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/src/code_aide/install.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/src/code_aide/operations.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/src/code_aide/status.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/src/code_aide/versions.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/tests/test_commands_actions.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/tests/test_commands_tools.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/tests/test_console.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/tests/test_constants.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/tests/test_detection.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/tests/test_install.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/tests/test_operations.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/tests/test_status.py +0 -0
- {code_aide-1.0.0 → code_aide-1.0.2}/tests/test_versions.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-aide
|
|
3
|
-
Version: 1.0.
|
|
4
|
-
Summary: Manage AI coding CLI tools (Claude, Cursor, Gemini, Amp, Codex)
|
|
3
|
+
Version: 1.0.2
|
|
4
|
+
Summary: Manage AI coding CLI tools (Claude, Copilot, Cursor, Gemini, Amp, Codex)
|
|
5
5
|
Project-URL: Homepage, https://github.com/dajobe/code-aide
|
|
6
6
|
Project-URL: Repository, https://github.com/dajobe/code-aide
|
|
7
7
|
Project-URL: Issues, https://github.com/dajobe/code-aide/issues
|
|
@@ -29,7 +29,7 @@ Description-Content-Type: text/markdown
|
|
|
29
29
|
An aide for your AI coding tools.
|
|
30
30
|
|
|
31
31
|
Manages installation, upgrade, removal, and version tracking of AI coding CLI
|
|
32
|
-
tools: Claude Code, Cursor, Gemini, Amp, and Codex.
|
|
32
|
+
tools: Claude Code, Copilot, Cursor, Gemini, Amp, and Codex.
|
|
33
33
|
|
|
34
34
|
## Installation
|
|
35
35
|
|
|
@@ -84,6 +84,7 @@ code-aide update-versions -y
|
|
|
84
84
|
| Gemini CLI | `gemini` | npm | Yes |
|
|
85
85
|
| Amp (Sourcegraph) | `amp` | Script | No |
|
|
86
86
|
| Codex CLI | `codex` | npm | No |
|
|
87
|
+
| Copilot CLI | `copilot`| npm | No |
|
|
87
88
|
|
|
88
89
|
## How Version Data Works
|
|
89
90
|
|
|
@@ -121,6 +122,10 @@ a new code-aide release.
|
|
|
121
122
|
## Development
|
|
122
123
|
|
|
123
124
|
```bash
|
|
125
|
+
# Run from development checkout
|
|
126
|
+
uv run python -m code_aide status
|
|
127
|
+
uv run python -m code_aide install copilot
|
|
128
|
+
|
|
124
129
|
# Run tests
|
|
125
130
|
uv run pytest tests/ -v
|
|
126
131
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
An aide for your AI coding tools.
|
|
4
4
|
|
|
5
5
|
Manages installation, upgrade, removal, and version tracking of AI coding CLI
|
|
6
|
-
tools: Claude Code, Cursor, Gemini, Amp, and Codex.
|
|
6
|
+
tools: Claude Code, Copilot, Cursor, Gemini, Amp, and Codex.
|
|
7
7
|
|
|
8
8
|
## Installation
|
|
9
9
|
|
|
@@ -58,6 +58,7 @@ code-aide update-versions -y
|
|
|
58
58
|
| Gemini CLI | `gemini` | npm | Yes |
|
|
59
59
|
| Amp (Sourcegraph) | `amp` | Script | No |
|
|
60
60
|
| Codex CLI | `codex` | npm | No |
|
|
61
|
+
| Copilot CLI | `copilot`| npm | No |
|
|
61
62
|
|
|
62
63
|
## How Version Data Works
|
|
63
64
|
|
|
@@ -95,6 +96,10 @@ a new code-aide release.
|
|
|
95
96
|
## Development
|
|
96
97
|
|
|
97
98
|
```bash
|
|
99
|
+
# Run from development checkout
|
|
100
|
+
uv run python -m code_aide status
|
|
101
|
+
uv run python -m code_aide install copilot
|
|
102
|
+
|
|
98
103
|
# Run tests
|
|
99
104
|
uv run pytest tests/ -v
|
|
100
105
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "code-aide"
|
|
3
|
-
version = "1.0.
|
|
4
|
-
description = "Manage AI coding CLI tools (Claude, Cursor, Gemini, Amp, Codex)"
|
|
3
|
+
version = "1.0.2"
|
|
4
|
+
description = "Manage AI coding CLI tools (Claude, Copilot, Cursor, Gemini, Amp, Codex)"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
7
7
|
{ name = "Dave Beckett" },
|
|
@@ -95,6 +95,24 @@
|
|
|
95
95
|
"default_install": false,
|
|
96
96
|
"latest_version": "0.106.0",
|
|
97
97
|
"latest_date": "2026-02-26"
|
|
98
|
+
},
|
|
99
|
+
"copilot": {
|
|
100
|
+
"name": "Copilot CLI",
|
|
101
|
+
"command": "copilot",
|
|
102
|
+
"install_type": "npm",
|
|
103
|
+
"npm_package": "@github/copilot",
|
|
104
|
+
"prerequisites": [
|
|
105
|
+
"npm"
|
|
106
|
+
],
|
|
107
|
+
"min_node_version": 22,
|
|
108
|
+
"next_steps": "Run 'copilot' and use '/login' to authenticate",
|
|
109
|
+
"version_args": [
|
|
110
|
+
"--version"
|
|
111
|
+
],
|
|
112
|
+
"docs_url": "https://github.com/github/copilot-cli",
|
|
113
|
+
"default_install": false,
|
|
114
|
+
"latest_version": "0.0.420",
|
|
115
|
+
"latest_date": "2026-02-27"
|
|
98
116
|
}
|
|
99
117
|
}
|
|
100
118
|
}
|
|
@@ -152,19 +152,37 @@ def is_tool_installed(tool_name: str) -> bool:
|
|
|
152
152
|
return command_exists(tool_config["command"])
|
|
153
153
|
|
|
154
154
|
|
|
155
|
-
def check_path_directories() -> None:
|
|
156
|
-
"""Check if
|
|
155
|
+
def check_path_directories(tools_installed: Optional[List[str]] = None) -> None:
|
|
156
|
+
"""Check if binary installation directories are in PATH and warn if not.
|
|
157
|
+
|
|
158
|
+
When *tools_installed* is given, only directories relevant to those
|
|
159
|
+
tools are checked. Otherwise a small set of common directories is used.
|
|
160
|
+
"""
|
|
157
161
|
current_path = os.environ.get("PATH", "")
|
|
158
162
|
path_entries = current_path.split(":")
|
|
159
163
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
164
|
+
if tools_installed:
|
|
165
|
+
seen: set = set()
|
|
166
|
+
dirs_to_check: List[str] = []
|
|
167
|
+
for tool_name in tools_installed:
|
|
168
|
+
tool_config = TOOLS.get(tool_name)
|
|
169
|
+
if not tool_config:
|
|
170
|
+
continue
|
|
171
|
+
bin_dir = tool_config.get("bin_dir")
|
|
172
|
+
if bin_dir:
|
|
173
|
+
expanded = os.path.expanduser(bin_dir)
|
|
174
|
+
if expanded not in seen:
|
|
175
|
+
seen.add(expanded)
|
|
176
|
+
dirs_to_check.append(expanded)
|
|
177
|
+
else:
|
|
178
|
+
dirs_to_check = [
|
|
179
|
+
os.path.expanduser("~/.local/bin"),
|
|
180
|
+
os.path.expanduser("~/.npm-packages/bin"),
|
|
181
|
+
os.path.expanduser("~/.amp/bin"),
|
|
182
|
+
]
|
|
165
183
|
|
|
166
184
|
missing_dirs = []
|
|
167
|
-
for dir_path in
|
|
185
|
+
for dir_path in dirs_to_check:
|
|
168
186
|
if dir_path not in path_entries and os.path.isdir(dir_path):
|
|
169
187
|
missing_dirs.append(dir_path)
|
|
170
188
|
|
|
@@ -36,6 +36,7 @@ class TestLoadBundledTools(unittest.TestCase):
|
|
|
36
36
|
self.assertIn("tools", bundled)
|
|
37
37
|
tools = bundled["tools"]
|
|
38
38
|
self.assertIn("claude", tools)
|
|
39
|
+
self.assertIn("copilot", tools)
|
|
39
40
|
self.assertIn("gemini", tools)
|
|
40
41
|
for tool_name, tool_data in tools.items():
|
|
41
42
|
self.assertIn("name", tool_data)
|
|
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
|