feat: enforce agent icon enum and expose via LLM endpoint
Move icon name list to shared constants with strict enum validation. Add /llms/agent-icons.txt endpoint, pass icon through hire flow, and update skills to reference icon discovery step. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -39,6 +39,51 @@ export const AGENT_ROLES = [
|
||||
] as const;
|
||||
export type AgentRole = (typeof AGENT_ROLES)[number];
|
||||
|
||||
export const AGENT_ICON_NAMES = [
|
||||
"bot",
|
||||
"cpu",
|
||||
"brain",
|
||||
"zap",
|
||||
"rocket",
|
||||
"code",
|
||||
"terminal",
|
||||
"shield",
|
||||
"eye",
|
||||
"search",
|
||||
"wrench",
|
||||
"hammer",
|
||||
"lightbulb",
|
||||
"sparkles",
|
||||
"star",
|
||||
"heart",
|
||||
"flame",
|
||||
"bug",
|
||||
"cog",
|
||||
"database",
|
||||
"globe",
|
||||
"lock",
|
||||
"mail",
|
||||
"message-square",
|
||||
"file-code",
|
||||
"git-branch",
|
||||
"package",
|
||||
"puzzle",
|
||||
"target",
|
||||
"wand",
|
||||
"atom",
|
||||
"circuit-board",
|
||||
"radar",
|
||||
"swords",
|
||||
"telescope",
|
||||
"microscope",
|
||||
"crown",
|
||||
"gem",
|
||||
"hexagon",
|
||||
"pentagon",
|
||||
"fingerprint",
|
||||
] as const;
|
||||
export type AgentIconName = (typeof AGENT_ICON_NAMES)[number];
|
||||
|
||||
export const ISSUE_STATUSES = [
|
||||
"backlog",
|
||||
"todo",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { z } from "zod";
|
||||
import {
|
||||
AGENT_ADAPTER_TYPES,
|
||||
AGENT_ICON_NAMES,
|
||||
AGENT_ROLES,
|
||||
AGENT_STATUSES,
|
||||
} from "../constants.js";
|
||||
@@ -27,7 +28,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(),
|
||||
icon: z.enum(AGENT_ICON_NAMES).optional().nullable(),
|
||||
reportsTo: z.string().uuid().optional().nullable(),
|
||||
capabilities: z.string().optional().nullable(),
|
||||
adapterType: z.enum(AGENT_ADAPTER_TYPES).optional().default("process"),
|
||||
|
||||
Reference in New Issue
Block a user