multi_agent_review:
  image: node:22-bookworm
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
  timeout: 40m
  variables:
    GIT_DEPTH: "0"
    KNODR_CREDENTIAL_CLAUDE: $MAR_ANTHROPIC_API_KEY
    KNODR_CREDENTIAL_OPENAI: $MAR_OPENAI_API_KEY
    KNODR_CREDENTIAL_GEMINI: $MAR_GEMINI_API_KEY
    KNODR_CREDENTIAL_GROK: $MAR_XAI_API_KEY
  before_script:
    - apt-get update && apt-get install -y --no-install-recommends python3 python-is-python3
    - mkdir -p /opt/knodr
    - curl -fSL https://dl.knodr.com/knodr-linux-x64.tar.gz | tar xz -C /opt/knodr
    - export PATH="/opt/knodr:$PATH"
    - npm install -g @anthropic-ai/claude-code @openai/codex opencode-ai
  script:
    - mkdir -p .mar-tmp
    - git diff "$CI_MERGE_REQUEST_DIFF_BASE_SHA...$CI_COMMIT_SHA" > .mar-tmp/diff.txt
    - test -s .mar-tmp/diff.txt || { echo "No reviewable changes."; exit 0; }
    - >
      knodr doctor ci/mar/ci-multi-agent-review.knodrflow
      --var repo="$CI_PROJECT_DIR"
      --var diffPath="$CI_PROJECT_DIR/.mar-tmp/diff.txt"
      --var comments=preflight
      --var rendererPath="$CI_PROJECT_DIR/ci/mar/render.py"
      --deep --output-format json
    - >
      knodr run ci/mar/ci-multi-agent-review.knodrflow
      --var repo="$CI_PROJECT_DIR"
      --var diffPath="$CI_PROJECT_DIR/.mar-tmp/diff.txt"
      --var comments="$CI_MERGE_REQUEST_TITLE"
      --var rendererPath="$CI_PROJECT_DIR/ci/mar/render.py"
      --timeout 30m --output-format json
  artifacts:
    when: always
    paths: [.mar-out/]
    expire_in: 7 days
