tunacode-cli 0.0.19__tar.gz → 0.0.21__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 (92) hide show
  1. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/PKG-INFO +1 -1
  2. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/pyproject.toml +1 -1
  3. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/cli/main.py +3 -1
  4. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/constants.py +1 -1
  5. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/setup/config_setup.py +22 -2
  6. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode_cli.egg-info/PKG-INFO +1 -1
  7. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/LICENSE +0 -0
  8. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/README.md +0 -0
  9. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/setup.cfg +0 -0
  10. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/setup.py +0 -0
  11. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/__init__.py +0 -0
  12. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/cli/__init__.py +0 -0
  13. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/cli/commands.py +0 -0
  14. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/cli/repl.py +0 -0
  15. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/cli/textual_app.py +0 -0
  16. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/cli/textual_bridge.py +0 -0
  17. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/configuration/__init__.py +0 -0
  18. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/configuration/defaults.py +0 -0
  19. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/configuration/models.py +0 -0
  20. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/configuration/settings.py +0 -0
  21. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/context.py +0 -0
  22. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/__init__.py +0 -0
  23. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/agents/__init__.py +0 -0
  24. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/agents/main.py +0 -0
  25. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/agents/orchestrator.py +0 -0
  26. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/agents/planner_schema.py +0 -0
  27. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/agents/readonly.py +0 -0
  28. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/background/__init__.py +0 -0
  29. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/background/manager.py +0 -0
  30. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/llm/__init__.py +0 -0
  31. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/llm/planner.py +0 -0
  32. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/setup/__init__.py +0 -0
  33. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/setup/agent_setup.py +0 -0
  34. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/setup/base.py +0 -0
  35. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/setup/coordinator.py +0 -0
  36. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/setup/environment_setup.py +0 -0
  37. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/setup/git_safety_setup.py +0 -0
  38. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/state.py +0 -0
  39. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/core/tool_handler.py +0 -0
  40. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/exceptions.py +0 -0
  41. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/prompts/system.txt +0 -0
  42. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/py.typed +0 -0
  43. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/services/__init__.py +0 -0
  44. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/services/mcp.py +0 -0
  45. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/setup.py +0 -0
  46. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/tools/__init__.py +0 -0
  47. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/tools/base.py +0 -0
  48. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/tools/bash.py +0 -0
  49. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/tools/grep.py +0 -0
  50. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/tools/read_file.py +0 -0
  51. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/tools/run_command.py +0 -0
  52. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/tools/update_file.py +0 -0
  53. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/tools/write_file.py +0 -0
  54. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/types.py +0 -0
  55. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/ui/__init__.py +0 -0
  56. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/ui/completers.py +0 -0
  57. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/ui/console.py +0 -0
  58. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/ui/constants.py +0 -0
  59. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/ui/decorators.py +0 -0
  60. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/ui/input.py +0 -0
  61. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/ui/keybindings.py +0 -0
  62. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/ui/lexers.py +0 -0
  63. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/ui/output.py +0 -0
  64. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/ui/panels.py +0 -0
  65. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/ui/prompt_manager.py +0 -0
  66. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/ui/tool_ui.py +0 -0
  67. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/ui/validators.py +0 -0
  68. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/utils/__init__.py +0 -0
  69. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/utils/bm25.py +0 -0
  70. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/utils/diff_utils.py +0 -0
  71. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/utils/file_utils.py +0 -0
  72. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/utils/import_cache.py +0 -0
  73. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/utils/ripgrep.py +0 -0
  74. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/utils/system.py +0 -0
  75. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/utils/text_utils.py +0 -0
  76. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode/utils/user_configuration.py +0 -0
  77. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode_cli.egg-info/SOURCES.txt +0 -0
  78. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode_cli.egg-info/dependency_links.txt +0 -0
  79. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode_cli.egg-info/entry_points.txt +0 -0
  80. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode_cli.egg-info/requires.txt +0 -0
  81. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/src/tunacode_cli.egg-info/top_level.txt +0 -0
  82. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/tests/test_architect_integration.py +0 -0
  83. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/tests/test_architect_simple.py +0 -0
  84. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/tests/test_background_manager.py +0 -0
  85. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/tests/test_fast_glob_search.py +0 -0
  86. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/tests/test_file_reference_expansion.py +0 -0
  87. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/tests/test_json_tool_parsing.py +0 -0
  88. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/tests/test_orchestrator_file_references.py +0 -0
  89. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/tests/test_orchestrator_import.py +0 -0
  90. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/tests/test_orchestrator_planning_visibility.py +0 -0
  91. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/tests/test_react_thoughts.py +0 -0
  92. {tunacode_cli-0.0.19 → tunacode_cli-0.0.21}/tests/test_update_command.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tunacode-cli
