UNPKG

@toolplex/client

Version:

The official ToolPlex client for AI agent tool discovery and execution

159 lines (158 loc) 4.68 kB
// src/types/types.ts import { z } from "zod"; // -------------------- // Enums // -------------------- export const TransportTypeSchema = z.enum(["stdio", "sse"]); export const RuntimeSchema = z.enum(["node", "python", "go", "docker"]); // -------------------- // LLMContext // -------------------- export const LLMContextSchema = z .object({ model_family: z.string(), model_name: z.string().min(1), model_version: z.string(), chat_client: z.string().optional(), }) .strict(); // -------------------- // ServerConfig // -------------------- export const ServerConfigSchema = z.object({ server_name: z.string().optional(), description: z.string().optional(), command: z.string().optional(), args: z.array(z.string()).optional(), runtime: RuntimeSchema.optional(), env: z.record(z.string()).optional(), url: z.string().optional(), transport: TransportTypeSchema, }); // -------------------- // InitializeToolplexParams // -------------------- export const InitializeToolplexParamsSchema = z.object({ llm_context: LLMContextSchema, }); // -------------------- // SearchParams // -------------------- export const SearchParamsSchema = z.object({ query: z.string(), expanded_keywords: z.array(z.string()).optional(), filter: z.enum(["all", "servers_only", "playbooks_only"]).optional(), size: z.number().int().min(1).max(25).optional(), scope: z.enum(["all", "public_only", "private_only"]).optional(), }); // -------------------- // LookupEntityParams // -------------------- export const LookupEntityParamsSchema = z.object({ entity_type: z.enum(["server", "playbook", "feedback"]), entity_id: z.string(), }); // -------------------- // InstallParams // -------------------- export const InstallParamsSchema = z.object({ server_id: z.string(), server_name: z.string(), description: z.string(), config: ServerConfigSchema, }); // -------------------- // ListToolsParams // -------------------- export const ListToolsParamsSchema = z.object({ server_id: z.string().optional(), }); // -------------------- // GetServerConfigParams // -------------------- export const GetServerConfigParamsSchema = z.object({ server_id: z.string().optional(), }); // -------------------- // CallToolParams // -------------------- export const CallToolParamsSchema = z.object({ server_id: z.string(), tool_name: z.string(), arguments: z.record(z.any()), }); // -------------------- // UninstallParams // -------------------- export const UninstallParamsSchema = z.object({ server_id: z.string(), }); // -------------------- // PlaybookAction (shared type for actions) // -------------------- export const PlaybookActionSchema = z.object({ do: z.string(), call: z.string().optional(), args: z .record(z.object({ type: z.enum([ "string", "number", "boolean", "array", "object", "placeholder", ]), example: z.any(), })) .optional(), }); // -------------------- // SavePlaybookParams // -------------------- export const SavePlaybookParamsSchema = z.object({ playbook_name: z.string(), description: z.string(), // Requires at least one action to have a "call" property actions: z .array(PlaybookActionSchema) .refine((actions) => actions.some((action) => typeof action.call === "string" && action.call.length > 0), { message: 'At least one action must include a "call" property', path: ["actions"], }), domain: z.string().optional(), keywords: z.array(z.string()).optional(), requirements: z.array(z.string()).optional(), privacy: z.enum(["public", "private"]).optional(), source_playbook_id: z.string().optional(), fork_reason: z.string().optional(), }); // -------------------- // LogPlaybookUsageParams // -------------------- export const LogPlaybookUsageParamsSchema = z.object({ playbook_id: z.string(), success: z.boolean(), error_message: z.string().optional(), }); // -------------------- // SubmitFeedbackParams // -------------------- export const SubmitFeedbackParamsSchema = z.object({ target_type: z.enum(["server", "playbook"]), target_id: z.string(), vote: z.enum(["up", "down"]), message: z.string().optional(), security_assessment: z .object({ security_flags: z.array(z.union([ z.string(), z.object({ custom_flag: z.string(), }), ])), risk_assessment: z.string(), context_note: z.string().optional(), }) .optional(), });