Something went wrong. Try again.
source dump of claude code forked from oppi.li/claude-code
Something went wrong. Try again.
2.1 kB · 70 lines
TypeScript
at main
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071/** * Agents subcommand handler — prints the list of configured agents. * Dynamically imported only when `claude agents` runs. */
import { AGENT_SOURCE_GROUPS, compareAgentsByName, getOverrideSourceLabel, type ResolvedAgent, resolveAgentModelDisplay, resolveAgentOverrides,} from '../../tools/AgentTool/agentDisplay.js'import { getActiveAgentsFromList, getAgentDefinitionsWithOverrides,} from '../../tools/AgentTool/loadAgentsDir.js'import { getCwd } from '../../utils/cwd.js'
function formatAgent(agent: ResolvedAgent): string { const model = resolveAgentModelDisplay(agent) const parts = [agent.agentType] if (model) { parts.push(model) } if (agent.memory) { parts.push(`${agent.memory} memory`) } return parts.join(' · ')}
export async function agentsHandler(): Promise<void> { const cwd = getCwd() const { allAgents } = await getAgentDefinitionsWithOverrides(cwd) const activeAgents = getActiveAgentsFromList(allAgents) const resolvedAgents = resolveAgentOverrides(allAgents, activeAgents)
const lines: string[] = [] let totalActive = 0
for (const { label, source } of AGENT_SOURCE_GROUPS) { const groupAgents = resolvedAgents .filter(a => a.source === source) .sort(compareAgentsByName)
if (groupAgents.length === 0) continue
lines.push(`${label}:`) for (const agent of groupAgents) { if (agent.overriddenBy) { const winnerSource = getOverrideSourceLabel(agent.overriddenBy) lines.push(` (shadowed by ${winnerSource}) ${formatAgent(agent)}`) } else { lines.push(` ${formatAgent(agent)}`) totalActive++ } } lines.push('') }
if (lines.length === 0) { // biome-ignore lint/suspicious/noConsole:: intentional console output console.log('No agents found.') } else { // biome-ignore lint/suspicious/noConsole:: intentional console output console.log(`${totalActive} active agents\n`) // biome-ignore lint/suspicious/noConsole:: intentional console output console.log(lines.join('\n').trimEnd()) }}