diff --git a/src/main/skills/antigravity-skill-discovery.test.ts b/src/main/skills/antigravity-skill-discovery.test.ts new file mode 100644 index 00000000000..e9088068fc7 --- /dev/null +++ b/src/main/skills/antigravity-skill-discovery.test.ts @@ -0,0 +1,48 @@ +import { mkdtemp, mkdir, rm, writeFile } from 'node:fs/promises' +import { tmpdir } from 'node:os' +import { join, posix, win32 } from 'node:path' +import { describe, expect, it } from 'vitest' +import { buildSkillDiscoverySources, discoverSkills } from './discovery' + +describe('Antigravity global skill discovery', () => { + it('attributes a skill in the CLI configuration directory to Antigravity', async () => { + const home = await mkdtemp(join(tmpdir(), 'orca-agy-skills-')) + try { + const root = join(home, '.gemini', 'config', 'skills') + const directory = join(root, 'review') + await mkdir(directory, { recursive: true }) + await writeFile( + join(directory, 'SKILL.md'), + '---\nname: review\ndescription: Review a change.\n---\n' + ) + const result = await discoverSkills({ + homeDir: home, + includeCwd: false, + providerRootOverrides: {} + }) + expect(result.skills.find((skill) => skill.name === 'review')?.rootPaths).toContain(root) + expect(result.sources.find((source) => source.id === 'home-antigravity')).toMatchObject({ + path: root, + owner: 'antigravity', + exists: true + }) + } finally { + await rm(home, { recursive: true, force: true }) + } + }) + + it.each([ + { pathApi: posix, home: '/home/remote', expected: '/home/remote/.gemini/config/skills' }, + { + pathApi: win32, + home: 'C:\\Users\\remote', + expected: 'C:\\Users\\remote\\.gemini\\config\\skills' + } + ])('uses the execution host path format: $expected', ({ pathApi, home, expected }) => { + const roots = buildSkillDiscoverySources({ homeDir: home, pathApi, includeCwd: false }) + expect(roots.find((root) => root.id === 'home-antigravity')).toMatchObject({ + path: expected, + owner: 'antigravity' + }) + }) +}) diff --git a/src/main/skills/discovery.test.ts b/src/main/skills/discovery.test.ts index 7c6212a463b..be1a021e0f6 100644 --- a/src/main/skills/discovery.test.ts +++ b/src/main/skills/discovery.test.ts @@ -399,7 +399,7 @@ describe('skill discovery', () => { expect(rootPaths).toContain('/workspace/current/.claude/skills') }) - it('scans each provider home skill root that npx skills --global writes to', () => { + it('scans each provider home skill root', () => { const roots = buildSkillDiscoverySources({ homeDir: '/home/test', cwd: '/workspace/current' @@ -414,7 +414,7 @@ describe('skill discovery', () => { '/home/test/.omp/agent/skills', '/home/test/.hermes/skills', '/home/test/.gemini/skills', - '/home/test/.gemini/antigravity/skills', + '/home/test/.gemini/config/skills', '/home/test/.cursor/skills', '/home/test/.factory/skills', '/home/test/.continue/skills', diff --git a/src/main/skills/skill-discovery-sources.ts b/src/main/skills/skill-discovery-sources.ts index 2bf9a4c5da5..f013246ac65 100644 --- a/src/main/skills/skill-discovery-sources.ts +++ b/src/main/skills/skill-discovery-sources.ts @@ -144,7 +144,7 @@ export function buildSkillDiscoverySources( source( 'home-antigravity', 'Antigravity home', - pathApi.join(home, '.gemini', 'antigravity', 'skills'), + pathApi.join(home, '.gemini', 'config', 'skills'), 'home', ['agent-skills'], 'antigravity'