codex-platform 0.5.1__tar.gz → 0.6.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 (226) hide show
  1. codex_platform-0.6.0/.agents/skills/codex-platform-maintainer/SKILL.md +12 -0
  2. {codex_platform-0.5.1 → codex_platform-0.6.0}/AGENTS.md +4 -0
  3. {codex_platform-0.5.1 → codex_platform-0.6.0}/CHANGELOG.md +23 -0
  4. {codex_platform-0.5.1 → codex_platform-0.6.0}/PKG-INFO +32 -19
  5. {codex_platform-0.5.1 → codex_platform-0.6.0}/README.md +24 -11
  6. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/index.md +2 -1
  7. codex_platform-0.6.0/docs/en/api/messaging/audience.md +5 -0
  8. codex_platform-0.6.0/docs/en/api/messaging/campaigns/dto.md +5 -0
  9. codex_platform-0.6.0/docs/en/api/messaging/campaigns/index.md +5 -0
  10. codex_platform-0.6.0/docs/en/api/messaging/campaigns/protocols.md +5 -0
  11. codex_platform-0.6.0/docs/en/api/messaging/channels.md +5 -0
  12. codex_platform-0.6.0/docs/en/api/messaging/clients/smtp.md +5 -0
  13. codex_platform-0.6.0/docs/en/api/messaging/delivery/arq.md +5 -0
  14. codex_platform-0.6.0/docs/en/api/messaging/delivery/base.md +5 -0
  15. codex_platform-0.6.0/docs/en/api/messaging/delivery/direct.md +5 -0
  16. codex_platform-0.6.0/docs/en/api/messaging/dto.md +5 -0
  17. codex_platform-0.6.0/docs/en/api/messaging/index.md +8 -0
  18. codex_platform-0.6.0/docs/en/api/messaging/orchestrator.md +5 -0
  19. codex_platform-0.6.0/docs/en/api/messaging/registry.md +5 -0
  20. codex_platform-0.6.0/docs/en/api/messaging/renderer.md +5 -0
  21. codex_platform-0.6.0/docs/en/api/messaging/threading.md +5 -0
  22. codex_platform-0.6.0/docs/en/api/messaging/workers_contract.md +5 -0
  23. codex_platform-0.6.0/docs/en/api/notifications/index.md +8 -0
  24. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/architecture/notifications/README.md +1 -1
  25. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/architecture/notifications/data_flow.md +1 -1
  26. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/architecture/redis_service/README.md +1 -1
  27. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/architecture/redis_service/data_flow.md +1 -1
  28. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/architecture/streams/README.md +1 -1
  29. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/architecture/streams/data_flow.md +1 -1
  30. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/architecture/workers/README.md +1 -1
  31. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/architecture/workers/data_flow.md +1 -1
  32. codex_platform-0.6.0/docs/en/guides/agent-skills.md +27 -0
  33. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/index.md +11 -9
  34. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/ru/architecture/notifications/README.md +1 -1
  35. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/ru/architecture/notifications/data_flow.md +1 -1
  36. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/ru/architecture/redis_service/README.md +1 -1
  37. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/ru/architecture/redis_service/data_flow.md +1 -1
  38. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/ru/architecture/streams/README.md +1 -1
  39. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/ru/architecture/streams/data_flow.md +1 -1
  40. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/ru/architecture/workers/README.md +1 -1
  41. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/ru/architecture/workers/data_flow.md +1 -1
  42. codex_platform-0.6.0/docs/ru/guides/agent-skills.md +25 -0
  43. {codex_platform-0.5.1 → codex_platform-0.6.0}/mkdocs.yml +22 -0
  44. {codex_platform-0.5.1 → codex_platform-0.6.0}/pyproject.toml +4 -4
  45. codex_platform-0.6.0/src/codex_platform/agent_skills/__init__.py +1 -0
  46. codex_platform-0.6.0/src/codex_platform/agent_skills/__main__.py +4 -0
  47. codex_platform-0.6.0/src/codex_platform/agent_skills/cli.py +39 -0
  48. codex_platform-0.6.0/src/codex_platform/agent_skills/fs_transaction.py +183 -0
  49. codex_platform-0.6.0/src/codex_platform/agent_skills/manifest_rules.py +153 -0
  50. codex_platform-0.6.0/src/codex_platform/agent_skills/orchestrator.py +225 -0
  51. codex_platform-0.6.0/src/codex_platform/agent_skills/resources/SKILL.md +19 -0
  52. codex_platform-0.6.0/src/codex_platform/agent_skills/resources/__init__.py +1 -0
  53. codex_platform-0.6.0/src/codex_platform/agent_skills/resources/references/arq.md +20 -0
  54. codex_platform-0.6.0/src/codex_platform/agent_skills/resources/references/messaging.md +35 -0
  55. codex_platform-0.6.0/src/codex_platform/agent_skills/resources/references/redis.md +18 -0
  56. codex_platform-0.6.0/src/codex_platform/agent_skills/resources/references/streams.md +22 -0
  57. codex_platform-0.6.0/src/codex_platform/messaging/__init__.py +68 -0
  58. codex_platform-0.6.0/src/codex_platform/messaging/audience.py +23 -0
  59. codex_platform-0.6.0/src/codex_platform/messaging/campaigns/__init__.py +6 -0
  60. codex_platform-0.6.0/src/codex_platform/messaging/campaigns/dto.py +46 -0
  61. codex_platform-0.6.0/src/codex_platform/messaging/campaigns/protocols.py +18 -0
  62. {codex_platform-0.5.1/src/codex_platform/notifications → codex_platform-0.6.0/src/codex_platform/messaging}/channels.py +1 -5
  63. {codex_platform-0.5.1/src/codex_platform/notifications → codex_platform-0.6.0/src/codex_platform/messaging}/clients/__init__.py +2 -0
  64. {codex_platform-0.5.1/src/codex_platform/notifications → codex_platform-0.6.0/src/codex_platform/messaging}/clients/smtp.py +30 -48
  65. codex_platform-0.6.0/src/codex_platform/messaging/delivery/__init__.py +11 -0
  66. codex_platform-0.6.0/src/codex_platform/messaging/delivery/arq.py +38 -0
  67. codex_platform-0.6.0/src/codex_platform/messaging/delivery/base.py +16 -0
  68. codex_platform-0.6.0/src/codex_platform/messaging/delivery/direct.py +76 -0
  69. codex_platform-0.6.0/src/codex_platform/messaging/dto.py +60 -0
  70. {codex_platform-0.5.1/src/codex_platform/notifications → codex_platform-0.6.0/src/codex_platform/messaging}/interfaces.py +6 -8
  71. codex_platform-0.6.0/src/codex_platform/messaging/orchestrator.py +101 -0
  72. codex_platform-0.6.0/src/codex_platform/messaging/registry.py +48 -0
  73. codex_platform-0.6.0/src/codex_platform/messaging/renderer.py +71 -0
  74. codex_platform-0.6.0/src/codex_platform/messaging/threading.py +65 -0
  75. codex_platform-0.6.0/src/codex_platform/messaging/workers_contract.py +14 -0
  76. codex_platform-0.6.0/src/codex_platform/notifications/__init__.py +13 -0
  77. codex_platform-0.6.0/src/codex_platform/notifications/channels.py +13 -0
  78. codex_platform-0.6.0/src/codex_platform/notifications/clients/__init__.py +13 -0
  79. codex_platform-0.6.0/src/codex_platform/notifications/clients/smtp.py +19 -0
  80. codex_platform-0.6.0/src/codex_platform/notifications/delivery/__init__.py +13 -0
  81. codex_platform-0.6.0/src/codex_platform/notifications/delivery/arq.py +13 -0
  82. codex_platform-0.6.0/src/codex_platform/notifications/delivery/base.py +13 -0
  83. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/notifications/delivery/direct.py +16 -36
  84. codex_platform-0.6.0/src/codex_platform/notifications/dto.py +13 -0
  85. codex_platform-0.6.0/src/codex_platform/notifications/interfaces.py +13 -0
  86. codex_platform-0.6.0/src/codex_platform/notifications/orchestrator.py +13 -0
  87. codex_platform-0.6.0/src/codex_platform/notifications/registry.py +13 -0
  88. codex_platform-0.6.0/src/codex_platform/notifications/renderer.py +13 -0
  89. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/streams/consumer.py +9 -3
  90. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/streams/processor.py +7 -2
  91. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/streams/runtime.py +2 -0
  92. codex_platform-0.6.0/tests/unit/test_agent_skills.py +374 -0
  93. codex_platform-0.6.0/tests/unit/test_messaging_api.py +185 -0
  94. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_stream_consumer.py +39 -2
  95. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_stream_processor.py +41 -0
  96. {codex_platform-0.5.1 → codex_platform-0.6.0}/uv.lock +113 -80
  97. codex_platform-0.5.1/docs/en/api/notifications/index.md +0 -5
  98. codex_platform-0.5.1/src/codex_platform/notifications/__init__.py +0 -48
  99. codex_platform-0.5.1/src/codex_platform/notifications/delivery/__init__.py +0 -18
  100. codex_platform-0.5.1/src/codex_platform/notifications/delivery/arq.py +0 -69
  101. codex_platform-0.5.1/src/codex_platform/notifications/delivery/base.py +0 -39
  102. codex_platform-0.5.1/src/codex_platform/notifications/dto.py +0 -63
  103. codex_platform-0.5.1/src/codex_platform/notifications/orchestrator.py +0 -116
  104. codex_platform-0.5.1/src/codex_platform/notifications/registry.py +0 -71
  105. codex_platform-0.5.1/src/codex_platform/notifications/renderer.py +0 -112
  106. {codex_platform-0.5.1 → codex_platform-0.6.0}/.agents/rules/graphify.md +0 -0
  107. {codex_platform-0.5.1 → codex_platform-0.6.0}/.github/workflows/ci.yml +0 -0
  108. {codex_platform-0.5.1 → codex_platform-0.6.0}/.github/workflows/docs.yml +0 -0
  109. {codex_platform-0.5.1 → codex_platform-0.6.0}/.github/workflows/publish.yml +0 -0
  110. {codex_platform-0.5.1 → codex_platform-0.6.0}/.gitignore +0 -0
  111. {codex_platform-0.5.1 → codex_platform-0.6.0}/.pre-commit-config.yaml +0 -0
  112. {codex_platform-0.5.1 → codex_platform-0.6.0}/.python-version +0 -0
  113. {codex_platform-0.5.1 → codex_platform-0.6.0}/CLAUDE.md +0 -0
  114. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/changelog.md +0 -0
  115. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/dev/messaging/00_overview.md +0 -0
  116. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/dev/messaging/01_core_dtos_and_protocols.md +0 -0
  117. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/dev/messaging/02_channels_and_registry.md +0 -0
  118. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/dev/messaging/03_renderer_and_templates.md +0 -0
  119. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/dev/messaging/04_threading_and_headers.md +0 -0
  120. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/dev/messaging/05_workers_contract.md +0 -0
  121. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/dev/messaging/06_migration_from_notifications.md +0 -0
  122. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/notifications/channels.md +0 -0
  123. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/notifications/delivery/arq.md +0 -0
  124. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/notifications/delivery/base.md +0 -0
  125. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/notifications/delivery/direct.md +0 -0
  126. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/notifications/dto.md +0 -0
  127. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/notifications/orchestrator.md +0 -0
  128. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/notifications/registry.md +0 -0
  129. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/notifications/renderer.md +0 -0
  130. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/redis_service/base.md +0 -0
  131. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/redis_service/index.md +0 -0
  132. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/redis_service/keys.md +0 -0
  133. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/redis_service/operations/hash.md +0 -0
  134. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/redis_service/operations/json_module.md +0 -0
  135. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/redis_service/operations/json_string.md +0 -0
  136. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/redis_service/operations/list_.md +0 -0
  137. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/redis_service/operations/pipeline.md +0 -0
  138. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/redis_service/operations/set_.md +0 -0
  139. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/redis_service/operations/string.md +0 -0
  140. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/redis_service/operations/zset.md +0 -0
  141. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/redis_service/service.md +0 -0
  142. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/streams/consumer.md +0 -0
  143. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/streams/dispatcher.md +0 -0
  144. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/streams/index.md +0 -0
  145. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/streams/processor.md +0 -0
  146. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/streams/producer.md +0 -0
  147. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/streams/router.md +0 -0
  148. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/workers/arq/base.md +0 -0
  149. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/workers/arq/config.md +0 -0
  150. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/workers/arq/index.md +0 -0
  151. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/workers/arq/task_utils.md +0 -0
  152. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/en/api/workers/arq/types.md +0 -0
  153. {codex_platform-0.5.1 → codex_platform-0.6.0}/docs/stylesheets/extra.css +0 -0
  154. {codex_platform-0.5.1 → codex_platform-0.6.0}/project_structure.txt +0 -0
  155. {codex_platform-0.5.1 → codex_platform-0.6.0}/redis-backends-recovery.md +0 -0
  156. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/__init__.py +0 -0
  157. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/py.typed +0 -0
  158. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/__init__.py +0 -0
  159. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/base.py +0 -0
  160. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/exceptions.py +0 -0
  161. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/keys.py +0 -0
  162. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/managers/__init__.py +0 -0
  163. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/managers/base_manager.py +0 -0
  164. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/managers/site_settings.py +0 -0
  165. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/__init__.py +0 -0
  166. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/hash.py +0 -0
  167. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/json_module.py +0 -0
  168. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/json_string.py +0 -0
  169. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/list_.py +0 -0
  170. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/pipeline.py +0 -0
  171. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/set_.py +0 -0
  172. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/string.py +0 -0
  173. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/sync_hash.py +0 -0
  174. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/sync_string.py +0 -0
  175. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/zset.py +0 -0
  176. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/redis_service/service.py +0 -0
  177. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/streams/__init__.py +0 -0
  178. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/streams/codec.py +0 -0
  179. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/streams/dispatcher.py +0 -0
  180. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/streams/producer.py +0 -0
  181. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/streams/router.py +0 -0
  182. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/workers/__init__.py +0 -0
  183. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/workers/arq/__init__.py +0 -0
  184. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/workers/arq/base.py +0 -0
  185. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/workers/arq/config.py +0 -0
  186. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/workers/arq/task_utils.py +0 -0
  187. {codex_platform-0.5.1 → codex_platform-0.6.0}/src/codex_platform/workers/arq/types.py +0 -0
  188. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/integration/__init__.py +0 -0
  189. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/integration/conftest.py +0 -0
  190. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/integration/test_docs_build.py +0 -0
  191. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/integration/test_redis_service.py +0 -0
  192. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/integration/test_streams.py +0 -0
  193. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/__init__.py +0 -0
  194. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/conftest.py +0 -0
  195. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_arq_base.py +0 -0
  196. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_arq_config.py +0 -0
  197. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_arq_public_api.py +0 -0
  198. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_arq_task_utils.py +0 -0
  199. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_notification_adapters.py +0 -0
  200. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_notification_channels.py +0 -0
  201. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_notification_dto.py +0 -0
  202. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_notification_orchestrator.py +0 -0
  203. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_notification_registry.py +0 -0
  204. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_notification_renderer.py +0 -0
  205. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_notification_smtp.py +0 -0
  206. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_redis_base.py +0 -0
  207. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_redis_hash.py +0 -0
  208. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_redis_keys.py +0 -0
  209. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_redis_list.py +0 -0
  210. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_redis_manager.py +0 -0
  211. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_redis_pipeline.py +0 -0
  212. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_redis_service.py +0 -0
  213. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_redis_set.py +0 -0
  214. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_redis_string.py +0 -0
  215. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_redis_zset.py +0 -0
  216. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_site_settings_manager.py +0 -0
  217. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_stream_dispatcher.py +0 -0
  218. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_stream_producer.py +0 -0
  219. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_stream_router.py +0 -0
  220. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_stream_runtime.py +0 -0
  221. {codex_platform-0.5.1 → codex_platform-0.6.0}/tests/unit/test_sync_operations.py +0 -0
  222. {codex_platform-0.5.1 → codex_platform-0.6.0}/tools/__init__.py +0 -0
  223. {codex_platform-0.5.1 → codex_platform-0.6.0}/tools/dev/README.md +0 -0
  224. {codex_platform-0.5.1 → codex_platform-0.6.0}/tools/dev/__init__.py +0 -0
  225. {codex_platform-0.5.1 → codex_platform-0.6.0}/tools/dev/check.py +0 -0
  226. {codex_platform-0.5.1 → codex_platform-0.6.0}/tools/dev/generate_project_tree.py +0 -0
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: codex-platform-maintainer
3
+ description: Use for maintaining this repository's Redis, Streams, ARQ, messaging, packaging, or release integration.
4
+ ---
5
+
6
+ # codex-platform maintenance
7
+
8
+ This repository publishes the `codex-platform` library. Keep framework-independent infrastructure in `src/codex_platform/`; application policy and business rules belong to consumers. The public API is exposed by each component's `__init__.py`. Inspect those exports and the corresponding unit tests before changing a contract.
9
+
10
+ Components are independent optional surfaces: `redis_service` needs Redis, `streams` uses Redis Streams, `workers.arq` needs ARQ, and `messaging` handles notification primitives. `notifications` is deprecated compatibility code; new behavior belongs in `messaging` and compatibility changes need explicit tests.
11
+
12
+ The canonical consumer skill lives in `src/codex_platform/agent_skills/resources/`. Treat its installed copies in other projects as managed output. When changing installer behavior, exercise install, update, delete, and status in a temporary consumer directory and inspect wheel and sdist payloads. Run focused tests and configured lint/types for affected code. The root `AGENTS.md` requires refreshing the shared graph after code changes.
@@ -7,3 +7,7 @@ Rules:
7
7
  - If `../graphify-out/wiki/index.md` exists, navigate it instead of reading raw files.
