tunacode-cli 0.0.76.3__tar.gz → 0.0.76.6__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 (426) hide show
  1. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/delta_summaries/behavior_changes.json +53 -5
  2. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/memory_anchors/anchors.json +49 -4
  3. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/metadata/file_classifications.json +0 -10
  4. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.gitignore +1 -1
  5. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/AGENTS.md +26 -2
  6. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/CLAUDE.md +15 -2
  7. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/PKG-INFO +1 -1
  8. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/TODO.md +8 -8
  9. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/changelog/CHANGELOG.md +45 -0
  10. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/development/hatch-build-system.md +0 -1
  11. tunacode_cli-0.0.76.6/llm-agent-tools/.gitignore +15 -0
  12. tunacode_cli-0.0.76.6/llm-agent-tools/README.md +155 -0
  13. tunacode_cli-0.0.76.6/llm-agent-tools/rag_modules/README.md +155 -0
  14. tunacode_cli-0.0.76.6/llm-agent-tools/rag_modules/indexer.py +324 -0
  15. tunacode_cli-0.0.76.6/llm-agent-tools/rag_modules/rag-cli.sh +208 -0
  16. tunacode_cli-0.0.76.6/llm-agent-tools/rag_modules/search.py +248 -0
  17. tunacode_cli-0.0.76.6/llm-agent-tools/rag_modules/stats.py +150 -0
  18. tunacode_cli-0.0.76.6/memory-bank/plan/2025-09-24_cli_prompt_toolkit_fuzzy_plan.md +89 -0
  19. tunacode_cli-0.0.76.6/memory-bank/research/2025-09-24_fuzzy_logic_implementation_analysis.md +96 -0
  20. tunacode_cli-0.0.76.6/plan-models.md +60 -0
  21. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/pyproject.toml +2 -2
  22. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/registry.py +2 -7
  23. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/main.py +1 -1
  24. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/constants.py +1 -1
  25. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/completers.py +172 -39
  26. tunacode_cli-0.0.76.6/src/tunacode/ui/path_heuristics.py +89 -0
  27. tunacode_cli-0.0.76.6/tests/characterization/test_cli_fuzzy_matching.py +60 -0
  28. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/conftest.py +8 -0
  29. tunacode_cli-0.0.76.3/.claude/patterns/coding_patterns.md +0 -12
  30. tunacode_cli-0.0.76.3/memory-bank/research/2025-09-22_12-01-06_cli_fuzzy_logic_analysis.md +0 -51
  31. tunacode_cli-0.0.76.3/src/tunacode/utils/fuzzy_utils.py +0 -33
  32. tunacode_cli-0.0.76.3/tests/characterization/test_cli_fuzzy_matching.py +0 -19
  33. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/README.md +0 -0
  34. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/debug_history/2025-09-21-rag-search-hyphen-gotcha.md +0 -0
  35. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/debug_history/debug_sessions.json +0 -0
  36. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/delta_summaries/2025-01-05-baseline.yml +0 -0
  37. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/delta_summaries/2025-09-21-models_registry-pydantic-conversion.md +0 -0
  38. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/delta_summaries/2025-09-21-models_registry-validation-tests.md +0 -0
  39. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/delta_summaries/2025-09-21-test-update-model-command-characterization.md +0 -0
  40. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/delta_summaries/api_change_logs.json +0 -0
  41. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/delta_summaries/fix-text-alignment-layout-task3.md +0 -0
  42. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/delta_summaries/reasoning_logs.json +0 -0
  43. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/delta_summaries/task4_ui_formatting_fix.md +0 -0
  44. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/delta_summaries/v0.0.53_to_v0.0.54.diff +0 -0
  45. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/development/always-on-display-implementation.md +0 -0
  46. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/development/cli-json-recovery-incident.md +0 -0
  47. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/development/directory-caching-optimization.md +0 -0
  48. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/development/esc-investigation/ESC_KEY_INVESTIGATION.md +0 -0
  49. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/development/esc-investigation/ESC_KEY_STREAMING_ANALYSIS.md +0 -0
  50. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/development/hatch-commands.md +0 -0
  51. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/development/model-updates-2025.md +0 -0
  52. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/development/onboarding-improvements.md +0 -0
  53. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/development/openai_tool_calling_evaluation.md +0 -0
  54. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/development/phase5-prompt-injection-system.md +0 -0
  55. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/development/slash-commands.md +0 -0
  56. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/development/uv-hatch-setup.md +0 -0
  57. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/development/uv-installer-updates.md +0 -0
  58. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/development/version-management.md +0 -0
  59. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/docs_model_friendly/component_purpose.md +0 -0
  60. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/docs_model_friendly/component_relationships.md +0 -0
  61. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/docs_model_friendly/rag_modules_overview.md +0 -0
  62. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/kv/github-actions-release-fix.json +0 -0
  63. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/metadata/components.yml +0 -0
  64. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/metadata/hotspots.txt +0 -0
  65. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/patterns/canonical_patterns/backward_compatibility_refactor.md +0 -0
  66. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/patterns/json_retry_implementation.md +0 -0
  67. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/context_logs/latest_session.txt +0 -0
  68. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/context_logs/main-agent-integration-20250917-123100/commits.txt +0 -0
  69. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/context_logs/main-agent-integration-20250917-123100/diffstat.txt +0 -0
  70. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/context_logs/main-agent-integration-20250917-123100/files.json +0 -0
  71. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/context_logs/main-agent-integration-20250917-123100/hunks.txt +0 -0
  72. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/context_logs/main-agent-integration-20250917-141518/commits.txt +0 -0
  73. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/context_logs/main-agent-integration-20250917-141518/diffstat.txt +0 -0
  74. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/context_logs/main-agent-integration-20250917-141518/files.json +0 -0
  75. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/context_logs/main-agent-integration-20250917-141518/hunks.txt +0 -0
  76. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/context_logs/react-tool-session-20250120-000002/summary.md +0 -0
  77. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/context_logs/smart-git-20250917-122934/commits.txt +0 -0
  78. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/context_logs/smart-git-20250917-122934/diffstat.txt +0 -0
  79. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/context_logs/smart-git-20250917-122934/files.json +0 -0
  80. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/fix-agent-errors.yml +0 -0
  81. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/fix-publish-script.yml +0 -0
  82. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/fix-runtime-warnings.yml +0 -0
  83. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/reasoning_docs/main-agent-integration-20250917-123100.md +0 -0
  84. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/reasoning_docs/main-agent-integration-20250917-141518.md +0 -0
  85. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/qa/reasoning_docs/smart-git-20250917-122934.md +0 -0
  86. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/semantic_index/function_call_graphs.json +0 -0
  87. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/semantic_index/intent_mappings.json +0 -0
  88. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.claude/semantic_index/type_relationships.json +0 -0
  89. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.github/pull_request_template.md +0 -0
  90. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.github/scripts/check_file_size.py +0 -0
  91. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.github/workflows/lint.yml +0 -0
  92. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.github/workflows/publish-release-v2.yml +0 -0
  93. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/.pre-commit-config.yaml +0 -0
  94. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/LICENSE +0 -0
  95. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/MANIFEST.in +0 -0
  96. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/README.md +0 -0
  97. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/assets/tunacode_example.png +0 -0
  98. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/docs/reports/subagent_analysis/code-synthesis-analyzer_report.md +0 -0
  99. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/docs/reports/subagent_analysis/codebase-analyzer_report.md +0 -0
  100. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/docs/reviews/FAGAN_PLAN.md +0 -0
  101. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/docs/reviews/agent_seams.md +0 -0
  102. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/docs/reviews/fagan_inspection_defects.json +0 -0
  103. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/docs/reviews/fagan_inspection_summary.md +0 -0
  104. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/docs/reviews/main_agent_refactor_issues.md +0 -0
  105. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/docs/reviews/main_agent_refactor_plan.md +0 -0
  106. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/README.md +0 -0
  107. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/agent/TOOLS_WORKFLOW.md +0 -0
  108. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/agent/agent-flow.md +0 -0
  109. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/agent/agent-inspo.md +0 -0
  110. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/agent/how-tunacode-agent-works.md +0 -0
  111. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/agent/main-agent-architecture.md +0 -0
  112. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/agent/swepmini-example.md +0 -0
  113. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/agent/tunacode-tool-system.md +0 -0
  114. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/agent-tools/ReAct-vs-ReWoo.md +0 -0
  115. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/agent-tools/tools-architecture.md +0 -0
  116. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/configuration/.env.example +0 -0
  117. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/configuration/config-file-example.md +0 -0
  118. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/configuration/config-flow-diagram.md +0 -0
  119. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/configuration/config-touch-points.md +0 -0
  120. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/configuration/environment-variables.md +0 -0
  121. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/configuration/local-models.md +0 -0
  122. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/configuration/logging-configuration.md +0 -0
  123. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/configuration/tunacode-json-example.md +0 -0
  124. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/configuration/tunacode.json.example +0 -0
  125. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/development/codebase-hygiene.md +0 -0
  126. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/development/command-system-architecture.md +0 -0
  127. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/development/creating-custom-commands.md +0 -0
  128. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/development/performance-optimizations.md +0 -0
  129. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/development/prompt-principles.md +0 -0
  130. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/development/publishing-workflow.md +0 -0
  131. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/development/streaming-text-prefix-fix.md +0 -0
  132. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/tests/README.md +0 -0
  133. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/tests/characterization-testing.md +0 -0
  134. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/tests/mocking-strategies.md +0 -0
  135. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/tests/troubleshooting.md +0 -0
  136. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/ui/ui-architecture.md +0 -0
  137. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/user/commands.md +0 -0
  138. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/user/getting-started.md +0 -0
  139. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/documentation/user/tools.md +0 -0
  140. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/execute/2025-09-12_15-20-00_model_selection_config_persistence_fix.md +0 -0
  141. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/execute/2025-09-15_12-30-00_configuration_dashboard_implementation.md +0 -0
  142. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/execute/2025-09-15_configuration_dashboard_ux_improvements.md +0 -0
  143. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/plan/2025-09-11_13-30-00_agent_loop_architecture_enhancement.md +0 -0
  144. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/plan/2025-09-11_14-00-00_enum_state_machine_implementation.md +0 -0
  145. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/plan/2025-09-11_14-15-00_automated_cli_tool_testing_framework.md +0 -0
  146. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/plan/2025-09-12_12-20-00_global_graceful_error_handling_implementation.md +0 -0
  147. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/plan/2025-09-12_15-08-14_model_selection_config_persistence_fix.md +0 -0
  148. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/plan/2025-09-15_12-29-04_configuration_dashboard_implementation.md +0 -0
  149. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/plan/2025-09-17_15-30-00_main-agent-refactor_plan.md +0 -0
  150. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/plan/2025-09-19_11-30-00_tunacode_md_to_agents_md_migration.md +0 -0
  151. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/research/2025-01-19_react-shim-analysis.md +0 -0
  152. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/research/2025-09-07_21-13-37_agent_loop_architecture.md +0 -0
  153. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/research/2025-09-11_13-14-06_agent_loop_enhancement_analysis.md +0 -0
  154. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/research/2025-09-12_12-15-48_global_graceful_error_handling_analysis.md +0 -0
  155. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/research/2025-09-12_14-54-43_model_configuration_crash_analysis.md +0 -0
  156. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/research/2025-09-12_15-06-58_model_selection_config_update_issue.md +0 -0
  157. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/research/2025-09-12_ai-agent-tools-architecture.md +0 -0
  158. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/research/2025-09-15_12-19-00_configuration_system_and_dashboard.md +0 -0
  159. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/research/2025-09-15_13-54-11_first-chunk_character_loss_investigation.md +0 -0
  160. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/research/2025-09-16_11-12-45_setup_py_usage_and_location_analysis.md +0 -0
  161. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/research/2025-09-19_11-25-00_tunacode_md_to_agents_md_migration.md +0 -0
  162. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/research/2025-09-21_models-registry-pydantic-conversion.md +0 -0
  163. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/memory-bank/research/main_agent_refactor_plan.md +0 -0
  164. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/pytest.ini +0 -0
  165. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/scripts/check-file-length.sh +0 -0
  166. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/scripts/download_ripgrep.py +0 -0
  167. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/scripts/install_linux.sh +0 -0
  168. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/scripts/playwright_cache.py +0 -0
  169. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/scripts/setup_dev_env.sh +0 -0
  170. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/scripts/startup_timer.py +0 -0
  171. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/scripts/uninstall.sh +0 -0
  172. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/scripts/utils/vulture_whitelist.py +0 -0
  173. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/scripts/verify_dev_env.sh +0 -0
  174. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/README.md +0 -0
  175. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/__init__.py +0 -0
  176. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/__init__.py +0 -0
  177. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/__init__.py +0 -0
  178. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/__init__.py +0 -0
  179. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/base.py +0 -0
  180. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/implementations/__init__.py +0 -0
  181. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/implementations/command_reload.py +0 -0
  182. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/implementations/conversation.py +0 -0
  183. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/implementations/debug.py +0 -0
  184. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/implementations/development.py +0 -0
  185. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/implementations/model.py +0 -0
  186. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/implementations/plan.py +0 -0
  187. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/implementations/quickstart.py +0 -0
  188. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/implementations/system.py +0 -0
  189. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/implementations/template.py +0 -0
  190. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/implementations/todo.py +0 -0
  191. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/slash/__init__.py +0 -0
  192. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/slash/command.py +0 -0
  193. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/slash/loader.py +0 -0
  194. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/slash/processor.py +0 -0
  195. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/slash/types.py +0 -0
  196. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/slash/validator.py +0 -0
  197. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/commands/template_shortcut.py +0 -0
  198. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/repl.py +0 -0
  199. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/repl_components/__init__.py +0 -0
  200. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/repl_components/command_parser.py +0 -0
  201. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/repl_components/error_recovery.py +0 -0
  202. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/repl_components/output_display.py +0 -0
  203. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/cli/repl_components/tool_executor.py +0 -0
  204. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/configuration/__init__.py +0 -0
  205. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/configuration/defaults.py +0 -0
  206. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/configuration/key_descriptions.py +0 -0
  207. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/configuration/models.py +0 -0
  208. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/configuration/settings.py +0 -0
  209. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/context.py +0 -0
  210. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/__init__.py +0 -0
  211. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/__init__.py +0 -0
  212. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/agent_components/__init__.py +0 -0
  213. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/agent_components/agent_config.py +0 -0
  214. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/agent_components/agent_helpers.py +0 -0
  215. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/agent_components/json_tool_parser.py +0 -0
  216. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/agent_components/message_handler.py +0 -0
  217. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/agent_components/node_processor.py +0 -0
  218. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/agent_components/response_state.py +0 -0
  219. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/agent_components/result_wrapper.py +0 -0
  220. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/agent_components/state_transition.py +0 -0
  221. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/agent_components/streaming.py +0 -0
  222. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/agent_components/task_completion.py +0 -0
  223. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/agent_components/tool_buffer.py +0 -0
  224. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/agent_components/tool_executor.py +0 -0
  225. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/agent_components/truncation_checker.py +0 -0
  226. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/main.py +0 -0
  227. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/agents/utils.py +0 -0
  228. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/background/__init__.py +0 -0
  229. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/background/manager.py +0 -0
  230. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/code_index.py +0 -0
  231. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/llm/__init__.py +0 -0
  232. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/logging/__init__.py +0 -0
  233. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/logging/config.py +0 -0
  234. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/logging/formatters.py +0 -0
  235. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/logging/handlers.py +0 -0
  236. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/logging/logger.py +0 -0
  237. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/setup/__init__.py +0 -0
  238. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/setup/agent_setup.py +0 -0
  239. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/setup/base.py +0 -0
  240. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/setup/config_setup.py +0 -0
  241. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/setup/config_wizard.py +0 -0
  242. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/setup/coordinator.py +0 -0
  243. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/setup/environment_setup.py +0 -0
  244. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/setup/git_safety_setup.py +0 -0
  245. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/setup/template_setup.py +0 -0
  246. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/state.py +0 -0
  247. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/token_usage/api_response_parser.py +0 -0
  248. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/token_usage/cost_calculator.py +0 -0
  249. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/token_usage/usage_tracker.py +0 -0
  250. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/core/tool_handler.py +0 -0
  251. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/exceptions.py +0 -0
  252. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/prompts/system.md +0 -0
  253. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/prompts/system.md.bak +0 -0
  254. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/py.typed +0 -0
  255. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/services/__init__.py +0 -0
  256. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/services/mcp.py +0 -0
  257. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/setup.py +0 -0
  258. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/templates/__init__.py +0 -0
  259. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/templates/loader.py +0 -0
  260. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/__init__.py +0 -0
  261. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/base.py +0 -0
  262. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/bash.py +0 -0
  263. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/exit_plan_mode.py +0 -0
  264. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/glob.py +0 -0
  265. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/grep.py +0 -0
  266. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/grep_components/__init__.py +0 -0
  267. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/grep_components/file_filter.py +0 -0
  268. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/grep_components/pattern_matcher.py +0 -0
  269. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/grep_components/result_formatter.py +0 -0
  270. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/grep_components/search_result.py +0 -0
  271. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/list_dir.py +0 -0
  272. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/present_plan.py +0 -0
  273. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/prompts/bash_prompt.xml +0 -0
  274. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/prompts/exit_plan_mode_prompt.xml +0 -0
  275. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/prompts/glob_prompt.xml +0 -0
  276. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/prompts/grep_prompt.xml +0 -0
  277. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/prompts/list_dir_prompt.xml +0 -0
  278. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/prompts/present_plan_prompt.xml +0 -0
  279. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/prompts/react_prompt.xml +0 -0
  280. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/prompts/read_file_prompt.xml +0 -0
  281. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/prompts/run_command_prompt.xml +0 -0
  282. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/prompts/todo_prompt.xml +0 -0
  283. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/prompts/update_file_prompt.xml +0 -0
  284. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/prompts/write_file_prompt.xml +0 -0
  285. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/react.py +0 -0
  286. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/read_file.py +0 -0
  287. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/run_command.py +0 -0
  288. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/schema_assembler.py +0 -0
  289. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/todo.py +0 -0
  290. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/update_file.py +0 -0
  291. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/write_file.py +0 -0
  292. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tools/xml_helper.py +0 -0
  293. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tutorial/__init__.py +0 -0
  294. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tutorial/content.py +0 -0
  295. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tutorial/manager.py +0 -0
  296. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/tutorial/steps.py +0 -0
  297. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/types.py +0 -0
  298. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/__init__.py +0 -0
  299. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/config_dashboard.py +0 -0
  300. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/console.py +0 -0
  301. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/constants.py +0 -0
  302. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/decorators.py +0 -0
  303. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/input.py +0 -0
  304. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/keybindings.py +0 -0
  305. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/lexers.py +0 -0
  306. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/logging_compat.py +0 -0
  307. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/model_selector.py +0 -0
  308. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/output.py +0 -0
  309. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/panels.py +0 -0
  310. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/prompt_manager.py +0 -0
  311. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/tool_descriptions.py +0 -0
  312. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/tool_ui.py +0 -0
  313. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/utils.py +0 -0
  314. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/ui/validators.py +0 -0
  315. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/__init__.py +0 -0
  316. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/api_key_validation.py +0 -0
  317. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/bm25.py +0 -0
  318. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/config_comparator.py +0 -0
  319. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/diff_utils.py +0 -0
  320. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/file_utils.py +0 -0
  321. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/import_cache.py +0 -0
  322. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/json_utils.py +0 -0
  323. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/message_utils.py +0 -0
  324. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/models_registry.py +0 -0
  325. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/retry.py +0 -0
  326. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/ripgrep.py +0 -0
  327. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/security.py +0 -0
  328. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/system.py +0 -0
  329. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/text_utils.py +0 -0
  330. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/token_counter.py +0 -0
  331. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/src/tunacode/utils/user_configuration.py +0 -0
  332. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/CHARACTERIZATION_README.md +0 -0
  333. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/CHARACTERIZATION_TEST_PLAN.md +0 -0
  334. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/CHARACTERIZATION_TEST_PLAN_AGENT_MAIN.md +0 -0
  335. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/CHARACTERIZATION_TEST_PLAN_COMMANDS.md +0 -0
  336. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/FILE_OPERATIONS_TEST_GUIDE.md +0 -0
  337. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/__init__.py +0 -0
  338. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/agent/__init__.py +0 -0
  339. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/agent/conftest.py +0 -0
  340. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/agent/test_agent_creation.py +0 -0
  341. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/agent/test_json_tool_parsing.py +0 -0
  342. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/agent/test_process_node.py +0 -0
  343. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/agent/test_process_request.py +0 -0
  344. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/agent/test_tool_message_patching.py +0 -0
  345. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/background/test_background_edge_cases.py +0 -0
  346. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/background/test_cleanup.py +0 -0
  347. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/background/test_task_cancellation.py +0 -0
  348. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/background/test_task_creation.py +0 -0
  349. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/background/test_task_execution.py +0 -0
  350. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/code_index/test_cache_management.py +0 -0
  351. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/code_index/test_file_scanning.py +0 -0
  352. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/code_index/test_index_building.py +0 -0
  353. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/code_index/test_search_operations.py +0 -0
  354. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/code_index/test_symbol_extraction.py +0 -0
  355. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/commands/__init__.py +0 -0
  356. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/commands/test_init_command.py +0 -0
  357. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/commands/test_model_selection_persistence.py +0 -0
  358. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/conftest.py +0 -0
  359. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/context/README.md +0 -0
  360. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/context/__init__.py +0 -0
  361. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/context/test_context_acceptance.py +0 -0
  362. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/context/test_context_integration.py +0 -0
  363. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/context/test_context_loading.py +0 -0
  364. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/context/test_tunacode_logging.py +0 -0
  365. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/repl/test_command_parsing.py +0 -0
  366. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/repl/test_error_handling.py +0 -0
  367. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/repl/test_escape_key_behavior.py +0 -0
  368. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/repl/test_input_handling.py +0 -0
  369. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/repl/test_keyboard_interrupts.py +0 -0
  370. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/repl/test_multiline_input.py +0 -0
  371. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/repl/test_output_display_logic.py +0 -0
  372. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/repl/test_repl_initialization.py +0 -0
  373. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/repl/test_session_flow.py +0 -0
  374. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/services/test_error_recovery.py +0 -0
  375. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/services/test_llm_routing.py +0 -0
  376. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/services/test_mcp_integration.py +0 -0
  377. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/services/test_service_lifecycle.py +0 -0
  378. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/state/test_agent_tracking.py +0 -0
  379. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/state/test_message_history.py +0 -0
  380. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/state/test_permissions.py +0 -0
  381. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/state/test_session_management.py +0 -0
  382. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/state/test_state_initialization.py +0 -0
  383. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/state/test_user_config.py +0 -0
  384. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/test_characterization_commands.py +0 -0
  385. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/test_characterization_grep.py +0 -0
  386. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/test_characterization_main.py +0 -0
  387. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/test_characterization_repl.py +0 -0
  388. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/ui/test_async_ui.py +0 -0
  389. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/ui/test_console_output.py +0 -0
  390. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/ui/test_diff_display.py +0 -0
  391. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/ui/test_prompt_rendering.py +0 -0
  392. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/ui/test_spinner_messages.py +0 -0
  393. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/ui/test_tool_confirmations.py +0 -0
  394. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/utils/test_expand_file_refs.py +0 -0
  395. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/utils/test_file_operations.py +0 -0
  396. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/utils/test_git_commands.py +0 -0
  397. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/utils/test_token_counting.py +0 -0
  398. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/characterization/utils/test_utils_edge_cases.py +0 -0
  399. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/integration/test_startup_dashboard.py +0 -0
  400. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_agent_output_formatting.py +0 -0
  401. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_command_parser_retry.py +0 -0
  402. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_completion_detection.py +0 -0
  403. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_glob_phase3.py +0 -0
  404. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_json_concatenation_recovery.py +0 -0
  405. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_json_retry.py +0 -0
  406. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_logging_config.py +0 -0
  407. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_onboarding_features.py +0 -0
  408. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_phase2_type_hints.py +0 -0
  409. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_plan_mode.py +0 -0
  410. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_prompt_changes_validation.py +0 -0
  411. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_prompt_injection.py +0 -0
  412. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_security.py +0 -0
  413. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_slash_commands_comprehensive.py +0 -0
  414. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_slash_commands_functional.py +0 -0
  415. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_slash_commands_integration.py +0 -0
  416. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_slash_commands_isolated.py +0 -0
  417. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_spinner_updates.py +0 -0
  418. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/test_tool_batching_retry.py +0 -0
  419. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/ui/test_config_dashboard.py +0 -0
  420. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/unit/commands/test_model_selection_persistence_new.py +0 -0
  421. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/unit/config/test_user_configuration_permissions.py +0 -0
  422. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/unit/test_constants_enums.py +0 -0
  423. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/unit/test_react_tool.py +0 -0
  424. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/unit/utils/test_models_registry.py +0 -0
  425. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/unit/utils/test_models_registry_validation.py +0 -0
  426. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.6}/tests/utils/test_config_comparator.py +0 -0
