kodit 0.3.11__tar.gz → 0.3.12__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 (265) hide show
  1. {kodit-0.3.11 → kodit-0.3.12}/.github/workflows/docker.yaml +2 -1
  2. {kodit-0.3.11 → kodit-0.3.12}/PKG-INFO +16 -1
  3. {kodit-0.3.11 → kodit-0.3.12}/README.md +15 -0
  4. {kodit-0.3.11 → kodit-0.3.12}/docs/_index.md +13 -0
  5. kodit-0.3.12/docs/getting-started/_index.md +31 -0
  6. {kodit-0.3.11 → kodit-0.3.12}/docs/getting-started/integration/index.md +21 -3
  7. {kodit-0.3.11 → kodit-0.3.12}/docs/reference/api/index.md +3 -2
  8. {kodit-0.3.11 → kodit-0.3.12}/docs/reference/api/openapi.json +1 -1
  9. {kodit-0.3.11 → kodit-0.3.12}/docs/reference/api/templates/api_doc_template.md.j2 +2 -1
  10. {kodit-0.3.11 → kodit-0.3.12}/docs/reference/deployment/docker-compose.yaml +16 -9
  11. kodit-0.3.12/docs/reference/hosted-kodit/index.md +188 -0
  12. {kodit-0.3.11 → kodit-0.3.12}/docs/reference/mcp/index.md +7 -6
  13. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/_version.py +2 -2
  14. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/app.py +1 -1
  15. {kodit-0.3.11/src/kodit/infrastructure/indexing → kodit-0.3.12/src/kodit/application/services}/auto_indexing_service.py +9 -1
  16. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/application/services/code_indexing_application_service.py +7 -0
  17. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/application/services/sync_scheduler.py +4 -1
  18. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/domain/services/index_query_service.py +5 -1
  19. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/domain/services/index_service.py +6 -0
  20. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/bm25/local_bm25_repository.py +4 -4
  21. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/bm25/vectorchord_bm25_repository.py +4 -1
  22. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/embedding/embedding_providers/local_embedding_provider.py +2 -9
  23. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/embedding/embedding_providers/openai_embedding_provider.py +4 -10
  24. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/ui/progress.py +43 -0
  25. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/utils/dump_openapi.py +4 -0
  26. {kodit-0.3.11/tests/kodit/infrastructure/indexing → kodit-0.3.12/tests/kodit/application/services}/test_auto_indexing_service.py +6 -4
  27. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/application/services/test_sync_scheduler.py +0 -1
  28. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/application/test_code_indexing_application_service.py +35 -0
  29. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/bm25/local_bm25_repository_test.py +106 -11
  30. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/bm25/vectorchord_bm25_repository_test.py +94 -0
  31. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/embedding/embedding_provider/test_local_embedding_provider.py +10 -6
  32. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/embedding/embedding_provider/test_openai_embedding_provider.py +30 -23
  33. kodit-0.3.12/tests/smoke.sh +115 -0
  34. kodit-0.3.11/docs/getting-started/_index.md +0 -12
  35. kodit-0.3.11/tests/kodit/infrastructure/indexing/__init__.py +0 -1
  36. kodit-0.3.11/tests/smoke.sh +0 -55
  37. {kodit-0.3.11 → kodit-0.3.12}/.claude/commands/debug.md +0 -0
  38. {kodit-0.3.11 → kodit-0.3.12}/.claude/commands/new-requirement.md +0 -0
  39. {kodit-0.3.11 → kodit-0.3.12}/.claude/commands/refactor.md +0 -0
  40. {kodit-0.3.11 → kodit-0.3.12}/.claude/commands/update-docs.md +0 -0
  41. {kodit-0.3.11 → kodit-0.3.12}/.claude/settings.json +0 -0
  42. {kodit-0.3.11 → kodit-0.3.12}/.cursor/rules/kodit.mdc +0 -0
  43. {kodit-0.3.11 → kodit-0.3.12}/.cursor/rules/style.mdc +0 -0
  44. {kodit-0.3.11 → kodit-0.3.12}/.dockerignore +0 -0
  45. {kodit-0.3.11 → kodit-0.3.12}/.github/CODE_OF_CONDUCT.md +0 -0
  46. {kodit-0.3.11 → kodit-0.3.12}/.github/CONTRIBUTING.md +0 -0
  47. {kodit-0.3.11 → kodit-0.3.12}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  48. {kodit-0.3.11 → kodit-0.3.12}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  49. {kodit-0.3.11 → kodit-0.3.12}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  50. {kodit-0.3.11 → kodit-0.3.12}/.github/dependabot.yml +0 -0
  51. {kodit-0.3.11 → kodit-0.3.12}/.github/workflows/docs.yaml +0 -0
  52. {kodit-0.3.11 → kodit-0.3.12}/.github/workflows/pull_request.yaml +0 -0
  53. {kodit-0.3.11 → kodit-0.3.12}/.github/workflows/pypi-test.yaml +0 -0
  54. {kodit-0.3.11 → kodit-0.3.12}/.github/workflows/pypi.yaml +0 -0
  55. {kodit-0.3.11 → kodit-0.3.12}/.github/workflows/test.yaml +0 -0
  56. {kodit-0.3.11 → kodit-0.3.12}/.gitignore +0 -0
  57. {kodit-0.3.11 → kodit-0.3.12}/.python-version +0 -0
  58. {kodit-0.3.11 → kodit-0.3.12}/.vscode/launch.json +0 -0
  59. {kodit-0.3.11 → kodit-0.3.12}/.vscode/settings.json +0 -0
  60. {kodit-0.3.11 → kodit-0.3.12}/CLAUDE.md +0 -0
  61. {kodit-0.3.11 → kodit-0.3.12}/Dockerfile +0 -0
  62. {kodit-0.3.11 → kodit-0.3.12}/LICENSE +0 -0
  63. {kodit-0.3.11 → kodit-0.3.12}/Makefile +0 -0
  64. {kodit-0.3.11 → kodit-0.3.12}/alembic.ini +0 -0
  65. {kodit-0.3.11 → kodit-0.3.12}/docs/demos/_index.md +0 -0
  66. {kodit-0.3.11 → kodit-0.3.12}/docs/demos/go-simple-microservice/index.md +0 -0
  67. {kodit-0.3.11 → kodit-0.3.12}/docs/demos/knock-knock-auth/index.md +0 -0
  68. {kodit-0.3.11 → kodit-0.3.12}/docs/developer/index.md +0 -0
  69. {kodit-0.3.11 → kodit-0.3.12}/docs/getting-started/installation/index.md +0 -0
  70. {kodit-0.3.11 → kodit-0.3.12}/docs/getting-started/quick-start/index.md +0 -0
  71. {kodit-0.3.11 → kodit-0.3.12}/docs/reference/_index.md +0 -0
  72. {kodit-0.3.11 → kodit-0.3.12}/docs/reference/api/templates/_content.md.j2 +0 -0
  73. {kodit-0.3.11 → kodit-0.3.12}/docs/reference/api/templates/_example.md.j2 +0 -0
  74. {kodit-0.3.11 → kodit-0.3.12}/docs/reference/api/templates/_object_schema.md.j2 +0 -0
  75. {kodit-0.3.11 → kodit-0.3.12}/docs/reference/api/templates/_security_scheme.md.j2 +0 -0
  76. {kodit-0.3.11 → kodit-0.3.12}/docs/reference/configuration/index.md +0 -0
  77. {kodit-0.3.11 → kodit-0.3.12}/docs/reference/deployment/index.md +0 -0
  78. {kodit-0.3.11 → kodit-0.3.12}/docs/reference/deployment/kubernetes.yaml +0 -0
  79. {kodit-0.3.11 → kodit-0.3.12}/docs/reference/indexing/index.md +0 -0
  80. {kodit-0.3.11 → kodit-0.3.12}/docs/reference/sync/index.md +0 -0
  81. {kodit-0.3.11 → kodit-0.3.12}/docs/reference/telemetry/index.md +0 -0
  82. {kodit-0.3.11 → kodit-0.3.12}/pyproject.toml +0 -0
  83. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/.gitignore +0 -0
  84. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/__init__.py +0 -0
  85. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/application/__init__.py +0 -0
  86. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/application/factories/__init__.py +0 -0
  87. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/application/factories/code_indexing_factory.py +0 -0
  88. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/application/services/__init__.py +0 -0
  89. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/cli.py +0 -0
  90. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/config.py +0 -0
  91. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/database.py +0 -0
  92. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/domain/__init__.py +0 -0
  93. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/domain/entities.py +0 -0
  94. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/domain/errors.py +0 -0
  95. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/domain/interfaces.py +0 -0
  96. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/domain/protocols.py +0 -0
  97. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/domain/services/__init__.py +0 -0
  98. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/domain/services/bm25_service.py +0 -0
  99. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/domain/services/embedding_service.py +0 -0
  100. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/domain/services/enrichment_service.py +0 -0
  101. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/domain/value_objects.py +0 -0
  102. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/__init__.py +0 -0
  103. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/api/__init__.py +0 -0
  104. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/api/middleware/__init__.py +0 -0
  105. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/api/middleware/auth.py +0 -0
  106. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/api/v1/__init__.py +0 -0
  107. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/api/v1/dependencies.py +0 -0
  108. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/api/v1/routers/__init__.py +0 -0
  109. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/api/v1/routers/indexes.py +0 -0
  110. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/api/v1/routers/search.py +0 -0
  111. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/api/v1/schemas/__init__.py +0 -0
  112. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/api/v1/schemas/context.py +0 -0
  113. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/api/v1/schemas/index.py +0 -0
  114. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/api/v1/schemas/search.py +0 -0
  115. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/bm25/__init__.py +0 -0
  116. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/bm25/bm25_factory.py +0 -0
  117. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/cloning/__init__.py +0 -0
  118. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/cloning/git/__init__.py +0 -0
  119. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/cloning/git/working_copy.py +0 -0
  120. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/cloning/metadata.py +0 -0
  121. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/embedding/__init__.py +0 -0
  122. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/embedding/embedding_factory.py +0 -0
  123. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/embedding/embedding_providers/__init__.py +0 -0
  124. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/embedding/embedding_providers/batching.py +0 -0
  125. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/embedding/embedding_providers/hash_embedding_provider.py +0 -0
  126. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/embedding/local_vector_search_repository.py +0 -0
  127. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/embedding/vectorchord_vector_search_repository.py +0 -0
  128. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/enrichment/__init__.py +0 -0
  129. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/enrichment/enrichment_factory.py +0 -0
  130. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/enrichment/local_enrichment_provider.py +0 -0
  131. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/enrichment/null_enrichment_provider.py +0 -0
  132. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/enrichment/openai_enrichment_provider.py +0 -0
  133. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/git/__init__.py +0 -0
  134. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/git/git_utils.py +0 -0
  135. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/ignore/__init__.py +0 -0
  136. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/ignore/ignore_pattern_provider.py +0 -0
  137. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/indexing/__init__.py +0 -0
  138. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/indexing/fusion_service.py +0 -0
  139. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/mappers/__init__.py +0 -0
  140. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/mappers/index_mapper.py +0 -0
  141. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/slicing/__init__.py +0 -0
  142. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/slicing/language_detection_service.py +0 -0
  143. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/slicing/slicer.py +0 -0
  144. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/sqlalchemy/__init__.py +0 -0
  145. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/sqlalchemy/embedding_repository.py +0 -0
  146. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/sqlalchemy/entities.py +0 -0
  147. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/sqlalchemy/index_repository.py +0 -0
  148. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/ui/__init__.py +0 -0
  149. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/infrastructure/ui/spinner.py +0 -0
  150. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/log.py +0 -0
  151. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/mcp.py +0 -0
  152. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/middleware.py +0 -0
  153. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/migrations/README +0 -0
  154. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/migrations/__init__.py +0 -0
  155. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/migrations/env.py +0 -0
  156. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/migrations/script.py.mako +0 -0
  157. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/migrations/versions/4073b33f9436_add_file_processing_flag.py +0 -0
  158. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/migrations/versions/4552eb3f23ce_add_summary.py +0 -0
  159. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/migrations/versions/7c3bbc2ab32b_add_embeddings_table.py +0 -0
  160. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/migrations/versions/85155663351e_initial.py +0 -0
  161. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/migrations/versions/9e53ea8bb3b0_add_authors.py +0 -0
  162. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/migrations/versions/__init__.py +0 -0
  163. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/migrations/versions/c3f5137d30f5_index_all_the_things.py +0 -0
  164. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/reporting.py +0 -0
  165. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/utils/__init__.py +0 -0
  166. {kodit-0.3.11 → kodit-0.3.12}/src/kodit/utils/path_utils.py +0 -0
  167. {kodit-0.3.11 → kodit-0.3.12}/tests/__init__.py +0 -0
  168. {kodit-0.3.11 → kodit-0.3.12}/tests/conftest.py +0 -0
  169. {kodit-0.3.11 → kodit-0.3.12}/tests/docker-smoke.sh +0 -0
  170. {kodit-0.3.11 → kodit-0.3.12}/tests/experiments/__init__.py +0 -0
  171. {kodit-0.3.11 → kodit-0.3.12}/tests/experiments/cline_prompt_tests/__init__.py +0 -0
  172. {kodit-0.3.11 → kodit-0.3.12}/tests/experiments/cline_prompt_tests/cline_prompt.txt +0 -0
  173. {kodit-0.3.11 → kodit-0.3.12}/tests/experiments/cline_prompt_tests/cline_prompt_test.py +0 -0
  174. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/__init__.py +0 -0
  175. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/app_test.py +0 -0
  176. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/application/__init__.py +0 -0
  177. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/application/services/__init__.py +0 -0
  178. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/cli_test.py +0 -0
  179. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/config_test.py +0 -0
  180. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/domain/__init__.py +0 -0
  181. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/domain/bm25_domain_service_test.py +0 -0
  182. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/domain/enrichment_domain_service_test.py +0 -0
  183. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/domain/entities_test.py +0 -0
  184. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/domain/services/__init__.py +0 -0
  185. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/domain/services/index_service_test.py +0 -0
  186. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/domain/test_embedding_service.py +0 -0
  187. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/domain/test_language_mapping.py +0 -0
  188. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/domain/test_multi_search_result.py +0 -0
  189. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/e2e.py +0 -0
  190. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/__init__.py +0 -0
  191. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/bm25/__init__.py +0 -0
  192. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/cloning/git_cloning/__init__.py +0 -0
  193. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/cloning/git_cloning/working_copy_test.py +0 -0
  194. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/embedding/__init__.py +0 -0
  195. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/embedding/embedding_factory_test.py +0 -0
  196. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/embedding/embedding_provider/__init__.py +0 -0
  197. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/embedding/embedding_provider/test_hash_embedding_provider.py +0 -0
  198. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/embedding/test_batching.py +0 -0
  199. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/embedding/test_embedding_integration.py +0 -0
  200. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/embedding/test_local_vector_search_repository.py +0 -0
  201. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/embedding/test_vectorchord_vector_search_repository.py +0 -0
  202. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/enrichment/__init__.py +0 -0
  203. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/enrichment/enrichment_provider/__init__.py +0 -0
  204. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/enrichment/enrichment_provider/test_local_enrichment_provider.py +0 -0
  205. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/enrichment/enrichment_provider/test_null_enrichment_provider.py +0 -0
  206. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/enrichment/enrichment_provider/test_openai_enrichment_provider.py +0 -0
  207. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/enrichment/test_enrichment_factory.py +0 -0
  208. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/mappers/__init__.py +0 -0
  209. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/mappers/test_index_mapper.py +0 -0
  210. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/__init__.py +0 -0
  211. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/__init__.py +0 -0
  212. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/c/main.c +0 -0
  213. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/c/models.c +0 -0
  214. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/c/models.h +0 -0
  215. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/c/utils.c +0 -0
  216. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/c/utils.h +0 -0
  217. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/cpp/main.cpp +0 -0
  218. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/cpp/models.cpp +0 -0
  219. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/cpp/models.hpp +0 -0
  220. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/cpp/utils.cpp +0 -0
  221. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/cpp/utils.hpp +0 -0
  222. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/csharp/Main.cs +0 -0
  223. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/csharp/Models.cs +0 -0
  224. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/csharp/Utils.cs +0 -0
  225. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/css/components.css +0 -0
  226. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/css/main.css +0 -0
  227. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/css/utilities.css +0 -0
  228. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/go/main.go +0 -0
  229. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/go/models.go +0 -0
  230. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/go/utils.go +0 -0
  231. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/html/components.html +0 -0
  232. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/html/forms.html +0 -0
  233. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/html/main.html +0 -0
  234. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/java/Main.java +0 -0
  235. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/java/Models.java +0 -0
  236. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/java/Utils.java +0 -0
  237. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/javascript/main.js +0 -0
  238. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/javascript/models.js +0 -0
  239. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/javascript/utils.js +0 -0
  240. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/python/__init__.py +0 -0
  241. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/python/main.py +0 -0
  242. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/python/models.py +0 -0
  243. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/python/utils.py +0 -0
  244. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/rust/main.rs +0 -0
  245. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/rust/models.rs +0 -0
  246. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/data/rust/utils.rs +0 -0
  247. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/slicing/slicer_test.py +0 -0
  248. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/snippets/__init__.py +0 -0
  249. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/snippets/csharp.cs +0 -0
  250. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/snippets/golang.go +0 -0
  251. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/snippets/javascript.js +0 -0
  252. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/snippets/knock_knock_server.py +0 -0
  253. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/snippets/python.py +0 -0
  254. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/snippets/typescript.tsx +0 -0
  255. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/sqlalchemy/__init__.py +0 -0
  256. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/infrastructure/sqlalchemy/test_embedding_repository.py +0 -0
  257. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/log_test.py +0 -0
  258. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/mcp_stdio_test.py +0 -0
  259. {kodit-0.3.11 → kodit-0.3.12}/tests/kodit/mcp_test.py +0 -0
  260. {kodit-0.3.11 → kodit-0.3.12}/tests/performance/__init__.py +0 -0
  261. {kodit-0.3.11 → kodit-0.3.12}/tests/performance/similarity.py +0 -0
  262. {kodit-0.3.11 → kodit-0.3.12}/tests/utils/__init__.py +0 -0
  263. {kodit-0.3.11 → kodit-0.3.12}/tests/utils/test_path_utils.py +0 -0
  264. {kodit-0.3.11 → kodit-0.3.12}/tests/vectorchord-smoke.sh +0 -0
  265. {kodit-0.3.11 → kodit-0.3.12}/uv.lock +0 -0
