tunacode-cli 0.0.44__tar.gz → 0.0.46__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.
- {tunacode_cli-0.0.44/src/tunacode_cli.egg-info → tunacode_cli-0.0.46}/PKG-INFO +32 -8
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/README.md +25 -1
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/pyproject.toml +7 -7
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/cli/repl.py +14 -7
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/configuration/defaults.py +0 -1
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/constants.py +1 -1
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/agents/main.py +288 -342
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/recursive/aggregator.py +2 -2
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/recursive/decomposer.py +1 -1
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/recursive/executor.py +11 -8
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/ui/input.py +2 -1
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/ui/keybindings.py +17 -1
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/ui/panels.py +9 -2
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46/src/tunacode_cli.egg-info}/PKG-INFO +32 -8
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode_cli.egg-info/SOURCES.txt +0 -5
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode_cli.egg-info/requires.txt +0 -2
- tunacode_cli-0.0.46/tests/characterization/repl/test_repl_initialization.py +114 -0
- tunacode_cli-0.0.44/src/tunacode/core/agents/dspy_integration.py +0 -223
- tunacode_cli-0.0.44/src/tunacode/core/agents/dspy_tunacode.py +0 -458
- tunacode_cli-0.0.44/src/tunacode/prompts/dspy_task_planning.md +0 -45
- tunacode_cli-0.0.44/src/tunacode/prompts/dspy_tool_selection.md +0 -58
- tunacode_cli-0.0.44/tests/characterization/repl/test_repl_initialization.py +0 -59
- tunacode_cli-0.0.44/tests/test_dspy_integration.py +0 -127
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/CLAUDE.md +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/LICENSE +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/MANIFEST.in +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/TUNACODE.md +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/setup.cfg +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/setup.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/cli/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/cli/commands/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/cli/commands/base.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/cli/commands/implementations/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/cli/commands/implementations/conversation.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/cli/commands/implementations/debug.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/cli/commands/implementations/development.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/cli/commands/implementations/model.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/cli/commands/implementations/system.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/cli/commands/implementations/todo.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/cli/commands/registry.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/cli/main.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/configuration/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/configuration/models.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/configuration/settings.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/context.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/agents/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/agents/utils.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/background/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/background/manager.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/code_index.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/llm/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/recursive/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/recursive/budget.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/recursive/hierarchy.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/setup/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/setup/agent_setup.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/setup/base.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/setup/config_setup.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/setup/coordinator.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/setup/environment_setup.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/setup/git_safety_setup.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/state.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/token_usage/api_response_parser.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/token_usage/cost_calculator.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/token_usage/usage_tracker.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/core/tool_handler.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/exceptions.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/prompts/system.md +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/py.typed +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/services/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/services/mcp.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/setup.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/tools/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/tools/base.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/tools/bash.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/tools/glob.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/tools/grep.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/tools/list_dir.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/tools/read_file.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/tools/read_file_async_poc.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/tools/run_command.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/tools/todo.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/tools/update_file.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/tools/write_file.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/types.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/ui/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/ui/completers.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/ui/console.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/ui/constants.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/ui/decorators.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/ui/lexers.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/ui/output.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/ui/prompt_manager.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/ui/recursive_progress.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/ui/tool_ui.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/ui/utils.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/ui/validators.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/utils/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/utils/bm25.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/utils/diff_utils.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/utils/file_utils.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/utils/import_cache.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/utils/message_utils.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/utils/retry.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/utils/ripgrep.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/utils/security.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/utils/system.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/utils/text_utils.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/utils/token_counter.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode/utils/user_configuration.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode_cli.egg-info/dependency_links.txt +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode_cli.egg-info/entry_points.txt +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/src/tunacode_cli.egg-info/top_level.txt +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/agent/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/agent/conftest.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/agent/test_agent_creation.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/agent/test_json_tool_parsing.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/agent/test_process_node.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/agent/test_process_request.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/agent/test_tool_message_patching.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/background/test_background_edge_cases.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/background/test_cleanup.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/background/test_task_cancellation.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/background/test_task_creation.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/background/test_task_execution.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/code_index/test_cache_management.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/code_index/test_file_scanning.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/code_index/test_index_building.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/code_index/test_search_operations.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/code_index/test_symbol_extraction.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/commands/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/commands/test_init_command.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/conftest.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/context/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/context/test_context_acceptance.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/context/test_context_integration.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/context/test_context_loading.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/context/test_tunacode_logging.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/repl/test_command_parsing.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/repl/test_error_handling.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/repl/test_input_handling.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/repl/test_keyboard_interrupts.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/repl/test_multiline_input.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/repl/test_output_display_logic.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/repl/test_session_flow.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/services/test_error_recovery.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/services/test_llm_routing.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/services/test_mcp_integration.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/services/test_service_lifecycle.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/state/test_agent_tracking.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/state/test_message_history.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/state/test_permissions.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/state/test_session_management.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/state/test_state_initialization.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/state/test_user_config.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/test_characterization_commands.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/ui/test_async_ui.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/ui/test_console_output.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/ui/test_diff_display.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/ui/test_prompt_rendering.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/ui/test_tool_confirmations.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/utils/conftest.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/utils/test_expand_file_refs.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/utils/test_file_operations.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/utils/test_git_commands.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/utils/test_token_counting.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/characterization/utils/test_utils_edge_cases.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/conftest.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/crud/test_core_file_operations.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/fixtures/__init__.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/fixtures/file_operations.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/integration/test_error_recovery_flow.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/integration/test_full_session_flow.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/integration/test_mcp_tool_flow.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/integration/test_multi_tool_operations.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/integration/test_performance_scenarios.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/integration/test_usage_tracking_integration.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_actual_parallelism.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_agent_initialization.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_agent_output_formatting.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_api_response_parser.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_background_manager.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_characterization_agent_main.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_characterization_bash.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_characterization_commands_system.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_characterization_glob.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_characterization_grep.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_characterization_grep_performance.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_characterization_iteration_limits.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_characterization_list_dir.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_characterization_read_file.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_characterization_repl_utils.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_characterization_run_command.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_characterization_setup_system.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_characterization_tool_ui_behavior.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_characterization_update_file.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_characterization_utilities.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_characterization_write_file.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_cli_command_flow.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_cli_file_operations_integration.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_config_directory_creation.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_config_setup_async.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_cost_calculator.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_enhanced_visual_feedback.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_fallback_responses.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_fast_glob_search.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_file_operations_edge_cases.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_file_operations_stress.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_file_reference_context_tracking.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_file_reference_expansion.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_grep_fast_glob.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_grep_legacy_compat.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_grep_timeout.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_json_retry.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_json_tool_parsing.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_list_dir.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_parallel_execution_demo.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_parallel_execution_freeze_fix.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_parallel_execution_integration.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_parallel_read_only_tools.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_parallel_tool_execution.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_prompt_changes_validation.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_read_only_confirmation.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_security.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_streaming_panel_tool_confirmation.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_streaming_spinner_conflict.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_todo_functionality.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_tool_batching_retry.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_tool_categorization.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_tool_combinations.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_tool_handler_ui_messages.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_update_command.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/test_visual_parallel_feedback.py +0 -0
- {tunacode_cli-0.0.44 → tunacode_cli-0.0.46}/tests/unit/test_recursive_executor.py +0 -0
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tunacode-cli
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.46
|
|
4
4
|
Summary: Your agentic CLI developer.
|
|
5
5
|
Author-email: larock22 <noreply@github.com>
|
|
6
|
-
License
|
|
7
|
-
Project-URL: Homepage, https://
|
|
8
|
-
Project-URL: Repository, https://github.com/
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://tunacode.xyz/
|
|
8
|
+
Project-URL: Repository, https://github.com/alchemiststudiosDOTai/tunacode
|
|
9
|
+
Project-URL: Issues, https://github.com/alchemiststudiosDOTai/tunacode/issues
|
|
10
|
+
Project-URL: Documentation, https://github.com/alchemiststudiosDOTai/tunacode#readme
|
|
9
11
|
Keywords: cli,agent,development,automation
|
|
10
12
|
Classifier: Development Status :: 4 - Beta
|
|
11
13
|
Classifier: Intended Audience :: Developers
|
|
@@ -16,7 +18,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
16
18
|
Classifier: Programming Language :: Python :: 3.13
|
|
17
19
|
Classifier: Topic :: Software Development
|
|
18
20
|
Classifier: Topic :: Utilities
|
|
19
|
-
Requires-Python:
|
|
21
|
+
Requires-Python: <3.14,>=3.10
|
|
20
22
|
Description-Content-Type: text/markdown
|
|
21
23
|
License-File: LICENSE
|
|
22
24
|
Requires-Dist: typer==0.15.3
|
|
@@ -25,8 +27,6 @@ Requires-Dist: pydantic-ai[logfire]==0.2.6
|
|
|
25
27
|
Requires-Dist: pygments==2.19.1
|
|
26
28
|
Requires-Dist: rich==14.0.0
|
|
27
29
|
Requires-Dist: tiktoken>=0.5.2
|
|
28
|
-
Requires-Dist: dspy-ai>=0.1.0
|
|
29
|
-
Requires-Dist: python-dotenv>=1.0.0
|
|
30
30
|
Provides-Extra: dev
|
|
31
31
|
Requires-Dist: build; extra == "dev"
|
|
32
32
|
Requires-Dist: ruff; extra == "dev"
|
|
@@ -48,7 +48,7 @@ Dynamic: license-file
|
|
|
48
48
|
|
|
49
49
|
**AI-powered CLI coding assistant**
|
|
50
50
|
|
|
51
|
-

|
|
52
52
|
|
|
53
53
|
</div>
|
|
54
54
|
|
|
@@ -64,6 +64,29 @@ wget -qO- https://raw.githubusercontent.com/alchemiststudiosDOTai/tunacode/maste
|
|
|
64
64
|
pip install tunacode-cli
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
+
## Development Installation
|
|
68
|
+
|
|
69
|
+
For contributors and developers who want to work on TunaCode:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Clone the repository
|
|
73
|
+
git clone https://github.com/alchemiststudiosDOTai/tunacode.git
|
|
74
|
+
cd tunacode
|
|
75
|
+
|
|
76
|
+
# Quick setup (recommended)
|
|
77
|
+
./scripts/setup_dev_env.sh
|
|
78
|
+
|
|
79
|
+
# Or manual setup
|
|
80
|
+
python3 -m venv venv
|
|
81
|
+
source venv/bin/activate # On Windows: venv\Scripts\activate
|
|
82
|
+
pip install -e ".[dev]"
|
|
83
|
+
|
|
84
|
+
# Verify installation
|
|
85
|
+
python -m tunacode --version
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
See [Development Guide](docs/DEVELOPMENT.md) for detailed instructions.
|
|
89
|
+
|
|
67
90
|
## Configuration
|
|
68
91
|
|
|
69
92
|
Choose your AI provider and set your API key:
|
|
@@ -141,6 +164,7 @@ _Note: While the tool is fully functional, we're focusing on stability and core
|
|
|
141
164
|
- [**Advanced Configuration**](docs/ADVANCED-CONFIG.md) - Provider setup, MCP, customization
|
|
142
165
|
- [**Architecture**](docs/ARCHITECTURE.md) - Source code organization and design
|
|
143
166
|
- [**Development**](docs/DEVELOPMENT.md) - Contributing and development setup
|
|
167
|
+
- [**Troubleshooting**](docs/TROUBLESHOOTING.md) - Common issues and solutions
|
|
144
168
|
|
|
145
169
|
## Links
|
|
146
170
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
**AI-powered CLI coding assistant**
|
|
11
11
|
|
|
12
|
-

