Files
rowboatlabs--rowboat/apps/cli/src/agents/agents.ts
T
wehub-resource-sync 221778fa98
rowboat / apps/x Vitest suites (push) Waiting to run
rowboat / apps/x Electron package smoke test (push) Waiting to run
chore: import upstream snapshot with attribution
2026-07-13 13:33:34 +08:00

36 lines
784 B
TypeScript

import { z } from "zod";
export const BaseTool = z.object({
name: z.string(),
});
export const BuiltinTool = BaseTool.extend({
type: z.literal("builtin"),
});
export const McpTool = BaseTool.extend({
type: z.literal("mcp"),
description: z.string(),
inputSchema: z.any(),
mcpServerName: z.string(),
});
export const AgentAsATool = BaseTool.extend({
type: z.literal("agent"),
});
export const ToolAttachment = z.discriminatedUnion("type", [
BuiltinTool,
McpTool,
AgentAsATool,
]);
export const Agent = z.object({
name: z.string(),
provider: z.string().optional(),
model: z.string().optional(),
description: z.string().optional(),
instructions: z.string(),
tools: z.record(z.string(), ToolAttachment).optional(),
});