ARCH: добавить value-flow pilot MCP discovery

This commit is contained in:
2026-04-20 18:15:26 +03:00
parent e85d456576
commit 49fd08652c
21 changed files with 1100 additions and 66 deletions
@@ -20,6 +20,7 @@ import {
finalizeAssistantDeepTurn,
type FinalizeAssistantDeepTurnInput
} from "./assistantDeepTurnFinalizeRuntimeAdapter";
import { applyAssistantMcpDiscoveryResponsePolicy } from "./assistantMcpDiscoveryResponsePolicy";
import type { ClaimBoundAnchorAudit, TargetedEvidenceAcquisitionAudit } from "./assistantClaimBoundEvidence";
import type { CompanyAnchorSet } from "./companyAnchorResolver";
import type {
@@ -181,7 +182,9 @@ function normalizeAddressRuntimeMetaForDeep(
toolGateDecision: toNullableString(source.toolGateDecision),
toolGateReason: toNullableString(source.toolGateReason),
predecomposeContract: source.predecomposeContract ?? null,
orchestrationContract: source.orchestrationContract ?? null
semanticExtractionContract: source.semanticExtractionContract ?? null,
orchestrationContract: source.orchestrationContract ?? null,
mcpDiscoveryRuntimeEntryPoint: source.mcpDiscoveryRuntimeEntryPoint ?? null
};
}
@@ -190,6 +193,7 @@ export function runAssistantDeepTurnResponseRuntime(
): RunAssistantDeepTurnResponseRuntimeOutput {
const runPackagingRuntimeSafe = input.runPackagingRuntime ?? runAssistantDeepTurnPackagingRuntime;
const runFinalizeDeepTurnSafe = input.runFinalizeDeepTurn ?? finalizeAssistantDeepTurn;
const addressRuntimeMetaForDeep = normalizeAddressRuntimeMetaForDeep(input.addressRuntimeMetaForDeep);
const packagingRuntime = runPackagingRuntimeSafe({
featureInvestigationStateV1: input.featureInvestigationStateV1,
@@ -225,7 +229,7 @@ export function runAssistantDeepTurnResponseRuntime(
featureContractsV11: input.featureContractsV11,
featureAnswerPolicyV11: input.featureAnswerPolicyV11,
previousInvestigationState: input.previousInvestigationState ?? null,
addressRuntimeMetaForDeep: normalizeAddressRuntimeMetaForDeep(input.addressRuntimeMetaForDeep),
addressRuntimeMetaForDeep,
extractDroppedIntentSegments: input.extractDroppedIntentSegments,
buildDebugRoutes: input.buildDebugRoutes,
extractExecutionState: input.extractExecutionState,
@@ -234,12 +238,36 @@ export function runAssistantDeepTurnResponseRuntime(
messageIdFactory: input.messageIdFactory
});
const mcpDiscoveryResponsePolicy = applyAssistantMcpDiscoveryResponsePolicy({
currentReply: packagingRuntime.safeAssistantReply,
currentReplySource: "deep_analysis",
addressRuntimeMeta: addressRuntimeMetaForDeep as unknown as Record<string, unknown> | null
});
const assistantReply = mcpDiscoveryResponsePolicy.applied
? mcpDiscoveryResponsePolicy.reply_text
: packagingRuntime.safeAssistantReply;
const replyType = mcpDiscoveryResponsePolicy.applied ? "partial_coverage" : input.composition.reply_type;
const debug = {
...packagingRuntime.debug,
mcp_discovery_response_policy_v1: mcpDiscoveryResponsePolicy,
mcp_discovery_response_candidate_v1: mcpDiscoveryResponsePolicy.candidate,
mcp_discovery_response_applied: mcpDiscoveryResponsePolicy.applied
} as AssistantDebugPayload;
const assistantItem = mcpDiscoveryResponsePolicy.applied
? {
...packagingRuntime.assistantItem,
text: assistantReply,
reply_type: replyType,
debug
}
: packagingRuntime.assistantItem;
const finalization = runFinalizeDeepTurnSafe({
sessionId: input.sessionId,
assistantReply: packagingRuntime.safeAssistantReply,
replyType: input.composition.reply_type,
assistantItem: packagingRuntime.assistantItem,
debug: packagingRuntime.debug,
assistantReply,
replyType,
assistantItem,
debug,
deepAnalysisLogDetails: packagingRuntime.deepAnalysisLogDetails,
appendItem: input.appendItem,
getSession: input.getSession,
@@ -250,6 +278,6 @@ export function runAssistantDeepTurnResponseRuntime(
return {
response: finalization.response,
debug: packagingRuntime.debug
debug
};
}