tunacode-cli 0.0.38__tar.gz → 0.0.39__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.38/src/tunacode_cli.egg-info → tunacode_cli-0.0.39}/PKG-INFO +1 -1
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/pyproject.toml +1 -1
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/constants.py +1 -1
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/prompts/system.md +49 -12
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39/src/tunacode_cli.egg-info}/PKG-INFO +1 -1
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode_cli.egg-info/SOURCES.txt +2 -0
- tunacode_cli-0.0.39/tests/test_agent_output_formatting.py +107 -0
- tunacode_cli-0.0.39/tests/test_prompt_changes_validation.py +35 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/CLAUDE.md +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/LICENSE +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/MANIFEST.in +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/README.md +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/TUNACODE.md +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/setup.cfg +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/setup.py +0 -0
- {tunacode_cli-0.0.38/src/tunacode/utils → tunacode_cli-0.0.39/src/tunacode}/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/commands/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/commands/base.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/commands/implementations/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/commands/implementations/conversation.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/commands/implementations/debug.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/commands/implementations/development.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/commands/implementations/model.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/commands/implementations/system.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/commands/registry.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/main.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/repl.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/textual_app.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/textual_bridge.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/configuration/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/configuration/defaults.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/configuration/models.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/configuration/settings.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/context.py +0 -0
- {tunacode_cli-0.0.38/src/tunacode/core/llm → tunacode_cli-0.0.39/src/tunacode/core}/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/core/agents/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/core/agents/main.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/core/agents/utils.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/core/background/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/core/background/manager.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/core/code_index.py +0 -0
- {tunacode_cli-0.0.38/src/tunacode/core → tunacode_cli-0.0.39/src/tunacode/core/llm}/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/core/setup/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/core/setup/agent_setup.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/core/setup/base.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/core/setup/config_setup.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/core/setup/coordinator.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/core/setup/environment_setup.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/core/setup/git_safety_setup.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/core/state.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/core/tool_handler.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/exceptions.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/py.typed +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/services/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/services/mcp.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/setup.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/tools/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/tools/base.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/tools/bash.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/tools/glob.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/tools/grep.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/tools/list_dir.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/tools/read_file.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/tools/read_file_async_poc.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/tools/run_command.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/tools/update_file.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/tools/write_file.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/types.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/ui/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/ui/completers.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/ui/console.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/ui/constants.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/ui/decorators.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/ui/input.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/ui/keybindings.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/ui/lexers.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/ui/output.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/ui/panels.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/ui/prompt_manager.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/ui/tool_ui.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/ui/utils.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/ui/validators.py +0 -0
- {tunacode_cli-0.0.38/src/tunacode → tunacode_cli-0.0.39/src/tunacode/utils}/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/utils/bm25.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/utils/diff_utils.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/utils/file_utils.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/utils/import_cache.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/utils/ripgrep.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/utils/security.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/utils/system.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/utils/text_utils.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/utils/token_counter.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/utils/user_configuration.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode_cli.egg-info/dependency_links.txt +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode_cli.egg-info/entry_points.txt +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode_cli.egg-info/requires.txt +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode_cli.egg-info/top_level.txt +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/agent/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/agent/conftest.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/agent/test_agent_creation.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/agent/test_json_tool_parsing.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/agent/test_process_node.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/agent/test_process_request.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/agent/test_tool_message_patching.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/background/test_background_edge_cases.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/background/test_cleanup.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/background/test_task_cancellation.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/background/test_task_creation.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/background/test_task_execution.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/code_index/test_cache_management.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/code_index/test_file_scanning.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/code_index/test_index_building.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/code_index/test_search_operations.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/code_index/test_symbol_extraction.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/commands/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/commands/test_init_command.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/conftest.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/context/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/context/test_context_acceptance.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/context/test_context_integration.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/context/test_context_loading.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/context/test_tunacode_logging.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/repl/test_command_parsing.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/repl/test_input_handling.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/repl/test_keyboard_interrupts.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/repl/test_multiline_input.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/repl/test_repl_initialization.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/repl/test_session_flow.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/services/test_error_recovery.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/services/test_llm_routing.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/services/test_mcp_integration.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/services/test_service_lifecycle.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/state/test_agent_tracking.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/state/test_message_history.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/state/test_permissions.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/state/test_session_management.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/state/test_state_initialization.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/state/test_user_config.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/test_characterization_commands.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/ui/test_async_ui.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/ui/test_console_output.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/ui/test_diff_display.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/ui/test_prompt_rendering.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/ui/test_tool_confirmations.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/utils/test_file_operations.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/utils/test_git_commands.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/utils/test_token_counting.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/utils/test_utils_edge_cases.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/conftest.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/crud/test_core_file_operations.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/fixtures/__init__.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/fixtures/file_operations.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/integration/test_error_recovery_flow.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/integration/test_full_session_flow.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/integration/test_mcp_tool_flow.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/integration/test_multi_tool_operations.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/integration/test_performance_scenarios.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_actual_parallelism.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_agent_initialization.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_background_manager.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_characterization_agent_main.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_characterization_bash.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_characterization_commands_system.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_characterization_glob.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_characterization_grep.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_characterization_grep_performance.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_characterization_iteration_limits.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_characterization_list_dir.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_characterization_read_file.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_characterization_repl_utils.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_characterization_run_command.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_characterization_setup_system.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_characterization_tool_ui_behavior.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_characterization_update_file.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_characterization_utilities.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_characterization_write_file.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_cli_command_flow.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_cli_file_operations_integration.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_config_directory_creation.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_config_setup_async.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_enhanced_visual_feedback.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_fallback_responses.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_fast_glob_search.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_file_operations_edge_cases.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_file_operations_stress.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_file_reference_context_tracking.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_file_reference_expansion.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_grep_fast_glob.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_grep_legacy_compat.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_grep_timeout.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_json_tool_parsing.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_list_dir.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_parallel_execution_demo.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_parallel_execution_freeze_fix.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_parallel_execution_integration.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_parallel_read_only_tools.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_parallel_tool_execution.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_read_only_confirmation.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_security.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_streaming_panel_tool_confirmation.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_streaming_spinner_conflict.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_tool_categorization.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_tool_combinations.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_tool_handler_ui_messages.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_update_command.py +0 -0
- {tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/test_visual_parallel_feedback.py +0 -0
|
@@ -256,13 +256,48 @@ If deeper exploration needed:
|
|
|
256
256
|
|
|
257
257
|
\###Meta Behavior###
|
|
258
258
|
|
|
259
|
-
Use the **ReAct** (Reasoning + Action) framework:
|
|
259
|
+
Use the **ReAct** (Reasoning + Action) framework internally:
|
|
260
260
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
-
|
|
265
|
-
-
|
|
261
|
+
**IMPORTANT**: Thoughts are for internal reasoning only. NEVER include JSON-formatted thoughts in your responses to users.
|
|
262
|
+
|
|
263
|
+
Internal process (not shown to user):
|
|
264
|
+
- Think: "I need to inspect the file before modifying."
|
|
265
|
+
- Act: run tool
|
|
266
|
+
- Think: "I see the old import. Now I'll patch it."
|
|
267
|
+
- Act: update file
|
|
268
|
+
- Think: "Patch complete. Ready for next instruction."
|
|
269
|
+
|
|
270
|
+
**Your responses to users should be clean, formatted text without JSON artifacts.**
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
\###Output Formatting Rules###
|
|
275
|
+
|
|
276
|
+
**CRITICAL**: Your responses to users must be clean, readable text:
|
|
277
|
+
|
|
278
|
+
1. **NO JSON in responses** - Never output {"thought": ...}, {"suggestions": ...}, or any JSON to users
|
|
279
|
+
2. **Use markdown formatting** - Use headers, lists, code blocks for readability
|
|
280
|
+
3. **Be direct and clear** - Provide actionable feedback and concrete suggestions
|
|
281
|
+
4. **Format suggestions as numbered or bulleted lists** - Not as JSON arrays
|
|
282
|
+
|
|
283
|
+
**Example of GOOD response formatting:**
|
|
284
|
+
```
|
|
285
|
+
Code Review Results:
|
|
286
|
+
|
|
287
|
+
The JavaScript code has good structure. Here are suggestions for improvement:
|
|
288
|
+
|
|
289
|
+
1. **Add comments** - Document major functions for better maintainability
|
|
290
|
+
2. **Consistent error handling** - Use try-catch blocks consistently
|
|
291
|
+
3. **Form validation** - Validate before submitting to ensure fields are filled
|
|
292
|
+
|
|
293
|
+
These changes will improve maintainability and user experience.
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Example of BAD response formatting (DO NOT DO THIS):**
|
|
297
|
+
```
|
|
298
|
+
{"thought": "Reviewing the code..."}
|
|
299
|
+
{"suggestions": ["Add comments", "Error handling", "Validation"]}
|
|
300
|
+
```
|
|
266
301
|
|
|
267
302
|
---
|
|
268
303
|
|
|
@@ -281,12 +316,13 @@ When users provide @ file references, they want information, not file creation.
|
|
|
281
316
|
```plaintext
|
|
282
317
|
User: What's the current app version?
|
|
283
318
|
|
|
284
|
-
|
|
319
|
+
[Internal thinking - not shown to user]
|
|
285
320
|
ACT: grep("APP_VERSION", ".")
|
|
286
|
-
|
|
321
|
+
[Found APP_VERSION in constants.py at line 12]
|
|
287
322
|
ACT: read_file("constants.py")
|
|
288
|
-
|
|
289
|
-
|
|
323
|
+
[APP_VERSION is set to '2.4.1']
|
|
324
|
+
|
|
325
|
+
RESPONSE TO USER: Current version is 2.4.1 (from constants.py)
|
|
290
326
|
```
|
|
291
327
|
|
|
292
328
|
````plaintext
|
|
@@ -300,8 +336,9 @@ def main():
|
|
|
300
336
|
|
|
301
337
|
=== END FILE REFERENCE: src/main.py ===
|
|
302
338
|
|
|
303
|
-
|
|
304
|
-
|
|
339
|
+
[Internal: User is asking about the referenced file, not asking me to create it]
|
|
340
|
+
|
|
341
|
+
RESPONSE TO USER: The main.py file contains a simple main function that prints 'Hello World'.
|
|
305
342
|
|
|
306
343
|
```
|
|
307
344
|
|
|
@@ -95,6 +95,7 @@ src/tunacode_cli.egg-info/top_level.txt
|
|
|
95
95
|
tests/conftest.py
|
|
96
96
|
tests/test_actual_parallelism.py
|
|
97
97
|
tests/test_agent_initialization.py
|
|
98
|
+
tests/test_agent_output_formatting.py
|
|
98
99
|
tests/test_background_manager.py
|
|
99
100
|
tests/test_characterization_agent_main.py
|
|
100
101
|
tests/test_characterization_bash.py
|
|
@@ -133,6 +134,7 @@ tests/test_parallel_execution_freeze_fix.py
|
|
|
133
134
|
tests/test_parallel_execution_integration.py
|
|
134
135
|
tests/test_parallel_read_only_tools.py
|
|
135
136
|
tests/test_parallel_tool_execution.py
|
|
137
|
+
tests/test_prompt_changes_validation.py
|
|
136
138
|
tests/test_read_only_confirmation.py
|
|
137
139
|
tests/test_security.py
|
|
138
140
|
tests/test_streaming_panel_tool_confirmation.py
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"""Tests for agent output formatting to ensure clean display without JSON artifacts."""
|
|
2
|
+
|
|
3
|
+
from unittest.mock import AsyncMock, MagicMock, patch
|
|
4
|
+
|
|
5
|
+
import pytest
|
|
6
|
+
|
|
7
|
+
from tunacode.cli.repl import process_request
|
|
8
|
+
from tunacode.types import SimpleResult
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class TestAgentOutputFormatting:
|
|
12
|
+
"""Test that agent output is properly formatted for users."""
|
|
13
|
+
|
|
14
|
+
def _create_mock_state_manager(self):
|
|
15
|
+
"""Create a properly configured mock StateManager."""
|
|
16
|
+
state_manager = MagicMock()
|
|
17
|
+
state_manager.session = MagicMock()
|
|
18
|
+
state_manager.session.messages = []
|
|
19
|
+
state_manager.session.show_thoughts = False
|
|
20
|
+
state_manager.session.user_config = {"settings": {"enable_streaming": False}}
|
|
21
|
+
state_manager.session.spinner = None
|
|
22
|
+
state_manager.session.files_in_context = set()
|
|
23
|
+
state_manager.session.is_streaming_active = False
|
|
24
|
+
return state_manager
|
|
25
|
+
|
|
26
|
+
@pytest.mark.asyncio
|
|
27
|
+
async def test_agent_output_without_json_thoughts(self):
|
|
28
|
+
"""Agent should return clean formatted text without JSON thought artifacts."""
|
|
29
|
+
# Arrange
|
|
30
|
+
state_manager = self._create_mock_state_manager()
|
|
31
|
+
|
|
32
|
+
# Mock agent response with JSON thought that should be filtered
|
|
33
|
+
mock_response = MagicMock()
|
|
34
|
+
mock_response.result = SimpleResult(
|
|
35
|
+
output='{"thought": "Reviewing the current JavaScript code..."}\n'
|
|
36
|
+
'{"suggestions": ["1. Add comments to functions", "2. Use consistent error handling"]}'
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
with patch(
|
|
40
|
+
"tunacode.cli.repl.agent.process_request", new_callable=AsyncMock
|
|
41
|
+
) as mock_process:
|
|
42
|
+
mock_process.return_value = mock_response
|
|
43
|
+
with patch("tunacode.cli.repl.ui.agent", new_callable=AsyncMock) as mock_ui_agent:
|
|
44
|
+
# Act
|
|
45
|
+
await process_request("Review my code", state_manager, output=True)
|
|
46
|
+
|
|
47
|
+
# Assert - UI should NOT be called since JSON output is filtered
|
|
48
|
+
mock_ui_agent.assert_not_called()
|
|
49
|
+
|
|
50
|
+
@pytest.mark.asyncio
|
|
51
|
+
async def test_agent_clean_text_output_displayed(self):
|
|
52
|
+
"""Clean text output from agent should be displayed to user."""
|
|
53
|
+
# Arrange
|
|
54
|
+
state_manager = self._create_mock_state_manager()
|
|
55
|
+
|
|
56
|
+
# Mock agent response with clean text
|
|
57
|
+
expected_output = "Here are my suggestions for improving your code:\n1. Add comments\n2. Improve error handling"
|
|
58
|
+
mock_response = MagicMock()
|
|
59
|
+
mock_response.result = SimpleResult(output=expected_output)
|
|
60
|
+
|
|
61
|
+
with patch(
|
|
62
|
+
"tunacode.cli.repl.agent.process_request", new_callable=AsyncMock
|
|
63
|
+
) as mock_process:
|
|
64
|
+
mock_process.return_value = mock_response
|
|
65
|
+
with patch("tunacode.cli.repl.ui.agent", new_callable=AsyncMock) as mock_ui_agent:
|
|
66
|
+
# Act
|
|
67
|
+
await process_request("Review my code", state_manager, output=True)
|
|
68
|
+
|
|
69
|
+
# Assert - Clean text should be displayed
|
|
70
|
+
mock_ui_agent.assert_called_once_with(expected_output)
|
|
71
|
+
|
|
72
|
+
@pytest.mark.asyncio
|
|
73
|
+
async def test_formatted_suggestions_without_json_wrapper(self):
|
|
74
|
+
"""Agent should format suggestions as clean text, not JSON."""
|
|
75
|
+
# Arrange
|
|
76
|
+
state_manager = self._create_mock_state_manager()
|
|
77
|
+
|
|
78
|
+
# Expected clean formatted output
|
|
79
|
+
expected_output = """Code Review Results:
|
|
80
|
+
|
|
81
|
+
The JavaScript code has a good structure with clear separation of concerns. Here are some suggestions for improvement:
|
|
82
|
+
|
|
83
|
+
1. **Add comments to functions** - Document the purpose and parameters of major functions for better maintainability.
|
|
84
|
+
|
|
85
|
+
2. **Consistent error handling** - Use try-catch blocks consistently and provide user-friendly error messages instead of alerts.
|
|
86
|
+
|
|
87
|
+
3. **Form validation** - Implement validation before submitting to ensure required fields are properly filled.
|
|
88
|
+
|
|
89
|
+
4. **Debounce input handlers** - Consider debouncing the updateSubmitButtonState function to prevent excessive calls.
|
|
90
|
+
|
|
91
|
+
5. **Accessibility improvements** - Add ARIA labels and ensure keyboard navigation works properly.
|
|
92
|
+
|
|
93
|
+
These changes will improve code maintainability and user experience."""
|
|
94
|
+
|
|
95
|
+
mock_response = MagicMock()
|
|
96
|
+
mock_response.result = SimpleResult(output=expected_output)
|
|
97
|
+
|
|
98
|
+
with patch(
|
|
99
|
+
"tunacode.cli.repl.agent.process_request", new_callable=AsyncMock
|
|
100
|
+
) as mock_process:
|
|
101
|
+
mock_process.return_value = mock_response
|
|
102
|
+
with patch("tunacode.cli.repl.ui.agent", new_callable=AsyncMock) as mock_ui_agent:
|
|
103
|
+
# Act
|
|
104
|
+
await process_request("Review my JavaScript code", state_manager, output=True)
|
|
105
|
+
|
|
106
|
+
# Assert - Formatted text should be displayed
|
|
107
|
+
mock_ui_agent.assert_called_once_with(expected_output)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"""Test to validate the system prompt changes."""
|
|
2
|
+
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def test_system_prompt_no_json_in_responses():
|
|
7
|
+
"""Verify system prompt doesn't instruct agent to output JSON to users."""
|
|
8
|
+
prompt_path = Path(__file__).parent.parent / "src" / "tunacode" / "prompts" / "system.md"
|
|
9
|
+
|
|
10
|
+
with open(prompt_path, "r") as f:
|
|
11
|
+
content = f.read()
|
|
12
|
+
|
|
13
|
+
# Check that we have the new formatting rules
|
|
14
|
+
assert "Output Formatting Rules" in content
|
|
15
|
+
assert "NO JSON in responses" in content
|
|
16
|
+
assert 'Never output {"thought":' in content
|
|
17
|
+
|
|
18
|
+
# Check that thoughts are marked as internal
|
|
19
|
+
assert "Thoughts are for internal reasoning only" in content
|
|
20
|
+
assert "NEVER include JSON-formatted thoughts in your responses to users" in content
|
|
21
|
+
|
|
22
|
+
# Check examples use clean formatting
|
|
23
|
+
assert "RESPONSE TO USER:" in content
|
|
24
|
+
assert "[Internal thinking - not shown to user]" in content
|
|
25
|
+
|
|
26
|
+
# Check we have good/bad examples
|
|
27
|
+
assert "Example of GOOD response formatting:" in content
|
|
28
|
+
assert "Example of BAD response formatting (DO NOT DO THIS):" in content
|
|
29
|
+
|
|
30
|
+
print("\n=== SYSTEM PROMPT VALIDATION ===")
|
|
31
|
+
print("✓ Output formatting rules added")
|
|
32
|
+
print("✓ JSON responses explicitly forbidden")
|
|
33
|
+
print("✓ Thoughts marked as internal only")
|
|
34
|
+
print("✓ Examples updated to show clean output")
|
|
35
|
+
print("\nThe system prompt should now produce clean, formatted text responses.")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/commands/implementations/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/commands/implementations/debug.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/commands/implementations/development.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/commands/implementations/model.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/src/tunacode/cli/commands/implementations/system.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tunacode_cli-0.0.38/src/tunacode/core/llm → tunacode_cli-0.0.39/src/tunacode/core}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tunacode_cli-0.0.38/src/tunacode/core → tunacode_cli-0.0.39/src/tunacode/core/llm}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/agent/test_agent_creation.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/agent/test_json_tool_parsing.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/agent/test_process_node.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/agent/test_process_request.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/background/test_cleanup.py
RENAMED
|
File without changes
|
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/background/test_task_creation.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/background/test_task_execution.py
RENAMED
|
File without changes
|
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/code_index/test_file_scanning.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/code_index/test_index_building.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/commands/test_init_command.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/context/test_context_loading.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/context/test_tunacode_logging.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/repl/test_command_parsing.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/repl/test_input_handling.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/repl/test_keyboard_interrupts.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/repl/test_multiline_input.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/repl/test_repl_initialization.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/repl/test_session_flow.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/services/test_error_recovery.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/services/test_llm_routing.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/services/test_mcp_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/state/test_agent_tracking.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/state/test_message_history.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/state/test_permissions.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/state/test_session_management.py
RENAMED
|
File without changes
|
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/state/test_user_config.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/test_characterization_commands.py
RENAMED
|
File without changes
|
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/ui/test_console_output.py
RENAMED
|
File without changes
|
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/ui/test_prompt_rendering.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/ui/test_tool_confirmations.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/utils/test_file_operations.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/utils/test_git_commands.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/utils/test_token_counting.py
RENAMED
|
File without changes
|
{tunacode_cli-0.0.38 → tunacode_cli-0.0.39}/tests/characterization/utils/test_utils_edge_cases.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|