import { z } from "zod"; import { capabilityReference, type CapabilityMetadata, } from "./capability-policy"; import { skillIdentity, type SkillIdentity } from "./skill-management"; import type { SkillRequirements } from "./skill-permissions"; import type { SkillScriptResult } from "./skill-execution"; export const skillInvocationRequest = z.strictObject({ skill: skillIdentity, path: z.string().min(1).max(240), capability: capabilityReference, conversationId: z.string().min(1).max(200), toolCallId: z.string().min(1).max(200), }); export type SkillInvocationRequest = z.infer; export interface SkillScriptDefinition { skill: SkillIdentity; path: string; version: string; requirements: SkillRequirements; metadata: CapabilityMetadata; } export interface SkillInvocationResult { kind: "skill-script"; skill: { source: "bundled" | "installed"; name: string; version: string; fingerprint: string; }; path: string; result: SkillScriptResult; workspace: { files: { path: string; content: string }[]; truncated: boolean }; }