sourcecode 1.31.4__tar.gz → 1.31.5__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.4 → sourcecode-1.31.5}/PKG-INFO +3 -3
- {sourcecode-1.31.4 → sourcecode-1.31.5}/README.md +2 -2
- {sourcecode-1.31.4 → sourcecode-1.31.5}/pyproject.toml +1 -1
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/__init__.py +1 -1
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/cli.py +58 -10
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/heuristic.py +6 -1
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/serializer.py +8 -2
- {sourcecode-1.31.4 → sourcecode-1.31.5}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/.continue-here.md +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/.gitignore +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/.ruff.toml +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/CHANGELOG.md +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/CONTRIBUTING.md +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/LICENSE +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/SECURITY.md +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/docs/privacy.md +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/docs/schema.md +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/raw +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/run_cli.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/classifier.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/flow_analyzer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/mcp/server.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/progress.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/redactor.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/repository_ir.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/scanner.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/schema.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/src/sourcecode/workspace.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/__init__.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/conftest.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/coverage.xml +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/fastapi_app/src/main.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/go_service/cmd/api/main.go +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/go_service/go.mod +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/jacoco.xml +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/latin1_sample.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/latin1_sample_iso.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/lcov.info +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/nextjs_app/package.json +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/application/service/FindAusenteService.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/domain/entities/Ausente.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/infrastructure/rest/AusenteRestController.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/application/service/FindAutocoberturasService.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/domain/entities/Autocoberturas.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/infrastructure/rest/AutocoberturasRestController.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/application/service/FindCalendarioTrabajadorService.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/domain/entities/CalendarioTrabajador.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/infrastructure/rest/CalendarioTrabajadorRestController.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/application/service/FindDepartamentoService.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/domain/entities/Departamento.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/infrastructure/rest/DepartamentoRestController.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/application/service/FindEmpleadoService.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/domain/entities/Empleado.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/infrastructure/rest/EmpleadoRestController.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/config/FilterConfig.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/NominaRestController.java +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/spring_boot_minimal/src/main/resources/mapper/HealthMapper.xml +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_architecture_analyzer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_architecture_summary.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_ast_extractor.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_block1_reliability.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_block2_coverage.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_block5_quality.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_bug_fixes_v1302.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_bug_fixes_v1312.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_bug_fixes_v1313.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_bug_fixes_v16.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_bug_fixes_v2.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_classifier.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_cli.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_code_notes_analyzer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_context_scorer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_contract_pipeline.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_coverage_parser.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_cross_consistency.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_dependency_analyzer_node_python.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_dependency_analyzer_polyglot.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_dependency_schema.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_detector_dotnet.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_detector_go_rust_java.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_detector_nodejs.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_detector_php_ruby_dart.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_detector_python.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_detector_universal_managed.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_detector_universal_systems.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_detectors_base.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_doc_analyzer_jsdom.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_doc_analyzer_python.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_encoding_regression.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_graph_analyzer_polyglot.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_graph_analyzer_python_node.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_graph_schema.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_hybrid_inference.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_integration.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_integration_dependencies.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_integration_detection.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_integration_docs.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_integration_graph_modules.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_integration_lqn.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_integration_metrics.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_integration_multistack.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_integration_semantics.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_integration_universal.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_java_spring_integration.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_mcp_runner.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_mcp_serve.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_mcp_tools.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_metrics_analyzer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_output_ux.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_packaging.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_phase1_improvements.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_pipeline_integrity.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_real_projects.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_redactor.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_repository_ir.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_scanner.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_schema.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_schema_normalization.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_scoring_calibration.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_semantic_analyzer_node.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_semantic_analyzer_python.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_semantic_import_resolution.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_semantic_schema.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_signal_hierarchy.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_summarizer.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_surface_honesty.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_task_differentiation.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_telemetry.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_v131_improvements.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_v1_10_regressions.py +0 -0
- {sourcecode-1.31.4 → sourcecode-1.31.5}/tests/test_workspace_analyzer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 1.31.
|
|
3
|
+
Version: 1.31.5
|
|
4
4
|
Summary: Deterministic codebase context for AI coding agents
|
|
5
5
|
License: Apache License
|
|
6
6
|
Version 2.0, January 2004
|
|
@@ -225,7 +225,7 @@ Description-Content-Type: text/markdown
|
|
|
225
225
|
|
|
226
226
|
**Deterministic, behavior-aware codebase context for AI agents and PR review.**
|
|
227
227
|
|
|
228
|
-

|
|
229
229
|

|
|
230
230
|
|
|
231
231
|
---
|
|
@@ -261,7 +261,7 @@ pipx install sourcecode
|
|
|
261
261
|
|
|
262
262
|
```bash
|
|
263
263
|
sourcecode version
|
|
264
|
-
# sourcecode 1.31.
|
|
264
|
+
# sourcecode 1.31.5
|
|
265
265
|
```
|
|
266
266
|
|
|
267
267
|
---
|
|
@@ -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.31.
|
|
41
|
+
# sourcecode 1.31.5
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
---
|
|
@@ -401,7 +401,7 @@ def main(
|
|
|
401
401
|
help=(
|
|
402
402
|
"High-signal summary (typically 1000–3000 tokens depending on repo size): "
|
|
403
403
|
"stacks, entry points, dependency summary, confidence, and gaps. "
|
|
404
|
-
"Includes security_surface, mybatis, and transactional_boundaries for Java projects. "
|
|
404
|
+
"Includes security_surface (when @M3FiltroSeguridad detected), mybatis (when MyBatis framework detected), and transactional_boundaries for Java projects. "
|
|
405
405
|
"Use --agent for maximum signal or --slim (when available) for minimal token footprint."
|
|
406
406
|
),
|
|
407
407
|
),
|
|
@@ -2418,14 +2418,20 @@ def repo_ir_cmd(
|
|
|
2418
2418
|
|
|
2419
2419
|
if output_path:
|
|
2420
2420
|
output_path.write_text(output, encoding="utf-8")
|
|
2421
|
-
n_nodes = len((ir.get("graph") or {}).get("nodes") or [])
|
|
2422
|
-
n_edges = len((ir.get("graph") or {}).get("edges") or [])
|
|
2423
2421
|
size_kb = len(output.encode("utf-8")) // 1024
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2422
|
+
if summary_only:
|
|
2423
|
+
typer.echo(
|
|
2424
|
+
f"IR written to {output_path} ({size_kb}KB, graph omitted by --summary-only)",
|
|
2425
|
+
err=True,
|
|
2426
|
+
)
|
|
2427
|
+
else:
|
|
2428
|
+
n_nodes = len((ir.get("graph") or {}).get("nodes") or [])
|
|
2429
|
+
n_edges = len((ir.get("graph") or {}).get("edges") or [])
|
|
2430
|
+
typer.echo(
|
|
2431
|
+
f"IR written to {output_path} "
|
|
2432
|
+
f"({size_kb}KB, {n_nodes} nodes, {n_edges} edges)",
|
|
2433
|
+
err=True,
|
|
2434
|
+
)
|
|
2429
2435
|
else:
|
|
2430
2436
|
try:
|
|
2431
2437
|
_sys.stdout.buffer.write(output.encode("utf-8"))
|
|
@@ -2462,7 +2468,11 @@ def _extract_java_endpoints(root: "Path") -> "dict[str, Any]":
|
|
|
2462
2468
|
r'@(Get|Post|Put|Delete|Patch|Request)Mapping\s*'
|
|
2463
2469
|
r'(?:\(\s*(?:value\s*=\s*)?(?:"([^"]*)"|\{[^}]*\}|[^)]*)\s*\))?',
|
|
2464
2470
|
)
|
|
2465
|
-
_CLASS_RE = _re.compile(
|
|
2471
|
+
_CLASS_RE = _re.compile(
|
|
2472
|
+
r'^[ \t]*(?:(?:public|protected|private|abstract|final|@\w+)\s+)*'
|
|
2473
|
+
r'(?:class|interface)\s+(\w+)',
|
|
2474
|
+
_re.MULTILINE,
|
|
2475
|
+
)
|
|
2466
2476
|
_METHOD_RE = _re.compile(
|
|
2467
2477
|
r'(?:public|protected|private)\s+\S+\s+(\w+)\s*\(',
|
|
2468
2478
|
)
|
|
@@ -2540,7 +2550,45 @@ def _extract_java_endpoints(root: "Path") -> "dict[str, Any]":
|
|
|
2540
2550
|
if "class " in block or "interface " in block:
|
|
2541
2551
|
path_m = _CLASS_PATH_RE.search(block)
|
|
2542
2552
|
if path_m:
|
|
2543
|
-
|
|
2553
|
+
captured = path_m.group(1).rstrip("/")
|
|
2554
|
+
# Handle string concat: @RequestMapping("lit" + ClassName.CONST)
|
|
2555
|
+
_CONCAT_CONST_RE = _re.compile(
|
|
2556
|
+
r'@RequestMapping\s*\(\s*(?:value\s*=\s*)?'
|
|
2557
|
+
r'["\']([^"\']*)["\'\s]*\+\s*(\w+)\.(\w+)'
|
|
2558
|
+
)
|
|
2559
|
+
cc_m = _CONCAT_CONST_RE.search(block)
|
|
2560
|
+
if cc_m:
|
|
2561
|
+
prefix_lit = cc_m.group(1)
|
|
2562
|
+
c_class = cc_m.group(2)
|
|
2563
|
+
c_field = cc_m.group(3)
|
|
2564
|
+
_SVAL_RE = _re.compile(
|
|
2565
|
+
r'static\s+final\s+String\s+'
|
|
2566
|
+
+ _re.escape(c_field)
|
|
2567
|
+
+ r'\s*=\s*"([^"]+)"'
|
|
2568
|
+
)
|
|
2569
|
+
resolved = None
|
|
2570
|
+
m_cur = _SVAL_RE.search(content)
|
|
2571
|
+
if m_cur:
|
|
2572
|
+
resolved = m_cur.group(1)
|
|
2573
|
+
else:
|
|
2574
|
+
for _jf in java_files:
|
|
2575
|
+
if _jf.stem == c_class:
|
|
2576
|
+
try:
|
|
2577
|
+
_jf_txt = _jf.read_text(
|
|
2578
|
+
encoding="utf-8", errors="replace"
|
|
2579
|
+
)
|
|
2580
|
+
m_jf = _SVAL_RE.search(_jf_txt)
|
|
2581
|
+
if m_jf:
|
|
2582
|
+
resolved = m_jf.group(1)
|
|
2583
|
+
break
|
|
2584
|
+
except OSError:
|
|
2585
|
+
pass
|
|
2586
|
+
if resolved is not None:
|
|
2587
|
+
class_bases = [(prefix_lit + resolved).rstrip("/")]
|
|
2588
|
+
else:
|
|
2589
|
+
class_bases = [captured] if captured else [""]
|
|
2590
|
+
else:
|
|
2591
|
+
class_bases = [captured] if captured else [""]
|
|
2544
2592
|
else:
|
|
2545
2593
|
arr_m = _CLASS_ARRAY_PATH_RE.search(block)
|
|
2546
2594
|
if arr_m:
|
|
@@ -59,8 +59,13 @@ class HeuristicDetector(AbstractDetector):
|
|
|
59
59
|
paths = flatten_file_tree(context.file_tree)
|
|
60
60
|
counts: Counter[str] = Counter()
|
|
61
61
|
for path in paths:
|
|
62
|
-
if path.startswith("."):
|
|
62
|
+
if path.startswith(".") or _is_auxiliary_path(path):
|
|
63
63
|
continue
|
|
64
|
+
# Skip JS/TS files bundled as Java static resources (not Node.js source)
|
|
65
|
+
if path.endswith((".js", ".ts", ".tsx", ".jsx", ".mjs")):
|
|
66
|
+
_np = path.replace("\\", "/")
|
|
67
|
+
if "src/main/resources/" in _np or "src/main/webapp/" in _np:
|
|
68
|
+
continue
|
|
64
69
|
for extension, stack in _EXTENSION_MAP.items():
|
|
65
70
|
if path.endswith(extension):
|
|
66
71
|
counts[stack] += 1
|
|
@@ -409,7 +409,10 @@ def _spring_profiles_context(sm: "SourceMap") -> "Optional[dict[str, Any]]":
|
|
|
409
409
|
else:
|
|
410
410
|
matches = [
|
|
411
411
|
p for p in sm.file_paths
|
|
412
|
-
if
|
|
412
|
+
if (Path(p).stem.lower() == pfx
|
|
413
|
+
or Path(p).stem.lower().startswith(pfx + "-")
|
|
414
|
+
or Path(p).stem.lower().endswith("-" + pfx))
|
|
415
|
+
and p.endswith(".java")
|
|
413
416
|
]
|
|
414
417
|
if matches:
|
|
415
418
|
per_profile[profile] = [Path(p).name for p in matches[:5]]
|
|
@@ -534,6 +537,8 @@ def _bootstrap_structured(eps: list) -> "Optional[dict[str, Any]]":
|
|
|
534
537
|
|
|
535
538
|
for ep in eps:
|
|
536
539
|
path = getattr(ep, "path", "")
|
|
540
|
+
if "/test/" in path or "/tests/" in path:
|
|
541
|
+
continue
|
|
537
542
|
kind = getattr(ep, "kind", "")
|
|
538
543
|
stem = _Path(path).stem
|
|
539
544
|
|
|
@@ -587,8 +592,9 @@ def _bootstrap_structured(eps: list) -> "Optional[dict[str, Any]]":
|
|
|
587
592
|
module_names.append(module)
|
|
588
593
|
|
|
589
594
|
_ctrl_note = (
|
|
590
|
-
f"{controller_methods}
|
|
595
|
+
f"{controller_methods} detected entry-point methods across "
|
|
591
596
|
f"{controller_classes} controller classes"
|
|
597
|
+
f" (use 'sourcecode endpoints' for full surface)"
|
|
592
598
|
)
|
|
593
599
|
if len(module_names) > 30:
|
|
594
600
|
# Group by first path segment under ddd/ (inferred domain area)
|
{sourcecode-1.31.4 → sourcecode-1.31.5}/.agents/skills/source-command-gsd-join-discord/SKILL.md
RENAMED
|
File without changes
|
{sourcecode-1.31.4 → sourcecode-1.31.5}/.agents/skills/source-command-gsd-review-backlog/SKILL.md
RENAMED
|
File without changes
|
{sourcecode-1.31.4 → sourcecode-1.31.5}/.agents/skills/source-command-gsd-workstreams/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sourcecode-1.31.4 → sourcecode-1.31.5}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|