codex-platform 0.1.0__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. codex_platform-0.3.0/.github/workflows/ci.yml +91 -0
  2. {codex_platform-0.1.0 → codex_platform-0.3.0}/.github/workflows/docs.yml +15 -15
  3. {codex_platform-0.1.0 → codex_platform-0.3.0}/.github/workflows/publish.yml +6 -9
  4. {codex_platform-0.1.0 → codex_platform-0.3.0}/.gitignore +1 -0
  5. codex_platform-0.3.0/.python-version +1 -0
  6. codex_platform-0.3.0/CHANGELOG.md +42 -0
  7. {codex_platform-0.1.0 → codex_platform-0.3.0}/PKG-INFO +39 -16
  8. codex_platform-0.3.0/README.md +87 -0
  9. codex_platform-0.3.0/docs/index.md +56 -0
  10. codex_platform-0.3.0/docs/stylesheets/extra.css +18 -0
  11. codex_platform-0.3.0/mkdocs.yml +141 -0
  12. codex_platform-0.3.0/project_structure.txt +181 -0
  13. {codex_platform-0.1.0 → codex_platform-0.3.0}/pyproject.toml +37 -9
  14. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/notifications/channels.py +1 -9
  15. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/notifications/dto.py +2 -2
  16. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/notifications/renderer.py +3 -2
  17. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/__init__.py +4 -0
  18. codex_platform-0.3.0/src/codex_platform/redis_service/managers/__init__.py +40 -0
  19. codex_platform-0.3.0/src/codex_platform/redis_service/managers/site_settings.py +73 -0
  20. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/workers/arq/base.py +2 -2
  21. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/workers/arq/config.py +3 -4
  22. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/integration/test_docs_build.py +4 -4
  23. codex_platform-0.3.0/tests/unit/test_arq_base.py +185 -0
  24. codex_platform-0.3.0/tests/unit/test_arq_config.py +55 -0
  25. codex_platform-0.3.0/tests/unit/test_arq_public_api.py +30 -0
  26. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_arq_task_utils.py +5 -5
  27. codex_platform-0.3.0/tests/unit/test_notification_adapters.py +234 -0
  28. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_notification_channels.py +2 -17
  29. codex_platform-0.3.0/tests/unit/test_site_settings_manager.py +46 -0
  30. codex_platform-0.3.0/tools/dev/README.md +31 -0
  31. codex_platform-0.3.0/tools/dev/check.py +13 -0
  32. codex_platform-0.3.0/tools/dev/generate_project_tree.py +8 -0
  33. codex_platform-0.3.0/uv.lock +1721 -0
  34. codex_platform-0.1.0/.github/workflows/ci.yml +0 -90
  35. codex_platform-0.1.0/CHANGELOG.md +0 -13
  36. codex_platform-0.1.0/README.md +0 -64
  37. codex_platform-0.1.0/docs/index.md +0 -48
  38. codex_platform-0.1.0/docs/ru/api/index.md +0 -4
  39. codex_platform-0.1.0/docs/ru/api/notifications/channels.md +0 -4
  40. codex_platform-0.1.0/docs/ru/api/notifications/delivery/arq.md +0 -4
  41. codex_platform-0.1.0/docs/ru/api/notifications/delivery/base.md +0 -4
  42. codex_platform-0.1.0/docs/ru/api/notifications/delivery/direct.md +0 -4
  43. codex_platform-0.1.0/docs/ru/api/notifications/dto.md +0 -4
  44. codex_platform-0.1.0/docs/ru/api/notifications/index.md +0 -4
  45. codex_platform-0.1.0/docs/ru/api/notifications/orchestrator.md +0 -4
  46. codex_platform-0.1.0/docs/ru/api/notifications/registry.md +0 -4
  47. codex_platform-0.1.0/docs/ru/api/notifications/renderer.md +0 -4
  48. codex_platform-0.1.0/docs/ru/api/redis_service/base.md +0 -4
  49. codex_platform-0.1.0/docs/ru/api/redis_service/index.md +0 -4
  50. codex_platform-0.1.0/docs/ru/api/redis_service/keys.md +0 -4
  51. codex_platform-0.1.0/docs/ru/api/redis_service/operations/hash.md +0 -4
  52. codex_platform-0.1.0/docs/ru/api/redis_service/operations/json_module.md +0 -4
  53. codex_platform-0.1.0/docs/ru/api/redis_service/operations/json_string.md +0 -4
  54. codex_platform-0.1.0/docs/ru/api/redis_service/operations/list_.md +0 -4
  55. codex_platform-0.1.0/docs/ru/api/redis_service/operations/pipeline.md +0 -4
  56. codex_platform-0.1.0/docs/ru/api/redis_service/operations/set_.md +0 -4
  57. codex_platform-0.1.0/docs/ru/api/redis_service/operations/string.md +0 -4
  58. codex_platform-0.1.0/docs/ru/api/redis_service/operations/zset.md +0 -4
  59. codex_platform-0.1.0/docs/ru/api/redis_service/service.md +0 -4
  60. codex_platform-0.1.0/docs/ru/api/streams/consumer.md +0 -4
  61. codex_platform-0.1.0/docs/ru/api/streams/dispatcher.md +0 -4
  62. codex_platform-0.1.0/docs/ru/api/streams/index.md +0 -4
  63. codex_platform-0.1.0/docs/ru/api/streams/processor.md +0 -4
  64. codex_platform-0.1.0/docs/ru/api/streams/producer.md +0 -4
  65. codex_platform-0.1.0/docs/ru/api/streams/router.md +0 -4
  66. codex_platform-0.1.0/docs/ru/api/workers/arq/base.md +0 -4
  67. codex_platform-0.1.0/docs/ru/api/workers/arq/config.md +0 -4
  68. codex_platform-0.1.0/docs/ru/api/workers/arq/index.md +0 -4
  69. codex_platform-0.1.0/docs/ru/api/workers/arq/task_utils.md +0 -4
  70. codex_platform-0.1.0/docs/ru/api/workers/arq/types.md +0 -4
  71. codex_platform-0.1.0/mkdocs.yml +0 -147
  72. codex_platform-0.1.0/src/codex_platform/redis_service/managers/__init__.py +0 -18
  73. codex_platform-0.1.0/tools/dev/README.md +0 -23
  74. codex_platform-0.1.0/tools/dev/check.py +0 -197
  75. codex_platform-0.1.0/tools/dev/generate_project_tree.py +0 -119
  76. {codex_platform-0.1.0 → codex_platform-0.3.0}/.pre-commit-config.yaml +0 -0
  77. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/changelog.md +0 -0
  78. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/index.md +0 -0
  79. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/notifications/channels.md +0 -0
  80. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/notifications/delivery/arq.md +0 -0
  81. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/notifications/delivery/base.md +0 -0
  82. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/notifications/delivery/direct.md +0 -0
  83. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/notifications/dto.md +0 -0
  84. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/notifications/index.md +0 -0
  85. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/notifications/orchestrator.md +0 -0
  86. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/notifications/registry.md +0 -0
  87. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/notifications/renderer.md +0 -0
  88. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/redis_service/base.md +0 -0
  89. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/redis_service/index.md +0 -0
  90. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/redis_service/keys.md +0 -0
  91. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/hash.md +0 -0
  92. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/json_module.md +0 -0
  93. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/json_string.md +0 -0
  94. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/list_.md +0 -0
  95. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/pipeline.md +0 -0
  96. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/set_.md +0 -0
  97. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/string.md +0 -0
  98. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/zset.md +0 -0
  99. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/redis_service/service.md +0 -0
  100. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/streams/consumer.md +0 -0
  101. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/streams/dispatcher.md +0 -0
  102. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/streams/index.md +0 -0
  103. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/streams/processor.md +0 -0
  104. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/streams/producer.md +0 -0
  105. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/streams/router.md +0 -0
  106. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/workers/arq/base.md +0 -0
  107. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/workers/arq/config.md +0 -0
  108. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/workers/arq/index.md +0 -0
  109. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/workers/arq/task_utils.md +0 -0
  110. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/api/workers/arq/types.md +0 -0
  111. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/architecture/notifications/README.md +0 -0
  112. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/architecture/notifications/data_flow.md +0 -0
  113. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/architecture/redis_service/README.md +0 -0
  114. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/architecture/redis_service/data_flow.md +0 -0
  115. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/architecture/streams/README.md +0 -0
  116. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/architecture/streams/data_flow.md +0 -0
  117. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/architecture/workers/README.md +0 -0
  118. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/en/architecture/workers/data_flow.md +0 -0
  119. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/ru/architecture/notifications/README.md +0 -0
  120. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/ru/architecture/notifications/data_flow.md +0 -0
  121. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/ru/architecture/redis_service/README.md +0 -0
  122. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/ru/architecture/redis_service/data_flow.md +0 -0
  123. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/ru/architecture/streams/README.md +0 -0
  124. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/ru/architecture/streams/data_flow.md +0 -0
  125. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/ru/architecture/workers/README.md +0 -0
  126. {codex_platform-0.1.0 → codex_platform-0.3.0}/docs/ru/architecture/workers/data_flow.md +0 -0
  127. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/__init__.py +0 -0
  128. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/notifications/__init__.py +0 -0
  129. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/notifications/clients/__init__.py +0 -0
  130. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/notifications/clients/smtp.py +0 -0
  131. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/notifications/delivery/__init__.py +0 -0
  132. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/notifications/delivery/arq.py +0 -0
  133. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/notifications/delivery/base.py +0 -0
  134. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/notifications/delivery/direct.py +0 -0
  135. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/notifications/interfaces.py +0 -0
  136. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/notifications/orchestrator.py +0 -0
  137. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/notifications/registry.py +0 -0
  138. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/base.py +0 -0
  139. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/exceptions.py +0 -0
  140. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/keys.py +0 -0
  141. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/managers/base_manager.py +0 -0
  142. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/__init__.py +0 -0
  143. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/hash.py +0 -0
  144. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/json_module.py +0 -0
  145. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/json_string.py +0 -0
  146. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/list_.py +0 -0
  147. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/pipeline.py +0 -0
  148. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/set_.py +0 -0
  149. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/string.py +0 -0
  150. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/zset.py +0 -0
  151. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/service.py +0 -0
  152. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/streams/__init__.py +0 -0
  153. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/streams/consumer.py +0 -0
  154. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/streams/dispatcher.py +0 -0
  155. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/streams/processor.py +0 -0
  156. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/streams/producer.py +0 -0
  157. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/streams/router.py +0 -0
  158. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/workers/__init__.py +0 -0
  159. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/workers/arq/__init__.py +0 -0
  160. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/workers/arq/task_utils.py +0 -0
  161. {codex_platform-0.1.0 → codex_platform-0.3.0}/src/codex_platform/workers/arq/types.py +0 -0
  162. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/integration/__init__.py +0 -0
  163. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/integration/conftest.py +0 -0
  164. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/integration/test_redis_service.py +0 -0
  165. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/integration/test_streams.py +0 -0
  166. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/__init__.py +0 -0
  167. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/conftest.py +0 -0
  168. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_notification_dto.py +0 -0
  169. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_notification_orchestrator.py +0 -0
  170. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_notification_registry.py +0 -0
  171. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_notification_renderer.py +0 -0
  172. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_notification_smtp.py +0 -0
  173. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_redis_base.py +0 -0
  174. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_redis_hash.py +0 -0
  175. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_redis_keys.py +0 -0
  176. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_redis_list.py +0 -0
  177. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_redis_manager.py +0 -0
  178. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_redis_pipeline.py +0 -0
  179. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_redis_service.py +0 -0
  180. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_redis_set.py +0 -0
  181. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_redis_string.py +0 -0
  182. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_redis_zset.py +0 -0
  183. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_stream_consumer.py +0 -0
  184. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_stream_dispatcher.py +0 -0
  185. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_stream_processor.py +0 -0
  186. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_stream_producer.py +0 -0
  187. {codex_platform-0.1.0 → codex_platform-0.3.0}/tests/unit/test_stream_router.py +0 -0
  188. {codex_platform-0.1.0 → codex_platform-0.3.0}/tools/__init__.py +0 -0
  189. {codex_platform-0.1.0 → codex_platform-0.3.0}/tools/dev/__init__.py +0 -0
