АРЧ АП11 - Вынести provider runtime policy из оркестрации и закрыть Phase 6 агентным прогоном
This commit is contained in:
@@ -24,6 +24,7 @@ import * as assistantBoundaryPolicy_1 from "./assistantBoundaryPolicy";
|
||||
import * as assistantLivingModePolicy_1 from "./assistantLivingModePolicy";
|
||||
import * as assistantMetaFollowupPolicy_1 from "./assistantMetaFollowupPolicy";
|
||||
import * as assistantMemoryRecapPolicy_1 from "./assistantMemoryRecapPolicy";
|
||||
import * as assistantProviderExecutionPolicy_1 from "./assistantProviderExecutionPolicy";
|
||||
import * as assistantRoutePolicy_1 from "./assistantRoutePolicy";
|
||||
import * as assistantTransitionPolicy_1 from "./assistantTransitionPolicy";
|
||||
import * as assistantOrganizationScopeRuntimeAdapter_1 from "./assistantOrganizationScopeRuntimeAdapter";
|
||||
@@ -3781,6 +3782,8 @@ function hasPredecomposeDiagnosticUncertaintyLead(text) {
|
||||
return /^(?:неясно|не\s+ясно|непонятно|не\s+понятно|unclear|not\s+clear|ambiguous|unknown)(?=$|[\s,.;:!?])/iu.test(normalized);
|
||||
}
|
||||
function attachAddressPredecomposeContract(meta, sourceMessage) {
|
||||
const sourceMeta = meta && typeof meta === "object" ? meta : {};
|
||||
const { providerExecutionInput, providerExecutionContract: providerExecutionContractInput, ...restMeta } = sourceMeta;
|
||||
const canonicalMessage = toNonEmptyString(meta?.effectiveMessage) ?? String(sourceMessage ?? "");
|
||||
const predecomposeContract = (0, predecomposeContract_1.buildAddressLlmPredecomposeContractV1)({
|
||||
sourceMessage: String(sourceMessage ?? ""),
|
||||
@@ -3792,20 +3795,34 @@ function attachAddressPredecomposeContract(meta, sourceMessage) {
|
||||
canonicalMessage,
|
||||
predecomposeContract
|
||||
});
|
||||
const providerExecutionContract = providerExecutionContractInput && typeof providerExecutionContractInput === "object"
|
||||
? providerExecutionContractInput
|
||||
: assistantProviderExecutionPolicy.resolveProviderExecutionState({
|
||||
llmProvider: providerExecutionInput?.llmProvider,
|
||||
useMock: providerExecutionInput?.useMock,
|
||||
baseUrl: providerExecutionInput?.baseUrl,
|
||||
llmPreDecomposeReason: restMeta?.reason
|
||||
});
|
||||
return {
|
||||
...meta,
|
||||
...restMeta,
|
||||
providerExecutionContract,
|
||||
predecomposeContract,
|
||||
semanticExtractionContract
|
||||
};
|
||||
}
|
||||
async function runAddressLlmPreDecompose(normalizerService, payload, userMessage) {
|
||||
const provider = payload?.llmProvider === "local" ? "local" : payload?.llmProvider === "openai" ? "openai" : null;
|
||||
const provider = assistantProviderExecutionPolicy.normalizeProvider(payload?.llmProvider);
|
||||
const sanitizedUserMessage = sanitizeAddressMessageForFallback(userMessage);
|
||||
const fallbackCandidate = resolveAddressDeterministicFallback(userMessage, sanitizedUserMessage);
|
||||
const baseMeta = {
|
||||
attempted: false,
|
||||
applied: false,
|
||||
provider,
|
||||
providerExecutionInput: {
|
||||
llmProvider: payload?.llmProvider,
|
||||
useMock: payload?.useMock,
|
||||
baseUrl: payload?.baseUrl
|
||||
},
|
||||
traceId: null,
|
||||
effectiveMessage: userMessage,
|
||||
reason: "not_attempted",
|
||||
@@ -4705,6 +4722,7 @@ function normalizeOrganizationScopeValue(value) {
|
||||
.trim();
|
||||
return unwrapped ? unwrapped : null;
|
||||
}
|
||||
const assistantProviderExecutionPolicy = (0, assistantProviderExecutionPolicy_1.createAssistantProviderExecutionPolicy)();
|
||||
const assistantLivingModePolicy = (0, assistantLivingModePolicy_1.createAssistantLivingModePolicy)({
|
||||
featureAssistantLivingChatRouterV1: config_1.FEATURE_ASSISTANT_LIVING_CHAT_ROUTER_V1,
|
||||
compactWhitespace,
|
||||
@@ -4714,7 +4732,8 @@ const assistantLivingModePolicy = (0, assistantLivingModePolicy_1.createAssistan
|
||||
hasReferentialPointer,
|
||||
hasSmallTalkSignal,
|
||||
hasAssistantCapabilityQuestionSignal,
|
||||
hasOperationalAdminActionRequestSignal
|
||||
hasOperationalAdminActionRequestSignal,
|
||||
resolveProviderExecutionState: assistantProviderExecutionPolicy.resolveProviderExecutionState
|
||||
});
|
||||
const assistantMetaFollowupPolicy = (0, assistantMetaFollowupPolicy_1.createAssistantMetaFollowupPolicy)({
|
||||
hasAssistantDataScopeMetaQuestionSignal: assistantLivingModePolicy.hasAssistantDataScopeMetaQuestionSignal,
|
||||
@@ -4760,7 +4779,8 @@ const assistantRoutePolicy = (0, assistantRoutePolicy_1.createAssistantRoutePoli
|
||||
hasDirectDeepAnalysisSignal,
|
||||
compactWhitespace,
|
||||
hasDeepSessionContinuationSignal,
|
||||
resolveLivingAssistantModeDecision: assistantLivingModePolicy.resolveLivingAssistantModeDecision
|
||||
resolveLivingAssistantModeDecision: assistantLivingModePolicy.resolveLivingAssistantModeDecision,
|
||||
resolveProviderExecutionState: assistantProviderExecutionPolicy.resolveProviderExecutionState
|
||||
});
|
||||
const assistantTransitionPolicy = (0, assistantTransitionPolicy_1.createAssistantTransitionPolicy)({
|
||||
compactWhitespace,
|
||||
|
||||
Reference in New Issue
Block a user