tunacode-cli 0.0.35__py3-none-any.whl → 0.0.37__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/cli/commands/__init__.py +62 -0
- tunacode/cli/commands/base.py +99 -0
- tunacode/cli/commands/implementations/__init__.py +38 -0
- tunacode/cli/commands/implementations/conversation.py +115 -0
- tunacode/cli/commands/implementations/debug.py +189 -0
- tunacode/cli/commands/implementations/development.py +77 -0
- tunacode/cli/commands/implementations/model.py +61 -0
- tunacode/cli/commands/implementations/system.py +216 -0
- tunacode/cli/commands/registry.py +236 -0
- tunacode/cli/repl.py +91 -30
- tunacode/configuration/settings.py +9 -2
- tunacode/constants.py +1 -1
- tunacode/core/agents/main.py +53 -3
- tunacode/core/agents/utils.py +304 -0
- tunacode/core/setup/config_setup.py +0 -1
- tunacode/core/state.py +13 -2
- tunacode/setup.py +7 -2
- tunacode/tools/read_file.py +8 -2
- tunacode/tools/read_file_async_poc.py +18 -10
- tunacode/tools/run_command.py +11 -4
- tunacode/ui/console.py +31 -4
- tunacode/ui/output.py +7 -2
- tunacode/ui/panels.py +98 -5
- tunacode/ui/utils.py +3 -0
- tunacode/utils/text_utils.py +6 -2
- {tunacode_cli-0.0.35.dist-info → tunacode_cli-0.0.37.dist-info}/METADATA +17 -17
- {tunacode_cli-0.0.35.dist-info → tunacode_cli-0.0.37.dist-info}/RECORD +31 -21
- tunacode/cli/commands.py +0 -893
- {tunacode_cli-0.0.35.dist-info → tunacode_cli-0.0.37.dist-info}/WHEEL +0 -0
- {tunacode_cli-0.0.35.dist-info → tunacode_cli-0.0.37.dist-info}/entry_points.txt +0 -0
- {tunacode_cli-0.0.35.dist-info → tunacode_cli-0.0.37.dist-info}/licenses/LICENSE +0 -0
- {tunacode_cli-0.0.35.dist-info → tunacode_cli-0.0.37.dist-info}/top_level.txt +0 -0
tunacode/ui/panels.py
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from typing import Any, Optional, Union
|
|
4
4
|
|
|
5
5
|
from rich.box import ROUNDED
|
|
6
|
+
from rich.live import Live
|
|
6
7
|
from rich.markdown import Markdown
|
|
7
8
|
from rich.padding import Padding
|
|
8
9
|
from rich.panel import Panel
|
|
@@ -10,11 +11,30 @@ from rich.pretty import Pretty
|
|
|
10
11
|
from rich.table import Table
|
|
11
12
|
|
|
12
13
|
from tunacode.configuration.models import ModelRegistry
|
|
13
|
-
from tunacode.constants import (
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
from tunacode.constants import (
|
|
15
|
+
APP_NAME,
|
|
16
|
+
CMD_CLEAR,
|
|
17
|
+
CMD_COMPACT,
|
|
18
|
+
CMD_DUMP,
|
|
19
|
+
CMD_EXIT,
|
|
20
|
+
CMD_HELP,
|
|
21
|
+
CMD_MODEL,
|
|
22
|
+
CMD_YOLO,
|
|
23
|
+
DESC_CLEAR,
|
|
24
|
+
DESC_COMPACT,
|
|
25
|
+
DESC_DUMP,
|
|
26
|
+
DESC_EXIT,
|
|
27
|
+
DESC_HELP,
|
|
28
|
+
DESC_MODEL,
|
|
29
|
+
DESC_MODEL_DEFAULT,
|
|
30
|
+
DESC_MODEL_SWITCH,
|
|
31
|
+
DESC_YOLO,
|
|
32
|
+
PANEL_AVAILABLE_COMMANDS,
|
|
33
|
+
PANEL_ERROR,
|
|
34
|
+
PANEL_MESSAGE_HISTORY,
|
|
35
|
+
PANEL_MODELS,
|
|
36
|
+
UI_COLORS,
|
|
37
|
+
)
|
|
18
38
|
from tunacode.core.state import StateManager
|
|
19
39
|
from tunacode.utils.file_utils import DotDict
|
|
20
40
|
|
|
@@ -55,6 +75,79 @@ async def agent(text: str, bottom: int = 1) -> None:
|
|
|
55
75
|
await panel(title, Markdown(text), bottom=bottom, border_style=colors.primary)
|
|
56
76
|
|
|
57
77
|
|
|
78
|
+
class StreamingAgentPanel:
|
|
79
|
+
"""Streaming agent panel using Rich.Live for progressive display."""
|
|
80
|
+
|
|
81
|
+
def __init__(self, bottom: int = 1):
|
|
82
|
+
self.bottom = bottom
|
|
83
|
+
self.title = f"[bold {colors.primary}]●[/bold {colors.primary}] {APP_NAME}"
|
|
84
|
+
self.content = ""
|
|
85
|
+
self.live = None
|
|
86
|
+
|
|
87
|
+
def _create_panel(self) -> Panel:
|
|
88
|
+
"""Create a Rich panel with current content."""
|
|
89
|
+
markdown_content = Markdown(self.content or "Thinking...")
|
|
90
|
+
panel_obj = Panel(
|
|
91
|
+
Padding(markdown_content, (0, 1, 0, 1)),
|
|
92
|
+
title=f"[bold]{self.title}[/bold]",
|
|
93
|
+
title_align="left",
|
|
94
|
+
border_style=colors.primary,
|
|
95
|
+
padding=(0, 1),
|
|
96
|
+
box=ROUNDED,
|
|
97
|
+
)
|
|
98
|
+
return Padding(
|
|
99
|
+
panel_obj,
|
|
100
|
+
(
|
|
101
|
+
DEFAULT_PANEL_PADDING["top"],
|
|
102
|
+
DEFAULT_PANEL_PADDING["right"],
|
|
103
|
+
self.bottom,
|
|
104
|
+
DEFAULT_PANEL_PADDING["left"],
|
|
105
|
+
),
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
async def start(self):
|
|
109
|
+
"""Start the live streaming display."""
|
|
110
|
+
from .output import console
|
|
111
|
+
|
|
112
|
+
self.live = Live(self._create_panel(), console=console, refresh_per_second=4)
|
|
113
|
+
self.live.start()
|
|
114
|
+
|
|
115
|
+
async def update(self, content_chunk: str):
|
|
116
|
+
"""Update the streaming display with new content."""
|
|
117
|
+
self.content += content_chunk
|
|
118
|
+
if self.live:
|
|
119
|
+
self.live.update(self._create_panel())
|
|
120
|
+
|
|
121
|
+
async def set_content(self, content: str):
|
|
122
|
+
"""Set the complete content (overwrites previous)."""
|
|
123
|
+
self.content = content
|
|
124
|
+
if self.live:
|
|
125
|
+
self.live.update(self._create_panel())
|
|
126
|
+
|
|
127
|
+
async def stop(self):
|
|
128
|
+
"""Stop the live streaming display."""
|
|
129
|
+
if self.live:
|
|
130
|
+
self.live.stop()
|
|
131
|
+
self.live = None
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
async def agent_streaming(content_stream, bottom: int = 1):
|
|
135
|
+
"""Display an agent panel with streaming content updates.
|
|
136
|
+
|
|
137
|
+
Args:
|
|
138
|
+
content_stream: Async iterator yielding content chunks
|
|
139
|
+
bottom: Bottom padding for the panel
|
|
140
|
+
"""
|
|
141
|
+
panel = StreamingAgentPanel(bottom=bottom)
|
|
142
|
+
await panel.start()
|
|
143
|
+
|
|
144
|
+
try:
|
|
145
|
+
async for chunk in content_stream:
|
|
146
|
+
await panel.update(chunk)
|
|
147
|
+
finally:
|
|
148
|
+
await panel.stop()
|
|
149
|
+
|
|
150
|
+
|
|
58
151
|
async def error(text: str) -> None:
|
|
59
152
|
"""Display an error panel."""
|
|
60
153
|
await panel(PANEL_ERROR, text, style=colors.error)
|
tunacode/ui/utils.py
ADDED
tunacode/utils/text_utils.py
CHANGED
|
@@ -67,8 +67,12 @@ def expand_file_refs(text: str) -> Tuple[str, List[str]]:
|
|
|
67
67
|
import os
|
|
68
68
|
import re
|
|
69
69
|
|
|
70
|
-
from tunacode.constants import (
|
|
71
|
-
|
|
70
|
+
from tunacode.constants import (
|
|
71
|
+
ERROR_FILE_NOT_FOUND,
|
|
72
|
+
ERROR_FILE_TOO_LARGE,
|
|
73
|
+
MAX_FILE_SIZE,
|
|
74
|
+
MSG_FILE_SIZE_LIMIT,
|
|
75
|
+
)
|
|
72
76
|
|
|
73
77
|
pattern = re.compile(r"@([\w./_-]+)")
|
|
74
78
|
expanded_files = []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tunacode-cli
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.37
|
|
4
4
|
Summary: Your agentic CLI developer.
|
|
5
5
|
Author-email: larock22 <noreply@github.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -26,9 +26,7 @@ Requires-Dist: pygments==2.19.1
|
|
|
26
26
|
Requires-Dist: rich==14.0.0
|
|
27
27
|
Provides-Extra: dev
|
|
28
28
|
Requires-Dist: build; extra == "dev"
|
|
29
|
-
Requires-Dist:
|
|
30
|
-
Requires-Dist: flake8; extra == "dev"
|
|
31
|
-
Requires-Dist: isort; extra == "dev"
|
|
29
|
+
Requires-Dist: ruff; extra == "dev"
|
|
32
30
|
Requires-Dist: pytest; extra == "dev"
|
|
33
31
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
34
32
|
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
@@ -70,7 +68,7 @@ Choose your AI provider and set your API key:
|
|
|
70
68
|
# OpenAI
|
|
71
69
|
tunacode --model "openai:gpt-4o" --key "sk-your-openai-key"
|
|
72
70
|
|
|
73
|
-
# Anthropic Claude
|
|
71
|
+
# Anthropic Claude
|
|
74
72
|
tunacode --model "anthropic:claude-3.5-sonnet" --key "sk-ant-your-anthropic-key"
|
|
75
73
|
|
|
76
74
|
# OpenRouter (100+ models)
|
|
@@ -82,13 +80,14 @@ Your config is saved to `~/.config/tunacode.json` (edit directly with `nvim ~/.c
|
|
|
82
80
|
### Recommended Models
|
|
83
81
|
|
|
84
82
|
Based on extensive testing, these models provide the best performance:
|
|
83
|
+
|
|
85
84
|
- `google/gemini-2.5-pro` - Excellent for complex reasoning
|
|
86
85
|
- `openai/gpt-4.1` - Strong general-purpose model
|
|
87
86
|
- `deepseek/deepseek-r1-0528` - Great for code generation
|
|
88
87
|
- `openai/gpt-4.1-mini` - Fast and cost-effective
|
|
89
88
|
- `anthropic/claude-4-sonnet-20250522` - Superior context handling
|
|
90
89
|
|
|
91
|
-
|
|
90
|
+
_Note: Formal evaluations coming soon. Any model can work, but these have shown the best results in practice._
|
|
92
91
|
|
|
93
92
|
## Start Coding
|
|
94
93
|
|
|
@@ -98,16 +97,16 @@ tunacode
|
|
|
98
97
|
|
|
99
98
|
## Basic Commands
|
|
100
99
|
|
|
101
|
-
| Command
|
|
102
|
-
|
|
|
103
|
-
| `/help`
|
|
104
|
-
| `/model <provider:name>` | Switch model
|
|
105
|
-
| `/clear`
|
|
106
|
-
| `/compact`
|
|
107
|
-
| `/branch <name>`
|
|
108
|
-
| `/yolo`
|
|
109
|
-
| `!<command>`
|
|
110
|
-
| `exit`
|
|
100
|
+
| Command | Description |
|
|
101
|
+
| ------------------------ | ---------------------- |
|
|
102
|
+
| `/help` | Show all commands |
|
|
103
|
+
| `/model <provider:name>` | Switch model |
|
|
104
|
+
| `/clear` | Clear message history |
|
|
105
|
+
| `/compact` | Summarize conversation |
|
|
106
|
+
| `/branch <name>` | Create Git branch |
|
|
107
|
+
| `/yolo` | Skip confirmations |
|
|
108
|
+
| `!<command>` | Run shell command |
|
|
109
|
+
| `exit` | Exit TunaCode |
|
|
111
110
|
|
|
112
111
|
## Performance
|
|
113
112
|
|
|
@@ -122,11 +121,12 @@ Multiple file reads, directory listings, and searches execute concurrently using
|
|
|
122
121
|
- **Streaming UI**: Currently working on implementing streaming responses for better user experience
|
|
123
122
|
- **Bug Fixes**: Actively addressing issues - please report any bugs you encounter!
|
|
124
123
|
|
|
125
|
-
|
|
124
|
+
_Note: While the tool is fully functional, we're focusing on stability and core features before optimizing for speed._
|
|
126
125
|
|
|
127
126
|
## Safety First
|
|
128
127
|
|
|
129
128
|
⚠️ **Important**: TunaCode can modify your codebase. Always:
|
|
129
|
+
|
|
130
130
|
- Use Git branches before making changes
|
|
131
131
|
- Review file modifications before confirming
|
|
132
132
|
- Keep backups of important work
|
|
@@ -1,33 +1,42 @@
|
|
|
1
1
|
tunacode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
tunacode/constants.py,sha256=
|
|
2
|
+
tunacode/constants.py,sha256=ri3tiaz69KDnxnTdQDQxcz85_qXe4P3JE7KafTpDroU,4074
|
|
3
3
|
tunacode/context.py,sha256=6sterdRvPOyG3LU0nEAXpBsEPZbO3qtPyTlJBi-_VXE,2612
|
|
4
4
|
tunacode/exceptions.py,sha256=mTWXuWyr1k16CGLWN2tsthDGi7lbx1JK0ekIqogYDP8,3105
|
|
5
5
|
tunacode/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
-
tunacode/setup.py,sha256=
|
|
6
|
+
tunacode/setup.py,sha256=XPt4eAK-qcIZQv64jGZ_ryxcImDwps9OmXjJfIS1xcs,1899
|
|
7
7
|
tunacode/types.py,sha256=BciT-uxnQ44iC-4QiDY72OD23LOtqSyMOuK_N0ttlaA,7676
|
|
8
8
|
tunacode/cli/__init__.py,sha256=zgs0UbAck8hfvhYsWhWOfBe5oK09ug2De1r4RuQZREA,55
|
|
9
|
-
tunacode/cli/commands.py,sha256=r-WYp5ajzkZfFjiLXuK9pfB5ugq3HWQyhRB8Usr567k,31668
|
|
10
9
|
tunacode/cli/main.py,sha256=PIcFnfmIoI_pmK2y-zB_ouJbzR5fbSI7zsKQNPB_J8o,2406
|
|
11
|
-
tunacode/cli/repl.py,sha256=
|
|
10
|
+
tunacode/cli/repl.py,sha256=SoW5QiMohHB6BLuP8grCdNrrJq-HTF80p6RFmoMMeqk,17227
|
|
12
11
|
tunacode/cli/textual_app.py,sha256=14-Nt0IIETmyHBrNn9uwSF3EwCcutwTp6gdoKgNm0sY,12593
|
|
13
12
|
tunacode/cli/textual_bridge.py,sha256=LvqiTtF0hu3gNujzpKaW9h-m6xzEP3OH2M8KL2pCwRc,6333
|
|
13
|
+
tunacode/cli/commands/__init__.py,sha256=YMrLz7szrmseJCRZGGX6_TyO3dJU8_QDCOFEhRAztzo,1634
|
|
14
|
+
tunacode/cli/commands/base.py,sha256=GxUuDsDSpz0iXryy8MrEw88UM3C3yxL__kDK1QhshoA,2517
|
|
15
|
+
tunacode/cli/commands/registry.py,sha256=d2dSAKrz_c02zU2AKtWghqPmm-p7XG_L81yj9nI1qu8,8152
|
|
16
|
+
tunacode/cli/commands/implementations/__init__.py,sha256=sRFG2aktjtWt-M0Co_GdeLjODiVjEFqHDcLyyVabj8M,917
|
|
17
|
+
tunacode/cli/commands/implementations/conversation.py,sha256=EsnsZB6yyVI_sbNNMvk37tCz3iAj4E85R9ev696qeqg,4683
|
|
18
|
+
tunacode/cli/commands/implementations/debug.py,sha256=TdP72Dpd3Nq3lwwyj0qZEdbSjDDmRyFu-0t6ttPFNno,6769
|
|
19
|
+
tunacode/cli/commands/implementations/development.py,sha256=kZRdVgReVmGU0uijFxtPio2RYkTrYMufOwgI1Aj1_NU,2729
|
|
20
|
+
tunacode/cli/commands/implementations/model.py,sha256=uthx6IX9KwgwywNTDklkJpqCbaTX9h1_p-eVmqL73WQ,2245
|
|
21
|
+
tunacode/cli/commands/implementations/system.py,sha256=2cGw5iCJO3aNhXTFF28CgAIyLgslvHmpfyL2ZHVB6oQ,7903
|
|
14
22
|
tunacode/configuration/__init__.py,sha256=MbVXy8bGu0yKehzgdgZ_mfWlYGvIdb1dY2Ly75nfuPE,17
|
|
15
23
|
tunacode/configuration/defaults.py,sha256=lNeJUW1S8zj4-XTCkMP9UaDc-tHWXLff9K8t0uPA_oE,801
|
|
16
24
|
tunacode/configuration/models.py,sha256=XPobkLM_TzKTuMIWhK-svJfGRGFT9r2LhKEM6rv6QHk,3756
|
|
17
|
-
tunacode/configuration/settings.py,sha256=
|
|
25
|
+
tunacode/configuration/settings.py,sha256=KoN0u6GG3Hh_TWt02D_wpRfbACYri3gCDTXHtJfHl2w,994
|
|
18
26
|
tunacode/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
27
|
tunacode/core/code_index.py,sha256=jgAx3lSWP_DwnyiP5Jkm1YvX4JJyI4teMzlNrJSpEOA,15661
|
|
20
|
-
tunacode/core/state.py,sha256=
|
|
28
|
+
tunacode/core/state.py,sha256=d2xUa7sRYizVc1mkaQN4aU034VSeh9nxQadzpL-aRas,1810
|
|
21
29
|
tunacode/core/tool_handler.py,sha256=BPjR013OOO0cLXPdLeL2FDK0ixUwOYu59FfHdcdFhp4,2277
|
|
22
30
|
tunacode/core/agents/__init__.py,sha256=UUJiPYb91arwziSpjd7vIk7XNGA_4HQbsOIbskSqevA,149
|
|
23
|
-
tunacode/core/agents/main.py,sha256
|
|
31
|
+
tunacode/core/agents/main.py,sha256=BkAyqSr-xgENdyEmrPrx-E21ljclSU36EJh675Vhttk,41173
|
|
32
|
+
tunacode/core/agents/utils.py,sha256=VaNsPB2l1dAP-VlS_QLRKvCb4NW0pXNRoxkh12AGXAg,10744
|
|
24
33
|
tunacode/core/background/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
34
|
tunacode/core/background/manager.py,sha256=rJdl3eDLTQwjbT7VhxXcJbZopCNR3M8ZGMbmeVnwwMc,1126
|
|
26
35
|
tunacode/core/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
36
|
tunacode/core/setup/__init__.py,sha256=lzdpY6rIGf9DDlDBDGFvQZaSOQeFsNglHbkpq1-GtU8,376
|
|
28
37
|
tunacode/core/setup/agent_setup.py,sha256=trELO8cPnWo36BBnYmXDEnDPdhBg0p-VLnx9A8hSSSQ,1401
|
|
29
38
|
tunacode/core/setup/base.py,sha256=cbyT2-xK2mWgH4EO17VfM_OM2bj0kT895NW2jSXbe3c,968
|
|
30
|
-
tunacode/core/setup/config_setup.py,sha256=
|
|
39
|
+
tunacode/core/setup/config_setup.py,sha256=xOQcjlFEL7HtGXH7wtpu83S6oA9K02wLYR1r-cWINpI,14449
|
|
31
40
|
tunacode/core/setup/coordinator.py,sha256=oVTN2xIeJERXitVJpkIk9tDGLs1D1bxIRmaogJwZJFI,2049
|
|
32
41
|
tunacode/core/setup/environment_setup.py,sha256=n3IrObKEynHZSwtUJ1FddMg2C4sHz7ca42awemImV8s,2225
|
|
33
42
|
tunacode/core/setup/git_safety_setup.py,sha256=CRIqrQt0QUJQRS344njty_iCqTorrDhHlXRuET7w0Tk,6714
|
|
@@ -40,23 +49,24 @@ tunacode/tools/bash.py,sha256=mgZqugfDFevZ4BETuUv90pzXvtq7qKGUGFiuDxzmytk,8766
|
|
|
40
49
|
tunacode/tools/glob.py,sha256=TSgVK79ewZgGw8ucYkkiHgVqRgkw-wZrhP8j52nm_gQ,10334
|
|
41
50
|
tunacode/tools/grep.py,sha256=jboEVA2ATv0YI8zg9dF89emZ_HWy2vVtsQ_-hDhlr7g,26337
|
|
42
51
|
tunacode/tools/list_dir.py,sha256=1kNqzYCNlcA5rqXIEVqcjQy6QxlLZLj5AG6YIECfwio,7217
|
|
43
|
-
tunacode/tools/read_file.py,sha256=
|
|
44
|
-
tunacode/tools/read_file_async_poc.py,sha256=
|
|
45
|
-
tunacode/tools/run_command.py,sha256=
|
|
52
|
+
tunacode/tools/read_file.py,sha256=z2omev9xzj4-0GG9mRssD13rj-Aa1c-pszFi2Z7Hxvk,3268
|
|
53
|
+
tunacode/tools/read_file_async_poc.py,sha256=2v2ckLQlwahgPGWGdE2c5Es37B35Y7zWdseZwT46E1E,6453
|
|
54
|
+
tunacode/tools/run_command.py,sha256=7UvXjFQI1Av4vceXx48MbQCTrsFNj4PlygTAAhNDYIA,4376
|
|
46
55
|
tunacode/tools/update_file.py,sha256=bW1MhTzRjBDjJzqQ6A1yCVEbkr1oIqtEC8uqcg_rfY4,3957
|
|
47
56
|
tunacode/tools/write_file.py,sha256=prL6u8XOi9ZyPU-YNlG9YMLbSLrDJXDRuDX73ncXh-k,2699
|
|
48
57
|
tunacode/ui/__init__.py,sha256=aRNE2pS50nFAX6y--rSGMNYwhz905g14gRd6g4BolYU,13
|
|
49
58
|
tunacode/ui/completers.py,sha256=Jx1zyCESwdm_4ZopvCBtb0bCJF-bRy8aBWG2yhPQtDc,4878
|
|
50
|
-
tunacode/ui/console.py,sha256=
|
|
59
|
+
tunacode/ui/console.py,sha256=YXNFlnV7n4wyaIy-VohzIMJJ71C7fzgcjuLheNIO-QU,2079
|
|
51
60
|
tunacode/ui/constants.py,sha256=A76B_KpM8jCuBYRg4cPmhi8_j6LLyWttO7_jjv47r3w,421
|
|
52
61
|
tunacode/ui/decorators.py,sha256=e2KM-_pI5EKHa2M045IjUe4rPkTboxaKHXJT0K3461g,1914
|
|
53
62
|
tunacode/ui/input.py,sha256=6LlEwKIXYXusNDI2PD0DDjRymQgu5mf2v06TsHbUln0,2957
|
|
54
63
|
tunacode/ui/keybindings.py,sha256=h0MlD73CW_3i2dQzb9EFSPkqy0raZ_isgjxUiA9u6ts,691
|
|
55
64
|
tunacode/ui/lexers.py,sha256=tmg4ic1enyTRLzanN5QPP7D_0n12YjX_8ZhsffzhXA4,1340
|
|
56
|
-
tunacode/ui/output.py,sha256=
|
|
57
|
-
tunacode/ui/panels.py,sha256=
|
|
65
|
+
tunacode/ui/output.py,sha256=kjVklUZumGwjV8LeB7aX1WjcwAbURnuudZZY1t4qsN4,4499
|
|
66
|
+
tunacode/ui/panels.py,sha256=IZpiWBb7jVXaycH5BPAnqTCs2-_ccJYq2V55MxkVHzQ,8199
|
|
58
67
|
tunacode/ui/prompt_manager.py,sha256=U2cntB34vm-YwOj3gzFRUK362zccrz8pigQfpxr5sv8,4650
|
|
59
68
|
tunacode/ui/tool_ui.py,sha256=S5-k1HwRlSqiQ8shGQ_QYGXQbuzb6Pg7u3CTqZwffdQ,6533
|
|
69
|
+
tunacode/ui/utils.py,sha256=P3RVc1j9XfRfLn3cEkaZnLD-pJKN_p27xmuaV4evHPo,73
|
|
60
70
|
tunacode/ui/validators.py,sha256=MMIMT1I2v0l2jIy-gxX_4GSApvUTi8XWIOACr_dmoBA,758
|
|
61
71
|
tunacode/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
62
72
|
tunacode/utils/bm25.py,sha256=yq7KFWP3g_zIsjUV7l2hFPXYCzXyNQUInLU7u4qsc_4,1909
|
|
@@ -66,12 +76,12 @@ tunacode/utils/import_cache.py,sha256=q_xjJbtju05YbFopLDSkIo1hOtCx3DOTl3GQE5FFDg
|
|
|
66
76
|
tunacode/utils/ripgrep.py,sha256=AXUs2FFt0A7KBV996deS8wreIlUzKOlAHJmwrcAr4No,583
|
|
67
77
|
tunacode/utils/security.py,sha256=e_zo9VmcOKFjgFMr9GOBIFhAmND4PBlJZgY7zqnsGjI,6548
|
|
68
78
|
tunacode/utils/system.py,sha256=FSoibTIH0eybs4oNzbYyufIiV6gb77QaeY2yGqW39AY,11381
|
|
69
|
-
tunacode/utils/text_utils.py,sha256=
|
|
79
|
+
tunacode/utils/text_utils.py,sha256=IiRviMqz5uoAbid8emkRXxgvQz6KE27ZeQom-qh9ymI,2984
|
|
70
80
|
tunacode/utils/token_counter.py,sha256=nGCWwrHHFbKywqeDCEuJnADCkfJuzysWiB6cCltJOKI,648
|
|
71
81
|
tunacode/utils/user_configuration.py,sha256=Ilz8dpGVJDBE2iLWHAPT0xR8D51VRKV3kIbsAz8Bboc,3275
|
|
72
|
-
tunacode_cli-0.0.
|
|
73
|
-
tunacode_cli-0.0.
|
|
74
|
-
tunacode_cli-0.0.
|
|
75
|
-
tunacode_cli-0.0.
|
|
76
|
-
tunacode_cli-0.0.
|
|
77
|
-
tunacode_cli-0.0.
|
|
82
|
+
tunacode_cli-0.0.37.dist-info/licenses/LICENSE,sha256=Btzdu2kIoMbdSp6OyCLupB1aRgpTCJ_szMimgEnpkkE,1056
|
|
83
|
+
tunacode_cli-0.0.37.dist-info/METADATA,sha256=1DdlPYbydBr_Wcjnzr6lpCUxSRCE5R7qatJVSqJjj1w,5064
|
|
84
|
+
tunacode_cli-0.0.37.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
85
|
+
tunacode_cli-0.0.37.dist-info/entry_points.txt,sha256=hbkytikj4dGu6rizPuAd_DGUPBGF191RTnhr9wdhORY,51
|
|
86
|
+
tunacode_cli-0.0.37.dist-info/top_level.txt,sha256=lKy2P6BWNi5XSA4DHFvyjQ14V26lDZctwdmhEJrxQbU,9
|
|
87
|
+
tunacode_cli-0.0.37.dist-info/RECORD,,
|