import { type ClientId } from "./mcp-config-writers.js"; export type SkillVisibility = "internal" | "exported" | "both"; export type AppSkillHostAdapter = "codex-plugin" | "claude-marketplace" | "vercel-skills" | "plain-skill" | "claude-skill" | "chatgpt-mcp" | "generic-mcp"; export interface AppSkillManifestSkill { path: string; visibility: SkillVisibility; exportAs?: string; } export interface AppSkillChatGptTestCase { description: string; prompt: string; tools_triggered?: string; expected_behavior?: string; } export interface AppSkillChatGptPlugin { version: string; interface: { displayName: string; shortDescription: string; longDescription: string; developerName: string; category: string; capabilities: string[]; websiteURL: string; supportURL: string; privacyPolicyURL: string; termsOfServiceURL: string; defaultPrompt: string[]; logoPath: string; keywords?: string[]; }; review: { test_cases: { positive: AppSkillChatGptTestCase[]; negative: AppSkillChatGptTestCase[]; }; commerce: boolean; iframeJustification: string; demo_recording_url?: string; }; } export interface AppSkillSurface { id: string; action?: string; path: string; mediaTypes?: string[]; defaultMediaType?: string; } export interface AppSkillManifest { schemaVersion: 1; id: string; displayName: string; description: string; version?: string; hosted: { url: string; mcpUrl: string; }; mcp: { serverName: string; aliases?: string[]; }; local?: { template?: string; sourcePath?: string; defaultUrl?: string; commands?: { install?: string; dev?: string; start?: string; }; }; auth?: { mode?: "oauth" | "device" | "none"; setup?: string; }; surfaces: AppSkillSurface[]; skills: AppSkillManifestSkill[]; hostAdapters: AppSkillHostAdapter[]; chatgpt?: AppSkillChatGptPlugin; } export interface LoadedAppSkillManifest { manifest: AppSkillManifest; file: string; dir: string; } export interface ParsedAppSkillArgs { command: "ensure" | "launch" | "pack" | "help"; manifest?: string; client: string; scope: string; serverName?: string; out?: string; into?: string; mode: "hosted" | "local"; dryRun: boolean; skipInstall: boolean; noRegister: boolean; printJson: boolean; yes: boolean; } export interface EnsureAppSkillOptions { mode?: "hosted" | "local"; clients?: ClientId[]; scope?: string; serverName?: string; baseDir?: string; dryRun?: boolean; confirm?: boolean; yes?: boolean; log?: (message: string) => void; } export interface EnsureAppSkillResult { mode: "hosted" | "local"; serverName: string; mcpUrl: string; clients: ClientId[]; written: { client: ClientId; file: string; }[]; } export interface LaunchAppSkillOptions { mode?: "hosted" | "local"; into?: string; dryRun?: boolean; skipInstall?: boolean; noRegister?: boolean; clients?: ClientId[]; scope?: string; serverName?: string; baseDir?: string; confirm?: boolean; yes?: boolean; log?: (message: string) => void; } export interface AppSkillLaunchPlan { mode: "hosted" | "local"; appId: string; appDir?: string; sourceDir?: string; url: string; mcpUrl: string; serverName: string; commands: { install?: string; dev?: string; start?: string; }; } export declare function normalizeAppSkillManifest(raw: unknown): AppSkillManifest; export declare function findAppSkillManifest(startDir?: string): string; export declare function loadAppSkillManifest(file?: string): LoadedAppSkillManifest; export declare function exportedSkills(manifest: AppSkillManifest): AppSkillManifestSkill[]; export declare function internalSkills(manifest: AppSkillManifest): AppSkillManifestSkill[]; export declare function parseAppSkillArgs(argv: string[]): ParsedAppSkillArgs; export declare function exportedSkillContentHash(manifestDir: string, skills: AppSkillManifestSkill[], manifest: AppSkillManifest): string; export declare function resolvePluginVersion(manifest: AppSkillManifest, manifestDir: string, skills: AppSkillManifestSkill[]): string; export interface AppSkillPackResult { outDir: string; exportedSkillNames: string[]; files: string[]; } export declare function buildAppSkillPack(loaded: LoadedAppSkillManifest, outDir: string): AppSkillPackResult; export declare function resolveLaunchPlan(loaded: LoadedAppSkillManifest, options?: LaunchAppSkillOptions): AppSkillLaunchPlan; export declare function ensureAppSkill(loaded: LoadedAppSkillManifest, options?: EnsureAppSkillOptions): Promise; export declare function launchAppSkill(loaded: LoadedAppSkillManifest, options?: LaunchAppSkillOptions): Promise; export declare function runAppSkill(argv: string[]): Promise;