claude-dev-cli 0.16.2__py3-none-any.whl → 0.18.0__py3-none-any.whl

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.

@@ -0,0 +1,172 @@
1
+ """Git VCS manager implementation."""
2
+
3
+ import subprocess
4
+ from pathlib import Path
5
+ from typing import Optional, List
6
+
7
+ from claude_dev_cli.vcs.manager import VCSManager, CommitInfo
8
+
9
+
10
+ class GitManager(VCSManager):
11
+ """Git version control manager.
12
+
13
+ Supports conventional commits and co-author attribution.
14
+ """
15
+
16
+ def __init__(self, repo_path: Optional[Path] = None):
17
+ """Initialize Git manager.
18
+
19
+ Args:
20
+ repo_path: Path to repository (default: current directory)
21
+ """
22
+ self.repo_path = repo_path or Path.cwd()
23
+
24
+ def is_repository(self) -> bool:
25
+ """Check if current directory is a Git repository."""
26
+ try:
27
+ result = subprocess.run(
28
+ ["git", "rev-parse", "--git-dir"],
29
+ cwd=self.repo_path,
30
+ capture_output=True,
31
+ timeout=5
32
+ )
33
+ return result.returncode == 0
34
+ except (subprocess.TimeoutExpired, FileNotFoundError):
35
+ return False
36
+
37
+ def commit(
38
+ self,
39
+ message: str,
40
+ files: Optional[List[str]] = None,
41
+ co_author: Optional[str] = None
42
+ ) -> CommitInfo:
43
+ """Create a Git commit with optional co-author."""
44
+ # Add files
45
+ if files:
46
+ for file_path in files:
47
+ subprocess.run(
48
+ ["git", "add", file_path],
49
+ cwd=self.repo_path,
50
+ timeout=10
51
+ )
52
+ else:
53
+ # Add all changes
54
+ subprocess.run(
55
+ ["git", "add", "-A"],
56
+ cwd=self.repo_path,
57
+ timeout=10
58
+ )
59
+
60
+ # Build commit message with co-author
61
+ full_message = message
62
+ if co_author:
63
+ full_message = f"{message}\n\nCo-Authored-By: {co_author}"
64
+
65
+ # Create commit
66
+ result = subprocess.run(
67
+ ["git", "commit", "-m", full_message],
68
+ cwd=self.repo_path,
69
+ capture_output=True,
70
+ text=True,
71
+ timeout=10
72
+ )
73
+
74
+ if result.returncode != 0:
75
+ raise RuntimeError(f"Commit failed: {result.stderr}")
76
+
77
+ # Get commit SHA
78
+ sha_result = subprocess.run(
79
+ ["git", "rev-parse", "HEAD"],
80
+ cwd=self.repo_path,
81
+ capture_output=True,
82
+ text=True,
83
+ timeout=5
84
+ )
85
+ sha = sha_result.stdout.strip()
86
+
87
+ # Get author
88
+ author_result = subprocess.run(
89
+ ["git", "log", "-1", "--pretty=format:%an <%ae>"],
90
+ cwd=self.repo_path,
91
+ capture_output=True,
92
+ text=True,
93
+ timeout=5
94
+ )
95
+ author = author_result.stdout.strip()
96
+
97
+ return CommitInfo(
98
+ sha=sha,
99
+ message=message,
100
+ author=author,
101
+ files=files or []
102
+ )
103
+
104
+ def create_branch(self, branch_name: str, from_branch: Optional[str] = None) -> bool:
105
+ """Create a new Git branch."""
106
+ try:
107
+ cmd = ["git", "checkout", "-b", branch_name]
108
+
109
+ if from_branch:
110
+ cmd.append(from_branch)
111
+
112
+ result = subprocess.run(
113
+ cmd,
114
+ cwd=self.repo_path,
115
+ capture_output=True,
116
+ timeout=10
117
+ )
118
+
119
+ return result.returncode == 0
120
+ except subprocess.TimeoutExpired:
121
+ return False
122
+
123
+ def checkout(self, branch_name: str) -> bool:
124
+ """Checkout a Git branch."""
125
+ try:
126
+ result = subprocess.run(
127
+ ["git", "checkout", branch_name],
128
+ cwd=self.repo_path,
129
+ capture_output=True,
130
+ timeout=10
131
+ )
132
+ return result.returncode == 0
133
+ except subprocess.TimeoutExpired:
134
+ return False
135
+
136
+ def current_branch(self) -> str:
137
+ """Get current Git branch name."""
138
+ try:
139
+ result = subprocess.run(
140
+ ["git", "branch", "--show-current"],
141
+ cwd=self.repo_path,
142
+ capture_output=True,
143
+ text=True,
144
+ timeout=5
145
+ )
146
+
147
+ if result.returncode == 0:
148
+ return result.stdout.strip()
149
+
150
+ return "unknown"
151
+ except subprocess.TimeoutExpired:
152
+ return "unknown"
153
+
154
+ def push(self, remote: str = "origin", branch: Optional[str] = None) -> bool:
155
+ """Push changes to remote."""
156
+ try:
157
+ branch_name = branch or self.current_branch()
158
+
159
+ result = subprocess.run(
160
+ ["git", "push", remote, branch_name],
161
+ cwd=self.repo_path,
162
+ capture_output=True,
163
+ timeout=30
164
+ )
165
+
166
+ return result.returncode == 0
167
+ except subprocess.TimeoutExpired:
168
+ return False
169
+
170
+ def get_vcs_name(self) -> str:
171
+ """Return VCS name."""
172
+ return "git"
@@ -0,0 +1,90 @@
1
+ """Abstract VCS manager interface."""
2
+
3
+ from abc import ABC, abstractmethod
4
+ from pathlib import Path
5
+ from typing import Optional, List
6
+ from dataclasses import dataclass
7
+
8
+
9
+ @dataclass
10
+ class CommitInfo:
11
+ """Information about a VCS commit."""
12
+ sha: str
13
+ message: str
14
+ author: str
15
+ files: List[str]
16
+
17
+
18
+ class VCSManager(ABC):
19
+ """Abstract base class for VCS operations."""
20
+
21
+ @abstractmethod
22
+ def is_repository(self) -> bool:
23
+ """Check if current directory is a VCS repository."""
24
+ pass
25
+
26
+ @abstractmethod
27
+ def commit(
28
+ self,
29
+ message: str,
30
+ files: Optional[List[str]] = None,
31
+ co_author: Optional[str] = None
32
+ ) -> CommitInfo:
33
+ """Create a commit.
34
+
35
+ Args:
36
+ message: Commit message
37
+ files: Files to commit (None = all changed files)
38
+ co_author: Co-author attribution (e.g., "Name <email>")
39
+
40
+ Returns:
41
+ CommitInfo object
42
+ """
43
+ pass
44
+
45
+ @abstractmethod
46
+ def create_branch(self, branch_name: str, from_branch: Optional[str] = None) -> bool:
47
+ """Create a new branch.
48
+
49
+ Args:
50
+ branch_name: Name of new branch
51
+ from_branch: Base branch (None = current branch)
52
+
53
+ Returns:
54
+ True if successful
55
+ """
56
+ pass
57
+
58
+ @abstractmethod
59
+ def checkout(self, branch_name: str) -> bool:
60
+ """Checkout a branch.
61
+
62
+ Args:
63
+ branch_name: Branch to checkout
64
+
65
+ Returns:
66
+ True if successful
67
+ """
68
+ pass
69
+
70
+ @abstractmethod
71
+ def current_branch(self) -> str:
72
+ """Get current branch name."""
73
+ pass
74
+
75
+ @abstractmethod
76
+ def push(self, remote: str = "origin", branch: Optional[str] = None) -> bool:
77
+ """Push changes to remote.
78
+
79
+ Args:
80
+ remote: Remote name
81
+ branch: Branch to push (None = current branch)
82
+
83
+ Returns:
84
+ True if successful
85
+ """
86
+ pass
87
+
88
+ def get_vcs_name(self) -> str:
89
+ """Get VCS system name."""
90
+ return self.__class__.__name__.replace('Manager', '').lower()
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-dev-cli
3
- Version: 0.16.2
4
- Summary: A powerful CLI tool for developers using Claude AI with multi-API routing, test generation, code review, and usage tracking
3
+ Version: 0.18.0
4
+ Summary: A powerful CLI tool for developers using Claude AI with multi-API routing, test generation, code review, usage tracking, and project management automation
5
5
  Author-email: Julio <thinmanj@users.noreply.github.com>