8
8
  - For cross-module questions, prefer `graphify query`, `graphify path`, or `graphify explain` (run from root or via MCP) over grep.
9
9
  - After modifying code files in this session, run `graphify update .` from the **workspace root** to keep the global graph current.
10
+
11
+ ## Project maintenance
12
+
13
+ For maintenance of this library, use [codex-platform-maintainer](.agents/skills/codex-platform-maintainer/SKILL.md). The distributable consumer guidance is maintained separately in `src/codex_platform/agent_skills/resources/`.
@@ -5,6 +5,29 @@ Grouped by `Added` · `Changed` · `Deprecated` · `Removed` · `Fixed`.
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.6.0] - 2026-10-09
9
+
10
+ ### Added
11
+ - Added an optional offline installer for the `codex-platform` consumer agent skill, with versioned ownership and safe install, update, status, and delete operations.
12
+
13
+ ### Changed
14
+ - Raised the `codex-core` baseline to the published `0.5.0` release.
15
+ - Raised the minimum supported `aiosmtplib`, `mkdocs-material`, and development `pip` versions to patched releases and refreshed the lockfile for vulnerable transitive dependencies.
16
+
17
+ ### Fixed
18
+ - Corrected architecture-guide links and refreshed installation examples for the `0.6.x` release line.
19
+
20
+ ## [0.5.2] - 2026-05-07
21
+
22
+ ### Added
23
+ - Added the framework-agnostic `codex_platform.messaging` package with notification delivery, campaign, threading, renderer, and SMTP primitives.
24
+
25
+ ### Deprecated
26
+ - Deprecated `codex_platform.notifications` modules in favor of `codex_platform.messaging` compatibility re-exports.
27
+
28
+ ### Fixed
29
+ - Reduced Redis Streams consumer latency by using configurable blocking `XREADGROUP` reads instead of relying on the processor polling interval for normal wakeups.
30
+
8
31
  ## [0.5.1] - 2026-04-30
9
32
 
10
33
  ### Fixed
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: codex-platform
3
- Version: 0.5.1
3
+ Version: 0.6.0
4
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/
@@ -15,17 +15,17 @@ Classifier: License :: OSI Approved :: Apache Software License
15
15
  Classifier: Programming Language :: Python :: 3.12
16
16
  Classifier: Programming Language :: Python :: 3.13
17
17
  Requires-Python: >=3.12
18
- Requires-Dist: codex-core<0.10.0,>=0.3.0
18
+ Requires-Dist: codex-core<0.10.0,>=0.5.0
19
19
  Requires-Dist: pydantic<3.0,>=2.0
20
20
  Provides-Extra: all
21
- Requires-Dist: aiosmtplib>=3.0; extra == 'all'
21
+ Requires-Dist: aiosmtplib>=5.1.2; extra == 'all'
22
22
  Requires-Dist: arq>=0.25; extra == 'all'
23
23
  Requires-Dist: jinja2>=3.1; extra == 'all'
24
24
  Requires-Dist: redis>=5.0; extra == 'all'
25
25
  Provides-Extra: arq
26
26
  Requires-Dist: arq>=0.25; extra == 'arq'
27
27
  Provides-Extra: dev
28
- Requires-Dist: aiosmtplib>=3.0; extra == 'dev'
28
+ Requires-Dist: aiosmtplib>=5.1.2; extra == 'dev'
29
29
  Requires-Dist: arq>=0.25; extra == 'dev'
