roam-code 12.7.0__tar.gz → 12.7.1__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.
- {roam_code-12.7.0 → roam_code-12.7.1}/PKG-INFO +1 -1
- {roam_code-12.7.0 → roam_code-12.7.1}/pyproject.toml +1 -1
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/catalog/python_idioms.py +53 -8
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam_code.egg-info/PKG-INFO +1 -1
- {roam_code-12.7.0 → roam_code-12.7.1}/LICENSE +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/README.md +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/setup.cfg +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/__main__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/analysis/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/analysis/effects.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/analysis/taint.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/api.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/ask/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/ask/classifier.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/ask/recipes.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/ask/runner.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/attest/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/attest/cga.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/bridges/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/bridges/base.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/bridges/bridge_config.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/bridges/bridge_django.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/bridges/bridge_protobuf.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/bridges/bridge_rest_api.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/bridges/bridge_salesforce.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/bridges/bridge_template.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/bridges/registry.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/catalog/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/catalog/detectors.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/catalog/fixes.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/catalog/smells.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/catalog/tasks.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/cli.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/changed_files.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_adrs.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_adversarial.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_affected.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_affected_tests.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_agent_context.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_agent_export.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_agent_plan.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_ai_ratio.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_ai_readiness.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_alerts.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_annotate.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_api_changes.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_api_drift.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_ask.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_attest.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_auth_gaps.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_bisect.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_breaking.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_budget.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_bus_factor.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_capsule.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_cga.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_check_rules.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_ci_setup.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_clean.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_clones.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_closure.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_clusters.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_codeowners.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_complexity.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_config.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_congestion.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_context.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_conventions.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_coupling.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_coverage_gaps.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_critique.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_cut.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_dark_matter.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_dashboard.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_dead.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_debt.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_deps.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_describe.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_dev_profile.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_diagnose.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_diff.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_doc_staleness.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_docs_coverage.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_doctor.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_drift.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_duplicates.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_effects.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_endpoints.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_entry_points.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_eval_retrieve.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_fan.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_file.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_fingerprint.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_fitness.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_flag_dead.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_fleet.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_fn_coupling.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_forecast.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_grep.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_guard.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_health.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_hooks.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_hotspots.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_impact.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_index.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_index_bundle.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_ingest_trace.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_init.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_intent.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_invariants.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_layers.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_map.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_math.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_mcp_setup.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_metrics.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_migration_safety.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_minimap.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_missing_index.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_module.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_mutate.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_n1.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_oracle.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_orchestrate.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_orphan_routes.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_over_fetch.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_owner.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_partition.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_path_coverage.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_patterns.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_plan.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_plan_refactor.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_pr_diff.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_pr_risk.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_preflight.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_py_modern.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_py_types.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_relate.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_report.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_reset.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_retrieve.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_risk.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_rules.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_safe_delete.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_safe_zones.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_sbom.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_schema.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_search.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_search_semantic.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_secrets.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_semantic_diff.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_simulate.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_simulate_departure.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_sketch.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_smells.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_spectral.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_split.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_suggest_refactoring.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_suggest_reviewers.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_supply_chain.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_symbol.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_syntax_check.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_taint.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_test_gaps.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_test_scaffold.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_testmap.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_tour.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_trace.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_trends.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_triage.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_understand.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_uses.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_verify.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_verify_imports.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_vibe_check.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_visualize.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_vuln_map.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_vuln_reach.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_vulns.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_watch.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_weather.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_why.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_ws.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/cmd_xlang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/codeowners_helpers.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/context_helpers.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/gate_presets.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/graph_helpers.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/metrics_history.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/next_steps.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/resolve.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/commands/suppression.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/competitor_site_data.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/config.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/coverage_reports.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/critique/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/critique/aggregator.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/critique/checks.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/db/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/db/connection.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/db/queries.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/db/schema.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/eval/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/eval/harness.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/exit_codes.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/fleet/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/fleet/adapters.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/fleet/manifest.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/git_utils.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/anomaly.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/builder.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/clone_detect.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/clusters.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/cycles.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/dark_matter.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/diff.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/fingerprint.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/layers.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/pagerank.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/partition.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/pathfinding.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/propagation.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/simulate.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/spectral.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/graph/stats.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/index/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/index/complexity.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/index/discovery.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/index/django_post.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/index/file_roles.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/index/git_stats.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/index/gitignore.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/index/incremental.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/index/indexer.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/index/parser.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/index/relations.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/index/symbols.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/index/test_conventions.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/apex_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/aura_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/base.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/c_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/csharp_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/extractor_schema.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/foxpro_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/generic_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/go_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/hcl_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/java_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/javascript_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/kotlin_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/php_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/python_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/query_engine.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/registry.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/ruby_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/rust_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/scala_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/sfxml_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/sql_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/swift_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/typescript_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/visualforce_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/languages/yaml_lang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/mcp_extras/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/mcp_extras/completions.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/mcp_extras/progress.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/mcp_extras/sampling.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/mcp_extras/session.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/mcp_extras/watcher.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/mcp_server.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/output/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/output/file_role_hints.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/output/formatter.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/output/mermaid.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/output/sarif.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/output/schema_registry.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/plugins.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/refactor/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/refactor/codegen.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/refactor/transforms.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/retrieve/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/retrieve/learned_ranker.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/retrieve/pipeline.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/retrieve/rerank.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/retrieve/seeds.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/retrieve/semantic.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/rules/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/rules/ast_match.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/rules/builtin.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/rules/dataflow.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/rules/engine.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/runtime/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/runtime/daemon.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/runtime/graph_backend.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/runtime/hotspots.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/runtime/lock_modes.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/runtime/lockmgr.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/runtime/trace_ingest.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/search/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/search/framework_packs.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/search/index_embeddings.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/search/onnx_embeddings.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/search/tfidf.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/security/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/security/aibom_extension.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/security/taint_classifier.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/security/taint_engine.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/security/vuln_reach.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/security/vuln_store.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/surface_counts.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/templates/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/templates/ci/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/workspace/__init__.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/workspace/aggregator.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/workspace/api_scanner.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/workspace/config.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam/workspace/db.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam_code.egg-info/SOURCES.txt +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam_code.egg-info/dependency_links.txt +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam_code.egg-info/entry_points.txt +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam_code.egg-info/requires.txt +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/src/roam_code.egg-info/top_level.txt +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_adrs.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_adversarial.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_affected.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_agent_export.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_agent_mode.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_agent_plan_context.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_ai_ratio.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_ai_readiness.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_alerts_cmd.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_annotations.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_anomaly.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_api_changes.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_api_drift.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_ask.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_attest.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_auth_gaps.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_backend_fixes_round2.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_backend_fixes_round3.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_basic.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_batch_mcp.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_bisect.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_bridge_django.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_bridges.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_bridges_extended.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_budget.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_budget_flag.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_budget_phase2.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_bus_factor.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_capsule.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_cga.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_check_rules.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_ci_gate_eval.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_ci_sarif_guard.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_ci_setup.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_clones.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_closure.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_codeowners.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_commands_architecture.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_commands_exploration.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_commands_health.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_commands_refactoring.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_commands_workflow.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_competitor_site_data.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_comprehensive.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_config.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_congestion.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_context_propagation.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_conventions_cmd.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_coverage_gaps_cmd.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_coverage_ingestion.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_critique.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_cut.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_dark_matter.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_dark_matter_helpers.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_dashboard.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_dataflow_dead.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_dead_aging.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_defer_loading.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_demo_gif_asset.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_describe.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_detail_flag_hints.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_deterministic_output.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_dev_profile.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_difficulty_scoring.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_doc_staleness.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_docker_assets.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_docs_coverage.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_docs_site_quality.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_doctor.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_drift.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_duplicates.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_effects.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_effects_propagation.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_endpoints.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_entry_points_cmd.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_eval_retrieve.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_exclude_patterns.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_exit_codes.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_extractor_grammar_drift.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_fallback_contracts.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_file_roles.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_fingerprint.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_fixes.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_flag_dead.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_fleet.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_fn_coupling.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_forecast.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_formatters.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_foxpro.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_framework_detection.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_gate_presets.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_git_utils.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_guard.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_health_gate.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_hooks.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_hotspots.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_index.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_index_bundle.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_init_cmd.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_install_check.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_intent.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_invariants.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_json_contracts.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_json_error_envelope.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_kotlin_swift_extractors.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_language_corpus.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_languages.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_library_api.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_math.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_math_tips.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_mcp_extras.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_mcp_server.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_mcp_setup.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_mermaid.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_metrics_cmd.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_migration_safety.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_minimap.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_missing_index.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_mutate.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_n1.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_next_steps.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_onboard.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_oracle.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_orchestrate.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_orphan_routes.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_oss_bench_harness.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_over_fetch.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_pagerank_truncation.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_partition.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_path_coverage.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_patterns_cmd.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_performance.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_personalized_pagerank.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_plan.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_plugin_discovery.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_pr_comment_script.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_pr_diff.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_pr_risk_author.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_progress.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_progressive_disclosure.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_properties.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_python_extractor_v2.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_python_idioms_e2e.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_python_pivot.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_readme_surface_consistency.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_refactoring_intelligence.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_relate.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_report.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_reset_clean.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_resolve.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_retrieve.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_retrieve_cross_repo.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_retrieve_seeds.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_risk.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_ruby.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_rule_profiles.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_rules.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_rules_ast_match.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_rules_community_pack.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_rules_dataflow.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_rules_symbol_requirements.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_runtime.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_runtime_score.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_salesforce.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_sarif_flag.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_sbom.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_scala.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_schema_versioning.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_search_explain.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_secrets.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_secrets_v2.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_semantic_diff.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_semantic_onnx.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_semantic_search.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_simulate.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_simulate_departure.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_sketch.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_smells.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_smoke.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_sna_metrics.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_spectral.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_split_cmd.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_sql.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_suggest_reviewers.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_supply_chain.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_surface_counts.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_syntax_check.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_taint.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_taint_analysis.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_taint_classifier.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_test_conventions.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_test_gaps.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_test_scaffold.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_testmap.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_top_flag_consistency.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_tour_cmd.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_trends.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_trends_cohort.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_triage.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_uses_cmd.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_v12_2.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_v6_features.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_v71_features.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_v7_features.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_v82_features.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_verify.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_verify_imports.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_vibe_check.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_visualize.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_vuln.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_vulns_cmd.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_watch.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_why.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_workspace.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_ws_resolve_fixes.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_xlang.py +0 -0
- {roam_code-12.7.0 → roam_code-12.7.1}/tests/test_yaml_hcl.py +0 -0
|
@@ -210,19 +210,46 @@ def _project_root_for_conn(conn: sqlite3.Connection) -> str:
|
|
|
210
210
|
return parent
|
|
211
211
|
|
|
212
212
|
|
|
213
|
+
# Per-process cache of file-text reads. With 19 detectors each calling
|
|
214
|
+
# ``_file_text`` per file, an uncached implementation does 19×N disk
|
|
215
|
+
# reads. Cache keyed by ``(id(conn), file_id)`` so distinct DB
|
|
216
|
+
# connections don't collide. Cleared at module unload (or via
|
|
217
|
+
# ``_clear_file_text_cache()`` in tests). Bounded in size at 4096
|
|
218
|
+
# entries to avoid unbounded growth on huge repos; LRU-evicted.
|
|
219
|
+
from collections import OrderedDict as _OrderedDict
|
|
220
|
+
|
|
221
|
+
_FILE_TEXT_CACHE: _OrderedDict = _OrderedDict()
|
|
222
|
+
_FILE_TEXT_CACHE_MAX = 4096
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
def _clear_file_text_cache() -> None:
|
|
226
|
+
"""Clear the file-text cache. Call from tests that want clean state."""
|
|
227
|
+
_FILE_TEXT_CACHE.clear()
|
|
228
|
+
|
|
229
|
+
|
|
213
230
|
def _file_text(conn: sqlite3.Connection, file_id: int) -> str | None:
|
|
214
231
|
"""Read the source text of a file via roam.index — but the index
|
|
215
232
|
doesn't store source. Instead we read from disk via the file path
|
|
216
233
|
resolved against the project root (paths in the index are
|
|
217
234
|
project-relative, so a bare ``open(path)`` fails when the caller
|
|
218
235
|
isn't sitting at the project root).
|
|
219
|
-
|
|
236
|
+
|
|
237
|
+
Caches results across calls within a process so all 19+ detectors
|
|
238
|
+
pay the disk read once per file rather than 19+ times.
|
|
220
239
|
"""
|
|
240
|
+
cache_key = (id(conn), file_id)
|
|
241
|
+
cached = _FILE_TEXT_CACHE.get(cache_key)
|
|
242
|
+
if cached is not None:
|
|
243
|
+
# LRU bump
|
|
244
|
+
_FILE_TEXT_CACHE.move_to_end(cache_key)
|
|
245
|
+
return cached if cached != "" else None # sentinel for "tried, failed"
|
|
221
246
|
row = conn.execute("SELECT path FROM files WHERE id = ?", (file_id,)).fetchone()
|
|
222
247
|
if row is None:
|
|
248
|
+
_FILE_TEXT_CACHE[cache_key] = ""
|
|
223
249
|
return None
|
|
224
250
|
path = row[0]
|
|
225
251
|
if not path:
|
|
252
|
+
_FILE_TEXT_CACHE[cache_key] = ""
|
|
226
253
|
return None
|
|
227
254
|
# Resolve project-relative path via the DB's location.
|
|
228
255
|
root = _project_root_for_conn(conn)
|
|
@@ -233,9 +260,15 @@ def _file_text(conn: sqlite3.Connection, file_id: int) -> str | None:
|
|
|
233
260
|
path = _osp.join(root, path)
|
|
234
261
|
try:
|
|
235
262
|
with open(path, encoding="utf-8", errors="replace") as f:
|
|
236
|
-
|
|
263
|
+
text = f.read()
|
|
237
264
|
except OSError:
|
|
265
|
+
_FILE_TEXT_CACHE[cache_key] = ""
|
|
238
266
|
return None
|
|
267
|
+
_FILE_TEXT_CACHE[cache_key] = text
|
|
268
|
+
# LRU eviction
|
|
269
|
+
if len(_FILE_TEXT_CACHE) > _FILE_TEXT_CACHE_MAX:
|
|
270
|
+
_FILE_TEXT_CACHE.popitem(last=False)
|
|
271
|
+
return text
|
|
239
272
|
|
|
240
273
|
|
|
241
274
|
# Triple-quoted strings (greedy across newlines), single/double quoted
|
|
@@ -250,27 +283,39 @@ _SINGLE_QUOTE_RE = re.compile(r'("(?:\\.|[^"\\\n])*"|\'(?:\\.|[^\'\\\n])*\')')
|
|
|
250
283
|
_COMMENT_RE = re.compile(r"#[^\n]*")
|
|
251
284
|
|
|
252
285
|
|
|
286
|
+
_STRIP_CACHE: _OrderedDict = _OrderedDict()
|
|
287
|
+
_STRIP_CACHE_MAX = 4096
|
|
288
|
+
|
|
289
|
+
|
|
253
290
|
def _strip_strings_and_comments(text: str) -> str:
|
|
254
291
|
"""Replace strings + comments with same-length whitespace so the
|
|
255
292
|
detector regexes don't false-match inside docstrings or comments.
|
|
256
293
|
|
|
257
294
|
Length-preserving so ``text.count("\n", 0, match.start())`` still
|
|
258
|
-
yields the original line number.
|
|
259
|
-
|
|
260
|
-
|
|
295
|
+
yields the original line number. Cached because all detectors
|
|
296
|
+
that strip apply the same transform — without caching we re-strip
|
|
297
|
+
once per detector per file.
|
|
261
298
|
"""
|
|
262
299
|
if not text:
|
|
263
300
|
return text
|
|
301
|
+
# Cache key: id() of the original string (CPython gives unique
|
|
302
|
+
# ids while alive). Combined with len() to catch the rare case
|
|
303
|
+
# of id-reuse after string GC.
|
|
304
|
+
key = (id(text), len(text))
|
|
305
|
+
cached = _STRIP_CACHE.get(key)
|
|
306
|
+
if cached is not None:
|
|
307
|
+
_STRIP_CACHE.move_to_end(key)
|
|
308
|
+
return cached
|
|
264
309
|
|
|
265
310
|
def _blank(match: re.Match) -> str:
|
|
266
|
-
# Preserve newlines — re-blanking with spaces would collapse
|
|
267
|
-
# multi-line docstrings into one logical line for downstream
|
|
268
|
-
# regexes that use ``^`` / ``$`` anchors.
|
|
269
311
|
return "".join(" " if c != "\n" else "\n" for c in match.group(0))
|
|
270
312
|
|
|
271
313
|
out = _TRIPLE_QUOTE_RE.sub(_blank, text)
|
|
272
314
|
out = _SINGLE_QUOTE_RE.sub(_blank, out)
|
|
273
315
|
out = _COMMENT_RE.sub(_blank, out)
|
|
316
|
+
_STRIP_CACHE[key] = out
|
|
317
|
+
if len(_STRIP_CACHE) > _STRIP_CACHE_MAX:
|
|
318
|
+
_STRIP_CACHE.popitem(last=False)
|
|
274
319
|
return out
|
|
275
320
|
|
|
276
321
|
|
|
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
|
|
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
|