{
  "version": 3,
  "sources": ["../../src/app/ai/agents/evals2/scenarios/shaders/addShader.eval.ts"],
  "sourcesContent": ["import { assert } from \"@framerjs/shared\"\nimport { isShaderNode } from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { ClassDiscriminator } from \"utils/withClassDiscriminator.ts\"\nimport { CommandType, type AddCommandAttributes } from \"../../../dsl.ts\"\nimport { SHADER_DEFINITION_QUERY } from \"../../../tools/readProjectQueryTypes.ts\"\nimport { agentEvalAsset } from \"../../harness/asset.ts\"\nimport { createEvalExportZipFixture } from \"../../harness/fixture.ts\"\n\nconst SHADER_NAME = \"wave-gradient\"\n\ntype ShaderAddCommandAttributes = Extract<AddCommandAttributes, { node: ClassDiscriminator.ShaderNode }>\n\nevaluation(\n\t\"Add Shader\",\n\tcreateEvalExportZipFixture(\"add-shader-export\", agentEvalAsset(\"addShader.fixture.zip\"), {\n\t\truntimeTarget: \"browser\",\n\t}),\n\t{\n\t\tid: \"add-shader\",\n\t\tstepIndex: 0,\n\t\tmaxSteps: 10,\n\t\tstopWhenPassed: true,\n\t},\n\t({ engine, commands, report, tools }) => {\n\t\tconst shaderAddAttributes = commands\n\t\t\t.byType(CommandType.Add)\n\t\t\t.map(command => command.attributes)\n\t\t\t.filter(\n\t\t\t\t(attributes: AddCommandAttributes): attributes is ShaderAddCommandAttributes =>\n\t\t\t\t\tattributes.node === ClassDiscriminator.ShaderNode,\n\t\t\t)\n\n\t\treport.correctness.scored(\"no command errors\", () => {\n\t\t\texpect(tools.commandErrors()).toHaveLength(0)\n\t\t})\n\n\t\treport.correctness.scored(\"adds wave gradient shader correctly the first time\", () => {\n\t\t\texpect(shaderAddAttributes.length).toBe(1)\n\t\t\tconst [shaderAddAttribute] = shaderAddAttributes\n\t\t\tassert(shaderAddAttribute, \"There should be exactly one shader add attribute\")\n\t\t\texpect(shaderAddAttribute.shader).toBe(SHADER_NAME)\n\t\t})\n\n\t\treport.correctness.required(\"creates a shader node on the page\", () => {\n\t\t\tconst page = engine.tree.get(engine.tree.root.homePageNodeId)\n\t\t\tassert(page, \"Home page node is required\")\n\n\t\t\tfor (const node of page.walk()) {\n\t\t\t\tif (isShaderNode(node)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthrow new Error(\"Did not shader node found on the page\")\n\t\t})\n\n\t\treport.correctness.forbidden(\"does not try to change shader type with SET tool\", () => {\n\t\t\tconst shaderSetCommands = commands\n\t\t\t\t.byType(CommandType.Update)\n\t\t\t\t.filter(command => Object.hasOwn(command.attributes, \"shader\"))\n\n\t\t\texpect(shaderSetCommands).toEqual([])\n\t\t})\n\n\t\treport.correctness.scored(\"requests the shader guide\", () => {\n\t\t\texpect(\n\t\t\t\ttools.hasReadProjectQuery(query => query.type === SHADER_DEFINITION_QUERY && query.name === \"wave-gradient\"),\n\t\t\t).toBe(true)\n\t\t})\n\t},\n)\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAM,cAAc;AAIpB;AAAA,EACC;AAAA,EACA,2BAA2B,qBAAqB,eAAe,uBAAuB,GAAG;AAAA,IACxF,eAAe;AAAA,EAChB,CAAC;AAAA,EACD;AAAA,IACC,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,gBAAgB;AAAA,EACjB;AAAA,EACA,CAAC,EAAE,QAAQ,UAAU,QAAQ,MAAM,MAAM;AACxC,UAAM,sBAAsB,SAC1B,oBAAsB,EACtB,IAAI,aAAW,QAAQ,UAAU,EACjC;AAAA,MACA,CAAC,eACA,WAAW;AAAA,IACb;AAED,WAAO,YAAY,OAAO,qBAAqB,MAAM;AACpD,aAAO,MAAM,cAAc,CAAC,EAAE,aAAa,CAAC;AAAA,IAC7C,CAAC;AAED,WAAO,YAAY,OAAO,sDAAsD,MAAM;AACrF,aAAO,oBAAoB,MAAM,EAAE,KAAK,CAAC;AACzC,YAAM,CAAC,kBAAkB,IAAI;AAC7B,aAAO,oBAAoB,kDAAkD;AAC7E,aAAO,mBAAmB,MAAM,EAAE,KAAK,WAAW;AAAA,IACnD,CAAC;AAED,WAAO,YAAY,SAAS,qCAAqC,MAAM;AACtE,YAAM,OAAO,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,cAAc;AAC5D,aAAO,MAAM,4BAA4B;AAEzC,iBAAW,QAAQ,KAAK,KAAK,GAAG;AAC/B,YAAI,aAAa,IAAI,GAAG;AACvB,iBAAO;AAAA,QACR;AAAA,MACD;AAEA,YAAM,IAAI,MAAM,uCAAuC;AAAA,IACxD,CAAC;AAED,WAAO,YAAY,UAAU,oDAAoD,MAAM;AACtF,YAAM,oBAAoB,SACxB,yBAAyB,EACzB,OAAO,aAAW,OAAO,OAAO,QAAQ,YAAY,QAAQ,CAAC;AAE/D,aAAO,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AAAA,IACrC,CAAC;AAED,WAAO,YAAY,OAAO,6BAA6B,MAAM;AAC5D;AAAA,QACC,MAAM,oBAAoB,WAAS,MAAM,SAAS,2BAA2B,MAAM,SAAS,eAAe;AAAA,MAC5G,EAAE,KAAK,IAAI;AAAA,IACZ,CAAC;AAAA,EACF;AACD;",
  "names": []
}
