feat: add provider and model fields to persona configuration (#166)

This commit is contained in:
Wes
2026-03-24 13:02:20 -07:00
committed by GitHub
parent b20d4596a9
commit bf6de08906
15 changed files with 458 additions and 58 deletions
+14
View File
@@ -10,6 +10,8 @@ type RawParsedPersonaPreview = {
display_name: string;
system_prompt: string;
avatar_data_url: string | null;
provider: string | null;
model: string | null;
source_file: string;
};
@@ -28,6 +30,8 @@ export type ParsedPersonaPreview = {
displayName: string;
systemPrompt: string;
avatarDataUrl: string | null;
provider: string | null;
model: string | null;
sourceFile: string;
};
@@ -46,6 +50,8 @@ type RawPersona = {
display_name: string;
avatar_url: string | null;
system_prompt: string;
provider?: string | null;
model?: string | null;
is_builtin: boolean;
created_at: string;
updated_at: string;
@@ -57,6 +63,8 @@ function fromRawPersona(persona: RawPersona): AgentPersona {
displayName: persona.display_name,
avatarUrl: persona.avatar_url,
systemPrompt: persona.system_prompt,
provider: persona.provider ?? null,
model: persona.model ?? null,
isBuiltIn: persona.is_builtin,
createdAt: persona.created_at,
updatedAt: persona.updated_at,
@@ -76,6 +84,8 @@ export async function createPersona(
displayName: input.displayName,
avatarUrl: input.avatarUrl,
systemPrompt: input.systemPrompt,
provider: input.provider,
model: input.model,
},
}),
);
@@ -91,6 +101,8 @@ export async function updatePersona(
displayName: input.displayName,
avatarUrl: input.avatarUrl,
systemPrompt: input.systemPrompt,
provider: input.provider,
model: input.model,
},
}),
);
@@ -113,6 +125,8 @@ export async function parsePersonaFiles(
displayName: p.display_name,
systemPrompt: p.system_prompt,
avatarDataUrl: p.avatar_data_url,
provider: p.provider,
model: p.model,
sourceFile: p.source_file,
})),
skipped: raw.skipped.map((s) => ({
+8
View File
@@ -410,6 +410,10 @@ export type AgentPersona = {
displayName: string;
avatarUrl: string | null;
systemPrompt: string;
/** Preferred ACP provider ID (e.g. "goose", "claude"). */
provider: string | null;
/** Preferred model ID (e.g. "gpt-4o", "claude-sonnet-4-20250514"). */
model: string | null;
isBuiltIn: boolean;
createdAt: string;
updatedAt: string;
@@ -419,6 +423,8 @@ export type CreatePersonaInput = {
displayName: string;
avatarUrl?: string;
systemPrompt: string;
provider?: string;
model?: string;
};
export type UpdatePersonaInput = {
@@ -426,6 +432,8 @@ export type UpdatePersonaInput = {
displayName: string;
avatarUrl?: string;
systemPrompt: string;
provider?: string;
model?: string;
};
// ── Team types ────────────────────────────────────────────────────────────────