roam-code 12.37__tar.gz → 12.39__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.37 → roam_code-12.39}/PKG-INFO +2 -1
- {roam_code-12.37 → roam_code-12.39}/pyproject.toml +12 -1
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_check_rules.py +2 -2
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_coverage_gaps.py +1 -1
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_report.py +1 -1
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_trends.py +1 -1
- {roam_code-12.37 → roam_code-12.39}/src/roam/competitor_site_data.py +2 -2
- {roam_code-12.37 → roam_code-12.39}/src/roam/mcp-server-card.json +1 -1
- {roam_code-12.37 → roam_code-12.39}/src/roam_code.egg-info/PKG-INFO +2 -1
- {roam_code-12.37 → roam_code-12.39}/src/roam_code.egg-info/requires.txt +1 -0
- {roam_code-12.37 → roam_code-12.39}/LICENSE +0 -0
- {roam_code-12.37 → roam_code-12.39}/README.md +0 -0
- {roam_code-12.37 → roam_code-12.39}/setup.cfg +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/__main__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/analysis/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/analysis/effects.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/analysis/taint.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/api.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/ask/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/ask/classifier.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/ask/recipes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/ask/runner.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/ask/workflow.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/attest/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/attest/cga.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/bridges/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/bridges/base.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/bridges/bridge_config.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/bridges/bridge_django.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/bridges/bridge_protobuf.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/bridges/bridge_rest_api.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/bridges/bridge_salesforce.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/bridges/bridge_template.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/bridges/registry.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/catalog/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/catalog/detectors.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/catalog/fixes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/catalog/python_idioms.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/catalog/smells.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/catalog/tasks.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/cli.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/audit_trail_helpers.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/changed_files.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_adrs.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_adversarial.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_affected.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_affected_tests.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_agent_context.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_agent_export.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_agent_plan.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_ai_ratio.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_ai_readiness.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_alerts.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_annotate.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_api.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_api_changes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_api_drift.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_ask.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_attest.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_audit.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_audit_trail_conformance.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_audit_trail_export.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_audit_trail_verify.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_auth_gaps.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_bisect.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_breaking.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_budget.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_bus_factor.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_capsule.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_cga.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_changelog.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_ci_setup.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_clean.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_clones.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_closure.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_clusters.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_codeowners.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_complexity.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_config.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_congestion.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_context.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_conventions.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_coupling.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_critique.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_cut.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_dark_matter.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_dashboard.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_dead.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_debt.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_deps.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_describe.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_dev_profile.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_diagnose.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_diff.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_disambiguate.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_doc_staleness.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_docs_coverage.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_doctor.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_dogfood.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_drift.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_duplicates.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_effects.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_endpoints.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_entry_points.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_eval_retrieve.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_exit_codes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_fan.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_file.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_fingerprint.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_fitness.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_flag_dead.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_fleet.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_fn_coupling.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_forecast.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_graph_export.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_graph_stats.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_grep.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_guard.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_health.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_help_search.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_hooks.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_hotspots.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_hover.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_impact.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_index.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_index_bundle.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_index_stats.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_ingest_trace.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_init.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_intent.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_invariants.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_layers.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_map.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_math.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_mcp_setup.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_mcp_status.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_metrics.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_metrics_push.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_migration_safety.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_minimap.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_missing_index.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_module.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_mutate.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_n1.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_oracle.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_orchestrate.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_orphan_imports.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_orphan_routes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_over_fetch.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_owner.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_partition.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_path_coverage.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_patterns.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_plan.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_plan_refactor.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_plugins.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_pr_analyze.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_pr_comment_render.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_pr_diff.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_pr_prep.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_pr_risk.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_pre_commit.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_preflight.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_py_modern.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_py_types.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_pytest_fixtures.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_recipes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_recommend.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_relate.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_reset.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_retrieve.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_risk.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_rules.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_rules_validate.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_safe_delete.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_safe_zones.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_sbom.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_schema.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_search.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_search_semantic.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_secrets.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_semantic_diff.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_simulate.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_simulate_departure.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_sketch.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_smells.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_spectral.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_split.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_stats.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_suggest_refactoring.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_suggest_reviewers.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_supply_chain.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_suppress.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_symbol.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_syntax_check.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_taint.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_telemetry.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_test_gaps.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_test_impact.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_test_pyramid.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_test_scaffold.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_testmap.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_timeline.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_tour.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_trace.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_triage.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_understand.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_uses.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_verify.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_verify_imports.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_version.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_vibe_check.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_visualize.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_vuln_map.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_vuln_reach.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_vulns.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_watch.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_weather.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_why.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_why_fail.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_workflow.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_ws.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/cmd_xlang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/codeowners_helpers.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/context_helpers.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/finding_suppress.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/gate_presets.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/git_helpers.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/graph_helpers.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/metrics_history.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/next_steps.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/pr_analyze/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/pr_analyze/audit_trail.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/pr_analyze/cache.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/pr_analyze/rules.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/resolve.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/commands/suppression.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/config.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/coverage_reports.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/critique/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/critique/aggregator.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/critique/checks.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/db/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/db/connection.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/db/queries.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/db/schema.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/eval/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/eval/harness.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/exit_codes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/fleet/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/fleet/adapters.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/fleet/manifest.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/git_utils.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/anomaly.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/builder.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/clone_detect.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/clusters.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/cycles.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/dark_matter.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/diff.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/fingerprint.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/layers.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/pagerank.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/partition.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/pathfinding.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/propagation.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/simulate.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/spectral.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/graph/stats.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/index/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/index/complexity.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/index/discovery.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/index/django_post.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/index/file_roles.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/index/git_stats.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/index/gitignore.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/index/incremental.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/index/indexer.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/index/parser.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/index/pytest_fixtures.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/index/registry_dispatch.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/index/relations.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/index/symbols.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/index/test_conventions.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/apex_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/aura_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/base.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/c_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/csharp_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/extractor_schema.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/extractors/kotlin.yaml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/foxpro_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/generic_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/go_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/hcl_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/java_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/javascript_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/kotlin_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/php_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/python_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/query_engine.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/registry.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/ruby_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/rust_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/scala_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/sfxml_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/sql_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/swift_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/typescript_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/visualforce_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/languages/yaml_lang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/mcp_extras/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/mcp_extras/completions.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/mcp_extras/concurrency.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/mcp_extras/progress.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/mcp_extras/sampling.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/mcp_extras/session.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/mcp_extras/watcher.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/mcp_server.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/observability.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/output/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/output/confidence.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/output/errors.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/output/file_role_hints.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/output/formatter.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/output/framework_filter.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/output/mermaid.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/output/project_shape.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/output/sarif.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/output/schema_registry.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/plugins.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/refactor/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/refactor/codegen.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/refactor/transforms.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/retrieve/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/retrieve/learned_ranker.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/retrieve/pipeline.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/retrieve/rerank.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/retrieve/seeds.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/retrieve/semantic.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/rules/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/rules/ast_match.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/rules/builtin.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/rules/dataflow.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/rules/engine.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/runtime/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/runtime/daemon.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/runtime/graph_backend.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/runtime/hotspots.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/runtime/lock_modes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/runtime/lockmgr.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/runtime/trace_ingest.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/search/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/search/framework_packs.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/search/index_embeddings.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/search/onnx_embeddings.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/search/tfidf.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/aibom_extension.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/taint_classifier.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/taint_engine.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/taint_rules/api_error_leak.yaml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/taint_rules/java_fileupload_path_traversal.yaml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/taint_rules/js_insecure_jwt_decode.yaml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/taint_rules/js_localstorage_secrets.yaml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/taint_rules/js_prototype_pollution.yaml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/taint_rules/js_ssrf.yaml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/taint_rules/js_xss.yaml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/taint_rules/python_basic.yaml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/taint_rules/python_deserialization.yaml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/taint_rules/python_path_traversal.yaml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/taint_rules/python_socketio_remote_source.yaml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/taint_rules/python_sqli.yaml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/taint_rules/python_urllib_open_redirect.yaml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/taint_rules/vue_v_html.yaml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/vuln_reach.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/security/vuln_store.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/surface_counts.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/telemetry.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/templates/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/templates/ci/Jenkinsfile +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/templates/ci/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/templates/ci/agent-review.yml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/templates/ci/azure-pipelines.yml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/templates/ci/bitbucket-pipelines.yml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/templates/ci/gitlab-ci.yml +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/workspace/__init__.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/workspace/aggregator.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/workspace/api_scanner.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/workspace/config.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam/workspace/db.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam_code.egg-info/SOURCES.txt +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam_code.egg-info/dependency_links.txt +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam_code.egg-info/entry_points.txt +0 -0
- {roam_code-12.37 → roam_code-12.39}/src/roam_code.egg-info/top_level.txt +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_adrs.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_adversarial.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_affected.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_agent_export.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_agent_mode.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_agent_plan_context.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_ai_ratio.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_ai_readiness.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_alerts_cmd.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_annotations.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_anomaly.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_api_changes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_api_drift.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_ask.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_attest.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_audit_trail_aggregate.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_audit_trail_conformance.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_audit_trail_sequence.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_audit_trail_verify.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_auth_gaps.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_backend_fixes_round2.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_backend_fixes_round3.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_basic.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_batch_mcp.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_bisect.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_bridge_django.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_bridges.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_bridges_extended.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_budget.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_budget_flag.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_budget_phase2.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_bus_factor.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_capsule.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_cga.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_check_rules.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_ci_gate_eval.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_ci_sarif_guard.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_ci_setup.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_clones.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_closure.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_codeowners.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_commands_architecture.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_commands_exploration.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_commands_health.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_commands_refactoring.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_commands_workflow.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_competitor_site_data.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_comprehensive.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_config.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_congestion.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_context_propagation.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_conventions_cmd.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_coverage_gaps_cmd.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_coverage_ingestion.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_critique.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_cut.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_dark_matter.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_dark_matter_helpers.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_dashboard.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_dataflow_dead.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_dead_aging.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_defer_loading.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_demo_gif_asset.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_describe.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_detail_flag_hints.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_detector_precision.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_deterministic_output.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_dev_profile.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_difficulty_scoring.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_doc_consistency.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_doc_staleness.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_docker_assets.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_docs_coverage.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_docs_site_quality.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_doctor.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_dogfood.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_drift.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_drift_by_team.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_duplicates.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_effects.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_effects_propagation.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_endpoints.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_entry_points_cmd.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_eval_retrieve.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_except_pass_narrow.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_exclude_patterns.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_exit_codes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_extractor_grammar_drift.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_fallback_contracts.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_file_roles.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_finding_suppress.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_fingerprint.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_fixes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_flag_dead.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_fleet.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_fn_coupling.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_forecast.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_formatters.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_foxpro.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_framework_detection.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_gate_presets.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_git_helpers.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_git_utils.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_guard.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_health_gate.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_hooks.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_hotspots.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_hover.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_index.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_index_bundle.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_init_cmd.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_install_check.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_intent.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_invariants.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_json_contracts.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_json_error_envelope.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_kotlin_swift_extractors.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_language_corpus.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_languages.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_laravel_fp_fixes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_library_api.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_math.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_math_fp_fixes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_math_tips.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_mcp_extras.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_mcp_server.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_mcp_setup.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_mermaid.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_metrics_cmd.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_metrics_push.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_migration_safety.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_minimap.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_missing_index.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_mutate.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_n1.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_next_steps.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_onboard.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_oracle.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_orchestrate.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_orphan_routes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_oss_bench_harness.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_over_fetch.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_pagerank_truncation.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_partition.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_path_coverage.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_patterns_cmd.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_performance.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_personalized_pagerank.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_plan.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_plugin_discovery.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_pr_analyze.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_pr_analyze_cache.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_pr_analyze_edge_cases.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_pr_analyze_helpers.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_pr_analyze_v2_signals.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_pr_comment_render.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_pr_comment_script.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_pr_diff.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_pr_risk_author.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_progress.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_progressive_disclosure.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_properties.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_pytest_fixtures.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_python_extractor_v2.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_python_idioms_e2e.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_python_pivot.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_readme_surface_consistency.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_realworld_feedback.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_refactoring_intelligence.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_registry_dispatch.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_regression_fp_corpus.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_relate.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_report.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_reset_clean.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_resolve.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_retrieve.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_retrieve_cross_repo.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_retrieve_seeds.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_risk.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_ruby.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_rule_profiles.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_rules.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_rules_ast_match.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_rules_community_pack.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_rules_dataflow.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_rules_symbol_requirements.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_rules_validate.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_runtime.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_runtime_score.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_salesforce.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_sarif_flag.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_sbom.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_scala.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_schema_versioning.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_search_explain.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_secrets.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_secrets_v2.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_semantic_diff.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_semantic_onnx.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_semantic_search.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_simulate.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_simulate_departure.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_sketch.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_smells.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_smoke.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_sna_metrics.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_spectral.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_split_cmd.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_sql.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_suggest_reviewers.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_supply_chain.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_surface_counts.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_syntax_check.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_taint.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_taint_analysis.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_taint_classifier.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_taint_intraprocedural.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_test_conventions.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_test_gaps.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_test_scaffold.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_testmap.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_top_flag_consistency.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_tour_cmd.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_trends.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_trends_cohort.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_triage.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_uses_cmd.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v1215_passes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v1216_passes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v1216_passes_41_50.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v1216_passes_51_60.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v1217_passes_61_80.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v1218_passes_81_90.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v1219_passes_91_100.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v1220_passes_101_110.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v1221_query_timeout.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v1221_untested_commands.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v12_2.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v2_edge_cases.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v2_integration.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v6_features.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v71_features.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v7_features.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_v82_features.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_verify.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_verify_imports.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_vibe_check.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_visualize.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_vuln.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_vulns_cmd.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_watch.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_why.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_workspace.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_ws_resolve_fixes.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/tests/test_xlang.py +0 -0
- {roam_code-12.37 → roam_code-12.39}/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.39
|
|
4
4
|
Summary: Instant codebase comprehension for AI coding agents
|
|
5
5
|
Author: CosmoHac
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -52,6 +52,7 @@ Requires-Dist: pytest-xdist>=3.0; extra == "dev"
|
|
|
52
52
|
Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
|
|
53
53
|
Requires-Dist: scipy>=1.11; extra == "dev"
|
|
54
54
|
Requires-Dist: fastmcp>=2.0; python_version >= "3.10" and extra == "dev"
|
|
55
|
+
Requires-Dist: pyyaml>=6.0; extra == "dev"
|
|
55
56
|
Requires-Dist: ruff>=0.4; extra == "dev"
|
|
56
57
|
Requires-Dist: build>=1.0; extra == "dev"
|
|
57
58
|
Requires-Dist: twine>=5.0; extra == "dev"
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "roam-code"
|
|
7
|
-
version = "12.
|
|
7
|
+
version = "12.39"
|
|
8
8
|
description = "Instant codebase comprehension for AI coding agents"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
@@ -102,6 +102,17 @@ dev = [
|
|
|
102
102
|
# ships in our matrix). The MCP-runtime test guards on _HAS_FASTMCP
|
|
103
103
|
# so 3.9 simply skips that single test.
|
|
104
104
|
"fastmcp>=2.0; python_version >= '3.10'",
|
|
105
|
+
# PyYAML is the canonical parser for .roam/rules.yml + .roamignore-findings.
|
|
106
|
+
# In production it stays optional — the in-tree _parse_simple_yaml /
|
|
107
|
+
# _emit_simple_yaml fallback covers the documented shapes. But the test
|
|
108
|
+
# suite asserts PyYAML-equivalent behaviour (warnings on malformed YAML,
|
|
109
|
+
# round-trip preserves severity case, top-level-list detection, etc.) and
|
|
110
|
+
# without PyYAML on Python 3.9 every divergence becomes a CI red. Pin
|
|
111
|
+
# here so the matrix has a consistent reference parser.
|
|
112
|
+
# Added 12.38 (2026-05-06) after seven consecutive Python-3.9-only CI
|
|
113
|
+
# failures across 12.31-12.37; root cause was fastmcp's transitive
|
|
114
|
+
# PyYAML dep being unavailable on 3.9.
|
|
115
|
+
"pyyaml>=6.0",
|
|
105
116
|
"ruff>=0.4",
|
|
106
117
|
"build>=1.0",
|
|
107
118
|
"twine>=5.0",
|
|
@@ -429,8 +429,8 @@ def check_rules(ctx, rule_filter, severity_filter, config_path, profile_name, do
|
|
|
429
429
|
try:
|
|
430
430
|
profile_overrides = resolve_profile(effective_profile)
|
|
431
431
|
except ValueError as e:
|
|
432
|
-
click.echo("Error: {}"
|
|
433
|
-
raise SystemExit(1)
|
|
432
|
+
click.echo(f"Error: {e}")
|
|
433
|
+
raise SystemExit(1) from None
|
|
434
434
|
# Profile overrides are the base; user overrides (from rules: section) layer on top
|
|
435
435
|
merged = {ov.get("id"): ov for ov in profile_overrides}
|
|
436
436
|
for ov in user_overrides:
|
|
@@ -102,7 +102,7 @@ def _load_custom_presets(config_path: str) -> dict:
|
|
|
102
102
|
try:
|
|
103
103
|
data = json.load(f)
|
|
104
104
|
except json.JSONDecodeError as exc:
|
|
105
|
-
raise click.BadParameter(f"Invalid JSON in config file: {exc}")
|
|
105
|
+
raise click.BadParameter(f"Invalid JSON in config file: {exc}") from exc
|
|
106
106
|
|
|
107
107
|
if not isinstance(data, dict):
|
|
108
108
|
raise click.BadParameter(f"Config must be a JSON object, got {type(data).__name__}")
|
|
@@ -1642,7 +1642,7 @@ def _handle_timeline(
|
|
|
1642
1642
|
since_ts = int(dt.timestamp())
|
|
1643
1643
|
except ValueError:
|
|
1644
1644
|
click.echo(f"Invalid date format: {since_date} (use YYYY-MM-DD)")
|
|
1645
|
-
raise SystemExit(1)
|
|
1645
|
+
raise SystemExit(1) from None
|
|
1646
1646
|
|
|
1647
1647
|
with open_db(readonly=True) as conn:
|
|
1648
1648
|
snaps = get_snapshots(conn, limit=count, since=since_ts)
|
|
@@ -1362,8 +1362,8 @@ MAP_METADATA: dict[str, dict[str, object]] = {
|
|
|
1362
1362
|
"relationship": "self",
|
|
1363
1363
|
"peer": True,
|
|
1364
1364
|
"graph": "PageRank + Tarjan + Louvain + layers",
|
|
1365
|
-
"note": "Graph algorithms (PageRank, SCC, Louvain, Fiedler) on tree-sitter ASTs fused with git history in SQLite. 136 MCP tools, 187 CLI commands. 19 Python idiom detectors (v12.7+). 54 algo detectors (12.
|
|
1366
|
-
"version_evaluated": "12.
|
|
1365
|
+
"note": "Graph algorithms (PageRank, SCC, Louvain, Fiedler) on tree-sitter ASTs fused with git history in SQLite. 136 MCP tools, 187 CLI commands. 19 Python idiom detectors (v12.7+). 54 algo detectors (12.39).",
|
|
1366
|
+
"version_evaluated": "12.39",
|
|
1367
1367
|
"repo_url": "https://github.com/Cranot/roam-code",
|
|
1368
1368
|
},
|
|
1369
1369
|
"CKB/CodeMCP": {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://schemas.modelcontextprotocol.io/server-card/v1",
|
|
3
3
|
"name": "roam-code",
|
|
4
4
|
"display_name": "roam — instant codebase intelligence",
|
|
5
|
-
"version": "12.
|
|
5
|
+
"version": "12.39",
|
|
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. 136 MCP tools, 10 resources, 5 prompts, 27 languages. 100% local, zero API keys.",
|
|
7
7
|
"vendor": {
|
|
8
8
|
"name": "Cranot",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: roam-code
|
|
3
|
-
Version: 12.
|
|
3
|
+
Version: 12.39
|
|
4
4
|
Summary: Instant codebase comprehension for AI coding agents
|
|
5
5
|
Author: CosmoHac
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -52,6 +52,7 @@ Requires-Dist: pytest-xdist>=3.0; extra == "dev"
|
|
|
52
52
|
Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
|
|
53
53
|
Requires-Dist: scipy>=1.11; extra == "dev"
|
|
54
54
|
Requires-Dist: fastmcp>=2.0; python_version >= "3.10" and extra == "dev"
|
|
55
|
+
Requires-Dist: pyyaml>=6.0; extra == "dev"
|
|
55
56
|
Requires-Dist: ruff>=0.4; extra == "dev"
|
|
56
57
|
Requires-Dist: build>=1.0; extra == "dev"
|
|
57
58
|
Requires-Dist: twine>=5.0; extra == "dev"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|