tunacode-cli 0.0.76.3__tar.gz → 0.0.76.4__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 (425) hide show
  1. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/patterns/coding_patterns.md +1 -1
  2. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.gitignore +1 -1
  3. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/AGENTS.md +28 -2
  4. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/CLAUDE.md +17 -2
  5. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/PKG-INFO +1 -1
  6. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/TODO.md +1 -1
  7. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/changelog/CHANGELOG.md +35 -0
  8. tunacode_cli-0.0.76.4/llm-agent-tools/.gitignore +15 -0
  9. tunacode_cli-0.0.76.4/llm-agent-tools/README.md +155 -0
  10. tunacode_cli-0.0.76.4/llm-agent-tools/knowledge_base/README.md +88 -0
  11. tunacode_cli-0.0.76.4/llm-agent-tools/knowledge_base/tools/anchor_drop.py +104 -0
  12. tunacode_cli-0.0.76.4/llm-agent-tools/rag_modules/README.md +155 -0
  13. tunacode_cli-0.0.76.4/llm-agent-tools/rag_modules/indexer.py +324 -0
  14. tunacode_cli-0.0.76.4/llm-agent-tools/rag_modules/rag-cli.sh +208 -0
  15. tunacode_cli-0.0.76.4/llm-agent-tools/rag_modules/search.py +248 -0
  16. tunacode_cli-0.0.76.4/llm-agent-tools/rag_modules/stats.py +150 -0
  17. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/pyproject.toml +2 -2
  18. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/constants.py +1 -1
  19. tunacode_cli-0.0.76.4/src/tunacode/py.typed +0 -0
  20. tunacode_cli-0.0.76.4/src/tunacode/utils/__init__.py +0 -0
  21. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/README.md +0 -0
  22. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/debug_history/2025-09-21-rag-search-hyphen-gotcha.md +0 -0
  23. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/debug_history/debug_sessions.json +0 -0
  24. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/delta_summaries/2025-01-05-baseline.yml +0 -0
  25. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/delta_summaries/2025-09-21-models_registry-pydantic-conversion.md +0 -0
  26. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/delta_summaries/2025-09-21-models_registry-validation-tests.md +0 -0
  27. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/delta_summaries/2025-09-21-test-update-model-command-characterization.md +0 -0
  28. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/delta_summaries/api_change_logs.json +0 -0
  29. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/delta_summaries/behavior_changes.json +0 -0
  30. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/delta_summaries/fix-text-alignment-layout-task3.md +0 -0
  31. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/delta_summaries/reasoning_logs.json +0 -0
  32. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/delta_summaries/task4_ui_formatting_fix.md +0 -0
  33. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/delta_summaries/v0.0.53_to_v0.0.54.diff +0 -0
  34. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/development/always-on-display-implementation.md +0 -0
  35. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/development/cli-json-recovery-incident.md +0 -0
  36. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/development/directory-caching-optimization.md +0 -0
  37. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/development/esc-investigation/ESC_KEY_INVESTIGATION.md +0 -0
  38. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/development/esc-investigation/ESC_KEY_STREAMING_ANALYSIS.md +0 -0
  39. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/development/hatch-commands.md +0 -0
  40. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/development/model-updates-2025.md +0 -0
  41. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/development/onboarding-improvements.md +0 -0
  42. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/development/openai_tool_calling_evaluation.md +0 -0
  43. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/development/phase5-prompt-injection-system.md +0 -0
  44. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/development/slash-commands.md +0 -0
  45. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/development/uv-hatch-setup.md +0 -0
  46. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/development/uv-installer-updates.md +0 -0
  47. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/development/version-management.md +0 -0
  48. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/docs_model_friendly/component_purpose.md +0 -0
  49. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/docs_model_friendly/component_relationships.md +0 -0
  50. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/docs_model_friendly/rag_modules_overview.md +0 -0
  51. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/kv/github-actions-release-fix.json +0 -0
  52. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/memory_anchors/anchors.json +0 -0
  53. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/metadata/components.yml +0 -0
  54. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/metadata/file_classifications.json +0 -0
  55. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/metadata/hotspots.txt +0 -0
  56. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/patterns/canonical_patterns/backward_compatibility_refactor.md +0 -0
  57. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/patterns/json_retry_implementation.md +0 -0
  58. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/context_logs/latest_session.txt +0 -0
  59. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/context_logs/main-agent-integration-20250917-123100/commits.txt +0 -0
  60. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/context_logs/main-agent-integration-20250917-123100/diffstat.txt +0 -0
  61. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/context_logs/main-agent-integration-20250917-123100/files.json +0 -0
  62. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/context_logs/main-agent-integration-20250917-123100/hunks.txt +0 -0
  63. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/context_logs/main-agent-integration-20250917-141518/commits.txt +0 -0
  64. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/context_logs/main-agent-integration-20250917-141518/diffstat.txt +0 -0
  65. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/context_logs/main-agent-integration-20250917-141518/files.json +0 -0
  66. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/context_logs/main-agent-integration-20250917-141518/hunks.txt +0 -0
  67. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/context_logs/react-tool-session-20250120-000002/summary.md +0 -0
  68. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/context_logs/smart-git-20250917-122934/commits.txt +0 -0
  69. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/context_logs/smart-git-20250917-122934/diffstat.txt +0 -0
  70. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/context_logs/smart-git-20250917-122934/files.json +0 -0
  71. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/fix-agent-errors.yml +0 -0
  72. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/fix-publish-script.yml +0 -0
  73. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/fix-runtime-warnings.yml +0 -0
  74. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/reasoning_docs/main-agent-integration-20250917-123100.md +0 -0
  75. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/reasoning_docs/main-agent-integration-20250917-141518.md +0 -0
  76. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/qa/reasoning_docs/smart-git-20250917-122934.md +0 -0
  77. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/semantic_index/function_call_graphs.json +0 -0
  78. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/semantic_index/intent_mappings.json +0 -0
  79. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.claude/semantic_index/type_relationships.json +0 -0
  80. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.github/pull_request_template.md +0 -0
  81. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.github/scripts/check_file_size.py +0 -0
  82. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.github/workflows/lint.yml +0 -0
  83. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.github/workflows/publish-release-v2.yml +0 -0
  84. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/.pre-commit-config.yaml +0 -0
  85. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/LICENSE +0 -0
  86. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/MANIFEST.in +0 -0
  87. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/README.md +0 -0
  88. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/assets/tunacode_example.png +0 -0
  89. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/docs/reports/subagent_analysis/code-synthesis-analyzer_report.md +0 -0
  90. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/docs/reports/subagent_analysis/codebase-analyzer_report.md +0 -0
  91. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/docs/reviews/FAGAN_PLAN.md +0 -0
  92. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/docs/reviews/agent_seams.md +0 -0
  93. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/docs/reviews/fagan_inspection_defects.json +0 -0
  94. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/docs/reviews/fagan_inspection_summary.md +0 -0
  95. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/docs/reviews/main_agent_refactor_issues.md +0 -0
  96. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/docs/reviews/main_agent_refactor_plan.md +0 -0
  97. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/README.md +0 -0
  98. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/agent/TOOLS_WORKFLOW.md +0 -0
  99. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/agent/agent-flow.md +0 -0
  100. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/agent/agent-inspo.md +0 -0
  101. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/agent/how-tunacode-agent-works.md +0 -0
  102. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/agent/main-agent-architecture.md +0 -0
  103. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/agent/swepmini-example.md +0 -0
  104. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/agent/tunacode-tool-system.md +0 -0
  105. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/agent-tools/ReAct-vs-ReWoo.md +0 -0
  106. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/agent-tools/tools-architecture.md +0 -0
  107. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/configuration/.env.example +0 -0
  108. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/configuration/config-file-example.md +0 -0
  109. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/configuration/config-flow-diagram.md +0 -0
  110. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/configuration/config-touch-points.md +0 -0
  111. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/configuration/environment-variables.md +0 -0
  112. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/configuration/local-models.md +0 -0
  113. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/configuration/logging-configuration.md +0 -0
  114. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/configuration/tunacode-json-example.md +0 -0
  115. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/configuration/tunacode.json.example +0 -0
  116. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/development/codebase-hygiene.md +0 -0
  117. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/development/command-system-architecture.md +0 -0
  118. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/development/creating-custom-commands.md +0 -0
  119. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/development/hatch-build-system.md +0 -0
  120. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/development/performance-optimizations.md +0 -0
  121. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/development/prompt-principles.md +0 -0
  122. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/development/publishing-workflow.md +0 -0
  123. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/development/streaming-text-prefix-fix.md +0 -0
  124. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/tests/README.md +0 -0
  125. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/tests/characterization-testing.md +0 -0
  126. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/tests/mocking-strategies.md +0 -0
  127. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/tests/troubleshooting.md +0 -0
  128. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/ui/ui-architecture.md +0 -0
  129. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/user/commands.md +0 -0
  130. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/user/getting-started.md +0 -0
  131. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/documentation/user/tools.md +0 -0
  132. /tunacode_cli-0.0.76.3/src/__init__.py → /tunacode_cli-0.0.76.4/llm-agent-tools/knowledge_base/README.md:Zone.Identifier +0 -0
  133. /tunacode_cli-0.0.76.3/src/tunacode/core/__init__.py → /tunacode_cli-0.0.76.4/llm-agent-tools/knowledge_base/tools/anchor_drop.py:Zone.Identifier +0 -0
  134. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/execute/2025-09-12_15-20-00_model_selection_config_persistence_fix.md +0 -0
  135. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/execute/2025-09-15_12-30-00_configuration_dashboard_implementation.md +0 -0
  136. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/execute/2025-09-15_configuration_dashboard_ux_improvements.md +0 -0
  137. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/plan/2025-09-11_13-30-00_agent_loop_architecture_enhancement.md +0 -0
  138. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/plan/2025-09-11_14-00-00_enum_state_machine_implementation.md +0 -0
  139. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/plan/2025-09-11_14-15-00_automated_cli_tool_testing_framework.md +0 -0
  140. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/plan/2025-09-12_12-20-00_global_graceful_error_handling_implementation.md +0 -0
  141. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/plan/2025-09-12_15-08-14_model_selection_config_persistence_fix.md +0 -0
  142. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/plan/2025-09-15_12-29-04_configuration_dashboard_implementation.md +0 -0
  143. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/plan/2025-09-17_15-30-00_main-agent-refactor_plan.md +0 -0
  144. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/plan/2025-09-19_11-30-00_tunacode_md_to_agents_md_migration.md +0 -0
  145. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/research/2025-01-19_react-shim-analysis.md +0 -0
  146. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/research/2025-09-07_21-13-37_agent_loop_architecture.md +0 -0
  147. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/research/2025-09-11_13-14-06_agent_loop_enhancement_analysis.md +0 -0
  148. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/research/2025-09-12_12-15-48_global_graceful_error_handling_analysis.md +0 -0
  149. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/research/2025-09-12_14-54-43_model_configuration_crash_analysis.md +0 -0
  150. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/research/2025-09-12_15-06-58_model_selection_config_update_issue.md +0 -0
  151. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/research/2025-09-12_ai-agent-tools-architecture.md +0 -0
  152. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/research/2025-09-15_12-19-00_configuration_system_and_dashboard.md +0 -0
  153. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/research/2025-09-15_13-54-11_first-chunk_character_loss_investigation.md +0 -0
  154. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/research/2025-09-16_11-12-45_setup_py_usage_and_location_analysis.md +0 -0
  155. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/research/2025-09-19_11-25-00_tunacode_md_to_agents_md_migration.md +0 -0
  156. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/research/2025-09-21_models-registry-pydantic-conversion.md +0 -0
  157. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/research/2025-09-22_12-01-06_cli_fuzzy_logic_analysis.md +0 -0
  158. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/memory-bank/research/main_agent_refactor_plan.md +0 -0
  159. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/pytest.ini +0 -0
  160. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/scripts/check-file-length.sh +0 -0
  161. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/scripts/download_ripgrep.py +0 -0
  162. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/scripts/install_linux.sh +0 -0
  163. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/scripts/playwright_cache.py +0 -0
  164. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/scripts/setup_dev_env.sh +0 -0
  165. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/scripts/startup_timer.py +0 -0
  166. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/scripts/uninstall.sh +0 -0
  167. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/scripts/utils/vulture_whitelist.py +0 -0
  168. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/scripts/verify_dev_env.sh +0 -0
  169. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/README.md +0 -0
  170. {tunacode_cli-0.0.76.3/src/tunacode/core/background → tunacode_cli-0.0.76.4/src}/__init__.py +0 -0
  171. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/__init__.py +0 -0
  172. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/__init__.py +0 -0
  173. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/__init__.py +0 -0
  174. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/base.py +0 -0
  175. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/implementations/__init__.py +0 -0
  176. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/implementations/command_reload.py +0 -0
  177. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/implementations/conversation.py +0 -0
  178. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/implementations/debug.py +0 -0
  179. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/implementations/development.py +0 -0
  180. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/implementations/model.py +0 -0
  181. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/implementations/plan.py +0 -0
  182. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/implementations/quickstart.py +0 -0
  183. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/implementations/system.py +0 -0
  184. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/implementations/template.py +0 -0
  185. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/implementations/todo.py +0 -0
  186. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/registry.py +0 -0
  187. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/slash/__init__.py +0 -0
  188. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/slash/command.py +0 -0
  189. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/slash/loader.py +0 -0
  190. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/slash/processor.py +0 -0
  191. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/slash/types.py +0 -0
  192. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/slash/validator.py +0 -0
  193. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/commands/template_shortcut.py +0 -0
  194. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/main.py +0 -0
  195. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/repl.py +0 -0
  196. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/repl_components/__init__.py +0 -0
  197. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/repl_components/command_parser.py +0 -0
  198. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/repl_components/error_recovery.py +0 -0
  199. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/repl_components/output_display.py +0 -0
  200. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/cli/repl_components/tool_executor.py +0 -0
  201. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/configuration/__init__.py +0 -0
  202. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/configuration/defaults.py +0 -0
  203. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/configuration/key_descriptions.py +0 -0
  204. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/configuration/models.py +0 -0
  205. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/configuration/settings.py +0 -0
  206. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/context.py +0 -0
  207. {tunacode_cli-0.0.76.3/src/tunacode/core/llm → tunacode_cli-0.0.76.4/src/tunacode/core}/__init__.py +0 -0
  208. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/__init__.py +0 -0
  209. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/agent_components/__init__.py +0 -0
  210. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/agent_components/agent_config.py +0 -0
  211. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/agent_components/agent_helpers.py +0 -0
  212. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/agent_components/json_tool_parser.py +0 -0
  213. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/agent_components/message_handler.py +0 -0
  214. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/agent_components/node_processor.py +0 -0
  215. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/agent_components/response_state.py +0 -0
  216. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/agent_components/result_wrapper.py +0 -0
  217. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/agent_components/state_transition.py +0 -0
  218. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/agent_components/streaming.py +0 -0
  219. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/agent_components/task_completion.py +0 -0
  220. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/agent_components/tool_buffer.py +0 -0
  221. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/agent_components/tool_executor.py +0 -0
  222. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/agent_components/truncation_checker.py +0 -0
  223. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/main.py +0 -0
  224. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/agents/utils.py +0 -0
  225. {tunacode_cli-0.0.76.3/src/tunacode/utils → tunacode_cli-0.0.76.4/src/tunacode/core/background}/__init__.py +0 -0
  226. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/background/manager.py +0 -0
  227. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/code_index.py +0 -0
  228. /tunacode_cli-0.0.76.3/src/tunacode/py.typed → /tunacode_cli-0.0.76.4/src/tunacode/core/llm/__init__.py +0 -0
  229. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/logging/__init__.py +0 -0
  230. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/logging/config.py +0 -0
  231. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/logging/formatters.py +0 -0
  232. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/logging/handlers.py +0 -0
  233. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/logging/logger.py +0 -0
  234. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/setup/__init__.py +0 -0
  235. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/setup/agent_setup.py +0 -0
  236. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/setup/base.py +0 -0
  237. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/setup/config_setup.py +0 -0
  238. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/setup/config_wizard.py +0 -0
  239. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/setup/coordinator.py +0 -0
  240. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/setup/environment_setup.py +0 -0
  241. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/setup/git_safety_setup.py +0 -0
  242. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/setup/template_setup.py +0 -0
  243. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/state.py +0 -0
  244. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/token_usage/api_response_parser.py +0 -0
  245. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/token_usage/cost_calculator.py +0 -0
  246. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/token_usage/usage_tracker.py +0 -0
  247. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/core/tool_handler.py +0 -0
  248. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/exceptions.py +0 -0
  249. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/prompts/system.md +0 -0
  250. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/prompts/system.md.bak +0 -0
  251. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/services/__init__.py +0 -0
  252. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/services/mcp.py +0 -0
  253. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/setup.py +0 -0
  254. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/templates/__init__.py +0 -0
  255. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/templates/loader.py +0 -0
  256. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/__init__.py +0 -0
  257. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/base.py +0 -0
  258. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/bash.py +0 -0
  259. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/exit_plan_mode.py +0 -0
  260. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/glob.py +0 -0
  261. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/grep.py +0 -0
  262. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/grep_components/__init__.py +0 -0
  263. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/grep_components/file_filter.py +0 -0
  264. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/grep_components/pattern_matcher.py +0 -0
  265. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/grep_components/result_formatter.py +0 -0
  266. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/grep_components/search_result.py +0 -0
  267. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/list_dir.py +0 -0
  268. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/present_plan.py +0 -0
  269. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/prompts/bash_prompt.xml +0 -0
  270. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/prompts/exit_plan_mode_prompt.xml +0 -0
  271. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/prompts/glob_prompt.xml +0 -0
  272. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/prompts/grep_prompt.xml +0 -0
  273. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/prompts/list_dir_prompt.xml +0 -0
  274. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/prompts/present_plan_prompt.xml +0 -0
  275. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/prompts/react_prompt.xml +0 -0
  276. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/prompts/read_file_prompt.xml +0 -0
  277. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/prompts/run_command_prompt.xml +0 -0
  278. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/prompts/todo_prompt.xml +0 -0
  279. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/prompts/update_file_prompt.xml +0 -0
  280. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/prompts/write_file_prompt.xml +0 -0
  281. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/react.py +0 -0
  282. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/read_file.py +0 -0
  283. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/run_command.py +0 -0
  284. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/schema_assembler.py +0 -0
  285. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/todo.py +0 -0
  286. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/update_file.py +0 -0
  287. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/write_file.py +0 -0
  288. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tools/xml_helper.py +0 -0
  289. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tutorial/__init__.py +0 -0
  290. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tutorial/content.py +0 -0
  291. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tutorial/manager.py +0 -0
  292. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/tutorial/steps.py +0 -0
  293. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/types.py +0 -0
  294. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/__init__.py +0 -0
  295. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/completers.py +0 -0
  296. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/config_dashboard.py +0 -0
  297. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/console.py +0 -0
  298. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/constants.py +0 -0
  299. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/decorators.py +0 -0
  300. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/input.py +0 -0
  301. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/keybindings.py +0 -0
  302. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/lexers.py +0 -0
  303. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/logging_compat.py +0 -0
  304. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/model_selector.py +0 -0
  305. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/output.py +0 -0
  306. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/panels.py +0 -0
  307. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/prompt_manager.py +0 -0
  308. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/tool_descriptions.py +0 -0
  309. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/tool_ui.py +0 -0
  310. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/utils.py +0 -0
  311. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/ui/validators.py +0 -0
  312. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/api_key_validation.py +0 -0
  313. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/bm25.py +0 -0
  314. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/config_comparator.py +0 -0
  315. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/diff_utils.py +0 -0
  316. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/file_utils.py +0 -0
  317. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/fuzzy_utils.py +0 -0
  318. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/import_cache.py +0 -0
  319. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/json_utils.py +0 -0
  320. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/message_utils.py +0 -0
  321. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/models_registry.py +0 -0
  322. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/retry.py +0 -0
  323. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/ripgrep.py +0 -0
  324. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/security.py +0 -0
  325. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/system.py +0 -0
  326. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/text_utils.py +0 -0
  327. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/token_counter.py +0 -0
  328. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/src/tunacode/utils/user_configuration.py +0 -0
  329. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/CHARACTERIZATION_README.md +0 -0
  330. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/CHARACTERIZATION_TEST_PLAN.md +0 -0
  331. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/CHARACTERIZATION_TEST_PLAN_AGENT_MAIN.md +0 -0
  332. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/CHARACTERIZATION_TEST_PLAN_COMMANDS.md +0 -0
  333. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/FILE_OPERATIONS_TEST_GUIDE.md +0 -0
  334. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/__init__.py +0 -0
  335. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/agent/__init__.py +0 -0
  336. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/agent/conftest.py +0 -0
  337. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/agent/test_agent_creation.py +0 -0
  338. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/agent/test_json_tool_parsing.py +0 -0
  339. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/agent/test_process_node.py +0 -0
  340. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/agent/test_process_request.py +0 -0
  341. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/agent/test_tool_message_patching.py +0 -0
  342. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/background/test_background_edge_cases.py +0 -0
  343. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/background/test_cleanup.py +0 -0
  344. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/background/test_task_cancellation.py +0 -0
  345. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/background/test_task_creation.py +0 -0
  346. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/background/test_task_execution.py +0 -0
  347. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/code_index/test_cache_management.py +0 -0
  348. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/code_index/test_file_scanning.py +0 -0
  349. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/code_index/test_index_building.py +0 -0
  350. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/code_index/test_search_operations.py +0 -0
  351. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/code_index/test_symbol_extraction.py +0 -0
  352. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/commands/__init__.py +0 -0
  353. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/commands/test_init_command.py +0 -0
  354. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/commands/test_model_selection_persistence.py +0 -0
  355. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/conftest.py +0 -0
  356. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/context/README.md +0 -0
  357. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/context/__init__.py +0 -0
  358. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/context/test_context_acceptance.py +0 -0
  359. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/context/test_context_integration.py +0 -0
  360. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/context/test_context_loading.py +0 -0
  361. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/context/test_tunacode_logging.py +0 -0
  362. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/repl/test_command_parsing.py +0 -0
  363. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/repl/test_error_handling.py +0 -0
  364. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/repl/test_escape_key_behavior.py +0 -0
  365. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/repl/test_input_handling.py +0 -0
  366. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/repl/test_keyboard_interrupts.py +0 -0
  367. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/repl/test_multiline_input.py +0 -0
  368. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/repl/test_output_display_logic.py +0 -0
  369. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/repl/test_repl_initialization.py +0 -0
  370. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/repl/test_session_flow.py +0 -0
  371. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/services/test_error_recovery.py +0 -0
  372. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/services/test_llm_routing.py +0 -0
  373. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/services/test_mcp_integration.py +0 -0
  374. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/services/test_service_lifecycle.py +0 -0
  375. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/state/test_agent_tracking.py +0 -0
  376. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/state/test_message_history.py +0 -0
  377. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/state/test_permissions.py +0 -0
  378. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/state/test_session_management.py +0 -0
  379. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/state/test_state_initialization.py +0 -0
  380. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/state/test_user_config.py +0 -0
  381. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/test_characterization_commands.py +0 -0
  382. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/test_characterization_grep.py +0 -0
  383. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/test_characterization_main.py +0 -0
  384. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/test_characterization_repl.py +0 -0
  385. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/test_cli_fuzzy_matching.py +0 -0
  386. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/ui/test_async_ui.py +0 -0
  387. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/ui/test_console_output.py +0 -0
  388. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/ui/test_diff_display.py +0 -0
  389. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/ui/test_prompt_rendering.py +0 -0
  390. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/ui/test_spinner_messages.py +0 -0
  391. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/ui/test_tool_confirmations.py +0 -0
  392. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/utils/test_expand_file_refs.py +0 -0
  393. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/utils/test_file_operations.py +0 -0
  394. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/utils/test_git_commands.py +0 -0
  395. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/utils/test_token_counting.py +0 -0
  396. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/characterization/utils/test_utils_edge_cases.py +0 -0
  397. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/conftest.py +0 -0
  398. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/integration/test_startup_dashboard.py +0 -0
  399. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_agent_output_formatting.py +0 -0
  400. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_command_parser_retry.py +0 -0
  401. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_completion_detection.py +0 -0
  402. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_glob_phase3.py +0 -0
  403. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_json_concatenation_recovery.py +0 -0
  404. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_json_retry.py +0 -0
  405. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_logging_config.py +0 -0
  406. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_onboarding_features.py +0 -0
  407. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_phase2_type_hints.py +0 -0
  408. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_plan_mode.py +0 -0
  409. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_prompt_changes_validation.py +0 -0
  410. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_prompt_injection.py +0 -0
  411. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_security.py +0 -0
  412. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_slash_commands_comprehensive.py +0 -0
  413. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_slash_commands_functional.py +0 -0
  414. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_slash_commands_integration.py +0 -0
  415. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_slash_commands_isolated.py +0 -0
  416. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_spinner_updates.py +0 -0
  417. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/test_tool_batching_retry.py +0 -0
  418. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/ui/test_config_dashboard.py +0 -0
  419. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/unit/commands/test_model_selection_persistence_new.py +0 -0
  420. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/unit/config/test_user_configuration_permissions.py +0 -0
  421. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/unit/test_constants_enums.py +0 -0
  422. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/unit/test_react_tool.py +0 -0
  423. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/unit/utils/test_models_registry.py +0 -0
  424. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/unit/utils/test_models_registry_validation.py +0 -0
  425. {tunacode_cli-0.0.76.3 → tunacode_cli-0.0.76.4}/tests/utils/test_config_comparator.py +0 -0
