matrx-seo 0.1.330__tar.gz → 0.1.332__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.
Files changed (302) hide show
  1. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/PKG-INFO +3 -3
  2. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/db/models_seo.py +52 -52
  3. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/pyproject.toml +3 -3
  4. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/.gitignore +0 -0
  5. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/CLAUDE.md +0 -0
  6. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/DEPLOY.md +0 -0
  7. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/Dockerfile +0 -0
  8. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/INDEPENDENCE.md +0 -0
  9. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/README.md +0 -0
  10. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/deploy.sh +0 -0
  11. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/FEATURE.md +0 -0
  12. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/__init__.py +0 -0
  13. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/access.py +0 -0
  14. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/adapters.py +0 -0
  15. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/adapters_registry.py +0 -0
  16. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/ai_visibility_design.py +0 -0
  17. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/ai_visibility_panel.py +0 -0
  18. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/api_contracts.py +0 -0
  19. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/artifact_writers.py +0 -0
  20. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/authority_enrichment.py +0 -0
  21. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/authority_score.py +0 -0
  22. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/backlink_change.py +0 -0
  23. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/backlink_enrichment.py +0 -0
  24. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/backlink_refresh.py +0 -0
  25. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/budget.py +0 -0
  26. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/change_anomaly.py +0 -0
  27. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/collection_outcome.py +0 -0
  28. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/competitor_classification.py +0 -0
  29. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/config.py +0 -0
  30. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/contracts.py +0 -0
  31. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/coverage.py +0 -0
  32. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/db/__init__.py +0 -0
  33. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/db/db_requirements.py +0 -0
  34. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/db/grants.yaml +0 -0
  35. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/db/models_host.py +0 -0
  36. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/domain_link_gap.py +0 -0
  37. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/facet_registry.py +0 -0
  38. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/fakes.py +0 -0
  39. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/identity.py +0 -0
  40. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/keyword_plane.py +0 -0
  41. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/knobs.py +0 -0
  42. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/link_gap_request.py +0 -0
  43. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/local_grid.py +0 -0
  44. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/market_math.py +0 -0
  45. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260721095300_seo_foundation.sql +0 -0
  46. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260721123000_seo_snapshot_and_binding_followup.sql +0 -0
  47. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260721131500_seo_collection_tasks_and_leases.sql +0 -0
  48. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260721134500_seo_collection_operation.sql +0 -0
  49. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260721143000_seo_collection_receipt.sql +0 -0
  50. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260721150000_seo_provider_call_ledger.sql +0 -0
  51. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260721160000_search_performance_dimensions.sql +0 -0
  52. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260721163327_remove_noncanonical_seo_project_schema.sql +0 -0
  53. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260721170000_web_analytics_ga4_metrics.sql +0 -0
  54. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260721170100_web_analytics_history_identity.sql +0 -0
  55. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260721190000_seo_canonical_rebuild.sql +0 -0
  56. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260723013000_seo_backlink_foundation.sql +0 -0
  57. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260723024500_batch_keyword_identity_upsert.sql +0 -0
  58. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260723043000_site_keyword_performance_view.sql +0 -0
  59. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260723150000_seo_collection_run_result.sql +0 -0
  60. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260723151000_keyword_language_bridge_heal.sql +0 -0
  61. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260723160000_collection_run_canonical_access.sql +0 -0
  62. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260723170000_canonical_site_page_attribution_and_location.sql +0 -0
  63. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260723171500_backfill_gsc_collection_run_site_id.sql +0 -0
  64. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260723180000_keyword_market_observation_history.sql +0 -0
  65. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260810170000_seo_backlink_enrichment_foundation.sql +0 -0
  66. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260810183000_seo_backlink_human_resolution.sql +0 -0
  67. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260811090000_backlink_assessment_query_columns.sql +0 -0
  68. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260811090100_correct_backlink_assessment_query_paths.sql +0 -0
  69. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260811093000_competitor_opportunity_autopsy.sql +0 -0
  70. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260811100000_seo_ai_visibility_evidence_system.sql +0 -0
  71. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260811113000_digital_pr_reputation_case_foundation.sql +0 -0
  72. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260811120000_seo_change_theory_tracking_system.sql +0 -0
  73. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260811120100_seo_change_scope_guard_table_branches.sql +0 -0
  74. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260811120200_seo_untracked_change_view_identity.sql +0 -0
  75. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260811120300_seo_change_query_indexes.sql +0 -0
  76. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260812190000_ai_visibility_share_reports.sql +0 -0
  77. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260813180000_seo_page_measurement_health.sql +0 -0
  78. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260815120000_seo_backlink_change_events.sql +0 -0
  79. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260816100000_seo_serp_prospecting.sql +0 -0
  80. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260816140000_seo_coverage_monitoring.sql +0 -0
  81. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260816140000_serp_mention_import_variant.sql +0 -0
  82. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260816140100_serp_opportunity_broken_link_columns.sql +0 -0
  83. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260816140200_serp_opportunity_broken_link_index.sql +0 -0
  84. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260816140300_party_serp_prospect_payload_v2.sql +0 -0
  85. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260816150000_link_gap_domain_enriched_at.sql +0 -0
  86. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260816160000_seo_ai_visibility_panel.sql +0 -0
  87. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260816160100_coverage_mention_ai_visibility_source.sql +0 -0
  88. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260817220443_receipt_run_indexes.sql +0 -0
  89. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260821190000_rank_target_base_entity_heal.sql +0 -0
  90. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260821235500_facet_registry_service_reach.sql +0 -0
  91. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260822233000_search_performance_site_provider_count_index.sql +0 -0
  92. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260914161418_seo_topical_map_01a_tables.sql +0 -0
  93. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260914161446_seo_topical_map_01b_columns.sql +0 -0
  94. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260914161833_seo_topical_map_02_functions.sql +0 -0
  95. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260914161950_seo_topical_map_03_association_labels.sql +0 -0
  96. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260914162255_seo_topical_map_04_outline_order.sql +0 -0
  97. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260914162344_seo_topical_map_05_outline_marker_fix.sql +0 -0
  98. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260914162448_seo_topical_map_06_marker_key.sql +0 -0
  99. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260915184711_seo_topical_map_07_agent_surface.sql +0 -0
  100. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260915184814_seo_topical_map_08_dry_run.sql +0 -0
  101. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260915184832_seo_topical_map_09_dry_run_cleanup.sql +0 -0
  102. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260915200000_seo_topical_map_10_access_leaks.sql +0 -0
  103. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260915200100_seo_topical_map_11_tenancy_scope.sql +0 -0
  104. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260915200200_seo_topical_map_12_no_temp_tables.sql +0 -0
  105. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260915200300_seo_topical_map_13_registry_and_small.sql +0 -0
  106. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260915200400_seo_topical_map_14_client_doors.sql +0 -0
  107. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260915210000_seo_topical_map_15_argument_access.sql +0 -0
  108. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260915220000_seo_topical_map_16_null_is_an_argument.sql +0 -0
  109. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260915230000_seo_topical_map_17_null_guards_and_edge_payloads.sql +0 -0
  110. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260916000000_seo_topical_map_18_no_hidden_counts.sql +0 -0
  111. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260916100000_seo_topical_map_19_page_intents.sql +0 -0
  112. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260917100000_seo_topical_map_20_every_brand_has_a_map.sql +0 -0
  113. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260917120000_seo_topical_map_21_maps_carry_the_offerings.sql +0 -0
  114. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260917130000_seo_topical_map_22_a_page_never_vanishes.sql +0 -0
  115. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260917150000_seo_topical_map_23_the_assigner_keeps_the_map_current.sql +0 -0
  116. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260918100000_seo_topical_map_23_a_persons_edge_is_never_overwritten.sql +0 -0
  117. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260918120000_seo_topical_map_24_geography_is_a_facet.sql +0 -0
  118. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260918140000_seo_topical_map_25_a_leftover_string_is_not_a_place.sql +0 -0
  119. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260918160000_seo_topical_map_26_the_map_itself_refuses_a_place.sql +0 -0
  120. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260918180000_seo_topical_map_27_a_facet_edge_cannot_be_destroyed_by_a_lower_source.sql +0 -0
  121. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260918200000_seo_topical_map_28_the_door_never_says_23505.sql +0 -0
  122. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260918220000_seo_topical_map_29_a_topics_pages_are_measured_once.sql +0 -0
  123. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260929170000_seo_location_code_rows_have_their_own_identity.sql +0 -0
  124. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260930120000_seo_topical_map_30_every_legacy_home_gets_its_map_home.sql +0 -0
  125. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260930210000_seo_topical_map_31_a_trashed_map_takes_its_topics_through_the_platform_cascade.sql +0 -0
  126. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/migrations/20260930230000_seo_topical_map_32_an_offerings_worth_lives_on_its_map_topic.sql +0 -0
  127. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/orm_identity.py +0 -0
  128. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/orm_repository.py +0 -0
  129. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/page_link_gap.py +0 -0
  130. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/pagespeed_coverage.py +0 -0
  131. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/pagespeed_history.py +0 -0
  132. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/payload_backfill.py +0 -0
  133. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/FEATURE.md +0 -0
  134. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/__init__.py +0 -0
  135. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/bing_webmaster.py +0 -0
  136. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/brave.py +0 -0
  137. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/dataforseo/__init__.py +0 -0
  138. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/dataforseo/adapter.py +0 -0
  139. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/dataforseo/ai_answers.py +0 -0
  140. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/dataforseo/backlinks.py +0 -0
  141. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/dataforseo/client.py +0 -0
  142. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/dataforseo/contracts.py +0 -0
  143. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/dataforseo/labs_keywords.py +0 -0
  144. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/dataforseo/link_gap.py +0 -0
  145. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/dataforseo/operations.py +0 -0
  146. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/dataforseo/pricing.py +0 -0
  147. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/dataforseo/serp_organic.py +0 -0
  148. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/dataforseo/serp_prospect.py +0 -0
  149. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/dataforseo/transport.py +0 -0
  150. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/ga4.py +0 -0
  151. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/gdelt.py +0 -0
  152. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/gsc.py +0 -0
  153. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/pagespeed.py +0 -0
  154. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/serpapi.py +0 -0
  155. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/serpapi_client.py +0 -0
  156. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/providers/serpapi_locations.py +0 -0
  157. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/rank_matching.py +0 -0
  158. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/rank_notation.py +0 -0
  159. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/repository.py +0 -0
  160. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/search_opportunity.py +0 -0
  161. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/serp_prospecting.py +0 -0
  162. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/service.py +0 -0
  163. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/share_of_voice.py +0 -0
  164. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/standalone/__init__.py +0 -0
  165. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/standalone/app.py +0 -0
  166. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/standalone/console.html +0 -0
  167. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/matrx_seo/universal_facets.py +0 -0
  168. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/scripts/collapse_4_5_checks.sql +0 -0
  169. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/scripts/independence_gate.sh +0 -0
  170. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/scripts/run_local.sh +0 -0
  171. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/conftest.py +0 -0
  172. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-heldout-airalo/cases/case-06-airalo/blind_design_brief.json +0 -0
  173. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-heldout-airalo/cases/case-06-airalo/buyer_jobs.json +0 -0
  174. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-heldout-airalo/cases/case-06-airalo/contamination_register.yaml +0 -0
  175. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-heldout-airalo/cases/case-06-airalo/icp_hypotheses.json +0 -0
  176. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-heldout-airalo/cases/case-06-airalo/measurement_charter.json +0 -0
  177. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-heldout-airalo/cases/case-06-airalo/panel.yaml +0 -0
  178. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-heldout-airalo/cases/case-06-airalo/panel_change_ledger.json +0 -0
  179. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-heldout-airalo/cases/case-06-airalo/panel_report.md +0 -0
  180. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-heldout-airalo/cases/case-06-airalo/prompt_architecture.json +0 -0
  181. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-heldout-airalo/cases/case-06-airalo/prompt_qa.json +0 -0
  182. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-heldout-airalo/cases/case-06-airalo/prompt_universe.json +0 -0
  183. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-heldout-airalo/cases/case-06-airalo/run_manifest_template.json +0 -0
  184. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-heldout-airalo/cases/case-06-airalo/source_manifest.json +0 -0
  185. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-heldout-airalo/cases/case-06-airalo/tracking_plan.md +0 -0
  186. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-retest-zocdoc/cases/case-04-zocdoc/blind_design_brief.json +0 -0
  187. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-retest-zocdoc/cases/case-04-zocdoc/buyer_jobs.json +0 -0
  188. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-retest-zocdoc/cases/case-04-zocdoc/contamination_register.yaml +0 -0
  189. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-retest-zocdoc/cases/case-04-zocdoc/icp_hypotheses.json +0 -0
  190. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-retest-zocdoc/cases/case-04-zocdoc/measurement_charter.json +0 -0
  191. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-retest-zocdoc/cases/case-04-zocdoc/panel.yaml +0 -0
  192. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-retest-zocdoc/cases/case-04-zocdoc/panel_change_ledger.json +0 -0
  193. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-retest-zocdoc/cases/case-04-zocdoc/panel_report.md +0 -0
  194. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-retest-zocdoc/cases/case-04-zocdoc/prompt_architecture.json +0 -0
  195. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-retest-zocdoc/cases/case-04-zocdoc/prompt_qa.json +0 -0
  196. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-retest-zocdoc/cases/case-04-zocdoc/prompt_universe.json +0 -0
  197. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-retest-zocdoc/cases/case-04-zocdoc/run_manifest_template.json +0 -0
  198. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-retest-zocdoc/cases/case-04-zocdoc/source_manifest.json +0 -0
  199. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/2026-07-25-opus5-retest-zocdoc/cases/case-04-zocdoc/tracking_plan.md +0 -0
  200. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/LICENSE +0 -0
  201. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/README.md +0 -0
  202. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/grader/_common.py +0 -0
  203. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ai_visibility_panel/grader/grade.py +0 -0
  204. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/bing_webmaster_performance.json +0 -0
  205. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/brave_web_rank_pages.json +0 -0
  206. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/dataforseo/backlinks/representative.json +0 -0
  207. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/dataforseo/labs_keywords/bulk_keyword_difficulty_us.json +0 -0
  208. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/dataforseo/labs_keywords/keyword_overview_us.json +0 -0
  209. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/dataforseo/labs_keywords/keywords_for_keywords_iceland.json +0 -0
  210. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/dataforseo/labs_keywords/labs_locations_and_languages.json +0 -0
  211. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/dataforseo/labs_keywords/related_data_destruction_us.json +0 -0
  212. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/dataforseo/labs_keywords/related_empty_seed_us.json +0 -0
  213. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/dataforseo/llm_mentions_cross_aggregated_live.json +0 -0
  214. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/dataforseo_domain_intersection_live.json +0 -0
  215. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/dataforseo_serp_organic_w3c_validator_live.json +0 -0
  216. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ga4/metadata.json +0 -0
  217. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ga4/report_page_1.json +0 -0
  218. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/ga4/report_page_2.json +0 -0
  219. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/gsc_search_analytics_pages.json +0 -0
  220. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/pagespeed/mobile_full.json +0 -0
  221. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/pagespeed/mobile_lighthouse13.json +0 -0
  222. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/fixtures/serpapi/google_rank_austin.json +0 -0
  223. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/matrx_seo_door_world.py +0 -0
  224. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_access.py +0 -0
  225. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_ai_answer_mentions.py +0 -0
  226. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_ai_visibility_design.py +0 -0
  227. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_ai_visibility_design_parity.py +0 -0
  228. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_ai_visibility_panel.py +0 -0
  229. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_artifact_writers.py +0 -0
  230. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_authority_score.py +0 -0
  231. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_backlink_change.py +0 -0
  232. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_backlink_enrichment.py +0 -0
  233. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_backlink_pagination.py +0 -0
  234. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_backlink_refresh.py +0 -0
  235. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_bing_webmaster.py +0 -0
  236. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_bing_webmaster_live.py +0 -0
  237. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_brave_live.py +0 -0
  238. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_brave_rank_adapter.py +0 -0
  239. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_budget.py +0 -0
  240. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_collection_outcome.py +0 -0
  241. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_collection_service.py +0 -0
  242. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_command_and_resume.py +0 -0
  243. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_competitor_classification.py +0 -0
  244. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_config_credentials.py +0 -0
  245. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_coverage.py +0 -0
  246. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_dataforseo.py +0 -0
  247. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_dataforseo_backlink_adapter.py +0 -0
  248. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_dataforseo_backlinks.py +0 -0
  249. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_dataforseo_live.py +0 -0
  250. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_domain_link_gap.py +0 -0
  251. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_ga4_live.py +0 -0
  252. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_ga4_provider.py +0 -0
  253. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_gsc_live.py +0 -0
  254. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_gsc_provider.py +0 -0
  255. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_independence.py +0 -0
  256. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_labs_keywords_normalizer.py +0 -0
  257. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_link_gap.py +0 -0
  258. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_link_gap_adapter.py +0 -0
  259. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_list_discoverable_runs.py +0 -0
  260. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_local_grid.py +0 -0
  261. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_market_math.py +0 -0
  262. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_openseo_core_registration.py +0 -0
  263. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_orm_identity_batch.py +0 -0
  264. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_orm_repository_batch.py +0 -0
  265. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_orm_repository_live.py +0 -0
  266. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_page_link_gap.py +0 -0
  267. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_pagespeed_coverage.py +0 -0
  268. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_pagespeed_lighthouse13.py +0 -0
  269. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_pagespeed_live.py +0 -0
  270. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_pagespeed_provider.py +0 -0
  271. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_payload_backfill.py +0 -0
  272. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_price_book_backlinks_yield.py +0 -0
  273. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_price_book_calibration_live.py +0 -0
  274. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_provider_call_retry_merge.py +0 -0
  275. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_rank_matching.py +0 -0
  276. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_receipt_index_contract.py +0 -0
  277. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_schedule_status_index_contract.py +0 -0
  278. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_search_opportunity.py +0 -0
  279. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_seo_access_door_rules_generated.py +0 -0
  280. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_seo_map_door_rules_generated.py +0 -0
  281. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_serp_organic_rank_snapshot.py +0 -0
  282. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_serp_prospecting.py +0 -0
  283. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_serpapi_client.py +0 -0
  284. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_serpapi_live.py +0 -0
  285. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_serpapi_locations.py +0 -0
  286. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_serpapi_provider.py +0 -0
  287. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_share_of_voice.py +0 -0
  288. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_site_door_access_before_existence.py +0 -0
  289. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_spend_approval_gate.py +0 -0
  290. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_standalone_boot.py +0 -0
  291. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_standalone_organization_admission.py +0 -0
  292. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_stored_observation_count.py +0 -0
  293. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/tests/test_topical_map_door_contract.py +0 -0
  294. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/trials/__init__.py +0 -0
  295. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/trials/dataforseo/__init__.py +0 -0
  296. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/trials/dataforseo/certify_all.py +0 -0
  297. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/trials/dataforseo/keyword_ideas.py +0 -0
  298. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/trials/dataforseo/keyword_search_volume.py +0 -0
  299. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/trials/dataforseo/keyword_suggestions.py +0 -0
  300. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/trials/dataforseo/keywords_for_site.py +0 -0
  301. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/trials/dataforseo/related_keywords.py +0 -0
  302. {matrx_seo-0.1.330 → matrx_seo-0.1.332}/trials/dataforseo/trial_runtime.py +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: matrx-seo
