first commit

This commit is contained in:
Ramnique Singh 2025-10-28 13:17:06 +05:30
parent 476654af80
commit 6014437479
20 changed files with 2231 additions and 0 deletions

View file

@ -0,0 +1,7 @@
import { z } from "zod";
export const Agent = z.object({
name: z.string(),
model: z.string(),
description: z.string(),
instructions: z.string(),
});

View file

@ -0,0 +1,8 @@
import z from "zod";
export const McpServerConfig = z.object({
mcpServers: z.array(z.object({
name: z.string(),
url: z.string(),
})),
});

View file

@ -0,0 +1,58 @@
import { z } from "zod";
export const TextPart = z.object({
type: z.literal("text"),
text: z.string(),
});
export const ReasoningPart = z.object({
type: z.literal("reasoning"),
text: z.string(),
});
export const ToolCallPart = z.object({
type: z.literal("tool-call"),
toolCallId: z.string(),
toolName: z.string(),
arguments: z.string(),
});
export const AssistantContentPart = z.union([
TextPart,
ReasoningPart,
ToolCallPart,
]);
export const UserMessage = z.object({
role: z.literal("user"),
content: z.string(),
});
export const AssistantMessage = z.object({
role: z.literal("assistant"),
content: z.union([
z.string(),
z.array(AssistantContentPart),
]),
});
export const SystemMessage = z.object({
role: z.literal("system"),
content: z.string(),
});
export const ToolMessage = z.object({
role: z.literal("tool"),
content: z.string(),
toolCallId: z.string(),
toolName: z.string(),
});
export const Message = z.discriminatedUnion("role", [
AssistantMessage,
SystemMessage,
ToolMessage,
UserMessage,
]);
export const MessageList = z.array(Message);

View file

@ -0,0 +1,56 @@
import { z } from "zod";
export const ReasoningStartEvent = z.object({
type: z.literal("reasoning-start"),
});
export const ReasoningDeltaEvent = z.object({
type: z.literal("reasoning-delta"),
delta: z.string(),
});
export const ReasoningEndEvent = z.object({
type: z.literal("reasoning-end"),
});
export const TextStartEvent = z.object({
type: z.literal("text-start"),
});
export const TextDeltaEvent = z.object({
type: z.literal("text-delta"),
delta: z.string(),
});
export const TextEndEvent = z.object({
type: z.literal("text-end"),
});
export const ToolCallEvent = z.object({
type: z.literal("tool-call"),
toolCallId: z.string(),
toolName: z.string(),
input: z.any(),
});
export const UsageEvent = z.object({
type: z.literal("usage"),
usage: z.object({
inputTokens: z.number().optional(),
outputTokens: z.number().optional(),
totalTokens: z.number().optional(),
reasoningTokens: z.number().optional(),
cachedInputTokens: z.number().optional(),
}),
});
export const StreamEvent = z.union([
ReasoningStartEvent,
ReasoningDeltaEvent,
ReasoningEndEvent,
TextStartEvent,
TextDeltaEvent,
TextEndEvent,
ToolCallEvent,
UsageEvent,
]);

View file

@ -0,0 +1,21 @@
import { z } from "zod";
const AgentStep = z.object({
type: z.literal("agent"),
id: z.string(),
});
const FunctionStep = z.object({
type: z.literal("function"),
id: z.string(),
});
const Step = z.discriminatedUnion("type", [AgentStep, FunctionStep]);
export const Workflow = z.object({
name: z.string(),
description: z.string(),
steps: z.array(Step),
createdAt: z.string().optional(),
updatedAt: z.string().optional(),
});