sourcecode 1.32.5__tar.gz → 1.32.6__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.32.5 → sourcecode-1.32.6}/PKG-INFO +1 -1
- {sourcecode-1.32.5 → sourcecode-1.32.6}/pyproject.toml +1 -1
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/__init__.py +1 -1
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/cli.py +33 -1
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/license.py +1 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/.gitignore +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/.ruff.toml +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/CHANGELOG.md +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/CONTRIBUTING.md +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/LICENSE +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/README.md +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/SECURITY.md +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/raw +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/cache.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/cache.tmp_new +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/classifier.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/flow_analyzer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/mcp/server.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/mcp_nudge.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/progress.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/redactor.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/repository_ir.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/ris.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/scanner.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/schema.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/serializer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-1.32.5 → sourcecode-1.32.6}/src/sourcecode/workspace.py +0 -0
|
@@ -384,6 +384,18 @@ def _get_command_with_preprocessing(typer_instance: Any) -> Any:
|
|
|
384
384
|
# Refresh help text at invocation time so it reflects current license state.
|
|
385
385
|
cmd.help = _build_help_text()
|
|
386
386
|
|
|
387
|
+
# Add [Pro] badge to Pro-gated option help strings for free-tier users.
|
|
388
|
+
try:
|
|
389
|
+
from sourcecode.license import is_pro as _lp_is_pro
|
|
390
|
+
except Exception:
|
|
391
|
+
_lp_is_pro = False
|
|
392
|
+
if not _lp_is_pro:
|
|
393
|
+
_PRO_OPTS = {"full"}
|
|
394
|
+
for _param in cmd.params:
|
|
395
|
+
if getattr(_param, "name", None) in _PRO_OPTS and getattr(_param, "help", None):
|
|
396
|
+
if "[Pro]" not in _param.help:
|
|
397
|
+
_param.help = _param.help + " [dim][Pro][/dim]"
|
|
398
|
+
|
|
387
399
|
_orig_cmd_main = cmd.main
|
|
388
400
|
|
|
389
401
|
def _cmd_main(args: Optional[list[str]] = None, **kwargs: Any) -> Any:
|
|
@@ -1442,12 +1454,23 @@ def main(
|
|
|
1442
1454
|
if dependency_analyzer is not None
|
|
1443
1455
|
else None
|
|
1444
1456
|
)
|
|
1457
|
+
# Free-tier node cap: limit graph size to 10 nodes unless Pro.
|
|
1458
|
+
_effective_max_nodes = max_nodes
|
|
1459
|
+
try:
|
|
1460
|
+
from sourcecode.license import is_pro as _lp_is_pro_gm
|
|
1461
|
+
except Exception:
|
|
1462
|
+
_lp_is_pro_gm = False
|
|
1463
|
+
_FREE_NODE_CAP = 10
|
|
1464
|
+
if not _lp_is_pro_gm and graph_analyzer is not None:
|
|
1465
|
+
if _effective_max_nodes is None or _effective_max_nodes > _FREE_NODE_CAP:
|
|
1466
|
+
_effective_max_nodes = _FREE_NODE_CAP
|
|
1467
|
+
|
|
1445
1468
|
module_graph = (
|
|
1446
1469
|
graph_analyzer.merge_graphs(
|
|
1447
1470
|
module_graphs,
|
|
1448
1471
|
detail=graph_detail_typed,
|
|
1449
1472
|
edge_kinds=parsed_graph_edges,
|
|
1450
|
-
max_nodes=
|
|
1473
|
+
max_nodes=_effective_max_nodes,
|
|
1451
1474
|
entry_points=entry_points,
|
|
1452
1475
|
)
|
|
1453
1476
|
if graph_analyzer is not None
|
|
@@ -1567,6 +1590,15 @@ def main(
|
|
|
1567
1590
|
semantic_summary=sem_sum,
|
|
1568
1591
|
)
|
|
1569
1592
|
|
|
1593
|
+
# Free-tier node cap for --semantics: limit semantic_symbols to 10 unless Pro.
|
|
1594
|
+
if semantic_analyzer is not None and sm.semantic_symbols:
|
|
1595
|
+
try:
|
|
1596
|
+
from sourcecode.license import is_pro as _lp_is_pro_sem
|
|
1597
|
+
except Exception:
|
|
1598
|
+
_lp_is_pro_sem = False
|
|
1599
|
+
if not _lp_is_pro_sem and len(sm.semantic_symbols) > _FREE_NODE_CAP:
|
|
1600
|
+
sm = replace(sm, semantic_symbols=sm.semantic_symbols[:_FREE_NODE_CAP])
|
|
1601
|
+
|
|
1570
1602
|
# Runtime architecture — classify workspace packages for structural summaries
|
|
1571
1603
|
if workspace_analysis.workspaces:
|
|
1572
1604
|
from sourcecode.runtime_classifier import RuntimeClassifier
|
|
@@ -248,6 +248,7 @@ def require_feature(feature_name: str) -> None:
|
|
|
248
248
|
f"'{display}' requires a Pro license. "
|
|
249
249
|
"Run: sourcecode activate <license_key>"
|
|
250
250
|
),
|
|
251
|
+
"upgrade_hint": "sourcecode activate <license_key>",
|
|
251
252
|
}
|
|
252
253
|
sys.stdout.write(json.dumps(payload, ensure_ascii=False) + "\n")
|
|
253
254
|
sys.stdout.flush()
|
|
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
|