import * as agents from "./agents";
import * as aiProviders from "./ai-providers";
import * as automations from "./automations";
import * as connections from "./connections";
import * as platform from "./platform";
import * as store from "./store";
import * as studioPackOnboarding from "./studio-pack-onboarding";
import * as virtualTools from "./virtual-tools";

export interface GuidePromptArgument {
  name: string;
  description?: string;
  required?: boolean;
}

export type GuidePromptArgs = Record<string, string | undefined>;

export interface GuidePrompt {
  name: string;
  title: string;
  description: string;
  arguments?: GuidePromptArgument[];
  text: string | ((args: GuidePromptArgs) => string);
}

export interface GuideResource {
  name: string;
  uri: string;
  description: string;
  text: string;
  mimeType?: string;
}

export function getPrompts(): GuidePrompt[] {
  return [
    ...agents.prompts,
    ...connections.prompts,
    ...store.prompts,
    ...automations.prompts,
    ...aiProviders.prompts,
    ...virtualTools.prompts,
    ...studioPackOnboarding.prompts,
  ];
}

export function getResources(): GuideResource[] {
  return [
    ...platform.resources,
    ...agents.resources,
    ...connections.resources,
    ...store.resources,
    ...automations.resources,
    ...aiProviders.resources,
    ...virtualTools.resources,
  ];
}
