sourcecode 1.31.7__tar.gz → 1.31.9__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.9/.continue-here.md +180 -0
- sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-0911b79e.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-0911b79e.json +47 -47
- sourcecode-1.31.7/.sourcecode-cache/snapshot-265db75-37df4554.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-37df4554.json +4 -4
- sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-624321f3.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-624321f3.json +97 -20
- sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-776b4676.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-776b4676.json +2 -2
- sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-9770fba7.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-9770fba7.json +9 -5
- sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-37df4554.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-c4e3c102.json +16 -16
- sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-e8bc5fb4.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-e8bc5fb4.json +2 -2
- sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-e9801942.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-e9801942.json +7 -3
- sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-ee60e0cd.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-ee60e0cd.json +9 -5
- sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-fdd9d3f7.json → sourcecode-1.31.9/.sourcecode-cache/snapshot-0778d0a-fdd9d3f7.json +2 -2
- {sourcecode-1.31.7 → sourcecode-1.31.9}/PKG-INFO +3 -3
- {sourcecode-1.31.7 → sourcecode-1.31.9}/README.md +2 -2
- {sourcecode-1.31.7 → sourcecode-1.31.9}/pyproject.toml +1 -1
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/__init__.py +1 -1
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/architecture_analyzer.py +1 -1
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/cli.py +2868 -3204
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/java.py +86 -2
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/entrypoint_classifier.py +8 -1
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/file_classifier.py +21 -2
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/mcp/server.py +67 -8
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/prepare_context.py +35 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/repository_ir.py +325 -28
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/runtime_classifier.py +79 -1
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/serializer.py +58 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_mcp_tools.py +106 -0
- sourcecode-1.31.7/.continue-here.md +0 -101
- sourcecode-1.31.7/.sourcecode-cache/snapshot-265db75-03952dbd.json +0 -550
- sourcecode-1.31.7/.sourcecode-cache/snapshot-265db75-26a1ddd0.json +0 -550
- sourcecode-1.31.7/.sourcecode-cache/snapshot-565fabf-c4e3c102.json +0 -266
- {sourcecode-1.31.7 → sourcecode-1.31.9}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/.gitignore +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/.ruff.toml +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/CHANGELOG.md +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/CONTRIBUTING.md +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/LICENSE +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/SECURITY.md +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/docs/privacy.md +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/docs/schema.md +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/raw +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/run_cli.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/classifier.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/flow_analyzer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/progress.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/redactor.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/scanner.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/schema.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/src/sourcecode/workspace.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/__init__.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/conftest.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/coverage.xml +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/fastapi_app/src/main.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/go_service/cmd/api/main.go +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/go_service/go.mod +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/jacoco.xml +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/latin1_sample.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/latin1_sample_iso.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/lcov.info +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/nextjs_app/package.json +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/application/service/FindAusenteService.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/domain/entities/Ausente.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/infrastructure/rest/AusenteRestController.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/application/service/FindAutocoberturasService.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/domain/entities/Autocoberturas.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/infrastructure/rest/AutocoberturasRestController.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/application/service/FindCalendarioTrabajadorService.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/domain/entities/CalendarioTrabajador.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/infrastructure/rest/CalendarioTrabajadorRestController.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/application/service/FindDepartamentoService.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/domain/entities/Departamento.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/infrastructure/rest/DepartamentoRestController.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/application/service/FindEmpleadoService.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/domain/entities/Empleado.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/infrastructure/rest/EmpleadoRestController.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/config/FilterConfig.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/NominaRestController.java +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/fixtures/spring_boot_minimal/src/main/resources/mapper/HealthMapper.xml +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_architecture_analyzer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_architecture_summary.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_ast_extractor.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_block1_reliability.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_block2_coverage.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_block5_quality.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_broadleaf_fixes.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_bug_fixes_v1302.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_bug_fixes_v1312.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_bug_fixes_v1313.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_bug_fixes_v16.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_bug_fixes_v2.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_classifier.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_cli.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_code_notes_analyzer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_context_scorer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_contract_pipeline.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_coverage_parser.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_cross_consistency.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_dependency_analyzer_node_python.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_dependency_analyzer_polyglot.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_dependency_schema.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_detector_dotnet.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_detector_go_rust_java.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_detector_nodejs.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_detector_php_ruby_dart.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_detector_python.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_detector_universal_managed.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_detector_universal_systems.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_detectors_base.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_doc_analyzer_jsdom.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_doc_analyzer_python.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_encoding_regression.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_graph_analyzer_polyglot.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_graph_analyzer_python_node.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_graph_schema.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_hybrid_inference.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_dependencies.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_detection.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_docs.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_graph_modules.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_lqn.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_metrics.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_multistack.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_semantics.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_integration_universal.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_java_spring_integration.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_mcp_runner.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_mcp_serve.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_metrics_analyzer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_output_ux.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_packaging.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_phase1_improvements.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_pipeline_integrity.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_real_projects.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_redactor.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_repository_ir.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_scanner.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_schema.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_schema_normalization.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_scoring_calibration.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_semantic_analyzer_node.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_semantic_analyzer_python.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_semantic_import_resolution.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_semantic_schema.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_signal_hierarchy.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_summarizer.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_surface_honesty.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_task_differentiation.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_telemetry.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_v131_improvements.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_v1_10_regressions.py +0 -0
- {sourcecode-1.31.7 → sourcecode-1.31.9}/tests/test_workspace_analyzer.py +0 -0
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# Continue Here — atlas-cli sesión 17
|
|
2
|
+
|
|
3
|
+
**Paused:** 2026-05-21
|
|
4
|
+
**Repo:** `/Users/user/Downloads/atlas-cli`
|
|
5
|
+
**Branch:** master
|
|
6
|
+
**Working tree:** 6 archivos modificados, SIN commitear (user lo hará manualmente)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Trabajo de esta sesión — Truth-Model Unification (IC-001..IC-006)
|
|
11
|
+
|
|
12
|
+
Benchmark completo de sourcecode contra BroadleafCommerce reveló 6 inconsistencias donde herramientas contradicen misma verdad del repo. Todos los fixes aplicados a `src/sourcecode/`.
|
|
13
|
+
|
|
14
|
+
### Causa raíz crítica descubierta
|
|
15
|
+
|
|
16
|
+
`find_java_files(max_files=500)` truncaba repos grandes. BroadleafCommerce tiene 2762 Java files; `AdminBasicEntityController` estaba en posición 632 → excluido del IR → todo el análisis de herencia fallaba.
|
|
17
|
+
|
|
18
|
+
### Fixes aplicados
|
|
19
|
+
|
|
20
|
+
| IC | Descripción | Archivo | Resultado |
|
|
21
|
+
|---|---|---|---|
|
|
22
|
+
| IC-001 | `max_files` 500→3000 | `repository_ir.py:1929` | AdminBasicEntityController incluido |
|
|
23
|
+
| IC-001 | `_build_route_surface` con Phase 1/2/3 inheritance projection | `repository_ir.py:1610` | route_surface 23→118 en Broadleaf |
|
|
24
|
+
| IC-002 | `extends_map` pasado desde `_assemble` a `_build_route_surface` | `repository_ir.py:1573` | declaring_class/effective_class/inheritance_depth |
|
|
25
|
+
| IC-003 | `graph_modules=True` en agent mode | `cli.py:839` | architecture.method: filesystem_inference→graph+structure |
|
|
26
|
+
| IC-003 | Mensaje "run with --graph-modules" eliminado | `architecture_analyzer.py:333` | No más phantom flag guidance |
|
|
27
|
+
| IC-004 | `_compute_maven_fan_in()` nuevo método | `runtime_classifier.py` | pom.xml cross-module deps como fan_in |
|
|
28
|
+
| IC-004 | `_classify_maven_module()` nuevo método | `runtime_classifier.py` | Java modules sin package.json clasificados |
|
|
29
|
+
| IC-004 | `_criticality()`: infrastructure_layer+fan_in≥3→high | `runtime_classifier.py` | common: unknown/low→infrastructure_layer/high |
|
|
30
|
+
| IC-005 | `spring_events` block en `_assemble` output | `repository_ir.py:1540` | repo-ir expone event flows |
|
|
31
|
+
| IC-005 | `_spring_event_signal()` + wire en `agent_view` | `serializer.py:382,2005` | agent signals.event_flows presente |
|
|
32
|
+
| IC-006 | `suspected_areas` recomputado post-ranking | `prepare_context.py:1215` | Usa RelevantFile.path/.reason, no dict |
|
|
33
|
+
|
|
34
|
+
### Verificación contra BroadleafCommerce
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
route_surface: 23 → 118 ✓
|
|
38
|
+
AdminCategoryController: 0 → 17 routes ✓
|
|
39
|
+
inherited routes: 0 → 51 (depth>0) ✓
|
|
40
|
+
event_flows: absent → flow_count=12 ✓
|
|
41
|
+
architecture.method: filesystem_inference → graph+structure ✓
|
|
42
|
+
common criticality: low → high ✓
|
|
43
|
+
suspected_areas: 2 files → 7 ranked results ✓
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Pendiente conocido (no bloqueante)
|
|
47
|
+
|
|
48
|
+
**Gap route_surface vs endpoints (118 vs 130 — 12 routes):**
|
|
49
|
+
Bug pre-existente en `_extract_symbols`: anotaciones multi-línea tipo:
|
|
50
|
+
```java
|
|
51
|
+
@RequestMapping(value = "deletePhone", method = {
|
|
52
|
+
RequestMethod.GET, RequestMethod.POST
|
|
53
|
+
})
|
|
54
|
+
```
|
|
55
|
+
El fallback en `repository_ir.py:611` (`pending_anns = []`) limpia la anotación antes
|
|
56
|
+
de llegar al método. Afecta `CustomerPhoneController` (4 ep) y 2 métodos de
|
|
57
|
+
`AdminBasicEntityController`. Fix: rastrear apertura/cierre de `()` además de `{}`.
|
|
58
|
+
|
|
59
|
+
**Architecture confidence sigue "low":**
|
|
60
|
+
`ArchitectureAnalyzer` requiere ≥3 strong_domains para confidence "medium".
|
|
61
|
+
BroadleafCommerce solo tiene 1 ("admin"). Domain clusterer no reconoce módulos Maven
|
|
62
|
+
como bounded contexts. Fix separado en architecture_analyzer.py domain detection.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Estado de archivos modificados (sin commitear)
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
git diff --stat
|
|
70
|
+
# src/sourcecode/architecture_analyzer.py | 2 +-
|
|
71
|
+
# src/sourcecode/cli.py | 1 +
|
|
72
|
+
# src/sourcecode/prepare_context.py | 35 ++
|
|
73
|
+
# src/sourcecode/repository_ir.py | 137 +++++++++++++++++---
|
|
74
|
+
# src/sourcecode/runtime_classifier.py | 80 +++++++++++++++++-
|
|
75
|
+
# src/sourcecode/serializer.py | 58 +++++++++++++
|
|
76
|
+
# 6 files changed, 295 insertions(+), 18 deletions(-)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Mensaje de commit listo:
|
|
80
|
+
```
|
|
81
|
+
fix(java): unify truth model across endpoint, IR, agent, and classifier pipelines
|
|
82
|
+
|
|
83
|
+
Fixes 6 consistency bugs where sourcecode produced contradictory outputs for the same repo state:
|
|
84
|
+
|
|
85
|
+
IC-001: find_java_files cap 500→3000 — AdminBasicEntityController was at position 632,
|
|
86
|
+
silently excluded from IR on BroadleafCommerce-scale repos.
|
|
87
|
+
|
|
88
|
+
IC-001/IC-002: _build_route_surface gains 3-phase inheritance projection. Subclasses
|
|
89
|
+
with class-level @RequestMapping but zero own methods now inherit parent endpoints.
|
|
90
|
+
Adds declaring_class, effective_class, inheritance_depth to route surface entries.
|
|
91
|
+
Result: 23→118 routes on BroadleafCommerce, AdminCategoryController 0→17 routes.
|
|
92
|
+
|
|
93
|
+
IC-003: agent mode forces graph_modules=True so ArchitectureAnalyzer receives import
|
|
94
|
+
graph instead of falling back to filesystem_inference. Removes phantom --graph-modules
|
|
95
|
+
guidance from limitation messages.
|
|
96
|
+
|
|
97
|
+
IC-004: RuntimeClassifier gains Maven pom.xml fallback (_compute_maven_fan_in,
|
|
98
|
+
_classify_maven_module). Java modules with no package.json no longer classified as
|
|
99
|
+
unknown/low. common module: unknown/low→infrastructure_layer/high when fan_in≥3.
|
|
100
|
+
_criticality: infrastructure_layer with fan_in≥3 now returns high.
|
|
101
|
+
|
|
102
|
+
IC-005: spring_events block added to repo-ir _assemble output. _spring_event_signal
|
|
103
|
+
helper added to serializer, wired into agent_view signals. @EventListener and
|
|
104
|
+
publishEvent flows now visible in both repo-ir and --agent outputs.
|
|
105
|
+
|
|
106
|
+
IC-006: fix-bug suspected_areas recomputed after relevant_files ranking completes.
|
|
107
|
+
Uses RelevantFile.path/.reason (dataclass), not dict. RankingEngine output is primary
|
|
108
|
+
signal; BUG/FIXME comment counts demoted to secondary.
|
|
109
|
+
|
|
110
|
+
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Heredados de sesión 16 (siguen vigentes)
|
|
116
|
+
|
|
117
|
+
1. **CHANGELOG.md untracked** — quedó fuera del commit de sesión 16:
|
|
118
|
+
```bash
|
|
119
|
+
git add CHANGELOG.md
|
|
120
|
+
git commit -m "docs: add CHANGELOG.md with BUG-1..5 and IMP-1 entries"
|
|
121
|
+
```
|
|
122
|
+
Pero puede ir en el mismo commit que el de sesión 17.
|
|
123
|
+
|
|
124
|
+
2. **Spring bean wiring graph** — `_build_relations` emite `injects` edges. Falta: trazar `@Configuration → @Bean → @Autowired` completo.
|
|
125
|
+
|
|
126
|
+
3. **Transaction boundary edges** — `@Transactional` detectado en IR. Falta: emitir `transactional_boundary` edges entre service y DAO.
|
|
127
|
+
|
|
128
|
+
4. **`_diff_routes` para class-level `@RequestMapping`** — class-level mapping change debería propagarse a todos los endpoints del controller.
|
|
129
|
+
|
|
130
|
+
5. **Tests para symptom fix (sesión 15)** — `tests/test_prepare_context_symptom.py`.
|
|
131
|
+
|
|
132
|
+
6. **Multi-línea annotation parser fix** — `_extract_symbols` pierde `@RequestMapping(method={...})` en líneas separadas.
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Estado de tests
|
|
137
|
+
|
|
138
|
+
Tests de sesión 17: no corridos formalmente (cambios son fixes de output, no de lógica de test coverage existente). Suite anterior: 1010 passed.
|
|
139
|
+
|
|
140
|
+
Pre-existing failures (no tocar):
|
|
141
|
+
- `tests/test_block2_coverage.py::TestDocAnalyzerLanguageCoverage::test_java_marked_unsupported`
|
|
142
|
+
- `tests/test_dependency_analyzer_node_python.py::test_python_requirements_without_lockfile_keeps_declared_versions`
|
|
143
|
+
- `tests/test_scoring_calibration.py` — varios
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Primera acción al retomar
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
cd /Users/user/Downloads/atlas-cli
|
|
151
|
+
|
|
152
|
+
# 1. Revisar diff antes de commitear
|
|
153
|
+
git diff --stat
|
|
154
|
+
|
|
155
|
+
# 2. Correr tests rápidos para verificar no hay regresiones
|
|
156
|
+
python3 -m pytest tests/ \
|
|
157
|
+
--ignore=tests/test_block2_coverage.py \
|
|
158
|
+
--ignore=tests/test_scoring_calibration.py \
|
|
159
|
+
--deselect=tests/test_dependency_analyzer_node_python.py::test_python_requirements_without_lockfile_keeps_declared_versions \
|
|
160
|
+
-q -x
|
|
161
|
+
|
|
162
|
+
# 3. Si pasan, commitear sesión 17 + CHANGELOG.md pendiente
|
|
163
|
+
git add src/sourcecode/architecture_analyzer.py \
|
|
164
|
+
src/sourcecode/cli.py \
|
|
165
|
+
src/sourcecode/prepare_context.py \
|
|
166
|
+
src/sourcecode/repository_ir.py \
|
|
167
|
+
src/sourcecode/runtime_classifier.py \
|
|
168
|
+
src/sourcecode/serializer.py \
|
|
169
|
+
CHANGELOG.md
|
|
170
|
+
git commit -m "fix(java): unify truth model across endpoint, IR, agent, and classifier pipelines
|
|
171
|
+
..."
|
|
172
|
+
|
|
173
|
+
# 4. Siguiente: fix multi-línea annotation parser en _extract_symbols
|
|
174
|
+
# Archivo: src/sourcecode/repository_ir.py ~línea 407-614
|
|
175
|
+
# Bug: pending_anns limpiado por líneas intermedias de args multi-línea
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
*Pausado 2026-05-21 — gsd:pause-work (sesión 17)*
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"metadata": {
|
|
3
3
|
"schema_version": "1.0",
|
|
4
|
-
"generated_at": "2026-05-
|
|
5
|
-
"sourcecode_version": "1.31.
|
|
4
|
+
"generated_at": "2026-05-21T20:28:43.266195+00:00",
|
|
5
|
+
"sourcecode_version": "1.31.8",
|
|
6
6
|
"analyzed_path": "/Users/user/Downloads/atlas-cli",
|
|
7
7
|
"analyzer_fingerprints": {
|
|
8
8
|
"heuristic": "aa9738f3",
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
"java",
|
|
128
128
|
"python"
|
|
129
129
|
],
|
|
130
|
-
"total_loc":
|
|
130
|
+
"total_loc": 43022,
|
|
131
131
|
"coverage_records": [],
|
|
132
132
|
"coverage_sources_found": [],
|
|
133
133
|
"limitations": [],
|
|
@@ -324,15 +324,15 @@
|
|
|
324
324
|
"language": "python",
|
|
325
325
|
"is_test": false,
|
|
326
326
|
"production_target": null,
|
|
327
|
-
"total_lines":
|
|
328
|
-
"code_lines":
|
|
329
|
-
"blank_lines":
|
|
330
|
-
"comment_lines":
|
|
327
|
+
"total_lines": 2868,
|
|
328
|
+
"code_lines": 2455,
|
|
329
|
+
"blank_lines": 262,
|
|
330
|
+
"comment_lines": 151,
|
|
331
331
|
"loc_availability": "measured",
|
|
332
|
-
"function_count":
|
|
332
|
+
"function_count": 40,
|
|
333
333
|
"class_count": 1,
|
|
334
334
|
"symbol_availability": "measured",
|
|
335
|
-
"cyclomatic_complexity":
|
|
335
|
+
"cyclomatic_complexity": 12.975,
|
|
336
336
|
"complexity_availability": "measured",
|
|
337
337
|
"line_rate": null,
|
|
338
338
|
"branch_rate": null,
|
|
@@ -1245,15 +1245,15 @@
|
|
|
1245
1245
|
"language": "python",
|
|
1246
1246
|
"is_test": false,
|
|
1247
1247
|
"production_target": null,
|
|
1248
|
-
"total_lines":
|
|
1249
|
-
"code_lines":
|
|
1250
|
-
"blank_lines":
|
|
1248
|
+
"total_lines": 215,
|
|
1249
|
+
"code_lines": 165,
|
|
1250
|
+
"blank_lines": 50,
|
|
1251
1251
|
"comment_lines": 0,
|
|
1252
1252
|
"loc_availability": "measured",
|
|
1253
|
-
"function_count":
|
|
1253
|
+
"function_count": 15,
|
|
1254
1254
|
"class_count": 0,
|
|
1255
1255
|
"symbol_availability": "measured",
|
|
1256
|
-
"cyclomatic_complexity": 2.
|
|
1256
|
+
"cyclomatic_complexity": 2.6666666666666665,
|
|
1257
1257
|
"complexity_availability": "measured",
|
|
1258
1258
|
"line_rate": null,
|
|
1259
1259
|
"branch_rate": null,
|
|
@@ -1329,15 +1329,15 @@
|
|
|
1329
1329
|
"language": "python",
|
|
1330
1330
|
"is_test": false,
|
|
1331
1331
|
"production_target": null,
|
|
1332
|
-
"total_lines":
|
|
1333
|
-
"code_lines":
|
|
1334
|
-
"blank_lines":
|
|
1335
|
-
"comment_lines":
|
|
1332
|
+
"total_lines": 3875,
|
|
1333
|
+
"code_lines": 3143,
|
|
1334
|
+
"blank_lines": 410,
|
|
1335
|
+
"comment_lines": 322,
|
|
1336
1336
|
"loc_availability": "measured",
|
|
1337
1337
|
"function_count": 42,
|
|
1338
1338
|
"class_count": 6,
|
|
1339
1339
|
"symbol_availability": "measured",
|
|
1340
|
-
"cyclomatic_complexity": 20.
|
|
1340
|
+
"cyclomatic_complexity": 20.642857142857142,
|
|
1341
1341
|
"complexity_availability": "measured",
|
|
1342
1342
|
"line_rate": null,
|
|
1343
1343
|
"branch_rate": null,
|
|
@@ -1455,15 +1455,15 @@
|
|
|
1455
1455
|
"language": "python",
|
|
1456
1456
|
"is_test": false,
|
|
1457
1457
|
"production_target": null,
|
|
1458
|
-
"total_lines":
|
|
1459
|
-
"code_lines":
|
|
1460
|
-
"blank_lines":
|
|
1461
|
-
"comment_lines":
|
|
1458
|
+
"total_lines": 2041,
|
|
1459
|
+
"code_lines": 1630,
|
|
1460
|
+
"blank_lines": 296,
|
|
1461
|
+
"comment_lines": 115,
|
|
1462
1462
|
"loc_availability": "measured",
|
|
1463
|
-
"function_count":
|
|
1463
|
+
"function_count": 49,
|
|
1464
1464
|
"class_count": 4,
|
|
1465
1465
|
"symbol_availability": "measured",
|
|
1466
|
-
"cyclomatic_complexity":
|
|
1466
|
+
"cyclomatic_complexity": 8.816326530612244,
|
|
1467
1467
|
"complexity_availability": "measured",
|
|
1468
1468
|
"line_rate": null,
|
|
1469
1469
|
"branch_rate": null,
|
|
@@ -1476,15 +1476,15 @@
|
|
|
1476
1476
|
"language": "python",
|
|
1477
1477
|
"is_test": false,
|
|
1478
1478
|
"production_target": null,
|
|
1479
|
-
"total_lines":
|
|
1480
|
-
"code_lines":
|
|
1481
|
-
"blank_lines":
|
|
1482
|
-
"comment_lines":
|
|
1479
|
+
"total_lines": 409,
|
|
1480
|
+
"code_lines": 323,
|
|
1481
|
+
"blank_lines": 59,
|
|
1482
|
+
"comment_lines": 27,
|
|
1483
1483
|
"loc_availability": "measured",
|
|
1484
|
-
"function_count":
|
|
1484
|
+
"function_count": 10,
|
|
1485
1485
|
"class_count": 1,
|
|
1486
1486
|
"symbol_availability": "measured",
|
|
1487
|
-
"cyclomatic_complexity": 9.
|
|
1487
|
+
"cyclomatic_complexity": 9.6,
|
|
1488
1488
|
"complexity_availability": "measured",
|
|
1489
1489
|
"line_rate": null,
|
|
1490
1490
|
"branch_rate": null,
|
|
@@ -1560,15 +1560,15 @@
|
|
|
1560
1560
|
"language": "python",
|
|
1561
1561
|
"is_test": false,
|
|
1562
1562
|
"production_target": null,
|
|
1563
|
-
"total_lines":
|
|
1564
|
-
"code_lines":
|
|
1565
|
-
"blank_lines":
|
|
1566
|
-
"comment_lines":
|
|
1563
|
+
"total_lines": 2758,
|
|
1564
|
+
"code_lines": 2262,
|
|
1565
|
+
"blank_lines": 335,
|
|
1566
|
+
"comment_lines": 161,
|
|
1567
1567
|
"loc_availability": "measured",
|
|
1568
|
-
"function_count":
|
|
1568
|
+
"function_count": 50,
|
|
1569
1569
|
"class_count": 0,
|
|
1570
1570
|
"symbol_availability": "measured",
|
|
1571
|
-
"cyclomatic_complexity": 16.
|
|
1571
|
+
"cyclomatic_complexity": 16.9,
|
|
1572
1572
|
"complexity_availability": "measured",
|
|
1573
1573
|
"line_rate": null,
|
|
1574
1574
|
"branch_rate": null,
|
|
@@ -2861,15 +2861,15 @@
|
|
|
2861
2861
|
"language": "python",
|
|
2862
2862
|
"is_test": true,
|
|
2863
2863
|
"production_target": null,
|
|
2864
|
-
"total_lines":
|
|
2865
|
-
"code_lines":
|
|
2866
|
-
"blank_lines":
|
|
2867
|
-
"comment_lines":
|
|
2864
|
+
"total_lines": 338,
|
|
2865
|
+
"code_lines": 229,
|
|
2866
|
+
"blank_lines": 98,
|
|
2867
|
+
"comment_lines": 11,
|
|
2868
2868
|
"loc_availability": "measured",
|
|
2869
|
-
"function_count":
|
|
2869
|
+
"function_count": 40,
|
|
2870
2870
|
"class_count": 0,
|
|
2871
2871
|
"symbol_availability": "measured",
|
|
2872
|
-
"cyclomatic_complexity":
|
|
2872
|
+
"cyclomatic_complexity": 2.975,
|
|
2873
2873
|
"complexity_availability": "measured",
|
|
2874
2874
|
"line_rate": null,
|
|
2875
2875
|
"branch_rate": null,
|
|
@@ -3786,10 +3786,10 @@
|
|
|
3786
3786
|
"language": "unknown",
|
|
3787
3787
|
"is_test": false,
|
|
3788
3788
|
"production_target": null,
|
|
3789
|
-
"total_lines":
|
|
3790
|
-
"code_lines":
|
|
3791
|
-
"blank_lines":
|
|
3792
|
-
"comment_lines":
|
|
3789
|
+
"total_lines": 180,
|
|
3790
|
+
"code_lines": 111,
|
|
3791
|
+
"blank_lines": 46,
|
|
3792
|
+
"comment_lines": 23,
|
|
3793
3793
|
"loc_availability": "measured",
|
|
3794
3794
|
"function_count": 0,
|
|
3795
3795
|
"class_count": 0,
|
|
@@ -146,25 +146,25 @@
|
|
|
146
146
|
{
|
|
147
147
|
"kind": "BUG",
|
|
148
148
|
"path": "src/sourcecode/cli.py",
|
|
149
|
-
"line":
|
|
149
|
+
"line": 2664,
|
|
150
150
|
"text": "#1A fix: track block comments and skip // lines before annotation checks."
|
|
151
151
|
},
|
|
152
152
|
{
|
|
153
153
|
"kind": "BUG",
|
|
154
154
|
"path": "src/sourcecode/cli.py",
|
|
155
|
-
"line":
|
|
155
|
+
"line": 2722,
|
|
156
156
|
"text": "#1B: one endpoint per class prefix"
|
|
157
157
|
},
|
|
158
158
|
{
|
|
159
159
|
"kind": "BUG",
|
|
160
160
|
"path": "src/sourcecode/prepare_context.py",
|
|
161
|
-
"line":
|
|
161
|
+
"line": 1747,
|
|
162
162
|
"text": "#4: LOW confidence + 0 content matches → clear suspected_areas,"
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
165
|
"kind": "BUG",
|
|
166
166
|
"path": "src/sourcecode/prepare_context.py",
|
|
167
|
-
"line":
|
|
167
|
+
"line": 2356,
|
|
168
168
|
"text": "#3: onboard must cover ≥3 arch layers (controllers/services/domain/repositories)."
|
|
169
169
|
},
|
|
170
170
|
{
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"metadata": {
|
|
3
3
|
"schema_version": "1.0",
|
|
4
|
-
"generated_at": "2026-05-
|
|
5
|
-
"sourcecode_version": "1.31.
|
|
4
|
+
"generated_at": "2026-05-21T20:28:42.011293+00:00",
|
|
5
|
+
"sourcecode_version": "1.31.8",
|
|
6
6
|
"analyzed_path": "/Users/user/Downloads/atlas-cli",
|
|
7
7
|
"analyzer_fingerprints": {
|
|
8
8
|
"heuristic": "aa9738f3",
|
|
@@ -121,8 +121,8 @@
|
|
|
121
121
|
],
|
|
122
122
|
"doc_summary": {
|
|
123
123
|
"requested": true,
|
|
124
|
-
"total_count":
|
|
125
|
-
"symbol_count":
|
|
124
|
+
"total_count": 1122,
|
|
125
|
+
"symbol_count": 1067,
|
|
126
126
|
"languages": [
|
|
127
127
|
"python"
|
|
128
128
|
],
|
|
@@ -9064,17 +9064,6 @@
|
|
|
9064
9064
|
"importance": "high",
|
|
9065
9065
|
"workspace": null
|
|
9066
9066
|
},
|
|
9067
|
-
{
|
|
9068
|
-
"symbol": "_extract_java_endpoints",
|
|
9069
|
-
"kind": "function",
|
|
9070
|
-
"language": "python",
|
|
9071
|
-
"path": "src/sourcecode/cli.py",
|
|
9072
|
-
"doc_text": "Extract REST endpoint surface from Java source files.\n\nScans all .java files for @RequestMapping/@GetMapping/@PostMapping/@PutMapping/\n@DeleteMapping/@PatchMapping and @M3FiltroSeguridad annotations.\nReturns JSON-serializable dict with endpoints list, total, and undocumented count.",
|
|
9073
|
-
"signature": "def _extract_java_endpoints(root: 'Path') -> 'dict[str, Any]'",
|
|
9074
|
-
"source": "docstring",
|
|
9075
|
-
"importance": "high",
|
|
9076
|
-
"workspace": null
|
|
9077
|
-
},
|
|
9078
9067
|
{
|
|
9079
9068
|
"symbol": "endpoints_cmd",
|
|
9080
9069
|
"kind": "function",
|
|
@@ -9779,6 +9768,17 @@
|
|
|
9779
9768
|
"importance": "medium",
|
|
9780
9769
|
"workspace": null
|
|
9781
9770
|
},
|
|
9771
|
+
{
|
|
9772
|
+
"symbol": "_spring_event_signal",
|
|
9773
|
+
"kind": "function",
|
|
9774
|
+
"language": "python",
|
|
9775
|
+
"path": "src/sourcecode/serializer.py",
|
|
9776
|
+
"doc_text": "IC-005: Surface @EventListener and publishEvent from Java source files.\n\nScans sm.file_paths for Java files containing Spring event annotations.\nOnly runs on Java/Spring projects. Lightweight — path heuristics first,\nthen targeted content scan on candidate files only.",
|
|
9777
|
+
"signature": "def _spring_event_signal(sm: 'SourceMap') -> 'Optional[dict[str, Any]]'",
|
|
9778
|
+
"source": "docstring",
|
|
9779
|
+
"importance": "medium",
|
|
9780
|
+
"workspace": null
|
|
9781
|
+
},
|
|
9782
9782
|
{
|
|
9783
9783
|
"symbol": "_spring_profiles_context",
|
|
9784
9784
|
"kind": "function",
|
|
@@ -10615,6 +10615,17 @@
|
|
|
10615
10615
|
"importance": "medium",
|
|
10616
10616
|
"workspace": null
|
|
10617
10617
|
},
|
|
10618
|
+
{
|
|
10619
|
+
"symbol": "_parse_route_paths",
|
|
10620
|
+
"kind": "function",
|
|
10621
|
+
"language": "python",
|
|
10622
|
+
"path": "src/sourcecode/repository_ir.py",
|
|
10623
|
+
"doc_text": "Return all route paths from annotation args, including array syntax.\n\nHandles:\n @RequestMapping(\"/single\") → [\"/single\"]\n @RequestMapping({\"/v1/foo\", \"/v1/bar\"}) → [\"/v1/foo\", \"/v1/bar\"]\n @RequestMapping(value = \"/single\") → [\"/single\"]",
|
|
10624
|
+
"signature": "def _parse_route_paths(args_str: str) -> list[str]",
|
|
10625
|
+
"source": "docstring",
|
|
10626
|
+
"importance": "medium",
|
|
10627
|
+
"workspace": null
|
|
10628
|
+
},
|
|
10618
10629
|
{
|
|
10619
10630
|
"symbol": "_parse_route_http_method",
|
|
10620
10631
|
"kind": "function",
|
|
@@ -10835,6 +10846,17 @@
|
|
|
10835
10846
|
"importance": "medium",
|
|
10836
10847
|
"workspace": null
|
|
10837
10848
|
},
|
|
10849
|
+
{
|
|
10850
|
+
"symbol": "_build_route_surface",
|
|
10851
|
+
"kind": "function",
|
|
10852
|
+
"language": "python",
|
|
10853
|
+
"path": "src/sourcecode/repository_ir.py",
|
|
10854
|
+
"doc_text": "Return route surface with inheritance projection.\n\nextends_map: child_fqn → parent_simple_name derived from RelationEdge extends edges.\nProjects inherited endpoints onto subclasses that have a class-level @RequestMapping\nprefix but zero own method-level endpoints (IC-001 fix).\n\nroute_diffs semantics:\n None → build full route surface from symbols (used by build_repo_ir and\n extract_java_endpoints)\n [] → return empty (no baseline to diff against, e.g. extract_file_ir\n without old_source)\n [...] → return the pre-computed diffs from _diff_routes",
|
|
10855
|
+
"signature": "def _build_route_surface(symbols: list[SymbolRecord], route_diffs: Optional[list[dict]], extends_map: Optional[dict[str, str]]=None) -> list[dict]",
|
|
10856
|
+
"source": "docstring",
|
|
10857
|
+
"importance": "medium",
|
|
10858
|
+
"workspace": null
|
|
10859
|
+
},
|
|
10838
10860
|
{
|
|
10839
10861
|
"symbol": "extract_file_ir",
|
|
10840
10862
|
"kind": "function",
|
|
@@ -10868,13 +10890,24 @@
|
|
|
10868
10890
|
"importance": "medium",
|
|
10869
10891
|
"workspace": null
|
|
10870
10892
|
},
|
|
10893
|
+
{
|
|
10894
|
+
"symbol": "extract_java_endpoints",
|
|
10895
|
+
"kind": "function",
|
|
10896
|
+
"language": "python",
|
|
10897
|
+
"path": "src/sourcecode/repository_ir.py",
|
|
10898
|
+
"doc_text": "Extract REST endpoint surface from Java source files.\n\nCanonical endpoint extractor — uses IR symbol extraction + _build_route_surface().\nSingle source of truth for endpoint data; replaces the standalone regex extractor\nthat previously lived in cli.py.\n\nReturns JSON-serializable dict:\n {endpoints: [{method, path, controller, handler, required_permission?}], total, undocumented}",
|
|
10899
|
+
"signature": "def extract_java_endpoints(root: Path) -> 'dict[str, Any]'",
|
|
10900
|
+
"source": "docstring",
|
|
10901
|
+
"importance": "medium",
|
|
10902
|
+
"workspace": null
|
|
10903
|
+
},
|
|
10871
10904
|
{
|
|
10872
10905
|
"symbol": "find_java_files",
|
|
10873
10906
|
"kind": "function",
|
|
10874
10907
|
"language": "python",
|
|
10875
10908
|
"path": "src/sourcecode/repository_ir.py",
|
|
10876
10909
|
"doc_text": "Return relative paths to Java files under root, excluding test dirs and vendor.",
|
|
10877
|
-
"signature": "def find_java_files(root: Path, *, max_files: int=
|
|
10910
|
+
"signature": "def find_java_files(root: Path, *, max_files: int=3000) -> list[str]",
|
|
10878
10911
|
"source": "docstring",
|
|
10879
10912
|
"importance": "medium",
|
|
10880
10913
|
"workspace": null
|
|
@@ -11456,8 +11489,8 @@
|
|
|
11456
11489
|
"kind": "function",
|
|
11457
11490
|
"language": "python",
|
|
11458
11491
|
"path": "src/sourcecode/mcp/server.py",
|
|
11459
|
-
"doc_text": "High-signal summary of a repository (~1000-3000 tokens).\n\nMaps to: sourcecode <repo_path> --compact\nReturns: stacks, entry points, dependency summary, confidence, gaps.\nrepo_path: absolute path to the repository (default: current working directory).",
|
|
11460
|
-
"signature": "def get_compact_context(repo_path: str='.') -> dict",
|
|
11492
|
+
"doc_text": "High-signal summary of a repository (~1000-3000 tokens).\n\nMaps to: sourcecode <repo_path> --compact [--git-context]\nReturns: stacks, entry points, dependency summary, confidence, gaps.\nrepo_path: absolute path to the repository (default: current working directory).\ngit_context: include git log and branch context in the analysis.",
|
|
11493
|
+
"signature": "def get_compact_context(repo_path: str='.', git_context: bool=False) -> dict",
|
|
11461
11494
|
"source": "docstring",
|
|
11462
11495
|
"importance": "medium",
|
|
11463
11496
|
"workspace": null
|
|
@@ -11467,8 +11500,8 @@
|
|
|
11467
11500
|
"kind": "function",
|
|
11468
11501
|
"language": "python",
|
|
11469
11502
|
"path": "src/sourcecode/mcp/server.py",
|
|
11470
|
-
"doc_text": "Agent-optimised analysis: identity, entry points, dependencies, gaps.\n\nMaps to: sourcecode <repo_path> --agent\nReturns: structured noise-free JSON for AI agents.\nrepo_path: absolute path to the repository (default: current working directory).",
|
|
11471
|
-
"signature": "def get_agent_context(repo_path: str='.') -> dict",
|
|
11503
|
+
"doc_text": "Agent-optimised analysis: identity, entry points, dependencies, gaps.\n\nMaps to: sourcecode <repo_path> --agent [--git-context]\nReturns: structured noise-free JSON for AI agents.\nrepo_path: absolute path to the repository (default: current working directory).\ngit_context: include git log and branch context in the analysis.",
|
|
11504
|
+
"signature": "def get_agent_context(repo_path: str='.', git_context: bool=False) -> dict",
|
|
11472
11505
|
"source": "docstring",
|
|
11473
11506
|
"importance": "medium",
|
|
11474
11507
|
"workspace": null
|
|
@@ -11539,6 +11572,50 @@
|
|
|
11539
11572
|
"importance": "medium",
|
|
11540
11573
|
"workspace": null
|
|
11541
11574
|
},
|
|
11575
|
+
{
|
|
11576
|
+
"symbol": "onboard_context",
|
|
11577
|
+
"kind": "function",
|
|
11578
|
+
"language": "python",
|
|
11579
|
+
"path": "src/sourcecode/mcp/server.py",
|
|
11580
|
+
"doc_text": "Onboarding context: structured overview for new contributors.\n\nMaps to: sourcecode prepare-context onboard <repo_path>\nrepo_path: absolute path to the repository (default: current working directory).",
|
|
11581
|
+
"signature": "def onboard_context(repo_path: str='.') -> dict",
|
|
11582
|
+
"source": "docstring",
|
|
11583
|
+
"importance": "medium",
|
|
11584
|
+
"workspace": null
|
|
11585
|
+
},
|
|
11586
|
+
{
|
|
11587
|
+
"symbol": "version",
|
|
11588
|
+
"kind": "function",
|
|
11589
|
+
"language": "python",
|
|
11590
|
+
"path": "src/sourcecode/mcp/server.py",
|
|
11591
|
+
"doc_text": "Print sourcecode CLI version.\n\nMaps to: sourcecode version",
|
|
11592
|
+
"signature": "def version() -> dict",
|
|
11593
|
+
"source": "docstring",
|
|
11594
|
+
"importance": "medium",
|
|
11595
|
+
"workspace": null
|
|
11596
|
+
},
|
|
11597
|
+
{
|
|
11598
|
+
"symbol": "config",
|
|
11599
|
+
"kind": "function",
|
|
11600
|
+
"language": "python",
|
|
11601
|
+
"path": "src/sourcecode/mcp/server.py",
|
|
11602
|
+
"doc_text": "Show sourcecode CLI configuration.\n\nMaps to: sourcecode config",
|
|
11603
|
+
"signature": "def config() -> dict",
|
|
11604
|
+
"source": "docstring",
|
|
11605
|
+
"importance": "medium",
|
|
11606
|
+
"workspace": null
|
|
11607
|
+
},
|
|
11608
|
+
{
|
|
11609
|
+
"symbol": "telemetry",
|
|
11610
|
+
"kind": "function",
|
|
11611
|
+
"language": "python",
|
|
11612
|
+
"path": "src/sourcecode/mcp/server.py",
|
|
11613
|
+
"doc_text": "Manage telemetry settings.\n\nMaps to: sourcecode telemetry <status|enable|disable>\naction must be one of: status, enable, disable",
|
|
11614
|
+
"signature": "def telemetry(action: str) -> dict",
|
|
11615
|
+
"source": "docstring",
|
|
11616
|
+
"importance": "medium",
|
|
11617
|
+
"workspace": null
|
|
11618
|
+
},
|
|
11542
11619
|
{
|
|
11543
11620
|
"symbol": "src/sourcecode/mcp/__init__.py",
|
|
11544
11621
|
"kind": "module",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"metadata": {
|
|
3
3
|
"schema_version": "1.0",
|
|
4
|
-
"generated_at": "2026-05-
|
|
5
|
-
"sourcecode_version": "1.31.
|
|
4
|
+
"generated_at": "2026-05-21T20:28:42.547472+00:00",
|
|
5
|
+
"sourcecode_version": "1.31.8",
|
|
6
6
|
"analyzed_path": "/Users/user/Downloads/atlas-cli",
|
|
7
7
|
"analyzer_fingerprints": {
|
|
8
8
|
"heuristic": "aa9738f3",
|
|
@@ -85,16 +85,20 @@
|
|
|
85
85
|
"path": "src/sourcecode/mcp/server.py",
|
|
86
86
|
"role": "entrypoint",
|
|
87
87
|
"fn": [
|
|
88
|
+
"config() -> dict",
|
|
88
89
|
"fix_bug_context(repo_path: str, symptom: str) -> dict",
|
|
89
|
-
"get_agent_context(repo_path: str) -> dict",
|
|
90
|
-
"get_compact_context(repo_path: str)
|
|
91
|
-
"get_delta(repo_path: str, since: str) -> dict"
|
|
92
|
-
"get_endpoints(repo_path: str) -> dict"
|
|
90
|
+
"get_agent_context(repo_path: str, git_context: bool) -> dict",
|
|
91
|
+
"get_compact_context(repo_path: str, git_context: bool) ->...",
|
|
92
|
+
"get_delta(repo_path: str, since: str) -> dict"
|
|
93
93
|
],
|
|
94
94
|
"exports": [
|
|
95
|
+
"get_endpoints",
|
|
95
96
|
"get_ir_summary",
|
|
96
97
|
"get_module_context",
|
|
97
|
-
"
|
|
98
|
+
"onboard_context",
|
|
99
|
+
"review_pr_context",
|
|
100
|
+
"telemetry",
|
|
101
|
+
"version"
|
|
98
102
|
],
|
|
99
103
|
"deps": [
|
|
100
104
|
"mcp",
|