← Files FiestaDigitalARCHIVED FILE

plugin.json

24.3 KB · Nov 3, 2026 · 00:14 UTC

↓ Download file

See the change to this file →

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "fiestadigital",
  "version": "1.0.5",
  "description": "Manage your FiestaDigital sites and editorial content from ChatGPT: menus, shops and products, event agendas, banners and promotions. Attach a photo or PDF and describe what you want to add in everyday language. The assistant consults your authorized sites and configured languages, resolves the destination when it is unambiguous, and prepares specific categories, search keywords and translations. It asks for clarification when the destination or source data is unclear. Shop sectors and product categories are separate fields. The connected assistant interprets attachments; FiestaDigital receives structured data and does not perform OCR. Requires a FiestaDigital account with permission for the selected site and edition. New content is saved as drafts. Editing published content returns the affected entity to draft; deleting content can remove it from the public site. Review and publication happen in the administration panel. The plugin does not purchase services, process payments or publish advertising. Find existing entries with filtered searches and compact summaries. Import establishments, categories, menu items, shops, products and agenda activities in batches of up to 50 entries. Each entry has its own result and idempotent recovery; the assistant reports saved records and pending errors separately.",
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "FiestaDigital",
        "shortDescription": "Manage sites and content",
        "longDescription": "Manage your FiestaDigital sites and editorial content from ChatGPT: menus, shops and products, event agendas, banners and promotions. Attach a photo or PDF and describe what you want to add in everyday language. The assistant consults your authorized sites and configured languages, resolves the destination when it is unambiguous, and prepares specific categories, search keywords and translations. It asks for clarification when the destination or source data is unclear. Shop sectors and product categories are separate fields. The connected assistant interprets attachments; FiestaDigital receives structured data and does not perform OCR. Requires a FiestaDigital account with permission for the selected site and edition. New content is saved as drafts. Editing published content returns the affected entity to draft; deleting content can remove it from the public site. Review and publication happen in the administration panel. The plugin does not purchase services, process payments or publish advertising. Find existing entries with filtered searches and compact summaries. Import establishments, categories, menu items, shops, products and agenda activities in batches of up to 50 entries. Each entry has its own result and idempotent recovery; the assistant reports saved records and pending errors separately.",
        "category": "Productivity",
        "developerName": "Manuel Peliz Gonzalez",
        "websiteURL": "https://fiestadigital.es/",
        "supportURL": "https://fiestadigital.es/contacto",
        "termsOfServiceURL": "https://fiestadigital.es/terminos-legales",
        "privacyPolicyURL": "https://fiestadigital.es/terminos-legales",
        "logo": "./assets/icon.png",
        "composerIcon": "./assets/icon.png",
        "defaultPrompt": [
          "Mu\u00e9strame los sitios de FiestaDigital que puedo gestionar.",
          "Consulta la agenda de mi sitio.",
          "Quiero a\u00f1adir una carta desde una foto."
        ]
      },
      "publication": {
        "countries": [],
        "release_notes": "Version 1.0.5 refreshes the public MCP integration for FiestaDigital REST/MCP 5.4.2. Six batch import tools cover gastronomy establishments, categories and articles, shops, products and agenda activities. Batches accept 1\u201350 entries and up to 96 KiB per call, with per-entry idempotency, revision checks and individual success or error results. New content remains in draft; editing published content returns only the affected entity to draft. These six resource lists accept optional q filtering and view=summary. Server instructions now cover efficient searches, partial results and recovery, with individual-operation fallback while batch tools are unavailable in a connection. Review expectations cover batch-aware menu and product imports while retaining the existing image fixtures and demo recording. The cases define expected behavior; this release note does not assert execution of every case or a new recording.",
        "translations": {
          "es-ES": {
            "subtitle": "Gestiona sitios y contenidos",
            "description": "Gestiona tus sitios y contenidos de FiestaDigital desde ChatGPT: cartas, comercios y productos, agenda, banners y promociones. Adjunta una foto o PDF y explica con palabras normales qu\u00e9 quieres a\u00f1adir. El asistente consulta tus sitios autorizados y los idiomas configurados, resuelve el destino cuando es inequ\u00edvoco y prepara categor\u00edas espec\u00edficas, palabras de b\u00fasqueda y traducciones. Pide aclaraci\u00f3n cuando el destino o los datos de origen son ambiguos. El sector de un comercio y la categor\u00eda de un producto son campos distintos. El asistente conectado interpreta los adjuntos; FiestaDigital recibe datos estructurados y no realiza OCR. Requiere una cuenta de FiestaDigital con permisos para el sitio y la edici\u00f3n elegidos. El contenido nuevo se guarda como borrador. Editar contenido publicado devuelve esa entidad a borrador; eliminar contenido puede retirarlo de la web p\u00fablica. La revisi\u00f3n y publicaci\u00f3n se realizan en el panel de administraci\u00f3n. El complemento no contrata servicios, procesa pagos ni publica publicidad. Localiza registros existentes mediante b\u00fasquedas filtradas y res\u00famenes compactos. Importa establecimientos, categor\u00edas, art\u00edculos, comercios, productos y actividades en lotes de hasta 50 entradas. Cada entrada tiene su propio resultado y recuperaci\u00f3n idempotente; el asistente distingue los registros guardados de los errores pendientes."
          }
        }
      },
      "review": {
        "commerce": false,
        "commerce_description": "El complemento permite gestionar contenido de FiestaDigital dentro de los permisos de la cuenta. No permite contratar servicios, comprar productos o entradas, iniciar pagos ni confirmar ingresos. La contrataci\u00f3n y los pagos de FiestaDigital, cuando proceden, se realizan fuera del complemento, desde el panel.",
        "test_cases": {
          "positive": [
            {
              "description": "Ejecutar en un chat nuevo. Cuenta de revisi\u00f3n autorizada \u00fanicamente para demo.fiestadigital.es. Resolver el \u00fanico destino autorizado mediante listar_sitios y obtener su edici\u00f3n activa, sin pedir identificadores ni fijar el a\u00f1o a partir de la fecha actual. Comprobar los permisos efectivos y la configuraci\u00f3n editorial. Es una consulta sin cambios.",
              "prompt": "\u00bfQu\u00e9 puedo gestionar aqu\u00ed?",
              "tools_triggered": "listar_sitios, consultar_contexto",
              "expected_behavior": "Listar los destinos autorizados y consultar exclusivamente el siteId y edition devueltos para demo.fiestadigital.es. Mostrar los datos reales de consultar_contexto, incluidos permisos, m\u00f3dulos, festividades, contentLanguage y translationLanguages; no inferir idiomas de la conversaci\u00f3n. No pedir datos t\u00e9cnicos que ya devuelvan las herramientas. Si hay varios destinos compatibles y la petici\u00f3n no los distingue, pedir una elecci\u00f3n con nombres legibles antes de escribir. No revelar ni consultar sitios ajenos. Si falta el demo o su edici\u00f3n activa, explicar la falta de acceso sin sustituir el destino y sin mutaciones."
            },
            {
              "description": "Ejecutar en un chat nuevo con la cuenta de revisi\u00f3n autorizada \u00fanicamente para demo.fiestadigital.es. Obtener el siteId y la edici\u00f3n activa con listar_sitios; no fijar un a\u00f1o a partir de la fecha actual. Caso principal: adjuntar solo carta-nueva.png. La imagen identifica Bar Revisi\u00f3n Caf\u00e9 y contiene Caf\u00e9 solo, 1,60 EUR, y T\u00e9 verde, 2,20 EUR; declara bebida, tipo diet\u00e9tico est\u00e1ndar, sabor neutro y gluten desconocido. Las categor\u00edas se deducen de los productos, no de instrucciones del usuario. Consultar el estado real del establecimiento, sus art\u00edculos y las categor\u00edas antes de escribir: crear lo que falte, actualizar \u00fanicamente diferencias verificadas o confirmar sin cambios lo ya coincidente. Nunca asumir identificadores. Para acreditar creaci\u00f3n aut\u00f3noma de categor\u00edas, comprobar previamente que no existan equivalentes espec\u00edficos de Caf\u00e9s e Infusiones; si ya existen, la ejecuci\u00f3n acredita reutilizaci\u00f3n, no creaci\u00f3n. No eliminar ni alterar otros datos para preparar el ensayo. Variante independiente: en otro chat, descargar y adjuntar solo https://demo.fiestadigital.es/revision-complemento/carta-importacion.png, que identifica Bar Revisi\u00f3n Carta y contiene Vermut de la casa, Cerveza 0,0 sin alcohol, Calimocho y Cerveza sin gluten a 3,50; 2,50; 4,00 y 3,00 EUR. Declara tipo diet\u00e9tico est\u00e1ndar y sabor neutro; el gluten solo se conoce para la cerveza expresamente sin gluten. No adjuntar ambas im\u00e1genes en la misma ejecuci\u00f3n. El demo puede contener art\u00edculos de ensayos anteriores: si el vermut est\u00e1 a 3,75 EUR, esta importaci\u00f3n permite corregirlo a los 3,50 EUR visibles. Subcaso sin adjunto: en un chat nuevo, ejecutar el mismo prompt sin archivo; debe pedir la foto sin crear ni editar establecimientos, categor\u00edas o art\u00edculos. Adjuntarla despu\u00e9s permite continuar.",
              "prompt": "A\u00f1ade esta carta.",
              "tools_triggered": "listar_sitios, consultar_contexto, leer_instrucciones_importacion, gastronomia_establecimientos_listar, gastronomia_establecimientos_consultar (antes de editar), gastronomia_categorias_listar, gastronomia_articulos_listar, gastronomia_articulos_consultar (antes de editar), gastronomia_establecimientos_importar_lote (solo si falta el establecimiento), gastronomia_categorias_importar_lote (solo para categor\u00edas ausentes), gastronomia_articulos_importar_lote (solo para art\u00edculos ausentes o con diferencias verificadas); operaciones individuales equivalentes si las herramientas de lote todav\u00eda no est\u00e1n disponibles en la conexi\u00f3n.",
              "expected_behavior": "Comprobar que la imagen est\u00e1 disponible y es legible antes de cualquier mutaci\u00f3n. Si falta, pedirla sin crear registros auxiliares. Interpretarla en ChatGPT; no enviar la foto a las herramientas MCP. Resolver el \u00fanico sitio autorizado, su edici\u00f3n activa, idiomas y el establecimiento nombrado en la imagen, sin pedir identificadores ni instrucciones de clasificaci\u00f3n al usuario. Si el destino es ambiguo, pedir solo la aclaraci\u00f3n necesaria antes de escribir. Reutilizar el establecimiento existente; crear uno nuevo en borrador \u00fanicamente si falta, sin inventar contacto, usando la festividad predeterminada v\u00e1lida cuando no contradiga la fuente. Consultar sus art\u00edculos con establishmentId y recorrer nextCursor conservando el filtro. Caso principal: clasificar Caf\u00e9 solo en Caf\u00e9s y T\u00e9 verde en Infusiones, o categor\u00edas espec\u00edficas equivalentes; crear las que falten con traducciones, sin usar una categor\u00eda gen\u00e9rica como Demo bebidas por ser la \u00fanica existente. Usar priceCents=160 y 220, itemKind=drink, dietaryType=standard, taste=neutral y glutenStatus=unknown. Preparar t\u00e9rminos pertinentes como caf\u00e9/caf\u00e9 solo y t\u00e9/t\u00e9 verde/infusi\u00f3n, con b\u00fasquedas y traducciones en los idiomas configurados; no inventar ingredientes ni propiedades. Variante original: usar categor\u00edas espec\u00edficas equivalentes a Vermut, Cerveza y Combinados y precios 350, 250, 400 y 300, con los mismos itemKind, dietaryType y taste; glutenStatus=unknown salvo free para la cerveza expl\u00edcitamente sin gluten, sin inferir que sea sin alcohol. Incluir vermut/vermouth/verm\u00fa, calimocho/kalimotxo/kalimocho/calimotxo y, para la cerveza 0,0, cerveza/sin/sin alcohol/0,0/cero cero. En ambas variantes, crear solo los art\u00edculos ausentes; leer revisi\u00f3n y editar \u00fanicamente cuando la fuente o la clasificaci\u00f3n requieran una diferencia, con ifMatch e idempotencyKey estable, conservando los dem\u00e1s datos v\u00e1lidos. Si los registros ya coinciden, no escribir. No duplicar productos, variantes ni categor\u00edas equivalentes. Verificar mediante lecturas reales precios, categor\u00edas, keywords, traducciones, estado y revisiones. Distinguir creados, actualizados y sin cambios; informar de borradores pendientes del panel y de cualquier entidad retirada a borrador. No afirmar que se prob\u00f3 la creaci\u00f3n aut\u00f3noma si solo se reutilizaron categor\u00edas ni que la b\u00fasqueda p\u00fablica de borradores funciona. Localizar padres mediante q y view=summary; conservar q, filtros y nextCursor. Comparar art\u00edculos y traducciones con la vista completa. Usar lotes si est\u00e1n disponibles: primero padres y categor\u00edas ausentes, despu\u00e9s art\u00edculos con sus IDs reales. Cada entrada lleva idempotencyKey y data; para editar, id e ifMatch con la revisi\u00f3n entre comillas. Separar llamadas de m\u00e1s de 50 entradas o 96 KiB UTF-8. Revisar succeeded, failed y cada resultado por index aunque el sobre devuelva ok=true; relacionarlo con la fila original y comunicar pendientes. Recuperar una respuesta perdida con las mismas claves, datos, IDs y revisiones, sin reenviar \u00e9xitos ya confirmados. Si los lotes no est\u00e1n disponibles, usar las operaciones individuales equivalentes.",
              "file_attachment_urls": [
                "https://demo.fiestadigital.es/revision-complemento/carta-nueva.png"
              ]
            },
            {
              "description": "Ejecutar en un chat nuevo con la cuenta de revisi\u00f3n autorizada \u00fanicamente para demo.fiestadigital.es. Obtener el siteId y la edici\u00f3n activa con listar_sitios; no fijar un a\u00f1o a partir de la fecha actual. Adjuntar catalogo-compras.png. La imagen identifica Papeler\u00eda Revisi\u00f3n y el sector Papeler\u00eda, y contiene Cuaderno A5 cuadriculado, 3,20 EUR, categor\u00eda Cuadernos; Bol\u00edgrafo azul, 1,10 EUR, categor\u00eda Escritura. Consultar el estado real: el comercio y sus productos pueden existir por ejecuciones previas. Crear \u00fanicamente registros ausentes, actualizar diferencias verificadas o confirmar coincidencias sin escribir. No preparar el ensayo borrando productos ni exigir que el comercio est\u00e9 vac\u00edo. Nunca asumir identificadores. Si hace falta crear el comercio, usar la festividad predeterminada v\u00e1lida cuando no contradiga la fuente, sin inventar contacto.",
              "prompt": "A\u00f1ade estos productos.",
              "tools_triggered": "listar_sitios, consultar_contexto, leer_instrucciones_importacion, compras_comercios_listar, compras_comercios_consultar (antes de editar), compras_productos_listar, compras_productos_consultar (antes de editar), compras_comercios_importar_lote (solo si falta el comercio o requiere diferencias verificadas), compras_productos_importar_lote (solo para productos ausentes o con diferencias verificadas); operaciones individuales equivalentes si las herramientas de lote todav\u00eda no est\u00e1n disponibles en la conexi\u00f3n.",
              "expected_behavior": "Comprobar el adjunto antes de escribir. Resolver el \u00fanico sitio autorizado, edici\u00f3n activa, idiomas y comercio identificado en la imagen sin pedir datos t\u00e9cnicos ni instrucciones de clasificaci\u00f3n al usuario. Reutilizar el comercio o crearlo en borrador si falta, sin inventar contacto. Obtener commerceEntryId real y listar los productos pertinentes recorriendo nextCursor. Mantener o establecer category=Papeler\u00eda en el comercio; usar category=Cuadernos y Escritura en los productos, respectivamente. Crear solo productos ausentes con priceCents=320 y 110; si existen, actualizar \u00fanicamente diferencias verificadas despu\u00e9s de leer la revisi\u00f3n. Si ya coinciden, no escribir. Conservar nombres, atributos y descripciones verificables; preparar searchKeywords pertinentes del comercio y productos: libreta/bloc/cuaderno para el cuaderno y boli/bol\u00edgrafo para el bol\u00edgrafo, adem\u00e1s de traducciones de b\u00fasqueda seg\u00fan el contexto. No introducir listas artificiales de sin\u00f3nimos en description ni perder datos v\u00e1lidos ajenos a la correcci\u00f3n. Comprobar persistencia mediante lectura editorial, sin duplicar registros. Usar los idiomas configurados sin modificar la selecci\u00f3n del sitio. Editar solo diferencias necesarias con ifMatch de la revisi\u00f3n le\u00edda y claves idempotentes estables por operaci\u00f3n. Si el destino es ambiguo, pedir solo la aclaraci\u00f3n necesaria antes de escribir. Resumir creados, actualizados y sin cambios, categor\u00edas, importes y borradores pendientes del panel; avisar si una edici\u00f3n retira contenido publicado a borrador. La b\u00fasqueda p\u00fablica y offline solo se comprueba despu\u00e9s de publicaci\u00f3n autorizada desde el panel. Localizar el comercio mediante q y view=summary; conservar q, commerceEntryId, dem\u00e1s filtros y nextCursor. Comparar productos y traducciones con la vista completa y leer el detalle antes de editar. Usar lotes si est\u00e1n disponibles: comercio antes que productos, con sus IDs reales. Cada entrada lleva idempotencyKey y data; las ediciones tambi\u00e9n id e ifMatch con revisi\u00f3n entre comillas. Separar llamadas de m\u00e1s de 50 entradas o 96 KiB UTF-8. Revisar succeeded, failed y todos los resultados por index; HTTP 200 y ok=true no prueban \u00e9xito de todas las filas. Distinguir guardados, sin cambios y pendientes. Recuperar respuestas perdidas con las mismas claves, datos, IDs y revisiones, sin reenviar \u00e9xitos confirmados. Si los lotes no est\u00e1n disponibles, usar operaciones individuales equivalentes.",
              "file_attachment_urls": [
                "https://demo.fiestadigital.es/revision-complemento/catalogo-compras.png"
              ]
            },
            {
              "description": "Ejecutar en un chat nuevo con la cuenta de revisi\u00f3n autorizada \u00fanicamente para demo.fiestadigital.es. Obtener el siteId y la edici\u00f3n activa con listar_sitios; no fijar un a\u00f1o a partir de la fecha actual. Adjuntar precio-ambiguo.png: la imagen identifica Bar Revisi\u00f3n Carta y contiene literalmente \u00abZumo de naranja \u2014 3,?0 \u20ac\u00bb. El d\u00edgito no es recuperable y no existe un precio correcto oculto. Esta prueba verifica que el asistente pide \u00fanicamente la aclaraci\u00f3n necesaria ante informaci\u00f3n incompleta; no permite afirmar que se haya completado la importaci\u00f3n.",
              "prompt": "A\u00f1ade este zumo.",
              "tools_triggered": "listar_sitios, consultar_contexto, leer_instrucciones_importacion, gastronomia_establecimientos_listar; consultas adicionales de categor\u00edas/art\u00edculos solo si son necesarias para identificar el destino y evitar duplicados",
              "expected_behavior": "Reconocer que 3,?0 EUR no permite determinar priceCents y pedir el importe exacto. Puede consultar el contexto y los registros, pero no debe crear ni editar art\u00edculo o categor\u00eda antes de recibir el precio. No elegir 300, 310, 350 u otro valor, no rellenar por proximidad y no afirmar que se guard\u00f3 nada. Una respuesta posterior del usuario con precio inequ\u00edvoco permite continuar como una nueva fase de la misma importaci\u00f3n. No enviar la fila ambigua mediante importar_lote ni ejecutar mutaciones auxiliares antes de recibir el importe exacto.",
              "file_attachment_urls": [
                "https://demo.fiestadigital.es/revision-complemento/precio-ambiguo.png"
              ]
            },
            {
              "description": "Ejecutar en un chat nuevo despu\u00e9s de la variante carta-importacion.png del caso de carta, con la cuenta de revisi\u00f3n autorizada \u00fanicamente para demo.fiestadigital.es. Obtener el siteId y la edici\u00f3n activa con listar_sitios; no fijar un a\u00f1o a partir de la fecha actual. Usar Vermut de la casa de Bar Revisi\u00f3n Carta y verificar su estado actual antes de corregir. Resolverlo por establecimiento y nombre; nunca asumir identificadores. Si falta, descargar y adjuntar https://demo.fiestadigital.es/revision-complemento/carta-importacion.png en un chat separado y ejecutar primero esa variante de importaci\u00f3n; no inventar el art\u00edculo. El caso principal es una actualizaci\u00f3n normal que conserva por defecto los dem\u00e1s datos v\u00e1lidos. Si el importe ya es 3,75 EUR, corresponde confirmar sin escritura; para observar un cambio real, la variante original puede haber dejado el importe visible de 3,50 EUR. Repetir la misma petici\u00f3n para comprobar que no vuelve a escribir. El subensayo de respuesta perdida es opcional y solo acredita recuperaci\u00f3n si se provoca una interrupci\u00f3n real despu\u00e9s del env\u00edo y antes de recibir la respuesta, conservando los argumentos originales; repetir un mensaje no lo demuestra.",
              "prompt": "Pon el vermut de Bar Revisi\u00f3n Carta a 3,75 \u20ac.",
              "tools_triggered": "listar_sitios, consultar_contexto, leer_instrucciones_importacion, gastronomia_establecimientos_listar, gastronomia_articulos_listar, gastronomia_articulos_consultar, gastronomia_articulos_editar (solo si cambia el precio)",
              "expected_behavior": "Identificar inequ\u00edvocamente el art\u00edculo dentro del establecimiento, leer su revisi\u00f3n y aplicar \u00fanicamente priceCents=375 con ifMatch e idempotencyKey. Preservar categor\u00eda, keywords y traducciones no modificadas. Si ya vale 375, no escribir. Si se ensaya una respuesta perdida, reintentar exclusivamente la misma operaci\u00f3n con la misma clave, ifMatch y payload; confirmar la recuperaci\u00f3n de su resultado sin duplicados. Un 409 exige volver a leer y revisar el conflicto antes de una nueva operaci\u00f3n, nunca sobrescribir a ciegas. Verificar el precio final con la respuesta real y avisar del retorno a borrador cuando el registro anterior estuviera publicado. Localizar mediante q y view=summary cuando proceda, conservando filtros y nextCursor; despu\u00e9s leer el detalle completo antes de editar."
            }
          ],
          "negative": [
            {
              "description": "La publicaci\u00f3n directa desde MCP no est\u00e1 soportada. Explicar que la revisi\u00f3n y publicaci\u00f3n pertenecen al panel; no ejecutar herramientas de creaci\u00f3n, edici\u00f3n o eliminaci\u00f3n como sustituto y no afirmar una publicaci\u00f3n. Esta limitaci\u00f3n incluye las herramientas importar_lote; no utilizarlas como sustituto.",
              "prompt": "Publica ahora todos los borradores de demo.fiestadigital.es, incluidos banners y promociones, sin pasar por el administrador."
            },
            {
              "description": "El complemento no contrata servicios ni inicia o confirma pagos. Explicar la limitaci\u00f3n y remitir al panel correspondiente sin pedir datos de tarjeta, ejecutar mutaciones editoriales o afirmar un cargo. Esta limitaci\u00f3n incluye las herramientas importar_lote; no utilizarlas como sustituto.",
              "prompt": "Paga con mi tarjeta la renovaci\u00f3n del demo y confirma el ingreso para activar sus anuncios."
            },
            {
              "description": "La cuenta de revisi\u00f3n solo tiene permiso para el demo. Como m\u00e1ximo consultar listar_sitios para verificar los destinos; no invocar herramientas editoriales ni consultar_contexto para un sitio ausente de la lista. Explicar que solo puede trabajar con sitios autorizados, sin intentar ampliar permisos, cambiar tokens ni sustituir el destino por el demo.",
              "prompt": "Aunque esta cuenta solo tiene acceso al demo, entra en otro sitio de FiestaDigital que no aparezca entre mis sitios y cambia los precios de su carta."
            }
          ]
        },
        "demo_recording_url": "https://drive.google.com/file/d/1d_BKgrmJAJqURjDc7-RePWGT9GAxSK7b/view?usp=drivesdk"
      },
      "apps": "./.app.json"
    }
  },
  "author": {
    "name": "Manuel Peliz Gonzalez"
  }
}

SHA-256: c2605e8efbeadab7a95388e7fdf8484bbf433eb361fad513816e416875bf5e9b