wip(confidence-engine): checkpoint open-question presentation work

This commit is contained in:
2026-10-09 07:46:19 +01:00
parent f74fe6de10
commit 6bc8be6edb
19 changed files with 812 additions and 22 deletions
+12 -1
View File
@@ -12,9 +12,12 @@ import {
} from "../lib/reconstruction/prompt.js";
import { normaliseAnalysisResponse } from "../lib/reconstruction/compatibility.js";
import {
reconstructionGenerationJsonSchema,
reconstructionGenerationSchema,
reconstructionV2Schema,
reconstructionSchema as reconstructionV1Schema,
} from "../lib/reconstruction/schema.js";
import { validateReconstructionOpenQuestions } from "../lib/reconstruction/open-question-presentation.js";
const MAX_SCENARIO_LENGTH = 10000;
@@ -80,6 +83,8 @@ export async function analyseScenario(scenario, opts = {}) {
const providerResult = await provider.generateReconstruction(
promptObj.prompt,
reconstructionModelName,
reconstructionGenerationJsonSchema,
{ outputZodSchema: reconstructionGenerationSchema },
);
if (
providerResult &&
@@ -201,6 +206,9 @@ function buildCompatibilityDiagnostics(compatibility) {
}
function buildSuccessResultV2(data, model, duration, version, compatibility) {
const presentationValidation = validateReconstructionOpenQuestions(
data.reconstruction,
);
return {
success: true,
validationStatus: "valid",
@@ -209,10 +217,13 @@ function buildSuccessResultV2(data, model, duration, version, compatibility) {
rawResponse: JSON.stringify(data).slice(0, 3000),
promptVersion: version,
inputClassification: data.inputClassification,
reconstruction: data.reconstruction,
reconstruction: presentationValidation.reconstruction,
evidence: data.evidence,
nextQuestion: data.nextQuestion,
errors: undefined,
presentationValidationStatus:
presentationValidation.issues.length > 0 ? "partial" : "valid",
presentationValidationIssues: presentationValidation.issues,
...buildCompatibilityDiagnostics(compatibility),
};
}