{
  "version": 3,
  "sources": ["../../src/app/ai/agents/evals2/scenarios/creation.eval.ts"],
  "sourcesContent": ["import { Dictionary } from \"app/dictionary.ts\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport { createRouteSegment } from \"document/components/chrome/Pages/utils/createRouteSegment.ts\"\nimport { createContentManagementNodeIfNeeded } from \"document/components/chrome/contentManagement/utils/createContentManagementNodeIfNeeded.ts\"\nimport { getPrimaryBreakpointProps } from \"document/components/utils/getPrimaryBreakpointProps.ts\"\nimport { CollectionNode, FrameNode, RichTextNode, WebPageNode } from \"document/models/CanvasTree/index.ts\"\nimport { isWebPageNode } from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { ControlType } from \"library/render/types/PropertyControls.ts\"\nimport { ClassDiscriminator } from \"utils/withClassDiscriminator.ts\"\nimport { CommandType } from \"../../dsl.ts\"\nimport {\n\tFONT_SEARCH_QUERY,\n\tICON_SET_DEFINITION_QUERY,\n\tIMPLEMENTATION_GUIDE_FROM_INDEX_QUERY,\n} from \"../../tools/readProjectQueryTypes.ts\"\nimport { ASK_CLARIFICATION_TOOL_NAME, QUERY_IMAGES_TOOL_NAME, REVIEW_CHANGES_TOOL_NAME } from \"../../tools/toolNames.ts\"\nimport { createPromptAgentFixture } from \"../harness/fixture.ts\"\n\ninterface SeedPageOptions {\n\tid: string\n\tname: string\n\tpath?: string\n\tshouldOpen?: boolean\n\tcontent?: {\n\t\tframeName: string\n\t\theadline: string\n\t\tdetail: string\n\t}\n}\n\nasync function setupSeedPages(\n\tengine: VekterEngine,\n\tpages: readonly SeedPageOptions[],\n\tactivePageId: string,\n): Promise<void> {\n\tengine.testing.processFrame(() => {\n\t\tconst shouldReplaceDefaultHomePage = pages.some(options => options.path === \"/\" && options.shouldOpen === true)\n\t\tif (shouldReplaceDefaultHomePage) {\n\t\t\tconst defaultHomePage = engine.tree.get(engine.tree.root.homePageNodeId)\n\t\t\tif (isWebPageNode(defaultHomePage)) {\n\t\t\t\tengine.tree.removeNode(defaultHomePage)\n\t\t\t}\n\t\t}\n\n\t\tfor (const options of pages) {\n\t\t\tconst primaryBreakpoint = new FrameNode({\n\t\t\t\t...getPrimaryBreakpointProps(),\n\t\t\t\tid: `${options.id}-primary`,\n\t\t\t})\n\t\t\tconst page = new WebPageNode({\n\t\t\t\tid: options.id,\n\t\t\t\tname: options.name,\n\t\t\t\tpagePath: options.path,\n\t\t\t\tbaseVariantId: primaryBreakpoint.id,\n\t\t\t})\n\n\t\t\tengine.tree.insertNode(page, engine.tree.root.id)\n\t\t\tengine.tree.insertNode(primaryBreakpoint, page.id)\n\t\t\tif (options.path !== undefined && options.path !== \"/\") {\n\t\t\t\tcreateRouteSegment(engine.tree, engine.componentLoader, page, undefined, options.path)\n\t\t\t}\n\n\t\t\tif (options.content !== undefined) {\n\t\t\t\tconst frame = new FrameNode({\n\t\t\t\t\tid: `${options.id}-style-frame`,\n\t\t\t\t\tname: options.content.frameName,\n\t\t\t\t\twidth: 1200,\n\t\t\t\t\theight: 900,\n\t\t\t\t})\n\t\t\t\tconst copy = new RichTextNode({\n\t\t\t\t\tid: `${options.id}-style-copy`,\n\t\t\t\t\tname: \"Seeded visual direction copy\",\n\t\t\t\t\thtml: `<h1>${options.content.headline}</h1><p>${options.content.detail}</p>`,\n\t\t\t\t})\n\t\t\t\tengine.tree.insertNode(frame, primaryBreakpoint.id)\n\t\t\t\tengine.tree.insertNode(copy, primaryBreakpoint.id)\n\t\t\t}\n\n\t\t\tif (options.shouldOpen === true) {\n\t\t\t\tengine.tree.root.set({ homePageNodeId: page.id })\n\t\t\t}\n\t\t}\n\t\tengine.stores.scopeStore.select(activePageId, { keepHistory: false })\n\t})\n}\n\nasync function setupEditorialHomePage(engine: VekterEngine): Promise<void> {\n\tawait setupSeedPages(\n\t\tengine,\n\t\t[\n\t\t\t{\n\t\t\t\tid: \"creation-editorial-home-page\",\n\t\t\t\tname: Dictionary.Home,\n\t\t\t\tpath: \"/\",\n\t\t\t\tshouldOpen: true,\n\t\t\t\tcontent: {\n\t\t\t\t\tframeName: \"Midnight editorial grid with sparse spacing\",\n\t\t\t\t\theadline: \"Atelier Index\",\n\t\t\t\t\tdetail:\n\t\t\t\t\t\t\"Established visual direction: midnight black backgrounds, warm ivory typography, thin olive rules, asymmetric editorial grid, and spacious minimal pacing.\",\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\t\"creation-editorial-home-page\",\n\t)\n}\n\nevaluation(\n\t\"Creation: Emits Design Plan Before Project Update\",\n\tcreatePromptAgentFixture(\"creation-design-plan\", {\n\t\tprompt:\n\t\t\t\"Design a cool bold editorial hero section. Headline centered in the viewport. Nice text and date details near each corner of the hero. Dark mode. Serif and sans serif mixed.\",\n\t}),\n\t{ id: \"creation-design-plan\", maxSteps: 3, sendTimeoutMs: 120000, stopWhenPassed: true },\n\t({ report, steps, tools }) => {\n\t\tconst designPlans = steps.designPlans()\n\t\tconst firstDesignPlanPosition = steps.firstDesignPlanPosition()\n\t\tconst designPlanText = designPlans.join(\"\\n\").toLowerCase()\n\n\t\treport.correctness.required(\"emits exactly one design plan\", () => {\n\t\t\texpect(designPlans).toHaveLength(1)\n\t\t})\n\t\treport.correctness.scored(\"keeps project updates after design plan\", () => {\n\t\t\texpect(firstDesignPlanPosition).toBeDefined()\n\t\t\tif (firstDesignPlanPosition === undefined) return false\n\t\t\tconst firstProjectMutationPosition = steps.firstProjectMutationPosition()\n\t\t\tif (firstProjectMutationPosition === undefined) return\n\t\t\tsteps.expectBefore(firstDesignPlanPosition, firstProjectMutationPosition)\n\t\t})\n\t\treport.accuracy.scored(\"plans the requested hero layout\", () => {\n\t\t\texpect(designPlanText).toMatch(/hero|full[- ]?(?:viewport|bleed)|viewport-height|single-section|headline/u)\n\t\t})\n\t\treport.accuracy.scored(\"plans the requested dark palette\", () => {\n\t\t\texpect(designPlanText).toMatch(/dark|black|near-black|charcoal|#0[0-9a-f]{5}|#1[0-9a-f]{5}/u)\n\t\t})\n\t\treport.accuracy.scored(\"plans serif typography\", () => {\n\t\t\texpect(designPlanText).toMatch(/serif/u)\n\t\t})\n\t\treport.accuracy.scored(\"plans sans-serif typography\", () => {\n\t\t\texpect(designPlanText).toMatch(/sans|geist|inter|grotesk|geometric/u)\n\t\t})\n\t\treport.efficiency.diagnostic(\"does not ask for clarification on detailed brief\", () => {\n\t\t\texpect(tools.calls(ASK_CLARIFICATION_TOOL_NAME)).toHaveLength(0)\n\t\t})\n\t},\n)\n\nevaluation(\n\t\"Creation: Follows Build Phase Order\",\n\tcreatePromptAgentFixture(\"creation-build-phase-order\", {\n\t\tprompt:\n\t\t\t\"Create a cover page for an architecture magazine. I'm picturing a quiet editorial opening spread where typography carries the page: one centered headline, a short dateline, a thin rule, a dark background, warm ivory type, and lots of breathing room.\",\n\t}),\n\t{ id: \"creation-build-phase-order\", maxSteps: 6, sendTimeoutMs: 120000, stopWhenPassed: true },\n\t({ report, steps, tools }) => {\n\t\tconst designPlans = steps.designPlans()\n\t\tconst firstDesignPlanPosition = steps.firstDesignPlanPosition()\n\t\tconst firstPhase2ResearchPosition = steps.firstReadProjectQueryPosition(\n\t\t\tquery =>\n\t\t\t\tquery.type === FONT_SEARCH_QUERY ||\n\t\t\t\tquery.type === IMPLEMENTATION_GUIDE_FROM_INDEX_QUERY ||\n\t\t\t\tquery.type === ICON_SET_DEFINITION_QUERY,\n\t\t)\n\t\tconst firstProjectMutationPosition = steps.firstProjectMutationPosition()\n\t\tconst firstReviewPosition = steps.firstToolCallPosition(REVIEW_CHANGES_TOOL_NAME)\n\n\t\treport.correctness.scored(\"phase 1 skips clarification for complete creative brief\", () => {\n\t\t\texpect(tools.calls(ASK_CLARIFICATION_TOOL_NAME)).toHaveLength(0)\n\t\t})\n\t\treport.correctness.required(\"phase 2 emits exactly one design plan\", () => {\n\t\t\texpect(designPlans).toHaveLength(1)\n\t\t})\n\t\treport.correctness.scored(\"phase 2 design plan happens before implementation\", () => {\n\t\t\tsteps.expectBefore(firstDesignPlanPosition, firstProjectMutationPosition)\n\t\t})\n\t\treport.correctness.scored(\"phase 2 resources happen before implementation\", () => {\n\t\t\tsteps.expectBefore(firstPhase2ResearchPosition, firstProjectMutationPosition)\n\t\t})\n\t\treport.correctness.scored(\"review happens after an implementation update\", () => {\n\t\t\texpect(firstReviewPosition).toBeDefined()\n\t\t\tsteps.expectBefore(firstProjectMutationPosition, firstReviewPosition)\n\t\t})\n\t\treport.efficiency.scored(\"does not query images for non-image-led page\", () => {\n\t\t\texpect(tools.calls(QUERY_IMAGES_TOOL_NAME)).toHaveLength(0)\n\t\t})\n\t},\n)\n\nevaluation(\n\t\"Creation: Infers Brief From Existing Project Context\",\n\tcreatePromptAgentFixture(\"creation-infers-existing-project-context\", {\n\t\tprompt:\n\t\t\t\"Create a new About page in the same style as the homepage. The About page should introduce the studio and its selected work.\",\n\t\tsetup: setupEditorialHomePage,\n\t}),\n\t{ id: \"creation-project-context-inference\", maxSteps: 3, sendTimeoutMs: 35000, stopWhenPassed: true },\n\t({ report, steps, tools }) => {\n\t\tconst firstSitemapPosition = tools\n\t\t\t.scriptCalls(\n\t\t\t\t\"getNodesOfTypes\",\n\t\t\t\tcall => call.input.types.includes(ClassDiscriminator.WebPageNode) && /\\$path|sitemap|path/u.test(call.script),\n\t\t\t)\n\t\t\t.at(0)?.position\n\t\tconst firstSeededHomepageReadPosition = tools.nodeLookups(\"creation-editorial-home-page\").at(0)?.position\n\n\t\treport.correctness.scored(\"reads sitemap before inspecting project style\", () => {\n\t\t\tsteps.expectBefore(firstSitemapPosition, firstSeededHomepageReadPosition)\n\t\t})\n\t\treport.correctness.required(\"skips clarification when project context resolves the brief\", () => {\n\t\t\texpect(tools.calls(ASK_CLARIFICATION_TOOL_NAME)).toHaveLength(0)\n\t\t})\n\t\treport.correctness.scored(\"does not front-load phase 2 resources before project context\", () => {\n\t\t\texpect(firstSeededHomepageReadPosition).toBeDefined()\n\t\t\tif (firstSeededHomepageReadPosition === undefined) return\n\t\t\texpect(\n\t\t\t\tsteps.hasReadProjectQueryAtOrBefore(\n\t\t\t\t\tfirstSeededHomepageReadPosition,\n\t\t\t\t\tquery => query.type === FONT_SEARCH_QUERY || query.type === IMPLEMENTATION_GUIDE_FROM_INDEX_QUERY,\n\t\t\t\t),\n\t\t\t).toBe(false)\n\t\t})\n\t\treport.accuracy.scored(\"reads seeded homepage style context\", () => {\n\t\t\texpect(\n\t\t\t\ttools.hasNodeLookup(\"creation-editorial-home-page\") ||\n\t\t\t\t\ttools.hasNodeLookup(\"creation-editorial-home-page-style-frame\") ||\n\t\t\t\t\ttools.hasNodeLookup(\"creation-editorial-home-page-style-copy\"),\n\t\t\t).toBe(true)\n\t\t})\n\t},\n)\n\nevaluation(\n\t\"Creation: Handles List Content Resources\",\n\tcreatePromptAgentFixture(\"creation-handles-list-content\", {\n\t\tprompt:\n\t\t\t\"Create a blog index page using the existing Posts CMS collection. I want a tight archive of post cards on a warm ivory canvas, with ink-black text, muted green accents, and enough metadata visible that it feels useful for browsing lots of articles.\",\n\t\tsetup: engine => {\n\t\t\tengine.testing.processFrame(() => {\n\t\t\t\tconst cms = createContentManagementNodeIfNeeded(engine.tree)\n\t\t\t\tconst posts = new CollectionNode({\n\t\t\t\t\tid: \"creation-posts-collection\",\n\t\t\t\t\tname: \"Posts\",\n\t\t\t\t\tvariables: [\n\t\t\t\t\t\t{ id: \"post-title\", name: Dictionary.Title, type: ControlType.String, initialValue: \"\" },\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: \"post-slug\",\n\t\t\t\t\t\t\tname: Dictionary.Slug,\n\t\t\t\t\t\t\ttype: \"slug\",\n\t\t\t\t\t\t\tinitialValue: \"\",\n\t\t\t\t\t\t\tassociatedStringVariable: \"post-title\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ id: \"post-date\", name: \"Date\", type: ControlType.Date, initialValue: \"\" },\n\t\t\t\t\t\t{ id: \"post-image\", name: Dictionary.Image, type: ControlType.Image, initialValue: undefined },\n\t\t\t\t\t],\n\t\t\t\t})\n\t\t\t\tengine.tree.insertNode(posts, cms.id)\n\t\t\t})\n\t\t},\n\t}),\n\t{ id: \"creation-list-content\", maxSteps: 3, sendTimeoutMs: 120000, stopWhenPassed: true },\n\t({ report, steps, tools }) => {\n\t\tconst firstCollectionsPosition = tools\n\t\t\t.scriptCalls(\n\t\t\t\t\"getNodesOfTypes\",\n\t\t\t\tcall =>\n\t\t\t\t\tcall.input.types.includes(ClassDiscriminator.CollectionNode) &&\n\t\t\t\t\t/serialize|\\$itemCount|variables|schema|collection/iu.test(call.script),\n\t\t\t)\n\t\t\t.at(0)?.position\n\t\tconst firstCmsGuidePosition = steps.firstReadProjectQueryPosition(\n\t\t\tquery => query.type === IMPLEMENTATION_GUIDE_FROM_INDEX_QUERY && /cms collection lists/iu.test(query.name),\n\t\t)\n\t\tconst firstProjectMutationPosition = steps.firstProjectMutationPosition()\n\t\tconst cmsGuideQueries = steps.readProjectQueries(\n\t\t\tquery => query.type === IMPLEMENTATION_GUIDE_FROM_INDEX_QUERY && /cms collection lists/iu.test(query.name),\n\t\t)\n\n\t\treport.correctness.required(\"inspects CMS schema for list content\", () => {\n\t\t\texpect(firstCollectionsPosition).toBeDefined()\n\t\t})\n\t\treport.correctness.scored(\"requests CMS collection guide for list content\", () => {\n\t\t\texpect(firstCmsGuidePosition).toBeDefined()\n\t\t})\n\t\treport.correctness.scored(\"does not build during the CMS resource request turn\", () => {\n\t\t\texpect(firstProjectMutationPosition).toBeUndefined()\n\t\t})\n\t\treport.efficiency.diagnostic(\"does not ask for clarification on complete list brief\", () => {\n\t\t\texpect(tools.calls(ASK_CLARIFICATION_TOOL_NAME)).toHaveLength(0)\n\t\t})\n\t\treport.accuracy.scored(\"requests the specific list content guide\", () => {\n\t\t\texpect(cmsGuideQueries).toHaveLength(1)\n\t\t})\n\t},\n)\n\nevaluation(\n\t\"Creation: Routes Existing Page Edit Away From Creation Phases\",\n\tcreatePromptAgentFixture(\"creation-routes-existing-page-edit\", {\n\t\tprompt: \"Apply this direct edit now: change the existing homepage headline text to say Atelier Projects.\",\n\t\tsetup: setupEditorialHomePage,\n\t}),\n\t{ id: \"creation-existing-page-edit-routing\", maxSteps: 4, sendTimeoutMs: 35000, stopWhenPassed: true },\n\t({ commands, report, steps, tools }) => {\n\t\tconst firstDesignPlanPosition = steps.firstDesignPlanPosition()\n\t\tconst firstFontSearchPosition = steps.firstReadProjectQueryPosition(query => query.type === FONT_SEARCH_QUERY)\n\n\t\treport.correctness.scored(\"does not enter creation design-plan phase\", () => {\n\t\t\texpect(firstDesignPlanPosition).toBeUndefined()\n\t\t})\n\t\treport.correctness.scored(\"does not ask creative clarification for direct edit\", () => {\n\t\t\texpect(tools.calls(ASK_CLARIFICATION_TOOL_NAME)).toHaveLength(0)\n\t\t})\n\t\treport.efficiency.diagnostic(\"does not search fonts for edit strategy\", () => {\n\t\t\texpect(firstFontSearchPosition).toBeUndefined()\n\t\t})\n\t\treport.correctness.required(\"applies the direct edit\", () => {\n\t\t\texpect(\n\t\t\t\tcommands.byType(CommandType.Update).some(command => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tcommand.attributes.id.includes(\"creation-editorial-home-page-style-copy\") &&\n\t\t\t\t\t\tcommand.attributes.text === \"Atelier Projects\"\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t).toBe(true)\n\t\t})\n\t},\n)\n"],
  "mappings": "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",
  "names": []
}
