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.
Files changed (243) hide show
  1. sourcecode-1.31.12/.sourcecode-cache/snapshot-7571a6f-20354ec3.json +261 -0
  2. sourcecode-1.31.12/.sourcecode-cache/snapshot-7571a6f-2c874f8c.json +122 -0
  3. sourcecode-1.31.12/.sourcecode-cache/snapshot-7571a6f-6c8157db.json +226 -0
  4. sourcecode-1.31.12/.sourcecode-cache/snapshot-7571a6f-93090ce0.json +129 -0
  5. sourcecode-1.31.12/.sourcecode-cache/snapshot-7571a6f-ce79b4bf.json +3846 -0
  6. sourcecode-1.31.12/.sourcecode-cache/snapshot-7571a6f-cf0bfa7a.json +325 -0
  7. sourcecode-1.31.12/.sourcecode-cache/snapshot-7571a6f-e73c6323.json +261 -0
  8. sourcecode-1.31.12/.sourcecode-cache/snapshot-7571a6f-ee60e0cd.json +325 -0
  9. {sourcecode-1.31.11 → sourcecode-1.31.12}/PKG-INFO +3 -3
  10. {sourcecode-1.31.11 → sourcecode-1.31.12}/README.md +2 -2
  11. {sourcecode-1.31.11 → sourcecode-1.31.12}/pyproject.toml +1 -1
  12. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/__init__.py +1 -1
  13. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/cli.py +58 -19
  14. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/mcp/server.py +23 -7
  15. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/prepare_context.py +16 -23
  16. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/repository_ir.py +71 -5
  17. sourcecode-1.31.12/tests/test_audit_fixes.py +833 -0
  18. {sourcecode-1.31.11 → sourcecode-1.31.12}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
  19. {sourcecode-1.31.11 → sourcecode-1.31.12}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
  20. {sourcecode-1.31.11 → sourcecode-1.31.12}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
  21. {sourcecode-1.31.11 → sourcecode-1.31.12}/.continue-here.md +0 -0
  22. {sourcecode-1.31.11 → sourcecode-1.31.12}/.github/workflows/build-windows.yml +0 -0
  23. {sourcecode-1.31.11 → sourcecode-1.31.12}/.gitignore +0 -0
  24. {sourcecode-1.31.11 → sourcecode-1.31.12}/.ruff.toml +0 -0
  25. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-0911b79e.json +0 -0
  26. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-37df4554.json +0 -0
  27. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-624321f3.json +0 -0
  28. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-776b4676.json +0 -0
  29. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-9770fba7.json +0 -0
  30. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-c4e3c102.json +0 -0
  31. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-e8bc5fb4.json +0 -0
  32. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-e9801942.json +0 -0
  33. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-ee60e0cd.json +0 -0
  34. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-0778d0a-fdd9d3f7.json +0 -0
  35. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-27b713ac.json +0 -0
  36. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-28e558ac.json +0 -0
  37. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-2d7eca5f.json +0 -0
  38. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-7cd91058.json +0 -0
  39. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-8ea5b5bb.json +0 -0
  40. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-bef1a526.json +0 -0
  41. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-c69bcdc8.json +0 -0
  42. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-d2dfc690.json +0 -0
  43. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-dc30daab.json +0 -0
  44. {sourcecode-1.31.11 → sourcecode-1.31.12}/.sourcecode-cache/snapshot-3b5997a-fa5c742c.json +0 -0
  45. {sourcecode-1.31.11 → sourcecode-1.31.12}/CHANGELOG.md +0 -0
  46. {sourcecode-1.31.11 → sourcecode-1.31.12}/CONTRIBUTING.md +0 -0
  47. {sourcecode-1.31.11 → sourcecode-1.31.12}/LICENSE +0 -0
  48. {sourcecode-1.31.11 → sourcecode-1.31.12}/SECURITY.md +0 -0
  49. {sourcecode-1.31.11 → sourcecode-1.31.12}/docs/privacy.md +0 -0
  50. {sourcecode-1.31.11 → sourcecode-1.31.12}/docs/schema.md +0 -0
  51. {sourcecode-1.31.11 → sourcecode-1.31.12}/raw +0 -0
  52. {sourcecode-1.31.11 → sourcecode-1.31.12}/run_cli.py +0 -0
  53. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/adaptive_scanner.py +0 -0
  54. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/architecture_analyzer.py +0 -0
  55. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/architecture_summary.py +0 -0
  56. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/ast_extractor.py +0 -0
  57. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/classifier.py +0 -0
  58. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/code_notes_analyzer.py +0 -0
  59. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/confidence_analyzer.py +0 -0
  60. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/context_scorer.py +0 -0
  61. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/context_summarizer.py +0 -0
  62. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/contract_model.py +0 -0
  63. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/contract_pipeline.py +0 -0
  64. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/coverage_parser.py +0 -0
  65. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/dependency_analyzer.py +0 -0
  66. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/__init__.py +0 -0
  67. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/base.py +0 -0
  68. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/csproj_parser.py +0 -0
  69. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/dart.py +0 -0
  70. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/dotnet.py +0 -0
  71. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/elixir.py +0 -0
  72. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/go.py +0 -0
  73. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/heuristic.py +0 -0
  74. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/hybrid.py +0 -0
  75. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/java.py +0 -0
  76. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/jvm_ext.py +0 -0
  77. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/nodejs.py +0 -0
  78. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/parsers.py +0 -0
  79. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/php.py +0 -0
  80. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/project.py +0 -0
  81. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/python.py +0 -0
  82. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/ruby.py +0 -0
  83. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/rust.py +0 -0
  84. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/systems.py +0 -0
  85. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/terraform.py +0 -0
  86. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/detectors/tooling.py +0 -0
  87. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/doc_analyzer.py +0 -0
  88. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/entrypoint_classifier.py +0 -0
  89. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/env_analyzer.py +0 -0
  90. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/file_classifier.py +0 -0
  91. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/flow_analyzer.py +0 -0
  92. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/git_analyzer.py +0 -0
  93. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/graph_analyzer.py +0 -0
  94. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/mcp/__init__.py +0 -0
  95. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
  96. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/mcp/onboarding/applier.py +0 -0
  97. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/mcp/onboarding/backup.py +0 -0
  98. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/mcp/onboarding/detector.py +0 -0
  99. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/mcp/onboarding/planner.py +0 -0
  100. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/mcp/runner.py +0 -0
  101. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/metrics_analyzer.py +0 -0
  102. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/path_filters.py +0 -0
  103. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/pr_comment_renderer.py +0 -0
  104. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/progress.py +0 -0
  105. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/ranking_engine.py +0 -0
  106. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/redactor.py +0 -0
  107. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/relevance_scorer.py +0 -0
  108. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/repo_classifier.py +0 -0
  109. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/runtime_classifier.py +0 -0
  110. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/scanner.py +0 -0
  111. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/schema.py +0 -0
  112. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/semantic_analyzer.py +0 -0
  113. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/serializer.py +0 -0
  114. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/summarizer.py +0 -0
  115. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/telemetry/__init__.py +0 -0
  116. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/telemetry/config.py +0 -0
  117. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/telemetry/consent.py +0 -0
  118. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/telemetry/events.py +0 -0
  119. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/telemetry/filters.py +0 -0
  120. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/telemetry/transport.py +0 -0
  121. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/tree_utils.py +0 -0
  122. {sourcecode-1.31.11 → sourcecode-1.31.12}/src/sourcecode/workspace.py +0 -0
  123. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/__init__.py +0 -0
  124. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/conftest.py +0 -0
  125. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/coverage.xml +0 -0
  126. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
  127. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/fastapi_app/src/main.py +0 -0
  128. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/go_service/cmd/api/main.go +0 -0
  129. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/go_service/go.mod +0 -0
  130. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/jacoco.xml +0 -0
  131. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/latin1_sample.java +0 -0
  132. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/latin1_sample_iso.java +0 -0
  133. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/lcov.info +0 -0
  134. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
  135. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/nextjs_app/package.json +0 -0
  136. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
  137. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
  138. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
  139. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
  140. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
  141. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
  142. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
  143. {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
  144. {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
  145. {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
  146. {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
  147. {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
  148. {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
  149. {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
  150. {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
  151. {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
  152. {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
  153. {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
  154. {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
  155. {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
  156. {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
  157. {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
  158. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
  159. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/config/FilterConfig.java +0 -0
  160. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
  161. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
  162. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
  163. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
  164. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
  165. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/NominaRestController.java +0 -0
  166. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
  167. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
  168. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/fixtures/spring_boot_minimal/src/main/resources/mapper/HealthMapper.xml +0 -0
  169. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_architecture_analyzer.py +0 -0
  170. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_architecture_summary.py +0 -0
  171. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_ast_extractor.py +0 -0
  172. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_block1_reliability.py +0 -0
  173. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_block2_coverage.py +0 -0
  174. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_block5_quality.py +0 -0
  175. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_broadleaf_fixes.py +0 -0
  176. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_bug_fixes_v1302.py +0 -0
  177. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_bug_fixes_v1312.py +0 -0
  178. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_bug_fixes_v1313.py +0 -0
  179. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_bug_fixes_v16.py +0 -0
  180. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_bug_fixes_v2.py +0 -0
  181. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_classifier.py +0 -0
  182. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_cli.py +0 -0
  183. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_code_notes_analyzer.py +0 -0
  184. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_context_scorer.py +0 -0
  185. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_contract_pipeline.py +0 -0
  186. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_coverage_parser.py +0 -0
  187. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_cross_consistency.py +0 -0
  188. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_dependency_analyzer_node_python.py +0 -0
  189. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_dependency_analyzer_polyglot.py +0 -0
  190. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_dependency_schema.py +0 -0
  191. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_detector_dotnet.py +0 -0
  192. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_detector_go_rust_java.py +0 -0
  193. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_detector_nodejs.py +0 -0
  194. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_detector_php_ruby_dart.py +0 -0
  195. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_detector_python.py +0 -0
  196. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_detector_universal_managed.py +0 -0
  197. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_detector_universal_systems.py +0 -0
  198. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_detectors_base.py +0 -0
  199. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_doc_analyzer_jsdom.py +0 -0
  200. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_doc_analyzer_python.py +0 -0
  201. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_encoding_regression.py +0 -0
  202. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_graph_analyzer_polyglot.py +0 -0
  203. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_graph_analyzer_python_node.py +0 -0
  204. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_graph_schema.py +0 -0
  205. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_hybrid_inference.py +0 -0
  206. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration.py +0 -0
  207. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_dependencies.py +0 -0
  208. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_detection.py +0 -0
  209. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_docs.py +0 -0
  210. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_graph_modules.py +0 -0
  211. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_lqn.py +0 -0
  212. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_metrics.py +0 -0
  213. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_multistack.py +0 -0
  214. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_semantics.py +0 -0
  215. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_integration_universal.py +0 -0
  216. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_java_spring_integration.py +0 -0
  217. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_mcp_runner.py +0 -0
  218. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_mcp_serve.py +0 -0
  219. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_mcp_tools.py +0 -0
  220. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_metrics_analyzer.py +0 -0
  221. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_output_ux.py +0 -0
  222. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_packaging.py +0 -0
  223. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_phase1_improvements.py +0 -0
  224. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_pipeline_integrity.py +0 -0
  225. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_real_projects.py +0 -0
  226. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_redactor.py +0 -0
  227. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_repository_ir.py +0 -0
  228. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_scanner.py +0 -0
  229. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_schema.py +0 -0
  230. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_schema_normalization.py +0 -0
  231. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_scoring_calibration.py +0 -0
  232. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_semantic_analyzer_node.py +0 -0
  233. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_semantic_analyzer_python.py +0 -0
  234. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_semantic_import_resolution.py +0 -0
  235. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_semantic_schema.py +0 -0
  236. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_signal_hierarchy.py +0 -0
  237. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_summarizer.py +0 -0
  238. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_surface_honesty.py +0 -0
  239. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_task_differentiation.py +0 -0
  240. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_telemetry.py +0 -0
  241. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_v131_improvements.py +0 -0
  242. {sourcecode-1.31.11 → sourcecode-1.31.12}/tests/test_v1_10_regressions.py +0 -0
  243. {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