horde-model-reference 5.3.0__tar.gz → 5.3.2__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 (419) hide show
  1. horde_model_reference-5.3.2/.env.example +514 -0
  2. {horde_model_reference-5.3.0/src/horde_model_reference.egg-info → horde_model_reference-5.3.2}/PKG-INFO +1 -1
  3. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/__init__.py +4 -0
  4. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/_version.py +3 -3
  5. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/backends/http_backend.py +32 -3
  6. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/on_disk_layout.py +60 -1
  7. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2/src/horde_model_reference.egg-info}/PKG-INFO +1 -1
  8. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference.egg-info/SOURCES.txt +3 -0
  9. horde_model_reference-5.3.2/src/horde_model_reference.egg-info/scm_file_list.json +411 -0
  10. horde_model_reference-5.3.2/src/horde_model_reference.egg-info/scm_version.json +8 -0
  11. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/backends/test_http_backend.py +31 -0
  12. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_on_disk_layout.py +63 -2
  13. horde_model_reference-5.3.2/tests/test_zimage_presence_contract.py +107 -0
  14. horde_model_reference-5.3.0/.env.example +0 -261
  15. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.dockerignore +0 -0
  16. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.env.primary.example +0 -0
  17. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.env.sync.example +0 -0
  18. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.git-blame-ignore-revs +0 -0
  19. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.github/workflows/codeql.yml +0 -0
  20. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.github/workflows/docker-publish.yml +0 -0
  21. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.github/workflows/docker-validation.yml +0 -0
  22. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.github/workflows/docs.yml +0 -0
  23. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.github/workflows/lint.yml +0 -0
  24. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.github/workflows/maintests.yml +0 -0
  25. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.github/workflows/prtests.yml +0 -0
  26. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.github/workflows/release.yml +0 -0
  27. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.gitignore +0 -0
  28. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.gitmodules +0 -0
  29. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.hadolint.yaml +0 -0
  30. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.pre-commit-config.yaml +0 -0
  31. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/.readthedocs.yaml +0 -0
  32. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/CONTRIBUTING.md +0 -0
  33. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/DEPLOYMENT.md +0 -0
  34. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/Dockerfile +0 -0
  35. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/LICENSE +0 -0
  36. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/MANIFEST.in +0 -0
  37. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/README.md +0 -0
  38. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docker-compose.redis.yml +0 -0
  39. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docker-compose.sync.example.yml +0 -0
  40. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docker-compose.yml +0 -0
  41. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/.pages +0 -0
  42. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/build_docs.py +0 -0
  43. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/concepts/.pages +0 -0
  44. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/concepts/analytics_pipeline.md +0 -0
  45. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/concepts/architecture_overview.md +0 -0
  46. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/concepts/canonical_format.md +0 -0
  47. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/concepts/design_decisions.md +0 -0
  48. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/concepts/http_service.md +0 -0
  49. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/concepts/integrations.md +0 -0
  50. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/concepts/request_lifecycle.md +0 -0
  51. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/concepts/sync_system.md +0 -0
  52. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/guides/.pages +0 -0
  53. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/guides/consume_the_http_api.md +0 -0
  54. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/guides/filter_models_for_a_worker.md +0 -0
  55. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/guides/installation.md +0 -0
  56. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/guides/offline_and_resilient_reads.md +0 -0
  57. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/guides/submit_models_via_the_api.md +0 -0
  58. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/guides/write_a_live_provider.md +0 -0
  59. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/.pages +0 -0
  60. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/analytics/.pages +0 -0
  61. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/analytics/base_cache.md +0 -0
  62. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/analytics/cache_hydrator.md +0 -0
  63. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/analytics/constants.md +0 -0
  64. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/analytics/deletion_risk_analysis.md +0 -0
  65. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/analytics/deletion_risk_cache.md +0 -0
  66. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/analytics/filter_presets.md +0 -0
  67. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/analytics/statistics.md +0 -0
  68. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/analytics/statistics_cache.md +0 -0
  69. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/analytics/text_model_grouping.md +0 -0
  70. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/analytics/text_model_parser.md +0 -0
  71. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/audit/.pages +0 -0
  72. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/audit/events.md +0 -0
  73. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/audit/reader.md +0 -0
  74. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/audit/replay.md +0 -0
  75. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/audit/writer.md +0 -0
  76. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/backends/.pages +0 -0
  77. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/backends/base.md +0 -0
  78. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/backends/filesystem_backend.md +0 -0
  79. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/backends/github_backend.md +0 -0
  80. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/backends/http_backend.md +0 -0
  81. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/backends/redis_backend.md +0 -0
  82. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/backends/replica_backend_base.md +0 -0
  83. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/cli/.pages +0 -0
  84. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/data/.pages +0 -0
  85. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/diff_service.md +0 -0
  86. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/http_retry.md +0 -0
  87. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/integrations/.pages +0 -0
  88. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/integrations/data_merger.md +0 -0
  89. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/integrations/horde_api_integration.md +0 -0
  90. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/integrations/horde_api_models.md +0 -0
  91. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/legacy/.pages +0 -0
  92. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/legacy/classes/.pages +0 -0
  93. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/legacy/classes/legacy_converters.md +0 -0
  94. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/legacy/classes/legacy_models.md +0 -0
  95. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/legacy/convert_all_legacy_dbs.md +0 -0
  96. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/legacy/text_csv_utils.md +0 -0
  97. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/legacy/validate_sd.md +0 -0
  98. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/legacy/validation/.pages +0 -0
  99. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/meta_consts.md +0 -0
  100. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/model_consts/.pages +0 -0
  101. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/model_consts/image.md +0 -0
  102. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/model_consts/shared.md +0 -0
  103. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/model_consts/text.md +0 -0
  104. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/model_kind_validation.md +0 -0
  105. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/model_reference_manager.md +0 -0
  106. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/model_reference_metadata.md +0 -0
  107. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/model_reference_records.md +0 -0
  108. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/path_consts.md +0 -0
  109. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/pending_queue/.pages +0 -0
  110. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/pending_queue/apply.md +0 -0
  111. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/pending_queue/audit_events.md +0 -0
  112. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/pending_queue/audit_view.md +0 -0
  113. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/pending_queue/diff_utils.md +0 -0
  114. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/pending_queue/models.md +0 -0
  115. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/pending_queue/service.md +0 -0
  116. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/pending_queue/store.md +0 -0
  117. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/providers/.pages +0 -0
  118. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/providers/base.md +0 -0
  119. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/providers/registry.md +0 -0
  120. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/providers/static_provider.md +0 -0
  121. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/query.md +0 -0
  122. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/query_fields.md +0 -0
  123. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/registries.md +0 -0
  124. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/.pages +0 -0
  125. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/app.md +0 -0
  126. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/pending_queue/.pages +0 -0
  127. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/pending_queue/audit_router.md +0 -0
  128. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/pending_queue/dependencies.md +0 -0
  129. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/pending_queue/router.md +0 -0
  130. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/shared.md +0 -0
  131. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/statistics/.pages +0 -0
  132. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/statistics/routers/.pages +0 -0
  133. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/statistics/routers/deletion_risk.md +0 -0
  134. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/statistics/routers/statistics.md +0 -0
  135. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v1/.pages +0 -0
  136. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v1/routers/.pages +0 -0
  137. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v1/routers/create_update.md +0 -0
  138. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v1/routers/metadata.md +0 -0
  139. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v1/routers/pending_queue.md +0 -0
  140. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v1/routers/pending_queue_audit.md +0 -0
  141. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v1/routers/references.md +0 -0
  142. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v1/routers/shared.md +0 -0
  143. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v1/routers/write_validations.md +0 -0
  144. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v2/.pages +0 -0
  145. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v2/models.md +0 -0
  146. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v2/routers/.pages +0 -0
  147. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v2/routers/metadata.md +0 -0
  148. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v2/routers/pending_queue.md +0 -0
  149. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v2/routers/pending_queue_audit.md +0 -0
  150. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v2/routers/references.md +0 -0
  151. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v2/routers/search.md +0 -0
  152. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v2/routers/text_utils.md +0 -0
  153. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v2/routers/user.md +0 -0
  154. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/service/v2/routers/write_validations.md +0 -0
  155. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/showcase/.pages +0 -0
  156. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/source_consts.md +0 -0
  157. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/sync/.pages +0 -0
  158. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/sync/comparator.md +0 -0
  159. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/sync/config.md +0 -0
  160. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/sync/github_client.md +0 -0
  161. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/sync/legacy_text_validator.md +0 -0
  162. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/sync/text_generation_serializer.md +0 -0
  163. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/sync/watch_mode.md +0 -0
  164. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/text_backend_names.md +0 -0
  165. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/text_model_duplicates.md +0 -0
  166. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/text_model_write_processor.md +0 -0
  167. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/horde_model_reference/util.md +0 -0
  168. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/index.md +0 -0
  169. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/reference/.pages +0 -0
  170. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/reference/api_deployments.md +0 -0
  171. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/reference/audit_trail.md +0 -0
  172. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/reference/glossary.md +0 -0
  173. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/reference/http_api/.pages +0 -0
  174. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/reference/http_api/conventions.md +0 -0
  175. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/reference/http_api/pending_queue_endpoints.md +0 -0
  176. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/reference/http_api/v1_endpoints.md +0 -0
  177. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/reference/http_api/v2_endpoints.md +0 -0
  178. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/reference/http_api/v2_text_utils.md +0 -0
  179. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/reference/legacy_csv_conversion.md +0 -0
  180. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/reference/model_providers.md +0 -0
  181. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/reference/model_reference_backend.md +0 -0
  182. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/reference/model_reference_records.md +0 -0
  183. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/reference/pending_queue.md +0 -0
  184. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/reference/replica_backend_base.md +0 -0
  185. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/stylesheets/extra.css +0 -0
  186. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/tutorials/.pages +0 -0
  187. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/tutorials/configuration_and_troubleshooting.md +0 -0
  188. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/tutorials/getting_started.md +0 -0
  189. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/tutorials/querying_models.md +0 -0
  190. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/tutorials/registering_providers.md +0 -0
  191. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/tutorials/using_the_http_api.md +0 -0
  192. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/docs/tutorials/working_with_records.md +0 -0
  193. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/examples/01_quickstart.py +0 -0
  194. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/examples/02_query_recipes.py +0 -0
  195. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/examples/03_working_with_records.py +0 -0
  196. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/examples/04_register_provider.py +0 -0
  197. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/examples/README.md +0 -0
  198. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/mkdocs.yml +0 -0
  199. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/pyproject.toml +0 -0
  200. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/schemas/stable_diffusion.example.json +0 -0
  201. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/schemas/stable_diffusion.schema.json +0 -0
  202. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/scripts/README.md +0 -0
  203. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/scripts/__init__.py +0 -0
  204. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/scripts/get_all_names.py +0 -0
  205. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/scripts/legacy_text/__init__.py +0 -0
  206. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/scripts/legacy_text/convert.py +0 -0
  207. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/scripts/legacy_text/defaults.json +0 -0
  208. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/scripts/legacy_text/generation_params.json +0 -0
  209. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/scripts/legacy_text/reverse_convert.py +0 -0
  210. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/scripts/sync/README.md +0 -0
  211. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/scripts/sync/__init__.py +0 -0
  212. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/scripts/sync/github_app_auth_example.md +0 -0
  213. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/scripts/sync/sync_github_references.py +0 -0
  214. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/scripts/verify_query_fields.py +0 -0
  215. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/setup.cfg +0 -0
  216. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/analytics/__init__.py +0 -0
  217. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/analytics/base_cache.py +0 -0
  218. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/analytics/cache_hydrator.py +0 -0
  219. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/analytics/constants.py +0 -0
  220. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/analytics/deletion_risk_analysis.py +0 -0
  221. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/analytics/deletion_risk_cache.py +0 -0
  222. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/analytics/filter_presets.py +0 -0
  223. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/analytics/statistics.py +0 -0
  224. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/analytics/statistics_cache.py +0 -0
  225. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/analytics/text_model_grouping.py +0 -0
  226. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/analytics/text_model_parser.py +0 -0
  227. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/audit/__init__.py +0 -0
  228. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/audit/events.py +0 -0
  229. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/audit/reader.py +0 -0
  230. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/audit/replay.py +0 -0
  231. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/audit/writer.py +0 -0
  232. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/backends/__init__.py +0 -0
  233. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/backends/base.py +0 -0
  234. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/backends/filesystem_backend.py +0 -0
  235. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/backends/github_backend.py +0 -0
  236. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/backends/local_readonly_backend.py +0 -0
  237. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/backends/redis_backend.py +0 -0
  238. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/backends/replica_backend_base.py +0 -0
  239. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/cli/__init__.py +0 -0
  240. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/cli/migrate_layout.py +0 -0
  241. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/data/defaults.json +0 -0
  242. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/data/generation_params.json +0 -0
  243. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/diff_service.py +0 -0
  244. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/download_engine.py +0 -0
  245. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/group_aliases.py +0 -0
  246. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/group_families.py +0 -0
  247. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/group_schema_store.py +0 -0
  248. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/http_retry.py +0 -0
  249. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/integrations/__init__.py +0 -0
  250. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/integrations/data_merger.py +0 -0
  251. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/integrations/horde_api_integration.py +0 -0
  252. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/integrations/horde_api_models.py +0 -0
  253. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/legacy/README.md +0 -0
  254. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/legacy/__init__.py +0 -0
  255. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/legacy/classes/__init__.py +0 -0
  256. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/legacy/classes/legacy_converters.py +0 -0
  257. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/legacy/classes/legacy_models.py +0 -0
  258. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/legacy/convert_all_legacy_dbs.py +0 -0
  259. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/legacy/text_csv_utils.py +0 -0
  260. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/legacy/validate_sd.py +0 -0
  261. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/meta_consts.py +0 -0
  262. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/model_consts/__init__.py +0 -0
  263. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/model_consts/image.py +0 -0
  264. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/model_consts/shared.py +0 -0
  265. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/model_consts/text.py +0 -0
  266. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/model_kind_validation.py +0 -0
  267. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/model_reference_manager.py +0 -0
  268. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/model_reference_metadata.py +0 -0
  269. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/model_reference_records.py +0 -0
  270. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/path_consts.py +0 -0
  271. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/pending_queue/__init__.py +0 -0
  272. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/pending_queue/apply.py +0 -0
  273. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/pending_queue/audit_events.py +0 -0
  274. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/pending_queue/audit_view.py +0 -0
  275. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/pending_queue/diff_utils.py +0 -0
  276. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/pending_queue/materialize.py +0 -0
  277. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/pending_queue/models.py +0 -0
  278. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/pending_queue/service.py +0 -0
  279. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/pending_queue/store.py +0 -0
  280. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/providers/__init__.py +0 -0
  281. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/providers/base.py +0 -0
  282. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/providers/pending_provider.py +0 -0
  283. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/providers/registry.py +0 -0
  284. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/providers/static_provider.py +0 -0
  285. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/py.typed +0 -0
  286. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/query.py +0 -0
  287. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/query_fields.py +0 -0
  288. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/registries.py +0 -0
  289. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/__init__.py +0 -0
  290. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/app.py +0 -0
  291. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/pending_queue/__init__.py +0 -0
  292. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/pending_queue/audit_router.py +0 -0
  293. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/pending_queue/dependencies.py +0 -0
  294. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/pending_queue/router.py +0 -0
  295. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/shared.py +0 -0
  296. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/statistics/__init__.py +0 -0
  297. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/statistics/routers/__init__.py +0 -0
  298. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/statistics/routers/deletion_risk.py +0 -0
  299. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/statistics/routers/statistics.py +0 -0
  300. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v1/__init__.py +0 -0
  301. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v1/routers/__init__.py +0 -0
  302. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v1/routers/create_update.py +0 -0
  303. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v1/routers/metadata.py +0 -0
  304. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v1/routers/pending_queue.py +0 -0
  305. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v1/routers/pending_queue_audit.py +0 -0
  306. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v1/routers/references.py +0 -0
  307. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v1/routers/shared.py +0 -0
  308. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v1/routers/write_validations.py +0 -0
  309. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v2/__init__.py +0 -0
  310. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v2/models.py +0 -0
  311. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v2/routers/__init__.py +0 -0
  312. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v2/routers/metadata.py +0 -0
  313. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v2/routers/pending_queue.py +0 -0
  314. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v2/routers/pending_queue_audit.py +0 -0
  315. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v2/routers/references.py +0 -0
  316. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v2/routers/search.py +0 -0
  317. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v2/routers/text_utils.py +0 -0
  318. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v2/routers/user.py +0 -0
  319. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/service/v2/routers/write_validations.py +0 -0
  320. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/showcase/README.md +0 -0
  321. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/source_consts.py +0 -0
  322. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/sync/__init__.py +0 -0
  323. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/sync/comparator.py +0 -0
  324. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/sync/config.py +0 -0
  325. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/sync/github_client.py +0 -0
  326. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/sync/legacy_text_validator.py +0 -0
  327. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/sync/text_generation_serializer.py +0 -0
  328. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/sync/watch_mode.py +0 -0
  329. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/text_backend_names.py +0 -0
  330. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/text_model_duplicates.py +0 -0
  331. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/text_model_write_processor.py +0 -0
  332. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference/util.py +0 -0
  333. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference.egg-info/dependency_links.txt +0 -0
  334. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference.egg-info/entry_points.txt +0 -0
  335. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference.egg-info/requires.txt +0 -0
  336. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/src/horde_model_reference.egg-info/top_level.txt +0 -0
  337. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/README.md +0 -0
  338. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/__init__.py +0 -0
  339. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/backends/__init__.py +0 -0
  340. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/backends/test_backends_init.py +0 -0
  341. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/backends/test_local_readonly_backend.py +0 -0
  342. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/backends/test_primary_mode.py +0 -0
  343. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/backends/test_redis_backend.py +0 -0
  344. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/check_model_ref_type_blocks.py +0 -0
  345. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/conftest.py +0 -0
  346. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/create_env_file_example.py +0 -0
  347. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/create_example_json.py +0 -0
  348. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/helpers.py +0 -0
  349. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/horde_api/__init__.py +0 -0
  350. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/horde_api/conftest.py +0 -0
  351. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/horde_api/test_data_merger.py +0 -0
  352. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/horde_api/test_deletion_risk_analysis_live.py +0 -0
  353. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/horde_api/test_deletion_risk_worker_count.py +0 -0
  354. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/horde_api/test_horde_api_integration.py +0 -0
  355. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/horde_api/test_horde_api_integration_live.py +0 -0
  356. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/horde_api/test_indexed_horde_types.py +0 -0
  357. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/integrations/test_stats_aggregation.py +0 -0
  358. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/pending_queue/test_apply.py +0 -0
  359. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/pending_queue/test_audit_view.py +0 -0
  360. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/pending_queue/test_diff_service.py +0 -0
  361. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/pending_queue/test_service.py +0 -0
  362. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/pending_queue/test_store.py +0 -0
  363. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/service/__init__.py +0 -0
  364. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/service/test_api_design_phase4.py +0 -0
  365. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/service/test_pending_models_endpoint.py +0 -0
  366. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/service/test_pending_queue_audit_endpoints.py +0 -0
  367. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/service/test_replica_backend_base.py +0 -0
  368. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/service/test_shared_allowlists.py +0 -0
  369. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/service/test_shared_auth.py +0 -0
  370. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/service/test_text_utils.py +0 -0
  371. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/service/test_user_roles_endpoint.py +0 -0
  372. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/service/test_v1_api.py +0 -0
  373. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/service/test_v2_api.py +0 -0
  374. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/service/test_v2_search.py +0 -0
  375. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/statistics_and_audit/__init__.py +0 -0
  376. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/statistics_and_audit/test_cache_hydrator.py +0 -0
  377. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/statistics_and_audit/test_deletion_risk_analysis.py +0 -0
  378. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/statistics_and_audit/test_extras_and_aliases.py +0 -0
  379. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/statistics_and_audit/test_group_families.py +0 -0
  380. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/statistics_and_audit/test_statistics.py +0 -0
  381. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/statistics_and_audit/test_statistics_cache.py +0 -0
  382. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/statistics_and_audit/test_text_model_grouping.py +0 -0
  383. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/statistics_and_audit/test_text_model_parser.py +0 -0
  384. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/sync/__init__.py +0 -0
  385. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/sync/test_comparator.py +0 -0
  386. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/sync/test_comparator_integration.py +0 -0
  387. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/sync/test_config.py +0 -0
  388. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/sync/test_github_client.py +0 -0
  389. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/sync/test_legacy_text_validator.py +0 -0
  390. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/sync/test_text_generation_serializer.py +0 -0
  391. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_audit_replay.py +0 -0
  392. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_audit_trail.py +0 -0
  393. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_broken_tutu_grouping.py +0 -0
  394. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_canonical_format.py +0 -0
  395. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_combined_model_statistics.py +0 -0
  396. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_consts.py +0 -0
  397. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_convert_legacy_database.py +0 -0
  398. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_converters.py +0 -0
  399. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_csv_rows_to_legacy_dict.py +0 -0
  400. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_download_engine.py +0 -0
  401. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_env_example.py +0 -0
  402. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_examples.py +0 -0
  403. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_metadata.py +0 -0
  404. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_migrate_layout.py +0 -0
  405. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_model_kind_validation.py +0 -0
  406. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_model_providers.py +0 -0
  407. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_model_reference_manager.py +0 -0
  408. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_pending_materialize.py +0 -0
  409. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_pending_provider.py +0 -0
  410. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_query.py +0 -0
  411. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_records.py +0 -0
  412. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_registries.py +0 -0
  413. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_scripts.py +0 -0
  414. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_text_generation_csv_conversion.py +0 -0
  415. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_text_generation_file_paths.py +0 -0
  416. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_text_model_duplicates.py +0 -0
  417. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_text_model_group.py +0 -0
  418. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/tests/test_text_model_write_processor.py +0 -0
  419. {horde_model_reference-5.3.0 → horde_model_reference-5.3.2}/uv.lock +0 -0
