Gateway: harden custom session-store discovery (#44176)
Merged via squash. Prepared head SHA: 52ebbf5188b47386f2a78ac4715993bc082e911b Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com> Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com> Reviewed-by: @gumadeiras
This commit is contained in:
committed by
GitHub
parent
dc3bb1890b
commit
46f0bfc55b
@@ -23,6 +23,7 @@ import {
|
||||
resolveAgentIdFromSessionKey,
|
||||
} from "../../routing/session-key.js";
|
||||
import { applyModelOverrideToSessionEntry } from "../../sessions/model-overrides.js";
|
||||
import { resolvePreferredSessionKeyForSessionIdMatches } from "../../sessions/session-id-resolution.js";
|
||||
import { resolveAgentDir } from "../agent-scope.js";
|
||||
import { formatUserTime, resolveUserTimeFormat, resolveUserTimezone } from "../date-time.js";
|
||||
import { resolveModelAuthLabel } from "../model-auth-label.js";
|
||||
@@ -100,16 +101,12 @@ function resolveSessionKeyFromSessionId(params: {
|
||||
return null;
|
||||
}
|
||||
const { store } = loadCombinedSessionStoreForGateway(params.cfg);
|
||||
const match = Object.entries(store).find(([key, entry]) => {
|
||||
if (entry?.sessionId !== trimmed) {
|
||||
return false;
|
||||
}
|
||||
if (!params.agentId) {
|
||||
return true;
|
||||
}
|
||||
return resolveAgentIdFromSessionKey(key) === params.agentId;
|
||||
});
|
||||
return match?.[0] ?? null;
|
||||
const matches = Object.entries(store).filter(
|
||||
(entry): entry is [string, SessionEntry] =>
|
||||
entry[1]?.sessionId === trimmed &&
|
||||
(!params.agentId || resolveAgentIdFromSessionKey(entry[0]) === params.agentId),
|
||||
);
|
||||
return resolvePreferredSessionKeyForSessionIdMatches(matches, trimmed) ?? null;
|
||||
}
|
||||
|
||||
async function resolveModelOverride(params: {
|
||||
|
||||
Reference in New Issue
Block a user