UNPKG

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

1,014 lines 39.8 kB
/** * Bundle Manifest Schema (Zod) * * Validates `.aiwg/{extensions,addons,frameworks,plugins}/<name>/manifest.json` * for project-local artifact bundles. Implements the design in * `.aiwg/architecture/design-manifest-schema.md` (#1044). * * Layered above the per-artifact Extension type validation in `validation.ts`: * the bundle manifest declares the bundle (a directory containing artifacts); * the existing schemas validate individual artifact bodies inside the bundle. * * @implements #1044 * @architecture .aiwg/architecture/design-manifest-schema.md */ import { z } from 'zod'; export declare const MANIFEST_MAX_BYTES: number; export declare const MAX_BUNDLES_PER_PROJECT = 200; export declare const MAX_KEYWORDS_PER_MANIFEST = 50; export declare const MAX_OVERRIDES_PER_MANIFEST = 20; export declare const ProjectLocalTypeSchema: z.ZodEnum<["extension", "addon", "framework", "plugin"]>; export type ProjectLocalType = z.infer<typeof ProjectLocalTypeSchema>; export declare const AddonConfigSchema: z.ZodObject<{ core: z.ZodOptional<z.ZodBoolean>; autoInstall: z.ZodOptional<z.ZodBoolean>; agents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; skills: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; rules: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; templates: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; prompts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; hooks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; commands: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; behaviors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; entry: z.ZodOptional<z.ZodObject<{ agents: z.ZodOptional<z.ZodString>; skills: z.ZodOptional<z.ZodString>; rules: z.ZodOptional<z.ZodString>; templates: z.ZodOptional<z.ZodString>; prompts: z.ZodOptional<z.ZodString>; hooks: z.ZodOptional<z.ZodString>; commands: z.ZodOptional<z.ZodString>; behaviors: z.ZodOptional<z.ZodString>; }, "strict", z.ZodTypeAny, { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; }, { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; }>>; }, "strict", z.ZodTypeAny, { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; rules?: string[] | undefined; templates?: string[] | undefined; behaviors?: string[] | undefined; hooks?: string[] | undefined; core?: boolean | undefined; prompts?: string[] | undefined; autoInstall?: boolean | undefined; entry?: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; } | undefined; }, { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; rules?: string[] | undefined; templates?: string[] | undefined; behaviors?: string[] | undefined; hooks?: string[] | undefined; core?: boolean | undefined; prompts?: string[] | undefined; autoInstall?: boolean | undefined; entry?: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; } | undefined; }>; export declare const FrameworkConfigSchema: z.ZodObject<{ path: z.ZodOptional<z.ZodString>; files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; ignore: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; contextContributions: z.ZodOptional<z.ZodObject<{ hookFragment: z.ZodOptional<z.ZodString>; sectionsDir: z.ZodOptional<z.ZodString>; sectionsManifest: z.ZodOptional<z.ZodString>; priority: z.ZodOptional<z.ZodNumber>; description: z.ZodOptional<z.ZodString>; }, "strict", z.ZodTypeAny, { description?: string | undefined; priority?: number | undefined; hookFragment?: string | undefined; sectionsDir?: string | undefined; sectionsManifest?: string | undefined; }, { description?: string | undefined; priority?: number | undefined; hookFragment?: string | undefined; sectionsDir?: string | undefined; sectionsManifest?: string | undefined; }>>; }, "strict", z.ZodTypeAny, { path?: string | undefined; ignore?: string[] | undefined; files?: string[] | undefined; contextContributions?: { description?: string | undefined; priority?: number | undefined; hookFragment?: string | undefined; sectionsDir?: string | undefined; sectionsManifest?: string | undefined; } | undefined; }, { path?: string | undefined; ignore?: string[] | undefined; files?: string[] | undefined; contextContributions?: { description?: string | undefined; priority?: number | undefined; hookFragment?: string | undefined; sectionsDir?: string | undefined; sectionsManifest?: string | undefined; } | undefined; }>; export declare const ExtensionConfigSchema: z.ZodObject<{ agents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; skills: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; rules: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; templates: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; prompts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; hooks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; commands: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; behaviors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; entry: z.ZodOptional<z.ZodObject<{ agents: z.ZodOptional<z.ZodString>; skills: z.ZodOptional<z.ZodString>; rules: z.ZodOptional<z.ZodString>; templates: z.ZodOptional<z.ZodString>; prompts: z.ZodOptional<z.ZodString>; hooks: z.ZodOptional<z.ZodString>; commands: z.ZodOptional<z.ZodString>; behaviors: z.ZodOptional<z.ZodString>; }, "strict", z.ZodTypeAny, { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; }, { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; }>>; }, "strict", z.ZodTypeAny, { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; rules?: string[] | undefined; templates?: string[] | undefined; behaviors?: string[] | undefined; hooks?: string[] | undefined; prompts?: string[] | undefined; entry?: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; } | undefined; }, { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; rules?: string[] | undefined; templates?: string[] | undefined; behaviors?: string[] | undefined; hooks?: string[] | undefined; prompts?: string[] | undefined; entry?: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; } | undefined; }>; export declare const PluginConfigSchema: z.ZodObject<{ payloadType: z.ZodEnum<["addon", "framework", "extension"]>; payloadPath: z.ZodString; }, "strict", z.ZodTypeAny, { payloadType: "framework" | "addon" | "extension"; payloadPath: string; }, { payloadType: "framework" | "addon" | "extension"; payloadPath: string; }>; export declare const BundleManifestSchema: z.ZodEffects<z.ZodObject<{ id: z.ZodString; type: z.ZodEnum<["extension", "addon", "framework", "plugin"]>; name: z.ZodString; version: z.ZodString; description: z.ZodString; manifestVersion: z.ZodLiteral<"1">; platforms: z.ZodEffects<z.ZodObject<{ claude: z.ZodOptional<z.ZodEnum<["full", "partial", "experimental", "none"]>>; factory: z.ZodOptional<z.ZodEnum<["full", "partial", "experimental", "none"]>>; cursor: z.ZodOptional<z.ZodEnum<["full", "partial", "experimental", "none"]>>; copilot: z.ZodOptional<z.ZodEnum<["full", "partial", "experimental", "none"]>>; windsurf: z.ZodOptional<z.ZodEnum<["full", "partial", "experimental", "none"]>>; codex: z.ZodOptional<z.ZodEnum<["full", "partial", "experimental", "none"]>>; opencode: z.ZodOptional<z.ZodEnum<["full", "partial", "experimental", "none"]>>; generic: z.ZodOptional<z.ZodEnum<["full", "partial", "experimental", "none"]>>; }, "strip", z.ZodTypeAny, { claude?: "experimental" | "full" | "partial" | "none" | undefined; cursor?: "experimental" | "full" | "partial" | "none" | undefined; factory?: "experimental" | "full" | "partial" | "none" | undefined; codex?: "experimental" | "full" | "partial" | "none" | undefined; opencode?: "experimental" | "full" | "partial" | "none" | undefined; windsurf?: "experimental" | "full" | "partial" | "none" | undefined; copilot?: "experimental" | "full" | "partial" | "none" | undefined; generic?: "experimental" | "full" | "partial" | "none" | undefined; }, { claude?: "experimental" | "full" | "partial" | "none" | undefined; cursor?: "experimental" | "full" | "partial" | "none" | undefined; factory?: "experimental" | "full" | "partial" | "none" | undefined; codex?: "experimental" | "full" | "partial" | "none" | undefined; opencode?: "experimental" | "full" | "partial" | "none" | undefined; windsurf?: "experimental" | "full" | "partial" | "none" | undefined; copilot?: "experimental" | "full" | "partial" | "none" | undefined; generic?: "experimental" | "full" | "partial" | "none" | undefined; }>, { claude?: "experimental" | "full" | "partial" | "none" | undefined; cursor?: "experimental" | "full" | "partial" | "none" | undefined; factory?: "experimental" | "full" | "partial" | "none" | undefined; codex?: "experimental" | "full" | "partial" | "none" | undefined; opencode?: "experimental" | "full" | "partial" | "none" | undefined; windsurf?: "experimental" | "full" | "partial" | "none" | undefined; copilot?: "experimental" | "full" | "partial" | "none" | undefined; generic?: "experimental" | "full" | "partial" | "none" | undefined; }, { claude?: "experimental" | "full" | "partial" | "none" | undefined; cursor?: "experimental" | "full" | "partial" | "none" | undefined; factory?: "experimental" | "full" | "partial" | "none" | undefined; codex?: "experimental" | "full" | "partial" | "none" | undefined; opencode?: "experimental" | "full" | "partial" | "none" | undefined; windsurf?: "experimental" | "full" | "partial" | "none" | undefined; copilot?: "experimental" | "full" | "partial" | "none" | undefined; generic?: "experimental" | "full" | "partial" | "none" | undefined; }>; keywords: z.ZodArray<z.ZodString, "many">; deployment: z.ZodObject<{ pathTemplate: z.ZodString; pathOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; additionalFiles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; autoInstall: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; core: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { core: boolean; pathTemplate: string; autoInstall: boolean; pathOverrides?: Record<string, string> | undefined; additionalFiles?: string[] | undefined; }, { pathTemplate: string; core?: boolean | undefined; pathOverrides?: Record<string, string> | undefined; additionalFiles?: string[] | undefined; autoInstall?: boolean | undefined; }>; author: z.ZodOptional<z.ZodString>; license: z.ZodOptional<z.ZodString>; repository: z.ZodOptional<z.ZodString>; addonConfig: z.ZodOptional<z.ZodObject<{ core: z.ZodOptional<z.ZodBoolean>; autoInstall: z.ZodOptional<z.ZodBoolean>; agents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; skills: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; rules: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; templates: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; prompts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; hooks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; commands: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; behaviors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; entry: z.ZodOptional<z.ZodObject<{ agents: z.ZodOptional<z.ZodString>; skills: z.ZodOptional<z.ZodString>; rules: z.ZodOptional<z.ZodString>; templates: z.ZodOptional<z.ZodString>; prompts: z.ZodOptional<z.ZodString>; hooks: z.ZodOptional<z.ZodString>; commands: z.ZodOptional<z.ZodString>; behaviors: z.ZodOptional<z.ZodString>; }, "strict", z.ZodTypeAny, { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; }, { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; }>>; }, "strict", z.ZodTypeAny, { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; rules?: string[] | undefined; templates?: string[] | undefined; behaviors?: string[] | undefined; hooks?: string[] | undefined; core?: boolean | undefined; prompts?: string[] | undefined; autoInstall?: boolean | undefined; entry?: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; } | undefined; }, { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; rules?: string[] | undefined; templates?: string[] | undefined; behaviors?: string[] | undefined; hooks?: string[] | undefined; core?: boolean | undefined; prompts?: string[] | undefined; autoInstall?: boolean | undefined; entry?: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; } | undefined; }>>; frameworkConfig: z.ZodOptional<z.ZodObject<{ path: z.ZodOptional<z.ZodString>; files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; ignore: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; contextContributions: z.ZodOptional<z.ZodObject<{ hookFragment: z.ZodOptional<z.ZodString>; sectionsDir: z.ZodOptional<z.ZodString>; sectionsManifest: z.ZodOptional<z.ZodString>; priority: z.ZodOptional<z.ZodNumber>; description: z.ZodOptional<z.ZodString>; }, "strict", z.ZodTypeAny, { description?: string | undefined; priority?: number | undefined; hookFragment?: string | undefined; sectionsDir?: string | undefined; sectionsManifest?: string | undefined; }, { description?: string | undefined; priority?: number | undefined; hookFragment?: string | undefined; sectionsDir?: string | undefined; sectionsManifest?: string | undefined; }>>; }, "strict", z.ZodTypeAny, { path?: string | undefined; ignore?: string[] | undefined; files?: string[] | undefined; contextContributions?: { description?: string | undefined; priority?: number | undefined; hookFragment?: string | undefined; sectionsDir?: string | undefined; sectionsManifest?: string | undefined; } | undefined; }, { path?: string | undefined; ignore?: string[] | undefined; files?: string[] | undefined; contextContributions?: { description?: string | undefined; priority?: number | undefined; hookFragment?: string | undefined; sectionsDir?: string | undefined; sectionsManifest?: string | undefined; } | undefined; }>>; extensionConfig: z.ZodOptional<z.ZodObject<{ agents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; skills: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; rules: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; templates: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; prompts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; hooks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; commands: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; behaviors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; entry: z.ZodOptional<z.ZodObject<{ agents: z.ZodOptional<z.ZodString>; skills: z.ZodOptional<z.ZodString>; rules: z.ZodOptional<z.ZodString>; templates: z.ZodOptional<z.ZodString>; prompts: z.ZodOptional<z.ZodString>; hooks: z.ZodOptional<z.ZodString>; commands: z.ZodOptional<z.ZodString>; behaviors: z.ZodOptional<z.ZodString>; }, "strict", z.ZodTypeAny, { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; }, { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; }>>; }, "strict", z.ZodTypeAny, { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; rules?: string[] | undefined; templates?: string[] | undefined; behaviors?: string[] | undefined; hooks?: string[] | undefined; prompts?: string[] | undefined; entry?: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; } | undefined; }, { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; rules?: string[] | undefined; templates?: string[] | undefined; behaviors?: string[] | undefined; hooks?: string[] | undefined; prompts?: string[] | undefined; entry?: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; } | undefined; }>>; pluginConfig: z.ZodOptional<z.ZodObject<{ payloadType: z.ZodEnum<["addon", "framework", "extension"]>; payloadPath: z.ZodString; }, "strict", z.ZodTypeAny, { payloadType: "framework" | "addon" | "extension"; payloadPath: string; }, { payloadType: "framework" | "addon" | "extension"; payloadPath: string; }>>; 'safety-critical': z.ZodOptional<z.ZodBoolean>; overrides: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; deprecation: z.ZodOptional<z.ZodObject<{ date: z.ZodString; successor: z.ZodOptional<z.ZodString>; reason: z.ZodString; }, "strip", z.ZodTypeAny, { reason: string; date: string; successor?: string | undefined; }, { reason: string; date: string; successor?: string | undefined; }>>; memory: z.ZodOptional<z.ZodObject<{ creates: z.ZodOptional<z.ZodArray<z.ZodObject<{ path: z.ZodString; description: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; description: string; }, { path: string; description: string; }>, "many">>; normalizedFiles: z.ZodOptional<z.ZodArray<z.ZodObject<{ path: z.ZodString; description: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; description: string; }, { path: string; description: string; }>, "many">>; }, "strip", z.ZodTypeAny, { creates?: { path: string; description: string; }[] | undefined; normalizedFiles?: { path: string; description: string; }[] | undefined; }, { creates?: { path: string; description: string; }[] | undefined; normalizedFiles?: { path: string; description: string; }[] | undefined; }>>; }, "strict", z.ZodTypeAny, { type: "framework" | "addon" | "extension" | "plugin"; id: string; version: string; name: string; description: string; deployment: { core: boolean; pathTemplate: string; autoInstall: boolean; pathOverrides?: Record<string, string> | undefined; additionalFiles?: string[] | undefined; }; platforms: { claude?: "experimental" | "full" | "partial" | "none" | undefined; cursor?: "experimental" | "full" | "partial" | "none" | undefined; factory?: "experimental" | "full" | "partial" | "none" | undefined; codex?: "experimental" | "full" | "partial" | "none" | undefined; opencode?: "experimental" | "full" | "partial" | "none" | undefined; windsurf?: "experimental" | "full" | "partial" | "none" | undefined; copilot?: "experimental" | "full" | "partial" | "none" | undefined; generic?: "experimental" | "full" | "partial" | "none" | undefined; }; keywords: string[]; manifestVersion: "1"; deprecation?: { reason: string; date: string; successor?: string | undefined; } | undefined; memory?: { creates?: { path: string; description: string; }[] | undefined; normalizedFiles?: { path: string; description: string; }[] | undefined; } | undefined; author?: string | undefined; license?: string | undefined; repository?: string | undefined; addonConfig?: { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; rules?: string[] | undefined; templates?: string[] | undefined; behaviors?: string[] | undefined; hooks?: string[] | undefined; core?: boolean | undefined; prompts?: string[] | undefined; autoInstall?: boolean | undefined; entry?: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; } | undefined; } | undefined; frameworkConfig?: { path?: string | undefined; ignore?: string[] | undefined; files?: string[] | undefined; contextContributions?: { description?: string | undefined; priority?: number | undefined; hookFragment?: string | undefined; sectionsDir?: string | undefined; sectionsManifest?: string | undefined; } | undefined; } | undefined; extensionConfig?: { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; rules?: string[] | undefined; templates?: string[] | undefined; behaviors?: string[] | undefined; hooks?: string[] | undefined; prompts?: string[] | undefined; entry?: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; } | undefined; } | undefined; pluginConfig?: { payloadType: "framework" | "addon" | "extension"; payloadPath: string; } | undefined; 'safety-critical'?: boolean | undefined; overrides?: string[] | undefined; }, { type: "framework" | "addon" | "extension" | "plugin"; id: string; version: string; name: string; description: string; deployment: { pathTemplate: string; core?: boolean | undefined; pathOverrides?: Record<string, string> | undefined; additionalFiles?: string[] | undefined; autoInstall?: boolean | undefined; }; platforms: { claude?: "experimental" | "full" | "partial" | "none" | undefined; cursor?: "experimental" | "full" | "partial" | "none" | undefined; factory?: "experimental" | "full" | "partial" | "none" | undefined; codex?: "experimental" | "full" | "partial" | "none" | undefined; opencode?: "experimental" | "full" | "partial" | "none" | undefined; windsurf?: "experimental" | "full" | "partial" | "none" | undefined; copilot?: "experimental" | "full" | "partial" | "none" | undefined; generic?: "experimental" | "full" | "partial" | "none" | undefined; }; keywords: string[]; manifestVersion: "1"; deprecation?: { reason: string; date: string; successor?: string | undefined; } | undefined; memory?: { creates?: { path: string; description: string; }[] | undefined; normalizedFiles?: { path: string; description: string; }[] | undefined; } | undefined; author?: string | undefined; license?: string | undefined; repository?: string | undefined; addonConfig?: { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; rules?: string[] | undefined; templates?: string[] | undefined; behaviors?: string[] | undefined; hooks?: string[] | undefined; core?: boolean | undefined; prompts?: string[] | undefined; autoInstall?: boolean | undefined; entry?: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; } | undefined; } | undefined; frameworkConfig?: { path?: string | undefined; ignore?: string[] | undefined; files?: string[] | undefined; contextContributions?: { description?: string | undefined; priority?: number | undefined; hookFragment?: string | undefined; sectionsDir?: string | undefined; sectionsManifest?: string | undefined; } | undefined; } | undefined; extensionConfig?: { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; rules?: string[] | undefined; templates?: string[] | undefined; behaviors?: string[] | undefined; hooks?: string[] | undefined; prompts?: string[] | undefined; entry?: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; } | undefined; } | undefined; pluginConfig?: { payloadType: "framework" | "addon" | "extension"; payloadPath: string; } | undefined; 'safety-critical'?: boolean | undefined; overrides?: string[] | undefined; }>, { type: "framework" | "addon" | "extension" | "plugin"; id: string; version: string; name: string; description: string; deployment: { core: boolean; pathTemplate: string; autoInstall: boolean; pathOverrides?: Record<string, string> | undefined; additionalFiles?: string[] | undefined; }; platforms: { claude?: "experimental" | "full" | "partial" | "none" | undefined; cursor?: "experimental" | "full" | "partial" | "none" | undefined; factory?: "experimental" | "full" | "partial" | "none" | undefined; codex?: "experimental" | "full" | "partial" | "none" | undefined; opencode?: "experimental" | "full" | "partial" | "none" | undefined; windsurf?: "experimental" | "full" | "partial" | "none" | undefined; copilot?: "experimental" | "full" | "partial" | "none" | undefined; generic?: "experimental" | "full" | "partial" | "none" | undefined; }; keywords: string[]; manifestVersion: "1"; deprecation?: { reason: string; date: string; successor?: string | undefined; } | undefined; memory?: { creates?: { path: string; description: string; }[] | undefined; normalizedFiles?: { path: string; description: string; }[] | undefined; } | undefined; author?: string | undefined; license?: string | undefined; repository?: string | undefined; addonConfig?: { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; rules?: string[] | undefined; templates?: string[] | undefined; behaviors?: string[] | undefined; hooks?: string[] | undefined; core?: boolean | undefined; prompts?: string[] | undefined; autoInstall?: boolean | undefined; entry?: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; } | undefined; } | undefined; frameworkConfig?: { path?: string | undefined; ignore?: string[] | undefined; files?: string[] | undefined; contextContributions?: { description?: string | undefined; priority?: number | undefined; hookFragment?: string | undefined; sectionsDir?: string | undefined; sectionsManifest?: string | undefined; } | undefined; } | undefined; extensionConfig?: { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; rules?: string[] | undefined; templates?: string[] | undefined; behaviors?: string[] | undefined; hooks?: string[] | undefined; prompts?: string[] | undefined; entry?: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; } | undefined; } | undefined; pluginConfig?: { payloadType: "framework" | "addon" | "extension"; payloadPath: string; } | undefined; 'safety-critical'?: boolean | undefined; overrides?: string[] | undefined; }, { type: "framework" | "addon" | "extension" | "plugin"; id: string; version: string; name: string; description: string; deployment: { pathTemplate: string; core?: boolean | undefined; pathOverrides?: Record<string, string> | undefined; additionalFiles?: string[] | undefined; autoInstall?: boolean | undefined; }; platforms: { claude?: "experimental" | "full" | "partial" | "none" | undefined; cursor?: "experimental" | "full" | "partial" | "none" | undefined; factory?: "experimental" | "full" | "partial" | "none" | undefined; codex?: "experimental" | "full" | "partial" | "none" | undefined; opencode?: "experimental" | "full" | "partial" | "none" | undefined; windsurf?: "experimental" | "full" | "partial" | "none" | undefined; copilot?: "experimental" | "full" | "partial" | "none" | undefined; generic?: "experimental" | "full" | "partial" | "none" | undefined; }; keywords: string[]; manifestVersion: "1"; deprecation?: { reason: string; date: string; successor?: string | undefined; } | undefined; memory?: { creates?: { path: string; description: string; }[] | undefined; normalizedFiles?: { path: string; description: string; }[] | undefined; } | undefined; author?: string | undefined; license?: string | undefined; repository?: string | undefined; addonConfig?: { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; rules?: string[] | undefined; templates?: string[] | undefined; behaviors?: string[] | undefined; hooks?: string[] | undefined; core?: boolean | undefined; prompts?: string[] | undefined; autoInstall?: boolean | undefined; entry?: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; } | undefined; } | undefined; frameworkConfig?: { path?: string | undefined; ignore?: string[] | undefined; files?: string[] | undefined; contextContributions?: { description?: string | undefined; priority?: number | undefined; hookFragment?: string | undefined; sectionsDir?: string | undefined; sectionsManifest?: string | undefined; } | undefined; } | undefined; extensionConfig?: { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; rules?: string[] | undefined; templates?: string[] | undefined; behaviors?: string[] | undefined; hooks?: string[] | undefined; prompts?: string[] | undefined; entry?: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; rules?: string | undefined; templates?: string | undefined; behaviors?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; } | undefined; } | undefined; pluginConfig?: { payloadType: "framework" | "addon" | "extension"; payloadPath: string; } | undefined; 'safety-critical'?: boolean | undefined; overrides?: string[] | undefined; }>; export type BundleManifest = z.infer<typeof BundleManifestSchema>; export interface ManifestValidationError { /** Filesystem path of the manifest.json */ path: string; /** Dot-path within the manifest (e.g., "addonConfig.entry.skills") */ field: string; /** What the schema expected */ expected: string; /** What was found */ actual: string; /** Optional remediation hint */ hint?: string; /** error severity */ severity: 'error' | 'warning'; } /** * Convert a Zod error into the structured ManifestValidationError shape used * by discovery and `aiwg validate-metadata`. */ export declare function zodErrorToValidationErrors(err: z.ZodError, manifestPath: string): ManifestValidationError[]; //# sourceMappingURL=manifest.d.ts.map