feat: advance reasoning after comparability is resolved

This commit is contained in:
2026-08-02 17:06:34 +01:00
parent 7d408701b5
commit 25a989450c
9 changed files with 649 additions and 5 deletions
+21
View File
@@ -84,6 +84,25 @@ export const situationEdgeSchema = z.object({
// ── SituationGraph ───────────────────────────────────
const reasoningStageSchema = z.object({
stage: z.string().min(1),
status: z.string().min(1),
outcome: z.string().min(1),
});
export const reasoningStateSchema = z
.object({
comparabilityStatus: z.string().min(1).nullable().optional(),
comparabilityReason: z.string().min(1).nullable().optional(),
comparabilityEvidence: z.array(z.string()).default([]),
relationshipStatus: z.string().min(1).nullable().optional(),
relationshipReason: z.string().min(1).nullable().optional(),
relationshipAssessed: z.boolean().optional(),
contradictionReasoningAllowed: z.boolean().optional(),
reasoningStages: z.array(reasoningStageSchema).default([]),
})
.strict();
export const situationGraphSchema = z.object({
centralStatement: z.string().min(1),
nodes: z.array(situationNodeSchema).min(1),
@@ -91,6 +110,7 @@ export const situationGraphSchema = z.object({
activeUnknownNodeId: z.string().nullable(),
resolvedNodeIds: z.array(z.string()).default([]),
currentSummary: z.string().min(1),
reasoningState: reasoningStateSchema.optional(),
});
/** @typedef {z.infer<typeof situationGraphSchema>} SituationGraph */
@@ -201,5 +221,6 @@ export function makeGraph(opts) {
activeUnknownNodeId: opts.activeUnknownNodeId ?? null,
resolvedNodeIds: opts.resolvedNodeIds ?? [],
currentSummary: opts.currentSummary || "",
reasoningState: opts.reasoningState,
});
}