@@ -19,7 +19,7 @@ jobs:
19
19
  - name: Check out the repo
20
20
  uses: actions/checkout@v4
21
21
 
22
- - name: Build and push Docker image
22
+ - name: Build test Docker image
23
23
  id: push
24
24
  uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671
25
25
  with:
@@ -90,6 +90,7 @@ jobs:
90
90
  type=ref,event=pr,suffix=-py${{ steps.pyver.outputs.SHORT_PY }}
91
91
  type=sha,enable=${{ steps.pyver.outputs.ENABLE_DEFAULT }}
92
92
  type=sha,suffix=-py${{ steps.pyver.outputs.SHORT_PY }}
93
+ type=raw,value=latest,enable=${{ steps.pyver.outputs.ENABLE_DEFAULT && startsWith(github.ref, 'refs/tags/') }}
93
94
 
94
95
  - name: Build and push Docker image
95
96
  id: push
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kodit
3
- Version: 0.3.11
3
+ Version: 0.3.12
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/
@@ -72,6 +72,8 @@ Kodit connects your AI coding assistant to external codebases to provide accurat
72
72
 
73
73
  </div>
74
74
 
75
+ :star: _Help us reach more developers and grow the Helix community. Star this repo!_
76
+
75
77
  **Helix Kodit** is an **MCP server** that connects your AI coding assistant to external codebases. It can:
