claude-dev-cli 0.12.1__tar.gz → 0.13.3__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 (49) hide show
  1. {claude_dev_cli-0.12.1/src/claude_dev_cli.egg-info → claude_dev_cli-0.13.3}/PKG-INFO +119 -5
  2. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/README.md +117 -4
  3. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/pyproject.toml +2 -1
  4. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/__init__.py +1 -1
  5. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/cli.py +255 -52
  6. claude_dev_cli-0.13.3/src/claude_dev_cli/multi_file_handler.py +732 -0
  7. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3/src/claude_dev_cli.egg-info}/PKG-INFO +119 -5
  8. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli.egg-info/SOURCES.txt +1 -0
  9. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli.egg-info/requires.txt +1 -0
  10. claude_dev_cli-0.13.3/tests/test_multi_file_handler.py +693 -0
  11. claude_dev_cli-0.12.1/src/claude_dev_cli/multi_file_handler.py +0 -348
  12. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/LICENSE +0 -0
  13. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/MANIFEST.in +0 -0
  14. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/setup.cfg +0 -0
  15. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/commands.py +0 -0
  16. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/config.py +0 -0
  17. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/context.py +0 -0
  18. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/core.py +0 -0
  19. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/history.py +0 -0
  20. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/input_sources.py +0 -0
  21. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/path_utils.py +0 -0
  22. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/plugins/__init__.py +0 -0
  23. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/plugins/base.py +0 -0
  24. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/plugins/diff_editor/__init__.py +0 -0
  25. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/plugins/diff_editor/plugin.py +0 -0
  26. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/plugins/diff_editor/viewer.py +0 -0
  27. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/secure_storage.py +0 -0
  28. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/template_manager.py +0 -0
  29. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/templates.py +0 -0
  30. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/toon_utils.py +0 -0
  31. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/usage.py +0 -0
  32. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/warp_integration.py +0 -0
  33. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli/workflows.py +0 -0
  34. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli.egg-info/dependency_links.txt +0 -0
  35. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli.egg-info/entry_points.txt +0 -0
  36. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/src/claude_dev_cli.egg-info/top_level.txt +0 -0
  37. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/tests/test_cli.py +0 -0
  38. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/tests/test_commands.py +0 -0
  39. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/tests/test_config.py +0 -0
  40. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/tests/test_context.py +0 -0
  41. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/tests/test_core.py +0 -0
  42. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/tests/test_diff_editor.py +0 -0
  43. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/tests/test_history.py +0 -0
  44. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/tests/test_input_sources.py +0 -0
  45. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/tests/test_path_utils.py +0 -0
  46. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/tests/test_secure_storage.py +0 -0
  47. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/tests/test_template_manager.py +0 -0
  48. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/tests/test_toon_utils.py +0 -0
  49. {claude_dev_cli-0.12.1 → claude_dev_cli-0.13.3}/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.12.1
3
+ Version: 0.13.3
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
@@ -29,6 +29,7 @@ Requires-Dist: pydantic>=2.0.0
29
29
  Requires-Dist: keyring>=24.0.0
30
30
  Requires-Dist: cryptography>=41.0.0
31
31
  Requires-Dist: pyyaml>=6.0.0
32
+ Requires-Dist: unidiff>=0.7.0
32
33
  Provides-Extra: toon
33
34
  Requires-Dist: toon-format>=0.1.0; extra == "toon"
34
35
  Provides-Extra: plugins
@@ -281,22 +282,28 @@ cdc review -m powerful complex_file.py # More thorough review
281
282
  cdc generate tests -m smart mymodule.py # Balanced approach
282
283
  ```
283
284
 
284
- ### 3. Code Generation Commands (NEW in v0.12.0)
285
+ ### 3. Code Generation Commands (NEW in v0.12.0, enhanced v0.13.0)
285
286
 
286
287
  ```bash
287
- # Generate code from specification
288
+ # Generate code from specification (single file)
288
289
  cdc generate code --description "REST API client for weather data" -o client.py
289
290
  cdc generate code --file spec.md -o implementation.go
290
291
  cdc generate code --pdf requirements.pdf -o app.js
291
292
  cdc generate code --url https://example.com/api-spec -o service.py
292
293
 
294
+ # Generate multi-file projects (NEW in v0.13.0)
295
+ cdc generate code --description "FastAPI REST API with auth" -o my-api/
296
+ cdc generate code --file spec.md -o project/ --dry-run # Preview first
297
+ cdc generate code --file spec.md -o project/ --yes # No confirmation
298
+ # Creates complete directory structure with multiple files
299
+
293
300
  # Generate code with interactive refinement
294
301
  cdc generate code --description "Database ORM" -o orm.py --interactive
295
302
 
296
303
  # Generate code with project context
