tunacode-cli 0.0.73__tar.gz → 0.0.75__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of tunacode-cli might be problematic. Click here for more details.

Files changed (451) hide show
  1. tunacode_cli-0.0.75/.github/workflows/publish.yml +80 -0
  2. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/PKG-INFO +1 -1
  3. tunacode_cli-0.0.75/documentation/configuration/environment-variables.md +195 -0
  4. tunacode_cli-0.0.75/documentation/configuration/tunacode-json-example.md +125 -0
  5. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75/documentation/configuration}/tunacode.json.example +1 -0
  6. tunacode_cli-0.0.75/memory-bank/plan/2025-09-12_12-20-00_global_graceful_error_handling_implementation.md +399 -0
  7. tunacode_cli-0.0.75/memory-bank/research/2025-09-12_12-15-48_global_graceful_error_handling_analysis.md +126 -0
  8. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/pyproject.toml +2 -2
  9. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/constants.py +1 -1
  10. tunacode_cli-0.0.73/.claude/settings.local.json +0 -133
  11. tunacode_cli-0.0.73/.taskmaster/CLAUDE.md +0 -417
  12. tunacode_cli-0.0.73/.taskmaster/config.json +0 -35
  13. tunacode_cli-0.0.73/.taskmaster/docs/prd.txt +0 -322
  14. tunacode_cli-0.0.73/.taskmaster/state.json +0 -6
  15. tunacode_cli-0.0.73/.taskmaster/tasks/task_001.txt +0 -14
  16. tunacode_cli-0.0.73/.taskmaster/tasks/task_002.txt +0 -11
  17. tunacode_cli-0.0.73/.taskmaster/tasks/task_003.txt +0 -11
  18. tunacode_cli-0.0.73/.taskmaster/tasks/task_004.txt +0 -11
  19. tunacode_cli-0.0.73/.taskmaster/tasks/task_005.txt +0 -11
  20. tunacode_cli-0.0.73/.taskmaster/tasks/task_006.txt +0 -54
  21. tunacode_cli-0.0.73/.taskmaster/tasks/tasks.json +0 -369
  22. tunacode_cli-0.0.73/.taskmaster/templates/example_prd.txt +0 -47
  23. tunacode_cli-0.0.73/CHANGELOG.md +0 -107
  24. tunacode_cli-0.0.73/planner.md +0 -29
  25. tunacode_cli-0.0.73/scripts/publish_to_pip.sh +0 -146
  26. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/MEMORY_ANCHOR_SPEC.md +0 -0
  27. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/NEXT_PR_RULES.md +0 -0
  28. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/README.md +0 -0
  29. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/agents/antipattern-sniffer.md +0 -0
  30. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/agents/bug-context-analyzer.md +0 -0
  31. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/agents/code-synthesis-analyzer.md +0 -0
  32. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/agents/codebase-analyzer.md +0 -0
  33. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/agents/codebase-locator.md +0 -0
  34. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/agents/context-synthesis.md +0 -0
  35. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/agents/documentation-synthesis-qa.md +0 -0
  36. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/agents/expert-debugger.md +0 -0
  37. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/agents/phased-task-processor.md +0 -0
  38. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/agents/prompt-engineer.md +0 -0
  39. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/agents/rapid-code-synthesis-qa.md +0 -0
  40. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/agents/tech-docs-maintainer.md +0 -0
  41. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/anchors.json +0 -0
  42. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/CE/QA.md +0 -0
  43. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/CE/documentation-synthesis.md +0 -0
  44. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/CE/execute.md +0 -0
  45. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/CE/plan.md +0 -0
  46. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/CE/research.md +0 -0
  47. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/context-engineer/QA.md +0 -0
  48. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/context-engineer/documentation-synthesis.md +0 -0
  49. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/context-engineer/execute.md +0 -0
  50. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/context-engineer/plan.md +0 -0
  51. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/context-engineer/research.md +0 -0
  52. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/deploy.md +0 -0
  53. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/github-issue.md +0 -0
  54. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/phaser.md +0 -0
  55. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/smart-git.md +0 -0
  56. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/smells.md +0 -0
  57. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/work.md +0 -0
  58. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/commands/workflow.md +0 -0
  59. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/delta/2025-01-05-baseline.yml +0 -0
  60. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/delta/fix-text-alignment-layout-task3.md +0 -0
  61. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/delta/task4_ui_formatting_fix.md +0 -0
  62. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/delta/v0.0.53_to_v0.0.54.diff +0 -0
  63. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/development/always-on-display-implementation.md +0 -0
  64. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/development/cli-json-recovery-incident.md +0 -0
  65. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/development/directory-caching-optimization.md +0 -0
  66. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/development/esc-investigation/ESC_KEY_INVESTIGATION.md +0 -0
  67. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/development/esc-investigation/ESC_KEY_STREAMING_ANALYSIS.md +0 -0
  68. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/development/hatch-commands.md +0 -0
  69. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/development/model-updates-2025.md +0 -0
  70. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/development/onboarding-improvements.md +0 -0
  71. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/development/openai_tool_calling_evaluation.md +0 -0
  72. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/development/phase5-prompt-injection-system.md +0 -0
  73. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/development/slash-commands.md +0 -0
  74. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/development/uv-hatch-setup.md +0 -0
  75. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/development/uv-installer-updates.md +0 -0
  76. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/metadata/components.yml +0 -0
  77. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/metadata/hotspots.txt +0 -0
  78. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/patterns/json_retry_implementation.md +0 -0
  79. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/qa/fix-agent-errors.yml +0 -0
  80. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/qa/fix-publish-script.yml +0 -0
  81. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/qa/fix-runtime-warnings.yml +0 -0
  82. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/README.md +0 -0
  83. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/active/task_json_retry_implementation_summary_2025-07-24_13-05-40.md +0 -0
  84. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/active/task_standardize_ui_formatting_patterns_2025-07-23_20-43-28.md +0 -0
  85. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/agents/default/spinner-enhancement-2025-08-07.md +0 -0
  86. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/agents/esc-investigation/scratchpad.md +0 -0
  87. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/agents/phase5-recovery/scratchpad.md +0 -0
  88. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/agents/tech-docs-maintainer/scratchpad.md +0 -0
  89. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/code-synthesis-analyzer_ESC_Double-Press_REPL_Abort_Analysis_2025-08-06_134859_scratchpad.md +0 -0
  90. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Add_Prompt_Injection_to_Remaining_Tools_-_Continuation_2025-08-13_152542_scratchpad.md +0 -0
  91. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Add_Prompt_Injection_to_Remaining_Tools_2025-08-13_152352_scratchpad.md +0 -0
  92. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_CLI_Agent_JSON_Recovery_Investigation_2025-08-12_124206_scratchpad.md +0 -0
  93. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_CLI_Agent_JSON_Recovery_Investigation_2025-08-12_124727_scratchpad.md +0 -0
  94. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Completely_remove_TUNACODE_TASK_COMPLETE_from_plan_mode_2025-08-09_091836_scratchpad.md +0 -0
  95. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Debug_ESC_key_still_not_working_in_approval_prompt_2025-08-09_033534_scratchpad.md +0 -0
  96. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Debug_persistent_KeyboardInterrupt_in_event_loop_2025-08-09_034136_scratchpad.md +0 -0
  97. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Debug_present_plan_tool_registration_and_model_capability_2025-08-09_092923_scratchpad.md +0 -0
  98. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Debug_stuck_double_escape_in_plan_approval_2025-08-09_033214_scratchpad.md +0 -0
  99. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Fix_Application.exit()_failed_error_in_ESC_keybinding_2025-08-09_075607_scratchpad.md +0 -0
  100. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Fix_ESC_double-tap_and_plan_display_issues_2025-08-09_090055_scratchpad.md +0 -0
  101. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Fix_ESC_exceptions_and_missing_present_plan_tool_2025-08-09_081700_scratchpad.md +0 -0
  102. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Fix_agent_not_calling_present_plan_tool_2025-08-09_090827_scratchpad.md +0 -0
  103. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Fix_double_escape_for_planning_mode_approval_prompt_2025-08-09_032759_scratchpad.md +0 -0
  104. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Fix_unhandled_KeyboardInterrupt_exception_in_event_loop_2025-08-09_033843_scratchpad.md +0 -0
  105. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Fix_wizard_UI_-_branch_safety_interference_2025-08-20_222738_scratchpad.md +0 -0
  106. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Fixed_Thinking_dots_animation_2025-08-11_121009_scratchpad.md +0 -0
  107. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Force_agent_to_actually_call_present_plan_tool_2025-08-09_091334_scratchpad.md +0 -0
  108. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_GitHub_Directory_Review_2025-08-11_122451_scratchpad.md +0 -0
  109. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Implementing_ESC_key_double-press_for_REPL_abort_2025-08-06_124754_scratchpad.md +0 -0
  110. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_JSON_Recovery_Implementation_2025-08-12_130251_scratchpad.md +0 -0
  111. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Makefile_to_Hatch_Migration_2025-08-07_192356_scratchpad.md +0 -0
  112. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Performance_Optimization_-_Agent_Initialization_2025-08-13_160447_scratchpad.md +0 -0
  113. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Phase_3_-_Glob_Tool_Optimization_2025-08-13_142601_scratchpad.md +0 -0
  114. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Replace_entire_system_prompt_with_tool-only_instructions_2025-08-09_112839_scratchpad.md +0 -0
  115. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_TunaCode_Search_Enhancement_Implementation_2025-08-13_140905_scratchpad.md +0 -0
  116. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Update_Documentation_for_JSON_Recovery_System_2025-08-12_131127_scratchpad.md +0 -0
  117. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_Update_documentation_for_always-on_display_UX_improvements_2025-08-12_154818_scratchpad.md +0 -0
  118. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/default_slash_command_system_implementation_2025-08-14_034024_scratchpad.md +0 -0
  119. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/archived/phase5-recovery_Phase_5_Recovery_Analysis_2025-08-13_145339_scratchpad.md +0 -0
  120. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/locks/code-synthesis-analyzer.lock +0 -0
  121. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/locks/default.lock +0 -0
  122. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/locks/esc-investigation.lock +0 -0
  123. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/locks/phase5-recovery.lock +0 -0
  124. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/locks/tech-docs-maintainer.lock +0 -0
  125. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/code-synthesis-analyzer_ESC_Double-Press_REPL_Abort_Analysis_2025-08-06_134859_scratchpad.md +0 -0
  126. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Add_Prompt_Injection_to_Remaining_Tools_-_Continuation_2025-08-13_152542_scratchpad.md +0 -0
  127. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Add_Prompt_Injection_to_Remaining_Tools_2025-08-13_152352_scratchpad.md +0 -0
  128. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_CLI_Agent_JSON_Recovery_Investigation_2025-08-12_124206_scratchpad.md +0 -0
  129. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_CLI_Agent_JSON_Recovery_Investigation_2025-08-12_124727_scratchpad.md +0 -0
  130. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Completely_remove_TUNACODE_TASK_COMPLETE_from_plan_mode_2025-08-09_091836_scratchpad.md +0 -0
  131. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Debug_ESC_key_still_not_working_in_approval_prompt_2025-08-09_033534_scratchpad.md +0 -0
  132. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Debug_persistent_KeyboardInterrupt_in_event_loop_2025-08-09_034136_scratchpad.md +0 -0
  133. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Debug_present_plan_tool_registration_and_model_capability_2025-08-09_092923_scratchpad.md +0 -0
  134. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Debug_stuck_double_escape_in_plan_approval_2025-08-09_033214_scratchpad.md +0 -0
  135. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Fix_Application.exit()_failed_error_in_ESC_keybinding_2025-08-09_075607_scratchpad.md +0 -0
  136. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Fix_ESC_double-tap_and_plan_display_issues_2025-08-09_090055_scratchpad.md +0 -0
  137. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Fix_ESC_exceptions_and_missing_present_plan_tool_2025-08-09_081700_scratchpad.md +0 -0
  138. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Fix_agent_not_calling_present_plan_tool_2025-08-09_090827_scratchpad.md +0 -0
  139. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Fix_double_escape_for_planning_mode_approval_prompt_2025-08-09_032759_scratchpad.md +0 -0
  140. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Fix_unhandled_KeyboardInterrupt_exception_in_event_loop_2025-08-09_033843_scratchpad.md +0 -0
  141. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Fix_wizard_UI_-_branch_safety_interference_2025-08-20_222738_scratchpad.md +0 -0
  142. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Fixed_Thinking_dots_animation_2025-08-11_121009_scratchpad.md +0 -0
  143. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Force_agent_to_actually_call_present_plan_tool_2025-08-09_091334_scratchpad.md +0 -0
  144. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_GitHub_Directory_Review_2025-08-11_122451_scratchpad.md +0 -0
  145. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Implementing_ESC_key_double-press_for_REPL_abort_2025-08-06_124754_scratchpad.md +0 -0
  146. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_JSON_Recovery_Implementation_2025-08-12_130251_scratchpad.md +0 -0
  147. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Makefile_to_Hatch_Migration_2025-08-07_192356_scratchpad.md +0 -0
  148. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Performance_Optimization_-_Agent_Initialization_2025-08-13_160447_scratchpad.md +0 -0
  149. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Phase_3_-_Glob_Tool_Optimization_2025-08-13_142601_scratchpad.md +0 -0
  150. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Replace_entire_system_prompt_with_tool-only_instructions_2025-08-09_112839_scratchpad.md +0 -0
  151. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_TunaCode_Search_Enhancement_Implementation_2025-08-13_140905_scratchpad.md +0 -0
  152. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Update_Documentation_for_JSON_Recovery_System_2025-08-12_131127_scratchpad.md +0 -0
  153. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/default_Update_documentation_for_always-on_display_UX_improvements_2025-08-12_154818_scratchpad.md +0 -0
  154. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/scratchpad/shared/done_tasks/phase5-recovery_Phase_5_Recovery_Analysis_2025-08-13_145339_scratchpad.md +0 -0
  155. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/tech-docs-maintainer.md +0 -0
  156. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.claude/test_suite_issues_resolved.md +0 -0
  157. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.github/pull_request_template.md +0 -0
  158. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.github/scripts/check_file_size.py +0 -0
  159. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.github/workflows/lint.yml +0 -0
  160. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.gitignore +0 -0
  161. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/.pre-commit-config.yaml +0 -0
  162. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/CLAUDE.md +0 -0
  163. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/LICENSE +0 -0
  164. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/MANIFEST.in +0 -0
  165. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/README.md +0 -0
  166. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/TUNACODE.md +0 -0
  167. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/assets/tunacode_example.png +0 -0
  168. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/README.md +0 -0
  169. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/agent/TOOLS_WORKFLOW.md +0 -0
  170. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/agent/agent-inspo.md +0 -0
  171. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/agent/how-tunacode-agent-works.md +0 -0
  172. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/agent/main-agent-architecture.md +0 -0
  173. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/agent/swepmini-example.md +0 -0
  174. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/agent/tunacode-tool-system.md +0 -0
  175. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/changelog/CHANGELOG.md +0 -0
  176. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75/documentation/configuration}/.env.example +0 -0
  177. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/configuration/config-file-example.md +0 -0
  178. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/configuration/local-models.md +0 -0
  179. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/configuration/logging-configuration.md +0 -0
  180. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/development/codebase-hygiene.md +0 -0
  181. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/development/command-system-architecture.md +0 -0
  182. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/development/creating-custom-commands.md +0 -0
  183. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/development/hatch-build-system.md +0 -0
  184. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/development/performance-optimizations.md +0 -0
  185. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/development/prompt-principles.md +0 -0
  186. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/tests/README.md +0 -0
  187. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/tests/characterization-testing.md +0 -0
  188. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/tests/mocking-strategies.md +0 -0
  189. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/tests/troubleshooting.md +0 -0
  190. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/ui/ui-architecture.md +0 -0
  191. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/user/commands.md +0 -0
  192. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/user/getting-started.md +0 -0
  193. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/documentation/user/tools.md +0 -0
  194. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/memory-bank/plan/2025-09-11_13-30-00_agent_loop_architecture_enhancement.md +0 -0
  195. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/memory-bank/plan/2025-09-11_14-00-00_enum_state_machine_implementation.md +0 -0
  196. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/memory-bank/plan/2025-09-11_14-15-00_automated_cli_tool_testing_framework.md +0 -0
  197. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/memory-bank/research/2025-09-07_21-13-37_agent_loop_architecture.md +0 -0
  198. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/memory-bank/research/2025-09-11_13-14-06_agent_loop_enhancement_analysis.md +0 -0
  199. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/pytest.ini +0 -0
  200. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/scripts/check-file-length.sh +0 -0
  201. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/scripts/download_ripgrep.py +0 -0
  202. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/scripts/install_linux.sh +0 -0
  203. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/scripts/playwright_cache.py +0 -0
  204. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/scripts/setup_dev_env.sh +0 -0
  205. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/scripts/startup_timer.py +0 -0
  206. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/scripts/uninstall.sh +0 -0
  207. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/scripts/utils/vulture_whitelist.py +0 -0
  208. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/scripts/verify_dev_env.sh +0 -0
  209. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/setup.py +0 -0
  210. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/README.md +0 -0
  211. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/__init__.py +0 -0
  212. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/__init__.py +0 -0
  213. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/__init__.py +0 -0
  214. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/__init__.py +0 -0
  215. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/base.py +0 -0
  216. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/__init__.py +0 -0
  217. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/command_reload.py +0 -0
  218. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/conversation.py +0 -0
  219. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/debug.py +0 -0
  220. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/development.py +0 -0
  221. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/model.py +0 -0
  222. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/plan.py +0 -0
  223. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/quickstart.py +0 -0
  224. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/system.py +0 -0
  225. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/template.py +0 -0
  226. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/implementations/todo.py +0 -0
  227. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/registry.py +0 -0
  228. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/slash/__init__.py +0 -0
  229. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/slash/command.py +0 -0
  230. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/slash/loader.py +0 -0
  231. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/slash/processor.py +0 -0
  232. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/slash/types.py +0 -0
  233. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/slash/validator.py +0 -0
  234. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/commands/template_shortcut.py +0 -0
  235. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/main.py +0 -0
  236. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/repl.py +0 -0
  237. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/repl_components/__init__.py +0 -0
  238. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/repl_components/command_parser.py +0 -0
  239. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/repl_components/error_recovery.py +0 -0
  240. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/repl_components/output_display.py +0 -0
  241. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/cli/repl_components/tool_executor.py +0 -0
  242. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/configuration/__init__.py +0 -0
  243. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/configuration/defaults.py +0 -0
  244. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/configuration/models.py +0 -0
  245. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/configuration/settings.py +0 -0
  246. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/context.py +0 -0
  247. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/__init__.py +0 -0
  248. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/agents/__init__.py +0 -0
  249. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/__init__.py +0 -0
  250. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/agent_config.py +0 -0
  251. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/agent_helpers.py +0 -0
  252. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/json_tool_parser.py +0 -0
  253. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/message_handler.py +0 -0
  254. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/node_processor.py +0 -0
  255. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/response_state.py +0 -0
  256. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/result_wrapper.py +0 -0
  257. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/state_transition.py +0 -0
  258. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/task_completion.py +0 -0
  259. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/tool_buffer.py +0 -0
  260. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/tool_executor.py +0 -0
  261. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/agents/agent_components/truncation_checker.py +0 -0
  262. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/agents/main.py +0 -0
  263. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/agents/utils.py +0 -0
  264. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/background/__init__.py +0 -0
  265. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/background/manager.py +0 -0
  266. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/code_index.py +0 -0
  267. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/llm/__init__.py +0 -0
  268. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/logging/__init__.py +0 -0
  269. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/logging/config.py +0 -0
  270. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/logging/formatters.py +0 -0
  271. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/logging/handlers.py +0 -0
  272. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/logging/logger.py +0 -0
  273. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/setup/__init__.py +0 -0
  274. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/setup/agent_setup.py +0 -0
  275. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/setup/base.py +0 -0
  276. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/setup/config_setup.py +0 -0
  277. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/setup/coordinator.py +0 -0
  278. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/setup/environment_setup.py +0 -0
  279. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/setup/git_safety_setup.py +0 -0
  280. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/setup/template_setup.py +0 -0
  281. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/state.py +0 -0
  282. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/token_usage/api_response_parser.py +0 -0
  283. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/token_usage/cost_calculator.py +0 -0
  284. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/token_usage/usage_tracker.py +0 -0
  285. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/core/tool_handler.py +0 -0
  286. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/exceptions.py +0 -0
  287. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/prompts/system.md +0 -0
  288. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/prompts/system.md.bak +0 -0
  289. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/py.typed +0 -0
  290. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/services/__init__.py +0 -0
  291. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/services/mcp.py +0 -0
  292. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/setup.py +0 -0
  293. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/templates/__init__.py +0 -0
  294. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/templates/loader.py +0 -0
  295. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/__init__.py +0 -0
  296. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/base.py +0 -0
  297. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/bash.py +0 -0
  298. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/exit_plan_mode.py +0 -0
  299. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/glob.py +0 -0
  300. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/grep.py +0 -0
  301. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/grep_components/__init__.py +0 -0
  302. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/grep_components/file_filter.py +0 -0
  303. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/grep_components/pattern_matcher.py +0 -0
  304. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/grep_components/result_formatter.py +0 -0
  305. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/grep_components/search_result.py +0 -0
  306. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/list_dir.py +0 -0
  307. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/present_plan.py +0 -0
  308. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/bash_prompt.xml +0 -0
  309. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/exit_plan_mode_prompt.xml +0 -0
  310. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/glob_prompt.xml +0 -0
  311. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/grep_prompt.xml +0 -0
  312. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/list_dir_prompt.xml +0 -0
  313. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/present_plan_prompt.xml +0 -0
  314. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/read_file_prompt.xml +0 -0
  315. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/run_command_prompt.xml +0 -0
  316. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/todo_prompt.xml +0 -0
  317. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/update_file_prompt.xml +0 -0
  318. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/prompts/write_file_prompt.xml +0 -0
  319. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/read_file.py +0 -0
  320. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/run_command.py +0 -0
  321. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/schema_assembler.py +0 -0
  322. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/todo.py +0 -0
  323. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/update_file.py +0 -0
  324. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/write_file.py +0 -0
  325. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tools/xml_helper.py +0 -0
  326. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tutorial/__init__.py +0 -0
  327. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tutorial/content.py +0 -0
  328. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tutorial/manager.py +0 -0
  329. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/tutorial/steps.py +0 -0
  330. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/types.py +0 -0
  331. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/__init__.py +0 -0
  332. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/completers.py +0 -0
  333. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/console.py +0 -0
  334. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/constants.py +0 -0
  335. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/decorators.py +0 -0
  336. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/input.py +0 -0
  337. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/keybindings.py +0 -0
  338. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/lexers.py +0 -0
  339. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/logging_compat.py +0 -0
  340. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/model_selector.py +0 -0
  341. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/output.py +0 -0
  342. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/panels.py +0 -0
  343. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/prompt_manager.py +0 -0
  344. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/tool_descriptions.py +0 -0
  345. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/tool_ui.py +0 -0
  346. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/utils.py +0 -0
  347. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/ui/validators.py +0 -0
  348. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/utils/__init__.py +0 -0
  349. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/utils/api_key_validation.py +0 -0
  350. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/utils/bm25.py +0 -0
  351. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/utils/diff_utils.py +0 -0
  352. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/utils/file_utils.py +0 -0
  353. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/utils/import_cache.py +0 -0
  354. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/utils/json_utils.py +0 -0
  355. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/utils/message_utils.py +0 -0
  356. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/utils/models_registry.py +0 -0
  357. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/utils/retry.py +0 -0
  358. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/utils/ripgrep.py +0 -0
  359. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/utils/security.py +0 -0
  360. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/utils/system.py +0 -0
  361. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/utils/text_utils.py +0 -0
  362. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/utils/token_counter.py +0 -0
  363. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/src/tunacode/utils/user_configuration.py +0 -0
  364. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/CHARACTERIZATION_README.md +0 -0
  365. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/CHARACTERIZATION_TEST_PLAN.md +0 -0
  366. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/CHARACTERIZATION_TEST_PLAN_AGENT_MAIN.md +0 -0
  367. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/CHARACTERIZATION_TEST_PLAN_COMMANDS.md +0 -0
  368. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/FILE_OPERATIONS_TEST_GUIDE.md +0 -0
  369. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/__init__.py +0 -0
  370. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/agent/__init__.py +0 -0
  371. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/agent/conftest.py +0 -0
  372. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/agent/test_agent_creation.py +0 -0
  373. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/agent/test_json_tool_parsing.py +0 -0
  374. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/agent/test_process_node.py +0 -0
  375. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/agent/test_process_request.py +0 -0
  376. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/agent/test_tool_message_patching.py +0 -0
  377. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/background/test_background_edge_cases.py +0 -0
  378. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/background/test_cleanup.py +0 -0
  379. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/background/test_task_cancellation.py +0 -0
  380. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/background/test_task_creation.py +0 -0
  381. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/background/test_task_execution.py +0 -0
  382. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/code_index/test_cache_management.py +0 -0
  383. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/code_index/test_file_scanning.py +0 -0
  384. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/code_index/test_index_building.py +0 -0
  385. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/code_index/test_search_operations.py +0 -0
  386. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/code_index/test_symbol_extraction.py +0 -0
  387. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/commands/__init__.py +0 -0
  388. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/commands/test_init_command.py +0 -0
  389. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/conftest.py +0 -0
  390. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/context/README.md +0 -0
  391. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/context/__init__.py +0 -0
  392. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/context/test_context_acceptance.py +0 -0
  393. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/context/test_context_integration.py +0 -0
  394. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/context/test_context_loading.py +0 -0
  395. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/context/test_tunacode_logging.py +0 -0
  396. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/repl/test_command_parsing.py +0 -0
  397. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/repl/test_error_handling.py +0 -0
  398. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/repl/test_escape_key_behavior.py +0 -0
  399. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/repl/test_input_handling.py +0 -0
  400. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/repl/test_keyboard_interrupts.py +0 -0
  401. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/repl/test_multiline_input.py +0 -0
  402. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/repl/test_output_display_logic.py +0 -0
  403. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/repl/test_repl_initialization.py +0 -0
  404. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/repl/test_session_flow.py +0 -0
  405. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/services/test_error_recovery.py +0 -0
  406. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/services/test_llm_routing.py +0 -0
  407. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/services/test_mcp_integration.py +0 -0
  408. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/services/test_service_lifecycle.py +0 -0
  409. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/state/test_agent_tracking.py +0 -0
  410. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/state/test_message_history.py +0 -0
  411. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/state/test_permissions.py +0 -0
  412. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/state/test_session_management.py +0 -0
  413. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/state/test_state_initialization.py +0 -0
  414. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/state/test_user_config.py +0 -0
  415. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/test_characterization_commands.py +0 -0
  416. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/test_characterization_grep.py +0 -0
  417. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/test_characterization_main.py +0 -0
  418. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/test_characterization_repl.py +0 -0
  419. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/ui/test_async_ui.py +0 -0
  420. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/ui/test_console_output.py +0 -0
  421. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/ui/test_diff_display.py +0 -0
  422. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/ui/test_prompt_rendering.py +0 -0
  423. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/ui/test_spinner_messages.py +0 -0
  424. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/ui/test_tool_confirmations.py +0 -0
  425. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/utils/test_expand_file_refs.py +0 -0
  426. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/utils/test_file_operations.py +0 -0
  427. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/utils/test_git_commands.py +0 -0
  428. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/utils/test_token_counting.py +0 -0
  429. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/characterization/utils/test_utils_edge_cases.py +0 -0
  430. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/conftest.py +0 -0
  431. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_agent_output_formatting.py +0 -0
  432. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_command_parser_retry.py +0 -0
  433. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_completion_detection.py +0 -0
  434. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_glob_phase3.py +0 -0
  435. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_json_concatenation_recovery.py +0 -0
  436. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_json_retry.py +0 -0
  437. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_logging_config.py +0 -0
  438. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_onboarding_features.py +0 -0
  439. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_phase2_type_hints.py +0 -0
  440. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_plan_mode.py +0 -0
  441. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_prompt_changes_validation.py +0 -0
  442. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_prompt_injection.py +0 -0
  443. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_security.py +0 -0
  444. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_slash_commands_comprehensive.py +0 -0
  445. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_slash_commands_functional.py +0 -0
  446. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_slash_commands_integration.py +0 -0
  447. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_slash_commands_isolated.py +0 -0
  448. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_spinner_updates.py +0 -0
  449. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/test_tool_batching_retry.py +0 -0
  450. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tests/unit/test_constants_enums.py +0 -0
  451. {tunacode_cli-0.0.73 → tunacode_cli-0.0.75}/tools/emoji_cleaner.py +0 -0
