Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | 3x 3x 3x 3x 3x 3x 3x | import { z } from 'zod';
import type { UsageStats } from '../types/index.js';
export interface SkillBuildExternalSource {
title: string;
url: string;
reason: string;
}
export interface SkillBuildAuthoringProvider {
name: string;
rootDir: string;
contentHash: string;
}
export type GeneratedSkillAuthoringMode = 'build' | 'improve';
const SkillBuildExternalSourceSchema = z.object({
title: z.string().min(1),
url: z.string().min(1),
reason: z.string().min(1),
}).strict();
// The authoring plan is meant to describe semantic coverage, source depth,
// ordered work, and review criteria. It must not become an artifact-layout
// plan; the authoring skill owns artifact placement and routing choices.
export const GeneratedSkillAuthoringPlanSchema = z.object({
version: z.literal(1),
summary: z.string().min(1),
workflow: z.array(z.string().min(1)).min(1),
researchPlan: z.array(z.string().min(1)).default([]),
sourceDecisions: z.array(z.object({
source: z.string().min(1),
decision: z.string().min(1),
implication: z.string().min(1),
}).strict()).default([]),
lookupQuestions: z.array(z.object({
question: z.string().min(1),
openWhen: z.string().min(1),
requiredEvidence: z.array(z.string().min(1)).min(1),
}).strict()).default([]),
qualityBar: z.array(z.string().min(1)).default([]),
artifactPlan: z.array(z.string().min(1)).min(1),
validationPlan: z.array(z.string().min(1)).min(1),
risks: z.array(z.string().min(1)).default([]),
missingInputs: z.array(z.string().min(1)).default([]),
externalSources: z.array(SkillBuildExternalSourceSchema).default([]),
}).strict();
export type GeneratedSkillAuthoringPlan = z.infer<typeof GeneratedSkillAuthoringPlanSchema>;
export const GeneratedSkillWriterResultSchema = z.object({
version: z.literal(1),
summary: z.string().min(1),
validationNotes: z.array(z.string().min(1)).default([]),
missingInputs: z.array(z.string().min(1)).default([]),
externalSources: z.array(SkillBuildExternalSourceSchema).default([]),
});
export type GeneratedSkillWriterResult = z.infer<typeof GeneratedSkillWriterResultSchema>;
export const GeneratedSkillReviewIssueSchema = z.object({
severity: z.enum(['error', 'warning']),
path: z.string().optional(),
message: z.string().min(1),
suggestedFix: z.string().optional(),
}).strict();
export const GeneratedSkillReviewResultSchema = z.object({
version: z.literal(1),
valid: z.boolean(),
summary: z.string().min(1),
issues: z.array(GeneratedSkillReviewIssueSchema).default([]),
missingInputs: z.array(z.string().min(1)).default([]),
}).strict();
export type GeneratedSkillReviewResult = z.infer<typeof GeneratedSkillReviewResultSchema>;
export interface GeneratedSkillArtifact {
kind: 'generated-skill';
source: 'cache' | 'generated';
name: string;
path: string;
bytes: number;
durationMs: number;
usage: UsageStats;
externalSources: SkillBuildExternalSource[];
missingInputs: string[];
warnings: string[];
responseModel?: string;
numTurns?: number;
}
export class GeneratedSkillBuildError extends Error {
constructor(message: string, options?: { cause?: unknown }) {
super(message, options);
this.name = 'GeneratedSkillBuildError';
}
}
|