mirror of
https://github.com/MoonshotAI/kimi-code.git
synced 2026-07-10 01:39:25 +00:00
fix: use underscore sub_skill experimental flag id (#483)
* fix: use underscore sub_skill experimental flag id * chore: keep changeset wording unchanged
This commit is contained in:
parent
f555c89de7
commit
f61165aa9a
7 changed files with 14 additions and 14 deletions
|
|
@ -37,7 +37,7 @@ export const FLAG_DEFINITIONS = [
|
|||
surface: 'core',
|
||||
},
|
||||
{
|
||||
id: 'sub-skill',
|
||||
id: 'sub_skill',
|
||||
title: 'Sub-skill',
|
||||
description: 'Enable discovery of nested skills inside skill bundles that declare has-sub-skill.',
|
||||
env: 'KIMI_CODE_EXPERIMENTAL_SUB_SKILL',
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import {
|
|||
import { UPDATE_CONFIG_SKILL } from './update-config';
|
||||
|
||||
type SubSkillFlagResolver = {
|
||||
enabled(id: 'sub-skill'): boolean;
|
||||
enabled(id: 'sub_skill'): boolean;
|
||||
};
|
||||
|
||||
export function registerBuiltinSkills(
|
||||
|
|
@ -19,7 +19,7 @@ export function registerBuiltinSkills(
|
|||
const experimentalFlags = options.experimentalFlags ?? flags;
|
||||
registry.registerBuiltinSkill(MCP_CONFIG_SKILL);
|
||||
registry.registerBuiltinSkill(UPDATE_CONFIG_SKILL);
|
||||
if (experimentalFlags.enabled('sub-skill')) {
|
||||
if (experimentalFlags.enabled('sub_skill')) {
|
||||
registry.registerBuiltinSkill(SUB_SKILL_PARENT);
|
||||
registry.registerBuiltinSkill(SUB_SKILL_REVIEW);
|
||||
registry.registerBuiltinSkill(SUB_SKILL_CONSOLIDATE);
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import { escapeXmlAttr } from '../utils/xml-escape';
|
|||
const LISTING_DESC_MAX = 250;
|
||||
|
||||
type SubSkillFlagResolver = {
|
||||
enabled(id: 'sub-skill'): boolean;
|
||||
enabled(id: 'sub_skill'): boolean;
|
||||
};
|
||||
|
||||
export class SkillNotFoundError extends Error {
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ const PROJECT_BRAND_DIRS = ['.kimi-code/skills'] as const;
|
|||
const PROJECT_GENERIC_DIRS = ['.agents/skills'] as const;
|
||||
|
||||
type SubSkillFlagResolver = {
|
||||
enabled(id: 'sub-skill'): boolean;
|
||||
enabled(id: 'sub_skill'): boolean;
|
||||
};
|
||||
|
||||
// Bounds recursion so a directory symlink cycle inside a skill root cannot
|
||||
|
|
@ -394,7 +394,7 @@ function hasSubSkillEnabled(
|
|||
skill: SkillDefinition,
|
||||
experimentalFlags: SubSkillFlagResolver,
|
||||
): boolean {
|
||||
if (!experimentalFlags.enabled('sub-skill')) return false;
|
||||
if (!experimentalFlags.enabled('sub_skill')) return false;
|
||||
const nested = skill.metadata['metadata'];
|
||||
const nestedFlag =
|
||||
typeof nested === 'object' && nested !== null
|
||||
|
|
|
|||
|
|
@ -486,7 +486,7 @@ describe('AgentAPI.startBtw', () => {
|
|||
homedir: sessionDir,
|
||||
rpc: createSessionRpc([]),
|
||||
skills: { explicitDirs: [skillsRoot] },
|
||||
experimentalFlags: new FlagResolver({}, FLAG_DEFINITIONS, { 'sub-skill': false }),
|
||||
experimentalFlags: new FlagResolver({}, FLAG_DEFINITIONS, { 'sub_skill': false }),
|
||||
});
|
||||
|
||||
try {
|
||||
|
|
@ -504,7 +504,7 @@ describe('AgentAPI.startBtw', () => {
|
|||
homedir: sessionDir,
|
||||
rpc: createSessionRpc([]),
|
||||
skills: { explicitDirs: [skillsRoot] },
|
||||
experimentalFlags: new FlagResolver({}, FLAG_DEFINITIONS, { 'sub-skill': true }),
|
||||
experimentalFlags: new FlagResolver({}, FLAG_DEFINITIONS, { 'sub_skill': true }),
|
||||
});
|
||||
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ describe('builtin skill: sub-skill', () => {
|
|||
it('registers through registerBuiltinSkills but stays out of the model skill listing', () => {
|
||||
const registry = new SkillRegistry();
|
||||
registerBuiltinSkills(registry, {
|
||||
experimentalFlags: new FlagResolver({}, FLAG_DEFINITIONS, { 'sub-skill': true }),
|
||||
experimentalFlags: new FlagResolver({}, FLAG_DEFINITIONS, { 'sub_skill': true }),
|
||||
});
|
||||
|
||||
expect(registry.getSkill('sub-skill')).toBeDefined();
|
||||
|
|
@ -37,7 +37,7 @@ describe('builtin skill: sub-skill', () => {
|
|||
it('remains visible in the full skill list for CLI display when enabled', () => {
|
||||
const registry = new SkillRegistry();
|
||||
registerBuiltinSkills(registry, {
|
||||
experimentalFlags: new FlagResolver({}, FLAG_DEFINITIONS, { 'sub-skill': true }),
|
||||
experimentalFlags: new FlagResolver({}, FLAG_DEFINITIONS, { 'sub_skill': true }),
|
||||
});
|
||||
|
||||
expect(registry.listSkills().some((skill) => skill.name === 'sub-skill')).toBe(true);
|
||||
|
|
@ -46,7 +46,7 @@ describe('builtin skill: sub-skill', () => {
|
|||
it('does not register sub-skill builtins when the scoped flag is disabled', () => {
|
||||
const registry = new SkillRegistry();
|
||||
registerBuiltinSkills(registry, {
|
||||
experimentalFlags: new FlagResolver({}, FLAG_DEFINITIONS, { 'sub-skill': false }),
|
||||
experimentalFlags: new FlagResolver({}, FLAG_DEFINITIONS, { 'sub_skill': false }),
|
||||
});
|
||||
|
||||
expect(registry.getSkill('sub-skill')).toBeUndefined();
|
||||
|
|
@ -70,7 +70,7 @@ describe('builtin skill: sub-skill.review', () => {
|
|||
it('registers through registerBuiltinSkills', () => {
|
||||
const registry = new SkillRegistry();
|
||||
registerBuiltinSkills(registry, {
|
||||
experimentalFlags: new FlagResolver({}, FLAG_DEFINITIONS, { 'sub-skill': true }),
|
||||
experimentalFlags: new FlagResolver({}, FLAG_DEFINITIONS, { 'sub_skill': true }),
|
||||
});
|
||||
|
||||
expect(registry.getSkill('sub-skill.review')).toBeDefined();
|
||||
|
|
@ -100,7 +100,7 @@ describe('builtin skill: sub-skill.consolidate', () => {
|
|||
it('registers through registerBuiltinSkills', () => {
|
||||
const registry = new SkillRegistry();
|
||||
registerBuiltinSkills(registry, {
|
||||
experimentalFlags: new FlagResolver({}, FLAG_DEFINITIONS, { 'sub-skill': true }),
|
||||
experimentalFlags: new FlagResolver({}, FLAG_DEFINITIONS, { 'sub_skill': true }),
|
||||
});
|
||||
|
||||
expect(registry.getSkill('sub-skill.consolidate')).toBeDefined();
|
||||
|
|
|
|||
|
|
@ -391,7 +391,7 @@ describe('discoverSkills shape and ordering', () => {
|
|||
|
||||
const skills = await discoverSkills({
|
||||
roots: [{ path: root, source: 'user' }],
|
||||
experimentalFlags: new FlagResolver({}, FLAG_DEFINITIONS, { 'sub-skill': true }),
|
||||
experimentalFlags: new FlagResolver({}, FLAG_DEFINITIONS, { 'sub_skill': true }),
|
||||
});
|
||||
|
||||
expect(skills.map((s) => s.name)).toEqual(['inner', 'outer']);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue