feat(shared): add domain schemas implementation

This commit is contained in:
2026-03-28 17:00:53 +08:00
parent 800c54cbe6
commit de1525a2d6
7 changed files with 117 additions and 1 deletions
+35
View File
@@ -0,0 +1,35 @@
import { z } from "zod";
export const strategyStateSchema = z.enum([
"draft",
"candidate",
"dry-run",
"approved-for-live",
"archived"
]);
export const strategyDefinitionSchema = z.object({
id: z.string().min(1),
version: z.number().int().positive(),
name: z.string().min(1),
state: strategyStateSchema,
agentProfile: z.object({
signal: z.string().min(1),
risk: z.string().min(1),
evaluator: z.string().min(1),
optimizer: z.string().min(1)
}),
featureConfig: z.object({
windows: z.array(z.string().min(1)).min(1)
}),
riskConfig: z.object({
minConfidence: z.number().min(0).max(1)
}),
scoringConfig: z.object({
objective: z.literal("risk-adjusted-return")
}),
createdAt: z.string().datetime()
});
export type StrategyState = z.infer<typeof strategyStateSchema>;
export type StrategyDefinition = z.infer<typeof strategyDefinitionSchema>;