gitinstall 1.1.4__tar.gz → 1.2.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 (64) hide show
  1. {gitinstall-1.1.4/gitinstall.egg-info → gitinstall-1.2.0}/PKG-INFO +4 -2
  2. {gitinstall-1.1.4 → gitinstall-1.2.0}/README.md +3 -1
  3. {gitinstall-1.1.4 → gitinstall-1.2.0/gitinstall.egg-info}/PKG-INFO +4 -2
  4. {gitinstall-1.1.4 → gitinstall-1.2.0}/pyproject.toml +1 -1
  5. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/_sdk.py +28 -0
  6. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/mcp_server.py +42 -0
  7. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/tool_schemas.py +39 -1
  8. {gitinstall-1.1.4 → gitinstall-1.2.0}/LICENSE +0 -0
  9. {gitinstall-1.1.4 → gitinstall-1.2.0}/MANIFEST.in +0 -0
  10. {gitinstall-1.1.4 → gitinstall-1.2.0}/gitinstall.egg-info/SOURCES.txt +0 -0
  11. {gitinstall-1.1.4 → gitinstall-1.2.0}/gitinstall.egg-info/dependency_links.txt +0 -0
  12. {gitinstall-1.1.4 → gitinstall-1.2.0}/gitinstall.egg-info/entry_points.txt +0 -0
  13. {gitinstall-1.1.4 → gitinstall-1.2.0}/gitinstall.egg-info/top_level.txt +0 -0
  14. {gitinstall-1.1.4 → gitinstall-1.2.0}/setup.cfg +0 -0
  15. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/__init__.py +0 -0
  16. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/academic.py +0 -0
  17. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/admin.html +0 -0
  18. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/auto_update.py +0 -0
  19. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/autopilot.py +0 -0
  20. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/badge.py +0 -0
  21. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/checkpoint.py +0 -0
  22. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/cicd.py +0 -0
  23. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/clawhub.html +0 -0
  24. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/config_schema.py +0 -0
  25. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/db.py +0 -0
  26. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/db_backend.py +0 -0
  27. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/dep_chain.py +0 -0
  28. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/dependency_audit.py +0 -0
  29. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/detector.py +0 -0
  30. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/doctor.py +0 -0
  31. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/education.py +0 -0
  32. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/enterprise.py +0 -0
  33. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/error_fixer.py +0 -0
  34. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/event_bus.py +0 -0
  35. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/executor.py +0 -0
  36. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/feature_flags.py +0 -0
  37. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/fetcher.py +0 -0
  38. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/huggingface.py +0 -0
  39. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/hw_detect.py +0 -0
  40. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/i18n.py +0 -0
  41. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/installer_registry.py +0 -0
  42. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/knowledge_base.py +0 -0
  43. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/license_check.py +0 -0
  44. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/llm.py +0 -0
  45. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/log.py +0 -0
  46. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/main.py +0 -0
  47. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/mcp_agent.py +0 -0
  48. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/monorepo.py +0 -0
  49. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/multi_source.py +0 -0
  50. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/onboard.py +0 -0
  51. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/planner.py +0 -0
  52. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/planner_helpers.py +0 -0
  53. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/planner_known_projects.py +0 -0
  54. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/planner_templates.py +0 -0
  55. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/remote_gpu.py +0 -0
  56. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/resilience.py +0 -0
  57. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/run_tests.py +0 -0
  58. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/skills.py +0 -0
  59. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/trending.py +0 -0
  60. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/uninstaller.py +0 -0
  61. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/validate_top100.py +0 -0
  62. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/watchdog.py +0 -0
  63. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/web.py +0 -0
  64. {gitinstall-1.1.4 → gitinstall-1.2.0}/tools/web_ui.html +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gitinstall
3
- Version: 1.1.4
3
+ Version: 1.2.0
4
4
  Summary: MCP server & CLI that helps you easily install GitHub projects — zero dependencies
5
5
  Author: icerui
6
6
  License: MIT
@@ -126,7 +126,7 @@ gitinstall-mcp # Starts MCP server on stdio (JSON-RPC 2.0)
126
126
 
127
127
  ## MCP Tools
128
128
 
129
- gitinstall exposes 6 tools via MCP:
129
+ gitinstall exposes 7 tools via MCP:
130
130
 
131
131
  | Tool | What it does |
132
132
  |------|-------------|
@@ -136,6 +136,7 @@ gitinstall exposes 6 tools via MCP:
136
136
  | `get_project_info` | Fetch GitHub project metadata without installing |
137
137
  | `check_system_health` | Full system diagnostic with fix suggestions |
138
138
  | `audit_dependencies` | Scan project dependencies for known CVEs |
139
+ | `uninstall_github_project` | Safely uninstall a project: removes files, venvs, Docker, caches |
139
140
 
140
141
  ### Example: `install_github_project`
