#!/usr/bin/env node /** * Local smoke for MCP result compactor (Phase 1-B). */ import { applyMcpCompaction, createMemoryCompactStore, fetchCompactPayload, resetMcpCompactStoresForTests, resolveMcpCompactMode, } from '../mcp-result-compactor.mjs'; resetMcpCompactStoresForTests(); const store = createMemoryCompactStore(); const payload = `section-${'x'.repeat(6000)}\nfooter-line`; const shadow = await applyMcpCompaction(payload, { kind: 'tkmind_read', env: { MEMIND_MCP_COMPACT_MODE: 'shadow', MEMIND_MCP_COMPACT_BUDGET_CHARS: '800' }, store, }); if (shadow.text !== payload || shadow.mode !== 'shadow') { throw new Error(`shadow mode should keep original payload: ${JSON.stringify(shadow)}`); } const active = await applyMcpCompaction(payload, { kind: 'tkmind_read', env: { MEMIND_MCP_COMPACT_MODE: 'active', MEMIND_MCP_COMPACT_BUDGET_CHARS: '800' }, store, }); if (!active.compacted || !active.handle) { throw new Error(`active mode should compact payload: ${JSON.stringify(active)}`); } const restored = await fetchCompactPayload(active.handle, { store }); if (!restored.ok || restored.text !== payload) { throw new Error(`ctx_fetch restore failed: ${JSON.stringify(restored)}`); } console.log('MCP_COMPACTOR_LOCAL_OK:', { mode: resolveMcpCompactMode(), shadowSavedRatio: shadow.stats?.savedRatio ?? 0, activeSavedRatio: active.stats?.savedRatio ?? 0, handle: active.handle, });