const data = window.REPORT_DATA; const groupDefinitions = [ { id: "kimi-k2", label: "Kimi-K2.5 / K2.6", members: ["moonshotai/Kimi-K2.5", "moonshotai/Kimi-K2.6"], note: "Shared TypeScript-style tool declaration output across K2.5 and K2.6.", }, { id: "minimax-m2", label: "MiniMax-M2.5 / M2.7", members: ["MiniMaxAI/MiniMax-M2.5", "MiniMaxAI/MiniMax-M2.7"], note: "Same XML/tag-style tool rendering; model-name boilerplate differs.", }, { id: "qwen-3", label: "Qwen3.5 / Qwen3.6", members: ["Qwen/Qwen3.5-397B-A17B", "Qwen/Qwen3.6-35B-A3B"], note: "Shared XML/tag-style tool rendering in the sampled cases.", }, ]; const modelByName = new Map(data.models.map((model) => [model.model, model])); const groupedNames = new Set(groupDefinitions.flatMap((group) => group.members)); const modelGroups = [ ...data.models .filter((model) => !groupedNames.has(model.model)) .map((model) => ({ id: model.model, label: shortModel(model.model), members: [model.model], note: "", })), ...groupDefinitions, ] .map((group) => ({ ...group, models: group.members.map((name) => modelByName.get(name)).filter(Boolean), })) .filter((group) => group.models.length) .sort((a, b) => a.label.localeCompare(b.label)); const state = { page: location.hash === "#matrix" ? "matrix" : "overview", group: modelGroups[0]?.id, caseId: "minimal_string_required", examplePath: "", dialect: "all", view: "output", }; const featuredCases = [ "minimal_string_required", "nested_arrays_enums", "nullable_anyof_refs", "oneof_allof_constraints", ]; const caseLabels = { minimal_string_required: "Simple required string", nested_arrays_enums: "Nested arrays + enums", nullable_anyof_refs: "Refs + nullable anyOf", oneof_allof_constraints: "oneOf/allOf stress", }; const featureNames = [ "tool_name", "description", "parameters", "properties", "required", "array", "enum", "anyOf", "oneOf", "ref", "default", "additionalProperties", ]; function $(id) { return document.getElementById(id); } function label(value) { return String(value ?? "—").replaceAll("_", " "); } function shortModel(model) { return model.split("/").pop(); } function family(model) { return model.split("/")[0] || model; } function selectedModel() { return selectedGroup().models[0] || data.models[0]; } function selectedGroup() { return modelGroups.find((group) => group.id === state.group) || modelGroups[0]; } function caseInfo(id) { return data.cases.find((item) => item.id === id) || data.cases[0]; } function isGood(status) { return typeof status === "string" && (status.startsWith("present") || status.startsWith("transformed")); } function statusClass(status) { if (status === "not_applicable") return "na"; return isGood(status) ? "good" : "warn"; } function dialectLabel(dialect) { const labels = { typescript: "TypeScript-style declarations", xml: "XML/tag-style instructions", json: "JSON tool block", "custom-channel": "Custom channel syntax", "message-json": "Message functions JSON", builtin: "Builtin tool block", other: "Other", }; return labels[dialect] || label(dialect); } function supportCoverage(model) { if (model.support_variant === "tools_argument") return `${model.standard_supported}/${model.case_count}`; if (model.support_variant === "message_functions_json") return `${model.message_supported}/${model.case_count}`; if (model.support_variant === "special_modes") return `${model.special_supported}/${model.special_total}`; if (model.support_variant?.startsWith("custom_")) return `${model.custom_supported}/${model.case_count}`; return `${Math.max(model.standard_supported, model.custom_supported, model.message_supported)}/${model.case_count}`; } function filteredModels() { return modelGroups.filter((group) => { return state.dialect === "all" || group.models.some((model) => model.dialect === state.dialect); }); } function renderModelList() { $("model-list").innerHTML = filteredModels() .map((group) => { const model = group.models[0]; return ` `; }) .join(""); } function chooseDefaultExample(model) { const current = model.cases[state.caseId]?.[model.support_variant]?.rendered_path; if (current) return current; for (const variant of Object.values(model.cases[state.caseId] || {})) { if (variant.rendered_path) return variant.rendered_path; } if (model.representative_paths?.length) return model.representative_paths[0]; for (const variants of Object.values(model.cases)) { for (const variant of Object.values(variants)) { if (variant.rendered_path) return variant.rendered_path; } } return Object.keys(data.snippets)[0]; } function availableExamples(model) { const paths = []; const variants = model.cases[state.caseId] || {}; if (variants[model.support_variant]?.rendered_path) { paths.push(variants[model.support_variant].rendered_path); } for (const variant of Object.values(variants)) { if (variant.meaningful && variant.rendered_path) paths.push(variant.rendered_path); } return [...new Set(paths)]; } function renderHeader(group) { const model = group.models[0]; $("active-family").textContent = group.models.length > 1 ? family(model.model) : family(model.model); $("active-model").textContent = group.label; $("active-summary").textContent = `${dialectLabel(model.dialect)}. ${group.note || model.support_detail} This view shows one representative rendered prompt; evidence packets for each grouped model are kept below.`; $("active-summary").style.borderLeftColor = `var(--${model.dialect})`; $("active-dialect").textContent = dialectLabel(model.dialect); $("active-path").textContent = model.support_path; $("active-coverage").textContent = group.models.length > 1 ? `${supportCoverage(model)} each` : `${supportCoverage(model)} cases`; } function renderExamples(model) { const paths = availableExamples(model); if (!paths.length) { state.examplePath = ""; $("rendered-output").innerHTML = unsupportedMessage(model); renderViewMode(); return; } if (!paths.includes(state.examplePath)) state.examplePath = paths[0]; renderOutput(model); } function renderCases(model) { $("case-tabs").innerHTML = featuredCases .filter((id) => model.cases[id]) .map((id) => { const supported = hasMeaningfulOutput(model, id); const title = supported ? "Rendered output available" : "Input example only; no meaningful rendered output for this model/path"; return ``; }) .join(""); $("case-description").textContent = caseInfo(state.caseId).description; $("case-title").textContent = caseLabels[state.caseId] || caseInfo(state.caseId).label; renderInputSchema(); } function hasMeaningfulOutput(model, caseId) { const variants = model.cases[caseId] || {}; return Object.values(variants).some((variant) => variant.meaningful && variant.rendered_path); } function renderInputSchema() { const item = caseInfo(state.caseId); $("input-schema").innerHTML = highlightInputJson(JSON.stringify(item.schema.tools, null, 2)); } function renderOutput(model) { if (!state.examplePath) { $("rendered-output").innerHTML = unsupportedMessage(model); return; } const text = data.snippets[state.examplePath] || "No rendered prompt available for this selection."; $("rendered-output").innerHTML = highlightRendered(text, caseInfo(state.caseId)); } function unsupportedMessage(model) { const variant = model.cases[state.caseId]?.[model.support_variant]; const reason = variant?.error ? ` Renderer error: ${escapeHtml(variant.error)}.` : ""; return `No meaningful model-visible output was produced for ${escapeHtml(caseLabels[state.caseId] || caseInfo(state.caseId).label)} using ${escapeHtml(model.support_path)}.${reason} Use Tool Definition to inspect the JSON schema that failed this renderer.`; } function renderViewMode() { const isOutput = state.view === "output"; $("rendered-output").hidden = !isOutput; $("input-schema").hidden = isOutput; for (const button of document.querySelectorAll("[data-view]")) { const active = button.dataset.view === state.view; button.classList.toggle("active", active); button.setAttribute("aria-selected", String(active)); } } function renderPage() { const isOverview = state.page === "overview"; $("overview-panel").hidden = !isOverview; $("matrix-view").hidden = isOverview; $("overview-link").classList.toggle("active", isOverview); if (location.hash !== (isOverview ? "#overview" : "#matrix")) { history.replaceState(null, "", isOverview ? "#overview" : "#matrix"); } } function highlightInputJson(text) { return escapeHtml(text).replace( /("(name|description|parameters|properties|required|type|enum|items|anyOf|oneOf|allOf|\$defs|\$ref|default|additionalProperties|minimum)")/g, '$1', ); } function highlightRendered(text, item) { const boilerplatePattern = /knowledge cutoff|current date|general guidelines|multimodal|you are |system_prompt|reasoning mode|today date|user<|<\|user|accurately answer|be very attentive/i; return highlightRenderedTokens(text, item, boilerplatePattern); } function highlightRenderedTokens(text, item, boilerplatePattern) { let escaped = escapeHtml(text); for (const name of item.tool_names || []) { escaped = escaped.replaceAll(escapeHtml(name), `${escapeHtml(name)}`); } escaped = escaped.replace( /\b(parameters|properties|required|enum|anyOf|oneOf|allOf|additionalProperties|tool_call|AVAILABLE_TOOLS|namespace functions|DSML|tool_declare)\b/g, '$1', ); escaped = escaped .split("\n") .map((line) => (boilerplatePattern.test(line) ? `${line}` : line)) .join("\n"); return escaped; } function currentVariant(model) { const variants = model.cases[state.caseId] || {}; return variants[model.support_variant] || Object.values(variants).find((variant) => variant.meaningful) || Object.values(variants)[0]; } function renderFeatures(model) { const variant = currentVariant(model); if (!variant) { $("feature-list").innerHTML = `
No feature packet for this case.
`; return; } $("feature-list").innerHTML = featureNames .map((name) => { const status = variant.features?.[name] || "not_applicable"; return `No special/builtin probes or highlighted special-tool notes in this evidence set.
`; return; } const modeHtml = modes .map((mode) => ` `) .join(""); const notesHtml = notes .map((note) => `No findings JSON packet found for this model.
${escapeHtml(claim.claim)}
$1");
const flushParagraph = () => {
if (!paragraph.length) return;
parts.push(`${inline(paragraph.join(" "))}
`); paragraph = []; }; const flushList = () => { if (!list.length) return; parts.push(`${inline(date[1])}
`); continue; } const bullet = line.match(/^-\s+(.+)$/); if (bullet) { flushParagraph(); list.push(bullet[1]); continue; } flushList(); paragraph.push(line); } flushParagraph(); flushList(); const html = parts.join(""); $("exec-summary").innerHTML = `Executive summary
${html}`; } renderMarkdownSummary(); bindEvents(); renderAll();