3
- Version: 0.1.330
3
+ Version: 0.1.332
4
4
  Summary: Provider-neutral SEO collection contracts and canonical persistence.
5
5
  Requires-Python: >=3.13
6
6
  Requires-Dist: httpx>=0.28
7
- Requires-Dist: matrx-orm>=3.1.216
8
- Requires-Dist: matrx-scraper>=0.2.322
7
+ Requires-Dist: matrx-orm>=3.1.217
8
+ Requires-Dist: matrx-scraper>=0.2.324
9
9
  Requires-Dist: matrx-utils>=2.0.63
10
10
  Requires-Dist: pydantic>=2.12
11
11
  Provides-Extra: dev
@@ -117,7 +117,7 @@ class ShownTo(str, Enum):
117
117
  class CollectionRun(MatrxEntity):
118
118
  id = UUIDField(primary_key=True, null=False)
119
119
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
120
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', null=False)
120
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', null=False)
121
121
  provider = TextField(null=False)
122
122
  capability = TextField(null=False)
123
123
  operation = TextField(null=False)
@@ -150,7 +150,7 @@ class CollectionRun(MatrxEntity):
150
150
  source_crawl_session_id = UUIDField()
151
151
  result = JSONBField()
152
152
  metadata = JSONBField(null=False, default={})
