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.
Files changed (84) hide show
  1. codex_core-0.2.2/.github/workflows/ci.yml +58 -0
  2. {codex_core-0.2.0 → codex_core-0.2.2}/.github/workflows/docs.yml +15 -16
  3. {codex_core-0.2.0 → codex_core-0.2.2}/.github/workflows/publish.yml +6 -9
  4. {codex_core-0.2.0 → codex_core-0.2.2}/.gitignore +1 -0
  5. codex_core-0.2.2/.python-version +1 -0
  6. {codex_core-0.2.0 → codex_core-0.2.2}/CHANGELOG.md +25 -0
  7. {codex_core-0.2.0 → codex_core-0.2.2}/PKG-INFO +27 -9
  8. {codex_core-0.2.0 → codex_core-0.2.2}/README.md +25 -5
  9. codex_core-0.2.2/docs/en/api/dev/check_runner.md +10 -0
  10. codex_core-0.2.2/docs/en/api/dev/index.md +12 -0
  11. codex_core-0.2.2/docs/en/api/dev/project_tree.md +10 -0
  12. codex_core-0.2.2/docs/en/api/dev/static_compiler.md +18 -0
  13. {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/api/index.md +1 -1
  14. {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/architecture/README.md +4 -1
  15. {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/architecture/platform/dev.md +20 -1
  16. {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/tasks/getting_started.md +3 -2
  17. codex_core-0.2.2/docs/planning/python_version_policy.md +35 -0
  18. {codex_core-0.2.0 → codex_core-0.2.2}/docs/ru/architecture/README.md +4 -1
  19. {codex_core-0.2.0 → codex_core-0.2.2}/docs/ru/architecture/platform/dev.md +20 -1
  20. {codex_core-0.2.0 → codex_core-0.2.2}/docs/ru/tasks/getting_started.md +3 -2
  21. codex_core-0.2.2/docs/stylesheets/extra.css +18 -0
  22. {codex_core-0.2.0 → codex_core-0.2.2}/mkdocs.yml +16 -7
  23. {codex_core-0.2.0 → codex_core-0.2.2}/pyproject.toml +3 -5
  24. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/common/loguru_setup.py +9 -5
  25. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/dev/check_runner.py +95 -20
  26. codex_core-0.2.2/tools/dev/README.md +41 -0
  27. {codex_core-0.2.0 → codex_core-0.2.2}/tools/dev/check.py +8 -0
  28. codex_core-0.2.2/uv.lock +1518 -0
  29. codex_core-0.2.0/.github/workflows/ci.yml +0 -59
  30. codex_core-0.2.0/docs/en/api/dev.md +0 -29
  31. codex_core-0.2.0/tools/dev/README.md +0 -23
  32. {codex_core-0.2.0 → codex_core-0.2.2}/.pre-commit-config.yaml +0 -0
  33. {codex_core-0.2.0 → codex_core-0.2.2}/docs/changelog.md +0 -0
  34. {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/README.md +0 -0
  35. {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/api/common.md +0 -0
  36. {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/api/core.md +0 -0
  37. {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/api/settings.md +0 -0
  38. {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/architecture/platform/common.md +0 -0
  39. {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/architecture/platform/core.md +0 -0
  40. {codex_core-0.2.0 → codex_core-0.2.2}/docs/en/architecture/platform/settings.md +0 -0
  41. {codex_core-0.2.0 → codex_core-0.2.2}/docs/evolution/roadmap.md +0 -0
  42. {codex_core-0.2.0 → codex_core-0.2.2}/docs/index.md +0 -0
  43. {codex_core-0.2.0 → codex_core-0.2.2}/docs/ru/README.md +0 -0
  44. {codex_core-0.2.0 → codex_core-0.2.2}/docs/ru/architecture/platform/common.md +0 -0
  45. {codex_core-0.2.0 → codex_core-0.2.2}/docs/ru/architecture/platform/core.md +0 -0
  46. {codex_core-0.2.0 → codex_core-0.2.2}/docs/ru/architecture/platform/settings.md +0 -0
  47. {codex_core-0.2.0 → codex_core-0.2.2}/project_structure.txt +0 -0
  48. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/__init__.py +0 -0
  49. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/common/__init__.py +0 -0
  50. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/common/log_context.py +0 -0
  51. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/common/phone.py +0 -0
  52. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/common/text.py +0 -0
  53. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/core/__init__.py +0 -0
  54. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/core/base_dto.py +0 -0
  55. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/core/exceptions.py +0 -0
  56. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/core/pii.py +0 -0
  57. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/dev/__init__.py +0 -0
  58. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/dev/project_tree.py +0 -0
  59. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/dev/static_compiler/__init__.py +0 -0
  60. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/dev/static_compiler/compiler.py +0 -0
  61. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/dev/static_compiler/css.py +0 -0
  62. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/dev/static_compiler/js.py +0 -0
  63. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/py.typed +0 -0
  64. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/settings/__init__.py +0 -0
  65. {codex_core-0.2.0 → codex_core-0.2.2}/src/codex_core/settings/base.py +0 -0
  66. {codex_core-0.2.0 → codex_core-0.2.2}/tests/conftest.py +0 -0
  67. {codex_core-0.2.0 → codex_core-0.2.2}/tests/integration/__init__.py +0 -0
  68. {codex_core-0.2.0 → codex_core-0.2.2}/tests/integration/conftest.py +0 -0
  69. {codex_core-0.2.0 → codex_core-0.2.2}/tests/integration/test_settings_integration.py +0 -0
  70. {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/__init__.py +0 -0
  71. {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/common/__init__.py +0 -0
  72. {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/common/test_log_context.py +0 -0
  73. {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/common/test_loguru_setup.py +0 -0
  74. {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/common/test_phone.py +0 -0
  75. {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/common/test_text.py +0 -0
  76. {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/conftest.py +0 -0
  77. {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/core/__init__.py +0 -0
  78. {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/core/test_exceptions.py +0 -0
  79. {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/core/test_pii.py +0 -0
  80. {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/settings/__init__.py +0 -0
  81. {codex_core-0.2.0 → codex_core-0.2.2}/tests/unit/settings/test_settings.py +0 -0
  82. {codex_core-0.2.0 → codex_core-0.2.2}/tools/__init__.py +0 -0
  83. {codex_core-0.2.0 → codex_core-0.2.2}/tools/dev/__init__.py +0 -0
  84. {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
- - 'v*'
6
+ - "v*"
7
7
  workflow_dispatch:
8
8
  inputs:
9
9
  version:
10
- description: 'Version alias to deploy (e.g. 0.x, 1.x)'
10
+ description: "Version alias to deploy (e.g. 0.x, 1.x)"
11
11
  required: true
12
12
  alias:
13
- description: 'Alias (latest, stable, or leave empty)'
13
+ description: "Alias (latest, stable, or leave empty)"
14
14
  required: false
15
- default: 'latest'
15
+ default: "latest"
16
16
 
17
17
  env:
18
18
  FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
@@ -39,34 +39,33 @@ jobs:
39
39
  uses: actions/setup-python@v5
40
40
  with:
41
41
  python-version: "3.12"
42
- cache: 'pip'
42
+ - uses: astral-sh/setup-uv@v7
43
+ with:
44
+ version: "0.10.7"
43
45
 
44
- - name: Install dependencies
45
- run: |
46
- python -m pip install --upgrade pip
47
- pip install -e ".[docs]"
46
+ - name: Sync docs environment
47
+ run: uv sync --locked --extra docs
48
48
 
49
49
  - name: Resolve version alias (tag push)
50
50
  if: github.event_name == 'push'
51
51
  id: version
52
52
  run: |
53
- TAG="${GITHUB_REF_NAME}" # e.g. v1.2.3
53
+ TAG="${GITHUB_REF_NAME}"
54
54
  MAJOR=$(echo "$TAG" | sed 's/^v//' | cut -d. -f1)
55
- 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
- - 'v*'
6
+ - "v*"
7
7
 
8
8
  env:
9
9
  FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
@@ -29,18 +29,15 @@ jobs:
29
29
  uses: actions/setup-python@v5
30
30
  with:
31
31
  python-version: "3.12"
32
- cache: 'pip'
33
-
34
- - name: Install build tools
35
- run: |
36
- python -m pip install --upgrade pip
37
- python -m pip install build twine hatchling
32
+ - uses: astral-sh/setup-uv@v7
33
+ with:
34
+ version: "0.10.7"
38
35
 
39
36
  - name: Build sdist and wheel
40
- run: python -m build
37
+ run: uv build --no-sources
41
38
 
42
39
  - name: Check artifacts
43
- run: twine check dist/*
40
+ run: uvx twine check dist/*
44
41
 
45
42
  - name: Publish to PyPI
46
43
  uses: pypa/gh-action-pypi-publish@release/v1
@@ -183,6 +183,7 @@ gen/
183
183
 
184
184
  # Ruff stuff:
185
185
  .ruff_cache/
186
+ .uv-cache/
186
187
 
187
188
  # PyPI configuration file
188
189
  .pypirc
@@ -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.0
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.10
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
- - **[codex-core](https://github.com/codexdlc/codex-core)**: Foundational utilities and DTOs.
103
- - **[codex-platform](https://github.com/codexdlc/codex-platform)**: Core platform components and HTTP APIs.
104
- - **[codex-bot](https://github.com/codexdlc/codex-bot)**: Telegram AI-agent infrastructure.
105
- - **[codex-services](https://github.com/codexdlc/codex-services)**: Business logic engines (Booking, CRM).
106
- - **[codex-ai](https://github.com/codexdlc/codex-ai)**: LLM abstraction layer.
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
- - **[codex-core](https://github.com/codexdlc/codex-core)**: Foundational utilities and DTOs.
60
- - **[codex-platform](https://github.com/codexdlc/codex-platform)**: Core platform components and HTTP APIs.
61
- - **[codex-bot](https://github.com/codexdlc/codex-bot)**: Telegram AI-agent infrastructure.
62
- - **[codex-services](https://github.com/codexdlc/codex-services)**: Business logic engines (Booking, CRM).
63
- - **[codex-ai](https://github.com/codexdlc/codex-ai)**: LLM abstraction layer.
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
- [🏠 Home](../../index.md) | [🧭 Guide (EN)](../README.md) | [🛡️ Architecture](../api/index.md)
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
- [🏠 Home](../../../index.md) | [🧭 Guide (EN)](../../README.md) | [🛠️ Dev API](../../api/dev.md)
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, you'll need to install `loguru` manually:
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
- [🏠 На главную](../../index.md) | [🧭 Руководство (RU)](../README.md) | [🛡️ Архитектура](../../en/api/index.md)
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
- [🏠 Главная](../../../index.md) | [🧭 Руководство (RU)](../../README.md) | [🛠️ Dev API](../../../en/api/dev.md)
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`, вам нужно будет установить `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: deep purple
11
- accent: purple
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: deep purple
18
- accent: purple
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: en/api/dev.md
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