roam-code 12.12.2__tar.gz → 12.12.4__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.12.2/src/roam_code.egg-info → roam_code-12.12.4}/PKG-INFO +5 -5
- {roam_code-12.12.2 → roam_code-12.12.4}/README.md +4 -4
- {roam_code-12.12.2 → roam_code-12.12.4}/pyproject.toml +1 -1
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/competitor_site_data.py +1 -1
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/mcp-server-card.json +4 -4
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/mcp_server.py +37 -0
- {roam_code-12.12.2 → roam_code-12.12.4/src/roam_code.egg-info}/PKG-INFO +5 -5
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_doc_consistency.py +27 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_json_contracts.py +4 -1
- {roam_code-12.12.2 → roam_code-12.12.4}/LICENSE +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/setup.cfg +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/__main__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/analysis/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/analysis/effects.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/analysis/taint.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/api.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/ask/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/ask/classifier.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/ask/recipes.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/ask/runner.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/ask/workflow.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/attest/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/attest/cga.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/bridges/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/bridges/base.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/bridges/bridge_config.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/bridges/bridge_django.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/bridges/bridge_protobuf.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/bridges/bridge_rest_api.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/bridges/bridge_salesforce.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/bridges/bridge_template.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/bridges/registry.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/catalog/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/catalog/detectors.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/catalog/fixes.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/catalog/python_idioms.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/catalog/smells.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/catalog/tasks.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/cli.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/changed_files.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_adrs.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_adversarial.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_affected.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_affected_tests.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_agent_context.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_agent_export.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_agent_plan.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_ai_ratio.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_ai_readiness.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_alerts.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_annotate.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_api_changes.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_api_drift.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_ask.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_attest.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_auth_gaps.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_bisect.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_breaking.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_budget.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_bus_factor.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_capsule.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_cga.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_check_rules.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_ci_setup.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_clean.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_clones.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_closure.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_clusters.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_codeowners.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_complexity.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_config.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_congestion.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_context.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_conventions.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_coupling.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_coverage_gaps.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_critique.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_cut.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_dark_matter.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_dashboard.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_dead.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_debt.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_deps.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_describe.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_dev_profile.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_diagnose.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_diff.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_doc_staleness.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_docs_coverage.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_doctor.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_drift.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_duplicates.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_effects.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_endpoints.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_entry_points.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_eval_retrieve.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_fan.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_file.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_fingerprint.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_fitness.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_flag_dead.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_fleet.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_fn_coupling.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_forecast.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_grep.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_guard.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_health.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_hooks.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_hotspots.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_hover.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_impact.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_index.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_index_bundle.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_ingest_trace.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_init.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_intent.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_invariants.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_layers.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_map.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_math.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_mcp_setup.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_metrics.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_migration_safety.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_minimap.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_missing_index.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_module.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_mutate.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_n1.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_oracle.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_orchestrate.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_orphan_routes.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_over_fetch.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_owner.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_partition.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_path_coverage.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_patterns.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_plan.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_plan_refactor.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_pr_diff.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_pr_risk.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_preflight.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_py_modern.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_py_types.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_pytest_fixtures.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_relate.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_report.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_reset.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_retrieve.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_risk.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_rules.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_safe_delete.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_safe_zones.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_sbom.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_schema.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_search.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_search_semantic.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_secrets.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_semantic_diff.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_simulate.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_simulate_departure.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_sketch.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_smells.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_spectral.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_split.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_suggest_refactoring.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_suggest_reviewers.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_supply_chain.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_symbol.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_syntax_check.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_taint.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_test_gaps.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_test_scaffold.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_testmap.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_tour.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_trace.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_trends.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_triage.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_understand.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_uses.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_verify.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_verify_imports.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_vibe_check.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_visualize.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_vuln_map.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_vuln_reach.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_vulns.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_watch.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_weather.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_why.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_workflow.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_ws.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/cmd_xlang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/codeowners_helpers.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/context_helpers.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/gate_presets.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/graph_helpers.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/metrics_history.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/next_steps.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/resolve.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/commands/suppression.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/config.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/coverage_reports.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/critique/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/critique/aggregator.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/critique/checks.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/db/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/db/connection.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/db/queries.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/db/schema.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/eval/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/eval/harness.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/exit_codes.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/fleet/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/fleet/adapters.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/fleet/manifest.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/git_utils.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/anomaly.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/builder.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/clone_detect.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/clusters.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/cycles.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/dark_matter.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/diff.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/fingerprint.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/layers.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/pagerank.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/partition.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/pathfinding.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/propagation.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/simulate.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/spectral.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/graph/stats.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/index/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/index/complexity.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/index/discovery.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/index/django_post.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/index/file_roles.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/index/git_stats.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/index/gitignore.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/index/incremental.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/index/indexer.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/index/parser.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/index/pytest_fixtures.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/index/registry_dispatch.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/index/relations.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/index/symbols.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/index/test_conventions.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/apex_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/aura_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/base.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/c_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/csharp_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/extractor_schema.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/extractors/kotlin.yaml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/foxpro_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/generic_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/go_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/hcl_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/java_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/javascript_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/kotlin_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/php_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/python_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/query_engine.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/registry.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/ruby_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/rust_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/scala_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/sfxml_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/sql_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/swift_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/typescript_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/visualforce_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/languages/yaml_lang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/mcp_extras/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/mcp_extras/completions.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/mcp_extras/concurrency.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/mcp_extras/progress.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/mcp_extras/sampling.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/mcp_extras/session.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/mcp_extras/watcher.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/output/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/output/confidence.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/output/errors.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/output/file_role_hints.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/output/formatter.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/output/framework_filter.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/output/mermaid.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/output/project_shape.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/output/sarif.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/output/schema_registry.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/plugins.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/refactor/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/refactor/codegen.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/refactor/transforms.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/retrieve/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/retrieve/learned_ranker.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/retrieve/pipeline.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/retrieve/rerank.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/retrieve/seeds.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/retrieve/semantic.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/rules/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/rules/ast_match.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/rules/builtin.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/rules/dataflow.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/rules/engine.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/runtime/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/runtime/daemon.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/runtime/graph_backend.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/runtime/hotspots.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/runtime/lock_modes.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/runtime/lockmgr.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/runtime/trace_ingest.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/search/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/search/framework_packs.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/search/index_embeddings.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/search/onnx_embeddings.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/search/tfidf.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/aibom_extension.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/taint_classifier.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/taint_engine.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/taint_rules/api_error_leak.yaml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/taint_rules/java_fileupload_path_traversal.yaml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/taint_rules/js_insecure_jwt_decode.yaml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/taint_rules/js_localstorage_secrets.yaml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/taint_rules/js_prototype_pollution.yaml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/taint_rules/js_ssrf.yaml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/taint_rules/js_xss.yaml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/taint_rules/python_basic.yaml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/taint_rules/python_deserialization.yaml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/taint_rules/python_path_traversal.yaml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/taint_rules/python_socketio_remote_source.yaml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/taint_rules/python_sqli.yaml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/taint_rules/python_urllib_open_redirect.yaml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/taint_rules/vue_v_html.yaml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/vuln_reach.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/security/vuln_store.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/surface_counts.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/templates/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/templates/ci/Jenkinsfile +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/templates/ci/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/templates/ci/azure-pipelines.yml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/templates/ci/bitbucket-pipelines.yml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/templates/ci/gitlab-ci.yml +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/workspace/__init__.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/workspace/aggregator.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/workspace/api_scanner.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/workspace/config.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam/workspace/db.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam_code.egg-info/SOURCES.txt +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam_code.egg-info/dependency_links.txt +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam_code.egg-info/entry_points.txt +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam_code.egg-info/requires.txt +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/src/roam_code.egg-info/top_level.txt +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_adrs.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_adversarial.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_affected.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_agent_export.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_agent_mode.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_agent_plan_context.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_ai_ratio.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_ai_readiness.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_alerts_cmd.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_annotations.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_anomaly.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_api_changes.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_api_drift.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_ask.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_attest.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_auth_gaps.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_backend_fixes_round2.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_backend_fixes_round3.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_basic.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_batch_mcp.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_bisect.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_bridge_django.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_bridges.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_bridges_extended.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_budget.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_budget_flag.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_budget_phase2.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_bus_factor.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_capsule.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_cga.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_check_rules.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_ci_gate_eval.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_ci_sarif_guard.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_ci_setup.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_clones.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_closure.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_codeowners.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_commands_architecture.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_commands_exploration.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_commands_health.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_commands_refactoring.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_commands_workflow.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_competitor_site_data.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_comprehensive.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_config.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_congestion.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_context_propagation.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_conventions_cmd.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_coverage_gaps_cmd.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_coverage_ingestion.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_critique.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_cut.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_dark_matter.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_dark_matter_helpers.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_dashboard.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_dataflow_dead.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_dead_aging.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_defer_loading.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_demo_gif_asset.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_describe.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_detail_flag_hints.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_detector_precision.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_deterministic_output.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_dev_profile.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_difficulty_scoring.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_doc_staleness.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_docker_assets.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_docs_coverage.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_docs_site_quality.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_doctor.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_drift.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_drift_by_team.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_duplicates.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_effects.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_effects_propagation.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_endpoints.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_entry_points_cmd.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_eval_retrieve.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_except_pass_narrow.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_exclude_patterns.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_exit_codes.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_extractor_grammar_drift.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_fallback_contracts.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_file_roles.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_fingerprint.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_fixes.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_flag_dead.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_fleet.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_fn_coupling.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_forecast.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_formatters.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_foxpro.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_framework_detection.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_gate_presets.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_git_utils.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_guard.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_health_gate.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_hooks.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_hotspots.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_hover.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_index.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_index_bundle.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_init_cmd.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_install_check.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_intent.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_invariants.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_json_error_envelope.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_kotlin_swift_extractors.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_language_corpus.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_languages.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_library_api.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_math.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_math_tips.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_mcp_extras.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_mcp_server.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_mcp_setup.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_mermaid.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_metrics_cmd.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_migration_safety.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_minimap.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_missing_index.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_mutate.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_n1.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_next_steps.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_onboard.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_oracle.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_orchestrate.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_orphan_routes.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_oss_bench_harness.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_over_fetch.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_pagerank_truncation.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_partition.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_path_coverage.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_patterns_cmd.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_performance.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_personalized_pagerank.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_plan.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_plugin_discovery.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_pr_comment_script.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_pr_diff.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_pr_risk_author.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_progress.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_progressive_disclosure.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_properties.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_pytest_fixtures.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_python_extractor_v2.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_python_idioms_e2e.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_python_pivot.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_readme_surface_consistency.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_realworld_feedback.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_refactoring_intelligence.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_registry_dispatch.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_relate.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_report.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_reset_clean.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_resolve.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_retrieve.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_retrieve_cross_repo.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_retrieve_seeds.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_risk.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_ruby.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_rule_profiles.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_rules.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_rules_ast_match.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_rules_community_pack.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_rules_dataflow.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_rules_symbol_requirements.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_runtime.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_runtime_score.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_salesforce.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_sarif_flag.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_sbom.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_scala.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_schema_versioning.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_search_explain.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_secrets.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_secrets_v2.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_semantic_diff.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_semantic_onnx.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_semantic_search.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_simulate.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_simulate_departure.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_sketch.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_smells.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_smoke.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_sna_metrics.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_spectral.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_split_cmd.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_sql.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_suggest_reviewers.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_supply_chain.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_surface_counts.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_syntax_check.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_taint.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_taint_analysis.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_taint_classifier.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_taint_intraprocedural.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_test_conventions.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_test_gaps.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_test_scaffold.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_testmap.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_top_flag_consistency.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_tour_cmd.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_trends.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_trends_cohort.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_triage.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_uses_cmd.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_v12_2.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_v6_features.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_v71_features.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_v7_features.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_v82_features.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_verify.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_verify_imports.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_vibe_check.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_visualize.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_vuln.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_vulns_cmd.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_watch.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_why.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_workspace.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_ws_resolve_fixes.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/tests/test_xlang.py +0 -0
- {roam_code-12.12.2 → roam_code-12.12.4}/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.12.
|
|
3
|
+
Version: 12.12.4
|
|
4
4
|
Summary: Instant codebase comprehension for AI coding agents
|
|
5
5
|
Author: CosmoHac
|
|
6
6
|
License-Expression: MIT
|
|
@@ -327,7 +327,7 @@ roam health
|
|
|
327
327
|
|
|
328
328
|
## Commands
|
|
329
329
|
|
|
330
|
-
**Lead with the 5 verbs.** The [5 core commands](#core-commands) cover ~80% of agent workflows: `understand`, `context`, `retrieve`, `preflight`, `critique`. The remaining 150 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 **155 commands organised into 7 categories
|
|
330
|
+
**Lead with the 5 verbs.** The [5 core commands](#core-commands) cover ~80% of agent workflows: `understand`, `context`, `retrieve`, `preflight`, `critique`. The remaining 150 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 **155 commands organised into 7 categories** (plus 6 aliases for muscle memory: `algo` → `math`, `weather` → `churn`, `digest` / `snapshot` / `trend` → `trends`, `onboard` → `understand`), but you don't need to know that to start.
|
|
331
331
|
|
|
332
332
|
<details>
|
|
333
333
|
<summary><strong>Full command reference</strong></summary>
|
|
@@ -1610,8 +1610,8 @@ roam-code/
|
|
|
1610
1610
|
├── action.yml # Reusable GitHub Action
|
|
1611
1611
|
├── src/roam/
|
|
1612
1612
|
│ ├── __init__.py # Version (from pyproject.toml)
|
|
1613
|
-
│ ├── cli.py # Click CLI (
|
|
1614
|
-
│ ├── mcp_server.py # MCP server (
|
|
1613
|
+
│ ├── cli.py # Click CLI (155 canonical + 6 aliases)
|
|
1614
|
+
│ ├── mcp_server.py # MCP server (122 tools, 10 resources, 5 prompts)
|
|
1615
1615
|
│ ├── db/
|
|
1616
1616
|
│ │ ├── connection.py # SQLite (WAL, pragmas, batched IN)
|
|
1617
1617
|
│ │ ├── schema.py # Tables, indexes, migrations
|
|
@@ -1705,7 +1705,7 @@ Optional: Local semantic ONNX stack (`numpy`, `onnxruntime`, `tokenizers`) via `
|
|
|
1705
1705
|
### Shipped
|
|
1706
1706
|
|
|
1707
1707
|
- [x] MCP v2 agent surface: in-process execution, compound operations, presets, schemas, annotations, and compatibility profiles.
|
|
1708
|
-
- [x] Full command and MCP inventory parity in docs:
|
|
1708
|
+
- [x] Full command and MCP inventory parity in docs: 155 canonical CLI commands and 122 MCP tools.
|
|
1709
1709
|
- [x] CI hardening: composite action, changed-only mode, trend-aware gates, sticky PR updater, and SARIF guardrails.
|
|
1710
1710
|
- [x] Performance foundation: FTS5/BM25 search, O(changed) incremental indexing, DB/index optimizations.
|
|
1711
1711
|
- [x] Agent governance suite: `vibe-check`, `ai-readiness`, `verify`, `ai-ratio`, `duplicates`, advanced `algo` scoring/SARIF.
|
|
@@ -269,7 +269,7 @@ roam health
|
|
|
269
269
|
|
|
270
270
|
## Commands
|
|
271
271
|
|
|
272
|
-
**Lead with the 5 verbs.** The [5 core commands](#core-commands) cover ~80% of agent workflows: `understand`, `context`, `retrieve`, `preflight`, `critique`. The remaining 150 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 **155 commands organised into 7 categories
|
|
272
|
+
**Lead with the 5 verbs.** The [5 core commands](#core-commands) cover ~80% of agent workflows: `understand`, `context`, `retrieve`, `preflight`, `critique`. The remaining 150 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 **155 commands organised into 7 categories** (plus 6 aliases for muscle memory: `algo` → `math`, `weather` → `churn`, `digest` / `snapshot` / `trend` → `trends`, `onboard` → `understand`), but you don't need to know that to start.
|
|
273
273
|
|
|
274
274
|
<details>
|
|
275
275
|
<summary><strong>Full command reference</strong></summary>
|
|
@@ -1552,8 +1552,8 @@ roam-code/
|
|
|
1552
1552
|
├── action.yml # Reusable GitHub Action
|
|
1553
1553
|
├── src/roam/
|
|
1554
1554
|
│ ├── __init__.py # Version (from pyproject.toml)
|
|
1555
|
-
│ ├── cli.py # Click CLI (
|
|
1556
|
-
│ ├── mcp_server.py # MCP server (
|
|
1555
|
+
│ ├── cli.py # Click CLI (155 canonical + 6 aliases)
|
|
1556
|
+
│ ├── mcp_server.py # MCP server (122 tools, 10 resources, 5 prompts)
|
|
1557
1557
|
│ ├── db/
|
|
1558
1558
|
│ │ ├── connection.py # SQLite (WAL, pragmas, batched IN)
|
|
1559
1559
|
│ │ ├── schema.py # Tables, indexes, migrations
|
|
@@ -1647,7 +1647,7 @@ Optional: Local semantic ONNX stack (`numpy`, `onnxruntime`, `tokenizers`) via `
|
|
|
1647
1647
|
### Shipped
|
|
1648
1648
|
|
|
1649
1649
|
- [x] MCP v2 agent surface: in-process execution, compound operations, presets, schemas, annotations, and compatibility profiles.
|
|
1650
|
-
- [x] Full command and MCP inventory parity in docs:
|
|
1650
|
+
- [x] Full command and MCP inventory parity in docs: 155 canonical CLI commands and 122 MCP tools.
|
|
1651
1651
|
- [x] CI hardening: composite action, changed-only mode, trend-aware gates, sticky PR updater, and SARIF guardrails.
|
|
1652
1652
|
- [x] Performance foundation: FTS5/BM25 search, O(changed) incremental indexing, DB/index optimizations.
|
|
1653
1653
|
- [x] Agent governance suite: `vibe-check`, `ai-readiness`, `verify`, `ai-ratio`, `duplicates`, advanced `algo` scoring/SARIF.
|
|
@@ -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.12.
|
|
1367
|
+
"version_evaluated": "12.12.4",
|
|
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.12.
|
|
5
|
+
"version": "12.12.4",
|
|
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",
|
|
@@ -51,15 +51,15 @@
|
|
|
51
51
|
},
|
|
52
52
|
"capabilities": {
|
|
53
53
|
"tools": {
|
|
54
|
-
"total":
|
|
54
|
+
"total": 122,
|
|
55
55
|
"presets": {
|
|
56
|
-
"core":
|
|
56
|
+
"core": 35,
|
|
57
57
|
"review": 50,
|
|
58
58
|
"refactor": 60,
|
|
59
59
|
"debug": 55,
|
|
60
60
|
"architecture": 70,
|
|
61
61
|
"compliance": 14,
|
|
62
|
-
"full":
|
|
62
|
+
"full": 122
|
|
63
63
|
},
|
|
64
64
|
"tasks_api": {
|
|
65
65
|
"supported": true,
|
|
@@ -2250,6 +2250,7 @@ def retrieve_context(
|
|
|
2250
2250
|
k: int = 0,
|
|
2251
2251
|
rerank: str = "fast",
|
|
2252
2252
|
seed_files: str = "",
|
|
2253
|
+
dry_run: bool = False,
|
|
2253
2254
|
root: str = ".",
|
|
2254
2255
|
ctx: _Context | None = None,
|
|
2255
2256
|
) -> dict:
|
|
@@ -2281,6 +2282,15 @@ def retrieve_context(
|
|
|
2281
2282
|
seed_files: comma-separated file paths to seed personalised PageRank
|
|
2282
2283
|
(e.g. ``"src/auth.py,src/session.py"``). Falls back to
|
|
2283
2284
|
symbol-token inference from *task* when empty.
|
|
2285
|
+
dry_run: return the search plan (candidate ids, scores, locations)
|
|
2286
|
+
without fetching span content. Useful when an agent wants to
|
|
2287
|
+
preview what *would* be retrieved before paying the token cost.
|
|
2288
|
+
|
|
2289
|
+
The response's ``summary.low_confidence`` boolean is True when
|
|
2290
|
+
the top result probably doesn't match the task — branch on this
|
|
2291
|
+
to ask the user for clarification rather than chasing a likely
|
|
2292
|
+
red herring. (v12.12: this was previously only available by
|
|
2293
|
+
parsing the verdict string.)
|
|
2284
2294
|
"""
|
|
2285
2295
|
if _mcp_session is not None:
|
|
2286
2296
|
_mcp_session.remember_task_hint(ctx, task)
|
|
@@ -2303,6 +2313,8 @@ def retrieve_context(
|
|
|
2303
2313
|
path = raw.strip()
|
|
2304
2314
|
if path:
|
|
2305
2315
|
args.extend(["--seed-files", path])
|
|
2316
|
+
if dry_run:
|
|
2317
|
+
args.append("--dry-run")
|
|
2306
2318
|
return _run_roam(args, root)
|
|
2307
2319
|
|
|
2308
2320
|
|
|
@@ -2356,6 +2368,7 @@ def fleet_plan(
|
|
|
2356
2368
|
def critique_patch(
|
|
2357
2369
|
diff_text: str,
|
|
2358
2370
|
high_callers: int = 10,
|
|
2371
|
+
intent: str = "",
|
|
2359
2372
|
root: str = ".",
|
|
2360
2373
|
) -> dict:
|
|
2361
2374
|
"""Verify a unified diff against the indexed roam graph.
|
|
@@ -2371,6 +2384,12 @@ def critique_patch(
|
|
|
2371
2384
|
(which produces a vibe score). Critique grounds every finding in a
|
|
2372
2385
|
DB query.
|
|
2373
2386
|
|
|
2387
|
+
The response carries ``bench_hint`` at top level and inside
|
|
2388
|
+
``summary`` when the diff touches a structurally hot path
|
|
2389
|
+
(retrieve/, graph/, languages/, taint, critique). Branch on this
|
|
2390
|
+
field to suggest the right validation step alongside the standard
|
|
2391
|
+
findings.
|
|
2392
|
+
|
|
2374
2393
|
Parameters
|
|
2375
2394
|
----------
|
|
2376
2395
|
diff_text:
|
|
@@ -2378,6 +2397,11 @@ def critique_patch(
|
|
|
2378
2397
|
``gh pr diff <id>``.
|
|
2379
2398
|
high_callers:
|
|
2380
2399
|
Threshold for the blast-radius warning. Default 10.
|
|
2400
|
+
intent:
|
|
2401
|
+
Optional PR title or commit subject. When supplied, the
|
|
2402
|
+
intent-vs-semantic-diff check fires (a rename intent that
|
|
2403
|
+
produces non-rename changes flags as misalignment). Falls
|
|
2404
|
+
back to the latest git commit subject when empty.
|
|
2381
2405
|
"""
|
|
2382
2406
|
import json as _json
|
|
2383
2407
|
import subprocess
|
|
@@ -2415,6 +2439,8 @@ def critique_patch(
|
|
|
2415
2439
|
args = [sys.executable, "-m", "roam", "--json", "critique"]
|
|
2416
2440
|
if high_callers != 10:
|
|
2417
2441
|
args += ["--high-callers", str(high_callers)]
|
|
2442
|
+
if intent:
|
|
2443
|
+
args += ["--intent", intent]
|
|
2418
2444
|
proc = subprocess.run(
|
|
2419
2445
|
args,
|
|
2420
2446
|
cwd=root,
|
|
@@ -2693,6 +2719,7 @@ def oracle_batch(items: list, root: str = ".") -> dict:
|
|
|
2693
2719
|
def taint(
|
|
2694
2720
|
rules_dir: str = "",
|
|
2695
2721
|
rule: str = "",
|
|
2722
|
+
rules_pack: str = "",
|
|
2696
2723
|
ci: bool = False,
|
|
2697
2724
|
root: str = ".",
|
|
2698
2725
|
) -> dict:
|
|
@@ -2702,12 +2729,22 @@ def taint(
|
|
|
2702
2729
|
the LLM-augmented ``roam_taint_classify``. Returns reach-only
|
|
2703
2730
|
findings with OpenVEX-shaped status/justification fields ready for
|
|
2704
2731
|
SBOM/CGA embedding.
|
|
2732
|
+
|
|
2733
|
+
Parameters
|
|
2734
|
+
----------
|
|
2735
|
+
rules_pack: shorthand for filtering to a single starter pack.
|
|
2736
|
+
Accepts ``sqli``, ``xss``, ``ssrf``, ``path-traversal``,
|
|
2737
|
+
``command-injection``, ``deserialization``, ``open-redirect``,
|
|
2738
|
+
``urllib``, ``socketio``, ``fileupload``. Equivalent to
|
|
2739
|
+
passing ``--rules-pack`` on the CLI.
|
|
2705
2740
|
"""
|
|
2706
2741
|
args = ["taint"]
|
|
2707
2742
|
if rules_dir:
|
|
2708
2743
|
args.extend(["--rules-dir", rules_dir])
|
|
2709
2744
|
if rule:
|
|
2710
2745
|
args.extend(["--rule", rule])
|
|
2746
|
+
if rules_pack:
|
|
2747
|
+
args.extend(["--rules-pack", rules_pack])
|
|
2711
2748
|
if ci:
|
|
2712
2749
|
args.append("--ci")
|
|
2713
2750
|
return _run_roam(args, root)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: roam-code
|
|
3
|
-
Version: 12.12.
|
|
3
|
+
Version: 12.12.4
|
|
4
4
|
Summary: Instant codebase comprehension for AI coding agents
|
|
5
5
|
Author: CosmoHac
|
|
6
6
|
License-Expression: MIT
|
|
@@ -327,7 +327,7 @@ roam health
|
|
|
327
327
|
|
|
328
328
|
## Commands
|
|
329
329
|
|
|
330
|
-
**Lead with the 5 verbs.** The [5 core commands](#core-commands) cover ~80% of agent workflows: `understand`, `context`, `retrieve`, `preflight`, `critique`. The remaining 150 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 **155 commands organised into 7 categories
|
|
330
|
+
**Lead with the 5 verbs.** The [5 core commands](#core-commands) cover ~80% of agent workflows: `understand`, `context`, `retrieve`, `preflight`, `critique`. The remaining 150 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 **155 commands organised into 7 categories** (plus 6 aliases for muscle memory: `algo` → `math`, `weather` → `churn`, `digest` / `snapshot` / `trend` → `trends`, `onboard` → `understand`), but you don't need to know that to start.
|
|
331
331
|
|
|
332
332
|
<details>
|
|
333
333
|
<summary><strong>Full command reference</strong></summary>
|
|
@@ -1610,8 +1610,8 @@ roam-code/
|
|
|
1610
1610
|
├── action.yml # Reusable GitHub Action
|
|
1611
1611
|
├── src/roam/
|
|
1612
1612
|
│ ├── __init__.py # Version (from pyproject.toml)
|
|
1613
|
-
│ ├── cli.py # Click CLI (
|
|
1614
|
-
│ ├── mcp_server.py # MCP server (
|
|
1613
|
+
│ ├── cli.py # Click CLI (155 canonical + 6 aliases)
|
|
1614
|
+
│ ├── mcp_server.py # MCP server (122 tools, 10 resources, 5 prompts)
|
|
1615
1615
|
│ ├── db/
|
|
1616
1616
|
│ │ ├── connection.py # SQLite (WAL, pragmas, batched IN)
|
|
1617
1617
|
│ │ ├── schema.py # Tables, indexes, migrations
|
|
@@ -1705,7 +1705,7 @@ Optional: Local semantic ONNX stack (`numpy`, `onnxruntime`, `tokenizers`) via `
|
|
|
1705
1705
|
### Shipped
|
|
1706
1706
|
|
|
1707
1707
|
- [x] MCP v2 agent surface: in-process execution, compound operations, presets, schemas, annotations, and compatibility profiles.
|
|
1708
|
-
- [x] Full command and MCP inventory parity in docs:
|
|
1708
|
+
- [x] Full command and MCP inventory parity in docs: 155 canonical CLI commands and 122 MCP tools.
|
|
1709
1709
|
- [x] CI hardening: composite action, changed-only mode, trend-aware gates, sticky PR updater, and SARIF guardrails.
|
|
1710
1710
|
- [x] Performance foundation: FTS5/BM25 search, O(changed) incremental indexing, DB/index optimizations.
|
|
1711
1711
|
- [x] Agent governance suite: `vibe-check`, `ai-readiness`, `verify`, `ai-ratio`, `duplicates`, advanced `algo` scoring/SARIF.
|
|
@@ -204,6 +204,33 @@ class TestVersionConsistency:
|
|
|
204
204
|
"re-copy after editing either file."
|
|
205
205
|
)
|
|
206
206
|
|
|
207
|
+
def test_card_tool_count_matches_live_count(self):
|
|
208
|
+
"""v12.12.4 — the card's ``capabilities.tools.total`` must
|
|
209
|
+
match the live MCP tool count from ``surface_counts``. The
|
|
210
|
+
card had been at 120 with 33-tool ``core`` preset for several
|
|
211
|
+
releases while the live numbers had grown to 122 / 35.
|
|
212
|
+
"""
|
|
213
|
+
try:
|
|
214
|
+
from roam.surface_counts import collect_surface_counts
|
|
215
|
+
except ImportError:
|
|
216
|
+
pytest.skip("surface_counts unavailable")
|
|
217
|
+
live = collect_surface_counts()
|
|
218
|
+
card = json.loads((ROOT / "docs" / "site" / ".well-known" / "mcp-server-card.json").read_text(encoding="utf-8"))
|
|
219
|
+
live_total = live["mcp"]["registered_tools"]
|
|
220
|
+
live_core = live["mcp"]["core_tools"]
|
|
221
|
+
card_total = card["capabilities"]["tools"]["total"]
|
|
222
|
+
card_core = card["capabilities"]["tools"]["presets"]["core"]
|
|
223
|
+
card_full = card["capabilities"]["tools"]["presets"]["full"]
|
|
224
|
+
assert card_total == live_total, (
|
|
225
|
+
f"card capabilities.tools.total = {card_total} but live MCP tool count = {live_total}"
|
|
226
|
+
)
|
|
227
|
+
assert card_core == live_core, (
|
|
228
|
+
f"card capabilities.tools.presets.core = {card_core} but live core preset count = {live_core}"
|
|
229
|
+
)
|
|
230
|
+
assert card_full == live_total, (
|
|
231
|
+
f"card capabilities.tools.presets.full = {card_full} but live total = {live_total}"
|
|
232
|
+
)
|
|
233
|
+
|
|
207
234
|
def test_landscape_json_self_row_version_matches(self):
|
|
208
235
|
"""The roam-code row in landscape.json should show the current
|
|
209
236
|
package version (or a recent nearby tag)."""
|
|
@@ -120,11 +120,14 @@ COMMAND_ARGS = {
|
|
|
120
120
|
FRAGILE_COMMANDS = {
|
|
121
121
|
"affected-tests", # needs staged changes or a target with test coverage
|
|
122
122
|
"coverage-gaps", # needs test file mapping
|
|
123
|
-
"dead", # summary envelope misses 'verdict' on the minimal fixture
|
|
124
123
|
"deps", # symbol resolution against minimal `models`/`service`/`utils`
|
|
125
124
|
"diff", # needs uncommitted changes
|
|
126
125
|
"pr-risk", # needs uncommitted changes or PR context
|
|
127
126
|
"report", # may need specific report config or flags
|
|
127
|
+
# ``dead`` was xfailed in v11.x because its summary envelope was
|
|
128
|
+
# missing ``verdict``. v12.x added the verdict field; --runxfail
|
|
129
|
+
# confirms all four parametrized tests pass on the minimal
|
|
130
|
+
# fixture. Removed from the fragile set in v12.12.2.
|
|
128
131
|
}
|
|
129
132
|
|
|
130
133
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|