Spaces:
Paused
Paused
| import type { ActivityEvent } from "@paperclipai/shared"; | |
| import { api } from "./client"; | |
| export interface RunForIssue { | |
| runId: string; | |
| status: string; | |
| agentId: string; | |
| startedAt: string | null; | |
| finishedAt: string | null; | |
| createdAt: string; | |
| invocationSource: string; | |
| usageJson: Record<string, unknown> | null; | |
| resultJson: Record<string, unknown> | null; | |
| } | |
| export interface IssueForRun { | |
| issueId: string; | |
| identifier: string | null; | |
| title: string; | |
| status: string; | |
| priority: string; | |
| } | |
| export const activityApi = { | |
| list: (companyId: string, filters?: { entityType?: string; entityId?: string; agentId?: string }) => { | |
| const params = new URLSearchParams(); | |
| if (filters?.entityType) params.set("entityType", filters.entityType); | |
| if (filters?.entityId) params.set("entityId", filters.entityId); | |
| if (filters?.agentId) params.set("agentId", filters.agentId); | |
| const qs = params.toString(); | |
| return api.get<ActivityEvent[]>(`/companies/${companyId}/activity${qs ? `?${qs}` : ""}`); | |
| }, | |
| forIssue: (issueId: string) => api.get<ActivityEvent[]>(`/issues/${issueId}/activity`), | |
| runsForIssue: (issueId: string) => api.get<RunForIssue[]>(`/issues/${issueId}/runs`), | |
| issuesForRun: (runId: string) => api.get<IssueForRun[]>(`/heartbeat-runs/${runId}/issues`), | |
| }; | |