6
6
  License: MIT
7
7
  Project-URL: Homepage, https://github.com/thinmanj/claude-dev-cli
@@ -47,6 +47,23 @@ Requires-Dist: requests>=2.28.0; extra == "local"
47
47
  Provides-Extra: all-providers
48
48
  Requires-Dist: openai>=1.0.0; extra == "all-providers"
49
49
  Requires-Dist: requests>=2.28.0; extra == "all-providers"
50
+ Provides-Extra: project-mgmt
51
+ Requires-Dist: repo-tickets>=0.8.0; extra == "project-mgmt"
52
+ Requires-Dist: python-docx>=0.8.11; extra == "project-mgmt"
53
+ Provides-Extra: notifications
54
+ Requires-Dist: requests>=2.28.0; extra == "notifications"
55
+ Requires-Dist: python-telegram-bot>=20.0; extra == "notifications"
56
+ Provides-Extra: vcs
57
+ Requires-Dist: GitPython>=3.1.0; extra == "vcs"
58
+ Provides-Extra: environment
59
+ Requires-Dist: docker>=6.0.0; extra == "environment"
60
+ Provides-Extra: all-pm
61
+ Requires-Dist: repo-tickets>=0.8.0; extra == "all-pm"
62
+ Requires-Dist: python-docx>=0.8.11; extra == "all-pm"
63
+ Requires-Dist: requests>=2.28.0; extra == "all-pm"
64
+ Requires-Dist: python-telegram-bot>=20.0; extra == "all-pm"
65
+ Requires-Dist: GitPython>=3.1.0; extra == "all-pm"
66
+ Requires-Dist: docker>=6.0.0; extra == "all-pm"
50
67
  Provides-Extra: dev
