Interface IMarketplace

Interface for the Agent Marketplace

interface IMarketplace {
    initialize(): Promise<void>;
    search(options?): Promise<MarketplaceSearchResult>;
    getItem(itemId): Promise<undefined | MarketplaceItem>;
    getItems(itemIds): Promise<MarketplaceItem[]>;
    getFeatured(type?, limit?): Promise<MarketplaceItem[]>;
    getTrending(type?, period?, limit?): Promise<MarketplaceItem[]>;
    getRecent(type?, limit?): Promise<MarketplaceItem[]>;
    getByPublisher(publisherId, options?): Promise<MarketplaceSearchResult>;
    getReviews(itemId, options?): Promise<{
        reviews: Review[];
        total: number;
    }>;
    getVersions(itemId): Promise<{
        version: string;
        releasedAt: string;
        changelog?: string;
    }[]>;
    getDependencyTree(itemId): Promise<{
        item: MarketplaceItem;
        dependencies: MarketplaceItem[];
    }>;
    install(itemId, options?): Promise<InstallationResult>;
    update(installationId, options?): Promise<InstallationResult>;
    uninstall(installationId): Promise<{
        success: boolean;
        error?: string;
    }>;
    getInstalled(options?): Promise<InstalledItem[]>;
    getInstallation(installationId): Promise<undefined | InstalledItem>;
    checkUpdates(): Promise<{
        installation: InstalledItem;
        latestVersion: string;
        currentVersion: string;
    }[]>;
    publish(item): Promise<MarketplaceItem>;
    updateItem(itemId, updates): Promise<MarketplaceItem>;
    publishVersion(itemId, version, options?): Promise<void>;
    deprecate(itemId, reason, alternativeId?): Promise<void>;
    submitReview(itemId, review): Promise<Review>;
    updateReview(reviewId, updates): Promise<Review>;
    deleteReview(reviewId): Promise<void>;
    markReviewHelpful(reviewId): Promise<void>;
    respondToReview(reviewId, response): Promise<void>;
    getStats(): Promise<MarketplaceStats>;
    recordView(itemId): Promise<void>;
    getItemAnalytics(itemId, period?): Promise<{
        views: {
            date: string;
            count: number;
        }[];
        downloads: {
            date: string;
            count: number;
        }[];
        activeInstalls: number;
        uninstalls: number;
        ratings: {
            date: string;
            rating: number;
        }[];
    }>;
}

Implemented by

Methods

  • Get item reviews

    Parameters

    • itemId: string
    • Optional options: {
          sortBy?: "rating" | "newest" | "helpful";
          limit?: number;
          offset?: number;
      }
      • Optional sortBy?: "rating" | "newest" | "helpful"
      • Optional limit?: number
      • Optional offset?: number

    Returns Promise<{
        reviews: Review[];
        total: number;
    }>

  • Get item versions

    Parameters

    • itemId: string

    Returns Promise<{
        version: string;
        releasedAt: string;
        changelog?: string;
    }[]>

  • Install an item

    Parameters

    • itemId: string
    • Optional options: {
          version?: string;
          config?: Record<string, unknown>;
          autoUpdate?: boolean;
      }
      • Optional version?: string
      • Optional config?: Record<string, unknown>
      • Optional autoUpdate?: boolean

    Returns Promise<InstallationResult>

  • Uninstall an item

    Parameters

    • installationId: string

    Returns Promise<{
        success: boolean;
        error?: string;
    }>

  • Check for updates

    Returns Promise<{
        installation: InstalledItem;
        latestVersion: string;
        currentVersion: string;
    }[]>

  • Publish a new version

    Parameters

    • itemId: string
    • version: string
    • Optional options: {
          changelog?: string;
          breaking?: boolean;
      }
      • Optional changelog?: string
      • Optional breaking?: boolean

    Returns Promise<void>

  • Deprecate an item

    Parameters

    • itemId: string
    • reason: string
    • Optional alternativeId: string

    Returns Promise<void>

  • Submit a review

    Parameters

    • itemId: string
    • review: {
          rating: number;
          title?: string;
          body: string;
      }
      • rating: number
      • Optional title?: string
      • body: string

    Returns Promise<Review>

  • Update a review

    Parameters

    • reviewId: string
    • updates: {
          rating?: number;
          title?: string;
          body?: string;
      }
      • Optional rating?: number
      • Optional title?: string
      • Optional body?: string

    Returns Promise<Review>

  • Respond to a review (as publisher)

    Parameters

    • reviewId: string
    • response: string

    Returns Promise<void>

  • Get item analytics (for publishers)

    Parameters

    • itemId: string
    • Optional period: "day" | "week" | "month" | "year"

    Returns Promise<{
        views: {
            date: string;
            count: number;
        }[];
        downloads: {
            date: string;
            count: number;
        }[];
        activeInstalls: number;
        uninstalls: number;
        ratings: {
            date: string;
            rating: number;
        }[];
    }>