sourcecode 1.9.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.
Files changed (180) hide show
  1. {sourcecode-1.9.0 → sourcecode-1.10.0}/PKG-INFO +1 -1
  2. {sourcecode-1.9.0 → sourcecode-1.10.0}/pyproject.toml +1 -1
  3. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/__init__.py +1 -1
  4. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/serializer.py +21 -8
  5. {sourcecode-1.9.0 → sourcecode-1.10.0}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
  6. {sourcecode-1.9.0 → sourcecode-1.10.0}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
  7. {sourcecode-1.9.0 → sourcecode-1.10.0}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
  8. {sourcecode-1.9.0 → sourcecode-1.10.0}/.continue-here.md +0 -0
  9. {sourcecode-1.9.0 → sourcecode-1.10.0}/.github/workflows/build-windows.yml +0 -0
  10. {sourcecode-1.9.0 → sourcecode-1.10.0}/.gitignore +0 -0
  11. {sourcecode-1.9.0 → sourcecode-1.10.0}/.ruff.toml +0 -0
  12. {sourcecode-1.9.0 → sourcecode-1.10.0}/CONTRIBUTING.md +0 -0
  13. {sourcecode-1.9.0 → sourcecode-1.10.0}/LICENSE +0 -0
  14. {sourcecode-1.9.0 → sourcecode-1.10.0}/README.md +0 -0
  15. {sourcecode-1.9.0 → sourcecode-1.10.0}/SECURITY.md +0 -0
  16. {sourcecode-1.9.0 → sourcecode-1.10.0}/docs/privacy.md +0 -0
  17. {sourcecode-1.9.0 → sourcecode-1.10.0}/docs/schema.md +0 -0
  18. {sourcecode-1.9.0 → sourcecode-1.10.0}/raw +0 -0
  19. {sourcecode-1.9.0 → sourcecode-1.10.0}/run_cli.py +0 -0
  20. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/adaptive_scanner.py +0 -0
  21. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/architecture_analyzer.py +0 -0
  22. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/architecture_summary.py +0 -0
  23. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/ast_extractor.py +0 -0
  24. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/classifier.py +0 -0
  25. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/cli.py +0 -0
  26. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/code_notes_analyzer.py +0 -0
  27. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/confidence_analyzer.py +0 -0
  28. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/context_scorer.py +0 -0
  29. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/context_summarizer.py +0 -0
  30. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/contract_model.py +0 -0
  31. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/contract_pipeline.py +0 -0
  32. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/coverage_parser.py +0 -0
  33. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/dependency_analyzer.py +0 -0
  34. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/__init__.py +0 -0
  35. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/base.py +0 -0
  36. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/csproj_parser.py +0 -0
  37. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/dart.py +0 -0
  38. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/dotnet.py +0 -0
  39. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/elixir.py +0 -0
  40. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/go.py +0 -0
  41. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/heuristic.py +0 -0
  42. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/hybrid.py +0 -0
  43. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/java.py +0 -0
  44. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/jvm_ext.py +0 -0
  45. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/nodejs.py +0 -0
  46. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/parsers.py +0 -0
  47. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/php.py +0 -0
  48. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/project.py +0 -0
  49. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/python.py +0 -0
  50. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/ruby.py +0 -0
  51. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/rust.py +0 -0
  52. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/systems.py +0 -0
  53. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/terraform.py +0 -0
  54. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/detectors/tooling.py +0 -0
  55. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/doc_analyzer.py +0 -0
  56. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/entrypoint_classifier.py +0 -0
  57. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/env_analyzer.py +0 -0
  58. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/file_classifier.py +0 -0
  59. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/git_analyzer.py +0 -0
  60. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/graph_analyzer.py +0 -0
  61. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/metrics_analyzer.py +0 -0
  62. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/prepare_context.py +0 -0
  63. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/progress.py +0 -0
  64. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/ranking_engine.py +0 -0
  65. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/redactor.py +0 -0
  66. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/relevance_scorer.py +0 -0
  67. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/repo_classifier.py +0 -0
  68. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/runtime_classifier.py +0 -0
  69. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/scanner.py +0 -0
  70. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/schema.py +0 -0
  71. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/semantic_analyzer.py +0 -0
  72. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/summarizer.py +0 -0
  73. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/telemetry/__init__.py +0 -0
  74. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/telemetry/config.py +0 -0
  75. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/telemetry/consent.py +0 -0
  76. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/telemetry/events.py +0 -0
  77. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/telemetry/filters.py +0 -0
  78. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/telemetry/transport.py +0 -0
  79. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/tree_utils.py +0 -0
  80. {sourcecode-1.9.0 → sourcecode-1.10.0}/src/sourcecode/workspace.py +0 -0
  81. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/__init__.py +0 -0
  82. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/conftest.py +0 -0
  83. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/coverage.xml +0 -0
  84. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
  85. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/fastapi_app/src/main.py +0 -0
  86. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/go_service/cmd/api/main.go +0 -0
  87. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/go_service/go.mod +0 -0
  88. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/jacoco.xml +0 -0
  89. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/lcov.info +0 -0
  90. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
  91. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/nextjs_app/package.json +0 -0
  92. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
  93. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
  94. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
  95. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
  96. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
  97. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
  98. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
  99. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/application/service/FindAusenteService.java +0 -0
  100. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/domain/entities/Ausente.java +0 -0
  101. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/infrastructure/rest/AusenteRestController.java +0 -0
  102. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/application/service/FindAutocoberturasService.java +0 -0
  103. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/domain/entities/Autocoberturas.java +0 -0
  104. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/infrastructure/rest/AutocoberturasRestController.java +0 -0
  105. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/application/service/FindCalendarioTrabajadorService.java +0 -0
  106. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/domain/entities/CalendarioTrabajador.java +0 -0
  107. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/infrastructure/rest/CalendarioTrabajadorRestController.java +0 -0
  108. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/application/service/FindDepartamentoService.java +0 -0
  109. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/domain/entities/Departamento.java +0 -0
  110. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/infrastructure/rest/DepartamentoRestController.java +0 -0
  111. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/application/service/FindEmpleadoService.java +0 -0
  112. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/domain/entities/Empleado.java +0 -0
  113. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/infrastructure/rest/EmpleadoRestController.java +0 -0
  114. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
  115. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
  116. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
  117. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
  118. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
  119. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
  120. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
  121. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
  122. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_architecture_analyzer.py +0 -0
  123. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_architecture_summary.py +0 -0
  124. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_ast_extractor.py +0 -0
  125. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_block1_reliability.py +0 -0
  126. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_block2_coverage.py +0 -0
  127. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_block5_quality.py +0 -0
  128. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_bug_fixes_v16.py +0 -0
  129. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_classifier.py +0 -0
  130. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_cli.py +0 -0
  131. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_code_notes_analyzer.py +0 -0
  132. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_context_scorer.py +0 -0
  133. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_contract_pipeline.py +0 -0
  134. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_coverage_parser.py +0 -0
  135. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_cross_consistency.py +0 -0
  136. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_dependency_analyzer_node_python.py +0 -0
  137. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_dependency_analyzer_polyglot.py +0 -0
  138. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_dependency_schema.py +0 -0
  139. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_detector_dotnet.py +0 -0
  140. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_detector_go_rust_java.py +0 -0
  141. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_detector_nodejs.py +0 -0
  142. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_detector_php_ruby_dart.py +0 -0
  143. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_detector_python.py +0 -0
  144. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_detector_universal_managed.py +0 -0
  145. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_detector_universal_systems.py +0 -0
  146. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_detectors_base.py +0 -0
  147. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_doc_analyzer_jsdom.py +0 -0
  148. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_doc_analyzer_python.py +0 -0
  149. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_graph_analyzer_polyglot.py +0 -0
  150. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_graph_analyzer_python_node.py +0 -0
  151. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_graph_schema.py +0 -0
  152. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_hybrid_inference.py +0 -0
  153. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_integration.py +0 -0
  154. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_integration_dependencies.py +0 -0
  155. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_integration_detection.py +0 -0
  156. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_integration_docs.py +0 -0
  157. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_integration_graph_modules.py +0 -0
  158. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_integration_lqn.py +0 -0
  159. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_integration_metrics.py +0 -0
  160. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_integration_multistack.py +0 -0
  161. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_integration_semantics.py +0 -0
  162. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_integration_universal.py +0 -0
  163. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_java_spring_integration.py +0 -0
  164. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_metrics_analyzer.py +0 -0
  165. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_packaging.py +0 -0
  166. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_phase1_improvements.py +0 -0
  167. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_pipeline_integrity.py +0 -0
  168. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_real_projects.py +0 -0
  169. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_redactor.py +0 -0
  170. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_scanner.py +0 -0
  171. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_schema.py +0 -0
  172. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_schema_normalization.py +0 -0
  173. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_semantic_analyzer_node.py +0 -0
  174. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_semantic_analyzer_python.py +0 -0
  175. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_semantic_import_resolution.py +0 -0
  176. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_semantic_schema.py +0 -0
  177. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_signal_hierarchy.py +0 -0
  178. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_summarizer.py +0 -0
  179. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_telemetry.py +0 -0
  180. {sourcecode-1.9.0 → sourcecode-1.10.0}/tests/test_workspace_analyzer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 1.9.0
