diff options
Diffstat (limited to 'js/src/session/session.ts')
| -rw-r--r-- | js/src/session/session.ts | 12 |
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); |
