feat(modelAvailabilityService): integrate model availability service into backend logic (#14470)

This commit is contained in:
Adam Weidman
2025-12-08 06:44:34 -08:00
committed by GitHub
parent 7a72037572
commit 8f4f8baa81
20 changed files with 1611 additions and 119 deletions
@@ -0,0 +1,30 @@
/**
* @license
* Copyright 2025 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import { vi } from 'vitest';
import type {
ModelAvailabilityService,
ModelSelectionResult,
} from './modelAvailabilityService.js';
/**
* Test helper to create a fully mocked ModelAvailabilityService.
*/
export function createAvailabilityServiceMock(
selection: ModelSelectionResult = { selectedModel: null, skipped: [] },
): ModelAvailabilityService {
const service = {
markTerminal: vi.fn(),
markHealthy: vi.fn(),
markRetryOncePerTurn: vi.fn(),
consumeStickyAttempt: vi.fn(),
snapshot: vi.fn(),
resetTurn: vi.fn(),
selectFirstAvailable: vi.fn().mockReturnValue(selection),
};
return service as unknown as ModelAvailabilityService;
}