51
68
  Requires-Dist: pytest>=7.0.0; extra == "dev"
52
69
  Requires-Dist: black>=23.0.0; extra == "dev"
@@ -68,10 +85,113 @@ Dynamic: license-file
68
85
  [![Homebrew](https://img.shields.io/badge/homebrew-available-orange.svg)](https://github.com/thinmanj/homebrew-tap)
69
86
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
70
87
 
71
- A powerful command-line tool for developers using Claude AI with multi-API routing, test generation, code review, and comprehensive usage tracking.
88
+ A powerful command-line tool for developers using Claude AI with multi-API routing, test generation, code review, comprehensive usage tracking, and **AI-powered project automation**.
72
89
 
73
90
  ## Features
74
91
 
92
+ ### 🧠 Intelligent Context Gathering (v0.18.0+) ✨ **NEW**
93
+
94
+ **AI learns your codebase patterns before generating code:**
95
+
96
+ ```bash
97
+ # Automatically gathers context (language, framework, conventions, similar code)
98
+ cdc ticket execute TASK-123 --commit --notify
99
+
100
+ # Skip context gathering for faster execution
101
+ cdc ticket execute TASK-456 --no-context
102
+ ```
103
+
104
+ **What context is gathered:**
105
+ - 🗂️ Language & Framework (Python/Django, JS/React, Go, etc.)
106
+ - 📦 Dependencies (requirements.txt, package.json, go.mod)
107
+ - 📁 Directory Structure (models/, views/, controllers/, tests/)
108
+ - 📝 Naming Conventions (snake_case, camelCase, PascalCase)
109
+ - 🔍 Similar Existing Code (based on ticket keywords)
110
+ - ⚙️ Common Imports & Patterns
111
+
112
+ **Result:** AI generates code that follows YOUR project's patterns, not generic templates!
113
+
114
+ See [CONTEXT_INTELLIGENCE.md](CONTEXT_INTELLIGENCE.md) for full details.
115
+
116
+ ### 🤖 AI-Powered Project Automation (v0.17.0+)
117
+
118
+ **Transform tickets into working code automatically:**
119
+
120
+ ```bash
121
+ # Execute a ticket end-to-end: fetch → analyze → generate code → tests → commit
122
+ cdc ticket execute TASK-123 --commit --notify
123
+ ```
124
+
125
+ **What happens:**
126
+ 1. 📥 Fetches ticket from backend (repo-tickets, Jira, Linear, GitHub Issues)
127
+ 2. 🧠 AI analyzes requirements and acceptance criteria
128
+ 3. 💻 Generates production-ready implementation code
129
+ 4. ✅ Generates comprehensive tests
130
+ 5. 📝 Commits to git with conventional format + co-author
131
+ 6. 🎫 Updates ticket status to "completed"
132
+ 7. 📊 Logs all progress to `.cdc-logs/progress.md`
133
+ 8. 🔔 Sends push notifications (FREE via ntfy.sh)
134
+
135
+ **Ticket Management:**
136
+ ```bash
137
+ # Create tickets
138
+ cdc tickets create "Add user authentication" --priority high --type feature
139
+
140
+ # List tickets
141
+ cdc tickets list --status open
142
+
143
+ # Multi-backend support
144
+ cdc ticket execute TASK-456 --backend repo-tickets
145
+ ```
146
+
147
+ **AI-Powered Bug Triage:**
148
+ ```bash
149
+ # Report bugs with automatic severity/category classification
150
+ cdc bug report \
151
+ --title "App crashes on startup" \
152
+ --description "Application fails to launch" \
153
+ --expected "App should start normally" \
154
+ --actual "App crashes immediately" \
155
+ --steps "Open app" --steps "Wait 2 seconds" \
156
+ --environment production
157
+
158
+ # AI automatically assigns:
159
+ # ✅ Severity: CRITICAL (crash detected)
160
+ # ✅ Category: CRASH
161
+ # ✅ Priority: critical
162
+ # ✅ Sends urgent notification
163
+ # ✅ Detects duplicates
164
+ ```
165
+
166
+ **Progress Tracking:**
167
+ ```bash
168
+ # Initialize logging
169
+ cdc log init "My Project"
170
+
171
+ # Add entries
172
+ cdc log entry "Completed auth module" --ticket TASK-123 --level success
173
+
174
+ # Generate reports
175
+ cdc log report # Beautiful markdown summary with stats
176
+ ```
177
+
178
+ **Features:**
179
+ - 🎫 **Ticket Backends**: repo-tickets, Jira, Linear, GitHub Issues, Markdown (fallback)
180
+ - 🤖 **Full AI Automation**: Requirements → Code → Tests → Commit → Deploy
181
+ - 🐛 **Smart Bug Triage**: AI classifies severity, category, priority
182
+ - 📊 **Progress Logging**: Markdown-based tracking with artifact linking
183
+ - 🔔 **Notifications**: FREE push notifications via ntfy.sh (no signup!)
184
+ - 🔄 **VCS Integration**: Git commits with co-author attribution
185
+ - 📝 **Structured Data**: BDD scenarios, acceptance criteria, stack traces
186
+ - 🔍 **Duplicate Detection**: Find similar bugs automatically
187
+ - ⚡ **Cost Optimization**: Use FREE local AI (Ollama) for code generation
188
+
189
+ **Install with project management:**
190
+ ```bash
191
+ pip install 'claude-dev-cli[all-pm]' # All project management features
192
+ pip install 'claude-dev-cli[project-mgmt]' # Ticket management only
193
+ ```
194
+
75
195
  ### 🌐 Multi-Provider AI Support (v0.14.0+)
76
196
  - **Anthropic (Claude)**: GPT-4 class models with 200k context
77
197
  - Haiku, Sonnet, Opus - full model family
@@ -262,6 +382,30 @@ pip install 'claude-dev-cli[toon]'
262
382
  Adds:
263
383
  - `toon-format>=0.1.0` - TOON encoding/decoding
264
384
 
385
+ **Project Management** (v0.17.0+ - ticket automation, bug triage):
386
+
387
+ ```bash
388
+ # Core project management (tickets, logging)
389
+ pip install 'claude-dev-cli[project-mgmt]'
390
+
391
+ # With notifications
392
+ pip install 'claude-dev-cli[notifications]'
393
+
394
+ # With VCS integration
395
+ pip install 'claude-dev-cli[vcs]'
396
+
397
+ # All project management features
398
+ pip install 'claude-dev-cli[all-pm]'
399
+ ```
400
+
401
+ Adds:
402
+ - `repo-tickets>=0.8.0` - Ticket management backend
403
+ - `python-docx>=0.8.11` - Document processing
404
+ - `requests>=2.28.0` - HTTP client for notifications
405
+ - `python-telegram-bot>=20.0` - Telegram notifications (optional)
406
+ - `GitPython>=3.1.0` - Git integration
407
+ - `docker>=6.0.0` - Docker environment support
408
+
265
409
  **Syntax Highlighting** (enhanced diff display):
266
410
 
267
411
  ```bash
@@ -274,7 +418,7 @@ Adds:
274
418
  **All Optional Features**:
275
419
 
276
420
  ```bash
277
- pip install 'claude-dev-cli[generation,toon,plugins]'
421
+ pip install 'claude-dev-cli[generation,toon,plugins,all-pm]'
278
422
  ```
279
423
 
280
424
  **Development Installation** (for contributors):
@@ -1274,6 +1418,193 @@ cdc usage --api personal
1274
1418
  cdc usage --api client
1275
1419
  ```
1276
1420
 
1421
+ ### Project Management & Automation (v0.17.0+)
1422
+
1423
+ #### Automated Ticket Execution
1424
+
1425
+ ```bash
1426
+ # Create a ticket
1427
+ cdc tickets create "Implement user authentication API" \
1428
+ --description "JWT-based auth with email/password" \
1429
+ --priority high \
1430
+ --type feature
1431
+
1432
+ # Output: Created ticket: TASK-A1B2C3D4
1433
+
1434
+ # Execute the ticket with full AI automation
1435
+ cdc ticket execute TASK-A1B2C3D4 --commit --notify
1436
+
1437
+ # What happens:
1438
+ # 1. 📥 Fetches ticket and analyzes requirements
1439
+ # 2. 🧠 AI generates implementation plan
1440
+ # 3. 💻 Generates api/auth.py with login endpoint
1441
+ # 4. ✅ Generates tests/test_auth.py with all acceptance criteria
1442
+ # 5. 📝 Commits: "feat(TASK-A1B2C3D4): Implement user authentication API"
1443
+ # 6. 🎫 Updates ticket status to "completed"
1444
+ # 7. 📊 Logs to .cdc-logs/progress.md
1445
+ # 8. 🔔 Sends push notification
1446
+
1447
+ # Review progress
1448
+ cdc log report
1449
+ ```
1450
+
1451
+ #### Bug Reporting with AI Triage
1452
+
1453
+ ```bash
1454
+ # Report a bug - AI automatically classifies it
1455
+ cdc bug report \
1456
+ --title "App crashes when email contains + character" \
1457
+ --description "Users with + in email address cannot login" \
1458
+ --expected "All valid email addresses should work" \
1459
+ --actual "Server returns 500 error for emails with +" \
1460
+ --steps "Enter email test+user@example.com" \
1461
+ --steps "Click login" \
1462
+ --steps "App crashes" \
1463
+ --environment production
1464
+
1465
+ # AI automatically:
1466
+ # ✅ Severity: HIGH (functionality broken)
1467
+ # ✅ Category: FUNCTIONALITY
1468
+ # ✅ Priority: high
1469
+ # ✅ Creates ticket: BUG-XYZ123
1470
+ # ✅ Checks for duplicates
1471
+ # ✅ Sends notification if critical
1472
+
1473
+ # List all bugs
1474
+ cdc tickets list --status open
1475
+
1476
+ # Execute bug fix
1477
+ cdc ticket execute BUG-XYZ123 --commit
1478
+ ```
1479
+
1480
+ #### Progress Tracking
1481
+
1482
+ ```bash
1483
+ # Initialize logging for a project
1484
+ cdc log init "E-Commerce Platform"
1485
+
1486
+ # Add manual log entries
1487
+ cdc log entry "Started authentication module" --level info
1488
+ cdc log entry "Completed user registration" --ticket TASK-123 --level success
1489
+ cdc log entry "Found issue with password validation" --level warning
1490
+
1491
+ # Generate full progress report
1492
+ cdc log report
1493
+
1494
+ # Output:
1495
+ # # Progress Summary
1496
+ #
1497
+ # **Total Entries:** 15
1498
+ # **Successes:** ✅ 8
1499
+ # **Errors:** ❌ 1
1500
+ #
1501
+ # ## ✅ 2026-02-01 02:30:15
1502
+ # **Ticket:** TASK-123
1503
+ # Completed user registration
1504
+ # ...
1505
+ ```
1506
+
1507
+ #### Using with repo-tickets Backend
1508
+
1509
+ ```bash
1510
+ # Install repo-tickets integration
1511
+ pip install 'claude-dev-cli[all-pm]'
1512
+
1513
+ # Navigate to your project with repo-tickets
1514
+ cd my-project
1515
+ tickets init # Initialize repo-tickets if needed
1516
+
1517
+ # Create a ticket in repo-tickets
1518
+ tickets create "Add payment gateway integration"
1519
+ # Output: Created TICKET-456
1520
+
1521
+ # Execute it with AI
1522
+ cdc ticket execute TICKET-456 --backend repo-tickets --commit --notify
1523
+
1524
+ # AI will:
1525
+ # - Fetch ticket from repo-tickets
1526
+ # - Generate payment gateway code
1527
+ # - Generate tests
1528
+ # - Update repo-tickets status
1529
+ # - Commit to your repo
1530
+ ```
1531
+
1532
+ #### Cost Optimization with Local AI
1533
+
1534
+ ```bash
1535
+ # Use FREE local AI (Ollama) for code generation
1536
+ # Install Ollama first: https://ollama.ai
1537
+
1538
+ # Pull a code model
1539
+ cdc ollama pull codellama
1540
+
1541
+ # Execute ticket with local AI (zero cost!)
1542
+ cdc ticket execute TASK-789 --api local --commit
1543
+
1544
+ # Result: Code generated with $0.00 cost!
1545
+ ```
1546
+
1547
+ #### Notifications Setup
1548
+
1549
+ ```bash
1550
+ # Test notifications (uses ntfy.sh - FREE, no signup!)
1551
+ cdc notify test --topic my-project
1552
+
1553
+ # Check your phone or browser at: https://ntfy.sh/my-project
1554
+ # You'll see: "✅ claude-dev-cli notifications are working!"
1555
+
1556
+ # All ticket executions can send notifications:
1557
+ cdc ticket execute TASK-999 --commit --notify
1558
+
1559
+ # Critical bugs auto-notify:
1560
+ cdc bug report --title "Database connection fails" \
1561
+ --description "Cannot connect to production DB" \
1562
+ --expected "Should connect" \
1563
+ --actual "Connection timeout" \
1564
+ --environment production
1565
+ # 🚨 Sends URGENT notification automatically
1566
+ ```
1567
+
1568
+ #### Complete Workflow Example
1569
+
1570
+ ```bash
1571
+ # 1. Setup
1572
+ pip install 'claude-dev-cli[all-pm]'
1573
+ cdc log init "My Awesome Project"
1574
+
1575
+ # 2. Create tickets for your sprint
1576
+ cdc tickets create "User registration" --priority high
1577
+ cdc tickets create "User login" --priority high
1578
+ cdc tickets create "Password reset" --priority medium
1579
+ cdc tickets create "Email verification" --priority low
1580
+
1581
+ # 3. Execute tickets one by one
1582
+ cdc ticket execute TASK-001 --commit --notify
1583
+ cdc ticket execute TASK-002 --commit --notify
1584
+
1585
+ # 4. Bug is reported
1586
+ cdc bug report \
1587
+ --title "Registration fails for Gmail users" \
1588
+ --description "Gmail addresses rejected" \
1589
+ --expected "Should accept all emails" \
1590
+ --actual "Validation error"
1591
+
1592
+ # 5. Fix the bug
1593
+ cdc ticket execute BUG-001 --commit --notify
1594
+
1595
+ # 6. Review progress
1596
+ cdc log report
1597
+ cdc tickets list
1598
+
1599
+ # 7. All done! 🎉
1600
+ # - Code generated
1601
+ # - Tests written
1602
+ # - Tickets updated
1603
+ # - Commits made
1604
+ # - Team notified
1605
+ # - Progress logged
1606
+ ```
1607
+
1277
1608
  ## Environment Variables
1278
1609
 
1279
1610
  | Variable | Description |
@@ -1,5 +1,5 @@
1
- claude_dev_cli/__init__.py,sha256=UX6d3t4T9Y3Ju9Ip1rBlnMGEx89aGVZDtqX6Gof6jV4,470
2
- claude_dev_cli/cli.py,sha256=wy3IOb4qvCM64hQ8PKMuAvouY4ln95U2DeyeWbe0I4E,108673
1
+ claude_dev_cli/__init__.py,sha256=wWaUbIAPXpAw5KfHf0BkHCBEXP08COIdTt0pH5Wy5a0,470
2
+ claude_dev_cli/cli.py,sha256=X2xdC3tfoyFchguCewyyy_Craa5NztifczcRU6UgODM,122676
3
3
  claude_dev_cli/commands.py,sha256=RKGx2rv56PM6eErvA2uoQ20hY8babuI5jav8nCUyUOk,3964
4
4
  claude_dev_cli/config.py,sha256=1pycr6LSEKc8yKA4CTavL7mH_JfZYszX9YvAE5Fx9gE,23719
5
5
  claude_dev_cli/context.py,sha256=1TlLzpREFZDEIuU7RAtlkjxARKWZpnxHHvK283sUAZE,26714
@@ -15,20 +15,37 @@ claude_dev_cli/toon_utils.py,sha256=S3px2UvmNEaltmTa5K-h21n2c0CPvYjZc9mc7kHGqNQ,
15
15
  claude_dev_cli/usage.py,sha256=7F92mVUenSsONZxmug3ZLbd-8l1qcbqCAzzLbsrJF5Y,7700
16
16
  claude_dev_cli/warp_integration.py,sha256=PDufAJecl7uN0DGz6XW4uDSEeu7Ssg53DOIFKm-AXVg,6909
17
17
  claude_dev_cli/workflows.py,sha256=tAo45rsY-GW6cKMAvb6r4IuTnQcepgbAyAbJzxw1QyU,14099
18
+ claude_dev_cli/logging/__init__.py,sha256=BmLpD-hG_Dw_gAjAjG4wuFl0koNbKX97chhXavDCFRQ,241
19
+ claude_dev_cli/logging/logger.py,sha256=Jr8yDItPc-DDTFBiUwOJeH1EjHej8lU4TB5Sih6pGT8,2101
20
+ claude_dev_cli/logging/markdown_logger.py,sha256=k7W9-bcv8XMp1qRWoJD2-VS9XhyXodixIChV2uPC4XQ,4021
21
+ claude_dev_cli/notifications/__init__.py,sha256=D0sAXO--_8K1h_7P6GdnwEim5QC88lFkWCLIQZ38ftY,270
22
+ claude_dev_cli/notifications/notifier.py,sha256=a3yX5bjqQp0cjiQ6iMQs8tEf3_oEGa7iXQgdgiJWm8w,1739
23
+ claude_dev_cli/notifications/ntfy.py,sha256=bPaFS8LaSRhOACU-47xT4NMgPOUAdrCTuNV-R0RktLM,2619
18
24
  claude_dev_cli/plugins/__init__.py,sha256=BdiZlylBzEgnwK2tuEdn8cITxhAZRVbTnDbWhdDhgqs,1340
19
25
  claude_dev_cli/plugins/base.py,sha256=H4HQet1I-a3WLCfE9F06Lp8NuFvVoIlou7sIgyJFK-c,1417
20
26
  claude_dev_cli/plugins/diff_editor/__init__.py,sha256=gqR5S2TyIVuq-sK107fegsutQ7Z-sgAIEbtc71FhXIM,101
21
27
  claude_dev_cli/plugins/diff_editor/plugin.py,sha256=M1bUoqpasD3ZNQo36Fu_8g92uySPZyG_ujMbj5UplsU,3073
22
28
  claude_dev_cli/plugins/diff_editor/viewer.py,sha256=1IOXIKw_01ppJx5C1dQt9Kr6U1TdAHT8_iUT5r_q0NM,17169
29
+ claude_dev_cli/project/__init__.py,sha256=dXy7Ei-78b9lZmT2GFtOZHd6Nmm9yy77UObkQUTDX-0,440
30
+ claude_dev_cli/project/bug_tracker.py,sha256=-9Bkiyye1FvzmgMOE4nWhv_SLJuWuC6NwDlRLZ-gwws,16178
31
+ claude_dev_cli/project/context_gatherer.py,sha256=0VR8QN6enVXEusiUQwZShFaC2rhmoXVinpB_ECQcSak,22284
32
+ claude_dev_cli/project/executor.py,sha256=SYSPFTeduJELNsevcuo65ePgXZ_c6_rTkbDAmWnchL8,14472
23
33
  claude_dev_cli/providers/__init__.py,sha256=QMD2V_fhvspaCqMQRK4A53yMjIioxDcOHGZuOUs0hRs,657
24
34
  claude_dev_cli/providers/anthropic.py,sha256=cBD_vbwcQjyn4wFcv6A2mtCTncjX3rqNs2B5B8vp5jA,7396
25
35
  claude_dev_cli/providers/base.py,sha256=KC2KQKGbR5_Oz_Xf5bjrGoEI-b3nfikRP5FXSy-4OP8,4640
26
36
  claude_dev_cli/providers/factory.py,sha256=w9LXY1U7HZcDoYcGcRpFTcjl0IpzvO_7QaIl7yo1p5M,3978
27
37
  claude_dev_cli/providers/ollama.py,sha256=DeetIbBmVifT2E5EIz7leZwsCWvP4kHwBkYfKCaCOjk,9642
28
38
  claude_dev_cli/providers/openai.py,sha256=UV8XAYTzhcAaX9KgV4Dkm5UAt1EsEUQ2RFsJkg0x3CY,9405
29
- claude_dev_cli-0.16.2.dist-info/licenses/LICENSE,sha256=DGueuJwMJtMwgLO5mWlS0TaeBrFwQuNpNZ22PU9J2bw,1062
30
- claude_dev_cli-0.16.2.dist-info/METADATA,sha256=cpT5DmhijqCsJ-rYsYi7KromYkkd-_ifQjgP8oN-fXQ,40616
31
- claude_dev_cli-0.16.2.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
32
- claude_dev_cli-0.16.2.dist-info/entry_points.txt,sha256=zymgUIIVpFTARkFmxAuW2A4BQsNITh_L0uU-XunytHg,85
33
- claude_dev_cli-0.16.2.dist-info/top_level.txt,sha256=m7MF6LOIuTe41IT5Fgt0lc-DK1EgM4gUU_IZwWxK0pg,15
34
- claude_dev_cli-0.16.2.dist-info/RECORD,,
39
+ claude_dev_cli/tickets/__init__.py,sha256=fhFp_sq89Hybuyvu5oZrnlj3qByCqN4kijr5rrmIJDE,319
40
+ claude_dev_cli/tickets/backend.py,sha256=tfiAxhfVi4haKmeMZ-YpLV2Q8TIKdsdNtkO9FtHgnhU,6318
41
+ claude_dev_cli/tickets/markdown.py,sha256=rv6jMQ5sPYdRLmdV6lDkupYMEG7ZbdPzM1fuZ0YIncA,11181
42
+ claude_dev_cli/tickets/repo_tickets.py,sha256=M_3s-bGrNbc7bbTwGJICK7P6x-nA1wwjhvaJQtcQ3Rg,11979
43
+ claude_dev_cli/vcs/__init__.py,sha256=UUdv-GCbejOEAPOGeoaGnZ1bXIOqvnx3QttexxlsQ3k,198
44
+ claude_dev_cli/vcs/git.py,sha256=lf_xuj0y3mkFXpvFsWa4UkjsPYKxGEs1rngm92C96BU,5096
45
+ claude_dev_cli/vcs/manager.py,sha256=ARXxrcIeO4zR8qrLCyyok_5JzbbeWgdXKnk-48UrA9k,2223
46
+ claude_dev_cli-0.18.0.dist-info/licenses/LICENSE,sha256=DGueuJwMJtMwgLO5mWlS0TaeBrFwQuNpNZ22PU9J2bw,1062
47
+ claude_dev_cli-0.18.0.dist-info/METADATA,sha256=g3G_9lmNXUlODAy9RvvJhFZ9lv449JyLpj-srfH2HNI,50423
48
+ claude_dev_cli-0.18.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
49
+ claude_dev_cli-0.18.0.dist-info/entry_points.txt,sha256=zymgUIIVpFTARkFmxAuW2A4BQsNITh_L0uU-XunytHg,85
50
+ claude_dev_cli-0.18.0.dist-info/top_level.txt,sha256=m7MF6LOIuTe41IT5Fgt0lc-DK1EgM4gUU_IZwWxK0pg,15
51
+ claude_dev_cli-0.18.0.dist-info/RECORD,,