@@ -9,4 +9,4 @@
9
9
  7. **Move Declaration & Initialization Together** - Keep a variable's birth and first value adjacent for comprehension & dependency safety
10
10
  8. **Explaining Variable** - Extract a sub-expression into a well-named variable to record intent
11
11
  9. **Explaining Constant** - Replace magic literals with symbolic constants that broadcast meaning
12
- 10. **Explicit Parameters** - Split a routine so all inputs are passed openly, banishing hidden state or maps
12
+ 10. **Explicit Parameters** - Split a routine so all inputs are passed openly, banishing hidden state or maps
@@ -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
 
@@ -86,6 +96,8 @@ Docs → model-friendly explanations of purposes & relationships.
86
96
  Delta Summaries → record API/behavior shifts with reasoning.
87
97
 
88
98
  Memory Anchors → embed UUID-tagged semantic anchors in code.
99
+ you MUST use this tool to drop anchors: python3 knowledge_base/tools/anchor_drop.py <file> <line> <description> to mark important locations
100
+ with UUID-based comments stored in .claude/memory_anchors/anchors.json
89
101
  ---
90
102
 
91
103
  ### Example##\#
@@ -108,9 +120,23 @@ in llm-agent-tools/rag_modules/ a tool exist to search the .claude/ directory vi
108
120
  ./rag-cli.sh search "query" # Search across .claude/