153
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
153
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
154
154
  version = IntegerField(null=False, default=1)
155
155
  visibility = EnumField(enum_class=Visibility, null=False)
156
156
  custom_fields = JSONBField(null=False, default={})
@@ -194,8 +194,8 @@ class CoverageTracker(MatrxEntity):
194
194
  mention_count = IntegerField(null=False, default=0)
195
195
  dedupe_key = TextField(null=False)
196
196
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
197
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
198
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
197
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
198
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
199
199
  created_at = DateTimeField(null=False)
200
200
  updated_at = DateTimeField(null=False)
201
201
  deleted_at = DateTimeField()
@@ -273,8 +273,8 @@ class EngineSchedule(MatrxEntity):
273
273
  enabled = BooleanField(null=False, default=False)
274
274
  notes = TextField()
275
275
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
276
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
277
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
276
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
277
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
278
278
  created_at = DateTimeField(null=False)
279
279
  updated_at = DateTimeField(null=False)
280
280
  deleted_at = DateTimeField()
@@ -329,8 +329,8 @@ class GeoPlace(MatrxEntity):
329
329
  ambiguity_reason = TextField()
330
330
  is_active = BooleanField(null=False, default=True)
331
331
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
332
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
333
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
332
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
333
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
334
334
  created_at = DateTimeField(null=False)
