mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-14 01:50:39 +09:00
feat: add agent icons with picker and collapsible sidebar section
- Add `icon` text column to agents DB schema with migration - Add icon field to shared Agent type and validators - Create AgentIconPicker component with 40+ curated lucide icons and search - Show clickable icon next to agent name on detail page header - Replace static Agents nav item with collapsible AGENTS section in sidebar - Each agent shows its icon (defaulting to Bot) with truncated name Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
5b8708eae9
commit
cf237d2e7f
9 changed files with 369 additions and 38 deletions
1
packages/db/src/migrations/0016_agent_icon.sql
Normal file
1
packages/db/src/migrations/0016_agent_icon.sql
Normal file
|
|
@ -0,0 +1 @@
|
|||
ALTER TABLE "agents" ADD COLUMN "icon" text;
|
||||
|
|
@ -113,6 +113,13 @@
|
|||
"when": 1771865100000,
|
||||
"tag": "0015_project_color_archived",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 16,
|
||||
"version": "7",
|
||||
"when": 1771955900000,
|
||||
"tag": "0016_agent_icon",
|
||||
"breakpoints": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -18,6 +18,7 @@ export const agents = pgTable(
|
|||
name: text("name").notNull(),
|
||||
role: text("role").notNull().default("general"),
|
||||
title: text("title"),
|
||||
icon: text("icon"),
|
||||
status: text("status").notNull().default("idle"),
|
||||
reportsTo: uuid("reports_to").references((): AnyPgColumn => agents.id),
|
||||
capabilities: text("capabilities"),
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ export interface Agent {
|
|||
name: string;
|
||||
role: AgentRole;
|
||||
title: string | null;
|
||||
icon: string | null;
|
||||
status: AgentStatus;
|
||||
reportsTo: string | null;
|
||||
capabilities: string | null;
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ export const createAgentSchema = z.object({
|
|||
name: z.string().min(1),
|
||||
role: z.enum(AGENT_ROLES).optional().default("general"),
|
||||
title: z.string().optional().nullable(),
|
||||
icon: z.string().optional().nullable(),
|
||||
reportsTo: z.string().uuid().optional().nullable(),
|
||||
capabilities: z.string().optional().nullable(),
|
||||
adapterType: z.enum(AGENT_ADAPTER_TYPES).optional().default("process"),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue