sourcecode 1.33.23__tar.gz → 1.33.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.
- {sourcecode-1.33.23 → sourcecode-1.33.24}/PKG-INFO +2 -2
- {sourcecode-1.33.23 → sourcecode-1.33.24}/README.md +1 -1
- {sourcecode-1.33.23 → sourcecode-1.33.24}/pyproject.toml +1 -1
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/__init__.py +1 -1
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/entrypoint_classifier.py +26 -1
- {sourcecode-1.33.23 → sourcecode-1.33.24}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/.gitignore +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/.ruff.toml +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/CHANGELOG.md +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/CONTRIBUTING.md +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/LICENSE +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/SECURITY.md +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/raw +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/cache.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/classifier.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/cli.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/error_schema.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/flow_analyzer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/license.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/mcp/orchestrator.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/mcp/registry.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/mcp/server.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/mcp_nudge.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/progress.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/redactor.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/repository_ir.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/ris.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/scanner.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/schema.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/serializer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-1.33.23 → sourcecode-1.33.24}/src/sourcecode/workspace.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 1.33.
|
|
3
|
+
Version: 1.33.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
|
|
@@ -39,7 +39,7 @@ Description-Content-Type: text/markdown
|
|
|
39
39
|
|
|
40
40
|
**Persistent structural context and ultra-fast repeated analysis for AI coding agents.**
|
|
41
41
|
|
|
42
|
-

|
|
43
43
|

|
|
44
44
|
|
|
45
45
|
---
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**Persistent structural context and ultra-fast repeated analysis for AI coding agents.**
|
|
4
4
|
|
|
5
|
-

|
|
6
6
|

|
|
7
7
|
|
|
8
8
|
---
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "sourcecode"
|
|
7
|
-
version = "1.33.
|
|
7
|
+
version = "1.33.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"
|
|
@@ -25,6 +25,31 @@ _DEVELOPMENT_DIRS = frozenset({
|
|
|
25
25
|
_DEV_MARKERS = ("rspress", "vite", "storybook", "playground", "dev-server")
|
|
26
26
|
_PRODUCTION_SCRIPT_REASONS = {"script:start", "script:serve", "script:server"}
|
|
27
27
|
|
|
28
|
+
# JVM source trees: directories below these markers are package namespaces,
|
|
29
|
+
# not functional directory roles — "com/example/spaghetti" must not match
|
|
30
|
+
# _AUXILIARY_DIRS just because "example" is a package name component.
|
|
31
|
+
_JVM_SRC_ROOTS = (
|
|
32
|
+
"src/main/java/", "src/test/java/",
|
|
33
|
+
"src/main/kotlin/", "src/test/kotlin/",
|
|
34
|
+
"src/main/scala/", "src/test/scala/",
|
|
35
|
+
"src/integration-test/java/", "src/integrationTest/java/",
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def _dir_check_parts(path: str) -> frozenset[str]:
|
|
40
|
+
"""Return path segments used for auxiliary/development dir-name matching.
|
|
41
|
+
|
|
42
|
+
For JVM source files the package path (below the source root) is a
|
|
43
|
+
namespace, not a functional directory hierarchy. Truncate there so
|
|
44
|
+
package components like 'example' in com.example.* don't false-match
|
|
45
|
+
_AUXILIARY_DIRS entries.
|
|
46
|
+
"""
|
|
47
|
+
for root in _JVM_SRC_ROOTS:
|
|
48
|
+
idx = path.find(root)
|
|
49
|
+
if idx >= 0:
|
|
50
|
+
return frozenset(path[: idx + len(root)].split("/"))
|
|
51
|
+
return frozenset(path.split("/"))
|
|
52
|
+
|
|
28
53
|
|
|
29
54
|
def classify_entry_point(ep: EntryPoint) -> Classification:
|
|
30
55
|
"""Return the operational class for an entry point.
|
|
@@ -33,7 +58,7 @@ def classify_entry_point(ep: EntryPoint) -> Classification:
|
|
|
33
58
|
and auxiliary path evidence wins over detector-provided production labels.
|
|
34
59
|
"""
|
|
35
60
|
path = ep.path.replace("\\", "/").lower()
|
|
36
|
-
parts =
|
|
61
|
+
parts = _dir_check_parts(path)
|
|
37
62
|
reason = (ep.reason or "").lower()
|
|
38
63
|
evidence = (ep.evidence or "").lower()
|
|
39
64
|
marker_text = f"{path} {reason} {evidence}"
|
|
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
|
|
File without changes
|
|
File without changes
|