@@ -123,8 +123,7 @@
123
123
  "Routed CLI REPL agent imports through tunacode.core.agents to expose helper mocks",
124
124
  "Extended check_task_completion to accept legacy TUNACODE_TASK_COMPLETE marker"
125
125
  ]
126
- }
127
- ,
126
+ },
128
127
  {
129
128
  "id": "cli-fuzzy-matching-20250922-120500",
130
129
  "time": "2025-09-22T12:05:00",
@@ -137,8 +136,7 @@
137
136
  "Zero new dependencies; minimal code change localized to CommandRegistry.find_matching_commands",
138
137
  "Added tests to characterize prefix behavior and validate fuzzy suggestions for typos"
139
138
  ]
140
- }
141
- ,
139
+ },
142
140
  {
143
141
  "id": "file-ref-completer-dir-browse-20250922-122900",
144
142
  "time": "2025-09-22T12:29:00",
@@ -149,6 +147,56 @@
149
147
  "FileReferenceCompleter now treats a bare directory prefix without trailing slash as browsing inside that directory (e.g., '@tests' shows files inside tests/).",
150
148
  "Behavior and ordering preserved: exact files > fuzzy files > exact dirs > fuzzy dirs; existing case-insensitive exact matching and fuzzy improvements remain."
151
149
  ]
150
+ },
151
+ {
152
+ "id": "cli-fuzzy-removal-20250924-150600",
153
+ "time": "2025-09-24T15:06:00",
154
+ "branch": "current",
155
+ "base": "current",
156
+ "head": "current",
157
+ "bullets": [
158
+ "Removed difflib-backed fuzzy fallback from CommandRegistry.find_matching_commands; prefix-only matching restored.",
159
+ "Deleted shared fuzzy_utils helper module and characterization test covering fuzzy suggestions.",
160
+ "Simplified FileReferenceCompleter to rely on case-insensitive prefix ordering (files before directories).",
161
+ "Updated documentation and metadata to reflect removal of fuzzy matching implementation."
162
+ ]
163
+ },
164
+ {
165
+ "id": "cli-fuzzy-reintegration-20250924-181500",
166
+ "time": "2025-09-24T18:15:00",
167
+ "branch": "current",
168
+ "base": "current",
169
+ "head": "current",
170
+ "bullets": [
171
+ "Wired prompt_toolkit FuzzyWordCompleter into CommandCompleter and FileReferenceCompleter for typo-tolerant suggestions.",
172
+ "Restored CLI fuzzy characterization tests validating command and @file completions.",
173
+ "Adjusted test harness to load real prompt_toolkit modules instead of stubs when available.",
174
+ "Updated changelog, TODO, and research notes to document the prompt toolkit-based fuzzy implementation."
175
+ ]
176
+ },
177
+ {
178
+ "id": "merge-fuzzy-touchup-20250925-125158",
179
+ "time": "2025-09-25T12:51:58",
180
+ "branch": "fuzzy-touchup",
181
+ "base": "master",
182
+ "head": "master",
183
+ "bullets": [
184
+ "Merged fuzzy-touchup: refined file reference heuristics and fuzzy fixes",
185
+ "Accepted branch versions for conflicts in registry and completers",
186
+ "Reintroduced CLI fuzzy characterization test"
187
+ ]
188
+ },
189
+ {
190
+ "id": "release-0.0.76.5-20250925-125611",
191
+ "time": "2025-09-25T12:56:11",
192
+ "branch": "master",
193
+ "base": "v0.0.76.4",
194
+ "head": "v0.0.76.5",
195
+ "bullets": [
196
+ "Release v0.0.76.5: merged fuzzy-touchup branch",
197
+ "Bumped versions in pyproject and constants",
198
+ "Created GitHub release to trigger publish workflow"
199
+ ]
152
200
  }
