ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 2.692.72 и 2.732.76 - типобезопасность turn-runtime билдера и убрал остатки слабых кастов в маппинге зависимостей: assistantTurnRuntimeInputBuilder.ts / Поднял типы в deps-адаптере до контрактов AssistantTurnRuntimeBuilderDeps (sessions/normalizer/data-layer/query/chat/log), убрал unknown/any-обертки: assistantTurnRuntimeDepsAdapter.ts

This commit is contained in:
2026-04-11 10:24:16 +03:00
parent bf16309a29
commit 9f3749fd4a
6 changed files with 309 additions and 220 deletions
@@ -1,26 +1,26 @@
import type { AssistantTurnRuntimeBuilderDeps } from "./assistantTurnRuntimeInputBuilder";
export interface AssistantTurnRuntimeDepsSessionsLike {
ensureSession: (sessionId: string) => unknown;
appendItem: (sessionId: string, item: unknown) => void;
getSession: (sessionId: string) => unknown;
setInvestigationState: (sessionId: string, snapshot: unknown) => void;
ensureSession: AssistantTurnRuntimeBuilderDeps["ensureSession"];
appendItem: AssistantTurnRuntimeBuilderDeps["appendItem"];
getSession: AssistantTurnRuntimeBuilderDeps["getSession"];
setInvestigationState: AssistantTurnRuntimeBuilderDeps["setInvestigationState"];
}
export interface AssistantTurnRuntimeDepsSessionLoggerLike {
persistSession: (sessionState: unknown) => void;
persistSession: AssistantTurnRuntimeBuilderDeps["persistSession"];
}
export interface AssistantTurnRuntimeDepsNormalizerLike {
normalize: (payload: unknown) => Promise<unknown>;
normalize: AssistantTurnRuntimeBuilderDeps["normalize"];
}
export interface AssistantTurnRuntimeDepsDataLayerLike {
executeRouteRuntime: (route: string, fragmentText: string, options?: unknown) => Promise<unknown>;
executeRouteRuntime: AssistantTurnRuntimeBuilderDeps["executeRouteRuntime"];
}
export interface AssistantTurnRuntimeDepsAddressQueryServiceLike {
tryHandle: (messageUsed: string, options?: unknown) => Promise<unknown>;
tryHandle: AssistantTurnRuntimeBuilderDeps["tryAddressQueryHandle"];
}
type BuilderDepsProvidedByAdapter = Pick<
@@ -58,11 +58,11 @@ export interface BuildAssistantTurnRuntimeDepsInput {
normalizerService: AssistantTurnRuntimeDepsNormalizerLike;
dataLayer: AssistantTurnRuntimeDepsDataLayerLike;
addressQueryService: AssistantTurnRuntimeDepsAddressQueryServiceLike;
chatClient: unknown;
messageIdFactory: () => string;
nowIso: () => string;
defaultApiKey: string;
logEvent: (payload: Record<string, unknown>) => void;
chatClient: AssistantTurnRuntimeBuilderDeps["chatClient"];
messageIdFactory: AssistantTurnRuntimeBuilderDeps["messageIdFactory"];
nowIso: AssistantTurnRuntimeBuilderDeps["nowIso"];
defaultApiKey: AssistantTurnRuntimeBuilderDeps["defaultApiKey"];
logEvent: AssistantTurnRuntimeBuilderDeps["logEvent"];
flags: {
featureAssistantAddressQueryV1: boolean;
featureAddressLlmPredecomposeV1: boolean;
@@ -85,13 +85,14 @@ export function buildAssistantTurnRuntimeDeps(
): AssistantTurnRuntimeBuilderDeps {
return {
...input.helpers,
ensureSession: (sessionId) => input.sessions.ensureSession(sessionId) as any,
appendItem: (sessionId, item) => input.sessions.appendItem(sessionId, item as any),
getSession: (sessionId) => input.sessions.getSession(sessionId) as any,
persistSession: (sessionState) => input.sessionLogger.persistSession(sessionState as any),
setInvestigationState: (sessionId, snapshot) => input.sessions.setInvestigationState(sessionId, snapshot),
normalize: (payload) => input.normalizerService.normalize(payload),
executeRouteRuntime: (route, fragmentText, options) => input.dataLayer.executeRouteRuntime(route, fragmentText, options),
ensureSession: input.sessions.ensureSession,
appendItem: input.sessions.appendItem,
getSession: input.sessions.getSession,
persistSession: input.sessionLogger.persistSession,
setInvestigationState: input.sessions.setInvestigationState,
normalize: input.normalizerService.normalize,
executeRouteRuntime: (route, fragmentText, options) =>
input.dataLayer.executeRouteRuntime(route, fragmentText, options),
tryAddressQueryHandle: (messageUsed, options) => input.addressQueryService.tryHandle(messageUsed, options),
chatClient: input.chatClient,
messageIdFactory: input.messageIdFactory,