kodit 0.3.13__tar.gz → 0.3.15__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 (262) hide show
  1. {kodit-0.3.13 → kodit-0.3.15}/Makefile +4 -1
  2. {kodit-0.3.13 → kodit-0.3.15}/PKG-INFO +1 -1
  3. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/api/index.md +1 -1
  4. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/api/openapi.json +1 -1
  5. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/_version.py +2 -2
  6. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/app.py +1 -4
  7. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/embedding/embedding_providers/openai_embedding_provider.py +11 -1
  8. kodit-0.3.13/tests/kodit/infrastructure/embedding/embedding_provider/test_openai_embedding_provider.py → kodit-0.3.15/tests/kodit/infrastructure/embedding/embedding_provider/openai_embedding_provider_test.py +21 -0
  9. kodit-0.3.13/tests/kodit/mcp_test.py +0 -88
  10. {kodit-0.3.13 → kodit-0.3.15}/.claude/commands/debug.md +0 -0
  11. {kodit-0.3.13 → kodit-0.3.15}/.claude/commands/new-requirement.md +0 -0
  12. {kodit-0.3.13 → kodit-0.3.15}/.claude/commands/refactor.md +0 -0
  13. {kodit-0.3.13 → kodit-0.3.15}/.claude/commands/update-docs.md +0 -0
  14. {kodit-0.3.13 → kodit-0.3.15}/.claude/settings.json +0 -0
  15. {kodit-0.3.13 → kodit-0.3.15}/.cursor/rules/kodit.mdc +0 -0
  16. {kodit-0.3.13 → kodit-0.3.15}/.cursor/rules/style.mdc +0 -0
  17. {kodit-0.3.13 → kodit-0.3.15}/.dockerignore +0 -0
  18. {kodit-0.3.13 → kodit-0.3.15}/.github/CODE_OF_CONDUCT.md +0 -0
  19. {kodit-0.3.13 → kodit-0.3.15}/.github/CONTRIBUTING.md +0 -0
  20. {kodit-0.3.13 → kodit-0.3.15}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  21. {kodit-0.3.13 → kodit-0.3.15}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  22. {kodit-0.3.13 → kodit-0.3.15}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  23. {kodit-0.3.13 → kodit-0.3.15}/.github/dependabot.yml +0 -0
  24. {kodit-0.3.13 → kodit-0.3.15}/.github/workflows/docker.yaml +0 -0
  25. {kodit-0.3.13 → kodit-0.3.15}/.github/workflows/docs.yaml +0 -0
  26. {kodit-0.3.13 → kodit-0.3.15}/.github/workflows/pull_request.yaml +0 -0
  27. {kodit-0.3.13 → kodit-0.3.15}/.github/workflows/pypi-test.yaml +0 -0
  28. {kodit-0.3.13 → kodit-0.3.15}/.github/workflows/pypi.yaml +0 -0
  29. {kodit-0.3.13 → kodit-0.3.15}/.github/workflows/test.yaml +0 -0
  30. {kodit-0.3.13 → kodit-0.3.15}/.gitignore +0 -0
  31. {kodit-0.3.13 → kodit-0.3.15}/.python-version +0 -0
  32. {kodit-0.3.13 → kodit-0.3.15}/.vscode/launch.json +0 -0
  33. {kodit-0.3.13 → kodit-0.3.15}/.vscode/settings.json +0 -0
  34. {kodit-0.3.13 → kodit-0.3.15}/CLAUDE.md +0 -0
  35. {kodit-0.3.13 → kodit-0.3.15}/Dockerfile +0 -0
  36. {kodit-0.3.13 → kodit-0.3.15}/LICENSE +0 -0
  37. {kodit-0.3.13 → kodit-0.3.15}/README.md +0 -0
  38. {kodit-0.3.13 → kodit-0.3.15}/alembic.ini +0 -0
  39. {kodit-0.3.13 → kodit-0.3.15}/docs/_index.md +0 -0
  40. {kodit-0.3.13 → kodit-0.3.15}/docs/demos/_index.md +0 -0
  41. {kodit-0.3.13 → kodit-0.3.15}/docs/demos/go-simple-microservice/index.md +0 -0
  42. {kodit-0.3.13 → kodit-0.3.15}/docs/demos/knock-knock-auth/index.md +0 -0
  43. {kodit-0.3.13 → kodit-0.3.15}/docs/developer/index.md +0 -0
  44. {kodit-0.3.13 → kodit-0.3.15}/docs/getting-started/_index.md +0 -0
  45. {kodit-0.3.13 → kodit-0.3.15}/docs/getting-started/installation/index.md +0 -0
  46. {kodit-0.3.13 → kodit-0.3.15}/docs/getting-started/integration/index.md +0 -0
  47. {kodit-0.3.13 → kodit-0.3.15}/docs/getting-started/quick-start/index.md +0 -0
  48. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/_index.md +0 -0
  49. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/api/templates/_content.md.j2 +0 -0
  50. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/api/templates/_example.md.j2 +0 -0
  51. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/api/templates/_object_schema.md.j2 +0 -0
  52. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/api/templates/_security_scheme.md.j2 +0 -0
  53. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/api/templates/api_doc_template.md.j2 +0 -0
  54. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/configuration/index.md +0 -0
  55. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/deployment/docker-compose.yaml +0 -0
  56. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/deployment/index.md +0 -0
  57. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/deployment/kubernetes.yaml +0 -0
  58. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/hosted-kodit/index.md +0 -0
  59. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/indexing/index.md +0 -0
  60. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/mcp/index.md +0 -0
  61. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/sync/index.md +0 -0
  62. {kodit-0.3.13 → kodit-0.3.15}/docs/reference/telemetry/index.md +0 -0
  63. {kodit-0.3.13 → kodit-0.3.15}/pyproject.toml +0 -0
  64. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/.gitignore +0 -0
  65. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/__init__.py +0 -0
  66. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/application/__init__.py +0 -0
  67. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/application/factories/__init__.py +0 -0
  68. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/application/factories/code_indexing_factory.py +0 -0
  69. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/application/services/__init__.py +0 -0
  70. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/application/services/auto_indexing_service.py +0 -0
  71. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/application/services/code_indexing_application_service.py +0 -0
  72. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/application/services/sync_scheduler.py +0 -0
  73. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/cli.py +0 -0
  74. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/config.py +0 -0
  75. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/database.py +0 -0
  76. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/domain/__init__.py +0 -0
  77. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/domain/entities.py +0 -0
  78. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/domain/errors.py +0 -0
  79. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/domain/interfaces.py +0 -0
  80. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/domain/protocols.py +0 -0
  81. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/domain/services/__init__.py +0 -0
  82. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/domain/services/bm25_service.py +0 -0
  83. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/domain/services/embedding_service.py +0 -0
  84. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/domain/services/enrichment_service.py +0 -0
  85. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/domain/services/index_query_service.py +0 -0
  86. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/domain/services/index_service.py +0 -0
  87. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/domain/value_objects.py +0 -0
  88. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/__init__.py +0 -0
  89. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/api/__init__.py +0 -0
  90. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/api/middleware/__init__.py +0 -0
  91. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/api/middleware/auth.py +0 -0
  92. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/api/v1/__init__.py +0 -0
  93. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/api/v1/dependencies.py +0 -0
  94. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/api/v1/routers/__init__.py +0 -0
  95. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/api/v1/routers/indexes.py +0 -0
  96. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/api/v1/routers/search.py +0 -0
  97. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/api/v1/schemas/__init__.py +0 -0
  98. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/api/v1/schemas/context.py +0 -0
  99. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/api/v1/schemas/index.py +0 -0
  100. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/api/v1/schemas/search.py +0 -0
  101. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/bm25/__init__.py +0 -0
  102. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/bm25/bm25_factory.py +0 -0
  103. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/bm25/local_bm25_repository.py +0 -0
  104. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/bm25/vectorchord_bm25_repository.py +0 -0
  105. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/cloning/__init__.py +0 -0
  106. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/cloning/git/__init__.py +0 -0
  107. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/cloning/git/working_copy.py +0 -0
  108. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/cloning/metadata.py +0 -0
  109. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/embedding/__init__.py +0 -0
  110. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/embedding/embedding_factory.py +0 -0
  111. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/embedding/embedding_providers/__init__.py +0 -0
  112. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/embedding/embedding_providers/batching.py +0 -0
  113. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/embedding/embedding_providers/hash_embedding_provider.py +0 -0
  114. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/embedding/embedding_providers/local_embedding_provider.py +0 -0
  115. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/embedding/local_vector_search_repository.py +0 -0
  116. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/embedding/vectorchord_vector_search_repository.py +0 -0
  117. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/enrichment/__init__.py +0 -0
  118. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/enrichment/enrichment_factory.py +0 -0
  119. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/enrichment/local_enrichment_provider.py +0 -0
  120. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/enrichment/null_enrichment_provider.py +0 -0
  121. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/enrichment/openai_enrichment_provider.py +0 -0
  122. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/git/__init__.py +0 -0
  123. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/git/git_utils.py +0 -0
  124. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/ignore/__init__.py +0 -0
  125. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/ignore/ignore_pattern_provider.py +0 -0
  126. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/indexing/__init__.py +0 -0
  127. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/indexing/fusion_service.py +0 -0
  128. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/mappers/__init__.py +0 -0
  129. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/mappers/index_mapper.py +0 -0
  130. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/slicing/__init__.py +0 -0
  131. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/slicing/language_detection_service.py +0 -0
  132. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/slicing/slicer.py +0 -0
  133. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/sqlalchemy/__init__.py +0 -0
  134. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/sqlalchemy/embedding_repository.py +0 -0
  135. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/sqlalchemy/entities.py +0 -0
  136. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/sqlalchemy/index_repository.py +0 -0
  137. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/ui/__init__.py +0 -0
  138. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/ui/progress.py +0 -0
  139. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/infrastructure/ui/spinner.py +0 -0
  140. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/log.py +0 -0
  141. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/mcp.py +0 -0
  142. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/middleware.py +0 -0
  143. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/migrations/README +0 -0
  144. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/migrations/__init__.py +0 -0
  145. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/migrations/env.py +0 -0
  146. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/migrations/script.py.mako +0 -0
  147. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/migrations/versions/4073b33f9436_add_file_processing_flag.py +0 -0
  148. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/migrations/versions/4552eb3f23ce_add_summary.py +0 -0
  149. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/migrations/versions/7c3bbc2ab32b_add_embeddings_table.py +0 -0
  150. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/migrations/versions/85155663351e_initial.py +0 -0
  151. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/migrations/versions/9e53ea8bb3b0_add_authors.py +0 -0
  152. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/migrations/versions/__init__.py +0 -0
  153. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/migrations/versions/c3f5137d30f5_index_all_the_things.py +0 -0
  154. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/reporting.py +0 -0
  155. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/utils/__init__.py +0 -0
  156. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/utils/dump_openapi.py +0 -0
  157. {kodit-0.3.13 → kodit-0.3.15}/src/kodit/utils/path_utils.py +0 -0
  158. {kodit-0.3.13 → kodit-0.3.15}/tests/__init__.py +0 -0
  159. {kodit-0.3.13 → kodit-0.3.15}/tests/conftest.py +0 -0
  160. {kodit-0.3.13 → kodit-0.3.15}/tests/docker-smoke.sh +0 -0
  161. {kodit-0.3.13 → kodit-0.3.15}/tests/experiments/__init__.py +0 -0
  162. {kodit-0.3.13 → kodit-0.3.15}/tests/experiments/cline_prompt_tests/__init__.py +0 -0
  163. {kodit-0.3.13 → kodit-0.3.15}/tests/experiments/cline_prompt_tests/cline_prompt.txt +0 -0
  164. {kodit-0.3.13 → kodit-0.3.15}/tests/experiments/cline_prompt_tests/cline_prompt_test.py +0 -0
  165. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/__init__.py +0 -0
  166. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/app_test.py +0 -0
  167. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/application/__init__.py +0 -0
  168. /kodit-0.3.13/tests/kodit/application/test_code_indexing_application_service.py → /kodit-0.3.15/tests/kodit/application/code_indexing_application_service_test.py +0 -0
  169. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/application/services/__init__.py +0 -0
  170. /kodit-0.3.13/tests/kodit/application/services/test_auto_indexing_service.py → /kodit-0.3.15/tests/kodit/application/services/auto_indexing_service_test.py +0 -0
  171. /kodit-0.3.13/tests/kodit/application/services/test_sync_scheduler.py → /kodit-0.3.15/tests/kodit/application/services/sync_scheduler_test.py +0 -0
  172. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/cli_test.py +0 -0
  173. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/config_test.py +0 -0
  174. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/domain/__init__.py +0 -0
  175. /kodit-0.3.13/tests/kodit/domain/bm25_domain_service_test.py → /kodit-0.3.15/tests/kodit/domain/bm25_service_test.py +0 -0
  176. /kodit-0.3.13/tests/kodit/domain/test_embedding_service.py → /kodit-0.3.15/tests/kodit/domain/embedding_service_test.py +0 -0
  177. /kodit-0.3.13/tests/kodit/domain/enrichment_domain_service_test.py → /kodit-0.3.15/tests/kodit/domain/enrichment_service_test.py +0 -0
  178. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/domain/entities_test.py +0 -0
  179. /kodit-0.3.13/tests/kodit/domain/test_language_mapping.py → /kodit-0.3.15/tests/kodit/domain/language_detection_service_test.py +0 -0
  180. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/domain/services/__init__.py +0 -0
  181. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/domain/services/index_service_test.py +0 -0
  182. /kodit-0.3.13/tests/kodit/domain/test_multi_search_result.py → /kodit-0.3.15/tests/kodit/domain/value_objects_test.py +0 -0
  183. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/e2e.py +0 -0
  184. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/__init__.py +0 -0
  185. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/bm25/__init__.py +0 -0
  186. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/bm25/local_bm25_repository_test.py +0 -0
  187. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/bm25/vectorchord_bm25_repository_test.py +0 -0
  188. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/cloning/git_cloning/__init__.py +0 -0
  189. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/cloning/git_cloning/working_copy_test.py +0 -0
  190. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/embedding/__init__.py +0 -0
  191. /kodit-0.3.13/tests/kodit/infrastructure/embedding/test_batching.py → /kodit-0.3.15/tests/kodit/infrastructure/embedding/batching_test.py +0 -0
  192. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/embedding/embedding_factory_test.py +0 -0
  193. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/embedding/embedding_provider/__init__.py +0 -0
  194. /kodit-0.3.13/tests/kodit/infrastructure/embedding/embedding_provider/test_hash_embedding_provider.py → /kodit-0.3.15/tests/kodit/infrastructure/embedding/embedding_provider/hash_embedding_provider_test.py +0 -0
  195. /kodit-0.3.13/tests/kodit/infrastructure/embedding/embedding_provider/test_local_embedding_provider.py → /kodit-0.3.15/tests/kodit/infrastructure/embedding/embedding_provider/local_embedding_provider_test.py +0 -0
  196. /kodit-0.3.13/tests/kodit/infrastructure/embedding/test_local_vector_search_repository.py → /kodit-0.3.15/tests/kodit/infrastructure/embedding/local_vector_search_repository_test.py +0 -0
  197. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/embedding/test_embedding_integration.py +0 -0
  198. /kodit-0.3.13/tests/kodit/infrastructure/embedding/test_vectorchord_vector_search_repository.py → /kodit-0.3.15/tests/kodit/infrastructure/embedding/vectorchord_vector_search_repository_test.py +0 -0
  199. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/enrichment/__init__.py +0 -0
  200. /kodit-0.3.13/tests/kodit/infrastructure/enrichment/test_enrichment_factory.py → /kodit-0.3.15/tests/kodit/infrastructure/enrichment/enrichment_factory_test.py +0 -0
  201. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/enrichment/enrichment_provider/__init__.py +0 -0
  202. /kodit-0.3.13/tests/kodit/infrastructure/enrichment/enrichment_provider/test_local_enrichment_provider.py → /kodit-0.3.15/tests/kodit/infrastructure/enrichment/enrichment_provider/local_enrichment_provider_test.py +0 -0
  203. /kodit-0.3.13/tests/kodit/infrastructure/enrichment/enrichment_provider/test_null_enrichment_provider.py → /kodit-0.3.15/tests/kodit/infrastructure/enrichment/enrichment_provider/null_enrichment_provider_test.py +0 -0
  204. /kodit-0.3.13/tests/kodit/infrastructure/enrichment/enrichment_provider/test_openai_enrichment_provider.py → /kodit-0.3.15/tests/kodit/infrastructure/enrichment/enrichment_provider/openai_enrichment_provider_test.py +0 -0
  205. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/mappers/__init__.py +0 -0
  206. /kodit-0.3.13/tests/kodit/infrastructure/mappers/test_index_mapper.py → /kodit-0.3.15/tests/kodit/infrastructure/mappers/index_mapper_test.py +0 -0
  207. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/__init__.py +0 -0
  208. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/__init__.py +0 -0
  209. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/c/main.c +0 -0
  210. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/c/models.c +0 -0
  211. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/c/models.h +0 -0
  212. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/c/utils.c +0 -0
  213. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/c/utils.h +0 -0
  214. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/cpp/main.cpp +0 -0
  215. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/cpp/models.cpp +0 -0
  216. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/cpp/models.hpp +0 -0
  217. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/cpp/utils.cpp +0 -0
  218. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/cpp/utils.hpp +0 -0
  219. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/csharp/Main.cs +0 -0
  220. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/csharp/Models.cs +0 -0
  221. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/csharp/Utils.cs +0 -0
  222. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/css/components.css +0 -0
  223. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/css/main.css +0 -0
  224. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/css/utilities.css +0 -0
  225. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/go/main.go +0 -0
  226. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/go/models.go +0 -0
  227. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/go/utils.go +0 -0
  228. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/html/components.html +0 -0
  229. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/html/forms.html +0 -0
  230. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/html/main.html +0 -0
  231. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/java/Main.java +0 -0
  232. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/java/Models.java +0 -0
  233. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/java/Utils.java +0 -0
  234. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/javascript/main.js +0 -0
  235. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/javascript/models.js +0 -0
  236. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/javascript/utils.js +0 -0
  237. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/python/__init__.py +0 -0
  238. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/python/main.py +0 -0
  239. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/python/models.py +0 -0
  240. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/python/utils.py +0 -0
  241. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/rust/main.rs +0 -0
  242. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/rust/models.rs +0 -0
  243. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/data/rust/utils.rs +0 -0
  244. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/slicing/slicer_test.py +0 -0
  245. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/snippets/__init__.py +0 -0
  246. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/snippets/csharp.cs +0 -0
  247. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/snippets/golang.go +0 -0
  248. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/snippets/javascript.js +0 -0
  249. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/snippets/knock_knock_server.py +0 -0
  250. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/snippets/python.py +0 -0
  251. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/snippets/typescript.tsx +0 -0
  252. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/infrastructure/sqlalchemy/__init__.py +0 -0
  253. /kodit-0.3.13/tests/kodit/infrastructure/sqlalchemy/test_embedding_repository.py → /kodit-0.3.15/tests/kodit/infrastructure/sqlalchemy/embedding_repository_test.py +0 -0
  254. {kodit-0.3.13 → kodit-0.3.15}/tests/kodit/log_test.py +0 -0
  255. /kodit-0.3.13/tests/kodit/mcp_stdio_test.py → /kodit-0.3.15/tests/kodit/mcp_test.py +0 -0
  256. {kodit-0.3.13 → kodit-0.3.15}/tests/performance/__init__.py +0 -0
  257. {kodit-0.3.13 → kodit-0.3.15}/tests/performance/similarity.py +0 -0
  258. {kodit-0.3.13 → kodit-0.3.15}/tests/smoke.sh +0 -0
  259. {kodit-0.3.13 → kodit-0.3.15}/tests/utils/__init__.py +0 -0
  260. /kodit-0.3.13/tests/utils/test_path_utils.py → /kodit-0.3.15/tests/utils/path_utils_test.py +0 -0
  261. {kodit-0.3.13 → kodit-0.3.15}/tests/vectorchord-smoke.sh +0 -0
  262. {kodit-0.3.13 → kodit-0.3.15}/uv.lock +0 -0