153
201
  ]
154
- }
202
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 2,
3
- "generated": "2025-01-05",
3
+ "generated": "2025-09-24T16:12:08Z",
4
4
  "description": "Memory anchors are now embedded in source files as CLAUDE_ANCHOR[key] comments",
5
5
  "session_history": [
6
6
  {
@@ -151,14 +151,59 @@
151
151
  "kind": "line",
152
152
  "description": "Renamed release workflow so GitHub Actions executes the Ruff lint/test pipeline without cached definitions and pins Python 3.12 for Hatch stability",
153
153
  "status": "active"
154
- }
155
- ,{
154
+ },
155
+ {
156
156
  "anchor_key": "model-command-registry-validation-skip",
157
157
  "path": "tests/characterization/test_characterization_commands.py",
158
158
  "line": 73,
159
159
  "kind": "line",
160
160
  "description": "Characterization test bypasses registry.load() to avoid Pydantic validation failures from cached API data (e.g., zero limits). Preserves intent to display current model info.",
161
161
  "status": "active"
162
+ },
163
+ {
164
+ "anchor_key": "86cc1a41",
165
+ "path": "src/tunacode/cli/commands/registry.py",
166
+ "line": 317,
167
+ "kind": "line",
168
+ "description": "Prefix-only command matching after removing fuzzy fallback",
169
+ "status": "active",
170
+ "created": "2025-09-24T15:05:39Z"
171
+ },
172
+ {
173
+ "anchor_key": "1f0911c7",
174
+ "path": "src/tunacode/ui/completers.py",
175
+ "line": 176,
176
+ "kind": "line",
177
+ "description": "Prompt Toolkit fuzzy matching consolidates file and directory suggestions",
178
+ "status": "active",
179
+ "created": "2025-09-24T15:29:42Z"
180
+ },
181
+ {
182
+ "key": "0b3f320e",
183
+ "path": "src/tunacode/ui/path_heuristics.py",
184
+ "line": 7,
185
+ "kind": "line",
186
+ "description": "Cross-ecosystem skip directory defaults for FileReferenceCompleter global roots",
187
+ "status": "active",
188
+ "created": "2025-09-24T16:08:12Z"
189
+ },
190
+ {
191
+ "key": "6fd59413",
192
+ "path": "src/tunacode/ui/path_heuristics.py",
193
+ "line": 22,
194
+ "kind": "line",
195
+ "description": "Skip list includes __pycache__ to avoid noisy Python build artifacts in suggestions",
196
+ "status": "active",
197
+ "created": "2025-09-24T16:10:11Z"
198
+ },
199
+ {
200
+ "key": "2bcebd52",
201
+ "path": "src/tunacode/ui/path_heuristics.py",
202
+ "line": 31,
203
+ "kind": "line",
204
+ "description": "Skip heuristic checks every path component to prune nested junk directories such as __pycache__",
205
+ "status": "active",
206
+ "created": "2025-09-24T16:12:08Z"
162
207
  }
163
208
  ]
