| 1234567891011121314151617181920212223242526 |
- import type { ArtifactDetailProjection, BuildSummary, CardBusinessData, ExecutionViewV8, InspectorDetailProjection, InspectorWorkbenchProjection, PromptProjection } from "@/lib/types";
- const API_BASE = (process.env.NEXT_PUBLIC_API_BASE || process.env.NEXT_PUBLIC_VISUALIZATION_API || "http://127.0.0.1:8788").replace(/\/$/, "");
- export const moduleAuditUrl = (buildId: string) => `${API_BASE}/audit/${encodeURIComponent(buildId)}`;
- async function request<T>(path: string, signal?: AbortSignal): Promise<T> {
- const response = await fetch(`${API_BASE}${path}`, { signal, cache: "no-store", headers: { Accept: "application/json" } });
- if (!response.ok) throw new Error(`API ${response.status}: ${response.statusText}`);
- return response.json() as Promise<T>;
- }
- export async function listScriptBuilds(signal?: AbortSignal): Promise<BuildSummary[]> {
- const payload = await request<BuildSummary[] | { items?: Array<BuildSummary & { script_build_id?: string | number; buildId?: string | number }> }>("/api/script-builds?limit=30", signal);
- const items = Array.isArray(payload) ? payload : payload.items || [];
- return items.map((item) => { const raw = item as typeof item & { script_build_id?: string | number; buildId?: string | number }; return { ...item, id: String(item.id ?? raw.script_build_id ?? raw.buildId ?? "") }; });
- }
- export const getExecutionView = (id: string, signal?: AbortSignal) => request<ExecutionViewV8>(`/api/script-builds/${encodeURIComponent(id)}/execution-view`, signal);
- export const getRoundDetail = (buildId: string, roundIndex: number, signal?: AbortSignal) => request<InspectorDetailProjection>(`/api/script-builds/${encodeURIComponent(buildId)}/rounds/${roundIndex}`, signal);
- export const getActivityDetail = (buildId: string, detailRef: string, signal?: AbortSignal) => request<InspectorDetailProjection>(`/api/script-builds/${encodeURIComponent(buildId)}/activities/${encodeURIComponent(detailRef)}`, signal);
- export const getArtifactDetail = (buildId: string, snapshotRef: string, signal?: AbortSignal) => request<ArtifactDetailProjection>(`/api/script-builds/${encodeURIComponent(buildId)}/artifacts/${encodeURIComponent(snapshotRef)}`, signal);
- export const getDecisionPrompt = (buildId: string, promptRef: string, signal?: AbortSignal) => request<PromptProjection>(`/api/script-builds/${encodeURIComponent(buildId)}/decision-prompts/${encodeURIComponent(promptRef)}`, signal);
- export const getCardData = (buildId: string, detailRef: string, signal?: AbortSignal) => request<CardBusinessData>(`/api/script-builds/${encodeURIComponent(buildId)}/card-data/${encodeURIComponent(detailRef)}`, signal);
- export const getInspectorView = (buildId: string, detailRef: string, signal?: AbortSignal) => request<InspectorWorkbenchProjection>(`/api/script-builds/${encodeURIComponent(buildId)}/inspector-view/${encodeURIComponent(detailRef)}`, signal);
- export const errorMessage = (error: unknown) => error instanceof Error ? error.message : String(error);
|