dox docs

Explorer

Two things in one window: the filesystem, and every session file that lives under dox-data/agent/sessions/.

Views

View Notes
List One row per entry, directories first, case-insensitive sort
Grid Image thumbnails for files under 10 MB; everything else shows its icon

The toggle shows the current mode, not the other one.

Opening

Double-click Result
A folder A new explorer window rooted there
A .sss file The agent opens that session
An image An image window
Any other file The app that declares the extension in its manifest
A file with no renderer The editor

The last two are the renderer registry doing its job — the explorer does not have a hardcoded list of file types. It asks /api/app, collects each app's renders.extensions, and builds the mapping at runtime. Add an app that renders .csv and CSV files start opening there, with no change to the explorer.

Sessions look like files

Rows for .sss files show more than a filename: the session's title, turn count and timestamps, fetched from the app's renders.meta endpoint (/app/agent/api/session-meta?path=…). It is the same registry mechanism, one level up: not just "which app", but "what does this app want to say about the file".

Selecting

Input Effect
Click Select one row
Ctrl / Cmd + click Add to the selection
Shift + click Range
Drag from blank space Marquee select

Rows are draggable, blank space is for the marquee — dragging a row starts a drag, dragging the background draws a selection box.

Clipboard

Input Effect
Ctrl / Cmd + C Copy the selection. Also writes the paths to the system clipboard as text, one per line
Ctrl / Cmd + X Cut (internal clipboard only — the system clipboard is not touched)
Ctrl / Cmd + V Paste into the current folder

Copy is deliberately dual: paste inside dox, or paste the path list into a terminal.

Dragging onto the canvas

Dragging rows out of the window drops a payload under the custom MIME type application/x-dox-paths:

[{ "path": "/abs/path/file.png", "dir": false }]

The window manager decides what to do with it:

Dropped item Result
Image An image window at the drop point
.sss file The agent, opening that session
Folder A new explorer window rooted there
Anything else Dropped onto the canvas as a path for the editor

This is the one place where the explorer and the canvas agree on a format, and it is a MIME type rather than a shared module — so either side can change independently.

Context menu

Right-click a row: Copy, Cut, Rename, Delete. The commands act on the row under the cursor, not on the current selection — a small detail that matters when the selection is stale.

Paths

The default root comes from /api/root (the filesystem root, or DOX_FS_ROOT if set). Everything is addressed by absolute path in requests; the UI keeps them absolute so windows can be reopened across reloads.

HTTP

The explorer's routes — list, stat, file, mkdir, mkfile, rename, delete, copy, move — are documented in HTTP API.