@@ -0,0 +1,91 @@
1
+ name: CI Pipeline
2
+
3
+ on:
4
+ push:
5
+ branches: [main, develop]
6
+ paths-ignore: ["**.md", "docs/**", ".gitignore"]
7
+ pull_request:
8
+ branches: [main]
9
+
10
+ env:
11
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
12
+
13
+ jobs:
14
+ quality-gate:
15
+ name: Quality Gate
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - uses: actions/setup-python@v5
20
+ with:
21
+ python-version: "3.12"
22
+ - uses: astral-sh/setup-uv@v7
23
+ with:
24
+ version: "0.10.7"
25
+
26
+ - name: Sync dev + docs environment
27
+ run: uv sync --locked --extra dev --extra docs
28
+
29
+ - name: Run pre-commit
30
+ run: uv run pre-commit run --all-files
31
+
32
+ - name: Run pip-audit
33
+ run: uv run pip-audit --skip-editable --ignore-vuln CVE-2026-4539
34
+
35
+ - name: Run mypy
36
+ run: uv run mypy src/
37
+
38
+ unit-tests:
39
+ name: Unit Tests (Python ${{ matrix.python-version }})
40
+ needs: quality-gate
41
+ runs-on: ubuntu-latest
42
+ strategy:
43
+ matrix:
44
+ python-version: ["3.12", "3.13"]
45
+ steps:
46
+ - uses: actions/checkout@v4
47
+ - uses: actions/setup-python@v5
48
+ with:
49
+ python-version: ${{ matrix.python-version }}
50
+ - uses: astral-sh/setup-uv@v7
51
+ with:
52
+ version: "0.10.7"
53
+
54
+ - name: Sync dev + docs environment
55
+ run: uv sync --locked --extra dev --extra docs
56
+
57
+ - name: Run unit tests
58
+ run: uv run pytest tests/ -m "unit" -v --tb=short
59
+
60
+ integration-tests:
61
+ name: Integration Tests
62
+ needs: unit-tests
63
+ runs-on: ubuntu-latest
64
+
65
+ services:
66
+ redis:
67
+ image: redis:7-alpine
68
+ ports:
69
+ - 6379:6379
70
+ options: >-
71
+ --health-cmd "redis-cli ping"
72
+ --health-interval 10s
73
+ --health-timeout 5s
74
+ --health-retries 5
75
+
76
+ steps:
77
+ - uses: actions/checkout@v4
78
+ - uses: actions/setup-python@v5
79
+ with:
80
+ python-version: "3.12"
81
+ - uses: astral-sh/setup-uv@v7
82
+ with:
83
+ version: "0.10.7"
84
+
85
+ - name: Sync dev environment
86
+ run: uv sync --locked --extra dev
87
+
88
+ - name: Run integration tests
89
+ env:
90
+ REDIS_URL: redis://localhost:6379/0
91
+ run: uv run pytest tests/ -m "integration" -v --tb=short --no-cov
@@ -3,16 +3,16 @@ name: Deploy Docs
3
3
  on:
4
4
  push:
5
5
  tags:
6
- - 'v*'
6
+ - "v*"
7
7
  workflow_dispatch:
8
8
  inputs:
9
9
  version:
10
- description: 'Version alias to deploy (e.g. 0.x, 1.x)'
10
+ description: "Version alias to deploy (e.g. 0.x, 1.x)"
11
11
  required: true
12
12
  alias:
13
- description: 'Alias (latest, stable, or leave empty)'
13
+ description: "Alias (latest, stable, or leave empty)"
14
14
  required: false
15
- default: 'latest'
15
+ default: "latest"
16
16
 
17
17
  env:
18
18
  FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
@@ -39,33 +39,33 @@ jobs:
39
39
  uses: actions/setup-python@v5
40
40
  with:
41
41
  python-version: "3.12"
42
- cache: 'pip'
42
+ - uses: astral-sh/setup-uv@v7
43
+ with:
44
+ version: "0.10.7"
43
45
 
44
- - name: Install dependencies
45
- run: |
46
- python -m pip install --upgrade pip
47
- pip install -e ".[docs]"
46
+ - name: Sync docs environment
47
+ run: uv sync --locked --extra docs
48
48
 
49
49
  - name: Resolve version alias (tag push)
50
50
  if: github.event_name == 'push'
