openai-swarmjs
Version:
Agentic framework inspired from OpenAI's swarm framework for TS, JS
125 lines (124 loc) • 5.76 kB
TypeScript
import { z } from 'zod';
import { ChatCompletionToolChoiceOption } from 'openai/resources/chat/completions';
export type AgentFunction = (...args: any[]) => Promise<string | Agent | Record<string, any>>;
export declare const AgentSchema: z.ZodObject<{
name: z.ZodDefault<z.ZodString>;
model: z.ZodDefault<z.ZodString>;
instructions: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>]>>;
functions: z.ZodDefault<z.ZodArray<z.ZodType<AgentFunction, z.ZodTypeDef, AgentFunction>, "many">>;
toolChoice: z.ZodDefault<z.ZodNullable<z.ZodType<ChatCompletionToolChoiceOption, z.ZodTypeDef, ChatCompletionToolChoiceOption>>>;
parallelToolCalls: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
name: string;
model: string;
instructions: string | ((...args: unknown[]) => unknown);
functions: AgentFunction[];
toolChoice: ChatCompletionToolChoiceOption | null;
parallelToolCalls: boolean;
}, {
name?: string | undefined;
model?: string | undefined;
instructions?: string | ((...args: unknown[]) => unknown) | undefined;
functions?: AgentFunction[] | undefined;
toolChoice?: ChatCompletionToolChoiceOption | null | undefined;
parallelToolCalls?: boolean | undefined;
}>;
export type Agent = z.infer<typeof AgentSchema>;
export declare const ResponseSchema: z.ZodObject<{
messages: z.ZodDefault<z.ZodArray<z.ZodAny, "many">>;
agent: z.ZodDefault<z.ZodNullable<z.ZodObject<{
name: z.ZodDefault<z.ZodString>;
model: z.ZodDefault<z.ZodString>;
instructions: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>]>>;
functions: z.ZodDefault<z.ZodArray<z.ZodType<AgentFunction, z.ZodTypeDef, AgentFunction>, "many">>;
toolChoice: z.ZodDefault<z.ZodNullable<z.ZodType<ChatCompletionToolChoiceOption, z.ZodTypeDef, ChatCompletionToolChoiceOption>>>;
parallelToolCalls: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
name: string;
model: string;
instructions: string | ((...args: unknown[]) => unknown);
functions: AgentFunction[];
toolChoice: ChatCompletionToolChoiceOption | null;
parallelToolCalls: boolean;
}, {
name?: string | undefined;
model?: string | undefined;
instructions?: string | ((...args: unknown[]) => unknown) | undefined;
functions?: AgentFunction[] | undefined;
toolChoice?: ChatCompletionToolChoiceOption | null | undefined;
parallelToolCalls?: boolean | undefined;
}>>>;
contextVariables: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, "strip", z.ZodTypeAny, {
messages: any[];
agent: {
name: string;
model: string;
instructions: string | ((...args: unknown[]) => unknown);
functions: AgentFunction[];
toolChoice: ChatCompletionToolChoiceOption | null;
parallelToolCalls: boolean;
} | null;
contextVariables: Record<string, any>;
}, {
messages?: any[] | undefined;
agent?: {
name?: string | undefined;
model?: string | undefined;
instructions?: string | ((...args: unknown[]) => unknown) | undefined;
functions?: AgentFunction[] | undefined;
toolChoice?: ChatCompletionToolChoiceOption | null | undefined;
parallelToolCalls?: boolean | undefined;
} | null | undefined;
contextVariables?: Record<string, any> | undefined;
}>;
export type Response = z.infer<typeof ResponseSchema>;
export declare const ResultSchema: z.ZodObject<{
value: z.ZodDefault<z.ZodString>;
agent: z.ZodDefault<z.ZodNullable<z.ZodObject<{
name: z.ZodDefault<z.ZodString>;
model: z.ZodDefault<z.ZodString>;
instructions: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>]>>;
functions: z.ZodDefault<z.ZodArray<z.ZodType<AgentFunction, z.ZodTypeDef, AgentFunction>, "many">>;
toolChoice: z.ZodDefault<z.ZodNullable<z.ZodType<ChatCompletionToolChoiceOption, z.ZodTypeDef, ChatCompletionToolChoiceOption>>>;
parallelToolCalls: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
name: string;
model: string;
instructions: string | ((...args: unknown[]) => unknown);
functions: AgentFunction[];
toolChoice: ChatCompletionToolChoiceOption | null;
parallelToolCalls: boolean;
}, {
name?: string | undefined;
model?: string | undefined;
instructions?: string | ((...args: unknown[]) => unknown) | undefined;
functions?: AgentFunction[] | undefined;
toolChoice?: ChatCompletionToolChoiceOption | null | undefined;
parallelToolCalls?: boolean | undefined;
}>>>;
contextVariables: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, "strip", z.ZodTypeAny, {
value: string;
agent: {
name: string;
model: string;
instructions: string | ((...args: unknown[]) => unknown);
functions: AgentFunction[];
toolChoice: ChatCompletionToolChoiceOption | null;
parallelToolCalls: boolean;
} | null;
contextVariables: Record<string, any>;
}, {
value?: string | undefined;
agent?: {
name?: string | undefined;
model?: string | undefined;
instructions?: string | ((...args: unknown[]) => unknown) | undefined;
functions?: AgentFunction[] | undefined;
toolChoice?: ChatCompletionToolChoiceOption | null | undefined;
parallelToolCalls?: boolean | undefined;
} | null | undefined;
contextVariables?: Record<string, any> | undefined;
}>;
export type Result = z.infer<typeof ResultSchema>;