tunacode-cli 0.0.5__py3-none-any.whl → 0.0.6__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 tunacode-cli might be problematic. Click here for more details.

Files changed (34) hide show
  1. tunacode/cli/commands.py +91 -33
  2. tunacode/cli/model_selector.py +178 -0
  3. tunacode/cli/repl.py +11 -10
  4. tunacode/configuration/models.py +11 -1
  5. tunacode/constants.py +10 -10
  6. tunacode/context.py +1 -3
  7. tunacode/core/agents/main.py +52 -94
  8. tunacode/core/agents/tinyagent_main.py +171 -0
  9. tunacode/core/setup/git_safety_setup.py +39 -51
  10. tunacode/core/setup/optimized_coordinator.py +73 -0
  11. tunacode/exceptions.py +0 -2
  12. tunacode/services/enhanced_undo_service.py +322 -0
  13. tunacode/services/project_undo_service.py +311 -0
  14. tunacode/services/undo_service.py +13 -16
  15. tunacode/tools/base.py +11 -20
  16. tunacode/tools/tinyagent_tools.py +103 -0
  17. tunacode/tools/update_file.py +24 -14
  18. tunacode/tools/write_file.py +9 -7
  19. tunacode/ui/completers.py +98 -33
  20. tunacode/ui/input.py +8 -7
  21. tunacode/ui/keybindings.py +1 -3
  22. tunacode/ui/lexers.py +16 -17
  23. tunacode/ui/output.py +9 -3
  24. tunacode/ui/panels.py +4 -4
  25. tunacode/ui/prompt_manager.py +6 -4
  26. tunacode/utils/lazy_imports.py +59 -0
  27. tunacode/utils/regex_cache.py +33 -0
  28. tunacode_cli-0.0.6.dist-info/METADATA +235 -0
  29. {tunacode_cli-0.0.5.dist-info → tunacode_cli-0.0.6.dist-info}/RECORD +33 -25
  30. tunacode_cli-0.0.5.dist-info/METADATA +0 -247
  31. {tunacode_cli-0.0.5.dist-info → tunacode_cli-0.0.6.dist-info}/WHEEL +0 -0
  32. {tunacode_cli-0.0.5.dist-info → tunacode_cli-0.0.6.dist-info}/entry_points.txt +0 -0
  33. {tunacode_cli-0.0.5.dist-info → tunacode_cli-0.0.6.dist-info}/licenses/LICENSE +0 -0
  34. {tunacode_cli-0.0.5.dist-info → tunacode_cli-0.0.6.dist-info}/top_level.txt +0 -0
@@ -42,12 +42,14 @@ class PromptManager:
42
42
  self.state_manager = state_manager
43
43
  self._temp_sessions = {} # For when no state manager is available
44
44
  self._style = self._create_style()
45
-
45
+
46
46
  def _create_style(self) -> Style:
47
47
  """Create the style for the prompt with file reference highlighting."""
48
- return Style.from_dict({
49
- 'file-reference': UI_COLORS.get('file_ref', 'light_blue'),
50
- })
48
+ return Style.from_dict(
49
+ {
50
+ "file-reference": UI_COLORS.get("file_ref", "light_blue"),
51
+ }
52
+ )
51
53
 
52
54
  def get_session(self, session_key: str, config: PromptConfig) -> PromptSession:
53
55
  """Get or create a prompt session.
@@ -0,0 +1,59 @@
1
+ """Lazy imports for heavy modules to improve startup time."""
2
+
3
+ import sys
4
+ from typing import TYPE_CHECKING
5
+
6
+ if TYPE_CHECKING:
7
+ # For type checking only
8
+ import prompt_toolkit # noqa: F401
9
+ import rich # noqa: F401
10
+ from prompt_toolkit import PromptSession # noqa: F401
11
+ from prompt_toolkit.completion import Completer # noqa: F401
12
+ from rich.console import Console # noqa: F401
13
+ from rich.markdown import Markdown # noqa: F401
14
+ from rich.panel import Panel # noqa: F401
15
+ from rich.table import Table # noqa: F401
16
+
17
+
18
+ def lazy_import(module_name: str):
19
+ """Lazy import a module."""
20
+ if module_name not in sys.modules:
21
+ __import__(module_name)
22
+ return sys.modules[module_name]
23
+
24
+
25
+ # Lazy accessors
26
+ def get_rich():
27
+ """Get rich module lazily."""
28
+ return lazy_import("rich")
29
+
30
+
31
+ def get_rich_console():
32
+ """Get rich console lazily."""
33
+ rich_console = lazy_import("rich.console")
34
+ return rich_console.Console
35
+
36
+
37
+ def get_rich_table():
38
+ """Get rich table lazily."""
39
+ return lazy_import("rich.table").Table
40
+
41
+
42
+ def get_rich_panel():
43
+ """Get rich panel lazily."""
44
+ return lazy_import("rich.panel").Panel
45
+
46
+
47
+ def get_rich_markdown():
48
+ """Get rich markdown lazily."""
49
+ return lazy_import("rich.markdown").Markdown
50
+
51
+
52
+ def get_prompt_toolkit():
53
+ """Get prompt_toolkit lazily."""
54
+ return lazy_import("prompt_toolkit")
55
+
56
+
57
+ def get_prompt_session():
58
+ """Get PromptSession lazily."""
59
+ return lazy_import("prompt_toolkit").PromptSession
@@ -0,0 +1,33 @@
1
+ """Pre-compiled regex patterns for better performance."""
2
+
3
+ import re
4
+
5
+ # Command patterns
6
+ MODEL_COMMAND_PATTERN = re.compile(r"(?:^|\n)\s*(?:/model|/m)\s+\S*$")
7
+ COMMAND_START_PATTERN = re.compile(r"^/\w+")
8
+
9
+ # File reference patterns
10
+ FILE_REF_PATTERN = re.compile(r"@([^\s]+)")
11
+ FILE_PATH_PATTERN = re.compile(r"^[a-zA-Z0-9_\-./]+$")
12
+
13
+ # Code patterns
14
+ IMPORT_PATTERN = re.compile(r"^\s*(?:from|import)\s+\S+")
15
+ FUNCTION_DEF_PATTERN = re.compile(r"^\s*def\s+(\w+)\s*\(")
16
+ CLASS_DEF_PATTERN = re.compile(r"^\s*class\s+(\w+)")
17
+
18
+ # Environment variable patterns
19
+ ENV_VAR_PATTERN = re.compile(r"\$\{(\w+)(?::([^}]*))?\}")
20
+ API_KEY_PATTERN = re.compile(r"_API_KEY$")
21
+
22
+ # Common text patterns
23
+ WHITESPACE_PATTERN = re.compile(r"\s+")
24
+ WORD_BOUNDARY_PATTERN = re.compile(r"\b\w+\b")
25
+ LINE_SPLIT_PATTERN = re.compile(r"\r?\n")
26
+
27
+ # Tool output patterns
28
+ ANSI_ESCAPE_PATTERN = re.compile(r"\x1b\[[0-9;]*m")
29
+ ERROR_PATTERN = re.compile(r"(?i)(error|exception|failed|failure):\s*(.+)")
30
+
31
+ # Model name patterns
32
+ MODEL_PROVIDER_PATTERN = re.compile(r"^(\w+):(.+)$")
33
+ OPENROUTER_MODEL_PATTERN = re.compile(r"^openrouter:(.+)$")
@@ -0,0 +1,235 @@
1
+ Metadata-Version: 2.4
2
+ Name: tunacode-cli
3
+ Version: 0.0.6
4
+ Summary: Your agentic CLI developer.
5
+ Author-email: larock22 <noreply@github.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/larock22/tunacode
8
+ Project-URL: Repository, https://github.com/larock22/tunacode
9
+ Keywords: cli,agent,development,automation
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Topic :: Software Development
18
+ Classifier: Topic :: Utilities
19
+ Requires-Python: >=3.10
20
+ Description-Content-Type: text/markdown
21
+ License-File: LICENSE
22
+ Requires-Dist: prompt_toolkit==3.0.51
23
+ Requires-Dist: tiny_agent_os>=0.1.0
24
+ Requires-Dist: pygments==2.19.1
25
+ Requires-Dist: rich==14.0.0
26
+ Requires-Dist: typer==0.15.3
27
+ Requires-Dist: pyyaml>=6.0
28
+ Provides-Extra: dev
29
+ Requires-Dist: build; extra == "dev"
30
+ Requires-Dist: black; extra == "dev"
31
+ Requires-Dist: flake8; extra == "dev"
32
+ Requires-Dist: isort; extra == "dev"
33
+ Requires-Dist: pytest; extra == "dev"
34
+ Requires-Dist: pytest-cov; extra == "dev"
35
+ Dynamic: license-file
36
+
37
+ # 🐟 TunaCode
38
+
39
+ [![PyPI version](https://badge.fury.io/py/tunacode-cli.svg)](https://badge.fury.io/py/tunacode-cli)
40
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
41
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
42
+
43
+ ![Chuna](chuna.jpg_medium)
44
+
45
+ **Your agentic CLI developer** - An open-source alternative to Claude Code, Copilot, and Cursor with multi-provider LLM support.
46
+
47
+
48
+ ## ✨ What's New (v0.1.0)
49
+
50
+ - 🚀 **60% faster startup** with lazy loading and optimizations
51
+ - 🤖 **TinyAgent integration** for robust ReAct-based interactions
52
+ - 🛡️ **Three-layer undo system** with automatic failover
53
+ - 📊 **Enhanced model selection** with fuzzy matching and cost indicators
54
+ - 📁 **Project-local backups** in `.tunacode/` directory
55
+
56
+ ## 🎯 Features
57
+
58
+ ### Core Capabilities
59
+ - **🔓 No vendor lock-in** - Use any LLM provider (OpenAI, Anthropic, Google, 100+ via OpenRouter)
60
+ - **⚡ Fast & responsive** - Optimized for speed with <5ms operation overhead
61
+ - **🛡️ Safe operations** - Three-layer undo system ensures nothing is lost
62
+ - **🎨 Modern CLI** - Beautiful terminal UI with syntax highlighting
63
+ - **💰 Cost tracking** - Monitor tokens and costs per session
64
+
65
+ ### Developer Experience
66
+ - **🔄 Hot model switching** - Change models mid-conversation with `/model`
67
+ - **📝 Project guides** - Customize behavior with `TUNACODE.md` files
68
+ - **🚀 YOLO mode** - Skip confirmations when you're confident
69
+ - **🔧 MCP support** - Extend with Model Context Protocol servers
70
+ - **📊 Git integration** - Automatic branch creation and undo support
71
+
72
+ ## 🚀 Quick Start
73
+
74
+ ```bash
75
+ # Install from PyPI
76
+ pip install tunacode-cli
77
+
78
+ # Run setup (first time only)
79
+ tunacode
80
+
81
+ # Start coding!
82
+ tunacode
83
+ > Help me refactor this codebase to use async/await
84
+ ```
85
+
86
+ ## 📋 Commands
87
+
88
+ | Command | Description | Example |
89
+ |---------|-------------|---------|
90
+ | `/model` or `/m` | List and switch models | `/model 3` or `/m opus` |
91
+ | `/yolo` | Toggle confirmation skipping | `/yolo` |
92
+ | `/undo` | Undo last file operation | `/undo` |
93
+ | `/clear` | Clear conversation history | `/clear` |
94
+ | `/branch <name>` | Create new git branch | `/branch feature/auth` |
95
+ | `/compact` | Summarize and trim history | `/compact` |
96
+ | `/help` | Show all commands | `/help` |
97
+
98
+ ## 🔧 Configuration
99
+
100
+ Configuration is stored in `~/.config/tunacode.json`:
101
+
102
+ ```json
103
+ {
104
+ "default_model": "openai:gpt-4o",
105
+ "env": {
106
+ "OPENAI_API_KEY": "sk-...",
107
+ "ANTHROPIC_API_KEY": "sk-ant-...",
108
+ "OPENROUTER_API_KEY": "sk-or-..."
109
+ },
110
+ "mcpServers": {
111
+ "github": {
112
+ "command": "npx",
113
+ "args": ["-y", "@modelcontextprotocol/server-github"],
114
+ "env": {"GITHUB_PERSONAL_ACCESS_TOKEN": "..."}
115
+ }
116
+ }
117
+ }
118
+ ```
119
+
120
+ ### Using OpenRouter (100+ Models)
121
+
122
+ ```bash
123
+ # Add your OpenRouter API key to config
124
+ # Then run with OpenRouter base URL:
125
+ OPENAI_BASE_URL="https://openrouter.ai/api/v1" tunacode
126
+
127
+ # Use any OpenRouter model:
128
+ /model openrouter:anthropic/claude-3-opus
129
+ /model openrouter:mistralai/devstral-small
130
+ /model openrouter:openai/gpt-4.1
131
+ ```
132
+
133
+ ## 🛡️ Undo System
134
+
135
+ TunaCode provides **three layers of protection** for your files:
136
+
137
+ 1. **Git commits** - Primary undo mechanism (if available)
138
+ 2. **Operation log** - Tracks changes with content (<100KB files)
139
+ 3. **File backups** - Physical copies in `.tunacode/backups/`
140
+
141
+ All undo data is stored locally in your project:
142
+
143
+ ```
144
+ your-project/
145
+ └── .tunacode/ # Auto-created, gitignored
146
+ ├── backups/ # Timestamped file copies
147
+ ├── operations.jsonl # Change history
148
+ └── README.md # Explains the directory
149
+ ```
150
+
151
+ ## 🎯 Project Customization
152
+
153
+ Create a `TUNACODE.md` file in your project root:
154
+
155
+ ```markdown
156
+ # Project Guidelines for TunaCode
157
+
158
+ ## Tech Stack
159
+ - Next.js 14 with App Router
160
+ - TypeScript with strict mode
161
+ - Tailwind CSS for styling
162
+
163
+ ## Conventions
164
+ - Use arrow functions for components
165
+ - Prefer server components where possible
166
+ - Follow conventional commits
167
+
168
+ ## Commands
169
+ - `npm run dev` - Start development
170
+ - `npm test` - Run tests
171
+ ```
172
+
173
+ ## ⚡ Performance
174
+
175
+ TunaCode is optimized for speed:
176
+ - **Startup time**: ~0.5-0.8 seconds
177
+ - **Model switching**: ~100ms
178
+ - **File operations**: ~5ms overhead
179
+ - **API calls**: Connection pooling enabled
180
+
181
+ ## 🔧 Advanced Usage
182
+
183
+ ### Environment Variables
184
+ ```bash
185
+ # Use different base URLs
186
+ OPENAI_BASE_URL="https://openrouter.ai/api/v1" tunacode
187
+
188
+ # Disable undo system
189
+ TUNACODE_NO_UNDO=1 tunacode
190
+
191
+ # Set default model
192
+ TUNACODE_MODEL="anthropic:claude-3-opus" tunacode
193
+ ```
194
+
195
+ ### MCP Servers
196
+ Extend TunaCode with Model Context Protocol servers for web fetching, database access, and more. See [modelcontextprotocol.io](https://modelcontextprotocol.io/) for available servers.
197
+
198
+ ## 🤝 Contributing
199
+
200
+ We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
201
+
202
+ ```bash
203
+ # Setup development environment
204
+ git clone https://github.com/larock22/tunacode
205
+ cd tunacode
206
+ pip install -e ".[dev]"
207
+
208
+ # Run tests
209
+ make test
210
+
211
+ # Lint code
212
+ make lint
213
+ ```
214
+
215
+ ## 📚 Documentation
216
+
217
+ - [Architecture Overview](docs/architecture.md)
218
+ - [API Integration](API_CALL_FLOW.md)
219
+ - [Undo System Design](UNDO_SYSTEM_DESIGN.md)
220
+ - [Performance Guide](PERFORMANCE_OPTIMIZATIONS.md)
221
+
222
+ ## 🙏 Acknowledgments
223
+
224
+ TunaCode is built on the foundation of [sidekick-cli](https://github.com/geekforbrains/sidekick-cli). Special thanks to:
225
+ - The sidekick-cli team for the original codebase
226
+ - [TinyAgent](https://github.com/alchemiststudiosDOTai/tinyAgent) for the robust agent framework
227
+ - The open-source community for feedback and contributions
228
+
229
+ ## 📄 License
230
+
231
+ MIT License - see [LICENSE](LICENSE) for details.
232
+
233
+ ---
234
+
235
+ **Note**: TunaCode is in active development. Please [report issues](https://github.com/larock22/tunacode/issues) or share feedback!
@@ -1,65 +1,73 @@
1
1
  tunacode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- tunacode/constants.py,sha256=eht1b04PEbz2SPJL4BL1NkWTrQblvzdCws1bPPMumco,4249
3
- tunacode/context.py,sha256=0ttsxxLAyD4pSoxw7S-pyzor0JUkhOFZh96aAf4Kqsg,2634
4
- tunacode/exceptions.py,sha256=RFUH8wOsWEvSPGIYM2exr4t47YkEyZt4Fr-DfTo6_JY,2647
2
+ tunacode/constants.py,sha256=6QxZ_VpAzjWSx5-tndEUjTeUVSrNSTAlWSRuboqr-DQ,4218
3
+ tunacode/context.py,sha256=6sterdRvPOyG3LU0nEAXpBsEPZbO3qtPyTlJBi-_VXE,2612
4
+ tunacode/exceptions.py,sha256=_Dyj6cC0868dMABekdQHXCg5XhucJumbGUMXaSDzgB4,2645
5
5
  tunacode/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  tunacode/setup.py,sha256=KCNhnu8FY5bFRqR0JMIh22xVakCC97kchmyGsUGUaJ4,1811
7
7
  tunacode/types.py,sha256=5mMJDgFqVcKzhtHh9unPISBFqkeNje6KISGUpRkqRjY,7146
8
8
  tunacode/cli/__init__.py,sha256=zgs0UbAck8hfvhYsWhWOfBe5oK09ug2De1r4RuQZREA,55
9
- tunacode/cli/commands.py,sha256=911tz2e13ljTVlY5DR44qt8aeyTQo4dF4H9BoziRMtA,20732
9
+ tunacode/cli/commands.py,sha256=IHUza0gJUrN30sUHK9gU6-cSRV0TufViBU8qq0yzYbI,22979
10
10
  tunacode/cli/main.py,sha256=5_CXYtzN-Mc3nOv2Xpk6yfnV4d2SOgA9ENyTCe0cYYw,1226
11
- tunacode/cli/repl.py,sha256=7g2c5M10bMsSmsomTIiR8bPlUAaqp83hybuVZdwT5kM,8789
11
+ tunacode/cli/model_selector.py,sha256=EO3GY_YM6pByn4IuYYNn5bKQUCz6vaObFw7clJaJQD8,6190
12
+ tunacode/cli/repl.py,sha256=-KvGMyYQk4WslSkGk0MVOUCB15DEp0BSPVWGj4TIZlo,8864
12
13
  tunacode/configuration/__init__.py,sha256=MbVXy8bGu0yKehzgdgZ_mfWlYGvIdb1dY2Ly75nfuPE,17
13
14
  tunacode/configuration/defaults.py,sha256=9fR_Wydc85fU5LN5LlgRfW6geZNPNFMqKRVLN2v_TQ8,694
14
- tunacode/configuration/models.py,sha256=BVNiF4eAnIMIq1Wo6gWDrCpVwqJxiPWQYbzlUSgThDA,3626
15
+ tunacode/configuration/models.py,sha256=hcpO_Z0fy6kVf2xjv-Azs2PMQE-iKwxIQhpi2KuvTMs,3944
15
16
  tunacode/configuration/settings.py,sha256=0HqwEFkpGqPtF-h0sAIBHFXTlJQ_KtelD_s-z2XDSak,992
16
17
  tunacode/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
18
  tunacode/core/state.py,sha256=0U_WU92yn5EQ27BLlHIkNIJJqjLMNHKNYSoba1rQqbQ,1376
18
19
  tunacode/core/tool_handler.py,sha256=OKx7jM8pml6pSEnoARu33_uBY8awJBqvhbVeBn6T4ow,1804
19
20
  tunacode/core/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- tunacode/core/agents/main.py,sha256=ZGB-EUQ7ow-m3ohSAmfPZ5UN9XC2Gbz40rKjsZsWwrA,4669
21
+ tunacode/core/agents/main.py,sha256=zsfSmUUHNFfEz9ludq9CZ13qaGJn91TrOyu1Pha_3-M,2339
22
+ tunacode/core/agents/tinyagent_main.py,sha256=Yk0Fc_MKGJQqo-MIVGk8Q30Jnx4lumtF59O-eu_vuzw,5785
21
23
  tunacode/core/setup/__init__.py,sha256=jlveyriTXRcnoBLU6_TJ7Z-3E6EXjT9L5GD1vW4dei0,427
22
24
  tunacode/core/setup/agent_setup.py,sha256=k1bmQ21ue17_zZsWlhIfc7ZWN6vZtmOgKMMzR4Xu9-k,1410
23
25
  tunacode/core/setup/base.py,sha256=x9uYOITulrf4faP70NPTNBPb-wW1ZJGmcjAe0Sk5slk,961
24
26
  tunacode/core/setup/config_setup.py,sha256=1eDS8iIG9z_BvrmeL8d9QUEBtPXSjOcrNu-2vHtvSFk,7474
25
27
  tunacode/core/setup/coordinator.py,sha256=pT1mI24Kllo2H6Hjb-uULLsA1E3X3BqQB7nSGe70SRw,1598
26
28
  tunacode/core/setup/environment_setup.py,sha256=u6Anb9uDicmdMA_9xLkP0j2uoiVY16ojsA7XnFz--yQ,2234
27
- tunacode/core/setup/git_safety_setup.py,sha256=1NuzSASi0b69wQRpcOgINKklGnq34Xh3itm_PEpjDus,7238
29
+ tunacode/core/setup/git_safety_setup.py,sha256=43NqLHxUxzG5GAI0lgtU3cyIoV2izfEEe8zWig_GosE,6910
30
+ tunacode/core/setup/optimized_coordinator.py,sha256=pRfX0AUjBfPE8jdl7lNJwnnTOEX4p1aBdWT92DGhgNY,2936
28
31
  tunacode/core/setup/undo_setup.py,sha256=uHy7YWXPnxQ-b_36SNKtMZNyDR_u-p4OPDARHAgp6Lo,1179
29
32
  tunacode/prompts/system.txt,sha256=freAiukJH4PN-fKRWBdTogEak7BsZMgwdyWkxQtY-X4,3194
30
33
  tunacode/services/__init__.py,sha256=w_E8QK6RnvKSvU866eDe8BCRV26rAm4d3R-Yg06OWCU,19
34
+ tunacode/services/enhanced_undo_service.py,sha256=_HGY0v7uwXajelElhbQGij2oKhIol5NxMzop841XJxY,10303
31
35
  tunacode/services/mcp.py,sha256=R48X73KQjQ9vwhBrtbWHSBl-4K99QXmbIhh5J_1Gezo,3046
32
- tunacode/services/undo_service.py,sha256=lb2IlSv7bMDOOz72iVAiAy-0U49T1MsCO9bhhNhdzww,7783
36
+ tunacode/services/project_undo_service.py,sha256=slZPqN4LYyiT6vSKaLcsM5eOceIrZ4UPM-ce9nJZ1AQ,10648
37
+ tunacode/services/undo_service.py,sha256=CSjpwb53n9U5cVzPxRnxG6RWiD8motwwNb9Mn0Rc6cg,7702
33
38
  tunacode/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
- tunacode/tools/base.py,sha256=5IXKgiHVnV7pPgWTiT0mhFLy2dA2vuryy8Ri_CHsZBY,8936
39
+ tunacode/tools/base.py,sha256=Cl-xthjTt6mlzvGsgmI-64m_8PCM1W8lccqsSemPq0k,8478
35
40
  tunacode/tools/read_file.py,sha256=QW97pPVcHvNJk48iPSwzOZ9Dbq_Ce8lQ7W0F82SXi7k,3051
36
41
  tunacode/tools/run_command.py,sha256=dspFV71g98gbOQV6CT9LsEoytQ_4zyVqqZD99zf__OY,3796
37
- tunacode/tools/update_file.py,sha256=oG7ELWX3uHboDs2BPy8hfZb6hh0bQOav-LlWIRynMO4,4145
38
- tunacode/tools/write_file.py,sha256=bV-Xz_Wy_SaCqU78PcxP2ttScfH7F7GGnvs4P7EDuAM,2821
42
+ tunacode/tools/tinyagent_tools.py,sha256=9JyTZgcvk2HVV6Q8UCS4tr0HPU6T2OMfS7AHJaMBgSw,2590
43
+ tunacode/tools/update_file.py,sha256=-ysza8w3eys1jj-oDFsamXiSVI28ONTkMQ4TJsoG6xs,4527
44
+ tunacode/tools/write_file.py,sha256=taDr8nAnxYeEXz6W3tjzT_S96u2MiHD1puvJFfYxlbw,2919
39
45
  tunacode/ui/__init__.py,sha256=aRNE2pS50nFAX6y--rSGMNYwhz905g14gRd6g4BolYU,13
40
- tunacode/ui/completers.py,sha256=A35gtImDcZt_kg7dIFsGL1CGnKmfEt9UJXYh4ZvQebg,5069
46
+ tunacode/ui/completers.py,sha256=OL4c8cSQnb2WWRfD73MkRBw1lOxa03512MKDFPli9eY,7231
41
47
  tunacode/ui/console.py,sha256=7ua1LaBP3ZCRHzV0SqVCkgNlgBuBcBTcvybRjWl5jew,1943
42
48
  tunacode/ui/constants.py,sha256=NxegAWaoDaEa4gzNZ7p67M0ZsHJJxZMtf2bW8E5WeZE,421
43
49
  tunacode/ui/decorators.py,sha256=I09tETtxPfcWdh1B3kEM0nJ8E6HvdBZAdYhRzYUa_p8,1901
44
- tunacode/ui/input.py,sha256=SmgwwJ4Ge1QQWk9hyu3gG1qke_aLRtyodOQGk7EThQ0,2956
45
- tunacode/ui/keybindings.py,sha256=uT23EYLLoso-b4ppN-RqbdYOYanGqMr5FKm8OphhhFs,701
46
- tunacode/ui/lexers.py,sha256=3qFwogyS_3zlS0NDxbc4e_sPvNHylNdCVMjPIIp85go,1507
47
- tunacode/ui/output.py,sha256=jBsVXLLdMeI1Cr8XxI5o-XdXUXMR17gZncl0Iq5T8Ug,3811
48
- tunacode/ui/panels.py,sha256=gsTDPX68LRcSxAlzCB01R3dfLT5sNWgSeoB-nCxeSmM,5933
49
- tunacode/ui/prompt_manager.py,sha256=i8LBDFalo72b9YP1-65X0v0DA62k-auSVEJMXXr31fs,4010
50
+ tunacode/ui/input.py,sha256=aiM5Kv2CI0Vqj05srR2R2Z4e4dZ8QY6yoNKQ04RlQhg,2909
51
+ tunacode/ui/keybindings.py,sha256=Tiw7L57Q-I7mc-qdE1aWVUxa4TCHgO4niUdoRvzO-6o,691
52
+ tunacode/ui/lexers.py,sha256=tmg4ic1enyTRLzanN5QPP7D_0n12YjX_8ZhsffzhXA4,1340
53
+ tunacode/ui/output.py,sha256=L7VdlwbxqiOlQLPvcty76zX2ImXAtSioK1w_BO5F7Hc,3859
54
+ tunacode/ui/panels.py,sha256=kuhCPvLwqorrqyS0ZF-RfuzbDZHwhKOC7KG2wQOqXds,5931
55
+ tunacode/ui/prompt_manager.py,sha256=uqmS796nXn7me-zcATyK8A_dz0M037zkPYhMZMbI6jI,4036
50
56
  tunacode/ui/tool_ui.py,sha256=XqJhVm3NNGwvIbMYQ8JmmLwjGeIT3WHCf5INrgBfpY8,6530
51
57
  tunacode/ui/validators.py,sha256=wkg-lQrP-Wjm5phUHKD3Mte8F1J3A2EjESQgPPtRcvQ,758
52
58
  tunacode/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
59
  tunacode/utils/bm25.py,sha256=yq7KFWP3g_zIsjUV7l2hFPXYCzXyNQUInLU7u4qsc_4,1909
54
60
  tunacode/utils/diff_utils.py,sha256=V9PM1Of0wvWNTVyw7iZYrNowFuRiKSyWiw5F39yRRYA,2394
55
61
  tunacode/utils/file_utils.py,sha256=AXiAJ_idtlmXEi9pMvwtfPy9Ys3yK-F4K7qb_NpwonU,923
62
+ tunacode/utils/lazy_imports.py,sha256=O5t6U1OaI7Ody69wPELQBh51aDyA5VxfLohZiD12oLY,1501
63
+ tunacode/utils/regex_cache.py,sha256=vuB7c1HbZxcRKCE4R3DiOYvTpF1Nj4bcxW5nNEiOEAw,1093
56
64
  tunacode/utils/ripgrep.py,sha256=AXUs2FFt0A7KBV996deS8wreIlUzKOlAHJmwrcAr4No,583
57
65
  tunacode/utils/system.py,sha256=FSoibTIH0eybs4oNzbYyufIiV6gb77QaeY2yGqW39AY,11381
58
66
  tunacode/utils/text_utils.py,sha256=B9M1cuLTm_SSsr15WNHF6j7WdLWPvWzKZV0Lvfgdbjg,2458
59
67
  tunacode/utils/user_configuration.py,sha256=uFrpSRTUf0CijZjw1rOp1sovqy1uyr0UNcn85S6jvdk,1790
60
- tunacode_cli-0.0.5.dist-info/licenses/LICENSE,sha256=SgvEceNP-y3_WodntkMGAkZyl_hAUvzBw5T9W--7YpM,1070
61
- tunacode_cli-0.0.5.dist-info/METADATA,sha256=NPj-s0FCkwHywQzvnaqAdRIBSLGraEG-D73XXuTNVxU,7422
62
- tunacode_cli-0.0.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
63
- tunacode_cli-0.0.5.dist-info/entry_points.txt,sha256=hbkytikj4dGu6rizPuAd_DGUPBGF191RTnhr9wdhORY,51
64
- tunacode_cli-0.0.5.dist-info/top_level.txt,sha256=lKy2P6BWNi5XSA4DHFvyjQ14V26lDZctwdmhEJrxQbU,9
65
- tunacode_cli-0.0.5.dist-info/RECORD,,
68
+ tunacode_cli-0.0.6.dist-info/licenses/LICENSE,sha256=SgvEceNP-y3_WodntkMGAkZyl_hAUvzBw5T9W--7YpM,1070
69
+ tunacode_cli-0.0.6.dist-info/METADATA,sha256=7Tqjj-axKmfqKovX66Egt9YttEmEgC9CREPcVb3J1B0,7131
70
+ tunacode_cli-0.0.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
71
+ tunacode_cli-0.0.6.dist-info/entry_points.txt,sha256=hbkytikj4dGu6rizPuAd_DGUPBGF191RTnhr9wdhORY,51
72
+ tunacode_cli-0.0.6.dist-info/top_level.txt,sha256=lKy2P6BWNi5XSA4DHFvyjQ14V26lDZctwdmhEJrxQbU,9
73
+ tunacode_cli-0.0.6.dist-info/RECORD,,