297
304
  cdc generate code --file spec.md -o service.py --auto-context
298
305
 
299
- # Add features to existing project
306
+ # Add features to existing project (NEW: multi-file output in v0.13.0)
300
307
  cdc generate feature --description "Add user authentication with JWT" src/
301
308
  cdc generate feature --file feature-spec.md
302
309
  cdc generate feature --pdf product-requirements.pdf --preview
@@ -304,11 +311,113 @@ cdc generate feature --url https://example.com/feature-spec
304
311
 
305
312
  # Preview feature changes before applying
306
313
  cdc generate feature --description "Add caching layer" src/ --preview
314
+ cdc generate feature --description "Add REST API" --dry-run # Preview changes
315
+ cdc generate feature --file spec.md --yes # Apply without confirmation
307
316
 
308
317
  # Interactive feature implementation
309
318
  cdc generate feature --description "Add logging" src/ --interactive
319
+
320
+ # Hunk-by-hunk approval (like git add -p) - NEW in v0.13.1
321
+ cdc generate feature -f spec.md
322
+ # At confirmation prompt, type 'patch' to review changes hunk-by-hunk
323
+ # Options: y (yes), n (no), s (skip file), q (quit), help
324
+ ```
325
+
326
+ ### 3.1 Interactive Diff Approval (v0.13.1+)
327
+
328
+ When applying file modifications, you can review and approve changes hunk-by-hunk, similar to `git add -p`:
329
+
330
+ ```bash
331
+ # After generating feature/refactor changes:
332
+ cdc generate feature -f spec.md
333
+
334
+ # At the confirmation prompt:
335
+ Continue? (Y/n/preview/patch/help) patch
336
+
337
+ # For each file:
338
+ File: src/main.py
339
+ Modify file (3 hunk(s))
340
+
341
+ Hunk 1/3:
342
+ [Shows diff with syntax highlighting]
343
+ @@ -10,3 +10,5 @@
344
+ def main():
345
+ - print("old")
346
+ + print("new")
347
+ + logging.info("Started")
348
+
349
+ Apply this hunk? (y/n/s=skip file/q=quit/help) y # Approve this hunk
350
+
351
+ Hunk 2/3:
352
+ [Shows next diff]
353
+ Apply this hunk? (y/n/s=skip file/q=quit/help) n # Skip this hunk
354
+
355
+ Hunk 3/3:
356
+ [Shows final diff]
357
+ Apply this hunk? (y/n/s=skip file/q=quit/help) s # Skip remaining in file
358
+
359
+ # File operations options:
360
+ Create this file? (y/n/s=skip/q=quit) y # For new files
361
+ Delete this file? (y/n/s=skip/q=quit) n # For file deletions
362
+ ```
363
+
364
+ **Options:**
365
+ - `y, yes` - Apply this hunk/file
366
+ - `n, no` - Skip this hunk (keeps original)
367
+ - `s, skip` - Skip remaining hunks in current file
368
+ - `q, quit` - Stop reviewing and apply approved changes so far
369
+ - `edit` - Open files in $EDITOR before applying
370
+ - `save` - Save to custom location
371
+ - `help` - Show help message
372
+
373
+ **Benefits:**
374
+ - Fine-grained control over changes
375
+ - Keep original code for some hunks while applying others
376
+ - Syntax-highlighted diffs for easy review
377
+ - Edit files before applying for manual tweaks
378
+ - Save to custom location without -o flag
379
+ - Safe: only approved hunks are written
380
+
381
+ ### 3.2 Edit and Save Options (v0.13.2+)
382
+
383
+ Before applying changes, you can edit files or save to custom locations:
384
+
385
+ #### Edit in $EDITOR
386
+ ```bash
387
+ cdc generate feature -f spec.md
388
+
389
+ # At confirmation:
390
+ Continue? (Y/n/preview/patch/edit/save/help) edit
391
+
392
+ # Opens each file in your $EDITOR (vi, nano, code, etc.)
393
+ # Make manual adjustments, save and close
394
+ # Changes are applied after editing
395
+ ```
396
+
397
+ #### Save to Custom Location
398
+ ```bash
399
+ cdc generate code -d "REST API" -o /tmp/output
400
+
401
+ # At confirmation:
402
+ Continue? (Y/n/preview/patch/edit/save/help) save
403
+
404
+ # Single file:
405
+ Filename: my-custom-name.py # Save to custom filename
406
+
407
+ # Multiple files:
408
+ Directory: /path/to/output/ # Save entire project elsewhere
310
409
  ```
311
410
 
411
+ **Use Cases:**
412
+ - **Edit**: Make manual tweaks before applying (fix formatting, adjust logic)
413
+ - **Save**: Try changes elsewhere before applying to project
414
+ - **Edit + Preview**: Review, edit, then apply with confidence
415
+ - **Save for later**: Generate code, save it, review offline, apply manually
416
+
417
+ **Environment Variables:**
418
+ - `$EDITOR`: Your preferred editor (e.g., `export EDITOR=nano`)
419
+ - Defaults to `vi` if `$EDITOR` not set
420
+
312
421
  ### 4. Developer Commands
313
422
 
314
423
  ```bash