335
335
  updated_at = DateTimeField(null=False)
336
336
  deleted_at = DateTimeField()
@@ -372,8 +372,8 @@ class GscDigRule(MatrxEntity):
372
372
  is_template = BooleanField(null=False, default=False)
373
373
  site_id = ForeignKey(to_model='Site', to_column='id', to_schema='web', )
374
374
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
375
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
376
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
375
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
376
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
377
377
  created_at = DateTimeField(null=False)
378
378
  updated_at = DateTimeField(null=False)
379
379
  deleted_at = DateTimeField()
@@ -412,8 +412,8 @@ class Keyword(MatrxEntity):
412
412
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
413
413
  created_at = DateTimeField(null=False)
414
414
  updated_at = DateTimeField(null=False)
415
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
416
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
415
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
416
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
417
417
  deleted_at = DateTimeField()
418
418
  metadata = JSONBField(null=False, default={})
419
419
  phrase = TextField(null=False)
@@ -480,15 +480,15 @@ class LandscapeBrief(MatrxEntity):
480
480
  status = TextField(null=False, default='draft')
481
481
  auto_accept_at = DateTimeField()
482
482
  reviewed_at = DateTimeField()
483
- reviewed_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
483
+ reviewed_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
484
484
  generated_at = DateTimeField()
