name: 'lambdagent Agent Lint'
description: 'Lint agent YAML configs for structural defects, type mismatches, cost issues, and parallel safety'
author: 'lambdagentpaas'

inputs:
  paths:
    description: 'Directories or files to scan (newline-separated)'
    required: false
    default: '.'
  fail-on:
    description: 'Fail the check on this severity level: error | warn | info'
    required: false
    default: 'error'
  frameworks:
    description: 'Framework detection: auto | crewai | langchain | autogen | dify'
    required: false
    default: 'auto'
  cost-threshold:
    description: 'Fail if worst-case cost per run exceeds this USD amount'
    required: false
    default: ''
  type-check:
    description: 'Enable T-Compose type checking'
    required: false
    default: 'true'
  parallel-check:
    description: 'Enable parallel safety (store independence) checking'
    required: false
    default: 'false'

outputs:
  total-errors:
    description: 'Number of ERROR-level findings'
  total-warnings:
    description: 'Number of WARN-level findings'
  total-files:
    description: 'Number of config files scanned'

runs:
  using: 'composite'
  steps:
    - name: Setup Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.11'

    - name: Install lambdagent
      shell: bash
      run: pip install pyyaml lambdagent || pip install pyyaml

    - name: Run lint
      id: lint
      shell: bash
      env:
        INPUT_PATHS: ${{ inputs.paths }}
        INPUT_FAIL_ON: ${{ inputs.fail-on }}
        INPUT_COST_THRESHOLD: ${{ inputs.cost-threshold }}
        INPUT_TYPE_CHECK: ${{ inputs.type-check }}
        INPUT_PARALLEL_CHECK: ${{ inputs.parallel-check }}
      run: |
        python3 "${{ github.action_path }}/lint_runner.py"
