swink-agent 0.7.4

Core scaffolding for running LLM-powered agentic loops
Documentation
name: CI

on:
  push:
    branches: [main, integration]
  pull_request:

jobs:
  check:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

      - uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
        with:
          components: clippy, rustfmt

      - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2

      - run: cargo fmt --check

      - name: Spell check
        uses: crate-ci/typos@cf5f1c29a8ac336af8568821ec41919923b05a83 # v1

      - run: cargo clippy --workspace -- -D warnings

      - uses: cargo-bins/cargo-binstall@f8ce4d55b131f4a1e373b8747ca6b6a54133ae5a # v1.18.0

      - run: cargo binstall --no-confirm cargo-nextest

      - run: cargo nextest run --workspace

      - name: Test (testkit features)
        run: cargo test --workspace --features testkit

      - run: cargo build --examples --workspace

      - run: cargo test --workspace --doc

      - run: cargo test -p swink-agent --no-default-features

      - name: Check docs
        run: cargo doc --no-deps --workspace
        env:
          RUSTDOCFLAGS: "-D warnings"

  features:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

      - uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable

      - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2

      - uses: cargo-bins/cargo-binstall@f8ce4d55b131f4a1e373b8747ca6b6a54133ae5a # v1.18.0

      - run: cargo binstall --no-confirm cargo-hack

      - run: cargo hack check --workspace --each-feature --no-dev-deps

  feature-smoke:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

      - uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable

      - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2

      - name: Adapters no-default-features sentinel
        run: cargo test -p swink-agent-adapters --no-default-features --test no_default_features

      - name: Adapters anthropic feature smoke
        run: cargo check -p swink-agent-adapters --no-default-features --features anthropic

      - name: Adapters gemini feature smoke
        run: cargo check -p swink-agent-adapters --no-default-features --features gemini

      - name: Local LLM no-default-features sentinel
        run: cargo test -p swink-agent-local-llm --no-default-features --test no_default_features

      - name: Local LLM gemma4 feature smoke
        run: cargo check -p swink-agent-local-llm --no-default-features --features gemma4

  all-features:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

      - uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable

      - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2

      - name: Test portable all-features workspace surface
        run: cargo test --workspace --all-features --exclude swink-agent-local-llm

      - name: Build policies required-feature example
        run: cargo build -p swink-agent-policies --all-features --example with_policies

      - name: Build TUI required-feature example
        run: cargo build -p swink-agent-tui --all-features --example custom_agent

  deny:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

      - uses: EmbarkStudios/cargo-deny-action@175dc7fd4fb85ec8f46948fb98f44db001149081 # v2

  semver:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

      - uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable

      - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2

      - uses: cargo-bins/cargo-binstall@f8ce4d55b131f4a1e373b8747ca6b6a54133ae5a # v1.18.0

      - run: cargo binstall --no-confirm cargo-semver-checks

      - name: Fetch main branch for baseline
        run: git fetch origin main

      - run: cargo semver-checks --workspace --baseline-rev origin/main

  msrv:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

      - uses: dtolnay/rust-toolchain@98e1b82157cd469e843cb7f524c1313b4ad9492c # 1.88

      - uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2

      - run: cargo build --workspace