Bot & Automation

AI Creator Studio Telegram

/root/hermes-projects/AI Creator Studio Telegram

packages/provider-adapters/src/mock-provider.ts text
import type { ProviderAdapter, ProviderGenerateInput, ProviderGenerateResult } from "./provider-types.js";

export const mockProvider: ProviderAdapter = {
  id: "mock",
  displayName: "Mock Provider",
  capabilities: [
    "text_to_image",
    "image_to_image",
    "upscale_image",
    "enhance_image",
    "text_to_video",
    "image_to_video",
    "enhance_video",
  ],
  async estimate() {
    return {
      credits: 1,
      tokens: 10,
      storageBytes: 1024,
      etaSecondsMin: 1,
      etaSecondsMax: 3,
    };
  },
  async generate(input: ProviderGenerateInput): Promise<ProviderGenerateResult> {
    await new Promise((resolve) => setTimeout(resolve, 500));

    return {
      providerId: "mock",
      providerJobId: `mock_${crypto.randomUUID()}`,
      status: "completed",
      output: {
        kind: input.mode.includes("video") ? "video" : "image",
        mimeType: input.mode.includes("video") ? "video/mp4" : "image/png",
        storageKey: `mock/${Date.now()}-${crypto.randomUUID()}`,
      },
      usage: {
        credits: 1,
        tokens: 10,
      },
    };
  },
  async getBalance() {
    return {
      creditBalance: 999999,
      tokenBalance: 999999,
    };
  },
  async getRateLimit() {
    return {
      status: "available",
      resetAt: null,
    };
  },
};