codex-core 0.2.0__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- codex_core-0.2.2/.github/workflows/ci.yml +58 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/.github/workflows/docs.yml +15 -16
- {codex_core-0.2.0 → codex_core-0.2.2}/.github/workflows/publish.yml +6 -9
- {codex_core-0.2.0 → codex_core-0.2.2}/.gitignore +1 -0
- codex_core-0.2.2/.python-version +1 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/CHANGELOG.md +25 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/PKG-INFO +27 -9
- {codex_core-0.2.0 → codex_core-0.2.2}/README.md +25 -5
- codex_core-0.2.2/docs/en/api/dev/check_runner.md +10 -0
- codex_core-0.2.2/docs/en/api/dev/index.md +12 -0
- codex_core-0.2.2/docs/en/api/dev/project_tree.md +10 -0
- codex_core-0.2.2/docs/en/api/dev/static_compiler.md +18 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/api/index.md +1 -1
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/architecture/README.md +4 -1
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/architecture/platform/dev.md +20 -1
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/tasks/getting_started.md +3 -2
- codex_core-0.2.2/docs/planning/python_version_policy.md +35 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/ru/architecture/README.md +4 -1
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/ru/architecture/platform/dev.md +20 -1
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/ru/tasks/getting_started.md +3 -2
- codex_core-0.2.2/docs/stylesheets/extra.css +18 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/mkdocs.yml +16 -7
- {codex_core-0.2.0 → codex_core-0.2.2}/pyproject.toml +3 -5
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/common/loguru_setup.py +9 -5
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/dev/check_runner.py +95 -20
- codex_core-0.2.2/tools/dev/README.md +41 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tools/dev/check.py +8 -0
- codex_core-0.2.2/uv.lock +1518 -0
- codex_core-0.2.0/.github/workflows/ci.yml +0 -59
- codex_core-0.2.0/docs/en/api/dev.md +0 -29
- codex_core-0.2.0/tools/dev/README.md +0 -23
- {codex_core-0.2.0 → codex_core-0.2.2}/.pre-commit-config.yaml +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/changelog.md +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/README.md +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/api/common.md +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/api/core.md +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/api/settings.md +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/architecture/platform/common.md +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/architecture/platform/core.md +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/architecture/platform/settings.md +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/evolution/roadmap.md +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/index.md +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/ru/README.md +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/ru/architecture/platform/common.md +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/ru/architecture/platform/core.md +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/docs/ru/architecture/platform/settings.md +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/project_structure.txt +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/__init__.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/common/__init__.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/common/log_context.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/common/phone.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/common/text.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/core/__init__.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/core/base_dto.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/core/exceptions.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/core/pii.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/dev/__init__.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/dev/project_tree.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/dev/static_compiler/__init__.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/dev/static_compiler/compiler.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/dev/static_compiler/css.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/dev/static_compiler/js.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/py.typed +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/settings/__init__.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/settings/base.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tests/conftest.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tests/integration/__init__.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tests/integration/conftest.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tests/integration/test_settings_integration.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/__init__.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/common/__init__.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/common/test_log_context.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/common/test_loguru_setup.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/common/test_phone.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/common/test_text.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/conftest.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/core/__init__.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/core/test_exceptions.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/core/test_pii.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/settings/__init__.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/settings/test_settings.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tools/__init__.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tools/dev/__init__.py +0 -0
- {codex_core-0.2.0 → codex_core-0.2.2}/tools/dev/generate_project_tree.py +0 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
name: CI Pipeline
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main, develop]
|
|
6
|
+
paths-ignore: ["**.md", "docs/**", ".gitignore"]
|
|
7
|
+
pull_request:
|
|
8
|
+
branches: [main]
|
|
9
|
+
|
|
10
|
+
env:
|
|
11
|
+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
quality-gate:
|
|
15
|
+
name: Quality Gate
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
- uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: "3.12"
|
|
22
|
+
- uses: astral-sh/setup-uv@v7
|
|
23
|
+
with:
|
|
24
|
+
version: "0.10.7"
|
|
25
|
+
|
|
26
|
+
- name: Sync dev environment
|
|
27
|
+
run: uv sync --locked --extra dev
|
|
28
|
+
|
|
29
|
+
- name: Run pre-commit
|
|
30
|
+
run: uv run python tools/dev/check.py --lint
|
|
31
|
+
|
|
32
|
+
- name: Run pip-audit
|
|
33
|
+
run: uv run python tools/dev/check.py --security
|
|
34
|
+
|
|
35
|
+
- name: Run mypy
|
|
36
|
+
run: uv run python tools/dev/check.py --types
|
|
37
|
+
|
|
38
|
+
unit-tests:
|
|
39
|
+
name: Unit Tests (Python ${{ matrix.python-version }})
|
|
40
|
+
needs: quality-gate
|
|
41
|
+
runs-on: ubuntu-latest
|
|
42
|
+
strategy:
|
|
43
|
+
matrix:
|
|
44
|
+
python-version: ["3.12", "3.13"]
|
|
45
|
+
steps:
|
|
46
|
+
- uses: actions/checkout@v4
|
|
47
|
+
- uses: actions/setup-python@v5
|
|
48
|
+
with:
|
|
49
|
+
python-version: ${{ matrix.python-version }}
|
|
50
|
+
- uses: astral-sh/setup-uv@v7
|
|
51
|
+
with:
|
|
52
|
+
version: "0.10.7"
|
|
53
|
+
|
|
54
|
+
- name: Sync dev environment
|
|
55
|
+
run: uv sync --locked --extra dev
|
|
56
|
+
|
|
57
|
+
- name: Run unit tests
|
|
58
|
+
run: uv run pytest tests/ -m "unit" -v --tb=short
|
|
@@ -3,16 +3,16 @@ name: Deploy Docs
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
5
5
|
tags:
|
|
6
|
-
-
|
|
6
|
+
- "v*"
|
|
7
7
|
workflow_dispatch:
|
|
8
8
|
inputs:
|
|
9
9
|
version:
|
|
10
|
-
description:
|
|
10
|
+
description: "Version alias to deploy (e.g. 0.x, 1.x)"
|
|
11
11
|
required: true
|
|
12
12
|
alias:
|
|
13
|
-
description:
|
|
13
|
+
description: "Alias (latest, stable, or leave empty)"
|
|
14
14
|
required: false
|
|
15
|
-
default:
|
|
15
|
+
default: "latest"
|
|
16
16
|
|
|
17
17
|
env:
|
|
18
18
|
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
|
@@ -39,34 +39,33 @@ jobs:
|
|
|
39
39
|
uses: actions/setup-python@v5
|
|
40
40
|
with:
|
|
41
41
|
python-version: "3.12"
|
|
42
|
-
|
|
42
|
+
- uses: astral-sh/setup-uv@v7
|
|
43
|
+
with:
|
|
44
|
+
version: "0.10.7"
|
|
43
45
|
|
|
44
|
-
- name:
|
|
45
|
-
run:
|
|
46
|
-
python -m pip install --upgrade pip
|
|
47
|
-
pip install -e ".[docs]"
|
|
46
|
+
- name: Sync docs environment
|
|
47
|
+
run: uv sync --locked --extra docs
|
|
48
48
|
|
|
49
49
|
- name: Resolve version alias (tag push)
|
|
50
50
|
if: github.event_name == 'push'
|
|
51
51
|
id: version
|
|
52
52
|
run: |
|
|
53
|
-
TAG="${GITHUB_REF_NAME}"
|
|
53
|
+
TAG="${GITHUB_REF_NAME}"
|
|
54
54
|
MAJOR=$(echo "$TAG" | sed 's/^v//' | cut -d. -f1)
|
|
55
|
-
MINOR=$(echo "$TAG" | sed 's/^v//' | cut -d. -f2)
|
|
56
55
|
echo "alias=${MAJOR}.x" >> "$GITHUB_OUTPUT"
|
|
57
56
|
|
|
58
57
|
- name: Deploy versioned docs (tag push)
|
|
59
58
|
if: github.event_name == 'push'
|
|
60
59
|
run: |
|
|
61
|
-
mike deploy --push --update-aliases "${{ steps.version.outputs.alias }}" latest
|
|
62
|
-
mike set-default --push latest
|
|
60
|
+
uv run mike deploy --push --update-aliases "${{ steps.version.outputs.alias }}" latest
|
|
61
|
+
uv run mike set-default --push latest
|
|
63
62
|
|
|
64
63
|
- name: Deploy versioned docs (manual)
|
|
65
64
|
if: github.event_name == 'workflow_dispatch'
|
|
66
65
|
run: |
|
|
67
66
|
if [ -n "${{ inputs.alias }}" ]; then
|
|
68
|
-
mike deploy --push --update-aliases "${{ inputs.version }}" "${{ inputs.alias }}"
|
|
67
|
+
uv run mike deploy --push --update-aliases "${{ inputs.version }}" "${{ inputs.alias }}"
|
|
69
68
|
else
|
|
70
|
-
mike deploy --push "${{ inputs.version }}"
|
|
69
|
+
uv run mike deploy --push "${{ inputs.version }}"
|
|
71
70
|
fi
|
|
72
|
-
mike set-default --push latest
|
|
71
|
+
uv run mike set-default --push latest
|
|
@@ -3,7 +3,7 @@ name: Publish to PyPI
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
5
5
|
tags:
|
|
6
|
-
-
|
|
6
|
+
- "v*"
|
|
7
7
|
|
|
8
8
|
env:
|
|
9
9
|
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
|
@@ -29,18 +29,15 @@ jobs:
|
|
|
29
29
|
uses: actions/setup-python@v5
|
|
30
30
|
with:
|
|
31
31
|
python-version: "3.12"
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
run: |
|
|
36
|
-
python -m pip install --upgrade pip
|
|
37
|
-
python -m pip install build twine hatchling
|
|
32
|
+
- uses: astral-sh/setup-uv@v7
|
|
33
|
+
with:
|
|
34
|
+
version: "0.10.7"
|
|
38
35
|
|
|
39
36
|
- name: Build sdist and wheel
|
|
40
|
-
run:
|
|
37
|
+
run: uv build --no-sources
|
|
41
38
|
|
|
42
39
|
- name: Check artifacts
|
|
43
|
-
run: twine check dist/*
|
|
40
|
+
run: uvx twine check dist/*
|
|
44
41
|
|
|
45
42
|
- name: Publish to PyPI
|
|
46
43
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.12
|
|
@@ -5,6 +5,31 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.2.2] - 2026-03-29
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **CI Security Check Routing**: Updated `.github/workflows/ci.yml` to run lint, security, and type checks through `tools/dev/check.py` so GitHub Actions uses the same project-level check-runner policy as local development.
|
|
12
|
+
- **pip-audit Policy Drift**: Restored `AUDIT_FLAGS` handling in CI, including `--skip-editable` and the project-specific ignore for `CVE-2026-4539`.
|
|
13
|
+
|
|
14
|
+
## [0.2.1] - 2026-03-29
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
- **Locked UV Workflow**: Added `.python-version` and committed `uv.lock` so local development, CI, docs, and publish flows use a consistent locked dependency set.
|
|
18
|
+
- **Configurable Check Runner Stages**: Added `RUN_LINT`, `RUN_TYPES`, `RUN_SECURITY`, `RUN_EXTRA_CHECKS`, `RUN_UNIT_TESTS`, and `RUN_INTEGRATION_TESTS` flags to `BaseCheckRunner` so each codex-* project can declare its quality-gate policy without replacing orchestration logic.
|
|
19
|
+
- **Expanded Dev API Docs**: Split the Dev Tools API reference into separate pages for the check runner, project tree generator, and static compiler.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
- **Python Support Policy**: Raised the declared minimum Python version to 3.12 and aligned Ruff, Mypy, packaging metadata, and CI matrices with the supported runtime versions.
|
|
23
|
+
- **UV-Based Automation**: Updated CI, docs deployment, and publish workflows to use `uv sync`, `uv run`, and `uv build` instead of ad-hoc pip installs.
|
|
24
|
+
- **Documentation Structure**:
|
|
25
|
+
- Synchronized `tools/dev/README.md` and architecture guides with the real `BaseCheckRunner` CLI and extension model.
|
|
26
|
+
- Reorganized the Dev Tools API navigation into a nested expandable section under `API Reference`.
|
|
27
|
+
- Moved the Python-version planning note into `docs/planning/` as an internal draft instead of a public docs root page.
|
|
28
|
+
|
|
29
|
+
### Fixed
|
|
30
|
+
- **Optional Loguru Typing**: Fixed `mypy` failure in `src/codex_core/common/loguru_setup.py` by making the optional `loguru` import type-safe.
|
|
31
|
+
- **Checker UX Consistency**: Added explicit skip messages when disabled check stages are not executed, improving both local and CI output clarity.
|
|
32
|
+
|
|
8
33
|
## [0.2.0] - 2025-02-13
|
|
9
34
|
|
|
10
35
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codex-core
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Core utilities, schemas and settings for Codex WaaS toolkit
|
|
5
5
|
Project-URL: Homepage, https://github.com/codexdlc/codex-core
|
|
6
6
|
Project-URL: Documentation, https://codexdlc.github.io/codex-core/
|
|
@@ -13,12 +13,10 @@ Keywords: core,pydantic,toolkit,waas
|
|
|
13
13
|
Classifier: Development Status :: 3 - Alpha
|
|
14
14
|
Classifier: Intended Audience :: Developers
|
|
15
15
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
18
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
17
|
Classifier: Programming Language :: Python :: 3.13
|
|
20
18
|
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
21
|
-
Requires-Python: >=3.
|
|
19
|
+
Requires-Python: >=3.12
|
|
22
20
|
Requires-Dist: pydantic-settings>=2.0
|
|
23
21
|
Requires-Dist: pydantic<3.0,>=2.0
|
|
24
22
|
Provides-Extra: dev
|
|
@@ -64,6 +62,20 @@ pip install codex-core
|
|
|
64
62
|
pip install "codex-core[loguru]"
|
|
65
63
|
```
|
|
66
64
|
|
|
65
|
+
Requires Python 3.12 or newer.
|
|
66
|
+
|
|
67
|
+
## Development
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
uv sync --extra dev
|
|
71
|
+
uv run pytest
|
|
72
|
+
uv run mypy src/codex_core/
|
|
73
|
+
uv run pre-commit run --all-files
|
|
74
|
+
uv build --no-sources
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Requires Python 3.12 or newer.
|
|
78
|
+
|
|
67
79
|
## Quick Start
|
|
68
80
|
|
|
69
81
|
```python
|
|
@@ -99,8 +111,14 @@ Full docs with architecture, API reference, and data flow diagrams:
|
|
|
99
111
|
|
|
100
112
|
## Part of the Codex ecosystem
|
|
101
113
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
114
|
+
| Package | Role |
|
|
115
|
+
| :--- | :--- |
|
|
116
|
+
| **codex-core** | Foundation — immutable DTOs, PII masking, env settings |
|
|
117
|
+
| [codex-platform](https://github.com/codexdlc/codex-platform) | Infrastructure — Redis, Streams, ARQ workers, Notifications |
|
|
118
|
+
| [codex-ai](https://github.com/codexdlc/codex-ai) | LLM layer — unified async interface for OpenAI, Gemini, Anthropic |
|
|
119
|
+
| [codex-services](https://github.com/codexdlc/codex-services) | Business logic — Booking engine, CRM, Calendar |
|
|
120
|
+
|
|
121
|
+
Each library is **fully standalone** — install only what your project needs.
|
|
122
|
+
Together they form the backbone of **[codex-bot](https://github.com/codexdlc/codex-bot)**
|
|
123
|
+
(Telegram AI-agent infrastructure built on aiogram) and
|
|
124
|
+
**[codex-django](https://github.com/codexdlc/codex-django)** (Django integration layer).
|
|
@@ -21,6 +21,20 @@ pip install codex-core
|
|
|
21
21
|
pip install "codex-core[loguru]"
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
+
Requires Python 3.12 or newer.
|
|
25
|
+
|
|
26
|
+
## Development
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
uv sync --extra dev
|
|
30
|
+
uv run pytest
|
|
31
|
+
uv run mypy src/codex_core/
|
|
32
|
+
uv run pre-commit run --all-files
|
|
33
|
+
uv build --no-sources
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Requires Python 3.12 or newer.
|
|
37
|
+
|
|
24
38
|
## Quick Start
|
|
25
39
|
|
|
26
40
|
```python
|
|
@@ -56,8 +70,14 @@ Full docs with architecture, API reference, and data flow diagrams:
|
|
|
56
70
|
|
|
57
71
|
## Part of the Codex ecosystem
|
|
58
72
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
73
|
+
| Package | Role |
|
|
74
|
+
| :--- | :--- |
|
|
75
|
+
| **codex-core** | Foundation — immutable DTOs, PII masking, env settings |
|
|
76
|
+
| [codex-platform](https://github.com/codexdlc/codex-platform) | Infrastructure — Redis, Streams, ARQ workers, Notifications |
|
|
77
|
+
| [codex-ai](https://github.com/codexdlc/codex-ai) | LLM layer — unified async interface for OpenAI, Gemini, Anthropic |
|
|
78
|
+
| [codex-services](https://github.com/codexdlc/codex-services) | Business logic — Booking engine, CRM, Calendar |
|
|
79
|
+
|
|
80
|
+
Each library is **fully standalone** — install only what your project needs.
|
|
81
|
+
Together they form the backbone of **[codex-bot](https://github.com/codexdlc/codex-bot)**
|
|
82
|
+
(Telegram AI-agent infrastructure built on aiogram) and
|
|
83
|
+
**[codex-django](https://github.com/codexdlc/codex-django)** (Django integration layer).
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<!-- Type: REFERENCE -->
|
|
2
|
+
[🏠 Home](../../../index.md) | [⚙️ API Reference](../index.md) | [🛠️ Check Runner](check_runner.md)
|
|
3
|
+
|
|
4
|
+
# Check Runner API
|
|
5
|
+
|
|
6
|
+
Reference for the shared quality-gate runner used by project-level `tools/dev/check.py` scripts.
|
|
7
|
+
|
|
8
|
+
## BaseCheckRunner
|
|
9
|
+
|
|
10
|
+
::: codex_core.dev.check_runner.BaseCheckRunner
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!-- Type: REFERENCE -->
|
|
2
|
+
[🏠 Home](../../../index.md) | [⚙️ API Reference](../index.md) | [🛠️ Dev Tools](index.md)
|
|
3
|
+
|
|
4
|
+
# Dev Tools API
|
|
5
|
+
|
|
6
|
+
This section documents the internal development utilities shipped with `codex-core`.
|
|
7
|
+
|
|
8
|
+
## Modules
|
|
9
|
+
|
|
10
|
+
- [Check Runner](check_runner.md): shared quality-gate orchestration for codex-* projects
|
|
11
|
+
- [Project Tree](project_tree.md): project structure export for documentation and onboarding
|
|
12
|
+
- [Static Compiler](static_compiler.md): pure-Python CSS and JS bundling helpers
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<!-- Type: REFERENCE -->
|
|
2
|
+
[🏠 Home](../../../index.md) | [⚙️ API Reference](../index.md) | [🌳 Project Tree](project_tree.md)
|
|
3
|
+
|
|
4
|
+
# Project Tree API
|
|
5
|
+
|
|
6
|
+
Reference for the utility that exports a readable project tree for docs and onboarding flows.
|
|
7
|
+
|
|
8
|
+
## ProjectTreeGenerator
|
|
9
|
+
|
|
10
|
+
::: codex_core.dev.project_tree.ProjectTreeGenerator
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<!-- Type: REFERENCE -->
|
|
2
|
+
[🏠 Home](../../../index.md) | [⚙️ API Reference](../index.md) | [🧱 Static Compiler](static_compiler.md)
|
|
3
|
+
|
|
4
|
+
# Static Compiler API
|
|
5
|
+
|
|
6
|
+
Reference for the pure-Python asset compilation helpers in `codex_core.dev.static_compiler`.
|
|
7
|
+
|
|
8
|
+
## StaticCompiler
|
|
9
|
+
|
|
10
|
+
::: codex_core.dev.static_compiler.compiler.StaticCompiler
|
|
11
|
+
|
|
12
|
+
## CSSCompiler
|
|
13
|
+
|
|
14
|
+
::: codex_core.dev.static_compiler.css.CSSCompiler
|
|
15
|
+
|
|
16
|
+
## JSCompiler
|
|
17
|
+
|
|
18
|
+
::: codex_core.dev.static_compiler.js.JSCompiler
|
|
@@ -9,7 +9,7 @@ Welcome to the **codex-core** API Reference! This section provides detailed info
|
|
|
9
9
|
- **[🛡️ Core (DTO & PII)](core.md)**: Base data models and PII protection utilities.
|
|
10
10
|
- **[🛠️ Common (Utilities)](common.md)**: Phone, text, and logging helpers.
|
|
11
11
|
- **[⚙️ Settings (Config)](settings.md)**: Base configuration patterns.
|
|
12
|
-
- **[🛠️ Dev Tools](dev.md)**: Internal developer tools.
|
|
12
|
+
- **[🛠️ Dev Tools](dev/index.md)**: Internal developer tools split by subsystem.
|
|
13
13
|
|
|
14
14
|
## Technical Details
|
|
15
15
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
<!-- Type: CONCEPT -->
|
|
2
|
+
[🏠 Home](../../index.md) | [🧭 Guide (EN)](../README.md) | [🛡️ Architecture](README.md)
|
|
2
3
|
|
|
3
4
|
# 🛡️ Architecture & Platform Overview (EN)
|
|
4
5
|
|
|
@@ -12,6 +13,7 @@ We divide the platform into three main domains, each serving a specific purpose:
|
|
|
12
13
|
| **[🛡️ Core](platform/core.md)** | Essential data models and security. | `BaseDTO`, PII Masking, `mask_value`. |
|
|
13
14
|
| **[🛠️ Common](platform/common.md)** | Standardized utility functions. | `normalize_phone`, `normalize_name`, `TaskLogContext`. |
|
|
14
15
|
| **[⚙️ Settings](platform/settings.md)** | Infrastructure configuration. | `BaseCommonSettings`, `redis_url`. |
|
|
16
|
+
| **[🛠️ Dev Tools](platform/dev.md)** | Shared developer tooling. | `BaseCheckRunner`, `ProjectTreeGenerator`, `StaticCompiler`. |
|
|
15
17
|
|
|
16
18
|
## Core Principles
|
|
17
19
|
1. **Security First**: PII protection is integrated at the base DTO level.
|
|
@@ -23,3 +25,4 @@ We divide the platform into three main domains, each serving a specific purpose:
|
|
|
23
25
|
- Read about [🛡️ Core: PII & DTO](platform/core.md).
|
|
24
26
|
- Explore [🛠️ Common Utilities](platform/common.md).
|
|
25
27
|
- Understand [⚙️ Settings Architecture](platform/settings.md).
|
|
28
|
+
- Review [🛠️ Dev Tools](platform/dev.md).
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
<!-- Type: CONCEPT -->
|
|
2
|
+
[🏠 Home](../../../index.md) | [🧭 Guide (EN)](../../README.md) | [🛠️ Dev API](../../api/dev/index.md)
|
|
2
3
|
|
|
3
4
|
# Dev Tools (Architecture)
|
|
4
5
|
|
|
@@ -37,6 +38,24 @@ python tools/dev/check.py --all # lint + types + security + unit, asks a
|
|
|
37
38
|
python tools/dev/check.py --ci # everything non-interactively (GitHub Actions)
|
|
38
39
|
```
|
|
39
40
|
|
|
41
|
+
### Project switches
|
|
42
|
+
|
|
43
|
+
Projects can keep the shared orchestration and declare their local policy with
|
|
44
|
+
simple boolean attributes on `CheckRunner`:
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
class CheckRunner(BaseCheckRunner):
|
|
48
|
+
RUN_LINT = True
|
|
49
|
+
RUN_TYPES = True
|
|
50
|
+
RUN_SECURITY = True
|
|
51
|
+
RUN_EXTRA_CHECKS = True
|
|
52
|
+
RUN_UNIT_TESTS = True
|
|
53
|
+
RUN_INTEGRATION_TESTS = False
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
This is the preferred extension point when a library does not need every stage.
|
|
57
|
+
Use method overrides only when behavior itself must change.
|
|
58
|
+
|
|
40
59
|
### Usage in a project
|
|
41
60
|
|
|
42
61
|
```python
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<!-- Type: GUIDE -->
|
|
1
2
|
[🏠 Home](../../index.md) | [🧭 Guide (EN)](../README.md) | [🚀 Getting Started](getting_started.md)
|
|
2
3
|
|
|
3
4
|
# Getting Started (EN)
|
|
@@ -20,10 +21,10 @@ pip install git+https://github.com/codexdlc/codex-core.git
|
|
|
20
21
|
```
|
|
21
22
|
|
|
22
23
|
### Optional Dependencies
|
|
23
|
-
If you want to use the pre-configured Loguru setup,
|
|
24
|
+
If you want to use the pre-configured Loguru setup, install the optional extra:
|
|
24
25
|
|
|
25
26
|
```bash
|
|
26
|
-
pip install loguru
|
|
27
|
+
pip install "codex-core[loguru]"
|
|
27
28
|
```
|
|
28
29
|
|
|
29
30
|
## First Steps
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<!-- Type: ISSUE/DRAFT -->
|
|
2
|
+
# Python Version Policy Note
|
|
3
|
+
|
|
4
|
+
Status: draft
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
|
|
8
|
+
`codex-core` currently declares `requires-python = ">=3.12"` in
|
|
9
|
+
`pyproject.toml` and advertises Python 3.12 / 3.13 classifiers.
|
|
10
|
+
|
|
11
|
+
This note exists as an internal planning record for future Python-version
|
|
12
|
+
expansion work. It is intentionally kept outside the public navigation.
|
|
13
|
+
|
|
14
|
+
## Current State
|
|
15
|
+
|
|
16
|
+
- Runtime requirement: Python 3.12+
|
|
17
|
+
- Declared classifiers: Python 3.12, Python 3.13
|
|
18
|
+
- CI and publish workflows should stay aligned with the supported versions
|
|
19
|
+
|
|
20
|
+
## When to update
|
|
21
|
+
|
|
22
|
+
Update this note when one of the following changes is planned:
|
|
23
|
+
|
|
24
|
+
1. Add a new officially supported Python version.
|
|
25
|
+
2. Raise the minimum supported Python version.
|
|
26
|
+
3. Expand CI, docs, or publish matrices to new versions.
|
|
27
|
+
|
|
28
|
+
## Checklist
|
|
29
|
+
|
|
30
|
+
- [ ] Update `project.requires-python` in `pyproject.toml` if support policy changes.
|
|
31
|
+
- [ ] Update `classifiers` in `pyproject.toml`.
|
|
32
|
+
- [ ] Update Python-version matrices in `.github/workflows/ci.yml`.
|
|
33
|
+
- [ ] Update Python-version matrices in `.github/workflows/docs.yml`.
|
|
34
|
+
- [ ] Update Python-version matrices in `.github/workflows/publish.yml`.
|
|
35
|
+
- [ ] Reflect the new policy in user-facing docs only after CI is updated.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
<!-- Type: CONCEPT -->
|
|
2
|
+
[🏠 На главную](../../index.md) | [🧭 Руководство (RU)](../README.md) | [🛡️ Архитектура](README.md)
|
|
2
3
|
|
|
3
4
|
# 🛡️ Обзор архитектуры и платформы (RU)
|
|
4
5
|
|
|
@@ -12,6 +13,7 @@
|
|
|
12
13
|
| **[🛡️ Core](platform/core.md)** | Основные модели данных и безопасность. | `BaseDTO`, Маскировка PII, `mask_value`. |
|
|
13
14
|
| **[🛠️ Common](platform/common.md)** | Стандартизированные функции-утилиты. | `normalize_phone`, `normalize_name`, `TaskLogContext`. |
|
|
14
15
|
| **[⚙️ Settings](platform/settings.md)** | Конфигурация инфраструктуры. | `BaseCommonSettings`, `redis_url`. |
|
|
16
|
+
| **[🛠️ Dev Tools](platform/dev.md)** | Общие инструменты разработки. | `BaseCheckRunner`, `ProjectTreeGenerator`, `StaticCompiler`. |
|
|
15
17
|
|
|
16
18
|
## Основные принципы
|
|
17
19
|
1. **Безопасность прежде всего**: Защита PII интегрирована на уровне базового DTO.
|
|
@@ -23,3 +25,4 @@
|
|
|
23
25
|
- Узнайте о [🛡️ Core: PII и DTO](platform/core.md).
|
|
24
26
|
- Изучите [🛠️ Общие утилиты (Common)](platform/common.md).
|
|
25
27
|
- Разберитесь в [⚙️ Архитектуре настроек (Settings)](platform/settings.md).
|
|
28
|
+
- Посмотрите [🛠️ Dev Tools](platform/dev.md).
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
<!-- Type: CONCEPT -->
|
|
2
|
+
[🏠 Главная](../../../index.md) | [🧭 Руководство (RU)](../../README.md) | [🛠️ Dev API](../../../en/api/dev/index.md)
|
|
2
3
|
|
|
3
4
|
# Dev Tools (Архитектура)
|
|
4
5
|
|
|
@@ -37,6 +38,24 @@ python tools/dev/check.py --all # lint + types + security + unit, спр
|
|
|
37
38
|
python tools/dev/check.py --ci # всё без промптов (GitHub Actions)
|
|
38
39
|
```
|
|
39
40
|
|
|
41
|
+
### Проектные переключатели
|
|
42
|
+
|
|
43
|
+
Проект может оставить общую оркестрацию и задать свою локальную политику через
|
|
44
|
+
булевы атрибуты в `CheckRunner`:
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
class CheckRunner(BaseCheckRunner):
|
|
48
|
+
RUN_LINT = True
|
|
49
|
+
RUN_TYPES = True
|
|
50
|
+
RUN_SECURITY = True
|
|
51
|
+
RUN_EXTRA_CHECKS = True
|
|
52
|
+
RUN_UNIT_TESTS = True
|
|
53
|
+
RUN_INTEGRATION_TESTS = False
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Это основной способ настройки, когда библиотеке не нужны все этапы проверки.
|
|
57
|
+
Переопределяйте методы только тогда, когда нужно менять само поведение.
|
|
58
|
+
|
|
40
59
|
### Использование в проекте
|
|
41
60
|
|
|
42
61
|
```python
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<!-- Type: GUIDE -->
|
|
1
2
|
[🏠 На главную](../../index.md) | [🧭 Руководство (RU)](../README.md) | [🚀 Начало работы](getting_started.md)
|
|
2
3
|
|
|
3
4
|
# Начало работы (RU)
|
|
@@ -20,10 +21,10 @@ pip install git+https://github.com/codexdlc/codex-core.git
|
|
|
20
21
|
```
|
|
21
22
|
|
|
22
23
|
### Опциональные зависимости
|
|
23
|
-
Если вы хотите использовать преднастроенный логгер `Loguru`,
|
|
24
|
+
Если вы хотите использовать преднастроенный логгер `Loguru`, установите optional extra:
|
|
24
25
|
|
|
25
26
|
```bash
|
|
26
|
-
pip install loguru
|
|
27
|
+
pip install "codex-core[loguru]"
|
|
27
28
|
```
|
|
28
29
|
|
|
29
30
|
## Первые шаги
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/* =============================================================
|
|
2
|
+
Codex DocSite Standard — extra.css
|
|
3
|
+
Navigation section/group headers — visually distinct
|
|
4
|
+
============================================================= */
|
|
5
|
+
|
|
6
|
+
.md-nav__item--section > .md-nav__link {
|
|
7
|
+
color: var(--md-typeset-a-color) !important;
|
|
8
|
+
font-weight: 700;
|
|
9
|
+
font-size: 0.72rem;
|
|
10
|
+
text-transform: uppercase;
|
|
11
|
+
letter-spacing: 0.09em;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.md-nav__item--section:not(:first-child) {
|
|
15
|
+
margin-top: 0.6em;
|
|
16
|
+
padding-top: 0.4em;
|
|
17
|
+
border-top: 1px solid var(--md-default-fg-color--lightest);
|
|
18
|
+
}
|
|
@@ -7,23 +7,25 @@ theme:
|
|
|
7
7
|
palette:
|
|
8
8
|
- media: "(prefers-color-scheme: light)"
|
|
9
9
|
scheme: default
|
|
10
|
-
primary:
|
|
11
|
-
accent:
|
|
10
|
+
primary: teal
|
|
11
|
+
accent: cyan
|
|
12
12
|
toggle:
|
|
13
13
|
icon: material/brightness-7
|
|
14
14
|
name: Switch to dark mode
|
|
15
15
|
- media: "(prefers-color-scheme: dark)"
|
|
16
16
|
scheme: slate
|
|
17
|
-
primary:
|
|
18
|
-
accent:
|
|
17
|
+
primary: teal
|
|
18
|
+
accent: cyan
|
|
19
19
|
toggle:
|
|
20
20
|
icon: material/brightness-4
|
|
21
21
|
name: Switch to light mode
|
|
22
22
|
features:
|
|
23
23
|
- navigation.tabs
|
|
24
|
+
- navigation.tabs.sticky
|
|
24
25
|
- navigation.sections
|
|
25
26
|
- navigation.expand
|
|
26
27
|
- navigation.top
|
|
28
|
+
- navigation.breadcrumbs
|
|
27
29
|
- search.suggest
|
|
28
30
|
- search.highlight
|
|
29
31
|
- content.code.copy
|
|
@@ -34,6 +36,9 @@ extra:
|
|
|
34
36
|
provider: mike
|
|
35
37
|
default: latest
|
|
36
38
|
|
|
39
|
+
extra_css:
|
|
40
|
+
- stylesheets/extra.css
|
|
41
|
+
|
|
37
42
|
plugins:
|
|
38
43
|
- search
|
|
39
44
|
- include-markdown
|
|
@@ -49,6 +54,7 @@ plugins:
|
|
|
49
54
|
show_symbol_type_heading: true
|
|
50
55
|
show_symbol_type_toc: true
|
|
51
56
|
docstring_style: google
|
|
57
|
+
members_order: source
|
|
52
58
|
|
|
53
59
|
nav:
|
|
54
60
|
- Home: index.md
|
|
@@ -62,8 +68,6 @@ nav:
|
|
|
62
68
|
- Common (Utils): en/architecture/platform/common.md
|
|
63
69
|
- Settings (Config): en/architecture/platform/settings.md
|
|
64
70
|
- Dev Tools: en/architecture/platform/dev.md
|
|
65
|
-
- Evolution:
|
|
66
|
-
- Roadmap: evolution/roadmap.md
|
|
67
71
|
- Руководство (RU):
|
|
68
72
|
- Обзор: ru/README.md
|
|
69
73
|
- Задачи (Tasks):
|
|
@@ -79,5 +83,10 @@ nav:
|
|
|
79
83
|
- Core (DTO & PII): en/api/core.md
|
|
80
84
|
- Common (Utilities): en/api/common.md
|
|
81
85
|
- Settings (Base): en/api/settings.md
|
|
82
|
-
- Dev Tools:
|
|
86
|
+
- Dev Tools:
|
|
87
|
+
- Overview: en/api/dev/index.md
|
|
88
|
+
- Check Runner: en/api/dev/check_runner.md
|
|
89
|
+
- Project Tree: en/api/dev/project_tree.md
|
|
90
|
+
- Static Compiler: en/api/dev/static_compiler.md
|
|
83
91
|
- Changelog: changelog.md
|
|
92
|
+
- Roadmap: evolution/roadmap.md
|