feat(experiment): checkpoint focused investigation boundaries
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import { formulateQuestionForTarget } from "@/lib/graph/focused-investigation";
|
||||
|
||||
export async function POST(request) {
|
||||
try {
|
||||
const body = await request.json();
|
||||
|
||||
if (!body.targetNodeId || typeof body.targetNodeId !== "string") {
|
||||
return Response.json(
|
||||
{ error: "Request must include a 'targetNodeId' string field" },
|
||||
{ status: 400 },
|
||||
);
|
||||
}
|
||||
|
||||
if (!body.situationGraph || typeof body.situationGraph !== "object") {
|
||||
return Response.json(
|
||||
{ error: "Request must include a 'situationGraph' object field" },
|
||||
{ status: 400 },
|
||||
);
|
||||
}
|
||||
|
||||
const result = formulateQuestionForTarget({
|
||||
situationGraph: body.situationGraph,
|
||||
targetNodeId: body.targetNodeId,
|
||||
});
|
||||
|
||||
if (!result.success) {
|
||||
return Response.json(
|
||||
{ success: false, error: result.error },
|
||||
{ status: 400 },
|
||||
);
|
||||
}
|
||||
|
||||
return Response.json({
|
||||
success: true,
|
||||
targetNodeId: result.targetNodeId,
|
||||
question: result.question,
|
||||
strategy: result.strategy,
|
||||
reasoningPattern: result.reasoningPattern,
|
||||
reasoningPatternReason: result.reasoningPatternReason,
|
||||
reason: result.reason,
|
||||
questionFamily: result.questionFamily,
|
||||
selectedQuestionTemplate: result.selectedQuestionTemplate,
|
||||
allowedQuestionFamilies: result.allowedQuestionFamilies,
|
||||
rejectedQuestionFamilies: result.rejectedQuestionFamilies,
|
||||
});
|
||||
} catch (e) {
|
||||
return Response.json(
|
||||
{ error: e.message || "Unknown server error" },
|
||||
{ status: 500 },
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user