exclude: 'build/'

default_language_version:
    python: python3

repos:
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v5.0.0  # Latest stable version
    hooks:
    -   id: check-merge-conflict
    -   id: check-added-large-files
        args: ['--maxkb=1000']
    -   id: end-of-file-fixer
        exclude: '^(.*\.svg)$'

# Temporarily disabling this
#    -   id: no-commit-to-branch
#        args: ['--branch=main']

-   repo: https://github.com/Lucas-C/pre-commit-hooks
    rev: v1.5.4
    hooks:
    -   id: insert-license
        files: \.py$|\.sh$
        args:
          - --license-filepath
          - docs/license_header.txt

-   repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.9.4
    hooks:
    -   id: ruff
        args: [
            --fix,
            --exit-non-zero-on-fix
        ]
    -   id: ruff-format

-   repo: https://github.com/adamchainz/blacken-docs
    rev: 1.19.0
    hooks:
    -   id: blacken-docs
        additional_dependencies:
        - black==24.3.0

-   repo: https://github.com/astral-sh/uv-pre-commit
    rev: 0.5.26
    hooks:
    -   id: uv-export
        args: ["--frozen", "--no-hashes", "--no-emit-project"]
    -   id: uv-sync

# -   repo: https://github.com/pre-commit/mirrors-mypy
#     rev: v1.14.0
#     hooks:
#     -   id: mypy
#         additional_dependencies:
#           - types-requests
#           - types-setuptools
#           - pydantic
#         args: [--ignore-missing-imports]

# - repo: https://github.com/jsh9/pydoclint
#   rev: d88180a8632bb1602a4d81344085cf320f288c5a
#   hooks:
#     - id: pydoclint
#       args: [--config=pyproject.toml]

# - repo: https://github.com/tcort/markdown-link-check
#   rev: v3.11.2
#   hooks:
#     - id: markdown-link-check
#       args: ['--quiet']

# -   repo: local
#     hooks:
#       - id: distro-codegen
#         name: Distribution Template Codegen
#         additional_dependencies:
#           - rich
#           - pydantic
#         entry: python -m llama_stack.scripts.distro_codegen
#         language: python
#         pass_filenames: false
#         require_serial: true
#         files: ^llama_stack/templates/.*$
#         stages: [manual]

ci:
    autofix_commit_msg: 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
    autoupdate_commit_msg: ⬆ [pre-commit.ci] pre-commit autoupdate
