sourcecode 0.32.0__tar.gz → 0.33.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 (142) hide show
  1. {sourcecode-0.32.0 → sourcecode-0.33.0}/PKG-INFO +5 -1
  2. {sourcecode-0.32.0 → sourcecode-0.33.0}/pyproject.toml +10 -1
  3. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/__init__.py +1 -1
  4. sourcecode-0.33.0/src/sourcecode/ast_extractor.py +995 -0
  5. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/cli.py +115 -1
  6. sourcecode-0.33.0/src/sourcecode/contract_model.py +110 -0
  7. sourcecode-0.33.0/src/sourcecode/contract_pipeline.py +425 -0
  8. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/schema.py +3 -0
  9. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/serializer.py +147 -0
  10. sourcecode-0.33.0/tests/test_ast_extractor.py +276 -0
  11. sourcecode-0.33.0/tests/test_contract_pipeline.py +260 -0
  12. {sourcecode-0.32.0 → sourcecode-0.33.0}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
  13. {sourcecode-0.32.0 → sourcecode-0.33.0}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
  14. {sourcecode-0.32.0 → sourcecode-0.33.0}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
  15. {sourcecode-0.32.0 → sourcecode-0.33.0}/.gitignore +0 -0
  16. {sourcecode-0.32.0 → sourcecode-0.33.0}/.ruff.toml +0 -0
  17. {sourcecode-0.32.0 → sourcecode-0.33.0}/CONTRIBUTING.md +0 -0
  18. {sourcecode-0.32.0 → sourcecode-0.33.0}/LICENSE +0 -0
  19. {sourcecode-0.32.0 → sourcecode-0.33.0}/README.md +0 -0
  20. {sourcecode-0.32.0 → sourcecode-0.33.0}/SECURITY.md +0 -0
  21. {sourcecode-0.32.0 → sourcecode-0.33.0}/docs/privacy.md +0 -0
  22. {sourcecode-0.32.0 → sourcecode-0.33.0}/docs/schema.md +0 -0
  23. {sourcecode-0.32.0 → sourcecode-0.33.0}/raw +0 -0
  24. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/architecture_analyzer.py +0 -0
  25. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/architecture_summary.py +0 -0
  26. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/classifier.py +0 -0
  27. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/code_notes_analyzer.py +0 -0
  28. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/confidence_analyzer.py +0 -0
  29. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/context_summarizer.py +0 -0
  30. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/coverage_parser.py +0 -0
  31. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/dependency_analyzer.py +0 -0
  32. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/__init__.py +0 -0
  33. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/base.py +0 -0
  34. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/csproj_parser.py +0 -0
  35. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/dart.py +0 -0
  36. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/dotnet.py +0 -0
  37. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/elixir.py +0 -0
  38. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/go.py +0 -0
  39. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/heuristic.py +0 -0
  40. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/hybrid.py +0 -0
  41. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/java.py +0 -0
  42. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/jvm_ext.py +0 -0
  43. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/nodejs.py +0 -0
  44. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/parsers.py +0 -0
  45. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/php.py +0 -0
  46. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/project.py +0 -0
  47. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/python.py +0 -0
  48. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/ruby.py +0 -0
  49. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/rust.py +0 -0
  50. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/systems.py +0 -0
  51. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/terraform.py +0 -0
  52. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/detectors/tooling.py +0 -0
  53. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/doc_analyzer.py +0 -0
  54. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/entrypoint_classifier.py +0 -0
  55. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/env_analyzer.py +0 -0
  56. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/file_classifier.py +0 -0
  57. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/git_analyzer.py +0 -0
  58. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/graph_analyzer.py +0 -0
  59. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/metrics_analyzer.py +0 -0
  60. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/prepare_context.py +0 -0
  61. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/redactor.py +0 -0
  62. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/relevance_scorer.py +0 -0
  63. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/runtime_classifier.py +0 -0
  64. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/scanner.py +0 -0
  65. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/semantic_analyzer.py +0 -0
  66. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/summarizer.py +0 -0
  67. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/telemetry/__init__.py +0 -0
  68. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/telemetry/config.py +0 -0
  69. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/telemetry/consent.py +0 -0
  70. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/telemetry/events.py +0 -0
  71. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/telemetry/filters.py +0 -0
  72. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/telemetry/transport.py +0 -0
  73. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/tree_utils.py +0 -0
  74. {sourcecode-0.32.0 → sourcecode-0.33.0}/src/sourcecode/workspace.py +0 -0
  75. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/__init__.py +0 -0
  76. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/conftest.py +0 -0
  77. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/fixtures/coverage.xml +0 -0
  78. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
  79. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/fixtures/fastapi_app/src/main.py +0 -0
  80. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/fixtures/go_service/cmd/api/main.go +0 -0
  81. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/fixtures/go_service/go.mod +0 -0
  82. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/fixtures/jacoco.xml +0 -0
  83. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/fixtures/lcov.info +0 -0
  84. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
  85. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/fixtures/nextjs_app/package.json +0 -0
  86. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
  87. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
  88. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
  89. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
  90. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
  91. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
  92. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_architecture_analyzer.py +0 -0
  93. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_architecture_summary.py +0 -0
  94. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_classifier.py +0 -0
  95. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_cli.py +0 -0
  96. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_code_notes_analyzer.py +0 -0
  97. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_coverage_parser.py +0 -0
  98. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_cross_consistency.py +0 -0
  99. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_dependency_analyzer_node_python.py +0 -0
  100. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_dependency_analyzer_polyglot.py +0 -0
  101. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_dependency_schema.py +0 -0
  102. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_detector_dotnet.py +0 -0
  103. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_detector_go_rust_java.py +0 -0
  104. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_detector_nodejs.py +0 -0
  105. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_detector_php_ruby_dart.py +0 -0
  106. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_detector_python.py +0 -0
  107. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_detector_universal_managed.py +0 -0
  108. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_detector_universal_systems.py +0 -0
  109. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_detectors_base.py +0 -0
  110. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_doc_analyzer_jsdom.py +0 -0
  111. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_doc_analyzer_python.py +0 -0
  112. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_graph_analyzer_polyglot.py +0 -0
  113. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_graph_analyzer_python_node.py +0 -0
  114. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_graph_schema.py +0 -0
  115. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_hybrid_inference.py +0 -0
  116. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_integration.py +0 -0
  117. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_integration_dependencies.py +0 -0
  118. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_integration_detection.py +0 -0
  119. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_integration_docs.py +0 -0
  120. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_integration_graph_modules.py +0 -0
  121. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_integration_lqn.py +0 -0
  122. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_integration_metrics.py +0 -0
  123. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_integration_multistack.py +0 -0
  124. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_integration_semantics.py +0 -0
  125. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_integration_universal.py +0 -0
  126. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_metrics_analyzer.py +0 -0
  127. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_packaging.py +0 -0
  128. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_phase1_improvements.py +0 -0
  129. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_pipeline_integrity.py +0 -0
  130. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_real_projects.py +0 -0
  131. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_redactor.py +0 -0
  132. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_scanner.py +0 -0
  133. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_schema.py +0 -0
  134. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_schema_normalization.py +0 -0
  135. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_semantic_analyzer_node.py +0 -0
  136. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_semantic_analyzer_python.py +0 -0
  137. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_semantic_import_resolution.py +0 -0
  138. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_semantic_schema.py +0 -0
  139. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_signal_hierarchy.py +0 -0
  140. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_summarizer.py +0 -0
  141. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_telemetry.py +0 -0
  142. {sourcecode-0.32.0 → sourcecode-0.33.0}/tests/test_workspace_analyzer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 0.32.0
