inputSchema with "format": "engini/file" (a list of files is an array with that format). The SDK’s File helper handles encoding.
Direct execution
File.from_path(path) (mime type inferred), File.from_bytes(data, filename=...), File.from_base64(b64, filename=...) - camelCase equivalents in TS. In TypeScript, File shadows the global DOM/Node File inside your import scope.
Files in an LLM loop
Models can’t emit binary content, so the SDK rewrites file fields into string reference keys: you register files under names, the model picks a name, andhandle_tool_calls resolves it.
EnginiValidationError.
From the CLI
--file field=@path with the same field name to build a list.