30
30
  Requires-Dist: bandit>=1.7; extra == 'dev'
31
31
  Requires-Dist: detect-secrets>=1.5; extra == 'dev'
@@ -34,7 +34,7 @@ Requires-Dist: jinja2>=3.1; extra == 'dev'
34
34
  Requires-Dist: lupa>2.6; extra == 'dev'
35
35
  Requires-Dist: mypy>=1.10; extra == 'dev'
36
36
  Requires-Dist: pip-audit>=2.7; extra == 'dev'
37
- Requires-Dist: pip>=26.1; extra == 'dev'
37
+ Requires-Dist: pip>=26.2.1; extra == 'dev'
38
38
  Requires-Dist: pre-commit>=3.0; extra == 'dev'
39
39
  Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
40
40
  Requires-Dist: pytest-cov; extra == 'dev'
@@ -44,11 +44,11 @@ Requires-Dist: ruff>=0.4; extra == 'dev'
44
44
  Provides-Extra: docs
45
45
  Requires-Dist: mike>=2.0; extra == 'docs'
46
46
  Requires-Dist: mkdocs-include-markdown-plugin; extra == 'docs'
47
- Requires-Dist: mkdocs-material>=9.0; extra == 'docs'
47
+ Requires-Dist: mkdocs-material>=9.7.7; extra == 'docs'
48
48
  Requires-Dist: mkdocs<2.0,>=1.5; extra == 'docs'
49
49
  Requires-Dist: mkdocstrings[python]>=0.24; extra == 'docs'
50
50
  Provides-Extra: notifications
