vibe-action 0.1.1

Command router — execute shell commands and LLM prompts via simple YAML actions.
# vibe-action — Global CLI Workflow Benchmarks
# These cases verify prompt stability across different models.
# Run: vibe-action bench [-v] [-a <action>]

# Not covered (require local environment):
# commit - AI-generated commit message
# find - Semantic file finder — finds files by meaning, not just name
# scan - Scan project codebase and export as structured JSON

# Fixtures are hosted remotely and may be unavailable if the host is down.
# If a case fails, check that fixture URLs are accessible first.
benchmarks:
  # Replace TODO with a meaningful comment
  comment:
    - args:
        query: |
          //! @todo
          fn main() {
              // TODO: implement
              println!("hello");
          }

  # Describe screenshot for text-only LLM understanding
  describe:
    - args:
        image: https://raw.gitcode.com/keygenqt_vz/vibe-action/raw/main/fixtures/screenshot_1.png
    - args:
        image: https://raw.gitcode.com/keygenqt_vz/vibe-action/raw/main/fixtures/screenshot_2.png
    - args:
        image: https://vibe-action.keygenqt.com/assets/images/favicon.png

  # Explain what the selected code does in simple terms
  explain:
    - args:
        query: |
          fn main() {
              let x = vec![1, 2, 3];
              let sum: i32 = x.iter().sum();
              println!("{}", sum);
          }

  # Extract structured data or matching lines from text and logs
  extract:
    - args:
        query: 'show all error and critical lines'
        file: https://raw.gitcode.com/keygenqt_vz/vibe-action/raw/main/fixtures/app.log
    - args:
        query: 'покажи проблемы с безопасностью или правами доступа'
        file: https://raw.gitcode.com/keygenqt_vz/vibe-action/raw/main/fixtures/app.log
    - args:
        query: 'find all wordpress plugin updates'
        file: https://raw.gitcode.com/keygenqt_vz/vibe-action/raw/main/fixtures/app.log

  # Ask a question about Vibe Action — YAML structure, fields, modifiers, or usage
  faq:
    - args:
        query: 'какие команды есть и зачем?'
    - args:
        query: 'как использовать модификаторы?'

  # Fetch a web page or PDF and describe its content
  fetch:
    - args:
        source: 'https://keygenqt.github.io/aurora-cli/'
    - args:
        source: 'https://pdfobject.com/pdf/sample.pdf'

  # Generate realistic mock data arrays (JSON, YAML, CSV) for testing
  mock:
    - args:
        query: '2 users with unique uuid, email, and localized full name'
        format: 'json'
    - args:
        query: '3 товара с id, ценой и hex цветом'
        format: 'yaml'
    - args:
        query: '5 bank transactions with date, amount, and category'
        format: 'csv'

  # Generate code naming suggestions based on a description
  naming:
    - args:
        query: 'функция сортировки данных для Rust'
    - args:
        query: 'boolean variable that checks if markdown code block token exists'

  # Generate a regular expression pattern based on your description
  regex:
    - args:
        query: 'IPv4 address'
        example: '192.168.1.1'
    - args:
        query: 'регулярка для валидации email адреса'

  # Critically analyze code for bugs and flaws
  review:
    - args:
        query: |
          fn find_user(id: u32) -> Option<String> {
              let users = vec!["alice", "bob"];
              users.get(id).map(|s| s.to_string())
          }
    - args:
        query: |
          let mut data = Vec::new();
          for i in 0..1000 {
              data.push(i * 2);
          }
          println!("{}", data[500]);

  # Check and fix spelling in text or files
  spellcheck:
    - args:
        text: 'Helo world, how are you?'
    - args:
        file: 'https://raw.gitcode.com/keygenqt_vz/vibe-action/raw/main/fixtures/README.md'

  # Find programming/technical synonyms for a word
  synonyms:
    - args:
        query: 'middleware'
    - args:
        query: 'event emitter'

  # Generate a human-readable system report
  sysinfo:
    - args: {}

  # Change the tone of a text based on your instructions
  tone:
    - args:
        query: 'Какого хрена ты до сих пор не на работе?'
    - args:
        query: 'How fucking long do I have to wait for your code?'

  # Deep two-stage translation using local drafting and cloud polishing
  translate-deep:
    - args:
        file: 'https://raw.gitcode.com/keygenqt_vz/vibe-action/raw/main/fixtures/README.md'
        to: 'Russian'

  # Translate text or files to another language
  translate-fast:
    - args:
        text: 'Hello world, how are you?'
        to: 'Russian'
    - args:
        file: 'https://raw.gitcode.com/keygenqt_vz/vibe-action/raw/main/fixtures/README.md'
        to: 'Russian'

  # Identify a person from a screenshot
  whois:
    - args:
        image: https://raw.gitcode.com/keygenqt_vz/vibe-action/raw/main/fixtures/photo_1.jpg