tunacode-cli 0.0.13__tar.gz → 0.0.15__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 tunacode-cli might be problematic. Click here for more details.

Files changed (74) hide show
  1. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/PKG-INFO +50 -14
  2. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/README.md +50 -14
  3. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/pyproject.toml +1 -1
  4. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/cli/commands.py +306 -14
  5. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/cli/repl.py +41 -2
  6. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/configuration/defaults.py +1 -0
  7. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/constants.py +1 -1
  8. tunacode_cli-0.0.15/src/tunacode/core/agents/main.py +337 -0
  9. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/core/state.py +10 -2
  10. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/prompts/system.txt +22 -0
  11. tunacode_cli-0.0.15/src/tunacode/tools/grep.py +760 -0
  12. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/tools/read_file.py +15 -10
  13. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/tools/run_command.py +13 -7
  14. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/tools/update_file.py +9 -10
  15. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/tools/write_file.py +8 -9
  16. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode_cli.egg-info/PKG-INFO +50 -14
  17. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode_cli.egg-info/SOURCES.txt +1 -0
  18. tunacode_cli-0.0.13/src/tunacode/core/agents/main.py +0 -121
  19. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/LICENSE +0 -0
  20. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/setup.cfg +0 -0
  21. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/setup.py +0 -0
  22. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/__init__.py +0 -0
  23. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/cli/__init__.py +0 -0
  24. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/cli/main.py +0 -0
  25. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/cli/textual_app.py +0 -0
  26. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/cli/textual_bridge.py +0 -0
  27. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/configuration/__init__.py +0 -0
  28. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/configuration/models.py +0 -0
  29. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/configuration/settings.py +0 -0
  30. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/context.py +0 -0
  31. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/core/__init__.py +0 -0
  32. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/core/agents/__init__.py +0 -0
  33. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/core/setup/__init__.py +0 -0
  34. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/core/setup/agent_setup.py +0 -0
  35. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/core/setup/base.py +0 -0
  36. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/core/setup/config_setup.py +0 -0
  37. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/core/setup/coordinator.py +0 -0
  38. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/core/setup/environment_setup.py +0 -0
  39. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/core/setup/git_safety_setup.py +0 -0
  40. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/core/tool_handler.py +0 -0
  41. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/exceptions.py +0 -0
  42. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/py.typed +0 -0
  43. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/services/__init__.py +0 -0
  44. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/services/mcp.py +0 -0
  45. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/setup.py +0 -0
  46. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/tools/__init__.py +0 -0
  47. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/tools/base.py +0 -0
  48. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/tools/bash.py +0 -0
  49. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/types.py +0 -0
  50. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/ui/__init__.py +0 -0
  51. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/ui/completers.py +0 -0
  52. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/ui/console.py +0 -0
  53. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/ui/constants.py +0 -0
  54. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/ui/decorators.py +0 -0
  55. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/ui/input.py +0 -0
  56. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/ui/keybindings.py +0 -0
  57. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/ui/lexers.py +0 -0
  58. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/ui/output.py +0 -0
  59. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/ui/panels.py +0 -0
  60. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/ui/prompt_manager.py +0 -0
  61. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/ui/tool_ui.py +0 -0
  62. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/ui/validators.py +0 -0
  63. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/utils/__init__.py +0 -0
  64. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/utils/bm25.py +0 -0
  65. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/utils/diff_utils.py +0 -0
  66. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/utils/file_utils.py +0 -0
  67. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/utils/ripgrep.py +0 -0
  68. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/utils/system.py +0 -0
  69. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/utils/text_utils.py +0 -0
  70. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode/utils/user_configuration.py +0 -0
  71. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode_cli.egg-info/dependency_links.txt +0 -0
  72. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode_cli.egg-info/entry_points.txt +0 -0
  73. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode_cli.egg-info/requires.txt +0 -0
  74. {tunacode_cli-0.0.13 → tunacode_cli-0.0.15}/src/tunacode_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tunacode-cli
3
- Version: 0.0.13
3
+ Version: 0.0.15
4
4
  Summary: Your agentic CLI developer.
5
5
  Author-email: larock22 <noreply@github.com>
6
6
  License-Expression: MIT
@@ -58,13 +58,14 @@ Dynamic: license-file
58
58
 
59
59
  ---
60
60
 
61
- ### Recent Updates
61
+ ### Recent Updates (v0.0.14)
62
62
 
