/** * Local validation of skill package.json manifests. * Keep in sync with agenticros-skills/functions/src/util/manifest.ts */ export interface AgenticROSBlock { id: string; displayName?: string; description?: string; tutorial?: boolean; categories?: string[]; screenshots?: string[]; demoVideoUrl?: string; capabilities?: Capability[]; } export interface Capability { id: string; verb: string; description: string; inputs?: Record; outputs?: Record; interruptible?: boolean; blocks_base?: boolean; } export interface SkillManifest { name: string; version: string; description?: string; main?: string; homepage?: string; bugs?: string | { url?: string; }; keywords?: string[]; repository?: string | { url?: string; }; dependencies?: Record; agenticros?: AgenticROSBlock; agenticrosSkill?: unknown; } export interface ValidatedManifest { manifest: SkillManifest; block: AgenticROSBlock; warnings: string[]; } export declare class ManifestError extends Error { constructor(message: string); } export declare function isValidSlug(slug: string): boolean; export declare function validateManifest(raw: unknown): ValidatedManifest; export declare function manifestRepoUrl(m: SkillManifest): string | null; export declare function firestoreDocId(ownerLogin: string, skillSlug: string): string; export declare function marketplaceRef(ownerLogin: string, skillSlug: string): string; export declare function parseMarketplaceRef(ref: string): { owner: string; skill: string; } | null; //# sourceMappingURL=skill-manifest.d.ts.map