feat: add TraitsTab component for managing agent traits
Some checks failed
CI / build-and-test (push) Failing after -32m5s

- Implemented TraitsTab.svelte to handle CRUD operations for agent traits.
- Integrated grid for displaying traits with context menu actions for add, edit, and delete.
- Added trait instruction editing functionality with a dedicated editor.
- Updated AdminShell to include PersonasPage for navigation.
- Enhanced AppSidebar with a new entry for Personas.
- Extended ShellPage type to include 'personas'.
- Defined new types for AgentPersona, AgentPart, and AgentTrait in types.ts.
This commit is contained in:
2026-05-05 14:51:58 +02:00
parent e285a03639
commit 9230f39cb6
48 changed files with 6979 additions and 2240 deletions

View File

@@ -748,12 +748,6 @@ func BuildToolCatalog() []tools.ToolEntry {
{Name: "reparse_thought_metadata", Description: "Re-extract and normalize metadata for stored thoughts from their content.", Category: "admin"},
{Name: "retry_failed_metadata", Description: "Retry metadata extraction for thoughts still marked pending or failed.", Category: "admin"},
// maintenance
{Name: "add_maintenance_task", Description: "Create a recurring or one-time home maintenance task.", Category: "maintenance"},
{Name: "log_maintenance", Description: "Log completed maintenance work; automatically updates the task's next due date.", Category: "maintenance"},
{Name: "get_upcoming_maintenance", Description: "List maintenance tasks due within the next N days.", Category: "maintenance"},
{Name: "search_maintenance_history", Description: "Search the maintenance log by task name, category, or date range.", Category: "maintenance"},
// skills
{Name: "add_skill", Description: "Store a reusable agent skill. Supports language_tags, library_tags, framework_tags, and domain_tags for precise retrieval.", Category: "skills"},
{Name: "remove_skill", Description: "Delete an agent skill by id.", Category: "skills"},

View File

@@ -27,68 +27,10 @@ func TestNewListsAllRegisteredTools(t *testing.T) {
}
sort.Strings(got)
want := []string{
"add_guardrail",
"add_learning",
"add_plan_dependency",
"add_plan_guardrail",
"add_plan_skill",
"add_project_guardrail",
"add_project_skill",
"add_related_plan",
"add_skill",
"annotate_tool",
"archive_thought",
"backfill_embeddings",
"capture_thought",
"create_plan",
"create_project",
"delete_chat_history",
"delete_plan",
"delete_thought",
"describe_tools",
"get_active_project",
"get_chat_history",
"get_learning",
"get_plan",
"get_project_context",
"get_thought",
"get_version_info",
"link_thoughts",
"list_chat_histories",
"list_files",
"list_guardrails",
"list_learnings",
"list_plan_guardrails",
"list_plan_skills",
"list_plans",
"list_project_guardrails",
"list_project_skills",
"list_projects",
"list_skills",
"list_thoughts",
"load_file",
"recall_context",
"related_thoughts",
"remove_guardrail",
"remove_plan_dependency",
"remove_plan_guardrail",
"remove_plan_skill",
"remove_project_guardrail",
"remove_project_skill",
"remove_related_plan",
"remove_skill",
"reparse_thought_metadata",
"retry_failed_metadata",
"save_chat_history",
"save_file",
"search_thoughts",
"set_active_project",
"summarize_thoughts",
"thought_stats",
"update_plan",
"update_thought",
"upload_file",
catalog := BuildToolCatalog()
want := make([]string, 0, len(catalog))
for _, tool := range catalog {
want = append(want, tool.Name)
}
sort.Strings(want)