summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src/definition
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-04-15 22:07:42 -0400
committerGitHub <[email protected]>2026-04-16 02:07:42 +0000
commit5eae92684658c36a5026c9a36edcdf1163517022 (patch)
tree0770c7d674b274454a409211c0864ed613ef2bc3 /packages/server/src/definition
parentcce05c16658a39d091f658bdb53dcce1e88c66d0 (diff)
downloadopencode-5eae92684658c36a5026c9a36edcdf1163517022.tar.gz
opencode-5eae92684658c36a5026c9a36edcdf1163517022.zip
add experimental provider auth HttpApi slice (#22389)
Diffstat (limited to 'packages/server/src/definition')
-rw-r--r--packages/server/src/definition/api.ts12
-rw-r--r--packages/server/src/definition/index.ts2
-rw-r--r--packages/server/src/definition/question.ts94
3 files changed, 0 insertions, 108 deletions
diff --git a/packages/server/src/definition/api.ts b/packages/server/src/definition/api.ts
deleted file mode 100644
index e2f70196d..000000000
--- a/packages/server/src/definition/api.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { HttpApi, OpenApi } from "effect/unstable/httpapi"
-import { questionApi } from "./question.js"
-
-export const api = HttpApi.make("opencode")
- .addHttpApi(questionApi)
- .annotateMerge(
- OpenApi.annotations({
- title: "opencode experimental HttpApi",
- version: "0.0.1",
- description: "Experimental HttpApi surface for selected instance routes.",
- }),
- )
diff --git a/packages/server/src/definition/index.ts b/packages/server/src/definition/index.ts
deleted file mode 100644
index e9a52dc93..000000000
--- a/packages/server/src/definition/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { api } from "./api.js"
-export { questionApi, QuestionReply, QuestionRequest } from "./question.js"
diff --git a/packages/server/src/definition/question.ts b/packages/server/src/definition/question.ts
deleted file mode 100644
index 0d161e013..000000000
--- a/packages/server/src/definition/question.ts
+++ /dev/null
@@ -1,94 +0,0 @@
-import { Schema } from "effect"
-import { HttpApi, HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi"
-
-const root = "/experimental/httpapi/question"
-
-// Temporary transport-local schemas until canonical question schemas move into packages/core.
-export const QuestionID = Schema.String.annotate({ identifier: "QuestionID" })
-export const SessionID = Schema.String.annotate({ identifier: "SessionID" })
-export const MessageID = Schema.String.annotate({ identifier: "MessageID" })
-
-export class QuestionOption extends Schema.Class<QuestionOption>("QuestionOption")({
- label: Schema.String.annotate({
- description: "Display text (1-5 words, concise)",
- }),
- description: Schema.String.annotate({
- description: "Explanation of choice",
- }),
-}) {}
-
-const base = {
- question: Schema.String.annotate({
- description: "Complete question",
- }),
- header: Schema.String.annotate({
- description: "Very short label (max 30 chars)",
- }),
- options: Schema.Array(QuestionOption).annotate({
- description: "Available choices",
- }),
- multiple: Schema.optional(Schema.Boolean).annotate({
- description: "Allow selecting multiple choices",
- }),
-}
-
-export class QuestionInfo extends Schema.Class<QuestionInfo>("QuestionInfo")({
- ...base,
- custom: Schema.optional(Schema.Boolean).annotate({
- description: "Allow typing a custom answer (default: true)",
- }),
-}) {}
-
-export class QuestionTool extends Schema.Class<QuestionTool>("QuestionTool")({
- messageID: MessageID,
- callID: Schema.String,
-}) {}
-
-export class QuestionRequest extends Schema.Class<QuestionRequest>("QuestionRequest")({
- id: QuestionID,
- sessionID: SessionID,
- questions: Schema.Array(QuestionInfo).annotate({
- description: "Questions to ask",
- }),
- tool: Schema.optional(QuestionTool),
-}) {}
-
-export const QuestionAnswer = Schema.Array(Schema.String).annotate({ identifier: "QuestionAnswer" })
-
-export class QuestionReply extends Schema.Class<QuestionReply>("QuestionReply")({
- answers: Schema.Array(QuestionAnswer).annotate({
- description: "User answers in order of questions (each answer is an array of selected labels)",
- }),
-}) {}
-
-export const questionApi = HttpApi.make("question").add(
- HttpApiGroup.make("question")
- .add(
- HttpApiEndpoint.get("list", root, {
- success: Schema.Array(QuestionRequest),
- }).annotateMerge(
- OpenApi.annotations({
- identifier: "question.list",
- summary: "List pending questions",
- description: "Get all pending question requests across all sessions.",
- }),
- ),
- HttpApiEndpoint.post("reply", `${root}/:requestID/reply`, {
- params: { requestID: QuestionID },
- payload: QuestionReply,
- success: Schema.Boolean,
- }).annotateMerge(
- OpenApi.annotations({
- identifier: "question.reply",
- summary: "Reply to question request",
- description: "Provide answers to a question request from the AI assistant.",
- }),
- ),
- )
- .annotateMerge(
- OpenApi.annotations({
- title: "question",
- description: "Experimental HttpApi question routes.",
- }),
- ),
-)