Add skill enable controls and data factory SQL skill
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user