mirror of
https://github.com/hansjone/netxops.git
synced 2026-10-20 13:30:46 +08:00
feat(skills): pull group skills from netx /mcp resources, drop bundled copy
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
277a61894d
commit
fa82f530e9
31 changed files with 2074 additions and 2027 deletions
|
|
@ -4,10 +4,38 @@
|
|||
|
||||
import assert from 'node:assert/strict'
|
||||
import test from 'node:test'
|
||||
import { mkdtempSync, rmSync } from 'node:fs'
|
||||
import { tmpdir } from 'node:os'
|
||||
import { join } from 'node:path'
|
||||
|
||||
import { registerGroupSkills } from '../src/netx/group-skills.ts'
|
||||
import { replaceSkillsCache } from '../src/netx/skills-cache.ts'
|
||||
|
||||
const OPS_SKILL = `---
|
||||
name: netx-ops
|
||||
description: Ops playbook
|
||||
---
|
||||
Body
|
||||
`
|
||||
|
||||
test('registerGroupSkills appends disabled footnote; skips disabled groups', async (t) => {
|
||||
const previous = process.env.DSH_HOME
|
||||
const home = mkdtempSync(join(tmpdir(), 'netxops-skills-disabled-'))
|
||||
process.env.DSH_HOME = home
|
||||
t.after(() => {
|
||||
rmSync(home, { recursive: true, force: true })
|
||||
if (previous === undefined) delete process.env.DSH_HOME
|
||||
else process.env.DSH_HOME = previous
|
||||
})
|
||||
|
||||
const apiUrl = 'http://127.0.0.1:8890'
|
||||
const root = replaceSkillsCache(apiUrl, [{
|
||||
group: 'ops',
|
||||
skill: 'netx-ops',
|
||||
relPath: 'SKILL.md',
|
||||
text: OPS_SKILL,
|
||||
}])
|
||||
|
||||
test('registerGroupSkills appends disabled footnote; skips disabled groups', async () => {
|
||||
/** @type {Array<{ name: string, content: string }>} */
|
||||
const registered = []
|
||||
const ctx = {
|
||||
|
|
@ -21,6 +49,7 @@ test('registerGroupSkills appends disabled footnote; skips disabled groups', asy
|
|||
}
|
||||
|
||||
const dispose = await registerGroupSkills(ctx, ['ops'], 'test', {
|
||||
skillsRoot: root,
|
||||
disabledByGroup: { ops: ['netx__execManagedNe'] },
|
||||
lang: 'zh',
|
||||
})
|
||||
|
|
@ -30,6 +59,7 @@ test('registerGroupSkills appends disabled footnote; skips disabled groups', asy
|
|||
|
||||
registered.length = 0
|
||||
const dispose2 = await registerGroupSkills(ctx, [], 'test', {
|
||||
skillsRoot: root,
|
||||
disabledByGroup: { ops: ['netx__execManagedNe'] },
|
||||
})
|
||||
assert.equal(registered.length, 0)
|
||||
|
|
@ -37,6 +67,7 @@ test('registerGroupSkills appends disabled footnote; skips disabled groups', asy
|
|||
|
||||
registered.length = 0
|
||||
const dispose3 = await registerGroupSkills(ctx, ['ops'], 'test', {
|
||||
skillsRoot: root,
|
||||
disabledByGroup: { ops: ['netx__execManagedNe'] },
|
||||
lang: 'en',
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue