1import{g as c}from"./index-Cym1ZK7U.js";import{g as l}from"./resources-B8RHGYvy.js";import"./react-vendor-DopNtYkS.js";import"./tanstack-DAvA-Djb.js";import"./motion-BEau8QNT.js";const i="https://fensivo.co",r={inicio:"/",producto:"/producto",servicios:"/servicios",precios:"/precios","casos-de-uso":"/casos-de-uso",blog:"/blog",recursos:"/recursos","recursos-descargables":"/recursos","preguntas-frecuentes":"/preguntas-frecuentes","sobre-nosotros":"/sobre-nosotros",contacto:"/contacto","agenda-demo":"/agenda-demo","vs-knowbe4":"/vs/knowbe4"};async function y(){if(!document.modelContext)return;const n={signal:new AbortController().signal};await document.modelContext.registerTool({name:"get_site_info",title:"Información del sitio Fensivo",description:"Devuelve información general sobre Fensivo: descripción de la empresa, propuesta de valor, servicios clave, datos de contacto y listado de páginas disponibles.",inputSchema:{type:"object",properties:{}},execute:async()=>({name:"Fensivo",tagline:"Gestión Automática de Riesgo Humano",description:"Plataforma de ciberseguridad para Latinoamérica que monitorea credenciales expuestas, ejecuta simulaciones de phishing adaptativas y entrega capacitación contextual automática.",founded:"2026",contact:{email:"[email protected]",demo:`${i}/agenda-demo`},social:{linkedin:"https://www.linkedin.com/company/fensivo",twitter:"https://x.com/fensivo_co"},pages:Object.entries(r).map(([a,t])=>({name:a,url:`${i}${t}`}))}),annotations:{readOnlyHint:!0}},n),await document.modelContext.registerTool({name:"navigate",title:"Navegar a una página",description:"Navega el navegador a una sección del sitio fensivo.co. Usa los nombres de ruta disponibles: inicio, producto, servicios, precios, casos-de-uso, blog, recursos, preguntas-frecuentes, sobre-nosotros, contacto, agenda-demo, entre otros.",inputSchema:{type:"object",properties:{page:{type:"string",description:"Nombre de la página (ej. 'producto', 'blog', 'agenda-demo'). Usa get_site_info para ver la lista completa."}},required:["page"]},execute:async({page:a})=>{const t=r[a];return t?(window.history.pushState({},"",t),window.dispatchEvent(new PopStateEvent("popstate")),{navigated:!0,url:`${i}${t}`}):{error:`Página desconocida: "${a}". Páginas válidas: ${Object.keys(r).join(", ")}`}},annotations:{readOnlyHint:!1}},n),await document.modelContext.registerTool({name:"list_blog_posts",title:"Listar artÃculos del blog",description:"Devuelve los artÃculos publicados en el blog de Fensivo. Soporta filtrado por idioma y lÃmite de resultados. Cada artÃculo incluye slug, tÃtulo, excerpt, fecha, autor, tags y tiempo de lectura.",inputSchema:{type:"object",properties:{lang:{type:"string",enum:["es","en"],description:"Filtrar por idioma. Si se omite, devuelve todos."},limit:{type:"number",description:"Máximo de artÃculos a devolver (default 10, máx 50)."}}},execute:async({lang:a,limit:t})=>{const s=c(a),e=Math.min(Math.max(1,Number(t)||10),50);return{total:s.length,posts:s.slice(0,e).map(o=>({slug:o.slug,title:o.title,excerpt:o.excerpt,date:o.date,author:o.author,tags:o.tags,readingTime:o.readingTime,lang:o.lang,url:`${i}/${o.lang==="en"?"en/":""}blog/${o.slug}`}))}},annotations:{readOnlyHint:!0}},n),await document.modelContext.registerTool({name:"list_resources",title:"Listar recursos descargables",description:"Devuelve los recursos descargables de Fensivo: guÃas y whitepapers de ciberseguridad centrados en el riesgo humano. Incluye tÃtulo, categorÃa, tipo de archivo, URL de descarga y excerpt.",inputSchema:{type:"object",properties:{lang:{type:"string",enum:["es","en"],description:"Filtrar por idioma. Si se omite, devuelve todos."}
1,category:{type:"string",description:"Filtrar por categorÃa exacta (ej. 'Formatos Generales SST')."}}},execute:async({lang:a,category:t})=>{let s=l(a);return t&&(s=s.filter(e=>e.category===t)),{total:s.length,resources:s.map(e=>({slug:e.slug,title:e.title,excerpt:e.excerpt,category:e.category,fileType:e.fileType,fileUrl:e.fileUrl,lang:e.lang,url:`${i}/${e.lang==="en"?"en/":""}recursos/${e.slug}`}))}},annotations:{readOnlyHint:!0}},n),await document.modelContext.registerTool({name:"schedule_demo",title:"Agendar demo de Fensivo",description:"Navega directamente a la página para agendar una demo con el equipo de Fensivo. El usuario puede seleccionar horario y completar el formulario.",inputSchema:{type:"object",properties:{}},execute:async()=>(window.history.pushState({},"",r["agenda-demo"]),window.dispatchEvent(new PopStateEvent("popstate")),{navigated:!0,url:`${i}${r["agenda-demo"]}`}),annotations:{readOnlyHint:!1}},n)}export{y as initWebMCP};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.