kodit 0.3.1__tar.gz → 0.3.2__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 (215) hide show
  1. kodit-0.3.2/.claude/commands/new-requirement.md +534 -0
  2. {kodit-0.3.1 → kodit-0.3.2}/PKG-INFO +1 -1
  3. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/_version.py +2 -2
  4. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/application/services/code_indexing_application_service.py +15 -12
  5. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/cli.py +35 -11
  6. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/domain/entities.py +9 -1
  7. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/domain/repositories.py +5 -5
  8. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/domain/services/indexing_service.py +3 -3
  9. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/domain/services/snippet_service.py +22 -18
  10. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/domain/value_objects.py +82 -39
  11. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/indexing/index_repository.py +33 -20
  12. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/sqlalchemy/snippet_repository.py +86 -78
  13. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/log.py +4 -1
  14. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/mcp.py +1 -6
  15. kodit-0.3.2/src/kodit/migrations/versions/4552eb3f23ce_add_summary.py +34 -0
  16. {kodit-0.3.1 → kodit-0.3.2}/tests/conftest.py +22 -7
  17. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/application/test_code_indexing_application_service.py +0 -3
  18. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/cli_test.py +283 -0
  19. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/domain/snippet_domain_service_test.py +51 -19
  20. kodit-0.3.2/tests/kodit/domain/test_multi_search_result.py +224 -0
  21. kodit-0.3.2/tests/kodit/infrastructure/bm25/__init__.py +1 -0
  22. kodit-0.3.2/tests/kodit/infrastructure/bm25/local_bm25_repository_test.py +202 -0
  23. kodit-0.3.1/tests/kodit/infrastructure/test_vectorchord_bm25_repository.py → kodit-0.3.2/tests/kodit/infrastructure/bm25/vectorchord_bm25_repository_test.py +5 -0
  24. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/embedding/test_embedding_integration.py +35 -10
  25. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/embedding/test_local_vector_search_repository.py +12 -3
  26. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/embedding/test_vectorchord_vector_search_repository.py +5 -0
  27. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/sqlalchemy/test_snippet_repository.py +52 -33
  28. kodit-0.3.2/tests/kodit/log_test.py +57 -0
  29. kodit-0.3.2/tests/kodit/mcp_test.py +103 -0
  30. {kodit-0.3.1 → kodit-0.3.2}/tests/performance/similarity.py +1 -0
  31. kodit-0.3.1/tests/kodit/log_test.py +0 -20
  32. kodit-0.3.1/tests/kodit/mcp_test.py +0 -48
  33. {kodit-0.3.1 → kodit-0.3.2}/.claude/commands/debug.md +0 -0
  34. {kodit-0.3.1 → kodit-0.3.2}/.claude/commands/refactor.md +0 -0
  35. {kodit-0.3.1 → kodit-0.3.2}/.claude/settings.json +0 -0
  36. {kodit-0.3.1 → kodit-0.3.2}/.cursor/rules/kodit.mdc +0 -0
  37. {kodit-0.3.1 → kodit-0.3.2}/.cursor/rules/style.mdc +0 -0
  38. {kodit-0.3.1 → kodit-0.3.2}/.dockerignore +0 -0
  39. {kodit-0.3.1 → kodit-0.3.2}/.github/CODE_OF_CONDUCT.md +0 -0
  40. {kodit-0.3.1 → kodit-0.3.2}/.github/CONTRIBUTING.md +0 -0
  41. {kodit-0.3.1 → kodit-0.3.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  42. {kodit-0.3.1 → kodit-0.3.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  43. {kodit-0.3.1 → kodit-0.3.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  44. {kodit-0.3.1 → kodit-0.3.2}/.github/dependabot.yml +0 -0
  45. {kodit-0.3.1 → kodit-0.3.2}/.github/workflows/docker.yaml +0 -0
  46. {kodit-0.3.1 → kodit-0.3.2}/.github/workflows/docs.yaml +0 -0
  47. {kodit-0.3.1 → kodit-0.3.2}/.github/workflows/pull_request.yaml +0 -0
  48. {kodit-0.3.1 → kodit-0.3.2}/.github/workflows/pypi-test.yaml +0 -0
  49. {kodit-0.3.1 → kodit-0.3.2}/.github/workflows/pypi.yaml +0 -0
  50. {kodit-0.3.1 → kodit-0.3.2}/.github/workflows/test.yaml +0 -0
  51. {kodit-0.3.1 → kodit-0.3.2}/.gitignore +0 -0
  52. {kodit-0.3.1 → kodit-0.3.2}/.python-version +0 -0
  53. {kodit-0.3.1 → kodit-0.3.2}/.vscode/launch.json +0 -0
  54. {kodit-0.3.1 → kodit-0.3.2}/.vscode/settings.json +0 -0
  55. {kodit-0.3.1 → kodit-0.3.2}/CLAUDE.md +0 -0
  56. {kodit-0.3.1 → kodit-0.3.2}/Dockerfile +0 -0
  57. {kodit-0.3.1 → kodit-0.3.2}/LICENSE +0 -0
  58. {kodit-0.3.1 → kodit-0.3.2}/README.md +0 -0
  59. {kodit-0.3.1 → kodit-0.3.2}/alembic.ini +0 -0
  60. {kodit-0.3.1 → kodit-0.3.2}/docs/_index.md +0 -0
  61. {kodit-0.3.1 → kodit-0.3.2}/docs/demos/_index.md +0 -0
  62. {kodit-0.3.1 → kodit-0.3.2}/docs/demos/go-simple-microservice/index.md +0 -0
  63. {kodit-0.3.1 → kodit-0.3.2}/docs/demos/knock-knock-auth/index.md +0 -0
  64. {kodit-0.3.1 → kodit-0.3.2}/docs/developer/index.md +0 -0
  65. {kodit-0.3.1 → kodit-0.3.2}/docs/getting-started/_index.md +0 -0
  66. {kodit-0.3.1 → kodit-0.3.2}/docs/getting-started/installation/index.md +0 -0
  67. {kodit-0.3.1 → kodit-0.3.2}/docs/getting-started/integration/index.md +0 -0
  68. {kodit-0.3.1 → kodit-0.3.2}/docs/getting-started/quick-start/index.md +0 -0
  69. {kodit-0.3.1 → kodit-0.3.2}/docs/reference/_index.md +0 -0
  70. {kodit-0.3.1 → kodit-0.3.2}/docs/reference/configuration/index.md +0 -0
  71. {kodit-0.3.1 → kodit-0.3.2}/docs/reference/deployment/docker-compose.yaml +0 -0
  72. {kodit-0.3.1 → kodit-0.3.2}/docs/reference/deployment/index.md +0 -0
  73. {kodit-0.3.1 → kodit-0.3.2}/docs/reference/deployment/kubernetes.yaml +0 -0
  74. {kodit-0.3.1 → kodit-0.3.2}/docs/reference/indexing/index.md +0 -0
  75. {kodit-0.3.1 → kodit-0.3.2}/docs/reference/mcp/index.md +0 -0
  76. {kodit-0.3.1 → kodit-0.3.2}/docs/reference/telemetry/index.md +0 -0
  77. {kodit-0.3.1 → kodit-0.3.2}/pyproject.toml +0 -0
  78. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/.gitignore +0 -0
  79. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/__init__.py +0 -0
  80. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/app.py +0 -0
  81. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/application/__init__.py +0 -0
  82. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/application/factories/__init__.py +0 -0
  83. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/application/factories/code_indexing_factory.py +0 -0
  84. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/application/services/__init__.py +0 -0
  85. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/config.py +0 -0
  86. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/database.py +0 -0
  87. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/domain/__init__.py +0 -0
  88. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/domain/enums.py +0 -0
  89. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/domain/errors.py +0 -0
  90. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/domain/interfaces.py +0 -0
  91. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/domain/services/__init__.py +0 -0
  92. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/domain/services/bm25_service.py +0 -0
  93. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/domain/services/embedding_service.py +0 -0
  94. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/domain/services/enrichment_service.py +0 -0
  95. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/domain/services/ignore_service.py +0 -0
  96. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/domain/services/snippet_extraction_service.py +0 -0
  97. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/domain/services/source_service.py +0 -0
  98. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/__init__.py +0 -0
  99. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/bm25/__init__.py +0 -0
  100. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/bm25/bm25_factory.py +0 -0
  101. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/bm25/local_bm25_repository.py +0 -0
  102. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/bm25/vectorchord_bm25_repository.py +0 -0
  103. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/cloning/__init__.py +0 -0
  104. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/cloning/folder/__init__.py +0 -0
  105. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/cloning/folder/factory.py +0 -0
  106. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/cloning/folder/working_copy.py +0 -0
  107. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/cloning/git/__init__.py +0 -0
  108. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/cloning/git/factory.py +0 -0
  109. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/cloning/git/working_copy.py +0 -0
  110. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/cloning/metadata.py +0 -0
  111. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/embedding/__init__.py +0 -0
  112. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/embedding/embedding_factory.py +0 -0
  113. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/embedding/embedding_providers/__init__.py +0 -0
  114. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/embedding/embedding_providers/batching.py +0 -0
  115. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/embedding/embedding_providers/hash_embedding_provider.py +0 -0
  116. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/embedding/embedding_providers/local_embedding_provider.py +0 -0
  117. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/embedding/embedding_providers/openai_embedding_provider.py +0 -0
  118. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/embedding/local_vector_search_repository.py +0 -0
  119. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/embedding/vectorchord_vector_search_repository.py +0 -0
  120. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/enrichment/__init__.py +0 -0
  121. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/enrichment/enrichment_factory.py +0 -0
  122. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/enrichment/local_enrichment_provider.py +0 -0
  123. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/enrichment/null_enrichment_provider.py +0 -0
  124. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/enrichment/openai_enrichment_provider.py +0 -0
  125. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/git/__init__.py +0 -0
  126. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/git/git_utils.py +0 -0
  127. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/ignore/__init__.py +0 -0
  128. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/ignore/ignore_pattern_provider.py +0 -0
  129. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/indexing/__init__.py +0 -0
  130. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/indexing/auto_indexing_service.py +0 -0
  131. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/indexing/fusion_service.py +0 -0
  132. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/indexing/indexing_factory.py +0 -0
  133. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/indexing/snippet_domain_service_factory.py +0 -0
  134. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/snippet_extraction/__init__.py +0 -0
  135. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/snippet_extraction/language_detection_service.py +0 -0
  136. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/snippet_extraction/languages/csharp.scm +0 -0
  137. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/snippet_extraction/languages/go.scm +0 -0
  138. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/snippet_extraction/languages/java.scm +0 -0
  139. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/snippet_extraction/languages/javascript.scm +0 -0
  140. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/snippet_extraction/languages/python.scm +0 -0
  141. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/snippet_extraction/languages/typescript.scm +0 -0
  142. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/snippet_extraction/snippet_extraction_factory.py +0 -0
  143. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/snippet_extraction/snippet_query_provider.py +0 -0
  144. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/snippet_extraction/tree_sitter_snippet_extractor.py +0 -0
  145. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/sqlalchemy/__init__.py +0 -0
  146. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/sqlalchemy/embedding_repository.py +0 -0
  147. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/sqlalchemy/file_repository.py +0 -0
  148. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/sqlalchemy/repository.py +0 -0
  149. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/ui/__init__.py +0 -0
  150. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/ui/progress.py +0 -0
  151. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/infrastructure/ui/spinner.py +0 -0
  152. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/middleware.py +0 -0
  153. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/migrations/README +0 -0
  154. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/migrations/__init__.py +0 -0
  155. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/migrations/env.py +0 -0
  156. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/migrations/script.py.mako +0 -0
  157. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/migrations/versions/7c3bbc2ab32b_add_embeddings_table.py +0 -0
  158. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/migrations/versions/85155663351e_initial.py +0 -0
  159. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/migrations/versions/9e53ea8bb3b0_add_authors.py +0 -0
  160. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/migrations/versions/__init__.py +0 -0
  161. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/migrations/versions/c3f5137d30f5_index_all_the_things.py +0 -0
  162. {kodit-0.3.1 → kodit-0.3.2}/src/kodit/reporting.py +0 -0
  163. {kodit-0.3.1 → kodit-0.3.2}/tests/__init__.py +0 -0
  164. {kodit-0.3.1 → kodit-0.3.2}/tests/docker-smoke.sh +0 -0
  165. {kodit-0.3.1 → kodit-0.3.2}/tests/experiments/__init__.py +0 -0
  166. {kodit-0.3.1 → kodit-0.3.2}/tests/experiments/cline_prompt_tests/__init__.py +0 -0
  167. {kodit-0.3.1 → kodit-0.3.2}/tests/experiments/cline_prompt_tests/cline_prompt.txt +0 -0
  168. {kodit-0.3.1 → kodit-0.3.2}/tests/experiments/cline_prompt_tests/cline_prompt_test.py +0 -0
  169. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/__init__.py +0 -0
  170. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/application/__init__.py +0 -0
  171. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/config_test.py +0 -0
  172. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/domain/__init__.py +0 -0
  173. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/domain/bm25_domain_service_test.py +0 -0
  174. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/domain/enrichment_domain_service_test.py +0 -0
  175. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/domain/snippet_extraction_domain_service_test.py +0 -0
  176. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/domain/test_embedding_service.py +0 -0
  177. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/domain/test_language_mapping.py +0 -0
  178. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/e2e.py +0 -0
  179. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/__init__.py +0 -0
  180. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/cloning/git_cloning/__init__.py +0 -0
  181. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/cloning/git_cloning/factory_test.py +0 -0
  182. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/cloning/git_cloning/working_copy_test.py +0 -0
  183. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/embedding/__init__.py +0 -0
  184. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/embedding/embedding_factory_test.py +0 -0
  185. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/embedding/embedding_provider/__init__.py +0 -0
  186. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/embedding/embedding_provider/test_hash_embedding_provider.py +0 -0
  187. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/embedding/embedding_provider/test_local_embedding_provider.py +0 -0
  188. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/embedding/embedding_provider/test_openai_embedding_provider.py +0 -0
  189. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/embedding/test_batching.py +0 -0
  190. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/enrichment/__init__.py +0 -0
  191. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/enrichment/enrichment_provider/__init__.py +0 -0
  192. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/enrichment/enrichment_provider/test_local_enrichment_provider.py +0 -0
  193. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/enrichment/enrichment_provider/test_null_enrichment_provider.py +0 -0
  194. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/enrichment/enrichment_provider/test_openai_enrichment_provider.py +0 -0
  195. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/enrichment/test_enrichment_factory.py +0 -0
  196. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/git/__init__.py +0 -0
  197. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/git/test_git_utils.py +0 -0
  198. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/indexing/__init__.py +0 -0
  199. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/indexing/indexing_repository_test.py +0 -0
  200. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/indexing/test_auto_indexing_service.py +0 -0
  201. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/snippets/__init__.py +0 -0
  202. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/snippets/csharp.cs +0 -0
  203. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/snippets/golang.go +0 -0
  204. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/snippets/javascript.js +0 -0
  205. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/snippets/knock_knock_server.py +0 -0
  206. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/snippets/python.py +0 -0
  207. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/snippets/typescript.tsx +0 -0
  208. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/source/__init__.py +0 -0
  209. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/source/source_service_test.py +0 -0
  210. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/sqlalchemy/__init__.py +0 -0
  211. {kodit-0.3.1 → kodit-0.3.2}/tests/kodit/infrastructure/sqlalchemy/test_embedding_repository.py +0 -0
  212. {kodit-0.3.1 → kodit-0.3.2}/tests/performance/__init__.py +0 -0
  213. {kodit-0.3.1 → kodit-0.3.2}/tests/smoke.sh +0 -0
  214. {kodit-0.3.1 → kodit-0.3.2}/tests/vectorchord-smoke.sh +0 -0
  215. {kodit-0.3.1 → kodit-0.3.2}/uv.lock +0 -0
@@ -0,0 +1,534 @@
1
+ # Build Product Requirements Prompt
2
+
3
+ ## Instructions
4
+
5
+ Create a comprehensive Product Requirement Prompt (PRP) with user-centered requirements gathering for: **$ARGUMENTS**
6
+
7
+ ## Intelligent Workflow Selection
8
+
9
+ **Analyze `$ARGUMENTS` complexity and choose approach:**
10
+
11
+ - **Simple/Clear Request** (e.g., "add a login button"): Skip to Phase 3 (Research & PRP Generation)
12
+ - **Moderate Request** (e.g., "user authentication system"): Start with Phase 2 (Targeted Questions)
13
+ - **Complex/Vague Request** (e.g., "improve user experience"): Start with Phase 1 (Discovery)
14
+
15
+ ## Full Workflow
16
+
17
+ ### Phase 1: Discovery Questions (Complex/Vague Requests Only)
18
+
19
+ Ask 5 strategic discovery questions to understand the problem space:
20
+
21
+ ```markdown
22
+ I need to understand the broader context first. Let me ask 5 key questions:
23
+
24
+ ## Discovery Questions
25
+
26
+ **Q1: Will users interact with this feature through a visual interface?**
27
+ Default: Yes (most features have UI components)
28
+
29
+ **Q2: Does this involve user data or require authentication?**
30
+ Default: Yes (better to plan for security)
31
+
32
+ **Q3: Do users currently have a workaround for this problem?**
33
+ Default: No (assuming this solves a new need)
34
+
35
+ **Q4: Will this need to integrate with external services or APIs?**
36
+ Default: No (simpler implementation)
37
+
38
+ **Q5: Is this a completely new feature or an enhancement to existing functionality?**
39
+ Default: Enhancement (most requests build on existing features)
40
+
41
+ *You can answer any/all questions or just say "continue" to use the defaults.*
42
+ ```
43
+
44
+ ### Phase 2: Technical Context Questions (Moderate+ Requests)
45
+
46
+ Ask 5 targeted technical questions informed by codebase analysis:
47
+
48
+ ```markdown
49
+ Now let me ask about technical implementation details:
50
+
51
+ ## Technical Questions
52
+
53
+ **Q6: [Specific question about existing similar features/components]**
54
+ Default: [Codebase-informed default]
55
+
56
+ **Q7: [Question about data layer/database requirements]**
57
+ Default: [Pattern-based default]
58
+
59
+ **Q8: [Question about API/service layer approach]**
60
+ Default: [Architecture-consistent default]
61
+
62
+ **Q9: [Question about testing/validation approach]**
63
+ Default: [Project-standard default]
64
+
65
+ **Q10: [Question about deployment/configuration needs]**
66
+ Default: [Environment-appropriate default]
67
+
68
+ *Answer what you know, or say "continue" for smart defaults based on your codebase.*
69
+ ```
70
+
71
+ ### Phase 3: Research & Context Gathering
72
+
73
+ **Automatically perform comprehensive research:**
74
+
75
+ 1. **Web Research** (when beneficial):
76
+ - Research best practices and current standards
77
+ - Look up relevant library/framework documentation using mcp__kodit__search (if available)
78
+ - Find example implementations and patterns using mcp__kodit__search (if available)
79
+ - Gather security and performance considerations
80
+
81
+ 2. **Codebase Analysis** (when tools available):
82
+ - Analyze overall architecture and patterns
83
+ - Identify similar existing features using mcp__kodit__search (if available)
84
+ - Understand technology stack and conventions
85
+ - Find integration points and dependencies
86
+
87
+ 3. **Technical Context**:
88
+ - Identify affected files and components
89
+ - Understand data flow and business logic
90
+ - Map out user interactions and workflows
91
+ - Document technical constraints and opportunities
92
+
93
+ ### Phase 4: Generate Comprehensive PRP
94
+
95
+ Create a complete Product Requirement Prompt that combines user requirements with
96
+ implementation guidance. Use the following template to create a new markdown file in
97
+ docs/requirements/YYYY-MM-DD-HHMM-[slug].md, where `[slug]` is a slug extracted from the
98
+ requirement and `YYYY-MM-DD-HHMM` is parsed from the system's `date` command.
99
+
100
+ ---
101
+
102
+ ## PRP Output Template
103
+
104
+ ```markdown
105
+ # Product Requirement Prompt: [Feature Name]
106
+
107
+ **Generated:** [timestamp]
108
+ **Original Request:** $ARGUMENTS
109
+ **Complexity Level:** [Simple/Moderate/Complex]
110
+ **Questions Asked:** [X/10]
111
+
112
+ ## Executive Summary
113
+
114
+ ### Goal
115
+ [Concise statement of what this PRP aims to achieve based on discovery]
116
+
117
+ ### Why
118
+ - **Business Value:** [Based on user needs discovered]
119
+ - **User Benefits:** [Who benefits and how]
120
+ - **Technical Benefits:** [System improvements]
121
+ - **Strategic Alignment:** [How it fits with existing functionality]
122
+
123
+ ### What
124
+ **Core Functionality:**
125
+ [Detailed explanation based on all gathered context including:]
126
+ - Primary features and capabilities
127
+ - User interaction patterns
128
+ - System behaviors and rules
129
+ - Integration requirements
130
+ - Scope and boundaries
131
+
132
+ ## Requirements Analysis
133
+
134
+ ### User Requirements Summary
135
+ [Synthesis of discovery answers and user needs]
136
+
137
+ ### Technical Requirements Summary
138
+ [Synthesis of technical context and codebase analysis]
139
+
140
+ ### Key Decisions Made
141
+ - [Decision 1]: [Reasoning based on questions/research]
142
+ - [Decision 2]: [Reasoning based on questions/research]
143
+ - [Decision 3]: [Reasoning based on questions/research]
144
+
145
+ ## Architecture & Implementation
146
+
147
+ ### Technical Overview
148
+ - **Architecture Pattern:** [Based on codebase analysis]
149
+ - **Technology Stack:** [Current stack + any additions needed]
150
+ - **Integration Points:** [Internal and external connections]
151
+ - **Data Flow:** [How information moves through the system]
152
+
153
+ ### Directory Structure
154
+
155
+ **Current Relevant Structure:**
156
+ ```
157
+
158
+ [Tree representation of current relevant files/directories]
159
+
160
+ ```
161
+
162
+ **Proposed Changes:**
163
+ ```
164
+
165
+ [Tree showing new/modified files with descriptions]
166
+ ├── [existing_dir]/
167
+ │ ├── [existing_file.ext]
168
+ │ ├── [new_file.ext] - [purpose and contents description]
169
+ │ └── [modified_file.ext] - [changes needed]
170
+
171
+ ```
172
+
173
+ ### Files to Reference
174
+ - **[file_path]** (existing) - [How to use as reference/pattern]
175
+ - **[documentation_url]** (external) - [Relevant sections for implementation]
176
+ - **[similar_feature_path]** (existing) - [Pattern to follow/extend]
177
+ - **[library_docs_url]** (external) - [Specific methods/approaches to use]
178
+
179
+ ### Implementation Specifications
180
+
181
+ #### [Component Category 1: e.g., Data Layer]
182
+ **File: `[file_path]`**
183
+ Purpose: [Specific role in the implementation]
184
+
185
+ ```[language]
186
+ [Sample code structure or key implementation patterns]
187
+ // Key considerations:
188
+ // - [Specific requirement from discovery]
189
+ // - [Pattern to follow from codebase]
190
+ // - [Best practice from research]
191
+ ```
192
+
193
+ #### [Component Category 2: e.g., Business Logic]
194
+
195
+ **File: `[file_path]`**
196
+ Purpose: [Specific role in the implementation]
197
+
198
+ ```[language]
199
+ [Sample code structure or key implementation patterns]
200
+ // Key considerations:
201
+ // - [User requirement addressed]
202
+ // - [Integration with existing systems]
203
+ // - [Error handling patterns]
204
+ ```
205
+
206
+ #### [Component Category 3: e.g., User Interface]
207
+
208
+ **File: `[file_path]`**
209
+ Purpose: [Specific role in the implementation]
210
+
211
+ ```[language]
212
+ [Sample code structure or key implementation patterns]
213
+ // Key considerations:
214
+ // - [User experience requirements]
215
+ // - [Accessibility standards]
216
+ // - [Responsive design needs]
217
+ ```
218
+
219
+ ## API/Endpoints Design
220
+
221
+ ### [Endpoint 1]
222
+
223
+ - **Method:** [GET/POST/PUT/DELETE]
224
+ - **Path:** [/api/path]
225
+ - **Purpose:** [What this endpoint accomplishes]
226
+ - **Parameters:**
227
+ - `param1` (type) - [description]
228
+ - `param2` (type) - [description]
229
+ - **Success Response:**
230
+
231
+ ```json
232
+ [Example response structure]
233
+ ```
234
+
235
+ - **Error Handling:** [Specific error cases and responses]
236
+
237
+ ### [Endpoint 2]
238
+
239
+ [Similar structure for additional endpoints]
240
+
241
+ ## Implementation Guidelines
242
+
243
+ ### [Technical Domain 1: e.g., Authentication & Security]
244
+
245
+ **Requirements from Discovery:**
246
+
247
+ - [Specific security requirement from questions]
248
+ - [User data protection needs]
249
+
250
+ **Implementation Approach:**
251
+
252
+ - [Specific security patterns to follow]
253
+ - [Authentication/authorization strategy]
254
+ - [Data validation and sanitization]
255
+ - [Error handling for security scenarios]
256
+
257
+ **Code References:**
258
+
259
+ - Follow patterns in `[existing_auth_file]`
260
+ - Use security helpers from `[security_utils_file]`
261
+
262
+ ### [Technical Domain 2: e.g., Data Management]
263
+
264
+ **Requirements from Discovery:**
265
+
266
+ - [Data persistence needs]
267
+ - [Performance requirements]
268
+
269
+ **Implementation Approach:**
270
+
271
+ - [Database/storage strategy]
272
+ - [Data validation rules]
273
+ - [Performance optimization techniques]
274
+ - [Backup and recovery considerations]
275
+
276
+ **Code References:**
277
+
278
+ - Extend patterns from `[existing_data_layer]`
279
+ - Use ORM/database helpers from `[db_utils_file]`
280
+
281
+ ### [Technical Domain 3: e.g., User Experience]
282
+
283
+ **Requirements from Discovery:**
284
+
285
+ - [UI/UX requirements from questions]
286
+ - [Accessibility needs]
287
+
288
+ **Implementation Approach:**
289
+
290
+ - [User interface design principles]
291
+ - [Interaction patterns to follow]
292
+ - [Responsive design requirements]
293
+ - [Error messaging and feedback]
294
+
295
+ **Code References:**
296
+
297
+ - Follow component patterns in `[ui_components_dir]`
298
+ - Use styling conventions from `[styles_dir]`
299
+
300
+ ## Validation & Testing Strategy
301
+
302
+ ### Functional Validation
303
+
304
+ **Based on User Requirements:**
305
+
306
+ - [ ] [Specific user workflow works as expected]
307
+ - [ ] [User interaction produces correct results]
308
+ - [ ] [Error scenarios are handled gracefully]
309
+
310
+ **Test Commands:**
311
+
312
+ ```bash
313
+ [Specific test commands for functional validation]
314
+ ```
315
+
316
+ ### Technical Validation
317
+
318
+ **Based on Technical Requirements:**
319
+
320
+ - [ ] [Performance benchmark met: response < Xms]
321
+ - [ ] [Security standard implemented: authentication required]
322
+ - [ ] [Integration working: external API connection established]
323
+
324
+ **Test Commands:**
325
+
326
+ ```bash
327
+ [Specific test commands for technical validation]
328
+ ```
329
+
330
+ ### User Acceptance Criteria
331
+
332
+ **Derived from Discovery Questions:**
333
+
334
+ - [ ] [Acceptance criterion based on Q1 answer]
335
+ - [ ] [Acceptance criterion based on Q2 answer]
336
+ - [ ] [Acceptance criterion based on Q3 answer]
337
+ - [ ] [Overall user satisfaction metric]
338
+
339
+ ## Implementation Roadmap
340
+
341
+ ### Checkpoint 1: Foundation Setup
342
+
343
+ **Tasks:**
344
+
345
+ - [ ] Set up basic project structure
346
+ - [ ] Implement core data models
347
+ - [ ] Create basic authentication framework
348
+
349
+ **Validation:**
350
+
351
+ ```bash
352
+ [Test command to verify foundation]
353
+ ```
354
+
355
+ **Expected:** [Specific expected outcome]
356
+
357
+ ### Checkpoint 2: Core Feature Implementation
358
+
359
+ **Tasks:**
360
+
361
+ - [ ] Implement primary business logic
362
+ - [ ] Create user interface components
363
+ - [ ] Set up API endpoints
364
+
365
+ **Validation:**
366
+
367
+ ```bash
368
+ [Test command to verify core features]
369
+ ```
370
+
371
+ **Expected:** [Specific expected outcome]
372
+
373
+ ### Checkpoint 3: Integration & Polish
374
+
375
+ **Tasks:**
376
+
377
+ - [ ] Integrate with existing systems
378
+ - [ ] Implement error handling and edge cases
379
+ - [ ] Performance optimization and testing
380
+
381
+ **Validation:**
382
+
383
+ ```bash
384
+ [Test command to verify complete implementation]
385
+ ```
386
+
387
+ **Expected:** [Specific expected outcome]
388
+
389
+ ## Research References
390
+
391
+ ### Best Practices Sources
392
+
393
+ - [URL/Resource 1]: [Key insights relevant to implementation]
394
+ - [URL/Resource 2]: [Specific techniques or patterns found]
395
+ - [URL/Resource 3]: [Standards or conventions to follow]
396
+
397
+ ### Technical Documentation
398
+
399
+ - [Library/Framework Docs]: [Specific sections relevant to implementation]
400
+ - [API Documentation]: [Integration details and examples]
401
+ - [Security Guidelines]: [Relevant security considerations]
402
+
403
+ ### Example Implementations
404
+
405
+ - [GitHub/StackOverflow URL]: [Pattern or approach to reference]
406
+ - [Code Example URL]: [Specific implementation technique]
407
+ - [Tutorial/Guide URL]: [Step-by-step process to follow]
408
+
409
+ ## Risk Assessment & Mitigation
410
+
411
+ ### Technical Risks
412
+
413
+ - **Risk:** [Potential technical challenge]
414
+ **Likelihood:** [High/Medium/Low]
415
+ **Impact:** [High/Medium/Low]
416
+ **Mitigation:** [Specific strategy to address]
417
+
418
+ ### Business Risks
419
+
420
+ - **Risk:** [Potential business/user impact]
421
+ **Likelihood:** [High/Medium/Low]
422
+ **Impact:** [High/Medium/Low]
423
+ **Mitigation:** [Specific strategy to address]
424
+
425
+ ### Dependencies & Assumptions
426
+
427
+ **External Dependencies:**
428
+
429
+ - [Dependency 1]: [Version and reliability considerations]
430
+ - [Dependency 2]: [Integration complexity and fallback options]
431
+
432
+ **Key Assumptions:**
433
+
434
+ - [ASSUMED]: [Assumption based on unanswered questions]
435
+ - [ASSUMED]: [Technical assumption based on codebase patterns]
436
+ - [ASSUMED]: [Business assumption based on discovery defaults]
437
+
438
+ ## Success Metrics & Monitoring
439
+
440
+ ### Key Performance Indicators
441
+
442
+ - **[Metric 1]:** [Target value] - [How to measure]
443
+ - **[Metric 2]:** [Target value] - [How to measure]
444
+ - **[Metric 3]:** [Target value] - [How to measure]
445
+
446
+ ### Monitoring Strategy
447
+
448
+ - [What to track automatically]
449
+ - [User feedback collection methods]
450
+ - [Performance monitoring approach]
451
+ - [Error tracking and alerting]
452
+
453
+ ### Success Definition
454
+
455
+ **MVP Success:**
456
+
457
+ - [ ] [Minimum viable implementation criteria]
458
+ - [ ] [Basic user satisfaction threshold]
459
+ - [ ] [Technical performance baseline]
460
+
461
+ **Full Success:**
462
+
463
+ - [ ] [Complete feature functionality]
464
+ - [ ] [Optimal user experience metrics]
465
+ - [ ] [Technical excellence standards]
466
+
467
+ ---
468
+
469
+ ## Quick Implementation Guide
470
+
471
+ ### Getting Started (Copy/Paste Ready)
472
+
473
+ ```bash
474
+ # 1. Set up development environment
475
+ [Specific setup commands based on tech stack]
476
+
477
+ # 2. Create basic structure
478
+ [Commands to create necessary directories/files]
479
+
480
+ # 3. Implement core logic
481
+ [Key implementation steps in order]
482
+
483
+ # 4. Test implementation
484
+ [Test commands to verify each step]
485
+ ```
486
+
487
+ ### Code Patterns to Follow
488
+
489
+ **Pattern 1: [Name]**
490
+
491
+ ```[language]
492
+ // Location: [existing_file_reference]
493
+ [Code example showing pattern to follow]
494
+ ```
495
+
496
+ **Pattern 2: [Name]**
497
+
498
+ ```[language]
499
+ // Location: [existing_file_reference]
500
+ [Code example showing pattern to follow]
501
+ ```
502
+
503
+ ### Common Pitfalls & Solutions
504
+
505
+ - **Pitfall:** [Common mistake in this type of implementation]
506
+ **Solution:** [Specific approach to avoid the mistake]
507
+ **Example:** [Code or configuration example]
508
+
509
+ ```
510
+
511
+ ## Execution Strategy
512
+
513
+ ### Request Analysis
514
+ 1. **Parse `$ARGUMENTS`** for complexity indicators:
515
+ - **Simple:** Contains specific technical terms, clear scope
516
+ - **Moderate:** General feature description with some context
517
+ - **Complex:** Vague goals, broad scope, unclear requirements
518
+
519
+ 2. **Determine Question Strategy:**
520
+ - **Simple:** Skip to research and generation
521
+ - **Moderate:** Ask 5 technical questions only
522
+ - **Complex:** Ask all 10 questions (5 discovery + 5 technical)
523
+
524
+ ### Research Integration
525
+ - **Always perform web research** for best practices and standards
526
+ - **Use codebase tools when available** for context and patterns
527
+ - **Synthesize findings** into actionable implementation guidance
528
+ - **Provide concrete examples** and reference materials
529
+
530
+ ### Output Quality Assurance
531
+ - **Ensure actionability:** Every section should be implementable
532
+ - **Maintain specificity:** Use actual file paths, concrete examples
533
+ - **Balance comprehensiveness with clarity:** Cover all aspects without overwhelming
534
+ - **Validate completeness:** Check that PRP provides sufficient context for implementation
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kodit
3
- Version: 0.3.1
3
+ Version: 0.3.2
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/
@@ -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.1'
21
- __version_tuple__ = version_tuple = (0, 3, 1)
20
+ __version__ = version = '0.3.2'
21
+ __version_tuple__ = version_tuple = (0, 3, 2)
@@ -157,7 +157,7 @@ class CodeIndexingApplicationService:
157
157
  snippet_results = await self.snippet_domain_service.search_snippets(
158
158
  prefilter_request
159
159
  )
160
- filtered_snippet_ids = [snippet.id for snippet in snippet_results]
160
+ filtered_snippet_ids = [snippet.snippet.id for snippet in snippet_results]
161
161
 
162
162
  # Gather results from different search modes
163
163
  fusion_list: list[list[FusionRequest]] = []
@@ -225,9 +225,20 @@ class CodeIndexingApplicationService:
225
225
  return [
226
226
  MultiSearchResult(
227
227
  id=result.snippet.id,
228
- uri=result.file.uri,
229
228
  content=result.snippet.content,
230
229
  original_scores=fr.original_scores,
230
+ # Enhanced fields
231
+ source_uri=result.source.uri,
232
+ relative_path=MultiSearchResult.calculate_relative_path(
233
+ result.file.cloned_path, result.source.cloned_path
234
+ ),
235
+ language=MultiSearchResult.detect_language_from_extension(
236
+ result.file.extension
237
+ ),
238
+ authors=[author.name for author in result.authors],
239
+ created_at=result.snippet.created_at,
240
+ # Summary from snippet entity
241
+ summary=result.snippet.summary,
231
242
  )
232
243
  for result, fr in zip(search_results, final_results, strict=True)
233
244
  ]
@@ -300,16 +311,8 @@ class CodeIndexingApplicationService:
300
311
  async for result in self.enrichment_service.enrich_documents(
301
312
  enrichment_request
302
313
  ):
303
- # Update snippet content through domain service
304
- enriched_content = (
305
- result.text
306
- + "\n\n```\n"
307
- + next(s.content for s in snippets if s.id == result.snippet_id)
308
- + "\n```"
309
- )
310
-
311
- await self.snippet_domain_service.update_snippet_content(
312
- result.snippet_id, enriched_content
314
+ await self.snippet_domain_service.update_snippet_summary(
315
+ result.snippet_id, result.text
313
316
  )
314
317
 
315
318
  processed += 1