{"description":"Discover Glyphfield labs, shaders, identities, generation contracts, and the programmatic Studio browser API from one agent-readable interface.","execution":{"completion":["Re-read source or controls after every mutation and confirm the requested state.","For a rendered artifact, verify that the returned Blob is non-empty and its MIME type and file name match the requested format.","For visual work, inspect the authentic rendered canvas; for motion, inspect more than the first frame and verify the requested loop behavior.","Report browser capability failures explicitly. Never claim an export completed from a successful request alone."],"discoveryOrder":["/api/agent","/api/labs","/api/materials or another task-specific catalog","/api/generate for the current schema","/docs/agents/choose-interface.md for interface selection"],"mutation":["Read the current source document before editing an open Studio artifact.","Preserve unknown document fields and make the smallest targeted change.","Apply through the active tool validator; do not mutate React state or storage directly.","Do not run browser exports concurrently because they share renderer and encoder resources."],"never":["Do not invent catalog IDs, accessible labels, source fields, or enum values.","Do not put filesystem paths into browser file inputs; construct an authorized File object.","Do not silently replace MP4 with GIF or a live shader with a static approximation.","Do not retry an unchanged validation failure."]},"generation":{"endpoint":"/api/generate","examples":{"background":{"identity":{"preset":"gt"},"kind":"background","output":"json","settings":{"colorA":"#FFFFFF","colorB":"#181818","colorC":"#737373","height":630,"pattern":"dots","patternOpacity":12,"surfaceDepth":68,"surfaceMaterial":"woven-wire","surfaceMetallic":90,"surfaceOpenArea":62,"surfaceRoughness":24,"surfaceScale":38,"logoOpacity":100,"logoX":0,"logoY":0,"style":"grain-gradient","width":1200}},"brief":{"elementId":"email-signature","identity":{"name":"Acme","preset":"custom","tagline":"Tools for careful teams.","website":"acme.test"},"kind":"element-brief"},"designSequence":{"backgroundColor":"#111216","effect":{"background":"#111216","foreground":"#F5F5F2","kind":"bayer","opacity":0.76},"export":{"fps":30,"quality":"best","width":1920},"identity":{"preset":"gt"},"includeBrandMark":true,"kind":"design-sequence","ratio":"wide","sequence":{"cutCount":10,"finalHoldMs":5000,"pace":"accelerating"},"shader":{"materialId":"paper-gem-smoke","shaderSize":1},"texts":[{"value":"Open Source","weight":500}]},"slide":{"body":"Foundation\nExpression\nApplication\nDelivery","identity":{"preset":"gt"},"kind":"template","output":"raw","slideLayout":"agenda","template":"slides","texture":"white","title":"Code is the source of truth."}},"identity":{"fields":{"description":"Optional string, maximum 320 characters","ink":"Optional six-digit HEX color","logoDataUrl":"Optional base64 image data URL, maximum 5 MB","name":"Optional string, maximum 80 characters","paper":"Optional six-digit HEX color","positioning":"Optional string, maximum 320 characters","preset":"starter | template | gt | ramp | mintlify | tailwind | viteplus | cloudflare | stripe | custom","shortName":"Optional string, maximum 8 characters","tagline":"Optional string, maximum 180 characters","website":"Optional string, maximum 200 characters"}},"kinds":{"background":{"description":"Generate a standalone SVG gradient, grain, dither, pattern, or tactile physical surface.","fields":{"identity":"Agent identity object","kind":"background","output":"json | raw; defaults to json","settings":{"angle":"-360–360","bandCount":"3–24 integer","bandDepth":"0–100","bandGap":"0–64","colorA":"Six-digit HEX","colorB":"Six-digit HEX","colorC":"Six-digit HEX","ditherMatrix":"2 | 4 | 8","ditherShape":"dots | squares","focalX":"0–100","focalY":"0–100","gradient":"linear | radial | mesh | orbit | wave | bloom","grain":"0–100","height":"64–4096 integer; total pixels may not exceed 12,000,000","logoScale":"5–90","logoOpacity":"0–100","logoX":"-50–50","logoY":"-50–50","logoTone":"black | white","lightingEnabled":"Boolean; use false for flat bands without gradient lighting","pattern":"none | dots | lines | grid | fibers | speckles | topographic | crosshatch","patternOpacity":"0–100","relief":"0–80","spacing":"8–256 integer","style":"gradient | grain-gradient | dither | pattern","surfaceAngle":"0–180","surfaceDepth":"0–100 height/relief response","surfaceMaterial":"none | kerf-wood | woven-wire | perforated-metal | carved-stone | embossed-paper | brushed-metal | hammered-foil | corrugated-polymer | cork-composite | frosted-glass","surfaceMetallic":"0–100 specular response","surfaceOpenArea":"0–92 porosity or opening ratio","surfaceRoughness":"0–100 highlight spread","surfaceScale":"12–140 physical pattern scale","width":"64–4096 integer; total pixels may not exceed 12,000,000"}},"mimeTypes":["application/json","image/svg+xml"]},"design-sequence":{"description":"Create an apply-ready Design Lab compatibility document for a fixed composition. Design Lab validates and normalizes it to the current CanvasDocument before authentic browser-native PNG, JPG, GIF, and MP4 export.","fields":{"backgroundColor":"Optional six-digit HEX; defaults to #111216","effect":"Optional bayer | ascii | halftone | posterize converter with opacity and converter settings","export":"width 320–3840; fps 12 | 15 | 24 | 30; quality fast | balanced | best; durationMs 1200–4000; gifLoop raw | seamless","identity":"Agent identity object","includeBrandMark":"Boolean; defaults to true","kind":"design-sequence","ratio":"wide | square | opengraph","sequence":"cutCount 8–12; finalHoldMs 3000–6000; pace accelerating | even","shader":"materialId from /api/materials; blendMode; opacity; shaderSize 0.1–10; shared settings","texts":"Optional array of up to 32 positioned text layers"},"mimeTypes":["application/json"],"programmaticExport":"Open /studio, apply response.document (version 3 compatibility source), re-read the normalized CanvasDocument schema 2 / Design Lab source 4, then invoke design.export with format png | jpg | gif | mp4, optional mode shader-sequence, and optional download true."},"element-brief":{"description":"Resolve one /api/elements record against a preset or custom identity.","fields":{"elementId":"Required ID from /api/elements","identity":"Agent identity object","kind":"element-brief"},"mimeTypes":["application/json"]},"template":{"description":"Generate a standalone slide, blog cover, or partnership SVG.","fields":{"background":"Optional six-digit HEX","backgroundImageDataUrl":"Optional base64 image data URL, maximum 5 MB","body":"Optional string, maximum 1000 characters; newline-delimited for lists","foreground":"Optional six-digit HEX","identity":"Agent identity object","kind":"template","output":"json | raw; defaults to json","partnerId":"Optional public proof asset ID from /api/identities","partnerLogoDataUrl":"Optional base64 image data URL, maximum 5 MB","slideLayout":"title | section | agenda | split | metrics | quote | timeline | statement | comparison | process | chart | team | image | closing","template":"slides | blog | partnership","texture":"white | dark | grid | noise","title":"Optional string, maximum 240 characters"},"mimeTypes":["application/json","image/svg+xml"]}},"method":"POST","requestContentType":"application/json","unknownTopLevelFields":"Rejected with HTTP 400 and error code unknown_field","schemaVersion":2},"interfaces":{"browser":{"bestFor":["Canvas","WebGL","local files","local fonts","visual placement","PNG","JPG","GIF","MP4","Lottie"],"contract":"/docs/reference/browser-api.md","global":"window.glyphfield.studio","workspace":"/studio"},"docs":{"complete":"/llms-full.txt","concise":"/llms.txt","markdownPattern":"/docs/:path.md","search":"/api/search"},"http":{"bestFor":["discovery","deterministic SVG","identity data","element briefs","Design Lab source generation"],"contract":"/openapi.json","generation":"/api/generate"}},"name":"Glyphfield Agent API","policies":{"assets":"Use only assets you are authorized to process. Remote URL fetching is not supported.","data":"Generation requests are processed in memory and are not persisted by Glyphfield.","license":"Glyphfield source is licensed under MIT; see /LICENSE and /llms.txt. Bundled third-party marks remain separately owned."},"resources":{"catalog":"/api/catalog","docs":"/docs","fullInstructions":"/llms-full.txt","elements":"/api/elements","generate":"/api/generate","identities":"/api/identities","instructions":"/llms.txt","markdownDocs":"/docs/:path.md","integrationGuide":"/docs/agents/connect","labs":"/api/labs","materials":"/api/materials","openapi":"/openapi.json","search":"/api/search","skillGuide":"/docs/skills.md","surfaceTextures":"/api/surface-textures/:assetId/:map","workspace":"/studio"},"schemaVersion":2,"skills":{"guide":"/docs/skills.md","packages":[{"id":"glyphfield-create","repositoryPath":"skills/glyphfield-create","useFor":"Layered Design Lab composition, shaders, authored layers, and saved designs"},{"id":"glyphfield-api","repositoryPath":"skills/glyphfield-api","useFor":"Deterministic HTTP discovery, generation, and batch workflows"},{"id":"glyphfield-studio","repositoryPath":"skills/glyphfield-studio","useFor":"Authentic browser Studio operation, source round trips, and local files"},{"id":"glyphfield-export","repositoryPath":"skills/glyphfield-export","useFor":"Still and motion export with artifact, loop, frame, and audio verification"}],"repositoryDirectory":"skills"},"studioBrowserApi":{"event":"glyphfield:studio-api-ready","global":"window.glyphfield.studio","operations":{"activate":"Activate any visible control by its accessible label","activeTool":"Return the active Studio tool ID","applySource":"Apply a JSON object or string through the active tool validator","controls":"List visible interactive controls and current values","describe":"List exact actions and source support for the active tool","download":"Save a generated Blob artifact with its deterministic file name","invoke":"Invoke source, control, export, or tool-specific actions","readSource":"Read the exact current source document","set":"Set a visible form control by accessible label"},"standardActions":["source.read","source.apply","controls.list","control.activate","control.set","artifact.download"],"version":1},"version":"0.2.0"}