Use display names as config.agent keys so opencode shows proper names in UI (Tab/@ menu). Key remapping happens after all agents are assembled but before reordering, via remapAgentKeysToDisplayNames(). - agent-config-handler: set default_agent to display name, add key remapping - agent-key-remapper: new module to transform lowercase keys to display names - agent-priority-order: CORE_AGENT_ORDER uses display names - tool-config-handler: look up agents by config key via agentByKey() helper
31 lines
745 B
TypeScript
31 lines
745 B
TypeScript
import { getAgentDisplayName } from "../shared/agent-display-names";
|
|
|
|
const CORE_AGENT_ORDER = [
|
|
getAgentDisplayName("sisyphus"),
|
|
getAgentDisplayName("hephaestus"),
|
|
getAgentDisplayName("prometheus"),
|
|
getAgentDisplayName("atlas"),
|
|
] as const;
|
|
|
|
export function reorderAgentsByPriority(
|
|
agents: Record<string, unknown>,
|
|
): Record<string, unknown> {
|
|
const ordered: Record<string, unknown> = {};
|
|
const seen = new Set<string>();
|
|
|
|
for (const key of CORE_AGENT_ORDER) {
|
|
if (Object.prototype.hasOwnProperty.call(agents, key)) {
|
|
ordered[key] = agents[key];
|
|
seen.add(key);
|
|
}
|
|
}
|
|
|
|
for (const [key, value] of Object.entries(agents)) {
|
|
if (!seen.has(key)) {
|
|
ordered[key] = value;
|
|
}
|
|
}
|
|
|
|
return ordered;
|
|
}
|