feat(server): add v2 session API endpoints (#31822)

This commit is contained in:
Dax
2026-06-10 22:55:01 -04:00
committed by GitHub
parent ff967e582c
commit 8bf0675997
11 changed files with 431 additions and 7 deletions
+31
View File
@@ -10,6 +10,7 @@ import {
SessionNotFoundError,
UnknownError,
} from "../errors"
import { AbsolutePath } from "@opencode-ai/core/schema"
const DefaultSessionsLimit = 50
@@ -61,6 +62,36 @@ export const SessionHandler = HttpApiBuilder.group(Api, "server.session", (handl
}
}),
)
.handle(
"session.create",
Effect.fn(function* (ctx) {
return {
data: yield* session.create({
id: ctx.payload.id,
agent: ctx.payload.agent,
model: ctx.payload.model,
location: ctx.payload.location ?? { directory: AbsolutePath.make(process.cwd()) },
}),
}
}),
)
.handle(
"session.get",
Effect.fn(function* (ctx) {
return {
data: yield* session.get(ctx.params.sessionID).pipe(
Effect.catchTag(
"Session.NotFoundError",
(error) =>
new SessionNotFoundError({
sessionID: error.sessionID,
message: `Session not found: ${error.sessionID}`,
}),
),
),
}
}),
)
.handle(
"session.prompt",
Effect.fn(function* (ctx) {