← octto
import * as v from "valibot";
import { AGENTS } from "@/agents";
export const MAX_PORT = 65535;
export const AgentOverrideSchema = v.partial(
v.object({
model: v.string(),
variant: v.string(),
temperature: v.pipe(v.number(), v.minValue(0), v.maxValue(2)),
maxSteps: v.pipe(v.number(), v.integer(), v.minValue(1)),
}),
);
export const PortSchema = v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(MAX_PORT));
export const FragmentsSchema = v.optional(v.record(v.picklist(Object.values(AGENTS)), v.array(v.string())));
export const OcttoConfigSchema = v.object({
model: v.optional(v.string()),
agents: v.optional(v.record(v.picklist(Object.values(AGENTS)), AgentOverrideSchema)),
port: v.optional(PortSchema),
fragments: FragmentsSchema,
});
export type AgentOverride = v.InferOutput<typeof AgentOverrideSchema>;
export type Fragments = v.InferOutput<typeof FragmentsSchema>;
export type OcttoConfig = v.InferOutput<typeof OcttoConfigSchema>;