mirror of
https://github.com/stablyai/orca.git
synced 2026-09-22 00:02:31 +00:00
fix(skills): discover the Antigravity CLI global skill root
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
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 CLI skill discovery', () => {
|
||||
it.each([
|
||||
{ homeDir: '/home/agent', cwd: '/workspace', pathApi: posix },
|
||||
{ homeDir: 'C:\\Users\\agent', cwd: 'D:\\workspace', pathApi: win32 }
|
||||
])('uses the owning host path syntax for $homeDir', (args) => {
|
||||
expect(
|
||||
buildSkillDiscoverySources(args).find((root) => root.id === 'home-antigravity')
|
||||
).toMatchObject({
|
||||
path: args.pathApi.join(args.homeDir, '.gemini', 'config', 'skills'),
|
||||
owner: 'antigravity',
|
||||
providers: ['agent-skills']
|
||||
})
|
||||
})
|
||||
|
||||
it('discovers the documented CLI root without claiming legacy-only skills are loaded', async () => {
|
||||
const home = await mkdtemp(join(tmpdir(), 'orca-agy-skills-'))
|
||||
try {
|
||||
for (const [directory, name] of [
|
||||
['config', 'current-probe'],
|
||||
['antigravity', 'legacy-probe']
|
||||
]) {
|
||||
const skill = join(home, '.gemini', directory, 'skills', name)
|
||||
await mkdir(skill, { recursive: true })
|
||||
await writeFile(
|
||||
join(skill, 'SKILL.md'),
|
||||
`---\nname: ${name}\ndescription: Discovery test\n---\nTest skill.\n`
|
||||
)
|
||||
}
|
||||
const result = await discoverSkills({ homeDir: home, cwd: home, includeCwd: false })
|
||||
const agySkills = result.skills.filter((skill) => skill.sourceLabel === 'Antigravity home')
|
||||
expect(agySkills.map((skill) => skill.name)).toEqual(['current-probe'])
|
||||
expect(agySkills[0]?.rootPath).toBe(join(home, '.gemini', 'config', 'skills'))
|
||||
} finally {
|
||||
await rm(home, { recursive: true, force: true })
|
||||
}
|
||||
})
|
||||
})
|
||||
@@ -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 provider home and workspace skill roots', () => {
|
||||
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',
|
||||
|
||||
@@ -188,7 +188,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'
|
||||
|
||||
Reference in New Issue
Block a user