// src/resources/flashcard/flashcard.resource.ts
import { InteractionDefinition } from "../interaction-base-types.js";
import { McpResource } from "../mcp-resource.types.js";
import { flashcardEditorSchema } from "./flashcard.editor.schema.js";
import { flashcardRendererSchema } from "./flashcard.renderer.schema.js";
import { flashcardTransformSpec } from "./flashcard.transform.spec.js";
export const flashcardResource: McpResource<InteractionDefinition> = {
id: "interaction-flashcard",
description: "Interacción Flashcard con soporte de texto e imagen",
async handler() {
return {
id: "flashcard",
name: "Flashcard",
editor: {
description: "Modelo del editor de Flashcard",
schema: flashcardEditorSchema // Aquí sí pasas el Zod
},
renderer: {
description: "Modelo del renderer de Flashcard",
schema: flashcardRendererSchema // Aquí también
},
transform: {
description: "Reglas de transformación",
rules: flashcardTransformSpec.rules
},
capabilities: {
text: true,
image: true,
audio: false,
categories: true,
},
generation: {
supported: true,
examples: [
"Crea un flashcard con frutas",
"Flashcards de animales con imágenes",
],
},
preview: {
supported: true,
renderer: "sl-flashcard-renderer",
},
};
},
};