76
78
 
77
79
  - Improve your AI-assisted code by providing canonical examples direct from the source
@@ -120,6 +122,19 @@ intent. Kodit has been tested to work well with:
120
122
  - **New in 0.3**: Hybrid search combining BM25 keyword search with semantic search
121
123
  - **New in 0.4**: Enhanced MCP tools with rich context parameters and metadata
122
124
 
125
+ ### Hosted MCP Server
126
+
127
+ **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.
128
+
129
+ The hosted server provides:
130
+
131
+ - Pre-indexed popular open source repositories
132
+ - Zero configuration - works out of the box
133
+ - Same powerful search capabilities as self-hosted Kodit
134
+ - Perfect for trying Kodit before setting up your own instance
135
+
136
+ Find out more in the [hosted Kodit documentation](https://docs.helix.ml/kodit/reference/hosted-kodit/).
137
+
123
138
  ### Enterprise Ready
124
139
 
125
140
  Out of the box, Kodit works with a local SQLite database and very small, local models.
@@ -18,6 +18,8 @@ Kodit connects your AI coding assistant to external codebases to provide accurat
18
18
 
19
19
  </div>
20
20
 
21
+ :star: _Help us reach more developers and grow the Helix community. Star this repo!_
22
+
21
23
  **Helix Kodit** is an **MCP server** that connects your AI coding assistant to external codebases. It can:
22
24
 
23
25
  - Improve your AI-assisted code by providing canonical examples direct from the source
@@ -66,6 +68,19 @@ intent. Kodit has been tested to work well with:
66
68
  - **New in 0.3**: Hybrid search combining BM25 keyword search with semantic search
67
69
  - **New in 0.4**: Enhanced MCP tools with rich context parameters and metadata
68
70
 
71
+ ### Hosted MCP Server
72
+
73
+ **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.
74
+
75
+ The hosted server provides:
76
+
77
+ - Pre-indexed popular open source repositories
78
+ - Zero configuration - works out of the box
79
+ - Same powerful search capabilities as self-hosted Kodit
80
+ - Perfect for trying Kodit before setting up your own instance
81
+
82
+ Find out more in the [hosted Kodit documentation](https://docs.helix.ml/kodit/reference/hosted-kodit/).
83
+
69
84
  ### Enterprise Ready
70
85
 
71
86
  Out of the box, Kodit works with a local SQLite database and very small, local models.
@@ -75,6 +75,19 @@ intent. Kodit has been tested to work well with:
75
75
  - **New in 0.3**: Hybrid search combining BM25 keyword search with semantic search
76
76
  - **New in 0.3**: Enhanced MCP tools with rich context parameters and metadata
77
77
 
78
+ ### Hosted MCP Server
79
+
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.
81
+
82
+ The hosted server provides:
83
+
84
+ - Pre-indexed popular open source repositories
85
+ - Zero configuration - works out of the box
86
+ - Same powerful search capabilities as self-hosted Kodit
87
+ - Perfect for trying Kodit before setting up your own instance
88
+
89
+ Read the [hosted Kodit documentation](./reference/hosted-kodit/index.md).
90
+
78
91
  ### Enterprise Ready
79
92
 
80
93
  Out of the box, Kodit works with a local SQLite database and very small, local models.
@@ -0,0 +1,31 @@
1
+ ---
2
+ title: "Getting Started"
3
+ description: Getting started guide for Kodit.
4
+ weight: 1
5
+ next: /kodit/getting-started/installation
6
+ ---
7
+
8
+ Kodit is an MCP server that indexes codebases. As such, it can be run locally on your
9
+ laptop, or remotely on a server.
10
+
11
+ ## Hosted Kodit (Free, No Install)
12
+
13
+ This is the fastest way to try Kodit.
14
+
15
+ [Helix.ML](https://helix.ml) provides a free hosted version of Kodit so you can
16
+ integrate the power of Kodit immediately. To give this a spin, skip to the [integration
17
+ with coding assistants](./integration/index.md).
18
+
19
+ More information about the hosted service is available in the [hosted Kodit documentation](../reference/hosted-kodit/index.md).
20
+
21
+ ## Private Kodit
22
+
23
+ This is the most powerful way to use Kodit.
24
+
25
+ Kodit was designed to be private first, so you or your organization can index your own private
26
+ repositories. To do this, please [install kodit first](./installation/index.md), and then
27
+ [index your repositories](./quick-start/index.md).
28
+
29
+ <!--more-->
30
+
31
+ {{< default-section-cards-list >}}
@@ -4,7 +4,8 @@ description: How to integrate Kodit with AI coding assistants.
4
4
  weight: 3
5
5
  ---
6
6
 
7
- The core goal of Kodit is to make your AI coding experience more accurate by providing better context. That means you need to integrate Kodit with your favourite assistant.
7
+ The core goal of Kodit is to make your AI coding experience more accurate by providing
8
+ better context. That means you need to integrate Kodit with your favourite assistant.
8
9
 
9
10
  ## MCP Connection Methods
10
11
 
@@ -20,6 +21,12 @@ instructions for popular coding assistants like Cursor, Claude, Cline, etc.
20
21
  This is the default and recommended method for most users. Kodit runs an HTTP server
21
22
  that streams responses to connected AI coding assistants over the `/mcp` endpoint.
22
23
 
24
+ Configure your AI coding assistant to connect to `https://kodit.helix.ml/mcp`
25
+
26
+ More information about the hosted service is available in the [hosted Kodit documentation](../../reference/hosted-kodit/index.md).
27
+
28
+ #### Local HTTP Streaming
29
+
23
30
  1. Start the Kodit server:
24
31
 
25
32
  ```sh
@@ -28,7 +35,8 @@ that streams responses to connected AI coding assistants over the `/mcp` endpoin
28
35
 
29
36
  _The Kodit container runs this command by default._
30
37
 
31
- 2. Configure your AI coding assistant to connect to `http://localhost:8080/mcp`
38
+ 2. Configure your AI coding assistant to connect to the `/mcp` endpoint, for example:
39
+ `http://localhost:8080/mcp`.
32
40
 
33
41
  ### 2. STDIO Mode
34
42
 
@@ -47,6 +55,10 @@ opened.
47
55
  Kodit also supports the older SSE protocol on the `/sse` endpoint. This is provided for
48
56
  backward compatibility with tools that require SSE.
49
57
 
58
+ Configure your AI coding assistant to connect to `https://kodit.helix.ml/sse`
59
+
60
+ #### Local SSE
61
+
50
62
  1. Start the Kodit server:
51
63
 
52
64
  ```sh
@@ -55,4 +67,10 @@ backward compatibility with tools that require SSE.
55
67
 
56
68
  _The Kodit container runs this command by default._
57
69
 
58
- 2. Configure your AI coding assistant to connect to `http://localhost:8080/sse`
70
+ 2. Configure your AI coding assistant to connect to the `/sse` endpoint, for example
71
+ `http://localhost:8080/sse`.
72
+
73
+ ## HTTP API Connection Methods
74
+
75
+ Helix also exposes a REST API with an `/api/v1/search` endpoint to allow integration
76
+ with other tools. See the [Kodit HTTP API documentation](../../reference/api/index.md) for more information.
@@ -5,13 +5,14 @@ weight: 30
5
5
  ---
6
6
 
7
7
  This file is automatically generated from the Kodit server OpenAPI specification.
8
- You can view the live API documentation on the `/docs` endpoint of your Kodit server.
8
+ You can view the live API documentation on the `/docs` endpoint of your Kodit server or
9
+ look at the [hosted version](https://kodit.helix.ml/docs).
9
10
 
10
11
 
11
12
  This is the REST API for the Kodit server. Please refer to the
12
13
  [Kodit documentation](https://docs.helix.ml/kodit/) for more information.
13
14
 
14
- Current version: 0.3.11
15
+ Current version: 0.3.12
15
16
 
16
17
  ## Authentication
17
18
 
@@ -3,7 +3,7 @@
3
3
  "info": {
4
4
  "title": "kodit API",
5
5
  "description": "\nThis is the REST API for the Kodit server. Please refer to the\n[Kodit documentation](https://docs.helix.ml/kodit/) for more information.\n ",
6
- "version": "0.3.11.dev2"
6
+ "version": "0.3.12"
7
7
  },
8
8
  "paths": {
9
9
  "/healthz": {
@@ -5,7 +5,8 @@ weight: 30
5
5
  ---
6
6
 
7
7
  This file is automatically generated from the Kodit server OpenAPI specification.
8
- You can view the live API documentation on the `/docs` endpoint of your Kodit server.
8
+ You can view the live API documentation on the `/docs` endpoint of your Kodit server or
9
+ look at the [hosted version](https://kodit.helix.ml/docs).
9
10
 
10
11
  {% if spec.info.description -%}
11
12
  {{ spec.info.description }}
@@ -13,26 +13,26 @@ services:
13
13
 
14
14
  # Configure Kodit
15
15
  environment:
16
- # Configure the database
16
+ # Configure data storage
17
+ DATA_DIR: /data
17
18
  DB_URL: postgresql+asyncpg://postgres:mysecretpassword@vectorchord:5432/kodit
18
19
  DEFAULT_SEARCH_PROVIDER: vectorchord
19
20
 
20
21
  # External embedding provider
21
22
  EMBEDDING_ENDPOINT_TYPE: openai
22
23
  EMBEDDING_ENDPOINT_BASE_URL: https://api.openai.com/v1
23
- EMBEDDING_ENDPOINT_API_KEY: REPLACE_WITH_YOUR_API_KEY
24
- EMBEDDING_ENDPOINT_MODEL: text-embedding-3-large
24
+ EMBEDDING_ENDPOINT_API_KEY: ${OPENAI_API_KEY:-}
25
+ EMBEDDING_ENDPOINT_MODEL: text-embedding-3-small
25
26
 
26
27
  # External enrichment provider
27
28
  ENRICHMENT_ENDPOINT_TYPE: openai
28
29
  ENRICHMENT_ENDPOINT_BASE_URL: https://api.openai.com/v1
29
- ENRICHMENT_ENDPOINT_API_KEY: REPLACE_WITH_YOUR_API_KEY
30
+ ENRICHMENT_ENDPOINT_API_KEY: ${OPENAI_API_KEY:-}
30
31
  ENRICHMENT_ENDPOINT_MODEL: o3-mini
31
32
 
32
33
  # Auto-indexing configuration
33
- AUTO_INDEXING_SOURCES_0_URI: https://github.com/pydantic/pydantic
34
- AUTO_INDEXING_SOURCES_1_URI: https://github.com/fastapi/fastapi
35
- AUTO_INDEXING_SOURCES_2_URI: https://github.com/helix-ml/kodit
34
+ AUTO_INDEXING_SOURCES_0_URI: https://github.com/helixml/kodit
35
+ AUTO_INDEXING_SOURCES_1_URI: https://github.com/helixml/helix
36
36
 
37
37
  # Sync configuration
38
38
  SYNC_PERIODIC_ENABLED: true
@@ -41,18 +41,25 @@ services:
41
41
 
42
42
  # Logging configuration
43
43
  LOG_LEVEL: INFO # Set to DEBUG for more detailed logging
44
+ LOG_FORMAT: json
45
+
46
+ # API Key Configuration
47
+ API_KEYS: ${KODIT_API_KEYS:-}
44
48
 
45
49
  volumes:
46
- - kodit-data:/data
50
+ - ${KODIT_DATA:-kodit-data}:/data
47
51
 
48
52
  vectorchord:
49
53
  image: tensorchord/vchord-suite:pg17-20250601
50
54
  environment:
51
55
  - POSTGRES_DB=kodit
52
56
  - POSTGRES_PASSWORD=mysecretpassword
57
+ volumes:
58
+ - ${VECTORCHORD_DATA:-kodit-vectorchord}:/var/lib/postgresql/data
53
59
  ports:
54
60
  - "5432"
55
61
  restart: unless-stopped
56
62
 
57
63
  volumes:
58
- kodit-data:
64
+ kodit-data:
65
+ kodit-vectorchord:
@@ -0,0 +1,188 @@
1
+ ---
2
+ title: Hosted Kodit Service
3
+ description: Information about the hosted version of Kodit.
4
+ weight: 4
5
+ ---
6
+
7
+ The hosted Kodit service at [https://kodit.helix.ml](https://kodit.helix.ml) provides instant access to Kodit's powerful code search capabilities without requiring any installation or setup. Perfect for teams and individuals who want to start using Kodit immediately.
8
+
9
+ ## Features
10
+
11
+ ### Pre-indexed Popular Repositories
12
+
13
+ The hosted service comes with a curated collection of popular open-source repositories already indexed and ready to search, including:
14
+
15
+ - Major frameworks and libraries across multiple languages
16
+ - Popular development tools and utilities
17
+ - Well-documented codebases that serve as excellent examples
18
+ - Regularly [updated indices](../sync/index.md) to reflect the latest code changes
19
+
20
+ ### Zero Configuration
21
+
22
+ - No installation required
23
+ - No database setup needed
24
+ - No embedding model configuration
25
+ - Just add the MCP server URL to your AI coding assistant and start searching
26
+
27
+ ### Full Search Capabilities
28
+
29
+ The hosted service provides the same powerful search features as self-hosted Kodit:
30
+
31
+ - **Hybrid search**: Combines semantic understanding with keyword matching
32
+ - **Multi-language support**: Search across 20+ programming languages
33
+ - **Advanced filtering**: Filter by language, author, date range, and file paths
34
+ - **Context-aware results**: Get relevant code snippets with their dependencies
35
+ - **Rich metadata**: Each result includes file path, language, author, and commit information
36
+
37
+ ## Getting Started
38
+
39
+ To use the hosted Kodit service:
40
+
41
+ 1. Add the MCP server URL to your AI coding assistant:
42
+
43
+ ```
44
+ https://kodit.helix.ml/mcp
45
+ ```
46
+
47
+ 2. Start searching! Your AI assistant can now access the indexed repositories.
48
+
49
+ For detailed integration instructions, see our [integration guides](../../getting-started/integration/index.md).
50
+
51
+ ## Requesting New Repositories
52
+
53
+ We're continuously expanding our indexed repository collection. To request a new repository:
54
+
55
+ 1. **Open a GitHub Discussion**: Visit [our discussions page](https://github.com/helixml/kodit/discussions) and create a new discussion in the "Repository Requests" category
56
+
57
+ 2. **Provide Repository Details**:
58
+ - Repository URL (must be publicly accessible)
59
+ - Why this repository would benefit the community
60
+ - Expected usage and relevance
61
+
62
+ 3. **Evaluation Criteria**: We prioritize repositories that are:
63
+ - Actively maintained
64
+ - Well-documented
65
+ - Widely used in the community
66
+ - Good examples of coding practices
67
+ - Compliant with open-source licenses
68
+
69
+ Note: We can only index publicly accessible repositories. For private repositories,
70
+ consider setting up a [self-hosted Kodit instance](../../getting-started/_index.md).
71
+
72
+ ## Service Level Agreement (SLA)
73
+
74
+ ### Best Effort Service
75
+
76
+ The hosted Kodit service is provided on a **best-effort basis**:
77
+
78
+ - No guaranteed uptime SLA
79
+ - Maintenance windows may occur without prior notice
80
+ - Search performance may vary based on usage
81
+
82
+ ### Enterprise Support
83
+
84
+ For organizations requiring:
85
+
86
+ - Guaranteed uptime and SLAs
87
+ - Priority support
88
+ - Custom repository indexing
89
+ - Dedicated infrastructure
90
+ - Private repository support
91
+
92
+ Please contact our team at [founders@helix.ml](mailto:founders@helix.ml) to discuss
93
+ enterprise options.
94
+
95
+ ## Limitations
96
+
97
+ ### Compared to Self-Hosted
98
+
99
+ While the hosted service is convenient, self-hosted Kodit offers:
100
+
101
+ - **Private repository indexing**: Index your proprietary codebases
102
+ - **Custom configuration**: Choose your embedding models and search parameters
103
+ - **Data control**: Keep all data within your infrastructure
104
+ - **Unlimited repositories**: No restrictions on what you can index
105
+
106
+ ### Usage Guidelines
107
+
108
+ To ensure fair access for all users:
109
+
110
+ - Rate limiting may be applied during high usage periods
111
+ - Excessive API calls may result in temporary throttling
112
+ - The service is intended for development use, not production systems
113
+
114
+ ## Security and Privacy
115
+
116
+ ### Data Protection
117
+
118
+ - All searches are processed securely over HTTPS
119
+ - Search queries are not logged or stored
120
+ - No personal data is collected beyond standard web server logs
121
+ - The service only indexes publicly available code
122
+ - [Telemetry](../telemetry/index.md) is enabled
123
+
124
+ ### Compliance
125
+
126
+ - Only repositories with appropriate open-source licenses are indexed
127
+ - Follows GDPR and privacy regulations
128
+
129
+ ## Performance Expectations
130
+
131
+ ### Search Speed
132
+
133
+ - Most searches complete in under 2 seconds
134
+ - Complex semantic searches may take slightly longer
135
+ - Performance depends on query complexity and current load
136
+
137
+ ### Index Freshness
138
+
139
+ - Popular repositories are re-indexed every 30 minutes
140
+ - Less active repositories may be updated monthly
141
+
142
+ ## Benefits of Hosted Service
143
+
144
+ ### For Individuals
145
+
146
+ - Try Kodit without commitment
147
+ - Learn from high-quality code examples
148
+ - No infrastructure costs
149
+ - Instant access to popular codebases
150
+
151
+ ### For Teams
152
+
153
+ - Quick evaluation of Kodit's capabilities
154
+ - Shared access to indexed repositories
155
+ - No maintenance overhead
156
+ - Easy onboarding for new developers
157
+
158
+ ## Migration to Self-Hosted
159
+
160
+ When you're ready to move to a self-hosted instance:
161
+
162
+ 1. Follow our [installation guide](../../getting-started/_index.md)
163
+ 2. Index your desired repositories
164
+ 3. Configure your preferred models and settings
165
+ 4. Update your AI assistant's MCP server URL
166
+
167
+ All search patterns and workflows remain the same, ensuring a smooth transition.
168
+
169
+ ## Feedback and Support
170
+
171
+ We value your feedback on the hosted service:
172
+
173
+ - **Feature requests**: Open a [GitHub discussion](https://github.com/helixml/kodit/discussions)
174
+ - **Bug reports**: File an [issue on GitHub](https://github.com/helixml/kodit/issues)
175
+ - **Enterprise inquiries**: Contact [founders@helix.ml](mailto:founders@helix.ml)
176
+
177
+ ## Future Enhancements
178
+
179
+ We're actively working on:
180
+
181
+ - Expanding the repository collection
182
+ - Improving search performance
183
+ - Adding more language-specific features
184
+ - Enhanced filtering options
185
+ - Integrating into Helix
186
+ - Providing visibility of indexed repositories
187
+
188
+ Stay updated by watching our [GitHub repository](https://github.com/helixml/kodit) and following our release notes.
@@ -82,7 +82,7 @@ comprehensive instructions for all popular coding assistants.
82
82
  #### Claude Code Streaming HTTP Mode (recommended)
83
83
 
84
84
  ```sh
85
- claude mcp add --transport http kodit http://localhost:8080/mcp
85
+ claude mcp add --transport http kodit https://kodit.helix.ml/mcp
86
86
  ```
87
87
 
88
88
  #### Claude Code STDIO Mode
@@ -96,7 +96,7 @@ claude mcp add kodit -- kodit stdio
96
96
  #### Cursor Streaming HTTP Mode (recommended)
97
97
 
98
98
  ![Install MCP Server](https://cursor.com/deeplink/mcp-install-light.svg)
99
- {class="h-8 inline-block" href="cursor://anysphere.cursor-deeplink/mcp/install?name=kodit&config=eyJ1cmwiOiJodHRwOi8vbG9jYWxob3N0OjgwODAvbWNwIn0%3D"}
99
+ {class="h-8 inline-block" href="cursor://anysphere.cursor-deeplink/mcp/install?name=kodit&config=eyJ1cmwiOiJodHRwczovL2tvZGl0LmhlbGl4Lm1sL21jcCJ9"}
100
100
 
101
101
  Add the following to `$HOME/.cursor/mcp.json`:
102
102
 
@@ -104,14 +104,15 @@ Add the following to `$HOME/.cursor/mcp.json`:
104
104
  {
105
105
  "mcpServers": {
106
106
  "kodit": {
107
- "url": "http://localhost:8080/mcp"
107
+ "url": "https://kodit.helix.ml/mcp"
108
108
  }
109
109
  }
110
110
  }
111
111
  ```
112
112
 
113
- Or find this configuration in `Cursor Settings` -> `MCP`. Replace localhost with domain
114
- where Kodit is hosted.
113
+ - Or find this configuration in `Cursor Settings` -> `MCP`.
114
+ - `https://kodit.helix.ml` is the URL of the hosted Kodit instance. You can replace this
115
+ with <http://localhost:8080> if you are running locally.
115
116
 
116
117
  #### Cursor STDIO
117
118
 
@@ -149,7 +150,7 @@ Add the following configuration:
149
150
  "autoApprove": [],
150
151
  "disabled": true,
151
152
  "timeout": 60,
152
- "url": "http://localhost:8080/mcp",
153
+ "url": "https://kodit.helix.ml/mcp",
153
154
  "transportType": "http"
154
155
  }
155
156
  }
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.3.11'
21
- __version_tuple__ = version_tuple = (0, 3, 11)
20
+ __version__ = version = '0.3.12'
21
+ __version_tuple__ = version_tuple = (0, 3, 12)
@@ -8,11 +8,11 @@ from fastapi import FastAPI, Response
8
8
  from fastapi.responses import RedirectResponse
9
9
 
10
10
  from kodit._version import version
11
+ from kodit.application.services.auto_indexing_service import AutoIndexingService
11
12
  from kodit.application.services.sync_scheduler import SyncSchedulerService
12
13
  from kodit.config import AppContext
13
14
  from kodit.infrastructure.api.v1.routers import indexes_router, search_router
14
15
  from kodit.infrastructure.api.v1.schemas.context import AppLifespanState
15
- from kodit.infrastructure.indexing.auto_indexing_service import AutoIndexingService
16
16
  from kodit.mcp import mcp
17
17
  from kodit.middleware import ASGICancelledErrorMiddleware, logging_middleware
18
18
 
@@ -11,6 +11,7 @@ from kodit.application.factories.code_indexing_factory import (
11
11
  create_code_indexing_application_service,
12
12
  )
13
13
  from kodit.config import AppContext
14
+ from kodit.infrastructure.ui.progress import create_log_progress_callback
14
15
 
15
16
 
16
17
  class AutoIndexingService:
@@ -50,13 +51,20 @@ class AutoIndexingService:
50
51
 
51
52
  for source in sources:
52
53
  try:
54
+ # Only auto-index a source if it is new
55
+ if await service.does_index_exist(source):
56
+ self.log.info("Index already exists, skipping", source=source)
57
+ continue
58
+
53
59
  self.log.info("Auto-indexing source", source=source)
54
60
 
55
61
  # Create index
56
62
  index = await service.create_index_from_uri(source)
57
63
 
58
64
  # Run indexing (without progress callback for background mode)
59
- await service.run_index(index, progress_callback=None)
65
+ await service.run_index(
66
+ index, progress_callback=create_log_progress_callback()
67
+ )
60
68
 
61
69
  self.log.info("Successfully auto-indexed source", source=source)
62
70
 
@@ -53,6 +53,13 @@ class CodeIndexingApplicationService:
53
53
  self.session = session
54
54
  self.log = structlog.get_logger(__name__)
55
55
 
56
+ async def does_index_exist(self, uri: str) -> bool:
57
+ """Check if an index exists for a source."""
58
+ # Check if index already exists
59
+ sanitized_uri, _ = self.index_domain_service.sanitize_uri(uri)
60
+ existing_index = await self.index_repository.get_by_uri(sanitized_uri)
61
+ return existing_index is not None
62
+
56
63
  async def create_index_from_uri(
57
64
  self, uri: str, progress_callback: ProgressCallback | None = None
58
65
  ) -> Index:
@@ -14,6 +14,7 @@ from kodit.config import AppContext
14
14
  from kodit.domain.services.index_query_service import IndexQueryService
15
15
  from kodit.infrastructure.indexing.fusion_service import ReciprocalRankFusionService
16
16
  from kodit.infrastructure.sqlalchemy.index_repository import SqlAlchemyIndexRepository
17
+ from kodit.infrastructure.ui.progress import create_log_progress_callback
17
18
 
18
19
 
19
20
  class SyncSchedulerService:
@@ -102,7 +103,9 @@ class SyncSchedulerService:
102
103
  source=str(index.source.working_copy.remote_uri),
103
104
  )
104
105
 
105
- await service.run_index(index, progress_callback=None)
106
+ await service.run_index(
107
+ index, progress_callback=create_log_progress_callback()
108
+ )
106
109
  success_count += 1
107
110
 
108
111
  self.log.info(
@@ -63,4 +63,8 @@ class IndexQueryService:
63
63
 
64
64
  async def get_snippets_by_ids(self, ids: list[int]) -> list[SnippetWithContext]:
65
65
  """Get snippets by their IDs."""
66
- return await self.index_repository.get_snippets_by_ids(ids)
66
+ snippets = await self.index_repository.get_snippets_by_ids(ids)
67
+
68
+ # Return snippets in the same order as the ids
69
+ snippets.sort(key=lambda x: ids.index(x.snippet.id or 0))
70
+ return snippets
@@ -13,6 +13,7 @@ from kodit.domain.services.enrichment_service import EnrichmentDomainService
13
13
  from kodit.domain.value_objects import (
14
14
  EnrichmentIndexRequest,
15
15
  EnrichmentRequest,
16
+ FileProcessingStatus,
16
17
  LanguageMapping,
17
18
  )
18
19
  from kodit.infrastructure.cloning.git.working_copy import GitWorkingCopyProvider
@@ -103,6 +104,11 @@ class IndexDomainService:
103
104
  files = index.source.working_copy.changed_files()
104
105
  index.delete_snippets_for_files(files)
105
106
 
107
+ # Filter out deleted files - they don't exist on disk anymore
108
+ files = [
109
+ f for f in files if f.file_processing_status != FileProcessingStatus.DELETED
110
+ ]
111
+
106
112
  # Create a set of languages to extract snippets for
107
113
  extensions = {file.extension() for file in files}
108
114
  lang_files_map: dict[str, list[domain_entities.File]] = defaultdict(list)