sourcecode 1.30.29__tar.gz → 1.31.0__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.
- sourcecode-1.31.0/.continue-here.md +101 -0
- sourcecode-1.30.29/.sourcecode-cache/snapshot-c6e9d39-37df4554.json → sourcecode-1.31.0/.sourcecode-cache/snapshot-0e430c1-37df4554.json +9 -9
- sourcecode-1.30.29/.sourcecode-cache/snapshot-c6e9d39-e9801942.json → sourcecode-1.31.0/.sourcecode-cache/snapshot-0e430c1-e9801942.json +19 -18
- sourcecode-1.30.29/.sourcecode-cache/snapshot-c6e9d39-ee60e0cd.json → sourcecode-1.31.0/.sourcecode-cache/snapshot-0e430c1-ee60e0cd.json +24 -26
- sourcecode-1.31.0/CHANGELOG.md +25 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/PKG-INFO +6 -3
- {sourcecode-1.30.29 → sourcecode-1.31.0}/README.md +2 -2
- {sourcecode-1.30.29 → sourcecode-1.31.0}/pyproject.toml +5 -1
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/__init__.py +1 -1
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/cli.py +313 -5
- sourcecode-1.31.0/src/sourcecode/mcp/__init__.py +5 -0
- sourcecode-1.31.0/src/sourcecode/mcp/onboarding/__init__.py +1 -0
- sourcecode-1.31.0/src/sourcecode/mcp/onboarding/applier.py +63 -0
- sourcecode-1.31.0/src/sourcecode/mcp/onboarding/backup.py +40 -0
- sourcecode-1.31.0/src/sourcecode/mcp/onboarding/detector.py +59 -0
- sourcecode-1.31.0/src/sourcecode/mcp/onboarding/planner.py +40 -0
- sourcecode-1.31.0/src/sourcecode/mcp/runner.py +40 -0
- sourcecode-1.31.0/src/sourcecode/mcp/server.py +147 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/prepare_context.py +24 -1
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/serializer.py +24 -2
- sourcecode-1.31.0/tests/test_bug_fixes_v2.py +293 -0
- sourcecode-1.31.0/tests/test_mcp_runner.py +65 -0
- sourcecode-1.31.0/tests/test_mcp_serve.py +47 -0
- sourcecode-1.31.0/tests/test_mcp_tools.py +242 -0
- sourcecode-1.30.29/.continue-here.md +0 -150
- sourcecode-1.30.29/.sourcecode-cache/snapshot-c6e9d39-0911b79e.json +0 -3471
- sourcecode-1.30.29/.sourcecode-cache/snapshot-c6e9d39-624321f3.json +0 -11389
- sourcecode-1.30.29/.sourcecode-cache/snapshot-c6e9d39-776b4676.json +0 -367
- sourcecode-1.30.29/.sourcecode-cache/snapshot-c6e9d39-9770fba7.json +0 -374
- sourcecode-1.30.29/.sourcecode-cache/snapshot-c6e9d39-c4e3c102.json +0 -262
- sourcecode-1.30.29/.sourcecode-cache/snapshot-c6e9d39-e8bc5fb4.json +0 -122
- sourcecode-1.30.29/.sourcecode-cache/snapshot-c6e9d39-fdd9d3f7.json +0 -512
- {sourcecode-1.30.29 → sourcecode-1.31.0}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/.gitignore +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/.ruff.toml +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/CONTRIBUTING.md +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/LICENSE +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/SECURITY.md +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/docs/privacy.md +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/docs/schema.md +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/raw +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/run_cli.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/classifier.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/flow_analyzer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/progress.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/redactor.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/repository_ir.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/scanner.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/schema.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/src/sourcecode/workspace.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/__init__.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/conftest.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/coverage.xml +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/fastapi_app/src/main.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/go_service/cmd/api/main.go +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/go_service/go.mod +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/jacoco.xml +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/latin1_sample.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/latin1_sample_iso.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/lcov.info +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/nextjs_app/package.json +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/application/service/FindAusenteService.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/domain/entities/Ausente.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/infrastructure/rest/AusenteRestController.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/application/service/FindAutocoberturasService.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/domain/entities/Autocoberturas.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/infrastructure/rest/AutocoberturasRestController.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/application/service/FindCalendarioTrabajadorService.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/domain/entities/CalendarioTrabajador.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/infrastructure/rest/CalendarioTrabajadorRestController.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/application/service/FindDepartamentoService.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/domain/entities/Departamento.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/infrastructure/rest/DepartamentoRestController.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/application/service/FindEmpleadoService.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/domain/entities/Empleado.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/infrastructure/rest/EmpleadoRestController.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/config/FilterConfig.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/NominaRestController.java +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/fixtures/spring_boot_minimal/src/main/resources/mapper/HealthMapper.xml +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_architecture_analyzer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_architecture_summary.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_ast_extractor.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_block1_reliability.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_block2_coverage.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_block5_quality.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_bug_fixes_v1302.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_bug_fixes_v16.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_classifier.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_cli.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_code_notes_analyzer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_context_scorer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_contract_pipeline.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_coverage_parser.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_cross_consistency.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_dependency_analyzer_node_python.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_dependency_analyzer_polyglot.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_dependency_schema.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_detector_dotnet.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_detector_go_rust_java.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_detector_nodejs.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_detector_php_ruby_dart.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_detector_python.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_detector_universal_managed.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_detector_universal_systems.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_detectors_base.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_doc_analyzer_jsdom.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_doc_analyzer_python.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_encoding_regression.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_graph_analyzer_polyglot.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_graph_analyzer_python_node.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_graph_schema.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_hybrid_inference.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_integration.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_integration_dependencies.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_integration_detection.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_integration_docs.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_integration_graph_modules.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_integration_lqn.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_integration_metrics.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_integration_multistack.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_integration_semantics.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_integration_universal.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_java_spring_integration.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_metrics_analyzer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_output_ux.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_packaging.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_phase1_improvements.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_pipeline_integrity.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_real_projects.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_redactor.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_repository_ir.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_scanner.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_schema.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_schema_normalization.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_scoring_calibration.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_semantic_analyzer_node.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_semantic_analyzer_python.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_semantic_import_resolution.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_semantic_schema.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_signal_hierarchy.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_summarizer.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_surface_honesty.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_task_differentiation.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_telemetry.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_v131_improvements.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_v1_10_regressions.py +0 -0
- {sourcecode-1.30.29 → sourcecode-1.31.0}/tests/test_workspace_analyzer.py +0 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Continue Here — atlas-cli sesión 16
|
|
2
|
+
|
|
3
|
+
**Paused:** 2026-05-20
|
|
4
|
+
**Repo:** `/Users/user/Downloads/atlas-cli`
|
|
5
|
+
**Branch:** master
|
|
6
|
+
**Working tree:** CHANGELOG.md sin commitear (untracked)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Trabajo de esta sesión (ya commiteado)
|
|
11
|
+
|
|
12
|
+
**Commit:** `0e430c1 fix(cli+serializer): BUG-1..5 + IMP-1 — UTF-8 stdout, --exclude parsing, onboard fast scan, angular_version null, lazy_routes_count zero, test_gaps config filter`
|
|
13
|
+
|
|
14
|
+
| ID | Fix | Archivo | Líneas clave |
|
|
15
|
+
|---|---|---|---|
|
|
16
|
+
| BUG-1 | `repo_ir_cmd` usa `stdout.buffer.write(encode("utf-8"))` en vez de `stdout.write()`. `main_entry` llama `stdout.reconfigure(encoding="utf-8")`. UnicodeEncodeError capturado con hint a `--output`. | `cli.py` | ~2367, ~2443 |
|
|
17
|
+
| BUG-2 | `--exclude` añadido a `_OPTIONS_WITH_VALUE` → valor no consumido como repo path. Warning si valor es directorio existente. | `cli.py` | ~173, ~856 |
|
|
18
|
+
| BUG-3 | `onboard --fast` siempre usa `AdaptiveScanner(base_depth=2)`; ya no usa git-index-only (que devolvía solo `.idea/vcs.xml`). | `prepare_context.py` | ~791 |
|
|
19
|
+
| BUG-4 | `deps = {**(pkg.get("dependencies") or {}), ...}` para manejar `null` explícito en package.json. Añade `peerDependencies` como fallback. | `serializer.py` | ~1663 |
|
|
20
|
+
| BUG-5 | Cuenta `loadChildren:` y `loadComponent:` (property syntax modern Angular) en vez del inexistente `loadChildren(`. | `serializer.py` | ~1644 |
|
|
21
|
+
| IMP-1 | `test_gaps` excluye `.eslintrc*`, `karma.conf.js`, `tsconfig*`, `.claude/**`, etc. por defecto. Nuevo flag `--include-config` para override. | `prepare_context.py`, `cli.py` | ~1663, ~1806 |
|
|
22
|
+
| IMP-2 | Stderr warning con workaround exacto cuando se detecta UnicodeEncodeError (BUG-1) o exclude value = directorio (BUG-2). | `cli.py` | ~2373, ~858 |
|
|
23
|
+
|
|
24
|
+
**Tests:** `tests/test_bug_fixes_v2.py` — 14 tests, todos pasan.
|
|
25
|
+
**Suite completa:** 1010 passed, 0 nuevos failures (3 pre-existentes sin tocar).
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Primera acción al retomar
|
|
30
|
+
|
|
31
|
+
CHANGELOG.md quedó fuera del commit (untracked). Commitear:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
cd /Users/user/Downloads/atlas-cli
|
|
35
|
+
git add CHANGELOG.md
|
|
36
|
+
git commit -m "docs: add CHANGELOG.md with BUG-1..5 and IMP-1 entries for v1.30.29
|
|
37
|
+
|
|
38
|
+
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Pendientes (heredados de sesión 15, siguen vigentes)
|
|
44
|
+
|
|
45
|
+
1. **Spring bean wiring graph** — `_build_relations` emite `injects` edges para `@Autowired`. Falta: trazar `@Configuration → @Bean → @Autowired` completo, exponer como `wiring_graph`.
|
|
46
|
+
|
|
47
|
+
2. **Smoke test en repo spring-boot real:**
|
|
48
|
+
```bash
|
|
49
|
+
cd ~/Documents/workspace/spring-boot-realworld-example-app
|
|
50
|
+
sourcecode repo-ir . --since HEAD~1 2>/dev/null | python3 -c "
|
|
51
|
+
import json, sys; d=json.load(sys.stdin)
|
|
52
|
+
print('nodes:', len(d['graph']['nodes']))
|
|
53
|
+
print('route_surface:', d.get('route_surface', []))
|
|
54
|
+
print('reverse_graph keys:', len(d.get('reverse_graph', {})))
|
|
55
|
+
"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
3. **Transaction boundary tracking** — `@Transactional` detectado. Falta: emitir `transactional_boundary` edges.
|
|
59
|
+
|
|
60
|
+
4. **`_diff_routes` para `@RequestMapping` en clase** — class-level mapping change debería propagarse a todos los endpoints del controller.
|
|
61
|
+
|
|
62
|
+
5. **Tests para el symptom fix (sesión 15)** — validar `--symptom "sesiones"` con mock commits produce ranking diferente al baseline. Cubrir en `tests/test_prepare_context_symptom.py`.
|
|
63
|
+
|
|
64
|
+
6. **`_FRONTEND_SYMPTOM_MAP`** — añadir "sesiones"/"session" con backend terms `["httpsession", "sessionmanager", "sessionservice", "sessionrepository"]`.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Estado de tests al pausar
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
1010 passed, 3 skipped (pre-existing)
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Pre-existing failures (no tocar):
|
|
75
|
+
- `tests/test_block2_coverage.py::TestDocAnalyzerLanguageCoverage::test_java_marked_unsupported` — `DocRecord.__init__()` unexpected kwarg `name`
|
|
76
|
+
- `tests/test_dependency_analyzer_node_python.py::test_python_requirements_without_lockfile_keeps_declared_versions` — typer version mismatch
|
|
77
|
+
- `tests/test_scoring_calibration.py` — varios score calibration tests
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Para retomar
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
cd /Users/user/Downloads/atlas-cli
|
|
85
|
+
git log --oneline -3 # 0e430c1 debe estar arriba
|
|
86
|
+
git status # solo CHANGELOG.md untracked
|
|
87
|
+
|
|
88
|
+
# 1. Commitear CHANGELOG.md (comando arriba)
|
|
89
|
+
|
|
90
|
+
# 2. Verificar suite
|
|
91
|
+
python3 -m pytest tests/ \
|
|
92
|
+
--ignore=tests/test_block2_coverage.py \
|
|
93
|
+
--ignore=tests/test_scoring_calibration.py \
|
|
94
|
+
--deselect=tests/test_dependency_analyzer_node_python.py::test_python_requirements_without_lockfile_keeps_declared_versions \
|
|
95
|
+
-q
|
|
96
|
+
# Expected: 1010 passed, 3 skipped
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
*Pausado 2026-05-20 — gsd:pause-work*
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
],
|
|
25
25
|
"dependency_summary": {
|
|
26
26
|
"requested": true,
|
|
27
|
-
"total_count":
|
|
28
|
-
"direct":
|
|
27
|
+
"total_count": 12,
|
|
28
|
+
"direct": 12,
|
|
29
29
|
"sources": [
|
|
30
30
|
"manifest"
|
|
31
31
|
]
|
|
@@ -139,16 +139,10 @@
|
|
|
139
139
|
}
|
|
140
140
|
},
|
|
141
141
|
"code_notes": [
|
|
142
|
-
{
|
|
143
|
-
"kind": "BUG",
|
|
144
|
-
"path": "src/sourcecode/cli.py",
|
|
145
|
-
"line": 852,
|
|
146
|
-
"text": "2: parse --exclude into extra_excludes frozenset"
|
|
147
|
-
},
|
|
148
142
|
{
|
|
149
143
|
"kind": "BUG",
|
|
150
144
|
"path": "src/sourcecode/prepare_context.py",
|
|
151
|
-
"line":
|
|
145
|
+
"line": 1628,
|
|
152
146
|
"text": "#4: LOW confidence + 0 content matches → clear suspected_areas,"
|
|
153
147
|
},
|
|
154
148
|
{
|
|
@@ -175,6 +169,12 @@
|
|
|
175
169
|
"line": 158,
|
|
176
170
|
"text": "4 — fix-bug ranks Java (changed + annotated) above TypeScript (unchanged)"
|
|
177
171
|
},
|
|
172
|
+
{
|
|
173
|
+
"kind": "BUG",
|
|
174
|
+
"path": "tests/test_repository_ir.py",
|
|
175
|
+
"line": 740,
|
|
176
|
+
"text": "3 fix: without --since, scores use call-graph centrality (never all-zero)"
|
|
177
|
+
},
|
|
178
178
|
{
|
|
179
179
|
"kind": "FIXME",
|
|
180
180
|
"path": "tests/fixtures/latin1_sample.java",
|
|
@@ -33,7 +33,7 @@ stacks:
|
|
|
33
33
|
- package_manager:pip
|
|
34
34
|
- entry:src/sourcecode/cli.py
|
|
35
35
|
- entry:run_cli.py
|
|
36
|
-
- extensions:
|
|
36
|
+
- extensions:144
|
|
37
37
|
produced_by: python
|
|
38
38
|
language_version: null
|
|
39
39
|
packaging: null
|
|
@@ -48,8 +48,9 @@ contracts:
|
|
|
48
48
|
- config_cmd() -> None
|
|
49
49
|
- 'main(ctx: typer.Context, format: str, output: Optional[Pa...'
|
|
50
50
|
- main_entry() -> None
|
|
51
|
-
-
|
|
51
|
+
- mcp_serve() -> None
|
|
52
52
|
exports:
|
|
53
|
+
- prepare_context_cmd
|
|
53
54
|
- repo_ir_cmd
|
|
54
55
|
- telemetry_disable
|
|
55
56
|
- telemetry_enable
|
|
@@ -59,6 +60,20 @@ contracts:
|
|
|
59
60
|
deps:
|
|
60
61
|
- sourcecode
|
|
61
62
|
- typer
|
|
63
|
+
- path: src/sourcecode/mcp/server.py
|
|
64
|
+
role: entrypoint
|
|
65
|
+
fn:
|
|
66
|
+
- 'agent(path: str, git_context: bool) -> dict'
|
|
67
|
+
- 'compact(path: str, git_context: bool) -> dict'
|
|
68
|
+
- config() -> dict
|
|
69
|
+
- "prepare_context(task: Literal['delta', 'review-pr', 'fix-..."
|
|
70
|
+
- 'repo_ir(path: str) -> dict'
|
|
71
|
+
exports:
|
|
72
|
+
- telemetry
|
|
73
|
+
- version
|
|
74
|
+
deps:
|
|
75
|
+
- mcp
|
|
76
|
+
- sourcecode
|
|
62
77
|
- path: src/sourcecode/context_scorer.py
|
|
63
78
|
role: util
|
|
64
79
|
exports:
|
|
@@ -173,29 +188,15 @@ contracts:
|
|
|
173
188
|
- TaskContextBuilder
|
|
174
189
|
- TaskOutput
|
|
175
190
|
- TaskSpec
|
|
176
|
-
- path: src/sourcecode/ranking_engine.py
|
|
177
|
-
role: util
|
|
178
|
-
fn:
|
|
179
|
-
- 'compute_impact_score(runtime_impact: float, dependency_ce...'
|
|
180
|
-
- 'resolve_framework_signal(category: str | None) -> float'
|
|
181
|
-
- 'resolve_runtime_impact(category: str | None) -> float'
|
|
182
|
-
exports:
|
|
183
|
-
- k: class
|
|
184
|
-
names:
|
|
185
|
-
- FileScore
|
|
186
|
-
- RankingEngine
|
|
187
|
-
- TaskWeights
|
|
188
|
-
deps:
|
|
189
|
-
- sourcecode
|
|
190
191
|
contracts_meta:
|
|
191
192
|
total: 15
|
|
192
193
|
shown: 15
|
|
193
194
|
truncated: false
|
|
194
195
|
summary:
|
|
195
196
|
files: 15
|
|
196
|
-
total:
|
|
197
|
+
total: 70
|
|
197
198
|
methods:
|
|
198
|
-
ast:
|
|
199
|
+
ast: 70
|
|
199
200
|
confidence:
|
|
200
201
|
overall: high
|
|
201
202
|
stack: high
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"package_manager:pip",
|
|
43
43
|
"entry:src/sourcecode/cli.py",
|
|
44
44
|
"entry:run_cli.py",
|
|
45
|
-
"extensions:
|
|
45
|
+
"extensions:144"
|
|
46
46
|
],
|
|
47
47
|
"produced_by": "python",
|
|
48
48
|
"language_version": null,
|
|
@@ -61,9 +61,10 @@
|
|
|
61
61
|
"config_cmd() -> None",
|
|
62
62
|
"main(ctx: typer.Context, format: str, output: Optional[Pa...",
|
|
63
63
|
"main_entry() -> None",
|
|
64
|
-
"
|
|
64
|
+
"mcp_serve() -> None"
|
|
65
65
|
],
|
|
66
66
|
"exports": [
|
|
67
|
+
"prepare_context_cmd",
|
|
67
68
|
"repo_ir_cmd",
|
|
68
69
|
"telemetry_disable",
|
|
69
70
|
"telemetry_enable",
|
|
@@ -76,6 +77,25 @@
|
|
|
76
77
|
"typer"
|
|
77
78
|
]
|
|
78
79
|
},
|
|
80
|
+
{
|
|
81
|
+
"path": "src/sourcecode/mcp/server.py",
|
|
82
|
+
"role": "entrypoint",
|
|
83
|
+
"fn": [
|
|
84
|
+
"agent(path: str, git_context: bool) -> dict",
|
|
85
|
+
"compact(path: str, git_context: bool) -> dict",
|
|
86
|
+
"config() -> dict",
|
|
87
|
+
"prepare_context(task: Literal['delta', 'review-pr', 'fix-...",
|
|
88
|
+
"repo_ir(path: str) -> dict"
|
|
89
|
+
],
|
|
90
|
+
"exports": [
|
|
91
|
+
"telemetry",
|
|
92
|
+
"version"
|
|
93
|
+
],
|
|
94
|
+
"deps": [
|
|
95
|
+
"mcp",
|
|
96
|
+
"sourcecode"
|
|
97
|
+
]
|
|
98
|
+
},
|
|
79
99
|
{
|
|
80
100
|
"path": "src/sourcecode/context_scorer.py",
|
|
81
101
|
"role": "util",
|
|
@@ -262,28 +282,6 @@
|
|
|
262
282
|
]
|
|
263
283
|
}
|
|
264
284
|
]
|
|
265
|
-
},
|
|
266
|
-
{
|
|
267
|
-
"path": "src/sourcecode/ranking_engine.py",
|
|
268
|
-
"role": "util",
|
|
269
|
-
"fn": [
|
|
270
|
-
"compute_impact_score(runtime_impact: float, dependency_ce...",
|
|
271
|
-
"resolve_framework_signal(category: str | None) -> float",
|
|
272
|
-
"resolve_runtime_impact(category: str | None) -> float"
|
|
273
|
-
],
|
|
274
|
-
"exports": [
|
|
275
|
-
{
|
|
276
|
-
"k": "class",
|
|
277
|
-
"names": [
|
|
278
|
-
"FileScore",
|
|
279
|
-
"RankingEngine",
|
|
280
|
-
"TaskWeights"
|
|
281
|
-
]
|
|
282
|
-
}
|
|
283
|
-
],
|
|
284
|
-
"deps": [
|
|
285
|
-
"sourcecode"
|
|
286
|
-
]
|
|
287
285
|
}
|
|
288
286
|
],
|
|
289
287
|
"contracts_meta": {
|
|
@@ -293,9 +291,9 @@
|
|
|
293
291
|
},
|
|
294
292
|
"summary": {
|
|
295
293
|
"files": 15,
|
|
296
|
-
"total":
|
|
294
|
+
"total": 70,
|
|
297
295
|
"methods": {
|
|
298
|
-
"ast":
|
|
296
|
+
"ast": 70
|
|
299
297
|
}
|
|
300
298
|
},
|
|
301
299
|
"confidence": {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [Unreleased]
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- `prepare-context generate-tests --include-config`: opt-in flag to include tooling
|
|
7
|
+
config files (`.eslintrc*`, `karma.conf.js`, `jest.config.js`, etc.) in `test_gaps`.
|
|
8
|
+
By default these are now excluded (IMP-1).
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **BUG-1** `repo-ir` stdout: JSON is now written via `stdout.buffer` (UTF-8) so Unicode
|
|
12
|
+
characters (e.g. `→`) survive on Windows consoles with non-UTF-8 codecs.
|
|
13
|
+
`main_entry` also calls `stdout.reconfigure(encoding='utf-8')` on startup.
|
|
14
|
+
- **BUG-2** `--exclude` with a space-separated value (`--exclude "a,b"`) was silently
|
|
15
|
+
consumed as the repository path. Added `--exclude` to the options-with-value registry
|
|
16
|
+
so its argument is parsed correctly.
|
|
17
|
+
- **BUG-3** `prepare-context onboard --fast` returned only the git-changed file
|
|
18
|
+
(e.g. `.idea/vcs.xml`). Fast mode for `onboard` now always uses a shallow depth-2
|
|
19
|
+
scan so manifests and entry points are reliably discovered.
|
|
20
|
+
- **BUG-4** `angular_version: null` when `package.json` has `"dependencies": null`.
|
|
21
|
+
The merge now uses `or {}` so an explicit `null` key doesn't raise TypeError.
|
|
22
|
+
Also checks `peerDependencies` as a fallback source.
|
|
23
|
+
- **BUG-5** `lazy_routes_count: 0` in Angular projects. Counting now uses
|
|
24
|
+
`loadChildren:` and `loadComponent:` (property syntax) instead of the defunct
|
|
25
|
+
`loadChildren(` call syntax.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.31.0
|
|
4
4
|
Summary: Deterministic codebase context for AI coding agents
|
|
5
5
|
License: Apache License
|
|
6
6
|
Version 2.0, January 2004
|
|
@@ -212,16 +212,19 @@ Requires-Dist: tree-sitter-javascript>=0.21; extra == 'ast'
|
|
|
212
212
|
Requires-Dist: tree-sitter-typescript>=0.21; extra == 'ast'
|
|
213
213
|
Requires-Dist: tree-sitter>=0.21; extra == 'ast'
|
|
214
214
|
Provides-Extra: dev
|
|
215
|
+
Requires-Dist: mcp>=1.0.0; extra == 'dev'
|
|
215
216
|
Requires-Dist: mypy>=1.10; extra == 'dev'
|
|
216
217
|
Requires-Dist: pytest>=8; extra == 'dev'
|
|
217
218
|
Requires-Dist: ruff>=0.15; extra == 'dev'
|
|
219
|
+
Provides-Extra: mcp
|
|
220
|
+
Requires-Dist: mcp>=1.0.0; extra == 'mcp'
|
|
218
221
|
Description-Content-Type: text/markdown
|
|
219
222
|
|
|
220
223
|
# sourcecode
|
|
221
224
|
|
|
222
225
|
**Deterministic, behavior-aware codebase context for AI agents and PR review.**
|
|
223
226
|
|
|
224
|
-

|
|
225
228
|

|
|
226
229
|
|
|
227
230
|
---
|
|
@@ -257,7 +260,7 @@ pipx install sourcecode
|
|
|
257
260
|
|
|
258
261
|
```bash
|
|
259
262
|
sourcecode version
|
|
260
|
-
# sourcecode 1.
|
|
263
|
+
# sourcecode 1.31.0
|
|
261
264
|
```
|
|
262
265
|
|
|
263
266
|
---
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**Deterministic, behavior-aware codebase context for AI agents and PR review.**
|
|
4
4
|
|
|
5
|
-

|
|
6
6
|

|
|
7
7
|
|
|
8
8
|
---
|
|
@@ -38,7 +38,7 @@ pipx install sourcecode
|
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
40
|
sourcecode version
|
|
41
|
-
# sourcecode 1.
|
|
41
|
+
# sourcecode 1.31.0
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
---
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "sourcecode"
|
|
7
|
-
version = "1.
|
|
7
|
+
version = "1.31.0"
|
|
8
8
|
description = "Deterministic codebase context for AI coding agents"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
@@ -39,12 +39,16 @@ dev = [
|
|
|
39
39
|
"pytest>=8",
|
|
40
40
|
"ruff>=0.15",
|
|
41
41
|
"mypy>=1.10",
|
|
42
|
+
"mcp>=1.0.0",
|
|
42
43
|
]
|
|
43
44
|
ast = [
|
|
44
45
|
"tree-sitter>=0.21",
|
|
45
46
|
"tree-sitter-typescript>=0.21",
|
|
46
47
|
"tree-sitter-javascript>=0.21",
|
|
47
48
|
]
|
|
49
|
+
mcp = [
|
|
50
|
+
"mcp>=1.0.0",
|
|
51
|
+
]
|
|
48
52
|
|
|
49
53
|
[[tool.mypy.overrides]]
|
|
50
54
|
module = ["tree_sitter", "tree_sitter_typescript", "tree_sitter_javascript"]
|