485
485
  agent_run_id = UUIDField()
486
486
  created_at = DateTimeField(null=False)
487
487
  updated_at = DateTimeField(null=False)
488
488
  version = IntegerField(null=False, default=1)
489
489
  metadata = JSONBField(null=False, default={})
490
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
491
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
490
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
491
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
492
492
  deleted_at = DateTimeField()
493
493
  scope = TextField(null=False, default='site')
494
494
  brand_id = ForeignKey(to_model='Brand', to_column='id', to_schema='web', null=False)
@@ -621,8 +621,8 @@ class PageMeasurementHealth(MatrxEntity):
621
621
  release_reason = TextField()
622
622
  created_at = DateTimeField(null=False)
623
623
  updated_at = DateTimeField(null=False)
624
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
625
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
624
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
625
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
626
626
  version = IntegerField(null=False, default=1)
627
627
  metadata = JSONBField(null=False, default={})
628
628
  deleted_at = DateTimeField()
@@ -850,11 +850,11 @@ class StarterPack(MatrxEntity):
850
850
  source_corpus = JSONBField(null=False, default=[])
851
851
  proposal = JSONBField()
852
852
  ratified_at = DateTimeField()
853
- ratified_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
853
+ ratified_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
854
854
  ratification_notes = TextField()
855
855
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
856
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
857
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
856
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
857
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
858
858
  created_at = DateTimeField(null=False)