3
+ Version: 1.10.0
4
4
  Summary: Deterministic codebase context for AI coding agents
5
5
  License: Apache License
6
6
  Version 2.0, January 2004
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sourcecode"
7
- version = "1.9.0"
7
+ version = "1.10.0"
8
8
  description = "Deterministic codebase context for AI coding agents"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -1,3 +1,3 @@
1
1
  """sourcecode — Deterministic codebase context maps for AI coding agents."""
2
2
 
3
- __version__ = "1.9.0"
3
+ __version__ = "1.10.0"
@@ -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:
@@ -1230,13 +1243,11 @@ def _contract_view_minimal(
1230
1243
  if getattr(sm, "app_server_hint", None):
1231
1244
  result["app_server_hint"] = sm.app_server_hint
1232
1245
 
1233
- # Per-file contracts
1246
+ # Per-file contracts — capped to avoid token bloat on large projects
1234
1247
  if contracts:
1235
- serialized: list[dict[str, Any]] = []
1236
- for c in contracts:
1237
- item = _serialize_contract_minimal(c)
1238
- serialized.append(item)
1239
- 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
1240
1251
 
1241
1252
  # Optional analysis sections — included when the analyzer explicitly ran
1242
1253
  # (user passed --dependencies, --env-map, --code-notes, --git-context)
@@ -1587,10 +1598,11 @@ def _contract_view_standard(
1587
1598
  "stack": sm.confidence_summary.stack_confidence,
1588
1599
  }
1589
1600
 
1590
- # Per-file contracts (full detail)
1601
+ # Per-file contracts (full detail) — capped to avoid token bloat on large projects
1591
1602
  if contracts:
1603
+ _capped, _meta = _cap_contracts_for_output(contracts)
1592
1604
  serialized: list[dict[str, Any]] = []
1593
- for c in contracts:
1605
+ for c in _capped:
1594
1606
  if getattr(c, "language", None) == "mybatis-xml":
1595
1607
  item = _serialize_contract_mybatis_xml(c)
1596
1608
  item["relevance_score"] = round(c.relevance_score, 3)
@@ -1646,6 +1658,7 @@ def _contract_view_standard(
1646
1658
  item["method"] = c.extraction_method
1647
1659
  serialized.append(item)
1648
1660
  result["contracts"] = serialized
1661
+ result["contracts_meta"] = _meta
1649
1662
 
1650
1663
  # Optional analysis sections (deep mode or when analyzers ran)
1651
1664
  if include_optional:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes