sourcecode 1.30.11__tar.gz → 1.30.13__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sourcecode-1.30.13/.continue-here.md +166 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/PKG-INFO +3 -3
- {sourcecode-1.30.11 → sourcecode-1.30.13}/README.md +2 -2
- {sourcecode-1.30.11 → sourcecode-1.30.13}/pyproject.toml +1 -1
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/__init__.py +1 -1
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/cli.py +90 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/prepare_context.py +115 -65
- sourcecode-1.30.13/src/sourcecode/repository_ir.py +1088 -0
- sourcecode-1.30.13/tests/test_repository_ir.py +726 -0
- sourcecode-1.30.11/.continue-here.md +0 -173
- {sourcecode-1.30.11 → sourcecode-1.30.13}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/.gitignore +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/.ruff.toml +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/CONTRIBUTING.md +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/LICENSE +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/SECURITY.md +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/docs/privacy.md +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/docs/schema.md +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/raw +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/run_cli.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/classifier.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/flow_analyzer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/progress.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/redactor.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/scanner.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/schema.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/serializer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/src/sourcecode/workspace.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/__init__.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/conftest.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/coverage.xml +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/fastapi_app/src/main.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/go_service/cmd/api/main.go +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/go_service/go.mod +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/jacoco.xml +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/latin1_sample.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/latin1_sample_iso.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/lcov.info +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/nextjs_app/package.json +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/application/service/FindAusenteService.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/domain/entities/Ausente.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/infrastructure/rest/AusenteRestController.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/application/service/FindAutocoberturasService.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/domain/entities/Autocoberturas.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/infrastructure/rest/AutocoberturasRestController.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/application/service/FindCalendarioTrabajadorService.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/domain/entities/CalendarioTrabajador.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/infrastructure/rest/CalendarioTrabajadorRestController.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/application/service/FindDepartamentoService.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/domain/entities/Departamento.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/infrastructure/rest/DepartamentoRestController.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/application/service/FindEmpleadoService.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/domain/entities/Empleado.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/infrastructure/rest/EmpleadoRestController.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/config/FilterConfig.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/NominaRestController.java +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/fixtures/spring_boot_minimal/src/main/resources/mapper/HealthMapper.xml +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_architecture_analyzer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_architecture_summary.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_ast_extractor.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_block1_reliability.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_block2_coverage.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_block5_quality.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_bug_fixes_v16.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_classifier.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_cli.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_code_notes_analyzer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_context_scorer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_contract_pipeline.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_coverage_parser.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_cross_consistency.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_dependency_analyzer_node_python.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_dependency_analyzer_polyglot.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_dependency_schema.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_detector_dotnet.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_detector_go_rust_java.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_detector_nodejs.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_detector_php_ruby_dart.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_detector_python.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_detector_universal_managed.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_detector_universal_systems.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_detectors_base.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_doc_analyzer_jsdom.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_doc_analyzer_python.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_encoding_regression.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_graph_analyzer_polyglot.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_graph_analyzer_python_node.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_graph_schema.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_hybrid_inference.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_integration.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_integration_dependencies.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_integration_detection.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_integration_docs.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_integration_graph_modules.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_integration_lqn.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_integration_metrics.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_integration_multistack.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_integration_semantics.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_integration_universal.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_java_spring_integration.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_metrics_analyzer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_packaging.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_phase1_improvements.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_pipeline_integrity.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_real_projects.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_redactor.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_scanner.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_schema.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_schema_normalization.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_semantic_analyzer_node.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_semantic_analyzer_python.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_semantic_import_resolution.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_semantic_schema.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_signal_hierarchy.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_summarizer.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_surface_honesty.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_task_differentiation.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_telemetry.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_v1_10_regressions.py +0 -0
- {sourcecode-1.30.11 → sourcecode-1.30.13}/tests/test_workspace_analyzer.py +0 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# Continue Here — atlas-cli sesión 11
|
|
2
|
+
|
|
3
|
+
**Paused:** 2026-05-16 (sesión 11)
|
|
4
|
+
**Repo:** `/Users/user/Downloads/atlas-cli`
|
|
5
|
+
**Branch:** master
|
|
6
|
+
**Último commit:** `dc157fa` — (fix) mejorando honestidad prepare-context pr
|
|
7
|
+
**Working tree:** `prepare_context.py` modificado (semantic engine fixes — NO committed)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Trabajo de esta sesión
|
|
12
|
+
|
|
13
|
+
### Bloque 1: Strict Diff Source Model
|
|
14
|
+
|
|
15
|
+
**Qué se hizo:**
|
|
16
|
+
- `DiffSourceType` enum añadido (`WORKTREE_UNSTAGED`, `WORKTREE_STAGED`, `GIT_SINCE_REF`, `GIT_RANGE`)
|
|
17
|
+
- `_get_pr_scope_files` reescrito → retorna 4-tuple `(all_files, scope_source, committed_files, uncommitted_files)`. Sin fallback a HEAD~1. Committed solo si `--since` explícito.
|
|
18
|
+
- `_get_git_changed_files` → sin default HEAD~1. Sin `--since`: WORKTREE_UNSTAGED (`git diff --name-only`). Con `--since`: GIT_SINCE_REF.
|
|
19
|
+
- `_FOLDER_TYPE_MAP` eliminado — path/folder no es evidencia.
|
|
20
|
+
- `TaskOutput` nuevos campos: `committed_changes`, `uncommitted_changes`, `analysis_scope`
|
|
21
|
+
- Cada entry `runtime_changes` incluye `diff_source` (GIT_RANGE vs WORKTREE_UNSTAGED)
|
|
22
|
+
- `changed-only` en cli.py: excluye untracked, solo staged+unstaged
|
|
23
|
+
- Tests `test_v1_10_regressions.py`: mocks actualizados a 4-tuple
|
|
24
|
+
|
|
25
|
+
**Committed en:** `dc157fa`
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
### Bloque 2: Evidence-Gated Semantic Engine (NO COMMITTED)
|
|
30
|
+
|
|
31
|
+
**Fichero con cambios:** `src/sourcecode/prepare_context.py` (unstaged)
|
|
32
|
+
|
|
33
|
+
**Qué se cambió:**
|
|
34
|
+
|
|
35
|
+
1. **`_ARTIFACT_CHANGE_TYPES["source"]` → `[]`**
|
|
36
|
+
- Antes: `["behavioral_change"]`. Ahora: ninguno.
|
|
37
|
+
- `behavioral_change` solo se emite si `diff_severities` devuelve `api_change` o `security_change`
|
|
38
|
+
|
|
39
|
+
2. **`_DIFF_SEVERITY_CHANGE_TYPES` nuevo dict**
|
|
40
|
+
- `api_change` → `["behavioral_change"]`
|
|
41
|
+
- `security_change` → `["behavioral_change", "security_change"]`
|
|
42
|
+
- `field_change` → `["structural_change"]`
|
|
43
|
+
- `unknown/trivial` → `[]`
|
|
44
|
+
|
|
45
|
+
3. **`_ATYPE_IMPACT_AREA["source"]` → `"application_layer"` (antes: `"transaction_boundary"`)**
|
|
46
|
+
- `"service"` también → `"application_layer"` (sin evidencia transaccional)
|
|
47
|
+
- `"transaction_boundary"` ya no se emite para archivos no clasificados
|
|
48
|
+
|
|
49
|
+
4. **`_role_in_system` default → `"unclassified"` (antes: `"core_service"`)**
|
|
50
|
+
- `"service"` anotado → `"service"` (no `"core_service"`)
|
|
51
|
+
|
|
52
|
+
5. **`_structured_why` evidence-gated**
|
|
53
|
+
- Solo emite `role_in_system`, `impact_area`, `propagation_risk` si tipo no es `source`/`unclassified`
|
|
54
|
+
- Añade `classification_confidence`
|
|
55
|
+
|
|
56
|
+
6. **`_score_to_confidence(score)` helper**
|
|
57
|
+
- `>= 0.60` → `"high"`, `>= 0.40` → `"medium"`, else → `"low"`
|
|
58
|
+
|
|
59
|
+
7. **`impact_score_per_file` ahora es dict estructurado**
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"score": 0.145,
|
|
63
|
+
"confidence": "low",
|
|
64
|
+
"score_breakdown": { "artifact_base": 0.125, ... },
|
|
65
|
+
"change_types": [],
|
|
66
|
+
"diff_severity": "trivial"
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
8. **`behavioral_changes`** — gateado en `diff_severities`, no en artifact type
|
|
71
|
+
|
|
72
|
+
9. **`changed_subsystems`** — excluye `source`/`unclassified`; eliminado `"transaction_layer"` del mapa
|
|
73
|
+
|
|
74
|
+
10. **`dependency_graph_summary.propagation_depth`** → `None` cuando no hay graph edges (no `0`)
|
|
75
|
+
|
|
76
|
+
11. **`_runtime_impact`** — eliminado mensaje de "verify transaction scope" para service sin evidencia anotacional
|
|
77
|
+
|
|
78
|
+
**Resultado verificado:**
|
|
79
|
+
```
|
|
80
|
+
changed_subsystems: []
|
|
81
|
+
behavioral_changes: []
|
|
82
|
+
role: unclassified
|
|
83
|
+
why: artifact_type: source | classification_confidence: low | change_effect: ...
|
|
84
|
+
# Sin: core_service, transaction_boundary, transaction_layer, propagation_risk
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Tests:** 765 passed, 3 skipped (sin nuevos fallos)
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Estado de tests
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
765 passed, 3 skipped
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Pre-existing failures (no relacionados):
|
|
98
|
+
- `tests/test_block2_coverage.py` — DocRecord bug en `doc_analyzer.py`
|
|
99
|
+
- `tests/test_dependency_analyzer_node_python.py::test_python_requirements_without_lockfile_keeps_declared_versions`
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## PENDIENTE (antes de próximo commit)
|
|
104
|
+
|
|
105
|
+
1. **Commit semantic engine fixes** en `prepare_context.py`
|
|
106
|
+
```bash
|
|
107
|
+
git add src/sourcecode/prepare_context.py
|
|
108
|
+
git commit -m "fix: evidence-gated semantic engine — remove unsupported behavioral/transaction claims"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
2. **Smoke test en repo spring-boot real**
|
|
112
|
+
```bash
|
|
113
|
+
cd ~/Documents/workspace/spring-boot-realworld-example-app
|
|
114
|
+
sourcecode prepare-context delta --since HEAD~1 2>/dev/null | python3 -c "
|
|
115
|
+
import json, sys
|
|
116
|
+
d = json.load(sys.stdin)
|
|
117
|
+
si = d.get('system_impact', {})
|
|
118
|
+
print('subsystems:', si.get('changed_subsystems'))
|
|
119
|
+
print('behavioral:', si.get('behavioral_changes'))
|
|
120
|
+
for f, v in d.get('impact_score_per_file', {}).items():
|
|
121
|
+
print(f'{f}: conf={v[\"confidence\"]} sev={v[\"diff_severity\"]}')
|
|
122
|
+
"
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
3. **Smoke test behavioral_impact** (pendiente de sesión anterior):
|
|
126
|
+
```bash
|
|
127
|
+
cd ~/Documents/workspace/spring-boot-realworld-example-app
|
|
128
|
+
sourcecode prepare-context review-pr . 2>/dev/null | python3 -c "
|
|
129
|
+
import json, sys
|
|
130
|
+
d = json.load(sys.stdin)
|
|
131
|
+
for bi in d.get('behavioral_impact', []):
|
|
132
|
+
print('entry:', bi['entry_point'])
|
|
133
|
+
print('confidence:', bi['confidence'])
|
|
134
|
+
print('trace:', bi['trace'])
|
|
135
|
+
print()
|
|
136
|
+
"
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
4. **Tests unitarios para `_classify_diff_severity`** — aún sin cobertura
|
|
140
|
+
|
|
141
|
+
5. **`User.java` clasificado como `"source"` no `"domain_model"`** — fix opcional
|
|
142
|
+
|
|
143
|
+
6. **Evaluar si `execution_paths` sigue siendo útil** o si `behavioral_impact` lo reemplaza
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Para retomar
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
cd /Users/user/Downloads/atlas-cli
|
|
151
|
+
git status # debe mostrar: prepare_context.py modified
|
|
152
|
+
|
|
153
|
+
python3 -m pytest tests/ \
|
|
154
|
+
--ignore=tests/test_block2_coverage.py \
|
|
155
|
+
--ignore=tests/test_dependency_analyzer_node_python.py \
|
|
156
|
+
-q
|
|
157
|
+
# Expected: 765 passed, 3 skipped
|
|
158
|
+
|
|
159
|
+
# Luego commit el semantic engine:
|
|
160
|
+
git add src/sourcecode/prepare_context.py
|
|
161
|
+
git commit -m "fix: evidence-gated semantic engine — remove unsupported behavioral/transaction claims"
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
*Pausado 2026-05-16 sesión 11 — gsd:pause-work*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 1.30.
|
|
3
|
+
Version: 1.30.13
|
|
4
4
|
Summary: Deterministic codebase context for AI coding agents
|
|
5
5
|
License: Apache License
|
|
6
6
|
Version 2.0, January 2004
|
|
@@ -221,7 +221,7 @@ Description-Content-Type: text/markdown
|
|
|
221
221
|
|
|
222
222
|
**Deterministic, behavior-aware codebase context for AI agents and PR review.**
|
|
223
223
|
|
|
224
|
-

