codexa 0.4.3__tar.gz → 0.5.0__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.
Files changed (205) hide show
  1. {codexa-0.4.3 → codexa-0.5.0}/PKG-INFO +37 -12
  2. {codexa-0.4.3 → codexa-0.5.0}/README.md +36 -11
  3. {codexa-0.4.3 → codexa-0.5.0}/codexa.egg-info/PKG-INFO +37 -12
  4. {codexa-0.4.3 → codexa-0.5.0}/codexa.egg-info/SOURCES.txt +8 -0
  5. {codexa-0.4.3 → codexa-0.5.0}/pyproject.toml +1 -1
  6. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/analysis/ai_features.py +3 -17
  7. codexa-0.5.0/semantic_code_intelligence/analysis/codegen.py +143 -0
  8. codexa-0.5.0/semantic_code_intelligence/analysis/cross_language.py +270 -0
  9. codexa-0.5.0/semantic_code_intelligence/analysis/semantic_diff.py +222 -0
  10. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/bridge/protocol.py +2 -7
  11. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/bridge/server.py +60 -0
  12. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/bridge/vscode.py +2 -2
  13. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/ci/impact.py +4 -14
  14. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/ci/metrics.py +3 -15
  15. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/ci/pr.py +4 -20
  16. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/ci/quality.py +4 -23
  17. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/ci/trace.py +3 -12
  18. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/ask_cmd.py +8 -1
  19. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/chat_cmd.py +8 -1
  20. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/grep_cmd.py +61 -1
  21. codexa-0.5.0/semantic_code_intelligence/cli/commands/index_cmd.py +291 -0
  22. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/init_cmd.py +34 -1
  23. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/mcp_cmd.py +15 -1
  24. codexa-0.5.0/semantic_code_intelligence/cli/commands/models_cmd.py +361 -0
  25. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/search_cmd.py +95 -1
  26. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/suggest_cmd.py +8 -1
  27. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/main.py +15 -1
  28. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/config/settings.py +12 -0
  29. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/context/engine.py +3 -12
  30. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/context/memory.py +2 -8
  31. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/embeddings/generator.py +19 -0
  32. codexa-0.5.0/semantic_code_intelligence/embeddings/model_registry.py +223 -0
  33. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/evolution/task_selector.py +2 -7
  34. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/llm/__init__.py +10 -0
  35. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/llm/cross_refactor.py +2 -10
  36. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/llm/investigation.py +30 -14
  37. codexa-0.5.0/semantic_code_intelligence/llm/rag.py +564 -0
  38. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/llm/rate_limiter.py +2 -8
  39. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/llm/reasoning.py +48 -37
  40. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/llm/safety.py +2 -7
  41. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/llm/streaming.py +2 -2
  42. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/mcp/__init__.py +39 -8
  43. codexa-0.5.0/semantic_code_intelligence/mcp/claude_config.py +32 -0
  44. codexa-0.5.0/semantic_code_intelligence/rust_backend.py +142 -0
  45. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/search/formatter.py +9 -2
  46. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/search/hybrid_search.py +17 -0
  47. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/search/keyword_search.py +42 -1
  48. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/services/indexing_service.py +15 -0
  49. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/services/search_service.py +3 -2
  50. codexa-0.5.0/semantic_code_intelligence/sessions/__init__.py +157 -0
  51. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/storage/vector_store.py +105 -0
  52. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_cli.py +1 -1
  53. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase13.py +2 -2
  54. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase14.py +1 -1
  55. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase15.py +1 -1
  56. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase16.py +1 -1
  57. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase17.py +1 -1
  58. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase18.py +2 -2
  59. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase19.py +2 -2
  60. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase22.py +1 -1
  61. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase23.py +1 -1
  62. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase24.py +1 -1
  63. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase25.py +1 -1
  64. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase26.py +1 -1
  65. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase27.py +1 -1
  66. codexa-0.5.0/semantic_code_intelligence/tests/test_phase38_42.py +558 -0
  67. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tools/protocol.py +3 -13
  68. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/version.py +1 -1
  69. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/web/api.py +7 -1
  70. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/web/server.py +7 -1
  71. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/workspace/__init__.py +2 -8
  72. codexa-0.4.3/semantic_code_intelligence/cli/commands/index_cmd.py +0 -143
  73. codexa-0.4.3/semantic_code_intelligence/cli/commands/models_cmd.py +0 -157
  74. codexa-0.4.3/semantic_code_intelligence/embeddings/model_registry.py +0 -100
  75. {codexa-0.4.3 → codexa-0.5.0}/LICENSE +0 -0
  76. {codexa-0.4.3 → codexa-0.5.0}/codexa.egg-info/dependency_links.txt +0 -0
  77. {codexa-0.4.3 → codexa-0.5.0}/codexa.egg-info/entry_points.txt +0 -0
  78. {codexa-0.4.3 → codexa-0.5.0}/codexa.egg-info/requires.txt +0 -0
  79. {codexa-0.4.3 → codexa-0.5.0}/codexa.egg-info/top_level.txt +0 -0
  80. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/__init__.py +0 -0
  81. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/analysis/__init__.py +0 -0
  82. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/bridge/__init__.py +0 -0
  83. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/bridge/context_provider.py +0 -0
  84. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/ci/__init__.py +0 -0
  85. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/ci/hooks.py +0 -0
  86. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/ci/hotspots.py +0 -0
  87. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/ci/templates.py +0 -0
  88. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/__init__.py +0 -0
  89. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/__init__.py +0 -0
  90. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/benchmark_cmd.py +0 -0
  91. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/ci_gen_cmd.py +0 -0
  92. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/context_cmd.py +0 -0
  93. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/cross_refactor_cmd.py +0 -0
  94. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/deps_cmd.py +0 -0
  95. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/docs_cmd.py +0 -0
  96. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/doctor_cmd.py +0 -0
  97. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/evolve_cmd.py +0 -0
  98. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/explain_cmd.py +0 -0
  99. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/gate_cmd.py +0 -0
  100. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/hotspots_cmd.py +0 -0
  101. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/impact_cmd.py +0 -0
  102. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/investigate_cmd.py +0 -0
  103. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/languages_cmd.py +0 -0
  104. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/lsp_cmd.py +0 -0
  105. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/metrics_cmd.py +0 -0
  106. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/plugin_cmd.py +0 -0
  107. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/pr_summary_cmd.py +0 -0
  108. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/quality_cmd.py +0 -0
  109. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/refactor_cmd.py +0 -0
  110. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/review_cmd.py +0 -0
  111. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/serve_cmd.py +0 -0
  112. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/summary_cmd.py +0 -0
  113. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/tool_cmd.py +0 -0
  114. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/trace_cmd.py +0 -0
  115. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/tui_cmd.py +0 -0
  116. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/viz_cmd.py +0 -0
  117. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/watch_cmd.py +0 -0
  118. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/web_cmd.py +0 -0
  119. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/commands/workspace_cmd.py +0 -0
  120. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/cli/router.py +0 -0
  121. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/config/__init__.py +0 -0
  122. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/context/__init__.py +0 -0
  123. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/daemon/__init__.py +0 -0
  124. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/daemon/watcher.py +0 -0
  125. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/docs/__init__.py +0 -0
  126. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/embeddings/__init__.py +0 -0
  127. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/embeddings/enhanced.py +0 -0
  128. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/evolution/__init__.py +0 -0
  129. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/evolution/budget_guard.py +0 -0
  130. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/evolution/commit_manager.py +0 -0
  131. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/evolution/context_builder.py +0 -0
  132. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/evolution/engine.py +0 -0
  133. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/evolution/patch_generator.py +0 -0
  134. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/evolution/test_runner.py +0 -0
  135. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/indexing/__init__.py +0 -0
  136. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/indexing/chunker.py +0 -0
  137. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/indexing/parallel.py +0 -0
  138. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/indexing/scanner.py +0 -0
  139. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/indexing/semantic_chunker.py +0 -0
  140. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/llm/cache.py +0 -0
  141. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/llm/cached_provider.py +0 -0
  142. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/llm/conversation.py +0 -0
  143. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/llm/mock_provider.py +0 -0
  144. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/llm/ollama_provider.py +0 -0
  145. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/llm/openai_provider.py +0 -0
  146. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/llm/provider.py +0 -0
  147. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/lsp/__init__.py +0 -0
  148. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/parsing/__init__.py +0 -0
  149. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/parsing/parser.py +0 -0
  150. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/plugins/__init__.py +0 -0
  151. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/plugins/examples/__init__.py +0 -0
  152. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/plugins/examples/code_quality.py +0 -0
  153. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/plugins/examples/search_annotator.py +0 -0
  154. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/scalability/__init__.py +0 -0
  155. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/search/__init__.py +0 -0
  156. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/search/grep.py +0 -0
  157. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/search/section_expander.py +0 -0
  158. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/services/__init__.py +0 -0
  159. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/storage/__init__.py +0 -0
  160. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/storage/chunk_hash_store.py +0 -0
  161. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/storage/hash_store.py +0 -0
  162. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/storage/index_manifest.py +0 -0
  163. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/storage/index_stats.py +0 -0
  164. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/storage/query_history.py +0 -0
  165. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/storage/symbol_registry.py +0 -0
  166. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/__init__.py +0 -0
  167. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_ai_features.py +0 -0
  168. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_chunker.py +0 -0
  169. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_config.py +0 -0
  170. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_context.py +0 -0
  171. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_embeddings.py +0 -0
  172. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_endtoend.py +0 -0
  173. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_enhanced_embeddings.py +0 -0
  174. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_hash_store.py +0 -0
  175. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_logging.py +0 -0
  176. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_new_cli.py +0 -0
  177. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_parser.py +0 -0
  178. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase10.py +0 -0
  179. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase11.py +0 -0
  180. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase12.py +0 -0
  181. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase20.py +0 -0
  182. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase20b.py +0 -0
  183. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase20c.py +0 -0
  184. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase21.py +0 -0
  185. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase8.py +0 -0
  186. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_phase9.py +0 -0
  187. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_plugins.py +0 -0
  188. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_priority_features.py +0 -0
  189. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_router.py +0 -0
  190. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_scalability.py +0 -0
  191. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_scanner.py +0 -0
  192. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_search.py +0 -0
  193. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_semantic_chunker.py +0 -0
  194. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_tools.py +0 -0
  195. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_vector_store.py +0 -0
  196. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tests/test_watcher.py +0 -0
  197. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tools/__init__.py +0 -0
  198. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tools/executor.py +0 -0
  199. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/tui/__init__.py +0 -0
  200. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/utils/__init__.py +0 -0
  201. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/utils/logging.py +0 -0
  202. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/web/__init__.py +0 -0
  203. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/web/ui.py +0 -0
  204. {codexa-0.4.3 → codexa-0.5.0}/semantic_code_intelligence/web/visualize.py +0 -0
  205. {codexa-0.4.3 → codexa-0.5.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codexa
3
- Version: 0.4.3
3
+ Version: 0.5.0
4
4
  Summary: Developer intelligence CLI — semantic code search, AI-assisted understanding, and agent tooling for codebases
5
5
  License: MIT
6
6
  Project-URL: Homepage, https://codex-a.dev
@@ -65,9 +65,11 @@ Dynamic: license-file
65
65
 
66
66
  <p align="center">
67
67
  <a href="https://github.com/M9nx/CodexA/actions"><img src="https://github.com/M9nx/CodexA/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
68
+ <a href="https://pypi.org/project/codexa/"><img src="https://img.shields.io/pypi/v/codexa?color=blue&label=PyPI" alt="PyPI"></a>
69
+ <a href="https://pepy.tech/project/codexa"><img src="https://img.shields.io/pepy/dt/codexa?color=blue&label=Downloads" alt="Downloads"></a>
68
70
  <img src="https://img.shields.io/badge/python-3.11%2B-blue" alt="Python 3.11+">
69
- <img src="https://img.shields.io/badge/version-0.4.3-green" alt="Version">
70
- <img src="https://img.shields.io/badge/tests-2595-brightgreen" alt="Tests">
71
+ <img src="https://img.shields.io/badge/version-0.5.0-green" alt="Version">
72
+ <img src="https://img.shields.io/badge/tests-2657-brightgreen" alt="Tests">
71
73
  <img src="https://img.shields.io/badge/coverage-79%25-brightgreen" alt="Coverage">
72
74
  <img src="https://img.shields.io/badge/mypy-strict-blue" alt="mypy strict">
73
75
  <img src="https://img.shields.io/badge/license-MIT-blue" alt="License">
@@ -84,17 +86,22 @@ structured tool protocol that any AI agent can call over HTTP or CLI.
84
86
 
85
87
  | Area | What you get |
86
88
  |------|-------------|
87
- | **Code Indexing** | Scan repos, extract functions/classes, generate vector embeddings (sentence-transformers + FAISS), ONNX runtime option, parallel indexing, `--watch` live re-indexing, `.codexaignore` support |
88
- | **Multi-Mode Search** | Semantic, keyword (BM25), regex, hybrid (RRF), and raw filesystem grep (ripgrep backend) with full `-A/-B/-C/-w/-v/-c` flags |
89
+ | **Code Indexing** | Scan repos, extract functions/classes, generate vector embeddings (sentence-transformers + FAISS), ONNX runtime option, parallel indexing, `--watch` live re-indexing, `.codexaignore` support, `--add`/`--inspect` per-file control, model-consistency guard, Ctrl+C partial-save |
90
+ | **Rust Search Engine** | Native `codexa-core` Rust crate via PyO3 — HNSW approximate nearest-neighbour search, BM25 keyword index, tree-sitter AST chunker (10 languages), memory-mapped vector persistence, parallel file scanner, optional ONNX embedding inference, optional Tantivy full-text search |
91
+ | **Multi-Mode Search** | Semantic, keyword (BM25), regex, hybrid (RRF), and raw filesystem grep (ripgrep backend) with full `-A/-B/-C/-w/-v/-c/-l/-L/--exclude/--no-ignore` flags, `--hybrid`/`--sem` shorthands, `--scores`, `--snippet-length`, `--no-snippet`, JSONL streaming |
92
+ | **RAG Pipeline** | 4-stage Retrieval-Augmented Generation — Retrieve → Deduplicate → Re-rank → Assemble with token budget, cross-encoder re-ranking, source citations |
89
93
  | **Code Context** | Rich context windows — imports, dependencies, AST-based call graphs, surrounding code |
90
94
  | **Repository Analysis** | Language breakdown (`codexa languages`), module summaries, component detection |
91
- | **AI Agent Protocol** | 13 built-in tools exposed via HTTP bridge, MCP server (13 tools), MCP-over-SSE (`--mcp`), or CLI for any AI agent to invoke |
95
+ | **AI Agent Protocol** | 13 built-in tools exposed via HTTP bridge, MCP server (13 tools with pagination/cursors), MCP-over-SSE (`--mcp`), `codexa --serve` shorthand, Claude Desktop auto-config (`--claude-config`), or CLI for any AI agent to invoke |
92
96
  | **Quality & Metrics** | Complexity analysis, maintainability scoring, quality gates for CI |
93
97
  | **Multi-Repo Workspaces** | Link multiple repos under one workspace for cross-repo search & refactoring |
94
98
  | **Interactive TUI** | Terminal REPL with mode switching for interactive exploration |
95
99
  | **Streaming Responses** | Token-by-token streaming for chat and investigation commands |
96
100
  | **Plugin System** | 22 hooks for extending every layer — from indexing to tool invocation |
97
101
  | **VS Code Extension** | 4-panel sidebar (Search, Symbols, Quality, Tools), 8 commands, CodeLens, context menus, status bar |
102
+ | **Editor Plugins** | Zed, JetBrains (IntelliJ/PyCharm), Neovim (telescope.nvim), Vim, Sublime Text, Emacs, Helix, Eclipse -- all sharing the same MCP/bridge protocol |
103
+ | **Cross-Language Intelligence** | FFI pattern detection, polyglot dependency graphs, language-aware search boosting, universal multi-language call graph |
104
+ | **Multi-Agent Sessions** | Concurrent AI agent sessions with shared discovery, semantic diff (rename/move/signature/body detection), RAG code generation |
98
105
 
99
106
  ---
100
107
 
@@ -140,6 +147,15 @@ cd /path/to/your-project
140
147
  codexa init
141
148
  ```
142
149
 
150
+ CodexA auto-detects your available RAM and picks the best embedding model.
151
+ Or choose a model profile explicitly:
152
+
153
+ ```bash
154
+ codexa init --profile fast # mxbai-embed-xsmall — low RAM (<1 GB)
155
+ codexa init --profile balanced # MiniLM — good balance (~2 GB)
156
+ codexa init --profile precise # jina-code — best quality (~4 GB)
157
+ ```
158
+
143
159
  This creates a `.codexa/` directory with configuration, index storage, and session data.
144
160
 
145
161
  ### 3. Index the Codebase
@@ -284,7 +300,7 @@ cd CodexA
284
300
  pip install -e ".[dev]"
285
301
 
286
302
  # Verify
287
- codexa --version # → codexa, version 0.4.3
303
+ codexa --version # → codexa, version 0.5.0
288
304
  ```
289
305
 
290
306
  ### Step 2 — Initialize your target project
@@ -526,7 +542,7 @@ CodexA provides **39 commands** (plus subcommands) organized by capability:
526
542
  | `codexa plugin list\|scaffold\|discover` | Plugin management |
527
543
  | `codexa tui` | Interactive terminal REPL |
528
544
  | `codexa mcp` | Start MCP (Model Context Protocol) server |
529
- | `codexa models list\|info\|download\|switch` | Manage embedding models |
545
+ | `codexa models list\|info\|download\|switch\|profiles\|benchmark` | Manage and benchmark embedding models |
530
546
 
531
547
  ### VS Code Extension
532
548
 
@@ -583,8 +599,13 @@ Additional tools can be registered via the plugin system using the
583
599
  │ /tools/invoke · /tools/list · /request · SSE stream │
584
600
  ├──────────────┬──────────────┬───────────────────────┤
585
601
  │ Parsing │ Embedding │ Search │
586
- │ tree-sitter │ sent-trans │ FAISS
602
+ │ tree-sitter │ sent-trans │ FAISS / Rust HNSW
587
603
  ├──────────────┼──────────────┴───────────────────────┤
604
+ │ Rust Engine │ codexa-core (PyO3) │
605
+ │ (optional) │ HNSW · BM25 · AST chunk · mmap · RRF│
606
+ ├──────────────┼──────────────────────────────────────┤
607
+ │ RAG Pipeline │ Retrieve → Dedup → Re-rank → Assemble│
608
+ ├──────────────┼──────────────────────────────────────┤
588
609
  │ Evolution │ Self-improving dev loop │
589
610
  │ engine │ budget · task · patch · test · commit│
590
611
  ├──────────────┴──────────────────────────────────────┤
@@ -625,6 +646,9 @@ After `codexa init`, your project has `.codexa/config.json`:
625
646
  }
626
647
  ```
627
648
 
649
+ > **Tip:** Instead of editing `model_name` manually, use `codexa init --profile fast|balanced|precise`
650
+ > or run `codexa models profiles` to see recommended models for your hardware.
651
+
628
652
  ---
629
653
 
630
654
  ## Documentation
@@ -655,7 +679,7 @@ Browse the docs at **http://localhost:5173** after running `npm run docs:dev`.
655
679
  # Install dev dependencies
656
680
  pip install -e ".[dev]"
657
681
 
658
- # Run all 2595 tests
682
+ # Run all 2657 tests
659
683
  pytest
660
684
 
661
685
  # Run with coverage (gate: 70% minimum)
@@ -674,10 +698,11 @@ codexa --verbose search "query"
674
698
  ## Tech Stack
675
699
 
676
700
  - **Python 3.11+** — No heavy frameworks, stdlib-first design
701
+ - **Rust (codexa-core)** — Native search engine via PyO3 — HNSW (instant-distance), BM25, tree-sitter AST chunking, mmap persistence, parallel scanning (rayon)
677
702
  - **click** — CLI framework
678
703
  - **sentence-transformers** — Embedding generation (`all-MiniLM-L6-v2`)
679
- - **faiss-cpu** — Vector similarity search (O(1) file-level index, batch reconstruction)
680
- - **tree-sitter** — Multi-language code parsing
704
+ - **faiss-cpu** — Vector similarity search (with Rust HNSW acceleration)
705
+ - **tree-sitter** — Multi-language code parsing (Python + Rust)
681
706
  - **watchfiles** — Rust-backed native file watching (inotify/FSEvents/ReadDirectoryChanges)
682
707
  - **pydantic** — Configuration & data models
683
708
  - **rich** — Terminal UI and formatting
@@ -5,9 +5,11 @@
5
5
 
6
6
  <p align="center">
7
7
  <a href="https://github.com/M9nx/CodexA/actions"><img src="https://github.com/M9nx/CodexA/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
8
+ <a href="https://pypi.org/project/codexa/"><img src="https://img.shields.io/pypi/v/codexa?color=blue&label=PyPI" alt="PyPI"></a>
9
+ <a href="https://pepy.tech/project/codexa"><img src="https://img.shields.io/pepy/dt/codexa?color=blue&label=Downloads" alt="Downloads"></a>
8
10
  <img src="https://img.shields.io/badge/python-3.11%2B-blue" alt="Python 3.11+">
9
- <img src="https://img.shields.io/badge/version-0.4.3-green" alt="Version">
10
- <img src="https://img.shields.io/badge/tests-2595-brightgreen" alt="Tests">
11
+ <img src="https://img.shields.io/badge/version-0.5.0-green" alt="Version">
12
+ <img src="https://img.shields.io/badge/tests-2657-brightgreen" alt="Tests">
11
13
  <img src="https://img.shields.io/badge/coverage-79%25-brightgreen" alt="Coverage">
12
14
  <img src="https://img.shields.io/badge/mypy-strict-blue" alt="mypy strict">
13
15
  <img src="https://img.shields.io/badge/license-MIT-blue" alt="License">
@@ -24,17 +26,22 @@ structured tool protocol that any AI agent can call over HTTP or CLI.
24
26
 
25
27
  | Area | What you get |
26
28
  |------|-------------|
27
- | **Code Indexing** | Scan repos, extract functions/classes, generate vector embeddings (sentence-transformers + FAISS), ONNX runtime option, parallel indexing, `--watch` live re-indexing, `.codexaignore` support |
28
- | **Multi-Mode Search** | Semantic, keyword (BM25), regex, hybrid (RRF), and raw filesystem grep (ripgrep backend) with full `-A/-B/-C/-w/-v/-c` flags |
29
+ | **Code Indexing** | Scan repos, extract functions/classes, generate vector embeddings (sentence-transformers + FAISS), ONNX runtime option, parallel indexing, `--watch` live re-indexing, `.codexaignore` support, `--add`/`--inspect` per-file control, model-consistency guard, Ctrl+C partial-save |
30
+ | **Rust Search Engine** | Native `codexa-core` Rust crate via PyO3 — HNSW approximate nearest-neighbour search, BM25 keyword index, tree-sitter AST chunker (10 languages), memory-mapped vector persistence, parallel file scanner, optional ONNX embedding inference, optional Tantivy full-text search |
31
+ | **Multi-Mode Search** | Semantic, keyword (BM25), regex, hybrid (RRF), and raw filesystem grep (ripgrep backend) with full `-A/-B/-C/-w/-v/-c/-l/-L/--exclude/--no-ignore` flags, `--hybrid`/`--sem` shorthands, `--scores`, `--snippet-length`, `--no-snippet`, JSONL streaming |
32
+ | **RAG Pipeline** | 4-stage Retrieval-Augmented Generation — Retrieve → Deduplicate → Re-rank → Assemble with token budget, cross-encoder re-ranking, source citations |
29
33
  | **Code Context** | Rich context windows — imports, dependencies, AST-based call graphs, surrounding code |
30
34
  | **Repository Analysis** | Language breakdown (`codexa languages`), module summaries, component detection |
31
- | **AI Agent Protocol** | 13 built-in tools exposed via HTTP bridge, MCP server (13 tools), MCP-over-SSE (`--mcp`), or CLI for any AI agent to invoke |
35
+ | **AI Agent Protocol** | 13 built-in tools exposed via HTTP bridge, MCP server (13 tools with pagination/cursors), MCP-over-SSE (`--mcp`), `codexa --serve` shorthand, Claude Desktop auto-config (`--claude-config`), or CLI for any AI agent to invoke |
32
36
  | **Quality & Metrics** | Complexity analysis, maintainability scoring, quality gates for CI |
33
37
  | **Multi-Repo Workspaces** | Link multiple repos under one workspace for cross-repo search & refactoring |
34
38
  | **Interactive TUI** | Terminal REPL with mode switching for interactive exploration |
35
39
  | **Streaming Responses** | Token-by-token streaming for chat and investigation commands |
36
40
  | **Plugin System** | 22 hooks for extending every layer — from indexing to tool invocation |
37
41
  | **VS Code Extension** | 4-panel sidebar (Search, Symbols, Quality, Tools), 8 commands, CodeLens, context menus, status bar |
42
+ | **Editor Plugins** | Zed, JetBrains (IntelliJ/PyCharm), Neovim (telescope.nvim), Vim, Sublime Text, Emacs, Helix, Eclipse -- all sharing the same MCP/bridge protocol |
43
+ | **Cross-Language Intelligence** | FFI pattern detection, polyglot dependency graphs, language-aware search boosting, universal multi-language call graph |
44
+ | **Multi-Agent Sessions** | Concurrent AI agent sessions with shared discovery, semantic diff (rename/move/signature/body detection), RAG code generation |
38
45
 
39
46
  ---
40
47
 
@@ -80,6 +87,15 @@ cd /path/to/your-project
80
87
  codexa init
81
88
  ```
82
89
 
90
+ CodexA auto-detects your available RAM and picks the best embedding model.
91
+ Or choose a model profile explicitly:
92
+
93
+ ```bash
94
+ codexa init --profile fast # mxbai-embed-xsmall — low RAM (<1 GB)
95
+ codexa init --profile balanced # MiniLM — good balance (~2 GB)
96
+ codexa init --profile precise # jina-code — best quality (~4 GB)
97
+ ```
98
+
83
99
  This creates a `.codexa/` directory with configuration, index storage, and session data.
84
100
 
85
101
  ### 3. Index the Codebase
@@ -224,7 +240,7 @@ cd CodexA
224
240
  pip install -e ".[dev]"
225
241
 
226
242
  # Verify
227
- codexa --version # → codexa, version 0.4.3
243
+ codexa --version # → codexa, version 0.5.0
228
244
  ```
229
245
 
230
246
  ### Step 2 — Initialize your target project
@@ -466,7 +482,7 @@ CodexA provides **39 commands** (plus subcommands) organized by capability:
466
482
  | `codexa plugin list\|scaffold\|discover` | Plugin management |
467
483
  | `codexa tui` | Interactive terminal REPL |
468
484
  | `codexa mcp` | Start MCP (Model Context Protocol) server |
469
- | `codexa models list\|info\|download\|switch` | Manage embedding models |
485
+ | `codexa models list\|info\|download\|switch\|profiles\|benchmark` | Manage and benchmark embedding models |
470
486
 
471
487
  ### VS Code Extension
472
488
 
@@ -523,8 +539,13 @@ Additional tools can be registered via the plugin system using the
523
539
  │ /tools/invoke · /tools/list · /request · SSE stream │
524
540
  ├──────────────┬──────────────┬───────────────────────┤
525
541
  │ Parsing │ Embedding │ Search │
526
- │ tree-sitter │ sent-trans │ FAISS
542
+ │ tree-sitter │ sent-trans │ FAISS / Rust HNSW
527
543
  ├──────────────┼──────────────┴───────────────────────┤
544
+ │ Rust Engine │ codexa-core (PyO3) │
545
+ │ (optional) │ HNSW · BM25 · AST chunk · mmap · RRF│
546
+ ├──────────────┼──────────────────────────────────────┤
547
+ │ RAG Pipeline │ Retrieve → Dedup → Re-rank → Assemble│
548
+ ├──────────────┼──────────────────────────────────────┤
528
549
  │ Evolution │ Self-improving dev loop │
529
550
  │ engine │ budget · task · patch · test · commit│
530
551
  ├──────────────┴──────────────────────────────────────┤
@@ -565,6 +586,9 @@ After `codexa init`, your project has `.codexa/config.json`:
565
586
  }
566
587
  ```
