kodit 0.5.0__tar.gz → 0.5.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of kodit might be problematic. Click here for more details.
- {kodit-0.5.0 → kodit-0.5.1}/.github/workflows/test.yaml +1 -1
- {kodit-0.5.0 → kodit-0.5.1}/CLAUDE.md +36 -35
- {kodit-0.5.0 → kodit-0.5.1}/Makefile +5 -3
- {kodit-0.5.0 → kodit-0.5.1}/PKG-INFO +1 -1
- {kodit-0.5.0 → kodit-0.5.1}/docs/_index.md +12 -19
- {kodit-0.5.0 → kodit-0.5.1}/docs/getting-started/installation/index.md +14 -9
- kodit-0.5.1/docs/getting-started/quick-start/index.md +67 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/reference/api/index.md +118 -1
- {kodit-0.5.0 → kodit-0.5.1}/docs/reference/api/openapi.json +271 -2
- kodit-0.5.1/docs/reference/configuration/index.md +82 -0
- kodit-0.5.1/docs/reference/configuration/templates/template.j2 +53 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/reference/deployment/docker-compose.yaml +22 -5
- {kodit-0.5.0 → kodit-0.5.1}/docs/reference/deployment/kubernetes.yaml +1 -14
- {kodit-0.5.0 → kodit-0.5.1}/docs/reference/hosted-kodit/index.md +1 -1
- kodit-0.5.1/docs/reference/indexing/index.md +83 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/reference/sync/index.md +0 -9
- kodit-0.5.1/docs/reference/troubleshooting/index.md +5 -0
- {kodit-0.5.0 → kodit-0.5.1}/pyproject.toml +2 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/_version.py +2 -2
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/app.py +10 -12
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/application/factories/server_factory.py +53 -11
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/application/services/commit_indexing_application_service.py +188 -31
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/config.py +3 -3
- kodit-0.5.1/src/kodit/domain/enrichments/__init__.py +1 -0
- kodit-0.5.1/src/kodit/domain/enrichments/architecture/__init__.py +1 -0
- kodit-0.5.1/src/kodit/domain/enrichments/architecture/architecture.py +20 -0
- kodit-0.5.1/src/kodit/domain/enrichments/architecture/physical/__init__.py +1 -0
- kodit-0.5.1/src/kodit/domain/enrichments/architecture/physical/discovery_notes.py +14 -0
- kodit-0.5.1/src/kodit/domain/enrichments/architecture/physical/formatter.py +11 -0
- kodit-0.5.1/src/kodit/domain/enrichments/architecture/physical/physical.py +17 -0
- kodit-0.5.1/src/kodit/domain/enrichments/development/__init__.py +1 -0
- kodit-0.5.1/src/kodit/domain/enrichments/development/development.py +18 -0
- kodit-0.5.1/src/kodit/domain/enrichments/development/snippet/__init__.py +1 -0
- kodit-0.5.1/src/kodit/domain/enrichments/development/snippet/snippet.py +21 -0
- kodit-0.5.1/src/kodit/domain/enrichments/enricher.py +17 -0
- kodit-0.5.1/src/kodit/domain/enrichments/enrichment.py +39 -0
- kodit-0.5.1/src/kodit/domain/enrichments/request.py +12 -0
- kodit-0.5.1/src/kodit/domain/enrichments/response.py +11 -0
- kodit-0.5.1/src/kodit/domain/enrichments/usage/__init__.py +1 -0
- kodit-0.5.1/src/kodit/domain/enrichments/usage/api_docs.py +19 -0
- kodit-0.5.1/src/kodit/domain/enrichments/usage/usage.py +18 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/domain/protocols.py +7 -6
- kodit-0.5.1/src/kodit/domain/services/enrichment_service.py +27 -0
- kodit-0.5.1/src/kodit/domain/services/physical_architecture_service.py +182 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/domain/value_objects.py +6 -23
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/routers/commits.py +81 -0
- kodit-0.5.1/src/kodit/infrastructure/api/v1/schemas/enrichment.py +29 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/cloning/git/git_python_adaptor.py +71 -4
- kodit-0.5.1/src/kodit/infrastructure/enricher/__init__.py +1 -0
- kodit-0.5.1/src/kodit/infrastructure/enricher/enricher_factory.py +53 -0
- kodit-0.5.0/src/kodit/infrastructure/enrichment/litellm_enrichment_provider.py → kodit-0.5.1/src/kodit/infrastructure/enricher/litellm_enricher.py +20 -33
- kodit-0.5.0/src/kodit/infrastructure/enrichment/local_enrichment_provider.py → kodit-0.5.1/src/kodit/infrastructure/enricher/local_enricher.py +19 -24
- kodit-0.5.1/src/kodit/infrastructure/enricher/null_enricher.py +36 -0
- kodit-0.5.1/src/kodit/infrastructure/mappers/enrichment_mapper.py +83 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/mappers/snippet_mapper.py +20 -22
- kodit-0.5.1/src/kodit/infrastructure/physical_architecture/__init__.py +1 -0
- kodit-0.5.1/src/kodit/infrastructure/physical_architecture/detectors/__init__.py +1 -0
- kodit-0.5.1/src/kodit/infrastructure/physical_architecture/detectors/docker_compose_detector.py +336 -0
- kodit-0.5.1/src/kodit/infrastructure/physical_architecture/formatters/__init__.py +1 -0
- kodit-0.5.1/src/kodit/infrastructure/physical_architecture/formatters/narrative_formatter.py +149 -0
- kodit-0.5.1/src/kodit/infrastructure/slicing/api_doc_extractor.py +836 -0
- kodit-0.5.1/src/kodit/infrastructure/slicing/ast_analyzer.py +1128 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/slicing/slicer.py +56 -391
- kodit-0.5.1/src/kodit/infrastructure/sqlalchemy/enrichment_v2_repository.py +118 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/sqlalchemy/entities.py +46 -38
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/sqlalchemy/git_branch_repository.py +22 -11
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/sqlalchemy/git_commit_repository.py +23 -14
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/sqlalchemy/git_repository.py +27 -17
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/sqlalchemy/git_tag_repository.py +22 -11
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/sqlalchemy/snippet_v2_repository.py +101 -106
- kodit-0.5.1/src/kodit/migrations/versions/19f8c7faf8b9_add_generic_enrichment_type.py +260 -0
- kodit-0.5.1/src/kodit/utils/dump_config.py +361 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/utils/dump_openapi.py +5 -6
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/application/services/commit_indexing_application_service_test.py +38 -2
- kodit-0.5.1/tests/kodit/domain/enrichment_service_test.py +120 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/embedding/embedding_provider/litellm_embedding_provider_test.py +7 -7
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/embedding/test_litellm_socket_providers.py +9 -10
- kodit-0.5.1/tests/kodit/infrastructure/enricher/__init__.py +1 -0
- kodit-0.5.1/tests/kodit/infrastructure/enricher/null_enricher_test.py +32 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/mappers/git_mapper_test.py +6 -49
- kodit-0.5.1/tests/kodit/infrastructure/physical_architecture/__init__.py +1 -0
- kodit-0.5.1/tests/kodit/infrastructure/physical_architecture/detectors/__init__.py +1 -0
- kodit-0.5.1/tests/kodit/infrastructure/physical_architecture/detectors/docker_compose_detector_test.py +91 -0
- kodit-0.5.1/tests/kodit/infrastructure/physical_architecture/end_to_end_test.py +99 -0
- kodit-0.5.1/tests/kodit/infrastructure/physical_architecture/fixtures/simple_web_app/docker-compose.yml +39 -0
- kodit-0.5.1/tests/kodit/infrastructure/physical_architecture/formatters/__init__.py +1 -0
- kodit-0.5.1/tests/kodit/infrastructure/physical_architecture/formatters/narrative_formatter_test.py +44 -0
- kodit-0.5.1/tests/kodit/infrastructure/slicing/api_doc_extractor_test.py +151 -0
- kodit-0.5.1/tests/kodit/infrastructure/slicing/ast_analyzer_test.py +115 -0
- kodit-0.5.1/tests/kodit/infrastructure/slicing/data/go/api/pkg/controller/filestore.go +24 -0
- kodit-0.5.1/tests/kodit/infrastructure/slicing/data/go/api/pkg/controller/filestore_test.go +10 -0
- kodit-0.5.1/tests/kodit/infrastructure/slicing/data/python/submodule/__init__.py +1 -0
- kodit-0.5.1/tests/kodit/infrastructure/slicing/data/python/submodule/main.py +5 -0
- kodit-0.5.1/tests/kodit/infrastructure/slicing/slicer_test.py +53 -0
- kodit-0.5.1/tests/kodit/infrastructure/sqlalchemy/enrichment_v2_repository_test.py +232 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/sqlalchemy/snippet_v2_repository_test.py +142 -1
- kodit-0.5.1/understanding_architecture.md +398 -0
- {kodit-0.5.0 → kodit-0.5.1}/uv.lock +11 -0
- kodit-0.5.0/docs/getting-started/quick-start/index.md +0 -56
- kodit-0.5.0/docs/reference/configuration/index.md +0 -189
- kodit-0.5.0/docs/reference/indexing/index.md +0 -378
- kodit-0.5.0/src/kodit/domain/services/enrichment_service.py +0 -48
- kodit-0.5.0/src/kodit/infrastructure/enrichment/__init__.py +0 -1
- kodit-0.5.0/src/kodit/infrastructure/enrichment/enrichment_factory.py +0 -52
- kodit-0.5.0/src/kodit/infrastructure/enrichment/null_enrichment_provider.py +0 -19
- kodit-0.5.0/tests/kodit/domain/enrichment_service_test.py +0 -131
- kodit-0.5.0/tests/kodit/infrastructure/enrichment/__init__.py +0 -1
- kodit-0.5.0/tests/kodit/infrastructure/enrichment/enrichment_factory_test.py +0 -44
- kodit-0.5.0/tests/kodit/infrastructure/enrichment/enrichment_provider/__init__.py +0 -1
- kodit-0.5.0/tests/kodit/infrastructure/enrichment/enrichment_provider/litellm_enrichment_provider_test.py +0 -377
- kodit-0.5.0/tests/kodit/infrastructure/enrichment/enrichment_provider/local_enrichment_provider_test.py +0 -272
- kodit-0.5.0/tests/kodit/infrastructure/enrichment/enrichment_provider/null_enrichment_provider_test.py +0 -97
- kodit-0.5.0/tests/kodit/infrastructure/enrichment/utils_test.py +0 -110
- {kodit-0.5.0 → kodit-0.5.1}/.claude/commands/debug.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.claude/commands/new-requirement.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.claude/commands/refactor.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.claude/commands/update-docs.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.claude/settings.json +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.cursor/rules/kodit.mdc +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.cursor/rules/style.mdc +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.dockerignore +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.github/CODE_OF_CONDUCT.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.github/CONTRIBUTING.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.github/dependabot.yml +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.github/workflows/docker.yaml +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.github/workflows/docs.yaml +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.github/workflows/pull_request.yaml +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.github/workflows/pypi-test.yaml +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.github/workflows/pypi.yaml +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.gitignore +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.python-version +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.vscode/launch.json +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/.vscode/settings.json +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/Dockerfile +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/LICENSE +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/README.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/alembic.ini +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/demos/_index.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/demos/go-simple-microservice/index.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/demos/knock-knock-auth/index.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/developer/index.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/getting-started/_index.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/getting-started/integration/index.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/reference/_index.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/reference/api/templates/_content.md.j2 +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/reference/api/templates/_example.md.j2 +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/reference/api/templates/_object_schema.md.j2 +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/reference/api/templates/_security_scheme.md.j2 +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/reference/api/templates/api_doc_template.md.j2 +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/reference/deployment/index.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/reference/mcp/index.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/docs/reference/telemetry/index.md +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/.gitignore +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/application/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/application/factories/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/application/factories/reporting_factory.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/application/services/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/application/services/code_search_application_service.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/application/services/indexing_worker_service.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/application/services/queue_service.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/application/services/reporting.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/application/services/sync_scheduler.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/cli.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/cli_utils.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/database.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/domain/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/domain/entities/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/domain/entities/git.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/domain/errors.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/domain/factories/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/domain/factories/git_repo_factory.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/domain/services/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/domain/services/bm25_service.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/domain/services/embedding_service.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/domain/services/git_repository_service.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/domain/services/git_service.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/domain/services/task_status_query_service.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/client/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/client/base.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/client/exceptions.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/client/generated_endpoints.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/client/search_client.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/middleware/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/middleware/auth.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/dependencies.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/routers/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/routers/queue.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/routers/repositories.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/routers/search.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/schemas/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/schemas/commit.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/schemas/context.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/schemas/queue.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/schemas/repository.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/schemas/search.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/schemas/snippet.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/schemas/tag.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/api/v1/schemas/task_status.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/bm25/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/bm25/local_bm25_repository.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/bm25/vectorchord_bm25_repository.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/cloning/git/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/cloning/git/working_copy.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/embedding/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/embedding/embedding_factory.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/embedding/embedding_providers/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/embedding/embedding_providers/batching.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/embedding/embedding_providers/hash_embedding_provider.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/embedding/embedding_providers/litellm_embedding_provider.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/embedding/embedding_providers/local_embedding_provider.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/embedding/local_vector_search_repository.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/embedding/vectorchord_vector_search_repository.py +0 -0
- {kodit-0.5.0/src/kodit/infrastructure/enrichment → kodit-0.5.1/src/kodit/infrastructure/enricher}/utils.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/git/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/git/git_utils.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/ignore/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/ignore/ignore_pattern_provider.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/indexing/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/indexing/fusion_service.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/mappers/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/mappers/git_mapper.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/mappers/task_mapper.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/mappers/task_status_mapper.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/reporting/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/reporting/db_progress.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/reporting/log_progress.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/reporting/telemetry_progress.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/slicing/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/sqlalchemy/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/sqlalchemy/embedding_repository.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/sqlalchemy/task_repository.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/sqlalchemy/task_status_repository.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/infrastructure/sqlalchemy/unit_of_work.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/log.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/mcp.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/middleware.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/migrations/README +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/migrations/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/migrations/env.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/migrations/script.py.mako +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/migrations/versions/04b80f802e0c_foreign_key_review.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/migrations/versions/4073b33f9436_add_file_processing_flag.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/migrations/versions/4552eb3f23ce_add_summary.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/migrations/versions/7c3bbc2ab32b_add_embeddings_table.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/migrations/versions/7f15f878c3a1_add_new_git_entities.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/migrations/versions/85155663351e_initial.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/migrations/versions/9cf0e87de578_add_queue.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/migrations/versions/9e53ea8bb3b0_add_authors.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/migrations/versions/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/migrations/versions/b9cd1c3fd762_add_task_status.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/migrations/versions/c3f5137d30f5_index_all_the_things.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/migrations/versions/f9e5ef5e688f_add_git_commits_number.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/py.typed +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/utils/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/utils/generate_api_paths.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/src/kodit/utils/path_utils.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/conftest.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/docker-smoke.sh +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/application/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/application/services/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/application/services/queue_service_get_task_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/application/services/queue_service_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/application/services/reporting_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/cli_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/domain/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/domain/bm25_service_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/domain/embedding_service_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/domain/entities_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/domain/language_detection_service_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/domain/services/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/domain/services/git_repository_service_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/e2e.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/bm25/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/bm25/local_bm25_repository_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/cloning/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/cloning/git/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/cloning/git/git_python_adaptor_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/cloning/git_cloning/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/cloning/git_cloning/working_copy_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/embedding/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/embedding/batching_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/embedding/embedding_factory_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/embedding/embedding_provider/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/embedding/embedding_provider/hash_embedding_provider_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/embedding/embedding_provider/local_embedding_provider_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/mappers/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/c/main.c +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/c/models.c +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/c/models.h +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/c/utils.c +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/c/utils.h +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/cpp/main.cpp +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/cpp/models.cpp +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/cpp/models.hpp +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/cpp/utils.cpp +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/cpp/utils.hpp +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/csharp/Main.cs +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/csharp/Models.cs +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/csharp/Utils.cs +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/css/components.css +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/css/main.css +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/css/utilities.css +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/go/main.go +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/go/models.go +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/go/utils.go +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/html/components.html +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/html/forms.html +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/html/main.html +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/java/Main.java +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/java/Models.java +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/java/Utils.java +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/javascript/main.js +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/javascript/models.js +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/javascript/utils.js +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/python/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/python/main.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/python/models.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/python/utils.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/rust/main.rs +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/rust/models.rs +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/slicing/data/rust/utils.rs +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/snippets/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/snippets/csharp.cs +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/snippets/golang.go +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/snippets/javascript.js +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/snippets/knock_knock_server.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/snippets/python.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/snippets/typescript.tsx +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/sqlalchemy/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/sqlalchemy/embedding_repository_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/sqlalchemy/git_branch_repository_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/sqlalchemy/git_commit_repository_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/sqlalchemy/git_repository_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/infrastructure/sqlalchemy/git_tag_repository_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/log_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/kodit/mcp_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/smoke.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/utils/__init__.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/utils/path_utils_test.py +0 -0
- {kodit-0.5.0 → kodit-0.5.1}/tests/vectorchord-smoke.sh +0 -0
|
@@ -47,31 +47,6 @@ The codebase follows Domain-Driven Design (DDD) with clean architecture:
|
|
|
47
47
|
- `bm25/` - BM25 search implementations
|
|
48
48
|
- `indexing/` - Code indexing services
|
|
49
49
|
|
|
50
|
-
### Key Components
|
|
51
|
-
|
|
52
|
-
**Advanced Indexing Pipeline:**
|
|
53
|
-
|
|
54
|
-
1. Clone/read source code with Git metadata extraction
|
|
55
|
-
2. Language detection for 20+ programming languages
|
|
56
|
-
3. Advanced snippet extraction using Tree-sitter with dependency analysis
|
|
57
|
-
4. Build call graphs and import maps for context-aware extraction
|
|
58
|
-
5. Generate embeddings and BM25 indices
|
|
59
|
-
6. Store in database with selective reindexing for performance
|
|
60
|
-
|
|
61
|
-
**Advanced Search System:**
|
|
62
|
-
|
|
63
|
-
- Hybrid search combining semantic (embeddings) and keyword (BM25) with Reciprocal Rank Fusion
|
|
64
|
-
- Multi-dimensional filtering: language, author, date range, source, file path
|
|
65
|
-
- Context-aware results with dependency tracking and usage examples
|
|
66
|
-
- Multiple providers: local models, OpenAI, custom APIs
|
|
67
|
-
- Configurable via environment variables
|
|
68
|
-
- Support for 20+ programming languages including HTML/CSS
|
|
69
|
-
|
|
70
|
-
**MCP Server:**
|
|
71
|
-
|
|
72
|
-
- FastMCP-based server exposing search tools
|
|
73
|
-
- Integrates with Cursor, Cline, and other AI assistants
|
|
74
|
-
|
|
75
50
|
## Configuration
|
|
76
51
|
|
|
77
52
|
Key environment variables:
|
|
@@ -89,7 +64,7 @@ Uses SQLAlchemy with async support. Supports:
|
|
|
89
64
|
- SQLite (default, local development)
|
|
90
65
|
- PostgreSQL with Vectorchord (production)
|
|
91
66
|
|
|
92
|
-
Migrations managed with Alembic in `migrations/` directory. DO NOT EDIT THESE FILES.
|
|
67
|
+
Migrations managed with Alembic in `src/kodit/migrations/` directory. DO NOT EDIT THESE FILES.
|
|
93
68
|
|
|
94
69
|
## Refactoring Strategy
|
|
95
70
|
|
|
@@ -99,19 +74,45 @@ Migrations managed with Alembic in `migrations/` directory. DO NOT EDIT THESE FI
|
|
|
99
74
|
|
|
100
75
|
## Testing Strategy
|
|
101
76
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
-
|
|
77
|
+
When writing tests for my code, follow these guidelines:
|
|
78
|
+
|
|
79
|
+
**Test Strategy:**
|
|
80
|
+
|
|
81
|
+
- Focus on testing critical paths and core functionality, not on achieving high coverage percentages
|
|
82
|
+
- Prioritize practical, valuable tests over comprehensive coverage
|
|
83
|
+
|
|
84
|
+
**Test Types & Architecture:**
|
|
85
|
+
|
|
86
|
+
- Write integration tests that use the real database layer
|
|
87
|
+
- Write end-to-end tests that mock the database layer to keep tests fast
|
|
88
|
+
- Avoid tests that take a long time to run
|
|
107
89
|
|
|
108
|
-
|
|
109
|
-
|
|
90
|
+
**Testing Workflow:**
|
|
91
|
+
|
|
92
|
+
- Write tests after the implementation is complete
|
|
93
|
+
- Tests should validate the working implementation
|
|
94
|
+
|
|
95
|
+
**Test Scope:**
|
|
96
|
+
|
|
97
|
+
- Focus primarily on happy path scenarios
|
|
98
|
+
- Test only public interfaces, not private methods or implementation details
|
|
99
|
+
- Only add edge case tests when bugs are discovered that need regression protection
|
|
100
|
+
|
|
101
|
+
**Mocking Philosophy:**
|
|
102
|
+
|
|
103
|
+
- Minimize mocking - only mock when it provides clear benefits
|
|
104
|
+
- Database layer mocking is acceptable for end-to-end tests
|
|
105
|
+
- Avoid mocking everything else
|
|
106
|
+
- Do not use patches in tests because they are fragile to changes. If you must use them,
|
|
107
|
+
ONLY use them on core python libraries.
|
|
108
|
+
|
|
109
|
+
**Test Organization:**
|
|
110
|
+
|
|
111
|
+
- Test file structure should mirror the production codebase structure
|
|
112
|
+
- Keep test organization consistent with the code being tested
|
|
110
113
|
|
|
111
114
|
## Coding Style
|
|
112
115
|
|
|
113
116
|
- Docstrings should be very minimal. Descriptions only. No arguments or return types. No
|
|
114
117
|
examples. No deprecation notices.
|
|
115
118
|
- Do not store imports imports in `__init__.py` files.
|
|
116
|
-
- Do not use patches in tests because they are fragile to changes. If you must use them,
|
|
117
|
-
ONLY use them on core python libraries.
|
|
@@ -4,11 +4,13 @@
|
|
|
4
4
|
build:
|
|
5
5
|
uv build
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
docs: build
|
|
8
8
|
uv run src/kodit/utils/dump_openapi.py --out docs/reference/api/ kodit.app:app
|
|
9
|
+
uv run python src/kodit/utils/dump_config.py
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
docs-check: docs
|
|
11
12
|
git diff --exit-code docs/reference/api/index.md
|
|
13
|
+
git diff --exit-code docs/reference/configuration/index.md
|
|
12
14
|
|
|
13
15
|
generate-api-paths: openapi
|
|
14
16
|
uv run python src/kodit/utils/generate_api_paths.py
|
|
@@ -19,7 +21,7 @@ type:
|
|
|
19
21
|
lint:
|
|
20
22
|
uv run ruff check --fix --unsafe-fixes
|
|
21
23
|
|
|
22
|
-
test: lint type
|
|
24
|
+
test: lint type docs-check
|
|
23
25
|
uv run pytest -s --cov=src --cov-report=xml tests/kodit
|
|
24
26
|
|
|
25
27
|
no-database-changes-check:
|
|
@@ -44,21 +44,18 @@ and produce fewer hallucinations.
|
|
|
44
44
|
|
|
45
45
|
### Codebase Indexing
|
|
46
46
|
|
|
47
|
-
Kodit connects to
|
|
47
|
+
Kodit connects to remote codebases to build an index of your
|
|
48
48
|
code. This index is used to build a snippet library, ready for ingestion into an LLM.
|
|
49
49
|
|
|
50
|
-
- Index
|
|
50
|
+
- Index public and private Git repositories (via a PAT)
|
|
51
51
|
- Build comprehensive snippet libraries for LLM ingestion
|
|
52
52
|
- Support for 20+ programming languages including Python, JavaScript/TypeScript, Java, Go, Rust, C/C++, C#, HTML/CSS, and more
|
|
53
|
-
- Advanced code
|
|
53
|
+
- Advanced code slicing with dependency tracking and call graph generation
|
|
54
54
|
- Intelligent snippet extraction with context-aware dependencies
|
|
55
55
|
- Efficient indexing with selective reindexing (only processes modified files)
|
|
56
56
|
- Privacy first: respects .gitignore and .noindex files
|
|
57
|
-
-
|
|
58
|
-
- **
|
|
59
|
-
- **NEW in 0.3**: Index private repositories via a PAT
|
|
60
|
-
- **NEW in 0.3**: Improved progress monitoring and reporting during indexing
|
|
61
|
-
- **NEW in 0.4**: Advanced code slicing infrastructure with Tree-sitter parsing
|
|
57
|
+
- Enhanced Git provider support including Github, Gitlab, Azure DevOps
|
|
58
|
+
- **New in 0.5**: Index Git structure for incremental indexing and unlock future enrichments
|
|
62
59
|
|
|
63
60
|
### MCP Server
|
|
64
61
|
|
|
@@ -68,16 +65,16 @@ intent. Kodit has been tested to work well with:
|
|
|
68
65
|
|
|
69
66
|
- Seamless integration with popular AI coding assistants
|
|
70
67
|
- Tested and verified with:
|
|
71
|
-
- [Cursor](./
|
|
72
|
-
- [Cline](./
|
|
68
|
+
- [Cursor](./reference/mcp/index.md)
|
|
69
|
+
- [Cline](./reference/mcp/index.md)
|
|
70
|
+
- [Claude Code](./reference/mcp/index.md)
|
|
73
71
|
- Please contribute more instructions! ... any other assistant is likely to work ...
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
- **New in 0.3**: Enhanced MCP tools with rich context parameters and metadata
|
|
72
|
+
- Advanced search filters by source, language, author, date range, and file path
|
|
73
|
+
- Hybrid search combining BM25 keyword search with semantic search
|
|
77
74
|
|
|
78
75
|
### Hosted MCP Server
|
|
79
76
|
|
|
80
|
-
|
|
77
|
+
Try Kodit instantly with our hosted MCP server at [https://kodit.helix.ml/mcp](https://kodit.helix.ml/mcp)! No installation required - just add it to your AI coding assistant and start searching popular codebases immediately.
|
|
81
78
|
|
|
82
79
|
The hosted server provides:
|
|
83
80
|
|
|
@@ -103,12 +100,8 @@ Supported databases:
|
|
|
103
100
|
Supported providers:
|
|
104
101
|
|
|
105
102
|
- Local (which uses tiny CPU-only open-source models)
|
|
106
|
-
- OpenAI
|
|
107
103
|
- Secure, private LLM enclave with [Helix](https://helix.ml).
|
|
108
|
-
- Any other
|
|
109
|
-
|
|
110
|
-
**NEW in 0.3**: Enhanced deployment options:
|
|
111
|
-
|
|
104
|
+
- Any other provider supported by [LiteLLM](https://docs.litellm.ai/docs/providers).
|
|
112
105
|
- Docker Compose configurations with VectorChord
|
|
113
106
|
- Kubernetes manifests for production deployments
|
|
114
107
|
|
|
@@ -4,7 +4,20 @@ description: How to install Kodit.
|
|
|
4
4
|
weight: 1
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Unlike many MCP tools, Kodit is designed to run as a server. You're welcome to use the
|
|
8
|
+
[public server](../_index.md), but if you want to index your own private repositories
|
|
9
|
+
then you should deploy your own server.
|
|
10
|
+
|
|
11
|
+
Kodit is a Python-based webserver that hosts a REST API and an MCP server. Although most
|
|
12
|
+
people install Kodit remotely in a container, you can also install it as a package.
|
|
13
|
+
|
|
14
|
+
## Docker
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
docker run -it --rm registry.helix.ml/helix/kodit:latest
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Always replace latest with a specific version.
|
|
8
21
|
|
|
9
22
|
## homebrew
|
|
10
23
|
|
|
@@ -24,14 +37,6 @@ uv tool install kodit
|
|
|
24
37
|
pipx install kodit
|
|
25
38
|
```
|
|
26
39
|
|
|
27
|
-
## Docker
|
|
28
|
-
|
|
29
|
-
```sh
|
|
30
|
-
docker run -it --rm registry.helix.ml/helix/kodit:latest
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Always replace latest with a specific version.
|
|
34
|
-
|
|
35
40
|
## pip
|
|
36
41
|
|
|
37
42
|
Use this if you want to use kodit as a python library:
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Quick Start
|
|
3
|
+
description: The quickest way to get started with Kodit.
|
|
4
|
+
weight: 2
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This guide assumes you have already installed Kodit and have verified it is running.
|
|
8
|
+
|
|
9
|
+
## 1. View the API Docs
|
|
10
|
+
|
|
11
|
+
Open: <http://localhost:8000/docs> (replace with your own server URL)
|
|
12
|
+
|
|
13
|
+
## 2. Index a Repository
|
|
14
|
+
|
|
15
|
+
Replace the repository URL with the one you want to index. This is a small, toy
|
|
16
|
+
application that should index quickly.
|
|
17
|
+
|
|
18
|
+
```sh
|
|
19
|
+
curl http://localhost:8080/api/v1/repositories \
|
|
20
|
+
-X POST \
|
|
21
|
+
-H "Content-Type: application/json" \
|
|
22
|
+
-d '{
|
|
23
|
+
"data": {
|
|
24
|
+
"type": "repository",
|
|
25
|
+
"attributes": {
|
|
26
|
+
"url": "https://gist.github.com/philwinder/7aa38185e20433c04c533f2b28f4e217.git"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}'
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## 3. Check the Status of the Indexing Process
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
curl http://localhost:8080/api/v1/repositories/1/status
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Wait for the indexing process to complete. If you see any errors at this stage, check
|
|
39
|
+
your logs and consult the [troubleshooting guide](../reference/troubleshooting/index.md).
|
|
40
|
+
|
|
41
|
+
## 4. Search for Code
|
|
42
|
+
|
|
43
|
+
When indexing is complete, you can search through the index of the repository:
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
curl http://localhost:8080/api/v1/search \
|
|
47
|
+
-X POST \
|
|
48
|
+
-H "Content-Type: application/json" \
|
|
49
|
+
-d '{
|
|
50
|
+
"data": {
|
|
51
|
+
"type": "search",
|
|
52
|
+
"attributes": {
|
|
53
|
+
"keywords": [
|
|
54
|
+
"orders"
|
|
55
|
+
],
|
|
56
|
+
"code": "func (s *OrderService) GetAllOrders() []Order {",
|
|
57
|
+
"text": "code to get all orders",
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}'
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Check the API docs for more endpoints and examples.
|
|
64
|
+
|
|
65
|
+
## 5. Integrate with your AI coding assistant
|
|
66
|
+
|
|
67
|
+
Now [add the Kodit MCP server to your AI coding assistant](../integration/index.md).
|
|
@@ -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.5.
|
|
15
|
+
Current version: 0.5.1
|
|
16
16
|
|
|
17
17
|
## Authentication
|
|
18
18
|
|
|
@@ -270,6 +270,84 @@ List all embeddings for snippets in a specific commit.
|
|
|
270
270
|
|
|
271
271
|
- 404: Repository or commit not found
|
|
272
272
|
|
|
273
|
+
### GET /api/v1/repositories/{repo_id}/commits/{commit_sha}/enrichments
|
|
274
|
+
|
|
275
|
+
List all enrichments for a specific commit.
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
#### Parameters
|
|
279
|
+
|
|
280
|
+
| Name | Type | Required | Description |
|
|
281
|
+
|------|------|----------|-------------|
|
|
282
|
+
| repo_id | string | True | |
|
|
283
|
+
| commit_sha | string | True | |
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
#### Responses
|
|
287
|
+
|
|
288
|
+
- 200: Successful Response
|
|
289
|
+
|
|
290
|
+
[EnrichmentListResponse](#enrichmentlistresponse)
|
|
291
|
+
|
|
292
|
+
- 500: Internal server error
|
|
293
|
+
|
|
294
|
+
- 401: Unauthorized
|
|
295
|
+
|
|
296
|
+
- 422: Invalid request
|
|
297
|
+
|
|
298
|
+
- 404: Repository or commit not found
|
|
299
|
+
|
|
300
|
+
### DELETE /api/v1/repositories/{repo_id}/commits/{commit_sha}/enrichments
|
|
301
|
+
|
|
302
|
+
Delete all enrichments for a specific commit.
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
#### Parameters
|
|
306
|
+
|
|
307
|
+
| Name | Type | Required | Description |
|
|
308
|
+
|------|------|----------|-------------|
|
|
309
|
+
| repo_id | string | True | |
|
|
310
|
+
| commit_sha | string | True | |
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
#### Responses
|
|
314
|
+
|
|
315
|
+
- 204: Successful Response
|
|
316
|
+
|
|
317
|
+
- 500: Internal server error
|
|
318
|
+
|
|
319
|
+
- 401: Unauthorized
|
|
320
|
+
|
|
321
|
+
- 422: Invalid request
|
|
322
|
+
|
|
323
|
+
- 404: Commit not found
|
|
324
|
+
|
|
325
|
+
### DELETE /api/v1/repositories/{repo_id}/commits/{commit_sha}/enrichments/{enrichment_id}
|
|
326
|
+
|
|
327
|
+
Delete a specific enrichment for a commit.
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
#### Parameters
|
|
331
|
+
|
|
332
|
+
| Name | Type | Required | Description |
|
|
333
|
+
|------|------|----------|-------------|
|
|
334
|
+
| repo_id | string | True | |
|
|
335
|
+
| commit_sha | string | True | |
|
|
336
|
+
| enrichment_id | integer | True | |
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
#### Responses
|
|
340
|
+
|
|
341
|
+
- 204: Successful Response
|
|
342
|
+
|
|
343
|
+
- 500: Internal server error
|
|
344
|
+
|
|
345
|
+
- 401: Unauthorized
|
|
346
|
+
|
|
347
|
+
- 422: Invalid request
|
|
348
|
+
|
|
349
|
+
- 404: Enrichment not found
|
|
350
|
+
|
|
273
351
|
### GET /api/v1/repositories
|
|
274
352
|
|
|
275
353
|
List all cloned repositories.
|
|
@@ -529,6 +607,45 @@ Embedding list response following JSON-API spec.
|
|
|
529
607
|
| data | array | |
|
|
530
608
|
|
|
531
609
|
|
|
610
|
+
### EnrichmentAttributes
|
|
611
|
+
|
|
612
|
+
|
|
613
|
+
Enrichment attributes following JSON-API spec.
|
|
614
|
+
|
|
615
|
+
|
|
616
|
+
| Field | Type | Description |
|
|
617
|
+
|-------|------|-------------|
|
|
618
|
+
| type | string | |
|
|
619
|
+
| subtype | | |
|
|
620
|
+
| content | string | |
|
|
621
|
+
| created_at | | |
|
|
622
|
+
| updated_at | | |
|
|
623
|
+
|
|
624
|
+
|
|
625
|
+
### EnrichmentData
|
|
626
|
+
|
|
627
|
+
|
|
628
|
+
Enrichment data following JSON-API spec.
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
| Field | Type | Description |
|
|
632
|
+
|-------|------|-------------|
|
|
633
|
+
| type | string | |
|
|
634
|
+
| id | string | |
|
|
635
|
+
| attributes | | |
|
|
636
|
+
|
|
637
|
+
|
|
638
|
+
### EnrichmentListResponse
|
|
639
|
+
|
|
640
|
+
|
|
641
|
+
Enrichment list response following JSON-API spec.
|
|
642
|
+
|
|
643
|
+
|
|
644
|
+
| Field | Type | Description |
|
|
645
|
+
|-------|------|-------------|
|
|
646
|
+
| data | array | |
|
|
647
|
+
|
|
648
|
+
|
|
532
649
|
### EnrichmentSchema
|
|
533
650
|
|
|
534
651
|
|