roam-code 12.13__tar.gz → 12.14__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.13/src/roam_code.egg-info → roam_code-12.14}/PKG-INFO +1 -1
- {roam_code-12.13 → roam_code-12.14}/pyproject.toml +1 -1
- {roam_code-12.13 → roam_code-12.14}/src/roam/cli.py +61 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_dead.py +2 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_retrieve.py +87 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/competitor_site_data.py +1 -1
- {roam_code-12.13 → roam_code-12.14}/src/roam/mcp-server-card.json +1 -1
- {roam_code-12.13 → roam_code-12.14/src/roam_code.egg-info}/PKG-INFO +1 -1
- {roam_code-12.13 → roam_code-12.14}/LICENSE +0 -0
- {roam_code-12.13 → roam_code-12.14}/README.md +0 -0
- {roam_code-12.13 → roam_code-12.14}/setup.cfg +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/__main__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/analysis/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/analysis/effects.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/analysis/taint.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/api.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/ask/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/ask/classifier.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/ask/recipes.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/ask/runner.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/ask/workflow.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/attest/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/attest/cga.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/bridges/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/bridges/base.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/bridges/bridge_config.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/bridges/bridge_django.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/bridges/bridge_protobuf.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/bridges/bridge_rest_api.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/bridges/bridge_salesforce.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/bridges/bridge_template.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/bridges/registry.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/catalog/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/catalog/detectors.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/catalog/fixes.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/catalog/python_idioms.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/catalog/smells.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/catalog/tasks.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/changed_files.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_adrs.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_adversarial.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_affected.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_affected_tests.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_agent_context.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_agent_export.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_agent_plan.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_ai_ratio.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_ai_readiness.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_alerts.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_annotate.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_api_changes.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_api_drift.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_ask.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_attest.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_auth_gaps.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_bisect.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_breaking.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_budget.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_bus_factor.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_capsule.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_cga.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_check_rules.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_ci_setup.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_clean.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_clones.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_closure.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_clusters.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_codeowners.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_complexity.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_config.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_congestion.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_context.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_conventions.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_coupling.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_coverage_gaps.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_critique.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_cut.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_dark_matter.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_dashboard.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_debt.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_deps.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_describe.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_dev_profile.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_diagnose.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_diff.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_doc_staleness.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_docs_coverage.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_doctor.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_drift.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_duplicates.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_effects.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_endpoints.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_entry_points.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_eval_retrieve.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_fan.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_file.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_fingerprint.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_fitness.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_flag_dead.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_fleet.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_fn_coupling.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_forecast.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_grep.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_guard.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_health.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_hooks.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_hotspots.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_hover.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_impact.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_index.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_index_bundle.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_ingest_trace.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_init.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_intent.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_invariants.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_layers.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_map.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_math.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_mcp_setup.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_metrics.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_migration_safety.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_minimap.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_missing_index.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_module.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_mutate.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_n1.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_oracle.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_orchestrate.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_orphan_routes.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_over_fetch.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_owner.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_partition.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_path_coverage.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_patterns.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_plan.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_plan_refactor.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_pr_diff.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_pr_risk.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_preflight.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_py_modern.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_py_types.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_pytest_fixtures.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_relate.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_report.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_reset.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_risk.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_rules.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_safe_delete.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_safe_zones.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_sbom.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_schema.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_search.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_search_semantic.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_secrets.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_semantic_diff.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_simulate.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_simulate_departure.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_sketch.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_smells.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_spectral.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_split.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_suggest_refactoring.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_suggest_reviewers.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_supply_chain.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_symbol.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_syntax_check.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_taint.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_test_gaps.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_test_scaffold.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_testmap.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_tour.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_trace.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_trends.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_triage.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_understand.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_uses.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_verify.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_verify_imports.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_vibe_check.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_visualize.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_vuln_map.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_vuln_reach.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_vulns.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_watch.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_weather.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_why.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_workflow.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_ws.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/cmd_xlang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/codeowners_helpers.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/context_helpers.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/gate_presets.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/graph_helpers.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/metrics_history.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/next_steps.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/resolve.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/commands/suppression.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/config.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/coverage_reports.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/critique/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/critique/aggregator.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/critique/checks.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/db/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/db/connection.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/db/queries.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/db/schema.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/eval/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/eval/harness.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/exit_codes.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/fleet/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/fleet/adapters.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/fleet/manifest.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/git_utils.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/anomaly.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/builder.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/clone_detect.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/clusters.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/cycles.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/dark_matter.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/diff.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/fingerprint.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/layers.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/pagerank.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/partition.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/pathfinding.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/propagation.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/simulate.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/spectral.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/graph/stats.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/index/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/index/complexity.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/index/discovery.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/index/django_post.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/index/file_roles.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/index/git_stats.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/index/gitignore.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/index/incremental.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/index/indexer.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/index/parser.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/index/pytest_fixtures.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/index/registry_dispatch.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/index/relations.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/index/symbols.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/index/test_conventions.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/apex_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/aura_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/base.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/c_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/csharp_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/extractor_schema.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/extractors/kotlin.yaml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/foxpro_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/generic_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/go_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/hcl_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/java_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/javascript_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/kotlin_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/php_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/python_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/query_engine.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/registry.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/ruby_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/rust_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/scala_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/sfxml_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/sql_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/swift_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/typescript_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/visualforce_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/languages/yaml_lang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/mcp_extras/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/mcp_extras/completions.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/mcp_extras/concurrency.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/mcp_extras/progress.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/mcp_extras/sampling.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/mcp_extras/session.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/mcp_extras/watcher.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/mcp_server.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/output/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/output/confidence.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/output/errors.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/output/file_role_hints.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/output/formatter.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/output/framework_filter.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/output/mermaid.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/output/project_shape.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/output/sarif.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/output/schema_registry.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/plugins.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/refactor/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/refactor/codegen.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/refactor/transforms.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/retrieve/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/retrieve/learned_ranker.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/retrieve/pipeline.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/retrieve/rerank.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/retrieve/seeds.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/retrieve/semantic.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/rules/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/rules/ast_match.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/rules/builtin.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/rules/dataflow.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/rules/engine.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/runtime/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/runtime/daemon.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/runtime/graph_backend.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/runtime/hotspots.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/runtime/lock_modes.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/runtime/lockmgr.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/runtime/trace_ingest.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/search/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/search/framework_packs.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/search/index_embeddings.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/search/onnx_embeddings.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/search/tfidf.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/aibom_extension.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/taint_classifier.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/taint_engine.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/taint_rules/api_error_leak.yaml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/taint_rules/java_fileupload_path_traversal.yaml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/taint_rules/js_insecure_jwt_decode.yaml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/taint_rules/js_localstorage_secrets.yaml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/taint_rules/js_prototype_pollution.yaml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/taint_rules/js_ssrf.yaml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/taint_rules/js_xss.yaml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/taint_rules/python_basic.yaml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/taint_rules/python_deserialization.yaml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/taint_rules/python_path_traversal.yaml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/taint_rules/python_socketio_remote_source.yaml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/taint_rules/python_sqli.yaml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/taint_rules/python_urllib_open_redirect.yaml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/taint_rules/vue_v_html.yaml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/vuln_reach.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/security/vuln_store.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/surface_counts.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/templates/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/templates/ci/Jenkinsfile +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/templates/ci/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/templates/ci/azure-pipelines.yml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/templates/ci/bitbucket-pipelines.yml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/templates/ci/gitlab-ci.yml +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/workspace/__init__.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/workspace/aggregator.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/workspace/api_scanner.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/workspace/config.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam/workspace/db.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam_code.egg-info/SOURCES.txt +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam_code.egg-info/dependency_links.txt +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam_code.egg-info/entry_points.txt +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam_code.egg-info/requires.txt +0 -0
- {roam_code-12.13 → roam_code-12.14}/src/roam_code.egg-info/top_level.txt +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_adrs.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_adversarial.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_affected.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_agent_export.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_agent_mode.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_agent_plan_context.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_ai_ratio.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_ai_readiness.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_alerts_cmd.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_annotations.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_anomaly.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_api_changes.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_api_drift.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_ask.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_attest.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_auth_gaps.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_backend_fixes_round2.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_backend_fixes_round3.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_basic.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_batch_mcp.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_bisect.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_bridge_django.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_bridges.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_bridges_extended.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_budget.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_budget_flag.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_budget_phase2.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_bus_factor.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_capsule.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_cga.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_check_rules.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_ci_gate_eval.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_ci_sarif_guard.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_ci_setup.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_clones.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_closure.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_codeowners.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_commands_architecture.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_commands_exploration.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_commands_health.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_commands_refactoring.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_commands_workflow.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_competitor_site_data.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_comprehensive.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_config.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_congestion.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_context_propagation.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_conventions_cmd.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_coverage_gaps_cmd.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_coverage_ingestion.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_critique.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_cut.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_dark_matter.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_dark_matter_helpers.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_dashboard.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_dataflow_dead.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_dead_aging.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_defer_loading.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_demo_gif_asset.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_describe.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_detail_flag_hints.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_detector_precision.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_deterministic_output.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_dev_profile.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_difficulty_scoring.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_doc_consistency.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_doc_staleness.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_docker_assets.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_docs_coverage.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_docs_site_quality.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_doctor.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_drift.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_drift_by_team.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_duplicates.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_effects.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_effects_propagation.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_endpoints.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_entry_points_cmd.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_eval_retrieve.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_except_pass_narrow.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_exclude_patterns.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_exit_codes.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_extractor_grammar_drift.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_fallback_contracts.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_file_roles.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_fingerprint.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_fixes.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_flag_dead.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_fleet.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_fn_coupling.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_forecast.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_formatters.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_foxpro.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_framework_detection.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_gate_presets.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_git_utils.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_guard.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_health_gate.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_hooks.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_hotspots.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_hover.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_index.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_index_bundle.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_init_cmd.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_install_check.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_intent.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_invariants.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_json_contracts.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_json_error_envelope.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_kotlin_swift_extractors.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_language_corpus.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_languages.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_library_api.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_math.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_math_tips.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_mcp_extras.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_mcp_server.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_mcp_setup.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_mermaid.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_metrics_cmd.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_migration_safety.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_minimap.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_missing_index.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_mutate.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_n1.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_next_steps.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_onboard.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_oracle.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_orchestrate.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_orphan_routes.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_oss_bench_harness.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_over_fetch.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_pagerank_truncation.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_partition.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_path_coverage.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_patterns_cmd.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_performance.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_personalized_pagerank.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_plan.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_plugin_discovery.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_pr_comment_script.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_pr_diff.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_pr_risk_author.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_progress.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_progressive_disclosure.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_properties.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_pytest_fixtures.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_python_extractor_v2.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_python_idioms_e2e.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_python_pivot.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_readme_surface_consistency.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_realworld_feedback.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_refactoring_intelligence.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_registry_dispatch.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_relate.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_report.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_reset_clean.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_resolve.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_retrieve.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_retrieve_cross_repo.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_retrieve_seeds.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_risk.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_ruby.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_rule_profiles.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_rules.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_rules_ast_match.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_rules_community_pack.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_rules_dataflow.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_rules_symbol_requirements.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_runtime.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_runtime_score.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_salesforce.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_sarif_flag.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_sbom.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_scala.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_schema_versioning.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_search_explain.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_secrets.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_secrets_v2.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_semantic_diff.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_semantic_onnx.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_semantic_search.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_simulate.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_simulate_departure.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_sketch.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_smells.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_smoke.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_sna_metrics.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_spectral.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_split_cmd.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_sql.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_suggest_reviewers.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_supply_chain.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_surface_counts.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_syntax_check.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_taint.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_taint_analysis.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_taint_classifier.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_taint_intraprocedural.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_test_conventions.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_test_gaps.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_test_scaffold.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_testmap.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_top_flag_consistency.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_tour_cmd.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_trends.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_trends_cohort.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_triage.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_uses_cmd.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_v12_2.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_v6_features.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_v71_features.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_v7_features.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_v82_features.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_verify.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_verify_imports.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_vibe_check.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_visualize.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_vuln.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_vulns_cmd.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_watch.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_why.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_workspace.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_ws_resolve_fixes.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_xlang.py +0 -0
- {roam_code-12.13 → roam_code-12.14}/tests/test_yaml_hcl.py +0 -0
|
@@ -474,6 +474,36 @@ class LazyGroup(click.Group):
|
|
|
474
474
|
mod = importlib.import_module(module_path)
|
|
475
475
|
return getattr(mod, attr_name)
|
|
476
476
|
|
|
477
|
+
def resolve_command(self, ctx, args):
|
|
478
|
+
"""Resolve a subcommand, with a did-you-mean hint on typos.
|
|
479
|
+
|
|
480
|
+
v12.14 — Click's default ``"No such command: 'contxt'"`` ends
|
|
481
|
+
the conversation; we can do better. When the requested name
|
|
482
|
+
isn't in ``_COMMANDS`` we look for the closest existing names
|
|
483
|
+
by edit distance and surface them in the UsageError so the
|
|
484
|
+
agent can retry with the right command in one turn.
|
|
485
|
+
"""
|
|
486
|
+
try:
|
|
487
|
+
return super().resolve_command(ctx, args)
|
|
488
|
+
except click.UsageError as exc:
|
|
489
|
+
msg = str(exc)
|
|
490
|
+
if "No such command" not in msg:
|
|
491
|
+
raise
|
|
492
|
+
# Click's UsageError exposes the bad token as its first arg
|
|
493
|
+
# in some versions; fall back to parsing the message.
|
|
494
|
+
bad = args[0] if args else ""
|
|
495
|
+
bad = bad.strip("'\"")
|
|
496
|
+
if not bad:
|
|
497
|
+
raise
|
|
498
|
+
import difflib
|
|
499
|
+
|
|
500
|
+
_ensure_plugin_commands_loaded()
|
|
501
|
+
close = difflib.get_close_matches(bad, list(_COMMANDS.keys()), n=3, cutoff=0.6)
|
|
502
|
+
if close:
|
|
503
|
+
suggestions = ", ".join(f"`roam {c}`" for c in close)
|
|
504
|
+
raise click.UsageError(f"No such command: '{bad}'. Did you mean {suggestions}?") from exc
|
|
505
|
+
raise
|
|
506
|
+
|
|
477
507
|
def invoke(self, ctx):
|
|
478
508
|
"""Override invoke to map unhandled exceptions to standardized exit codes.
|
|
479
509
|
|
|
@@ -677,6 +707,28 @@ def _check_gate(gate_expr: str, data: dict) -> bool:
|
|
|
677
707
|
return True
|
|
678
708
|
|
|
679
709
|
|
|
710
|
+
def _run_help_all(ctx: click.Context, param: click.Parameter, value: bool) -> None:
|
|
711
|
+
"""Eager callback for --help-all: print every command + short help.
|
|
712
|
+
|
|
713
|
+
The default ``roam --help`` shows priority categories + a flat
|
|
714
|
+
"More Commands" name list (66 names, no descriptions). Agents
|
|
715
|
+
mapping the territory often want every command's one-liner;
|
|
716
|
+
--help-all renders that without categorisation, sub-second
|
|
717
|
+
because the same AST short-help extraction --help uses.
|
|
718
|
+
"""
|
|
719
|
+
if not value or ctx.resilient_parsing:
|
|
720
|
+
return
|
|
721
|
+
_ensure_plugin_commands_loaded()
|
|
722
|
+
click.echo("Usage: roam [OPTIONS] COMMAND [ARGS]...\n")
|
|
723
|
+
click.echo(f"All {len(_COMMANDS)} invokable command names:\n")
|
|
724
|
+
for cmd_name in sorted(_COMMANDS):
|
|
725
|
+
help_text = _short_help_via_ast(cmd_name) or ""
|
|
726
|
+
click.echo(f" {cmd_name:32s} {help_text}")
|
|
727
|
+
click.echo()
|
|
728
|
+
click.echo("Run `roam <command> --help` for details on any command.")
|
|
729
|
+
ctx.exit(0)
|
|
730
|
+
|
|
731
|
+
|
|
680
732
|
@click.group(cls=LazyGroup)
|
|
681
733
|
@click.version_option(package_name="roam-code")
|
|
682
734
|
@click.option(
|
|
@@ -687,6 +739,15 @@ def _check_gate(gate_expr: str, data: dict) -> bool:
|
|
|
687
739
|
callback=_run_check,
|
|
688
740
|
help="Quick setup verification: checks Python, tree-sitter, git, SQLite",
|
|
689
741
|
)
|
|
742
|
+
@click.option(
|
|
743
|
+
"--help-all",
|
|
744
|
+
"help_all",
|
|
745
|
+
is_flag=True,
|
|
746
|
+
is_eager=True,
|
|
747
|
+
expose_value=False,
|
|
748
|
+
callback=_run_help_all,
|
|
749
|
+
help="Print every command (no categories, no truncation) and exit.",
|
|
750
|
+
)
|
|
690
751
|
@click.option("--json", "json_mode", is_flag=True, help="Output in JSON format")
|
|
691
752
|
@click.option("--compact", is_flag=True, help="Compact output: TSV tables, minimal JSON envelope")
|
|
692
753
|
@click.option("--agent", is_flag=True, help="Agent mode: compact JSON with 500-token default budget")
|
|
@@ -1488,6 +1488,8 @@ def dead(
|
|
|
1488
1488
|
)
|
|
1489
1489
|
)
|
|
1490
1490
|
else:
|
|
1491
|
+
click.echo("VERDICT: no dead exports — every exported symbol has at least one consumer")
|
|
1492
|
+
click.echo()
|
|
1491
1493
|
click.echo("=== Unreferenced Exports (0) ===")
|
|
1492
1494
|
click.echo(" (none -- all exports are referenced)")
|
|
1493
1495
|
if unused_assignments:
|
|
@@ -24,6 +24,77 @@ from roam.retrieve.pipeline import run_retrieve
|
|
|
24
24
|
from roam.retrieve.semantic import semantic_coverage
|
|
25
25
|
|
|
26
26
|
|
|
27
|
+
def _suggest_refinements(task: str, candidates: list[dict]) -> list[str]:
|
|
28
|
+
"""Generate 2-3 refined queries when confidence is low.
|
|
29
|
+
|
|
30
|
+
Heuristics:
|
|
31
|
+
1. **Drop common NL words** — "trace the login flow" → "login flow".
|
|
32
|
+
Removes filler that diluted the lexical signal.
|
|
33
|
+
2. **Suggest --seed-files anchor** — using the file of the
|
|
34
|
+
highest-scoring candidate as a seed often promotes the right
|
|
35
|
+
neighbours.
|
|
36
|
+
3. **Pivot to roam search** — when the query contains a clear
|
|
37
|
+
identifier (PascalCase / snake_case), exact-match search may
|
|
38
|
+
beat structural retrieval.
|
|
39
|
+
|
|
40
|
+
Returns a list of human-readable suggested commands.
|
|
41
|
+
"""
|
|
42
|
+
if not task:
|
|
43
|
+
return []
|
|
44
|
+
suggestions: list[str] = []
|
|
45
|
+
|
|
46
|
+
# 1. Drop NL filler — keep the noun-shaped tokens only.
|
|
47
|
+
filler = {
|
|
48
|
+
"the",
|
|
49
|
+
"a",
|
|
50
|
+
"an",
|
|
51
|
+
"is",
|
|
52
|
+
"are",
|
|
53
|
+
"of",
|
|
54
|
+
"to",
|
|
55
|
+
"in",
|
|
56
|
+
"on",
|
|
57
|
+
"for",
|
|
58
|
+
"where",
|
|
59
|
+
"what",
|
|
60
|
+
"how",
|
|
61
|
+
"find",
|
|
62
|
+
"show",
|
|
63
|
+
"tell",
|
|
64
|
+
"me",
|
|
65
|
+
"this",
|
|
66
|
+
"that",
|
|
67
|
+
"with",
|
|
68
|
+
"by",
|
|
69
|
+
"from",
|
|
70
|
+
"and",
|
|
71
|
+
"or",
|
|
72
|
+
"as",
|
|
73
|
+
"at",
|
|
74
|
+
}
|
|
75
|
+
words = task.split()
|
|
76
|
+
kept = [w for w in words if w.lower().strip(".,!?") not in filler]
|
|
77
|
+
if len(kept) < len(words) and len(kept) >= 1:
|
|
78
|
+
tighter = " ".join(kept)
|
|
79
|
+
if tighter.strip() and tighter != task:
|
|
80
|
+
suggestions.append(f'roam retrieve "{tighter}"')
|
|
81
|
+
|
|
82
|
+
# 2. Anchor on the top candidate's file.
|
|
83
|
+
if candidates:
|
|
84
|
+
top_file = (candidates[0].get("file_path") or candidates[0].get("file") or "").replace("\\", "/")
|
|
85
|
+
if top_file:
|
|
86
|
+
suggestions.append(f'roam retrieve "{task}" --seed-files {top_file}')
|
|
87
|
+
|
|
88
|
+
# 3. If the query contains an identifier-shape, suggest exact search.
|
|
89
|
+
import re
|
|
90
|
+
|
|
91
|
+
ident_match = re.search(r"\b([A-Z][A-Za-z0-9]{2,}|[a-z][a-z0-9]+(?:_[a-z0-9]+)+)\b", task)
|
|
92
|
+
if ident_match:
|
|
93
|
+
suggestions.append(f"roam search {ident_match.group(1)}")
|
|
94
|
+
|
|
95
|
+
return suggestions[:3]
|
|
96
|
+
|
|
97
|
+
|
|
27
98
|
def _retrieve_confidence_score(candidates: list[dict], task: str = "") -> tuple[float, str]:
|
|
28
99
|
"""Return a calibrated confidence number in ``[0.0, 1.0]`` plus a
|
|
29
100
|
string label (``"low"`` / ``"ok"``) for backwards compat.
|
|
@@ -313,6 +384,9 @@ def retrieve(ctx, task, budget, k, rerank, seed_files, dry_run):
|
|
|
313
384
|
"verdict": verdict,
|
|
314
385
|
"low_confidence": confidence == "low",
|
|
315
386
|
"confidence": confidence_score,
|
|
387
|
+
"refinements": (
|
|
388
|
+
_suggest_refinements(task_str, candidates) if confidence_score < 0.40 and candidates else []
|
|
389
|
+
),
|
|
316
390
|
"candidates": len(candidates),
|
|
317
391
|
"total_candidates": result["total_candidates"],
|
|
318
392
|
"budget": result["budget"],
|
|
@@ -375,3 +449,16 @@ def retrieve(ctx, task, budget, k, rerank, seed_files, dry_run):
|
|
|
375
449
|
"SEMANTIC: 0 dense vectors available; zeta is currently inert. "
|
|
376
450
|
"Configure semantic backend and rerun `roam index` to activate it."
|
|
377
451
|
)
|
|
452
|
+
|
|
453
|
+
# 12.14 — auto-refine on low confidence. When the score crosses
|
|
454
|
+
# below 0.40 we know the user is unlikely to find the answer in
|
|
455
|
+
# the returned spans. Surface 2-3 refined queries the agent can
|
|
456
|
+
# try next: dropping generic NL words, adding a seed-files
|
|
457
|
+
# anchor, or pivoting to ``roam search`` for exact name match.
|
|
458
|
+
if confidence_score < 0.40 and candidates:
|
|
459
|
+
refined = _suggest_refinements(task_str, candidates)
|
|
460
|
+
if refined:
|
|
461
|
+
click.echo()
|
|
462
|
+
click.echo("REFINE: low confidence — try a tighter query:")
|
|
463
|
+
for r in refined:
|
|
464
|
+
click.echo(f" {r}")
|
|
@@ -1364,7 +1364,7 @@ MAP_METADATA: dict[str, dict[str, object]] = {
|
|
|
1364
1364
|
"peer": True,
|
|
1365
1365
|
"graph": "PageRank + Tarjan + Louvain + layers",
|
|
1366
1366
|
"note": "Graph algorithms (PageRank, SCC, Louvain, Fiedler) on tree-sitter ASTs fused with git history in SQLite. 122 MCP tools, 155 CLI commands. 19 Python idiom detectors (v12.7+).",
|
|
1367
|
-
"version_evaluated": "12.
|
|
1367
|
+
"version_evaluated": "12.14",
|
|
1368
1368
|
"repo_url": "https://github.com/Cranot/roam-code",
|
|
1369
1369
|
},
|
|
1370
1370
|
"CKB/CodeMCP": {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://schemas.modelcontextprotocol.io/server-card/v1",
|
|
3
3
|
"name": "roam-code",
|
|
4
4
|
"display_name": "roam — instant codebase intelligence",
|
|
5
|
-
"version": "12.
|
|
5
|
+
"version": "12.14",
|
|
6
6
|
"description": "Architectural sight for AI agents before they edit. Pre-indexes symbols, call graphs, dependencies, architecture layers, and git history into a local SQLite DB. 122 MCP tools, 10 resources, 5 prompts, 27 languages. 100% local, zero API keys.",
|
|
7
7
|
"vendor": {
|
|
8
8
|
"name": "Cranot",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|