3
- Version: 0.0.19
3
+ Version: 0.0.21
4
4
  Summary: Your agentic CLI developer.
5
5
  Author-email: larock22 <noreply@github.com>
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tunacode-cli"
7
- version = "0.0.19"
7
+ version = "0.0.21"
8
8
  description = "Your agentic CLI developer."
9
9
  keywords = ["cli", "agent", "development", "automation"]
10
10
  readme = "README.md"
@@ -50,7 +50,9 @@ def main(
50
50
  await setup(run_setup, state_manager, cli_config)
51
51
  await repl(state_manager)
52
52
  except Exception as e:
53
- await ui.error(str(e))
53
+ import traceback
54
+
55
+ await ui.error(f"{str(e)}\n\nTraceback:\n{traceback.format_exc()}")
54
56
 
55
57
  has_update, latest_version = await update_task
56
58
  if has_update:
@@ -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.19"
10
+ APP_VERSION = "0.0.21"
11
11
 
12
12
  # File patterns
13
13
  GUIDE_FILE_PATTERN = "{name}.md"
@@ -75,6 +75,12 @@ class ConfigSetup(BaseSetup):
75
75
  else:
76
76
  if force_setup:
77
77
  await ui.muted("Running setup process, resetting config")
78
+ # Ensure user_config is properly initialized
79
+ if (
80
+ not hasattr(self.state_manager.session, "user_config")
81
+ or self.state_manager.session.user_config is None
82
+ ):
83
+ self.state_manager.session.user_config = {}
78
84
  self.state_manager.session.user_config = DEFAULT_USER_CONFIG.copy()
79
85
  user_configuration.save_config(
80
86
  self.state_manager
@@ -150,7 +156,9 @@ class ConfigSetup(BaseSetup):
150
156
 
151
157
  # Only continue if at least one API key was provided
152
158
  env = self.state_manager.session.user_config.get("env", {})
153
- has_api_key = any(key.endswith("_API_KEY") and env.get(key) for key in env)
159
+ has_api_key = (
160
+ any(key.endswith("_API_KEY") and env.get(key) for key in env) if env else False
161
+ )
154
162
 
155
163
  if has_api_key:
156
164
  if not self.state_manager.session.user_config.get("default_model"):
@@ -179,7 +187,15 @@ class ConfigSetup(BaseSetup):
179
187
  "Skip the ones you don't need."
180
188
  )
181
189
  await ui.panel("Setup", message, border_style=UI_COLORS["primary"])
182
- env_keys = self.state_manager.session.user_config["env"].copy()
190
+ env_config = self.state_manager.session.user_config.get("env")
191
+ if not env_config:
192
+ self.state_manager.session.user_config["env"] = DEFAULT_USER_CONFIG["env"].copy()
193
+ env_config = self.state_manager.session.user_config["env"]
194
+
195
+ # Ensure env_config is not None before copying
196
+ if env_config is None:
197
+ env_config = {}
198
+ env_keys = env_config.copy()
183
199
  for key in env_keys:
184
200
  provider = key_to_title(key)
185
201
  val = await ui.input(
@@ -248,6 +264,10 @@ class ConfigSetup(BaseSetup):
248
264
 
249
265
  # Apply CLI overrides
250
266
  if self.cli_config.get("key"):
267
+ # Ensure env dict exists
268
+ if "env" not in self.state_manager.session.user_config:
269
+ self.state_manager.session.user_config["env"] = {}
270
+
251
271
  # Determine which API key to set based on the model or baseurl
252
272
  if self.cli_config.get("baseurl") and "openrouter" in self.cli_config["baseurl"]:
253
273
  self.state_manager.session.user_config["env"]["OPENROUTER_API_KEY"] = (
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tunacode-cli
3
- Version: 0.0.19
3
+ Version: 0.0.21
4
4
  Summary: Your agentic CLI developer.
5
5
  Author-email: larock22 <noreply@github.com>
6
6
  License-Expression: MIT
File without changes
File without changes
File without changes
File without changes