Add skill enable controls and data factory SQL skill

This commit is contained in:
武阳
2026-05-08 14:56:32 +08:00
parent 046b0eeab0
commit bd2f260b9f
16 changed files with 1167 additions and 25 deletions
+49 -3
View File
@@ -149,13 +149,59 @@ class GuiServerTests(unittest.TestCase):
def test_skills_listed(self) -> None:
with tempfile.TemporaryDirectory() as d:
client, _ = _build_client(Path(d))
root = Path(d)
skill_dir = root / 'skills' / 'project-skill'
skill_dir.mkdir(parents=True)
(skill_dir / 'SKILL.md').write_text(
(
'---\n'
'name: project-skill\n'
'description: Project skill.\n'
'---\n'
'Project skill body.\n'
),
encoding='utf-8',
)
client, _ = _build_client(root)
response = client.get('/api/skills')
self.assertEqual(response.status_code, 200)
skills = response.json()
self.assertTrue(skills)
names = {entry['name'] for entry in skills}
self.assertIn('simplify', names)
by_name = {entry['name']: entry for entry in skills}
self.assertIn('project-skill', by_name)
self.assertTrue(by_name['project-skill']['enabled'])
self.assertTrue(by_name['project-skill']['configurable'])
self.assertNotIn('simplify', by_name)
def test_skill_preference_toggle_updates_prompt_filter(self) -> None:
with tempfile.TemporaryDirectory() as d:
root = Path(d)
skill_dir = root / 'skills' / 'project-skill'
skill_dir.mkdir(parents=True)
(skill_dir / 'SKILL.md').write_text(
(
'---\n'
'name: project-skill\n'
'description: Project skill.\n'
'---\n'
'Project skill body.\n'
),
encoding='utf-8',
)
client, state = _build_client(root)
response = client.patch(
'/api/skills',
json={'skill': 'project-skill', 'enabled': False},
)
self.assertEqual(response.status_code, 200)
skill = {
entry['name']: entry
for entry in response.json()
}['project-skill']
self.assertFalse(skill['enabled'])
self.assertNotIn('project-skill', state.agent_for().runtime_config.enabled_skill_names)
self.assertIn('verify', state.agent_for().runtime_config.enabled_skill_names)
def test_chat_runs_local_slash_command(self) -> None:
with tempfile.TemporaryDirectory() as d: