fix(gateway): repair routing health and MCP command wiring
ci/woodpecker/pr/ci Pipeline was successful

This commit is contained in:
shaggy (mosaic-dev box)
2026-08-11 15:28:57 -05:00
parent 20718b5a27
commit bda308efd9
10 changed files with 230 additions and 42 deletions
@@ -8,6 +8,7 @@
* to avoid real I/O — they verify the complete classify → match → decide path.
*/
import { describe, it, expect, vi } from 'vitest';
import type { ProviderHealthStatus } from '@mosaicstack/types';
import { RoutingEngineService } from './routing-engine.service.js';
import { DEFAULT_ROUTING_RULES } from '../routing/default-rules.js';
import type { RoutingRule } from './routing.types.js';
@@ -17,7 +18,7 @@ import type { RoutingRule } from './routing.types.js';
/** Build a RoutingEngineService backed by the given rule set and health map. */
function makeService(
rules: RoutingRule[],
healthMap: Record<string, { status: string }>,
healthMap: Record<string, { status: ProviderHealthStatus }>,
): RoutingEngineService {
const mockDb = {
select: vi.fn().mockReturnValue({
@@ -67,11 +68,11 @@ function defaultRules(): RoutingRule[] {
}
/** A health map where anthropic, openai, and zai are all healthy. */
const allHealthy: Record<string, { status: string }> = {
anthropic: { status: 'up' },
openai: { status: 'up' },
zai: { status: 'up' },
ollama: { status: 'up' },
const allHealthy: Record<string, { status: ProviderHealthStatus }> = {
anthropic: { status: 'healthy' },
openai: { status: 'healthy' },
zai: { status: 'healthy' },
ollama: { status: 'healthy' },
};
// ─── M4-013 E2E tests ─────────────────────────────────────────────────────────
@@ -212,10 +213,10 @@ describe('M4-013: routing end-to-end pipeline', () => {
// Let's use a simple coding message to target Simple coding → Codex (openai)
const message = 'implement a sort function';
const unhealthyHealth = {
const unhealthyHealth: Record<string, { status: ProviderHealthStatus }> = {
anthropic: { status: 'down' },
openai: { status: 'up' },
zai: { status: 'up' },
openai: { status: 'healthy' },
zai: { status: 'healthy' },
ollama: { status: 'down' },
};