export const queryKeys = { projects: { all: ["projects"] as const, list: () => [...queryKeys.projects.all, "list"] as const, detail: (name: string) => [...queryKeys.projects.all, "detail", name] as const, }, domains: { all: ["domains"] as const, list: () => [...queryKeys.domains.all, "list"] as const, }, ontology: { all: ["ontology"] as const, byDomain: (domain: string) => [...queryKeys.ontology.all, "byDomain", domain] as const, }, sources: { all: ["sources"] as const, byProject: (projectName: string) => [...queryKeys.sources.all, "byProject", projectName] as const, }, crawl: { all: ["crawl"] as const, job: (jobId: string) => [...queryKeys.crawl.all, "job", jobId] as const, }, research: { all: ["research"] as const, sessions: (projectName: string) => [...queryKeys.research.all, "sessions", projectName] as const, session: (jobId: string) => [...queryKeys.research.all, "session", jobId] as const, }, entities: { all: ["entities"] as const, list: (projectName: string, entityType?: string) => [ ...queryKeys.entities.all, "list", projectName, entityType ?? "*", ] as const, }, claims: { all: ["claims"] as const, list: (projectName: string, status?: string, limit?: number) => [ ...queryKeys.claims.all, "list", projectName, status ?? "*", limit ?? "*", ] as const, }, platform: { all: ["platform"] as const, pipeline: (projectName: string) => [...queryKeys.platform.all, "pipeline", projectName] as const, extractionLogs: (projectName: string, limit: number) => [ ...queryKeys.platform.all, "extractionLogs", projectName, limit, ] as const, registry: (projectName: string) => [...queryKeys.platform.all, "registry", projectName] as const, proposals: (projectName: string, limit: number) => [...queryKeys.platform.all, "proposals", projectName, limit] as const, triples: (projectName: string, status: string, limit: number) => [ ...queryKeys.platform.all, "triples", projectName, status, limit, ] as const, graph: ( projectName: string, entityId: string, includeCandidates: boolean, status: string, limit: number, ) => [ ...queryKeys.platform.all, "graph", projectName, entityId, includeCandidates, status, limit, ] as const, exportJson: ( projectName: string, status: string, includeEvidence: boolean, limit: number, ) => [ ...queryKeys.platform.all, "exportJson", projectName, status, includeEvidence, limit, ] as const, }, };