567
588
 
589
+ > **Tip:** Instead of editing `model_name` manually, use `codexa init --profile fast|balanced|precise`
590
+ > or run `codexa models profiles` to see recommended models for your hardware.
591
+
568
592
  ---
569
593
 
570
594
  ## Documentation
@@ -595,7 +619,7 @@ Browse the docs at **http://localhost:5173** after running `npm run docs:dev`.
595
619
  # Install dev dependencies
596
620
  pip install -e ".[dev]"
597
621
 
598
- # Run all 2595 tests
622
+ # Run all 2657 tests
599
623
  pytest
600
624
 
601
625
  # Run with coverage (gate: 70% minimum)
@@ -614,10 +638,11 @@ codexa --verbose search "query"
614
638
  ## Tech Stack
615
639
 
616
640
  - **Python 3.11+** — No heavy frameworks, stdlib-first design
641
+ - **Rust (codexa-core)** — Native search engine via PyO3 — HNSW (instant-distance), BM25, tree-sitter AST chunking, mmap persistence, parallel scanning (rayon)
617
642
  - **click** — CLI framework
618
643
  - **sentence-transformers** — Embedding generation (`all-MiniLM-L6-v2`)
619
- - **faiss-cpu** — Vector similarity search (O(1) file-level index, batch reconstruction)
620
- - **tree-sitter** — Multi-language code parsing
644
+ - **faiss-cpu** — Vector similarity search (with Rust HNSW acceleration)
645
+ - **tree-sitter** — Multi-language code parsing (Python + Rust)
621
646
  - **watchfiles** — Rust-backed native file watching (inotify/FSEvents/ReadDirectoryChanges)
622
647
  - **pydantic** — Configuration & data models
623
648
  - **rich** — Terminal UI and formatting
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codexa
3
- Version: 0.4.3
3
+ Version: 0.5.0
4
4
  Summary: Developer intelligence CLI — semantic code search, AI-assisted understanding, and agent tooling for codebases
5
5
  License: MIT
6
6
  Project-URL: Homepage, https://codex-a.dev
@@ -65,9 +65,11 @@ Dynamic: license-file
65
65
 
66
66
  <p align="center">
67
67
  <a href="https://github.com/M9nx/CodexA/actions"><img src="https://github.com/M9nx/CodexA/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
68
+ <a href="https://pypi.org/project/codexa/"><img src="https://img.shields.io/pypi/v/codexa?color=blue&label=PyPI" alt="PyPI"></a>
69
+ <a href="https://pepy.tech/project/codexa"><img src="https://img.shields.io/pepy/dt/codexa?color=blue&label=Downloads" alt="Downloads"></a>
68
70
  <img src="https://img.shields.io/badge/python-3.11%2B-blue" alt="Python 3.11+">
69
- <img src="https://img.shields.io/badge/version-0.4.3-green" alt="Version">
70
- <img src="https://img.shields.io/badge/tests-2595-brightgreen" alt="Tests">
71
+ <img src="https://img.shields.io/badge/version-0.5.0-green" alt="Version">
72
+ <img src="https://img.shields.io/badge/tests-2657-brightgreen" alt="Tests">
71
73
  <img src="https://img.shields.io/badge/coverage-79%25-brightgreen" alt="Coverage">
