sync_read
Read-only vault sync operations. action: list | pull | diff | merge | conflicts. Writes (push/delete) are separate tools — they carry CAS semantics. (consolidated surface — same handlers as the legacy tools) Required per action — diff: path | merge: path, base_text, local_text.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | [list] Directory to list (e.g., 'global'). Omit to list from the first page. [pull] Optional directory filter (e.g., 'global' to pull only global files) [diff] Relative vault path. [merge] Relative vault path (e.g., 'global/MEMORY.md'). [conflicts] Optional: filter to a specific path. | |
| limit | No | [list] Max entries per page. Default 200, max 1000. [pull] Max files per page. Default 25, max 100. [conflicts] Optional: max rows to return (default 50, max 200). | |
| since | No | [pull] ISO 8601 timestamp. Only return files updated after this time. Omit to start from the first page. | |
| action | Yes | which operation to run | |
| cursor | No | [list] Pass `next_cursor` from the previous response to fetch the next page. [pull] Pass `next_cursor` from the previous response to fetch the next page. | |
| base_sha | No | [merge] Optional: git_sha the client believes is the merge base. When supplied, server verifies (informational; merge still runs). | |
| base_text | No | [diff] Optional: client's baseline (last-known remote). When supplied along with local_text, response includes both diffs (base → remote, base → local) so the client can render a 3-way view. [merge] Common ancestor text — what the client had cached when it started editing. Source: client state.json baseline. Required. | |
| device_id | No | [merge] Optional: client device identifier. Recorded on any vault_conflict row created downstream. | |
| local_text | No | [diff] Optional: client's current text. When supplied, response includes unified diff (remote → local). [merge] Current local text on the client (post-edit). Required. |