Download packages/app/src/utils/session-route.ts from SaylorTwift/opencode: direct link, hf CLI and curl.
- Browser
- Download file 1.49 kB
-
https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/app/src/utils/session-route.ts
- Command line
-
hf download hf://SaylorTwift/opencode/packages/app/src/utils/session-route.ts
-
curl -L -o session-route.ts https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/app/src/utils/session-route.ts
1.49 kB
| import { base64Encode } from "@opencode-ai/core/util/encode" | |
| import { ServerConnection } from "@/context/server" | |
| import { decode64 } from "@/utils/base64" | |
| export function sessionHref(server: ServerConnection.Key, sessionID: string) { | |
| return `/server/${base64Encode(server)}/session/${sessionID}` | |
| } | |
| export function legacySessionHref(directory: string, sessionID: string) { | |
| return `/${base64Encode(directory)}/session/${sessionID}` | |
| } | |
| export function requireServerKey(segment: string | undefined) { | |
| const key = decode64(segment) | |
| if (!key || base64Encode(key) !== segment) throw new Error("Invalid server route") | |
| return ServerConnection.Key.make(key) | |
| } | |
| export function legacySessionServer( | |
| tabs: readonly { type: "session"; server: ServerConnection.Key; sessionId: string }[], | |
| sessionID: string, | |
| active: ServerConnection.Key, | |
| ) { | |
| const matches = tabs.filter((tab) => tab.sessionId === sessionID) | |
| return matches.find((tab) => tab.server === active)?.server ?? (matches.length === 1 ? matches[0]?.server : active) | |
| } | |
| type SessionParent = { id: string; parentID?: string } | |
| export async function rootSession<T extends SessionParent>(session: T, get: (sessionID: string) => Promise<T>) { | |
| const seen = new Set([session.id]) | |
| let current = session | |
| while (current.parentID) { | |
| if (seen.has(current.parentID)) throw new Error(`Session parent cycle: ${current.parentID}`) | |
| seen.add(current.parentID) | |
| current = await get(current.parentID) | |
| } | |
| return current | |
| } | |