|
|
13
13
|
|
|
14
14
|
</div>
|
|
15
15
|
|
|
@@ -25,6 +25,29 @@ wget -qO- https://raw.githubusercontent.com/alchemiststudiosDOTai/tunacode/maste
|
|
|
25
25
|
pip install tunacode-cli
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
## Development Installation
|
|
29
|
+
|
|
30
|
+
For contributors and developers who want to work on TunaCode:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Clone the repository
|
|
34
|
+
git clone https://github.com/alchemiststudiosDOTai/tunacode.git
|
|
35
|
+
cd tunacode
|
|
36
|
+
|
|
37
|
+
# Quick setup (recommended)
|
|
38
|
+
./scripts/setup_dev_env.sh
|
|
39
|
+
|
|
40
|
+
# Or manual setup
|
|
41
|
+
python3 -m venv venv
|
|
42
|
+
source venv/bin/activate # On Windows: venv\Scripts\activate
|
|
43
|
+
pip install -e ".[dev]"
|
|
44
|
+
|
|
45
|
+
# Verify installation
|
|
46
|
+
python -m tunacode --version
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
See [Development Guide](docs/DEVELOPMENT.md) for detailed instructions.
|
|
50
|
+
|
|
28
51
|
## Configuration
|
|
29
52
|
|
|
30
53
|
Choose your AI provider and set your API key:
|
|
@@ -102,6 +125,7 @@ _Note: While the tool is fully functional, we're focusing on stability and core
|
|
|
102
125
|
- [**Advanced Configuration**](docs/ADVANCED-CONFIG.md) - Provider setup, MCP, customization
|
|
103
126
|
- [**Architecture**](docs/ARCHITECTURE.md) - Source code organization and design
|
|
104
127
|
- [**Development**](docs/DEVELOPMENT.md) - Contributing and development setup
|
|
128
|
+
- [**Troubleshooting**](docs/TROUBLESHOOTING.md) - Common issues and solutions
|
|
105
129
|
|
|
106
130
|
## Links
|
|
107
131
|
|
|
@@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "tunacode-cli"
|
|
7
|
-
version = "0.0.
|
|
7
|
+
version = "0.0.46"
|
|
8
8
|
description = "Your agentic CLI developer."
|
|
9
9
|
keywords = ["cli", "agent", "development", "automation"]
|
|
10
10
|
readme = "README.md"
|
|
11
|
-
requires-python = ">=3.10"
|
|
12
|
-
license = "MIT"
|
|
11
|
+
requires-python = ">=3.10,<3.14"
|
|
12
|
+
license = {text = "MIT"}
|
|
13
13
|
authors = [
|
|
14
14
|
{ name = "larock22", email = "noreply@github.com" },
|
|
15
15
|
]
|
|
@@ -31,8 +31,6 @@ dependencies = [
|
|
|
31
31
|
"pygments==2.19.1",
|
|
32
32
|
"rich==14.0.0",
|
|
33
33
|
"tiktoken>=0.5.2",
|
|
34
|
-
"dspy-ai>=0.1.0",
|
|
35
|
-
"python-dotenv>=1.0.0",
|
|
36
34
|
]
|
|
37
35
|
|
|
38
36
|
[project.scripts]
|
|
@@ -50,8 +48,10 @@ dev = [
|
|
|
50
48
|
]
|
|
51
49
|
|
|
52
50
|
[project.urls]
|
|
53
|
-
Homepage = "https://
|
|
54
|
-
Repository = "https://github.com/
|
|
51
|
+
Homepage = "https://tunacode.xyz/"
|
|
52
|
+
Repository = "https://github.com/alchemiststudiosDOTai/tunacode"
|
|
53
|
+
Issues = "https://github.com/alchemiststudiosDOTai/tunacode/issues"
|
|
54
|
+
Documentation = "https://github.com/alchemiststudiosDOTai/tunacode#readme"
|
|
55
55
|
|
|
56
56
|
[tool.ruff]
|
|
57
57
|
line-length = 100
|
|
@@ -344,7 +344,7 @@ async def process_request(text: str, state_manager: StateManager, output: bool =
|
|
|
344
344
|
except CancelledError:
|
|
345
345
|
await ui.muted(MSG_REQUEST_CANCELLED)
|
|
346
346
|
except UserAbortError:
|
|
347
|
-
await ui.muted(
|
|
347
|
+
await ui.muted(MSG_OPERATION_ABORTED_BY_USER)
|
|
348
348
|
except UnexpectedModelBehavior as e:
|
|
349
349
|
error_message = str(e)
|
|
350
350
|
await ui.muted(error_message)
|
|
@@ -385,9 +385,13 @@ async def repl(state_manager: StateManager):
|
|
|
385
385
|
|
|
386
386
|
state_manager.session.update_token_count()
|
|
387
387
|
context_display = get_context_window_display(state_manager.session.total_tokens, max_tokens)
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
388
|
+
|
|
389
|
+
# Only show startup info if thoughts are enabled or on first run
|
|
390
|
+
if state_manager.session.show_thoughts or not hasattr(state_manager.session, "_startup_shown"):
|
|
391
|
+
await ui.muted(f"• Model: {model_name} • {context_display}")
|
|
392
|
+
await ui.success("Ready to assist")
|
|
393
|
+
await ui.line()
|
|
394
|
+
state_manager.session._startup_shown = True
|
|
391
395
|
|
|
392
396
|
instance = agent.get_or_create_agent(state_manager.session.current_model, state_manager)
|
|
393
397
|
|
|
@@ -459,13 +463,16 @@ async def repl(state_manager: StateManager):
|
|
|
459
463
|
state_manager.session.current_task = get_app().create_background_task(
|
|
460
464
|
process_request(line, state_manager)
|
|
461
465
|
)
|
|
462
|
-
await state_manager.session.current_task
|
|
463
466
|
|
|
464
467
|
state_manager.session.update_token_count()
|
|
465
468
|
context_display = get_context_window_display(
|
|
466
469
|
state_manager.session.total_tokens, state_manager.session.max_tokens
|
|
467
470
|
)
|
|
468
|
-
|
|
471
|
+
# Only show model/context info if thoughts are enabled
|
|
472
|
+
if state_manager.session.show_thoughts:
|
|
473
|
+
await ui.muted(
|
|
474
|
+
f"• Model: {state_manager.session.current_model} • {context_display}"
|
|
475
|
+
)
|
|
469
476
|
|
|
470
477
|
if action == "restart":
|
|
471
478
|
await repl(state_manager)
|
|
@@ -480,7 +487,7 @@ async def repl(state_manager: StateManager):
|
|
|
480
487
|
total_cost = float(session_total.get("cost", 0) or 0)
|
|
481
488
|
|
|
482
489
|
# Only show summary if we have actual token usage
|
|
483
|
-
if total_tokens > 0 or total_cost > 0:
|
|
490
|
+
if state_manager.session.show_thoughts and (total_tokens > 0 or total_cost > 0):
|
|
484
491
|
summary = (
|
|
485
492
|
f"\n[bold cyan]TunaCode Session Summary[/bold cyan]\n"
|
|
486
493
|
f" - Total Tokens: {total_tokens:,}\n"
|
|
@@ -24,7 +24,6 @@ DEFAULT_USER_CONFIG: UserConfig = {
|
|
|
24
24
|
"fallback_response": True,
|
|
25
25
|
"fallback_verbosity": "normal", # Options: minimal, normal, detailed
|
|
26
26
|
"context_window_size": 200000,
|
|
27
|
-
"use_dspy_optimization": True, # Enable DSPy tool selection optimization
|
|
28
27
|
},
|
|
29
28
|
"mcpServers": {},
|
|
30
29
|
}
|