@@ -1,7 +1,10 @@
1
1
  # Makefile for Kodit
2
2
 
3
3
  # Generate OpenAPI json schema from the FastAPI app
4
- openapi:
4
+ build:
5
+ uv build
6
+
7
+ openapi: build
5
8
  uv run src/kodit/utils/dump_openapi.py --out docs/reference/api/ kodit.app:app
6
9
 
7
10
  openapi-check: openapi
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kodit
3
- Version: 0.3.13
3
+ Version: 0.3.15
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/
@@ -12,7 +12,7 @@ look at the [hosted version](https://kodit.helix.ml/docs).
12
12
  This is the REST API for the Kodit server. Please refer to the
13
13
  [Kodit documentation](https://docs.helix.ml/kodit/) for more information.
14
14
 
15
- Current version: 0.3.13
15
+ Current version: 0.3.15
16
16
 
17
17
  ## Authentication
18
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.13"
6
+ "version": "0.3.15"
7
7
  },
8
8
  "paths": {
9
9
  "/healthz": {
@@ -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.13'
21
- __version_tuple__ = version_tuple = (0, 3, 13)
20
+ __version__ = version = '0.3.15'
21
+ __version_tuple__ = version_tuple = (0, 3, 15)
@@ -13,7 +13,6 @@ from kodit.application.services.sync_scheduler import SyncSchedulerService
13
13
  from kodit.config import AppContext
14
14
  from kodit.infrastructure.api.v1.routers import indexes_router, search_router
15
15
  from kodit.infrastructure.api.v1.schemas.context import AppLifespanState
16
- from kodit.log import configure_logging, configure_telemetry
17
16
  from kodit.mcp import mcp
18
17
  from kodit.middleware import ASGICancelledErrorMiddleware, logging_middleware
19
18
 
@@ -27,10 +26,8 @@ async def app_lifespan(_: FastAPI) -> AsyncIterator[AppLifespanState]:
27
26
  """Manage application lifespan for auto-indexing and sync."""
28
27
  global _auto_indexing_service, _sync_scheduler_service # noqa: PLW0603
29
28
 
30
- # Setup app_context and implement logging and telemetry
29
+ # App context has already been configured by the CLI.
31
30
  app_context = AppContext()
32
- configure_logging(app_context)
33
- configure_telemetry(app_context)
34
31
 
35
32
  # Start auto-indexing service
36
33
  db = await app_context.get_db()
@@ -52,7 +52,17 @@ class OpenAIEmbeddingProvider(EmbeddingProvider):
52
52
  def _get_encoding(self) -> "Encoding":
53
53
  """Return (and cache) the tiktoken encoding for the chosen model."""
54
54
  if self._encoding is None:
55
- self._encoding = tiktoken.encoding_for_model(self.model_name)
55
+ try:
56
+ self._encoding = tiktoken.encoding_for_model(self.model_name)
57
+ except KeyError:
58
+ # If the model is not supported by tiktoken, use a default encoding
59
+ self.log.info(
60
+ "Model not supported by tiktoken, using default encoding",
61
+ model_name=self.model_name,
62
+ default_encoding="o200k_base",
63
+ )
64
+ self._encoding = tiktoken.get_encoding("o200k_base")
65
+
56
66
  return self._encoding
57
67
 
58
68
  def _split_sub_batches(
@@ -260,3 +260,24 @@ class TestOpenAIEmbeddingProvider:
260
260
 
261
261
  # Should handle malformed response gracefully by returning empty results
262
262
  assert len(results) == 0
263
+
264
+ @pytest.mark.asyncio
265
+ async def test_non_openai_model_name(self) -> None:
266
+ """Test embedding with a non-OpenAI model name."""
267
+ mock_client = MagicMock()
268
+ mock_response = MagicMock()
269
+ mock_response.data = [MagicMock(embedding=[0.1] * 1500)]
270
+ mock_client.embeddings.create = AsyncMock(return_value=mock_response)
271
+
272
+ provider = OpenAIEmbeddingProvider(
273
+ openai_client=mock_client, model_name="non-openai-model"
274
+ )
275
+
276
+ # This should not crash
277
+ test_requests = [EmbeddingRequest(snippet_id=1, text="test")]
278
+ await anext(provider.embed(test_requests))
279
+
280
+ # Verify the custom model was used
281
+ mock_client.embeddings.create.assert_called_once_with(
282
+ input=["test"], model="non-openai-model"
283
+ )
@@ -1,88 +0,0 @@
1
- """Tests for the MCP server implementation."""
2
-
3
- import pytest
4
- from fastmcp import Client
5
- from mcp.types import TextContent
6
- from sqlalchemy.ext.asyncio import AsyncSession
7
-
8
- from kodit.domain.value_objects import FileProcessingStatus
9
- from kodit.infrastructure.sqlalchemy.entities import (
10
- File,
11
- Index,
12
- Snippet,
13
- Source,
14
- SourceType,
15
- )
16
- from kodit.mcp import mcp
17
-
18
-
19
- @pytest.mark.asyncio
20
- async def test_mcp_server_basic_functionality(session: AsyncSession) -> None:
21
- """Test basic MCP server functionality with real database."""
22
- # Create test data
23
- source = Source(
24
- uri="file:///test/repo",
25
- cloned_path="/tmp/test/repo", # noqa: S108
26
- source_type=SourceType.FOLDER,
27
- )
28
- session.add(source)
29
- await session.flush()
30
-
31
- index = Index(source_id=source.id)
32
- session.add(index)
33
- await session.flush()
34
-
35
- file = File(
36
- created_at=source.created_at,
37
- updated_at=source.updated_at,
38
- source_id=source.id,
39
- mime_type="text/plain",
40
- uri="file:///test/repo/example.py",
41
- cloned_path="/tmp/test/repo/example.py", # noqa: S108
42
- sha256="abc123",
43
- size_bytes=100,
44
- extension="py",
45
- file_processing_status=FileProcessingStatus.CLEAN,
46
- )
47
- session.add(file)
48
- await session.flush()
49
-
50
- snippet = Snippet(
51
- file_id=file.id,
52
- index_id=index.id,
53
- content="def hello_world():\n return 'Hello, World!'",
54
- summary="Simple hello world function",
55
- )
56
- session.add(snippet)
57
- await session.commit()
58
-
59
- # Test MCP client connection
60
- async with Client(mcp) as client:
61
- # Test tool listing
62
- tools = await client.list_tools()
63
- assert len(tools) == 2
64
- tool_names = {tool.name for tool in tools}
65
- assert "search" in tool_names
66
- assert "get_version" in tool_names
67
-
68
- # Test version tool
69
- result = await client.call_tool("get_version")
70
- assert len(result.content) == 1
71
- content = result.content[0]
72
- assert isinstance(content, TextContent)
73
- assert content.text is not None
74
-
75
- # Test search tool
76
- result = await client.call_tool(
77
- "search",
78
- {
79
- "user_intent": "Find hello world functions",
80
- "related_file_paths": [],
81
- "related_file_contents": [],
82
- "keywords": ["hello", "world"],
83
- },
84
- )
85
- assert len(result.content) == 1
86
- content = result.content[0]
87
- assert isinstance(content, TextContent)
88
- assert content.text is not None
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes