/** * socialCard.js — local, server-side "concept card" renderer (tier ①: API-only, * fully local — nothing leaves the box; no browser, no external service). * * WHAT IT IS * ────────── * A hand-written single-tool skill (same shape as chartRender.js / kvMemory.js: * `serverName`, `allowedTools`, `tools[]`, `handleToolCall`, and a `resolve()` * that spawns the GENERIC bin/mcp-skill.mjs). One tool — `social_card_render` — * takes STRUCTURED, agent-supplied fields (headline, eyebrow, subhead, stat, * footer, diagram, theme, accent) and renders a branded LinkedIn "concept card" * PNG in the Darren-Bounds style (bold headline + small uppercase eyebrow + * optional stat/footer + optional A—✓—B diagram). * * RENDER PIPELINE * ─────────────── * A HAND-AUTHORED SVG string (NOT ECharts) → rasterized to PNG via * @resvg/resvg-js, EXACTLY like chartRender's renderPng() helper. No echarts * dependency — the composition is laid out here in plain SVG. * * FONTS — the agent container may ship NO fonts, and resvg renders EMPTY text * without one. We reuse the bundled Noto Sans Regular + Bold faces (the same * assets/fonts chartRender bundles) and set 'Noto Sans' as the default family. * `loadSystemFonts:true` stays on so a host WITH fonts can still satisfy exotic * glyphs (e.g. a ★ in a caller's stat) the bundled faces may lack. The one * glyph WE draw (the diagram checkmark) is a vector , never a font glyph, * so it renders regardless of available fonts. * * OUTPUT FILES — same convention as chartRender: the PNG lands under the run's * session output dir (ZIBBY_NODE_SESSION_PATH / ZIBBY_SESSION_PATH) so the CLI * session-uploader auto-attaches it; local dev falls back to * /.zibby/output/social-cards. The returned `path` can be passed to a * LinkedIn post's `imagePath`. */ export declare const socialCardSkill: any;