fix: reselect after reasoning pattern filtering

This commit is contained in:
2026-08-03 12:39:01 +01:00
parent c27320984c
commit 34c25fcb43
4 changed files with 317 additions and 46 deletions
+33 -4
View File
@@ -71,6 +71,7 @@ function buildDiagnostics({
compatibilityFailures,
replacementActions,
graphReasoningIntegrity,
noQuestionReason,
}) {
return {
promptVersion: analysis?.promptVersion ?? null,
@@ -112,6 +113,28 @@ function buildDiagnostics({
compatibilityFailures: compatibilityFailures ?? [],
replacementActions: replacementActions ?? [],
graphReasoningIntegrity: graphReasoningIntegrity ?? null,
noQuestionReason: noQuestionReason ?? null,
};
}
function fallbackStartCaseReasoningPatternValidation(
selectedQuestion,
existingValidation,
) {
if (existingValidation) {
return existingValidation;
}
if (!selectedQuestion?.reasoningPattern) {
return null;
}
return {
activePattern: selectedQuestion.reasoningPattern,
valid: Boolean(selectedQuestion.question),
reason: selectedQuestion.question
? "Initial graph-backed selection produced a reasoning-pattern-compatible question."
: "Initial graph-backed selection did not produce a valid question for the inferred reasoning pattern.",
};
}
@@ -443,8 +466,10 @@ export async function startCase(body) {
reasoningPatternReason:
initialQuestionResult.selectedQuestion?.reasoningPatternReason ??
null,
reasoningPatternValidation:
initialQuestionResult.reasoningPatternValidation ?? null,
reasoningPatternValidation: fallbackStartCaseReasoningPatternValidation(
initialQuestionResult.selectedQuestion,
initialQuestionResult.reasoningPatternValidation,
),
patternCompatibleNodeCount:
initialQuestionResult.patternCompatibleNodeCount ?? 0,
incompatibleNodeIds: initialQuestionResult.incompatibleNodeIds ?? [],
@@ -453,6 +478,7 @@ export async function startCase(body) {
replacementActions: initialQuestionResult.replacementActions ?? [],
graphReasoningIntegrity:
initialQuestionResult.graphReasoningIntegrity ?? null,
noQuestionReason: initialQuestionResult.noQuestionReason ?? null,
}),
validationErrors: graphReferenceValidation.errors,
statusCode: 500,
@@ -509,8 +535,10 @@ export async function startCase(body) {
null,
reasoningPatternReason:
initialQuestionResult.selectedQuestion?.reasoningPatternReason ?? null,
reasoningPatternValidation:
initialQuestionResult.reasoningPatternValidation ?? null,
reasoningPatternValidation: fallbackStartCaseReasoningPatternValidation(
initialQuestionResult.selectedQuestion,
initialQuestionResult.reasoningPatternValidation,
),
patternCompatibleNodeCount:
initialQuestionResult.patternCompatibleNodeCount ?? 0,
incompatibleNodeIds: initialQuestionResult.incompatibleNodeIds ?? [],
@@ -518,6 +546,7 @@ export async function startCase(body) {
replacementActions: initialQuestionResult.replacementActions ?? [],
graphReasoningIntegrity:
initialQuestionResult.graphReasoningIntegrity ?? null,
noQuestionReason: initialQuestionResult.noQuestionReason ?? null,
}),
};
}