@@ -363,11 +472,16 @@ cdc generate docs mymodule.py --auto-context
363
472
  # Refactor (single file)
364
473
  cdc refactor legacy_code.py
365
474
 
366
- # Refactor multiple files (NEW in v0.11.0)
475
+ # Refactor multiple files (NEW in v0.11.0, enhanced v0.13.0)
367
476
  cdc refactor file1.py file2.py file3.py
368
477
  cdc refactor src/
369
478
  cdc refactor # Auto-detect git changes
370
479
 
480
+ # Multi-file refactoring with preview (NEW in v0.13.0)
481
+ cdc refactor src/ --dry-run # Preview changes
482
+ cdc refactor src/ --yes # Apply without confirmation
483
+ cdc refactor src/ --preview # Review before applying
484
+
371
485
  # Refactor with context (includes related files)
372
486
  cdc refactor legacy_code.py --auto-context
373
487
 
@@ -230,22 +230,28 @@ cdc review -m powerful complex_file.py # More thorough review
230
230
  cdc generate tests -m smart mymodule.py # Balanced approach
231
231
  ```
232
232
 
233
- ### 3. Code Generation Commands (NEW in v0.12.0)
233
+ ### 3. Code Generation Commands (NEW in v0.12.0, enhanced v0.13.0)
234
234
 
235
235
  ```bash
236
- # Generate code from specification
236
+ # Generate code from specification (single file)
237
237
  cdc generate code --description "REST API client for weather data" -o client.py
238
238
  cdc generate code --file spec.md -o implementation.go
239
239
  cdc generate code --pdf requirements.pdf -o app.js
240
240
  cdc generate code --url https://example.com/api-spec -o service.py
241
241
 
242
+ # Generate multi-file projects (NEW in v0.13.0)
243
+ cdc generate code --description "FastAPI REST API with auth" -o my-api/
244
+ cdc generate code --file spec.md -o project/ --dry-run # Preview first
245
+ cdc generate code --file spec.md -o project/ --yes # No confirmation
246
+ # Creates complete directory structure with multiple files
247
+
242
248
  # Generate code with interactive refinement
243
249
  cdc generate code --description "Database ORM" -o orm.py --interactive
244
250
 
245
251
  # Generate code with project context
246
252
  cdc generate code --file spec.md -o service.py --auto-context
247
253
 
248
- # Add features to existing project
254
+ # Add features to existing project (NEW: multi-file output in v0.13.0)
249
255
  cdc generate feature --description "Add user authentication with JWT" src/
250
256
  cdc generate feature --file feature-spec.md
251
257
  cdc generate feature --pdf product-requirements.pdf --preview
@@ -253,11 +259,113 @@ cdc generate feature --url https://example.com/feature-spec
253
259
 
254
260
  # Preview feature changes before applying
255
261
  cdc generate feature --description "Add caching layer" src/ --preview
262
+ cdc generate feature --description "Add REST API" --dry-run # Preview changes
263
+ cdc generate feature --file spec.md --yes # Apply without confirmation
256
264
 
257
265
  # Interactive feature implementation
258
266
  cdc generate feature --description "Add logging" src/ --interactive
