{
  "version": 3,
  "sources": ["../../src/app/ai/agents/evals2/scenarios/cms/cmsMoveItems.eval.ts"],
  "sourcesContent": ["import { assert } from \"@framerjs/shared\"\nimport { ASK_CLARIFICATION_TOOL_NAME, SCRIPT_TOOL_NAME } from \"app/ai/agents/tools/toolNames.ts\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport { createContentManagementNodeIfNeeded } from \"document/components/chrome/contentManagement/utils/createContentManagementNodeIfNeeded.ts\"\nimport { createVariable } from \"document/components/chrome/properties/utils/createVariable.ts\"\nimport { CollectionItemNode, CollectionNode } from \"document/models/CanvasTree/index.ts\"\nimport { ControlType } from \"library/index.ts\"\nimport { createPromptAgentFixture } from \"../../harness/fixture.ts\"\nimport { getCollectionItemsById, getCollectionVariableById } from \"./cmsEvalUtils.ts\"\n\nconst podcastsCollectionId = \"podcasts_move\"\nconst landingPagesCollectionId = \"landing_pages_move\"\n\nconst podcastShowNameFieldId = \"podcast_show_name_move\"\nconst podcastAudienceTypeFieldId = \"podcast_audience_type_move\"\nconst podcastDiscountFieldId = \"podcast_discount_move\"\nconst podcastCouponCodeFieldId = \"podcast_coupon_code_move\"\nconst podcastExtraInstructionsFieldId = \"podcast_extra_instructions_move\"\nconst podcastSlugFieldId = \"podcast_slug_move\"\n\nconst landingPartnerNameFieldId = \"landing_partner_name_move\"\nconst landingDealDetailsFieldId = \"landing_deal_details_move\"\nconst landingCouponFieldId = \"landing_coupon_move\"\nconst landingSlugFieldId = \"landing_slug_move\"\n\nconst defaultPodcastDiscount = \"30% off an annual Pro plan\"\n\nconst podcastItems: ReadonlyArray<{\n\tid: string\n\tshowName: string\n\tcoupon: string\n\tslug: string\n\tdiscount?: string\n}> = [\n\t{ id: \"podcast_techcrunch_move\", showName: \"TechCrunch\", coupon: \"TCDAILY\", slug: \"tcdaily\" },\n\t{\n\t\tid: \"podcast_start_here_move\",\n\t\tshowName: \"Start Here\",\n\t\tcoupon: \"START\",\n\t\tslug: \"start\",\n\t\tdiscount: defaultPodcastDiscount,\n\t},\n\t{\n\t\tid: \"podcast_lenny_move\",\n\t\tshowName: \"Lenny\",\n\t\tcoupon: \"LENNY\",\n\t\tslug: \"lenny\",\n\t\tdiscount: \"a free year of Framer Pro ($360 value)\",\n\t},\n]\n\nfunction findDestinationItemByPartnerName(engine: VekterEngine, partnerName: string): CollectionItemNode {\n\tconst item = getCollectionItemsById(engine, landingPagesCollectionId).find(\n\t\titem => item.getControlProp(landingPartnerNameFieldId)?.value === partnerName,\n\t)\n\tassert(item, `Expected destination item '${partnerName}' to exist.`)\n\treturn item\n}\n\nfunction getMovedPodcastFieldValues(engine: VekterEngine): ReadonlyArray<{\n\tshowName: string\n\tcoupon: unknown\n\tslug: unknown\n\tdealDetails: unknown\n}> {\n\tconst dealDetailsVariable = getCollectionVariableById(engine, landingPagesCollectionId, \"Deal details\")\n\tconst slugVariable = getCollectionVariableById(engine, landingPagesCollectionId, \"Slug\")\n\tconst couponVariable = getCollectionVariableById(engine, landingPagesCollectionId, \"Coupon\")\n\n\treturn podcastItems.map(podcast => {\n\t\tconst item = findDestinationItemByPartnerName(engine, podcast.showName)\n\t\treturn {\n\t\t\tshowName: podcast.showName,\n\t\t\tcoupon: item.getControlProp(couponVariable.id)?.value,\n\t\t\tslug: item.getControlProp(slugVariable.id)?.value,\n\t\t\tdealDetails: item.getControlProp(dealDetailsVariable.id)?.value,\n\t\t}\n\t})\n}\n\nfunction setupMoveBetweenCollections(engine: VekterEngine): void {\n\tconst podcastShowName = createVariable(\n\t\t{ id: podcastShowNameFieldId, type: ControlType.String, name: \"Show Name\", initialValue: \"\" },\n\t\t\"collection\",\n\t)\n\tconst podcastAudienceType = createVariable(\n\t\t{\n\t\t\tid: podcastAudienceTypeFieldId,\n\t\t\ttype: ControlType.String,\n\t\t\tname: \"Audience type\",\n\t\t\tinitialValue: \"listeners\",\n\t\t},\n\t\t\"collection\",\n\t)\n\tconst podcastDiscount = createVariable(\n\t\t{\n\t\t\tid: podcastDiscountFieldId,\n\t\t\ttype: ControlType.String,\n\t\t\tname: \"Discount\",\n\t\t\tinitialValue: defaultPodcastDiscount,\n\t\t},\n\t\t\"collection\",\n\t)\n\tconst podcastCouponCode = createVariable(\n\t\t{ id: podcastCouponCodeFieldId, type: ControlType.String, name: \"Coupon Code\", initialValue: \"\" },\n\t\t\"collection\",\n\t)\n\tconst podcastExtraInstructions = createVariable(\n\t\t{\n\t\t\tid: podcastExtraInstructionsFieldId,\n\t\t\ttype: ControlType.RichText,\n\t\t\tname: \"Extra Instructions\",\n\t\t\tinitialValue: \"<p>Skip this field during the move.</p>\",\n\t\t},\n\t\t\"collection\",\n\t)\n\tconst podcastSlug = createVariable(\n\t\t{\n\t\t\tid: podcastSlugFieldId,\n\t\t\ttype: \"slug\",\n\t\t\tname: \"Slug\",\n\t\t\tinitialValue: \"\",\n\t\t\tassociatedStringVariable: podcastShowNameFieldId,\n\t\t},\n\t\t\"collection\",\n\t)\n\tconst podcastsCollection = new CollectionNode({\n\t\tid: podcastsCollectionId,\n\t\tname: \"Podcasts\",\n\t\tvariables: [\n\t\t\tpodcastShowName,\n\t\t\tpodcastAudienceType,\n\t\t\tpodcastDiscount,\n\t\t\tpodcastCouponCode,\n\t\t\tpodcastExtraInstructions,\n\t\t\tpodcastSlug,\n\t\t],\n\t})\n\n\tconst landingPartnerName = createVariable(\n\t\t{ id: landingPartnerNameFieldId, type: ControlType.String, name: \"Partner Name\", initialValue: \"\" },\n\t\t\"collection\",\n\t)\n\tconst landingDealDetails = createVariable(\n\t\t{ id: landingDealDetailsFieldId, type: ControlType.String, name: \"Deal details\", initialValue: \"\" },\n\t\t\"collection\",\n\t)\n\tconst landingCoupon = createVariable(\n\t\t{ id: landingCouponFieldId, type: ControlType.String, name: \"Coupon\", initialValue: \"\" },\n\t\t\"collection\",\n\t)\n\tconst landingSlug = createVariable(\n\t\t{\n\t\t\tid: landingSlugFieldId,\n\t\t\ttype: \"slug\",\n\t\t\tname: \"Slug\",\n\t\t\tinitialValue: \"\",\n\t\t\tassociatedStringVariable: landingPartnerNameFieldId,\n\t\t},\n\t\t\"collection\",\n\t)\n\tconst landingPagesCollection = new CollectionNode({\n\t\tid: landingPagesCollectionId,\n\t\tname: \"Landing Pages\",\n\t\tvariables: [landingPartnerName, landingDealDetails, landingCoupon, landingSlug],\n\t})\n\n\tengine.testing.processFrame(() => {\n\t\tconst contentManagementNode = createContentManagementNodeIfNeeded(engine.tree)\n\t\tengine.tree.insertNode(podcastsCollection, contentManagementNode.id)\n\t\tengine.tree.insertNode(landingPagesCollection, contentManagementNode.id)\n\n\t\tfor (const podcast of podcastItems) {\n\t\t\tconst item = CollectionItemNode.create({ id: podcast.id })\n\t\t\tengine.tree.insertNode(item, podcastsCollection.id)\n\t\t\titem.setControlProp(podcastShowNameFieldId, { type: ControlType.String, value: podcast.showName })\n\t\t\titem.setControlProp(podcastCouponCodeFieldId, { type: ControlType.String, value: podcast.coupon })\n\t\t\titem.setControlProp(podcastSlugFieldId, { type: ControlType.String, value: podcast.slug })\n\t\t\tif (podcast.discount !== undefined) {\n\t\t\t\titem.setControlProp(podcastDiscountFieldId, { type: ControlType.String, value: podcast.discount })\n\t\t\t}\n\t\t}\n\t})\n}\n\nevaluation(\n\t\"CMS: Move Items Between Collections\",\n\tcreatePromptAgentFixture(\"cms-move-items-between-collections-explicit-mapping\", {\n\t\tprompt:\n\t\t\t\"Move all Podcasts CMS items to the Landing Pages collection. Map Show Name to Partner Name, \" +\n\t\t\t\"Discount to Deal details, Coupon Code to Coupon. Skip Audience type and Extra Instructions. \" +\n\t\t\t\"Preserve Discount values even when they come from the Podcasts field default, then delete the original Podcasts items.\",\n\t\tsetup: setupMoveBetweenCollections,\n\t}),\n\t{\n\t\tid: \"cms-move-items-between-collections-explicit-mapping\",\n\t\tmaxSteps: 8,\n\t},\n\t({ engine, report, tools }) => {\n\t\tconst dealDetailsVariable = getCollectionVariableById(engine, landingPagesCollectionId, \"Deal details\")\n\t\tconst slugVariable = getCollectionVariableById(engine, landingPagesCollectionId, \"Slug\")\n\t\tconst couponVariable = getCollectionVariableById(engine, landingPagesCollectionId, \"Coupon\")\n\n\t\treport.correctness.scored(\"no command errors\", () => {\n\t\t\texpect(tools.commandErrors()).toHaveLength(0)\n\t\t})\n\t\treport.correctness.required(\"moves every item to Landing Pages\", () => {\n\t\t\texpect(getCollectionItemsById(engine, podcastsCollectionId)).toHaveLength(0)\n\t\t\texpect(getCollectionItemsById(engine, landingPagesCollectionId)).toHaveLength(podcastItems.length)\n\t\t})\n\t\treport.correctness.required(\"ports mapped values to Landing Pages\", () => {\n\t\t\texpect(getMovedPodcastFieldValues(engine)).toEqual(\n\t\t\t\tpodcastItems.map(podcast => ({\n\t\t\t\t\tshowName: podcast.showName,\n\t\t\t\t\tcoupon: podcast.coupon,\n\t\t\t\t\tslug: podcast.slug,\n\t\t\t\t\tdealDetails: podcast.discount ?? defaultPodcastDiscount,\n\t\t\t\t})),\n\t\t\t)\n\t\t})\n\t\treport.correctness.each(\"ports mapped fields\", podcastItems, podcast => {\n\t\t\tconst item = findDestinationItemByPartnerName(engine, podcast.showName)\n\t\t\texpect(item.getControlProp(couponVariable.id)?.value).toBe(podcast.coupon)\n\t\t\texpect(item.getControlProp(slugVariable.id)?.value).toBe(podcast.slug)\n\t\t})\n\t\treport.correctness.each(\"ports explicit and default discount values\", podcastItems, podcast => {\n\t\t\tconst item = findDestinationItemByPartnerName(engine, podcast.showName)\n\t\t\texpect(item.getControlProp(dealDetailsVariable.id)?.value).toBe(podcast.discount ?? defaultPodcastDiscount)\n\t\t})\n\t\treport.efficiency.diagnostic(\"does not ask for clarification when mapping is explicit\", () => {\n\t\t\texpect(tools.calls(ASK_CLARIFICATION_TOOL_NAME)).toHaveLength(0)\n\t\t})\n\t\treport.efficiency.scored(\"uses script for the bulk move\", () => {\n\t\t\texpect(tools.calls(SCRIPT_TOOL_NAME).length).toBeGreaterThan(0)\n\t\t})\n\t\treport.efficiency.scored(\"uses separate scripts to move and verify\", () => {\n\t\t\texpect(tools.calls(SCRIPT_TOOL_NAME).length).toBeGreaterThanOrEqual(2)\n\t\t})\n\t},\n)\n\nevaluation(\n\t\"CMS: Ask Clarification Before Ambiguous Collection Move\",\n\tcreatePromptAgentFixture(\"cms-move-items-between-collections-asks-clarification\", {\n\t\tprompt: \"Move all Podcasts CMS items to the Landing Pages collection.\",\n\t\tsetup: setupMoveBetweenCollections,\n\t}),\n\t{\n\t\tid: \"cms-move-items-between-collections-asks-clarification\",\n\t\tmaxSteps: 3,\n\t},\n\t({ engine, report, tools }) => {\n\t\treport.correctness.required(\"asks for clarification before moving items\", () => {\n\t\t\texpect(tools.calls(ASK_CLARIFICATION_TOOL_NAME)).toHaveLength(1)\n\t\t})\n\t\treport.correctness.scored(\"asks a clarification question about how to proceed\", () => {\n\t\t\texpect(tools.clarificationQuestions()[0]?.questions.length).toBeGreaterThan(0)\n\t\t})\n\t\treport.correctness.scored(\"does not move items before the mapping is clear\", () => {\n\t\t\texpect(getCollectionItemsById(engine, podcastsCollectionId)).toHaveLength(podcastItems.length)\n\t\t\texpect(getCollectionItemsById(engine, landingPagesCollectionId)).toHaveLength(0)\n\t\t})\n\t\treport.efficiency.scored(\"does not apply changes before clarification\", () => {\n\t\t\texpect(tools.reviewChangesResults()).toHaveLength(0)\n\t\t})\n\t},\n)\n"],
  "mappings": "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",
  "names": ["item"]
}