63
- - **Simplified Setup**: Direct CLI configuration with `--model` and `--key` flags
64
- - **Enhanced Safety**: Removed `/undo` command in favor of git-based workflows
65
- - **Cleaner Codebase**: Removed `/init` command and automatic TUNACODE.md generation
66
- - **Better Onboarding**: No model validation - trust users to provide correct model names
67
- - **Unified Model Format**: All models use `provider:model-name` format
63
+ - **🔧 JSON Tool Parsing Fallback**: Automatic recovery when API providers fail with structured tool calling
64
+ - **⚡ Enhanced Reliability**: Fixed parameter naming issues that caused tool schema errors
65
+ - **🔄 Configuration Management**: New `/refresh` command to reload config without restart
66
+ - **🧠 Improved ReAct Reasoning**: Enhanced iteration limits (now defaults to 20) and better thought processing
67
+ - **🛠️ New Debug Commands**: `/parsetools` for manual JSON parsing, `/iterations` for controlling reasoning depth
68
+ - **📊 Better Error Recovery**: Multiple fallback mechanisms for various failure scenarios
68
69
 
69
70
  ### Core Features
70
71
 
@@ -75,17 +76,18 @@ Dynamic: license-file
75
76
  ### **Multi-Provider Support**
76
77
 
77
78
  - Anthropic Claude
78
- - OpenAI GPT
79
+ - OpenAI GPT
79
80
  - Google Gemini
80
81
  - OpenRouter (100+ models)
81
82
  - Any OpenAI-compatible API
82
83
 
83
84
  ### **Developer Tools**
84
85
 
85
- - 4 core tools: read_file, write_file, update_file, run_command
86
+ - 6 core tools: bash, grep, read_file, write_file, update_file, run_command
86
87
  - MCP (Model Context Protocol) support
87
88
  - File operation confirmations with diffs
88
89
  - Per-project context guides (TUNACODE.md)
90
+ - JSON tool parsing fallback for API compatibility
89
91
 
90
92
  </td>
91
93
  <td width="50%">
@@ -104,6 +106,7 @@ Dynamic: license-file
104
106
  - Async throughout
105
107
  - Modular command system
106
108
  - Rich UI with syntax highlighting
109
+ - ReAct reasoning patterns
107
110
 
108
111
  </td>
109
112
  </tr>
