{
  "version": 3,
  "sources": ["../../src/app/ai/agents/evals2/scenarios/richText/formatRichText.eval.ts"],
  "sourcesContent": ["import type { NodeID } from \"document/models/CanvasTree/nodes/NodeID.ts\"\nimport { agentEvalAsset } from \"../../harness/asset.ts\"\nimport { createEvalExportZipFixture } from \"../../harness/fixture.ts\"\nimport { getRichText } from \"../helpers.ts\"\nimport { getInlineWordStyles } from \"./helpers.ts\"\n\nconst id = \"rich-text-format-rich-text\"\n\n/**\n * On the canvas we have a rich text node with a couple of sentences.\n * Prompt: `Make \"invisible\" italic and \"itself\" bold. Underline hierarchy.`\n */\nconst fixture = createEvalExportZipFixture(id, agentEvalAsset(\"./formatRichText.fixture.zip\"), {\n\truntimeTarget: \"cli\",\n})\n\nevaluation(\n\t\"Rich Text: Format Rich Text\",\n\tfixture,\n\t{ id, maxSteps: 3, stopWhenPassed: true },\n\t({ engine, report, tools }) => {\n\t\ttools.reportReplayChecks(report)\n\n\t\tconst richTextNodeId: NodeID = \"AW3NvtebW\"\n\t\tconst richText = getRichText(engine, richTextNodeId)\n\t\tconst wordStyles = getInlineWordStyles(richText)\n\n\t\treport.functionality.required(\"preserves the original copy\", () => {\n\t\t\tconst existingText =\n\t\t\t\t\"Good typography is invisible. It creates hierarchy and reading cadence without calling attention to itself.\"\n\t\t\texpect(richText.getTextContent()).toBe(existingText)\n\t\t})\n\n\t\treport.functionality.scored(\"formats invisible as italic\", () => {\n\t\t\tconst styles = wordStyles.get(\"invisible\")\n\t\t\texpect(styles).toBeDefined()\n\t\t\texpect(styles?.italic).toBe(true)\n\t\t\texpect(styles?.bold).toBe(false)\n\t\t\texpect(styles?.underline).toBe(false)\n\t\t})\n\n\t\treport.functionality.scored(\"keeps all text in the Geist font family\", () => {\n\t\t\tconst fontFamilies = Array.from(wordStyles.values(), styles => styles.fontFamily)\n\t\t\texpect(new Set(fontFamilies)).toEqual(new Set([\"Geist\"]))\n\t\t})\n\n\t\treport.functionality.scored(\"formats hierarchy as underline\", () => {\n\t\t\tconst styles = wordStyles.get(\"hierarchy\")\n\t\t\texpect(styles).toBeDefined()\n\t\t\texpect(styles?.underline).toBe(true)\n\t\t\texpect(styles?.bold).toBe(false)\n\t\t\texpect(styles?.italic).toBe(false)\n\t\t})\n\n\t\treport.functionality.scored(\"formats itself as bold\", () => {\n\t\t\tconst styles = wordStyles.get(\"itself\")\n\t\t\texpect(styles).toBeDefined()\n\t\t\texpect(styles?.bold).toBe(true)\n\t\t\texpect(styles?.italic).toBe(false)\n\t\t\texpect(styles?.underline).toBe(false)\n\t\t})\n\n\t\treport.functionality.scored(\"does not format unrelated words\", () => {\n\t\t\tconst unrelatedWords = [\n\t\t\t\t\"Good\",\n\t\t\t\t\"typography\",\n\t\t\t\t\"is\",\n\t\t\t\t\"It\",\n\t\t\t\t\"creates\",\n\t\t\t\t\"and\",\n\t\t\t\t\"reading\",\n\t\t\t\t\"cadence\",\n\t\t\t\t\"without\",\n\t\t\t\t\"calling\",\n\t\t\t\t\"attention\",\n\t\t\t\t\"to\",\n\t\t\t]\n\t\t\tfor (const word of unrelatedWords) {\n\t\t\t\tconst styles = wordStyles.get(word)\n\t\t\t\texpect(styles?.bold).toBeFalsy()\n\t\t\t\texpect(styles?.italic).toBeFalsy()\n\t\t\t\texpect(styles?.underline).toBeFalsy()\n\t\t\t}\n\t\t})\n\t},\n)\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAM,KAAK;AAMX,IAAM,UAAU,2BAA2B,IAAI,eAAe,8BAA8B,GAAG;AAAA,EAC9F,eAAe;AAChB,CAAC;AAED;AAAA,EACC;AAAA,EACA;AAAA,EACA,EAAE,IAAI,UAAU,GAAG,gBAAgB,KAAK;AAAA,EACxC,CAAC,EAAE,QAAQ,QAAQ,MAAM,MAAM;AAC9B,UAAM,mBAAmB,MAAM;AAE/B,UAAM,iBAAyB;AAC/B,UAAM,WAAW,YAAY,QAAQ,cAAc;AACnD,UAAM,aAAa,oBAAoB,QAAQ;AAE/C,WAAO,cAAc,SAAS,+BAA+B,MAAM;AAClE,YAAM,eACL;AACD,aAAO,SAAS,eAAe,CAAC,EAAE,KAAK,YAAY;AAAA,IACpD,CAAC;AAED,WAAO,cAAc,OAAO,+BAA+B,MAAM;AAChE,YAAM,SAAS,WAAW,IAAI,WAAW;AACzC,aAAO,MAAM,EAAE,YAAY;AAC3B,aAAO,QAAQ,MAAM,EAAE,KAAK,IAAI;AAChC,aAAO,QAAQ,IAAI,EAAE,KAAK,KAAK;AAC/B,aAAO,QAAQ,SAAS,EAAE,KAAK,KAAK;AAAA,IACrC,CAAC;AAED,WAAO,cAAc,OAAO,2CAA2C,MAAM;AAC5E,YAAM,eAAe,MAAM,KAAK,WAAW,OAAO,GAAG,YAAU,OAAO,UAAU;AAChF,aAAO,IAAI,IAAI,YAAY,CAAC,EAAE,QAAQ,oBAAI,IAAI,CAAC,OAAO,CAAC,CAAC;AAAA,IACzD,CAAC;AAED,WAAO,cAAc,OAAO,kCAAkC,MAAM;AACnE,YAAM,SAAS,WAAW,IAAI,WAAW;AACzC,aAAO,MAAM,EAAE,YAAY;AAC3B,aAAO,QAAQ,SAAS,EAAE,KAAK,IAAI;AACnC,aAAO,QAAQ,IAAI,EAAE,KAAK,KAAK;AAC/B,aAAO,QAAQ,MAAM,EAAE,KAAK,KAAK;AAAA,IAClC,CAAC;AAED,WAAO,cAAc,OAAO,0BAA0B,MAAM;AAC3D,YAAM,SAAS,WAAW,IAAI,QAAQ;AACtC,aAAO,MAAM,EAAE,YAAY;AAC3B,aAAO,QAAQ,IAAI,EAAE,KAAK,IAAI;AAC9B,aAAO,QAAQ,MAAM,EAAE,KAAK,KAAK;AACjC,aAAO,QAAQ,SAAS,EAAE,KAAK,KAAK;AAAA,IACrC,CAAC;AAED,WAAO,cAAc,OAAO,mCAAmC,MAAM;AACpE,YAAM,iBAAiB;AAAA,QACtB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AACA,iBAAW,QAAQ,gBAAgB;AAClC,cAAM,SAAS,WAAW,IAAI,IAAI;AAClC,eAAO,QAAQ,IAAI,EAAE,UAAU;AAC/B,eAAO,QAAQ,MAAM,EAAE,UAAU;AACjC,eAAO,QAAQ,SAAS,EAAE,UAAU;AAAA,MACrC;AAAA,IACD,CAAC;AAAA,EACF;AACD;",
  "names": []
}
