chunk-your-tools 2.0.3

MCP tool schema decomposition and recomposition
Documentation
name: CI

on:
  push:
    branches: [main]
  pull_request:

concurrency:
  group: ci-${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  test-rust:
    name: Test (Rust SDK)
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable

      - name: Rust tests (chunk-your-tools)
        run: cargo test -p chunk-your-tools

      - name: Rust fmt
        run: cargo fmt --all -- --check

      - name: Rust clippy (chunk-your-tools)
        run: cargo clippy -p chunk-your-tools --all-targets --all-features -- -D warnings

      - name: Rust FFI smoke test
        run: cargo test -p chunk-your-tools --no-default-features --features ffi --test ffi_smoke

  test-python-sdk:
    name: Test (Python SDK)
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Install uv
        uses: astral-sh/setup-uv@d31148d669074a8d0a63714ba94f3201e7020bc3
        with:
          python-version: "3.13"
          enable-cache: true

      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable

      - name: Install Python SDK dependencies
        working-directory: sdk/python
        run: uv sync

      - name: Verify chunk-your-tools native import
        working-directory: sdk/python
        run: uv run python -c "from chunk_your_tools._native import build_catalog_index; assert callable(build_catalog_index)"

      - name: Install ast-grep
        working-directory: sdk/python
        run: uv pip install ast-grep-cli==0.41.0

      - name: Ast-grep scan
        working-directory: sdk/python
        run: uv run ast-grep scan ..

      - name: Pytest (sdk/python)
        working-directory: sdk/python
        run: uv run pytest

  test-typescript-sdk:
    name: Test (TypeScript SDK)
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Install Node.js
        uses: actions/setup-node@v6
        with:
          node-version: "22"
          cache: npm
          cache-dependency-path: sdk/typescript/package-lock.json

      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable

      - name: Install dependencies
        working-directory: sdk/typescript
        run: npm ci

      - name: Build TypeScript SDK
        working-directory: sdk/typescript
        run: npm run build

      - name: Test TypeScript SDK
        working-directory: sdk/typescript
        run: npm test