tunacode-cli 0.0.73__tar.gz → 0.0.76__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.76/.github/workflows/publish.yml +75 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/PKG-INFO +1 -1
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/README.md +3 -1
- tunacode_cli-0.0.76/documentation/agent/agent-flow.md +85 -0
- tunacode_cli-0.0.76/documentation/agent-tools/tools-architecture.md +222 -0
- tunacode_cli-0.0.76/documentation/changelog/CHANGELOG.md +188 -0
- tunacode_cli-0.0.76/documentation/configuration/environment-variables.md +195 -0
- tunacode_cli-0.0.76/documentation/configuration/tunacode-json-example.md +125 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76/documentation/configuration}/tunacode.json.example +1 -0
- tunacode_cli-0.0.76/documentation/development/publishing-workflow.md +119 -0
- tunacode_cli-0.0.76/memory-bank/execute/2025-09-12_15-20-00_model_selection_config_persistence_fix.md +146 -0
- tunacode_cli-0.0.76/memory-bank/plan/2025-09-12_12-20-00_global_graceful_error_handling_implementation.md +399 -0
- tunacode_cli-0.0.76/memory-bank/plan/2025-09-12_15-08-14_model_selection_config_persistence_fix.md +208 -0
- tunacode_cli-0.0.76/memory-bank/research/2025-09-12_12-15-48_global_graceful_error_handling_analysis.md +126 -0
- tunacode_cli-0.0.76/memory-bank/research/2025-09-12_14-54-43_model_configuration_crash_analysis.md +130 -0
- tunacode_cli-0.0.76/memory-bank/research/2025-09-12_15-06-58_model_selection_config_update_issue.md +63 -0
- tunacode_cli-0.0.76/memory-bank/research/2025-09-12_ai-agent-tools-architecture.md +222 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/pyproject.toml +2 -2
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/implementations/model.py +33 -5
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/constants.py +1 -1
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/agents/agent_components/node_processor.py +16 -1
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/agents/main.py +55 -9
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/setup/config_setup.py +67 -224
- tunacode_cli-0.0.76/src/tunacode/core/setup/config_wizard.py +228 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/state.py +3 -1
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/prompts/system.md +43 -29
- tunacode_cli-0.0.76/tests/characterization/commands/test_model_selection_persistence.py +237 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/state/test_state_initialization.py +1 -1
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/test_characterization_commands.py +7 -2
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_prompt_changes_validation.py +4 -1
- tunacode_cli-0.0.76/tests/unit/commands/test_model_selection_persistence_new.py +118 -0
- tunacode_cli-0.0.76/tests/unit/config/test_user_configuration_permissions.py +95 -0
- tunacode_cli-0.0.73/.claude/settings.local.json +0 -133
- tunacode_cli-0.0.73/.taskmaster/CLAUDE.md +0 -417
- tunacode_cli-0.0.73/.taskmaster/config.json +0 -35
- tunacode_cli-0.0.73/.taskmaster/docs/prd.txt +0 -322
- tunacode_cli-0.0.73/.taskmaster/state.json +0 -6
- tunacode_cli-0.0.73/.taskmaster/tasks/task_001.txt +0 -14
- tunacode_cli-0.0.73/.taskmaster/tasks/task_002.txt +0 -11
- tunacode_cli-0.0.73/.taskmaster/tasks/task_003.txt +0 -11
- tunacode_cli-0.0.73/.taskmaster/tasks/task_004.txt +0 -11
- tunacode_cli-0.0.73/.taskmaster/tasks/task_005.txt +0 -11
- tunacode_cli-0.0.73/.taskmaster/tasks/task_006.txt +0 -54
- tunacode_cli-0.0.73/.taskmaster/tasks/tasks.json +0 -369
- tunacode_cli-0.0.73/.taskmaster/templates/example_prd.txt +0 -47
- tunacode_cli-0.0.73/CHANGELOG.md +0 -107
- tunacode_cli-0.0.73/documentation/changelog/CHANGELOG.md +0 -61
- tunacode_cli-0.0.73/planner.md +0 -29
- tunacode_cli-0.0.73/scripts/publish_to_pip.sh +0 -146
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/MEMORY_ANCHOR_SPEC.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/NEXT_PR_RULES.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/README.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/agents/antipattern-sniffer.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/agents/bug-context-analyzer.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/agents/code-synthesis-analyzer.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/agents/codebase-analyzer.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/agents/codebase-locator.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/agents/context-synthesis.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/agents/documentation-synthesis-qa.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/agents/expert-debugger.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/agents/phased-task-processor.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/agents/prompt-engineer.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/agents/rapid-code-synthesis-qa.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/agents/tech-docs-maintainer.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/anchors.json +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/CE/QA.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/CE/documentation-synthesis.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/CE/execute.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/CE/plan.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/CE/research.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/context-engineer/QA.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/context-engineer/documentation-synthesis.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/context-engineer/execute.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/context-engineer/plan.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/context-engineer/research.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/deploy.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/github-issue.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/phaser.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/smart-git.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/smells.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/work.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/commands/workflow.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/delta/2025-01-05-baseline.yml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/delta/fix-text-alignment-layout-task3.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/delta/task4_ui_formatting_fix.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/delta/v0.0.53_to_v0.0.54.diff +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/development/always-on-display-implementation.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/development/cli-json-recovery-incident.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/development/directory-caching-optimization.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/development/esc-investigation/ESC_KEY_INVESTIGATION.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/development/esc-investigation/ESC_KEY_STREAMING_ANALYSIS.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/development/hatch-commands.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/development/model-updates-2025.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/development/onboarding-improvements.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/development/openai_tool_calling_evaluation.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/development/phase5-prompt-injection-system.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/development/slash-commands.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/development/uv-hatch-setup.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/development/uv-installer-updates.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/metadata/components.yml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/metadata/hotspots.txt +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/patterns/json_retry_implementation.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/qa/fix-agent-errors.yml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/qa/fix-publish-script.yml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/qa/fix-runtime-warnings.yml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/README.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/active/task_json_retry_implementation_summary_2025-07-24_13-05-40.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/active/task_standardize_ui_formatting_patterns_2025-07-23_20-43-28.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/agents/default/spinner-enhancement-2025-08-07.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/agents/esc-investigation/scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/agents/phase5-recovery/scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/agents/tech-docs-maintainer/scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/code-synthesis-analyzer_ESC_Double-Press_REPL_Abort_Analysis_2025-08-06_134859_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Add_Prompt_Injection_to_Remaining_Tools_-_Continuation_2025-08-13_152542_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Add_Prompt_Injection_to_Remaining_Tools_2025-08-13_152352_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_CLI_Agent_JSON_Recovery_Investigation_2025-08-12_124206_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_CLI_Agent_JSON_Recovery_Investigation_2025-08-12_124727_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Completely_remove_TUNACODE_TASK_COMPLETE_from_plan_mode_2025-08-09_091836_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Debug_ESC_key_still_not_working_in_approval_prompt_2025-08-09_033534_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Debug_persistent_KeyboardInterrupt_in_event_loop_2025-08-09_034136_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Debug_present_plan_tool_registration_and_model_capability_2025-08-09_092923_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Debug_stuck_double_escape_in_plan_approval_2025-08-09_033214_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Fix_Application.exit()_failed_error_in_ESC_keybinding_2025-08-09_075607_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Fix_ESC_double-tap_and_plan_display_issues_2025-08-09_090055_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Fix_ESC_exceptions_and_missing_present_plan_tool_2025-08-09_081700_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Fix_agent_not_calling_present_plan_tool_2025-08-09_090827_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Fix_double_escape_for_planning_mode_approval_prompt_2025-08-09_032759_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Fix_unhandled_KeyboardInterrupt_exception_in_event_loop_2025-08-09_033843_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Fix_wizard_UI_-_branch_safety_interference_2025-08-20_222738_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Fixed_Thinking_dots_animation_2025-08-11_121009_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Force_agent_to_actually_call_present_plan_tool_2025-08-09_091334_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_GitHub_Directory_Review_2025-08-11_122451_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Implementing_ESC_key_double-press_for_REPL_abort_2025-08-06_124754_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_JSON_Recovery_Implementation_2025-08-12_130251_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Makefile_to_Hatch_Migration_2025-08-07_192356_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Performance_Optimization_-_Agent_Initialization_2025-08-13_160447_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Phase_3_-_Glob_Tool_Optimization_2025-08-13_142601_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Replace_entire_system_prompt_with_tool-only_instructions_2025-08-09_112839_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_TunaCode_Search_Enhancement_Implementation_2025-08-13_140905_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Update_Documentation_for_JSON_Recovery_System_2025-08-12_131127_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_Update_documentation_for_always-on_display_UX_improvements_2025-08-12_154818_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/default_slash_command_system_implementation_2025-08-14_034024_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/archived/phase5-recovery_Phase_5_Recovery_Analysis_2025-08-13_145339_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/locks/code-synthesis-analyzer.lock +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/locks/default.lock +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/locks/esc-investigation.lock +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/locks/phase5-recovery.lock +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/locks/tech-docs-maintainer.lock +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/code-synthesis-analyzer_ESC_Double-Press_REPL_Abort_Analysis_2025-08-06_134859_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Add_Prompt_Injection_to_Remaining_Tools_-_Continuation_2025-08-13_152542_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Add_Prompt_Injection_to_Remaining_Tools_2025-08-13_152352_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_CLI_Agent_JSON_Recovery_Investigation_2025-08-12_124206_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_CLI_Agent_JSON_Recovery_Investigation_2025-08-12_124727_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Completely_remove_TUNACODE_TASK_COMPLETE_from_plan_mode_2025-08-09_091836_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Debug_ESC_key_still_not_working_in_approval_prompt_2025-08-09_033534_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Debug_persistent_KeyboardInterrupt_in_event_loop_2025-08-09_034136_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Debug_present_plan_tool_registration_and_model_capability_2025-08-09_092923_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Debug_stuck_double_escape_in_plan_approval_2025-08-09_033214_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Fix_Application.exit()_failed_error_in_ESC_keybinding_2025-08-09_075607_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Fix_ESC_double-tap_and_plan_display_issues_2025-08-09_090055_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Fix_ESC_exceptions_and_missing_present_plan_tool_2025-08-09_081700_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Fix_agent_not_calling_present_plan_tool_2025-08-09_090827_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Fix_double_escape_for_planning_mode_approval_prompt_2025-08-09_032759_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Fix_unhandled_KeyboardInterrupt_exception_in_event_loop_2025-08-09_033843_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Fix_wizard_UI_-_branch_safety_interference_2025-08-20_222738_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Fixed_Thinking_dots_animation_2025-08-11_121009_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Force_agent_to_actually_call_present_plan_tool_2025-08-09_091334_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_GitHub_Directory_Review_2025-08-11_122451_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Implementing_ESC_key_double-press_for_REPL_abort_2025-08-06_124754_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_JSON_Recovery_Implementation_2025-08-12_130251_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Makefile_to_Hatch_Migration_2025-08-07_192356_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Performance_Optimization_-_Agent_Initialization_2025-08-13_160447_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Phase_3_-_Glob_Tool_Optimization_2025-08-13_142601_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Replace_entire_system_prompt_with_tool-only_instructions_2025-08-09_112839_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_TunaCode_Search_Enhancement_Implementation_2025-08-13_140905_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Update_Documentation_for_JSON_Recovery_System_2025-08-12_131127_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/default_Update_documentation_for_always-on_display_UX_improvements_2025-08-12_154818_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/scratchpad/shared/done_tasks/phase5-recovery_Phase_5_Recovery_Analysis_2025-08-13_145339_scratchpad.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/tech-docs-maintainer.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.claude/test_suite_issues_resolved.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.github/pull_request_template.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.github/scripts/check_file_size.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.github/workflows/lint.yml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.gitignore +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/.pre-commit-config.yaml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/CLAUDE.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/LICENSE +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/MANIFEST.in +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/README.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/TUNACODE.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/assets/tunacode_example.png +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/agent/TOOLS_WORKFLOW.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/agent/agent-inspo.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/agent/how-tunacode-agent-works.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/agent/main-agent-architecture.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/agent/swepmini-example.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/agent/tunacode-tool-system.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76/documentation/configuration}/.env.example +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/configuration/config-file-example.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/configuration/local-models.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/configuration/logging-configuration.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/development/codebase-hygiene.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/development/command-system-architecture.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/development/creating-custom-commands.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/development/hatch-build-system.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/development/performance-optimizations.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/development/prompt-principles.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/tests/README.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/tests/characterization-testing.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/tests/mocking-strategies.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/tests/troubleshooting.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/ui/ui-architecture.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/user/commands.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/user/getting-started.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/documentation/user/tools.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/memory-bank/plan/2025-09-11_13-30-00_agent_loop_architecture_enhancement.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/memory-bank/plan/2025-09-11_14-00-00_enum_state_machine_implementation.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/memory-bank/plan/2025-09-11_14-15-00_automated_cli_tool_testing_framework.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/memory-bank/research/2025-09-07_21-13-37_agent_loop_architecture.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/memory-bank/research/2025-09-11_13-14-06_agent_loop_enhancement_analysis.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/pytest.ini +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/scripts/check-file-length.sh +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/scripts/download_ripgrep.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/scripts/install_linux.sh +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/scripts/playwright_cache.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/scripts/setup_dev_env.sh +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/scripts/startup_timer.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/scripts/uninstall.sh +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/scripts/utils/vulture_whitelist.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/scripts/verify_dev_env.sh +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/setup.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/README.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/base.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/implementations/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/implementations/command_reload.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/implementations/conversation.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/implementations/debug.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/implementations/development.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/implementations/plan.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/implementations/quickstart.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/implementations/system.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/implementations/template.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/implementations/todo.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/registry.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/slash/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/slash/command.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/slash/loader.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/slash/processor.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/slash/types.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/slash/validator.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/commands/template_shortcut.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/main.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/repl.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/repl_components/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/repl_components/command_parser.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/repl_components/error_recovery.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/repl_components/output_display.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/cli/repl_components/tool_executor.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/configuration/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/configuration/defaults.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/configuration/models.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/configuration/settings.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/context.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/agents/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/agents/agent_components/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/agents/agent_components/agent_config.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/agents/agent_components/agent_helpers.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/agents/agent_components/json_tool_parser.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/agents/agent_components/message_handler.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/agents/agent_components/response_state.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/agents/agent_components/result_wrapper.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/agents/agent_components/state_transition.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/agents/agent_components/task_completion.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/agents/agent_components/tool_buffer.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/agents/agent_components/tool_executor.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/agents/agent_components/truncation_checker.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/agents/utils.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/background/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/background/manager.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/code_index.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/llm/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/logging/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/logging/config.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/logging/formatters.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/logging/handlers.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/logging/logger.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/setup/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/setup/agent_setup.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/setup/base.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/setup/coordinator.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/setup/environment_setup.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/setup/git_safety_setup.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/setup/template_setup.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/token_usage/api_response_parser.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/token_usage/cost_calculator.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/token_usage/usage_tracker.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/core/tool_handler.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/exceptions.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/prompts/system.md.bak +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/py.typed +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/services/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/services/mcp.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/setup.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/templates/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/templates/loader.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/base.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/bash.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/exit_plan_mode.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/glob.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/grep.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/grep_components/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/grep_components/file_filter.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/grep_components/pattern_matcher.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/grep_components/result_formatter.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/grep_components/search_result.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/list_dir.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/present_plan.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/prompts/bash_prompt.xml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/prompts/exit_plan_mode_prompt.xml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/prompts/glob_prompt.xml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/prompts/grep_prompt.xml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/prompts/list_dir_prompt.xml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/prompts/present_plan_prompt.xml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/prompts/read_file_prompt.xml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/prompts/run_command_prompt.xml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/prompts/todo_prompt.xml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/prompts/update_file_prompt.xml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/prompts/write_file_prompt.xml +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/read_file.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/run_command.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/schema_assembler.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/todo.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/update_file.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/write_file.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tools/xml_helper.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tutorial/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tutorial/content.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tutorial/manager.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/tutorial/steps.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/types.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/completers.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/console.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/constants.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/decorators.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/input.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/keybindings.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/lexers.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/logging_compat.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/model_selector.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/output.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/panels.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/prompt_manager.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/tool_descriptions.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/tool_ui.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/utils.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/ui/validators.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/utils/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/utils/api_key_validation.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/utils/bm25.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/utils/diff_utils.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/utils/file_utils.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/utils/import_cache.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/utils/json_utils.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/utils/message_utils.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/utils/models_registry.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/utils/retry.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/utils/ripgrep.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/utils/security.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/utils/system.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/utils/text_utils.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/utils/token_counter.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/src/tunacode/utils/user_configuration.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/CHARACTERIZATION_README.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/CHARACTERIZATION_TEST_PLAN.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/CHARACTERIZATION_TEST_PLAN_AGENT_MAIN.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/CHARACTERIZATION_TEST_PLAN_COMMANDS.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/FILE_OPERATIONS_TEST_GUIDE.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/agent/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/agent/conftest.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/agent/test_agent_creation.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/agent/test_json_tool_parsing.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/agent/test_process_node.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/agent/test_process_request.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/agent/test_tool_message_patching.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/background/test_background_edge_cases.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/background/test_cleanup.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/background/test_task_cancellation.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/background/test_task_creation.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/background/test_task_execution.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/code_index/test_cache_management.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/code_index/test_file_scanning.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/code_index/test_index_building.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/code_index/test_search_operations.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/code_index/test_symbol_extraction.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/commands/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/commands/test_init_command.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/conftest.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/context/README.md +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/context/__init__.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/context/test_context_acceptance.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/context/test_context_integration.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/context/test_context_loading.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/context/test_tunacode_logging.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/repl/test_command_parsing.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/repl/test_error_handling.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/repl/test_escape_key_behavior.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/repl/test_input_handling.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/repl/test_keyboard_interrupts.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/repl/test_multiline_input.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/repl/test_output_display_logic.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/repl/test_repl_initialization.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/repl/test_session_flow.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/services/test_error_recovery.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/services/test_llm_routing.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/services/test_mcp_integration.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/services/test_service_lifecycle.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/state/test_agent_tracking.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/state/test_message_history.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/state/test_permissions.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/state/test_session_management.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/state/test_user_config.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/test_characterization_grep.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/test_characterization_main.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/test_characterization_repl.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/ui/test_async_ui.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/ui/test_console_output.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/ui/test_diff_display.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/ui/test_prompt_rendering.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/ui/test_spinner_messages.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/ui/test_tool_confirmations.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/utils/test_expand_file_refs.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/utils/test_file_operations.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/utils/test_git_commands.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/utils/test_token_counting.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/characterization/utils/test_utils_edge_cases.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/conftest.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_agent_output_formatting.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_command_parser_retry.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_completion_detection.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_glob_phase3.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_json_concatenation_recovery.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_json_retry.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_logging_config.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_onboarding_features.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_phase2_type_hints.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_plan_mode.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_prompt_injection.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_security.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_slash_commands_comprehensive.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_slash_commands_functional.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_slash_commands_integration.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_slash_commands_isolated.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_spinner_updates.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/test_tool_batching_retry.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tests/unit/test_constants_enums.py +0 -0
- {tunacode_cli-0.0.73 → tunacode_cli-0.0.76}/tools/emoji_cleaner.py +0 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
"on":
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
publish:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
|
|
14
|
+
- name: Set up Python
|
|
15
|
+
uses: actions/setup-python@v5
|
|
16
|
+
with:
|
|
17
|
+
python-version: '3.x'
|
|
18
|
+
|
|
19
|
+
- name: Install build tooling
|
|
20
|
+
run: |
|
|
21
|
+
python -m pip install --upgrade pip
|
|
22
|
+
pip install hatch twine uv
|
|
23
|
+
|
|
24
|
+
- name: Determine version from tag
|
|
25
|
+
id: ver
|
|
26
|
+
shell: bash
|
|
27
|
+
run: |
|
|
28
|
+
# Prefer release tag when present; fall back to ref name
|
|
29
|
+
if [ "${{ github.event_name }}" = "release" ]; then
|
|
30
|
+
TAG="${{ github.event.release.tag_name }}"
|
|
31
|
+
else
|
|
32
|
+
TAG="${{ github.ref_name }}"
|
|
33
|
+
fi
|
|
34
|
+
TAG="${TAG#v}"
|
|
35
|
+
echo "tag=$TAG" >> "$GITHUB_OUTPUT"
|
|
36
|
+
|
|
37
|
+
- name: Check version consistency
|
|
38
|
+
shell: bash
|
|
39
|
+
run: |
|
|
40
|
+
TAG="${{ steps.ver.outputs.tag }}"
|
|
41
|
+
# Extract only the [project] version from pyproject.toml
|
|
42
|
+
PYPROJ=$(awk '
|
|
43
|
+
/^\[project\]/ { in_proj=1; next }
|
|
44
|
+
/^\[/ { if (in_proj) exit }
|
|
45
|
+
in_proj && /^version =/ { match($0, /"([^"]+)"/, m); print m[1]; exit }
|
|
46
|
+
' pyproject.toml)
|
|
47
|
+
# Extract APP_VERSION from constants
|
|
48
|
+
CONST=$(awk -F '"' '/^APP_VERSION =/ { print $2; exit }' src/tunacode/constants.py)
|
|
49
|
+
echo "Tag: $TAG"
|
|
50
|
+
echo "pyproject.toml: $PYPROJ"
|
|
51
|
+
echo "constants.APP_VERSION: $CONST"
|
|
52
|
+
if [[ "$TAG" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
53
|
+
[[ "$TAG" == "$PYPROJ" ]] || { echo 'pyproject.toml version mismatch'; exit 1; }
|
|
54
|
+
[[ "$TAG" == "$CONST" ]] || { echo 'constants.py APP_VERSION mismatch'; exit 1; }
|
|
55
|
+
else
|
|
56
|
+
echo "No semver tag detected; skipping tag consistency check."
|
|
57
|
+
fi
|
|
58
|
+
|
|
59
|
+
- name: Lint
|
|
60
|
+
run: hatch run lint-check
|
|
61
|
+
|
|
62
|
+
- name: Test
|
|
63
|
+
run: hatch run test
|
|
64
|
+
|
|
65
|
+
- name: Build
|
|
66
|
+
run: hatch build
|
|
67
|
+
|
|
68
|
+
# Preferred: API token secret
|
|
69
|
+
- name: Publish to PyPI (API token)
|
|
70
|
+
env:
|
|
71
|
+
TWINE_USERNAME: __token__
|
|
72
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
|
73
|
+
run: python -m twine upload dist/*
|
|
74
|
+
|
|
75
|
+
|
|
@@ -19,7 +19,8 @@ documentation/
|
|
|
19
19
|
│ ├── command-system-architecture.md
|
|
20
20
|
│ ├── creating-custom-commands.md
|
|
21
21
|
│ ├── hatch-build-system.md
|
|
22
|
-
|
|
22
|
+
│ ├── performance-optimizations.md
|
|
23
|
+
│ ├── publishing-workflow.md
|
|
23
24
|
│ └── prompt-principles.md
|
|
24
25
|
│── user/ # user guides
|
|
25
26
|
│── getting-started.md
|
|
@@ -36,6 +37,7 @@ General project documentation for features, architecture, and best practices.
|
|
|
36
37
|
- [Command System Architecture](development/command-system-architecture.md) - Technical overview of the command system design and components.
|
|
37
38
|
- [Creating Custom Commands](development/creating-custom-commands.md) - Step-by-step guide for creating built-in and slash commands.
|
|
38
39
|
- [Hatch Build System](development/hatch-build-system.md) - Complete guide to using Hatch for development and building.
|
|
40
|
+
- [Publishing Workflow](development/publishing-workflow.md) - Automated PyPI publishing process and release management.
|
|
39
41
|
- [Configuration File Example](configuration/config-file-example.md) - Complete example of `~/.config/tunacode.json` with all available settings.
|
|
40
42
|
- [Local Models Setup](configuration/local-models.md) - Guide for using local models with LM Studio or any OpenAI-compatible API.
|
|
41
43
|
- [Performance Optimizations](development/performance-optimizations.md) - Major performance improvements and optimization strategies.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
Now I have a good understanding of how the agent system works. Let me create a flowchart to explain the agent creation and processing flow:
|
|
2
|
+
|
|
3
|
+
## TunaCode Agent Creation and Processing Flow
|
|
4
|
+
|
|
5
|
+
```mermaid
|
|
6
|
+
graph TD
|
|
7
|
+
A[User Request] --> B[process_request function]
|
|
8
|
+
B --> C[get_or_create_agent]
|
|
9
|
+
C --> D{Agent in Cache?}
|
|
10
|
+
D -->|Yes - Valid| E[Use Cached Agent]
|
|
11
|
+
D -->|No/Invalid| F[Create New Agent]
|
|
12
|
+
F --> G[Load System Prompt]
|
|
13
|
+
G --> H[Load TUNACODE.md Context]
|
|
14
|
+
F --> I[Initialize Tools]
|
|
15
|
+
I --> J{Plan Mode?}
|
|
16
|
+
J -->|Yes| K[Plan Mode Tools Only]
|
|
17
|
+
J -->|No| L[All Tools Available]
|
|
18
|
+
K --> M[Create Agent with Read-only + present_plan tools]
|
|
19
|
+
L --> N[Create Agent with All tools]
|
|
20
|
+
M --> O[Cache Agent]
|
|
21
|
+
N --> O
|
|
22
|
+
O --> P[Agent Iteration Loop]
|
|
23
|
+
P --> Q[Process Each Node]
|
|
24
|
+
Q --> R{Model Request Node?}
|
|
25
|
+
R -->|Yes + Streaming| S[Stream Token-level Response]
|
|
26
|
+
R -->|No| T[Process Node Content]
|
|
27
|
+
T --> U{Task Completion Marker?}
|
|
28
|
+
U -->|Yes| V[Mark Task Complete]
|
|
29
|
+
U -->|No| W[Check for Tool Calls]
|
|
30
|
+
W --> X{Read-only Tool?}
|
|
31
|
+
X -->|Yes| Y[Buffer for Parallel Execution]
|
|
32
|
+
X -->|No| Z[Execute Sequentially]
|
|
33
|
+
Y --> AA[ToolBuffer Collection]
|
|
34
|
+
Z --> AB[Immediate Tool Execution]
|
|
35
|
+
AA --> AC[Execute Buffered Tools in Parallel]
|
|
36
|
+
P --> AD{Max Iterations Reached?}
|
|
37
|
+
AD -->|Yes| AE[Create Fallback Response]
|
|
38
|
+
AD -->|No| AF[Continue Loop]
|
|
39
|
+
V --> AG[Return AgentRun Result]
|
|
40
|
+
AE --> AG
|
|
41
|
+
AF --> P
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Detailed Flow Explanation
|
|
45
|
+
|
|
46
|
+
### 1. **Agent Creation Process**
|
|
47
|
+
- **`get_or_create_agent(model, state_manager)`** is called for each request
|
|
48
|
+
- Uses dual caching system (session-level and module-level)
|
|
49
|
+
- Cache invalidation based on configuration changes
|
|
50
|
+
- Loads system prompt from `src/tunacode/prompts/system.md`
|
|
51
|
+
- Appends TUNACODE.md project context if available
|
|
52
|
+
- Dynamically configures tools based on mode (plan vs normal)
|
|
53
|
+
|
|
54
|
+
### 2. **Plan Mode vs Normal Mode**
|
|
55
|
+
- **Plan Mode**: Restricted to read-only tools + `present_plan` tool
|
|
56
|
+
- **Normal Mode**: Full toolset including write/execute tools
|
|
57
|
+
- System prompt is completely replaced in plan mode with plan-specific instructions
|
|
58
|
+
|
|
59
|
+
### 3. **Request Processing Loop**
|
|
60
|
+
- **`process_request()`** creates agent iteration context
|
|
61
|
+
- Processes nodes one by one in async loop
|
|
62
|
+
- Handles streaming responses at token level
|
|
63
|
+
- Monitors for task completion markers (`TUNACODE DONE:`)
|
|
64
|
+
- Implements productivity tracking (3 consecutive empty iterations triggers action)
|
|
65
|
+
- Manages tool execution batching for performance
|
|
66
|
+
|
|
67
|
+
### 4. **Tool Execution Strategy**
|
|
68
|
+
- **Read-only tools** (read_file, grep, list_dir, glob) are buffered for parallel execution
|
|
69
|
+
- **Write/execute tools** (bash, run_command, write_file, update_file) run sequentially
|
|
70
|
+
- **ToolBuffer** collects multiple read-only tools and executes them in batches
|
|
71
|
+
- Provides speedup metrics and visual feedback during batch execution
|
|
72
|
+
|
|
73
|
+
### 5. **Completion Detection**
|
|
74
|
+
- Looks for `TUNACODE DONE:` marker in response content
|
|
75
|
+
- Validates that no tools are queued when completion is signaled
|
|
76
|
+
- Prevents premature completion when tools are pending
|
|
77
|
+
- Handles fallback responses when iterations are exhausted
|
|
78
|
+
|
|
79
|
+
### 6. **State Management**
|
|
80
|
+
- Uses **ResponseState** with enum-based state machine
|
|
81
|
+
- Tracks: USER_INPUT → ASSISTANT → TOOL_EXECUTION → RESPONSE transitions
|
|
82
|
+
- Maintains backward compatibility with boolean flags
|
|
83
|
+
- Session state persists across requests with caching
|
|
84
|
+
|
|
85
|
+
The system is designed for optimal performance through parallel tool execution while maintaining safety through sequential write operations and comprehensive state tracking.
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Research – AI Agent and Tools Architecture"
|
|
3
|
+
date: "2025-09-12"
|
|
4
|
+
owner: "context-engineer"
|
|
5
|
+
phase: "Research"
|
|
6
|
+
last_updated: "2025-09-12"
|
|
7
|
+
last_updated_by: "context-engineer"
|
|
8
|
+
last_updated_note: "Initial comprehensive research on AI agent and tools relation to OpenAI tool call format and JSON tooling"
|
|
9
|
+
tags: ["agents", "tools", "openai", "json-tooling", "architecture", "pydantic-ai"]
|
|
10
|
+
git_commit: "320ee40"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Research – AI Agent and Tools Architecture
|
|
14
|
+
**Date:** 2025-09-12
|
|
15
|
+
**Owner:** context-engineer
|
|
16
|
+
**Phase:** Research
|
|
17
|
+
|
|
18
|
+
## Goal
|
|
19
|
+
Summarize all *existing knowledge* about how the AI agent and tools are used in relation to the OpenAI tool call format and JSON tooling in the tunacode system before any new work.
|
|
20
|
+
|
|
21
|
+
## Additional Search
|
|
22
|
+
- `grep -ri "tool.*call" src/tunacode/core/agents/`
|
|
23
|
+
- `grep -ri "openai.*tool" src/tunacode/`
|
|
24
|
+
- `grep -ri "json.*tool" src/tunacode/core/agents/`
|
|
25
|
+
|
|
26
|
+
## Findings
|
|
27
|
+
|
|
28
|
+
### Core Architecture Overview
|
|
29
|
+
|
|
30
|
+
The tunacode system implements a sophisticated tool calling architecture that bridges OpenAI's function calling specification with custom JSON tooling. The system is built around `pydantic-ai` as the primary framework while providing robust fallback mechanisms for maximum compatibility across different LLM providers.
|
|
31
|
+
|
|
32
|
+
### Key Files & Components
|
|
33
|
+
|
|
34
|
+
#### Agent System (`src/tunacode/core/agents/`)
|
|
35
|
+
- `main.py` → Primary agent orchestrator using pydantic-ai with OpenAI tool integration
|
|
36
|
+
- `agent_config.py` → Tool registration and configuration with pydantic-ai Tool wrappers
|
|
37
|
+
- `agent_components/` → Core components for tool processing and execution
|
|
38
|
+
- `node_processor.py` → Tool call processing from LLM responses
|
|
39
|
+
- `tool_executor.py` → Parallel tool execution orchestration
|
|
40
|
+
- `json_tool_parser.py` → Fallback JSON tool parsing for non-structured APIs
|
|
41
|
+
- `tool_buffer.py` → Tool buffering for batch execution
|
|
42
|
+
- `message_handler.py` → Tool message patching and state management
|
|
43
|
+
|
|
44
|
+
#### Tool System (`src/tunacode/tools/`)
|
|
45
|
+
- `base.py` → BaseTool class with OpenAI function schema generation
|
|
46
|
+
- `schema_assembler.py` → Tool schema assembly for different model providers
|
|
47
|
+
- Individual tools (bash.py, grep.py, read_file.py, etc.) → Tool implementations with JSON Schema compliance
|
|
48
|
+
|
|
49
|
+
#### LLM Integration (`src/tunacode/core/llm/` and utils/)
|
|
50
|
+
- Model configuration and registry for OpenAI-compatible providers
|
|
51
|
+
- API key validation and response parsing
|
|
52
|
+
- Token cost calculation for different models
|
|
53
|
+
|
|
54
|
+
### OpenAI Tool Call Format Implementation
|
|
55
|
+
|
|
56
|
+
#### 1. Schema Generation Pattern
|
|
57
|
+
All tools generate OpenAI-compatible function schemas through the `get_tool_schema()` method:
|
|
58
|
+
|
|
59
|
+
```python
|
|
60
|
+
{
|
|
61
|
+
"name": "tool_name",
|
|
62
|
+
"description": "Tool description with usage instructions",
|
|
63
|
+
"parameters": {
|
|
64
|
+
"type": "object",
|
|
65
|
+
"properties": {
|
|
66
|
+
"param_name": {
|
|
67
|
+
"type": "string|number|boolean|array",
|
|
68
|
+
"description": "Parameter description"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"required": ["required_param"]
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
#### 2. Tool Registration with pydantic-ai
|
|
77
|
+
Tools are registered using pydantic-ai's `Tool` wrapper for OpenAI compatibility:
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
tools_list = [
|
|
81
|
+
Tool(bash, max_retries=max_retries, strict=tool_strict_validation),
|
|
82
|
+
Tool(grep, max_retries=max_retries, strict=tool_strict_validation),
|
|
83
|
+
# ... more tools
|
|
84
|
+
]
|
|
85
|
+
|
|
86
|
+
agent = Agent(
|
|
87
|
+
model=model,
|
|
88
|
+
system_prompt=system_prompt,
|
|
89
|
+
tools=tools_list,
|
|
90
|
+
mcp_servers=get_mcp_servers(state_manager),
|
|
91
|
+
)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
#### 3. Tool Call Processing Flow
|
|
95
|
+
The system processes tool calls through multiple layers:
|
|
96
|
+
1. **Primary**: OpenAI structured tool calling via pydantic-ai
|
|
97
|
+
2. **Secondary**: JSON object parsing for non-structured APIs
|
|
98
|
+
3. **Tertiary**: Manual tool execution with error handling
|
|
99
|
+
|
|
100
|
+
### JSON Tooling Patterns
|
|
101
|
+
|
|
102
|
+
#### 1. Fallback JSON Parsing
|
|
103
|
+
When structured tool calling fails, the system extracts JSON objects using pattern matching:
|
|
104
|
+
|
|
105
|
+
```python
|
|
106
|
+
# Pattern: {"tool": "tool_name", "args": {...}}
|
|
107
|
+
async def parse_json_tool_calls(text: str, tool_callback: Optional[ToolCallback],
|
|
108
|
+
state_manager: StateManager) -> int:
|
|
109
|
+
# Find JSON objects in text using brace counting
|
|
110
|
+
# Validate tool structure and create mock tool call objects
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
#### 2. Schema-Driven Design
|
|
114
|
+
- All tools implement JSON Schema for parameter validation
|
|
115
|
+
- Dynamic schema generation based on execution context
|
|
116
|
+
- XML-based schema definitions with hardcoded fallbacks
|
|
117
|
+
- Environment-specific schema adaptation
|
|
118
|
+
|
|
119
|
+
#### 3. Tool Result Handling
|
|
120
|
+
- Structured error responses with `ModelRetry` support
|
|
121
|
+
- Tool call tracking and state management
|
|
122
|
+
- Message patching for orphaned tool calls
|
|
123
|
+
- UI integration for user feedback
|
|
124
|
+
|
|
125
|
+
### Parallel Execution Architecture
|
|
126
|
+
|
|
127
|
+
#### 1. Tool Categorization
|
|
128
|
+
- **Read-Only Tools**: `read_file`, `list_dir`, `grep`, `glob` (3-4x parallel performance)
|
|
129
|
+
- **Write Tools**: `write_file`, `update_file` (sequential execution)
|
|
130
|
+
- **System Tools**: `bash`, `run_command` (safety checks required)
|
|
131
|
+
|
|
132
|
+
#### 2. Batching Strategy
|
|
133
|
+
```python
|
|
134
|
+
async def execute_tools_parallel(tool_calls: List[Tuple[Any, Any]],
|
|
135
|
+
callback: ToolCallback, return_exceptions: bool = True) -> List[Any]:
|
|
136
|
+
max_parallel = int(os.environ.get("TUNACODE_MAX_PARALLEL", os.cpu_count() or 4))
|
|
137
|
+
# Batch execution with configurable parallelism
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Safety and Permission Systems
|
|
141
|
+
|
|
142
|
+
#### 1. Tool Confirmation
|
|
143
|
+
- Write/execute tools require user confirmation
|
|
144
|
+
- Path restrictions and sandboxing
|
|
145
|
+
- Dangerous operation warnings
|
|
146
|
+
|
|
147
|
+
#### 2. Input Validation
|
|
148
|
+
- Schema-based parameter validation
|
|
149
|
+
- Type checking and range validation
|
|
150
|
+
- File path safety checks
|
|
151
|
+
|
|
152
|
+
### Configuration and Extensibility
|
|
153
|
+
|
|
154
|
+
#### 1. Model Support
|
|
155
|
+
- OpenAI GPT models with full tool calling support
|
|
156
|
+
- Anthropic Claude models with JSON fallback
|
|
157
|
+
- Local models via OpenAI-compatible APIs
|
|
158
|
+
|
|
159
|
+
#### 2. MCP Integration
|
|
160
|
+
- Model Context Protocol server support
|
|
161
|
+
- External tool provider integration
|
|
162
|
+
- Dynamic tool discovery
|
|
163
|
+
|
|
164
|
+
## Key Patterns / Solutions Found
|
|
165
|
+
|
|
166
|
+
### **Bridge Pattern**: System bridges OpenAI function calling, custom JSON tooling, and pydantic-ai interface
|
|
167
|
+
- Relevance: Enables compatibility across multiple LLM providers
|
|
168
|
+
- Location: `src/tunacode/core/agents/agent_config.py:45-67`
|
|
169
|
+
|
|
170
|
+
### **Fallback Pattern**: Multi-layer fallback system ensures tool execution across different APIs
|
|
171
|
+
- Relevance: Provides robustness when structured tool calling fails
|
|
172
|
+
- Location: `src/tunacode/core/agents/agent_components/json_tool_parser.py:12-89`
|
|
173
|
+
|
|
174
|
+
### **Schema-Driven Design**: All tools define JSON Schema for consistent parameter validation
|
|
175
|
+
- Relevance: Standardizes tool interface and enables dynamic tool discovery
|
|
176
|
+
- Location: `src/tunacode/tools/base.py:23-41`
|
|
177
|
+
|
|
178
|
+
### **Parallelization Strategy**: Read-only tools batched for 3-4x performance improvement
|
|
179
|
+
- Relevance: Dramatically improves performance for file operations and searches
|
|
180
|
+
- Location: `src/tunacode/core/agents/agent_components/tool_executor.py:34-78`
|
|
181
|
+
|
|
182
|
+
### **Safety Architecture**: Tool categorization with confirmation system prevents dangerous operations
|
|
183
|
+
- Relevance: Essential for production-safe AI agent tooling
|
|
184
|
+
- Location: `src/tunacode/core/tool_handler.py:23-67`
|
|
185
|
+
|
|
186
|
+
## Knowledge Gaps
|
|
187
|
+
|
|
188
|
+
### Missing Context
|
|
189
|
+
- Detailed MCP server implementation patterns
|
|
190
|
+
- Performance benchmarks for different tool batching strategies
|
|
191
|
+
- Error recovery mechanisms for specific tool failure scenarios
|
|
192
|
+
- Advanced configuration options for tool parallelism limits
|
|
193
|
+
|
|
194
|
+
### Areas for Further Investigation
|
|
195
|
+
- Real-world usage patterns and common failure modes
|
|
196
|
+
- Integration patterns with external tool providers
|
|
197
|
+
- Security implications of different tool execution strategies
|
|
198
|
+
- Optimization opportunities for tool schema generation
|
|
199
|
+
|
|
200
|
+
## References
|
|
201
|
+
|
|
202
|
+
### Core Documentation
|
|
203
|
+
- [Main Agent Architecture](https://github.com/alchemiststudiosDOTai/tunacode/blob/320ee40/documentation/agent/main-agent-architecture.md)
|
|
204
|
+
- [Tool System Technical Guide](https://github.com/alchemiststudiosDOTai/tunacode/blob/320ee40/documentation/agent/tunacode-tool-system.md)
|
|
205
|
+
- [Tools Workflow Guide](https://github.com/alchemiststudiosDOTai/tunacode/blob/320ee40/documentation/agent/TOOLS_WORKFLOW.md)
|
|
206
|
+
|
|
207
|
+
### Key Implementation Files
|
|
208
|
+
- [Agent Configuration](https://github.com/alchemiststudiosDOTai/tunacode/blob/320ee40/src/tunacode/core/agents/agent_config.py)
|
|
209
|
+
- [Base Tool Implementation](https://github.com/alchemiststudiosDOTai/tunacode/blob/320ee40/src/tunacode/tools/base.py)
|
|
210
|
+
- [Schema Assembler](https://github.com/alchemiststudiosDOTai/tunacode/blob/320ee40/src/tunacode/tools/schema_assembler.py)
|
|
211
|
+
- [JSON Tool Parser](https://github.com/alchemiststudiosDOTai/tunacode/blob/320ee40/src/tunacode/core/agents/agent_components/json_tool_parser.py)
|
|
212
|
+
- [Tool Executor](https://github.com/alchemiststudiosDOTai/tunacode/blob/320ee40/src/tunacode/core/agents/agent_components/tool_executor.py)
|
|
213
|
+
|
|
214
|
+
### Configuration Files
|
|
215
|
+
- [Model Configuration](https://github.com/alchemiststudiosDOTai/tunacode/blob/320ee40/src/tunacode/configuration/models.py)
|
|
216
|
+
- [Default Settings](https://github.com/alchemiststudiosDOTai/tunacode/blob/320ee40/src/tunacode/configuration/defaults.py)
|
|
217
|
+
- [Example Configuration](https://github.com/alchemiststudiosDOTai/tunacode/blob/320ee40/documentation/configuration/tunacode.json.example)
|
|
218
|
+
|
|
219
|
+
### Testing Infrastructure
|
|
220
|
+
- [Agent Initialization Tests](https://github.com/alchemiststudiosDOTai/tunacode/blob/320ee40/tests/test_agent_initialization.py)
|
|
221
|
+
- [JSON Tool Parsing Tests](https://github.com/alchemiststudiosDOTai/tunacode/blob/320ee40/tests/characterization/agent/test_json_tool_parsing.py)
|
|
222
|
+
- [Parallel Tool Execution Tests](https://github.com/alchemiststudiosDOTai/tunacode/blob/320ee40/tests/test_parallel_tool_execution.py)
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [0.0.75] - 2025-09-12
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- Removed fallback PyPI auth method from CI workflow
|
|
12
|
+
- Bumped version to 0.0.75
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
- Fixed version check in CI pipeline
|
|
16
|
+
- Updated publish workflow constants for version 0.0.73
|
|
17
|
+
|
|
18
|
+
## [0.0.74] - 2025-09-11
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
- Implemented enum-based state machine for agent completion detection
|
|
22
|
+
- Added Claude command executor documentation and test guides
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
- Enhanced agent loop architecture
|
|
26
|
+
|
|
27
|
+
## [0.0.73] - 2025-09-11
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
- Made tool strict validation configurable in tunacode.json
|
|
31
|
+
- Enhanced /model command with multi-source routing and models.dev integration
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
- Added strict=False parameter to Tool constructors to prevent validation issues
|
|
35
|
+
- Replaced invalid bright_white with ansiwhite in model selector
|
|
36
|
+
- Updated model command tests to match new models.dev integration behavior
|
|
37
|
+
|
|
38
|
+
## [0.0.72] - 2025-09-10
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
- Refactored agent and command documentation structure
|
|
42
|
+
- Improved wizard UX and fixed API key loading
|
|
43
|
+
|
|
44
|
+
### Fixed
|
|
45
|
+
- Prevent crash when API key is missing for configured model
|
|
46
|
+
- Prevent config reset on startup by loading config before initialization
|
|
47
|
+
|
|
48
|
+
## [0.0.71] - 2025-08-25
|
|
49
|
+
|
|
50
|
+
### Added
|
|
51
|
+
- Comprehensive TunaCode tool system documentation
|
|
52
|
+
- Local models configuration guide
|
|
53
|
+
|
|
54
|
+
### Changed
|
|
55
|
+
- Refactored tool system and cleaned up obsolete tools
|
|
56
|
+
- Excluded llm-agent-tools from pre-commit hooks and file checks
|
|
57
|
+
|
|
58
|
+
## [0.0.70] - 2025-08-23
|
|
59
|
+
|
|
60
|
+
### Added
|
|
61
|
+
- Enhanced /update command with UV tool installation support
|
|
62
|
+
- Improved venv detection for UV-created environments
|
|
63
|
+
- Added emoji prohibition to system prompt
|
|
64
|
+
|
|
65
|
+
### Changed
|
|
66
|
+
- Changed default model to OpenRouter GPT-4.1
|
|
67
|
+
- Migrated to UV for dependency management with Hatch integration
|
|
68
|
+
- Enhanced install script with config file creation and setup guidance
|
|
69
|
+
|
|
70
|
+
### Fixed
|
|
71
|
+
- Improved venv installation detection for /update command
|
|
72
|
+
- Added defusedxml dependency and fixed typer compatibility
|
|
73
|
+
|
|
74
|
+
## [0.0.69] - 2025-08-21
|
|
75
|
+
|
|
76
|
+
### Summary
|
|
77
|
+
This release includes comprehensive command system documentation, updated model configurations, and builds upon recent community contributions including the slash command system by @Lftobs (#85) and onboarding improvements by @ryumacodes (#88).
|
|
78
|
+
|
|
79
|
+
### Changed
|
|
80
|
+
- Updated OpenRouter GPT model reference from `gpt-4o` to `gpt-4.1` in setup configuration
|
|
81
|
+
|
|
82
|
+
### Added
|
|
83
|
+
- Additional development documentation in `.claude/` directory
|
|
84
|
+
- Model updates documentation
|
|
85
|
+
- Slash commands documentation
|
|
86
|
+
- Onboarding improvements documentation
|
|
87
|
+
|
|
88
|
+
## [0.0.68] - 2025-08-21
|
|
89
|
+
|
|
90
|
+
### Added
|
|
91
|
+
- **Comprehensive Command System Documentation**
|
|
92
|
+
- Created `command-system-architecture.md` with technical overview of command infrastructure
|
|
93
|
+
- Created `creating-custom-commands.md` with step-by-step guide for developers
|
|
94
|
+
- Updated user documentation with slash command information
|
|
95
|
+
- Added `/command-reload` command documentation
|
|
96
|
+
|
|
97
|
+
### Fixed
|
|
98
|
+
- Removed broken link to non-existent `templates.md` file in documentation
|
|
99
|
+
|
|
100
|
+
## [0.0.67] - 2025-08-14
|
|
101
|
+
|
|
102
|
+
### Added
|
|
103
|
+
- Added UV tool installation support to /update command
|
|
104
|
+
- Added venv manual update option to error message
|
|
105
|
+
- Added emoji prohibition to system prompt
|
|
106
|
+
|
|
107
|
+
### Fixed
|
|
108
|
+
- Improved venv detection for UV-created environments
|
|
109
|
+
- Added venv installation detection for /update command
|
|
110
|
+
|
|
111
|
+
## [0.0.66] - 2025-08-14
|
|
112
|
+
|
|
113
|
+
### Fixed
|
|
114
|
+
- Replaced aggressive retry messaging with constructive guidance
|
|
115
|
+
|
|
116
|
+
## [0.0.65] - 2025-08-14
|
|
117
|
+
|
|
118
|
+
### Added
|
|
119
|
+
- Implemented robust uninstall script with comprehensive detection
|
|
120
|
+
- Implemented robust update logic for Linux installer
|
|
121
|
+
|
|
122
|
+
### Changed
|
|
123
|
+
- Changed default model to OpenRouter GPT-4.1
|
|
124
|
+
- Enhanced install script with config file creation and setup guidance
|
|
125
|
+
|
|
126
|
+
### Fixed
|
|
127
|
+
- Added missing print helper functions to install script
|
|
128
|
+
|
|
129
|
+
## [0.0.64] - 2025-08-14
|
|
130
|
+
|
|
131
|
+
### Added
|
|
132
|
+
- Implemented UV and Hatch support to installation scripts
|
|
133
|
+
- Added comprehensive UV+Hatch setup documentation
|
|
134
|
+
|
|
135
|
+
### Changed
|
|
136
|
+
- Migrated to UV for dependency management
|
|
137
|
+
- Optimized pre-commit hooks for Hatch+UV integration
|
|
138
|
+
|
|
139
|
+
### Fixed
|
|
140
|
+
- Properly configured Hatch with UV installer
|
|
141
|
+
- Added defusedxml dependency and fixed typer compatibility
|
|
142
|
+
|
|
143
|
+
## [0.0.63] - 2025-08-14
|
|
144
|
+
|
|
145
|
+
### Added
|
|
146
|
+
- Phase 5 - Tool Prompt Micro-Injection System
|
|
147
|
+
|
|
148
|
+
### Fixed
|
|
149
|
+
- Fixed agent initialization performance with strategic caching
|
|
150
|
+
- Added exception for glob.py in file length check
|
|
151
|
+
|
|
152
|
+
## [0.0.62] - 2025-08-14
|
|
153
|
+
|
|
154
|
+
### Added
|
|
155
|
+
- **Major Performance Optimizations & JSON Recovery System** (#82)
|
|
156
|
+
- Phase 1 - Ripgrep binary management foundation
|
|
157
|
+
|
|
158
|
+
### Changed
|
|
159
|
+
- Complete UV+Hatch integration with dependency fixes
|
|
160
|
+
|
|
161
|
+
## [Unreleased] - 2025-08-20
|
|
162
|
+
|
|
163
|
+
### Added
|
|
164
|
+
|
|
165
|
+
- **Comprehensive Onboarding Experience Improvements** (#88) - Thanks to **@ryumacodes**!
|
|
166
|
+
- Enhanced user onboarding flow and setup experience
|
|
167
|
+
- Improved first-time user guidance and documentation
|
|
168
|
+
- Streamlined installation and configuration process
|
|
169
|
+
- Resolved issue #55
|
|
170
|
+
|
|
171
|
+
### Recent Pull Requests
|
|
172
|
+
|
|
173
|
+
- **Slash Command System for Custom Automation Workflows** (#85) - Thanks to **@Lftobs**!
|
|
174
|
+
- Implemented flexible slash command infrastructure
|
|
175
|
+
- Enabled custom automation workflows
|
|
176
|
+
- Extended CLI capabilities with user-defined commands
|
|
177
|
+
|
|
178
|
+
- **User Documentation and README Index** (#83) - Thanks to **@MclPio**!
|
|
179
|
+
- Added comprehensive user documentation
|
|
180
|
+
- Updated main README with organized index
|
|
181
|
+
- Improved documentation structure and accessibility
|
|
182
|
+
|
|
183
|
+
### Contributors
|
|
184
|
+
|
|
185
|
+
Special thanks to our recent contributors:
|
|
186
|
+
- **@ryumacodes** - Onboarding improvements and multiple feature implementations
|
|
187
|
+
- **@Lftobs** - Slash command system and workflow automation
|
|
188
|
+
- **@MclPio** - Documentation improvements and organization
|