@@ -0,0 +1,514 @@
1
+ # Auto-generated example environment file for Horde Model Reference
2
+ # This file is generated by the settings_doc package.
3
+ # Do not edit this file manually.
4
+
5
+ # Generated on (UTC): 2026-03-26 22:29:13
6
+
7
+ # DEPLOYMENT QUICK START GUIDE
8
+
9
+ # Choose your deployment scenario and uncomment the relevant settings below:
10
+
11
+ # 1. REPLICA MODE (Default) - Client/Worker nodes
12
+ # - Uses GitHub or PRIMARY API to fetch model references
13
+ # - Set: HORDE_MODEL_REFERENCE_REPLICATE_MODE=REPLICA
14
+ # - Optionally set: HORDE_MODEL_REFERENCE_PRIMARY_API_URL=<your-primary-url>
15
+
16
+ # 2. PRIMARY MODE - Single Worker (No Redis)
17
+ # - Authoritative source for model references
18
+ # - Set: HORDE_MODEL_REFERENCE_REPLICATE_MODE=PRIMARY
19
+ # - No Redis configuration needed
20
+ # - Ideal for: Development, testing, low-traffic deployments
21
+
22
+ # 3. PRIMARY MODE - Multi-Worker (With Redis)
23
+ # - Authoritative source with distributed caching
24
+ # - Set: HORDE_MODEL_REFERENCE_REPLICATE_MODE=PRIMARY
25
+ # - Configure all HORDE_MODEL_REFERENCE_REDIS_* settings
26
+ # - Ideal for: Production, high-traffic deployments
27
+
28
+ # For detailed deployment instructions, see:
29
+ # - Docker: docker-compose.yml (single-worker)
30
+ # - Docker + Redis: docker-compose.redis.yml (multi-worker)
31
+ # - Non-Docker: DEPLOYMENT.md
32
+
33
+
34
+ ################################################################################
35
+ # Horde Model Reference Settings
36
+ ################################################################################
37
+
38
+ # Indicates if copies of the model reference are canonical or replicated. Clients should always be replicas.
39
+ # Possible values:
40
+ # `PRIMARY`, `REPLICA`
41
+ # HORDE_MODEL_REFERENCE_REPLICATE_MODE=REPLICA
42
+
43
+ # Whether to create the default model reference folders on initialization.
44
+ # HORDE_MODEL_REFERENCE_MAKE_FOLDERS=False
45
+
46
+ # The GitHub owner of the repository.
47
+ # HORDE_MODEL_REFERENCE_IMAGE_GITHUB_REPO__OWNER=Haidra-Org
48
+
49
+ # The name of the GitHub repository used for image model references.
50
+ # HORDE_MODEL_REFERENCE_IMAGE_GITHUB_REPO__NAME=AI-Horde-image-model-reference
51
+
52
+ # The GitHub branch of the repository.
53
+ # HORDE_MODEL_REFERENCE_IMAGE_GITHUB_REPO__BRANCH=main
54
+
55
+ # Settings for the GitHub proxy, if any.
56
+ # HORDE_MODEL_REFERENCE_IMAGE_GITHUB_REPO__PROXY_SETTINGS=
57
+
58
+ # The GitHub owner of the repository.
59
+ # HORDE_MODEL_REFERENCE_TEXT_GITHUB_REPO__OWNER=Haidra-Org
60
+
61
+ # The name of the GitHub repository used for text model references.
62
+ # HORDE_MODEL_REFERENCE_TEXT_GITHUB_REPO__NAME=AI-Horde-text-model-reference
63
+
64
+ # The GitHub branch of the repository.
65
+ # HORDE_MODEL_REFERENCE_TEXT_GITHUB_REPO__BRANCH=main
66
+
67
+ # Settings for the GitHub proxy, if any.
68
+ # HORDE_MODEL_REFERENCE_TEXT_GITHUB_REPO__PROXY_SETTINGS=
69
+
70
+ # The time-to-live for in memory caches of model reference files, in seconds.
71
+ # HORDE_MODEL_REFERENCE_CACHE_TTL_SECONDS=60
72
+
73
+ # The maximum number of attempts to retry downloading a legacy model reference file.
74
+ # HORDE_MODEL_REFERENCE_LEGACY_DOWNLOAD_RETRY_MAX_ATTEMPTS=3
75
+
76
+ # The backoff time in seconds between retry attempts when downloading a legacy model reference file.
77
+ # HORDE_MODEL_REFERENCE_LEGACY_DOWNLOAD_RETRY_BACKOFF_SECONDS=2
78
+
79
+ # Whether to use Redis for distributed caching. Only should be used in PRIMARY mode.
80
+ # HORDE_MODEL_REFERENCE_REDIS__USE_REDIS=False
81
+
82
+ # Redis connection URL. Format: redis://[:password]@host:port/db
83
+ # HORDE_MODEL_REFERENCE_REDIS__URL=redis://localhost:6379/0
84
+
85
+ # Connection pool size for Redis connections.
86
+ # HORDE_MODEL_REFERENCE_REDIS__POOL_SIZE=10
87
+
88
+ # Socket timeout in seconds for Redis operations.
89
+ # HORDE_MODEL_REFERENCE_REDIS__SOCKET_TIMEOUT=5
90
+
91
+ # Connection timeout in seconds when establishing Redis connection.
92
+ # HORDE_MODEL_REFERENCE_REDIS__SOCKET_CONNECT_TIMEOUT=5
93
+
94
+ # Maximum number of retry attempts for failed Redis operations.
95
+ # HORDE_MODEL_REFERENCE_REDIS__RETRY_MAX_ATTEMPTS=3
96
+
97
+ # Backoff time in seconds between retry attempts for Redis operations.
98
+ # HORDE_MODEL_REFERENCE_REDIS__RETRY_BACKOFF_SECONDS=0.5
99
+
100
+ # Prefix for all Redis keys to namespace model reference data.
101
+ # HORDE_MODEL_REFERENCE_REDIS__KEY_PREFIX=horde:model_ref
102
+
103
+ # TTL for cached entries in seconds. If None, uses cache_ttl_seconds from main settings.
104
+ # HORDE_MODEL_REFERENCE_REDIS__TTL_SECONDS=
105
+
106
+ # Enable pub/sub for cache invalidation across multiple PRIMARY workers.
107
+ # HORDE_MODEL_REFERENCE_REDIS__USE_PUBSUB=True
108
+
109
+ # Base URL of the PRIMARY server API for REPLICA clients to fetch model references from. This must include the service's /api root path; the backend appends /model_references/v2/{category}. If None, REPLICA clients will only use GitHub. Example: https://models.aihorde.net/api
110
+ # HORDE_MODEL_REFERENCE_PRIMARY_API_URL=https://models.aihorde.net/api
111
+
112
+ # Timeout in seconds for HTTP requests to PRIMARY API.
113
+ # HORDE_MODEL_REFERENCE_PRIMARY_API_TIMEOUT=10
114
+
115
+ # Whether REPLICA clients should fallback to GitHub if PRIMARY API is unavailable.
116
+ # HORDE_MODEL_REFERENCE_ENABLE_GITHUB_FALLBACK=True
117
+
118
+ # Whether PRIMARY mode should seed from GitHub on first initialization if local files don't exist. Only used in PRIMARY mode. If True, will download and convert legacy references once on startup.
119
+ # HORDE_MODEL_REFERENCE_GITHUB_SEED_ENABLED=False
120
+
121
+ # Which format is the canonical source of truth. Controls which API has write access. 'v2' (default): v2 API has CRUD, v1 API is read-only (converts from v2 to legacy). 'LEGACY': v1 API has CRUD, v2 API is read-only (converts from legacy to v2).
122
+ # Possible values:
123
+ # `LEGACY`, `v2`
124
+ # HORDE_MODEL_REFERENCE_CANONICAL_FORMAT=v2
125
+
126
+ # Timeout in seconds for Horde API requests to fetch model status, statistics, and worker information.
127
+ # HORDE_MODEL_REFERENCE_HORDE_API_TIMEOUT=30
128
+
129
+ # Cache TTL in seconds for Horde API responses. Uses Redis if available, otherwise in-memory caching.
130
+ # HORDE_MODEL_REFERENCE_HORDE_API_CACHE_TTL=60
131
+
132
+ # Cache TTL in seconds for category statistics. Uses Redis if available, otherwise in-memory caching.
133
+ # HORDE_MODEL_REFERENCE_STATISTICS_CACHE_TTL=300
134
+
135
+ # Cache TTL in seconds for category audit results. Uses Redis if available, otherwise in-memory caching.
136
+ # HORDE_MODEL_REFERENCE_AUDIT_CACHE_TTL=300
137
+
138
+ # Enable background pre-computation of statistics. Currently not implemented (future feature).
139
+ # HORDE_MODEL_REFERENCE_ENABLE_STATISTICS_PRECOMPUTE=False
140
+
141
+ # Preferred file hosts for deletion risk analysis in audit endpoints.
142
+ # HORDE_MODEL_REFERENCE_PREFERRED_FILE_HOSTS=
143
+
144
+ # Percentage threshold for low usage flag in audit analysis. Default 0.0065% flags bottom ~10% of models. Set lower (e.g., 0.005%) to flag fewer models or higher (e.g., 0.01%) to flag more models.
145
+ # HORDE_MODEL_REFERENCE_LOW_USAGE_THRESHOLD_PERCENTAGE=0.0065
146
+
147
+ # Low usage threshold for text_generation models (2% - more lenient than image models at 0.65%).
148
+ # HORDE_MODEL_REFERENCE_TEXT_GEN_LOW_USAGE_THRESHOLD_PERCENTAGE=0.02
149
+
150
+ # Skip download host validation for text_generation models completely.
151
+ # HORDE_MODEL_REFERENCE_TEXT_GEN_IGNORE_DOWNLOAD_HOSTS=True
152
+
153
+ # Minimum monthly usage for text_generation to be flagged as critical (allows some usage).
154
+ # HORDE_MODEL_REFERENCE_TEXT_GEN_CRITICAL_USAGE_THRESHOLD=10
155
+
156
+ # Minimum worker count for text_generation to be flagged as critical (allows some workers).
157
+ # HORDE_MODEL_REFERENCE_TEXT_GEN_CRITICAL_WORKER_THRESHOLD=1
158
+
159
+ # Whether audit trail writes are enabled in PRIMARY deployments.
160
+ # HORDE_MODEL_REFERENCE_AUDIT__ENABLED=True
161
+
162
+ # Maximum size in bytes for each JSONL segment before rolling over to a new file.
163
+ # HORDE_MODEL_REFERENCE_AUDIT__MAX_SEGMENT_BYTES=5242880
164
+
165
+ # Subdirectory name (relative to cache home) for storing audit logs when no override is provided.
166
+ # HORDE_MODEL_REFERENCE_AUDIT__RELATIVE_SUBDIR=audit
167
+
168
+ # Absolute path override for audit log storage. When set, relative_subdir is ignored.
169
+ # HORDE_MODEL_REFERENCE_AUDIT__ROOT_PATH_OVERRIDE=
170
+
171
+ # Whether the pending queue workflow is enabled (PRIMARY deployments only).
172
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__ENABLED=True
173
+
174
+ # Relative folder under cache home used for queue persistence when no override is set.
175
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__RELATIVE_SUBDIR=pending_queue
176
+
177
+ # Absolute path override for queue persistence. When set, relative_subdir is ignored.
178
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__ROOT_PATH_OVERRIDE=
179
+
180
+ # Horde user IDs allowed to submit pending changes.
181
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__REQUESTOR_IDS=
182
+
183
+ # Horde user IDs allowed to approve/reject pending batches (superset of requestors).
184
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__APPROVER_IDS=
185
+
186
+ # Reserved for future rotation support (matches audit defaults).
187
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__MAX_SEGMENT_BYTES=5242880
188
+
189
+ # Enable background cache hydration to keep audit/statistics caches warm. When enabled, caches are proactively refreshed before TTL expiry so clients always get fast cached responses.
190
+ # HORDE_MODEL_REFERENCE_CACHE_HYDRATION_ENABLED=False
191
+
192
+ # Interval in seconds between cache hydration refreshes. Should be less than cache TTLs (statistics_cache_ttl, audit_cache_ttl) to ensure caches stay warm. Default 240s (4 min) with 300s TTLs.
193
+ # HORDE_MODEL_REFERENCE_CACHE_HYDRATION_INTERVAL_SECONDS=240
194
+
195
+ # Maximum age in seconds before stale cached data is discarded. While hydration is running, clients receive stale data instead of waiting for fresh data. Default 1 hour.
196
+ # HORDE_MODEL_REFERENCE_CACHE_HYDRATION_STALE_TTL_SECONDS=3600
197
+
198
+ # Delay in seconds before first hydration run after service startup. Allows service to fully initialize before background tasks begin.
199
+ # HORDE_MODEL_REFERENCE_CACHE_HYDRATION_STARTUP_DELAY_SECONDS=5
200
+
201
+ # List of allowed origins for CORS. Warns if unset or empty, as it falls back to the FastAPI default behavior. See https://fastapi.tiangolo.com/tutorial/cors/#use-corsmiddleware for details.
202
+ # HORDE_MODEL_REFERENCE_CORS_ALLOWED_ORIGINS=
203
+
204
+
205
+
206
+ ################################################################################
207
+ # AI Horde Client+Worker Settings
208
+ ################################################################################
209
+
210
+ # Alternative API endpoints for the AI Horde. These should all lead to the same logical AI Horde.
211
+ # ALT_HORDE_URLS=[HttpUrl('https://stablehorde.net/api/')]
212
+
213
+ # The API key used for authenticating requests to the AI Horde.
214
+ # API_KEY=**********
215
+
216
+ # The API endpoint for AI Horde ratings.
217
+ # RATINGS_URL=https://ratings.aihorde.net/api/
218
+
219
+ # The folder where application logs are stored.
220
+ # LOGS_FOLDER=./logs
221
+
222
+ # The folder where AI worker (or client) files are stored, most notably models and checkpoints.
223
+ # AIWORKER_CACHE_HOME=./models
224
+
225
+ # The hugging face home directory.
226
+ # HF_HOME=~/.cache/huggingface
227
+
228
+ # The standard XDG cache directory.
229
+ # XDG_CACHE_HOME=~/.cache/
230
+
231
+
232
+
233
+ ################################################################################
234
+ # Github Proxying Settings
235
+ ################################################################################
236
+
237
+ # The base URL for a http(s) GitHub proxy. If None, no proxy is used. This is intended for users where github may be blocked.
238
+ # GITHUB_PROXY_URL_BASE=
239
+
240
+
241
+
242
+ ################################################################################
243
+ # AI Horde CI Settings
244
+ ################################################################################
245
+
246
+ # Indicates if any CI/CD pipeline is ongoing.
247
+ # TESTS_ONGOING=False
248
+
249
+ # Indicates if the hordelib CI/CD pipeline is ongoing.
250
+ # HORDELIB_CI_ONGOING=False
251
+
252
+ # Indicates if the AI Horde SDK is currently being tested.
253
+ # HORDE_SDK_TESTING=False
254
+
255
+ # Indicates if the AI Horde is currently being tested.
256
+ # AI_HORDE_TESTING=False
257
+
258
+
259
+ # Auto-generated example environment file for Horde Model Reference
260
+ # This file is generated by the settings_doc package.
261
+ # Do not edit this file manually.
262
+
263
+ # Generated on (UTC): 2026-03-26 22:29:13
264
+
265
+ # DEPLOYMENT QUICK START GUIDE
266
+
267
+ # Choose your deployment scenario and uncomment the relevant settings below:
268
+
269
+ # 1. REPLICA MODE (Default) - Client/Worker nodes
270
+ # - Uses GitHub or PRIMARY API to fetch model references
271
+ # - Set: HORDE_MODEL_REFERENCE_REPLICATE_MODE=REPLICA
272
+ # - Optionally set: HORDE_MODEL_REFERENCE_PRIMARY_API_URL=<your-primary-url>
273
+
274
+ # 2. PRIMARY MODE - Single Worker (No Redis)
275
+ # - Authoritative source for model references
276
+ # - Set: HORDE_MODEL_REFERENCE_REPLICATE_MODE=PRIMARY
277
+ # - No Redis configuration needed
278
+ # - Ideal for: Development, testing, low-traffic deployments
279
+
280
+ # 3. PRIMARY MODE - Multi-Worker (With Redis)
281
+ # - Authoritative source with distributed caching
282
+ # - Set: HORDE_MODEL_REFERENCE_REPLICATE_MODE=PRIMARY
283
+ # - Configure all HORDE_MODEL_REFERENCE_REDIS_* settings
284
+ # - Ideal for: Production, high-traffic deployments
285
+
286
+ # For detailed deployment instructions, see:
287
+ # - Docker: docker-compose.yml (single-worker)
288
+ # - Docker + Redis: docker-compose.redis.yml (multi-worker)
289
+ # - Non-Docker: DEPLOYMENT.md
290
+
291
+
292
+ ################################################################################
293
+ # Horde Model Reference Settings
294
+ ################################################################################
295
+
296
+ # Indicates if copies of the model reference are canonical or replicated. Clients should always be replicas.
297
+ # Possible values:
298
+ # `PRIMARY`, `REPLICA`
299
+ # HORDE_MODEL_REFERENCE_REPLICATE_MODE=REPLICA
300
+
301
+ # Whether to create the default model reference folders on initialization.
302
+ # HORDE_MODEL_REFERENCE_MAKE_FOLDERS=False
303
+
304
+ # The GitHub owner of the repository.
305
+ # HORDE_MODEL_REFERENCE_IMAGE_GITHUB_REPO__OWNER=Haidra-Org
306
+
307
+ # The name of the GitHub repository used for image model references.
308
+ # HORDE_MODEL_REFERENCE_IMAGE_GITHUB_REPO__NAME=AI-Horde-image-model-reference
309
+
310
+ # The GitHub branch of the repository.
311
+ # HORDE_MODEL_REFERENCE_IMAGE_GITHUB_REPO__BRANCH=main
312
+
313
+ # Settings for the GitHub proxy, if any.
314
+ # HORDE_MODEL_REFERENCE_IMAGE_GITHUB_REPO__PROXY_SETTINGS=
315
+
316
+ # The GitHub owner of the repository.
317
+ # HORDE_MODEL_REFERENCE_TEXT_GITHUB_REPO__OWNER=Haidra-Org
318
+
319
+ # The name of the GitHub repository used for text model references.
320
+ # HORDE_MODEL_REFERENCE_TEXT_GITHUB_REPO__NAME=AI-Horde-text-model-reference
321
+
322
+ # The GitHub branch of the repository.
323
+ # HORDE_MODEL_REFERENCE_TEXT_GITHUB_REPO__BRANCH=main
324
+
325
+ # Settings for the GitHub proxy, if any.
326
+ # HORDE_MODEL_REFERENCE_TEXT_GITHUB_REPO__PROXY_SETTINGS=
327
+
328
+ # The time-to-live for in memory caches of model reference files, in seconds.
329
+ # HORDE_MODEL_REFERENCE_CACHE_TTL_SECONDS=60
330
+
331
+ # The maximum number of attempts to retry downloading a legacy model reference file.
332
+ # HORDE_MODEL_REFERENCE_LEGACY_DOWNLOAD_RETRY_MAX_ATTEMPTS=3
333
+
334
+ # The backoff time in seconds between retry attempts when downloading a legacy model reference file.
335
+ # HORDE_MODEL_REFERENCE_LEGACY_DOWNLOAD_RETRY_BACKOFF_SECONDS=2
336
+
337
+ # Whether to use Redis for distributed caching. Only should be used in PRIMARY mode.
338
+ # HORDE_MODEL_REFERENCE_REDIS__USE_REDIS=False
339
+
340
+ # Redis connection URL. Format: redis://[:password]@host:port/db
341
+ # HORDE_MODEL_REFERENCE_REDIS__URL=redis://localhost:6379/0
342
+
343
+ # Connection pool size for Redis connections.
344
+ # HORDE_MODEL_REFERENCE_REDIS__POOL_SIZE=10
345
+
346
+ # Socket timeout in seconds for Redis operations.
347
+ # HORDE_MODEL_REFERENCE_REDIS__SOCKET_TIMEOUT=5
348
+
349
+ # Connection timeout in seconds when establishing Redis connection.
350
+ # HORDE_MODEL_REFERENCE_REDIS__SOCKET_CONNECT_TIMEOUT=5
351
+
352
+ # Maximum number of retry attempts for failed Redis operations.
353
+ # HORDE_MODEL_REFERENCE_REDIS__RETRY_MAX_ATTEMPTS=3
354
+
355
+ # Backoff time in seconds between retry attempts for Redis operations.
356
+ # HORDE_MODEL_REFERENCE_REDIS__RETRY_BACKOFF_SECONDS=0.5
357
+
358
+ # Prefix for all Redis keys to namespace model reference data.
359
+ # HORDE_MODEL_REFERENCE_REDIS__KEY_PREFIX=horde:model_ref
360
+
361
+ # TTL for cached entries in seconds. If None, uses cache_ttl_seconds from main settings.
362
+ # HORDE_MODEL_REFERENCE_REDIS__TTL_SECONDS=
363
+
364
+ # Enable pub/sub for cache invalidation across multiple PRIMARY workers.
365
+ # HORDE_MODEL_REFERENCE_REDIS__USE_PUBSUB=True
366
+
367
+ # Base URL of the PRIMARY server API for REPLICA clients to fetch model references from. This must include the service's /api root path; the backend appends /model_references/v2/{category}. If None, REPLICA clients will only use GitHub. Example: https://models.aihorde.net/api
368
+ # HORDE_MODEL_REFERENCE_PRIMARY_API_URL=https://models.aihorde.net/api
369
+
370
+ # Timeout in seconds for HTTP requests to PRIMARY API.
371
+ # HORDE_MODEL_REFERENCE_PRIMARY_API_TIMEOUT=10
372
+
373
+ # Whether REPLICA clients should fallback to GitHub if PRIMARY API is unavailable.
374
+ # HORDE_MODEL_REFERENCE_ENABLE_GITHUB_FALLBACK=True
375
+
376
+ # Whether PRIMARY mode should seed from GitHub on first initialization if local files don't exist. Only used in PRIMARY mode. If True, will download and convert legacy references once on startup.
377
+ # HORDE_MODEL_REFERENCE_GITHUB_SEED_ENABLED=False
378
+
379
+ # Which format is the canonical source of truth. Controls which API has write access. 'v2' (default): v2 API has CRUD, v1 API is read-only (converts from v2 to legacy). 'LEGACY': v1 API has CRUD, v2 API is read-only (converts from legacy to v2).
380
+ # Possible values:
381
+ # `LEGACY`, `v2`
382
+ # HORDE_MODEL_REFERENCE_CANONICAL_FORMAT=v2
383
+
384
+ # Timeout in seconds for Horde API requests to fetch model status, statistics, and worker information.
385
+ # HORDE_MODEL_REFERENCE_HORDE_API_TIMEOUT=30
386
+
387
+ # Cache TTL in seconds for Horde API responses. Uses Redis if available, otherwise in-memory caching.
388
+ # HORDE_MODEL_REFERENCE_HORDE_API_CACHE_TTL=60
389
+
390
+ # Cache TTL in seconds for category statistics. Uses Redis if available, otherwise in-memory caching.
391
+ # HORDE_MODEL_REFERENCE_STATISTICS_CACHE_TTL=300
392
+
393
+ # Cache TTL in seconds for category audit results. Uses Redis if available, otherwise in-memory caching.
394
+ # HORDE_MODEL_REFERENCE_AUDIT_CACHE_TTL=300
395
+
396
+ # Enable background pre-computation of statistics. Currently not implemented (future feature).
397
+ # HORDE_MODEL_REFERENCE_ENABLE_STATISTICS_PRECOMPUTE=False
398
+
399
+ # Preferred file hosts for deletion risk analysis in audit endpoints.
400
+ # HORDE_MODEL_REFERENCE_PREFERRED_FILE_HOSTS=
401
+
402
+ # Percentage threshold for low usage flag in audit analysis. Default 0.0065% flags bottom ~10% of models. Set lower (e.g., 0.005%) to flag fewer models or higher (e.g., 0.01%) to flag more models.
403
+ # HORDE_MODEL_REFERENCE_LOW_USAGE_THRESHOLD_PERCENTAGE=0.0065
404
+
405
+ # Low usage threshold for text_generation models (2% - more lenient than image models at 0.65%).
406
+ # HORDE_MODEL_REFERENCE_TEXT_GEN_LOW_USAGE_THRESHOLD_PERCENTAGE=0.02
407
+
408
+ # Skip download host validation for text_generation models completely.
409
+ # HORDE_MODEL_REFERENCE_TEXT_GEN_IGNORE_DOWNLOAD_HOSTS=True
410
+
411
+ # Minimum monthly usage for text_generation to be flagged as critical (allows some usage).
412
+ # HORDE_MODEL_REFERENCE_TEXT_GEN_CRITICAL_USAGE_THRESHOLD=10
413
+
414
+ # Minimum worker count for text_generation to be flagged as critical (allows some workers).
415
+ # HORDE_MODEL_REFERENCE_TEXT_GEN_CRITICAL_WORKER_THRESHOLD=1
416
+
417
+ # Whether audit trail writes are enabled in PRIMARY deployments.
418
+ # HORDE_MODEL_REFERENCE_AUDIT__ENABLED=True
419
+
420
+ # Maximum size in bytes for each JSONL segment before rolling over to a new file.
421
+ # HORDE_MODEL_REFERENCE_AUDIT__MAX_SEGMENT_BYTES=5242880
422
+
423
+ # Subdirectory name (relative to cache home) for storing audit logs when no override is provided.
424
+ # HORDE_MODEL_REFERENCE_AUDIT__RELATIVE_SUBDIR=audit
425
+
426
+ # Absolute path override for audit log storage. When set, relative_subdir is ignored.
427
+ # HORDE_MODEL_REFERENCE_AUDIT__ROOT_PATH_OVERRIDE=
428
+
429
+ # Whether the pending queue workflow is enabled (PRIMARY deployments only).
430
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__ENABLED=True
431
+
432
+ # Relative folder under cache home used for queue persistence when no override is set.
433
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__RELATIVE_SUBDIR=pending_queue
434
+
435
+ # Absolute path override for queue persistence. When set, relative_subdir is ignored.
436
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__ROOT_PATH_OVERRIDE=
437
+
438
+ # Horde user IDs allowed to submit pending changes.
439
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__REQUESTOR_IDS=
440
+
441
+ # Horde user IDs allowed to approve/reject pending batches (superset of requestors).
442
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__APPROVER_IDS=
443
+
444
+ # Reserved for future rotation support (matches audit defaults).
445
+ # HORDE_MODEL_REFERENCE_PENDING_QUEUE__MAX_SEGMENT_BYTES=5242880
446
+
447
+ # Enable background cache hydration to keep audit/statistics caches warm. When enabled, caches are proactively refreshed before TTL expiry so clients always get fast cached responses.
448
+ # HORDE_MODEL_REFERENCE_CACHE_HYDRATION_ENABLED=False
449
+
450
+ # Interval in seconds between cache hydration refreshes. Should be less than cache TTLs (statistics_cache_ttl, audit_cache_ttl) to ensure caches stay warm. Default 240s (4 min) with 300s TTLs.
451
+ # HORDE_MODEL_REFERENCE_CACHE_HYDRATION_INTERVAL_SECONDS=240
452
+
453
+ # Maximum age in seconds before stale cached data is discarded. While hydration is running, clients receive stale data instead of waiting for fresh data. Default 1 hour.
454
+ # HORDE_MODEL_REFERENCE_CACHE_HYDRATION_STALE_TTL_SECONDS=3600
455
+
456
+ # Delay in seconds before first hydration run after service startup. Allows service to fully initialize before background tasks begin.
457
+ # HORDE_MODEL_REFERENCE_CACHE_HYDRATION_STARTUP_DELAY_SECONDS=5
458
+
459
+ # List of allowed origins for CORS. Warns if unset or empty, as it falls back to the FastAPI default behavior. See https://fastapi.tiangolo.com/tutorial/cors/#use-corsmiddleware for details.
460
+ # HORDE_MODEL_REFERENCE_CORS_ALLOWED_ORIGINS=
461
+
462
+
463
+
464
+ ################################################################################
465
+ # AI Horde Client+Worker Settings
466
+ ################################################################################
467
+
468
+ # Alternative API endpoints for the AI Horde. These should all lead to the same logical AI Horde.
469
+ # ALT_HORDE_URLS=[HttpUrl('https://stablehorde.net/api/')]
470
+
471
+ # The API key used for authenticating requests to the AI Horde.
472
+ # API_KEY=**********
473
+
474
+ # The API endpoint for AI Horde ratings.
475
+ # RATINGS_URL=https://ratings.aihorde.net/api/
476
+
477
+ # The folder where application logs are stored.
478
+ # LOGS_FOLDER=./logs
479
+
480
+ # The folder where AI worker (or client) files are stored, most notably models and checkpoints.
481
+ # AIWORKER_CACHE_HOME=./models
482
+
483
+ # The hugging face home directory.
484
+ # HF_HOME=~/.cache/huggingface
485
+
486
+ # The standard XDG cache directory.
487
+ # XDG_CACHE_HOME=~/.cache/
488
+
489
+
490
+
491
+ ################################################################################
492
+ # Github Proxying Settings
493
+ ################################################################################
494
+
495
+ # The base URL for a http(s) GitHub proxy. If None, no proxy is used. This is intended for users where github may be blocked.
496
+ # GITHUB_PROXY_URL_BASE=
497
+
498
+
499
+
500
+ ################################################################################
501
+ # AI Horde CI Settings
502
+ ################################################################################
503
+
504
+ # Indicates if any CI/CD pipeline is ongoing.
505
+ # TESTS_ONGOING=False
506
+
507
+ # Indicates if the hordelib CI/CD pipeline is ongoing.
508
+ # HORDELIB_CI_ONGOING=False
509
+
510
+ # Indicates if the AI Horde SDK is currently being tested.
511
+ # HORDE_SDK_TESTING=False
512
+
513
+ # Indicates if the AI Horde is currently being tested.
514
+ # AI_HORDE_TESTING=False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: horde_model_reference
3
- Version: 5.3.0
3
+ Version: 5.3.2
4
4
  Summary: A helper library providing a way to work with the lists of generation models, utility models, and any other related files required for the AI-Horde ecosystem.
