Mnueron periodically detects duplicate-looking and contradictory memories and proposes merges. The detection pass writes proposals to a queue; a reviewer (or the agent itself) approves or rejects each one.
GET /api/consolidate
List proposals.
curl "https://www.mnueron.com/api/consolidate?status=pending&kind=duplicate&limit=50" \
-H "Authorization: Bearer $MNUERON_API_TOKEN"
| Query | Default | Notes |
|---|---|---|
status | pending | pending / approved / rejected / merged / all |
kind | — | duplicate / contradiction / stale |
limit | 50 | 1..500 |
offset | 0 |
{
"proposals": [
{
"id": "01HQ…",
"kind": "duplicate",
"memory_a_id": "01HQA…",
"memory_b_id": "01HQB…",
"score": 0.94,
"status": "pending",
"note": null,
"proposed_at": 1737070000000,
"reviewed_at": null
}
]
}
POST /api/consolidate
Discriminated by action:
action: "detect"
Run a detection pass over the org. Paid plan only.
curl -X POST https://www.mnueron.com/api/consolidate \
-H "Authorization: Bearer $MNUERON_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "action": "detect", "threshold": 0.92, "namespace": "work" }'
Returns { scanned, proposalsCreated, alreadyKnown }.
action: "review"
Record a decision on a proposal.
curl -X POST https://www.mnueron.com/api/consolidate \
-H "Authorization: Bearer $MNUERON_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "action": "review", "id": "01HQ…", "decision": "approved" }'
action: "merge"
Run an LLM-driven merge of the two memories on an approved proposal. Inserts a new merged memory tagged merged-from-consolidation and supersedes both originals.
Paid-only unless the request includes a byok_anthropic_key / byok_openai_key.
curl -X POST https://www.mnueron.com/api/consolidate \
-H "Authorization: Bearer $MNUERON_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "action": "merge", "id": "01HQ…" }'
Returns { proposal_id, merged_memory_id, merged_content, had_conflict }.