sourcecode 1.8.0__tar.gz → 1.10.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sourcecode-1.8.0 → sourcecode-1.10.0}/PKG-INFO +1 -1
- {sourcecode-1.8.0 → sourcecode-1.10.0}/pyproject.toml +1 -1
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/__init__.py +1 -1
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/cli.py +11 -1
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/serializer.py +28 -9
- {sourcecode-1.8.0 → sourcecode-1.10.0}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/.continue-here.md +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/.gitignore +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/.ruff.toml +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/CONTRIBUTING.md +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/LICENSE +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/README.md +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/SECURITY.md +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/docs/privacy.md +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/docs/schema.md +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/raw +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/run_cli.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/classifier.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/progress.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/redactor.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/scanner.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/schema.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/src/sourcecode/workspace.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/__init__.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/conftest.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/coverage.xml +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/fastapi_app/src/main.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/go_service/cmd/api/main.go +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/go_service/go.mod +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/jacoco.xml +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/lcov.info +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/nextjs_app/package.json +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/application/service/FindAusenteService.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/domain/entities/Ausente.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/infrastructure/rest/AusenteRestController.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/application/service/FindAutocoberturasService.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/domain/entities/Autocoberturas.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/infrastructure/rest/AutocoberturasRestController.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/application/service/FindCalendarioTrabajadorService.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/domain/entities/CalendarioTrabajador.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/infrastructure/rest/CalendarioTrabajadorRestController.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/application/service/FindDepartamentoService.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/domain/entities/Departamento.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/infrastructure/rest/DepartamentoRestController.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/application/service/FindEmpleadoService.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/domain/entities/Empleado.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/infrastructure/rest/EmpleadoRestController.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_architecture_analyzer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_architecture_summary.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_ast_extractor.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_block1_reliability.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_block2_coverage.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_block5_quality.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_bug_fixes_v16.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_classifier.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_cli.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_code_notes_analyzer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_context_scorer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_contract_pipeline.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_coverage_parser.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_cross_consistency.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_dependency_analyzer_node_python.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_dependency_analyzer_polyglot.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_dependency_schema.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_detector_dotnet.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_detector_go_rust_java.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_detector_nodejs.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_detector_php_ruby_dart.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_detector_python.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_detector_universal_managed.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_detector_universal_systems.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_detectors_base.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_doc_analyzer_jsdom.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_doc_analyzer_python.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_graph_analyzer_polyglot.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_graph_analyzer_python_node.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_graph_schema.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_hybrid_inference.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_integration.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_integration_dependencies.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_integration_detection.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_integration_docs.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_integration_graph_modules.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_integration_lqn.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_integration_metrics.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_integration_multistack.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_integration_semantics.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_integration_universal.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_java_spring_integration.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_metrics_analyzer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_packaging.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_phase1_improvements.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_pipeline_integrity.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_real_projects.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_redactor.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_scanner.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_schema.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_schema_normalization.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_semantic_analyzer_node.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_semantic_analyzer_python.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_semantic_import_resolution.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_semantic_schema.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_signal_hierarchy.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_summarizer.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_telemetry.py +0 -0
- {sourcecode-1.8.0 → sourcecode-1.10.0}/tests/test_workspace_analyzer.py +0 -0
|
@@ -1485,7 +1485,17 @@ def main(
|
|
|
1485
1485
|
if _is_contract_mode and sm.file_contracts:
|
|
1486
1486
|
from sourcecode.serializer import _serialize_contract_minimal
|
|
1487
1487
|
data.pop("file_relevance", None)
|
|
1488
|
-
|
|
1488
|
+
_MAX_AGENT_CONTRACTS = 10
|
|
1489
|
+
_all_contracts = sm.file_contracts
|
|
1490
|
+
_sorted = sorted(_all_contracts, key=lambda c: getattr(c, "relevance_score", 0.0), reverse=True)
|
|
1491
|
+
_sampled = _sorted[:_MAX_AGENT_CONTRACTS]
|
|
1492
|
+
_total_contracts = len(_all_contracts)
|
|
1493
|
+
data["contracts"] = [_serialize_contract_minimal(c) for c in _sampled]
|
|
1494
|
+
data["contracts_meta"] = {
|
|
1495
|
+
"total": _total_contracts,
|
|
1496
|
+
"shown": len(_sampled),
|
|
1497
|
+
"truncated": _total_contracts > _MAX_AGENT_CONTRACTS,
|
|
1498
|
+
}
|
|
1489
1499
|
if sm.contract_summary is not None:
|
|
1490
1500
|
cs = sm.contract_summary
|
|
1491
1501
|
data["contract_summary"] = {
|
|
@@ -38,6 +38,19 @@ _MONOREPO_PKGS_CAP = 8 # max workspace/runtime packages shown
|
|
|
38
38
|
_KEY_DEPS_CAP = 50 # max key dependencies shown
|
|
39
39
|
_CODE_NOTES_CAP = 15 # max code notes in default output
|
|
40
40
|
_ENV_MAP_CAP = 15 # max env var entries in default output
|
|
41
|
+
_MAX_DEFAULT_CONTRACTS = 20 # max contracts in default/standard contract output
|
|
42
|
+
_MAX_HARD_SIGNALS_DEFAULT = 20 # max hard_signals entries in default output
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def _cap_contracts_for_output(
|
|
46
|
+
contracts: list[Any],
|
|
47
|
+
max_count: int = _MAX_DEFAULT_CONTRACTS,
|
|
48
|
+
) -> tuple[list[Any], dict[str, Any]]:
|
|
49
|
+
"""Sort contracts by relevance_score desc, cap to max_count, return (sampled, meta)."""
|
|
50
|
+
total = len(contracts)
|
|
51
|
+
sampled = sorted(contracts, key=lambda c: getattr(c, "relevance_score", 0.0), reverse=True)[:max_count]
|
|
52
|
+
meta: dict[str, Any] = {"total": total, "shown": len(sampled), "truncated": total > max_count}
|
|
53
|
+
return sampled, meta
|
|
41
54
|
|
|
42
55
|
|
|
43
56
|
def to_json(sm: SourceMap | dict[str, Any], indent: int = 2) -> str:
|
|
@@ -958,7 +971,13 @@ def agent_view(sm: SourceMap) -> dict[str, Any]:
|
|
|
958
971
|
"sections": _section_confidence(sm),
|
|
959
972
|
}
|
|
960
973
|
if cs.hard_signals:
|
|
961
|
-
|
|
974
|
+
_MAX_HARD_SIGNALS = 20
|
|
975
|
+
_hs = cs.hard_signals
|
|
976
|
+
_hs_total = len(_hs)
|
|
977
|
+
conf["hard_signals"] = _hs[:_MAX_HARD_SIGNALS]
|
|
978
|
+
if _hs_total > _MAX_HARD_SIGNALS:
|
|
979
|
+
conf["hard_signals_truncated"] = True
|
|
980
|
+
conf["hard_signals_total"] = _hs_total
|
|
962
981
|
if cs.soft_signals:
|
|
963
982
|
conf["soft_signals"] = cs.soft_signals
|
|
964
983
|
if cs.ignored_signals:
|
|
@@ -1224,13 +1243,11 @@ def _contract_view_minimal(
|
|
|
1224
1243
|
if getattr(sm, "app_server_hint", None):
|
|
1225
1244
|
result["app_server_hint"] = sm.app_server_hint
|
|
1226
1245
|
|
|
1227
|
-
# Per-file contracts
|
|
1246
|
+
# Per-file contracts — capped to avoid token bloat on large projects
|
|
1228
1247
|
if contracts:
|
|
1229
|
-
|
|
1230
|
-
for c in
|
|
1231
|
-
|
|
1232
|
-
serialized.append(item)
|
|
1233
|
-
result["contracts"] = serialized
|
|
1248
|
+
_capped, _meta = _cap_contracts_for_output(contracts)
|
|
1249
|
+
result["contracts"] = [_serialize_contract_minimal(c) for c in _capped]
|
|
1250
|
+
result["contracts_meta"] = _meta
|
|
1234
1251
|
|
|
1235
1252
|
# Optional analysis sections — included when the analyzer explicitly ran
|
|
1236
1253
|
# (user passed --dependencies, --env-map, --code-notes, --git-context)
|
|
@@ -1581,10 +1598,11 @@ def _contract_view_standard(
|
|
|
1581
1598
|
"stack": sm.confidence_summary.stack_confidence,
|
|
1582
1599
|
}
|
|
1583
1600
|
|
|
1584
|
-
# Per-file contracts (full detail)
|
|
1601
|
+
# Per-file contracts (full detail) — capped to avoid token bloat on large projects
|
|
1585
1602
|
if contracts:
|
|
1603
|
+
_capped, _meta = _cap_contracts_for_output(contracts)
|
|
1586
1604
|
serialized: list[dict[str, Any]] = []
|
|
1587
|
-
for c in
|
|
1605
|
+
for c in _capped:
|
|
1588
1606
|
if getattr(c, "language", None) == "mybatis-xml":
|
|
1589
1607
|
item = _serialize_contract_mybatis_xml(c)
|
|
1590
1608
|
item["relevance_score"] = round(c.relevance_score, 3)
|
|
@@ -1640,6 +1658,7 @@ def _contract_view_standard(
|
|
|
1640
1658
|
item["method"] = c.extraction_method
|
|
1641
1659
|
serialized.append(item)
|
|
1642
1660
|
result["contracts"] = serialized
|
|
1661
|
+
result["contracts_meta"] = _meta
|
|
1643
1662
|
|
|
1644
1663
|
# Optional analysis sections (deep mode or when analyzers ran)
|
|
1645
1664
|
if include_optional:
|
{sourcecode-1.8.0 → sourcecode-1.10.0}/.agents/skills/source-command-gsd-join-discord/SKILL.md
RENAMED
|
File without changes
|
{sourcecode-1.8.0 → sourcecode-1.10.0}/.agents/skills/source-command-gsd-review-backlog/SKILL.md
RENAMED
|
File without changes
|
{sourcecode-1.8.0 → sourcecode-1.10.0}/.agents/skills/source-command-gsd-workstreams/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sourcecode-1.8.0 → sourcecode-1.10.0}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|