{"version":3,"sources":["../src/creds/standardKeys.ts","../src/plugin/admin.ts","../src/plugin/plugin.ts","../src/plugin/capabilities.ts","../src/plugin/deploymentOption.ts","../src/skill/skill.ts"],"sourcesContent":["/* eslint-disable sort-keys-fix/sort-keys-fix */\n/**\n * Standard Credential Keys\n *\n * Pre-defined credential key catalog for common providers.\n * Skill authors should prefer these standard keys over custom ones.\n *\n * Rules:\n * 1. `key` represents a capability, not a final env variable name.\n * 2. Same provider with different auth methods should have different keys.\n * 3. Custom keys are allowed but standard keys should be preferred.\n */\nexport const StandardCredKeys = {\n  // AI Providers\n  ANTHROPIC: 'anthropic',\n  COHERE: 'cohere',\n  DEEPSEEK: 'deepseek',\n  GOOGLE_AI: 'google-ai',\n  GROQ: 'groq',\n  HUGGINGFACE: 'huggingface',\n  MISTRAL: 'mistral',\n  OPENAI: 'openai',\n  PERPLEXITY: 'perplexity',\n  REPLICATE: 'replicate',\n\n  // Cloud Providers\n  AWS: 'aws',\n  AZURE: 'azure',\n  CLOUDFLARE: 'cloudflare',\n  FIREBASE_SA: 'firebase-sa',\n  GCP_SA: 'gcp-sa',\n  SUPABASE: 'supabase',\n  VERCEL: 'vercel',\n\n  // Code & DevOps\n  BITBUCKET_PAT: 'bitbucket-pat',\n  GITHUB_OAUTH: 'github-oauth',\n  GITHUB_PAT: 'github-pat',\n  GITLAB_PAT: 'gitlab-pat',\n\n  // Communication\n  DISCORD_BOT: 'discord-bot',\n  DISCORD_WEBHOOK: 'discord-webhook',\n  SENDGRID: 'sendgrid',\n  SLACK_OAUTH: 'slack-oauth',\n  SLACK_WEBHOOK: 'slack-webhook',\n  TWILIO: 'twilio',\n\n  // Databases\n  AIRTABLE: 'airtable',\n  MONGODB: 'mongodb',\n  PLANETSCALE: 'planetscale',\n  REDIS: 'redis',\n\n  // Payments\n  STRIPE: 'stripe',\n\n  // Productivity\n  JIRA_PAT: 'jira-pat',\n  LINEAR_OAUTH: 'linear-oauth',\n  NOTION_OAUTH: 'notion-oauth',\n  NOTION_PAT: 'notion-pat',\n} as const;\n/* eslint-enable sort-keys-fix/sort-keys-fix */\n\nexport type StandardCredKey = (typeof StandardCredKeys)[keyof typeof StandardCredKeys];\n","// Admin plugin item schema definitions\nimport { z } from 'zod';\n\nimport { DeploymentOption, SystemDependency } from './deploymentOption';\nimport { BasePluginItemSchema, MarketPluginItem, PluginManifest } from './plugin';\n\n/**\n * Schema for admin-managed plugin items with additional status and visibility fields.\n * Extends the base plugin schema with administrative properties.\n */\nexport const AdminPluginItemSchema = BasePluginItemSchema.extend({\n  /** Publication status of the plugin */\n  status: z.enum(['published', 'unpublished', 'archived', 'deprecated'] as const),\n  /** Visibility level of the plugin */\n  visibility: z.enum(['public', 'private', 'internal'] as const),\n});\n\n/**\n * Interface for admin-managed plugin items.\n * Extends the market plugin item with administrative properties.\n */\nexport interface AdminPluginItem extends MarketPluginItem {\n  /** GitHub last update timestamp (ISO 8601 format) */\n  githubUpdateAt?: string;\n  /** Unique numeric identifier for the plugin in the database */\n  id: number;\n  /** User ID of the plugin owner */\n  ownerId: number;\n  /** Publication status of the plugin */\n  status: 'published' | 'unpublished' | 'archived';\n  /** Visibility level controlling who can access the plugin */\n  visibility: 'public' | 'private' | 'internal';\n}\n\n/**\n * Plugin version database model.\n * Represents a specific version of a plugin in the database.\n */\nexport interface PluginVersion {\n  /** Creation timestamp (ISO 8601 format) */\n  createdAt: string;\n  /** Unique numeric identifier for the version */\n  id: number;\n  /** Whether this is the latest version of the plugin */\n  isLatest: boolean;\n  /** Whether this version has been validated by the system */\n  isValidated: boolean;\n  /** The full manifest data for this version */\n  manifest: PluginManifest;\n  /** URL to the manifest file, or null if stored directly */\n  manifestUrl: string | null;\n  /** Additional metadata for this version */\n  meta: Record<string, any> | null;\n  /** ID of the parent plugin */\n  pluginId: number;\n  /** Number of prompts provided by this version */\n  promptsCount: number;\n  /** Number of resources provided by this version */\n  resourcesCount: number;\n  /** Number of tools provided by this version */\n  toolsCount: number;\n  /** Last update timestamp (ISO 8601 format) */\n  updatedAt: string;\n  /** Semantic version string (e.g., \"1.0.0\") */\n  version: string;\n}\n\n/**\n * Detailed admin plugin item with version history.\n * Used for displaying complete plugin information in the admin interface.\n */\nexport interface AdminPluginItemDetail extends Omit<AdminPluginItem, 'manifestUrl'> {\n  /** Full manifest data for the current version */\n  manifest: PluginManifest;\n  /** List of all versions of this plugin */\n  versions: PluginVersion[];\n}\n\n/**\n * Admin deployment option with database ID.\n * Extends the basic deployment option with a database identifier.\n */\nexport interface AdminDeploymentOption extends DeploymentOption {\n  /** Unique numeric identifier for the deployment option */\n  id: number;\n}\n\n/**\n * Admin system dependency with database ID.\n * Extends the basic system dependency with a database identifier.\n */\nexport interface AdminSystemDependency extends SystemDependency {\n  /** Unique numeric identifier for the system dependency */\n  id: number;\n}\n\n/**\n * Plugin version localization data.\n * Represents localized content for a specific plugin version in a particular language.\n */\nexport interface PluginVersionLocalization {\n  /** Creation timestamp (ISO 8601 format) */\n  createdAt: string;\n  /** Localized description of the plugin */\n  description: string;\n  /** Unique numeric identifier for the localization */\n  id: number;\n  /** Language/locale code (e.g., 'en-US', 'zh-CN') */\n  locale: string;\n  /** Localized display name of the plugin */\n  name: string;\n  /** ID of the parent plugin version */\n  pluginVersionId: number;\n  /** Localized summary of the plugin */\n  summary?: string;\n  /** Array of localized tags for categorization and search */\n  tags?: string[];\n}\n\n/**\n * 不完整i18n插件项\n * 表示pluginVersionLocalizations只有1个条目的插件\n */\nexport interface IncompleteI18nPlugin {\n  /** 插件标识符 */\n  identifier: string;\n  /** 本地化条目数量 */\n  localizationCount: number;\n  /** 插件ID */\n  pluginId: number;\n  /** 插件版本 */\n  version: string;\n}\n\n/**\n * Range Data Point Interface\n * Defines the structure for daily trend data points in analysis\n */\nexport interface RangeDataPoint {\n  /** Current period count */\n  count: number;\n  /** Date in YYYY-MM-DD format */\n  date: string;\n  /** Previous period count for comparison */\n  prevCount: number;\n}\n\n/**\n * Range Statistics Interface\n * Defines the structure for range-based statistics\n */\nexport interface RangeStats {\n  /** Array of daily data points */\n  data: RangeDataPoint[];\n  /** Display configuration */\n  display: string;\n  /** Total sum for previous period */\n  prevSum: number;\n  /** Total sum for current period */\n  sum: number;\n}\n\n/**\n * Range query parameters for trend analysis\n */\nexport interface RangeQuery {\n  /** Display configuration */\n  display: string;\n  /** Optional previous period range for comparison */\n  prevRange?: [string, string];\n  /** Date range as [startDate, endDate] */\n  range: [string, string];\n}\n","import { z } from 'zod';\n\nimport { MarketItemBase } from '../market';\nimport { PluginCapabilitiesSchema, PluginPrompt, PluginResource, PluginTool } from './capabilities';\nimport { DeploymentOption, PluginConnectionType } from './deploymentOption';\n\n/**\n * Plugin compatibility information.\n * Defines the compatibility requirements for a plugin with respect to app versions and platforms.\n */\nexport interface PluginCompatibility {\n  /** Maximum app version the plugin is compatible with */\n  maxAppVersion?: string;\n  /** Minimum app version required to use the plugin */\n  minAppVersion?: string;\n  /** List of supported platforms (e.g., 'web', 'desktop', 'mobile') */\n  platforms?: string[];\n}\n\n/**\n * Simplified plugin version information.\n * Contains minimal version data for plugin version lists.\n */\nexport interface PluginVersionSummary {\n  /** Creation timestamp (ISO 8601 format) */\n  createdAt: string;\n  /** Whether this is the latest version of the plugin */\n  isLatest: boolean;\n  /** Whether this version has been validated by the system */\n  isValidated: boolean;\n  /** Semantic version string (e.g., \"1.0.0\") */\n  version: string;\n}\n\n/**\n * Base plugin item schema with Zod validation.\n * Defines the structure and validation rules for plugin items in the marketplace.\n */\nexport const BasePluginItemSchema = z.object({\n  author: z.string().optional(),\n  capabilities: PluginCapabilitiesSchema,\n  category: z.string().optional(),\n  commentCount: z.number().default(0),\n  connectionType: z.enum(['local', 'remote', 'hybrid']).optional(),\n  createdAt: z.string(),\n  description: z.string(),\n  github: z\n    .object({\n      language: z.string().optional(),\n      license: z.string().optional(),\n      stars: z.number().optional(),\n      url: z.string(),\n    })\n    .optional(),\n  haveCloudEndpoint: z.boolean().optional(),\n  homepage: z.string().optional(),\n  icon: z.string().optional(),\n  identifier: z.string(),\n  installCount: z.number().default(0),\n  isClaimed: z.boolean().default(false),\n  isFeatured: z.boolean().default(false),\n  isOfficial: z.boolean().default(false),\n  isValidated: z.boolean().default(false),\n  manifestUrl: z.string(),\n  name: z.string(),\n  promptsCount: z.number().optional(),\n  ratingAverage: z.number().optional(),\n  ratingCount: z.number().default(0),\n  resourcesCount: z.number().optional(),\n  toolsCount: z.number().optional(),\n  updatedAt: z.string(),\n});\n\n/**\n * Plugin marketplace item definition.\n * Extends the base marketplace item with plugin-specific properties.\n * This interface represents a plugin as it appears in the marketplace listing.\n */\nexport interface MarketPluginItem extends MarketItemBase {\n  /** Capabilities provided by this plugin */\n  capabilities?: {\n    /** Whether the plugin provides custom prompts */\n    prompts: boolean;\n    /** Whether the plugin provides resources (assets) */\n    resources: boolean;\n    /** Whether the plugin provides tools (functions) */\n    tools: boolean;\n  };\n  /** Number of comments on this plugin */\n  commentCount?: number;\n  /** Connection type strategy for communicating with the plugin */\n  connectionType?: PluginConnectionType;\n  /** GitHub repository information */\n  github?: {\n    language?: string;\n    license?: string;\n    stars?: number;\n    url: string;\n  };\n  /** Whether the plugin has a cloud endpoint available for official cloud-hosted deployment */\n  haveCloudEndpoint?: boolean;\n  /** Number of times this plugin has been installed */\n  installCount?: number;\n  /** Whether this plugin has been claimed by its original author */\n  isClaimed?: boolean;\n  /** Whether this plugin is featured in the marketplace */\n  isFeatured?: boolean;\n  /** Whether this plugin is officially maintained by LobeHub */\n  isOfficial?: boolean;\n  /** Whether this plugin has been validated by the system */\n  isValidated?: boolean;\n  /** Number of prompts provided by this plugin */\n  promptsCount?: number;\n  /** Average rating (typically 1-5 scale) */\n  ratingAverage?: number;\n  /** Number of ratings received */\n  ratingCount?: number;\n  /** Number of resources provided by this plugin */\n  resourcesCount?: number;\n  summary?: string;\n  /** Number of tools provided by this plugin */\n  toolsCount?: number;\n}\n\n/** Type alias for the base plugin item validated by Zod schema */\nexport type BasePluginItem = z.infer<typeof BasePluginItemSchema>;\n\n/**\n * Query parameters for listing plugins in the marketplace.\n * Mirrors SkillListQuery in structure for consistency.\n */\nexport interface PluginListQuery {\n  /** Filter by category */\n  category?: string;\n  /** Filter by MCP connection type */\n  connectionType?: 'http' | 'sse' | 'stdio';\n  /** Filter by claimed status */\n  isClaimed?: 'false' | 'true';\n  /** Filter by featured status */\n  isFeatured?: 'false' | 'true';\n  /** Filter by official status */\n  isOfficial?: 'false' | 'true';\n  /** Locale for localized content */\n  locale?: string;\n  /** Sort direction */\n  order?: 'asc' | 'desc';\n  /** Filter by owner ID */\n  ownerId?: number;\n  /** Page number (1-based) */\n  page?: number;\n  /** Number of items per page */\n  pageSize?: number;\n  /** Search query string */\n  q?: string;\n  /** Sort field */\n  sort?:\n    | 'commentCount'\n    | 'createdAt'\n    | 'githubUpdateAt'\n    | 'installCount'\n    | 'isFeatured'\n    | 'isValidated'\n    | 'ratingAverage'\n    | 'ratingCount'\n    | 'recommended'\n    | 'relevance'\n    | 'stars'\n    | 'updatedAt';\n  /** Publication status filter */\n  status?: 'all' | 'archived' | 'deprecated' | 'published' | 'unpublished';\n  /** Filter by tag */\n  tag?: string;\n  /** Visibility filter */\n  visibility?: 'all' | 'internal' | 'private' | 'public';\n}\n\n/**\n * Plugin manifest definition.\n * This is the complete specification of a plugin, including all its capabilities,\n * metadata, and deployment options.\n */\nexport interface PluginItemDetail extends Omit<MarketPluginItem, 'author' | 'manifestUrl'> {\n  // 构建产物信息\n  artifacts?: {\n    docker?: {\n      imageName?: string;\n      tag?: string;\n    };\n    npm?: {\n      packageName?: string;\n      version?: string;\n    };\n    pypi?: {\n      packageName?: string;\n      version?: string;\n    };\n  };\n  /** Author information */\n  author?: {\n    /** Author or organization name */\n    name: string;\n    /** URL to the author's website or profile */\n    url?: string;\n  };\n  /** Connection type strategy for communicating with the plugin */\n  connectionType?: PluginConnectionType;\n  /** Available deployment options */\n  deploymentOptions?: DeploymentOption[];\n  /**\n   * GitHub\n   */\n  github?: {\n    language?: string;\n    license?: string;\n    stars?: number;\n    url: string;\n  };\n  overview: {\n    readme: string;\n    summary?: string;\n  };\n  /** List of prompt templates provided by this plugin */\n  prompts?: PluginPrompt[];\n  /** List of resources provided by this plugin */\n  resources?: PluginResource[];\n  /** List of tools provided by this plugin */\n  tools?: PluginTool[];\n\n  /** Date when the plugin was created in the marketplace (ISO 8601 format) */\n  validatedAt?: string;\n  /** Semantic version string (e.g., \"1.0.0\") */\n  version: string;\n  /** List of all versions of this plugin with simplified information */\n  versions: PluginVersionSummary[];\n}\n\n/**\n * Plugin manifest definition.\n * This is the complete specification of a plugin, including all its capabilities,\n * metadata, and deployment options.\n */\nexport interface PluginManifest extends Omit<MarketPluginItem, 'author' | 'manifestUrl'> {\n  /** Author information */\n  author?: {\n    /** Author or organization name */\n    name: string;\n    /** URL to the author's website or profile */\n    url?: string;\n  };\n  /** Available deployment options */\n  deploymentOptions?: DeploymentOption[];\n  overview?: {\n    readme?: string;\n    summary?: string;\n  };\n  /** List of prompt templates provided by this plugin */\n  prompts?: PluginPrompt[];\n  /** List of resources provided by this plugin */\n  resources?: PluginResource[];\n  /** List of tools provided by this plugin */\n  tools?: PluginTool[];\n  /** Date when the plugin was created in the marketplace (ISO 8601 format) */\n  validatedAt?: string;\n  /** Semantic version string (e.g., \"1.0.0\") */\n  version: string;\n}\n","// Plugin capability definitions\nimport { z } from 'zod';\n\n/**\n * Schema defining the capabilities a plugin can provide.\n * Each capability is represented as a boolean flag.\n */\nexport const PluginCapabilitiesSchema = z.object({\n  /** Whether the plugin provides custom prompts */\n  prompts: z.boolean().default(false),\n  /** Whether the plugin provides resources (assets) */\n  resources: z.boolean().default(false),\n  /** Whether the plugin provides tools (functions) */\n  tools: z.boolean().default(false),\n});\n\n/**\n * Definition of a tool that a plugin can provide.\n * Tools are functions that can be called by the chat application.\n */\nexport interface PluginTool {\n  /** Human-readable description of what the tool does */\n  description?: string;\n  /** JSON schema defining the expected input parameters */\n  inputSchema?: Record<string, any>;\n  /** Unique identifier for the tool within the plugin */\n  name: string;\n}\n\n/**\n * Definition of a resource (asset) that a plugin can provide.\n * Resources can be images, data files, or other assets needed by the plugin.\n */\nexport interface PluginResource {\n  /** MIME type of the resource (e.g., 'image/png', 'application/json') */\n  mimeType?: string;\n  /** Optional display name for the resource */\n  name?: string;\n  /** URI where the resource can be accessed */\n  uri: string;\n}\n\n/**\n * Definition of an argument for a prompt template.\n * Arguments allow users to customize the prompt when using it.\n */\nexport interface PromptArgument {\n  /** Human-readable description of the argument's purpose */\n  description?: string;\n  /** Argument identifier */\n  name: string;\n  /** Whether the argument must be provided (defaults to false if omitted) */\n  required?: boolean;\n  /** Data type of the argument (e.g., 'string', 'number') */\n  type?: string;\n}\n\n/**\n * Definition of a prompt template that a plugin can provide.\n * Prompts are pre-defined templates that can be used in conversations.\n */\nexport interface PluginPrompt {\n  /** List of customizable arguments for this prompt */\n  arguments?: PromptArgument[];\n  /** Human-readable description of what the prompt does */\n  description: string;\n  /** Unique identifier for the prompt within the plugin */\n  name: string;\n}\n","import { z } from 'zod';\n\n/**\n * Connection types for plugin communication.\n * - http: The plugin communicates via HTTP protocol\n * - stdio: The plugin communicates via standard input/output\n */\nexport const ConnectionTypeEnum = z.enum(['http', 'stdio', 'sse']);\nexport type ConnectionType = z.infer<typeof ConnectionTypeEnum>;\n\n/**\n * Plugin connection types for overall plugin communication strategy.\n * - local: Plugin only supports local communication (stdio)\n * - remote: Plugin only supports remote communication (http)\n * - hybrid: Plugin supports both local and remote communication\n */\nexport const PluginConnectionTypeEnum = z.enum(['local', 'remote', 'hybrid']);\nexport type PluginConnectionType = z.infer<typeof PluginConnectionTypeEnum>;\n\n/**\n * Plugin installation methods.\n * Different ways to install and deploy a plugin.\n */\nexport const InstallationMethodEnum = z.enum([\n  'npm', // Node.js package manager\n  'go', // Go language\n  'python', // Python language\n  'docker', // Docker container\n  'git', // Git repository\n  'binaryUrl', // Direct binary download URL\n  'manual', // Manual installation with instructions\n  'none', // No installation required\n]);\nexport type InstallationMethod = z.infer<typeof InstallationMethodEnum>;\n\n/**\n * System dependency required by a plugin.\n * Defines a software dependency that must be installed on the system.\n */\nexport interface SystemDependency {\n  /** Command to check if the dependency is installed */\n  checkCommand?: string;\n  /** Description of what this dependency is for */\n  description?: string;\n  /** Platform-specific installation instructions */\n  installInstructions?: Record<string, string>;\n  /** Name of the dependency */\n  name: string;\n  /** Minimum required version */\n  requiredVersion?: string;\n  /** Type of dependency (e.g., 'runtime', 'library') */\n  type?: string;\n  /** Whether version parsing is required to check compatibility */\n  versionParsingRequired?: boolean;\n}\n\n/**\n * Connection configuration for a plugin.\n * Defines how the application should communicate with the plugin.\n */\nexport interface ConnectionConfig {\n  /** Command-line arguments for the plugin process */\n  args?: string[];\n  /** Command to execute to start the plugin */\n  command?: string;\n  /**\n   * JSON Schema 配置\n   * 插件运行时需要的 configSchema\n   */\n  configSchema?: any;\n  /** Type of connection (http or stdio) */\n  type: ConnectionType;\n  /** URL for HTTP-based plugins */\n  url?: string;\n}\n\n/**\n * Details for installing a plugin.\n * Provides specific information needed during the installation process.\n */\nexport interface InstallationDetails {\n  /** Package name for npm, pip, or other package managers */\n  packageName?: string;\n  /** Git repository URL to clone */\n  repositoryUrlToClone?: string;\n  /** Ordered list of setup steps to execute after installation */\n  setupSteps?: string[];\n}\n\n/**\n * Deployment option for a plugin.\n * A plugin can offer multiple deployment options, each with different requirements.\n */\nexport interface DeploymentOption {\n  /** Connection configuration for this deployment option */\n  connection: ConnectionConfig;\n  /** Human-readable description of this deployment option */\n  description?: string;\n  /** Detailed installation instructions */\n  installationDetails?: InstallationDetails;\n  /** Method used to install this plugin */\n  installationMethod: string;\n  /** Whether this is the recommended deployment option */\n  isRecommended?: boolean;\n  /** System dependencies required for this deployment option */\n  systemDependencies?: SystemDependency[];\n}\n","/**\n * Skill Type Definitions\n *\n * This module defines types for skill entities in the marketplace.\n * Skills are standalone packages that can be imported from GitHub,\n * browsed, and downloaded.\n */\n\n/**\n * Standard skill category enum\n * Used for AI-generated and validated skill categories\n */\nexport enum SkillCategoryEnum {\n  AILLMs = 'ai-llms',\n  AgentToAgentProtocols = 'agent-to-agent-protocols',\n  AppleAppsServices = 'apple-apps-services',\n  BrowserAutomation = 'browser-automation',\n  CLIUtilities = 'cli-utilities',\n  CalendarScheduling = 'calendar-scheduling',\n  ClawdbotTools = 'clawdbot-tools',\n  CodingAgentsIDEs = 'coding-agents-ides',\n  Communication = 'communication',\n  DataAnalytics = 'data-analytics',\n  DevOpsCloud = 'devops-cloud',\n  Finance = 'finance',\n  Gaming = 'gaming',\n  GitGitHub = 'git-github',\n  HealthFitness = 'health-fitness',\n  IOSMacOSDevelopment = 'ios-macos-development',\n  ImageVideoGeneration = 'image-video-generation',\n  MarketingSales = 'marketing-sales',\n  MediaStreaming = 'media-streaming',\n  Moltbook = 'moltbook',\n  NotesPKM = 'notes-pkm',\n  PDFDocuments = 'pdf-documents',\n  PersonalDevelopment = 'personal-development',\n  ProductivityTasks = 'productivity-tasks',\n  SearchResearch = 'search-research',\n  SecurityPasswords = 'security-passwords',\n  SelfHostedAutomation = 'self-hosted-automation',\n  ShoppingEcommerce = 'shopping-ecommerce',\n  SmartHomeIoT = 'smart-home-iot',\n  SpeechTranscription = 'speech-transcription',\n  Transportation = 'transportation',\n  WebFrontendDevelopment = 'web-frontend-development',\n}\n\n/**\n * Array of valid skill category values\n */\nexport const SKILL_CATEGORY_VALUES = Object.values(SkillCategoryEnum);\n\n/**\n * Skill author information\n */\nexport interface SkillAuthor {\n  /** Author's display name */\n  name: string;\n  /** Author's URL (website, GitHub profile, etc.) */\n  url?: string;\n}\n\n/**\n * GitHub metadata for skills\n */\nexport interface SkillGitHubMeta {\n  /** Number of forks */\n  forks?: number;\n  /** Full repository name (owner/repo) */\n  fullName?: string;\n  /** Number of open issues */\n  openIssues?: number;\n  /** Number of GitHub stars */\n  stars?: number;\n  /** GitHub repository URL */\n  url?: string;\n  /** Number of watchers */\n  watchers?: number;\n}\n\n/**\n * Skill license information\n */\nexport interface SkillLicense {\n  /** License name (e.g., MIT, Apache-2.0) */\n  name: string;\n  /** URL to the license text */\n  url?: string;\n}\n\n/**\n * Resource file metadata\n */\nexport interface SkillResource {\n  /** SHA256 hash of the file */\n  fileHash: string;\n  /** File size in bytes */\n  size: number;\n}\n\n/**\n * Skill manifest from SKILL.md frontmatter\n */\nexport interface SkillManifest {\n  /** Author information */\n  author?: SkillAuthor;\n  /** Category */\n  category?: string;\n  /** Description */\n  description: string;\n  /** Icon URL or emoji */\n  icon?: string;\n  /** License identifier */\n  license?: string;\n  /** License URL */\n  licenseUrl?: string;\n  /** Skill name */\n  name: string;\n  /** GitHub repository URL */\n  repository?: string;\n  /** Original source URL */\n  sourceUrl?: string;\n  /** Short summary */\n  summary?: string;\n  /** Tags for categorization */\n  tags?: string[];\n  /** Version string */\n  version?: string;\n}\n\n/**\n * Skill list item for marketplace listing\n */\nexport interface SkillListItem {\n  /** Author name */\n  author?: string;\n  /** Category */\n  category?: string;\n  /** Number of comments */\n  commentCount: number;\n  /** Creation timestamp (ISO string) */\n  createdAt: string;\n  /** Brief description */\n  description: string;\n  /** GitHub stats */\n  github?: {\n    forks?: number;\n    stars?: number;\n    url?: string;\n    watchers?: number;\n  };\n  /** Homepage URL */\n  homepage?: string;\n  /** Icon URL (GitHub org avatar) */\n  icon?: string;\n  /** Unique skill identifier */\n  identifier: string;\n  /** Install/download count */\n  installCount: number;\n  /** Whether the skill is featured */\n  isFeatured: boolean;\n  /** Whether the skill is official */\n  isOfficial: boolean;\n  /** Whether the skill is validated */\n  isValidated: boolean;\n  /** License name */\n  license?: string;\n  /** Logo URL */\n  logo?: string;\n  /** Canonical skill title from the current version; locale does not affect this field */\n  name: string;\n  /** Average rating */\n  ratingAvg?: number;\n  /** Number of ratings */\n  ratingCount: number;\n  /** Number of resources */\n  resourcesCount?: number;\n  /** Tags for discovery */\n  tags?: string[];\n  /** Last update timestamp (ISO string) */\n  updatedAt: string;\n  /** Current version string */\n  version: string;\n}\n\n/**\n * Skill list response with pagination\n */\nexport interface SkillListResponse {\n  /** Available categories */\n  categories: string[];\n  /** Current page number */\n  currentPage: number;\n  /** List of skills */\n  items: SkillListItem[];\n  /** Page size */\n  pageSize: number;\n  /** Total number of skills */\n  totalCount: number;\n  /** Total number of pages */\n  totalPages: number;\n}\n\n/**\n * Skill version summary\n */\nexport interface SkillVersionSummary {\n  /** Changelog for this version */\n  changelog?: string;\n  /** Creation timestamp (ISO string) */\n  createdAt: string;\n  /** Whether this is the latest version */\n  isLatest: boolean;\n  /** Whether this version has been validated */\n  isValidated?: boolean;\n  /** Version string */\n  version: string;\n  /** Version number */\n  versionNumber: number;\n}\n\n/**\n * Detailed skill information\n */\nexport interface SkillDetail {\n  /** Author information */\n  author?: SkillAuthor;\n  /** Category */\n  category?: string;\n  /** SKILL.md body content (markdown) */\n  content: string;\n  /** Creation timestamp (ISO string) */\n  createdAt: string;\n  /** Description */\n  description: string;\n  /** GitHub metadata */\n  github?: SkillGitHubMeta;\n  /** Homepage URL */\n  homepage?: string;\n  /** Icon URL (GitHub org avatar) */\n  icon?: string;\n  /** Unique skill identifier */\n  identifier: string;\n  /** Install/download count */\n  installCount: number;\n  /** Whether the skill is featured */\n  isFeatured: boolean;\n  /** Whether the skill is official */\n  isOfficial: boolean;\n  /** Whether the skill is validated */\n  isValidated: boolean;\n  /** License information */\n  license?: SkillLicense;\n  /** Logo URL */\n  logo?: string;\n  /** Complete manifest from SKILL.md */\n  manifest: SkillManifest;\n  /** Canonical skill title from the current version; locale does not affect this field */\n  name: string;\n  /** Overview information */\n  overview: {\n    summary?: string;\n  };\n  /** Average rating */\n  ratingAverage?: number;\n  /** Number of ratings */\n  ratingCount: number;\n  /** GitHub repository URL */\n  repository?: string;\n  /** Resource files: path -> metadata */\n  resources: Record<string, SkillResource>;\n  /** Tags */\n  tags?: string[];\n  /** Last update timestamp (ISO string) */\n  updatedAt: string;\n  /** Validation timestamp (ISO string) */\n  validatedAt?: string;\n  /** Current version string */\n  version: string;\n  /** Version number */\n  versionNumber: number;\n  /** All versions of this skill */\n  versions: SkillVersionSummary[];\n}\n\n/**\n * Skill category with count\n */\nexport interface SkillCategory {\n  /** Category name */\n  category: string;\n  /** Number of skills in this category */\n  count: number;\n}\n\n/**\n * Query parameters for skill categories\n */\nexport interface SkillCategoryQuery {\n  /** Locale for localized content */\n  locale?: string;\n  /** Search query to filter skills before counting categories */\n  q?: string;\n}\n\n/**\n * Query parameters for listing skills\n */\nexport interface SkillListQuery {\n  /** Filter by category */\n  category?: string;\n  /** Filter by featured flag */\n  isFeatured?: 'false' | 'true';\n  /** Filter by official flag */\n  isOfficial?: 'false' | 'true';\n  /** Locale for localized content such as description and summary; title remains canonical */\n  locale?: string;\n  /** Sort order */\n  order?: 'asc' | 'desc';\n  /** Page number (1-based) */\n  page?: number;\n  /** Number of items per page */\n  pageSize?: number;\n  /** Search query string */\n  query?: string;\n  /** Sort field */\n  sort?:\n    | 'commentCount'\n    | 'createdAt'\n    | 'forks'\n    | 'installCount'\n    | 'name'\n    | 'ratingAverage'\n    | 'recommended'\n    | 'relevance'\n    | 'stars'\n    | 'updatedAt'\n    | 'watchers';\n}\n\n/**\n * Query parameters for skill detail\n */\nexport interface SkillDetailQuery {\n  /** Locale for localized content such as description and summary; title remains canonical */\n  locale?: string;\n  /** Specific version to retrieve */\n  version?: string;\n}\n\n/**\n * Parameters for reporting a GitHub skill\n */\nexport interface ReportGitHubSkillParams {\n  /** Branch name (optional) */\n  branch?: string;\n  /** GitHub repository URL */\n  gitUrl: string;\n}\n\n/**\n * Response from reporting a GitHub skill\n */\nexport interface ReportGitHubSkillResponse {\n  /** Skill identifier */\n  identifier: string;\n  /** Status message */\n  message: string;\n  /** Status: 'queued' for new import, 'exists' if skill already exists */\n  status: 'exists' | 'queued';\n}\n\n/**\n * Response for skill versions list\n */\nexport interface SkillVersionsResponse {\n  /** List of version summaries */\n  data: SkillVersionSummary[];\n}\n"],"mappings":"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","names":["z","z","z","z","z","SkillCategoryEnum"]}