859
859
  updated_at = DateTimeField(null=False)
860
860
  deleted_at = DateTimeField()
@@ -975,8 +975,8 @@ class Topic(MatrxEntity):
975
975
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
976
976
  created_at = DateTimeField(null=False)
977
977
  updated_at = DateTimeField(null=False)
978
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
979
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
978
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
979
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
980
980
  deleted_at = DateTimeField()
981
981
  version = IntegerField(null=False, default=1)
982
982
  metadata = JSONBField(null=False, default={})
@@ -1024,8 +1024,8 @@ class TopicalMap(MatrxEntity):
1024
1024
  description = TextField()
1025
1025
  status = TextField(null=False, default='draft')
1026
1026
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
1027
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1028
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1027
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1028
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1029
1029
  created_at = DateTimeField(null=False)
1030
1030
  updated_at = DateTimeField(null=False)
1031
1031
  deleted_at = DateTimeField()
@@ -1370,8 +1370,8 @@ class CoverageMention(MatrxEntity):
1370
1370
  alerted_at = DateTimeField()
1371
1371
  dedupe_key = TextField(null=False)
1372
1372
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
1373
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1374
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1373
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1374
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1375
1375
  created_at = DateTimeField(null=False)
1376
1376
  updated_at = DateTimeField(null=False)
