tunacode-cli 0.0.1__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.
- tunacode/__init__.py +0 -0
- tunacode/cli/__init__.py +4 -0
- tunacode/cli/commands.py +632 -0
- tunacode/cli/main.py +47 -0
- tunacode/cli/repl.py +251 -0
- tunacode/configuration/__init__.py +1 -0
- tunacode/configuration/defaults.py +26 -0
- tunacode/configuration/models.py +69 -0
- tunacode/configuration/settings.py +32 -0
- tunacode/constants.py +129 -0
- tunacode/context.py +83 -0
- tunacode/core/__init__.py +0 -0
- tunacode/core/agents/__init__.py +0 -0
- tunacode/core/agents/main.py +119 -0
- tunacode/core/setup/__init__.py +17 -0
- tunacode/core/setup/agent_setup.py +41 -0
- tunacode/core/setup/base.py +37 -0
- tunacode/core/setup/config_setup.py +179 -0
- tunacode/core/setup/coordinator.py +45 -0
- tunacode/core/setup/environment_setup.py +62 -0
- tunacode/core/setup/git_safety_setup.py +188 -0
- tunacode/core/setup/undo_setup.py +32 -0
- tunacode/core/state.py +43 -0
- tunacode/core/tool_handler.py +57 -0
- tunacode/exceptions.py +105 -0
- tunacode/prompts/system.txt +71 -0
- tunacode/py.typed +0 -0
- tunacode/services/__init__.py +1 -0
- tunacode/services/mcp.py +86 -0
- tunacode/services/undo_service.py +244 -0
- tunacode/setup.py +50 -0
- tunacode/tools/__init__.py +0 -0
- tunacode/tools/base.py +244 -0
- tunacode/tools/read_file.py +89 -0
- tunacode/tools/run_command.py +107 -0
- tunacode/tools/update_file.py +117 -0
- tunacode/tools/write_file.py +82 -0
- tunacode/types.py +259 -0
- tunacode/ui/__init__.py +1 -0
- tunacode/ui/completers.py +129 -0
- tunacode/ui/console.py +74 -0
- tunacode/ui/constants.py +16 -0
- tunacode/ui/decorators.py +59 -0
- tunacode/ui/input.py +95 -0
- tunacode/ui/keybindings.py +27 -0
- tunacode/ui/lexers.py +46 -0
- tunacode/ui/output.py +109 -0
- tunacode/ui/panels.py +156 -0
- tunacode/ui/prompt_manager.py +117 -0
- tunacode/ui/tool_ui.py +187 -0
- tunacode/ui/validators.py +23 -0
- tunacode/utils/__init__.py +0 -0
- tunacode/utils/bm25.py +55 -0
- tunacode/utils/diff_utils.py +69 -0
- tunacode/utils/file_utils.py +41 -0
- tunacode/utils/ripgrep.py +17 -0
- tunacode/utils/system.py +336 -0
- tunacode/utils/text_utils.py +87 -0
- tunacode/utils/user_configuration.py +54 -0
- tunacode_cli-0.0.1.dist-info/METADATA +242 -0
- tunacode_cli-0.0.1.dist-info/RECORD +65 -0
- tunacode_cli-0.0.1.dist-info/WHEEL +5 -0
- tunacode_cli-0.0.1.dist-info/entry_points.txt +2 -0
- tunacode_cli-0.0.1.dist-info/licenses/LICENSE +21 -0
- tunacode_cli-0.0.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: tunacode-cli
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: Your agentic CLI developer.
|
|
5
|
+
Author-email: Gavin Vickery <gavin@geekforbrains.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: pydantic-ai[logfire]==0.2.6
|
|
24
|
+
Requires-Dist: pygments==2.19.1
|
|
25
|
+
Requires-Dist: rich==14.0.0
|
|
26
|
+
Requires-Dist: typer==0.15.3
|
|
27
|
+
Provides-Extra: dev
|
|
28
|
+
Requires-Dist: build; extra == "dev"
|
|
29
|
+
Requires-Dist: black; extra == "dev"
|
|
30
|
+
Requires-Dist: flake8; extra == "dev"
|
|
31
|
+
Requires-Dist: isort; extra == "dev"
|
|
32
|
+
Requires-Dist: pytest; extra == "dev"
|
|
33
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
|
34
|
+
Dynamic: license-file
|
|
35
|
+
|
|
36
|
+
# TunaCode (Beta)
|
|
37
|
+
|
|
38
|
+
[](https://badge.fury.io/py/tunacode-cli)
|
|
39
|
+
[](https://www.python.org/downloads/)
|
|
40
|
+
|
|
41
|
+

|
|
42
|
+
|
|
43
|
+
Your agentic CLI developer.
|
|
44
|
+
|
|
45
|
+
## Overview
|
|
46
|
+
|
|
47
|
+
TunaCode is an agentic CLI-based AI tool inspired by Claude Code, Copilot, Windsurf and Cursor. It's meant
|
|
48
|
+
to be an open source alternative to these tools, providing a similar experience but with the flexibility of
|
|
49
|
+
using different LLM providers (Anthropic, OpenAI, Google Gemini, OpenRouter) while keeping the agentic workflow.
|
|
50
|
+
|
|
51
|
+
*TunaCode is currently in beta and under active development. Please [report issues](https://github.com/geekforbrains/tunacode-cli/issues) or share feedback!*
|
|
52
|
+
|
|
53
|
+
## Features
|
|
54
|
+
|
|
55
|
+
- No vendor lock-in. Use whichever LLM provider you prefer.
|
|
56
|
+
- MCP support
|
|
57
|
+
- Use /undo when AI breaks things.
|
|
58
|
+
- Easily switch between models in the same session.
|
|
59
|
+
- JIT-style system prompt injection ensures TunaCode doesn't lose the plot.
|
|
60
|
+
- Per-project guide. Adjust TunaCode's behavior to suit your needs.
|
|
61
|
+
- CLI-first design. Ditch the clunky IDE.
|
|
62
|
+
- Cost and token tracking.
|
|
63
|
+
- Per command or per session confirmation skipping.
|
|
64
|
+
|
|
65
|
+
## Roadmap
|
|
66
|
+
|
|
67
|
+
- Tests 😅
|
|
68
|
+
- More LLM providers, including OpenRouter and Ollama
|
|
69
|
+
|
|
70
|
+
## Quick Start
|
|
71
|
+
|
|
72
|
+
Install TunaCode.
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
pip install tunacode-cli
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
On first run, you'll be asked to configure your LLM providers.
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
tunacode
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Configuration
|
|
85
|
+
|
|
86
|
+
After initial setup, TunaCode saves a config file to `~/.config/tunacode.json`. You can open and
|
|
87
|
+
edit this file as needed. Future updates will make editing easier directly from within TunaCode.
|
|
88
|
+
|
|
89
|
+
### OpenRouter Support
|
|
90
|
+
|
|
91
|
+
To use [OpenRouter](https://openrouter.ai) models, add an `OPENROUTER_API_KEY` to the
|
|
92
|
+
`env` section of your configuration file. TunaCode will set the environment variable so the
|
|
93
|
+
OpenAI client can communicate with OpenRouter:
|
|
94
|
+
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"env": {
|
|
98
|
+
"OPENROUTER_API_KEY": "<YOUR_KEY>"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Then run TunaCode with the OpenRouter base URL:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
OPENAI_BASE_URL="https://openrouter.ai/api/v1" tunacode
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
You can now switch to OpenRouter models using:
|
|
110
|
+
```
|
|
111
|
+
/model openrouter:mistralai/devstral-small
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### MCP Support
|
|
115
|
+
|
|
116
|
+
TunaCode supports Model Context Protocol (MCP) servers. You can configure MCP servers in your `~/.config/tunacode.json` file:
|
|
117
|
+
|
|
118
|
+
```json
|
|
119
|
+
{
|
|
120
|
+
"mcpServers": {
|
|
121
|
+
"fetch": {
|
|
122
|
+
"command": "uvx",
|
|
123
|
+
"args": ["mcp-server-fetch"]
|
|
124
|
+
},
|
|
125
|
+
"github": {
|
|
126
|
+
"command": "npx",
|
|
127
|
+
"args": ["-y", "@modelcontextprotocol/server-github"],
|
|
128
|
+
"env": {
|
|
129
|
+
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
MCP servers extend the capabilities of your AI assistant, allowing it to interact with additional tools and data sources. Learn more about MCP at [modelcontextprotocol.io](https://modelcontextprotocol.io/).
|
|
137
|
+
|
|
138
|
+
### Available Commands
|
|
139
|
+
|
|
140
|
+
- `/help` - Show available commands
|
|
141
|
+
- `/yolo` - Toggle "yolo" mode (skip tool confirmations)
|
|
142
|
+
- `/clear` - Clear message history
|
|
143
|
+
- `/compact` - Summarize message history and clear old messages
|
|
144
|
+
- `/model` - List available models
|
|
145
|
+
- `/model <num>` - Switch to a specific model (by index)
|
|
146
|
+
- `/branch <name>` - Create and switch to a new Git branch
|
|
147
|
+
- `/undo` - Undo most recent changes
|
|
148
|
+
- `/dump` - Show current message history (for debugging)
|
|
149
|
+
- `exit` - Exit the application
|
|
150
|
+
|
|
151
|
+
## Customization
|
|
152
|
+
|
|
153
|
+
TunaCode supports the use of a "guide". This is a `TUNACODE.md` file in the project root that contains
|
|
154
|
+
instructions for TunaCode. Helpful for specifying tech stack, project structure, development
|
|
155
|
+
preferences etc.
|
|
156
|
+
|
|
157
|
+
## Requirements
|
|
158
|
+
|
|
159
|
+
- Python 3.10 or higher
|
|
160
|
+
- Git (for undo functionality)
|
|
161
|
+
|
|
162
|
+
## Installation
|
|
163
|
+
|
|
164
|
+
### Using pip
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
pip install tunacode-cli
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### From Source
|
|
171
|
+
|
|
172
|
+
1. Clone the repository
|
|
173
|
+
2. Install dependencies: `pip install .` (or `pip install -e .` for development)
|
|
174
|
+
|
|
175
|
+
## Development
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# Install development dependencies
|
|
179
|
+
make install
|
|
180
|
+
|
|
181
|
+
# Run linting
|
|
182
|
+
make lint
|
|
183
|
+
|
|
184
|
+
# Run tests
|
|
185
|
+
make test
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Release Process
|
|
189
|
+
|
|
190
|
+
When preparing a new release:
|
|
191
|
+
|
|
192
|
+
1. Update version numbers in:
|
|
193
|
+
- `pyproject.toml`
|
|
194
|
+
- `src/tunacode/constants.py` (APP_VERSION)
|
|
195
|
+
|
|
196
|
+
2. Commit the version changes:
|
|
197
|
+
```bash
|
|
198
|
+
git add pyproject.toml src/tunacode/constants.py
|
|
199
|
+
git commit -m "chore: bump version to X.Y.Z"
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
3. Create and push a tag:
|
|
203
|
+
```bash
|
|
204
|
+
git tag vX.Y.Z
|
|
205
|
+
git push origin vX.Y.Z
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
4. Create a GitHub release:
|
|
209
|
+
```bash
|
|
210
|
+
gh release create vX.Y.Z --title "vX.Y.Z" --notes "Release notes here"
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
5. Merge to main branch and push to trigger PyPI release (automated)
|
|
214
|
+
|
|
215
|
+
### Commit Convention
|
|
216
|
+
|
|
217
|
+
This project follows the [Conventional Commits](https://www.conventionalcommits.org/) specification for commit messages:
|
|
218
|
+
|
|
219
|
+
- `feat:` - New features
|
|
220
|
+
- `fix:` - Bug fixes
|
|
221
|
+
- `docs:` - Documentation changes
|
|
222
|
+
- `style:` - Code style changes (formatting, etc.)
|
|
223
|
+
- `refactor:` - Code refactoring
|
|
224
|
+
- `perf:` - Performance improvements
|
|
225
|
+
- `test:` - Test additions or modifications
|
|
226
|
+
- `chore:` - Maintenance tasks (version bumps, etc.)
|
|
227
|
+
- `build:` - Build system changes
|
|
228
|
+
- `ci:` - CI configuration changes
|
|
229
|
+
|
|
230
|
+
## Links
|
|
231
|
+
|
|
232
|
+
- [PyPI Package](https://pypi.org/project/tunacode-cli/)
|
|
233
|
+
- [GitHub Issues](https://github.com/geekforbrains/tunacode-cli/issues)
|
|
234
|
+
- [GitHub Repository](https://github.com/geekforbrains/tunacode-cli)
|
|
235
|
+
|
|
236
|
+
## License
|
|
237
|
+
|
|
238
|
+
MIT
|
|
239
|
+
|
|
240
|
+
## Acknowledgments
|
|
241
|
+
|
|
242
|
+
This project is a fork of [sidekick-cli](https://github.com/geekforbrains/sidekick-cli). Thank you to the sidekick-cli team for creating the foundation that made TunaCode possible! 🙏
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
tunacode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
tunacode/constants.py,sha256=SOy0DyXaIHHReGbmkelLkXFxOp3vXtM8wQRTKUE8EKA,4249
|
|
3
|
+
tunacode/context.py,sha256=0ttsxxLAyD4pSoxw7S-pyzor0JUkhOFZh96aAf4Kqsg,2634
|
|
4
|
+
tunacode/exceptions.py,sha256=MtXigF5Y0n-C2iZAMJVHQU7DcJ4HQQzmxjsQyc4sCfE,2647
|
|
5
|
+
tunacode/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
+
tunacode/setup.py,sha256=KCNhnu8FY5bFRqR0JMIh22xVakCC97kchmyGsUGUaJ4,1811
|
|
7
|
+
tunacode/types.py,sha256=-qFH7U3eqYvXqpeTU_TAIGIlrOWYBfm-qeH4AeH3GHs,7146
|
|
8
|
+
tunacode/cli/__init__.py,sha256=zgs0UbAck8hfvhYsWhWOfBe5oK09ug2De1r4RuQZREA,55
|
|
9
|
+
tunacode/cli/commands.py,sha256=911tz2e13ljTVlY5DR44qt8aeyTQo4dF4H9BoziRMtA,20732
|
|
10
|
+
tunacode/cli/main.py,sha256=5_CXYtzN-Mc3nOv2Xpk6yfnV4d2SOgA9ENyTCe0cYYw,1226
|
|
11
|
+
tunacode/cli/repl.py,sha256=7g2c5M10bMsSmsomTIiR8bPlUAaqp83hybuVZdwT5kM,8789
|
|
12
|
+
tunacode/configuration/__init__.py,sha256=MbVXy8bGu0yKehzgdgZ_mfWlYGvIdb1dY2Ly75nfuPE,17
|
|
13
|
+
tunacode/configuration/defaults.py,sha256=9fR_Wydc85fU5LN5LlgRfW6geZNPNFMqKRVLN2v_TQ8,694
|
|
14
|
+
tunacode/configuration/models.py,sha256=sOW_pb3HeWdmoZ5SbHsogUDFhiIZZ1GstM18KTr_G8k,2883
|
|
15
|
+
tunacode/configuration/settings.py,sha256=0HqwEFkpGqPtF-h0sAIBHFXTlJQ_KtelD_s-z2XDSak,992
|
|
16
|
+
tunacode/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
+
tunacode/core/state.py,sha256=0U_WU92yn5EQ27BLlHIkNIJJqjLMNHKNYSoba1rQqbQ,1376
|
|
18
|
+
tunacode/core/tool_handler.py,sha256=OKx7jM8pml6pSEnoARu33_uBY8awJBqvhbVeBn6T4ow,1804
|
|
19
|
+
tunacode/core/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
|
+
tunacode/core/agents/main.py,sha256=ZGB-EUQ7ow-m3ohSAmfPZ5UN9XC2Gbz40rKjsZsWwrA,4669
|
|
21
|
+
tunacode/core/setup/__init__.py,sha256=jlveyriTXRcnoBLU6_TJ7Z-3E6EXjT9L5GD1vW4dei0,427
|
|
22
|
+
tunacode/core/setup/agent_setup.py,sha256=k1bmQ21ue17_zZsWlhIfc7ZWN6vZtmOgKMMzR4Xu9-k,1410
|
|
23
|
+
tunacode/core/setup/base.py,sha256=x9uYOITulrf4faP70NPTNBPb-wW1ZJGmcjAe0Sk5slk,961
|
|
24
|
+
tunacode/core/setup/config_setup.py,sha256=1eDS8iIG9z_BvrmeL8d9QUEBtPXSjOcrNu-2vHtvSFk,7474
|
|
25
|
+
tunacode/core/setup/coordinator.py,sha256=pT1mI24Kllo2H6Hjb-uULLsA1E3X3BqQB7nSGe70SRw,1598
|
|
26
|
+
tunacode/core/setup/environment_setup.py,sha256=u6Anb9uDicmdMA_9xLkP0j2uoiVY16ojsA7XnFz--yQ,2234
|
|
27
|
+
tunacode/core/setup/git_safety_setup.py,sha256=1NuzSASi0b69wQRpcOgINKklGnq34Xh3itm_PEpjDus,7238
|
|
28
|
+
tunacode/core/setup/undo_setup.py,sha256=BUVbEKFQ_Edgbyp5zJziWdaog4tXgl-S98n0mSOzumA,1119
|
|
29
|
+
tunacode/prompts/system.txt,sha256=kaXIoQQQmdau7j2cD4MbF47KhfJZhV6zrfi2boJ4b3s,3225
|
|
30
|
+
tunacode/services/__init__.py,sha256=w_E8QK6RnvKSvU866eDe8BCRV26rAm4d3R-Yg06OWCU,19
|
|
31
|
+
tunacode/services/mcp.py,sha256=R48X73KQjQ9vwhBrtbWHSBl-4K99QXmbIhh5J_1Gezo,3046
|
|
32
|
+
tunacode/services/undo_service.py,sha256=LWhcLY12FdKXI9jd85pizxDOuZ2AHVyA1BRx4UWiiOc,7748
|
|
33
|
+
tunacode/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
34
|
+
tunacode/tools/base.py,sha256=5IXKgiHVnV7pPgWTiT0mhFLy2dA2vuryy8Ri_CHsZBY,8936
|
|
35
|
+
tunacode/tools/read_file.py,sha256=QW97pPVcHvNJk48iPSwzOZ9Dbq_Ce8lQ7W0F82SXi7k,3051
|
|
36
|
+
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
|
|
39
|
+
tunacode/ui/__init__.py,sha256=aRNE2pS50nFAX6y--rSGMNYwhz905g14gRd6g4BolYU,13
|
|
40
|
+
tunacode/ui/completers.py,sha256=A35gtImDcZt_kg7dIFsGL1CGnKmfEt9UJXYh4ZvQebg,5069
|
|
41
|
+
tunacode/ui/console.py,sha256=7ua1LaBP3ZCRHzV0SqVCkgNlgBuBcBTcvybRjWl5jew,1943
|
|
42
|
+
tunacode/ui/constants.py,sha256=NxegAWaoDaEa4gzNZ7p67M0ZsHJJxZMtf2bW8E5WeZE,421
|
|
43
|
+
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/tool_ui.py,sha256=XqJhVm3NNGwvIbMYQ8JmmLwjGeIT3WHCf5INrgBfpY8,6530
|
|
51
|
+
tunacode/ui/validators.py,sha256=wkg-lQrP-Wjm5phUHKD3Mte8F1J3A2EjESQgPPtRcvQ,758
|
|
52
|
+
tunacode/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
53
|
+
tunacode/utils/bm25.py,sha256=yq7KFWP3g_zIsjUV7l2hFPXYCzXyNQUInLU7u4qsc_4,1909
|
|
54
|
+
tunacode/utils/diff_utils.py,sha256=V9PM1Of0wvWNTVyw7iZYrNowFuRiKSyWiw5F39yRRYA,2394
|
|
55
|
+
tunacode/utils/file_utils.py,sha256=AXiAJ_idtlmXEi9pMvwtfPy9Ys3yK-F4K7qb_NpwonU,923
|
|
56
|
+
tunacode/utils/ripgrep.py,sha256=AXUs2FFt0A7KBV996deS8wreIlUzKOlAHJmwrcAr4No,583
|
|
57
|
+
tunacode/utils/system.py,sha256=Do-YKMrpTcp49DtnacisOj-NqnM8clI1YJeD6ebRUpw,11381
|
|
58
|
+
tunacode/utils/text_utils.py,sha256=B9M1cuLTm_SSsr15WNHF6j7WdLWPvWzKZV0Lvfgdbjg,2458
|
|
59
|
+
tunacode/utils/user_configuration.py,sha256=uFrpSRTUf0CijZjw1rOp1sovqy1uyr0UNcn85S6jvdk,1790
|
|
60
|
+
tunacode_cli-0.0.1.dist-info/licenses/LICENSE,sha256=SgvEceNP-y3_WodntkMGAkZyl_hAUvzBw5T9W--7YpM,1070
|
|
61
|
+
tunacode_cli-0.0.1.dist-info/METADATA,sha256=S-RIcXtow9xKWGZEvRbsscv3qTxp0Gr7LdL40OlUrOs,6787
|
|
62
|
+
tunacode_cli-0.0.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
63
|
+
tunacode_cli-0.0.1.dist-info/entry_points.txt,sha256=hbkytikj4dGu6rizPuAd_DGUPBGF191RTnhr9wdhORY,51
|
|
64
|
+
tunacode_cli-0.0.1.dist-info/top_level.txt,sha256=lKy2P6BWNi5XSA4DHFvyjQ14V26lDZctwdmhEJrxQbU,9
|
|
65
|
+
tunacode_cli-0.0.1.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Gavin Vickery
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tunacode
|