kodit 0.4.3__tar.gz → 0.5.1__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 kodit might be problematic. Click here for more details.

Files changed (403) hide show
  1. kodit-0.5.1/.claude/settings.json +25 -0
  2. {kodit-0.4.3 → kodit-0.5.1}/.github/workflows/docker.yaml +1 -4
  3. {kodit-0.4.3 → kodit-0.5.1}/.github/workflows/test.yaml +6 -3
  4. {kodit-0.4.3 → kodit-0.5.1}/CLAUDE.md +48 -33
  5. {kodit-0.4.3 → kodit-0.5.1}/Dockerfile +1 -0
  6. {kodit-0.4.3 → kodit-0.5.1}/Makefile +14 -4
  7. {kodit-0.4.3 → kodit-0.5.1}/PKG-INFO +3 -3
  8. {kodit-0.4.3 → kodit-0.5.1}/docs/_index.md +12 -19
  9. {kodit-0.4.3 → kodit-0.5.1}/docs/getting-started/installation/index.md +14 -9
  10. kodit-0.5.1/docs/getting-started/quick-start/index.md +67 -0
  11. kodit-0.5.1/docs/reference/api/index.md +1164 -0
  12. kodit-0.5.1/docs/reference/api/openapi.json +2496 -0
  13. kodit-0.5.1/docs/reference/configuration/index.md +82 -0
  14. kodit-0.5.1/docs/reference/configuration/templates/template.j2 +53 -0
  15. {kodit-0.4.3 → kodit-0.5.1}/docs/reference/deployment/docker-compose.yaml +22 -9
  16. {kodit-0.4.3 → kodit-0.5.1}/docs/reference/deployment/kubernetes.yaml +1 -18
  17. {kodit-0.4.3 → kodit-0.5.1}/docs/reference/hosted-kodit/index.md +1 -1
  18. kodit-0.5.1/docs/reference/indexing/index.md +83 -0
  19. {kodit-0.4.3 → kodit-0.5.1}/docs/reference/sync/index.md +0 -9
  20. kodit-0.5.1/docs/reference/troubleshooting/index.md +5 -0
  21. {kodit-0.4.3 → kodit-0.5.1}/pyproject.toml +14 -2
  22. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/_version.py +2 -2
  23. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/app.py +51 -23
  24. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/application/factories/reporting_factory.py +6 -2
  25. kodit-0.5.1/src/kodit/application/factories/server_factory.py +353 -0
  26. kodit-0.5.1/src/kodit/application/services/code_search_application_service.py +144 -0
  27. kodit-0.5.1/src/kodit/application/services/commit_indexing_application_service.py +700 -0
  28. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/application/services/indexing_worker_service.py +13 -44
  29. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/application/services/queue_service.py +24 -3
  30. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/application/services/reporting.py +0 -2
  31. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/application/services/sync_scheduler.py +15 -31
  32. kodit-0.5.1/src/kodit/cli.py +107 -0
  33. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/cli_utils.py +2 -9
  34. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/config.py +4 -97
  35. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/database.py +38 -1
  36. kodit-0.5.1/src/kodit/domain/enrichments/__init__.py +1 -0
  37. kodit-0.5.1/src/kodit/domain/enrichments/architecture/__init__.py +1 -0
  38. kodit-0.5.1/src/kodit/domain/enrichments/architecture/architecture.py +20 -0
  39. kodit-0.5.1/src/kodit/domain/enrichments/architecture/physical/__init__.py +1 -0
  40. kodit-0.5.1/src/kodit/domain/enrichments/architecture/physical/discovery_notes.py +14 -0
  41. kodit-0.5.1/src/kodit/domain/enrichments/architecture/physical/formatter.py +11 -0
  42. kodit-0.5.1/src/kodit/domain/enrichments/architecture/physical/physical.py +17 -0
  43. kodit-0.5.1/src/kodit/domain/enrichments/development/__init__.py +1 -0
  44. kodit-0.5.1/src/kodit/domain/enrichments/development/development.py +18 -0
  45. kodit-0.5.1/src/kodit/domain/enrichments/development/snippet/__init__.py +1 -0
  46. kodit-0.5.1/src/kodit/domain/enrichments/development/snippet/snippet.py +21 -0
  47. kodit-0.5.1/src/kodit/domain/enrichments/enricher.py +17 -0
  48. kodit-0.5.1/src/kodit/domain/enrichments/enrichment.py +39 -0
  49. kodit-0.5.1/src/kodit/domain/enrichments/request.py +12 -0
  50. kodit-0.5.1/src/kodit/domain/enrichments/response.py +11 -0
  51. kodit-0.5.1/src/kodit/domain/enrichments/usage/__init__.py +1 -0
  52. kodit-0.5.1/src/kodit/domain/enrichments/usage/api_docs.py +19 -0
  53. kodit-0.5.1/src/kodit/domain/enrichments/usage/usage.py +18 -0
  54. kodit-0.4.3/src/kodit/domain/entities.py → kodit-0.5.1/src/kodit/domain/entities/__init__.py +50 -195
  55. kodit-0.5.1/src/kodit/domain/entities/git.py +190 -0
  56. kodit-0.5.1/src/kodit/domain/factories/__init__.py +1 -0
  57. kodit-0.5.1/src/kodit/domain/factories/git_repo_factory.py +76 -0
  58. kodit-0.5.1/src/kodit/domain/protocols.py +325 -0
  59. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/domain/services/bm25_service.py +5 -1
  60. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/domain/services/embedding_service.py +3 -0
  61. kodit-0.5.1/src/kodit/domain/services/enrichment_service.py +27 -0
  62. kodit-0.5.1/src/kodit/domain/services/git_repository_service.py +429 -0
  63. kodit-0.5.1/src/kodit/domain/services/git_service.py +300 -0
  64. kodit-0.5.1/src/kodit/domain/services/physical_architecture_service.py +182 -0
  65. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/domain/services/task_status_query_service.py +2 -2
  66. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/domain/value_objects.py +87 -135
  67. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/api/client/__init__.py +0 -2
  68. kodit-0.5.1/src/kodit/infrastructure/api/v1/__init__.py +1 -0
  69. kodit-0.5.1/src/kodit/infrastructure/api/v1/dependencies.py +157 -0
  70. kodit-0.5.1/src/kodit/infrastructure/api/v1/routers/__init__.py +1 -0
  71. kodit-0.5.1/src/kodit/infrastructure/api/v1/routers/commits.py +352 -0
  72. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/routers/queue.py +2 -2
  73. kodit-0.5.1/src/kodit/infrastructure/api/v1/routers/repositories.py +282 -0
  74. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/routers/search.py +31 -14
  75. kodit-0.5.1/src/kodit/infrastructure/api/v1/schemas/__init__.py +1 -0
  76. kodit-0.5.1/src/kodit/infrastructure/api/v1/schemas/commit.py +96 -0
  77. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/schemas/context.py +2 -0
  78. kodit-0.5.1/src/kodit/infrastructure/api/v1/schemas/enrichment.py +29 -0
  79. kodit-0.5.1/src/kodit/infrastructure/api/v1/schemas/repository.py +128 -0
  80. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/schemas/search.py +12 -9
  81. kodit-0.5.1/src/kodit/infrastructure/api/v1/schemas/snippet.py +58 -0
  82. kodit-0.5.1/src/kodit/infrastructure/api/v1/schemas/tag.py +31 -0
  83. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/schemas/task_status.py +2 -0
  84. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/bm25/local_bm25_repository.py +16 -4
  85. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/bm25/vectorchord_bm25_repository.py +68 -52
  86. kodit-0.5.1/src/kodit/infrastructure/cloning/git/git_python_adaptor.py +534 -0
  87. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/embedding/embedding_factory.py +3 -2
  88. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/embedding/local_vector_search_repository.py +1 -1
  89. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/embedding/vectorchord_vector_search_repository.py +111 -84
  90. kodit-0.5.1/src/kodit/infrastructure/enricher/__init__.py +1 -0
  91. kodit-0.5.1/src/kodit/infrastructure/enricher/enricher_factory.py +53 -0
  92. kodit-0.4.3/src/kodit/infrastructure/enrichment/litellm_enrichment_provider.py → kodit-0.5.1/src/kodit/infrastructure/enricher/litellm_enricher.py +36 -56
  93. kodit-0.4.3/src/kodit/infrastructure/enrichment/local_enrichment_provider.py → kodit-0.5.1/src/kodit/infrastructure/enricher/local_enricher.py +19 -24
  94. kodit-0.5.1/src/kodit/infrastructure/enricher/null_enricher.py +36 -0
  95. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/indexing/fusion_service.py +1 -1
  96. kodit-0.5.1/src/kodit/infrastructure/mappers/enrichment_mapper.py +83 -0
  97. kodit-0.5.1/src/kodit/infrastructure/mappers/git_mapper.py +193 -0
  98. kodit-0.5.1/src/kodit/infrastructure/mappers/snippet_mapper.py +104 -0
  99. kodit-0.5.1/src/kodit/infrastructure/mappers/task_mapper.py +42 -0
  100. kodit-0.5.1/src/kodit/infrastructure/physical_architecture/__init__.py +1 -0
  101. kodit-0.5.1/src/kodit/infrastructure/physical_architecture/detectors/__init__.py +1 -0
  102. kodit-0.5.1/src/kodit/infrastructure/physical_architecture/detectors/docker_compose_detector.py +336 -0
  103. kodit-0.5.1/src/kodit/infrastructure/physical_architecture/formatters/__init__.py +1 -0
  104. kodit-0.5.1/src/kodit/infrastructure/physical_architecture/formatters/narrative_formatter.py +149 -0
  105. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/reporting/log_progress.py +8 -5
  106. kodit-0.5.1/src/kodit/infrastructure/reporting/telemetry_progress.py +21 -0
  107. kodit-0.5.1/src/kodit/infrastructure/slicing/api_doc_extractor.py +836 -0
  108. kodit-0.5.1/src/kodit/infrastructure/slicing/ast_analyzer.py +1128 -0
  109. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/slicing/slicer.py +87 -421
  110. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/sqlalchemy/embedding_repository.py +43 -23
  111. kodit-0.5.1/src/kodit/infrastructure/sqlalchemy/enrichment_v2_repository.py +118 -0
  112. kodit-0.5.1/src/kodit/infrastructure/sqlalchemy/entities.py +569 -0
  113. kodit-0.5.1/src/kodit/infrastructure/sqlalchemy/git_branch_repository.py +274 -0
  114. kodit-0.5.1/src/kodit/infrastructure/sqlalchemy/git_commit_repository.py +346 -0
  115. kodit-0.5.1/src/kodit/infrastructure/sqlalchemy/git_repository.py +262 -0
  116. kodit-0.5.1/src/kodit/infrastructure/sqlalchemy/git_tag_repository.py +268 -0
  117. kodit-0.5.1/src/kodit/infrastructure/sqlalchemy/snippet_v2_repository.py +479 -0
  118. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/sqlalchemy/task_repository.py +29 -23
  119. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/sqlalchemy/task_status_repository.py +24 -12
  120. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/sqlalchemy/unit_of_work.py +10 -14
  121. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/mcp.py +12 -30
  122. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/migrations/env.py +1 -0
  123. kodit-0.5.1/src/kodit/migrations/versions/04b80f802e0c_foreign_key_review.py +100 -0
  124. kodit-0.5.1/src/kodit/migrations/versions/19f8c7faf8b9_add_generic_enrichment_type.py +260 -0
  125. kodit-0.5.1/src/kodit/migrations/versions/7f15f878c3a1_add_new_git_entities.py +690 -0
  126. kodit-0.5.1/src/kodit/migrations/versions/f9e5ef5e688f_add_git_commits_number.py +43 -0
  127. kodit-0.5.1/src/kodit/py.typed +0 -0
  128. kodit-0.5.1/src/kodit/utils/dump_config.py +361 -0
  129. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/utils/dump_openapi.py +6 -4
  130. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/utils/path_utils.py +29 -0
  131. {kodit-0.4.3 → kodit-0.5.1}/tests/conftest.py +50 -0
  132. {kodit-0.4.3 → kodit-0.5.1}/tests/docker-smoke.sh +1 -1
  133. kodit-0.5.1/tests/kodit/application/services/commit_indexing_application_service_test.py +237 -0
  134. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/application/services/queue_service_get_task_test.py +10 -9
  135. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/application/services/queue_service_test.py +39 -24
  136. kodit-0.5.1/tests/kodit/cli_test.py +223 -0
  137. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/domain/bm25_service_test.py +12 -12
  138. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/domain/embedding_service_test.py +16 -16
  139. kodit-0.5.1/tests/kodit/domain/enrichment_service_test.py +120 -0
  140. kodit-0.5.1/tests/kodit/domain/services/git_repository_service_test.py +389 -0
  141. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/bm25/local_bm25_repository_test.py +20 -20
  142. kodit-0.5.1/tests/kodit/infrastructure/cloning/__init__.py +1 -0
  143. kodit-0.5.1/tests/kodit/infrastructure/cloning/git/__init__.py +1 -0
  144. kodit-0.5.1/tests/kodit/infrastructure/cloning/git/git_python_adaptor_test.py +550 -0
  145. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/embedding/batching_test.py +5 -3
  146. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/embedding/embedding_factory_test.py +0 -3
  147. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/embedding/embedding_provider/hash_embedding_provider_test.py +17 -17
  148. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/embedding/embedding_provider/litellm_embedding_provider_test.py +26 -22
  149. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/embedding/embedding_provider/local_embedding_provider_test.py +15 -15
  150. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/embedding/test_litellm_socket_providers.py +15 -16
  151. kodit-0.5.1/tests/kodit/infrastructure/enricher/__init__.py +1 -0
  152. kodit-0.5.1/tests/kodit/infrastructure/enricher/null_enricher_test.py +32 -0
  153. kodit-0.5.1/tests/kodit/infrastructure/mappers/git_mapper_test.py +298 -0
  154. kodit-0.5.1/tests/kodit/infrastructure/physical_architecture/__init__.py +1 -0
  155. kodit-0.5.1/tests/kodit/infrastructure/physical_architecture/detectors/__init__.py +1 -0
  156. kodit-0.5.1/tests/kodit/infrastructure/physical_architecture/detectors/docker_compose_detector_test.py +91 -0
  157. kodit-0.5.1/tests/kodit/infrastructure/physical_architecture/end_to_end_test.py +99 -0
  158. kodit-0.5.1/tests/kodit/infrastructure/physical_architecture/fixtures/simple_web_app/docker-compose.yml +39 -0
  159. kodit-0.5.1/tests/kodit/infrastructure/physical_architecture/formatters/__init__.py +1 -0
  160. kodit-0.5.1/tests/kodit/infrastructure/physical_architecture/formatters/narrative_formatter_test.py +44 -0
  161. kodit-0.5.1/tests/kodit/infrastructure/slicing/api_doc_extractor_test.py +151 -0
  162. kodit-0.5.1/tests/kodit/infrastructure/slicing/ast_analyzer_test.py +115 -0
  163. kodit-0.5.1/tests/kodit/infrastructure/slicing/data/go/api/pkg/controller/filestore.go +24 -0
  164. kodit-0.5.1/tests/kodit/infrastructure/slicing/data/go/api/pkg/controller/filestore_test.go +10 -0
  165. kodit-0.5.1/tests/kodit/infrastructure/slicing/data/python/submodule/__init__.py +1 -0
  166. kodit-0.5.1/tests/kodit/infrastructure/slicing/data/python/submodule/main.py +5 -0
  167. kodit-0.5.1/tests/kodit/infrastructure/slicing/slicer_test.py +53 -0
  168. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/sqlalchemy/embedding_repository_test.py +171 -115
  169. kodit-0.5.1/tests/kodit/infrastructure/sqlalchemy/enrichment_v2_repository_test.py +232 -0
  170. kodit-0.5.1/tests/kodit/infrastructure/sqlalchemy/git_branch_repository_test.py +210 -0
  171. kodit-0.5.1/tests/kodit/infrastructure/sqlalchemy/git_commit_repository_test.py +540 -0
  172. kodit-0.5.1/tests/kodit/infrastructure/sqlalchemy/git_repository_test.py +132 -0
  173. kodit-0.5.1/tests/kodit/infrastructure/sqlalchemy/git_tag_repository_test.py +206 -0
  174. kodit-0.5.1/tests/kodit/infrastructure/sqlalchemy/snippet_v2_repository_test.py +485 -0
  175. kodit-0.5.1/tests/smoke.py +205 -0
  176. {kodit-0.4.3 → kodit-0.5.1}/tests/utils/path_utils_test.py +3 -3
  177. {kodit-0.4.3 → kodit-0.5.1}/tests/vectorchord-smoke.sh +2 -2
  178. kodit-0.5.1/understanding_architecture.md +398 -0
  179. {kodit-0.4.3 → kodit-0.5.1}/uv.lock +92 -201
  180. kodit-0.4.3/.claude/settings.json +0 -3
  181. kodit-0.4.3/docs/getting-started/quick-start/index.md +0 -56
  182. kodit-0.4.3/docs/reference/api/index.md +0 -539
  183. kodit-0.4.3/docs/reference/api/openapi.json +0 -1111
  184. kodit-0.4.3/docs/reference/configuration/index.md +0 -189
  185. kodit-0.4.3/docs/reference/indexing/index.md +0 -378
  186. kodit-0.4.3/src/kodit/application/factories/code_indexing_factory.py +0 -195
  187. kodit-0.4.3/src/kodit/application/services/auto_indexing_service.py +0 -99
  188. kodit-0.4.3/src/kodit/application/services/code_indexing_application_service.py +0 -410
  189. kodit-0.4.3/src/kodit/cli.py +0 -858
  190. kodit-0.4.3/src/kodit/domain/protocols.py +0 -125
  191. kodit-0.4.3/src/kodit/domain/services/enrichment_service.py +0 -48
  192. kodit-0.4.3/src/kodit/domain/services/index_query_service.py +0 -70
  193. kodit-0.4.3/src/kodit/domain/services/index_service.py +0 -269
  194. kodit-0.4.3/src/kodit/infrastructure/api/client/index_client.py +0 -57
  195. kodit-0.4.3/src/kodit/infrastructure/api/v1/__init__.py +0 -5
  196. kodit-0.4.3/src/kodit/infrastructure/api/v1/dependencies.py +0 -111
  197. kodit-0.4.3/src/kodit/infrastructure/api/v1/routers/__init__.py +0 -7
  198. kodit-0.4.3/src/kodit/infrastructure/api/v1/routers/indexes.py +0 -164
  199. kodit-0.4.3/src/kodit/infrastructure/api/v1/schemas/__init__.py +0 -25
  200. kodit-0.4.3/src/kodit/infrastructure/api/v1/schemas/index.py +0 -101
  201. kodit-0.4.3/src/kodit/infrastructure/bm25/bm25_factory.py +0 -28
  202. kodit-0.4.3/src/kodit/infrastructure/cloning/__init__.py +0 -1
  203. kodit-0.4.3/src/kodit/infrastructure/cloning/metadata.py +0 -98
  204. kodit-0.4.3/src/kodit/infrastructure/enrichment/__init__.py +0 -1
  205. kodit-0.4.3/src/kodit/infrastructure/enrichment/enrichment_factory.py +0 -52
  206. kodit-0.4.3/src/kodit/infrastructure/enrichment/null_enrichment_provider.py +0 -19
  207. kodit-0.4.3/src/kodit/infrastructure/mappers/index_mapper.py +0 -345
  208. kodit-0.4.3/src/kodit/infrastructure/mappers/task_mapper.py +0 -81
  209. kodit-0.4.3/src/kodit/infrastructure/reporting/tdqm_progress.py +0 -38
  210. kodit-0.4.3/src/kodit/infrastructure/slicing/language_detection_service.py +0 -18
  211. kodit-0.4.3/src/kodit/infrastructure/sqlalchemy/entities.py +0 -325
  212. kodit-0.4.3/src/kodit/infrastructure/sqlalchemy/index_repository.py +0 -646
  213. kodit-0.4.3/tests/experiments/__init__.py +0 -1
  214. kodit-0.4.3/tests/experiments/cline_prompt_tests/__init__.py +0 -1
  215. kodit-0.4.3/tests/experiments/cline_prompt_tests/cline_prompt.txt +0 -631
  216. kodit-0.4.3/tests/experiments/cline_prompt_tests/cline_prompt_test.py +0 -155
  217. kodit-0.4.3/tests/kodit/app_test.py +0 -311
  218. kodit-0.4.3/tests/kodit/application/code_indexing_application_service_test.py +0 -333
  219. kodit-0.4.3/tests/kodit/application/services/auto_indexing_service_test.py +0 -215
  220. kodit-0.4.3/tests/kodit/application/services/indexing_worker_service_test.py +0 -402
  221. kodit-0.4.3/tests/kodit/application/services/sync_scheduler_test.py +0 -375
  222. kodit-0.4.3/tests/kodit/cli_test.py +0 -1007
  223. kodit-0.4.3/tests/kodit/config_test.py +0 -115
  224. kodit-0.4.3/tests/kodit/domain/enrichment_service_test.py +0 -131
  225. kodit-0.4.3/tests/kodit/domain/services/index_service_test.py +0 -320
  226. kodit-0.4.3/tests/kodit/domain/value_objects_test.py +0 -206
  227. kodit-0.4.3/tests/kodit/infrastructure/bm25/vectorchord_bm25_repository_test.py +0 -648
  228. kodit-0.4.3/tests/kodit/infrastructure/embedding/local_vector_search_repository_test.py +0 -520
  229. kodit-0.4.3/tests/kodit/infrastructure/embedding/test_embedding_integration.py +0 -674
  230. kodit-0.4.3/tests/kodit/infrastructure/embedding/vectorchord_vector_search_repository_test.py +0 -691
  231. kodit-0.4.3/tests/kodit/infrastructure/enrichment/__init__.py +0 -1
  232. kodit-0.4.3/tests/kodit/infrastructure/enrichment/enrichment_factory_test.py +0 -44
  233. kodit-0.4.3/tests/kodit/infrastructure/enrichment/enrichment_provider/__init__.py +0 -1
  234. kodit-0.4.3/tests/kodit/infrastructure/enrichment/enrichment_provider/litellm_enrichment_provider_test.py +0 -392
  235. kodit-0.4.3/tests/kodit/infrastructure/enrichment/enrichment_provider/local_enrichment_provider_test.py +0 -272
  236. kodit-0.4.3/tests/kodit/infrastructure/enrichment/enrichment_provider/null_enrichment_provider_test.py +0 -95
  237. kodit-0.4.3/tests/kodit/infrastructure/enrichment/utils_test.py +0 -110
  238. kodit-0.4.3/tests/kodit/infrastructure/mappers/index_mapper_test.py +0 -184
  239. kodit-0.4.3/tests/kodit/infrastructure/slicing/slicer_test.py +0 -978
  240. kodit-0.4.3/tests/kodit/infrastructure/sqlalchemy/index_repository_test.py +0 -1190
  241. kodit-0.4.3/tests/kodit/infrastructure/sqlalchemy/task_repository_test.py +0 -375
  242. kodit-0.4.3/tests/kodit/infrastructure/sqlalchemy/test_status_repository.py +0 -324
  243. kodit-0.4.3/tests/performance/__init__.py +0 -1
  244. kodit-0.4.3/tests/performance/similarity.py +0 -166
  245. kodit-0.4.3/tests/smoke.sh +0 -131
  246. {kodit-0.4.3 → kodit-0.5.1}/.claude/commands/debug.md +0 -0
  247. {kodit-0.4.3 → kodit-0.5.1}/.claude/commands/new-requirement.md +0 -0
  248. {kodit-0.4.3 → kodit-0.5.1}/.claude/commands/refactor.md +0 -0
  249. {kodit-0.4.3 → kodit-0.5.1}/.claude/commands/update-docs.md +0 -0
  250. {kodit-0.4.3 → kodit-0.5.1}/.cursor/rules/kodit.mdc +0 -0
  251. {kodit-0.4.3 → kodit-0.5.1}/.cursor/rules/style.mdc +0 -0
  252. {kodit-0.4.3 → kodit-0.5.1}/.dockerignore +0 -0
  253. {kodit-0.4.3 → kodit-0.5.1}/.github/CODE_OF_CONDUCT.md +0 -0
  254. {kodit-0.4.3 → kodit-0.5.1}/.github/CONTRIBUTING.md +0 -0
  255. {kodit-0.4.3 → kodit-0.5.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  256. {kodit-0.4.3 → kodit-0.5.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  257. {kodit-0.4.3 → kodit-0.5.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  258. {kodit-0.4.3 → kodit-0.5.1}/.github/dependabot.yml +0 -0
  259. {kodit-0.4.3 → kodit-0.5.1}/.github/workflows/docs.yaml +0 -0
  260. {kodit-0.4.3 → kodit-0.5.1}/.github/workflows/pull_request.yaml +0 -0
  261. {kodit-0.4.3 → kodit-0.5.1}/.github/workflows/pypi-test.yaml +0 -0
  262. {kodit-0.4.3 → kodit-0.5.1}/.github/workflows/pypi.yaml +0 -0
  263. {kodit-0.4.3 → kodit-0.5.1}/.gitignore +0 -0
  264. {kodit-0.4.3 → kodit-0.5.1}/.python-version +0 -0
  265. {kodit-0.4.3 → kodit-0.5.1}/.vscode/launch.json +0 -0
  266. {kodit-0.4.3 → kodit-0.5.1}/.vscode/settings.json +0 -0
  267. {kodit-0.4.3 → kodit-0.5.1}/LICENSE +0 -0
  268. {kodit-0.4.3 → kodit-0.5.1}/README.md +0 -0
  269. {kodit-0.4.3 → kodit-0.5.1}/alembic.ini +0 -0
  270. {kodit-0.4.3 → kodit-0.5.1}/docs/demos/_index.md +0 -0
  271. {kodit-0.4.3 → kodit-0.5.1}/docs/demos/go-simple-microservice/index.md +0 -0
  272. {kodit-0.4.3 → kodit-0.5.1}/docs/demos/knock-knock-auth/index.md +0 -0
  273. {kodit-0.4.3 → kodit-0.5.1}/docs/developer/index.md +0 -0
  274. {kodit-0.4.3 → kodit-0.5.1}/docs/getting-started/_index.md +0 -0
  275. {kodit-0.4.3 → kodit-0.5.1}/docs/getting-started/integration/index.md +0 -0
  276. {kodit-0.4.3 → kodit-0.5.1}/docs/reference/_index.md +0 -0
  277. {kodit-0.4.3 → kodit-0.5.1}/docs/reference/api/templates/_content.md.j2 +0 -0
  278. {kodit-0.4.3 → kodit-0.5.1}/docs/reference/api/templates/_example.md.j2 +0 -0
  279. {kodit-0.4.3 → kodit-0.5.1}/docs/reference/api/templates/_object_schema.md.j2 +0 -0
  280. {kodit-0.4.3 → kodit-0.5.1}/docs/reference/api/templates/_security_scheme.md.j2 +0 -0
  281. {kodit-0.4.3 → kodit-0.5.1}/docs/reference/api/templates/api_doc_template.md.j2 +0 -0
  282. {kodit-0.4.3 → kodit-0.5.1}/docs/reference/deployment/index.md +0 -0
  283. {kodit-0.4.3 → kodit-0.5.1}/docs/reference/mcp/index.md +0 -0
  284. {kodit-0.4.3 → kodit-0.5.1}/docs/reference/telemetry/index.md +0 -0
  285. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/.gitignore +0 -0
  286. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/__init__.py +0 -0
  287. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/application/__init__.py +0 -0
  288. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/application/factories/__init__.py +0 -0
  289. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/application/services/__init__.py +0 -0
  290. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/domain/__init__.py +0 -0
  291. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/domain/errors.py +0 -0
  292. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/domain/services/__init__.py +0 -0
  293. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/__init__.py +0 -0
  294. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/api/__init__.py +0 -0
  295. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/api/client/base.py +0 -0
  296. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/api/client/exceptions.py +0 -0
  297. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/api/client/generated_endpoints.py +0 -0
  298. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/api/client/search_client.py +0 -0
  299. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/api/middleware/__init__.py +0 -0
  300. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/api/middleware/auth.py +0 -0
  301. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/schemas/queue.py +0 -0
  302. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/bm25/__init__.py +0 -0
  303. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/cloning/git/__init__.py +0 -0
  304. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/cloning/git/working_copy.py +1 -1
  305. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/embedding/__init__.py +0 -0
  306. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/embedding/embedding_providers/__init__.py +0 -0
  307. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/embedding/embedding_providers/batching.py +0 -0
  308. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/embedding/embedding_providers/hash_embedding_provider.py +0 -0
  309. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/embedding/embedding_providers/litellm_embedding_provider.py +0 -0
  310. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/embedding/embedding_providers/local_embedding_provider.py +0 -0
  311. {kodit-0.4.3/src/kodit/infrastructure/enrichment → kodit-0.5.1/src/kodit/infrastructure/enricher}/utils.py +0 -0
  312. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/git/__init__.py +0 -0
  313. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/git/git_utils.py +0 -0
  314. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/ignore/__init__.py +0 -0
  315. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/ignore/ignore_pattern_provider.py +0 -0
  316. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/indexing/__init__.py +0 -0
  317. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/mappers/__init__.py +0 -0
  318. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/mappers/task_status_mapper.py +0 -0
  319. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/reporting/__init__.py +0 -0
  320. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/reporting/db_progress.py +0 -0
  321. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/slicing/__init__.py +0 -0
  322. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/infrastructure/sqlalchemy/__init__.py +0 -0
  323. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/log.py +0 -0
  324. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/middleware.py +0 -0
  325. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/migrations/README +0 -0
  326. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/migrations/__init__.py +0 -0
  327. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/migrations/script.py.mako +0 -0
  328. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/migrations/versions/4073b33f9436_add_file_processing_flag.py +0 -0
  329. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/migrations/versions/4552eb3f23ce_add_summary.py +0 -0
  330. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/migrations/versions/7c3bbc2ab32b_add_embeddings_table.py +0 -0
  331. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/migrations/versions/85155663351e_initial.py +0 -0
  332. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/migrations/versions/9cf0e87de578_add_queue.py +0 -0
  333. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/migrations/versions/9e53ea8bb3b0_add_authors.py +0 -0
  334. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/migrations/versions/__init__.py +0 -0
  335. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/migrations/versions/b9cd1c3fd762_add_task_status.py +0 -0
  336. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/migrations/versions/c3f5137d30f5_index_all_the_things.py +0 -0
  337. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/utils/__init__.py +0 -0
  338. {kodit-0.4.3 → kodit-0.5.1}/src/kodit/utils/generate_api_paths.py +0 -0
  339. {kodit-0.4.3 → kodit-0.5.1}/tests/__init__.py +0 -0
  340. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/__init__.py +0 -0
  341. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/application/__init__.py +0 -0
  342. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/application/services/__init__.py +0 -0
  343. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/application/services/reporting_test.py +0 -0
  344. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/domain/__init__.py +0 -0
  345. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/domain/entities_test.py +0 -0
  346. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/domain/language_detection_service_test.py +0 -0
  347. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/domain/services/__init__.py +0 -0
  348. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/e2e.py +0 -0
  349. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/__init__.py +0 -0
  350. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/bm25/__init__.py +0 -0
  351. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/cloning/git_cloning/__init__.py +0 -0
  352. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/cloning/git_cloning/working_copy_test.py +0 -0
  353. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/embedding/__init__.py +0 -0
  354. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/embedding/embedding_provider/__init__.py +0 -0
  355. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/mappers/__init__.py +0 -0
  356. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/__init__.py +0 -0
  357. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/__init__.py +0 -0
  358. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/c/main.c +0 -0
  359. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/c/models.c +0 -0
  360. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/c/models.h +0 -0
  361. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/c/utils.c +0 -0
  362. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/c/utils.h +0 -0
  363. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/cpp/main.cpp +0 -0
  364. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/cpp/models.cpp +0 -0
  365. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/cpp/models.hpp +0 -0
  366. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/cpp/utils.cpp +0 -0
  367. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/cpp/utils.hpp +0 -0
  368. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/csharp/Main.cs +0 -0
  369. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/csharp/Models.cs +0 -0
  370. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/csharp/Utils.cs +0 -0
  371. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/css/components.css +0 -0
  372. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/css/main.css +0 -0
  373. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/css/utilities.css +0 -0
  374. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/go/main.go +0 -0
  375. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/go/models.go +0 -0
  376. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/go/utils.go +0 -0
  377. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/html/components.html +0 -0
  378. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/html/forms.html +0 -0
  379. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/html/main.html +0 -0
  380. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/java/Main.java +0 -0
  381. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/java/Models.java +0 -0
  382. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/java/Utils.java +0 -0
  383. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/javascript/main.js +0 -0
  384. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/javascript/models.js +0 -0
  385. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/javascript/utils.js +0 -0
  386. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/python/__init__.py +0 -0
  387. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/python/main.py +0 -0
  388. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/python/models.py +0 -0
  389. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/python/utils.py +0 -0
  390. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/rust/main.rs +0 -0
  391. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/rust/models.rs +0 -0
  392. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/rust/utils.rs +0 -0
  393. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/snippets/__init__.py +0 -0
  394. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/snippets/csharp.cs +0 -0
  395. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/snippets/golang.go +0 -0
  396. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/snippets/javascript.js +0 -0
  397. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/snippets/knock_knock_server.py +0 -0
  398. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/snippets/python.py +0 -0
  399. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/snippets/typescript.tsx +0 -0
  400. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/infrastructure/sqlalchemy/__init__.py +0 -0
  401. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/log_test.py +0 -0
  402. {kodit-0.4.3 → kodit-0.5.1}/tests/kodit/mcp_test.py +0 -0
  403. {kodit-0.4.3 → kodit-0.5.1}/tests/utils/__init__.py +0 -0
@@ -0,0 +1,25 @@
1
+ {
2
+ "includeCoAuthoredBy": false,
3
+ "hooks": {
4
+ "PostToolUse": [
5
+ {
6
+ "matcher": "Edit|MultiEdit|Write",
7
+ "hooks": [
8
+ {
9
+ "type": "command",
10
+ "command": "uv run ruff check --fix --unsafe-fixes"
11
+ }
12
+ ]
13
+ },
14
+ {
15
+ "matcher": "Write",
16
+ "hooks": [
17
+ {
18
+ "type": "command",
19
+ "command": "uv run mypy --config-file pyproject.toml ."
20
+ }
21
+ ]
22
+ }
23
+ ]
24
+ }
25
+ }
@@ -13,9 +13,6 @@ jobs:
13
13
  name: Test and build Docker image
14
14
  runs-on: ubuntu-latest
15
15
  steps:
16
- - name: Free up disk space
17
- run: sudo rm -rf /usr/local/lib/android /usr/share/dotnet || true
18
-
19
16
  - name: Check out the repo
20
17
  uses: actions/checkout@v4
21
18
 
@@ -98,7 +95,7 @@ jobs:
98
95
  id: push
99
96
  uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671
100
97
  with:
101
- platforms: linux/amd64,linux/arm64
98
+ platforms: linux/amd64
102
99
  context: .
103
100
  file: ./Dockerfile
104
101
  push: true
@@ -35,8 +35,11 @@ jobs:
35
35
  - name: Install the project
36
36
  run: uv sync --locked --all-extras --dev
37
37
 
38
+ - name: No database changes check
39
+ run: make no-database-changes-check
40
+
38
41
  - name: API Doc check
39
- run: make openapi-check
42
+ run: make docs-check
40
43
 
41
44
  - name: Run tests
42
45
  run: make test
@@ -79,7 +82,7 @@ jobs:
79
82
  - uses: actions/checkout@v4
80
83
  with:
81
84
  sparse-checkout: |
82
- tests/smoke.sh
85
+ tests/smoke.py
83
86
  uv.lock
84
87
  sparse-checkout-cone-mode: false
85
88
 
@@ -112,4 +115,4 @@ jobs:
112
115
  run: rm -rf ${HOME}/.kodit
113
116
 
114
117
  - name: Run smoke test
115
- run: ./tests/smoke.sh
118
+ run: uv run ./tests/smoke.py
@@ -47,31 +47,6 @@ The codebase follows Domain-Driven Design (DDD) with clean architecture:
47
47
  - `bm25/` - BM25 search implementations
48
48
  - `indexing/` - Code indexing services
49
49
 
50
- ### Key Components
51
-
52
- **Advanced Indexing Pipeline:**
53
-
54
- 1. Clone/read source code with Git metadata extraction
55
- 2. Language detection for 20+ programming languages
56
- 3. Advanced snippet extraction using Tree-sitter with dependency analysis
57
- 4. Build call graphs and import maps for context-aware extraction
58
- 5. Generate embeddings and BM25 indices
59
- 6. Store in database with selective reindexing for performance
60
-
61
- **Advanced Search System:**
62
-
63
- - Hybrid search combining semantic (embeddings) and keyword (BM25) with Reciprocal Rank Fusion
64
- - Multi-dimensional filtering: language, author, date range, source, file path
65
- - Context-aware results with dependency tracking and usage examples
66
- - Multiple providers: local models, OpenAI, custom APIs
67
- - Configurable via environment variables
68
- - Support for 20+ programming languages including HTML/CSS
69
-
70
- **MCP Server:**
71
-
72
- - FastMCP-based server exposing search tools
73
- - Integrates with Cursor, Cline, and other AI assistants
74
-
75
50
  ## Configuration
76
51
 
77
52
  Key environment variables:
@@ -89,15 +64,55 @@ Uses SQLAlchemy with async support. Supports:
89
64
  - SQLite (default, local development)
90
65
  - PostgreSQL with Vectorchord (production)
91
66
 
92
- Migrations managed with Alembic in `migrations/` directory. DO NOT EDIT THESE FILES.
67
+ Migrations managed with Alembic in `src/kodit/migrations/` directory. DO NOT EDIT THESE FILES.
68
+
69
+ ## Refactoring Strategy
70
+
71
+ - When refactoring, follow the following strategy:
72
+ - Always use Martin Fowler's Refactoring Catalog to guide your changes.
73
+ - After each change, run linting and typing on the files to ensure your changes are correct.
93
74
 
94
75
  ## Testing Strategy
95
76
 
96
- - Unit tests for domain services and repositories
97
- - Integration tests for database operations
98
- - E2E tests for full indexing pipeline
99
- - Smoke tests for deployment validation
100
- - Performance tests for similarity search
77
+ When writing tests for my code, follow these guidelines:
78
+
79
+ **Test Strategy:**
80
+
81
+ - Focus on testing critical paths and core functionality, not on achieving high coverage percentages
82
+ - Prioritize practical, valuable tests over comprehensive coverage
83
+
84
+ **Test Types & Architecture:**
85
+
86
+ - Write integration tests that use the real database layer
87
+ - Write end-to-end tests that mock the database layer to keep tests fast
88
+ - Avoid tests that take a long time to run
89
+
90
+ **Testing Workflow:**
91
+
92
+ - Write tests after the implementation is complete
93
+ - Tests should validate the working implementation
94
+
95
+ **Test Scope:**
96
+
97
+ - Focus primarily on happy path scenarios
98
+ - Test only public interfaces, not private methods or implementation details
99
+ - Only add edge case tests when bugs are discovered that need regression protection
100
+
101
+ **Mocking Philosophy:**
102
+
103
+ - Minimize mocking - only mock when it provides clear benefits
104
+ - Database layer mocking is acceptable for end-to-end tests
105
+ - Avoid mocking everything else
106
+ - Do not use patches in tests because they are fragile to changes. If you must use them,
107
+ ONLY use them on core python libraries.
108
+
109
+ **Test Organization:**
110
+
111
+ - Test file structure should mirror the production codebase structure
112
+ - Keep test organization consistent with the code being tested
113
+
114
+ ## Coding Style
101
115
 
102
- Test file names should mirror the source structure under `tests/` directory and end in
103
- the name `_test.py`.
116
+ - Docstrings should be very minimal. Descriptions only. No arguments or return types. No
117
+ examples. No deprecation notices.
118
+ - Do not store imports imports in `__init__.py` files.
@@ -73,6 +73,7 @@ apt-get update -qy
73
73
  apt-get install -qyy \
74
74
  -o APT::Install-Recommends=false \
75
75
  -o APT::Install-Suggests=false \
76
+ curl \
76
77
  git
77
78
  EOT
78
79
 
@@ -4,11 +4,13 @@
4
4
  build:
5
5
  uv build
6
6
 
7
- openapi: build
7
+ docs: build
8
8
  uv run src/kodit/utils/dump_openapi.py --out docs/reference/api/ kodit.app:app
9
+ uv run python src/kodit/utils/dump_config.py
9
10
 
10
- openapi-check: openapi
11
+ docs-check: docs
11
12
  git diff --exit-code docs/reference/api/index.md
13
+ git diff --exit-code docs/reference/configuration/index.md
12
14
 
13
15
  generate-api-paths: openapi
14
16
  uv run python src/kodit/utils/generate_api_paths.py
@@ -19,5 +21,13 @@ type:
19
21
  lint:
20
22
  uv run ruff check --fix --unsafe-fixes
21
23
 
22
- test: lint type openapi-check
23
- uv run pytest -s --cov=src --cov-report=xml tests/kodit
24
+ test: lint type docs-check
25
+ uv run pytest -s --cov=src --cov-report=xml tests/kodit
26
+
27
+ no-database-changes-check:
28
+ rm -f .kodit.db
29
+ uv run alembic upgrade head
30
+ uv run alembic check
31
+
32
+ smoke:
33
+ uv run tests/smoke.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kodit
3
- Version: 0.4.3
3
+ Version: 0.5.1
4
4
  Summary: Code indexing for better AI code generation
5
5
  Project-URL: Homepage, https://docs.helixml.tech/kodit/
6
6
  Project-URL: Documentation, https://docs.helixml.tech/kodit/
@@ -35,7 +35,7 @@ Requires-Dist: gitpython>=3.1.44
35
35
  Requires-Dist: hf-xet>=1.1.2
36
36
  Requires-Dist: httpx-retries>=0.3.2
37
37
  Requires-Dist: httpx>=0.28.1
38
- Requires-Dist: litellm>=1.75.8
38
+ Requires-Dist: litellm>=1.77.1
39
39
  Requires-Dist: openai==1.99.9
40
40
  Requires-Dist: pathspec>=0.12.1
41
41
  Requires-Dist: pydantic-settings>=2.9.1
@@ -45,8 +45,8 @@ Requires-Dist: rudder-sdk-python>=2.1.4
45
45
  Requires-Dist: sentence-transformers>=4.1.0
46
46
  Requires-Dist: sqlalchemy[asyncio]>=2.0.40
47
47
  Requires-Dist: structlog>=25.3.0
48
- Requires-Dist: tdqm>=0.0.1
49
48
  Requires-Dist: tiktoken>=0.9.0
49
+ Requires-Dist: torch>=2.7.0
50
50
  Requires-Dist: transformers>=4.51.3
51
51
  Requires-Dist: tree-sitter-language-pack>=0.7.3
52
52
  Requires-Dist: tree-sitter>=0.24.0
@@ -44,21 +44,18 @@ and produce fewer hallucinations.
44
44
 
45
45
  ### Codebase Indexing
46
46
 
47
- Kodit connects to a variety of local and remote codebases to build an index of your
47
+ Kodit connects to remote codebases to build an index of your
48
48
  code. This index is used to build a snippet library, ready for ingestion into an LLM.
49
49
 
50
- - Index local directories and public Git repositories
50
+ - Index public and private Git repositories (via a PAT)
51
51
  - Build comprehensive snippet libraries for LLM ingestion
52
52
  - Support for 20+ programming languages including Python, JavaScript/TypeScript, Java, Go, Rust, C/C++, C#, HTML/CSS, and more
53
- - Advanced code analysis with dependency tracking and call graph generation
53
+ - Advanced code slicing with dependency tracking and call graph generation
54
54
  - Intelligent snippet extraction with context-aware dependencies
55
55
  - Efficient indexing with selective reindexing (only processes modified files)
56
56
  - Privacy first: respects .gitignore and .noindex files
57
- - **NEW in 0.3**: Auto-indexing configuration for shared server deployments
58
- - **NEW in 0.3**: Enhanced Git provider support including Azure DevOps
59
- - **NEW in 0.3**: Index private repositories via a PAT
60
- - **NEW in 0.3**: Improved progress monitoring and reporting during indexing
61
- - **NEW in 0.4**: Advanced code slicing infrastructure with Tree-sitter parsing
57
+ - Enhanced Git provider support including Github, Gitlab, Azure DevOps
58
+ - **New in 0.5**: Index Git structure for incremental indexing and unlock future enrichments
62
59
 
63
60
  ### MCP Server
64
61
 
@@ -68,16 +65,16 @@ intent. Kodit has been tested to work well with:
68
65
 
69
66
  - Seamless integration with popular AI coding assistants
70
67
  - Tested and verified with:
71
- - [Cursor](./getting-started/integration/index.md#integration-with-cursor)
72
- - [Cline](./getting-started/integration/index.md#integration-with-cline)
68
+ - [Cursor](./reference/mcp/index.md)
69
+ - [Cline](./reference/mcp/index.md)
70
+ - [Claude Code](./reference/mcp/index.md)
73
71
  - Please contribute more instructions! ... any other assistant is likely to work ...
74
- - **New in 0.3**: Advanced search filters by source, language, author, date range, and file path
75
- - **New in 0.3**: Hybrid search combining BM25 keyword search with semantic search
76
- - **New in 0.3**: Enhanced MCP tools with rich context parameters and metadata
72
+ - Advanced search filters by source, language, author, date range, and file path
73
+ - Hybrid search combining BM25 keyword search with semantic search
77
74
 
78
75
  ### Hosted MCP Server
79
76
 
80
- **New in 0.4**: Try Kodit instantly with our hosted MCP server at [https://kodit.helix.ml/mcp](https://kodit.helix.ml/mcp)! No installation required - just add it to your AI coding assistant and start searching popular codebases immediately.
77
+ Try Kodit instantly with our hosted MCP server at [https://kodit.helix.ml/mcp](https://kodit.helix.ml/mcp)! No installation required - just add it to your AI coding assistant and start searching popular codebases immediately.
81
78
 
82
79
  The hosted server provides:
83
80
 
@@ -103,12 +100,8 @@ Supported databases:
103
100
  Supported providers:
104
101
 
105
102
  - Local (which uses tiny CPU-only open-source models)
106
- - OpenAI
107
103
  - Secure, private LLM enclave with [Helix](https://helix.ml).
108
- - Any other OpenAI compatible API
109
-
110
- **NEW in 0.3**: Enhanced deployment options:
111
-
104
+ - Any other provider supported by [LiteLLM](https://docs.litellm.ai/docs/providers).
112
105
  - Docker Compose configurations with VectorChord
113
106
  - Kubernetes manifests for production deployments
114
107
 
@@ -4,7 +4,20 @@ description: How to install Kodit.
4
4
  weight: 1
5
5
  ---
6
6
 
7
- Kodit is a Python CLI application that can be installed locally or remotely. To install choose the path that is most appropriate for your setup. Most users start by experimenting with Kodit locally and progress to installing it remotely on a server.
7
+ Unlike many MCP tools, Kodit is designed to run as a server. You're welcome to use the
8
+ [public server](../_index.md), but if you want to index your own private repositories
9
+ then you should deploy your own server.
10
+
11
+ Kodit is a Python-based webserver that hosts a REST API and an MCP server. Although most
12
+ people install Kodit remotely in a container, you can also install it as a package.
13
+
14
+ ## Docker
15
+
16
+ ```sh
17
+ docker run -it --rm registry.helix.ml/helix/kodit:latest
18
+ ```
19
+
20
+ Always replace latest with a specific version.
8
21
 
9
22
  ## homebrew
10
23
 
@@ -24,14 +37,6 @@ uv tool install kodit
24
37
  pipx install kodit
25
38
  ```
26
39
 
27
- ## Docker
28
-
29
- ```sh
30
- docker run -it --rm registry.helix.ml/helix/kodit:latest
31
- ```
32
-
33
- Always replace latest with a specific version.
34
-
35
40
  ## pip
36
41
 
37
42
  Use this if you want to use kodit as a python library:
@@ -0,0 +1,67 @@
1
+ ---
2
+ title: Quick Start
3
+ description: The quickest way to get started with Kodit.
4
+ weight: 2
5
+ ---
6
+
7
+ This guide assumes you have already installed Kodit and have verified it is running.
8
+
9
+ ## 1. View the API Docs
10
+
11
+ Open: <http://localhost:8000/docs> (replace with your own server URL)
12
+
13
+ ## 2. Index a Repository
14
+
15
+ Replace the repository URL with the one you want to index. This is a small, toy
16
+ application that should index quickly.
17
+
18
+ ```sh
19
+ curl http://localhost:8080/api/v1/repositories \
20
+ -X POST \
21
+ -H "Content-Type: application/json" \
22
+ -d '{
23
+ "data": {
24
+ "type": "repository",
25
+ "attributes": {
26
+ "url": "https://gist.github.com/philwinder/7aa38185e20433c04c533f2b28f4e217.git"
27
+ }
28
+ }
29
+ }'
30
+ ```
31
+
32
+ ## 3. Check the Status of the Indexing Process
33
+
34
+ ```sh
35
+ curl http://localhost:8080/api/v1/repositories/1/status
36
+ ```
37
+
38
+ Wait for the indexing process to complete. If you see any errors at this stage, check
39
+ your logs and consult the [troubleshooting guide](../reference/troubleshooting/index.md).
40
+
41
+ ## 4. Search for Code
42
+
43
+ When indexing is complete, you can search through the index of the repository:
44
+
45
+ ```sh
46
+ curl http://localhost:8080/api/v1/search \
47
+ -X POST \
48
+ -H "Content-Type: application/json" \
49
+ -d '{
50
+ "data": {
51
+ "type": "search",
52
+ "attributes": {
53
+ "keywords": [
54
+ "orders"
55
+ ],
56
+ "code": "func (s *OrderService) GetAllOrders() []Order {",
57
+ "text": "code to get all orders",
58
+ }
59
+ }
60
+ }'
61
+ ```
62
+
63
+ Check the API docs for more endpoints and examples.
64
+
65
+ ## 5. Integrate with your AI coding assistant
66
+
67
+ Now [add the Kodit MCP server to your AI coding assistant](../integration/index.md).