51
- Requires-Dist: aiosmtplib>=3.0; extra == 'notifications'
51
+ Requires-Dist: aiosmtplib>=5.1.2; extra == 'notifications'
52
52
  Requires-Dist: jinja2>=3.1; extra == 'notifications'
53
53
  Provides-Extra: redis
54
54
  Requires-Dist: redis>=5.0; extra == 'redis'
@@ -61,7 +61,7 @@ Description-Content-Type: text/markdown
61
61
  [![PyPI version](https://img.shields.io/pypi/v/codex-platform.svg)](https://pypi.org/project/codex-platform/)
62
62
  [![Python](https://img.shields.io/pypi/pyversions/codex-platform.svg)](https://pypi.org/project/codex-platform/)
63
63
  [![CI](https://github.com/codexdlc/codex-platform/actions/workflows/ci.yml/badge.svg)](https://github.com/codexdlc/codex-platform/actions/workflows/ci.yml)
64
- [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
64
+ [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
65
65
 
66
66
  `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.
67
67
 
@@ -70,27 +70,27 @@ Description-Content-Type: text/markdown
70
70
  ## Install
71
71
 
72
72
  ```bash
73
- # codex-platform 0.3.x
74
- pip install "codex-platform>=0.3.0,<0.4.0"
73
+ # codex-platform 0.6.x
74
+ pip install "codex-platform>=0.6.0,<0.7.0"
75
75
 
76
76
  # With Redis support
77
- pip install "codex-platform[redis]>=0.3.0,<0.4.0"
77
+ pip install "codex-platform[redis]>=0.6.0,<0.7.0"
78
78
 
79
79
  # With ARQ background workers
80
- pip install "codex-platform[arq]>=0.3.0,<0.4.0"
80
+ pip install "codex-platform[arq]>=0.6.0,<0.7.0"
81
81
 
82
82
  # With async SMTP notifications
83
- pip install "codex-platform[notifications]>=0.3.0,<0.4.0"
83
+ pip install "codex-platform[notifications]>=0.6.0,<0.7.0"
84
84
 
85
85
  # Redis Streams
86
- pip install "codex-platform[streams]>=0.3.0,<0.4.0"
86
+ pip install "codex-platform[streams]>=0.6.0,<0.7.0"
87
87
 
88
88
  # Everything
89
- pip install "codex-platform[all]>=0.3.0,<0.4.0"
89
+ pip install "codex-platform[all]>=0.6.0,<0.7.0"
90
90
  ```
91
91
 
92
92
  Requires Python 3.12 or newer.
93
- Installs `codex-core>=0.3.0,<0.10.0` automatically as a dependency.
93
+ Installs `codex-core>=0.5.0,<0.10.0` automatically as a dependency.
94
94
 
95
95
  ## Development
96
96
 
@@ -122,7 +122,20 @@ data = await service.hash.get_json("user:42", "profile")
122
122
  | `redis_service` | `[redis]` | Typed async Redis abstraction — Hash, String, List, Set, ZSet, JSON, Pipeline |
123
123
  | `streams` | `[streams]` | Redis Streams producer/consumer with consumer groups, retry, and DLQ |
124
124
  | `workers.arq` | `[arq]` | ARQ worker base infrastructure — health probes, DLQ retry, CORE_FUNCTIONS |
125
- | `notifications` | `[notifications]` | Multi-channel notification engine — SMTP, ARQ/Direct delivery, Jinja2 renderer |
125
+ | `messaging` | `[notifications]` | Multi-channel notification primitives — SMTP, ARQ/direct delivery, Jinja2 renderer; `notifications` remains a deprecated compatibility import |
126
+
127
+ ## Optional agent skill (starting in 0.6.0)
128
+
129
+ Starting with `codex-platform` 0.6.0, the package includes an offline coding-agent skill for its Redis, Streams, ARQ, and messaging APIs. Installing the Python package does not change a project. To copy the skill into an existing project, run these commands from the Python environment where `codex-platform` is installed:
130
+
131
+ ```bash
132
+ python -m codex_platform.agent_skills install --project /path/to/project
133
+ python -m codex_platform.agent_skills status --project /path/to/project
134
+ python -m codex_platform.agent_skills update --project /path/to/project
135
+ python -m codex_platform.agent_skills delete --project /path/to/project
136
+ ```
137
+
138
+ The installer manages `.agents/skills/codex-platform/` and a bounded reference block in the project's root `AGENTS.md`. It preserves unrelated project guidance, tracks package version and file hashes, and refuses to overwrite locally edited managed files. See the [agent skill guide](docs/en/guides/agent-skills.md) for lifecycle and recovery details.
126
139
 
127
140
  ## Documentation
128
141
 
@@ -135,7 +148,7 @@ Full docs with architecture, API reference, and data flow diagrams:
135
148
  | Package | Role |
136
149
  | :--- | :--- |
137
150
  | [codex-core](https://github.com/codexdlc/codex-core) | Foundation — immutable DTOs, PII masking, env settings |
138
- | **codex-platform** | Infrastructure — Redis, Streams, ARQ workers, Notifications |
151
+ | **codex-platform** | Infrastructure — Redis, Streams, ARQ workers, messaging |
139
152
  | [codex-ai](https://github.com/codexdlc/codex-ai) | LLM layer — unified async interface for OpenAI, Gemini, Anthropic |
140
153
  | [codex-services](https://github.com/codexdlc/codex-services) | Business logic — Booking engine, CRM, Calendar |
141
154
 
@@ -3,7 +3,7 @@
3
3
  [![PyPI version](https://img.shields.io/pypi/v/codex-platform.svg)](https://pypi.org/project/codex-platform/)
4
4
  [![Python](https://img.shields.io/pypi/pyversions/codex-platform.svg)](https://pypi.org/project/codex-platform/)
5
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)
6
+ [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
7
7
 
8
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
9
 
@@ -12,27 +12,27 @@
12
12
  ## Install
13
13
 
14
14
  ```bash
15
- # codex-platform 0.3.x
16
- pip install "codex-platform>=0.3.0,<0.4.0"
15
+ # codex-platform 0.6.x
16
+ pip install "codex-platform>=0.6.0,<0.7.0"
17
17
 
18
18
  # With Redis support
19
- pip install "codex-platform[redis]>=0.3.0,<0.4.0"
19
+ pip install "codex-platform[redis]>=0.6.0,<0.7.0"
20
20
 
21
21
  # With ARQ background workers
22
- pip install "codex-platform[arq]>=0.3.0,<0.4.0"
22
+ pip install "codex-platform[arq]>=0.6.0,<0.7.0"
23
23
 
24
24
  # With async SMTP notifications
25
- pip install "codex-platform[notifications]>=0.3.0,<0.4.0"
25
+ pip install "codex-platform[notifications]>=0.6.0,<0.7.0"
26
26
 
27
27
  # Redis Streams
28
- pip install "codex-platform[streams]>=0.3.0,<0.4.0"
28
+ pip install "codex-platform[streams]>=0.6.0,<0.7.0"
29
29
 
30
30
  # Everything
31
- pip install "codex-platform[all]>=0.3.0,<0.4.0"
31
+ pip install "codex-platform[all]>=0.6.0,<0.7.0"
32
32
  ```
33
33
 
34
34
  Requires Python 3.12 or newer.
35
- Installs `codex-core>=0.3.0,<0.10.0` automatically as a dependency.
35
+ Installs `codex-core>=0.5.0,<0.10.0` automatically as a dependency.
36
36
 
37
37
  ## Development
38
38
 
@@ -64,7 +64,20 @@ data = await service.hash.get_json("user:42", "profile")
64
64
  | `redis_service` | `[redis]` | Typed async Redis abstraction — Hash, String, List, Set, ZSet, JSON, Pipeline |
65
65
  | `streams` | `[streams]` | Redis Streams producer/consumer with consumer groups, retry, and DLQ |
66
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 |
67
+ | `messaging` | `[notifications]` | Multi-channel notification primitives — SMTP, ARQ/direct delivery, Jinja2 renderer; `notifications` remains a deprecated compatibility import |
68
+
69
+ ## Optional agent skill (starting in 0.6.0)
70
+
71
+ Starting with `codex-platform` 0.6.0, the package includes an offline coding-agent skill for its Redis, Streams, ARQ, and messaging APIs. Installing the Python package does not change a project. To copy the skill into an existing project, run these commands from the Python environment where `codex-platform` is installed:
72
+
73
+ ```bash
74
+ python -m codex_platform.agent_skills install --project /path/to/project
75
+ python -m codex_platform.agent_skills status --project /path/to/project
76
+ python -m codex_platform.agent_skills update --project /path/to/project
77
+ python -m codex_platform.agent_skills delete --project /path/to/project
78
+ ```
79
+
80
+ The installer manages `.agents/skills/codex-platform/` and a bounded reference block in the project's root `AGENTS.md`. It preserves unrelated project guidance, tracks package version and file hashes, and refuses to overwrite locally edited managed files. See the [agent skill guide](docs/en/guides/agent-skills.md) for lifecycle and recovery details.
68
81
 
69
82
  ## Documentation
70
83
 
@@ -77,7 +90,7 @@ Full docs with architecture, API reference, and data flow diagrams:
77
90
  | Package | Role |
78
91
  | :--- | :--- |
79
92
  | [codex-core](https://github.com/codexdlc/codex-core) | Foundation — immutable DTOs, PII masking, env settings |
80
- | **codex-platform** | Infrastructure — Redis, Streams, ARQ workers, Notifications |
93
+ | **codex-platform** | Infrastructure — Redis, Streams, ARQ workers, messaging |
81
94
  | [codex-ai](https://github.com/codexdlc/codex-ai) | LLM layer — unified async interface for OpenAI, Gemini, Anthropic |
82
95
  | [codex-services](https://github.com/codexdlc/codex-services) | Business logic — Booking engine, CRM, Calendar |
83
96
 
@@ -6,7 +6,8 @@ Auto-generated from source docstrings (Google style). If code behavior contradic
6
6
 
7
7
  | Module | Description |
8
8
  | :--- | :--- |
9
- | [notifications](notifications/index.md) | Multi-channel notification engine |
9
+ | [messaging](messaging/index.md) | Framework-agnostic messaging engine |
10
+ | [notifications](notifications/index.md) | Deprecated compatibility path for messaging |
10
11
  | [redis_service](redis_service/index.md) | Async Redis abstraction with typed operations |
11
12
  | [streams](streams/index.md) | Redis Streams producer/consumer event bus |
12
13
  | [workers.arq](workers/arq/index.md) | ARQ background worker base infrastructure |
@@ -0,0 +1,5 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # messaging.audience
4
+
5
+ ::: codex_platform.messaging.audience
@@ -0,0 +1,5 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # messaging.campaigns.dto
4
+
5
+ ::: codex_platform.messaging.campaigns.dto
@@ -0,0 +1,5 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # messaging.campaigns
4
+
5
+ ::: codex_platform.messaging.campaigns
@@ -0,0 +1,5 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # messaging.campaigns.protocols
4
+
5
+ ::: codex_platform.messaging.campaigns.protocols
@@ -0,0 +1,5 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # messaging.channels
4
+
5
+ ::: codex_platform.messaging.channels
@@ -0,0 +1,5 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # messaging.clients.smtp
4
+
5
+ ::: codex_platform.messaging.clients.smtp
@@ -0,0 +1,5 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # messaging.delivery.arq
4
+
5
+ ::: codex_platform.messaging.delivery.arq
@@ -0,0 +1,5 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # messaging.delivery.base
4
+
5
+ ::: codex_platform.messaging.delivery.base
@@ -0,0 +1,5 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # messaging.delivery.direct
4
+
5
+ ::: codex_platform.messaging.delivery.direct
@@ -0,0 +1,5 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # messaging.dto
4
+
5
+ ::: codex_platform.messaging.dto
@@ -0,0 +1,8 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # messaging
4
+
5
+ Framework-agnostic messaging primitives. This package is the primary import
6
+ path for the former `codex_platform.notifications` API.
7
+
8
+ ::: codex_platform.messaging
@@ -0,0 +1,5 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # messaging.orchestrator
4
+
5
+ ::: codex_platform.messaging.orchestrator
@@ -0,0 +1,5 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # messaging.registry
4
+
5
+ ::: codex_platform.messaging.registry
@@ -0,0 +1,5 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # messaging.renderer
4
+
5
+ ::: codex_platform.messaging.renderer
@@ -0,0 +1,5 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # messaging.threading
4
+
5
+ ::: codex_platform.messaging.threading
@@ -0,0 +1,5 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # messaging.workers_contract
4
+
5
+ ::: codex_platform.messaging.workers_contract
@@ -0,0 +1,8 @@
1
+ <!-- type: REFERENCE -->
2
+
3
+ # notifications
4
+
5
+ Deprecated compatibility path. New code should import from
6
+ `codex_platform.messaging`.
7
+
8
+ ::: codex_platform.notifications
@@ -63,4 +63,4 @@ NotificationEngine.send(payload_dto)
63
63
  ## See Also
64
64
 
65
65
  - [Data Flow →](data_flow.md)
66
- - [API Reference →](../../../api/notifications/index.md)
66
+ - [API Reference →](../../api/notifications/index.md)
@@ -1,6 +1,6 @@
1
1
  <!-- type: CONCEPT -->
2
2
 
3
- [← Notifications](README.md) | [Home](../../index.md)
3
+ [← Notifications](README.md) | [Home](../../../index.md)
4
4
 
5
5
  # Data Flow: Notifications
6
6
 
@@ -59,4 +59,4 @@ Selective composition: use Operations classes directly if you don't need all typ
59
59
  ## See Also
60
60
 
61
61
  - [Data Flow →](data_flow.md)
62
- - [API Reference →](../../../api/redis_service/index.md)
62
+ - [API Reference →](../../api/redis_service/index.md)
@@ -1,6 +1,6 @@
1
1
  <!-- type: CONCEPT -->
2
2
 
3
- [← Redis Service](README.md) | [Home](../../index.md)
3
+ [← Redis Service](README.md) | [Home](../../../index.md)
4
4
 
5
5
  # Data Flow: Redis Service
6
6
 
@@ -69,4 +69,4 @@ App → StreamProducer StreamConsumer (XREADGROUP)
69
69
  ## See Also
70
70
 
71
71
  - [Data Flow →](data_flow.md)
72
- - [API Reference →](../../../api/streams/index.md)
72
+ - [API Reference →](../../api/streams/index.md)
@@ -1,6 +1,6 @@
1
1
  <!-- type: CONCEPT -->
2
2
 
3
- [← Streams](README.md) | [Home](../../index.md)
3
+ [← Streams](README.md) | [Home](../../../index.md)
4
4
 
5
5
  # Data Flow: Streams
6
6
 
@@ -59,4 +59,4 @@ BaseArqService (enqueue from application code / other workers)
59
59
 
60
60
  - [Data Flow →](data_flow.md)
61
61
  - [Streams retry integration →](../streams/README.md)
62
- - [API Reference →](../../../api/workers/arq/index.md)
62
+ - [API Reference →](../../api/workers/arq/index.md)
@@ -1,6 +1,6 @@
1
1
  <!-- type: CONCEPT -->
2
2
 
3
- [← Workers](README.md) | [Home](../../index.md)
3
+ [← Workers](README.md) | [Home](../../../index.md)
4
4
 
5
5
  # Data Flow: Workers (ARQ)
6
6
 
@@ -0,0 +1,27 @@
1
+ # Agent skill installer
2
+
3
+ Starting in version 0.6.0, `codex-platform` includes an optional offline consumer skill. The package owns its source in `codex_platform.agent_skills.resources`; installation copies it into an existing project at `.agents/skills/codex-platform/` and adds a bounded reference block to that project's root `AGENTS.md`. Runtime use of the library does not require installing the skill.
4
+
5
+ Use the Python environment containing `codex-platform`:
6
+
7
+ ```bash
8
+ python -m codex_platform.agent_skills install --project /path/to/project
9
+ python -m codex_platform.agent_skills status --project /path/to/project
10
+ python -m codex_platform.agent_skills update --project /path/to/project
11
+ python -m codex_platform.agent_skills delete --project /path/to/project
12
+ ```
13
+
14
+ `--project` must name an existing directory. `install` is idempotent for a current installation. After a package upgrade, `status` reports that the copy needs an update; run `update` to refresh it. `status` exits with code 0 only when the installed version, payload hashes, and `AGENTS.md` block are current. Absence, edits, or corruption return code 1.
15
+
16
+ The installer tracks owned file hashes and the package version in `.agents/skills/codex-platform/.manifest.json`. It preserves unrelated `AGENTS.md` text and unowned files under the skill directory. `update` and `delete` refuse to change locally edited or missing managed files. If that happens, back up the changed files, move custom guidance into a separate project skill, and restore the original managed bytes from the same installed package version before retrying. For a damaged marker, back up `AGENTS.md` and repair the bounded block from the installer documentation before retrying. Do not edit the manifest hashes to accept changes. Unowned path collisions, malformed manifests or markers, symlinks, and Windows reparse points also stop the operation. Writes are staged with best-effort rollback for ordinary errors; this is not a crash-safe multi-file transaction or a concurrency lock.
17
+
18
+ The managed block is exactly the following four lines (with the project's line endings); the separator value is `0` when the block did not need a leading newline and `1` when it did:
19
+
20
+ ```markdown
21
+ <!-- codex-platform:skill:start -->
22
+ <!-- codex-platform:skill:separator=0 -->
23
+ Use [codex-platform](.agents/skills/codex-platform/SKILL.md) for codex_platform work.
24
+ <!-- codex-platform:skill:end -->
25
+ ```
26
+
27
+ The installed skill guides use of the public Redis, Streams, ARQ, and messaging APIs. It does not own a consumer's business rules, data keys, service adapters, or runtime configuration.
@@ -2,34 +2,34 @@
2
2
 
3
3
  # codex-platform
4
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.
5
+ Infrastructure library for the Codex WaaS toolkit. Provides background task workers (ARQ), Redis service abstraction, Redis Streams event bus, and framework-independent messaging primitives.
6
6
 
7
7
  Built to be dropped into any Python 3.12+ service as a set of composable, independently installable extras.
8
8
 
9
9
  ## Install
10
10
 
11
11
  ```bash
12
- # codex-platform 0.3.x
13
- pip install "codex-platform>=0.3.0,<0.4.0"
12
+ # codex-platform 0.6.x
13
+ pip install "codex-platform>=0.6.0,<0.7.0"
14
14
 
15
15
  # With Redis support
16
- pip install "codex-platform[redis]>=0.3.0,<0.4.0"
16
+ pip install "codex-platform[redis]>=0.6.0,<0.7.0"
17
17
 
18
18
  # With ARQ worker support
19
- pip install "codex-platform[arq]>=0.3.0,<0.4.0"
19
+ pip install "codex-platform[arq]>=0.6.0,<0.7.0"
20
20
 
21
21
  # With async SMTP notifications
22
- pip install "codex-platform[notifications]>=0.3.0,<0.4.0"
22
+ pip install "codex-platform[notifications]>=0.6.0,<0.7.0"
23
23
 
24
24
  # Redis Streams
25
- pip install "codex-platform[streams]>=0.3.0,<0.4.0"
25
+ pip install "codex-platform[streams]>=0.6.0,<0.7.0"
26
26
 
27
27
  # Everything
28
- pip install "codex-platform[all]>=0.3.0,<0.4.0"
28
+ pip install "codex-platform[all]>=0.6.0,<0.7.0"
29
29
  ```
30
30
 
31
31
  Requires Python 3.12 or newer.
32
- Installs `codex-core>=0.3.0,<0.10.0` automatically as a dependency.
32
+ Installs `codex-core>=0.5.0,<0.10.0` automatically as a dependency.
33
33
 
34
34
  ## Quick Start
35
35
 
@@ -48,6 +48,8 @@ data = await service.hash.get_json("user:42", "profile")
48
48
 
49
49
  ## Navigation
50
50
 
51
+ The optional offline [agent skill](en/guides/agent-skills.md) is available starting in 0.6.0. Its installer manages a library-owned skill and a bounded `AGENTS.md` link in an existing project.
52
+
51
53
  | Section | Description |
52
54
  | :--- | :--- |
53
55
  | [Guide (EN)](en/architecture/notifications/README.md) | Architecture overviews and data-flow pages in English |
@@ -63,4 +63,4 @@ NotificationEngine.send(payload_dto)
63
63
  ## Смотрите также
64
64
 
65
65
  - [Data Flow →](data_flow.md)
66
- - [API Reference →](../../../api/notifications/index.md)
66
+ - [API Reference →](../../../en/api/notifications/index.md)
@@ -1,6 +1,6 @@
1
1
  <!-- type: CONCEPT -->
2
2
 
3
- [← Notifications](README.md) | [Главная](../../index.md)
3
+ [← Notifications](README.md) | [Главная](../../../index.md)
4
4
 
5
5
  # Data Flow: Notifications
6
6
 
@@ -59,4 +59,4 @@ RedisService (корень композиции)
59
59
  ## Смотрите также
60
60
 
61
61
  - [Data Flow →](data_flow.md)
62
- - [API Reference →](../../../api/redis_service/index.md)
62
+ - [API Reference →](../../../en/api/redis_service/index.md)
@@ -1,6 +1,6 @@
1
1
  <!-- type: CONCEPT -->
2
2
 
3
- [← Redis Service](README.md) | [Главная](../../index.md)
3
+ [← Redis Service](README.md) | [Главная](../../../index.md)
4
4
 
5
5
  # Data Flow: Redis Service
6
6
 
@@ -69,4 +69,4 @@ App → StreamProducer StreamConsumer (XREADGROUP)
69
69
  ## Смотрите также
70
70
 
71
71
  - [Data Flow →](data_flow.md)
72
- - [API Reference →](../../../api/streams/index.md)
72
+ - [API Reference →](../../../en/api/streams/index.md)
@@ -1,6 +1,6 @@
1
1
  <!-- type: CONCEPT -->
2
2
 
3
- [← Streams](README.md) | [Главная](../../index.md)
3
+ [← Streams](README.md) | [Главная](../../../index.md)
4
4
 
5
5
  # Data Flow: Streams
6
6
 
@@ -59,4 +59,4 @@ BaseArqService (постановка задач из кода приложен
59
59
 
60
60
  - [Data Flow →](data_flow.md)
61
61
  - [Интеграция с повторами Streams →](../streams/README.md)
62
- - [API Reference →](../../../api/workers/arq/index.md)
62
+ - [API Reference →](../../../en/api/workers/arq/index.md)
@@ -1,6 +1,6 @@
1
1
  <!-- type: CONCEPT -->
2
2
 
3
- [← Workers](README.md) | [Главная](../../index.md)
3
+ [← Workers](README.md) | [Главная](../../../index.md)
4
4
 
5
5
  # Data Flow: Workers (ARQ)
6
6