Merge branch 'main' into memory_usage3

This commit is contained in:
Spencer
2026-04-13 17:57:12 -04:00
committed by GitHub
3 changed files with 12 additions and 6 deletions

View File

@@ -62,6 +62,7 @@ describe('fetchJson', () => {
const res = new EventEmitter() as IncomingMessage;
res.statusCode = 302;
res.headers = { location: 'https://example.com/final' };
res.resume = vi.fn();
(callback as (res: IncomingMessage) => void)(res);
res.emit('end');
return new EventEmitter() as ClientRequest;
@@ -85,6 +86,7 @@ describe('fetchJson', () => {
const res = new EventEmitter() as IncomingMessage;
res.statusCode = 301;
res.headers = { location: 'https://example.com/final-permanent' };
res.resume = vi.fn();
(callback as (res: IncomingMessage) => void)(res);
res.emit('end');
return new EventEmitter() as ClientRequest;

View File

@@ -31,7 +31,11 @@ export async function fetchJson<T>(
if (!res.headers.location) {
return reject(new Error('No location header in redirect response'));
}
fetchJson<T>(res.headers.location, redirectCount++)
res.resume();
fetchJson<T>(
new URL(res.headers.location, url).toString(),
redirectCount + 1,
)
.then(resolve)
.catch(reject);
return;

View File

@@ -74,7 +74,7 @@ export class ModelRouterService {
*/
async route(context: RoutingContext): Promise<RoutingDecision> {
const startTime = Date.now();
let decision: RoutingDecision;
let decision: RoutingDecision | undefined;
const [enableNumericalRouting, thresholdValue] = await Promise.all([
this.config.getNumericalRoutingEnabled(),
@@ -117,10 +117,10 @@ export class ModelRouterService {
);
} finally {
const event = new ModelRoutingEvent(
decision!.model,
decision!.metadata.source,
decision!.metadata.latencyMs,
decision!.metadata.reasoning,
decision?.model || 'unknown',
decision?.metadata?.source || 'unknown',
decision?.metadata?.latencyMs || 0,
decision?.metadata?.reasoning,
failed,
error_message,
this.config.getApprovalMode(),