| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import { DateTime } from "effect"
- import { AgentV2 } from "../agent"
- import { Location } from "../location"
- import { ModelV2 } from "../model"
- import { ProjectV2 } from "../project"
- import { ProviderV2 } from "../provider"
- import { AbsolutePath, RelativePath } from "../schema"
- import { WorkspaceV2 } from "../workspace"
- import { SessionSchema } from "./schema"
- import { SessionTable } from "./sql"
- import { SessionMessage } from "./message"
- import { Snapshot } from "../snapshot"
- export function fromRow(row: typeof SessionTable.$inferSelect): SessionSchema.Info {
- return SessionSchema.Info.make({
- id: SessionSchema.ID.make(row.id),
- projectID: ProjectV2.ID.make(row.project_id),
- title: row.title,
- parentID: row.parent_id ? SessionSchema.ID.make(row.parent_id) : undefined,
- agent: row.agent ? AgentV2.ID.make(row.agent) : undefined,
- model: row.model
- ? {
- id: ModelV2.ID.make(row.model.id),
- providerID: ProviderV2.ID.make(row.model.providerID),
- variant: ModelV2.VariantID.make(row.model.variant ?? "default"),
- }
- : undefined,
- cost: row.cost,
- tokens: {
- input: row.tokens_input,
- output: row.tokens_output,
- reasoning: row.tokens_reasoning,
- cache: {
- read: row.tokens_cache_read,
- write: row.tokens_cache_write,
- },
- },
- location: Location.Ref.make({
- directory: AbsolutePath.make(row.directory),
- workspaceID: row.workspace_id ? WorkspaceV2.ID.make(row.workspace_id) : undefined,
- }),
- subpath: row.path ? RelativePath.make(row.path) : undefined,
- revert: row.revert ? { ...row.revert, messageID: SessionMessage.ID.make(row.revert.messageID) } : undefined,
- time: {
- created: DateTime.makeUnsafe(row.time_created),
- updated: DateTime.makeUnsafe(row.time_updated),
- archived: row.time_archived ? DateTime.makeUnsafe(row.time_archived) : undefined,
- },
- })
- }
|