1377
1377
  version = IntegerField(null=False, default=1)
@@ -1452,8 +1452,8 @@ class KeywordClassRule(MatrxEntity):
1452
1452
  is_template = BooleanField(null=False, default=False)
1453
1453
  site_id = ForeignKey(to_model='Site', to_column='id', to_schema='web', )
1454
1454
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
1455
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1456
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1455
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1456
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1457
1457
  created_at = DateTimeField(null=False)
1458
1458
  updated_at = DateTimeField(null=False)
1459
1459
  deleted_at = DateTimeField()
@@ -1529,8 +1529,8 @@ class KeywordEdge(MatrxEntity):
1529
1529
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
1530
1530
  created_at = DateTimeField(null=False)
1531
1531
  updated_at = DateTimeField(null=False)
1532
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1533
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1532
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1533
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1534
1534
  deleted_at = DateTimeField()
1535
1535
  version = IntegerField(null=False, default=1)
1536
1536
  metadata = JSONBField(null=False, default={})
@@ -1581,8 +1581,8 @@ class KeywordPlace(MatrxEntity):
1581
1581
  source = TextField(null=False, default='gazetteer')
1582
1582
  detector_version = TextField(null=False)
1583
1583
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
1584
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1585
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1584
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1585
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1586
1586
  created_at = DateTimeField(null=False)
1587
1587
  updated_at = DateTimeField(null=False)
1588
1588
  deleted_at = DateTimeField()
@@ -1622,8 +1622,8 @@ class KeywordTopic(MatrxEntity):
1622
1622
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
1623
1623
  created_at = DateTimeField(null=False)
1624
1624
  updated_at = DateTimeField(null=False)
1625
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1626
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1625
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1626
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1627
1627
  deleted_at = DateTimeField()
1628
1628
  version = IntegerField(null=False, default=1)
1629
1629
  metadata = JSONBField(null=False, default={})
@@ -1718,8 +1718,8 @@ class MapFacetValue(MatrxEntity):
1718
1718
  ref_type = TextField()
1719
1719
  ref_id = UUIDField()
1720
1720
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
1721
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1722
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1721
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1722
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1723
1723
  created_at = DateTimeField(null=False)
1724
1724
  updated_at = DateTimeField(null=False)
1725
1725
  deleted_at = DateTimeField()
@@ -1845,8 +1845,8 @@ class RankTarget(MatrxEntity):
1845
1845
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
1846
1846
  created_at = DateTimeField(null=False)
1847
1847
  updated_at = DateTimeField(null=False)
1848
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1849
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1848
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1849
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1850
1850
  deleted_at = DateTimeField()
1851
1851
  metadata = JSONBField(null=False, default={})
1852
1852
  keyword_id = ForeignKey(to_model=Keyword, to_column='id', to_schema='seo', null=False)
@@ -1958,8 +1958,8 @@ class SiteKeywordOffering(MatrxEntity):
1958
1958
  assigned_by = TextField()
1959
1959
  notes = TextField()
1960
1960
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
1961
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1962
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
1961
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1962
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
1963
1963
  created_at = DateTimeField(null=False)
1964
1964
  updated_at = DateTimeField(null=False)
1965
1965
  deleted_at = DateTimeField()
@@ -2168,18 +2168,18 @@ class TrackerStory(MatrxEntity):
2168
2168
  off_policy = BooleanField()
2169
2169
  newsworthiness_score = SmallIntegerField()
2170
2170
  newsworthiness_band = TextField()
2171
- surfaced_override_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
2171
+ surfaced_override_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
2172
2172
  surfaced_override_at = DateTimeField()
2173
2173
  alerted_at = DateTimeField()
2174
2174
  consolidated_into_story_key = TextField()
