skillguard/lib/api-zod/src/generated/api.ts

345 lines
8.6 KiB
TypeScript
Raw Normal View History

2026-05-28 23:37:31 +00:00
/**
* Generated by orval v8.9.1 🍺
2026-05-28 23:37:31 +00:00
* Do not edit manually.
* Api
* API specification
* OpenAPI spec version: 0.1.0
*/
import * as zod from 'zod';
2026-05-28 23:37:31 +00:00
/**
* Returns server health status
* @summary Health check
*/
export const HealthCheckResponse = zod.object({
"status": zod.string()
})
/**
* Aggregated statistics across all scans.
* @summary Dashboard summary
*/
export const GetDashboardResponse = zod.object({
"totalScans": zod.number(),
"avgRiskScore": zod.number(),
"verdictCounts": zod.object({
"pass": zod.number(),
"review": zod.number(),
"block": zod.number()
}),
"severityTotals": zod.object({
"critical": zod.number(),
"high": zod.number(),
"medium": zod.number(),
"low": zod.number(),
"info": zod.number()
}),
"axisTotals": zod.object({
"security": zod.number(),
"privacy": zod.number()
}),
"recentScans": zod.array(zod.object({
"id": zod.number(),
"name": zod.string(),
"source": zod.enum(['zip', 'file', 'text']),
"status": zod.enum(['completed', 'failed']),
"verdict": zod.enum(['pass', 'review', 'block']),
"riskScore": zod.number(),
"fileCount": zod.number(),
"aiUsed": zod.boolean(),
"aiError": zod.string().nullish(),
"findingCounts": zod.object({
"critical": zod.number(),
"high": zod.number(),
"medium": zod.number(),
"low": zod.number(),
"info": zod.number(),
"security": zod.number(),
"privacy": zod.number(),
"total": zod.number()
}),
"createdAt": zod.string()
})),
"topRules": zod.array(zod.object({
"ruleId": zod.string(),
"title": zod.string(),
"axis": zod.enum(['security', 'privacy']),
"count": zod.number()
}))
})
/**
* @summary List scan history
*/
export const ListScansResponseItem = zod.object({
"id": zod.number(),
"name": zod.string(),
"source": zod.enum(['zip', 'file', 'text']),
"status": zod.enum(['completed', 'failed']),
"verdict": zod.enum(['pass', 'review', 'block']),
"riskScore": zod.number(),
"fileCount": zod.number(),
"aiUsed": zod.boolean(),
"aiError": zod.string().nullish(),
"findingCounts": zod.object({
"critical": zod.number(),
"high": zod.number(),
"medium": zod.number(),
"low": zod.number(),
"info": zod.number(),
"security": zod.number(),
"privacy": zod.number(),
"total": zod.number()
}),
"createdAt": zod.string()
})
export const ListScansResponse = zod.array(ListScansResponseItem)
/**
* Accepts a skill as a base64 ZIP archive, a single base64 file, or pasted text, runs the static rule engine and (optionally) the configured AI analysis, and returns the completed report.
* @summary Upload a skill and run an audit
*/
export const CreateScanBody = zod.object({
"name": zod.string().nullish().describe('Optional display name for the scan'),
"source": zod.enum(['zip', 'file', 'text']),
"useAi": zod.boolean().describe('Whether to also run the configured AI analysis'),
"contentBase64": zod.string().nullish().describe('Base64 content for source=zip or source=file'),
"filename": zod.string().nullish().describe('Original filename for source=file or source=zip'),
"text": zod.string().nullish().describe('Raw skill text for source=text')
})
/**
* @summary Get a scan report with findings
*/
export const GetScanParams = zod.object({
"id": zod.coerce.number()
})
export const GetScanResponse = zod.object({
"id": zod.number(),
"name": zod.string(),
"source": zod.enum(['zip', 'file', 'text']),
"status": zod.enum(['completed', 'failed']),
"verdict": zod.enum(['pass', 'review', 'block']),
"riskScore": zod.number(),
"fileCount": zod.number(),
"aiUsed": zod.boolean(),
"aiError": zod.string().nullish(),
"findingCounts": zod.object({
"critical": zod.number(),
"high": zod.number(),
"medium": zod.number(),
"low": zod.number(),
"info": zod.number(),
"security": zod.number(),
"privacy": zod.number(),
"total": zod.number()
}),
"createdAt": zod.string()
}).and(zod.object({
"files": zod.array(zod.object({
"path": zod.string(),
"kind": zod.enum(['instruction', 'script', 'resource']),
"language": zod.string().nullish(),
"size": zod.number()
})),
"findings": zod.array(zod.object({
"id": zod.number(),
"ruleId": zod.string(),
"axis": zod.enum(['security', 'privacy']),
"severity": zod.enum(['critical', 'high', 'medium', 'low', 'info']),
"title": zod.string(),
"description": zod.string(),
"remediation": zod.string().nullish(),
"file": zod.string().nullish(),
"line": zod.number().nullish(),
"snippet": zod.string().nullish(),
"detectedBy": zod.enum(['static', 'ai'])
}))
}))
/**
* @summary Delete a scan report
*/
export const DeleteScanParams = zod.object({
"id": zod.coerce.number()
})
/**
* @summary List configured AI providers
*/
export const ListProvidersResponseItem = zod.object({
"id": zod.number(),
"name": zod.string(),
"apiType": zod.enum(['openai', 'anthropic', 'custom']),
"baseUrl": zod.string(),
"model": zod.string(),
"enabled": zod.boolean(),
"hasToken": zod.boolean(),
"tokenPreview": zod.string().describe('Masked preview of the stored token (e.g. \"sk-...abcd\")'),
"createdAt": zod.string()
})
export const ListProvidersResponse = zod.array(ListProvidersResponseItem)
/**
* @summary Create an AI provider
*/
export const CreateProviderBody = zod.object({
"name": zod.string().min(1),
"apiType": zod.enum(['openai', 'anthropic', 'custom']),
"baseUrl": zod.string().min(1),
"model": zod.string().min(1),
"apiToken": zod.string().optional(),
"enabled": zod.boolean().optional()
})
/**
* @summary Update an AI provider
*/
export const UpdateProviderParams = zod.object({
"id": zod.coerce.number()
})
export const UpdateProviderBody = zod.object({
"name": zod.string().min(1).optional(),
"apiType": zod.enum(['openai', 'anthropic', 'custom']).optional(),
"baseUrl": zod.string().min(1).optional(),
"model": zod.string().min(1).optional(),
"apiToken": zod.string().optional().describe('Provide to replace the stored token; omit to keep existing'),
"enabled": zod.boolean().optional()
})
export const UpdateProviderResponse = zod.object({
"id": zod.number(),
"name": zod.string(),
"apiType": zod.enum(['openai', 'anthropic', 'custom']),
"baseUrl": zod.string(),
"model": zod.string(),
"enabled": zod.boolean(),
"hasToken": zod.boolean(),
"tokenPreview": zod.string().describe('Masked preview of the stored token (e.g. \"sk-...abcd\")'),
"createdAt": zod.string()
})
/**
* @summary Delete an AI provider
*/
export const DeleteProviderParams = zod.object({
"id": zod.coerce.number()
})
/**
* @summary Test the connection to an AI provider
*/
export const TestProviderParams = zod.object({
"id": zod.coerce.number()
})
export const TestProviderResponse = zod.object({
"ok": zod.boolean(),
"message": zod.string().nullish()
})
/**
* @summary List configurable AI prompts
*/
export const ListPromptsResponseItem = zod.object({
"id": zod.number(),
"key": zod.string(),
"name": zod.string(),
"content": zod.string(),
"updatedAt": zod.string()
})
export const ListPromptsResponse = zod.array(ListPromptsResponseItem)
/**
* @summary Update an AI prompt
*/
export const UpdatePromptParams = zod.object({
"id": zod.coerce.number()
})
export const UpdatePromptBody = zod.object({
"name": zod.string().min(1).optional(),
"content": zod.string().min(1).optional()
})
export const UpdatePromptResponse = zod.object({
"id": zod.number(),
"key": zod.string(),
"name": zod.string(),
"content": zod.string(),
"updatedAt": zod.string()
})
/**
* @summary List the static rule catalog
*/
export const ListRulesResponseItem = zod.object({
"id": zod.number(),
"ruleId": zod.string(),
"axis": zod.enum(['security', 'privacy']),
"category": zod.string(),
"title": zod.string(),
"description": zod.string(),
"severity": zod.enum(['critical', 'high', 'medium', 'low', 'info']),
"detectionType": zod.enum(['regex', 'heuristic', 'ai']),
"enabled": zod.boolean()
})
export const ListRulesResponse = zod.array(ListRulesResponseItem)
/**
* @summary Update a rule's severity or enabled state
*/
export const UpdateRuleParams = zod.object({
"id": zod.coerce.number()
})
export const UpdateRuleBody = zod.object({
"severity": zod.enum(['critical', 'high', 'medium', 'low', 'info']).optional(),
"enabled": zod.boolean().optional()
})
export const UpdateRuleResponse = zod.object({
"id": zod.number(),
"ruleId": zod.string(),
"axis": zod.enum(['security', 'privacy']),
"category": zod.string(),
"title": zod.string(),
"description": zod.string(),
"severity": zod.enum(['critical', 'high', 'medium', 'low', 'info']),
"detectionType": zod.enum(['regex', 'heuristic', 'ai']),
"enabled": zod.boolean()
})