UNPKG

rhombus-node-mcp

Version:
53 lines (52 loc) 2.1 kB
import { z } from "zod"; import { INCLUDE_FIELDS_ARG, FILTER_BY_ARG } from "../util.js"; export var CameraUptimeRequestType; (function (CameraUptimeRequestType) { CameraUptimeRequestType["GET_CAMERA_UPTIME"] = "get-camera-uptime"; CameraUptimeRequestType["GET_FLEET_UPTIME"] = "get-fleet-uptime"; })(CameraUptimeRequestType || (CameraUptimeRequestType = {})); export const TOOL_ARGS = { requestType: z .nativeEnum(CameraUptimeRequestType) .describe("The type of uptime request to make."), cameraUuid: z .string() .nullable() .describe("Camera UUID. Required for 'get-camera-uptime'."), startTimeSec: z .number() .describe("Start time as UNIX timestamp in seconds. Required for all requests."), endTimeSec: z .number() .describe("End time as UNIX timestamp in seconds. Required for all requests."), includeFields: INCLUDE_FIELDS_ARG, filterBy: FILTER_BY_ARG, }; const TOOL_ARGS_SCHEMA = z.object(TOOL_ARGS); const CameraUptimeSchema = z.object({ cameraUuid: z.string().optional(), cameraName: z.string().optional(), locationUuid: z.string().optional(), totalUptimeSeconds: z.number().optional(), totalPeriodSeconds: z.number().optional(), uptimePercentage: z.number().optional(), outageCount: z.number().optional(), longestOutageSeconds: z.number().optional(), }); export const OUTPUT_SCHEMA = z.object({ cameraUptime: CameraUptimeSchema.optional().describe("Uptime stats for a single camera"), fleetUptime: z .array(CameraUptimeSchema) .optional() .describe("Uptime stats for all cameras in the fleet, sorted by worst uptime first"), fleetSummary: z .object({ totalCameras: z.number().optional(), averageUptimePercentage: z.number().optional(), worstCamera: z.string().optional(), worstUptimePercentage: z.number().optional(), }) .optional() .describe("Fleet-wide uptime summary"), error: z.string().optional().describe("An error message if the request failed."), });