From 066e4f064d83ef98aa5d76ff740f5666e392f707 Mon Sep 17 00:00:00 2001 From: "Tommy D. Rossi" Date: Mon, 13 Oct 2025 21:10:35 +0200 Subject: [PATCH 1/3] tweak: include stack trace in server error responses (#3134) --- packages/opencode/src/server/server.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts index 6a8d3f262..971fd4dbf 100644 --- a/packages/opencode/src/server/server.ts +++ b/packages/opencode/src/server/server.ts @@ -71,7 +71,8 @@ export namespace Server { status: 400, }) } - return c.json(new NamedError.Unknown({ message: err.toString() }).toObject(), { + const message = err instanceof Error && err.stack ? err.stack : err.toString() + return c.json(new NamedError.Unknown({ message }).toObject(), { status: 400, }) }) From d0519be0d0d75ca168d01bfb634736c3d8839ff4 Mon Sep 17 00:00:00 2001 From: AB <149434117+enlilz@users.noreply.github.com> Date: Mon, 13 Oct 2025 21:16:21 +0200 Subject: [PATCH 2/3] fix: add useCompletionUrls option to fix certain azure setups (#2528) Co-authored-by: andreas.blass Co-authored-by: GitHub Action --- packages/opencode/src/provider/provider.ts | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index e0fe4be23..62afe208d 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -18,7 +18,7 @@ export namespace Provider { type CustomLoader = (provider: ModelsDev.Provider) => Promise<{ autoload: boolean - getModel?: (sdk: any, modelID: string) => Promise + getModel?: (sdk: any, modelID: string, options?: Record) => Promise options?: Record }> @@ -58,7 +58,7 @@ export namespace Provider { openai: async () => { return { autoload: false, - async getModel(sdk: any, modelID: string) { + async getModel(sdk: any, modelID: string, options?: Record) { return sdk.responses(modelID) }, options: {}, @@ -67,8 +67,12 @@ export namespace Provider { azure: async () => { return { autoload: false, - async getModel(sdk: any, modelID: string) { - return sdk.responses(modelID) + async getModel(sdk: any, modelID: string, options?: Record) { + if (options?.["useCompletionUrls"]) { + return sdk.completion(modelID) + } else { + return sdk.responses(modelID) + } }, options: {}, } @@ -86,7 +90,7 @@ export namespace Provider { region, credentialProvider: fromNodeProviderChain(), }, - async getModel(sdk: any, modelID: string) { + async getModel(sdk: any, modelID: string, options?: Record) { let regionPrefix = region.split("-")[0] switch (regionPrefix) { @@ -197,7 +201,7 @@ export namespace Provider { [providerID: string]: { source: Source info: ModelsDev.Provider - getModel?: (sdk: any, modelID: string) => Promise + getModel?: (sdk: any, modelID: string, options?: Record) => Promise options: Record } } = {} @@ -213,7 +217,7 @@ export namespace Provider { id: string, options: Record, source: Source, - getModel?: (sdk: any, modelID: string) => Promise, + getModel?: (sdk: any, modelID: string, options?: Record) => Promise, ) { const provider = providers[id] if (!provider) { @@ -432,7 +436,9 @@ export namespace Provider { const sdk = await getSDK(provider.info, info) try { - const language = provider.getModel ? await provider.getModel(sdk, modelID) : sdk.languageModel(modelID) + const language = provider.getModel + ? await provider.getModel(sdk, modelID, provider.options) + : sdk.languageModel(modelID) log.info("found", { providerID, modelID }) s.models.set(key, { providerID, From 59765e015767264dd6c9f2d8a9351c29daaefbd6 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Mon, 13 Oct 2025 14:51:12 -0500 Subject: [PATCH 3/3] fix: typecheck (#3149) --- packages/opencode/src/provider/provider.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 62afe208d..5631bb6cb 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -58,7 +58,7 @@ export namespace Provider { openai: async () => { return { autoload: false, - async getModel(sdk: any, modelID: string, options?: Record) { + async getModel(sdk: any, modelID: string, _options?: Record) { return sdk.responses(modelID) }, options: {}, @@ -90,7 +90,7 @@ export namespace Provider { region, credentialProvider: fromNodeProviderChain(), }, - async getModel(sdk: any, modelID: string, options?: Record) { + async getModel(sdk: any, modelID: string, _options?: Record) { let regionPrefix = region.split("-")[0] switch (regionPrefix) {