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
TypeScript
/**
* 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