51
51
  id: version
52
52
  run: |
53
- TAG="${GITHUB_REF_NAME}" # e.g. v1.2.3
53
+ TAG="${GITHUB_REF_NAME}"
54
54
  MAJOR=$(echo "$TAG" | sed 's/^v//' | cut -d. -f1)
55
55
  echo "alias=${MAJOR}.x" >> "$GITHUB_OUTPUT"
56
56
 
57
57
  - name: Deploy versioned docs (tag push)
58
58
  if: github.event_name == 'push'
59
59
  run: |
60
- mike deploy --push --update-aliases "${{ steps.version.outputs.alias }}" latest
61
- mike set-default --push latest
60
+ uv run mike deploy --push --update-aliases "${{ steps.version.outputs.alias }}" latest
61
+ uv run mike set-default --push latest
62
62
 
63
63
  - name: Deploy versioned docs (manual)
64
64
  if: github.event_name == 'workflow_dispatch'
65
65
  run: |
66
66
  if [ -n "${{ inputs.alias }}" ]; then
67
- mike deploy --push --update-aliases "${{ inputs.version }}" "${{ inputs.alias }}"
67
+ uv run mike deploy --push --update-aliases "${{ inputs.version }}" "${{ inputs.alias }}"
68
68
  else
69
- mike deploy --push "${{ inputs.version }}"
69
+ uv run mike deploy --push "${{ inputs.version }}"
70
70
  fi
71
- mike set-default --push latest
71
+ uv run mike set-default --push latest
@@ -3,7 +3,7 @@ name: Publish to PyPI
3
3
  on:
4
4
  push:
5
5
  tags:
6
- - 'v*'
6
+ - "v*"
7
7
 
8
8
  env:
9
9
  FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
@@ -29,18 +29,15 @@ jobs:
29
29
  uses: actions/setup-python@v5
30
30
  with:
31
31
  python-version: "3.12"
32
- cache: 'pip'
33
-
34
- - name: Install build tools
35
- run: |
36
- python -m pip install --upgrade pip
37
- python -m pip install build twine hatchling
32
+ - uses: astral-sh/setup-uv@v7
33
+ with:
34
+ version: "0.10.7"
38
35
 
39
36
  - name: Build sdist and wheel
40
- run: python -m build
37
+ run: uv build --no-sources
41
38
 
42
39
  - name: Check artifacts