164
- }
209
+ }
@@ -145,16 +145,6 @@
145
145
  "type": "test",
146
146
  "category": "tools",
147
147
  "classification": "test"
148
- },
149
- "src/tunacode/cli/commands/registry.py": {
150
- "type": "source",
151
- "category": "commands",
152
- "classification": "implementation"
153
- },
154
- "tests/characterization/test_cli_fuzzy_matching.py": {
155
- "type": "test",
156
- "category": "commands",
157
- "classification": "test"
158
148
  }
159
149
  }
160
150
  }
@@ -60,7 +60,7 @@ scratchpad_*.md
60
60
 
61
61
  # Memory bank and agent tools
62
62
  # memory-bank/ # Important project documentation - should be tracked
63
- llm-agent-tools/
63
+ # llm-agent-tools/ # Removed - now tracking this directory
64
64
  .researcher/
65
65
 
66
66
  # Logs
@@ -21,6 +21,16 @@ You MUST comply with the rules below. You will be penalized if you deviate. Answ
21
21
  * Enforce `ruff check --fix .` before PRs.
22
22
  * Use explicit typing. `cast(...)` and `assert ...` are OK.
23
23
  * `# type: ignore` only with strong justification.
24
+ * You must flatten nested conditionals by returning early, so pre-conditions are explicit.
25
+ * If it is never executed, remove it. You MUST make sure what we remove has been committed before in case we need to rollback.
26
+ * Normalize symmetries: you must make identical things look identical and different things look different for faster pattern-spotting.
27
+ * You must reorder elements so a developer meets ideas in the order they need them.
28
+ * You must cluster coupled functions/files so related edits sit together.
29
+ * You must keep a variable's birth and first value adjacent for comprehension & dependency safety.
30
+ * Always extract a sub-expression into a well-named variable to record intent.
31
+ * Always replace magic numbers with symbolic constants that broadcast meaning.
32
+ * Never use magic literals; symbolic constants are preferred.
33
+ * ALWAYS split a routine so all inputs are passed openly, banishing hidden state or maps.
24
34
 
