sourcecode 1.31.11__tar.gz → 1.31.12__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.12/.sourcecode-cache/snapshot-7571a6f-20354ec3.json +261 -0
- sourcecode-1.31.12/.sourcecode-cache/snapshot-7571a6f-2c874f8c.json +122 -0
- sourcecode-1.31.12/.sourcecode-cache/snapshot-7571a6f-6c8157db.json +226 -0
- sourcecode-1.31.12/.sourcecode-cache/snapshot-7571a6f-93090ce0.json +129 -0
- sourcecode-1.31.12/.sourcecode-cache/snapshot-7571a6f-ce79b4bf.json +3846 -0
- sourcecode-1.31.12/.sourcecode-cache/snapshot-7571a6f-cf0bfa7a.json +325 -0
- sourcecode-1.31.12/.sourcecode-cache/snapshot-7571a6f-e73c6323.json +261 -0
- sourcecode-1.31.12/.sourcecode-cache/snapshot-7571a6f-ee60e0cd.json +325 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/PKG-INFO +3 -3
- {sourcecode-1.31.11 → sourcecode-1.31.12}/README.md +2 -2
- {sourcecode-1.31.11 → sourcecode-1.31.12}/pyproject.toml +1 -1
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/__init__.py +1 -1
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/cli.py +58 -19
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/mcp/server.py +23 -7
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/prepare_context.py +16 -23
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/repository_ir.py +71 -5
- sourcecode-1.31.12/tests/test_audit_fixes.py +833 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.continue-here.md +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.gitignore +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.ruff.toml +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-0911b79e.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-37df4554.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-624321f3.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-776b4676.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-9770fba7.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-c4e3c102.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-e8bc5fb4.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-e9801942.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-ee60e0cd.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-fdd9d3f7.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-27b713ac.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-28e558ac.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-2d7eca5f.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-7cd91058.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-8ea5b5bb.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-bef1a526.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-c69bcdc8.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-d2dfc690.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-dc30daab.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-fa5c742c.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/CHANGELOG.md +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/CONTRIBUTING.md +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/LICENSE +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/SECURITY.md +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/docs/privacy.md +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/docs/schema.md +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/raw +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/run_cli.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/classifier.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/flow_analyzer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/progress.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/redactor.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/scanner.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/schema.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/serializer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/workspace.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/__init__.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/conftest.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/coverage.xml +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/fastapi_app/src/main.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/go_service/cmd/api/main.go +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/go_service/go.mod +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/jacoco.xml +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/latin1_sample.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/latin1_sample_iso.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/lcov.info +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/nextjs_app/package.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/application/service/FindAusenteService.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/domain/entities/Ausente.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/infrastructure/rest/AusenteRestController.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/application/service/FindAutocoberturasService.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/domain/entities/Autocoberturas.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/infrastructure/rest/AutocoberturasRestController.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/application/service/FindCalendarioTrabajadorService.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/domain/entities/CalendarioTrabajador.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/infrastructure/rest/CalendarioTrabajadorRestController.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/application/service/FindDepartamentoService.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/domain/entities/Departamento.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/infrastructure/rest/DepartamentoRestController.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/application/service/FindEmpleadoService.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/domain/entities/Empleado.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/infrastructure/rest/EmpleadoRestController.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/config/FilterConfig.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/NominaRestController.java +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/resources/mapper/HealthMapper.xml +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_architecture_analyzer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_architecture_summary.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_ast_extractor.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_block1_reliability.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_block2_coverage.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_block5_quality.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_broadleaf_fixes.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_bug_fixes_v1302.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_bug_fixes_v1312.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_bug_fixes_v1313.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_bug_fixes_v16.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_bug_fixes_v2.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_classifier.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_cli.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_code_notes_analyzer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_context_scorer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_contract_pipeline.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_coverage_parser.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_cross_consistency.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_dependency_analyzer_node_python.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_dependency_analyzer_polyglot.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_dependency_schema.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_detector_dotnet.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_detector_go_rust_java.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_detector_nodejs.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_detector_php_ruby_dart.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_detector_python.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_detector_universal_managed.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_detector_universal_systems.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_detectors_base.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_doc_analyzer_jsdom.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_doc_analyzer_python.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_encoding_regression.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_graph_analyzer_polyglot.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_graph_analyzer_python_node.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_graph_schema.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_hybrid_inference.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_dependencies.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_detection.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_docs.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_graph_modules.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_lqn.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_metrics.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_multistack.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_semantics.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_universal.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_java_spring_integration.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_mcp_runner.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_mcp_serve.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_mcp_tools.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_metrics_analyzer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_output_ux.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_packaging.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_phase1_improvements.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_pipeline_integrity.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_real_projects.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_redactor.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_repository_ir.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_scanner.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_schema.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_schema_normalization.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_scoring_calibration.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_semantic_analyzer_node.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_semantic_analyzer_python.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_semantic_import_resolution.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_semantic_schema.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_signal_hierarchy.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_summarizer.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_surface_honesty.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_task_differentiation.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_telemetry.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_v131_improvements.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_v1_10_regressions.py +0 -0
- {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_workspace_analyzer.py +0 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0",
|
|
3
|
+
"project_type": "cli",
|
|
4
|
+
"project_summary": "CLI: Deterministic codebase context for AI coding agents. Stack: Python (Typer).",
|
|
5
|
+
"architecture_summary": "Python cli tool using Typer.\nLayered Architecture with orchestration, processing, data layers.\nAnalyzes repository tree and detects stack, entry points, and project type.\nProduces a JSON/YAML-serializable SourceMap with secret redaction.\nOpcionalmente añade dependencias, grafo de módulos, docs y docstrings, métricas de calidad y semántica y call graph.",
|
|
6
|
+
"stacks": [
|
|
7
|
+
{
|
|
8
|
+
"stack": "python",
|
|
9
|
+
"detection_method": "manifest",
|
|
10
|
+
"confidence": "high",
|
|
11
|
+
"primary": true,
|
|
12
|
+
"frameworks": [
|
|
13
|
+
"Typer"
|
|
14
|
+
],
|
|
15
|
+
"package_manager": "pip"
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"entry_points": [
|
|
19
|
+
{
|
|
20
|
+
"path": "src/sourcecode/cli.py",
|
|
21
|
+
"kind": "cli",
|
|
22
|
+
"confidence": "high"
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
"dependency_summary": {
|
|
26
|
+
"requested": true,
|
|
27
|
+
"total_count": 13,
|
|
28
|
+
"direct": 13,
|
|
29
|
+
"sources": [
|
|
30
|
+
"manifest"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"key_dependencies": [
|
|
34
|
+
{
|
|
35
|
+
"name": "mcp",
|
|
36
|
+
"version": ">=1.0.0"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "typer",
|
|
40
|
+
"version": ">=0.24"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "pathspec",
|
|
44
|
+
"version": ">=1.0",
|
|
45
|
+
"role": "parsing"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "ruamel.yaml",
|
|
49
|
+
"version": ">=0.18",
|
|
50
|
+
"role": "serialization"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "tomli",
|
|
54
|
+
"version": ">=2.0",
|
|
55
|
+
"role": "serialization"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"env_summary": {
|
|
59
|
+
"total": 16,
|
|
60
|
+
"required": 4,
|
|
61
|
+
"categories": [
|
|
62
|
+
"application",
|
|
63
|
+
"auth",
|
|
64
|
+
"database",
|
|
65
|
+
"general",
|
|
66
|
+
"server"
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
"env_map": [
|
|
70
|
+
{
|
|
71
|
+
"key": "DB_HOST",
|
|
72
|
+
"required": true,
|
|
73
|
+
"category": "database"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"key": "KEY",
|
|
77
|
+
"required": true,
|
|
78
|
+
"category": "general"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"key": "LDAP_PASSWORD",
|
|
82
|
+
"required": true,
|
|
83
|
+
"category": "auth"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"key": "SPRING_DATASOURCE_PASSWORD",
|
|
87
|
+
"required": true,
|
|
88
|
+
"category": "auth"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"key": "CI",
|
|
92
|
+
"category": "general"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"key": "NO_COLOR",
|
|
96
|
+
"category": "general"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"key": "SOURCECODE_TELEMETRY_ENDPOINT",
|
|
100
|
+
"category": "server"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"key": "SPRING_DATASOURCE_URL",
|
|
104
|
+
"category": "server"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"key": "SPRING_DATASOURCE_USERNAME",
|
|
108
|
+
"category": "general"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"key": "TERM",
|
|
112
|
+
"category": "general"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"key": "app.name",
|
|
116
|
+
"category": "application"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"key": "app.timeout",
|
|
120
|
+
"category": "application"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"key": "saint.env",
|
|
124
|
+
"category": "application"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"key": "saint.integration.url",
|
|
128
|
+
"category": "application"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"key": "saint.ldap.url",
|
|
132
|
+
"category": "application"
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
"code_notes_summary": {
|
|
136
|
+
"total": 19,
|
|
137
|
+
"by_kind": {
|
|
138
|
+
"BUG": 7,
|
|
139
|
+
"TODO": 7,
|
|
140
|
+
"FIXME": 2,
|
|
141
|
+
"NOTE": 2,
|
|
142
|
+
"HACK": 1
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"code_notes": [
|
|
146
|
+
{
|
|
147
|
+
"kind": "BUG",
|
|
148
|
+
"path": "src/sourcecode/prepare_context.py",
|
|
149
|
+
"line": 1747,
|
|
150
|
+
"text": "#4: LOW confidence + 0 content matches → clear suspected_areas,"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"kind": "BUG",
|
|
154
|
+
"path": "src/sourcecode/prepare_context.py",
|
|
155
|
+
"line": 2378,
|
|
156
|
+
"text": "#3: onboard must cover ≥3 arch layers (controllers/services/domain/repositories)."
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"kind": "BUG",
|
|
160
|
+
"path": "tests/test_bug_fixes_v16.py",
|
|
161
|
+
"line": 21,
|
|
162
|
+
"text": "1 — UTF-8 round-trip via write_output"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"kind": "BUG",
|
|
166
|
+
"path": "tests/test_bug_fixes_v16.py",
|
|
167
|
+
"line": 46,
|
|
168
|
+
"text": "2 — Java DDD scan reaches depth 10 (Mapper.xml found)"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"kind": "BUG",
|
|
172
|
+
"path": "tests/test_bug_fixes_v16.py",
|
|
173
|
+
"line": 105,
|
|
174
|
+
"text": "3 — --changed-only uses allowed_changed_files, not empty"
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"kind": "BUG",
|
|
178
|
+
"path": "tests/test_bug_fixes_v16.py",
|
|
179
|
+
"line": 158,
|
|
180
|
+
"text": "4 — fix-bug ranks Java (changed + annotated) above TypeScript (unchanged)"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"kind": "BUG",
|
|
184
|
+
"path": "tests/test_repository_ir.py",
|
|
185
|
+
"line": 757,
|
|
186
|
+
"text": "3 fix: without --since, scores use call-graph centrality (never all-zero)"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"kind": "FIXME",
|
|
190
|
+
"path": "tests/fixtures/latin1_sample.java",
|
|
191
|
+
"line": 2,
|
|
192
|
+
"text": "La funciónño está incompleta — falta validación de ó y é"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"kind": "FIXME",
|
|
196
|
+
"path": "tests/test_code_notes_analyzer.py",
|
|
197
|
+
"line": 39,
|
|
198
|
+
"text": "broken\\n\","
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"kind": "TODO",
|
|
202
|
+
"path": "src/sourcecode/schema.py",
|
|
203
|
+
"line": 472,
|
|
204
|
+
"text": "| FIXME | HACK | NOTE | DEPRECATED | WARNING | XXX | BUG | OPTIMIZE"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"kind": "TODO",
|
|
208
|
+
"path": "tests/fixtures/latin1_sample.java",
|
|
209
|
+
"line": 1,
|
|
210
|
+
"text": "Revisar los días de IT en la sección de mantenimiento"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"kind": "TODO",
|
|
214
|
+
"path": "tests/fixtures/latin1_sample_iso.java",
|
|
215
|
+
"line": 2,
|
|
216
|
+
"text": "La función está bien"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"kind": "TODO",
|
|
220
|
+
"path": "tests/test_broadleaf_fixes.py",
|
|
221
|
+
"line": 406,
|
|
222
|
+
"text": "refactor cart logic\\nvar x = 1;\\n\")"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"kind": "TODO",
|
|
226
|
+
"path": "tests/test_broadleaf_fixes.py",
|
|
227
|
+
"line": 412,
|
|
228
|
+
"text": "internal jQuery note\\n// FIXME: internal issue\\nvar j={};\\n\")"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"kind": "TODO",
|
|
232
|
+
"path": "tests/test_bug_fixes_v1302.py",
|
|
233
|
+
"line": 304,
|
|
234
|
+
"text": "fix this\\nx = 1\\n\")"
|
|
235
|
+
}
|
|
236
|
+
],
|
|
237
|
+
"confidence_summary": {
|
|
238
|
+
"overall": "high",
|
|
239
|
+
"stack": "high",
|
|
240
|
+
"entry_points": "high",
|
|
241
|
+
"sections": {
|
|
242
|
+
"stack": "high",
|
|
243
|
+
"entrypoints": "high",
|
|
244
|
+
"dependencies": "high",
|
|
245
|
+
"architecture": "low",
|
|
246
|
+
"file_relevance": "medium"
|
|
247
|
+
}
|
|
248
|
+
},
|
|
249
|
+
"analysis_gaps": [
|
|
250
|
+
{
|
|
251
|
+
"area": "documentation",
|
|
252
|
+
"reason": "No Architecture Decision Records (ADRs) detected — missing docs/ or adr/ directory",
|
|
253
|
+
"impact": "low"
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"area": "api_contract",
|
|
257
|
+
"reason": "No OpenAPI/Swagger contract detected — agents cannot auto-discover API surface without it",
|
|
258
|
+
"impact": "medium"
|
|
259
|
+
}
|
|
260
|
+
]
|
|
261
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
{
|
|
2
|
+
"metadata": {
|
|
3
|
+
"schema_version": "1.0",
|
|
4
|
+
"generated_at": "2026-05-22T20:31:36.686053+00:00",
|
|
5
|
+
"sourcecode_version": "1.31.11",
|
|
6
|
+
"analyzed_path": "/Users/user/Documents/workspace/atlas-cli",
|
|
7
|
+
"analyzer_fingerprints": {
|
|
8
|
+
"heuristic": "aa9738f3",
|
|
9
|
+
"nodejs": "1841650f",
|
|
10
|
+
"confidence": "99424c20",
|
|
11
|
+
"architecture": "1e4e935c"
|
|
12
|
+
},
|
|
13
|
+
"traversal_topology": {
|
|
14
|
+
"workspace_type": "single-package",
|
|
15
|
+
"source_roots": [
|
|
16
|
+
{
|
|
17
|
+
"path": "src",
|
|
18
|
+
"reason": "top_level_source",
|
|
19
|
+
"priority": 0.95
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"low_signal_roots": [
|
|
23
|
+
".agents",
|
|
24
|
+
".claude",
|
|
25
|
+
".codex",
|
|
26
|
+
".github",
|
|
27
|
+
".idea",
|
|
28
|
+
".planning",
|
|
29
|
+
".sourcecode-cache",
|
|
30
|
+
"docs"
|
|
31
|
+
],
|
|
32
|
+
"generated_roots": [
|
|
33
|
+
".git",
|
|
34
|
+
".mypy_cache",
|
|
35
|
+
".pytest_cache",
|
|
36
|
+
".ruff_cache",
|
|
37
|
+
".venv",
|
|
38
|
+
"dist"
|
|
39
|
+
],
|
|
40
|
+
"package_manager": "python",
|
|
41
|
+
"confidence": 0.8,
|
|
42
|
+
"scan_budget": {
|
|
43
|
+
"base_depth": 6,
|
|
44
|
+
"source_depth": 8,
|
|
45
|
+
"low_signal_depth": 2
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"project_type": "cli",
|
|
50
|
+
"project_summary": "CLI: Deterministic codebase context for AI coding agents. Stack: Python (Typer).",
|
|
51
|
+
"architecture_summary": "Python cli tool using Typer.\nLayered Architecture with orchestration, processing, data layers.\nAnalyzes repository tree and detects stack, entry points, and project type.\nProduces a JSON/YAML-serializable SourceMap with secret redaction.\nOpcionalmente añade dependencias, grafo de módulos, docs y docstrings, métricas de calidad y semántica y call graph.",
|
|
52
|
+
"stacks": [
|
|
53
|
+
{
|
|
54
|
+
"stack": "python",
|
|
55
|
+
"detection_method": "manifest",
|
|
56
|
+
"confidence": "high",
|
|
57
|
+
"frameworks": [
|
|
58
|
+
{
|
|
59
|
+
"name": "Typer",
|
|
60
|
+
"source": "manifest",
|
|
61
|
+
"confidence": "high",
|
|
62
|
+
"detected_via": [
|
|
63
|
+
"manifest:manifest",
|
|
64
|
+
"import typer (src/sourcecode/cli.py)"
|
|
65
|
+
],
|
|
66
|
+
"version": null
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"package_manager": "pip",
|
|
70
|
+
"manifests": [
|
|
71
|
+
"pyproject.toml"
|
|
72
|
+
],
|
|
73
|
+
"primary": true,
|
|
74
|
+
"root": ".",
|
|
75
|
+
"workspace": null,
|
|
76
|
+
"signals": [
|
|
77
|
+
"manifest:pyproject.toml",
|
|
78
|
+
"framework:Typer",
|
|
79
|
+
"package_manager:pip",
|
|
80
|
+
"entry:src/sourcecode/cli.py",
|
|
81
|
+
"entry:run_cli.py",
|
|
82
|
+
"extensions:154"
|
|
83
|
+
],
|
|
84
|
+
"produced_by": "python",
|
|
85
|
+
"language_version": null,
|
|
86
|
+
"packaging": null,
|
|
87
|
+
"app_server_hint": null,
|
|
88
|
+
"spring_profiles": [],
|
|
89
|
+
"transactional_classes": []
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"entry_points": [
|
|
93
|
+
{
|
|
94
|
+
"path": "src/sourcecode/cli.py",
|
|
95
|
+
"stack": "python",
|
|
96
|
+
"kind": "cli",
|
|
97
|
+
"source": "pyproject.toml",
|
|
98
|
+
"confidence": "high",
|
|
99
|
+
"reason": "console_script",
|
|
100
|
+
"evidence": "declared in [project.scripts]",
|
|
101
|
+
"entrypoint_type": "production",
|
|
102
|
+
"classification": "production",
|
|
103
|
+
"runtime_relevance": "medium",
|
|
104
|
+
"produced_by": "python"
|
|
105
|
+
}
|
|
106
|
+
],
|
|
107
|
+
"auxiliary_entry_points": [
|
|
108
|
+
{
|
|
109
|
+
"path": "run_cli.py",
|
|
110
|
+
"stack": "python",
|
|
111
|
+
"kind": "script",
|
|
112
|
+
"source": "code_signal",
|
|
113
|
+
"confidence": "low",
|
|
114
|
+
"reason": "main_guard",
|
|
115
|
+
"evidence": "if __name__ == '__main__' guard detected",
|
|
116
|
+
"entrypoint_type": "production",
|
|
117
|
+
"classification": "production",
|
|
118
|
+
"runtime_relevance": "low",
|
|
119
|
+
"produced_by": "python"
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
schema_version: '1.0'
|
|
2
|
+
mode: contract
|
|
3
|
+
project:
|
|
4
|
+
type: cli
|
|
5
|
+
stack: python
|
|
6
|
+
frameworks:
|
|
7
|
+
- Typer
|
|
8
|
+
entry_points:
|
|
9
|
+
- src/sourcecode/cli.py
|
|
10
|
+
summary: 'CLI: Deterministic codebase context for AI coding agents. Stack: Python
|
|
11
|
+
(Typer).'
|
|
12
|
+
stacks:
|
|
13
|
+
- stack: python
|
|
14
|
+
detection_method: manifest
|
|
15
|
+
confidence: high
|
|
16
|
+
frameworks:
|
|
17
|
+
- name: Typer
|
|
18
|
+
source: manifest
|
|
19
|
+
confidence: high
|
|
20
|
+
detected_via:
|
|
21
|
+
- manifest:manifest
|
|
22
|
+
- import typer (src/sourcecode/cli.py)
|
|
23
|
+
version: null
|
|
24
|
+
package_manager: pip
|
|
25
|
+
manifests:
|
|
26
|
+
- pyproject.toml
|
|
27
|
+
primary: true
|
|
28
|
+
root: .
|
|
29
|
+
workspace: null
|
|
30
|
+
signals:
|
|
31
|
+
- manifest:pyproject.toml
|
|
32
|
+
- framework:Typer
|
|
33
|
+
- package_manager:pip
|
|
34
|
+
- entry:src/sourcecode/cli.py
|
|
35
|
+
- entry:run_cli.py
|
|
36
|
+
- extensions:154
|
|
37
|
+
produced_by: python
|
|
38
|
+
language_version: null
|
|
39
|
+
packaging: null
|
|
40
|
+
app_server_hint: null
|
|
41
|
+
spring_profiles: []
|
|
42
|
+
transactional_classes: []
|
|
43
|
+
contracts:
|
|
44
|
+
- path: src/sourcecode/cli.py
|
|
45
|
+
role: entrypoint
|
|
46
|
+
fn:
|
|
47
|
+
- 'analyze_cmd(path: Path) -> None'
|
|
48
|
+
- config_cmd() -> None
|
|
49
|
+
- 'endpoints_cmd(path: Path, output_path: Optional[Path]) ->...'
|
|
50
|
+
- 'main(ctx: typer.Context, format: str, output: Optional[Pa...'
|
|
51
|
+
- main_entry() -> None
|
|
52
|
+
exports:
|
|
53
|
+
- mcp_init
|
|
54
|
+
- mcp_remove
|
|
55
|
+
- mcp_serve
|
|
56
|
+
- mcp_status
|
|
57
|
+
- prepare_context_cmd
|
|
58
|
+
- repo_ir_cmd
|
|
59
|
+
- telemetry_disable
|
|
60
|
+
- telemetry_enable
|
|
61
|
+
- telemetry_status
|
|
62
|
+
- version_callback
|
|
63
|
+
- version_cmd
|
|
64
|
+
deps:
|
|
65
|
+
- sourcecode
|
|
66
|
+
- typer
|
|
67
|
+
- path: src/sourcecode/mcp/server.py
|
|
68
|
+
role: entrypoint
|
|
69
|
+
fn:
|
|
70
|
+
- config() -> dict
|
|
71
|
+
- 'explain_context(repo_path: str) -> dict'
|
|
72
|
+
- 'fix_bug_context(repo_path: str, symptom: str) -> dict'
|
|
73
|
+
- 'generate_tests_context(repo_path: str, include_all: bool)...'
|
|
74
|
+
- 'get_agent_context(repo_path: str, git_context: bool) -> dict'
|
|
75
|
+
exports:
|
|
76
|
+
- get_compact_context
|
|
77
|
+
- get_delta
|
|
78
|
+
- get_endpoints
|
|
79
|
+
- get_ir_summary
|
|
80
|
+
- get_module_context
|
|
81
|
+
- onboard_context
|
|
82
|
+
- refactor_context
|
|
83
|
+
- review_pr_context
|
|
84
|
+
- telemetry
|
|
85
|
+
- version
|
|
86
|
+
deps:
|
|
87
|
+
- mcp
|
|
88
|
+
- sourcecode
|
|
89
|
+
- path: src/sourcecode/context_scorer.py
|
|
90
|
+
role: util
|
|
91
|
+
exports:
|
|
92
|
+
- k: class
|
|
93
|
+
names:
|
|
94
|
+
- ContextScorer
|
|
95
|
+
- NodeScore
|
|
96
|
+
- path: src/sourcecode/contract_model.py
|
|
97
|
+
role: model
|
|
98
|
+
exports:
|
|
99
|
+
- k: class
|
|
100
|
+
names:
|
|
101
|
+
- ContractSummary
|
|
102
|
+
- ExportRecord
|
|
103
|
+
- FileContract
|
|
104
|
+
- FunctionSignature
|
|
105
|
+
- ImportRecord
|
|
106
|
+
- TypeDefinition
|
|
107
|
+
- TypeField
|
|
108
|
+
- path: src/sourcecode/contract_pipeline.py
|
|
109
|
+
role: util
|
|
110
|
+
fn:
|
|
111
|
+
- 'build_dependency_graph(contracts: list[FileContract]) -> ...'
|
|
112
|
+
exports:
|
|
113
|
+
- k: class
|
|
114
|
+
names:
|
|
115
|
+
- ContractPipeline
|
|
116
|
+
deps:
|
|
117
|
+
- sourcecode
|
|
118
|
+
- path: src/sourcecode/detectors/base.py
|
|
119
|
+
role: util
|
|
120
|
+
exports:
|
|
121
|
+
- k: class
|
|
122
|
+
names:
|
|
123
|
+
- AbstractDetector
|
|
124
|
+
- DetectionContext
|
|
125
|
+
deps:
|
|
126
|
+
- sourcecode
|
|
127
|
+
- path: src/sourcecode/detectors/csproj_parser.py
|
|
128
|
+
role: util
|
|
129
|
+
fn:
|
|
130
|
+
- 'infer_architecture_pattern(projects: list[CsprojProject])...'
|
|
131
|
+
- 'parse_csproj(absolute_path: Path, relative_path: str) -> ...'
|
|
132
|
+
exports:
|
|
133
|
+
- k: class
|
|
134
|
+
names:
|
|
135
|
+
- CsprojProject
|
|
136
|
+
- path: src/sourcecode/detectors/hybrid.py
|
|
137
|
+
role: util
|
|
138
|
+
fn:
|
|
139
|
+
- 'merge_framework_detections(manifest_detections: list[Fram...'
|
|
140
|
+
- 'scan_for_frameworks(root: Path, file_tree: dict[str, Any]...'
|
|
141
|
+
deps:
|
|
142
|
+
- sourcecode
|
|
143
|
+
- path: src/sourcecode/detectors/parsers.py
|
|
144
|
+
role: util
|
|
145
|
+
fn:
|
|
146
|
+
- 'find_declared_dependencies(raw: Any) -> list[str]'
|
|
147
|
+
- 'load_json_file(path: Path) -> Optional[dict[str, Any]]'
|
|
148
|
+
- 'load_toml_file(path: Path) -> Optional[dict[str, Any]]'
|
|
149
|
+
- 'read_text_lines(path: Path) -> list[str]'
|
|
150
|
+
- 'unique_strings(values: Iterable[str]) -> list[str]'
|
|
151
|
+
- path: src/sourcecode/detectors/tooling.py
|
|
152
|
+
role: util
|
|
153
|
+
fn:
|
|
154
|
+
- 'collect_tooling_signals(file_tree: dict[str, object]) -> ...'
|
|
155
|
+
- 'infer_package_manager(stack: str, file_tree: dict[str, ob...'
|
|
156
|
+
deps:
|
|
157
|
+
- sourcecode
|
|
158
|
+
- path: src/sourcecode/entrypoint_classifier.py
|
|
159
|
+
role: util
|
|
160
|
+
fn:
|
|
161
|
+
- 'classify_entry_point(ep: EntryPoint) -> Classification'
|
|
162
|
+
- 'is_production_entry_point(ep: EntryPoint) -> bool'
|
|
163
|
+
- 'normalize_entry_point(ep: EntryPoint) -> EntryPoint'
|
|
164
|
+
- 'runtime_relevance(ep: EntryPoint, classification: Classif...'
|
|
165
|
+
deps:
|
|
166
|
+
- sourcecode
|
|
167
|
+
- path: src/sourcecode/file_classifier.py
|
|
168
|
+
role: util
|
|
169
|
+
exports:
|
|
170
|
+
- k: class
|
|
171
|
+
names:
|
|
172
|
+
- FileClassification
|
|
173
|
+
- FileClassifier
|
|
174
|
+
deps:
|
|
175
|
+
- sourcecode
|
|
176
|
+
- path: src/sourcecode/flow_analyzer.py
|
|
177
|
+
role: util
|
|
178
|
+
fn:
|
|
179
|
+
- 'analyze_behavioral_impact(changed_files: list[str], all_p...'
|
|
180
|
+
- 'analyze_execution_paths(changed_files: list[str], all_pat...'
|
|
181
|
+
- path: src/sourcecode/mcp/onboarding/applier.py
|
|
182
|
+
role: util
|
|
183
|
+
fn:
|
|
184
|
+
- 'apply_entry(config: dict) -> dict'
|
|
185
|
+
- 'is_installed(config: dict) -> bool'
|
|
186
|
+
- 'read_config(path: Path) -> dict'
|
|
187
|
+
- 'remove_entry(config: dict) -> dict'
|
|
188
|
+
- 'validate(path: Path) -> bool'
|
|
189
|
+
exports:
|
|
190
|
+
- write_config
|
|
191
|
+
- path: src/sourcecode/mcp/onboarding/backup.py
|
|
192
|
+
role: util
|
|
193
|
+
fn:
|
|
194
|
+
- 'create(config_path: Path) -> Path'
|
|
195
|
+
- 'latest(config_path: Path) -> Path | None'
|
|
196
|
+
- 'restore(backup_path: Path, target_path: Path) -> None'
|
|
197
|
+
contracts_meta:
|
|
198
|
+
total: 15
|
|
199
|
+
shown: 15
|
|
200
|
+
truncated: false
|
|
201
|
+
summary:
|
|
202
|
+
files: 15
|
|
203
|
+
total: 76
|
|
204
|
+
methods:
|
|
205
|
+
ast: 76
|
|
206
|
+
confidence:
|
|
207
|
+
overall: high
|
|
208
|
+
stack: high
|
|
209
|
+
entry_points: high
|
|
210
|
+
analysis_gaps:
|
|
211
|
+
- area: dependencies
|
|
212
|
+
reason: Dependencies not analyzed — use the full analyze command with
|
|
213
|
+
dependency flags for complete context
|
|
214
|
+
impact: medium
|
|
215
|
+
- area: env
|
|
216
|
+
reason: Environment variables not analyzed — run with --env-map for
|
|
217
|
+
operational context
|
|
218
|
+
impact: low
|
|
219
|
+
- area: documentation
|
|
220
|
+
reason: No Architecture Decision Records (ADRs) detected — missing docs/ or
|
|
221
|
+
adr/ directory
|
|
222
|
+
impact: low
|
|
223
|
+
- area: api_contract
|
|
224
|
+
reason: No OpenAPI/Swagger contract detected — agents cannot auto-discover API
|
|
225
|
+
surface without it
|
|
226
|
+
impact: medium
|