SPB Git forge

spb/polyllm

Public
15commits 1branches 0releases
2.2 MBsize
maindefault branch
13 days agolast push
TypeScript 97.4% SQL 1% JavaScript 0.9% CSS 0.6%
1.3 KB · 31 lines typescript
Raw Blame History
1import { z } from "zod";23export const PROMPT_KIND_VALUES = ["system", "user", "template", "structured"] as const;45export const promptVariableSchema = z.object({6  name: z.string().regex(/^[A-Za-z_][\w.-]*$/).max(64),7  label: z.string().max(80).optional(),8  default: z.string().max(4000).optional(),9  required: z.boolean().optional(),10  options: z.array(z.string().max(200)).max(50).optional(),11});1213/** Body of POST /api/prompts; PATCH uses `.partial()`. */14export const promptBodySchema = z.object({15  kind: z.enum(PROMPT_KIND_VALUES).optional(),16  name: z.string().min(1).max(120),17  description: z.string().max(600).nullable().optional(),18  content: z.string().min(1).max(100_000),19  variables: z.array(promptVariableSchema).max(50).optional(),20  schema: z.record(z.string(), z.unknown()).nullable().optional(),21  folder: z.string().max(60).nullable().optional(),22  tags: z.array(z.string().max(32)).max(12).optional(),23  favorite: z.boolean().optional(),24  defaultModelKey: z.string().max(120).nullable().optional(),25  projectId: z.string().max(64).nullable().optional(),26});27export type PromptBodyInput = z.infer<typeof promptBodySchema>;2829/** Body of POST /api/prompts/:id/use. */30export const promptUseSchema = z.object({ variables: z.record(z.string().max(64), z.string().max(20_000)).optional() }).default({});31