{"id":885,"date":"2026-08-19T18:07:52","date_gmt":"2026-08-19T23:07:52","guid":{"rendered":"https:\/\/nucleo.miespaciodigital.net\/?page_id=885"},"modified":"2026-09-13T19:33:03","modified_gmt":"2026-09-14T00:33:03","slug":"asistente-interno-ia","status":"publish","type":"page","link":"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/asistente-interno-ia\/","title":{"rendered":"Asistente Interno (IA)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"885\" class=\"elementor elementor-885\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b194bdc e-con e-atomic-element e-flexbox-base e-6e3be75 \" data-id=\"b194bdc\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"b194bdc\" data-e-type=\"e-flexbox\" data-id=\"b194bdc\">\n    <div class=\"elementor-element elementor-element-b80f570 e-con e-atomic-element e-flexbox-base \" data-id=\"b80f570\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"b80f570\" data-e-type=\"e-flexbox\" data-id=\"b80f570\">\n    \t\t<div class=\"elementor-element elementor-element-ca91922 elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"ca91922\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\n<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>N\u00facleo \u2014 Asistente Interno (IA)<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap\" rel=\"stylesheet\">\n<style>\n  :root{\n    --ink:#132029; --ink-soft:#3d4d55;\n    --paper:#F4F2EC; --paper-raised:#FFFFFF; --line:#DDD8CB;\n    --navy:#12303D; --navy-soft:#1C3E4E;\n    --gold:#C98A3B; --gold-soft:#E8C899;\n    --green:#3A7D57; --green-bg:#E4EEE6;\n    --amber:#B8862F; --amber-bg:#F2E9D6;\n    --red:#B4432B; --red-bg:#F3E1DB;\n    --radius:14px;\n    --shadow: 0 1px 2px rgba(19,32,41,0.06), 0 8px 24px -12px rgba(19,32,41,0.18);\n  }\n  *{box-sizing:border-box;}\n  html,body{margin:0;padding:0;}\n  body{background:var(--paper); color:var(--ink); font-family:'IBM Plex Sans', sans-serif; -webkit-font-smoothing:antialiased;}\n  .app{display:grid; grid-template-columns:260px 1fr; min-height:100vh;}\n\n  .sidebar{background:var(--navy); color:#EDEBE2; padding:28px 20px 20px; display:flex; flex-direction:column; gap:28px;}\n  .brand{display:flex; align-items:center; gap:10px;}\n  .brand-mark{width:34px;height:34px;border-radius:50%; background:radial-gradient(circle at 35% 30%, var(--gold-soft), var(--gold) 60%); box-shadow: inset 0 0 0 2px rgba(255,255,255,0.25); flex-shrink:0;}\n  .brand-name{font-family:'Fraunces', serif; font-weight:600; font-size:1.25rem;}\n  .brand-sub{font-size:0.7rem; color:#9FB2BC; letter-spacing:0.06em; text-transform:uppercase; margin-top:-22px; margin-left:44px;}\n  nav{display:flex;flex-direction:column;gap:2px;margin-top:6px;}\n  .nav-item{display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:8px; font-size:0.87rem; color:#C7D3D8; text-decoration:none; cursor:pointer; transition:background 0.15s ease, color 0.15s ease;}\n  .nav-item .num{font-family:'IBM Plex Mono', monospace; font-size:0.72rem; color:#7C929B; width:16px;}\n  .nav-item:hover{background:rgba(255,255,255,0.06); color:#fff;}\n  .nav-item.active{background:var(--navy-soft); color:#fff; box-shadow: inset 3px 0 0 var(--gold);}\n  .nav-item.active .num{color:var(--gold);}\n  .nav-sub{margin-left:26px; display:flex; flex-direction:column; gap:1px;}\n  .nav-sub .nav-item{font-size:0.8rem; padding:7px 12px; color:#9FB2BC;}\n  .sidebar-footer{margin-top:auto; font-size:0.72rem; color:#7C929B; padding-top:16px; border-top:1px solid rgba(255,255,255,0.1);}\n\n  main{padding:32px 40px 40px; max-width:900px; display:flex; flex-direction:column; height:100vh;}\n  .topbar{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:20px; flex-wrap:wrap; gap:16px;}\n  .eyebrow{font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold); margin-bottom:6px;}\n  h1{font-family:'Fraunces', serif; font-weight:600; font-size:1.8rem; margin:0; color:var(--navy);}\n  .subtitle{color:var(--ink-soft); font-size:0.92rem; margin-top:6px;}\n  .user-chip{display:flex; align-items:center; gap:10px; background:var(--paper-raised); border:1px solid var(--line); border-radius:999px; padding:6px 14px 6px 6px; box-shadow:var(--shadow);}\n  .user-avatar{width:30px;height:30px;border-radius:50%; background:var(--navy); color:#EDEBE2; display:flex;align-items:center;justify-content:center; font-size:0.75rem;font-weight:600; font-family:'IBM Plex Mono',monospace;}\n  .user-chip .name{font-size:0.82rem;font-weight:500;}\n  .user-chip .role{font-size:0.72rem;color:var(--ink-soft);}\n\n  .chat-panel{\n    flex:1; background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius);\n    box-shadow:var(--shadow); display:flex; flex-direction:column; overflow:hidden; min-height:0;\n  }\n  .chat-scroll{flex:1; overflow-y:auto; padding:24px 26px; display:flex; flex-direction:column; gap:16px;}\n\n  .msg{display:flex; gap:10px; max-width:82%;}\n  .msg.assistant{align-self:flex-start;}\n  .msg.user{align-self:flex-end; flex-direction:row-reverse;}\n  .msg-avatar{\n    width:30px; height:30px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center;\n    font-size:0.7rem; font-weight:700; font-family:'IBM Plex Mono',monospace;\n  }\n  .msg.assistant .msg-avatar{background:radial-gradient(circle at 35% 30%, var(--gold-soft), var(--gold) 60%); color:var(--navy);}\n  .msg.user .msg-avatar{background:var(--navy); color:#EDEBE2;}\n  .msg-bubble{padding:12px 16px; border-radius:12px; font-size:0.87rem; line-height:1.55;}\n  .msg.assistant .msg-bubble{background:#FAF9F5; border:1px solid var(--line); color:var(--ink); border-top-left-radius:4px;}\n  .msg.user .msg-bubble{background:var(--navy); color:#fff; border-top-right-radius:4px;}\n  .msg-bubble b{color:var(--navy);}\n  .msg.user .msg-bubble b{color:var(--gold-soft);}\n\n  .source-tag{\n    display:inline-flex; align-items:center; gap:5px; margin-top:8px; font-family:'IBM Plex Mono',monospace;\n    font-size:0.68rem; color:var(--gold); background:var(--gold-soft); padding:3px 9px; border-radius:999px;\n  }\n\n  .typing{display:flex; gap:4px; padding:6px 0;}\n  .typing span{width:6px; height:6px; border-radius:50%; background:var(--ink-soft); opacity:0.4; animation:blink 1.2s infinite;}\n  .typing span:nth-child(2){animation-delay:0.2s;}\n  .typing span:nth-child(3){animation-delay:0.4s;}\n  @keyframes blink{0%,80%,100%{opacity:0.25;} 40%{opacity:0.9;}}\n\n  .suggestions{display:flex; gap:8px; flex-wrap:wrap; padding:14px 26px; border-top:1px solid var(--line); background:#FAF9F5;}\n  .chip{\n    font-size:0.78rem; padding:8px 13px; border-radius:999px; border:1px solid var(--line); background:var(--paper-raised);\n    color:var(--ink-soft); cursor:pointer; transition:border-color 0.15s ease, color 0.15s ease;\n  }\n  .chip:hover{border-color:var(--gold); color:var(--navy);}\n\n  .input-row{display:flex; gap:10px; padding:16px 20px; border-top:1px solid var(--line); align-items:center;}\n  .input-row input{\n    flex:1; border:1px solid var(--line); border-radius:10px; padding:12px 16px; font-family:'IBM Plex Sans', sans-serif;\n    font-size:0.88rem; color:var(--ink); outline:none;\n  }\n  .input-row input:focus{border-color:var(--gold);}\n  .send-btn{\n    background:var(--navy); color:#fff; border:none; border-radius:10px; width:44px; height:44px; flex-shrink:0;\n    cursor:pointer; display:flex; align-items:center; justify-content:center;\n  }\n  .send-btn:hover{opacity:0.9;}\n\n  .demo-note{margin-top:14px; font-size:0.76rem; color:var(--ink-soft); text-align:center; padding:12px; border:1px dashed var(--line); border-radius:10px; background:rgba(201,138,59,0.05);}\n\n  @media (max-width:980px){\n    .app{grid-template-columns:1fr;}\n    .sidebar{display:none;}\n    main{padding:20px;}\n  }\n<\/style>\n<\/head>\n<body>\n<div class=\"app\">\n\n  <aside class=\"sidebar\">\n    <div class=\"brand\">\n  <img decoding=\"async\" src=\"https:\/\/miespaciodigital.net\/auditoria\/wp-content\/uploads\/2026\/09\/LOGO1.jpg\"\n       alt=\"N\u00daCLEO\"\n       style=\"width:100%; max-width:190px; height:auto; display:block;\">\n<\/div>\n    <nav>\n      <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/tablero-general\/\"><span class=\"num\">01<\/span> Tablero General<\/a>\n      <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/atencion-ciudadana-tupa\/\"><span class=\"num\">02<\/span> Atenci\u00f3n Ciudadana<\/a>\n      <a class=\"nav-item active\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/asistente-interno-ia\/\"><span class=\"num\">03<\/span> Asistente Interno (IA)<\/a>\n      <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/\"><span class=\"num\">04<\/span> Gesti\u00f3n por Resultados<\/a>\n      <div class=\"nav-sub\">\n        <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/acciones-correctivas-2\/\">Acciones Correctivas<\/a>\n        <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/indicadores-kpi-2\/\">Indicadores KPI<\/a>\n        <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/matriz-raci-v2\/\">Matriz RACI<\/a>\n        <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/metas-y-linea-base-2\/\">Metas y L\u00ednea Base<\/a>\n        <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/seguimiento-de-resultados-v2\/\">Seguimiento de Resultados-v2<\/a>\n      <\/div>\n      <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/5-planeamiento-y-presupuesto\/\"><span class=\"num\">05<\/span> Planeamiento y Presupuesto<\/a>\n      <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/auditoria-y-control\/\"><span class=\"num\">06<\/span> Auditor\u00eda y Control<\/a>\n      <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/informes-y-rendicion-sistema\/\"><span class=\"num\">07<\/span> Informes y Rendici\u00f3n<\/a>\n      <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-organismos-de-gobierno\/\"><span class=\"num\">08<\/span> Configuraci\u00f3n<\/a>\n      <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/ayuda-y-soporte-2\/\"><span class=\"num\">09<\/span> Ayuda y Soporte<\/a>\n    <\/nav>\n    <div class=\"sidebar-footer\">N\u00daCLEO<br>Gesti\u00f3n por Resultados con IA<\/div>\n  <\/aside>\n\n  <main>\n    <div class=\"topbar\">\n      <div>\n        <div class=\"eyebrow\">Asistente Interno<\/div>\n        <h1>Asistente de Gesti\u00f3n N\u00facleo<\/h1>\n        <div class=\"subtitle\">Pregunta en lenguaje natural \u2014 consulta presupuesto, tr\u00e1mites, auditor\u00eda y tareas de un solo lugar<\/div>\n      <\/div>\n      <div class=\"user-chip\">\n        <div class=\"user-avatar\">DM<\/div>\n        <div><div class=\"name\">Demo Municipal<\/div><div class=\"role\">Gerente Municipal<\/div><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"chat-panel\">\n      <div class=\"chat-scroll\" id=\"chatScroll\">\n        <div class=\"msg assistant\">\n          <div class=\"msg-avatar\">N<\/div>\n          <div class=\"msg-bubble\">Hola, soy el asistente interno de N\u00facleo. Puedo responder preguntas cruzando informaci\u00f3n de Presupuesto, Tr\u00e1mites TUPA, Auditor\u00eda y Tareas \u2014 sin que tengas que abrir cada m\u00f3dulo por separado. Prueba una de las preguntas de abajo, o escribe la tuya.<\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"suggestions\" id=\"suggestions\">\n        <div class=\"chip\" data-q=\"vehiculos\">\u00bfCu\u00e1nto tengo para mantenimiento de veh\u00edculos?<\/div>\n        <div class=\"chip\" data-q=\"tupa_vencidos\">\u00bfQu\u00e9 tr\u00e1mites TUPA est\u00e1n vencidos?<\/div>\n        <div class=\"chip\" data-q=\"auditoria\">\u00bfQu\u00e9 hallazgos de auditor\u00eda siguen abiertos?<\/div>\n        <div class=\"chip\" data-q=\"tareas_seguridad\">\u00bfQu\u00e9 tareas tiene pendientes Seguridad Ciudadana?<\/div>\n      <\/div>\n\n     \n   \n<div style=\"text-align:center; padding:18px 10px;\">\n  <strong style=\"color:#123746; font-size:20px;\">\n    \u00bfNo encuentras tu respuesta?\n  <\/strong>\n<\/div>\n<div style=\"margin-top:8px; color:#123746;\n            font-size:18px; font-weight:700;\n            text-align:center;\">\n  Preg\u00fantale a N\u00daCLEO\n<\/div>\n <div class=\"input-row\">\n        <input id=\"chatInput\" type=\"text\" placeholder=\"Escriba su pregunta o necesidad.\">\n        <button class=\"send-btn\" onclick=\"sendMessage()\">\n          <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"\/><polygon points=\"22 2 15 22 11 13 2 9 22 2\"\/><\/svg>\n        <\/button>\n      <\/div>\n<\/div>\n    <\/div>\n\n   \n    <div style=\"margin-top:30px;\">\n      <a href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/tablero-general\/\"\n         style=\"display:inline-block; padding:12px 22px; background:#123746; color:#fff; text-decoration:none; border-radius:8px; font-weight:600;\">\n        \u2190 REGRESAR AL INICIO\n      <\/a>\n    <\/div>\n  <\/main>\n<\/div>\n\n<script>\nconst respuestas = [\n  {\n    keys: [\"vehicul\", \"veh\u00edculo\"],\n    texto: \"Sumando la espec\u00edfica <b>2.3.2 4.1 3 \u2014 Mantenimiento y reparaci\u00f3n de veh\u00edculos<\/b> en las dos gerencias que ejecutan gasto ah\u00ed: PIM asignado <b>S\/ 276,000<\/b>, ejecutado <b>S\/ 173,600<\/b> (62.9%), saldo disponible <b>S\/ 102,400<\/b>. Corresponde a Gerencia de Servicios P\u00fablicos y Gerencia de Seguridad Ciudadana (Serenazgo).\",\n    fuente: \"Gesti\u00f3n Presupuestal \u2014 M\u00f3dulo 1.5\"\n  },\n  {\n    keys: [\"tupa\", \"tramite\", \"tr\u00e1mite\"],\n    texto: \"Hay <b>2 solicitudes TUPA fuera de plazo<\/b>: <b>TUPA-2026-0812<\/b> (Licencia de Funcionamiento, Rosa Medina Quispe, venci\u00f3 hace 1 d\u00eda) y <b>TUPA-2026-0803<\/b> (Licencia de Edificaci\u00f3n, Empresa Constructora Andina S.A.C., venci\u00f3 hace 10 d\u00edas). Ambas est\u00e1n en estado \\\"Observado\\\" \u2014 requieren seguimiento urgente antes de generar silencio administrativo negativo.\",\n    fuente: \"Atenci\u00f3n Ciudadana \/ TUPA \u2014 M\u00f3dulo 1.1\"\n  },\n  {\n    keys: [\"auditoria\", \"auditor\u00eda\", \"hallazgo\"],\n    texto: \"Hay <b>5 hallazgos abiertos o en proceso<\/b>, de los cuales <b>3 son de severidad alta<\/b>: <b>AUD-0019<\/b> (Administraci\u00f3n y Finanzas, vence en 2 d\u00edas), <b>AUD-0015<\/b> (Administraci\u00f3n y Finanzas, ya vencido) y <b>AUD-0032<\/b> (Tecnolog\u00edas de la Informaci\u00f3n, plan de contingencia pendiente). El \u00edndice de preparaci\u00f3n para auditor\u00eda est\u00e1 en 71%.\",\n    fuente: \"Auditor\u00eda y Control \u2014 M\u00f3dulo 1.3\"\n  },\n  {\n    keys: [\"seguridad\", \"serenazgo\"],\n    texto: \"Gerencia de Seguridad Ciudadana tiene <b>1 tarea pendiente<\/b>: <b>TAR-0232<\/b> \u2014 \\\"Reparar unidad de serenazgo con c\u00f3digo VH-014\\\", prioridad alta, venci\u00f3 el 16 de agosto. Est\u00e1 directamente relacionada con el hallazgo de auditor\u00eda <b>AUD-0028<\/b> sobre mantenimiento vehicular vencido.\",\n    fuente: \"Actividades y Tareas \u2014 M\u00f3dulo 1.7\"\n  }\n];\n\nfunction buscarRespuesta(texto){\n  const t = texto.toLowerCase();\n  for(const r of respuestas){\n    if(r.keys.some(k => t.includes(k))) return r;\n  }\n  return {\n    texto: \"Por ahora puedo responder sobre <b>presupuesto<\/b> (ej: \\\"cu\u00e1nto tengo para...\\\"), <b>tr\u00e1mites TUPA<\/b>, <b>hallazgos de auditor\u00eda<\/b>, y <b>tareas por gerencia<\/b>. Prueba reformulando tu pregunta con alguno de esos temas, o usa una de las sugerencias de abajo.\",\n    fuente: null\n  };\n}\n\nfunction addMessage(text, sender, fuente){\n  const scroll = document.getElementById(\"chatScroll\");\n  const msg = document.createElement(\"div\");\n  msg.className = \"msg \" + sender;\n  const avatarLetter = sender === \"assistant\" ? \"N\" : \"DM\";\n  let sourceHtml = \"\";\n  if(fuente){\n    sourceHtml = `<div class=\"source-tag\">\ud83d\udcce Fuente: ${fuente}<\/div>`;\n  }\n  msg.innerHTML = `\n    <div class=\"msg-avatar\">${avatarLetter}<\/div>\n    <div class=\"msg-bubble\">${text}${sourceHtml}<\/div>\n  `;\n  scroll.appendChild(msg);\n  scroll.scrollTop = scroll.scrollHeight;\n}\n\nfunction showTyping(){\n  const scroll = document.getElementById(\"chatScroll\");\n  const msg = document.createElement(\"div\");\n  msg.className = \"msg assistant\";\n  msg.id = \"typingMsg\";\n  msg.innerHTML = `\n    <div class=\"msg-avatar\">N<\/div>\n    <div class=\"msg-bubble\"><div class=\"typing\"><span><\/span><span><\/span><span><\/span><\/div><\/div>\n  `;\n  scroll.appendChild(msg);\n  scroll.scrollTop = scroll.scrollHeight;\n}\n\nfunction removeTyping(){\n  const t = document.getElementById(\"typingMsg\");\n  if(t) t.remove();\n}\n\nasync function handleQuery(text){\n  addMessage(text, \"user\");\n  showTyping();\n\n  try {\n    const authKey = Object.keys(localStorage).find(\n      key => key.startsWith(\"sb-\") && key.endsWith(\"-auth-token\")\n    );\n\n    if (!authKey) {\n      throw new Error(\"Su sesi\u00f3n de N\u00daCLEO no est\u00e1 disponible. Ingrese nuevamente.\");\n    }\n\n    const sesionGuardada = JSON.parse(localStorage.getItem(authKey) || \"{}\");\n\n    const accessToken =\n      sesionGuardada.access_token ||\n      sesionGuardada.currentSession?.access_token ||\n      sesionGuardada.session?.access_token;\n\n    if (!accessToken) {\n      throw new Error(\"Su sesi\u00f3n de N\u00daCLEO ha vencido. Ingrese nuevamente.\");\n    }\n\n    const respuestaHttp = await fetch(\n      \"https:\/\/gpvhswppvuogtqgmudng.supabase.co\/functions\/v1\/preguntar-nucleo\",\n      {\n        method: \"POST\",\n        headers: {\n          \"Authorization\": `Bearer ${accessToken}`,\n          \"Content-Type\": \"application\/json\"\n        },\n        body: JSON.stringify({ pregunta: text })\n      }\n    );\n\n    const datos = await respuestaHttp.json();\n\n    removeTyping();\n\n    if (!respuestaHttp.ok) {\n      throw new Error(datos.error || \"N\u00daCLEO no pudo responder en este momento.\");\n    }\n\n    addMessage(datos.respuesta, \"assistant\");\n\n  } catch (error) {\n    removeTyping();\n    console.error(\"Error al consultar N\u00daCLEO:\", error);\n    addMessage(\n      error.message || \"N\u00daCLEO no pudo responder en este momento.\",\n      \"assistant\"\n    );\n  }\n}\n\nfunction sendMessage(){\n  const input = document.getElementById(\"chatInput\");\n  const text = input.value.trim();\n  if(!text) return;\n  input.value = \"\";\n  handleQuery(text);\n}\n\ndocument.getElementById(\"chatInput\").addEventListener(\"keydown\", (e) => {\n  if(e.key === \"Enter\") sendMessage();\n});\n\nconst preguntasChips = {\n  vehiculos: \"\u00bfCu\u00e1nto tengo para mantenimiento de veh\u00edculos?\",\n  tupa_vencidos: \"\u00bfQu\u00e9 tr\u00e1mites TUPA est\u00e1n vencidos?\",\n  auditoria: \"\u00bfQu\u00e9 hallazgos de auditor\u00eda siguen abiertos?\",\n  tareas_seguridad: \"\u00bfQu\u00e9 tareas tiene pendientes Seguridad Ciudadana?\"\n};\n\ndocument.querySelectorAll(\".chip\").forEach(chip => {\n  chip.addEventListener(\"click\", () => {\n    handleQuery(preguntasChips[chip.dataset.q]);\n  });\n});\n<\/script>\n<\/body>\n<\/html>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>N\u00facleo \u2014 Asistente Interno (IA) 01 Tablero General 02 Atenci\u00f3n Ciudadana 03 Asistente Interno (IA) 04 Gesti\u00f3n por Resultados Acciones Correctivas Indicadores KPI Matriz RACI Metas y L\u00ednea Base Seguimiento de Resultados-v2 05 Planeamiento y Presupuesto 06 Auditor\u00eda y Control 07 Informes y Rendici\u00f3n 08 Configuraci\u00f3n 09 Ayuda y Soporte N\u00daCLEOGesti\u00f3n por Resultados con IA [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":638,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-885","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages\/885","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/comments?post=885"}],"version-history":[{"count":19,"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages\/885\/revisions"}],"predecessor-version":[{"id":2357,"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages\/885\/revisions\/2357"}],"up":[{"embeddable":true,"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages\/638"}],"wp:attachment":[{"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/media?parent=885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}