feat: wire multi-agent config and routing

Co-authored-by: Mark Pors <1078320+pors@users.noreply.github.com>
This commit is contained in:
Peter Steinberger
2026-01-09 12:44:23 +00:00
parent 81beda0772
commit 7b81d97ec2
189 changed files with 4340 additions and 2903 deletions

View File

@@ -327,14 +327,14 @@ export async function modelsScanCommand(
}
const _updated = await updateConfig((cfg) => {
const nextModels = { ...cfg.agent?.models };
const nextModels = { ...cfg.agents?.defaults?.models };
for (const entry of selected) {
if (!nextModels[entry]) nextModels[entry] = {};
}
for (const entry of selectedImages) {
if (!nextModels[entry]) nextModels[entry] = {};
}
const existingImageModel = cfg.agent?.imageModel as
const existingImageModel = cfg.agents?.defaults?.imageModel as
| { primary?: string; fallbacks?: string[] }
| undefined;
const nextImageModel =
@@ -346,12 +346,12 @@ export async function modelsScanCommand(
fallbacks: selectedImages,
...(opts.setImage ? { primary: selectedImages[0] } : {}),
}
: cfg.agent?.imageModel;
const existingModel = cfg.agent?.model as
: cfg.agents?.defaults?.imageModel;
const existingModel = cfg.agents?.defaults?.model as
| { primary?: string; fallbacks?: string[] }
| undefined;
const agent = {
...cfg.agent,
const defaults = {
...cfg.agents?.defaults,
model: {
...(existingModel?.primary
? { primary: existingModel.primary }
@@ -361,10 +361,13 @@ export async function modelsScanCommand(
},
...(nextImageModel ? { imageModel: nextImageModel } : {}),
models: nextModels,
} satisfies NonNullable<typeof cfg.agent>;
} satisfies NonNullable<NonNullable<typeof cfg.agents>["defaults"]>;
return {
...cfg,
agent,
agents: {
...cfg.agents,
defaults,
},
};
});