{
  "workflow_id": "demo_simple_ollama",
  "description": "Simple demo: local Ollama extraction only, no cloud calls",
  "tasks": [
    {
      "id": "local_extraction",
      "trigger": "manual",
      "action_type": "http_request",
      "target": "http://localhost:11434/api/generate",
      "payload": {
        "method": "POST",
        "headers": {
          "Content-Type": "application/json"
        },
        "body": {
          "model": "llama3.2:3b",
          "prompt": "Extract only the function names and their purposes from this Go code:\nfunc EvaluateCondition(expr string, vars map[string]interface{}) (bool, error) - evaluates expressions\nfunc runnerRunIf(task Task) bool - checks if task should run\n\nList them as: Name: Purpose",
          "stream": false
        }
      },
      "output": {
        "store_as": "ollama_result"
      }
    },
    {
      "id": "save_result",
      "trigger": "after:local_extraction",
      "action_type": "file_op",
      "target": "{{desktop_dir}}/demo_simple_ollama_output.md",
      "payload": {
        "operation": "write",
        "content": "# Local Ollama 3.2 3B Output\n\nGenerated: {{date}}\n\n## Extraction Result\n{{ollama_result.response}}\n\n---\nThis demonstrates Vibra chaining local models for data extraction."
      }
    }
  ]
}
