tunacode-cli 0.0.23__py3-none-any.whl → 0.0.24__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/main.py CHANGED
@@ -14,6 +14,7 @@ from tunacode.core.state import StateManager
14
14
  from tunacode.setup import setup
15
15
  from tunacode.ui import console as ui
16
16
  from tunacode.utils.system import check_for_updates
17
+ from tunacode.exceptions import UserAbortError
17
18
 
18
19
  app_settings = ApplicationSettings()
19
20
  app = typer.Typer(help="🐟 TunaCode - Your AI-powered development assistant")
@@ -49,6 +50,9 @@ def main(
49
50
  try:
50
51
  await setup(run_setup, state_manager, cli_config)
51
52
  await repl(state_manager)
53
+ except (KeyboardInterrupt, UserAbortError):
54
+ update_task.cancel()
55
+ return
52
56
  except Exception as e:
53
57
  from tunacode.exceptions import ConfigurationError
54
58
 
tunacode/cli/repl.py CHANGED
@@ -282,6 +282,7 @@ async def process_request(text: str, state_manager: StateManager, output: bool =
282
282
 
283
283
  async def repl(state_manager: StateManager):
284
284
  action = None
285
+ ctrl_c_pressed = False
285
286
 
286
287
  # Professional startup information
287
288
  await ui.muted(f"• Model: {state_manager.session.current_model}")
@@ -294,12 +295,18 @@ async def repl(state_manager: StateManager):
294
295
  while True:
295
296
  try:
296
297
  line = await ui.multiline_input(state_manager, _command_registry)
297
- except (EOFError, KeyboardInterrupt):
298
- break
298
+ except UserAbortError:
299
+ if ctrl_c_pressed:
300
+ break
301
+ ctrl_c_pressed = True
302
+ await ui.warning("Hit Ctrl+C again to exit")
303
+ continue
299
304
 
300
305
  if not line:
301
306
  continue
302
307
 
308
+ ctrl_c_pressed = False
309
+
303
310
  if line.lower() in ["exit", "quit"]:
304
311
  break
305
312
 
tunacode/constants.py CHANGED
@@ -7,7 +7,7 @@ Centralizes all magic strings, UI text, error messages, and application constant
7
7
 
8
8
  # Application info
9
9
  APP_NAME = "TunaCode"
10
- APP_VERSION = "0.0.23"
10
+ APP_VERSION = "0.0.24"
11
11
 
12
12
  # File patterns
13
13
  GUIDE_FILE_PATTERN = "{name}.md"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tunacode-cli
3
- Version: 0.0.23
3
+ Version: 0.0.24
4
4
  Summary: Your agentic CLI developer.
5
5
  Author-email: larock22 <noreply@github.com>
6
6
  License-Expression: MIT
@@ -30,6 +30,7 @@ Requires-Dist: black; extra == "dev"
30
30
  Requires-Dist: flake8; extra == "dev"
31
31
  Requires-Dist: isort; extra == "dev"
32
32
  Requires-Dist: pytest; extra == "dev"
33
+ Requires-Dist: pytest-asyncio; extra == "dev"
33
34
  Requires-Dist: pytest-cov; extra == "dev"
34
35
  Requires-Dist: textual-dev; extra == "dev"
35
36
  Dynamic: license-file
@@ -131,6 +132,24 @@ Dynamic: license-file
131
132
  pip install tunacode-cli
132
133
  ```
133
134
 
135
+ #### Development Installation
136
+
137
+ ```bash
138
+ # Clone the repository
139
+ git clone https://github.com/larock22/tunacode.git
140
+ cd tunacode
141
+
142
+ # Run the setup script
143
+ ./scripts/setup_dev_env.sh
144
+
145
+ # Or manually:
146
+ python3 -m venv venv
147
+ source venv/bin/activate
148
+ pip install -e ".[dev]"
149
+ ```
150
+
151
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed development setup.
152
+
134
153
  #### One-line Install (Linux/macOS)
135
154
 
136
155
  ```bash
@@ -1,5 +1,5 @@
1
1
  tunacode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- tunacode/constants.py,sha256=2jfeC5Mi61_MQrkQtkZY17EIDBxowgIpFLeAqDc3Lh4,3799
2
+ tunacode/constants.py,sha256=UXLTZopdI4tNlRFmB5uApx45cRqJ61gZVCLaOlw80TI,3799
3
3
  tunacode/context.py,sha256=6sterdRvPOyG3LU0nEAXpBsEPZbO3qtPyTlJBi-_VXE,2612
4
4
  tunacode/exceptions.py,sha256=_Dyj6cC0868dMABekdQHXCg5XhucJumbGUMXaSDzgB4,2645
5
5
  tunacode/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -7,8 +7,8 @@ tunacode/setup.py,sha256=dYn0NeAxtNIDSogWEmGSyjb9wsr8AonZ8vAo5sw9NIw,1909
7
7
  tunacode/types.py,sha256=wH0nqGTJ_yllLzbhTJpiYjy30LDAmSqfWgzuOUZ0ZHM,7150
8
8
  tunacode/cli/__init__.py,sha256=zgs0UbAck8hfvhYsWhWOfBe5oK09ug2De1r4RuQZREA,55
9
9
  tunacode/cli/commands.py,sha256=VblfttlJsl66pZWy-r3m7grEtHle55jo2wcXI38Anuw,30798
10
- tunacode/cli/main.py,sha256=CQagXhgd-ZXprUk37-jLw_ijbXnc7_U-4R1hjWWTIrU,2255
11
- tunacode/cli/repl.py,sha256=3S1d8uyOY3oiN5zyAOdPK-lzrDbH1poOXMF8KxdPaFI,13511
10
+ tunacode/cli/main.py,sha256=jQ58azaubmqQQHEogeoquVEL-98d_7HaU1_2FcTlOCw,2406
11
+ tunacode/cli/repl.py,sha256=sXtRHYameAlMjlee82ix8P2JjRyWLrdFfHwxfaMKPb8,13722
12
12
  tunacode/cli/textual_app.py,sha256=14-Nt0IIETmyHBrNn9uwSF3EwCcutwTp6gdoKgNm0sY,12593
13
13
  tunacode/cli/textual_bridge.py,sha256=CTuf5Yjg5occQa7whyopS_erbJdS2UpWqaX_TVJ2D2A,6140
14
14
  tunacode/configuration/__init__.py,sha256=MbVXy8bGu0yKehzgdgZ_mfWlYGvIdb1dY2Ly75nfuPE,17
@@ -68,9 +68,9 @@ tunacode/utils/ripgrep.py,sha256=AXUs2FFt0A7KBV996deS8wreIlUzKOlAHJmwrcAr4No,583
68
68
  tunacode/utils/system.py,sha256=FSoibTIH0eybs4oNzbYyufIiV6gb77QaeY2yGqW39AY,11381
69
69
  tunacode/utils/text_utils.py,sha256=B9M1cuLTm_SSsr15WNHF6j7WdLWPvWzKZV0Lvfgdbjg,2458
70
70
  tunacode/utils/user_configuration.py,sha256=IGvUH37wWtZ4M5xpukZEWYhtuKKyKcl6DaeObGXdleU,2610
71
- tunacode_cli-0.0.23.dist-info/licenses/LICENSE,sha256=Btzdu2kIoMbdSp6OyCLupB1aRgpTCJ_szMimgEnpkkE,1056
72
- tunacode_cli-0.0.23.dist-info/METADATA,sha256=8_10wxhHbeG1TG-WjMVv7eYgmB9rEv8iX2jxvgrC6hU,18552
73
- tunacode_cli-0.0.23.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
74
- tunacode_cli-0.0.23.dist-info/entry_points.txt,sha256=hbkytikj4dGu6rizPuAd_DGUPBGF191RTnhr9wdhORY,51
75
- tunacode_cli-0.0.23.dist-info/top_level.txt,sha256=lKy2P6BWNi5XSA4DHFvyjQ14V26lDZctwdmhEJrxQbU,9
76
- tunacode_cli-0.0.23.dist-info/RECORD,,
71
+ tunacode_cli-0.0.24.dist-info/licenses/LICENSE,sha256=Btzdu2kIoMbdSp6OyCLupB1aRgpTCJ_szMimgEnpkkE,1056
72
+ tunacode_cli-0.0.24.dist-info/METADATA,sha256=UGjot1qmeyYwcRbVHqsruMwLOP0YrbgTsW-flg2Yde4,18937
73
+ tunacode_cli-0.0.24.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
74
+ tunacode_cli-0.0.24.dist-info/entry_points.txt,sha256=hbkytikj4dGu6rizPuAd_DGUPBGF191RTnhr9wdhORY,51
75
+ tunacode_cli-0.0.24.dist-info/top_level.txt,sha256=lKy2P6BWNi5XSA4DHFvyjQ14V26lDZctwdmhEJrxQbU,9
76
+ tunacode_cli-0.0.24.dist-info/RECORD,,