Spaces:
Paused
Paused
| import type { AdapterSessionCodec } from "@paperclipai/adapter-utils"; | |
| function readNonEmptyString(value: unknown): string | null { | |
| return typeof value === "string" && value.trim().length > 0 ? value.trim() : null; | |
| } | |
| export const sessionCodec: AdapterSessionCodec = { | |
| deserialize(raw: unknown) { | |
| if (typeof raw !== "object" || raw === null || Array.isArray(raw)) return null; | |
| const record = raw as Record<string, unknown>; | |
| const sessionId = | |
| readNonEmptyString(record.sessionId) ?? | |
| readNonEmptyString(record.session_id) ?? | |
| readNonEmptyString(record.sessionID); | |
| if (!sessionId) return null; | |
| const cwd = | |
| readNonEmptyString(record.cwd) ?? | |
| readNonEmptyString(record.workdir) ?? | |
| readNonEmptyString(record.folder); | |
| const workspaceId = readNonEmptyString(record.workspaceId) ?? readNonEmptyString(record.workspace_id); | |
| const repoUrl = readNonEmptyString(record.repoUrl) ?? readNonEmptyString(record.repo_url); | |
| const repoRef = readNonEmptyString(record.repoRef) ?? readNonEmptyString(record.repo_ref); | |
| return { | |
| sessionId, | |
| ...(cwd ? { cwd } : {}), | |
| ...(workspaceId ? { workspaceId } : {}), | |
| ...(repoUrl ? { repoUrl } : {}), | |
| ...(repoRef ? { repoRef } : {}), | |
| }; | |
| }, | |
| serialize(params: Record<string, unknown> | null) { | |
| if (!params) return null; | |
| const sessionId = | |
| readNonEmptyString(params.sessionId) ?? | |
| readNonEmptyString(params.session_id) ?? | |
| readNonEmptyString(params.sessionID); | |
| if (!sessionId) return null; | |
| const cwd = | |
| readNonEmptyString(params.cwd) ?? | |
| readNonEmptyString(params.workdir) ?? | |
| readNonEmptyString(params.folder); | |
| const workspaceId = readNonEmptyString(params.workspaceId) ?? readNonEmptyString(params.workspace_id); | |
| const repoUrl = readNonEmptyString(params.repoUrl) ?? readNonEmptyString(params.repo_url); | |
| const repoRef = readNonEmptyString(params.repoRef) ?? readNonEmptyString(params.repo_ref); | |
| return { | |
| sessionId, | |
| ...(cwd ? { cwd } : {}), | |
| ...(workspaceId ? { workspaceId } : {}), | |
| ...(repoUrl ? { repoUrl } : {}), | |
| ...(repoRef ? { repoRef } : {}), | |
| }; | |
| }, | |
| getDisplayId(params: Record<string, unknown> | null) { | |
| if (!params) return null; | |
| return ( | |
| readNonEmptyString(params.sessionId) ?? | |
| readNonEmptyString(params.session_id) ?? | |
| readNonEmptyString(params.sessionID) | |
| ); | |
| }, | |
| }; | |
| export { execute } from "./execute.js"; | |
| export { listOpenCodeSkills, syncOpenCodeSkills } from "./skills.js"; | |
| export { testEnvironment } from "./test.js"; | |
| export { | |
| listOpenCodeModels, | |
| discoverOpenCodeModels, | |
| ensureOpenCodeModelConfiguredAndAvailable, | |
| resetOpenCodeModelsCacheForTests, | |
| } from "./models.js"; | |
| export { parseOpenCodeJsonl, isOpenCodeUnknownSessionError } from "./parse.js"; | |