diff --git a/packages/hub-client/test/seed.test.ts b/packages/hub-client/test/seed.test.ts index b38cbb3ec..7859ff4ff 100644 --- a/packages/hub-client/test/seed.test.ts +++ b/packages/hub-client/test/seed.test.ts @@ -222,7 +222,7 @@ describe("seedTenant", () => { expect(definition.stepOrder).toEqual(["assistant"]); const output = lines.join("\n"); - expect(output).toContain("created workflow asset assistant"); + expect(output).toContain("created workflow asset assistant (Myra)"); expect(output).toContain("deployed workflow assistant as dep_2"); expect(output).toContain("confirmed workflow assistant: run run_1 started"); expect(output).toContain("seed complete: 1 workflow(s)"); @@ -439,6 +439,18 @@ describe("seedTenant", () => { expect(DEFAULT_WORKFLOWS.map((w) => w.assetName)).toContain("assistant"); }); + test("the seeded assistant is productized under the Myra display name", () => { + // Every personal bench provisioning deploys DEFAULT_WORKFLOWS, which + // includes the assistant. Its display name is the productized label + // Myra — seed stamps it onto the asset at create time, so the seeded + // assistant surfaces as Myra rather than the generic "Assistant". + const assistant = DEFAULT_WORKFLOWS.find( + (w) => w.assetName === "assistant", + ); + expect(assistant).toBeDefined(); + expect(assistant?.displayName).toBe("Myra"); + }); + test("NOOP_MODEL_SOURCE resolves to the hub's own noop-inference endpoint", () => { const resolved = NOOP_MODEL_SOURCE("http://localhost:3000"); expect(resolved.baseURL).toBe( diff --git a/packages/workflow-catalog/src/index.ts b/packages/workflow-catalog/src/index.ts index 8965e6b9b..9a639ac10 100644 --- a/packages/workflow-catalog/src/index.ts +++ b/packages/workflow-catalog/src/index.ts @@ -26,7 +26,7 @@ export const WORKFLOW_CATALOG: readonly WorkflowCatalogEntry[] = [ }, { assetName: "assistant", - displayName: "Assistant", + displayName: "Myra", automatable: false, }, { diff --git a/packages/workflow-catalog/test/catalog.test.ts b/packages/workflow-catalog/test/catalog.test.ts index a97179d46..987870dc4 100644 --- a/packages/workflow-catalog/test/catalog.test.ts +++ b/packages/workflow-catalog/test/catalog.test.ts @@ -26,6 +26,16 @@ describe("workflow catalog", () => { expect(workflowDisplayName("echo")).toBe("Echo"); }); + test("productizes the seeded assistant under the Myra display name", () => { + // The assistant workflow ships in DEFAULT_WORKFLOWS for every personal + // bench. Its catalog display name is the productized label Myra, not + // the generic "Assistant" — the routines picker and seeded asset both + // read it from here. + expect(workflowDisplayName("assistant")).toBe("Myra"); + const entry = WORKFLOW_CATALOG.find((e) => e.assetName === "assistant"); + expect(entry?.displayName).toBe("Myra"); + }); + test("falls back to description, then humanized name — never blank", () => { expect(workflowDisplayName("unknown-flow", " Weekly brief ")).toBe( "Weekly brief", diff --git a/workflows/assistant/package.json b/workflows/assistant/package.json index c57cfa71c..4b91681da 100644 --- a/workflows/assistant/package.json +++ b/workflows/assistant/package.json @@ -8,7 +8,7 @@ "corbits": { "workflow": { "assetName": "assistant", - "displayName": "Assistant", + "displayName": "Myra", "automatable": false } },