36 lines
998 B
TypeScript
36 lines
998 B
TypeScript
import { getAPIClient } from "@/core/api";
|
|
|
|
import { CANVAS_THREAD_METADATA } from "../constants";
|
|
import type { CanvasThreadMetadata, CanvasThreadValues } from "../types/thread";
|
|
|
|
export async function createCanvasThread(
|
|
metadata?: Partial<CanvasThreadMetadata>,
|
|
): Promise<string> {
|
|
const client = getAPIClient();
|
|
const thread = await client.threads.create({
|
|
metadata: { ...CANVAS_THREAD_METADATA, ...metadata },
|
|
});
|
|
return thread.thread_id;
|
|
}
|
|
|
|
export async function getCanvasThread(
|
|
threadId: string,
|
|
): Promise<CanvasThreadValues | null> {
|
|
const client = getAPIClient();
|
|
try {
|
|
const state =
|
|
await client.threads.getState<CanvasThreadValues>(threadId);
|
|
return (state.values as CanvasThreadValues) ?? null;
|
|
} catch {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
export async function updateCanvasThreadState(
|
|
threadId: string,
|
|
values: Partial<CanvasThreadValues>,
|
|
): Promise<void> {
|
|
const client = getAPIClient();
|
|
await client.threads.updateState(threadId, { values });
|
|
}
|