experiment(confidence-engine): expose reconstruction provider seam

This commit is contained in:
2026-09-06 08:01:29 +01:00
parent 860ee6fc5b
commit 1daf2bb6ce
7 changed files with 115 additions and 13 deletions
+8 -5
View File
@@ -23,6 +23,8 @@ const MAX_SCENARIO_LENGTH = 10000;
* @param {string} scenario - The scenario text to analyse
* @param {object} [opts]
* @param {"v0.1" | "v0.2"} [opts.promptVersion="v0.2"] - Prompt version to use
* @param {{ generateReconstruction: Function }} [opts.reconstructionProvider] - Experiment-only reconstruction provider override
* @param {string} [opts.reconstructionModelName] - Experiment-only model override for an injected provider
* @returns {Promise<object>} Analysis result with diagnostics
*/
export async function analyseScenario(scenario, opts = {}) {
@@ -70,14 +72,15 @@ export async function analyseScenario(scenario, opts = {}) {
}
// ── Call provider ──────────────────────────────────
const provider = getProvider();
const provider = opts.reconstructionProvider ?? getProvider();
const reconstructionModelName = opts.reconstructionModelName ?? OLLAMA_MODEL;
let rawResponse;
let providerApiPath;
let providerExecution;
try {
const providerResult = await provider.generateReconstruction(
promptObj.prompt,
OLLAMA_MODEL,
reconstructionModelName,
);
if (
providerResult &&
@@ -122,7 +125,7 @@ export async function analyseScenario(scenario, opts = {}) {
if (resultV2.valid) {
return buildSuccessResultV2(
resultV2.data,
OLLAMA_MODEL,
reconstructionModelName,
duration,
promptVersion,
compatibility,
@@ -137,7 +140,7 @@ export async function analyseScenario(scenario, opts = {}) {
if (resultV1.valid) {
return buildSuccessResultV1(
resultV1.data,
OLLAMA_MODEL,
reconstructionModelName,
duration,
promptVersion,
compatibility,
@@ -148,7 +151,7 @@ export async function analyseScenario(scenario, opts = {}) {
return buildPartialResult(
rawResponseStr,
resultV2.error ?? resultV1.error,
OLLAMA_MODEL,
reconstructionModelName,
duration,
promptVersion,
compatibility,