Bot & Automation

AI Creator Studio Telegram

/root/hermes-projects/AI Creator Studio Telegram

packages/provider-adapters/src/provider-types.ts text
import type { GenerationMode, ResourceEstimate } from "@ai-creator/core";

export type ProviderCapability = GenerationMode;

export interface ProviderGenerateInput {
  mode: GenerationMode;
  prompt?: string;
  settings?: Record<string, unknown>;
  mediaAssetId?: string;
}

export interface ProviderGenerateResult {
  providerId: string;
  providerJobId: string;
  status: "completed" | "failed";
  output: {
    kind: "image" | "video";
    mimeType: string;
    storageKey: string;
  };
  usage: {
    credits: number;
    tokens: number;
  };
}

export interface ProviderAdapter {
  id: string;
  displayName: string;
  capabilities: ProviderCapability[];
  estimate(input: ProviderGenerateInput): Promise<ResourceEstimate>;
  generate(input: ProviderGenerateInput): Promise<ProviderGenerateResult>;
  getBalance(): Promise<{ creditBalance: number | string; tokenBalance: number | string }>;
  getRateLimit(): Promise<{ status: "available" | "limited"; resetAt: string | null }>;
}