72
74
  <img src="https://img.shields.io/badge/mypy-strict-blue" alt="mypy strict">
73
75
  <img src="https://img.shields.io/badge/license-MIT-blue" alt="License">
@@ -84,17 +86,22 @@ structured tool protocol that any AI agent can call over HTTP or CLI.
84
86
 
85
87
  | Area | What you get |
86
88
  |------|-------------|
87
- | **Code Indexing** | Scan repos, extract functions/classes, generate vector embeddings (sentence-transformers + FAISS), ONNX runtime option, parallel indexing, `--watch` live re-indexing, `.codexaignore` support |
88
- | **Multi-Mode Search** | Semantic, keyword (BM25), regex, hybrid (RRF), and raw filesystem grep (ripgrep backend) with full `-A/-B/-C/-w/-v/-c` flags |
89
+ | **Code Indexing** | Scan repos, extract functions/classes, generate vector embeddings (sentence-transformers + FAISS), ONNX runtime option, parallel indexing, `--watch` live re-indexing, `.codexaignore` support, `--add`/`--inspect` per-file control, model-consistency guard, Ctrl+C partial-save |
90
+ | **Rust Search Engine** | Native `codexa-core` Rust crate via PyO3 — HNSW approximate nearest-neighbour search, BM25 keyword index, tree-sitter AST chunker (10 languages), memory-mapped vector persistence, parallel file scanner, optional ONNX embedding inference, optional Tantivy full-text search |
91
+ | **Multi-Mode Search** | Semantic, keyword (BM25), regex, hybrid (RRF), and raw filesystem grep (ripgrep backend) with full `-A/-B/-C/-w/-v/-c/-l/-L/--exclude/--no-ignore` flags, `--hybrid`/`--sem` shorthands, `--scores`, `--snippet-length`, `--no-snippet`, JSONL streaming |
92
+ | **RAG Pipeline** | 4-stage Retrieval-Augmented Generation — Retrieve → Deduplicate → Re-rank → Assemble with token budget, cross-encoder re-ranking, source citations |
89
93
  | **Code Context** | Rich context windows — imports, dependencies, AST-based call graphs, surrounding code |
90
94
  | **Repository Analysis** | Language breakdown (`codexa languages`), module summaries, component detection |
91
- | **AI Agent Protocol** | 13 built-in tools exposed via HTTP bridge, MCP server (13 tools), MCP-over-SSE (`--mcp`), or CLI for any AI agent to invoke |
95
+ | **AI Agent Protocol** | 13 built-in tools exposed via HTTP bridge, MCP server (13 tools with pagination/cursors), MCP-over-SSE (`--mcp`), `codexa --serve` shorthand, Claude Desktop auto-config (`--claude-config`), or CLI for any AI agent to invoke |
92
96
  | **Quality & Metrics** | Complexity analysis, maintainability scoring, quality gates for CI |
93
97
  | **Multi-Repo Workspaces** | Link multiple repos under one workspace for cross-repo search & refactoring |
94
98
  | **Interactive TUI** | Terminal REPL with mode switching for interactive exploration |
95
99
  | **Streaming Responses** | Token-by-token streaming for chat and investigation commands |
96
100
  | **Plugin System** | 22 hooks for extending every layer — from indexing to tool invocation |
97
101
  | **VS Code Extension** | 4-panel sidebar (Search, Symbols, Quality, Tools), 8 commands, CodeLens, context menus, status bar |
102
+ | **Editor Plugins** | Zed, JetBrains (IntelliJ/PyCharm), Neovim (telescope.nvim), Vim, Sublime Text, Emacs, Helix, Eclipse -- all sharing the same MCP/bridge protocol |
103
+ | **Cross-Language Intelligence** | FFI pattern detection, polyglot dependency graphs, language-aware search boosting, universal multi-language call graph |
104
+ | **Multi-Agent Sessions** | Concurrent AI agent sessions with shared discovery, semantic diff (rename/move/signature/body detection), RAG code generation |
98
105
 
99
106
  ---
100
107
 
@@ -140,6 +147,15 @@ cd /path/to/your-project
140
147
  codexa init
141
148
  ```
142
149
 
150
+ CodexA auto-detects your available RAM and picks the best embedding model.
151
+ Or choose a model profile explicitly:
152
+
153
+ ```bash
154
+ codexa init --profile fast # mxbai-embed-xsmall — low RAM (<1 GB)
155
+ codexa init --profile balanced # MiniLM — good balance (~2 GB)
156
+ codexa init --profile precise # jina-code — best quality (~4 GB)
157
+ ```
158
+
143
159
  This creates a `.codexa/` directory with configuration, index storage, and session data.
144
160
 
145
161
  ### 3. Index the Codebase
@@ -284,7 +300,7 @@ cd CodexA
284
300
  pip install -e ".[dev]"
285
301
 
286
302
  # Verify
287
- codexa --version # → codexa, version 0.4.3
303
+ codexa --version # → codexa, version 0.5.0
288
304
  ```
289
305
 
290
306
  ### Step 2 — Initialize your target project
@@ -526,7 +542,7 @@ CodexA provides **39 commands** (plus subcommands) organized by capability:
526
542
  | `codexa plugin list\|scaffold\|discover` | Plugin management |
527
543
  | `codexa tui` | Interactive terminal REPL |
528
544
  | `codexa mcp` | Start MCP (Model Context Protocol) server |
529
- | `codexa models list\|info\|download\|switch` | Manage embedding models |
545
+ | `codexa models list\|info\|download\|switch\|profiles\|benchmark` | Manage and benchmark embedding models |
530
546
 
531
547
  ### VS Code Extension