5
5
  Author-email: tazlin <tazlin.on.github@gmail.com>, db0 <mail@dbzer0.com>
6
6
  License: GNU AFFERO GENERAL PUBLIC LICENSE
@@ -586,11 +586,13 @@ from .model_reference_records import ( # noqa: E402
586
586
  )
587
587
  from .on_disk_layout import ( # noqa: E402
588
588
  COMPONENT_PURPOSE_FOLDERS,
589
+ PresenceSummary,
589
590
  category_folder,
590
591
  component_relative_path,
591
592
  file_paths_for,
592
593
  free_bytes_for,
593
594
  is_present,
595
+ presence_summary,
594
596
  resolve_weights_root,
595
597
  )
596
598
  from .download_engine import ( # noqa: E402
@@ -671,6 +673,7 @@ __all__ = [
671
673
  "PopularModelResult",
672
674
  "Predicate",
673
675
  "PrefetchStrategy",
676
+ "PresenceSummary",
674
677
  "SafetyCheckerFields",
675
678
  "SourceSelector",
676
679
  "StaticModelProvider",
@@ -699,6 +702,7 @@ __all__ = [
699
702
  "horde_model_reference_paths",
700
703
  "is_present",
701
704
  "md5_of",
705
+ "presence_summary",
702
706
  "register_category",
703
707
  "register_image_baseline",
704
708
  "register_record_type",
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '5.3.0'
22
- __version_tuple__ = version_tuple = (5, 3, 0)
21
+ __version__ = version = '5.3.2'
22
+ __version_tuple__ = version_tuple = (5, 3, 2)
23
23
 
24
- __commit_id__ = commit_id = 'gea166d555'
24
+ __commit_id__ = commit_id = 'g98dc41d57'
@@ -6,6 +6,7 @@ with fallback to GitHub if the PRIMARY is unavailable.
6
6
 
7
7
  from __future__ import annotations
8
8
 
9
+ import json
9
10
  from pathlib import Path
10
11
  from typing import Any, override
11
12
 
@@ -13,7 +14,7 @@ import httpx
13
14
  from loguru import logger
14
15
  from tenacity import RetryError
15
16
 
16
- from horde_model_reference import ReplicateMode, horde_model_reference_settings
17
+ from horde_model_reference import ReplicateMode, horde_model_reference_paths, horde_model_reference_settings
17
18
  from horde_model_reference.backends.github_backend import GitHubBackend
18
19
  from horde_model_reference.backends.replica_backend_base import ReplicaBackendBase
19
20
  from horde_model_reference.http_retry import (
@@ -87,6 +88,28 @@ class HTTPBackend(ReplicaBackendBase):
87
88
  """Get the PRIMARY API URL for a category."""
88
89
  return f"{self._primary_api_url}/model_references/v2/{category.value}"
89
90
 
91
+ def _persist_to_disk(self, category: MODEL_REFERENCE_CATEGORY, data: dict[str, Any]) -> None:
92
+ """Write fetched v2 data to disk so offline replicas and restarts can read it.
93
+
94
+ The GitHub fallback already writes converted files to disk; this materializes the (otherwise
95
+ memory-only) PRIMARY-API responses too, so an offline LocalReadOnlyBackend (e.g. a worker
96
+ subprocess) reading the same base_path sees the references the parent fetched.
97
+ """
98
+ base_path = getattr(self._github_backend, "base_path", None)
99
+ if base_path is None:
100
+ return
101
+ try:
102
+ file_path = horde_model_reference_paths.get_model_reference_file_path(
103
+ category,
104
+ base_path=base_path,
105
+ )
106
+ if file_path is None:
107
+ return
108
+ file_path.parent.mkdir(parents=True, exist_ok=True)
109
+ file_path.write_text(json.dumps(data), encoding="utf-8")
110
+ except OSError as e:
111
+ logger.warning(f"HTTPBackend failed to persist {category} to disk: {e}")
112
+
90
113
  def _legacy_category_api_url(self, category: MODEL_REFERENCE_CATEGORY) -> str:
91
114
  """Get the legacy PRIMARY API URL for a category."""
92
115
  return f"{self._primary_api_url}/model_references/v1/{category.value}"
@@ -259,7 +282,10 @@ class HTTPBackend(ReplicaBackendBase):
259
282
  if force_refresh or self.should_fetch_data(category):
260
283
  data = self._fetch_from_primary(category)
261
284
 
262
- if data is None and self._enable_github_fallback:
285
+ if data is not None:
286
+ # The GitHub fallback writes converted files itself; persist PRIMARY hits too.
287
+ self._persist_to_disk(category, data)
288
+ elif self._enable_github_fallback:
263
289
  logger.info(f"Falling back to GitHub for {category}")
264
290
  self._github_fallbacks += 1
265
291
  data = self._github_backend.fetch_category(category, force_refresh=force_refresh)
@@ -316,7 +342,10 @@ class HTTPBackend(ReplicaBackendBase):
316
342
  async with httpx.AsyncClient() as client:
317
343
  data = await self._fetch_from_primary_async(category, client)
318
344
 
319
- if data is None and self._enable_github_fallback:
345
+ if data is not None:
346
+ # The GitHub fallback writes converted files itself; persist PRIMARY hits too.
347
+ self._persist_to_disk(category, data)
348
+ elif self._enable_github_fallback:
320
349
  logger.info(f"Falling back to GitHub for {category} (async)")
321
350
  self._github_fallbacks += 1
322
351
  data = await self._github_backend.fetch_category_async(