@@ -0,0 +1,80 @@
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
+ # Fallback: username/password secrets
76
+ - name: Publish to PyPI (user/pass)
77
+ env:
78
+ TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
79
+ TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
80
+ run: python -m twine upload dist/*
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tunacode-cli
3
- Version: 0.0.73
3
+ Version: 0.0.75
4
4
  Summary: Your agentic CLI developer.
5
5
  Project-URL: Homepage, https://tunacode.xyz/
6
6
  Project-URL: Repository, https://github.com/alchemiststudiosDOTai/tunacode
@@ -0,0 +1,195 @@
1
+ # Environment Variables Configuration
2
+
3
+ The `.env.example` file demonstrates all environment variables that can be used to configure TunaCode. These variables provide an alternative method for setting API keys and configuration options.
4
+
5
+ ## File Usage
6
+
7
+ 1. **Copy the example file**:
8
+ ```bash
9
+ cp documentation/configuration/.env.example .env
10
+ ```
11
+
12
+ 2. **Edit with your values**:
13
+ ```bash
14
+ # Set your actual API keys
15
+ ANTHROPIC_API_KEY="sk-ant-api03-your-key-here"
16
+ OPENAI_API_KEY="sk-proj-your-key-here"
17
+ ```
18
+
19
+ 3. **Load the environment**:
20
+ ```bash
21
+ # Load variables in your shell
22
+ source .env
23
+
24
+ # Or use with direnv (auto-loading)
25
+ echo "dotenv" > .envrc
26
+ ```
27
+
28
+ ## Environment Variables
29
+
30
+ ### Required API Keys
31
+
32
+ **Anthropic Claude**
33
+ - `ANTHROPIC_API_KEY`: Required for Claude models
34
+ - Format: `sk-ant-api03-...`
35
+ - Get from: https://console.anthropic.com
36
+
37
+ **OpenAI**
38
+ - `OPENAI_API_KEY`: Required for OpenAI models (GPT-3.5, GPT-4, etc.)
39
+ - Format: `sk-proj-...`
40
+ - Get from: https://platform.openai.com/api-keys
41
+
42
+ ### Optional API Keys
43
+
44
+ **Google Gemini**
45
+ - `GOOGLE_API_KEY`: For Google Gemini models
46
+ - Get from: https://makersuite.google.com/app/apikey
47
+
48
+ **Perplexity**
49
+ - `PERPLEXITY_API_KEY`: For Perplexity AI models
50
+ - Format: `pplx-...`
51
+ - Get from: https://www.perplexity.ai/settings/api
52
+
53
+ **Mistral AI**
54
+ - `MISTRAL_API_KEY`: For Mistral models
55
+ - Get from: https://console.mistral.ai/api-keys
56
+
57
+ **xAI**
58
+ - `XAI_API_KEY`: For xAI models (Grok)
59
+ - Get from: https://console.x.ai
60
+
61
+ **Groq**
62
+ - `GROQ_API_KEY`: For Groq's fast inference
63
+ - Get from: https://console.groq.com
64
+
65
+ **OpenRouter**
66
+ - `OPENROUTER_API_KEY`: For OpenRouter models
67
+ - Get from: https://openrouter.ai/keys
68
+
69
+ **Azure OpenAI**
70
+ - `AZURE_OPENAI_API_KEY`: For Azure OpenAI services
71
+ - Requires additional configuration in `tunacode.json` for endpoint
72
+
73
+ **Ollama**
74
+ - `OLLAMA_API_KEY`: For remote Ollama servers requiring authentication
75
+ - Local Ollama typically doesn't require a key
76
+
77
+ **GitHub**
78
+ - `GITHUB_API_KEY`: For GitHub import/export features
79
+ - Format: `ghp_...` or `github_pat_...`
80
+ - Get from: https://github.com/settings/tokens
81
+
82
+ ## Configuration Priority
83
+
84
+ Environment variables are processed in this order:
85
+
86
+ 1. **Environment variables** (highest priority)
87
+ 2. **`tunacode.json` configuration file**
88
+ 3. **Default values** (lowest priority)
89
+
90
+ Example: If `OPENAI_API_KEY` is set both in `.env` and `tunacode.json`, the `.env` value takes precedence.
91
+
92
+ ## Security Best Practices
93
+
94
+ ### Never Commit `.env` Files
95
+ ```bash
96
+ # Add to .gitignore
97
+ .env
98
+ .env.local
99
+ .env.production
100
+ ```
101
+
102
+ ### Use Different Files for Different Environments
103
+ ```
104
+ .env # Local development
105
+ .env.staging # Staging environment
106
+ .env.production # Production environment
107
+ ```
108
+
109
+ ### Secure Storage
110
+ - Use encrypted secrets management in production
111
+ - Consider using `direnv` for automatic environment loading
112
+ - Use `.env.example` as a template for required variables
113
+
114
+ ### Key Rotation
115
+ - Regularly rotate API keys
116
+ - Monitor key usage and billing
117
+ - Revoke compromised keys immediately
118
+
119
+ ## Usage Examples
120
+
121
+ ### Development Setup
122
+ ```bash
123
+ # Copy and configure
124
+ cp documentation/configuration/.env.example .env
125
+ echo 'ANTHROPIC_API_KEY="your-key"' >> .env
126
+
127
+ # Load environment
128
+ source .env
129
+
130
+ # Run tunacode
131
+ tunacode --model "anthropic:claude-3-sonnet"
132
+ ```
133
+
134
+ ### CI/CD Integration
135
+ ```yaml
136
+ # GitHub Actions example
137
+ env:
138
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
139
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
140
+ ```
141
+
142
+ ### Docker Integration
143
+ ```dockerfile
144
+ # Dockerfile
145
+ COPY .env.example .env
146
+ # Build-time or run-time environment injection
147
+ ```
148
+
149
+ ## Troubleshooting
150
+
151
+ ### Common Issues
152
+
153
+ **API Key Not Found**
154
+ ```bash
155
+ # Check if variable is set
156
+ echo $ANTHROPIC_API_KEY
157
+
158
+ # Verify file exists
159
+ ls -la .env
160
+ ```
161
+
162
+ **Invalid API Key Format**
163
+ - Ensure keys start with correct prefix (`sk-`, `pplx-`, etc.)
164
+ - Check for extra spaces or quotes
165
+ - Verify key hasn't expired
166
+
167
+ **Permission Issues**
168
+ ```bash
169
+ # Check file permissions
170
+ chmod 600 .env
171
+ ```
172
+
173
+ ### Debug Environment Loading
174
+ ```bash
175
+ # Show all environment variables
176
+ env | grep API_KEY
177
+
178
+ # Test with specific variable
179
+ python -c "import os; print(os.getenv('ANTHROPIC_API_KEY', 'NOT SET'))"
180
+ ```
181
+
182
+ ## Integration with Configuration Files
183
+
184
+ Environment variables can be referenced in `tunacode.json`:
185
+
186
+ ```json
187
+ {
188
+ "env": {
189
+ "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}",
190
+ "OPENAI_API_KEY": "${OPENAI_API_KEY}"
191
+ }
192
+ }
193
+ ```
194
+
195
+ This allows for flexible configuration management across different deployment environments.
@@ -0,0 +1,125 @@
1
+ # TunaCode Configuration Example File
2
+
3
+ The `tunacode.json.example` file provides a comprehensive template for configuring the TunaCode system. This file demonstrates all available configuration options and their default values.
4
+
5
+ ## File Location
6
+
7
+ The actual configuration file should be located at:
8
+ - **Linux/macOS**: `~/.config/tunacode.json`
9
+ - **Windows**: `%APPDATA%\tunacode.json`
10
+
11
+ ## Configuration Structure
12
+
13
+ ```json
14
+ {
15
+ "default_model": "openai:gpt-4.1",
16
+ "env": {
17
+ "ANTHROPIC_API_KEY": "",
18
+ "GEMINI_API_KEY": "",
19
+ "OPENAI_API_KEY": "api-key",
20
+ "OPENROUTER_API_KEY": "",
21
+ "OPENAI_BASE_URL": "https://api.cerebras.ai/v1"
22
+ },
23
+ "settings": {
24
+ "max_retries": 10,
25
+ "max_iterations": 40,
26
+ "tool_ignore": [
27
+ "read_file"
28
+ ],
29
+ "guide_file": "TUNACODE.md",
30
+ "fallback_response": true,
31
+ "fallback_verbosity": "normal",
32
+ "context_window_size": 200000,
33
+ "enable_streaming": true,
34
+ "ripgrep": {
35
+ "use_bundled": false,
36
+ "timeout": 10,
37
+ "max_buffer_size": 1048576,
38
+ "max_results": 100,
39
+ "enable_metrics": false,
40
+ "debug": false
41
+ },
42
+ "enable_tutorial": true,
43
+ "first_installation_date": "2025-09-11T11:50:40.167105",
44
+ "tutorial_declined": true
45
+ },
46
+ "mcpServers": {}
47
+ }
48
+ ```
49
+
50
+ ## Configuration Options
51
+
52
+ ### Default Model
53
+ - `default_model`: Default AI model to use (format: `provider:model-name`)
54
+ - Examples: `openai:gpt-4.1`, `anthropic:claude-3-sonnet`, `google:gemini-pro`
55
+
56
+ ### Environment Variables (`env`)
57
+ Configure API keys and endpoints for different AI providers:
58
+
59
+ **Required Keys:**
60
+ - `ANTHROPIC_API_KEY`: Anthropic Claude API key (format: `sk-ant-api03-...`)
61
+ - `OPENAI_API_KEY`: OpenAI API key (format: `sk-proj-...`)
62
+ - `OPENROUTER_API_KEY`: OpenRouter API key
63
+
64
+ **Optional Keys:**
65
+ - `GEMINI_API_KEY`: Google Gemini API key
66
+ - `OPENAI_BASE_URL`: Custom OpenAI-compatible endpoint (e.g., Cerebras, LocalAI)
67
+
68
+ ### Settings
69
+
70
+ **Core Settings:**
71
+ - `max_retries`: Maximum retry attempts for failed operations (default: 10)
72
+ - `max_iterations`: Maximum agent iterations per request (default: 40)
73
+ - `tool_ignore`: List of tools to disable (e.g., `["read_file"]`)
74
+ - `guide_file`: Project instruction file (default: `TUNACODE.md`)
75
+ - `fallback_response`: Enable fallback when iterations exhausted (default: true)
76
+ - `fallback_verbosity`: Fallback verbosity level (`minimal`, `normal`, `detailed`)
77
+ - `context_window_size`: Maximum context size in tokens (default: 200000)
78
+ - `enable_streaming`: Enable streaming responses (default: true)
79
+
80
+ **Ripgrep Configuration:**
81
+ - `use_bundled`: Use bundled ripgrep binary (default: false)
82
+ - `timeout`: Ripgrep timeout in seconds (default: 10)
83
+ - `max_buffer_size`: Maximum buffer size in bytes (default: 1048576)
84
+ - `max_results`: Maximum search results (default: 100)
85
+ - `enable_metrics`: Enable ripgrep metrics (default: false)
86
+ - `debug`: Enable debug output (default: false)
87
+
88
+ **Tutorial Settings:**
89
+ - `enable_tutorial`: Enable first-time tutorial (default: true)
90
+ - `first_installation_date`: Installation timestamp
91
+ - `tutorial_declined`: User has declined tutorial (default: false)
92
+
93
+ ### MCP Servers
94
+ - `mcpServers`: Model Context Protocol server configurations (empty by default)
95
+
96
+ ## Setup Methods
97
+
98
+ 1. **Copy from Example**:
99
+ ```bash
100
+ cp documentation/configuration/tunacode.json.example ~/.config/tunacode.json
101
+ # Edit the file with your API keys
102
+ ```
103
+
104
+ 2. **Setup Wizard**:
105
+ ```bash
106
+ tunacode --setup
107
+ ```
108
+
109
+ 3. **CLI Configuration**:
110
+ ```bash
111
+ tunacode --model "openai:gpt-4.1" --key "your-api-key"
112
+ ```
113
+
114
+ ## Runtime Configuration Changes
115
+
116
+ - Change iterations: `/iterations 30`
117
+ - Switch models: `/model`
118
+ - View current config: `/config`
119
+
120
+ ## Security Notes
121
+
122
+ - Never commit your actual `tunacode.json` file to version control
123
+ - Use environment variables for sensitive keys in production
124
+ - Keep API keys secure and rotate them regularly
125
+ - The example file contains placeholder values only
@@ -1,4 +1,5 @@
1
1
  {
2
+ #for example we can have the provider:model
2
3
  "default_model": "openai:gpt-4.1",
3
4
  "env": {
4
5
  "ANTHROPIC_API_KEY": "",