532
548
 
@@ -583,8 +599,13 @@ Additional tools can be registered via the plugin system using the
583
599
  │ /tools/invoke · /tools/list · /request · SSE stream │
584
600
  ├──────────────┬──────────────┬───────────────────────┤
585
601
  │ Parsing │ Embedding │ Search │
586
- │ tree-sitter │ sent-trans │ FAISS
602
+ │ tree-sitter │ sent-trans │ FAISS / Rust HNSW
587
603
  ├──────────────┼──────────────┴───────────────────────┤
604
+ │ Rust Engine │ codexa-core (PyO3) │
605
+ │ (optional) │ HNSW · BM25 · AST chunk · mmap · RRF│
606
+ ├──────────────┼──────────────────────────────────────┤
607
+ │ RAG Pipeline │ Retrieve → Dedup → Re-rank → Assemble│
608
+ ├──────────────┼──────────────────────────────────────┤
588
609
  │ Evolution │ Self-improving dev loop │
589
610
  │ engine │ budget · task · patch · test · commit│
590
611
  ├──────────────┴──────────────────────────────────────┤
@@ -625,6 +646,9 @@ After `codexa init`, your project has `.codexa/config.json`:
625
646
  }
626
647
  ```
627
648
 
649
+ > **Tip:** Instead of editing `model_name` manually, use `codexa init --profile fast|balanced|precise`
650
+ > or run `codexa models profiles` to see recommended models for your hardware.
651
+
628
652
  ---
629
653
 
630
654
  ## Documentation
@@ -655,7 +679,7 @@ Browse the docs at **http://localhost:5173** after running `npm run docs:dev`.
655
679
  # Install dev dependencies
656
680
  pip install -e ".[dev]"
657
681
 
658
- # Run all 2595 tests
682
+ # Run all 2657 tests
659
683
  pytest
660
684
 
661
685
  # Run with coverage (gate: 70% minimum)
@@ -674,10 +698,11 @@ codexa --verbose search "query"
674
698
  ## Tech Stack
675
699
 
676
700
  - **Python 3.11+** — No heavy frameworks, stdlib-first design
701
+ - **Rust (codexa-core)** — Native search engine via PyO3 — HNSW (instant-distance), BM25, tree-sitter AST chunking, mmap persistence, parallel scanning (rayon)
677
702
  - **click** — CLI framework
678
703
  - **sentence-transformers** — Embedding generation (`all-MiniLM-L6-v2`)
679
- - **faiss-cpu** — Vector similarity search (O(1) file-level index, batch reconstruction)
680
- - **tree-sitter** — Multi-language code parsing
704
+ - **faiss-cpu** — Vector similarity search (with Rust HNSW acceleration)
705
+ - **tree-sitter** — Multi-language code parsing (Python + Rust)
681
706
  - **watchfiles** — Rust-backed native file watching (inotify/FSEvents/ReadDirectoryChanges)
682
707
  - **pydantic** — Configuration & data models
683
708
  - **rich** — Terminal UI and formatting
@@ -8,9 +8,13 @@ codexa.egg-info/entry_points.txt
8
8
  codexa.egg-info/requires.txt
9
9
  codexa.egg-info/top_level.txt
10
10
  semantic_code_intelligence/__init__.py
11
+ semantic_code_intelligence/rust_backend.py
11
12
  semantic_code_intelligence/version.py
12
13
  semantic_code_intelligence/analysis/__init__.py
13
14
  semantic_code_intelligence/analysis/ai_features.py
15
+ semantic_code_intelligence/analysis/codegen.py
16
+ semantic_code_intelligence/analysis/cross_language.py
17
+ semantic_code_intelligence/analysis/semantic_diff.py
14
18
  semantic_code_intelligence/bridge/__init__.py
15
19
  semantic_code_intelligence/bridge/context_provider.py
16
20
  semantic_code_intelligence/bridge/protocol.py
@@ -103,12 +107,14 @@ semantic_code_intelligence/llm/mock_provider.py
103
107
  semantic_code_intelligence/llm/ollama_provider.py
104
108
  semantic_code_intelligence/llm/openai_provider.py
105
109
  semantic_code_intelligence/llm/provider.py
110
+ semantic_code_intelligence/llm/rag.py
106
111
  semantic_code_intelligence/llm/rate_limiter.py
107
112
  semantic_code_intelligence/llm/reasoning.py
108
113
  semantic_code_intelligence/llm/safety.py
109
114
  semantic_code_intelligence/llm/streaming.py
110
115
  semantic_code_intelligence/lsp/__init__.py
111
116
  semantic_code_intelligence/mcp/__init__.py
117
+ semantic_code_intelligence/mcp/claude_config.py
112
118
  semantic_code_intelligence/parsing/__init__.py
113
119
  semantic_code_intelligence/parsing/parser.py
114
120
  semantic_code_intelligence/plugins/__init__.py
@@ -125,6 +131,7 @@ semantic_code_intelligence/search/section_expander.py
125
131
  semantic_code_intelligence/services/__init__.py
126
132
  semantic_code_intelligence/services/indexing_service.py
127
133
  semantic_code_intelligence/services/search_service.py
134
+ semantic_code_intelligence/sessions/__init__.py
128
135
  semantic_code_intelligence/storage/__init__.py
129
136
  semantic_code_intelligence/storage/chunk_hash_store.py
130
137
  semantic_code_intelligence/storage/hash_store.py
@@ -166,6 +173,7 @@ semantic_code_intelligence/tests/test_phase24.py
166
173
  semantic_code_intelligence/tests/test_phase25.py
167
174
  semantic_code_intelligence/tests/test_phase26.py
168
175
  semantic_code_intelligence/tests/test_phase27.py
176
+ semantic_code_intelligence/tests/test_phase38_42.py
169
177
  semantic_code_intelligence/tests/test_phase8.py
170
178
  semantic_code_intelligence/tests/test_phase9.py
171
179
  semantic_code_intelligence/tests/test_plugins.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "codexa"
7
- version = "0.4.3"
7
+ version = "0.5.0"
8
8
  description = "Developer intelligence CLI — semantic code search, AI-assisted understanding, and agent tooling for codebases"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -7,7 +7,7 @@ for feeding into LLMs or other AI systems.
7
7
  from __future__ import annotations
8
8
 
9
9
  import json
10
- from dataclasses import dataclass, field
10
+ from dataclasses import asdict, dataclass, field
11
11
  from pathlib import Path
12
12
  from typing import Any
13
13
 
@@ -40,15 +40,7 @@ class LanguageStats:
40
40
 
41
41
  def to_dict(self) -> dict[str, Any]:
42
42
  """Serialize the language statistics to a plain dictionary."""
43
- return {
44
- "language": self.language,
45
- "file_count": self.file_count,
46
- "function_count": self.function_count,
47
- "class_count": self.class_count,
48
- "method_count": self.method_count,
49
- "import_count": self.import_count,
50
- "total_lines": self.total_lines,
51
- }
43
+ return asdict(self)
52
44
 
53
45
 
54
46
  @dataclass
@@ -251,13 +243,7 @@ class CodeExplanation:
251
243
 
252
244
  def to_dict(self) -> dict[str, Any]:
253
245
  """Serialize the code explanation to a plain dictionary."""
254
- return {
255
- "symbol_name": self.symbol_name,
256
- "symbol_kind": self.symbol_kind,
257
- "file_path": self.file_path,
258
- "summary": self.summary,
259
- "details": self.details,
260
- }
246
+ return asdict(self)
261
247
 
262
248
  def render(self) -> str:
263
249
  """Render the explanation as a Markdown-style string."""
@@ -0,0 +1,143 @@
1
+ """Code generation — RAG-grounded scaffolding using codebase context.
2
+
3
+ Generates code scaffolds, tests, and documentation grounded in the
4
+ actual codebase via retrieval-augmented generation.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ from dataclasses import dataclass, field
10
+ from typing import Any
11
+
12
+ from semantic_code_intelligence.utils.logging import get_logger
13
+
14
+ logger = get_logger("codegen")
15
+
16
+
17
+ @dataclass
18
+ class CodeGenRequest:
19
+ """A request for code generation."""
20
+
21
+ prompt: str
22
+ kind: str = "scaffold" # scaffold, test, docstring, refactor
23
+ target_file: str | None = None
24
+ target_symbol: str | None = None
25
+ language: str | None = None
26
+ max_context_chunks: int = 5
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ return {
30
+ "prompt": self.prompt,
31
+ "kind": self.kind,
32
+ "target_file": self.target_file,
33
+ "target_symbol": self.target_symbol,
34
+ "language": self.language,
35
+ "max_context_chunks": self.max_context_chunks,
36
+ }
37
+
38
+
39
+ @dataclass
40
+ class CodeGenResult:
41
+ """Result of a code generation request."""
42
+
43
+ generated_code: str = ""
44
+ context_used: list[dict[str, Any]] = field(default_factory=list)
45
+ model_used: str = ""
46
+ prompt_tokens: int = 0
47
+ success: bool = True
48
+ error: str = ""
49
+
50
+ def to_dict(self) -> dict[str, Any]:
51
+ return {
52
+ "generated_code": self.generated_code,
53
+ "context_used": self.context_used,
54
+ "model_used": self.model_used,
55
+ "prompt_tokens": self.prompt_tokens,
56
+ "success": self.success,
57
+ "error": self.error,
58
+ }
59
+
60
+
61
+ class CodeGenerator:
62
+ """RAG-grounded code generator.
63
+
64
+ Retrieves relevant context from the indexed codebase, assembles a
65
+ prompt, and sends it to the configured LLM provider.
66
+ """
67
+
68
+ def __init__(self, project_root: str) -> None:
69
+ from pathlib import Path
70
+ self._project_root = Path(project_root).resolve()
71
+
72
+ def generate(self, request: CodeGenRequest) -> CodeGenResult:
73
+ """Generate code using RAG context + LLM."""
74
+ from pathlib import Path
75
+
76
+ from semantic_code_intelligence.config.settings import load_config
77
+ from semantic_code_intelligence.services.search_service import search_codebase
78
+
79
+ config = load_config(self._project_root)
80
+ result = CodeGenResult()
81
+
82
+ # Step 1: Retrieve relevant context
83
+ try:
84
+ search_results = search_codebase(
85
+ query=request.prompt,
86
+ project_root=self._project_root,
87
+ top_k=request.max_context_chunks,
88
+ mode="hybrid",
89
+ )
90
+ context_chunks = []
91
+ for sr in search_results:
92
+ context_chunks.append({
93
+ "file_path": sr.file_path,
94
+ "start_line": sr.start_line,
95
+ "content": sr.content[:500],
96
+ "score": round(sr.score, 3),
97
+ })
98
+ result.context_used = context_chunks
99
+ except Exception as exc:
100
+ logger.warning("Context retrieval failed: %s", exc)
101
+ context_chunks = []
102
+
103
+ # Step 2: Build the prompt
104
+ context_text = ""
105
+ for chunk in context_chunks:
106
+ context_text += f"\n--- {chunk['file_path']}:{chunk['start_line']} ---\n"
107
+ context_text += chunk["content"] + "\n"
108
+
109
+ system_prompt = (
110
+ "You are a code generator. Generate code based on the user's request, "
111
+ "grounded in the provided codebase context. Follow the existing code style "
112
+ "and patterns. Only output the code, no explanations."
113
+ )
114
+
115
+ user_prompt = f"Request: {request.prompt}\n"
116
+ if request.kind:
117
+ user_prompt += f"Type: {request.kind}\n"
118
+ if request.target_file:
119
+ user_prompt += f"Target file: {request.target_file}\n"
120
+ if request.language:
121
+ user_prompt += f"Language: {request.language}\n"
122
+ if context_text:
123
+ user_prompt += f"\nRelevant codebase context:\n{context_text}"
124
+
125
+ # Step 3: Send to LLM
126
+ try:
127
+ from semantic_code_intelligence.llm.providers import get_provider
128
+
129
+ provider = get_provider(config.llm)
130
+ response = provider.complete(
131
+ system_prompt=system_prompt,
132
+ user_prompt=user_prompt,
133
+ max_tokens=config.llm.max_tokens,
134
+ )
135
+ result.generated_code = response.content
136
+ result.model_used = config.llm.model
137
+ result.prompt_tokens = response.prompt_tokens
138
+ except Exception as exc:
139
+ result.success = False
140
+ result.error = str(exc)
141
+ logger.error("Code generation failed: %s", exc)
142
+
143
+ return result