{{/* The "Workspace files" sidebar panel: an upload form plus a listing of every file currently in the agent's ENKLY_WORKSPACE, each linking to GET /files/download/{path...}. Rendered three ways, all with the same data shape (WorkspaceFiles, ConversationID, CSRFToken, UploadMessage, UploadError — see indexData in pages.go and filesPanelData in files.go): 1. Inline, as part of the full "index" page on first load. 2. Standalone, by GET /files — a manual "refresh the list" htmx fragment (e.g. after the agent's own write_file tool created a new file mid-conversation). 3. Standalone, by POST /files/upload — after saving what was submitted, with UploadMessage/UploadError set. Cases 2 and 3 both target and swap this element with hx-swap="outerHTML", so the response IS the whole panel, including its own wrapping