25
35
  ### Error Handling
26
36
 
@@ -108,9 +118,23 @@ in llm-agent-tools/rag_modules/ a tool exist to search the .claude/ directory vi
108
118
  ./rag-cli.sh search "query" # Search across .claude/
109
119
  ./rag-cli.sh stats # Show index stats
110
120
 
111
- # Filtered / formatted search
112
- ./rag-cli.sh search "query" --category dev --format json --limit 5
121
+ ### Filtered / formatted search
113
122
 
123
+ ./rag-cli.sh search "query" --category dev --format json --limit 5
114
124
  You MUST call this tool at least once per session to ground context.
115
125
  Use it heuristically before answering tasks that require repo knowledge. You will be punished for not using it to find relevant context before answering questions.
126
+
127
+ **Problem**: Search for "fuzzy" in the .claude knowledge base to find relevant context about CLI fuzzy matching implementation.
128
+
129
+ ```bash
130
+ # First index the .claude directory
131
+ ./rag-cli.sh index --dir .claude
132
+
133
+ # Search for specific content
134
+ ./rag-cli.sh search "fuzzy" --format text
135
+
136
+ # Results found:
137
+ # 1. behavior_changes.json - CLI fuzzy matching enhancement details
138
+ # 2. file_classifications.json - Test file classification for fuzzy matching
139
+ ```
116
140
  ---
@@ -91,7 +91,7 @@ Rules:
91
91
  * Docs → model-friendly explanations of purposes & relationships.
92
92
  * Delta Summaries → record API/behavior shifts with reasoning.
93
93
  * Memory Anchors → embed UUID-tagged semantic anchors in code.
94
- * Keeep entries nonverbose and distilled to the core implemenation for the next dev. You will be punished for not following these instructions.
94
+ * Keeep entries nonverbose and distilled to the core implemenation for the next dev. You will be punished for not following these instructions.
95
95
 
96
96
 
97
97
  ---
@@ -121,9 +121,22 @@ In llm-agent-tools/rag_modules/ a tool exists to search the .claude/ directory v
121
121
 
122
122
  ./rag-cli.sh search "query" --category dev --format json --limit 5
123
123
  You MUST call this tool at least once per session to ground context.
124
- If llm-agent-tool dir doesnt exist skip this step
125
124
  Use it heuristically before answering tasks that require repo knowledge. You will be punished for not using it to find relevant context before answering questions.
126
125
 
126
+ **Problem**: Search for "fuzzy" in the .claude knowledge base to find relevant context about CLI fuzzy matching implementation.
127
+
128
+ ```bash
129
+ # First index the .claude directory
130
+ ./rag-cli.sh index --dir .claude
131
+
132
+ # Search for specific content
133
+ ./rag-cli.sh search "fuzzy" --format text
134
+
135
+ # Results found:
136
+ # 1. behavior_changes.json - CLI fuzzy matching enhancement details
137
+ # 2. file_classifications.json - Test file classification for fuzzy matching
138
+ ```
139
+
127
140
  ---
128
141
 
129
142
  ## Available Sub-Agents
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tunacode-cli
3
- Version: 0.0.76.3
3
+ Version: 0.0.76.6
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
@@ -1,18 +1,18 @@
1
- # Current Issue
1
+ # Prompt Toolkit Fuzzy Reintegration
2
2
 
3
- @-mentions only show directories first, then files. Need fuzzy-first file matching for patterns like `testexampl.py`.
3
+ Fuzzy-first matching resumed on 2025-09-24 using prompt_toolkit's native fuzzy completers. Notes below capture the revived implementation plan and historical context for further refinement.
4
4
 
5
5
  ---
6
6
 
7
- ## Architecture Analysis
7
+ ## Architecture Analysis (current state)
8
8
 
9
- - `src/tunacode/ui/completers.py:70-128`: Current `FileReferenceCompleter` uses basic `startswith()` matching.
10
- - `src/tunacode/cli/commands/registry.py:305-327`: Fuzzy matching exists for commands using `difflib.get_close_matches`.
11
- - `src/tunacode/utils/models_registry.py`: Advanced fuzzy matching using `difflib.SequenceMatcher`.
9
+ - `src/tunacode/ui/completers.py:23-74`: `CommandCompleter` wraps registry commands with `FuzzyWordCompleter` for near-miss suggestions.
10
+ - `src/tunacode/ui/completers.py:80-164`: `FileReferenceCompleter` blends exact prefix ordering with fuzzy scoring for files then directories.
11
+ - `src/tunacode/utils/models_registry.py`: Continues to expose `SequenceMatcher`-based fuzzy similarity for models.
12
12
 
13
13
  ---
14
14
 
15
- ## Minimal Implementation Strategy
15
+ ## Minimal Implementation Strategy (archived plan)
16
16
 
17
17
  1. **Create Shared Fuzzy Utility**
18
18
  - File: `src/tunacode/utils/fuzzy_utils.py`
@@ -45,4 +45,4 @@
45
45
 
46
46
  ---
47
47
 
