diff options
| author | Dax Raad <[email protected]> | 2025-08-06 20:24:36 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-08-06 20:24:36 -0400 |
| commit | 1a561bb5120b1b87a4c477f7cb6c3a0a4ce79114 (patch) | |
| tree | da051897f199e674474fedb387587ab26f25013e | |
| parent | fecae609d92c72195a6b336b9da58bf001a8fc0c (diff) | |
| download | opencode-1a561bb5120b1b87a4c477f7cb6c3a0a4ce79114.tar.gz opencode-1a561bb5120b1b87a4c477f7cb6c3a0a4ce79114.zip | |
add api to get session
| -rw-r--r-- | packages/opencode/src/server/server.ts | 28 | ||||
| -rw-r--r-- | packages/sdk/js/src/gen/sdk.gen.ts | 12 | ||||
| -rw-r--r-- | packages/sdk/js/src/gen/types.gen.ts | 19 |
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: { |
