ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 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
@@ -48,7 +48,7 @@ export interface RunAssistantAddressAttemptRuntimeInput<ResponseType = unknown>
sessionScope: AddressSessionScope;
mergeFollowupContextWithOrganizationScope: RunAssistantAddressLaneAttemptRuntimeInput["mergeFollowupContextWithOrganizationScope"];
runAddressQueryTryHandle: RunAssistantAddressLaneAttemptRuntimeInput["runAddressQueryTryHandle"];
mergeKnownOrganizations: RunAssistantAddressLaneResponseAttemptRuntimeInput<ResponseType>["mergeKnownOrganizations"];
mergeKnownOrganizations: RunAssistantLivingChatAttemptRuntimeInput<ResponseType>["mergeKnownOrganizations"];
hasAssistantDataScopeMetaQuestionSignal: RunAssistantLivingChatAttemptRuntimeInput<ResponseType>["hasAssistantDataScopeMetaQuestionSignal"];
shouldHandleAsAssistantCapabilityMetaQuery: RunAssistantLivingChatAttemptRuntimeInput<ResponseType>["shouldHandleAsAssistantCapabilityMetaQuery"];
hasDestructiveDataActionSignal: RunAssistantLivingChatAttemptRuntimeInput<ResponseType>["hasDestructiveDataActionSignal"];
@@ -140,13 +140,24 @@ export async function runAssistantAddressAttemptRuntime<ResponseType = unknown>(
const tryHandleLivingChat: RunAssistantAddressRuntimeInput<ResponseType>["tryHandleLivingChat"] = async (
modeDecision,
addressRuntimeMeta = null
) =>
runLivingChatAttemptRuntimeSafe(
) => {
const normalizedModeDecision: RunAssistantLivingChatAttemptRuntimeInput<ResponseType>["modeDecision"] = (() => {
if (!modeDecision || typeof modeDecision !== "object") {
return undefined;
}
const candidate = modeDecision as { mode?: unknown; reason?: unknown };
return {
mode: typeof candidate.mode === "string" ? candidate.mode : null,
reason: typeof candidate.reason === "string" ? candidate.reason : null
};
})();
return runLivingChatAttemptRuntimeSafe(
buildAssistantLivingChatAttemptRuntimeInput({
sessionId: input.sessionId,
userMessage: input.userMessage,
sessionItems: input.sessionItems,
modeDecision,
modeDecision: normalizedModeDecision,
sessionScope: {
knownOrganizations: input.sessionScope.knownOrganizations,
selectedOrganization: input.sessionScope.selectedOrganization,
@@ -154,7 +165,7 @@ export async function runAssistantAddressAttemptRuntime<ResponseType = unknown>(
},
addressRuntimeMeta,
toNonEmptyString: input.toNonEmptyString,
mergeKnownOrganizations: input.mergeKnownOrganizations as any,
mergeKnownOrganizations: input.mergeKnownOrganizations,
hasAssistantDataScopeMetaQuestionSignal: input.hasAssistantDataScopeMetaQuestionSignal,
shouldHandleAsAssistantCapabilityMetaQuery: input.shouldHandleAsAssistantCapabilityMetaQuery,
hasDestructiveDataActionSignal: input.hasDestructiveDataActionSignal,
@@ -187,8 +198,9 @@ export async function runAssistantAddressAttemptRuntime<ResponseType = unknown>(
defaultModel: input.defaultModel,
defaultBaseUrl: input.defaultBaseUrl,
defaultApiKey: input.defaultApiKey
} as any) as RunAssistantLivingChatAttemptRuntimeInput<ResponseType>
})
);
};
const runAddressLaneAttempt: RunAssistantAddressRuntimeInput<ResponseType>["runAddressLaneAttempt"] = async (
messageUsed,