aiwg
Version:
Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo
107 lines • 2.92 kB
TypeScript
/**
* Marketplace Consumer Types
*
* Interfaces for third-party marketplace plugin ingestion.
*
* @implements #787
*/
/**
* Supported marketplace sources
*/
export type MarketplaceSourceId = 'clawhub' | 'cursor' | 'codex' | 'claude' | 'git';
/**
* Normalized AIWG-internal metadata for a marketplace plugin
*/
export interface PackageMetadata {
/** Package name (e.g. "aiwg-sdlc") */
name: string;
/** Package version (SemVer preferred) */
version: string;
/** Namespace for deployment paths ("aiwg" or third-party) */
namespace: string;
/** Source marketplace */
source: MarketplaceSourceId;
/** Human-readable description */
description: string;
/** License identifier (SPDX preferred) */
license: string;
/** Original publisher/author */
publisher?: string;
/** Homepage URL */
homepage?: string;
/** Repository URL */
repository?: string;
/** Source-specific fields preserved for update detection */
sourceSpecific?: Record<string, unknown>;
}
/**
* Artifact paths within a fetched package bundle
*/
export interface PackageArtifacts {
agents?: string[];
commands?: string[];
skills?: string[];
rules?: string[];
behaviors?: string[];
templates?: string[];
}
/**
* A fetched package ready for caching and deployment
*/
export interface PackageBundle {
metadata: PackageMetadata;
artifacts: PackageArtifacts;
/** Local directory where the package is staged */
localPath: string;
/** Raw manifest from the source marketplace */
rawManifest: Record<string, unknown>;
}
/**
* Summary of a package found via search
*/
export interface PackageSummary {
name: string;
version: string;
description: string;
source: MarketplaceSourceId;
downloads?: number;
stars?: number;
}
/**
* Search options
*/
export interface SearchOptions {
limit?: number;
sort?: 'downloads' | 'stars' | 'updated' | 'name';
}
/**
* Result of manifest validation
*/
export interface ValidationResult {
valid: boolean;
errors: string[];
warnings: string[];
}
/**
* Common interface for marketplace source adapters
*/
export interface MarketplaceSource {
readonly source: MarketplaceSourceId;
/** Fetch a package by identifier */
fetch(packageId: string, version?: string): Promise<PackageBundle>;
/** Search the marketplace */
search(query: string, options?: SearchOptions): Promise<PackageSummary[]>;
/** Validate a package manifest */
validate(manifest: unknown): ValidationResult;
/** List available versions of a package */
getVersions(packageId: string): Promise<string[]>;
}
/**
* Parsed source identifier (e.g. "clawhub:aiwg/sdlc" → { source, packageId })
*/
export interface ParsedIdentifier {
source: MarketplaceSourceId;
packageId: string;
version?: string;
}
//# sourceMappingURL=types.d.ts.map