codex-platform 0.5.2__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.
- codex_platform-0.6.0/.agents/skills/codex-platform-maintainer/SKILL.md +12 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/AGENTS.md +4 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/CHANGELOG.md +12 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/PKG-INFO +32 -19
- {codex_platform-0.5.2 → codex_platform-0.6.0}/README.md +24 -11
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/architecture/notifications/README.md +1 -1
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/architecture/notifications/data_flow.md +1 -1
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/architecture/redis_service/README.md +1 -1
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/architecture/redis_service/data_flow.md +1 -1
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/architecture/streams/README.md +1 -1
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/architecture/streams/data_flow.md +1 -1
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/architecture/workers/README.md +1 -1
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/architecture/workers/data_flow.md +1 -1
- codex_platform-0.6.0/docs/en/guides/agent-skills.md +27 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/index.md +11 -9
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/ru/architecture/notifications/README.md +1 -1
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/ru/architecture/notifications/data_flow.md +1 -1
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/ru/architecture/redis_service/README.md +1 -1
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/ru/architecture/redis_service/data_flow.md +1 -1
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/ru/architecture/streams/README.md +1 -1
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/ru/architecture/streams/data_flow.md +1 -1
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/ru/architecture/workers/README.md +1 -1
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/ru/architecture/workers/data_flow.md +1 -1
- codex_platform-0.6.0/docs/ru/guides/agent-skills.md +25 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/mkdocs.yml +2 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/pyproject.toml +4 -4
- codex_platform-0.6.0/src/codex_platform/agent_skills/__init__.py +1 -0
- codex_platform-0.6.0/src/codex_platform/agent_skills/__main__.py +4 -0
- codex_platform-0.6.0/src/codex_platform/agent_skills/cli.py +39 -0
- codex_platform-0.6.0/src/codex_platform/agent_skills/fs_transaction.py +183 -0
- codex_platform-0.6.0/src/codex_platform/agent_skills/manifest_rules.py +153 -0
- codex_platform-0.6.0/src/codex_platform/agent_skills/orchestrator.py +225 -0
- codex_platform-0.6.0/src/codex_platform/agent_skills/resources/SKILL.md +19 -0
- codex_platform-0.6.0/src/codex_platform/agent_skills/resources/__init__.py +1 -0
- codex_platform-0.6.0/src/codex_platform/agent_skills/resources/references/arq.md +20 -0
- codex_platform-0.6.0/src/codex_platform/agent_skills/resources/references/messaging.md +35 -0
- codex_platform-0.6.0/src/codex_platform/agent_skills/resources/references/redis.md +18 -0
- codex_platform-0.6.0/src/codex_platform/agent_skills/resources/references/streams.md +22 -0
- codex_platform-0.6.0/tests/unit/test_agent_skills.py +374 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/uv.lock +113 -80
- {codex_platform-0.5.2 → codex_platform-0.6.0}/.agents/rules/graphify.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/.github/workflows/ci.yml +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/.github/workflows/docs.yml +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/.github/workflows/publish.yml +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/.gitignore +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/.pre-commit-config.yaml +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/.python-version +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/CLAUDE.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/changelog.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/dev/messaging/00_overview.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/dev/messaging/01_core_dtos_and_protocols.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/dev/messaging/02_channels_and_registry.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/dev/messaging/03_renderer_and_templates.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/dev/messaging/04_threading_and_headers.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/dev/messaging/05_workers_contract.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/dev/messaging/06_migration_from_notifications.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/index.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/messaging/audience.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/messaging/campaigns/dto.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/messaging/campaigns/index.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/messaging/campaigns/protocols.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/messaging/channels.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/messaging/clients/smtp.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/messaging/delivery/arq.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/messaging/delivery/base.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/messaging/delivery/direct.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/messaging/dto.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/messaging/index.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/messaging/orchestrator.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/messaging/registry.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/messaging/renderer.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/messaging/threading.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/messaging/workers_contract.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/notifications/channels.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/notifications/delivery/arq.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/notifications/delivery/base.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/notifications/delivery/direct.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/notifications/dto.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/notifications/index.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/notifications/orchestrator.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/notifications/registry.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/notifications/renderer.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/redis_service/base.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/redis_service/index.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/redis_service/keys.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/redis_service/operations/hash.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/redis_service/operations/json_module.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/redis_service/operations/json_string.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/redis_service/operations/list_.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/redis_service/operations/pipeline.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/redis_service/operations/set_.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/redis_service/operations/string.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/redis_service/operations/zset.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/redis_service/service.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/streams/consumer.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/streams/dispatcher.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/streams/index.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/streams/processor.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/streams/producer.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/streams/router.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/workers/arq/base.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/workers/arq/config.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/workers/arq/index.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/workers/arq/task_utils.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/en/api/workers/arq/types.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/docs/stylesheets/extra.css +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/project_structure.txt +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/redis-backends-recovery.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/audience.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/campaigns/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/campaigns/dto.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/campaigns/protocols.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/channels.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/clients/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/clients/smtp.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/delivery/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/delivery/arq.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/delivery/base.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/delivery/direct.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/dto.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/interfaces.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/orchestrator.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/registry.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/renderer.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/threading.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/messaging/workers_contract.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/notifications/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/notifications/channels.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/notifications/clients/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/notifications/clients/smtp.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/notifications/delivery/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/notifications/delivery/arq.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/notifications/delivery/base.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/notifications/delivery/direct.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/notifications/dto.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/notifications/interfaces.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/notifications/orchestrator.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/notifications/registry.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/notifications/renderer.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/py.typed +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/base.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/exceptions.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/keys.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/managers/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/managers/base_manager.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/managers/site_settings.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/hash.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/json_module.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/json_string.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/list_.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/pipeline.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/set_.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/string.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/sync_hash.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/sync_string.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/operations/zset.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/redis_service/service.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/streams/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/streams/codec.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/streams/consumer.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/streams/dispatcher.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/streams/processor.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/streams/producer.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/streams/router.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/streams/runtime.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/workers/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/workers/arq/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/workers/arq/base.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/workers/arq/config.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/workers/arq/task_utils.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/src/codex_platform/workers/arq/types.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/integration/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/integration/conftest.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/integration/test_docs_build.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/integration/test_redis_service.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/integration/test_streams.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/conftest.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_arq_base.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_arq_config.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_arq_public_api.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_arq_task_utils.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_messaging_api.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_notification_adapters.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_notification_channels.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_notification_dto.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_notification_orchestrator.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_notification_registry.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_notification_renderer.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_notification_smtp.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_redis_base.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_redis_hash.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_redis_keys.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_redis_list.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_redis_manager.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_redis_pipeline.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_redis_service.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_redis_set.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_redis_string.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_redis_zset.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_site_settings_manager.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_stream_consumer.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_stream_dispatcher.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_stream_processor.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_stream_producer.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_stream_router.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_stream_runtime.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tests/unit/test_sync_operations.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tools/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tools/dev/README.md +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tools/dev/__init__.py +0 -0
- {codex_platform-0.5.2 → codex_platform-0.6.0}/tools/dev/check.py +0 -0
- {codex_platform-0.5.2 → 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,18 @@ 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
|
+
|
|
8
20
|
## [0.5.2] - 2026-05-07
|
|
9
21
|
|
|
10
22
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: codex-platform
|
|
3
|
-
Version: 0.
|
|
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.
|
|
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>=
|
|
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>=
|
|
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.
|
|
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>=
|
|
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
|
[](https://pypi.org/project/codex-platform/)
|
|
62
62
|
[](https://pypi.org/project/codex-platform/)
|
|
63
63
|
[](https://github.com/codexdlc/codex-platform/actions/workflows/ci.yml)
|
|
64
|
-
[](LICENSE)
|
|
64
|
+
[](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.
|
|
74
|
-
pip install "codex-platform>=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.
|
|
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.
|
|
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.
|
|
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.
|
|
86
|
+
pip install "codex-platform[streams]>=0.6.0,<0.7.0"
|
|
87
87
|
|
|
88
88
|
# Everything
|
|
89
|
-
pip install "codex-platform[all]>=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.
|
|
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
|
-
| `
|
|
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,
|
|
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
|
[](https://pypi.org/project/codex-platform/)
|
|
4
4
|
[](https://pypi.org/project/codex-platform/)
|
|
5
5
|
[](https://github.com/codexdlc/codex-platform/actions/workflows/ci.yml)
|
|
6
|
-
[](LICENSE)
|
|
6
|
+
[](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.
|
|
16
|
-
pip install "codex-platform>=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.
|
|
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.
|
|
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.
|
|
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.
|
|
28
|
+
pip install "codex-platform[streams]>=0.6.0,<0.7.0"
|
|
29
29
|
|
|
30
30
|
# Everything
|
|
31
|
-
pip install "codex-platform[all]>=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.
|
|
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
|
-
| `
|
|
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,
|
|
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
|
|
|
@@ -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
|
|
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.
|
|
13
|
-
pip install "codex-platform>=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.
|
|
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.
|
|
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.
|
|
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.
|
|
25
|
+
pip install "codex-platform[streams]>=0.6.0,<0.7.0"
|
|
26
26
|
|
|
27
27
|
# Everything
|
|
28
|
-
pip install "codex-platform[all]>=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.
|
|
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 |
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Установка навыка для агента
|
|
2
|
+
|
|
3
|
+
Начиная с версии 0.6.0, `codex-platform` содержит необязательный автономный установщик навыка. Исходный текст навыка принадлежит библиотеке и находится в `codex_platform.agent_skills.resources`. Установщик копирует его в существующий проект по пути `.agents/skills/codex-platform/` и добавляет ограниченный блок со ссылкой в корневой `AGENTS.md`. Для обычного использования библиотеки навык устанавливать не нужно.
|
|
4
|
+
|
|
5
|
+
Запускайте команды в окружении Python, где установлен `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` должен указывать на существующий каталог. После обновления пакета запустите `update`, чтобы обновить установленный навык. `status` возвращает код 0 только для актуальной установки с совпадающими версиями, хешами файлов и блоком `AGENTS.md`; отсутствие навыка или повреждение дают код 1.
|
|
15
|
+
|
|
16
|
+
Установщик хранит список управляемых файлов и их SHA-256 в `.agents/skills/codex-platform/.manifest.json`. Посторонний текст в `AGENTS.md` и чужие файлы в каталоге навыка сохраняются. При локальных правках или удалении управляемых файлов команды `update` и `delete` останавливаются, чтобы не уничтожить изменения. Сохраните копию изменённых файлов, перенесите свои правила в отдельный навык и восстановите исходные байты управляемых файлов из той же версии пакета перед повторной командой. Если повреждён маркер, сохраните копию `AGENTS.md` и восстановите ограниченный блок по документации установщика. Не меняйте хеши в манифесте ради принятия локальных правок. Коллизии путей, повреждённые маркеры и манифест, символические ссылки и точки повторной обработки Windows также приводят к отказу. При обычной ошибке записи установщик пытается откатить изменения; гарантий атомарности при сбое питания или одновременном запуске нет.
|
|
17
|
+
|
|
18
|
+
Управляемый блок состоит ровно из четырёх строк (с окончаниями строк проекта). Значение `separator` равно `0`, если перед блоком не понадобился дополнительный перевод строки, и `1`, если он понадобился:
|
|
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
|
+
```
|
|
@@ -71,6 +71,7 @@ plugins:
|
|
|
71
71
|
nav:
|
|
72
72
|
- Home: index.md
|
|
73
73
|
- Guide (EN):
|
|
74
|
+
- Agent Skill: en/guides/agent-skills.md
|
|
74
75
|
- Architecture:
|
|
75
76
|
- Notifications:
|
|
76
77
|
- Overview: en/architecture/notifications/README.md
|
|
@@ -85,6 +86,7 @@ nav:
|
|
|
85
86
|
- Overview: en/architecture/workers/README.md
|
|
86
87
|
- Data Flow: en/architecture/workers/data_flow.md
|
|
87
88
|
- Руководство (RU):
|
|
89
|
+
- Навык для агента: ru/guides/agent-skills.md
|
|
88
90
|
- Архитектура:
|
|
89
91
|
- Уведомления:
|
|
90
92
|
- Обзор: ru/architecture/notifications/README.md
|
|
@@ -20,7 +20,7 @@ classifiers = [
|
|
|
20
20
|
]
|
|
21
21
|
dependencies = [
|
|
22
22
|
"pydantic>=2.0,<3.0",
|
|
23
|
-
"codex-core>=0.
|
|
23
|
+
"codex-core>=0.5.0,<0.10.0",
|
|
24
24
|
]
|
|
25
25
|
|
|
26
26
|
[project.urls]
|
|
@@ -32,7 +32,7 @@ Issues = "https://github.com/codexdlc/codex-platform/issues"
|
|
|
32
32
|
[project.optional-dependencies]
|
|
33
33
|
redis = ["redis>=5.0"]
|
|
34
34
|
arq = ["arq>=0.25"]
|
|
35
|
-
notifications = ["aiosmtplib>=
|
|
35
|
+
notifications = ["aiosmtplib>=5.1.2", "jinja2>=3.1"]
|
|
36
36
|
streams = ["codex-platform[redis]"]
|
|
37
37
|
all = [
|
|
38
38
|
"codex-platform[redis,arq,notifications]",
|
|
@@ -49,12 +49,12 @@ dev = [
|
|
|
49
49
|
"pre-commit>=3.0",
|
|
50
50
|
"bandit>=1.7",
|
|
51
51
|
"pip-audit>=2.7",
|
|
52
|
-
"pip>=26.1",
|
|
52
|
+
"pip>=26.2.1",
|
|
53
53
|
"detect-secrets>=1.5",
|
|
54
54
|
]
|
|
55
55
|
docs = [
|
|
56
56
|
"mkdocs>=1.5,<2.0",
|
|
57
|
-
"mkdocs-material>=9.
|
|
57
|
+
"mkdocs-material>=9.7.7",
|
|
58
58
|
"mkdocstrings[python]>=0.24",
|
|
59
59
|
"mkdocs-include-markdown-plugin",
|
|
60
60
|
"mike>=2.0",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# empty module
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
import sys
|
|
3
|
+
from collections.abc import Sequence
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
from codex_platform.agent_skills.fs_transaction import FSError
|
|
7
|
+
from codex_platform.agent_skills.orchestrator import OrchestratorError, check_status, perform_delete, perform_install
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def main(args: Sequence[str] | None = None) -> None:
|
|
11
|
+
parser = argparse.ArgumentParser(prog="python -m codex_platform.agent_skills")
|
|
12
|
+
parser.add_argument("action", choices=["install", "update", "delete", "status"])
|
|
13
|
+
parser.add_argument("--project", required=True, help="Path to project root")
|
|
14
|
+
|
|
15
|
+
parsed = parser.parse_args(args)
|
|
16
|
+
|
|
17
|
+
project_dir = Path(parsed.project).absolute()
|
|
18
|
+
if not project_dir.is_dir():
|
|
19
|
+
print(f"Error: Project directory does not exist or is not a directory: {project_dir}", file=sys.stderr)
|
|
20
|
+
sys.exit(1)
|
|
21
|
+
|
|
22
|
+
try:
|
|
23
|
+
if parsed.action == "install":
|
|
24
|
+
perform_install(project_dir, update=False)
|
|
25
|
+
print("Installed successfully.")
|
|
26
|
+
elif parsed.action == "update":
|
|
27
|
+
perform_install(project_dir, update=True)
|
|
28
|
+
print("Updated successfully.")
|
|
29
|
+
elif parsed.action == "delete":
|
|
30
|
+
perform_delete(project_dir)
|
|
31
|
+
print("Deleted successfully.")
|
|
32
|
+
elif parsed.action == "status":
|
|
33
|
+
is_valid, msg = check_status(project_dir)
|
|
34
|
+
print(msg)
|
|
35
|
+
if not is_valid:
|
|
36
|
+
sys.exit(1)
|
|
37
|
+
except (OrchestratorError, FSError) as e:
|
|
38
|
+
print(f"Error: {e}", file=sys.stderr)
|
|
39
|
+
sys.exit(1)
|