Upload one image (reserve → presigned PUT → complete) and return an `asset://<key>` reference to embed as ``. Provide the image as **either** `data_base64` (inline base64) **or** `file_path` (a local file the server reads) — exactly one; with `file_path`, `filename` defaults to…
Append to an existing file with optimistic concurrency (GET current → concat → conditional PUT with `base_version_no`). Auto-retries once on conflict, then surfaces `CONFLICT`. Accepts `commit_message` — a recommended 1-2 line change summary shown in the version history.
Replace a file's content. Pass `expected_version` for optimistic concurrency (mismatch → `CONFLICT`); omit it to force LWW. Accepts `commit_message` — a recommended 1-2 line change summary shown in the version history.
Read a file's content by path (materializes inline content or a presigned content URL for large docs). Pass `version` (a `version_no` from `list_versions`) to read an old immutable version.
List a file's immutable version history, newest first (`version_no`, `commit_message`, author, `registered_at`, size).
Soft-delete a file. Requires `confirm:true` (otherwise `VALIDATION`); resolves the path to a document key first.
mkdir -p` — create every missing segment; already-existing folders count as success.
Return the full folder tree.
List the documents and immediate subfolders inside a folder path.
Search by TITLE (substring) + BODY full-text (current versions; whole-word match, ranked, body hits include a snippet).
Move and/or rename a `.md` by path (`from_path` → `to_path`); destination folders auto-created; the document KEEPS its key, so version history and reviewers' annotations survive.
Move a folder (whole subtree) under a new parent (`new_parent_path` empty/omitted = root); parent auto-created; cyclic moves rejected server-side.
+2 more tools listed on main page