48
- **Code Changes:** ~30 lines total (new utility + modified completer logic)
48
+ **Code Changes:** ~30 lines total (new utility + modified completer logic)
@@ -5,6 +5,51 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.0.76.6] - 2025-09-25
9
+
10
+ ### Fixed
11
+ - CI Lint: formatted path_heuristics.py to satisfy ruff format
12
+ - Release: re-tag to include formatting fix
13
+
14
+ ## [0.0.76.5] - 2025-09-25
15
+
16
+ ### Changed
17
+ - Merge fuzzy-touchup branch: refined fuzzy matching and file reference heuristics
18
+ - Release process: version bump and CI publish workflow used
19
+
20
+ ## [0.0.76.4] - 2025-09-25
21
+
22
+ ### Added
23
+ - **Fuzzy Matching Integration** - Merged new-fuzzy branch with enhanced CLI and file reference completion
24
+ - **Memory Anchor Tool** - Added UUID-based semantic anchoring system for code documentation
25
+ - **Knowledge Base Structure** - Comprehensive RAG tooling for .claude/ directory search and indexing
26
+
27
+ ### Changed
28
+ - **File Reference System** - Enhanced @mentions with fuzzy-first matching and smart directory browsing
29
+ - **CLI Command Resolution** - Added fuzzy fallback using difflib.get_close_matches for better UX
30
+ - **Code Quality** - Updated coding patterns and best practices in CLAUDE.md
31
+
32
+ ### Fixed
33
+ - **Documentation Consistency** - Resolved merge conflicts and updated project instructions
34
+ - **Import Cleanup** - Removed unused imports and improved code organization
35
+
36
+ ## [Unreleased] - 2025-09-22
37
+
38
+ ### Added
39
+ - **Models Registry Pydantic Conversion** - Complete conversion to Pydantic BaseModel with validation
40
+ - **RAG Tooling** - SQLite FTS5 index for .claude/ knowledge base search and indexing
41
+ - **Comprehensive Validation Tests** - Added golden baseline tests and validation edge cases
42
+ - **Prompt Toolkit Fuzzy Completers** - Wrapped command and @file completers with native fuzzy matching for typo tolerance
43
+
44
+ ### Changed
45
+ - **File Reference Ordering** - Re-established fuzzy priority: exact files > fuzzy files > exact dirs > fuzzy dirs
46
+ - **Bare Directory Browsing** - Type `@dir` (without trailing slash) to browse directory contents
47
+ - **Code Style Guidelines** - Updated CLAUDE.md with improved coding patterns and best practices
48
+ - **Models Registry Validation** - Added constraints for non-negative costs and positive limits
49
+
50
+ ### Fixed
51
+ - **Validation Edge Cases** - Enhanced registry validation for model loading scenarios
52
+
8
53
  ## [0.0.76.2] - 2025-09-19
9
54
 
10
55
  ### Added
@@ -19,7 +19,6 @@ uv install hatch
19
19
  uv venv
20
20
 
21
21
  # Install development dependencies
22
- # MEMORY-ANCHOR: dev-setup-2025-09-22-current
23
22
  source .venv/bin/activate && uv pip install -e ".[dev]"
24
23
 
25
24
  # Run the application