141
142
 
@@ -196,6 +197,7 @@ gitinstall works standalone too, no AI agent needed:
196
197
 
197
198
  ```bash
198
199
  gitinstall comfyanonymous/ComfyUI # Install a project
200
+ gitinstall uninstall comfyanonymous/ComfyUI --confirm # Safely uninstall
199
201
  gitinstall detect # Check your system
200
202
  gitinstall doctor # System diagnostic
201
203
  gitinstall audit pytorch/pytorch # Security audit
@@ -99,7 +99,7 @@ gitinstall-mcp # Starts MCP server on stdio (JSON-RPC 2.0)
99
99
 
100
100
  ## MCP Tools
101
101
 
102
- gitinstall exposes 6 tools via MCP:
102
+ gitinstall exposes 7 tools via MCP:
103
103
 
104
104
  | Tool | What it does |
105
105
  |------|-------------|
@@ -109,6 +109,7 @@ gitinstall exposes 6 tools via MCP:
109
109
  | `get_project_info` | Fetch GitHub project metadata without installing |
110
110
  | `check_system_health` | Full system diagnostic with fix suggestions |
111
111
  | `audit_dependencies` | Scan project dependencies for known CVEs |
112
+ | `uninstall_github_project` | Safely uninstall a project: removes files, venvs, Docker, caches |
112
113
 
113
114
  ### Example: `install_github_project`
114
115
 
@@ -169,6 +170,7 @@ gitinstall works standalone too, no AI agent needed:
169
170
 
170
171
  ```bash
171
172
  gitinstall comfyanonymous/ComfyUI # Install a project
173
+ gitinstall uninstall comfyanonymous/ComfyUI --confirm # Safely uninstall
172
174
  gitinstall detect # Check your system
173
175
  gitinstall doctor # System diagnostic
174
176
  gitinstall audit pytorch/pytorch # Security audit
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gitinstall
3
- Version: 1.1.4
3
+ Version: 1.2.0
4
4
  Summary: MCP server & CLI that helps you easily install GitHub projects — zero dependencies
5
5
  Author: icerui
6
6
  License: MIT
@@ -126,7 +126,7 @@ gitinstall-mcp # Starts MCP server on stdio (JSON-RPC 2.0)
126
126
 
127
127
  ## MCP Tools
128
128
 
129
- gitinstall exposes 6 tools via MCP:
129
+ gitinstall exposes 7 tools via MCP:
130
130
 
131
131
  | Tool | What it does |
132
132
  |------|-------------|
@@ -136,6 +136,7 @@ gitinstall exposes 6 tools via MCP:
136
136
  | `get_project_info` | Fetch GitHub project metadata without installing |
137
137
  | `check_system_health` | Full system diagnostic with fix suggestions |
138
138
  | `audit_dependencies` | Scan project dependencies for known CVEs |
139
+ | `uninstall_github_project` | Safely uninstall a project: removes files, venvs, Docker, caches |
139
140
 
140
141
  ### Example: `install_github_project`
141
142
 
@@ -196,6 +197,7 @@ gitinstall works standalone too, no AI agent needed:
196
197
 
