Skip to main content
Agents may extract “peer cards” — per-user notes about the people they collaborate with. These endpoints give every authenticated user GDPR control over the cards stored about themselves: list what’s held, purge it, and manage opt-out consent. Every endpoint acts on the caller’s own data only — the user ID is read from the auth context, never a path parameter. They require authentication and workspace context. Cross-user GDPR actions (admin acting on another user) go through a separate admin surface. Opt-out is a hard stop: setting opted_out=true triggers an immediate purge of every existing card about the user across every agent in the current workspace, and of their operator model — it does not wait for the next routine sweep. The operator model is a separate surface with its own endpoints below: one short profile per (user, workspace) holding the role, ownership and standing constraints that person has stated. It records only what they said, never what the system inferred. The endpoints let a person read it and drop a single wrong entry without turning the whole feature off.

List My Peer Cards

Lists every peer card mentioning the requesting user across every agent in the current workspace, including content (the user has a right to see what was stored). Each read is itself audited. Auth: Any authenticated user (own data only) Response: 200 OK

Peer Card Fields


Purge My Peer Cards

Deletes every card about the requesting user across every agent in the workspace (disk + index + per-card audit). Does not touch consent — a user can delete current cards without opting out of future extraction. Auth: Any authenticated user (own data only) Response: 200 OK

Returns the user’s opt-out state for the current workspace. Auth: Any authenticated user (own data only) Response: 200 OK

Flips the opt-out state. Setting opted_out=true triggers an immediate purge of all existing peer cards about the user in this workspace, alongside the consent change and an audit row. Auth: Any authenticated user (own data only) Request Body:
Response: 200 OK
purged reflects the number of peer cards removed by the opt-out and purged_models the operator model (0 or 1). Both are 0 when opting back in.

Get My Operator Model

Returns the operator model stored about the requesting user in this workspace: the raw file plus each - key: value bullet split into a field, and for each field where it came from. A read is recorded in the peer-card audit log with action='read'. Auth: Any authenticated user (own data only) Response: 200 OK
exists: false with an empty facts array means nothing has been recorded about this person in this workspace yet. content and facts are omitted when the server has no memory storage path configured. provenance is where the fact came from: quote is the verbatim span of the person’s own words the extraction verified it against, message_id the id of the message it was found in, source_type the origin the extraction profile admitted (stated under every shipped profile), and at when it was recorded (ISO 8601, UTC, milliseconds). Provenance is stored beside the model file, never inside it, and every sync appends: a field changed or restated in a later message gets a new row and the response shows the newest (the same sentence re-found by the next day’s sweep is not recorded twice). A fact recorded before provenance was kept has no provenance key at all — never null, never an empty object.

Forget One Field

Removes a single field from the operator model and leaves the rest standing — the answer to “an agent recorded something wrong about me” that does not cost the person everything it recorded correctly. {key} is a field name from the facts array above; matching is case-insensitive. The field’s provenance rows go with it — every one, not only the newest. Removing the last remaining field removes the model entirely (an empty model is not a model), which the response reports as exists: false. Auth: Any authenticated user (own data only) Response: 200 OK

Purge My Operator Model

Forgets the whole operator model and every provenance row behind it. Does not opt the caller out: new facts may be recorded again from things they state later. Use PUT /users/me/peer-consent with opted_out: true to stop recording altogether — that purges the model and its provenance too. Auth: Any authenticated user (own data only) Response: 200 OK