summaryrefslogtreecommitdiffhomepage
path: root/js/src/session/session.ts
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/session/session.ts')
-rw-r--r--js/src/session/session.ts12
1 files changed, 12 insertions, 0 deletions
diff --git a/js/src/session/session.ts b/js/src/session/session.ts
index 338c8dda9..33add33fa 100644
--- a/js/src/session/session.ts
+++ b/js/src/session/session.ts
@@ -18,12 +18,14 @@ import * as tools from "../tool";
import ANTHROPIC_PROMPT from "./prompt/anthropic.txt";
import type { Tool } from "../tool/tool";
+import { Share } from "../share/share";
export namespace Session {
const log = Log.create({ service: "session" });
export const Info = z.object({
id: Identifier.schema("session"),
+ shareID: z.string().optional(),
title: z.string(),
tokens: z.object({
input: z.number(),
@@ -77,6 +79,16 @@ export namespace Session {
return read as Info;
}
+ export async function share(id: string) {
+ const session = await get(id);
+ if (session.shareID) return session.shareID;
+ const shareID = await Share.create(id);
+ if (!shareID) return;
+ session.shareID = shareID;
+ await update(session);
+ return shareID;
+ }
+
export async function update(session: Info) {
state().sessions.set(session.id, session);
await Storage.writeJSON("session/info/" + session.id, session);