import type { SkillSourceReference } from '../skills/types.js'; export interface PluginDependencySkill { name: string; source?: string; commands?: PluginSkillCommand[]; } export interface PluginSkillCommand { command: string; description: string; argumentHint?: string; } export interface PluginCommand { command: string; description: string; argumentHint?: string; handler?: string; visibility?: 'user' | 'developer'; channels?: string[]; } export interface PluginDependencyMcpServer { id: string; config?: Record; } export interface PluginInterfaceMetadata { displayName?: string; shortDescription?: string; longDescription?: string; developerName?: string; category?: string; capabilities?: string[]; websiteURL?: string; privacyPolicyURL?: string; termsOfServiceURL?: string; defaultPrompt?: string[]; brandColor?: string; composerIcon?: string; logo?: string; screenshots?: string[]; [key: string]: unknown; } export interface PluginRunPostcondition { id: string; module: string; } export interface PluginCapabilityDeclaration { id: string; displayName: string; description?: string; acceptedSourceTypes?: string[]; producedArtifactTypes?: string[]; scenarioKeywords?: string[]; requiredTools?: string[]; deliveryAdapters?: string[]; verificationRequirements?: string[]; hiddenWorkerRoles?: string[]; } export interface PluginManifest { name: string; version?: string; description?: string; author?: unknown; homepage?: string; repository?: string; license?: string; keywords?: string[]; skills?: string; mcpServers?: string; apps?: string; commands?: PluginCommand[]; interface?: PluginInterfaceMetadata; capabilities?: PluginCapabilityDeclaration[]; runPostconditions?: PluginRunPostcondition[]; policy?: 'bundle_safe_sync'; dependencies?: { skills?: Array; mcpServers?: Array; }; } export interface PluginDeveloperInfo { name: string; url?: string; email?: string; } export type PluginInstallMethod = 'bundled' | 'curated' | 'local'; export interface DiscoveredPlugin { name: string; version: string; description: string; policy: 'bundle_safe_sync'; provider?: 'codex'; directory: string; manifestPath: string; sourceRef: SkillSourceReference; interface?: PluginInterfaceMetadata; capabilities?: PluginCapabilityDeclaration[]; runPostconditions?: PluginRunPostcondition[]; commands: PluginCommand[]; skills: PluginDependencySkill[]; mcpServers: PluginDependencyMcpServer[]; developer?: PluginDeveloperInfo; installMethod: PluginInstallMethod; } export interface ListedPlugin { plugin: DiscoveredPlugin; discovered: boolean; } //# sourceMappingURL=types.d.ts.map