user message’s content can be an array of content parts, so a single request can mix text and files. There are six Input Types — Text, Image, Audio, Video, Document, and Archive — and the Guardian inspects each part whose Input Type is enabled.
Content part types
type | Input Type | Encoding |
|---|---|---|
text | Text | plain string in text |
image_url | Image | image_url.url as a data: URI (PNG, JPG, WebP, GIF, BMP, TIFF, AVIF, HEIC) |
input_audio | Audio | input_audio.data (base64) + input_audio.format (wav, mp3) |
file | Document / Archive | file.file_data as a data: URI + file.filename (PDF, DOCX, XLSX, PPTX, TXT, CSV, …, ZIP) |
video_url | Video | video_url.url as a data: URI (MP4) — a Starfort extension |
type: "file"; Starfort routes them to the right Input Type by the file’s actual MIME / magic-byte type, not by the type field. Encode data: URI payloads with standard base64 (+, /, =) — URL-safe base64 (-, _) is not supported.
Rules
- A part is only inspected if its Input Type is enabled on the Guardian. Otherwise the request is rejected, or the part is skipped, depending on the Guardian’s unsupported-file handling (below).
- In the response, each part is reported as its own
input_results[]entry with atypeoftext/image/audio/video/document/archive, and file parts carry anidentifier(filename).
Unsupported files
When a file part’s category or extension isn’t enabled on the Guardian, the Guardian’s Unsupported File Handling setting decides what happens:- BLOCK (default) — a single unsupported file blocks the whole request during pre-validation. The supported parts (text, allowed files) aren’t inspected either.
- PASS — only the unsupported file part is skipped (passed through without Guardian analysis); the rest of the request is inspected normally. If every input is unsupported, the request passes with no Guardian call. Skipped files are recorded in the trace (
skippedUnsupportedFilesmetadata + anunsupported_file:skippedtag).
A disguised file is always blocked. Even under PASS, a file whose extension is allowed but whose real content (magic bytes) doesn’t match its declared type is blocked — the check is on actual content, not the file name.
Enable the Input Types you intend to send when you register the Guardian. The default
VLM-OCR preset supports text plus a broad set of image, document, and archive formats.