feat(config): named agent roster (config.agents)
Adds an optional `agents` roster to the project config: agent name -> role + model + provider (kind). The team view can now show named agents (claude, codex, kimi, windows-claude, backyard, mo, zied, …) with a FIXED role and the model behind them, instead of inferring role/identity from whichever tasks an agent happened to touch (which made one agent appear under several roles). Bump 0.7.0 -> 0.7.1. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
15f139429e
commit
2d89f808b8
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "agenthub",
|
"name": "agenthub",
|
||||||
"version": "0.7.0",
|
"version": "0.7.1",
|
||||||
"description": "Local coordination layer for AI coding agents",
|
"description": "Local coordination layer for AI coding agents",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.js",
|
"main": "./dist/index.js",
|
||||||
|
|||||||
@ -115,7 +115,7 @@ async function runRemote(serverUrl: string, fn: () => Promise<void>): Promise<vo
|
|||||||
export function createProgram(cwd: string): Command {
|
export function createProgram(cwd: string): Command {
|
||||||
const program = new Command('agenthub')
|
const program = new Command('agenthub')
|
||||||
.description('Local coordination layer for AI coding agents')
|
.description('Local coordination layer for AI coding agents')
|
||||||
.version('0.7.0')
|
.version('0.7.1')
|
||||||
.option('--server <url>', 'AgentHub server URL (env: AGENTHUB_SERVER)');
|
.option('--server <url>', 'AgentHub server URL (env: AGENTHUB_SERVER)');
|
||||||
|
|
||||||
program
|
program
|
||||||
|
|||||||
@ -96,11 +96,27 @@ export const RoleConfigSchema = z.object({
|
|||||||
description: z.string().optional(),
|
description: z.string().optional(),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A named agent in the team roster. Lets the team view show agents (by name,
|
||||||
|
* like backyard / mo / zied) with a fixed role + the model behind them — instead
|
||||||
|
* of guessing role/identity from whatever tasks the agent happened to touch.
|
||||||
|
*/
|
||||||
|
export const AgentConfigSchema = z.object({
|
||||||
|
role: Role,
|
||||||
|
/** Display model, e.g. "Opus 4.8", "Sonnet 4.6", "Kimi K2", "GPT-5 Codex". */
|
||||||
|
model: z.string().optional(),
|
||||||
|
/** Provider/company for the logo: "anthropic" | "openai" | "moonshot" | … */
|
||||||
|
kind: z.string().optional(),
|
||||||
|
description: z.string().optional(),
|
||||||
|
});
|
||||||
|
|
||||||
export const ConfigSchema = z.object({
|
export const ConfigSchema = z.object({
|
||||||
version: z.literal('1'),
|
version: z.literal('1'),
|
||||||
projectName: z.string().min(1),
|
projectName: z.string().min(1),
|
||||||
delegationMode: DelegationMode.default('suggest'),
|
delegationMode: DelegationMode.default('suggest'),
|
||||||
roles: z.record(z.string(), RoleConfigSchema),
|
roles: z.record(z.string(), RoleConfigSchema),
|
||||||
|
/** Named team roster: agent name → role + model + provider. */
|
||||||
|
agents: z.record(z.string(), AgentConfigSchema).optional(),
|
||||||
serverUrl: z.string().url().optional(),
|
serverUrl: z.string().url().optional(),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user