diff options
| author | Dax Raad <[email protected]> | 2025-05-27 15:34:46 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-05-27 15:34:46 -0400 |
| commit | bdac7d10dd47f0baf39e8d8351376113a83343f5 (patch) | |
| tree | f5b2ff99d8127d0a650e64f13a3303218ca165cf | |
| parent | 0ecfdd7501e717769d97ce572633a0f953abf8d2 (diff) | |
| download | opencode-bdac7d10dd47f0baf39e8d8351376113a83343f5.tar.gz opencode-bdac7d10dd47f0baf39e8d8351376113a83343f5.zip | |
add session list
| -rw-r--r-- | js/src/server/server.ts | 20 | ||||
| -rw-r--r-- | js/src/session/session.ts | 3 |
2 files changed, 22 insertions, 1 deletions
diff --git a/js/src/server/server.ts b/js/src/server/server.ts index 8003420b7..b10fbe028 100644 --- a/js/src/server/server.ts +++ b/js/src/server/server.ts @@ -131,6 +131,26 @@ export namespace Server { }, ) .post( + "/session_list", + describeRoute({ + description: "List all sessions", + responses: { + 200: { + description: "List of sessions", + content: { + "application/json": { + schema: resolver(z.custom<Session.Info[]>()), + }, + }, + }, + }, + }), + async (c) => { + const sessions = await Array.fromAsync(Session.list()); + return c.json(sessions); + }, + ) + .post( "/session_chat", zValidator( "json", diff --git a/js/src/session/session.ts b/js/src/session/session.ts index 8b3f7fba1..7447f4916 100644 --- a/js/src/session/session.ts +++ b/js/src/session/session.ts @@ -122,7 +122,8 @@ export namespace Session { export async function* list() { for await (const item of Storage.list("session/info")) { - yield path.basename(item, ".json"); + const sessionID = path.basename(item, ".json"); + yield get(sessionID); } } |
