diff --git a/packages/prompts-core/src/types.ts b/packages/prompts-core/src/types.ts new file mode 100644 index 000000000..ecb41febe --- /dev/null +++ b/packages/prompts-core/src/types.ts @@ -0,0 +1,51 @@ +export interface VariantTest { + test: (input: { modelID?: string; agentName?: string }) => boolean +} + +export interface VariantFallback { + fallback: true +} + +export type VariantDefinition = VariantTest | VariantFallback + +export interface VariantTable { + [variantKey: string]: VariantDefinition +} + +export interface ResolveVariantInput { + modelID?: string + agentName?: string + variants: VariantTable +} + +export interface RuntimeInjection { + placeholder: string + resolver: () => string +} + +export interface LoadPromptInput { + source: string + name: string + variant: string + inject?: readonly RuntimeInjection[] +} + +export interface LoadedPrompt { + body: string + frontmatter: Record + resolvedPath: string +} + +export class PromptNotFoundError extends Error { + constructor(message: string) { + super(message) + this.name = "PromptNotFoundError" + } +} + +export class NoMatchingVariantError extends Error { + constructor(message: string) { + super(message) + this.name = "NoMatchingVariantError" + } +}