{
  "version": 3,
  "sources": ["../../src/app/ai/agents/evals/export/loadEvalExport.ts", "../../src/app/ai/agents/evals2/export/inspectEvalExportArchive.ts", "agent-evals-browser-cli-zip-loader:/Users/alex/Projects/FramerStudio/src/app/vekter/src/app/ai/agents/evals2/export/loadEvalExportArchiveZip.ts", "../../src/app/ai/agents/evals2/export/loadEvalExportArchiveZipData.ts", "../../src/app/ai/agents/evals2/harness/fileUrls.ts", "../../src/app/ai/agents/context/mockDefaultAgentFonts.ts", "../../src/app/ai/agents/evals2/harness/mockFonts.ts", "../../src/app/ai/agents/evals2/harness/runtime.ts", "../../src/app/ai/agents/evals2/harness/fixture.ts"],
  "sourcesContent": ["import type { Agent, AgentLifeCycleHooks } from \"app/ai/agents/Agent.ts\"\nimport { VekterEngine } from \"document/VekterEngine.ts\"\nimport type { EvalExportArchiveSnapshot } from \"./AgentStoreEvalExport.ts\"\nimport type { LoadEvalExportOptions } from \"./loadEvalExportDocument.ts\"\n\nexport async function loadEvalExport(\n\tarchiveSnapshot: EvalExportArchiveSnapshot,\n\toptions: LoadEvalExportOptions = {},\n\tlifecycleHooks?: AgentLifeCycleHooks,\n): Promise<{ engine: VekterEngine; agent: Agent }> {\n\tconst engine = new VekterEngine()\n\n\ttry {\n\t\tconst agent = await engine.stores.agentStore.loadEvalExportArchiveSnapshot(archiveSnapshot, options, lifecycleHooks)\n\t\treturn { engine, agent }\n\t} catch (error) {\n\t\tengine.dispose()\n\t\tthrow error\n\t}\n}\n", "import { BINARY_SCHEMA_VERSION } from \"@framerjs/crdtree2\"\nimport type { EvalExportArchiveSnapshot } from \"app/ai/agents/evals/export/AgentStoreEvalExport.ts\"\nimport type { LoadEvalExportOptions } from \"app/ai/agents/evals/export/loadEvalExportDocument.ts\"\nimport { resolveEvalExportReplayTarget } from \"app/ai/agents/evals/export/loadEvalExportDocument.ts\"\n\nexport interface AgentEvalCliCompatibilitySafe {\n\tstatus: \"safe\"\n}\n\nexport interface AgentEvalCliCompatibilityRisky {\n\tstatus: \"risky\"\n\treasons: readonly string[]\n}\n\nexport interface AgentEvalCliCompatibilityUnsupported {\n\tstatus: \"unsupported\"\n\treasons: readonly string[]\n}\n\nexport type AgentEvalCliCompatibility =\n\t| AgentEvalCliCompatibilitySafe\n\t| AgentEvalCliCompatibilityRisky\n\t| AgentEvalCliCompatibilityUnsupported\n\ninterface InspectEvalExportArchiveOptions {\n\treplayTarget?: LoadEvalExportOptions[\"replayTarget\"]\n}\n\nfunction hasCodeFileChanges(archiveSnapshot: EvalExportArchiveSnapshot): boolean {\n\tfor (const agentSnapshot of archiveSnapshot.manifest.agent.storageSnapshot.agents) {\n\t\tfor (const request of agentSnapshot.history) {\n\t\t\tif (request.codeFileChanges !== undefined && request.codeFileChanges.length > 0) return true\n\t\t}\n\t}\n\treturn false\n}\n\nfunction hasRequestImages(archiveSnapshot: EvalExportArchiveSnapshot): boolean {\n\tfor (const agentSnapshot of archiveSnapshot.manifest.agent.storageSnapshot.agents) {\n\t\tfor (const request of agentSnapshot.history) {\n\t\t\tif (request.images.length > 0) return true\n\t\t}\n\t}\n\treturn false\n}\n\nfunction hasModuleMarkers(archiveSnapshot: EvalExportArchiveSnapshot): boolean {\n\tconst manifestText = JSON.stringify(archiveSnapshot.manifest)\n\tif (manifestText.includes(\"framer.com/m/\")) return true\n\tif (manifestText.includes(\"codeComponentIdentifier\")) return true\n\tif (manifestText.includes(\"moduleId\")) return true\n\n\tfor (const row of archiveSnapshot.manifest.crdt.rows) {\n\t\tconst rowText = JSON.stringify(row)\n\t\tif (rowText.includes(\"framer.com/m/\")) return true\n\t\tif (rowText.includes(\"codeComponentIdentifier\")) return true\n\t\tif (rowText.includes(\"moduleId\")) return true\n\t}\n\treturn false\n}\n\nexport function inspectEvalExportArchive(\n\tarchiveSnapshot: EvalExportArchiveSnapshot,\n\toptions: InspectEvalExportArchiveOptions = {},\n): AgentEvalCliCompatibility {\n\tconst unsupportedReasons: string[] = []\n\tconst riskyReasons: string[] = []\n\n\tif (archiveSnapshot.manifest.envelope.crdtLibVersion !== BINARY_SCHEMA_VERSION) {\n\t\tunsupportedReasons.push(\n\t\t\t`CRDT binary schema ${archiveSnapshot.manifest.envelope.crdtLibVersion} does not match runtime schema ${BINARY_SCHEMA_VERSION}.`,\n\t\t)\n\t}\n\n\ttry {\n\t\tresolveEvalExportReplayTarget(archiveSnapshot.manifest, { replayTarget: options.replayTarget })\n\t} catch (error) {\n\t\tunsupportedReasons.push(error instanceof Error ? error.message : String(error))\n\t}\n\n\tif (hasCodeFileChanges(archiveSnapshot)) {\n\t\triskyReasons.push(\"Export includes code file changes that may require browser module restore paths.\")\n\t}\n\tif (hasRequestImages(archiveSnapshot)) {\n\t\triskyReasons.push(\"Export includes request images that may require browser asset runtime paths.\")\n\t}\n\tif (hasModuleMarkers(archiveSnapshot)) {\n\t\triskyReasons.push(\"Export includes module markers that may require browser module resolution.\")\n\t}\n\n\tif (unsupportedReasons.length > 0) return { status: \"unsupported\", reasons: unsupportedReasons }\n\tif (riskyReasons.length > 0) return { status: \"risky\", reasons: riskyReasons }\n\treturn { status: \"safe\" }\n}\n", "\nexport async function loadEvalExportArchiveZip() {\n\tthrow new Error(\"Eval export zip files are loaded with fetch in browser evals.\")\n}\n\t\t\t\t", "import type {\n\tEvalExportArchiveFile,\n\tEvalExportArchiveSnapshot,\n} from \"app/ai/agents/evals/export/AgentStoreEvalExport.ts\"\nimport type { EvalExportV1 } from \"app/ai/agents/evals/export/evalExportTypes.ts\"\nimport { strFromU8, unzipSync } from \"fflate\"\nimport { isNumber, isObject, isString } from \"utils/typeChecks.ts\"\n\nfunction getObject(value: Record<string, unknown>, key: string): Record<string, unknown> | undefined {\n\tconst child = value[key]\n\treturn isObject(child) ? child : undefined\n}\n\nfunction isEvalExportV1(value: unknown): value is EvalExportV1 {\n\tif (!isObject(value)) return false\n\tconst envelope = getObject(value, \"envelope\")\n\tconst agent = getObject(value, \"agent\")\n\tconst crdt = getObject(value, \"crdt\")\n\tif (!envelope || !agent || !crdt) return false\n\treturn (\n\t\tvalue.kind === \"agent-eval-export\" &&\n\t\tenvelope?.schemaVersion === 1 &&\n\t\tisObject(value.environment) &&\n\t\tisObject(agent.storageSnapshot) &&\n\t\tisString(crdt.baseBinaryPath) &&\n\t\tisNumber(crdt.baseRowIndex) &&\n\t\tArray.isArray(crdt.rows)\n\t)\n}\n\nfunction parseManifest(data: Uint8Array): EvalExportV1 | undefined {\n\tconst parsed: unknown = JSON.parse(strFromU8(data))\n\treturn isEvalExportV1(parsed) ? parsed : undefined\n}\n\nfunction findManifestEntry(entries: Record<string, Uint8Array>): { path: string; manifest: EvalExportV1 } | undefined {\n\tfor (const [filePath, data] of Object.entries(entries)) {\n\t\tif (!filePath.endsWith(\".json\")) continue\n\t\tconst manifest = parseManifest(data)\n\t\tif (manifest) return { path: filePath, manifest }\n\t}\n\treturn undefined\n}\n\nexport function loadEvalExportArchiveZipData(zipData: Uint8Array): EvalExportArchiveSnapshot {\n\tconst entries = unzipSync(zipData)\n\tconst manifestEntry = findManifestEntry(entries)\n\tif (!manifestEntry) {\n\t\tthrow new Error(\"Eval export zip is missing an agent-eval-export JSON manifest.\")\n\t}\n\n\tconst files: EvalExportArchiveFile[] = []\n\tfor (const [filePath, data] of Object.entries(entries)) {\n\t\tif (filePath === manifestEntry.path || filePath.endsWith(\"/\")) continue\n\t\tfiles.push({ path: filePath, data })\n\t}\n\n\treturn {\n\t\tmanifest: manifestEntry.manifest,\n\t\tfiles,\n\t}\n}\n", "export function fileUrlToPath(fileUrl: URL): string {\n\tconst pathname = decodeURIComponent(fileUrl.pathname)\n\tif (fileUrl.host !== \"\") return `//${fileUrl.host}${pathname}`\n\tif (/^\\/[a-z]:/iu.test(pathname)) return pathname.slice(1)\n\treturn pathname\n}\n", "import type { FramerFontDefinition, FramerFontVariant } from \"library/render/fonts/FramerFontSource.ts\"\nimport type { Font, FontCategory, FontFamily, ReadonlyFont } from \"library/render/fonts/types.ts\"\n\ntype FontStyle = NonNullable<Font[\"style\"]>\ntype StaticFontWeight = 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900\n\ninterface MockAgentFont extends Font {\n\tfamily: MockAgentFontFamily\n\tweight: StaticFontWeight\n\tstyle: FontStyle\n\tcategory: FontCategory\n\tvariant: FramerFontVariant\n}\n\ninterface MockAgentFontSeed {\n\tweight: StaticFontWeight\n\tstyle: FontStyle\n\tcategory?: FontCategory\n}\n\ninterface MockAgentFontFamily extends FontFamily {\n\tfonts: MockAgentFont[]\n}\n\nconst fullWeights = [100, 200, 300, 400, 500, 600, 700, 800, 900] as const satisfies readonly StaticFontWeight[]\nconst codeWeights = [300, 400, 500, 600, 700, 800] as const satisfies readonly StaticFontWeight[]\nconst ebGaramondWeights = [400, 500, 600, 700, 800] as const satisfies readonly StaticFontWeight[]\nconst uprightAndItalic = [\"normal\", \"italic\"] as const satisfies readonly FontStyle[]\nconst variantByWeight: Record<StaticFontWeight, Record<FontStyle, FramerFontVariant>> = {\n\t100: { normal: \"Thin\", italic: \"Thin Italic\" },\n\t200: { normal: \"Extra Light\", italic: \"Extra Light Italic\" },\n\t300: { normal: \"Light\", italic: \"Light Italic\" },\n\t400: { normal: \"Regular\", italic: \"Italic\" },\n\t500: { normal: \"Medium\", italic: \"Medium Italic\" },\n\t600: { normal: \"Semibold\", italic: \"Semibold Italic\" },\n\t700: { normal: \"Bold\", italic: \"Bold Italic\" },\n\t800: { normal: \"Extra Bold\", italic: \"Extra Bold Italic\" },\n\t900: { normal: \"Black\", italic: \"Black Italic\" },\n}\n\n// Inter is bundled as a real Framer built-in font (FRAMER_BUILTIN_FONTS), so the mock\n// must keep the same compact selectors (e.g. Inter-SemiBold) to stay compatible with any\n// fixture text already styled in Inter. Other mocked families do not appear in any real\n// fixture's persisted selectors today, so a uniform `FR;Family-Variant` is sufficient.\nconst interSelectorSuffixByVariant: Partial<Record<FramerFontVariant, string>> = {\n\tThin: \"Thin\",\n\t\"Extra Light\": \"ExtraLight\",\n\tLight: \"Light\",\n\tMedium: \"Medium\",\n\tSemibold: \"SemiBold\",\n\tBold: \"Bold\",\n\t\"Extra Bold\": \"ExtraBold\",\n\tBlack: \"Black\",\n\t\"Thin Italic\": \"ThinItalic\",\n\t\"Extra Light Italic\": \"ExtraLightItalic\",\n\t\"Light Italic\": \"LightItalic\",\n\tItalic: \"Italic\",\n\t\"Medium Italic\": \"MediumItalic\",\n\t\"Semibold Italic\": \"SemiBoldItalic\",\n\t\"Bold Italic\": \"BoldItalic\",\n\t\"Extra Bold Italic\": \"ExtraBoldItalic\",\n\t\"Black Italic\": \"BlackItalic\",\n}\n\nfunction makeFontVariants(\n\tweights: readonly StaticFontWeight[],\n\tstyles: readonly FontStyle[],\n\tcategory?: FontCategory,\n): MockAgentFontSeed[] {\n\treturn weights.flatMap(weight => styles.map(style => ({ weight, style, category })))\n}\n\nfunction getVariantName({ weight, style }: MockAgentFontSeed): FramerFontVariant {\n\treturn variantByWeight[weight][style]\n}\n\nfunction makeFontFamily(name: string, fonts: MockAgentFontSeed[]): MockAgentFontFamily {\n\tconst family: MockAgentFontFamily = {\n\t\tname,\n\t\tsource: \"framer\",\n\t\tfonts: [],\n\t}\n\tfamily.fonts = fonts.map((font): MockAgentFont => {\n\t\tconst variant = getVariantName(font)\n\t\treturn {\n\t\t\tfamily,\n\t\t\tvariant,\n\t\t\tselector: getFontSelector(name, variant),\n\t\t\tcssFamilyName: name,\n\t\t\tweight: font.weight,\n\t\t\tstyle: font.style,\n\t\t\tcategory: font.category ?? \"sans-serif\",\n\t\t}\n\t})\n\treturn family\n}\n\nfunction getFontSelector(familyName: string, variant: FramerFontVariant): string {\n\tif (familyName === \"Inter\") {\n\t\tconst suffix = interSelectorSuffixByVariant[variant]\n\t\treturn suffix ? `Inter-${suffix}` : \"Inter\"\n\t}\n\treturn `FR;${familyName}-${variant.replace(/\\s+/g, \"\")}`\n}\n\nconst mockDefaultAgentFontFamilies = [\n\tmakeFontFamily(\"Geist\", makeFontVariants(fullWeights, uprightAndItalic)),\n\tmakeFontFamily(\"Geist Mono\", makeFontVariants(fullWeights, uprightAndItalic, \"monospace\")),\n\tmakeFontFamily(\"Inter\", makeFontVariants(fullWeights, uprightAndItalic)),\n\tmakeFontFamily(\"Instrument Serif\", makeFontVariants([400], uprightAndItalic, \"serif\")),\n\tmakeFontFamily(\"Apfel Grotezk\", makeFontVariants([400, 500, 700, 900], [\"normal\"])),\n\tmakeFontFamily(\"EB Garamond\", makeFontVariants(ebGaramondWeights, uprightAndItalic, \"serif\")),\n\tmakeFontFamily(\"Google Sans Code\", makeFontVariants(codeWeights, uprightAndItalic, \"monospace\")),\n]\n\n/** Prompt/context side: override for `fontStore.getAvailableFonts()`. */\nexport function getMockAgentDefaultAvailableFonts(): ReadonlyFont[] {\n\tconst fonts: ReadonlyFont[] = []\n\tfor (const family of mockDefaultAgentFontFamilies) {\n\t\tfor (const font of family.fonts) {\n\t\t\tfonts.push(font)\n\t\t}\n\t}\n\treturn fonts\n}\n\n/** Resolver side: import data for `fontStore.importFramerFonts()`. */\nexport function getMockAgentDefaultFramerFontDefinitions(): FramerFontDefinition[] {\n\tconst definitions: FramerFontDefinition[] = []\n\tfor (const family of mockDefaultAgentFontFamilies) {\n\t\tfor (const font of family.fonts) {\n\t\t\tdefinitions.push({\n\t\t\t\tuiFamilyName: family.name,\n\t\t\t\tcssFamilyName: family.name,\n\t\t\t\tselector: font.selector,\n\t\t\t\tvariant: font.variant,\n\t\t\t\tcategory: font.category,\n\t\t\t\tstyle: font.style,\n\t\t\t\tweight: font.weight,\n\t\t\t\thasOpenTypeFeatures: false,\n\t\t\t})\n\t\t}\n\t}\n\treturn definitions\n}\n", "import { fontStore as libraryFontStore } from \"library/index.ts\"\nimport { fontStore as renderFontStore } from \"library/render/fonts/fontStore.ts\"\nimport type { FontStore } from \"library/render/fonts/fontStore.ts\"\nimport {\n\tgetMockAgentDefaultAvailableFonts,\n\tgetMockAgentDefaultFramerFontDefinitions,\n} from \"../../context/mockDefaultAgentFonts.ts\"\n\nfunction installMockFonts(fontStore: FontStore): void {\n\tfontStore.importFramerFonts(getMockAgentDefaultFramerFontDefinitions())\n\tfontStore.importAllWebFonts = async () => undefined\n\tfontStore.getAvailableFonts = getMockAgentDefaultAvailableFonts\n}\n\nexport function installAgentEvalMockFontStores(): void {\n\tinstallMockFonts(renderFontStore)\n\tif (libraryFontStore !== renderFontStore) installMockFonts(libraryFontStore)\n}\n", "export function isAgentEvalNodeRuntime(): boolean {\n\treturn typeof process !== \"undefined\" && typeof process.versions?.node === \"string\"\n}\n\nexport function isAgentEvalBrowserRuntime(): boolean {\n\treturn typeof window !== \"undefined\" && !isAgentEvalNodeRuntime()\n}\n", "import { AssetMap } from \"@framerjs/assets\"\nimport { assert, getLogger } from \"@framerjs/shared\"\nimport type { AgentAttachmentImage } from \"app/agent/attachments.ts\"\nimport type { Agent, AgentLifeCycleHooks, AgentTurnOptions } from \"app/ai/agents/Agent.ts\"\nimport type { EvalExportArchiveSnapshot } from \"app/ai/agents/evals/export/AgentStoreEvalExport.ts\"\nimport { loadEvalExport } from \"app/ai/agents/evals/export/loadEvalExport.ts\"\nimport type { LoadEvalExportOptions } from \"app/ai/agents/evals/export/loadEvalExportDocument.ts\"\nimport { VekterEngine } from \"document/VekterEngine.ts\"\nimport { loadSnapshot } from \"document/agentSnapshotMigration/index.ts\"\nimport type { NodeID } from \"document/models/CanvasTree/nodes/NodeID.ts\"\nimport { __clearAssetResolverForTesting, initializeAssetResolver } from \"renderer/getAssetResolver.ts\"\nimport { inspectEvalExportArchive } from \"../export/inspectEvalExportArchive.ts\"\nimport type { AgentEvalCliCompatibility } from \"../export/inspectEvalExportArchive.ts\"\nimport { loadEvalExportArchiveZip } from \"../export/loadEvalExportArchiveZip.ts\"\nimport { loadEvalExportArchiveZipData } from \"../export/loadEvalExportArchiveZipData.ts\"\nimport type { AgentEvalAssetPath } from \"./asset.ts\"\nimport type { AgentEvalDefinition } from \"./definition.ts\"\nimport { fileUrlToPath } from \"./fileUrls.ts\"\nimport { installAgentEvalMockFontStores } from \"./mockFonts.ts\"\nimport { isAgentEvalBrowserRuntime } from \"./runtime.ts\"\nimport type { AgentEvalProgressLogger, AgentEvalRequestInput, AgentEvalRuntime } from \"./types.ts\"\n\nexport interface AgentEvalFixtureLoadOptions {\n\tdefinition: AgentEvalDefinition\n\tlifecycleHooks?: AgentLifeCycleHooks\n\tonProgress?: AgentEvalProgressLogger\n}\n\nexport interface AgentEvalFixtureInspectOptions {\n\tdefinition: AgentEvalDefinition\n}\n\nexport type AgentEvalRuntimeTarget = \"cli\" | \"browser\" | \"auto\"\n\nexport interface AgentEvalFixture {\n\tid: string\n\truntimeTarget: AgentEvalRuntimeTarget\n\tinspectCliCompatibility?(options: AgentEvalFixtureInspectOptions): Promise<AgentEvalCliCompatibility>\n\tload(options: AgentEvalFixtureLoadOptions): Promise<AgentEvalRuntime>\n}\n\ninterface AgentEvalFixtureOptions {\n\truntimeTarget?: AgentEvalRuntimeTarget\n}\n\ntype AgentEvalPromptFixtureValue<T> = T | ((engine: VekterEngine) => T | Promise<T>)\n\ninterface AgentEvalPromptFixtureOptions {\n\tprompt?: string\n\tsetup?: (engine: VekterEngine) => void | Promise<void>\n\timplicitSelection?: AgentEvalPromptFixtureValue<readonly NodeID[]>\n\timages?: AgentEvalPromptFixtureValue<readonly AgentAttachmentImage[]>\n\tturnOptions?: Partial<AgentTurnOptions>\n}\n\ninterface EvalExportReplayOptions {\n\trequestId?: string\n\trequestIds?: readonly string[]\n\tstepIndex?: number\n}\n\ninterface BrowserEvalRuntimeLoaderContext {\n\tarchiveSnapshot: EvalExportArchiveSnapshot\n\tloadOptions: LoadEvalExportOptions\n\tlifecycleHooks: AgentLifeCycleHooks | undefined\n}\n\ninterface BrowserEvalRuntimeLoaderResult {\n\tengine: VekterEngine\n\tagent: Agent\n\tdispose?: () => void | Promise<void>\n\tdisposeEngine?: boolean\n}\n\ntype BrowserEvalRuntimeLoader = (context: BrowserEvalRuntimeLoaderContext) => Promise<BrowserEvalRuntimeLoaderResult>\n\nconst browserEvalRuntimeLoaderState: { current?: BrowserEvalRuntimeLoader } = {}\nconst browserEvalRuntimeLoaderLog = getLogger(\"agent-evals:browser-runtime-loader\")\n\nexport function setBrowserEvalRuntimeLoader(loader: BrowserEvalRuntimeLoader | undefined): VoidFunction {\n\tconst previousLoader = browserEvalRuntimeLoaderState.current\n\tbrowserEvalRuntimeLoaderState.current = loader\n\treturn () => {\n\t\tbrowserEvalRuntimeLoaderState.current = previousLoader\n\t}\n}\n\nasync function loadEvalExportForRuntime({\n\tarchiveSnapshot,\n\tloadOptions,\n\tlifecycleHooks,\n\tbrowserRuntimeLoader,\n}: {\n\tarchiveSnapshot: EvalExportArchiveSnapshot\n\tloadOptions: LoadEvalExportOptions\n\tlifecycleHooks: AgentLifeCycleHooks | undefined\n\tbrowserRuntimeLoader?: BrowserEvalRuntimeLoader\n}): Promise<{\n\tengine: VekterEngine\n\tagent: Agent\n\tdispose?: () => void | Promise<void>\n\tdisposeEngine?: boolean\n}> {\n\tif (!browserRuntimeLoader) {\n\t\tconst runtime = await loadEvalExport(archiveSnapshot, loadOptions, lifecycleHooks)\n\t\treturn { ...runtime, disposeEngine: true }\n\t}\n\n\treturn browserRuntimeLoader({ archiveSnapshot, loadOptions, lifecycleHooks })\n}\nfunction installCliAgentChangeScheduler(engine: VekterEngine): void {\n\tengine.scheduler.scheduleAgentChanges = async (callback: VoidFunction, options?: { addToHistory?: boolean }) => {\n\t\tengine.runningUnderTest = true\n\t\tengine.testing.processFrame(() => callback(), options?.addToHistory === true ? undefined : \"nonUserEvent\")\n\t\tdrainCliAgentFrames(engine)\n\t\tawait Promise.resolve()\n\t\tdrainCliAgentFrames(engine)\n\t}\n\tengine.scheduler.runWhenIdle = task => {\n\t\t// CLI evals do not have the browser frame loop that normally makes the engine idle.\n\t\t// `review_changes` linting yields through runWhenIdle, so run callbacks immediately.\n\t\ttask()\n\t}\n\t// The eval harness asserts the live engine tree after the model turn. Regenerating/persisting\n\t// modules is a browser publishing side effect and can wait on compilation callbacks that the\n\t// Node CLI does not drive, so keep final deferred codegen flushes deterministic no-ops here.\n\tengine.stores.codeGenerationStore.ensureDependencyModulesExist = async () => undefined\n\tengine.stores.codeGenerationStore.updateComponent = async () => false\n}\n\nfunction drainCliAgentFrames(engine: VekterEngine): void {\n\tif (typeof engine.scheduler.isIdle !== \"function\") return\n\n\tfor (let attempt = 0; attempt < 10; attempt += 1) {\n\t\tif (engine.scheduler.isIdle()) return\n\t\tengine.testing.nextFrame(true)\n\t}\n\n\tif (!engine.scheduler.isIdle()) {\n\t\tthrow new Error(\"Agent eval fixture could not drain engine frames.\")\n\t}\n}\n\nfunction initializePromptFixtureEngine(engine: VekterEngine): void {\n\tif (engine.stores.treeStore.mode !== \"crdt\") return\n\n\t// Fresh eval engines do not load through RemoteDocument, but CRDT mode still needs the backing\n\t// store seeded before setup mutates the default tree.\n\tengine.testing.loadCrdtDocument(engine.tree)\n}\n\nasync function resolvePromptFixtureValue<T>(\n\tengine: VekterEngine,\n\tvalue: AgentEvalPromptFixtureValue<readonly T[]> | undefined,\n): Promise<readonly T[]> {\n\tif (value === undefined) return []\n\tif (typeof value === \"function\") return value(engine)\n\treturn value\n}\n\nfunction installCliRuntimeGlobals(): VoidFunction {\n\tinitializeAssetResolver(new AssetMap())\n\n\treturn () => {\n\t\t__clearAssetResolverForTesting()\n\t}\n}\n\nfunction getEvalExportReplayRequestId(options: EvalExportReplayOptions): string | undefined {\n\tconst requestIds = options.requestIds\n\tif (requestIds === undefined) return options.requestId\n\n\tconst [firstRequestId] = requestIds\n\tassert(firstRequestId !== undefined, \"requestIds must contain at least one request id.\")\n\tassert(\n\t\toptions.requestId === undefined || options.requestId === firstRequestId,\n\t\t\"requestId must match the first requestIds entry when both are provided.\",\n\t)\n\treturn firstRequestId\n}\n\nfunction getEvalExportFollowUpRequestInputs(\n\tarchiveSnapshot: EvalExportArchiveSnapshot,\n\trequestIds: readonly string[] | undefined,\n): readonly AgentEvalRequestInput[] | undefined {\n\tif (requestIds === undefined || requestIds.length <= 1) return undefined\n\n\tconst loadedSnapshot = loadSnapshot(archiveSnapshot.manifest.agent.storageSnapshot)\n\tassert(loadedSnapshot, \"Eval export agent snapshot failed to parse or migrate.\")\n\tconst agentSnapshot =\n\t\tloadedSnapshot.snapshot.agents.find(candidate => candidate.id === loadedSnapshot.snapshot.activeChatAgentId) ??\n\t\tloadedSnapshot.snapshot.agents[0]\n\tassert(agentSnapshot, \"Eval export is missing its agent snapshot.\")\n\n\tconst followUpRequests: AgentEvalRequestInput[] = []\n\tfor (const requestId of requestIds.slice(1)) {\n\t\tconst request = agentSnapshot.history.find(candidate => candidate.id === requestId)\n\t\tassert(request, \"Requested follow-up request was not found in the eval export history.\", requestId)\n\t\tfollowUpRequests.push({\n\t\t\tparts: request.parts,\n\t\t\timplicitSelection: request.selection ?? [],\n\t\t\timages: request.images ?? [],\n\t\t\tfiles: request.files ?? [],\n\t\t})\n\t}\n\treturn followUpRequests\n}\n\nfunction mapStepIndexToEvalExportReplayTarget(options: EvalExportReplayOptions): LoadEvalExportOptions[\"replayTarget\"] {\n\treturn {\n\t\trequestId: getEvalExportReplayRequestId(options),\n\t\tincludedStepCount: options.stepIndex ?? 0,\n\t}\n}\n\nfunction isAbsoluteUrl(value: string): boolean {\n\ttry {\n\t\tnew URL(value)\n\t\treturn true\n\t} catch {\n\t\treturn false\n\t}\n}\n\nfunction isAbsoluteFilePath(value: string): boolean {\n\treturn value.startsWith(\"/\") || /^[a-z]:[\\\\/]/iu.test(value) || value.startsWith(\"\\\\\\\\\")\n}\n\n/** Returns absolute fixture zip paths as-is, or resolves relative paths from the eval definition file. */\nfunction resolveEvalExportZipPath(definition: AgentEvalDefinition, zipPath: string | URL): string | URL {\n\tconst resolvedZipPath = zipPath\n\tif (resolvedZipPath instanceof URL) return resolvedZipPath\n\tif (isAbsoluteFilePath(resolvedZipPath) || isAbsoluteUrl(resolvedZipPath)) return resolvedZipPath\n\n\tconst sourceModuleUrl = new URL(definition.sourceFile, `file://${process.cwd()}/`)\n\tconst assetUrl = new URL(resolvedZipPath, sourceModuleUrl)\n\tif (assetUrl.protocol !== \"file:\") return assetUrl.href\n\treturn fileUrlToPath(assetUrl)\n}\n\nfunction shouldUseCliExportRuntime(options: AgentEvalFixtureOptions): boolean {\n\treturn options.runtimeTarget === \"cli\" || (options.runtimeTarget === undefined && !isAgentEvalBrowserRuntime())\n}\n\nexport function createEvalExportFixture(\n\tid: string,\n\tarchiveSnapshot: EvalExportArchiveSnapshot,\n\toptions: AgentEvalFixtureOptions = {},\n): AgentEvalFixture {\n\treturn {\n\t\tid,\n\t\truntimeTarget: options.runtimeTarget ?? \"auto\",\n\t\tinspectCliCompatibility: async ({ definition }) =>\n\t\t\tinspectEvalExportArchive(archiveSnapshot, {\n\t\t\t\treplayTarget: mapStepIndexToEvalExportReplayTarget(definition.options),\n\t\t\t}),\n\t\tload: async ({ definition, lifecycleHooks, onProgress }) => {\n\t\t\tconst isBrowserRuntime = isAgentEvalBrowserRuntime()\n\t\t\tconst replayTarget = mapStepIndexToEvalExportReplayTarget(definition.options)\n\t\t\tconst useCliRuntime = shouldUseCliExportRuntime(options)\n\t\t\tconst browserRuntimeLoader =\n\t\t\t\t!useCliRuntime && isBrowserRuntime ? browserEvalRuntimeLoaderState.current : undefined\n\t\t\tconst disposeCliRuntimeGlobals = useCliRuntime && !isBrowserRuntime ? installCliRuntimeGlobals() : undefined\n\t\t\tonProgress?.(`fixture ${id}: export load start`)\n\t\t\tlet disposeRuntime: (() => void | Promise<void>) | undefined\n\n\t\t\ttry {\n\t\t\t\tconst loadOptions = {\n\t\t\t\t\treplayTarget,\n\t\t\t\t\t// CLI export replay engines are detached from the canvas sandbox, but browser evals\n\t\t\t\t\t// can evaluate modules through the sandbox like the app runtime.\n\t\t\t\t\texternalModuleEvaluationMode: useCliRuntime ? (\"noop\" as const) : (\"sandbox\" as const),\n\t\t\t\t}\n\t\t\t\tif (browserRuntimeLoader) onProgress?.(`fixture ${id}: browser runtime load start`)\n\t\t\t\tconst {\n\t\t\t\t\tengine,\n\t\t\t\t\tagent,\n\t\t\t\t\tdispose: loadedDispose,\n\t\t\t\t\tdisposeEngine = true,\n\t\t\t\t} = await loadEvalExportForRuntime({\n\t\t\t\t\tarchiveSnapshot,\n\t\t\t\t\tloadOptions,\n\t\t\t\t\tlifecycleHooks,\n\t\t\t\t\tbrowserRuntimeLoader,\n\t\t\t\t})\n\t\t\t\tdisposeRuntime = loadedDispose\n\t\t\t\tif (browserRuntimeLoader) onProgress?.(`fixture ${id}: browser runtime load complete`)\n\n\t\t\t\tif (!useCliRuntime && isBrowserRuntime) {\n\t\t\t\t\tonProgress?.(`fixture ${id}: browser dependency modules start`)\n\t\t\t\t\tawait engine.stores.codeGenerationStore.ensureDependencyModulesExist()\n\t\t\t\t\tonProgress?.(`fixture ${id}: browser dependency modules complete`)\n\t\t\t\t}\n\n\t\t\t\tif (useCliRuntime) {\n\t\t\t\t\tif (!isBrowserRuntime) installAgentEvalMockFontStores()\n\t\t\t\t\t// CLI evals do not have a browser frame loop to drain runBeforeNextFrame callbacks.\n\t\t\t\t\tinstallCliAgentChangeScheduler(engine)\n\t\t\t\t}\n\t\t\t\tonProgress?.(`fixture ${id}: export load complete`)\n\t\t\t\treturn {\n\t\t\t\t\tengine,\n\t\t\t\t\tagent,\n\t\t\t\t\treplayTarget,\n\t\t\t\t\treplayRequestStartIndex:\n\t\t\t\t\t\tdefinition.options.requestIds === undefined ? undefined : agent.chatMessages.length - 1,\n\t\t\t\t\tfollowUpRequests: getEvalExportFollowUpRequestInputs(archiveSnapshot, definition.options.requestIds),\n\t\t\t\t\tdispose: async () => {\n\t\t\t\t\t\tawait disposeRuntime?.()\n\t\t\t\t\t\tif (disposeEngine) engine.dispose()\n\t\t\t\t\t\tdisposeCliRuntimeGlobals?.()\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tawait disposeRuntime?.()\n\t\t\t\t} catch (disposeError) {\n\t\t\t\t\tbrowserEvalRuntimeLoaderLog.error(\"fixture runtime dispose failed\", disposeError)\n\t\t\t\t}\n\t\t\t\tdisposeCliRuntimeGlobals?.()\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\t}\n}\n\nexport function createEvalExportZipFixture(\n\tid: string,\n\tzipPath: AgentEvalAssetPath,\n\tfixtureOptions: AgentEvalFixtureOptions = {},\n): AgentEvalFixture {\n\tconst loadArchiveSnapshot = async (definition: AgentEvalDefinition) => {\n\t\tif (isAgentEvalBrowserRuntime()) {\n\t\t\t// Browser eval assets are resolved by `agentEvalAsset` through the generated manifest.\n\t\t\tconst response = await fetch(zipPath)\n\t\t\tif (!response.ok) throw new Error(`Could not load eval export archive: ${response.status} ${response.statusText}`)\n\t\t\treturn loadEvalExportArchiveZipData(new Uint8Array(await response.arrayBuffer()))\n\t\t}\n\n\t\tconst resolvedZipPath = resolveEvalExportZipPath(definition, zipPath)\n\t\treturn loadEvalExportArchiveZip(String(resolvedZipPath))\n\t}\n\n\treturn {\n\t\tid,\n\t\truntimeTarget: fixtureOptions.runtimeTarget ?? \"auto\",\n\t\tinspectCliCompatibility: async inspectOptions => {\n\t\t\tconst archiveSnapshot = await loadArchiveSnapshot(inspectOptions.definition)\n\t\t\treturn inspectEvalExportArchive(archiveSnapshot, {\n\t\t\t\treplayTarget: mapStepIndexToEvalExportReplayTarget(inspectOptions.definition.options),\n\t\t\t})\n\t\t},\n\t\tload: async options => {\n\t\t\toptions.onProgress?.(`fixture ${id}: zip load start`)\n\t\t\tconst archiveSnapshot = await loadArchiveSnapshot(options.definition)\n\t\t\toptions.onProgress?.(`fixture ${id}: zip load complete`)\n\t\t\treturn createEvalExportFixture(id, archiveSnapshot, fixtureOptions).load(options)\n\t\t},\n\t}\n}\n\nexport function createPromptAgentFixture(id: string, options: AgentEvalPromptFixtureOptions = {}): AgentEvalFixture {\n\treturn {\n\t\tid,\n\t\truntimeTarget: \"cli\",\n\t\tload: async ({ lifecycleHooks, onProgress }) => {\n\t\t\tconst isBrowserRuntime = isAgentEvalBrowserRuntime()\n\t\t\t// `installCliRuntimeGlobals` swaps in an empty asset resolver, which is right in Node\n\t\t\t// but would clobber the live resolver in the browser \u2014 only install it outside the browser.\n\t\t\tconst useCliRuntimeGlobals = !isBrowserRuntime\n\t\t\tconst disposeCliRuntimeGlobals = useCliRuntimeGlobals ? installCliRuntimeGlobals() : undefined\n\t\t\tonProgress?.(`fixture ${id}: engine create start`)\n\t\t\tconst engine = new VekterEngine()\n\t\t\tengine.runningUnderTest = true\n\t\t\tif (!isBrowserRuntime) installAgentEvalMockFontStores()\n\t\t\tengine.stores.agentStore.enterEvaluationsMode()\n\t\t\tengine.stores.chromeStore.enableDetachedEditableMode()\n\t\t\tonProgress?.(`fixture ${id}: engine create complete`)\n\t\t\ttry {\n\t\t\t\tinitializePromptFixtureEngine(engine)\n\t\t\t\tonProgress?.(`fixture ${id}: setup start`)\n\t\t\t\tawait engine.testing.processFrame(() => options.setup?.(engine), \"nonUserEvent\")\n\t\t\t\tonProgress?.(`fixture ${id}: setup complete`)\n\t\t\t\tconst implicitSelection = await resolvePromptFixtureValue(engine, options.implicitSelection)\n\t\t\t\tconst images = await resolvePromptFixtureValue(engine, options.images)\n\t\t\t\t// The engine is detached in either runtime \u2014 no canvas sandbox, no React renderer \u2014\n\t\t\t\t// so nothing drives the frame loop. Always install the shim that drives frames inline;\n\t\t\t\t// without it scheduleAgentChanges/runWhenIdle stall once `runningUnderTest` is set.\n\t\t\t\tinstallCliAgentChangeScheduler(engine)\n\t\t\t\tconst agent = engine.stores.agentStore.create(\n\t\t\t\t\t{\n\t\t\t\t\t\tscopeId: engine.stores.scopeStore.active.id,\n\t\t\t\t\t},\n\t\t\t\t\tlifecycleHooks,\n\t\t\t\t)\n\t\t\t\tonProgress?.(`fixture ${id}: agent create complete`)\n\t\t\t\treturn {\n\t\t\t\t\tengine,\n\t\t\t\t\tagent,\n\t\t\t\t\tprompt: options.prompt,\n\t\t\t\t\timplicitSelection,\n\t\t\t\t\timages,\n\t\t\t\t\tturnOptions: options.turnOptions,\n\t\t\t\t\tdispose: () => {\n\t\t\t\t\t\tengine.dispose()\n\t\t\t\t\t\tdisposeCliRuntimeGlobals?.()\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tengine.dispose()\n\t\t\t\tdisposeCliRuntimeGlobals?.()\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\t}\n}\n\nexport const testing = {\n\tresolveEvalExportZipPath,\n}\n"],
  "mappings": "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",
  "names": ["fontStore"]
}
