ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 3.1 - Добавлен строгий контракт семантического извлечения (валидность, качество, reason-codes, рекомендация применять canonical). Подключен semantic guard в predecompose/runtime: мягкое отклонение плохого canonical: отдельный safe-кейс для сырого полезного raw-фрагмента; fallback теперь выигрывает только когда это оправдано. Подключty semantic arbitration в tool-gate

This commit is contained in:
2026-04-11 16:45:43 +03:00
parent 66402439dc
commit a7ccc92a9c
18 changed files with 750 additions and 26 deletions
@@ -26,6 +26,12 @@ export interface AssistantAddressToolGateRuntimeInput<ResponseType = unknown> {
scope?: unknown;
} | null;
} | null;
semanticExtractionContract?: {
valid?: unknown;
quality?: unknown;
apply_canonical_recommended?: unknown;
reason_codes?: unknown;
} | null;
[key: string]: unknown;
} | null;
logEvent: (payload: Record<string, unknown>) => void;
@@ -67,6 +73,18 @@ export async function runAssistantAddressToolGateRuntime<ResponseType = unknown>
predecomposeContract?.period && typeof predecomposeContract.period === "object"
? predecomposeContract.period
: null;
const semanticExtractionContract =
runtimeMeta.semanticExtractionContract && typeof runtimeMeta.semanticExtractionContract === "object"
? (runtimeMeta.semanticExtractionContract as {
valid?: unknown;
quality?: unknown;
apply_canonical_recommended?: unknown;
reason_codes?: unknown;
})
: null;
const semanticReasonCodes = Array.isArray(semanticExtractionContract?.reason_codes)
? semanticExtractionContract?.reason_codes
: [];
input.logEvent({
timestamp: input.nowIso(),
@@ -88,7 +106,12 @@ export async function runAssistantAddressToolGateRuntime<ResponseType = unknown>
address_tool_gate_reason: runtimeMeta.toolGateReason ?? null,
address_llm_predecompose_contract_intent: predecomposeContract?.intent ?? null,
address_llm_predecompose_contract_aggregation_profile: predecomposeContract?.aggregation_profile ?? null,
address_llm_predecompose_contract_period_scope: predecomposePeriod?.scope ?? null
address_llm_predecompose_contract_period_scope: predecomposePeriod?.scope ?? null,
address_semantic_contract_valid: semanticExtractionContract?.valid ?? null,
address_semantic_contract_quality: semanticExtractionContract?.quality ?? null,
address_semantic_apply_canonical_recommended:
semanticExtractionContract?.apply_canonical_recommended ?? null,
address_semantic_reason_codes: semanticReasonCodes
}
});
@@ -107,4 +130,3 @@ export async function runAssistantAddressToolGateRuntime<ResponseType = unknown>
response: null
};
}