diff options
| author | Dax Raad <[email protected]> | 2025-05-23 16:20:21 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-05-26 12:40:17 -0400 |
| commit | 5f750b7368226ce455a6848f5f744d43179198e5 (patch) | |
| tree | c7b85ed5f9a71ac957cdef04368be62fe7f04745 /js/src/session | |
| parent | e2dc5a8faf9d4362a99c5cd74a676e3b5436ceb4 (diff) | |
| download | opencode-5f750b7368226ce455a6848f5f744d43179198e5.tar.gz opencode-5f750b7368226ce455a6848f5f744d43179198e5.zip | |
share
Diffstat (limited to 'js/src/session')
| -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); |
