From c7d2033277e0ad32d3e126bc592472e619b91426 Mon Sep 17 00:00:00 2001 From: Shirone Date: Fri, 23 Jan 2026 15:55:36 +0100 Subject: [PATCH] fix: update structured output logic to support Claude and Codex models - Modify the condition for using structured output to include both Claude and Codex models, ensuring compatibility with the latest model capabilities. --- apps/server/src/routes/app-spec/generate-spec.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/server/src/routes/app-spec/generate-spec.ts b/apps/server/src/routes/app-spec/generate-spec.ts index 0f826d76..291b2f6a 100644 --- a/apps/server/src/routes/app-spec/generate-spec.ts +++ b/apps/server/src/routes/app-spec/generate-spec.ts @@ -9,7 +9,7 @@ import * as secureFs from '../../lib/secure-fs.js'; import type { EventEmitter } from '../../lib/events.js'; import { specOutputSchema, specToXml, type SpecOutput } from '../../lib/app-spec-format.js'; import { createLogger } from '@automaker/utils'; -import { DEFAULT_PHASE_MODELS, isCursorModel } from '@automaker/types'; +import { DEFAULT_PHASE_MODELS, isClaudeModel, isCodexModel } from '@automaker/types'; import { resolvePhaseModel } from '@automaker/model-resolver'; import { extractJson } from '../../lib/json-extractor.js'; import { streamingQuery } from '../../providers/simple-query-service.js'; @@ -120,8 +120,8 @@ ${prompts.appSpec.structuredSpecInstructions}`; let responseText = ''; let structuredOutput: SpecOutput | null = null; - // Determine if we should use structured output (Claude supports it, Cursor doesn't) - const useStructuredOutput = !isCursorModel(model); + // Determine if we should use structured output (only Claude and Codex support it) + const useStructuredOutput = isClaudeModel(model) || isCodexModel(model); // Build the final prompt - for Cursor, include JSON schema instructions let finalPrompt = prompt;