Ir al contenido

Informes personalizados

Usa defineReportKind para resolver payloads y devolver un arbol de presentacion pequeno.

import { z } from "zod";
import { createMlRegistryPack } from "mlform/builtins-ml";
import { defineReportKind, registerDefinedReportKind } from "mlform/presentation";
const riskSummaryReport = defineReportKind({
kind: "risk-summary",
schema: z.object({
id: z.string().optional(),
kind: z.literal("risk-summary"),
label: z.string().optional(),
source: z.string().optional(),
}),
resolve: ({ report, result }) => result.reports[report.source],
render: {
summary: ({ payload }) => ({
title: payload.label ?? "Risk",
value: payload.score,
tone: payload.score > 0.8 ? "danger" : "neutral",
}),
content: ({ payload }) => [
{ type: "metric", label: "Score", value: payload.score },
{ type: "list", label: "Drivers", items: payload.drivers },
],
},
});
const pack = createMlRegistryPack();
registerDefinedReportKind(pack.registry, pack.presentationRegistry, riskSummaryReport);

Si resolve falla, solo ese informe queda en estado error.