feat(plugins): merge Skill management into plugins
This commit is contained in:
@@ -160,7 +160,7 @@ async function resolve(effective: EffectivePluginResolver, assignedSkillIds = ['
|
||||
}
|
||||
|
||||
describe('effective plugin resolver', () => {
|
||||
it('rejects Marketplace Skill ID collisions with core and other packages without changing project assignment', async () => {
|
||||
it('accepts former local Skill IDs and rejects collisions between Marketplace packages', async () => {
|
||||
const coreCollision: CodingPluginDefinition = {
|
||||
...skillOnlyDefinition,
|
||||
id: 'makelore.core-collision',
|
||||
@@ -219,14 +219,20 @@ describe('effective plugin resolver', () => {
|
||||
|
||||
expect(result.effectiveSkillIds).toEqual(['agent-browser', 'shared-skill']);
|
||||
expect(result.skillEntries).toEqual([
|
||||
{ id: 'agent-browser', entryPath: 'agent-browser/SKILL.md' },
|
||||
{
|
||||
id: 'agent-browser',
|
||||
entryPath: 'skills/agent-browser/SKILL.md',
|
||||
packageRoot: 'C:/packages/core-collision-1',
|
||||
},
|
||||
{ id: 'shared-skill', entryPath: 'skills/shared/SKILL.md', packageRoot: 'C:/packages/collision-a-1' },
|
||||
]);
|
||||
expect(result.pluginReleaseIds).toEqual(['collision-a-1']);
|
||||
expect(result.pluginReleaseIds).toEqual(['core-collision-1', 'collision-a-1']);
|
||||
expect(result.unavailableReasons).toEqual(expect.arrayContaining([
|
||||
expect.objectContaining({ pluginId: coreCollision.id, code: 'skill_owner_conflict' }),
|
||||
expect.objectContaining({ pluginId: packageB.id, code: 'skill_owner_conflict' }),
|
||||
]));
|
||||
expect(result.unavailableReasons).not.toEqual(expect.arrayContaining([
|
||||
expect.objectContaining({ pluginId: coreCollision.id, code: 'skill_owner_conflict' }),
|
||||
]));
|
||||
});
|
||||
|
||||
it('reserves every bundled Skill owner, including Data Service, before accepting Marketplace packages', async () => {
|
||||
|
||||
Reference in New Issue
Block a user