197
198
  ```bash
198
199
  gitinstall comfyanonymous/ComfyUI # Install a project
200
+ gitinstall uninstall comfyanonymous/ComfyUI --confirm # Safely uninstall
199
201
  gitinstall detect # Check your system
200
202
  gitinstall doctor # System diagnostic
201
203
  gitinstall audit pytorch/pytorch # Security audit
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "gitinstall"
7
- version = "1.1.4"
7
+ version = "1.2.0"
8
8
  description = "MCP server & CLI that helps you easily install GitHub projects — zero dependencies"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -536,6 +536,34 @@ def audit(identifier: str, *, online: bool = False) -> dict:
536
536
  return cmd_audit(identifier, online=online)
537
537
 
538
538
 
539
+ def uninstall(
540
+ identifier: str,
541
+ *,
542
+ install_dir: str = None,
543
+ keep_config: bool = False,
544
+ confirm: bool = False,
545
+ ) -> dict:
546
+ """安全卸载已安装的 GitHub 项目。
547
+
548
+ Args:
549
+ identifier: 项目标识,如 "owner/repo"。
550
+ install_dir: 安装目录。省略则自动探测。
551
+ keep_config: True 时保留配置文件。
552
+ confirm: True 时执行卸载,False 时只显示计划。
553
+
554
+ Returns:
555
+ dict: 包含卸载计划或执行结果。
556
+ """
557
+ from main import cmd_uninstall
558
+ return cmd_uninstall(
559
+ identifier,
560
+ keep_config=keep_config,
561
+ clean_only=False,
562
+ confirm=confirm,
563
+ install_dir=install_dir,
564
+ )
565
+
566
+
539
567
  # ── 版本信息 ─────────────────────────────────
540
568
 
541
569
  __version__ = "1.1.0"
@@ -52,6 +52,7 @@ from _sdk import (
52
52
  fetch as _fetch,
53
53
  doctor as _doctor,
54
54
  audit as _audit,
55
+ uninstall as _uninstall,
55
56
  __version__,
56
57
  )
57
58
 
@@ -191,6 +192,39 @@ TOOLS = [
191
192
  "required": ["project"],
192
193
  },
193
194
  },
195
+ {
196
+ "name": "uninstall_github_project",
197
+ "description": (
198
+ "Safely uninstall a previously installed GitHub project. "
199
+ "Detects and removes: project directory, virtualenvs, Docker containers, "
200
+ "build artifacts, caches. Safety checks prevent deleting system directories. "
201
+ "Shows a cleanup plan before executing. Optionally keeps config files. "
202
+ "Example: uninstall_github_project({\"project\": \"comfyanonymous/ComfyUI\"}) "
203
+ "Call this when a user wants to remove, delete, or uninstall a GitHub project."
204
+ ),
205
+ "inputSchema": {
206
+ "type": "object",
207
+ "properties": {
208
+ "project": {
209
+ "type": "string",
210
+ "description": "GitHub project: 'owner/repo' format",
211
+ },
212
+ "install_dir": {
213
+ "type": "string",
214
+ "description": "Directory where the project is installed. Default: ~/github-installs/<project>/",
215
+ },
216
+ "keep_config": {
217
+ "type": "boolean",
218
+ "description": "Keep config files (.env, etc.) during uninstall. Default: false.",
219
+ },
220
+ "confirm": {
221
+ "type": "boolean",
222
+ "description": "If true, execute the uninstall. If false, only show plan. Default: false.",
223
+ },
224
+ },
225
+ "required": ["project"],
226
+ },
227
+ },
194
228
  ]
195
229
 
196
230
 
@@ -273,6 +307,14 @@ def _call_tool(name: str, args: dict) -> tuple[list[dict], bool]:
273
307
  online=args.get("online", False),
274
308
  )
275
309
 
310
+ elif name == "uninstall_github_project":
311
+ result = _uninstall(
312
+ args["project"],
313
+ install_dir=args.get("install_dir"),
314
+ keep_config=args.get("keep_config", False),
315
+ confirm=args.get("confirm", False),
316
+ )
317
+
276
318
  else:
277
319
  return [{"type": "text", "text": f"Unknown tool: {name}"}], True
278
320
 
@@ -174,6 +174,36 @@ _TOOLS = [
174
174
  "required": ["project"],
175
175
  },
176
176
  },
177
+ {
178
+ "name": "uninstall",
179
+ "description": (
180
+ "Safely uninstall a previously installed GitHub project. "
181
+ "Removes project directory, virtualenvs, Docker containers, build artifacts, caches. "
182
+ "Shows cleanup plan before executing. Call with confirm=true to actually delete."
183
+ ),
184
+ "parameters": {
185
+ "type": "object",
186
+ "properties": {
187
+ "project": {
188
+ "type": "string",
189
+ "description": "GitHub project: 'owner/repo' format",
190
+ },
191
+ "install_dir": {
192
+ "type": "string",
193
+ "description": "Directory where the project is installed.",
194
+ },
195
+ "keep_config": {
196
+ "type": "boolean",
197
+ "description": "Keep config files during uninstall.",
198
+ },
199
+ "confirm": {
200
+ "type": "boolean",
201
+ "description": "If true, execute uninstall. If false, only show plan.",
202
+ },
203
+ },
204
+ "required": ["project"],
205
+ },
206
+ },
177
207
  ]
178
208
 
179
209
  # ── 工具名列表 ──────────────────────────────
@@ -260,7 +290,7 @@ def call_tool(name: str, arguments: dict) -> dict | None:
260
290
  Returns:
261
291
  工具执行结果 dict,或 None(diagnose 无匹配时)
262
292
  """
263
- from _sdk import detect, plan, install, diagnose, fetch, doctor, audit
293
+ from _sdk import detect, plan, install, diagnose, fetch, doctor, audit, uninstall
264
294
 
265
295
  if name == "detect":
266
296
  return detect()
@@ -297,6 +327,14 @@ def call_tool(name: str, arguments: dict) -> dict | None:
297
327
  online=arguments.get("online", False),
298
328
  )
299
329
 
330
+ if name == "uninstall":
331
+ return uninstall(
332
+ arguments["project"],
333
+ install_dir=arguments.get("install_dir"),
334
+ keep_config=arguments.get("keep_config", False),
335
+ confirm=arguments.get("confirm", False),
336
+ )
337
+
300
338
  raise ValueError(f"Unknown tool: {name}. Available: {tool_names}")
301
339
 
302
340
 
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