{
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "analyze-vuln",
        "responseMode": "lastNode",
        "options": {}
      },
      "id": "903d60a2-7fc5-448c-a6fa-09c1998e189f",
      "name": "Webhook (Recibe Vuln)",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        -48,
        0
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "6a39d77b-bb2a-44ad-b135-2578adaeae83",
              "name": "text",
              "value": "=Eres un experto DevSecOps y arquitecto de software. \nAnaliza la siguiente vulnerabilidad detectada en mi aplicaci\u00f3n web y proporciona un reporte detallado en espa\u00f1ol.\n\nEs OBLIGATORIO que uses formato Markdown para tu respuesta: usa `###` para t\u00edtulos, `-` para listas, negritas `**` para resaltar palabras clave, y ``` (comillas invertidas) para los bloques de c\u00f3digo.\n\nEstructura requerida:\n### Explicaci\u00f3n de la Vulnerabilidad\n(Qu\u00e9 es y c\u00f3mo se explota)\n\n### Impacto en el Sistema\n(Consecuencias si se explota con \u00e9xito)\n\n### Gu\u00eda de Correcci\u00f3n\n(Pasos claros y detallados para solucionarlo)\n\n### Ejemplo de C\u00f3digo Seguro\n(Muestra un ejemplo pr\u00e1ctico)\n\nDatos de la vulnerabilidad:\nNombre: {{ $json.body.vulnerability.name }}\nTipo: {{ $json.body.vulnerability.type }}\nSeveridad: {{ $json.body.vulnerability.severity }}\nUbicaci\u00f3n: {{ $json.body.vulnerability.location }}\nDescripci\u00f3n original: {{ $json.body.vulnerability.description }}\n\nResponde \u00daNICAMENTE con el an\u00e1lisis. No incluyas saludos ni texto antes del primer t\u00edtulo.\n",
              "type": "string"
            }
          ]
        },
        "includeOtherFields": "={{ false }}",
        "options": {}
      },
      "id": "a24d645a-4c21-45fb-a432-60318e1bf553",
      "name": "Preparar Prompt",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        208,
        32
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "result-assignment",
              "name": "ai_suggestion",
              "value": "={{ $json.text }}",
              "type": "string"
            },
            {
              "id": "id-assignment",
              "name": "vuln_id",
              "value": "={{ $('Webhook (Recibe Vuln)').item.json.body.vulnerability.id }}",
              "type": "string"
            }
          ]
        },
        "options": {
          "dotNotation": false
        }
      },
      "id": "2b0174ec-9038-4c7e-943e-e2388a64e757",
      "name": "Formatear Respuesta",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        800,
        32
      ]
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=",
        "messages": {
          "messageValues": [
            {
              "type": "HumanMessagePromptTemplate",
              "message": "={{ $json.text }}"
            }
          ]
        },
        "batching": {}
      },
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "typeVersion": 1.9,
      "position": [
        480,
        32
      ],
      "id": "348de07e-3039-4d99-ab33-d029fe5a0eba",
      "name": "Basic LLM Chain"
    },
    {
      "parameters": {
        "model": "llama-3.3-70b-versatile",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGroq",
      "typeVersion": 1,
      "position": [
        512,
        208
      ],
      "id": "1d60296c-7cac-4e98-8b3d-0c7707acb55f",
      "name": "Groq Chat Model",
      "credentials": {
        "groqApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Webhook (Recibe Vuln)": {
      "main": [
        [
          {
            "node": "Preparar Prompt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Preparar Prompt": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "Formatear Respuesta",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Groq Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  },
  "meta": {
    "templateCredsSetupCompleted": true
  }
}