summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-04-14 16:57:32 -0400
committerGitHub <[email protected]>2026-04-14 16:57:32 -0400
commit3cf7c7536b42eadb3dfbe8f20b13a47ec82e3174 (patch)
tree7e5dc78248ab59866a2b1b7b8038661742d32342
parent85674f4bfd15723c6c8afd96d74120ded9b8437b (diff)
downloadopencode-3cf7c7536b42eadb3dfbe8f20b13a47ec82e3174.tar.gz
opencode-3cf7c7536b42eadb3dfbe8f20b13a47ec82e3174.zip
fix(question): restore flat reply sdk shape (#22487)
-rw-r--r--packages/opencode/src/server/instance/httpapi/question.ts9
-rw-r--r--packages/opencode/src/server/instance/question.ts8
-rw-r--r--packages/sdk/js/src/v2/gen/sdk.gen.ts6
-rw-r--r--packages/sdk/js/src/v2/gen/types.gen.ts14
4 files changed, 23 insertions, 14 deletions
diff --git a/packages/opencode/src/server/instance/httpapi/question.ts b/packages/opencode/src/server/instance/httpapi/question.ts
index c694d321d..496476b68 100644
--- a/packages/opencode/src/server/instance/httpapi/question.ts
+++ b/packages/opencode/src/server/instance/httpapi/question.ts
@@ -9,6 +9,11 @@ import { HttpApi, HttpApiBuilder, HttpApiEndpoint, HttpApiGroup, OpenApi } from
import type { Handler } from "hono"
const root = "/experimental/httpapi/question"
+const Reply = Schema.Struct({
+ answers: Schema.Array(Question.Answer).annotate({
+ description: "User answers in order of questions (each answer is an array of selected labels)",
+ }),
+})
const Api = HttpApi.make("question")
.add(
@@ -25,7 +30,7 @@ const Api = HttpApi.make("question")
),
HttpApiEndpoint.post("reply", `${root}/:requestID/reply`, {
params: { requestID: QuestionID },
- payload: Question.Reply,
+ payload: Reply,
success: Schema.Boolean,
}).annotateMerge(
OpenApi.annotations({
@@ -62,7 +67,7 @@ const QuestionLive = HttpApiBuilder.group(
const reply = Effect.fn("QuestionHttpApi.reply")(function* (ctx: {
params: { requestID: QuestionID }
- payload: Question.Reply
+ payload: Schema.Schema.Type<typeof Reply>
}) {
yield* svc.reply({
requestID: ctx.params.requestID,
diff --git a/packages/opencode/src/server/instance/question.ts b/packages/opencode/src/server/instance/question.ts
index 1375f12e7..0f61a1867 100644
--- a/packages/opencode/src/server/instance/question.ts
+++ b/packages/opencode/src/server/instance/question.ts
@@ -8,6 +8,12 @@ import z from "zod"
import { errors } from "../error"
import { lazy } from "../../util/lazy"
+const Reply = z.object({
+ answers: Question.Answer.zod
+ .array()
+ .describe("User answers in order of questions (each answer is an array of selected labels)"),
+})
+
export const QuestionRoutes = lazy(() =>
new Hono()
.get(
@@ -56,7 +62,7 @@ export const QuestionRoutes = lazy(() =>
requestID: QuestionID.zod,
}),
),
- validator("json", Question.Reply.zod),
+ validator("json", Reply),
async (c) => {
const params = c.req.valid("param")
const json = c.req.valid("json")
diff --git a/packages/sdk/js/src/v2/gen/sdk.gen.ts b/packages/sdk/js/src/v2/gen/sdk.gen.ts
index cbd8b59f2..b5fc976bb 100644
--- a/packages/sdk/js/src/v2/gen/sdk.gen.ts
+++ b/packages/sdk/js/src/v2/gen/sdk.gen.ts
@@ -105,10 +105,10 @@ import type {
PtyRemoveResponses,
PtyUpdateErrors,
PtyUpdateResponses,
+ QuestionAnswer,
QuestionListResponses,
QuestionRejectErrors,
QuestionRejectResponses,
- QuestionReply,
QuestionReplyErrors,
QuestionReplyResponses,
SessionAbortErrors,
@@ -2738,7 +2738,7 @@ export class Question extends HeyApiClient {
requestID: string
directory?: string
workspace?: string
- questionReply?: QuestionReply
+ answers?: Array<QuestionAnswer>
},
options?: Options<never, ThrowOnError>,
) {
@@ -2750,7 +2750,7 @@ export class Question extends HeyApiClient {
{ in: "path", key: "requestID" },
{ in: "query", key: "directory" },
{ in: "query", key: "workspace" },
- { key: "questionReply", map: "body" },
+ { in: "body", key: "answers" },
],
},
],
diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts
index 141c93c52..8f4c16c5b 100644
--- a/packages/sdk/js/src/v2/gen/types.gen.ts
+++ b/packages/sdk/js/src/v2/gen/types.gen.ts
@@ -1925,13 +1925,6 @@ export type SubtaskPartInput = {
command?: string
}
-export type QuestionReply = {
- /**
- * User answers in order of questions (each answer is an array of selected labels)
- */
- answers: Array<QuestionAnswer>
-}
-
export type ProviderAuthMethod = {
type: "oauth" | "api"
label: string
@@ -4259,7 +4252,12 @@ export type QuestionListResponses = {
export type QuestionListResponse = QuestionListResponses[keyof QuestionListResponses]
export type QuestionReplyData = {
- body?: QuestionReply
+ body?: {
+ /**
+ * User answers in order of questions (each answer is an array of selected labels)
+ */
+ answers: Array<QuestionAnswer>
+ }
path: {
requestID: string
}