|
|
225
225
|

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

|
|
6
6
|

|
|
7
7
|
|
|
8
8
|
---
|
|
@@ -38,7 +38,7 @@ pipx install sourcecode
|
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
40
|
sourcecode version
|
|
41
|
-
# sourcecode 1.30.
|
|
41
|
+
# sourcecode 1.30.13
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
---
|
|
@@ -1952,6 +1952,96 @@ def telemetry_disable() -> None:
|
|
|
1952
1952
|
typer.echo("Re-enable at any time: sourcecode telemetry enable")
|
|
1953
1953
|
|
|
1954
1954
|
|
|
1955
|
+
# ── repo-ir ───────────────────────────────────────────────────────────────────
|
|
1956
|
+
|
|
1957
|
+
@app.command("repo-ir")
|
|
1958
|
+
def repo_ir_cmd(
|
|
1959
|
+
path: Path = typer.Argument(
|
|
1960
|
+
Path("."),
|
|
1961
|
+
help="Repository root to analyze (default: current directory)",
|
|
1962
|
+
),
|
|
1963
|
+
since: Optional[str] = typer.Option(
|
|
1964
|
+
None,
|
|
1965
|
+
"--since",
|
|
1966
|
+
help="Git ref for symbol-level diff (e.g. HEAD~1, main)",
|
|
1967
|
+
),
|
|
1968
|
+
files: Optional[str] = typer.Option(
|
|
1969
|
+
None,
|
|
1970
|
+
"--files",
|
|
1971
|
+
help="Comma-separated list of Java files (relative to path) to analyze",
|
|
1972
|
+
),
|
|
1973
|
+
output_path: Optional[Path] = typer.Option(
|
|
1974
|
+
None,
|
|
1975
|
+
"--output",
|
|
1976
|
+
"-o",
|
|
1977
|
+
help="Write output to a file instead of stdout",
|
|
1978
|
+
),
|
|
1979
|
+
include_tests: bool = typer.Option(
|
|
1980
|
+
False,
|
|
1981
|
+
"--include-tests",
|
|
1982
|
+
help="Include test files in analysis (excluded by default)",
|
|
1983
|
+
),
|
|
1984
|
+
) -> None:
|
|
1985
|
+
"""Deterministic symbol-level IR for Java repositories.
|
|
1986
|
+
|
|
1987
|
+
\b
|
|
1988
|
+
Extracts symbols, relations, Spring roles, and (with --since) symbol-level diffs.
|
|
1989
|
+
Output is JSON: symbols[], relations[], changed_symbols[], spring_summary, graph_metadata.
|
|
1990
|
+
|
|
1991
|
+
\b
|
|
1992
|
+
Examples:
|
|
1993
|
+
sourcecode repo-ir
|
|
1994
|
+
sourcecode repo-ir /path/to/repo --since HEAD~1
|
|
1995
|
+
sourcecode repo-ir --files src/main/java/UserService.java
|
|
1996
|
+
sourcecode repo-ir --since main --output ir.json
|
|
1997
|
+
"""
|
|
1998
|
+
import json as _json
|
|
1999
|
+
import sys as _sys
|
|
2000
|
+
|
|
2001
|
+
from sourcecode.repository_ir import build_repo_ir, find_java_files
|
|
2002
|
+
|
|
2003
|
+
root = path.resolve()
|
|
2004
|
+
if not root.is_dir():
|
|
2005
|
+
typer.echo(f"Error: {root} is not a directory", err=True)
|
|
2006
|
+
raise typer.Exit(1)
|
|
2007
|
+
|
|
2008
|
+
if files:
|
|
2009
|
+
file_list = [f.strip() for f in files.split(",") if f.strip()]
|
|
2010
|
+
else:
|
|
2011
|
+
file_list = find_java_files(root)
|
|
2012
|
+
if not include_tests:
|
|
2013
|
+
file_list = [f for f in file_list if "/test/" not in f and "/tests/" not in f]
|
|
2014
|
+
|
|
2015
|
+
if not file_list:
|
|
2016
|
+
typer.echo(
|
|
2017
|
+
_json.dumps({
|
|
2018
|
+
"schema_version": "final-v1",
|
|
2019
|
+
"graph": {"nodes": [], "edges": []},
|
|
2020
|
+
"analysis": {
|
|
2021
|
+
"changed_entities": [],
|
|
2022
|
+
"impacted_entities": [],
|
|
2023
|
+
"isolated_changes": [],
|
|
2024
|
+
"validated_changes": [],
|
|
2025
|
+
},
|
|
2026
|
+
"impact": {"global_score": 0, "ranked_nodes": []},
|
|
2027
|
+
"subsystems": [],
|
|
2028
|
+
"change_set": [],
|
|
2029
|
+
"audit": {"dropped_fields": []},
|
|
2030
|
+
}, indent=2)
|
|
2031
|
+
)
|
|
2032
|
+
return
|
|
2033
|
+
|
|
2034
|
+
ir = build_repo_ir(file_list, root, since=since)
|
|
2035
|
+
output = _json.dumps(ir, indent=2, ensure_ascii=False)
|
|
2036
|
+
|
|
2037
|
+
if output_path:
|
|
2038
|
+
output_path.write_text(output, encoding="utf-8")
|
|
2039
|
+
typer.echo(f"IR written to {output_path}", err=True)
|
|
2040
|
+
else:
|
|
2041
|
+
_sys.stdout.write(output)
|
|
2042
|
+
_sys.stdout.write("\n")
|
|
2043
|
+
|
|
2044
|
+
|
|
1955
2045
|
# ── version ───────────────────────────────────────────────────────────────────
|
|
1956
2046
|
|
|
1957
2047
|
@app.command("version")
|