sourcecode 1.35.22__tar.gz → 1.35.24__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 (108) hide show
  1. {sourcecode-1.35.22 → sourcecode-1.35.24}/PKG-INFO +3 -3
  2. {sourcecode-1.35.22 → sourcecode-1.35.24}/README.md +2 -2
  3. {sourcecode-1.35.22 → sourcecode-1.35.24}/pyproject.toml +1 -1
  4. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/__init__.py +1 -1
  5. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/canonical_ir.py +4 -4
  6. sourcecode-1.35.24/src/sourcecode/migrate_check.py +808 -0
  7. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/prepare_context.py +21 -2
  8. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/repository_ir.py +1 -0
  9. sourcecode-1.35.22/src/sourcecode/migrate_check.py +0 -434
  10. {sourcecode-1.35.22 → sourcecode-1.35.24}/.github/workflows/build-windows.yml +0 -0
  11. {sourcecode-1.35.22 → sourcecode-1.35.24}/.gitignore +0 -0
  12. {sourcecode-1.35.22 → sourcecode-1.35.24}/.ruff.toml +0 -0
  13. {sourcecode-1.35.22 → sourcecode-1.35.24}/CHANGELOG.md +0 -0
  14. {sourcecode-1.35.22 → sourcecode-1.35.24}/CONTRIBUTING.md +0 -0
  15. {sourcecode-1.35.22 → sourcecode-1.35.24}/LICENSE +0 -0
  16. {sourcecode-1.35.22 → sourcecode-1.35.24}/SECURITY.md +0 -0
  17. {sourcecode-1.35.22 → sourcecode-1.35.24}/raw +0 -0
  18. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/adaptive_scanner.py +0 -0
  19. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/architecture_analyzer.py +0 -0
  20. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/architecture_summary.py +0 -0
  21. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/ast_extractor.py +0 -0
  22. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/cache.py +0 -0
  23. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/cir_graphs.py +0 -0
  24. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/classifier.py +0 -0
  25. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/cli.py +0 -0
  26. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/code_notes_analyzer.py +0 -0
  27. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/confidence_analyzer.py +0 -0
  28. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/context_scorer.py +0 -0
  29. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/context_summarizer.py +0 -0
  30. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/contract_model.py +0 -0
  31. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/contract_pipeline.py +0 -0
  32. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/coverage_parser.py +0 -0
  33. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/dependency_analyzer.py +0 -0
  34. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/__init__.py +0 -0
  35. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/base.py +0 -0
  36. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/csproj_parser.py +0 -0
  37. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/dart.py +0 -0
  38. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/dotnet.py +0 -0
  39. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/elixir.py +0 -0
  40. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/go.py +0 -0
  41. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/heuristic.py +0 -0
  42. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/hybrid.py +0 -0
  43. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/java.py +0 -0
  44. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/jvm_ext.py +0 -0
  45. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/nodejs.py +0 -0
  46. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/parsers.py +0 -0
  47. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/php.py +0 -0
  48. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/project.py +0 -0
  49. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/python.py +0 -0
  50. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/ruby.py +0 -0
  51. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/rust.py +0 -0
  52. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/systems.py +0 -0
  53. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/terraform.py +0 -0
  54. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/detectors/tooling.py +0 -0
  55. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/doc_analyzer.py +0 -0
  56. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/entrypoint_classifier.py +0 -0
  57. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/env_analyzer.py +0 -0
  58. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/error_schema.py +0 -0
  59. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/explain.py +0 -0
  60. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/file_classifier.py +0 -0
  61. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/flow_analyzer.py +0 -0
  62. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/fqn_utils.py +0 -0
  63. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/git_analyzer.py +0 -0
  64. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/graph_analyzer.py +0 -0
  65. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/license.py +0 -0
  66. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/mcp/__init__.py +0 -0
  67. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
  68. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/mcp/onboarding/applier.py +0 -0
  69. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/mcp/onboarding/backup.py +0 -0
  70. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/mcp/onboarding/detector.py +0 -0
  71. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/mcp/onboarding/planner.py +0 -0
  72. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/mcp/orchestrator.py +0 -0
  73. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/mcp/registry.py +0 -0
  74. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/mcp/runner.py +0 -0
  75. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/mcp/server.py +0 -0
  76. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/mcp_nudge.py +0 -0
  77. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/metrics_analyzer.py +0 -0
  78. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/output_budget.py +0 -0
  79. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/path_filters.py +0 -0
  80. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/pr_comment_renderer.py +0 -0
  81. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/pr_impact.py +0 -0
  82. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/progress.py +0 -0
  83. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/ranking_engine.py +0 -0
  84. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/redactor.py +0 -0
  85. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/relevance_scorer.py +0 -0
  86. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/repo_classifier.py +0 -0
  87. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/ris.py +0 -0
  88. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/runtime_classifier.py +0 -0
  89. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/scanner.py +0 -0
  90. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/schema.py +0 -0
  91. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/semantic_analyzer.py +0 -0
  92. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/serializer.py +0 -0
  93. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/spring_event_topology.py +0 -0
  94. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/spring_findings.py +0 -0
  95. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/spring_impact.py +0 -0
  96. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/spring_model.py +0 -0
  97. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/spring_security_audit.py +0 -0
  98. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/spring_semantic.py +0 -0
  99. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/spring_tx_analyzer.py +0 -0
  100. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/summarizer.py +0 -0
  101. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/telemetry/__init__.py +0 -0
  102. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/telemetry/config.py +0 -0
  103. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/telemetry/consent.py +0 -0
  104. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/telemetry/events.py +0 -0
  105. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/telemetry/filters.py +0 -0
  106. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/telemetry/transport.py +0 -0
  107. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/tree_utils.py +0 -0
  108. {sourcecode-1.35.22 → sourcecode-1.35.24}/src/sourcecode/workspace.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 1.35.22
