mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
fix(desktop): remove superseded built-in agents (#1929)
Signed-off-by: Wes <wesbillman@users.noreply.github.com> Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co>
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -39,27 +39,11 @@ fn merge_personas_adds_missing_built_ins() {
|
||||
assert!(records
|
||||
.iter()
|
||||
.any(|record| record.id == "builtin:fizz" && record.runtime.is_none()));
|
||||
assert!(records
|
||||
.iter()
|
||||
.any(|record| record.id == "builtin:product-strategist" && !record.is_active));
|
||||
let display_names: Vec<&str> = records
|
||||
.iter()
|
||||
.map(|record| record.display_name.as_str())
|
||||
.collect();
|
||||
assert_eq!(
|
||||
display_names,
|
||||
vec![
|
||||
"Fizz",
|
||||
"Honey",
|
||||
"Bumble",
|
||||
"Product Strategist",
|
||||
"Implementation Partner",
|
||||
"QA Reviewer",
|
||||
"Work Coordinator",
|
||||
"Support Guide",
|
||||
"Experiment Designer"
|
||||
]
|
||||
);
|
||||
assert_eq!(display_names, vec!["Fizz", "Honey", "Bumble"]);
|
||||
let active_ids: Vec<&str> = records
|
||||
.iter()
|
||||
.filter(|record| record.is_active)
|
||||
|
||||
@@ -1861,46 +1861,10 @@ function resetMockManagedAgents(config?: E2eConfig) {
|
||||
syncMockRelayAgentsFromManagedAgents();
|
||||
}
|
||||
|
||||
const BUILT_IN_PERSONA_AVATAR_URLS = {
|
||||
productStrategist:
|
||||
"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjggMTI4Ij48cmVjdCB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgcng9IjMyIiBmaWxsPSIjMmY2ZjczIi8+PGNpcmNsZSBjeD0iOTYiIGN5PSIzMiIgcj0iMTYiIGZpbGw9IiNkZmY3ZjQiIGZpbGwtb3BhY2l0eT0iLjI4Ii8+PHBhdGggZD0iTTI0IDk0YzE0LTI1IDI3LTM3IDQwLTM3czI2IDEyIDQwIDM3IiBmaWxsPSJub25lIiBzdHJva2U9IiNkZmY3ZjQiIHN0cm9rZS13aWR0aD0iOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHRleHQgeD0iNjQiIHk9IjcyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0iSW50ZXIsQXJpYWwsc2Fucy1zZXJpZiIgZm9udC1zaXplPSIzNCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iI2RmZjdmNCI+UFM8L3RleHQ+PC9zdmc+",
|
||||
implementationPartner:
|
||||
"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjggMTI4Ij48cmVjdCB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgcng9IjMyIiBmaWxsPSIjNmY0ZTlhIi8+PGNpcmNsZSBjeD0iOTYiIGN5PSIzMiIgcj0iMTYiIGZpbGw9IiNmMGU4ZmYiIGZpbGwtb3BhY2l0eT0iLjI4Ii8+PHBhdGggZD0iTTI0IDk0YzE0LTI1IDI3LTM3IDQwLTM3czI2IDEyIDQwIDM3IiBmaWxsPSJub25lIiBzdHJva2U9IiNmMGU4ZmYiIHN0cm9rZS13aWR0aD0iOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHRleHQgeD0iNjQiIHk9IjcyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0iSW50ZXIsQXJpYWwsc2Fucy1zZXJpZiIgZm9udC1zaXplPSIzNCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iI2YwZThmZiI+SVA8L3RleHQ+PC9zdmc+",
|
||||
qaReviewer:
|
||||
"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjggMTI4Ij48cmVjdCB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgcng9IjMyIiBmaWxsPSIjOWE1YTFmIi8+PGNpcmNsZSBjeD0iOTYiIGN5PSIzMiIgcj0iMTYiIGZpbGw9IiNmZmYwZGMiIGZpbGwtb3BhY2l0eT0iLjI4Ii8+PHBhdGggZD0iTTI0IDk0YzE0LTI1IDI3LTM3IDQwLTM3czI2IDEyIDQwIDM3IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYwZGMiIHN0cm9rZS13aWR0aD0iOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHRleHQgeD0iNjQiIHk9IjcyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0iSW50ZXIsQXJpYWwsc2Fucy1zZXJpZiIgZm9udC1zaXplPSIzNCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iI2ZmZjBkYyI+UUE8L3RleHQ+PC9zdmc+",
|
||||
workCoordinator:
|
||||
"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjggMTI4Ij48cmVjdCB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgcng9IjMyIiBmaWxsPSIjMzQ1ZjhjIi8+PGNpcmNsZSBjeD0iOTYiIGN5PSIzMiIgcj0iMTYiIGZpbGw9IiNlM2YwZmYiIGZpbGwtb3BhY2l0eT0iLjI4Ii8+PHBhdGggZD0iTTI0IDk0YzE0LTI1IDI3LTM3IDQwLTM3czI2IDEyIDQwIDM3IiBmaWxsPSJub25lIiBzdHJva2U9IiNlM2YwZmYiIHN0cm9rZS13aWR0aD0iOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHRleHQgeD0iNjQiIHk9IjcyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0iSW50ZXIsQXJpYWwsc2Fucy1zZXJpZiIgZm9udC1zaXplPSIzNCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iI2UzZjBmZiI+V0M8L3RleHQ+PC9zdmc+",
|
||||
supportGuide:
|
||||
"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjggMTI4Ij48cmVjdCB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgcng9IjMyIiBmaWxsPSIjNmE3MDMxIi8+PGNpcmNsZSBjeD0iOTYiIGN5PSIzMiIgcj0iMTYiIGZpbGw9IiNmMmY2ZDciIGZpbGwtb3BhY2l0eT0iLjI4Ii8+PHBhdGggZD0iTTI0IDk0YzE0LTI1IDI3LTM3IDQwLTM3czI2IDEyIDQwIDM3IiBmaWxsPSJub25lIiBzdHJva2U9IiNmMmY2ZDciIHN0cm9rZS13aWR0aD0iOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHRleHQgeD0iNjQiIHk9IjcyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0iSW50ZXIsQXJpYWwsc2Fucy1zZXJpZiIgZm9udC1zaXplPSIzNCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iI2YyZjZkNyI+U0c8L3RleHQ+PC9zdmc+",
|
||||
experimentDesigner:
|
||||
"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjggMTI4Ij48cmVjdCB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgcng9IjMyIiBmaWxsPSIjOGIzZjVlIi8+PGNpcmNsZSBjeD0iOTYiIGN5PSIzMiIgcj0iMTYiIGZpbGw9IiNmZmU3ZjAiIGZpbGwtb3BhY2l0eT0iLjI4Ii8+PHBhdGggZD0iTTI0IDk0YzE0LTI1IDI3LTM3IDQwLTM3czI2IDEyIDQwIDM3IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmU3ZjAiIHN0cm9rZS13aWR0aD0iOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHRleHQgeD0iNjQiIHk9IjcyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LWZhbWlseT0iSW50ZXIsQXJpYWwsc2Fucy1zZXJpZiIgZm9udC1zaXplPSIzNCIgZm9udC13ZWlnaHQ9IjcwMCIgZmlsbD0iI2ZmZTdmMCI+RUQ8L3RleHQ+PC9zdmc+",
|
||||
} as const;
|
||||
|
||||
function resetMockPersonas(config?: E2eConfig) {
|
||||
const now = new Date().toISOString();
|
||||
const activePersonaIds = new Set(config?.mock?.activePersonaIds ?? []);
|
||||
const builtInPersonas = [
|
||||
{
|
||||
id: "builtin:product-strategist",
|
||||
display_name: "Product Strategist",
|
||||
avatar_url: BUILT_IN_PERSONA_AVATAR_URLS.productStrategist,
|
||||
system_prompt:
|
||||
"You are a product strategy agent. You help turn broad ideas into clear product and design direction.\n\n# Focus\n\nClarify the goal, identify the audience, and call out the tradeoffs that matter.",
|
||||
},
|
||||
{
|
||||
id: "builtin:implementation-partner",
|
||||
display_name: "Implementation Partner",
|
||||
avatar_url: BUILT_IN_PERSONA_AVATAR_URLS.implementationPartner,
|
||||
system_prompt:
|
||||
"You are an implementation partner agent. You help turn scoped plans into working changes.\n\n# Focus\n\nPrefer small, direct edits that follow the existing codebase.",
|
||||
},
|
||||
{
|
||||
id: "builtin:qa-reviewer",
|
||||
display_name: "QA Reviewer",
|
||||
avatar_url: BUILT_IN_PERSONA_AVATAR_URLS.qaReviewer,
|
||||
system_prompt:
|
||||
"You are a QA reviewer agent. You look for the ways a change might break.\n\n# Focus\n\nInspect state transitions, empty states, permissions, accessibility, and failure paths.",
|
||||
},
|
||||
{
|
||||
id: "builtin:fizz",
|
||||
display_name: "Fizz",
|
||||
@@ -1908,25 +1872,16 @@ function resetMockPersonas(config?: E2eConfig) {
|
||||
system_prompt: "You are Fizz.",
|
||||
},
|
||||
{
|
||||
id: "builtin:work-coordinator",
|
||||
display_name: "Work Coordinator",
|
||||
avatar_url: BUILT_IN_PERSONA_AVATAR_URLS.workCoordinator,
|
||||
system_prompt:
|
||||
"You are a work coordination agent. You keep multi-step work organized and grounded.\n\n# Focus\n\nTrack goals, dependencies, and follow-ups.",
|
||||
id: "builtin:honey",
|
||||
display_name: "Honey",
|
||||
avatar_url: null,
|
||||
system_prompt: "You are Honey.",
|
||||
},
|
||||
{
|
||||
id: "builtin:support-guide",
|
||||
display_name: "Support Guide",
|
||||
avatar_url: BUILT_IN_PERSONA_AVATAR_URLS.supportGuide,
|
||||
system_prompt:
|
||||
"You are a support and onboarding agent. You help people feel oriented quickly.\n\n# Focus\n\nExplain unfamiliar flows plainly, surface the next useful step, and keep guidance reassuring without becoming verbose.",
|
||||
},
|
||||
{
|
||||
id: "builtin:experiment-designer",
|
||||
display_name: "Experiment Designer",
|
||||
avatar_url: BUILT_IN_PERSONA_AVATAR_URLS.experimentDesigner,
|
||||
system_prompt:
|
||||
"You are an experiment design agent. You help turn uncertainty into experiments.\n\n# Focus\n\nBreak big questions into small trials, name what would prove or disprove an idea, and keep momentum through ambiguity.",
|
||||
id: "builtin:bumble",
|
||||
display_name: "Bumble",
|
||||
avatar_url: null,
|
||||
system_prompt: "You are Bumble.",
|
||||
},
|
||||
];
|
||||
mockPersonas = builtInPersonas.map((persona) => ({
|
||||
|
||||
@@ -164,25 +164,22 @@ test("built-in personas are used from the catalog dialog", async ({ page }) => {
|
||||
await expect(page.getByTestId("persona-catalog-dialog")).toContainText(
|
||||
"Fizz",
|
||||
);
|
||||
const previewPersonas = [
|
||||
["builtin:product-strategist", "Product Strategist"],
|
||||
["builtin:implementation-partner", "Implementation Partner"],
|
||||
["builtin:qa-reviewer", "QA Reviewer"],
|
||||
["builtin:work-coordinator", "Work Coordinator"],
|
||||
["builtin:support-guide", "Support Guide"],
|
||||
["builtin:experiment-designer", "Experiment Designer"],
|
||||
] as const;
|
||||
for (const [, personaName] of previewPersonas) {
|
||||
for (const personaName of ["Fizz", "Honey", "Bumble"]) {
|
||||
await expect(page.getByTestId("persona-catalog-dialog")).toContainText(
|
||||
personaName,
|
||||
);
|
||||
}
|
||||
for (const [personaId, personaName] of previewPersonas) {
|
||||
await expect(
|
||||
page
|
||||
.getByTestId(`persona-catalog-list-item-${personaId}`)
|
||||
.getByRole("img", { name: `${personaName} avatar` }),
|
||||
).toHaveAttribute("src", /.+/);
|
||||
for (const retiredPersonaName of [
|
||||
"Product Strategist",
|
||||
"Implementation Partner",
|
||||
"QA Reviewer",
|
||||
"Work Coordinator",
|
||||
"Support Guide",
|
||||
"Experiment Designer",
|
||||
]) {
|
||||
await expect(page.getByTestId("persona-catalog-dialog")).not.toContainText(
|
||||
retiredPersonaName,
|
||||
);
|
||||
}
|
||||
await expect(page.getByTestId("persona-catalog-dialog-header")).toBeVisible();
|
||||
await expect(
|
||||
|
||||
Reference in New Issue
Block a user