tunacode-cli 0.0.56__py3-none-any.whl → 0.0.57__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 (45) hide show
  1. tunacode/cli/commands/implementations/plan.py +8 -8
  2. tunacode/cli/commands/registry.py +2 -2
  3. tunacode/cli/repl.py +214 -407
  4. tunacode/cli/repl_components/command_parser.py +37 -4
  5. tunacode/cli/repl_components/error_recovery.py +79 -1
  6. tunacode/cli/repl_components/output_display.py +14 -11
  7. tunacode/cli/repl_components/tool_executor.py +7 -4
  8. tunacode/configuration/defaults.py +8 -0
  9. tunacode/constants.py +8 -2
  10. tunacode/core/agents/agent_components/agent_config.py +128 -65
  11. tunacode/core/agents/agent_components/node_processor.py +6 -2
  12. tunacode/core/code_index.py +83 -29
  13. tunacode/core/state.py +1 -1
  14. tunacode/core/token_usage/usage_tracker.py +2 -2
  15. tunacode/core/tool_handler.py +3 -3
  16. tunacode/prompts/system.md +117 -490
  17. tunacode/services/mcp.py +29 -7
  18. tunacode/tools/base.py +110 -0
  19. tunacode/tools/bash.py +96 -1
  20. tunacode/tools/exit_plan_mode.py +114 -32
  21. tunacode/tools/glob.py +366 -33
  22. tunacode/tools/grep.py +226 -77
  23. tunacode/tools/grep_components/result_formatter.py +98 -4
  24. tunacode/tools/list_dir.py +132 -2
  25. tunacode/tools/present_plan.py +111 -31
  26. tunacode/tools/read_file.py +91 -0
  27. tunacode/tools/run_command.py +99 -0
  28. tunacode/tools/schema_assembler.py +167 -0
  29. tunacode/tools/todo.py +108 -1
  30. tunacode/tools/update_file.py +94 -0
  31. tunacode/tools/write_file.py +86 -0
  32. tunacode/types.py +10 -9
  33. tunacode/ui/input.py +1 -0
  34. tunacode/ui/keybindings.py +1 -0
  35. tunacode/ui/panels.py +49 -27
  36. tunacode/ui/prompt_manager.py +13 -7
  37. tunacode/utils/json_utils.py +206 -0
  38. tunacode/utils/ripgrep.py +332 -9
  39. {tunacode_cli-0.0.56.dist-info → tunacode_cli-0.0.57.dist-info}/METADATA +5 -1
  40. {tunacode_cli-0.0.56.dist-info → tunacode_cli-0.0.57.dist-info}/RECORD +44 -43
  41. tunacode/tools/read_file_async_poc.py +0 -196
  42. {tunacode_cli-0.0.56.dist-info → tunacode_cli-0.0.57.dist-info}/WHEEL +0 -0
  43. {tunacode_cli-0.0.56.dist-info → tunacode_cli-0.0.57.dist-info}/entry_points.txt +0 -0
  44. {tunacode_cli-0.0.56.dist-info → tunacode_cli-0.0.57.dist-info}/licenses/LICENSE +0 -0
  45. {tunacode_cli-0.0.56.dist-info → tunacode_cli-0.0.57.dist-info}/top_level.txt +0 -0
@@ -4,23 +4,23 @@ from typing import List
4
4
 
5
5
  from ....types import CommandContext
6
6
  from ....ui import console as ui
7
- from ..base import Command, CommandCategory, CommandSpec, SimpleCommand
7
+ from ..base import CommandCategory, CommandSpec, SimpleCommand
8
8
 
9
9
 
10
10
  class PlanCommand(SimpleCommand):
11
11
  """Enter plan mode for read-only research and planning."""
12
-
12
+
13
13
  spec = CommandSpec(
14
14
  name="plan",
15
15
  aliases=["/plan"],
16
16
  description="Enter Plan Mode - read-only research phase",
17
17
  category=CommandCategory.DEVELOPMENT,
18
18
  )
19
-
19
+
20
20
  async def execute(self, args: List[str], context: CommandContext) -> None:
21
21
  """Enter plan mode."""
22
22
  context.state_manager.enter_plan_mode()
23
-
23
+
24
24
  await ui.info("🔍 Entering Plan Mode")
25
25
  await ui.info("• Only read-only operations available")
26
26
  await ui.info("• Use tools to research and analyze the codebase")
@@ -31,20 +31,20 @@ class PlanCommand(SimpleCommand):
31
31
 
32
32
  class ExitPlanCommand(SimpleCommand):
33
33
  """Exit plan mode manually."""
34
-
34
+
35
35
  spec = CommandSpec(
36
36
  name="exit-plan",
37
37
  aliases=["/exit-plan"],
38
38
  description="Exit Plan Mode and return to normal mode",
39
39
  category=CommandCategory.DEVELOPMENT,
40
40
  )
41
-
41
+
42
42
  async def execute(self, args: List[str], context: CommandContext) -> None:
43
43
  """Exit plan mode manually."""
44
44
  if not context.state_manager.is_plan_mode():
45
45
  await ui.warning("Not currently in Plan Mode")
46
46
  return
47
-
47
+
48
48
  context.state_manager.exit_plan_mode()
49
49
  await ui.success("🚪 Exiting Plan Mode - returning to normal mode")
50
- await ui.info("✅ All tools are now available - '⏸ PLAN MODE ON' status removed")
50
+ await ui.info("✅ All tools are now available - '⏸ PLAN MODE ON' status removed")
@@ -130,8 +130,8 @@ class CommandRegistry:
130
130
  InitCommand,
131
131
  TemplateCommand,
132
132
  TodoCommand,
133
- PlanCommand, # Add plan command
134
- ExitPlanCommand, # Add exit plan command
133
+ PlanCommand, # Add plan command
134
+ ExitPlanCommand, # Add exit plan command
135
135
  ]
136
136
 
137
137
  # Register all discovered commands