# Task ID: 82 **Title:** Integrate Pipeline Executor into Router **Status:** done **Dependencies:** 80 ✓, 81 ✓ **Priority:** high **Description:** Modify the McpRouter to route content through the proxymodel pipeline, keeping the gating logic cleanly separated from content processing. **Details:** Modify `src/mcplocal/src/router.ts` to: 1. Add proxyModel resolution during router creation: ```typescript import { loadProxyModels } from './proxymodel/loader'; import { executePipeline } from './proxymodel/executor'; interface RouterOptions { proxyModelName?: string; // ... existing options } async function createRouter(opts: RouterOptions): Promise { const proxyModels = await loadProxyModels(); const proxyModel = proxyModels.get(opts.proxyModelName ?? 'default'); // ... } ``` 2. Add content processing method: ```typescript async processContent( content: string, type: 'prompt' | 'toolResult', sourceName: string, sessionId: string ): Promise { if (!this.proxyModel) return { content }; const appliesTo = this.proxyModel.spec.appliesTo ?? ['prompts', 'toolResults']; if (!appliesTo.includes(type === 'prompt' ? 'prompts' : 'toolResults')) { return { content }; } return executePipeline({ content, contentType: type, sourceName, projectName: this.projectName, sessionId, proxyModel: this.proxyModel, providerRegistry: this.providerRegistry, cache: this.cache, }); } ``` 3. Call processContent at the appropriate points in the request flow (prompt serving, tool result handling) WITHOUT interweaving with gating logic. **Test Strategy:** Integration tests: default proxymodel passes content through unchanged, subindex proxymodel produces summaries, appliesTo filtering works correctly, gating still works as before with proxymodel processing happening at the right stage.