roam-code 12.4.0__tar.gz → 12.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {roam_code-12.4.0/src/roam_code.egg-info → roam_code-12.6.0}/PKG-INFO +14 -10
- {roam_code-12.4.0 → roam_code-12.6.0}/README.md +13 -9
- {roam_code-12.4.0 → roam_code-12.6.0}/pyproject.toml +1 -1
- roam_code-12.6.0/src/roam/catalog/python_idioms.py +970 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/cli.py +4 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_agent_export.py +2 -1
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_context.py +45 -2
- roam_code-12.6.0/src/roam/commands/cmd_py_modern.py +180 -0
- roam_code-12.6.0/src/roam/commands/cmd_py_types.py +220 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_search.py +39 -11
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/python_lang.py +1 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/mcp_server.py +55 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/retrieve/rerank.py +60 -0
- {roam_code-12.4.0 → roam_code-12.6.0/src/roam_code.egg-info}/PKG-INFO +14 -10
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam_code.egg-info/SOURCES.txt +3 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_agent_export.py +2 -1
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_fingerprint.py +2 -1
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_mcp_server.py +7 -4
- roam_code-12.6.0/tests/test_python_idioms_e2e.py +233 -0
- roam_code-12.6.0/tests/test_python_pivot.py +489 -0
- roam_code-12.4.0/src/roam/catalog/python_idioms.py +0 -273
- roam_code-12.4.0/tests/test_python_pivot.py +0 -199
- {roam_code-12.4.0 → roam_code-12.6.0}/LICENSE +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/setup.cfg +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/__main__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/analysis/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/analysis/effects.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/analysis/taint.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/api.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/ask/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/ask/classifier.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/ask/recipes.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/ask/runner.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/attest/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/attest/cga.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/bridges/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/bridges/base.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/bridges/bridge_config.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/bridges/bridge_django.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/bridges/bridge_protobuf.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/bridges/bridge_rest_api.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/bridges/bridge_salesforce.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/bridges/bridge_template.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/bridges/registry.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/catalog/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/catalog/detectors.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/catalog/fixes.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/catalog/smells.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/catalog/tasks.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/changed_files.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_adrs.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_adversarial.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_affected.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_affected_tests.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_agent_context.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_agent_plan.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_ai_ratio.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_ai_readiness.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_alerts.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_annotate.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_api_changes.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_api_drift.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_ask.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_attest.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_auth_gaps.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_bisect.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_breaking.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_budget.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_bus_factor.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_capsule.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_cga.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_check_rules.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_ci_setup.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_clean.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_clones.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_closure.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_clusters.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_codeowners.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_complexity.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_config.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_congestion.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_conventions.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_coupling.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_coverage_gaps.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_critique.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_cut.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_dark_matter.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_dashboard.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_dead.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_debt.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_deps.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_describe.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_dev_profile.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_diagnose.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_diff.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_doc_staleness.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_docs_coverage.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_doctor.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_drift.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_duplicates.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_effects.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_endpoints.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_entry_points.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_eval_retrieve.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_fan.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_file.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_fingerprint.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_fitness.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_flag_dead.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_fleet.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_fn_coupling.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_forecast.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_grep.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_guard.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_health.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_hooks.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_hotspots.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_impact.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_index.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_index_bundle.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_ingest_trace.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_init.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_intent.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_invariants.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_layers.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_map.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_math.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_mcp_setup.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_metrics.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_migration_safety.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_minimap.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_missing_index.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_module.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_mutate.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_n1.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_oracle.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_orchestrate.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_orphan_routes.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_over_fetch.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_owner.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_partition.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_path_coverage.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_patterns.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_plan.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_plan_refactor.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_pr_diff.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_pr_risk.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_preflight.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_relate.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_report.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_reset.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_retrieve.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_risk.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_rules.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_safe_delete.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_safe_zones.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_sbom.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_schema.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_search_semantic.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_secrets.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_semantic_diff.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_simulate.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_simulate_departure.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_sketch.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_smells.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_spectral.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_split.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_suggest_refactoring.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_suggest_reviewers.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_supply_chain.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_symbol.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_syntax_check.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_taint.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_test_gaps.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_test_scaffold.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_testmap.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_tour.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_trace.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_trends.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_triage.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_understand.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_uses.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_verify.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_verify_imports.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_vibe_check.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_visualize.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_vuln_map.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_vuln_reach.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_vulns.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_watch.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_weather.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_why.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_ws.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/cmd_xlang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/codeowners_helpers.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/context_helpers.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/gate_presets.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/graph_helpers.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/metrics_history.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/next_steps.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/resolve.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/commands/suppression.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/competitor_site_data.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/config.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/coverage_reports.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/critique/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/critique/aggregator.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/critique/checks.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/db/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/db/connection.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/db/queries.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/db/schema.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/eval/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/eval/harness.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/exit_codes.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/fleet/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/fleet/adapters.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/fleet/manifest.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/git_utils.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/anomaly.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/builder.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/clone_detect.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/clusters.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/cycles.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/dark_matter.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/diff.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/fingerprint.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/layers.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/pagerank.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/partition.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/pathfinding.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/propagation.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/simulate.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/spectral.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/graph/stats.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/index/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/index/complexity.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/index/discovery.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/index/django_post.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/index/file_roles.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/index/git_stats.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/index/gitignore.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/index/incremental.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/index/indexer.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/index/parser.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/index/relations.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/index/symbols.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/index/test_conventions.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/apex_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/aura_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/base.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/c_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/csharp_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/extractor_schema.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/foxpro_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/generic_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/go_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/hcl_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/java_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/javascript_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/kotlin_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/php_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/query_engine.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/registry.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/ruby_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/rust_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/scala_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/sfxml_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/sql_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/swift_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/typescript_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/visualforce_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/languages/yaml_lang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/mcp_extras/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/mcp_extras/completions.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/mcp_extras/progress.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/mcp_extras/sampling.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/mcp_extras/session.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/mcp_extras/watcher.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/output/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/output/file_role_hints.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/output/formatter.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/output/mermaid.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/output/sarif.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/output/schema_registry.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/plugins.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/refactor/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/refactor/codegen.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/refactor/transforms.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/retrieve/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/retrieve/learned_ranker.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/retrieve/pipeline.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/retrieve/seeds.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/retrieve/semantic.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/rules/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/rules/ast_match.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/rules/builtin.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/rules/dataflow.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/rules/engine.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/runtime/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/runtime/daemon.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/runtime/graph_backend.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/runtime/hotspots.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/runtime/lock_modes.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/runtime/lockmgr.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/runtime/trace_ingest.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/search/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/search/framework_packs.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/search/index_embeddings.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/search/onnx_embeddings.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/search/tfidf.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/security/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/security/aibom_extension.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/security/taint_classifier.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/security/taint_engine.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/security/vuln_reach.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/security/vuln_store.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/surface_counts.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/templates/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/templates/ci/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/workspace/__init__.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/workspace/aggregator.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/workspace/api_scanner.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/workspace/config.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam/workspace/db.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam_code.egg-info/dependency_links.txt +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam_code.egg-info/entry_points.txt +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam_code.egg-info/requires.txt +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/src/roam_code.egg-info/top_level.txt +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_adrs.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_adversarial.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_affected.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_agent_mode.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_agent_plan_context.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_ai_ratio.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_ai_readiness.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_alerts_cmd.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_annotations.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_anomaly.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_api_changes.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_api_drift.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_ask.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_attest.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_auth_gaps.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_backend_fixes_round2.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_backend_fixes_round3.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_basic.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_batch_mcp.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_bisect.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_bridge_django.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_bridges.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_bridges_extended.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_budget.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_budget_flag.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_budget_phase2.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_bus_factor.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_capsule.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_cga.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_check_rules.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_ci_gate_eval.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_ci_sarif_guard.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_ci_setup.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_clones.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_closure.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_codeowners.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_commands_architecture.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_commands_exploration.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_commands_health.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_commands_refactoring.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_commands_workflow.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_competitor_site_data.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_comprehensive.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_config.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_congestion.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_context_propagation.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_conventions_cmd.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_coverage_gaps_cmd.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_coverage_ingestion.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_critique.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_cut.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_dark_matter.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_dark_matter_helpers.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_dashboard.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_dataflow_dead.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_dead_aging.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_defer_loading.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_demo_gif_asset.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_describe.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_detail_flag_hints.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_deterministic_output.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_dev_profile.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_difficulty_scoring.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_doc_staleness.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_docker_assets.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_docs_coverage.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_docs_site_quality.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_doctor.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_drift.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_duplicates.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_effects.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_effects_propagation.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_endpoints.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_entry_points_cmd.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_eval_retrieve.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_exclude_patterns.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_exit_codes.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_extractor_grammar_drift.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_fallback_contracts.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_file_roles.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_fixes.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_flag_dead.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_fleet.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_fn_coupling.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_forecast.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_formatters.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_foxpro.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_framework_detection.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_gate_presets.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_git_utils.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_guard.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_health_gate.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_hooks.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_hotspots.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_index.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_index_bundle.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_init_cmd.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_install_check.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_intent.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_invariants.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_json_contracts.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_json_error_envelope.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_kotlin_swift_extractors.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_language_corpus.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_languages.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_library_api.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_math.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_math_tips.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_mcp_extras.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_mcp_setup.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_mermaid.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_metrics_cmd.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_migration_safety.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_minimap.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_missing_index.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_mutate.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_n1.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_next_steps.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_onboard.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_oracle.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_orchestrate.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_orphan_routes.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_oss_bench_harness.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_over_fetch.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_pagerank_truncation.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_partition.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_path_coverage.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_patterns_cmd.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_performance.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_personalized_pagerank.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_plan.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_plugin_discovery.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_pr_comment_script.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_pr_diff.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_pr_risk_author.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_progress.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_progressive_disclosure.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_properties.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_python_extractor_v2.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_readme_surface_consistency.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_refactoring_intelligence.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_relate.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_report.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_reset_clean.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_resolve.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_retrieve.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_retrieve_cross_repo.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_retrieve_seeds.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_risk.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_ruby.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_rule_profiles.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_rules.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_rules_ast_match.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_rules_community_pack.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_rules_dataflow.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_rules_symbol_requirements.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_runtime.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_runtime_score.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_salesforce.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_sarif_flag.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_sbom.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_scala.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_schema_versioning.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_search_explain.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_secrets.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_secrets_v2.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_semantic_diff.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_semantic_onnx.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_semantic_search.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_simulate.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_simulate_departure.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_sketch.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_smells.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_smoke.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_sna_metrics.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_spectral.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_split_cmd.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_sql.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_suggest_reviewers.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_supply_chain.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_surface_counts.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_syntax_check.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_taint.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_taint_analysis.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_taint_classifier.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_test_conventions.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_test_gaps.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_test_scaffold.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_testmap.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_top_flag_consistency.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_tour_cmd.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_trends.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_trends_cohort.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_triage.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_uses_cmd.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_v12_2.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_v6_features.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_v71_features.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_v7_features.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_v82_features.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_verify.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_verify_imports.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_vibe_check.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_visualize.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_vuln.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_vulns_cmd.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_watch.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_why.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_workspace.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_ws_resolve_fixes.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_xlang.py +0 -0
- {roam_code-12.4.0 → roam_code-12.6.0}/tests/test_yaml_hcl.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: roam-code
|
|
3
|
-
Version: 12.
|
|
3
|
+
Version: 12.6.0
|
|
4
4
|
Summary: Instant codebase comprehension for AI coding agents
|
|
5
5
|
Author: CosmoHac
|
|
6
6
|
License-Expression: MIT
|
|
@@ -62,7 +62,7 @@ Dynamic: license-file
|
|
|
62
62
|
|
|
63
63
|
**The architectural intelligence layer for AI coding agents. Structural graph, architecture governance, multi-agent orchestration, vulnerability mapping, runtime analysis -- one CLI, zero API keys.**
|
|
64
64
|
|
|
65
|
-
*
|
|
65
|
+
*152 commands · 118 MCP tools · 27 languages · 100% local*
|
|
66
66
|
|
|
67
67
|
[](https://pypi.org/project/roam-code/)
|
|
68
68
|
[](https://github.com/Cranot/roam-code/stargazers)
|
|
@@ -139,7 +139,7 @@ $ roam diff # blast radius of uncommitted changes
|
|
|
139
139
|
- **`personalized_pagerank()`** in `graph/pagerank.py`: NetworkX `personalization=` wrapper with empty-seed fallback to global PR; biases ranking toward query-relevant nodes for the retrieve reranker.
|
|
140
140
|
- **`.roam/config.toml`** (new): zero-dep TOML loader (stdlib `tomllib` → `tomli` → in-tree subset parser). Tunable retrieve weights (`alpha`/`beta`/`gamma`/`delta`/`epsilon`), `tokens_per_line`, `lexical_baseline`, `first_stage_token_cap`, `default_budget`, `default_k`, `default_rerank`.
|
|
141
141
|
- **DX corrections from dogfood pass**: `roam --detail <cmd>` is the canonical group-level flag; misleading "use --detail" hints in 7 commands rewritten to point users at `roam --detail <cmd>`. `--top N` aliased on `complexity`/`algo`/`rules` (`--top 0` means unlimited on `rules`). `roam fingerprint` no longer refuses graphs ≥5,000 symbols (new soft-warn threshold 20k, hard cap 100k).
|
|
142
|
-
- **
|
|
142
|
+
- **152 CLI commands, 118 MCP tools** (`fleet`, `ask`, `taint`, `cga`, `eval-retrieve` remain CLI-only; v12 exposes `roam_retrieve`, `roam_critique`, `roam_fleet_plan`, plus 5 v12.1 boolean oracles (`roam_oracle_*`) and `roam_taint_classify` as MCP tools). 35-tool `core` preset is the default for token-budget-conscious clients.
|
|
143
143
|
|
|
144
144
|
## What's New in v11
|
|
145
145
|
|
|
@@ -155,7 +155,7 @@ $ roam diff # blast radius of uncommitted changes
|
|
|
155
155
|
- `server.json` for official MCP Registry submission.
|
|
156
156
|
|
|
157
157
|
### v11.1.1 -- Command Quality Audit
|
|
158
|
-
- **Full command audit**: all
|
|
158
|
+
- **Full command audit**: all 152 commands reviewed for usefulness, duplicates, and test coverage. ~20 bugs fixed, 21 new test files (700+ tests), every command docstring updated with cross-references to related commands.
|
|
159
159
|
- **Kotlin promoted to Tier 1** via new YAML-based declarative extractor architecture. Classes, interfaces, enums, objects, functions, methods, properties, and inheritance fully extracted.
|
|
160
160
|
- **7 new commands**: `roam congestion`, `roam adrs`, `roam flag-dead`, `roam test-scaffold`, `roam sbom`, `roam triage`, `roam ci-setup`.
|
|
161
161
|
- **CI templates**: `roam ci-setup` generates pipelines for GitHub Actions, GitLab CI, Azure Pipelines, Jenkins, and Bitbucket.
|
|
@@ -310,7 +310,7 @@ roam health
|
|
|
310
310
|
|
|
311
311
|
## Commands
|
|
312
312
|
|
|
313
|
-
**Lead with the 5 verbs.** The [5 core commands](#core-commands) cover ~80% of agent workflows: `understand`, `context`, `retrieve`, `preflight`, `critique`. The remaining
|
|
313
|
+
**Lead with the 5 verbs.** The [5 core commands](#core-commands) cover ~80% of agent workflows: `understand`, `context`, `retrieve`, `preflight`, `critique`. The remaining 147 commands are detail surface for specialised workflows (taint, fleet, cga, oracle, eval, …) — they're called by agents on demand, not memorised. This is intentional design; under the hood the canonical surface is **152 commands organised into 7 categories**, but you don't need to know that to start.
|
|
314
314
|
|
|
315
315
|
<details>
|
|
316
316
|
<summary><strong>Full command reference</strong></summary>
|
|
@@ -399,7 +399,9 @@ roam health
|
|
|
399
399
|
| `roam ai-readiness` | 0-100 score for how well this codebase supports AI coding agents |
|
|
400
400
|
| `roam ai-ratio [--since N]` | Statistical estimate of AI-generated code ratio using commit-behavior signals |
|
|
401
401
|
| `roam trends [--record] [--days N] [--metric M]` | Historical metrics snapshots with sparklines and trend deltas |
|
|
402
|
-
| `roam complexity [--bumpy-road]` | Per-function cognitive complexity (SonarSource-compatible, triangular nesting penalty) + Halstead metrics (volume, difficulty, effort, bugs) + cyclomatic density |
|
|
402
|
+
| `roam complexity [--bumpy-road] [--include-tooling]` | Per-function cognitive complexity (SonarSource-compatible, triangular nesting penalty) + Halstead metrics (volume, difficulty, effort, bugs) + cyclomatic density |
|
|
403
|
+
| `roam py-types [--detail] [--include-tests] [--ci --min-coverage N]` | Python type-annotation health: % of public functions with full annotations, ``Any`` usage, legacy ``typing.Optional/Dict/List`` (PEP 585/604 modernisation candidates), per-file worst offenders. CI-gateable via ``--ci --min-coverage N`` (exit 5 below threshold). Default-excludes test files |
|
|
404
|
+
| `roam py-modern [--detail]` | Modern-Python adoption signal: counts walrus operator (PEP 572), match statements (PEP 634), PEP 604 ``X \| None``, PEP 585 ``dict[…]``, PEP 695 type aliases, f-strings vs ``.format()``. Reports type-modernisation % and f-string adoption % to gauge migration progress |
|
|
403
405
|
| `roam algo [--task T] [--confidence C] [--profile P]` | Algorithm anti-pattern detection: 23-pattern catalog detects suboptimal algorithms (O(n^2) loops, N+1 queries, quadratic string building, branching recursion, loop-invariant calls) and suggests better approaches with Big-O improvements. Confidence calibration via caller-count + runtime traces, evidence paths, impact scoring, framework-aware N+1 packs, and language-aware fix templates. Alias: `roam math` |
|
|
404
406
|
| `roam n1 [--confidence C] [--verbose]` | Implicit N+1 I/O detection: finds ORM model computed properties (`$appends`/accessors) that trigger lazy-loaded DB queries in collection contexts. Cross-references with eager loading config. Supports Laravel, Django, Rails, SQLAlchemy, JPA |
|
|
405
407
|
| `roam over-fetch [--threshold N] [--confidence C]` | Detect models serializing too many fields: large `$fillable` without `$hidden`/`$visible`, direct controller returns bypassing API Resources, poor exposed-to-hidden ratio |
|
|
@@ -948,7 +950,7 @@ ROAM_MCP_LITE=0 roam mcp
|
|
|
948
950
|
Core preset tools: `roam_affected_tests`, `roam_batch_get`, `roam_batch_search`, `roam_complete`, `roam_complexity_report`, `roam_context`, `roam_dead_code`, `roam_deps`, `roam_diagnose`, `roam_diagnose_issue`, `roam_diff`, `roam_expand_toolset`, `roam_explore`, `roam_file_info`, `roam_health`, `roam_impact`, `roam_pr_risk`, `roam_preflight`, `roam_prepare_change`, `roam_review_change`, `roam_search_symbol`, `roam_syntax_check`, `roam_trace`, `roam_understand`, `roam_uses`.
|
|
949
951
|
|
|
950
952
|
<details>
|
|
951
|
-
<summary><strong>MCP tool list (all
|
|
953
|
+
<summary><strong>MCP tool list (all 118)</strong></summary>
|
|
952
954
|
|
|
953
955
|
| Tool | Description |
|
|
954
956
|
|------|-------------|
|
|
@@ -980,6 +982,8 @@ Core preset tools: `roam_affected_tests`, `roam_batch_get`, `roam_batch_search`,
|
|
|
980
982
|
| `roam_affected_tests` | Find tests affected by a change |
|
|
981
983
|
| `roam_dead_code` | List unreferenced exports |
|
|
982
984
|
| `roam_complexity_report` | Per-symbol cognitive complexity |
|
|
985
|
+
| `roam_py_types` | Python type-annotation health (% public typed, Any, legacy typing) |
|
|
986
|
+
| `roam_py_modern` | Modern-Python adoption (walrus, match, PEP 604/585/695, f-strings) |
|
|
983
987
|
| `roam_tour` | Auto-generated onboarding guide |
|
|
984
988
|
| `roam_diagnose` | Root cause analysis for debugging |
|
|
985
989
|
| `roam_visualize` | Generate Mermaid or DOT architecture diagrams |
|
|
@@ -1582,8 +1586,8 @@ roam-code/
|
|
|
1582
1586
|
├── action.yml # Reusable GitHub Action
|
|
1583
1587
|
├── src/roam/
|
|
1584
1588
|
│ ├── __init__.py # Version (from pyproject.toml)
|
|
1585
|
-
│ ├── cli.py # Click CLI (
|
|
1586
|
-
│ ├── mcp_server.py # MCP server (
|
|
1589
|
+
│ ├── cli.py # Click CLI (152 commands)
|
|
1590
|
+
│ ├── mcp_server.py # MCP server (118 tools, 10 resources, 5 prompts)
|
|
1587
1591
|
│ ├── db/
|
|
1588
1592
|
│ │ ├── connection.py # SQLite (WAL, pragmas, batched IN)
|
|
1589
1593
|
│ │ ├── schema.py # Tables, indexes, migrations
|
|
@@ -1677,7 +1681,7 @@ Optional: Local semantic ONNX stack (`numpy`, `onnxruntime`, `tokenizers`) via `
|
|
|
1677
1681
|
### Shipped
|
|
1678
1682
|
|
|
1679
1683
|
- [x] MCP v2 agent surface: in-process execution, compound operations, presets, schemas, annotations, and compatibility profiles.
|
|
1680
|
-
- [x] Full command and MCP inventory parity in docs:
|
|
1684
|
+
- [x] Full command and MCP inventory parity in docs: 152 CLI commands and 118 MCP tools.
|
|
1681
1685
|
- [x] CI hardening: composite action, changed-only mode, trend-aware gates, sticky PR updater, and SARIF guardrails.
|
|
1682
1686
|
- [x] Performance foundation: FTS5/BM25 search, O(changed) incremental indexing, DB/index optimizations.
|
|
1683
1687
|
- [x] Agent governance suite: `vibe-check`, `ai-readiness`, `verify`, `ai-ratio`, `duplicates`, advanced `algo` scoring/SARIF.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
**The architectural intelligence layer for AI coding agents. Structural graph, architecture governance, multi-agent orchestration, vulnerability mapping, runtime analysis -- one CLI, zero API keys.**
|
|
6
6
|
|
|
7
|
-
*
|
|
7
|
+
*152 commands · 118 MCP tools · 27 languages · 100% local*
|
|
8
8
|
|
|
9
9
|
[](https://pypi.org/project/roam-code/)
|
|
10
10
|
[](https://github.com/Cranot/roam-code/stargazers)
|
|
@@ -81,7 +81,7 @@ $ roam diff # blast radius of uncommitted changes
|
|
|
81
81
|
- **`personalized_pagerank()`** in `graph/pagerank.py`: NetworkX `personalization=` wrapper with empty-seed fallback to global PR; biases ranking toward query-relevant nodes for the retrieve reranker.
|
|
82
82
|
- **`.roam/config.toml`** (new): zero-dep TOML loader (stdlib `tomllib` → `tomli` → in-tree subset parser). Tunable retrieve weights (`alpha`/`beta`/`gamma`/`delta`/`epsilon`), `tokens_per_line`, `lexical_baseline`, `first_stage_token_cap`, `default_budget`, `default_k`, `default_rerank`.
|
|
83
83
|
- **DX corrections from dogfood pass**: `roam --detail <cmd>` is the canonical group-level flag; misleading "use --detail" hints in 7 commands rewritten to point users at `roam --detail <cmd>`. `--top N` aliased on `complexity`/`algo`/`rules` (`--top 0` means unlimited on `rules`). `roam fingerprint` no longer refuses graphs ≥5,000 symbols (new soft-warn threshold 20k, hard cap 100k).
|
|
84
|
-
- **
|
|
84
|
+
- **152 CLI commands, 118 MCP tools** (`fleet`, `ask`, `taint`, `cga`, `eval-retrieve` remain CLI-only; v12 exposes `roam_retrieve`, `roam_critique`, `roam_fleet_plan`, plus 5 v12.1 boolean oracles (`roam_oracle_*`) and `roam_taint_classify` as MCP tools). 35-tool `core` preset is the default for token-budget-conscious clients.
|
|
85
85
|
|
|
86
86
|
## What's New in v11
|
|
87
87
|
|
|
@@ -97,7 +97,7 @@ $ roam diff # blast radius of uncommitted changes
|
|
|
97
97
|
- `server.json` for official MCP Registry submission.
|
|
98
98
|
|
|
99
99
|
### v11.1.1 -- Command Quality Audit
|
|
100
|
-
- **Full command audit**: all
|
|
100
|
+
- **Full command audit**: all 152 commands reviewed for usefulness, duplicates, and test coverage. ~20 bugs fixed, 21 new test files (700+ tests), every command docstring updated with cross-references to related commands.
|
|
101
101
|
- **Kotlin promoted to Tier 1** via new YAML-based declarative extractor architecture. Classes, interfaces, enums, objects, functions, methods, properties, and inheritance fully extracted.
|
|
102
102
|
- **7 new commands**: `roam congestion`, `roam adrs`, `roam flag-dead`, `roam test-scaffold`, `roam sbom`, `roam triage`, `roam ci-setup`.
|
|
103
103
|
- **CI templates**: `roam ci-setup` generates pipelines for GitHub Actions, GitLab CI, Azure Pipelines, Jenkins, and Bitbucket.
|
|
@@ -252,7 +252,7 @@ roam health
|
|
|
252
252
|
|
|
253
253
|
## Commands
|
|
254
254
|
|
|
255
|
-
**Lead with the 5 verbs.** The [5 core commands](#core-commands) cover ~80% of agent workflows: `understand`, `context`, `retrieve`, `preflight`, `critique`. The remaining
|
|
255
|
+
**Lead with the 5 verbs.** The [5 core commands](#core-commands) cover ~80% of agent workflows: `understand`, `context`, `retrieve`, `preflight`, `critique`. The remaining 147 commands are detail surface for specialised workflows (taint, fleet, cga, oracle, eval, …) — they're called by agents on demand, not memorised. This is intentional design; under the hood the canonical surface is **152 commands organised into 7 categories**, but you don't need to know that to start.
|
|
256
256
|
|
|
257
257
|
<details>
|
|
258
258
|
<summary><strong>Full command reference</strong></summary>
|
|
@@ -341,7 +341,9 @@ roam health
|
|
|
341
341
|
| `roam ai-readiness` | 0-100 score for how well this codebase supports AI coding agents |
|
|
342
342
|
| `roam ai-ratio [--since N]` | Statistical estimate of AI-generated code ratio using commit-behavior signals |
|
|
343
343
|
| `roam trends [--record] [--days N] [--metric M]` | Historical metrics snapshots with sparklines and trend deltas |
|
|
344
|
-
| `roam complexity [--bumpy-road]` | Per-function cognitive complexity (SonarSource-compatible, triangular nesting penalty) + Halstead metrics (volume, difficulty, effort, bugs) + cyclomatic density |
|
|
344
|
+
| `roam complexity [--bumpy-road] [--include-tooling]` | Per-function cognitive complexity (SonarSource-compatible, triangular nesting penalty) + Halstead metrics (volume, difficulty, effort, bugs) + cyclomatic density |
|
|
345
|
+
| `roam py-types [--detail] [--include-tests] [--ci --min-coverage N]` | Python type-annotation health: % of public functions with full annotations, ``Any`` usage, legacy ``typing.Optional/Dict/List`` (PEP 585/604 modernisation candidates), per-file worst offenders. CI-gateable via ``--ci --min-coverage N`` (exit 5 below threshold). Default-excludes test files |
|
|
346
|
+
| `roam py-modern [--detail]` | Modern-Python adoption signal: counts walrus operator (PEP 572), match statements (PEP 634), PEP 604 ``X \| None``, PEP 585 ``dict[…]``, PEP 695 type aliases, f-strings vs ``.format()``. Reports type-modernisation % and f-string adoption % to gauge migration progress |
|
|
345
347
|
| `roam algo [--task T] [--confidence C] [--profile P]` | Algorithm anti-pattern detection: 23-pattern catalog detects suboptimal algorithms (O(n^2) loops, N+1 queries, quadratic string building, branching recursion, loop-invariant calls) and suggests better approaches with Big-O improvements. Confidence calibration via caller-count + runtime traces, evidence paths, impact scoring, framework-aware N+1 packs, and language-aware fix templates. Alias: `roam math` |
|
|
346
348
|
| `roam n1 [--confidence C] [--verbose]` | Implicit N+1 I/O detection: finds ORM model computed properties (`$appends`/accessors) that trigger lazy-loaded DB queries in collection contexts. Cross-references with eager loading config. Supports Laravel, Django, Rails, SQLAlchemy, JPA |
|
|
347
349
|
| `roam over-fetch [--threshold N] [--confidence C]` | Detect models serializing too many fields: large `$fillable` without `$hidden`/`$visible`, direct controller returns bypassing API Resources, poor exposed-to-hidden ratio |
|
|
@@ -890,7 +892,7 @@ ROAM_MCP_LITE=0 roam mcp
|
|
|
890
892
|
Core preset tools: `roam_affected_tests`, `roam_batch_get`, `roam_batch_search`, `roam_complete`, `roam_complexity_report`, `roam_context`, `roam_dead_code`, `roam_deps`, `roam_diagnose`, `roam_diagnose_issue`, `roam_diff`, `roam_expand_toolset`, `roam_explore`, `roam_file_info`, `roam_health`, `roam_impact`, `roam_pr_risk`, `roam_preflight`, `roam_prepare_change`, `roam_review_change`, `roam_search_symbol`, `roam_syntax_check`, `roam_trace`, `roam_understand`, `roam_uses`.
|
|
891
893
|
|
|
892
894
|
<details>
|
|
893
|
-
<summary><strong>MCP tool list (all
|
|
895
|
+
<summary><strong>MCP tool list (all 118)</strong></summary>
|
|
894
896
|
|
|
895
897
|
| Tool | Description |
|
|
896
898
|
|------|-------------|
|
|
@@ -922,6 +924,8 @@ Core preset tools: `roam_affected_tests`, `roam_batch_get`, `roam_batch_search`,
|
|
|
922
924
|
| `roam_affected_tests` | Find tests affected by a change |
|
|
923
925
|
| `roam_dead_code` | List unreferenced exports |
|
|
924
926
|
| `roam_complexity_report` | Per-symbol cognitive complexity |
|
|
927
|
+
| `roam_py_types` | Python type-annotation health (% public typed, Any, legacy typing) |
|
|
928
|
+
| `roam_py_modern` | Modern-Python adoption (walrus, match, PEP 604/585/695, f-strings) |
|
|
925
929
|
| `roam_tour` | Auto-generated onboarding guide |
|
|
926
930
|
| `roam_diagnose` | Root cause analysis for debugging |
|
|
927
931
|
| `roam_visualize` | Generate Mermaid or DOT architecture diagrams |
|
|
@@ -1524,8 +1528,8 @@ roam-code/
|
|
|
1524
1528
|
├── action.yml # Reusable GitHub Action
|
|
1525
1529
|
├── src/roam/
|
|
1526
1530
|
│ ├── __init__.py # Version (from pyproject.toml)
|
|
1527
|
-
│ ├── cli.py # Click CLI (
|
|
1528
|
-
│ ├── mcp_server.py # MCP server (
|
|
1531
|
+
│ ├── cli.py # Click CLI (152 commands)
|
|
1532
|
+
│ ├── mcp_server.py # MCP server (118 tools, 10 resources, 5 prompts)
|
|
1529
1533
|
│ ├── db/
|
|
1530
1534
|
│ │ ├── connection.py # SQLite (WAL, pragmas, batched IN)
|
|
1531
1535
|
│ │ ├── schema.py # Tables, indexes, migrations
|
|
@@ -1619,7 +1623,7 @@ Optional: Local semantic ONNX stack (`numpy`, `onnxruntime`, `tokenizers`) via `
|
|
|
1619
1623
|
### Shipped
|
|
1620
1624
|
|
|
1621
1625
|
- [x] MCP v2 agent surface: in-process execution, compound operations, presets, schemas, annotations, and compatibility profiles.
|
|
1622
|
-
- [x] Full command and MCP inventory parity in docs:
|
|
1626
|
+
- [x] Full command and MCP inventory parity in docs: 152 CLI commands and 118 MCP tools.
|
|
1623
1627
|
- [x] CI hardening: composite action, changed-only mode, trend-aware gates, sticky PR updater, and SARIF guardrails.
|
|
1624
1628
|
- [x] Performance foundation: FTS5/BM25 search, O(changed) incremental indexing, DB/index optimizations.
|
|
1625
1629
|
- [x] Agent governance suite: `vibe-check`, `ai-readiness`, `verify`, `ai-ratio`, `duplicates`, advanced `algo` scoring/SARIF.
|