ManimCat / src /studio-agent /tasks /memory-task-store.ts
Bin29's picture
Sync from main: c1ef036 chore: document docker persistence volumes
94e1b2f
import type { StudioTask, StudioTaskStore } from '../domain/types'
export class InMemoryStudioTaskStore implements StudioTaskStore {
private readonly tasks = new Map<string, StudioTask>()
async create(task: StudioTask): Promise<StudioTask> {
this.tasks.set(task.id, task)
return task
}
async getById(taskId: string): Promise<StudioTask | null> {
return this.tasks.get(taskId) ?? null
}
async update(taskId: string, patch: Partial<StudioTask>): Promise<StudioTask | null> {
const current = this.tasks.get(taskId)
if (!current) {
return null
}
const next: StudioTask = {
...current,
...patch,
updatedAt: new Date().toISOString()
}
this.tasks.set(taskId, next)
return next
}
async listBySessionId(sessionId: string): Promise<StudioTask[]> {
return [...this.tasks.values()].filter((task) => task.sessionId === sessionId)
}
}