feat: add sandbox, agent_configs, and routing config schemas
This commit is contained in:
@@ -179,6 +179,38 @@ const toolsSchema = z.object({
|
||||
providers: z.record(z.string(), toolOverrideSchema).default({}),
|
||||
}).default({});
|
||||
|
||||
// ── Sandbox schemas ───────────────────────────────────────────────────
|
||||
|
||||
const sandboxSchema = z.object({
|
||||
enabled: z.boolean().default(false),
|
||||
image: z.string().default('node:22-slim'),
|
||||
workspace_dir: z.string().default('/workspace'),
|
||||
network: z.enum(['none', 'bridge', 'host']).default('none'),
|
||||
memory_limit: z.string().default('512m'),
|
||||
cpu_limit: z.string().default('1.0'),
|
||||
timeout_seconds: z.number().min(10).max(3600).default(300),
|
||||
}).default({});
|
||||
|
||||
// ── Agent config + routing schemas ────────────────────────────────────
|
||||
|
||||
const modelTierEnum = z.enum(['fast', 'default', 'complex', 'local']);
|
||||
|
||||
const agentConfigEntrySchema = z.object({
|
||||
system_prompt: z.string().optional(),
|
||||
model_tier: modelTierEnum.optional(),
|
||||
tool_profile: toolProfileEnum.optional(),
|
||||
tool_overrides: toolOverrideSchema.optional(),
|
||||
sandbox: z.boolean().default(false),
|
||||
});
|
||||
|
||||
const agentConfigsSchema = z.record(z.string(), agentConfigEntrySchema).default({});
|
||||
|
||||
const routingSchema = z.object({
|
||||
default_agent: z.string().optional(),
|
||||
channels: z.record(z.string(), z.string()).default({}),
|
||||
senders: z.record(z.string(), z.string()).default({}),
|
||||
}).default({});
|
||||
|
||||
const promptSchema = z.object({
|
||||
/** Additional directories to search for prompt template files. */
|
||||
search_dirs: z.array(z.string()).default([]),
|
||||
@@ -209,6 +241,9 @@ export const configSchema = z.object({
|
||||
web_search: webSearchSchema,
|
||||
prompt: promptSchema,
|
||||
tools: toolsSchema,
|
||||
sandbox: sandboxSchema,
|
||||
agent_configs: agentConfigsSchema,
|
||||
routing: routingSchema,
|
||||
});
|
||||
|
||||
export type Config = z.infer<typeof configSchema>;
|
||||
@@ -228,3 +263,6 @@ export type PromptConfig = z.infer<typeof promptSchema>;
|
||||
export type ToolProfile = z.infer<typeof toolProfileEnum>;
|
||||
export type ToolOverrideConfig = z.infer<typeof toolOverrideSchema>;
|
||||
export type ToolsConfig = z.infer<typeof toolsSchema>;
|
||||
export type SandboxConfig = z.infer<typeof sandboxSchema>;
|
||||
export type AgentConfigEntry = z.infer<typeof agentConfigEntrySchema>;
|
||||
export type RoutingConfig = z.infer<typeof routingSchema>;
|
||||
|
||||
Reference in New Issue
Block a user