Generated Assets
When the AI generates non-text output during a conversation (like an image or a data file), GhostMind captures it as a generated asset. Assets are stored securely and are downloadable from the conversation.
Asset Types
| Type | Examples |
|---|---|
| Image | Diagrams, charts, generated images |
| Sandbox file | Code output, data files from code execution |
| External link | Referenced URLs (recorded but not stored) |
Asset Lifecycle
discovered → downloading → validating → uploading → ready ↘ failed- Discovered — GhostMind detects an asset reference in the AI response
- Downloading — The asset is downloaded from the provider
- Validating — File type and size are validated (magic bytes, MIME allowlist)
- Uploading — The asset is stored securely
- Ready — The asset is available for download
Downloading Assets
- Open the conversation in the Chat playground
- Generated assets appear in the conversation flow
- Click the download button to save the file
Assets can also be downloaded via the API:
curl https://ghostmind.optdmsa.com/v1/conversations/{id}/assets/{asset_id}/download \ -H "Authorization: Bearer sk-gm-..."Security
- Assets are tenant-isolated — cross-tenant access returns 404
- Download URLs are private — they are not permanent public links
- Path traversal prevention is enforced
- Only assets with
is_downloadable: truecan be downloaded
Attachments vs Generated Assets
| Feature | Attachments | Generated Assets |
|---|---|---|
| Source | Uploaded by user | Generated by AI |
| Direction | User → AI | AI → User |
| Storage | Processed for retrieval | Stored as private files |
Next Steps
- Attachments — Files you upload to conversations
- Speech Generation — Audio generation produces assets
- Assets API — API reference for asset endpoints