3
+ Version: 0.33.0
4
4
  Summary: Deterministic codebase context for AI coding agents
5
5
  License: Apache License
6
6
  Version 2.0, January 2004
@@ -207,6 +207,10 @@ Requires-Dist: pathspec>=1.0
207
207
  Requires-Dist: ruamel-yaml>=0.18
208
208
  Requires-Dist: tomli>=2.0; python_version < '3.11'
209
209
  Requires-Dist: typer>=0.24
210
+ Provides-Extra: ast
211
+ Requires-Dist: tree-sitter-javascript>=0.21; extra == 'ast'
212
+ Requires-Dist: tree-sitter-typescript>=0.21; extra == 'ast'
213
+ Requires-Dist: tree-sitter>=0.21; extra == 'ast'
210
214
  Provides-Extra: dev
211
215
  Requires-Dist: mypy>=1.10; extra == 'dev'
212
216
  Requires-Dist: pytest>=8; extra == 'dev'
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sourcecode"
7
- version = "0.32.0"
7
+ version = "0.33.0"
8
8
  description = "Deterministic codebase context for AI coding agents"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -40,6 +40,15 @@ dev = [
40
40
  "ruff>=0.15",
41
41
  "mypy>=1.10",
42
42
  ]
43
+ ast = [
44
+ "tree-sitter>=0.21",
45
+ "tree-sitter-typescript>=0.21",
46
+ "tree-sitter-javascript>=0.21",
47
+ ]
48
+
49
+ [[tool.mypy.overrides]]
50
+ module = ["tree_sitter", "tree_sitter_typescript", "tree_sitter_javascript"]
51
+ ignore_missing_imports = true
43
52
 
44
53
  [tool.hatch.build.targets.wheel]
45
54
  packages = ["src/sourcecode"]
@@ -1,3 +1,3 @@
1
1
  """sourcecode — Deterministic codebase context maps for AI coding agents."""
2
2
 
3
- __version__ = "0.32.0"
3
+ __version__ = "0.33.0"