267
+
268
+ # Hunk-by-hunk approval (like git add -p) - NEW in v0.13.1
269
+ cdc generate feature -f spec.md
270
+ # At confirmation prompt, type 'patch' to review changes hunk-by-hunk
271
+ # Options: y (yes), n (no), s (skip file), q (quit), help
272
+ ```
273
+
274
+ ### 3.1 Interactive Diff Approval (v0.13.1+)
275
+
276
+ When applying file modifications, you can review and approve changes hunk-by-hunk, similar to `git add -p`:
277
+
278
+ ```bash
279
+ # After generating feature/refactor changes:
280
+ cdc generate feature -f spec.md
281
+
282
+ # At the confirmation prompt:
283
+ Continue? (Y/n/preview/patch/help) patch
284
+
285
+ # For each file:
286
+ File: src/main.py
287
+ Modify file (3 hunk(s))
288
+
289
+ Hunk 1/3:
290
+ [Shows diff with syntax highlighting]
291
+ @@ -10,3 +10,5 @@
292
+ def main():
293
+ - print("old")
294
+ + print("new")
295
+ + logging.info("Started")
296
+
297
+ Apply this hunk? (y/n/s=skip file/q=quit/help) y # Approve this hunk
298
+
299
+ Hunk 2/3:
300
+ [Shows next diff]
301
+ Apply this hunk? (y/n/s=skip file/q=quit/help) n # Skip this hunk
302
+
303
+ Hunk 3/3:
304
+ [Shows final diff]
305
+ Apply this hunk? (y/n/s=skip file/q=quit/help) s # Skip remaining in file
306
+
307
+ # File operations options:
308
+ Create this file? (y/n/s=skip/q=quit) y # For new files
309
+ Delete this file? (y/n/s=skip/q=quit) n # For file deletions
310
+ ```
311
+
312
+ **Options:**
313
+ - `y, yes` - Apply this hunk/file
314
+ - `n, no` - Skip this hunk (keeps original)
315
+ - `s, skip` - Skip remaining hunks in current file
316
+ - `q, quit` - Stop reviewing and apply approved changes so far
317
+ - `edit` - Open files in $EDITOR before applying
318
+ - `save` - Save to custom location
319
+ - `help` - Show help message
320
+
321
+ **Benefits:**
322
+ - Fine-grained control over changes
323
+ - Keep original code for some hunks while applying others
324
+ - Syntax-highlighted diffs for easy review
325
+ - Edit files before applying for manual tweaks
326
+ - Save to custom location without -o flag
327
+ - Safe: only approved hunks are written
328
+
329
+ ### 3.2 Edit and Save Options (v0.13.2+)
330
+
331
+ Before applying changes, you can edit files or save to custom locations:
332
+
333
+ #### Edit in $EDITOR
334
+ ```bash
335
+ cdc generate feature -f spec.md
336
+
337
+ # At confirmation:
338
+ Continue? (Y/n/preview/patch/edit/save/help) edit
339
+
340
+ # Opens each file in your $EDITOR (vi, nano, code, etc.)
341
+ # Make manual adjustments, save and close
342
+ # Changes are applied after editing
343
+ ```
344
+
345
+ #### Save to Custom Location
346
+ ```bash
347
+ cdc generate code -d "REST API" -o /tmp/output
348
+
349
+ # At confirmation:
350
+ Continue? (Y/n/preview/patch/edit/save/help) save
351
+
352
+ # Single file:
353
+ Filename: my-custom-name.py # Save to custom filename
354
+
355
+ # Multiple files:
356
+ Directory: /path/to/output/ # Save entire project elsewhere
259
357
  ```
260
358
 
359
+ **Use Cases:**
360
+ - **Edit**: Make manual tweaks before applying (fix formatting, adjust logic)
361
+ - **Save**: Try changes elsewhere before applying to project
362
+ - **Edit + Preview**: Review, edit, then apply with confidence
363
+ - **Save for later**: Generate code, save it, review offline, apply manually
364
+
365
+ **Environment Variables:**
366
+ - `$EDITOR`: Your preferred editor (e.g., `export EDITOR=nano`)
367
+ - Defaults to `vi` if `$EDITOR` not set
368
+
261
369
  ### 4. Developer Commands
262
370
 
263
371
  ```bash
@@ -312,11 +420,16 @@ cdc generate docs mymodule.py --auto-context
312
420
  # Refactor (single file)
313
421
  cdc refactor legacy_code.py
314
422
 
315
- # Refactor multiple files (NEW in v0.11.0)
423
+ # Refactor multiple files (NEW in v0.11.0, enhanced v0.13.0)
316
424
  cdc refactor file1.py file2.py file3.py
317
425
  cdc refactor src/
318
426
  cdc refactor # Auto-detect git changes
319
427
 
428
+ # Multi-file refactoring with preview (NEW in v0.13.0)
429
+ cdc refactor src/ --dry-run # Preview changes
430
+ cdc refactor src/ --yes # Apply without confirmation
431
+ cdc refactor src/ --preview # Review before applying
432
+
320
433
  # Refactor with context (includes related files)
321
434
  cdc refactor legacy_code.py --auto-context
322
435
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "claude-dev-cli"
7
- version = "0.12.1"
7
+ version = "0.13.3"
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"
@@ -35,6 +35,7 @@ dependencies = [
35
35
  "keyring>=24.0.0",
36
36
  "cryptography>=41.0.0",
37
37
  "pyyaml>=6.0.0",
38
+ "unidiff>=0.7.0",
38
39
  ]
39
40
 
40
41
  [project.optional-dependencies]
@@ -9,7 +9,7 @@ Features:
9
9
  - Interactive and single-shot modes
10
10
  """
11
11
 
12
- __version__ = "0.12.1"
12
+ __version__ = "0.13.3"
13
13
  __author__ = "Julio"
14
14
  __license__ = "MIT"
15
15