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,344 lines 154 kB
/** * Zod Validation Schemas for Extension Types * * Provides strict runtime validation for all extension types with helpful * error messages. Ensures extension manifests conform to the unified schema. * * @implements @.aiwg/requirements/use-cases/UC-003-extension-validation.md * @architecture @.aiwg/architecture/unified-extension-schema.md * @tests @test/unit/extensions/validation.test.ts * @version 1.0.0 */ import { z } from 'zod'; import type { ExtensionType } from './types.js'; /** * Extension type discriminator */ export declare const ExtensionTypeSchema: z.ZodEnum<["agent", "command", "skill", "hook", "tool", "mcp-server", "framework", "addon", "template", "prompt"]>; /** * Extension lifecycle status */ export declare const ExtensionStatusSchema: z.ZodEnum<["stable", "beta", "experimental", "deprecated", "archived"]>; /** * Platform support level */ export declare const PlatformSupportSchema: z.ZodEnum<["full", "partial", "experimental", "none"]>; /** * Hook lifecycle events */ export declare const HookEventSchema: z.ZodEnum<["pre-session", "post-session", "pre-command", "post-command", "pre-agent", "post-agent", "pre-write", "post-write", "pre-bash", "post-bash"]>; /** * Platform compatibility matrix */ export declare const PlatformCompatibilitySchema: 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; }>; /** * Deployment configuration */ export declare const DeploymentConfigSchema: 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; }>; /** * A single .aiwg/ path entry in a memory footprint */ export declare const MemoryPathSchema: z.ZodObject<{ path: z.ZodString; description: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; description: string; }, { path: string; description: string; }>; /** * .aiwg/ memory footprint declaration */ export declare const MemoryFootprintSchema: 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; }>; /** * Deprecation information */ export declare const DeprecationSchema: 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; }>; /** * Installation state */ export declare const InstallationSchema: z.ZodObject<{ installedAt: z.ZodString; installedFrom: z.ZodEnum<["builtin", "registry", "local", "git"]>; installedPath: z.ZodString; enabled: z.ZodBoolean; }, "strip", z.ZodTypeAny, { installedFrom: "local" | "builtin" | "registry" | "git"; installedPath: string; enabled: boolean; installedAt: string; }, { installedFrom: "local" | "builtin" | "registry" | "git"; installedPath: string; enabled: boolean; installedAt: string; }>; /** * Signature verification */ export declare const SignatureSchema: z.ZodObject<{ algorithm: z.ZodEnum<["pgp", "ed25519"]>; value: z.ZodString; publicKey: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { value: string; algorithm: "ed25519" | "pgp"; publicKey?: string | undefined; }, { value: string; algorithm: "ed25519" | "pgp"; publicKey?: string | undefined; }>; /** * Agent-specific metadata */ export declare const AgentMetadataSchema: z.ZodObject<{ type: z.ZodLiteral<"agent">; role: z.ZodString; model: z.ZodObject<{ tier: z.ZodEnum<["haiku", "sonnet", "opus"]>; override: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { tier: "sonnet" | "opus" | "haiku"; override?: string | undefined; }, { tier: "sonnet" | "opus" | "haiku"; override?: string | undefined; }>; tools: z.ZodArray<z.ZodString, "many">; template: z.ZodOptional<z.ZodString>; maxTools: z.ZodOptional<z.ZodNumber>; canDelegate: z.ZodOptional<z.ZodBoolean>; readOnly: z.ZodOptional<z.ZodBoolean>; workflow: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; expertise: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; responsibilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { type: "agent"; role: string; tools: string[]; model: { tier: "sonnet" | "opus" | "haiku"; override?: string | undefined; }; readOnly?: boolean | undefined; template?: string | undefined; workflow?: string[] | undefined; maxTools?: number | undefined; canDelegate?: boolean | undefined; expertise?: string[] | undefined; responsibilities?: string[] | undefined; }, { type: "agent"; role: string; tools: string[]; model: { tier: "sonnet" | "opus" | "haiku"; override?: string | undefined; }; readOnly?: boolean | undefined; template?: string | undefined; workflow?: string[] | undefined; maxTools?: number | undefined; canDelegate?: boolean | undefined; expertise?: string[] | undefined; responsibilities?: string[] | undefined; }>; /** * Command argument definition */ export declare const CommandArgumentSchema: z.ZodObject<{ name: z.ZodString; description: z.ZodString; required: z.ZodBoolean; type: z.ZodEnum<["string", "number", "boolean"]>; default: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>; position: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean"; required: boolean; name: string; description: string; default?: string | number | boolean | undefined; position?: number | undefined; }, { type: "string" | "number" | "boolean"; required: boolean; name: string; description: string; default?: string | number | boolean | undefined; position?: number | undefined; }>; /** * Command option definition */ export declare const CommandOptionSchema: z.ZodObject<{ name: z.ZodString; description: z.ZodString; type: z.ZodEnum<["string", "boolean", "number", "array"]>; default: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean, z.ZodNumber]>>; short: z.ZodOptional<z.ZodString>; long: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "array"; name: string; description: string; default?: string | number | boolean | undefined; short?: string | undefined; long?: string | undefined; }, { type: "string" | "number" | "boolean" | "array"; name: string; description: string; default?: string | number | boolean | undefined; short?: string | undefined; long?: string | undefined; }>; /** * Command-specific metadata * * @deprecated As a source format — commands are generated from skills at deploy time. */ export declare const CommandMetadataSchema: z.ZodObject<{ type: z.ZodLiteral<"command">; template: z.ZodEnum<["utility", "transformation", "orchestration"]>; arguments: z.ZodOptional<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; required: z.ZodBoolean; type: z.ZodEnum<["string", "number", "boolean"]>; default: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>; position: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean"; required: boolean; name: string; description: string; default?: string | number | boolean | undefined; position?: number | undefined; }, { type: "string" | "number" | "boolean"; required: boolean; name: string; description: string; default?: string | number | boolean | undefined; position?: number | undefined; }>, "many">>; options: z.ZodOptional<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; type: z.ZodEnum<["string", "boolean", "number", "array"]>; default: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean, z.ZodNumber]>>; short: z.ZodOptional<z.ZodString>; long: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "array"; name: string; description: string; default?: string | number | boolean | undefined; short?: string | undefined; long?: string | undefined; }, { type: "string" | "number" | "boolean" | "array"; name: string; description: string; default?: string | number | boolean | undefined; short?: string | undefined; long?: string | undefined; }>, "many">>; argumentHint: z.ZodOptional<z.ZodString>; allowedTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; model: z.ZodOptional<z.ZodString>; executionSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; successCriteria: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; cliDisabled: z.ZodOptional<z.ZodBoolean>; executedViaSkillRunner: z.ZodOptional<z.ZodBoolean>; generatedFrom: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "command"; template: "utility" | "transformation" | "orchestration"; model?: string | undefined; arguments?: { type: "string" | "number" | "boolean"; required: boolean; name: string; description: string; default?: string | number | boolean | undefined; position?: number | undefined; }[] | undefined; argumentHint?: string | undefined; cliDisabled?: boolean | undefined; executedViaSkillRunner?: boolean | undefined; options?: { type: "string" | "number" | "boolean" | "array"; name: string; description: string; default?: string | number | boolean | undefined; short?: string | undefined; long?: string | undefined; }[] | undefined; allowedTools?: string[] | undefined; executionSteps?: string[] | undefined; successCriteria?: string[] | undefined; generatedFrom?: string | undefined; }, { type: "command"; template: "utility" | "transformation" | "orchestration"; model?: string | undefined; arguments?: { type: "string" | "number" | "boolean"; required: boolean; name: string; description: string; default?: string | number | boolean | undefined; position?: number | undefined; }[] | undefined; argumentHint?: string | undefined; cliDisabled?: boolean | undefined; executedViaSkillRunner?: boolean | undefined; options?: { type: "string" | "number" | "boolean" | "array"; name: string; description: string; default?: string | number | boolean | undefined; short?: string | undefined; long?: string | undefined; }[] | undefined; allowedTools?: string[] | undefined; executionSteps?: string[] | undefined; successCriteria?: string[] | undefined; generatedFrom?: string | undefined; }>; /** * Command translation hints for skill→command generation */ export declare const CommandHintSchema: z.ZodObject<{ argumentHint: z.ZodOptional<z.ZodString>; allowedTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; template: z.ZodOptional<z.ZodEnum<["utility", "transformation", "orchestration"]>>; arguments: z.ZodOptional<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; required: z.ZodBoolean; type: z.ZodEnum<["string", "number", "boolean"]>; default: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>; position: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean"; required: boolean; name: string; description: string; default?: string | number | boolean | undefined; position?: number | undefined; }, { type: "string" | "number" | "boolean"; required: boolean; name: string; description: string; default?: string | number | boolean | undefined; position?: number | undefined; }>, "many">>; options: z.ZodOptional<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; type: z.ZodEnum<["string", "boolean", "number", "array"]>; default: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean, z.ZodNumber]>>; short: z.ZodOptional<z.ZodString>; long: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "array"; name: string; description: string; default?: string | number | boolean | undefined; short?: string | undefined; long?: string | undefined; }, { type: "string" | "number" | "boolean" | "array"; name: string; description: string; default?: string | number | boolean | undefined; short?: string | undefined; long?: string | undefined; }>, "many">>; executionSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; successCriteria: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; model: z.ZodOptional<z.ZodString>; cliDisabled: z.ZodOptional<z.ZodBoolean>; executedViaSkillRunner: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model?: string | undefined; arguments?: { type: "string" | "number" | "boolean"; required: boolean; name: string; description: string; default?: string | number | boolean | undefined; position?: number | undefined; }[] | undefined; template?: "utility" | "transformation" | "orchestration" | undefined; argumentHint?: string | undefined; cliDisabled?: boolean | undefined; executedViaSkillRunner?: boolean | undefined; options?: { type: "string" | "number" | "boolean" | "array"; name: string; description: string; default?: string | number | boolean | undefined; short?: string | undefined; long?: string | undefined; }[] | undefined; allowedTools?: string[] | undefined; executionSteps?: string[] | undefined; successCriteria?: string[] | undefined; }, { model?: string | undefined; arguments?: { type: "string" | "number" | "boolean"; required: boolean; name: string; description: string; default?: string | number | boolean | undefined; position?: number | undefined; }[] | undefined; template?: "utility" | "transformation" | "orchestration" | undefined; argumentHint?: string | undefined; cliDisabled?: boolean | undefined; executedViaSkillRunner?: boolean | undefined; options?: { type: "string" | "number" | "boolean" | "array"; name: string; description: string; default?: string | number | boolean | undefined; short?: string | undefined; long?: string | undefined; }[] | undefined; allowedTools?: string[] | undefined; executionSteps?: string[] | undefined; successCriteria?: string[] | undefined; }>; /** * Skill reference material */ export declare const SkillReferenceSchema: z.ZodObject<{ filename: z.ZodString; description: z.ZodString; path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; description: string; filename: string; }, { path: string; description: string; filename: string; }>; /** * SKILL.md frontmatter schema * * Validates the YAML frontmatter block at the top of a SKILL.md file. * This is distinct from {@link SkillMetadataSchema}, which validates the * `metadata` field of an Extension manifest. * * `description` is REQUIRED and must be non-empty. Codex rejects SKILL.md * files that lack a description; Claude Code uses this field for * natural-language invocation. Do NOT relax this rule — a blank description * is what caused the 107-file regression we are guarding against. */ export declare const SkillFrontmatterSchema: z.ZodObject<{ name: z.ZodString; description: z.ZodString; version: z.ZodOptional<z.ZodString>; namespace: z.ZodOptional<z.ZodString>; platforms: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>; triggers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; deprecated_names: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; tools: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>; 'allowed-tools': z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>; allowedTools: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>; effort: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>; 'user-invocable': z.ZodOptional<z.ZodBoolean>; userInvocable: z.ZodOptional<z.ZodBoolean>; 'disable-model-invocation': z.ZodOptional<z.ZodBoolean>; disableModelInvocation: z.ZodOptional<z.ZodBoolean>; context: z.ZodOptional<z.ZodEnum<["fork", "inherit"]>>; author: z.ZodOptional<z.ZodString>; license: z.ZodOptional<z.ZodString>; metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ name: z.ZodString; description: z.ZodString; version: z.ZodOptional<z.ZodString>; namespace: z.ZodOptional<z.ZodString>; platforms: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>; triggers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; deprecated_names: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; tools: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>; 'allowed-tools': z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>; allowedTools: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>; effort: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>; 'user-invocable': z.ZodOptional<z.ZodBoolean>; userInvocable: z.ZodOptional<z.ZodBoolean>; 'disable-model-invocation': z.ZodOptional<z.ZodBoolean>; disableModelInvocation: z.ZodOptional<z.ZodBoolean>; context: z.ZodOptional<z.ZodEnum<["fork", "inherit"]>>; author: z.ZodOptional<z.ZodString>; license: z.ZodOptional<z.ZodString>; metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ name: z.ZodString; description: z.ZodString; version: z.ZodOptional<z.ZodString>; namespace: z.ZodOptional<z.ZodString>; platforms: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>; triggers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; deprecated_names: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; tools: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>; 'allowed-tools': z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>; allowedTools: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>; effort: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>; 'user-invocable': z.ZodOptional<z.ZodBoolean>; userInvocable: z.ZodOptional<z.ZodBoolean>; 'disable-model-invocation': z.ZodOptional<z.ZodBoolean>; disableModelInvocation: z.ZodOptional<z.ZodBoolean>; context: z.ZodOptional<z.ZodEnum<["fork", "inherit"]>>; author: z.ZodOptional<z.ZodString>; license: z.ZodOptional<z.ZodString>; metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, z.ZodTypeAny, "passthrough">>; /** * Inferred SKILL.md frontmatter type */ export type ValidatedSkillFrontmatter = z.infer<typeof SkillFrontmatterSchema>; /** * Validate SKILL.md frontmatter. * * Use this when parsing the YAML frontmatter block of a SKILL.md file to * catch missing or empty `description` fields before deployment. * * @example * ```typescript * const result = validateSkillFrontmatter(parsedYaml); * if (!result.success) { * throw new Error('Invalid SKILL.md frontmatter: ' + * formatValidationErrors(result.errors).join(', ')); * } * ``` */ export declare function validateSkillFrontmatter(data: unknown): { success: true; data: ValidatedSkillFrontmatter; } | { success: false; errors: z.ZodError; }; /** * Skill-specific metadata */ export declare const SkillMetadataSchema: z.ZodObject<{ type: z.ZodLiteral<"skill">; triggerPhrases: z.ZodArray<z.ZodString, "many">; autoTrigger: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; autoTriggerConditions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; tools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; references: z.ZodOptional<z.ZodArray<z.ZodObject<{ filename: z.ZodString; description: z.ZodString; path: z.ZodString; }, "strip", z.ZodTypeAny, { path: string; description: string; filename: string; }, { path: string; description: string; filename: string; }>, "many">>; inputRequirements: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; outputFormat: z.ZodOptional<z.ZodString>; effort: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>; userInvocable: z.ZodOptional<z.ZodBoolean>; disableModelInvocation: z.ZodOptional<z.ZodBoolean>; context: z.ZodOptional<z.ZodEnum<["fork", "inherit"]>>; allowedTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; commandHint: z.ZodOptional<z.ZodObject<{ argumentHint: z.ZodOptional<z.ZodString>; allowedTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; template: z.ZodOptional<z.ZodEnum<["utility", "transformation", "orchestration"]>>; arguments: z.ZodOptional<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; required: z.ZodBoolean; type: z.ZodEnum<["string", "number", "boolean"]>; default: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>; position: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean"; required: boolean; name: string; description: string; default?: string | number | boolean | undefined; position?: number | undefined; }, { type: "string" | "number" | "boolean"; required: boolean; name: string; description: string; default?: string | number | boolean | undefined; position?: number | undefined; }>, "many">>; options: z.ZodOptional<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; type: z.ZodEnum<["string", "boolean", "number", "array"]>; default: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean, z.ZodNumber]>>; short: z.ZodOptional<z.ZodString>; long: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "array"; name: string; description: string; default?: string | number | boolean | undefined; short?: string | undefined; long?: string | undefined; }, { type: "string" | "number" | "boolean" | "array"; name: string; description: string; default?: string | number | boolean | undefined; short?: string | undefined; long?: string | undefined; }>, "many">>; executionSteps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; successCriteria: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; model: z.ZodOptional<z.ZodString>; cliDisabled: z.ZodOptional<z.ZodBoolean>; executedViaSkillRunner: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { model?: string | undefined; arguments?: { type: "string" | "number" | "boolean"; required: boolean; name: string; description: string; default?: string | number | boolean | undefined; position?: number | undefined; }[] | undefined; template?: "utility" | "transformation" | "orchestration" | undefined; argumentHint?: string | undefined; cliDisabled?: boolean | undefined; executedViaSkillRunner?: boolean | undefined; options?: { type: "string" | "number" | "boolean" | "array"; name: string; description: string; default?: string | number | boolean | undefined; short?: string | undefined; long?: string | undefined; }[] | undefined; allowedTools?: string[] | undefined; executionSteps?: string[] | undefined; successCriteria?: string[] | undefined; }, { model?: string | undefined; arguments?: { type: "string" | "number" | "boolean"; required: boolean; name: string; description: string; default?: string | number | boolean | undefined; position?: number | undefined; }[] | undefined; template?: "utility" | "transformation" | "orchestration" | undefined; argumentHint?: string | undefined; cliDisabled?: boolean | undefined; executedViaSkillRunner?: boolean | undefined; options?: { type: "string" | "number" | "boolean" | "array"; name: string; description: string; default?: string | number | boolean | undefined; short?: string | undefined; long?: string | undefined; }[] | undefined; allowedTools?: string[] | undefined; executionSteps?: string[] | undefined; successCriteria?: string[] | undefined; }>>; }, "strip", z.ZodTypeAny, { type: "skill"; triggerPhrases: string[]; autoTrigger: boolean; context?: "inherit" | "fork" | undefined; tools?: string[] | undefined; outputFormat?: string | undefined; commandHint?: { model?: string | undefined; arguments?: { type: "string" | "number" | "boolean"; required: boolean; name: string; description: string; default?: string | number | boolean | undefined; position?: number | undefined; }[] | undefined; template?: "utility" | "transformation" | "orchestration" | undefined; argumentHint?: string | undefined; cliDisabled?: boolean | undefined; executedViaSkillRunner?: boolean | undefined; options?: { type: "string" | "number" | "boolean" | "array"; name: string; description: string; default?: string | number | boolean | undefined; short?: string | undefined; long?: string | undefined; }[] | undefined; allowedTools?: string[] | undefined; executionSteps?: string[] | undefined; successCriteria?: string[] | undefined; } | undefined; allowedTools?: string[] | undefined; effort?: 2 | 1 | 3 | undefined; userInvocable?: boolean | undefined; disableModelInvocation?: boolean | undefined; autoTriggerConditions?: string[] | undefined; references?: { path: string; description: string; filename: string; }[] | undefined; inputRequirements?: string[] | undefined; }, { type: "skill"; triggerPhrases: string[]; context?: "inherit" | "fork" | undefined; tools?: string[] | undefined; outputFormat?: string | undefined; commandHint?: { model?: string | undefined; arguments?: { type: "string" | "number" | "boolean"; required: boolean; name: string; description: string; default?: string | number | boolean | undefined; position?: number | undefined; }[] | undefined; template?: "utility" | "transformation" | "orchestration" | undefined; argumentHint?: string | undefined; cliDisabled?: boolean | undefined; executedViaSkillRunner?: boolean | undefined; options?: { type: "string" | "number" | "boolean" | "array"; name: string; description: string; default?: string | number | boolean | undefined; short?: string | undefined; long?: string | undefined; }[] | undefined; allowedTools?: string[] | undefined; executionSteps?: string[] | undefined; successCriteria?: string[] | undefined; } | undefined; allowedTools?: string[] | undefined; effort?: 2 | 1 | 3 | undefined; userInvocable?: boolean | undefined; disableModelInvocation?: boolean | undefined; autoTrigger?: boolean | undefined; autoTriggerConditions?: string[] | undefined; references?: { path: string; description: string; filename: string; }[] | undefined; inputRequirements?: string[] | undefined; }>; /** * Hook-specific metadata */ export declare const HookMetadataSchema: z.ZodObject<{ type: z.ZodLiteral<"hook">; event: z.ZodEnum<["pre-session", "post-session", "pre-command", "post-command", "pre-agent", "post-agent", "pre-write", "post-write", "pre-bash", "post-bash"]>; priority: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; canModify: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; canBlock: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; configSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { type: "hook"; event: "pre-session" | "post-session" | "pre-command" | "post-command" | "pre-agent" | "post-agent" | "pre-write" | "post-write" | "pre-bash" | "post-bash"; priority: number; canModify: boolean; canBlock: boolean; configSchema?: Record<string, unknown> | undefined; }, { type: "hook"; event: "pre-session" | "post-session" | "pre-command" | "post-command" | "pre-agent" | "post-agent" | "pre-write" | "post-write" | "pre-bash" | "post-bash"; priority?: number | undefined; canModify?: boolean | undefined; canBlock?: boolean | undefined; configSchema?: Record<string, unknown> | undefined; }>; /** * Tool-specific metadata */ export declare const ToolMetadataSchema: z.ZodObject<{ type: z.ZodLiteral<"tool">; category: z.ZodEnum<["core", "languages", "utilities", "custom"]>; executable: z.ZodString; verificationStatus: z.ZodOptional<z.ZodEnum<["verified", "unverified"]>>; lastVerified: z.ZodOptional<z.ZodString>; manPage: z.ZodOptional<z.ZodString>; aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; relatedTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; platformNotes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; installHint: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "tool"; category: "custom" | "core" | "languages" | "utilities"; executable: string; aliases?: string[] | undefined; verificationStatus?: "verified" | "unverified" | undefined; lastVerified?: string | undefined; manPage?: string | undefined; relatedTools?: string[] | undefined; platformNotes?: Record<string, string> | undefined; installHint?: string | undefined; }, { type: "tool"; category: "custom" | "core" | "languages" | "utilities"; executable: string; aliases?: string[] | undefined; verificationStatus?: "verified" | "unverified" | undefined; lastVerified?: string | undefined; manPage?: string | undefined; relatedTools?: string[] | undefined; platformNotes?: Record<string, string> | undefined; installHint?: string | undefined; }>; /** * MCP tool summary */ export declare const MCPToolSummarySchema: z.ZodObject<{ name: z.ZodString; description: z.ZodString; dangerous: z.ZodBoolean; }, "strip", z.ZodTypeAny, { name: string; description: string; dangerous: boolean; }, { name: string; description: string; dangerous: boolean; }>; /** * MCP Server-specific metadata */ export declare const MCPServerMetadataSchema: z.ZodObject<{ type: z.ZodLiteral<"mcp-server">; mcpVersion: z.ZodString; transport: z.ZodEnum<["stdio", "http"]>; port: z.ZodOptional<z.ZodNumber>; capabilities: z.ZodObject<{ tools: z.ZodBoolean; resources: z.ZodBoolean; prompts: z.ZodBoolean; sampling: z.ZodBoolean; logging: z.ZodBoolean; }, "strip", z.ZodTypeAny, { sampling: boolean; tools: boolean; prompts: boolean; resources: boolean; logging: boolean; }, { sampling: boolean; tools: boolean; prompts: boolean; resources: boolean; logging: boolean; }>; sourceType: z.ZodEnum<["cli", "api", "catalog", "nl", "extension"]>; sourceCommand: z.ZodOptional<z.ZodString>; sourceBaseUrl: z.ZodOptional<z.ZodString>; workingDirectory: z.ZodOptional<z.ZodString>; environment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; tools: z.ZodOptional<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; dangerous: z.ZodBoolean; }, "strip", z.ZodTypeAny, { name: string; description: string; dangerous: boolean; }, { name: string; description: string; dangerous: boolean; }>, "many">>; resources: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; prompts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { type: "mcp-server"; capabilities: { sampling: boolean; tools: boolean; prompts: boolean; resources: boolean; logging: boolean; }; mcpVersion: string; transport: "http" | "stdio"; sourceType: "cli" | "extension" | "api" | "catalog" | "nl"; tools?: { name: string; description: string; dangerous: boolean; }[] | undefined; prompts?: string[] | undefined; port?: number | undefined; resources?: string[] | undefined; sourceCommand?: string | undefined; sourceBaseUrl?: string | undefined; workingDirectory?: string | undefined; environment?: Record<string, string> | undefined; }, { type: "mcp-server"; capabilities: { sampling: boolean; tools: boolean; prompts: boolean; resources: boolean; logging: boolean; }; mcpVersion: string; transport: "http" | "stdio"; sourceType: "cli" | "extension" | "api" | "catalog" | "nl"; tools?: { name: string; description: string; dangerous: boolean; }[] | undefined; prompts?: string[] | undefined; port?: number | undefined; resources?: string[] | undefined; sourceCommand?: string | undefined; sourceBaseUrl?: string | undefined; workingDirectory?: string | undefined; environment?: Record<string, string> | undefined; }>; /** * Framework-specific metadata */ export declare const FrameworkMetadataSchema: z.ZodObject<{ type: z.ZodLiteral<"framework">; domain: z.ZodString; includes: z.ZodObject<{ agents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; commands: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; skills: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; hooks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; templates: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; prompts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; templates?: string[] | undefined; hooks?: string[] | undefined; prompts?: string[] | undefined; }, { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; templates?: string[] | undefined; hooks?: string[] | undefined; prompts?: string[] | undefined; }>; configSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; defaultConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { type: "framework"; includes: { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; templates?: string[] | undefined; hooks?: string[] | undefined; prompts?: string[] | undefined; }; domain: string; configSchema?: Record<string, unknown> | undefined; defaultConfig?: Record<string, unknown> | undefined; }, { type: "framework"; includes: { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; templates?: string[] | undefined; hooks?: string[] | undefined; prompts?: string[] | undefined; }; domain: string; configSchema?: Record<string, unknown> | undefined; defaultConfig?: Record<string, unknown> | undefined; }>; /** * Addon-specific metadata */ export declare const AddonMetadataSchema: z.ZodObject<{ type: z.ZodLiteral<"addon">; entry: z.ZodObject<{ agents: z.ZodOptional<z.ZodString>; commands: z.ZodOptional<z.ZodString>; skills: z.ZodOptional<z.ZodString>; hooks: z.ZodOptional<z.ZodString>; templates: z.ZodOptional<z.ZodString>; prompts: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; templates?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; }, { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; templates?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; }>; provides: z.ZodObject<{ agents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; commands: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; skills: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; hooks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; templates: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; prompts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; templates?: string[] | undefined; hooks?: string[] | undefined; prompts?: string[] | undefined; }, { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; templates?: string[] | undefined; hooks?: string[] | undefined; prompts?: string[] | undefined; }>; }, "strip", z.ZodTypeAny, { type: "addon"; entry: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; templates?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; }; provides: { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; templates?: string[] | undefined; hooks?: string[] | undefined; prompts?: string[] | undefined; }; }, { type: "addon"; entry: { agents?: string | undefined; skills?: string | undefined; commands?: string | undefined; templates?: string | undefined; hooks?: string | undefined; prompts?: string | undefined; }; provides: { agents?: string[] | undefined; skills?: string[] | undefined; commands?: string[] | undefined; templates?: string[] | undefined; hooks?: string[] | undefined; prompts?: string[] | undefined; }; }>; /** * Template variable definition */ export declare const TemplateVariableSchema: z.ZodObject<{ name: z.ZodString; description: z.ZodString; type: z.ZodEnum<["string", "number", "boolean", "array", "object"]>; required: z.ZodBoolean; default: z.ZodOptional<z.ZodUnknown>; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "object" | "array"; required: boolean; name: string; description: string; default?: unknown; }, { type: "string" | "number" | "boolean" | "object" | "array"; required: boolean; name: string; description: string; default?: unknown; }>; /** * Template-specific metadata */ export declare const TemplateMetadataSchema: z.ZodObject<{ type: z.ZodLiteral<"template">; format: z.ZodString; variables: z.ZodOptional<z.ZodArray<z.ZodObject<{ name: z.ZodString; description: z.ZodString; type: z.ZodEnum<["string", "number", "boolean", "array", "object"]>; required: z.ZodBoolean; default: z.ZodOptional<z.ZodUnknown>; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "object" | "array"; required: boolean; name: string; description: string; default?: unknown; }, { type: "string" | "number" | "boolean" | "object" | "array"; required: boolean; name: string; description: string; default?: unknown; }>, "many">>; sections: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; targetArtifact: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { format: string; type: "template"; variables?: { type: "string" | "number" | "boolean" | "object" | "array"; required: boolean; name: string; description: string; default?: unknown; }[] | undefined; sections?: string[] | undefined; targetArtifact?: string | undefined; }, { format: string; type: "template"; variables?: { type: "string" | "number" | "boolean" | "object" | "array"; required: boolean; name: string; description: string; default?: unknown; }[] | undefined; sections?: string[] | undefined; targetArtifact?: string | undefined; }>; /** * Prompt-specific metadata */ export declare const PromptMetadataSchema: z.ZodObject<{ type: z.ZodLiteral<"prompt">; category: z.ZodString; purpose: z.ZodString; useWhen: z.ZodArray<z.ZodString, "many">; variables: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; requiredContext: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { type: "prompt"; category: string; purpose: string; useWhen: string[]; variables?: string[] | undefined; requiredContext?: string[] | undefined; }, { type: "prompt"; category: string; purpose: string; useWhen: string[]; variables?: string[] | undefined; requiredContext?: string[] | undefined; }>; /** * Union of all type-specific metadata schemas */ export declare const ExtensionMetadataSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodLiteral<"agent">; role: z.ZodString; model: z.ZodObject<{ tier: z.ZodEnum<["haiku", "sonnet", "opus"]>; override: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { tier: "sonnet" | "opus" | "haiku"; override?: string | undefined; }, { tier: "sonnet" | "opus" | "haiku"; override?: string | undefined; }>; tools: z.ZodArray<z.ZodString, "many">; template: z.ZodOptional<z.ZodString>; maxTools: z.ZodOptional<z.ZodNumber>; canDelegate: z.ZodOptional<z.ZodBoolean>; readOnly: z.ZodOptional<z.ZodBoolean>; workflow: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; expertise: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; responsibilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { type: "agent"; role: string; tools: string[]; model: { tier: "sonnet" | "opus" | "haiku"; override?: string | undefined; }; readOnly?: boolean | undefined; template?: string | undefined; workflow?: string[] | undefined; maxTools?: number | undefined; canDelegate?: boolean | undefined; expertise?: string[] | undefined; responsibilities?: string[] | undefined; }, { type: "agent"; role: string; tools: string[]; model: { tier: "sonnet" | "opus" | "haiku"; override?: string | undefined; }; readOnly?: boolean | undefined; template?: string | undefined; workflow?: string[] | undefined; maxTools?: number | undefined; canDelegate?: boolean | undefined; expertise?: string[] | undefined; responsibilities?: strin