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

|
|
99
|
-
{class="h-8 inline-block" href="cursor://anysphere.cursor-deeplink/mcp/install?name=kodit&config=
|
|
99
|
+
{class="h-8 inline-block" href="cursor://anysphere.cursor-deeplink/mcp/install?name=kodit&config=eyJ1cmwiOiJodHRwczovL2tvZGl0LmhlbGl4Lm1sL21jcCJ9"}
|
|
100
100
|
|
|
101
101
|
Add the following to `$HOME/.cursor/mcp.json`:
|
|
102
102
|
|
|
@@ -104,14 +104,15 @@ Add the following to `$HOME/.cursor/mcp.json`:
|
|
|
104
104
|
{
|
|
105
105
|
"mcpServers": {
|
|
106
106
|
"kodit": {
|
|
107
|
-
"url": "
|
|
107
|
+
"url": "https://kodit.helix.ml/mcp"
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
-
Or find this configuration in `Cursor Settings` -> `MCP`.
|
|
114
|
-
|
|
113
|
+
- Or find this configuration in `Cursor Settings` -> `MCP`.
|
|
114
|
+
- `https://kodit.helix.ml` is the URL of the hosted Kodit instance. You can replace this
|
|
115
|
+
with <http://localhost:8080> if you are running locally.
|
|
115
116
|
|
|
116
117
|
#### Cursor STDIO
|
|
117
118
|
|
|
@@ -149,7 +150,7 @@ Add the following configuration:
|
|
|
149
150
|
"autoApprove": [],
|
|
150
151
|
"disabled": true,
|
|
151
152
|
"timeout": 60,
|
|
152
|
-
"url": "
|
|
153
|
+
"url": "https://kodit.helix.ml/mcp",
|
|
153
154
|
"transportType": "http"
|
|
154
155
|
}
|
|
155
156
|
}
|
|
@@ -8,11 +8,12 @@ from fastapi import FastAPI, Response
|
|
|
8
8
|
from fastapi.responses import RedirectResponse
|
|
9
9
|
|
|
10
10
|
from kodit._version import version
|
|
11
|
+
from kodit.application.services.auto_indexing_service import AutoIndexingService
|
|
11
12
|
from kodit.application.services.sync_scheduler import SyncSchedulerService
|
|
12
13
|
from kodit.config import AppContext
|
|
13
14
|
from kodit.infrastructure.api.v1.routers import indexes_router, search_router
|
|
14
15
|
from kodit.infrastructure.api.v1.schemas.context import AppLifespanState
|
|
15
|
-
from kodit.
|
|
16
|
+
from kodit.log import configure_logging, configure_telemetry
|
|
16
17
|
from kodit.mcp import mcp
|
|
17
18
|
from kodit.middleware import ASGICancelledErrorMiddleware, logging_middleware
|
|
18
19
|
|
|
@@ -26,10 +27,13 @@ async def app_lifespan(_: FastAPI) -> AsyncIterator[AppLifespanState]:
|
|
|
26
27
|
"""Manage application lifespan for auto-indexing and sync."""
|
|
27
28
|
global _auto_indexing_service, _sync_scheduler_service # noqa: PLW0603
|
|
28
29
|
|
|
30
|
+
# Setup app_context and implement logging and telemetry
|
|
29
31
|
app_context = AppContext()
|
|
30
|
-
|
|
32
|
+
configure_logging(app_context)
|
|
33
|
+
configure_telemetry(app_context)
|
|
31
34
|
|
|
32
35
|
# Start auto-indexing service
|
|
36
|
+
db = await app_context.get_db()
|
|
33
37
|
_auto_indexing_service = AutoIndexingService(
|
|
34
38
|
app_context=app_context,
|
|
35
39
|
session_factory=db.session_factory,
|
|
@@ -11,6 +11,7 @@ from kodit.application.factories.code_indexing_factory import (
|
|
|
11
11
|
create_code_indexing_application_service,
|
|
12
12
|
)
|
|
13
13
|
from kodit.config import AppContext
|
|
14
|
+
from kodit.infrastructure.ui.progress import create_log_progress_callback
|
|
14
15
|
|
|
15
16
|
|
|
16
17
|
class AutoIndexingService:
|
|
@@ -50,13 +51,20 @@ class AutoIndexingService:
|
|
|
50
51
|
|
|
51
52
|
for source in sources:
|
|
52
53
|
try:
|
|
54
|
+
# Only auto-index a source if it is new
|
|
55
|
+
if await service.does_index_exist(source):
|
|
56
|
+
self.log.info("Index already exists, skipping", source=source)
|
|
57
|
+
continue
|
|
58
|
+
|
|
53
59
|
self.log.info("Auto-indexing source", source=source)
|
|
54
60
|
|
|
55
61
|
# Create index
|
|
56
62
|
index = await service.create_index_from_uri(source)
|
|
57
63
|
|
|
58
64
|
# Run indexing (without progress callback for background mode)
|
|
59
|
-
await service.run_index(
|
|
65
|
+
await service.run_index(
|
|
66
|
+
index, progress_callback=create_log_progress_callback()
|
|
67
|
+
)
|
|
60
68
|
|
|
61
69
|
self.log.info("Successfully auto-indexed source", source=source)
|
|
62
70
|
|
{kodit-0.3.11 → kodit-0.3.13}/src/kodit/application/services/code_indexing_application_service.py
RENAMED
|
@@ -53,6 +53,13 @@ class CodeIndexingApplicationService:
|
|
|
53
53
|
self.session = session
|
|
54
54
|
self.log = structlog.get_logger(__name__)
|
|
55
55
|
|
|
56
|
+
async def does_index_exist(self, uri: str) -> bool:
|
|
57
|
+
"""Check if an index exists for a source."""
|
|
58
|
+
# Check if index already exists
|
|
59
|
+
sanitized_uri, _ = self.index_domain_service.sanitize_uri(uri)
|
|
60
|
+
existing_index = await self.index_repository.get_by_uri(sanitized_uri)
|
|
61
|
+
return existing_index is not None
|
|
62
|
+
|
|
56
63
|
async def create_index_from_uri(
|
|
57
64
|
self, uri: str, progress_callback: ProgressCallback | None = None
|
|
58
65
|
) -> Index:
|
|
@@ -14,6 +14,7 @@ from kodit.config import AppContext
|
|
|
14
14
|
from kodit.domain.services.index_query_service import IndexQueryService
|
|
15
15
|
from kodit.infrastructure.indexing.fusion_service import ReciprocalRankFusionService
|
|
16
16
|
from kodit.infrastructure.sqlalchemy.index_repository import SqlAlchemyIndexRepository
|
|
17
|
+
from kodit.infrastructure.ui.progress import create_log_progress_callback
|
|
17
18
|
|
|
18
19
|
|
|
19
20
|
class SyncSchedulerService:
|
|
@@ -102,7 +103,9 @@ class SyncSchedulerService:
|
|
|
102
103
|
source=str(index.source.working_copy.remote_uri),
|
|
103
104
|
)
|
|
104
105
|
|
|
105
|
-
await service.run_index(
|
|
106
|
+
await service.run_index(
|
|
107
|
+
index, progress_callback=create_log_progress_callback()
|
|
108
|
+
)
|
|
106
109
|
success_count += 1
|
|
107
110
|
|
|
108
111
|
self.log.info(
|