109
121
  ./rag-cli.sh stats # Show index stats
110
122
 
111
- # Filtered / formatted search
112
- ./rag-cli.sh search "query" --category dev --format json --limit 5
123
+ ### Filtered / formatted search
113
124
 
125
+ ./rag-cli.sh search "query" --category dev --format json --limit 5
114
126
  You MUST call this tool at least once per session to ground context.
115
127
  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.
128
+
129
+ **Problem**: Search for "fuzzy" in the .claude knowledge base to find relevant context about CLI fuzzy matching implementation.
130
+
131
+ ```bash
132
+ # First index the .claude directory
133
+ ./rag-cli.sh index --dir .claude
134
+
135
+ # Search for specific content
136
+ ./rag-cli.sh search "fuzzy" --format text
137
+
138
+ # Results found:
139
+ # 1. behavior_changes.json - CLI fuzzy matching enhancement details
140
+ # 2. file_classifications.json - Test file classification for fuzzy matching
141
+ ```
116
142
  ---
@@ -91,7 +91,9 @@ 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
+ you MUST use this tool to drop anchors: python3 knowledge_base/tools/anchor_drop.py <file> <line> <description> to mark important locations
95
+ with UUID-based comments stored in .claude/memory_anchors/anchors.json
96
+ * Keeep entries nonverbose and distilled to the core implemenation for the next dev. You will be punished for not following these instructions.
95
97
 
96
98
 
97
99
  ---
@@ -121,9 +123,22 @@ In llm-agent-tools/rag_modules/ a tool exists to search the .claude/ directory v
121
123
 
122
124
  ./rag-cli.sh search "query" --category dev --format json --limit 5
123
125
  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
126
  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
 
128
+ **Problem**: Search for "fuzzy" in the .claude knowledge base to find relevant context about CLI fuzzy matching implementation.
129
+
130
+ ```bash
131
+ # First index the .claude directory
132
+ ./rag-cli.sh index --dir .claude
133
+
134
+ # Search for specific content
135
+ ./rag-cli.sh search "fuzzy" --format text
136
+
137
+ # Results found:
138
+ # 1. behavior_changes.json - CLI fuzzy matching enhancement details
139
+ # 2. file_classifications.json - Test file classification for fuzzy matching
140
+ ```
141
+
127
142
  ---
128
143
 
129
144
  ## 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.4
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
@@ -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,41 @@ 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.4] - 2025-09-25
9
+
10
+ ### Added
11
+ - **Fuzzy Matching Integration** - Merged new-fuzzy branch with enhanced CLI and file reference completion
12
+ - **Memory Anchor Tool** - Added UUID-based semantic anchoring system for code documentation
13
+ - **Knowledge Base Structure** - Comprehensive RAG tooling for .claude/ directory search and indexing
14
+
15
+ ### Changed
16
+ - **File Reference System** - Enhanced @mentions with fuzzy-first matching and smart directory browsing
17
+ - **CLI Command Resolution** - Added fuzzy fallback using difflib.get_close_matches for better UX
18
+ - **Code Quality** - Updated coding patterns and best practices in CLAUDE.md
19
+
20
+ ### Fixed
21
+ - **Documentation Consistency** - Resolved merge conflicts and updated project instructions
22
+ - **Import Cleanup** - Removed unused imports and improved code organization
23
+
24
+ ## [Unreleased] - 2025-09-22
25
+
26
+ ### Added
27
+ - **Enhanced File Reference Completion** - Fuzzy-first matching for @mentions with smart directory browsing
28
+ - **Fuzzy CLI Command Matching** - CLI suggests closest commands when no exact/prefix match
29
+ - **Models Registry Pydantic Conversion** - Complete conversion to Pydantic BaseModel with validation
30
+ - **RAG Tooling** - SQLite FTS5 index for .claude/ knowledge base search and indexing
31
+ - **Comprehensive Validation Tests** - Added golden baseline tests and validation edge cases
32
+
33
+ ### Changed
34
+ - **File Reference Ordering** - New priority: exact files > fuzzy files > exact dirs > fuzzy dirs
35
+ - **Bare Directory Browsing** - Type `@dir` (without trailing slash) to browse directory contents
36
+ - **Code Style Guidelines** - Updated CLAUDE.md with improved coding patterns and best practices
37
+ - **Models Registry Validation** - Added constraints for non-negative costs and positive limits
38
+
39
+ ### Fixed
40
+ - **Unused Import Removal** - Removed unused Iterable import from fuzzy_utils.py
41
+ - **Validation Edge Cases** - Enhanced registry validation for model loading scenarios
42
+
8
43
  ## [0.0.76.2] - 2025-09-19
9
44
 
10
45
  ### Added
@@ -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,88 @@
1
+ # Knowledge Base Tools
2
+
3
+ A suite of command-line tools designed for code agents and human-in-the-loop workflows to Create, Read, Update, and Delete (CRUD) knowledge base anchors in code repositories.
4
+
5
+ ## Overview
6
+
7
+ These tools help maintain persistent memory anchors within codebases, enabling:
8
+ - Code agents to remember important context across sessions
9
+ - Human developers to mark and annotate significant code locations
10
+ - Collaborative annotation of code with contextual information
11
+ - Persistent knowledge storage that survives code changes
12
+
13
+ ## Tools
14
+
15
+ ### anchor_drop.py
16
+
17
+ The first tool in the suite. Drops memory anchors at specific locations in code files.
18
+
19
+ **Features:**
20
+ - Inserts `CLAUDE_ANCHOR[key=UUID]` comments in code
21
+ - Supports multiple programming languages with appropriate comment syntax
22
+ - Maintains anchor metadata in `.claude/memory_anchors/anchors.json`
23
+ - Generates unique UUID keys for each anchor
24
+
25
+ **Usage:**
26
+ ```bash
27
+ python3 anchor_drop.py <file_path> <line_number> <description> [kind]
28
+ ```
29
+
30
+ **Examples:**
31
+ ```bash
32
+ # Drop an anchor at line 42 in main.py
33
+ python3 anchor_drop.py main.py 42 "Critical authentication logic"
34
+
35
+ # Drop an anchor with specific kind
36
+ python3 anchor_drop.py utils.py 15 "Helper function" "function"
37
+ ```
38
+
39
+ **Supported Languages:**
40
+ - Python (.py) - `#` comments
41
+ - JavaScript (.js) - `//` comments
42
+ - TypeScript (.ts) - `//` comments
43
+ - Go (.go) - `//` comments
44
+ - C/C++ (.c, .cpp) - `//` comments
45
+ - Java (.java) - `//` comments
46
+ - Rust (.rs) - `//` comments
47
+ - Zig (.zig) - `//` comments
48
+ - SQL (.sql) - `--` comments
49
+ - HTML (.html, .htm) - `<!-- -->` comments
50
+
51
+ ## Anchor Data Structure
52
+
53
+ Anchors are stored in `.claude/memory_anchors/anchors.json` with the following structure:
54
+
55
+ ```json
56
+ {
57
+ "version": 1,
58
+ "generated": "2025-09-23T11:35:02Z",
59
+ "anchors": [
60
+ {
61
+ "key": "affbd046",
62
+ "path": "test_file.py",
63
+ "line": 12,
64
+ "kind": "line",
65
+ "description": "Important calculation function",
66
+ "status": "active",
67
+ "created": "2025-09-23T11:35:00Z"
68
+ }
69
+ ]
70
+ }
71
+ ```
72
+
73
+ ## Use Cases
74
+
75
+ 1. **Code Agent Memory**: Allow agents to remember important code locations and context
76
+ 2. **Code Reviews**: Mark sections needing attention or explanation
77
+ 3. **Documentation**: Embed documentation directly in code locations
78
+ 4. **Debugging**: Anchor problematic code sections with notes
79
+ 5. **Learning**: Annotate code examples with explanations
80
+
81
+ ## Future Tools
82
+
83
+ Planned additions to the tool suite:
84
+ - `anchor_list.py` - List all anchors in the repository
85
+ - `anchor_update.py` - Update anchor descriptions and metadata
86
+ - `anchor_delete.py` - Remove anchors from code and registry
87
+ - `anchor_search.py` - Search anchors by description or metadata
88
+ - `anchor_export.py` - Export anchors in various formats
@@ -0,0 +1,104 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Drop a memory anchor:
4
+ - Inserts a CLAUDE_ANCHOR comment in the code with UUID key
5
+ - Appends entry in .claude/memory_anchors/anchors.json
6
+ """
7
+
8
+ import json
9
+ import pathlib
10
+ import time
11
+ import uuid
12
+
13
+ LANG_PREFIX = {
14
+ ".py": "#",
15
+ ".js": "//",
16
+ ".ts": "//",
17
+ ".go": "//",
18
+ ".c": "//",
19
+ ".cpp": "//",
20
+ ".java": "//",
21
+ ".rs": "//",
22
+ ".zig": "//",
23
+ ".sql": "--",
24
+ ".html": "<!--",
25
+ ".htm": "<!--",
26
+ }
27
+ LANG_SUFFIX = {".html": " -->", ".htm": " -->"}
28
+
29
+
30
+ def drop_anchor(file_path, line_num, desc, kind="line"):
31
+ root = pathlib.Path(".claude/memory_anchors")
32
+ root.mkdir(parents=True, exist_ok=True)
33
+ anchors_file = root / "anchors.json"
34
+
35
+ # Load or init template
36
+ data = {
37
+ "version": 1,
38
+ "generated": time.strftime("%Y-%m-%dT%H:%M:%SZ"),
39
+ "anchors": [],
40
+ }
41
+ if anchors_file.exists():
42
+ with open(anchors_file, "r") as f:
43
+ try:
44
+ data = json.load(f)
45
+ except json.JSONDecodeError:
46
+ print("Invalid anchors.json; reinitializing.")
47
+
48
+ # Generate key
49
+ key = str(uuid.uuid4())[:8]
50
+
51
+ # New entry
52
+ entry = {
53
+ "key": key,
54
+ "path": file_path,
55
+ "line": line_num,
56
+ "kind": kind,
57
+ "description": desc,
58
+ "status": "active",
59
+ "created": time.strftime("%Y-%m-%dT%H:%M:%SZ"),
60
+ }
61
+ data["anchors"].append(entry)
62
+ data["generated"] = time.strftime("%Y-%m-%dT%H:%M:%SZ")
63
+
64
+ # Insert comment
65
+ p = pathlib.Path(file_path)
66
+ if not p.exists():
67
+ print(f"File {file_path} not found.")
68
+ return
69
+
70
+ with open(p, "r") as f:
71
+ text = f.readlines()
72
+
73
+ if line_num < 1 or line_num > len(text) + 1:
74
+ print(f"Invalid line {line_num} for file with {len(text)} lines.")
75
+ return
76
+
77
+ ext = p.suffix.lower()
78
+ pre = LANG_PREFIX.get(ext, "//")
79
+ post = LANG_SUFFIX.get(ext, "")
80
+ comment = f"{pre} CLAUDE_ANCHOR[key={key}] {desc}{post}\n"
81
+ text.insert(line_num - 1, comment)
82
+
83
+ with open(p, "w") as f:
84
+ f.writelines(text)
85
+
86
+ # Write JSON
87
+ with open(anchors_file, "w") as f:
88
+ json.dump(data, f, indent=2)
89
+
90
+ print(f"Anchor {key} dropped at {file_path}:{line_num}")
91
+
92
+
93
+ if __name__ == "__main__":
94
+ import sys
95
+
96
+ if len(sys.argv) < 4:
97
+ print("Usage: python anchor_drop.py <file> <line> <desc> [kind]")
98
+ sys.exit(1)
99
+
100
+ file_path = sys.argv[1]
101
+ line_num = int(sys.argv[2])
102
+ desc = sys.argv[3]
103
+ kind = sys.argv[4] if len(sys.argv) > 4 else "line"
104
+ drop_anchor(file_path, line_num, desc, kind)
@@ -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
+ ```