Parent context
Epic #12065 Sub 2 #12068 — Phase 1b follow-up to PR #12081 (Phase 1a, APPROVED, awaiting human merge). Phase 1a shipped 5 axis-count helpers across ChromaManager + GraphService + TopologyInferenceEngine. Phase 1b exposes those helpers via Memory Core MCP for operator-facing queryability + lands the learn/agentos/rem-state-model.md doc scaffold.
Dependency
BLOCKED-ON: PR #12081 merge (Phase 1a helpers must exist on origin/dev before MCP exposure can import them).
Contract Ledger
Per ticket-intake-workflow.md §7 — documented upfront per ticket-author discipline.
MCP tool surface
| Surface |
Input |
Output (success) |
Output (fallback) |
Bounded by |
manage_database action get_rem_pipeline_state (preferred — extends existing tool) OR new get_rem_pipeline_state tool |
Optional {sessionId?: string} — if provided, includes per-session axis C count for that session |
{undigested: Number, digested: Number, sessionNodes: Number, topologyConflicts: Number, perSession?: {sessionId, entityCount: Number}} |
Empty/zero values per axis when underlying storage/file unavailable (helpers' graceful-degradation contract propagates) |
Single MCP call ≤ ~500ms (5 helpers + serialize) |
OpenAPI delta
| File |
Change |
Source of Authority |
ai/mcp/server/memory-core/openapi.yaml |
NEW operation get_rem_pipeline_state OR EXTENDED manage_database action enum |
mcp-tool-description-budget.md audit — description ≤ 1024 chars, no internal cross-refs, no architectural narrative, single-line preferred |
ai/mcp/server/memory-core/Server.mjs |
NEW MCP handler invoking the 5 helpers + assembling response |
pull-request-workflow.md §1.1 if touching MCP server substrate |
Doc scaffold
| File |
Disposition |
Content |
learn/agentos/rem-state-model.md |
NEW file |
(a) 5-axis observability framing + GPT 76× divergence anchor; (b) MCP tool usage examples; (c) operator-facing "how to diagnose REM pipeline silent failures" cookbook; (d) forward-pointer to Phase 2 state model schema |
Acceptance Criteria
Avoided Traps
- ❌ Don't ship Phase 1b BEFORE Phase 1a (#12081) merges — Phase 1b imports the 5 helpers Phase 1a adds
- ❌ Don't bundle Phase 2 scope (JSONL state model + wall-clock + cadence-overflow detection) — that's a separate ticket (TBD-filed-shortly) with its own AC surface
- ❌ Don't extend the helpers' return shape in this phase — helpers stay verbatim from Phase 1a; MCP layer is the projection/composition surface
Related
- Epic #12065
- Sub 2 ticket #12068
- PR #12081 (Phase 1a, dependency)
- PR #12077 Sub 1 forensics runbook (cross-references in doc scaffold)
- Sub 2 Phase 2 follow-up ticket #12088 (per-cycle JSONL state model + wall-clock + cadence-overflow detection scope)
Parent context
Epic #12065 Sub 2 #12068 — Phase 1b follow-up to PR #12081 (Phase 1a, APPROVED, awaiting human merge). Phase 1a shipped 5 axis-count helpers across ChromaManager + GraphService + TopologyInferenceEngine. Phase 1b exposes those helpers via Memory Core MCP for operator-facing queryability + lands the
learn/agentos/rem-state-model.mddoc scaffold.Dependency
BLOCKED-ON: PR #12081 merge (Phase 1a helpers must exist on
origin/devbefore MCP exposure can import them).Contract Ledger
Per
ticket-intake-workflow.md §7— documented upfront per ticket-author discipline.MCP tool surface
manage_databaseactionget_rem_pipeline_state(preferred — extends existing tool) OR newget_rem_pipeline_statetool{sessionId?: string}— if provided, includes per-session axis C count for that session{undigested: Number, digested: Number, sessionNodes: Number, topologyConflicts: Number, perSession?: {sessionId, entityCount: Number}}OpenAPI delta
ai/mcp/server/memory-core/openapi.yamlget_rem_pipeline_stateOR EXTENDEDmanage_databaseaction enummcp-tool-description-budget.mdaudit — description ≤ 1024 chars, no internal cross-refs, no architectural narrative, single-line preferredai/mcp/server/memory-core/Server.mjspull-request-workflow.md §1.1if touching MCP server substrateDoc scaffold
learn/agentos/rem-state-model.mdAcceptance Criteria
get_rem_pipeline_statetool ORmanage_databaseaction extension (operator/lead picks shape; both satisfy AC1)undigested,digested,sessionNodes,topologyConflicts, plus optional per-sessionentityCountkeyed onsessionIdparameterlearn/agentos/rem-state-model.mdcovers the 4 content rows above; cross-references PR #12081 helper JSDocs + PR #12077 Sub 1 forensics runbookMcpServerToolLimitsvalidation (≤ 1024 char description permcp-tool-description-budget.md)Avoided Traps
Related