summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2026-03-21 09:11:15 -0400
committerDax Raad <[email protected]>2026-03-21 09:11:15 -0400
commitf80343b875124cc96807b47055ecb2e28c6d3ebf (patch)
tree9aee580a553c2fe1a20bd6e5a65a1b30b514b26d
parent9b805e1cc4ba4a98419ca13d9d487c4550af8ddf (diff)
downloadopencode-f80343b875124cc96807b47055ecb2e28c6d3ebf.tar.gz
opencode-f80343b875124cc96807b47055ecb2e28c6d3ebf.zip
fix annotation
-rw-r--r--packages/opencode/src/auth/index.ts2
-rw-r--r--packages/opencode/src/util/effect-zod.ts6
-rw-r--r--packages/sdk/js/src/v2/gen/sdk.gen.ts8
-rw-r--r--packages/sdk/js/src/v2/gen/types.gen.ts4
4 files changed, 13 insertions, 7 deletions
diff --git a/packages/opencode/src/auth/index.ts b/packages/opencode/src/auth/index.ts
index c50040f1d..2238d57f5 100644
--- a/packages/opencode/src/auth/index.ts
+++ b/packages/opencode/src/auth/index.ts
@@ -32,7 +32,7 @@ export namespace Auth {
token: Schema.String,
}) {}
- const _Info = Schema.Union([Oauth, Api, WellKnown])
+ const _Info = Schema.Union([Oauth, Api, WellKnown]).annotate({ discriminator: "type", identifier: "Auth" })
export const Info = Object.assign(_Info, { zod: zod(_Info) })
export type Info = Schema.Schema.Type<typeof _Info>
diff --git a/packages/opencode/src/util/effect-zod.ts b/packages/opencode/src/util/effect-zod.ts
index c1407594c..97cbbd2fc 100644
--- a/packages/opencode/src/util/effect-zod.ts
+++ b/packages/opencode/src/util/effect-zod.ts
@@ -60,6 +60,12 @@ function union(ast: SchemaAST.Union): z.ZodTypeAny {
const items = ast.types.map(walk)
if (items.length === 1) return items[0]
if (items.length < 2) return fail(ast)
+
+ const discriminator = (ast as any).annotations?.discriminator
+ if (discriminator) {
+ return z.discriminatedUnion(discriminator, items as [z.ZodObject<any>, z.ZodObject<any>, ...z.ZodObject<any>[]])
+ }
+
return z.union(items as [z.ZodTypeAny, z.ZodTypeAny, ...Array<z.ZodTypeAny>])
}
diff --git a/packages/sdk/js/src/v2/gen/sdk.gen.ts b/packages/sdk/js/src/v2/gen/sdk.gen.ts
index df46c66f2..b6821322e 100644
--- a/packages/sdk/js/src/v2/gen/sdk.gen.ts
+++ b/packages/sdk/js/src/v2/gen/sdk.gen.ts
@@ -4,11 +4,11 @@ import { client } from "./client.gen.js"
import { buildClientParams, type Client, type Options as Options2, type TDataShape } from "./client/index.js"
import type {
AgentPartInput,
- ApiAuth,
AppAgentsResponses,
AppLogErrors,
AppLogResponses,
AppSkillsResponses,
+ Auth as Auth3,
AuthRemoveErrors,
AuthRemoveResponses,
AuthSetErrors,
@@ -63,7 +63,6 @@ import type {
McpLocalConfig,
McpRemoteConfig,
McpStatusResponses,
- OAuth,
OutputFormat,
Part as Part2,
PartDeleteErrors,
@@ -174,7 +173,6 @@ import type {
TuiShowToastResponses,
TuiSubmitPromptResponses,
VcsGetResponses,
- WellKnownAuth,
WorktreeCreateErrors,
WorktreeCreateInput,
WorktreeCreateResponses,
@@ -339,7 +337,7 @@ export class Auth extends HeyApiClient {
public set<ThrowOnError extends boolean = false>(
parameters: {
providerID: string
- body?: OAuth | ApiAuth | WellKnownAuth
+ auth?: Auth3
},
options?: Options<never, ThrowOnError>,
) {
@@ -349,7 +347,7 @@ export class Auth extends HeyApiClient {
{
args: [
{ in: "path", key: "providerID" },
- { key: "body", map: "body" },
+ { key: "auth", map: "body" },
],
},
],
diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts
index 593869326..f7aab687e 100644
--- a/packages/sdk/js/src/v2/gen/types.gen.ts
+++ b/packages/sdk/js/src/v2/gen/types.gen.ts
@@ -1534,6 +1534,8 @@ export type WellKnownAuth = {
token: string
}
+export type Auth = OAuth | ApiAuth | WellKnownAuth
+
export type NotFoundError = {
name: "NotFoundError"
data: {
@@ -2056,7 +2058,7 @@ export type AuthRemoveResponses = {
export type AuthRemoveResponse = AuthRemoveResponses[keyof AuthRemoveResponses]
export type AuthSetData = {
- body?: OAuth | ApiAuth | WellKnownAuth
+ body?: Auth
path: {
providerID: string
}