@@ -0,0 +1,15 @@
1
+ # Ignore personal knowledge base directory
2
+ .claude/
3
+
4
+ # Environment variables
5
+ .env
6
+
7
+ # Scalene profiles
8
+ profile.html
9
+ profile.json
10
+ profiles/
11
+ *.scalene
12
+
13
+ # Test database
14
+ test.db
15
+ *.db
@@ -0,0 +1,155 @@
1
+ # RAG Modules
2
+
3
+ Retrieval-Augmented Generation modules for indexing and searching documentation using SQLite FTS5.
4
+
5
+ ## Quick Start (CLI)
6
+
7
+ The included `rag-cli.sh` provides a simple interface for using the RAG tools:
8
+
9
+ ```bash
10
+ # Index the default memory-bank directory
11
+ ./rag-cli.sh index
12
+
13
+ # Search indexed content
14
+ ./rag-cli.sh search "your query here"
15
+
16
+ # View index statistics
17
+ ./rag-cli.sh stats
18
+
19
+ # Index a custom directory
20
+ ./rag-cli.sh index --dir /path/to/your/docs
21
+ ```
22
+
23
+ ## Directory Structure
24
+
25
+ ```
26
+ rag_modules/
27
+ ├── rag-cli.sh # Main CLI script
28
+ ├── rag_knowledge.db # SQLite database (created after first run)
29
+ ├── indexer.py # Documentation indexer
30
+ ├── search.py # Full-text search interface
31
+ ├── stats.py # Index statistics and health monitoring
32
+ ├── README.md # This file
33
+ └── default_directory_behavior.md # Details on directory detection
34
+ ```
35
+
36
+ ## Customizing Path Pointing
37
+
38
+ The RAG system is flexible and can point to any directory you want to index:
39
+
40
+ ### Via CLI (Recommended)
41
+ ```bash
42
+ # Index any directory
43
+ ./rag-cli.sh index --dir /path/to/your/project/docs
44
+
45
+ # Index multiple directories
46
+ ./rag-cli.sh index --dir ./docs ./wiki ./notes
47
+
48
+ # Use a custom database location
49
+ ./rag-cli.sh index --dir ./docs --db-path /custom/path/to/my.db
50
+ ```
51
+
52
+ ### Via Environment Variables
53
+ ```bash
54
+ # Set custom database path
55
+ export RAG_DB_PATH="/custom/location/knowledge.db"
56
+
57
+ # Enable verbose output
58
+ export RAG_VERBOSE=1
59
+
60
+ # Then run commands normally
61
+ ./rag-cli.sh index
62
+ ```
63
+
64
+ ### Direct Module Usage
65
+ ```bash
66
+ # Index specific directories with full control
67
+ python3 indexer.py --directories ./src ./docs ./README.md --db-path ./my_docs.db
68
+
69
+ # Search with specific parameters
70
+ python3 search.py --db-path ./my_docs.db --query "API reference" --category src --format json
71
+ ```
72
+
73
+ ## Agent Usage Guide
74
+
75
+ For AI agents and programmatic use:
76
+
77
+ ### 1. Index Documentation
78
+ ```bash
79
+ # For agent knowledge bases
80
+ ./rag-cli.sh index --dir /path/to/agent/knowledge
81
+ ```
82
+
83
+ ### 2. Search (JSON output recommended)
84
+ ```bash
85
+ # Get search results in JSON format for parsing
86
+ ./rag-cli.sh search "implementation details" --format json
87
+
88
+ # Search within specific categories
89
+ ./rag-cli.sh search "API methods" --category api --format json
90
+ ```
91
+
92
+ ### 3. Check Index Health
93
+ ```bash
94
+ # Get statistics in JSON format
95
+ ./rag-cli.sh stats --json
96
+ ```
97
+
98
+ ## CLI Reference
99
+
100
+ ### Index Command
101
+ ```bash
102
+ ./rag-cli.sh index [options]
103
+ --full # Full rebuild of index
104
+ --dir DIR # Directory to index (default: ../memory-bank)
105
+ --db PATH # Custom database path
106
+ ```
107
+
108
+ ### Search Command
109
+ ```bash
110
+ ./rag-cli.sh search <query> [options]
111
+ --category CAT # Search within specific category
112
+ --format FMT # Output: json|text|markdown (default: json)
113
+ --limit N # Maximum results (default: 10)
114
+ --db PATH # Custom database path
115
+ ```
116
+
117
+ ### Stats Command
118
+ ```bash
119
+ ./rag-cli.sh stats [options]
120
+ --json # Output in JSON format
121
+ --db PATH # Custom database path
122
+ ```
123
+
124
+ ## Default Directory Behavior
125
+
126
+ When no directories are specified, the system automatically searches for documentation:
127
+ 1. First looks in the current directory for `docs/` or `documentation/` folders
128
+ 2. If not found, checks the parent directory for the same folders
129
+
130
+ ## Supported File Types
131
+
132
+ - Markdown files (.md, .markdown)
133
+ - Text files (.txt)
134
+
135
+ ## Output Formats
136
+
137
+ - **JSON**: Compact JSONL format for agent consumption
138
+ - **Text**: Human-readable with highlighted search terms
139
+ - **Markdown**: Formatted output with proper formatting
140
+
141
+ ## Examples
142
+
143
+ ```bash
144
+ # Index project documentation
145
+ ./rag-cli.sh index --dir ./docs
146
+
147
+ # Search for specific patterns
148
+ ./rag-cli.sh search "authentication flow" --category guide --format markdown
149
+
150
+ # Check what's indexed
151
+ ./rag-cli.sh stats
152
+
153
+ # Full reindex when files change significantly
154
+ ./rag-cli.sh index --full --dir ./docs
155
+ ```
@@ -0,0 +1,155 @@
1
+ # RAG Modules
2
+
3
+ Retrieval-Augmented Generation modules for indexing and searching documentation using SQLite FTS5.
4
+
5
+ ## Quick Start (CLI)
6
+
7
+ The included `rag-cli.sh` provides a simple interface for using the RAG tools:
8
+
9
+ ```bash
10
+ # Index the default memory-bank directory
11
+ ./rag-cli.sh index
12
+
13
+ # Search indexed content
14
+ ./rag-cli.sh search "your query here"
15
+
16
+ # View index statistics
17
+ ./rag-cli.sh stats
18
+
19
+ # Index a custom directory
20
+ ./rag-cli.sh index --dir /path/to/your/docs
21
+ ```
22
+
23
+ ## Directory Structure
24
+
25
+ ```
26
+ rag_modules/
27
+ ├── rag-cli.sh # Main CLI script
28
+ ├── rag_knowledge.db # SQLite database (created after first run)
29
+ ├── indexer.py # Documentation indexer
30
+ ├── search.py # Full-text search interface
31
+ ├── stats.py # Index statistics and health monitoring
32
+ ├── README.md # This file
33
+ └── default_directory_behavior.md # Details on directory detection
34
+ ```
35
+
36
+ ## Customizing Path Pointing
37
+
38
+ The RAG system is flexible and can point to any directory you want to index:
39
+
40
+ ### Via CLI (Recommended)
41
+ ```bash
42
+ # Index any directory
43
+ ./rag-cli.sh index --dir /path/to/your/project/docs
44
+
45
+ # Index multiple directories
46
+ ./rag-cli.sh index --dir ./docs ./wiki ./notes
47
+
48
+ # Use a custom database location
49
+ ./rag-cli.sh index --dir ./docs --db-path /custom/path/to/my.db
50
+ ```
51
+
52
+ ### Via Environment Variables
53
+ ```bash
54
+ # Set custom database path
55
+ export RAG_DB_PATH="/custom/location/knowledge.db"
56
+
57
+ # Enable verbose output
58
+ export RAG_VERBOSE=1
59
+
60
+ # Then run commands normally
61
+ ./rag-cli.sh index
62
+ ```
63
+
64
+ ### Direct Module Usage
65
+ ```bash
66
+ # Index specific directories with full control
67
+ python3 indexer.py --directories ./src ./docs ./README.md --db-path ./my_docs.db
68
+
69
+ # Search with specific parameters
70
+ python3 search.py --db-path ./my_docs.db --query "API reference" --category src --format json
71
+ ```
72
+
73
+ ## Agent Usage Guide
74
+
75
+ For AI agents and programmatic use:
76
+
77
+ ### 1. Index Documentation
78
+ ```bash
79
+ # For agent knowledge bases
80
+ ./rag-cli.sh index --dir /path/to/agent/knowledge
81
+ ```
82
+
83
+ ### 2. Search (JSON output recommended)
84
+ ```bash
85
+ # Get search results in JSON format for parsing
86
+ ./rag-cli.sh search "implementation details" --format json
87
+
88
+ # Search within specific categories
89
+ ./rag-cli.sh search "API methods" --category api --format json
90
+ ```
91
+
92
+ ### 3. Check Index Health
93
+ ```bash
94
+ # Get statistics in JSON format
95
+ ./rag-cli.sh stats --json
96
+ ```
97
+
98
+ ## CLI Reference
99
+
100
+ ### Index Command
101
+ ```bash
102
+ ./rag-cli.sh index [options]
103
+ --full # Full rebuild of index
104
+ --dir DIR # Directory to index (default: ../memory-bank)
105
+ --db PATH # Custom database path
106
+ ```
107
+
108
+ ### Search Command
109
+ ```bash
110
+ ./rag-cli.sh search <query> [options]
111
+ --category CAT # Search within specific category
112
+ --format FMT # Output: json|text|markdown (default: json)
113
+ --limit N # Maximum results (default: 10)
114
+ --db PATH # Custom database path
115
+ ```
116
+
117
+ ### Stats Command
118
+ ```bash
119
+ ./rag-cli.sh stats [options]
120
+ --json # Output in JSON format
121
+ --db PATH # Custom database path
122
+ ```
123
+
124
+ ## Default Directory Behavior
125
+
126
+ When no directories are specified, the system automatically searches for documentation:
127
+ 1. First looks in the current directory for `docs/` or `documentation/` folders
128
+ 2. If not found, checks the parent directory for the same folders
129
+
130
+ ## Supported File Types
131
+
132
+ - Markdown files (.md, .markdown)
133
+ - Text files (.txt)
134
+
135
+ ## Output Formats
136
+
137
+ - **JSON**: Compact JSONL format for agent consumption
138
+ - **Text**: Human-readable with highlighted search terms
139
+ - **Markdown**: Formatted output with proper formatting
140
+
141
+ ## Examples
142
+
143
+ ```bash
144
+ # Index project documentation
145
+ ./rag-cli.sh index --dir ./docs
146
+
147
+ # Search for specific patterns
148
+ ./rag-cli.sh search "authentication flow" --category guide --format markdown
149
+
150
+ # Check what's indexed
151
+ ./rag-cli.sh stats
152
+
153
+ # Full reindex when files change significantly
154
+ ./rag-cli.sh index --full --dir ./docs
155
+ ```