71f4b1eeb6
Full 2-panel workspace at /ops/ai-monitoring: metrics strip (total, failed, pending, approval rate, top prompt version, active model), filterable output table by type/status/error, and detail panel with output preview, prompt versioning, error details, and role-aware review actions. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
25 lines
976 B
TypeScript
25 lines
976 B
TypeScript
import { MockupAIMonitoringProvider } from '../provider/MockupAIMonitoringProvider'
|
|
import type { AIMonitoringFilters } from '../provider/IAIMonitoringProvider'
|
|
import type { AIOutput } from '../domain/aiOutput'
|
|
import type { ReviewStatus } from '../domain/enums'
|
|
import type { ListResponse, ItemResponse } from './types'
|
|
|
|
const provider = MockupAIMonitoringProvider
|
|
|
|
export const aiMonitoringService = {
|
|
async getOutputs(filters?: AIMonitoringFilters): Promise<ListResponse<AIOutput>> {
|
|
const data = await provider.getOutputs(filters)
|
|
return { data, meta: { total: data.length, page: 1, pageSize: data.length, hasMore: false } }
|
|
},
|
|
|
|
async getOutput(id: string): Promise<ItemResponse<AIOutput | null>> {
|
|
const data = await provider.getOutput(id)
|
|
return { data }
|
|
},
|
|
|
|
async updateReviewStatus(id: string, status: ReviewStatus): Promise<ItemResponse<AIOutput>> {
|
|
const data = await provider.updateReviewStatus(id, status)
|
|
return { data }
|
|
},
|
|
}
|