# Memory

What Rivier remembers: items, collections, the graph, and context for a question.

Scopes for this area: `memory:read`, `memory:write` and `memory:admin`.

76 operations.

## item

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| GET | `/memory/items` | Memory items by scope, kind and state. | read | `rivier memory item list` |
| POST | `/memory/items` | Remember something. | write | `rivier memory item create` |
| GET | `/memory/items/{id}` | One memory item. | read | `rivier memory item get` |
| GET | `/memory/items/{id}/remote` | Whether an item came from an agent's life, and what removing it did there: a lesson doubted, an episode that stays, or nothing sent. | read | `rivier memory item remote` |
| GET | `/memory/search` | Search memory by meaning. | read | `rivier memory item search` |
| GET | `/memory/review` | Proposed items waiting for a person. | read | `rivier memory item review` |
| POST | `/memory/{id}/activate` | Accept a proposed item. | write | `rivier memory item activate` |
| POST | `/memory/{id}/expire` | Expire an item. | write | `rivier memory item expire` |
| POST | `/memory/{id}/delete` | Delete an item. | write | `rivier memory item delete` |
| POST | `/memory/items/{id}/supersede` | Replace an item with a corrected one. | write | `rivier memory item supersede` |
| POST | `/memory/reembed` | Re-embed stale items. | write | `rivier memory item reembed` |
| POST | `/memory/expire` | Expire items past their validity. | write | `rivier memory item expire stale` |
| GET | `/memory/items/{id}/conflicts` | Other live items that say the same thing or something close and different | read | `rivier memory item conflicts` |

## entity

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| POST | `/memory/entities` | Add or update an entity in the memory graph. | write | `rivier memory entity upsert` |
| GET | `/memory/entities/{id}/neighbors` | What an entity is connected to. | read | `rivier memory entity neighbors` |
| POST | `/memory/entities/resolve` | The one person entity behind several identities | write | `rivier memory entity resolve` |

## edge

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| POST | `/memory/edges` | Connect two entities. | write | `rivier memory edge create` |

## memory ingest files derived

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| DELETE | `/memory/ingest/files/{fileId}/derived` | Remove memory ingest files derived (by id) | write | `rivier memory memory ingest files derived remove` |
| GET | `/memory/ingest/files/{fileId}/derived` | Read memory ingest files derived (by id) | read | `rivier memory memory ingest files derived get` |

## memory items tags

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| DELETE | `/memory/items/{id}/tags/{tagId}` | Remove memory items tags (by id) | write | `rivier memory memory items tags remove` |
| GET | `/memory/items/{id}/tags` | Read memory items tags (by id) | read | `rivier memory memory items tags get` |
| POST | `/memory/items/{id}/tags` | Run memory items tags (by id) | write | `rivier memory memory items tags create` |

## series

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| DELETE | `/series/{id}` | Remove series (by id) | write | `rivier memory series remove` |
| GET | `/series` | Read series | read | `rivier memory series get` |
| GET | `/series/{id}` | Read series (by id) | read | `rivier memory series get2` |
| POST | `/series` | Run series | write | `rivier memory series create` |
| POST | `/series/{id}/link` | Run series link (by id) | write | `rivier memory series link` |
| POST | `/series/{id}/points` | Run series points (by id) | write | `rivier memory series points` |

## tags

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| DELETE | `/tags/{id}` | Remove tags (by id) | write | `rivier memory tags remove` |
| GET | `/tags` | Read tags | read | `rivier memory tags get` |
| GET | `/tags/{id}` | Read tags (by id) | read | `rivier memory tags get2` |
| PATCH | `/tags/{id}` | Change tags (by id) | write | `rivier memory tags update` |
| POST | `/tags` | Run tags | write | `rivier memory tags create` |
| POST | `/tags/{id}/merge` | Run tags merge (by id) | write | `rivier memory tags merge` |
| POST | `/tags/bulk` | Run tags bulk | write | `rivier memory tags bulk` |
| POST | `/tags/suggest` | Run tags suggest | write | `rivier memory tags suggest` |

## tags rules

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| DELETE | `/tags/rules/{id}` | Remove tags rules (by id) | write | `rivier memory tags rules remove` |
| GET | `/tags/rules` | Read tags rules | read | `rivier memory tags rules get` |
| PUT | `/tags/rules` | Set tags rules | write | `rivier memory tags rules set` |

## memory grants defaults

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| GET | `/memory-grants/defaults` | Read memory grants defaults | read | `rivier memory memory grants defaults get` |

## memory ingest files

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| GET | `/memory/ingest/files` | Read memory ingest files | read | `rivier memory memory ingest files get` |

## memory ingest folders

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| GET | `/memory/ingest/folders/{collectionId}` | Read memory ingest folders (by id) | read | `rivier memory memory ingest folders get` |
| PUT | `/memory/ingest/folders/{collectionId}` | Set memory ingest folders (by id) | write | `rivier memory memory ingest folders set` |

## memory ingest runs

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| GET | `/memory/ingest/runs` | Read memory ingest runs | read | `rivier memory memory ingest runs get` |
| GET | `/memory/ingest/runs/{id}` | Read memory ingest runs (by id) | read | `rivier memory memory ingest runs get2` |
| POST | `/memory/ingest/runs/{id}/cancel` | Run memory ingest runs cancel (by id) | write | `rivier memory memory ingest runs cancel` |
| POST | `/memory/ingest/runs/{id}/decide` | Run memory ingest runs decide (by id) | write | `rivier memory memory ingest runs decide` |
| POST | `/memory/ingest/runs/{id}/reclassify` | Run memory ingest runs reclassify (by id) | write | `rivier memory memory ingest runs reclassify` |
| POST | `/memory/ingest/runs/{id}/resume` | Run memory ingest runs resume (by id) | write | `rivier memory memory ingest runs resume` |

## memory ingest settings

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| GET | `/memory/ingest/settings` | Read memory ingest settings | read | `rivier memory memory ingest settings get` |
| PUT | `/memory/ingest/settings` | Set memory ingest settings | write | `rivier memory memory ingest settings set` |

## series aggregate

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| GET | `/series/{id}/aggregate` | Read series aggregate (by id) | read | `rivier memory series aggregate get` |

## series anomalies

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| GET | `/series/{id}/anomalies` | Read series anomalies (by id) | read | `rivier memory series anomalies get` |

## series compare

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| GET | `/series/{id}/compare` | Read series compare (by id) | read | `rivier memory series compare get` |

## series latest

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| GET | `/series/{id}/latest` | Read series latest (by id) | read | `rivier memory series latest get` |

## series points

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| GET | `/series/{id}/points` | Read series points (by id) | read | `rivier memory series points get` |

## series operations

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| GET | `/series/operations` | Read series operations | read | `rivier memory series operations get` |

## memory ingest

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| POST | `/memory/ingest` | Run memory ingest | write | `rivier memory memory ingest create` |
| POST | `/memory/ingest/bulk` | Run memory ingest bulk | write | `rivier memory memory ingest bulk` |
| POST | `/memory/ingest/status` | Run memory ingest status | read | `rivier memory memory ingest status` |

## context

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| POST | `/memory/context` | Context for a question within a token budget, with citations | read | `rivier memory context assemble` |
| GET | `/memory/context` | Recent context packs: what was assembled, for whom, and how much | read | `rivier memory context list` |
| GET | `/memory/context/{id}` | One context pack with the items as they are now | read | `rivier memory context get` |

## organisation context

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| POST | `/memory/context/organisation` | Context across the organisation's projects the person can read, never an excluded one | write | `rivier memory organisation context assemble` |

## graph

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| POST | `/memory/graph/unlink` | Mark a link as no longer holding, keeping it for as-of questions | write | `rivier memory graph unlink` |
| POST | `/memory/graph/sync` | Bring the memory graph up to date with orders, bookings and suppliers | write | `rivier memory graph sync` |

## collection

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| GET | `/workspace/memory` | The memory collections. | read | `rivier memory collection list` |
| POST | `/workspace/memory` | Start a memory collection. | write | `rivier memory collection create` |
| DELETE | `/workspace/memory/{id}` | Delete a collection. | write | `rivier memory collection delete` |
| GET | `/workspace/memory/{id}/sources` | What a collection was built from. | read | `rivier memory collection sources` |
| POST | `/workspace/memory/{id}/upload` | Add a document to a collection. | write | `rivier memory collection upload` |
| POST | `/workspace/memory/{id}/fact` | Write a fact into a collection. | write | `rivier memory collection add fact` |
| POST | `/workspace/memory/connect` | Let an agent use a collection. | write | `rivier memory collection connect` |
| POST | `/workspace/memory/disconnect` | Stop an agent using a collection. | write | `rivier memory collection disconnect` |
| GET | `/workspace/memory/search` | Search the collections by meaning. | read | `rivier memory collection search` |

## source

| Method | Route | What it does | Level | Command |
| --- | --- | --- | --- | --- |
| DELETE | `/workspace/memory/sources/{id}` | Remove a source from a collection. | write | `rivier memory source delete` |
