summaryrefslogtreecommitdiffhomepage
path: root/js/src/server/server.ts
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-05-26 18:06:41 -0400
committerDax Raad <[email protected]>2025-05-26 18:06:47 -0400
commitf26873f5dea89d527140ef4494fd2c22a05cb125 (patch)
treeb0762f44028bd8bbad127c0a4ecc9978abf19899 /js/src/server/server.ts
parent66b18959ebc7b699a74ce69d3adfb4c4dcaa5fd1 (diff)
downloadopencode-f26873f5dea89d527140ef4494fd2c22a05cb125.tar.gz
opencode-f26873f5dea89d527140ef4494fd2c22a05cb125.zip
sync
Diffstat (limited to 'js/src/server/server.ts')
-rw-r--r--js/src/server/server.ts38
1 files changed, 33 insertions, 5 deletions
diff --git a/js/src/server/server.ts b/js/src/server/server.ts
index c59f2d032..52daa5933 100644
--- a/js/src/server/server.ts
+++ b/js/src/server/server.ts
@@ -8,6 +8,10 @@ import { resolver, validator as zValidator } from "hono-openapi/zod";
import { z } from "zod";
import "zod-openapi/extend";
+const SessionInfo = Session.Info.openapi({
+ ref: "Session.Info",
+});
+
export namespace Server {
const log = Log.create({ service: "server" });
const PORT = 16713;
@@ -59,11 +63,7 @@ export namespace Server {
description: "Successfully created session",
content: {
"application/json": {
- schema: resolver(
- Session.Info.openapi({
- ref: "Session.Info",
- }),
- ),
+ schema: resolver(SessionInfo),
},
},
},
@@ -75,6 +75,34 @@ export namespace Server {
},
)
.post(
+ "/session_share",
+ describeRoute({
+ description: "Share the session",
+ responses: {
+ 200: {
+ description: "Successfully shared session",
+ content: {
+ "application/json": {
+ schema: resolver(SessionInfo),
+ },
+ },
+ },
+ },
+ }),
+ zValidator(
+ "json",
+ z.object({
+ sessionID: z.string(),
+ }),
+ ),
+ async (c) => {
+ const body = c.req.valid("json");
+ await Session.share(body.sessionID);
+ const session = await Session.get(body.sessionID);
+ return c.json(session);
+ },
+ )
+ .post(
"/session_messages",
describeRoute({
description: "Get messages for a session",