43
- run: twine check dist/*
40
+ run: uvx twine check dist/*
44
41
 
45
42
  - name: Publish to PyPI
46
43
  uses: pypa/gh-action-pypi-publish@release/v1
@@ -187,6 +187,7 @@ cython_debug/
187
187
 
188
188
  # Ruff stuff:
189
189
  .ruff_cache/
190
+ .uv-cache/
190
191
 
191
192
  # PyPI configuration file
192
193
  .pypirc
@@ -0,0 +1 @@
1
+ 3.12
@@ -0,0 +1,42 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ Grouped by `Added` · `Changed` · `Deprecated` · `Removed` · `Fixed`.
5
+
6
+ ## [0.3.0] - 2026-04-05
7
+
8
+ ### Changed
9
+ - Raised the `codex-core` requirement to `>=0.3.0,<0.10.0` so the package tracks the new core baseline while remaining compatible through the `0.9.x` series.
10
+ - Updated the documented install examples to the `codex-platform 0.3.x` release line.
11
+
12
+ ## [0.2.0] - 2026-03-29
13
+
14
+ ### Added
15
+ - `SiteSettingsManager` as a public Redis manager for shared `site_settings` hash access across services.
16
+ - `uv.lock` for reproducible local and CI environments.
17
+
18
+ ### Changed
19
+ - Standardized the documentation site around the shared Codex MkDocs layout: English-only API reference, bilingual architecture guides, teal/cyan theme, and shared extra CSS.
20
+ - Migrated CI, docs deployment, publishing, and local developer workflows from ad-hoc `pip` installs to `uv`.
21
+ - Raised the supported Python baseline to 3.12 and simplified code paths that only existed for Python 3.10/3.11 compatibility.
22
+ - Reused shared developer tooling from `codex-core` for project checks and project-tree generation, with `tools/dev/check.py` configured via the new `RUN_*` policy flags.
23
+ - Pinned the `codex-core` dependency to the supported `0.2.x` series.
24
+ - Enabled the shared pytest/coverage mode in `pyproject.toml` so local runs, CI, and `tools/dev/check.py` all collect coverage consistently.
25
+
26
+ ### Removed
27
+ - Duplicated `docs/ru/api` reference pages now that API documentation is published in English only.
28
+
29
+ ### Fixed
30
+ - Kept docs-build integration tests aligned with CI by installing docs dependencies in the integration test job.
31
+ - Updated landing-page documentation links and examples to match the current docs structure and public API.
32
+ - Fixed `BaseWorkerConfig` to inherit settings from `codex-core` correctly and to build ARQ Redis settings from the actual shared Redis fields.
33
+ - Stopped standalone integration test runs from failing the release coverage gate by disabling coverage collection for integration-only runs in CI and `tools/dev/check.py`.
34
+
35
+ ## [0.1.0] - 2024-05-30
36
+
37
+ ### Added
38
+ - Initial split from monolithic `codex_tools` repository.
39
+ - `redis_service` — async Redis abstraction with typed operations (Hash, String, List, Set, ZSet, JSON, Pipeline).
40
+ - `streams` — Redis Streams producer/consumer with consumer groups, dispatcher, processor, router, and DLQ via ARQ.
41
+ - `notifications` — multi-channel notification engine with ARQ and Direct delivery adapters.
42
+ - `workers.arq` — base ARQ worker infrastructure with health check, DLQ retry, and `CORE_FUNCTIONS`.
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex-platform
3
- Version: 0.1.0
4
- Summary: Infrastructure, background tasks (ARQ), Redis service and framework adapters for Codex
3
+ Version: 0.3.0
4
+ Summary: Modular async infrastructure (Redis, Streams, ARQ, Notifications) built for Codex, designed for independent use.
5
5
  Project-URL: Homepage, https://github.com/codexdlc/codex-platform
6
6
  Project-URL: Documentation, https://codexdlc.github.io/codex-platform/
7
7
  Project-URL: Repository, https://github.com/codexdlc/codex-platform
@@ -12,16 +12,15 @@ Keywords: arq,django,notifications,redis,waas,worker
12
12
  Classifier: Development Status :: 3 - Alpha
13
13
  Classifier: Intended Audience :: Developers
14
14
  Classifier: License :: OSI Approved :: Apache Software License
15
- Classifier: Programming Language :: Python :: 3.10
16
- Classifier: Programming Language :: Python :: 3.11
17
15
  Classifier: Programming Language :: Python :: 3.12
18
16
  Classifier: Programming Language :: Python :: 3.13
19
- Requires-Python: >=3.10
20
- Requires-Dist: codex-core
17
+ Requires-Python: >=3.12
18
+ Requires-Dist: codex-core<0.10.0,>=0.3.0
21
19
  Requires-Dist: pydantic<3.0,>=2.0
22
20
  Provides-Extra: all
23
21
  Requires-Dist: aiosmtplib>=3.0; extra == 'all'
24
22
  Requires-Dist: arq>=0.25; extra == 'all'
23
+ Requires-Dist: jinja2>=3.1; extra == 'all'
25
24
  Requires-Dist: redis>=5.0; extra == 'all'
26
25
  Provides-Extra: arq
27
26
  Requires-Dist: arq>=0.25; extra == 'arq'
@@ -31,6 +30,7 @@ Requires-Dist: arq>=0.25; extra == 'dev'
31
30
  Requires-Dist: bandit>=1.7; extra == 'dev'
32
31
  Requires-Dist: detect-secrets>=1.5; extra == 'dev'
33
32
  Requires-Dist: fakeredis[lua]>=2.20; extra == 'dev'
33
+ Requires-Dist: jinja2>=3.1; extra == 'dev'
34
34
  Requires-Dist: mypy>=1.10; extra == 'dev'
35
35
  Requires-Dist: pip-audit>=2.7; extra == 'dev'
36
36
  Requires-Dist: pre-commit>=3.0; extra == 'dev'
@@ -43,11 +43,11 @@ Provides-Extra: docs
43
43
  Requires-Dist: mike>=2.0; extra == 'docs'
44
44
  Requires-Dist: mkdocs-include-markdown-plugin; extra == 'docs'
45
45
  Requires-Dist: mkdocs-material>=9.0; extra == 'docs'
46
- Requires-Dist: mkdocs-static-i18n; extra == 'docs'
47
46
  Requires-Dist: mkdocs<2.0,>=1.5; extra == 'docs'
48
47
  Requires-Dist: mkdocstrings[python]>=0.24; extra == 'docs'
49
48
  Provides-Extra: notifications
50
49
  Requires-Dist: aiosmtplib>=3.0; extra == 'notifications'
50
+ Requires-Dist: jinja2>=3.1; extra == 'notifications'
51
51
  Provides-Extra: redis
52
52
  Requires-Dist: redis>=5.0; extra == 'redis'
53
53
  Provides-Extra: streams
@@ -61,30 +61,43 @@ Description-Content-Type: text/markdown
61
61
  [![CI](https://github.com/codexdlc/codex-platform/actions/workflows/ci.yml/badge.svg)](https://github.com/codexdlc/codex-platform/actions/workflows/ci.yml)
62
62
  [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
63
63
 
64
- Infrastructure library for the **Codex WaaS toolkit**. Provides async Redis abstraction, Redis Streams event bus, ARQ background workers, and a multi-channel notification engine — each as an independently installable extra.
64
+ `codex-platform` is a modular, async infrastructure library. Originally built as the foundation for the Codex ecosystem, it is designed from the ground up to be completely independent. You can use it in any Python project to get a typed Redis abstraction, a Redis Streams event bus, structured ARQ background workers, or a multi-channel notification engine. Every component is completely independent and can be installed as a separate extra.
65
65
 
66
66
  ---
67
67
 
68
68
  ## Install
69
69
 
70
70
  ```bash
71
- # Core only
72
- pip install codex-platform
71
+ # codex-platform 0.3.x
72
+ pip install "codex-platform>=0.3.0,<0.4.0"
73
73
 
74
74
  # With Redis support
75
- pip install "codex-platform[redis]"
75
+ pip install "codex-platform[redis]>=0.3.0,<0.4.0"
76
76
 
77
77
  # With ARQ background workers
78
- pip install "codex-platform[arq]"
78
+ pip install "codex-platform[arq]>=0.3.0,<0.4.0"
79
79
 
80
80
  # With async SMTP notifications
81
- pip install "codex-platform[notifications]"
81
+ pip install "codex-platform[notifications]>=0.3.0,<0.4.0"
82
82
 
83
83
  # Redis Streams
84
- pip install "codex-platform[streams]"
84
+ pip install "codex-platform[streams]>=0.3.0,<0.4.0"
85
85
 
86
86
  # Everything
87
- pip install "codex-platform[all]"
87
+ pip install "codex-platform[all]>=0.3.0,<0.4.0"
88
+ ```
89
+
90
+ Requires Python 3.12 or newer.
91
+ Installs `codex-core>=0.3.0,<0.10.0` automatically as a dependency.
92
+
93
+ ## Development
94
+
95
+ ```bash
96
+ uv sync --extra dev
97
+ uv run pytest
98
+ uv run mypy src/
99
+ uv run pre-commit run --all-files
100
+ uv build --no-sources
88
101
  ```
89
102
 
90
103
  ## Quick Start
@@ -117,4 +130,14 @@ Full docs with architecture, API reference, and data flow diagrams:
117
130
 
118
131
  ## Part of the Codex ecosystem
119
132
 
120
- [codex-core](https://github.com/codexdlc/codex-core) · **codex-platform** · [codexdlc](https://github.com/codexdlc)
133
+ | Package | Role |
134
+ | :--- | :--- |
135
+ | [codex-core](https://github.com/codexdlc/codex-core) | Foundation — immutable DTOs, PII masking, env settings |
136
+ | **codex-platform** | Infrastructure — Redis, Streams, ARQ workers, Notifications |
137
+ | [codex-ai](https://github.com/codexdlc/codex-ai) | LLM layer — unified async interface for OpenAI, Gemini, Anthropic |
138
+ | [codex-services](https://github.com/codexdlc/codex-services) | Business logic — Booking engine, CRM, Calendar |
139
+
140
+ Each library is **fully standalone** — install only what your project needs.
141
+ Together they form the backbone of **[codex-bot](https://github.com/codexdlc/codex-bot)**
142
+ (Telegram AI-agent infrastructure built on aiogram) and
143
+ **[codex-django](https://github.com/codexdlc/codex-django)** (Django integration layer).
@@ -0,0 +1,87 @@
1
+ # codex-platform
2
+
3
+ [![PyPI version](https://img.shields.io/pypi/v/codex-platform.svg)](https://pypi.org/project/codex-platform/)
4
+ [![Python](https://img.shields.io/pypi/pyversions/codex-platform.svg)](https://pypi.org/project/codex-platform/)
5
+ [![CI](https://github.com/codexdlc/codex-platform/actions/workflows/ci.yml/badge.svg)](https://github.com/codexdlc/codex-platform/actions/workflows/ci.yml)
6
+ [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
7
+
8
+ `codex-platform` is a modular, async infrastructure library. Originally built as the foundation for the Codex ecosystem, it is designed from the ground up to be completely independent. You can use it in any Python project to get a typed Redis abstraction, a Redis Streams event bus, structured ARQ background workers, or a multi-channel notification engine. Every component is completely independent and can be installed as a separate extra.
9
+
10
+ ---
11
+
12
+ ## Install
13
+
14
+ ```bash
15
+ # codex-platform 0.3.x
16
+ pip install "codex-platform>=0.3.0,<0.4.0"
17
+
18
+ # With Redis support
19
+ pip install "codex-platform[redis]>=0.3.0,<0.4.0"
20
+
21
+ # With ARQ background workers
22
+ pip install "codex-platform[arq]>=0.3.0,<0.4.0"
23
+
24
+ # With async SMTP notifications
25
+ pip install "codex-platform[notifications]>=0.3.0,<0.4.0"
26
+
27
+ # Redis Streams
28
+ pip install "codex-platform[streams]>=0.3.0,<0.4.0"
29
+
30
+ # Everything
31
+ pip install "codex-platform[all]>=0.3.0,<0.4.0"
32
+ ```
33
+
34
+ Requires Python 3.12 or newer.
35
+ Installs `codex-core>=0.3.0,<0.10.0` automatically as a dependency.
36
+
37
+ ## Development
38
+
39
+ ```bash
40
+ uv sync --extra dev
41
+ uv run pytest
42
+ uv run mypy src/
43
+ uv run pre-commit run --all-files
44
+ uv build --no-sources
45
+ ```
46
+
47
+ ## Quick Start
48
+
49
+ ```python
50
+ from redis.asyncio import Redis
51
+ from codex_platform.redis_service import RedisService
52
+
53
+ redis = Redis(host="localhost", port=6379)
54
+ service = RedisService(redis)
55
+
56
+ await service.hash.set_json("user:42", "profile", {"name": "Alex"})
57
+ data = await service.hash.get_json("user:42", "profile")
58
+ ```
59
+
60
+ ## Modules
61
+
62
+ | Module | Extra | Description |
63
+ | :--- | :--- | :--- |
64
+ | `redis_service` | `[redis]` | Typed async Redis abstraction — Hash, String, List, Set, ZSet, JSON, Pipeline |
65
+ | `streams` | `[streams]` | Redis Streams producer/consumer with consumer groups, retry, and DLQ |
66
+ | `workers.arq` | `[arq]` | ARQ worker base infrastructure — health probes, DLQ retry, CORE_FUNCTIONS |
67
+ | `notifications` | `[notifications]` | Multi-channel notification engine — SMTP, ARQ/Direct delivery, Jinja2 renderer |
68
+
69
+ ## Documentation
70
+
71
+ Full docs with architecture, API reference, and data flow diagrams:
72
+
73
+ **[codexdlc.github.io/codex-platform](https://codexdlc.github.io/codex-platform/)**
74
+
75
+ ## Part of the Codex ecosystem
76
+
77
+ | Package | Role |
78
+ | :--- | :--- |
79
+ | [codex-core](https://github.com/codexdlc/codex-core) | Foundation — immutable DTOs, PII masking, env settings |
80
+ | **codex-platform** | Infrastructure — Redis, Streams, ARQ workers, Notifications |
81
+ | [codex-ai](https://github.com/codexdlc/codex-ai) | LLM layer — unified async interface for OpenAI, Gemini, Anthropic |
82
+ | [codex-services](https://github.com/codexdlc/codex-services) | Business logic — Booking engine, CRM, Calendar |
83
+
84
+ Each library is **fully standalone** — install only what your project needs.
85
+ Together they form the backbone of **[codex-bot](https://github.com/codexdlc/codex-bot)**
86
+ (Telegram AI-agent infrastructure built on aiogram) and
87
+ **[codex-django](https://github.com/codexdlc/codex-django)** (Django integration layer).
@@ -0,0 +1,56 @@
1
+ <!-- type: LANDING -->
2
+
3
+ # codex-platform
4
+
5
+ Infrastructure library for the Codex WaaS toolkit. Provides background task workers (ARQ), Redis service abstraction, Redis Streams event bus, and a multi-channel notification engine.
6
+
7
+ Built to be dropped into any Python 3.12+ service as a set of composable, independently installable extras.
8
+
9
+ ## Install
10
+
11
+ ```bash
12
+ # codex-platform 0.3.x
13
+ pip install "codex-platform>=0.3.0,<0.4.0"
14
+
15
+ # With Redis support
16
+ pip install "codex-platform[redis]>=0.3.0,<0.4.0"
17
+
18
+ # With ARQ worker support
19
+ pip install "codex-platform[arq]>=0.3.0,<0.4.0"
20
+
21
+ # With async SMTP notifications
22
+ pip install "codex-platform[notifications]>=0.3.0,<0.4.0"
23
+
24
+ # Redis Streams
25
+ pip install "codex-platform[streams]>=0.3.0,<0.4.0"
26
+
27
+ # Everything
28
+ pip install "codex-platform[all]>=0.3.0,<0.4.0"
29
+ ```
30
+
31
+ Requires Python 3.12 or newer.
32
+ Installs `codex-core>=0.3.0,<0.10.0` automatically as a dependency.
33
+
34
+ ## Quick Start
35
+
36
+ ```python
37
+ from redis.asyncio import Redis
38
+ from codex_platform.redis_service import RedisService
39
+
40
+ redis = Redis(host="localhost", port=6379)
41
+ service = RedisService(redis)
42
+
43
+ await service.hash.set_json("user:42", "profile", {"name": "Alex"})
44
+ data = await service.hash.get_json("user:42", "profile")
45
+ ```
46
+
47
+ <!-- TODO: extract to tasks/ once tasks/ layer is created -->
48
+
49
+ ## Navigation
50
+
51
+ | Section | Description |
52
+ | :--- | :--- |
53
+ | [Guide (EN)](en/architecture/notifications/README.md) | Architecture overviews and data-flow pages in English |
54
+ | [Руководство (RU)](ru/architecture/notifications/README.md) | Архитектурные страницы и схемы на русском |
55
+ | [API Reference](en/api/index.md) | English-only API reference generated from docstrings |
56
+ | [Changelog](changelog.md) | Version history |
@@ -0,0 +1,18 @@
1
+ /* =============================================================
2
+ Codex DocSite Standard — extra.css
3
+ Navigation section/group headers — visually distinct
4
+ ============================================================= */
5
+
6
+ .md-nav__item--section > .md-nav__link {
7
+ color: var(--md-typeset-a-color) !important;
8
+ font-weight: 700;
9
+ font-size: 0.72rem;
10
+ text-transform: uppercase;
11
+ letter-spacing: 0.09em;
12
+ }
13
+
14
+ .md-nav__item--section:not(:first-child) {
15
+ margin-top: 0.6em;
16
+ padding-top: 0.4em;
17
+ border-top: 1px solid var(--md-default-fg-color--lightest);
18
+ }
@@ -0,0 +1,141 @@
1
+ site_name: codex-platform
2
+ site_description: Infrastructure, background tasks (ARQ), Redis service and framework adapters for Codex
3
+ site_author: Codex Team
4
+
5
+ theme:
6
+ name: material
7
+ palette:
8
+ - media: "(prefers-color-scheme: light)"
9
+ scheme: default
10
+ primary: teal
11
+ accent: cyan
12
+ toggle:
13
+ icon: material/brightness-7
14
+ name: Switch to dark mode
15
+ - media: "(prefers-color-scheme: dark)"
16
+ scheme: slate
17
+ primary: teal
18
+ accent: cyan
19
+ toggle:
20
+ icon: material/brightness-4
21
+ name: Switch to light mode
22
+ features:
23
+ - navigation.tabs
24
+ - navigation.tabs.sticky
25
+ - navigation.sections
26
+ - navigation.expand
27
+ - navigation.top
28
+ - navigation.breadcrumbs
29
+ - search.suggest
30
+ - search.highlight
31
+ - content.code.copy
32
+ - content.code.annotate
33
+
34
+ extra:
35
+ version:
36
+ provider: mike
37
+ default: latest
38
+
39
+ extra_css:
40
+ - stylesheets/extra.css
41
+
42
+ markdown_extensions:
43
+ - pymdownx.superfences:
44
+ custom_fences:
45
+ - name: mermaid
46
+ class: mermaid
47
+ format: !!python/name:pymdownx.superfences.fence_code_format
48
+ - pymdownx.highlight:
49
+ anchor_linenums: true
50
+ - pymdownx.inlinehilite
51
+ - admonition
52
+ - pymdownx.details
53
+
54
+ plugins:
55
+ - search
56
+ - include-markdown
57
+ - mkdocstrings:
58
+ handlers:
59
+ python:
60
+ paths: [src]
61
+ options:
62
+ show_source: true
63
+ show_root_heading: true
64
+ show_root_full_path: false
65
+ show_category_heading: true
66
+ show_symbol_type_heading: true
67
+ show_symbol_type_toc: true
68
+ docstring_style: google
69
+ members_order: source
70
+
71
+ nav:
72
+ - Home: index.md
73
+ - Guide (EN):
74
+ - Architecture:
75
+ - Notifications:
76
+ - Overview: en/architecture/notifications/README.md
77
+ - Data Flow: en/architecture/notifications/data_flow.md
78
+ - Redis Service:
79
+ - Overview: en/architecture/redis_service/README.md
80
+ - Data Flow: en/architecture/redis_service/data_flow.md
81
+ - Streams:
82
+ - Overview: en/architecture/streams/README.md
83
+ - Data Flow: en/architecture/streams/data_flow.md
84
+ - Workers (ARQ):
85
+ - Overview: en/architecture/workers/README.md
86
+ - Data Flow: en/architecture/workers/data_flow.md
87
+ - Руководство (RU):
88
+ - Архитектура:
89
+ - Уведомления:
90
+ - Обзор: ru/architecture/notifications/README.md
91
+ - Поток данных: ru/architecture/notifications/data_flow.md
92
+ - Redis Сервис:
93
+ - Обзор: ru/architecture/redis_service/README.md
94
+ - Поток данных: ru/architecture/redis_service/data_flow.md
95
+ - Потоки:
96
+ - Обзор: ru/architecture/streams/README.md
97
+ - Поток данных: ru/architecture/streams/data_flow.md
98
+ - Воркеры (ARQ):
99
+ - Обзор: ru/architecture/workers/README.md
100
+ - Поток данных: ru/architecture/workers/data_flow.md
101
+ - API Reference:
102
+ - Overview: en/api/index.md
103
+ - Notifications:
104
+ - Overview: en/api/notifications/index.md
105
+ - DTOs: en/api/notifications/dto.md
106
+ - Channels: en/api/notifications/channels.md
107
+ - Orchestrator: en/api/notifications/orchestrator.md
108
+ - Registry: en/api/notifications/registry.md
109
+ - Renderer: en/api/notifications/renderer.md
110
+ - Delivery:
111
+ - Base Protocol: en/api/notifications/delivery/base.md
112
+ - ARQ: en/api/notifications/delivery/arq.md
113
+ - Direct: en/api/notifications/delivery/direct.md
114
+ - Redis Service:
115
+ - Overview: en/api/redis_service/index.md
116
+ - Base: en/api/redis_service/base.md
117
+ - Keys: en/api/redis_service/keys.md
118
+ - Service: en/api/redis_service/service.md
119
+ - Operations:
120
+ - Hash: en/api/redis_service/operations/hash.md
121
+ - JSON (String): en/api/redis_service/operations/json_string.md
122
+ - JSON (Module): en/api/redis_service/operations/json_module.md
123
+ - List: en/api/redis_service/operations/list_.md
124
+ - Pipeline: en/api/redis_service/operations/pipeline.md
125
+ - Set: en/api/redis_service/operations/set_.md
126
+ - String: en/api/redis_service/operations/string.md
127
+ - ZSet: en/api/redis_service/operations/zset.md
128
+ - Streams:
129
+ - Overview: en/api/streams/index.md
130
+ - Producer: en/api/streams/producer.md
131
+ - Consumer: en/api/streams/consumer.md
132
+ - Dispatcher: en/api/streams/dispatcher.md
133
+ - Processor: en/api/streams/processor.md
134
+ - Router: en/api/streams/router.md
135
+ - Workers (ARQ):
136
+ - Overview: en/api/workers/arq/index.md
137
+ - Base: en/api/workers/arq/base.md
138
+ - Config: en/api/workers/arq/config.md
139
+ - Task Utils: en/api/workers/arq/task_utils.md
140
+ - Types: en/api/workers/arq/types.md
141
+ - Changelog: changelog.md