3
+ Version: 1.35.24
4
4
  Summary: Persistent structural context and ultra-fast repeated analysis for AI coding agents
5
5
  License-File: LICENSE
6
6
  Keywords: agents,ai,codebase,context,developer-tools,llm
@@ -40,7 +40,7 @@ Description-Content-Type: text/markdown
40
40
 
41
41
  **Persistent structural context and ultra-fast repeated analysis for AI coding agents.**
42
42
 
43
- ![Version](https://img.shields.io/badge/version-1.35.20-blue)
43
+ ![Version](https://img.shields.io/badge/version-1.35.24-blue)
44
44
  ![Python](https://img.shields.io/badge/python-3.10%2B-green)
45
45
 
46
46
  ---
@@ -114,7 +114,7 @@ pipx install sourcecode
114
114
 
115
115
  ```bash
116
116
  sourcecode version
117
- # sourcecode 1.35.20
117
+ # sourcecode 1.35.24
118
118
  ```
119
119
 
120
120
  ---
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Persistent structural context and ultra-fast repeated analysis for AI coding agents.**
4
4
 
5
- ![Version](https://img.shields.io/badge/version-1.35.20-blue)
5
+ ![Version](https://img.shields.io/badge/version-1.35.24-blue)
6
6
  ![Python](https://img.shields.io/badge/python-3.10%2B-green)
7
7
 
8
8
  ---
@@ -76,7 +76,7 @@ pipx install sourcecode
76
76
 
77
77
  ```bash
78
78
  sourcecode version
79
- # sourcecode 1.35.20
79
+ # sourcecode 1.35.24
80
80
  ```
81
81
 
82
82
  ---
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sourcecode"
7
- version = "1.35.22"
7
+ version = "1.35.24"
8
8
  description = "Persistent structural context and ultra-fast repeated analysis 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.35.22"
3
+ __version__ = "1.35.24"
@@ -244,11 +244,11 @@ def _route_to_canonical_endpoint(route: dict) -> CanonicalEndpoint:
244
244
  security_dict = route.get("security_annotations")
245
245
  security: Optional[CanonicalSecurity] = None
246
246
  if security_dict:
247
- # Determine source_scope from inheritance_depth:
248
- # depth=0 → annotation on method or class (method takes precedence)
249
- # depth>0 → inherited from parent class
250
247
  depth = route.get("inheritance_depth") or 0
251
- scope = "inherited" if depth > 0 else "method"
248
+ if depth > 0:
249
+ scope = "inherited"
250
+ else:
251
+ scope = security_dict.get("_scope", "method")
252
252
  security = CanonicalSecurity.from_policy_dict(security_dict, source_scope=scope)
253
253
 
254
254
  endpoint_id = CanonicalEndpoint.make_id(method, path, controller_class, handler_symbol)