Variable: CacheHitTrendResponseSchema
const CacheHitTrendResponseSchema: ZodObject<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
summary: ZodObject<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
summary: ZodObject<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
summary: ZodObject<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
}, "passthrough", ZodTypeAny, objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
summary: ZodObject<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
summary: ZodObject<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
summary: ZodObject<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">, objectInputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
summary: ZodObject<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
summary: ZodObject<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
summary: ZodObject<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/models/ai-gateway.ts:201
logs/charts/cache-hit-trend. Savings are CUMULATIVE cents — take the last non-zero bucket.