From 5961ae1bb9e8ae31c1b888ecf7c52f870a121c1a Mon Sep 17 00:00:00 2001 From: shuage Date: Sun, 28 Jun 2026 15:53:23 +0800 Subject: [PATCH] fix: request assistant reply for structured output --- src/services/ai/opencode-provider.ts | 4 +++- tests/opencode-provider.test.ts | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/services/ai/opencode-provider.ts b/src/services/ai/opencode-provider.ts index f812212..a9b5a7f 100644 --- a/src/services/ai/opencode-provider.ts +++ b/src/services/ai/opencode-provider.ts @@ -91,7 +91,9 @@ export async function generateStructuredOutput(opts: StructuredOutputOptions< schema: jsonSchema as Record, ...(retryCount !== undefined ? { retryCount } : {}), }, - noReply: true, + // Structured output is produced by opencode's assistant loop; noReply is + // context-only and returns before `info.structured` can be populated. + noReply: false, }); const data = ( diff --git a/tests/opencode-provider.test.ts b/tests/opencode-provider.test.ts index fc71ab8..ad6147d 100644 --- a/tests/opencode-provider.test.ts +++ b/tests/opencode-provider.test.ts @@ -146,7 +146,7 @@ describe("generateStructuredOutput", () => { modelID: "gpt-4o-mini", }); expect(promptBody.system).toBe("system"); - expect(promptBody.noReply).toBe(true); + expect(promptBody.noReply).toBe(false); const format = promptBody.format as Record; expect(format.type).toBe("json_schema"); expect(format.schema).toBeDefined();