2175
2175
  evidence = JSONBField(null=False, default=[])
2176
- dismissed_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
2176
+ dismissed_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
2177
2177
  dismissed_at = DateTimeField()
2178
2178
  dismissed_reason = TextField()
2179
2179
  feedback_note = TextField()
2180
2180
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
2181
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
2182
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
2181
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
2182
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
2183
2183
  created_at = DateTimeField(null=False)
2184
2184
  updated_at = DateTimeField(null=False)
2185
2185
  deleted_at = DateTimeField()
@@ -2488,8 +2488,8 @@ class KeywordFacet(MatrxEntity):
2488
2488
  classifier_version = TextField()
2489
2489
  notes = TextField()
2490
2490
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
2491
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
2492
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
2491
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
2492
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
2493
2493
  created_at = DateTimeField(null=False)
2494
2494
  updated_at = DateTimeField(null=False)
2495
2495
  deleted_at = DateTimeField()
@@ -2713,7 +2713,7 @@ class ReputationCase(MatrxEntity):
2713
2713
  class SearchPerformanceDaily(MatrxEntity):
2714
2714
  id = UUIDField(primary_key=True, null=False)
2715
2715
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
2716
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', null=False)
2716
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', null=False)
2717
2717
  run_id = ForeignKey(to_model=CollectionRun, to_column='id', to_schema='seo', null=False)
2718
2718
  raw_payload_id = ForeignKey(to_model=RawPayload, to_column='id', to_schema='seo', )
2719
2719
  provider = TextField(null=False)
@@ -2884,7 +2884,7 @@ class SiteOfferingValue(MatrxEntity):
2884
2884
  class WebAnalyticsDaily(MatrxEntity):
2885
2885
  id = UUIDField(primary_key=True, null=False)
2886
2886
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
2887
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', null=False)
2887
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', null=False)
2888
2888
  run_id = ForeignKey(to_model=CollectionRun, to_column='id', to_schema='seo', null=False)
2889
2889
  raw_payload_id = ForeignKey(to_model=RawPayload, to_column='id', to_schema='seo', )
2890
2890
  provider = TextField(null=False)
@@ -3048,8 +3048,8 @@ class KeywordMarket(MatrxEntity):
3048
3048
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
3049
3049
  created_at = DateTimeField(null=False)
3050
3050
  updated_at = DateTimeField(null=False)
3051
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
3052
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
3051
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
3052
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
3053
3053
  deleted_at = DateTimeField()
3054
3054
  version = IntegerField(null=False, default=1)
3055
3055
  metadata = JSONBField(null=False, default={})
@@ -3168,8 +3168,8 @@ class BacklinkChangeEvent(MatrxEntity):
3168
3168
  dedupe_key = TextField(null=False)
3169
3169
  alerted_at = DateTimeField()
3170
3170
  organization_id = ForeignKey(to_model='Organizations', to_column='id', to_schema='iam', null=False)
3171
- created_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
3172
- updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='auth', )
3171
+ created_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
3172
+ updated_by = ForeignKey(to_model='Users', to_column='id', to_schema='iam', )
3173
3173
  created_at = DateTimeField(null=False)
3174
3174
  updated_at = DateTimeField(null=False)
3175
3175
  version = IntegerField(null=False, default=1)
@@ -1,18 +1,18 @@
1
1
  [project]
2
2
  name = "matrx-seo"
3
- version = "0.1.330"
3
+ version = "0.1.332"
4
4
  description = "Provider-neutral SEO collection contracts and canonical persistence."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13"
7
7
  dependencies = [
8
8
  "matrx-utils>=2.0.63",
9
- "matrx-orm>=3.1.216",
9
+ "matrx-orm>=3.1.217",
10
10
  # THE ONE Brave transport. matrx-seo's rank adapter consumes
11
11
  # matrx_scraper.search.BraveSearchClient — key selection, adaptive per-key
12
12
  # pacing, Retry-After retry and the typed 429-as-error live there ONCE.
13
13
  # 0.2.61 is the first release exporting BraveSearchResponse / NullRateLimiter
14
14
  # / the full web-search parameter surface this package needs.
15
- "matrx-scraper>=0.2.322",
15
+ "matrx-scraper>=0.2.324",
16
16
  "pydantic>=2.12",
17
17
  "httpx>=0.28",
18
18
  ]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes