Envelope returned by the create, update and delete memory routes.
/search and /list do not use this model — they declare
response_model=list[dict] and return the service's rows directly.
message is the only field the memory Lambda has always returned. The
remaining fields exist on some responses and are surfaced here because
response_model filtering would otherwise discard them before any caller
sees them.
result carries the memory-store payload for a create, including the id
of the record that was written. Without it a client has to re-list and match
on its own metadata to discover the id of the record it just created.
extracted reports whether the Lambda's extraction step produced a
structured memory. It is not a stored/not-stored signal. Two responses
carry extracted=False:
- the extractor declined the content — no result, nothing was stored;
- the extractor errored and the Lambda fell back to storing the raw
messages — result is present and the content was stored.
Callers deciding whether a record exists must therefore test result,
not extracted.
Every added field is optional: update and delete responses carry none of
them, and a declined create carries extracted without result.