@@ -268,6 +271,8 @@ Learn more at [modelcontextprotocol.io](https://modelcontextprotocol.io/)
268
271
 
269
272
  ## Commands Reference
270
273
 
274
+ ### Core Commands
275
+
271
276
  | Command | Description |
272
277
  | -------------------------------- | -------------------------------- |
273
278
  | `/help` | Show available commands |
@@ -281,13 +286,43 @@ Learn more at [modelcontextprotocol.io](https://modelcontextprotocol.io/)
281
286
  | `/dump` | Show message history (debug) |
282
287
  | `exit` | Exit application |
283
288
 
289
+ ### Debug & Recovery Commands
290
+
291
+ | Command | Description |
292
+ | -------------------------------- | -------------------------------- |
293
+ | `/thoughts` | Toggle ReAct thought display |
294
+ | `/iterations <1-50>` | Set max reasoning iterations |
295
+ | `/parsetools` | Parse JSON tool calls manually |
296
+ | `/fix` | Fix orphaned tool calls |
297
+ | `/refresh` | Reload configuration from defaults |
298
+
299
+ ---
300
+
301
+ ## Reliability Features
302
+
303
+ ### JSON Tool Parsing Fallback
304
+
305
+ TunaCode automatically handles API provider failures with robust JSON parsing:
306
+
307
+ - **Automatic Recovery**: When structured tool calling fails, TunaCode parses JSON from text responses
308
+ - **Multiple Formats**: Supports inline JSON, code blocks, and complex nested structures
309
+ - **Manual Recovery**: Use `/parsetools` when automatic parsing needs assistance
310
+ - **Visual Feedback**: See `🔧 Recovered using JSON tool parsing` messages during fallback
311
+
312
+ ### Enhanced Error Handling
313
+
314
+ - **Tool Schema Fixes**: Consistent parameter naming across all tools
315
+ - **Orphaned Tool Call Recovery**: Automatic cleanup with `/fix` command
316
+ - **Configuration Refresh**: Update settings without restart using `/refresh`
317
+ - **ReAct Reasoning**: Configurable iteration limits for complex problem solving
318
+
284
319
  ---
285
320
 
286
321
  ## Customization
287
322
 
288
323
  ### Project Guides
289
324
 
290
- Create a `TUNACODE.md` file your project root to customize TunaCode's behavior:
325
+ Create a `TUNACODE.md` file in your project root to customize TunaCode's behavior:
291
326
 
292
327
  ```markdown
293
328
  # Project Guide
@@ -337,13 +372,14 @@ src/tunacode/
337
372
  │ └── tool_handler.py # Tool execution and validation
338
373
 
339
374
  ├── services/ # External Services
340
- ├── mcp.py # Model Context Protocol integration
341
- │ └── undo_service.py # Undo operations (beta)
375
+ └── mcp.py # Model Context Protocol integration
342
376
 
343
377
  ├── tools/ # AI Agent Tools
344
378
  │ ├── base.py # Tool base classes
379
+ │ ├── bash.py # Enhanced shell command execution
380
+ │ ├── grep.py # Parallel content search tool
345
381
  │ ├── read_file.py # File reading tool
346
- │ ├── run_command.py # Command execution tool
382
+ │ ├── run_command.py # Basic command execution tool
347
383
  │ ├── update_file.py # File modification tool
348
384
  │ └── write_file.py # File creation tool
349
385
 
@@ -360,7 +396,7 @@ src/tunacode/
360
396
  │ └── validators.py # Input validation
361
397
 
362
398
  ├── utils/ # Utility Functions
363
- │ ├── bm25.py # BM25 search algorithm(beta)
399
+ │ ├── bm25.py # BM25 search algorithm (beta)
364
400
  │ ├── diff_utils.py # Diff generation and formatting
365
401
  │ ├── file_utils.py # File system operations
366
402
  │ ├── ripgrep.py # Code search utilities
@@ -22,13 +22,14 @@
22
22
 
23
23
  ---
24
24
 
25
- ### Recent Updates
25
+ ### Recent Updates (v0.0.14)
26
26
 
27
- - **Simplified Setup**: Direct CLI configuration with `--model` and `--key` flags
28
- - **Enhanced Safety**: Removed `/undo` command in favor of git-based workflows
29
- - **Cleaner Codebase**: Removed `/init` command and automatic TUNACODE.md generation
30
- - **Better Onboarding**: No model validation - trust users to provide correct model names
31
- - **Unified Model Format**: All models use `provider:model-name` format
27
+ - **🔧 JSON Tool Parsing Fallback**: Automatic recovery when API providers fail with structured tool calling
28
+ - **⚡ Enhanced Reliability**: Fixed parameter naming issues that caused tool schema errors
29
+ - **🔄 Configuration Management**: New `/refresh` command to reload config without restart
30
+ - **🧠 Improved ReAct Reasoning**: Enhanced iteration limits (now defaults to 20) and better thought processing
31
+ - **🛠️ New Debug Commands**: `/parsetools` for manual JSON parsing, `/iterations` for controlling reasoning depth
32
+ - **📊 Better Error Recovery**: Multiple fallback mechanisms for various failure scenarios
32
33
 
33
34
  ### Core Features
34
35
 
@@ -39,17 +40,18 @@
39
40
  ### **Multi-Provider Support**
40
41
 
41
42
  - Anthropic Claude
42
- - OpenAI GPT
43
+ - OpenAI GPT
43
44
  - Google Gemini
44
45
  - OpenRouter (100+ models)
45
46
  - Any OpenAI-compatible API
46
47
 
47
48
  ### **Developer Tools**
48
49
 
49
- - 4 core tools: read_file, write_file, update_file, run_command
50
+ - 6 core tools: bash, grep, read_file, write_file, update_file, run_command
50
51
  - MCP (Model Context Protocol) support
51
52
  - File operation confirmations with diffs
52
53
  - Per-project context guides (TUNACODE.md)
54
+ - JSON tool parsing fallback for API compatibility
53
55
 
54
56
  </td>
55
57
  <td width="50%">
@@ -68,6 +70,7 @@
68
70
  - Async throughout
69
71
  - Modular command system
70
72
  - Rich UI with syntax highlighting
73
+ - ReAct reasoning patterns
71
74
 
72
75
  </td>
73
76
  </tr>
@@ -232,6 +235,8 @@ Learn more at [modelcontextprotocol.io](https://modelcontextprotocol.io/)
232
235
 
233
236
  ## Commands Reference
234
237
 
238
+ ### Core Commands
239
+
235
240
  | Command | Description |
236
241
  | -------------------------------- | -------------------------------- |
237
242
  | `/help` | Show available commands |
@@ -245,13 +250,43 @@ Learn more at [modelcontextprotocol.io](https://modelcontextprotocol.io/)
245
250
  | `/dump` | Show message history (debug) |
246
251
  | `exit` | Exit application |
247
252
 
253
+ ### Debug & Recovery Commands
254
+
255
+ | Command | Description |
256
+ | -------------------------------- | -------------------------------- |
257
+ | `/thoughts` | Toggle ReAct thought display |
258
+ | `/iterations <1-50>` | Set max reasoning iterations |
259
+ | `/parsetools` | Parse JSON tool calls manually |
260
+ | `/fix` | Fix orphaned tool calls |
261
+ | `/refresh` | Reload configuration from defaults |
262
+
263
+ ---
264
+
265
+ ## Reliability Features
266
+
267
+ ### JSON Tool Parsing Fallback
268
+
269
+ TunaCode automatically handles API provider failures with robust JSON parsing:
270
+
271
+ - **Automatic Recovery**: When structured tool calling fails, TunaCode parses JSON from text responses
272
+ - **Multiple Formats**: Supports inline JSON, code blocks, and complex nested structures
273
+ - **Manual Recovery**: Use `/parsetools` when automatic parsing needs assistance
274
+ - **Visual Feedback**: See `🔧 Recovered using JSON tool parsing` messages during fallback
275
+
276
+ ### Enhanced Error Handling
277
+
278
+ - **Tool Schema Fixes**: Consistent parameter naming across all tools
279
+ - **Orphaned Tool Call Recovery**: Automatic cleanup with `/fix` command
280
+ - **Configuration Refresh**: Update settings without restart using `/refresh`
281
+ - **ReAct Reasoning**: Configurable iteration limits for complex problem solving
282
+
248
283
  ---
249
284
 
250
285
  ## Customization
251
286
 
252
287
  ### Project Guides
253
288
 
254
- Create a `TUNACODE.md` file your project root to customize TunaCode's behavior:
289
+ Create a `TUNACODE.md` file in your project root to customize TunaCode's behavior:
255
290
 
256
291
  ```markdown
257
292
  # Project Guide
@@ -301,13 +336,14 @@ src/tunacode/
301
336
  │ └── tool_handler.py # Tool execution and validation
302
337
 
303
338
  ├── services/ # External Services
304
- ├── mcp.py # Model Context Protocol integration
305
- │ └── undo_service.py # Undo operations (beta)
339
+ └── mcp.py # Model Context Protocol integration
306
340
 
307
341
  ├── tools/ # AI Agent Tools
308
342
  │ ├── base.py # Tool base classes
343
+ │ ├── bash.py # Enhanced shell command execution
344
+ │ ├── grep.py # Parallel content search tool
309
345
  │ ├── read_file.py # File reading tool
310
- │ ├── run_command.py # Command execution tool
346
+ │ ├── run_command.py # Basic command execution tool
311
347
  │ ├── update_file.py # File modification tool
312
348
  │ └── write_file.py # File creation tool
313
349
 
@@ -324,7 +360,7 @@ src/tunacode/
324
360
  │ └── validators.py # Input validation
325
361
 
326
362
  ├── utils/ # Utility Functions
327
- │ ├── bm25.py # BM25 search algorithm(beta)
363
+ │ ├── bm25.py # BM25 search algorithm (beta)
328
364
  │ ├── diff_utils.py # Diff generation and formatting
329
365
  │ ├── file_utils.py # File system operations
330
366
  │ ├── ripgrep.py # Code search utilities
@@ -402,4 +438,4 @@ MIT License - see [LICENSE](LICENSE) file for details.
402
438
 
403
439
  ## Acknowledgments
404
440
 
405
- TunaCode is a fork of [sidekick-cli](https://github.com/geekforbrains/sidekick-cli). Special thanks to the sidekick-cli team for creating the foundation that made TunaCode possible.
441
+ TunaCode is a fork of [sidekick-cli](https://github.com/geekforbrains/sidekick-cli). Special thanks to the sidekick-cli team for creating the foundation that made TunaCode possible.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tunacode-cli"
7
- version = "0.0.13"
7
+ version = "0.0.15"
8
8
  description = "Your agentic CLI developer."
9
9
  keywords = ["cli", "agent", "development", "automation"]
10
10
  readme = "README.md"