Implement Skills feature: filesystem-based skills with agent assignment
- Add SkillService: scans data/skills/ directory, parses _meta.json and SKILL.md frontmatter - Add SkillEndpoint: REST API for listing skills and managing agent-skill assignments - Add agent_skills DB table for agent-to-skill mapping (only relation in DB, skills live on filesystem) - Extend SystemPromptBuilder: inject assigned skills' SKILL.md content into system prompt - Extend ChatEndpoint + SessionEndpoint: load agent skills and pass to prompt builder - Frontend: skill checkboxes in agent form, API functions for skill management - Add form.css styling for skill list items
This commit is contained in:
1 parent
b18dc78651
commit
cf6caea2dc
11 files changed
+454
-6
No files matched your search
@@ -123,6 +123,63 @@
|
||||
font-size: var(--font-size);
|
||||
}
|
||||
|
||||
/* ── Skills ── */
|
||||
|
||||
.skill-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--badge-spacing);
|
||||
}
|
||||
|
||||
.skill-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--badge-spacing);
|
||||
cursor: pointer;
|
||||
padding: var(--badge-spacing) var(--box-spacing);
|
||||
background: var(--f2-bg);
|
||||
border: var(--border-width) solid var(--f2-border);
|
||||
border-radius: var(--border-radius);
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.skill-item:hover {
|
||||
border-color: var(--accent);
|
||||
}
|
||||
|
||||
.skill-item input[type="checkbox"] {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
accent-color: var(--accent);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.skill-name {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.skill-version {
|
||||
opacity: 0.5;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.skill-desc {
|
||||
opacity: 0.6;
|
||||
font-size: var(--font-size);
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.skill-empty {
|
||||
opacity: 0.5;
|
||||
padding: var(--box-spacing);
|
||||
}
|
||||
|
||||
.skill-empty code {
|
||||
background: var(--f2-bg);
|
||||
padding: 2px 6px;
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
.danger-btn {
|
||||
color: var(--dangerous);
|
||||
border-color: var(--dangerous);
|
||||
|
||||
Reference in new issue
Block a user