🧭 feat: Scope Model Spec Skills (#13522)

* feat: scope model spec skills

* style: format skill catalog limit

* fix: serialize model spec skill resolution

* test: satisfy model spec load config typing

* fix: apply model spec skills to added conversations

* fix: support alwaysApply frontmatter alias

* fix: address model spec skills review
This commit is contained in:
Danny Avila 2026-06-05 10:22:02 -04:00 committed by GitHub
parent 3fb48021f7
commit 6357ea10c1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
28 changed files with 1398 additions and 139 deletions

View file

@ -572,6 +572,11 @@ export const agentsEndpointSchema = baseEndpointSchema
.array(z.nativeEnum(AgentCapabilities))
.optional()
.default(defaultAgentCapabilities),
skills: z
.object({
maxCatalogSkills: z.number().int().min(1).max(100).optional(),
})
.optional(),
remoteApi: remoteApiSchema.optional(),
}),
)

View file

@ -39,6 +39,7 @@ export type TModelSpec = {
executeCode?: boolean;
artifacts?: string | boolean;
mcpServers?: string[];
skills?: boolean | string[];
};
export const tModelSpecSchema = z.object({
@ -60,6 +61,7 @@ export const tModelSpecSchema = z.object({
executeCode: z.boolean().optional(),
artifacts: z.union([z.string(), z.boolean()]).optional(),
mcpServers: z.array(z.string()).optional(),
skills: z.union([z.boolean(), z.array(z.string())]).optional(),
});
export const specsConfigSchema = z.object({

View file

@ -197,7 +197,7 @@ export type TCreateSkill = {
body: string;
frontmatter?: Partial<SkillFrontmatter>;
category?: string;
/** When `true`, the skill auto-primes into every turn (mirrors `always-apply` frontmatter). */
/** When `true`, the skill auto-primes into every turn (mirrors always-apply frontmatter). */
alwaysApply?: boolean;
};