summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-08-06 20:24:36 -0400
committerDax Raad <[email protected]>2025-08-06 20:24:36 -0400
commit1a561bb5120b1b87a4c477f7cb6c3a0a4ce79114 (patch)
treeda051897f199e674474fedb387587ab26f25013e
parentfecae609d92c72195a6b336b9da58bf001a8fc0c (diff)
downloadopencode-1a561bb5120b1b87a4c477f7cb6c3a0a4ce79114.tar.gz
opencode-1a561bb5120b1b87a4c477f7cb6c3a0a4ce79114.zip
add api to get session
-rw-r--r--packages/opencode/src/server/server.ts28
-rw-r--r--packages/sdk/js/src/gen/sdk.gen.ts12
-rw-r--r--packages/sdk/js/src/gen/types.gen.ts19
3 files changed, 59 insertions, 0 deletions
diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts
index c97dd34d9..7e6a4c145 100644
--- a/packages/opencode/src/server/server.ts
+++ b/packages/opencode/src/server/server.ts
@@ -219,6 +219,34 @@ export namespace Server {
return c.json(sessions)
},
)
+ .get(
+ "/session/:sessionID",
+ describeRoute({
+ description: "Get session",
+ operationId: "session.get",
+ responses: {
+ 200: {
+ description: "Get session",
+ content: {
+ "application/json": {
+ schema: resolver(Session.Info),
+ },
+ },
+ },
+ },
+ }),
+ zValidator(
+ "param",
+ z.object({
+ id: z.string(),
+ }),
+ ),
+ async (c) => {
+ const sessionID = c.req.valid("param").id
+ const session = await Session.get(sessionID)
+ return c.json(session)
+ },
+ )
.post(
"/session",
describeRoute({
diff --git a/packages/sdk/js/src/gen/sdk.gen.ts b/packages/sdk/js/src/gen/sdk.gen.ts
index 4ad7ff48b..647ab7f86 100644
--- a/packages/sdk/js/src/gen/sdk.gen.ts
+++ b/packages/sdk/js/src/gen/sdk.gen.ts
@@ -15,6 +15,8 @@ import type {
SessionCreateData,
SessionCreateResponses,
SessionCreateErrors,
+ SessionGetData,
+ SessionGetResponses,
SessionDeleteData,
SessionDeleteResponses,
SessionInitData,
@@ -203,6 +205,16 @@ class Session extends _HeyApiClient {
}
/**
+ * Get session
+ */
+ public get<ThrowOnError extends boolean = false>(options: Options<SessionGetData, ThrowOnError>) {
+ return (options.client ?? this._client).get<SessionGetResponses, unknown, ThrowOnError>({
+ url: "/session/{sessionID}",
+ ...options,
+ })
+ }
+
+ /**
* Delete a session and all its data
*/
public delete<ThrowOnError extends boolean = false>(options: Options<SessionDeleteData, ThrowOnError>) {
diff --git a/packages/sdk/js/src/gen/types.gen.ts b/packages/sdk/js/src/gen/types.gen.ts
index 79224562d..25d962a57 100644
--- a/packages/sdk/js/src/gen/types.gen.ts
+++ b/packages/sdk/js/src/gen/types.gen.ts
@@ -537,6 +537,7 @@ export type Config = {
theme?: string
keybinds?: KeybindsConfig
plugin?: Array<string>
+ snapshot?: boolean
/**
* Control sharing behavior:'manual' allows manual sharing via commands, 'auto' enables automatic sharing, 'disabled' disables all sharing
*/
@@ -1102,6 +1103,24 @@ export type SessionCreateResponses = {
export type SessionCreateResponse = SessionCreateResponses[keyof SessionCreateResponses]
+export type SessionGetData = {
+ body?: never
+ path: {
+ sessionID: string
+ }
+ query?: never
+ url: "/session/{sessionID}"
+}
+
+export type SessionGetResponses = {
+ /**
+ * Get session
+ */
+ 200: Session
+}
+
+export type SessionGetResponse = SessionGetResponses[keyof SessionGetResponses]
+
export type SessionDeleteData = {
body?: never
path: {