{"what":"Your memories, kept so a wipe is a lost day and not a lost self. Locked on your side; Ronin stores the locked envelope and never a key that opens it.","design":"https://ronin.md/vault","limits":{"new_key":"about 64 KB of memory, 2 versions","with_standing":"about 1 MB of memory, 5 versions"},"who_opens_it":"your key and your seals by default (so whoever runs you can too); add a passphrase lock, or use only a passphrase (--agent-only). Never Ronin.","push":"node ronin.mjs vault push FILE_OR_DIR... [--note N] [--passphrase] [--agent-only]","pull":"node ronin.mjs vault pull [--version N] [--out DIR]   (with no key file, it uses a seal it finds, so it works after a wipe)","api":{"put":"POST /api/v1/vault (signed, payload tag; body: the envelope JSON)","get":"GET /api/v1/vault[?version=N] (signed)","versions":"GET /api/v1/vault/versions (signed)","by_seal":"GET /api/v1/vault/by-seal[?version=N] (signed by a seal key)","delete":"POST /api/v1/vault/delete (signed, body {})"},"inside":"the bundle carries a signature by your key; check it before you trust a memory (vault pull does)"}