From c00eef842ea2cd7e66812d11982291b2c531e3d0 Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 05:58:40 +0700 Subject: [PATCH 01/21] Persist self-healing process traces --- .../src/pipeline/collection-agent-runner.ts | 159 ++++++++- backend/src/pipeline/populate-runtime.ts | 321 +++++++++++++++++- backend/src/pipeline/populate-self-healing.ts | 158 ++++++++- backend/test/collection-agent-runner.test.ts | 54 ++- backend/test/populate-self-healing.test.ts | 100 +++++- docs/data-collection-agent-migration-plan.md | 13 + 6 files changed, 787 insertions(+), 18 deletions(-) diff --git a/backend/src/pipeline/collection-agent-runner.ts b/backend/src/pipeline/collection-agent-runner.ts index 9321a06..5c85a4f 100644 --- a/backend/src/pipeline/collection-agent-runner.ts +++ b/backend/src/pipeline/collection-agent-runner.ts @@ -7,9 +7,11 @@ import type { CollectionPopulatePipelineInput, CollectionPopulatePipelineRunner, } from "./populate-collection-runtime.js"; -import type { - PopulateCellValue, - PopulateRuntimeResult, +import { + populateProcessTraceFromSteps, + type PopulateCellValue, + type PopulateRuntimeResult, + type PopulateRuntimeTraceStep, } from "./populate-runtime.js"; type CollectionPipelineModule = { @@ -36,14 +38,27 @@ interface CollectionPipelineOptions { } interface CollectionPipelineResult { + runId?: string; + paths?: { + root?: string; + reportPath?: string; + }; report: { errors?: string[]; dataset_spec?: CollectionDatasetSpec; stats?: CollectionPhaseStats; - initial?: CollectionPhaseStats; + initial?: CollectionPhaseStats & { + search_queries?: string[]; + fetched_urls?: string[]; + failed_urls?: string[]; + }; repair?: { stats?: CollectionPhaseStats; + loops?: CollectionRepairLoopReport[]; }; + search_queries?: string[]; + fetched_urls?: string[]; + failed_urls?: string[]; quality?: { records?: CollectionRecordQuality[]; }; @@ -98,8 +113,18 @@ interface CollectionSourcesReport { } interface CollectionSourceOutcome { + url?: string; + phase?: string; outcome?: string; triage_status?: string; + error?: string; + records_extracted?: number; +} + +interface CollectionRepairLoopReport { + loop_index?: number; + repair_queries?: string[]; + stats?: CollectionPhaseStats; } const AGENT_REQUIRED_TRIAGE_STATUSES = new Set([ @@ -200,6 +225,16 @@ function collectionPipelineResultToPopulateRuntimeResult(input: { ], usage: usageFromPipeline(input.pipeline), metrics: metricsFromReport(input.pipeline.report), + debug: { + capturedRows: [], + capturedSources: [], + selectedRowSource: rows.length > 0 ? "collection_pipeline" : "none", + notes: collectionDebugNotes(input.pipeline.report), + processTrace: collectionProcessTrace({ + pipeline: input.pipeline, + rows, + }), + }, }; } @@ -231,6 +266,122 @@ function capabilityDiagnosticsFromReport(input: { ]; } +function collectionProcessTrace(input: { + pipeline: CollectionPipelineResult; + rows: Array>; +}) { + const report = input.pipeline.report; + const steps: PopulateRuntimeTraceStep[] = []; + + for (const query of report.search_queries ?? report.initial?.search_queries ?? []) { + steps.push({ + kind: "search", + label: "collection-search-query", + status: "succeeded", + input: { query }, + }); + } + + for (const url of report.fetched_urls ?? report.initial?.fetched_urls ?? []) { + steps.push({ + kind: "fetch", + label: "collection-fetched-url", + status: "succeeded", + input: { url }, + }); + } + + for (const url of report.failed_urls ?? report.initial?.failed_urls ?? []) { + steps.push({ + kind: "fetch", + label: "collection-failed-url", + status: "failed", + input: { url }, + }); + } + + for (const loop of report.repair?.loops ?? []) { + for (const query of loop.repair_queries ?? []) { + steps.push({ + kind: "repair", + label: "collection-repair-query", + status: "succeeded", + input: { + loopIndex: loop.loop_index, + query, + }, + }); + } + } + + for (const outcome of report.sources?.outcomes ?? []) { + if (!outcome.url) { + continue; + } + steps.push({ + kind: sourceOutcomeTraceKind(outcome), + label: `collection-source-${outcome.outcome ?? "unknown"}`, + status: sourceOutcomeTraceStatus(outcome), + input: { + url: outcome.url, + phase: outcome.phase, + triageStatus: outcome.triage_status, + }, + output: { + recordsExtracted: outcome.records_extracted, + }, + error: outcome.error, + }); + } + + return populateProcessTraceFromSteps({ + runtime: "collection", + steps, + selectedRowSource: input.rows.length > 0 ? "collection_pipeline" : "none", + notes: collectionDebugNotes(report), + artifactRoot: input.pipeline.paths?.root, + runReportPath: input.pipeline.paths?.reportPath, + }); +} + +function collectionDebugNotes(report: CollectionPipelineResult["report"]): string[] { + const notes = []; + if (report.stats) { + notes.push( + `collection stats: searches=${numberValue(report.stats.search_queries_executed)}, ` + + `fetches=${numberValue(report.stats.pages_fetched)}` + ); + } + if (report.repair?.loops && report.repair.loops.length > 0) { + notes.push(`collection repair loops=${report.repair.loops.length}`); + } + return notes; +} + +function sourceOutcomeTraceKind(outcome: CollectionSourceOutcome): PopulateRuntimeTraceStep["kind"] { + if (outcome.outcome?.startsWith("agent_")) { + return "agent"; + } + if (outcome.outcome === "fetch_failed") { + return "fetch"; + } + return "validation"; +} + +function sourceOutcomeTraceStatus( + outcome: CollectionSourceOutcome +): PopulateRuntimeTraceStep["status"] { + if ( + outcome.outcome && + ["fetch_failed", "skipped", "agent_failed", "agent_deferred", "no_records"].includes( + outcome.outcome + ) + ) { + return "failed"; + } + return "succeeded"; +} + function isAgentRequiredSourceOutcome(outcome: CollectionSourceOutcome): boolean { return ( typeof outcome.triage_status === "string" && diff --git a/backend/src/pipeline/populate-runtime.ts b/backend/src/pipeline/populate-runtime.ts index a91dbe3..0a3cff0 100644 --- a/backend/src/pipeline/populate-runtime.ts +++ b/backend/src/pipeline/populate-runtime.ts @@ -39,13 +39,61 @@ export interface PopulateRuntimeCapturedInsertedRow { export interface PopulateRuntimeCapturedSource { url: string; text: string; + source: "search" | "fetch" | "synthetic"; +} + +export type PopulateRuntimeTraceStepKind = + | "search" + | "fetch" + | "insert_row" + | "agent" + | "extract" + | "repair" + | "validation"; + +export interface PopulateRuntimeTraceStep { + kind: PopulateRuntimeTraceStepKind; + label: string; + status: "succeeded" | "failed" | "skipped"; + input?: Record; + output?: Record; + error?: string; +} + +export interface PopulateProcessTraceSourceArtifact { + url: string; + status: "succeeded" | "failed" | "skipped"; + source: "search" | "fetch" | "agent" | "collection" | "unknown"; + label?: string; + error?: string; +} + +export interface PopulateProcessTrace { + runtime: "mastra" | "mastra-injected" | "collection" | "unknown"; + searchQueries: string[]; + fetchedUrls: string[]; + sourceArtifacts: PopulateProcessTraceSourceArtifact[]; + selectedRowSource: + | "insert_row" + | "structured_recovery" + | "collection_pipeline" + | "none"; + notes: string[]; + steps: PopulateRuntimeTraceStep[]; + artifactRoot?: string; + runReportPath?: string; } export interface PopulateRuntimeDebug { capturedRows: PopulateRuntimeCapturedInsertedRow[]; capturedSources: PopulateRuntimeCapturedSource[]; - selectedRowSource: "insert_row" | "structured_recovery" | "none"; + selectedRowSource: + | "insert_row" + | "structured_recovery" + | "collection_pipeline" + | "none"; notes: string[]; + processTrace: PopulateProcessTrace; } export interface PopulateRuntimeResult { @@ -119,6 +167,7 @@ export async function runPopulateRuntime(input: { const capturedRows: PopulateRuntimeCapturedInsertedRow[] = []; const capturedSources: PopulateRuntimeCapturedSource[] = []; + const processTraceSteps: PopulateRuntimeTraceStep[] = []; const validationIssues: string[] = []; const debugNotes: string[] = []; const metrics = emptyMetrics(); @@ -131,6 +180,7 @@ export async function runPopulateRuntime(input: { metrics, webTools, maxRows: input.maxRows ?? 10, + processTraceSteps, }); const prompt = buildPopulatePrompt(parsedContext); let agentOutput: unknown; @@ -139,16 +189,64 @@ export async function runPopulateRuntime(input: { try { agentOutput = await input.agentRunner({ prompt, tools }); metrics.agentRuns += 1; + processTraceSteps.push({ + kind: "agent", + label: "populate-agent-injected", + status: "succeeded", + input: { + promptCharacters: prompt.length, + toolNames: Object.keys(tools), + }, + output: { + capturedRowCount: capturedRows.length, + capturedSourceCount: capturedSources.length, + }, + }); } catch (error) { - validationIssues.push(populateAgentFailureMessage(error)); + const message = populateAgentFailureMessage(error); + validationIssues.push(message); + processTraceSteps.push({ + kind: "agent", + label: "populate-agent-injected", + status: "failed", + input: { + promptCharacters: prompt.length, + toolNames: Object.keys(tools), + }, + error: message, + }); } } else { try { const agent = createRuntimePopulateAgent({ tools }); agentOutput = await agent.generate(prompt); metrics.agentRuns += 1; + processTraceSteps.push({ + kind: "agent", + label: "populate-agent-mastra", + status: "succeeded", + input: { + promptCharacters: prompt.length, + toolNames: Object.keys(tools), + }, + output: { + capturedRowCount: capturedRows.length, + capturedSourceCount: capturedSources.length, + }, + }); } catch (error) { - validationIssues.push(populateAgentFailureMessage(error)); + const message = populateAgentFailureMessage(error); + validationIssues.push(message); + processTraceSteps.push({ + kind: "agent", + label: "populate-agent-mastra", + status: "failed", + input: { + promptCharacters: prompt.length, + toolNames: Object.keys(tools), + }, + error: message, + }); } } @@ -173,12 +271,28 @@ export async function runPopulateRuntime(input: { capturedSources, }); metrics.agentRuns += 1; + processTraceSteps.push({ + kind: "extract", + label: "structured-row-recovery", + status: "succeeded", + input: { + capturedSourceCount: capturedSources.length, + }, + }); } catch (error) { - validationIssues.push( - `Structured row generation failed: ${ - error instanceof Error ? error.message : String(error) - }` - ); + const message = `Structured row generation failed: ${ + error instanceof Error ? error.message : String(error) + }`; + validationIssues.push(message); + processTraceSteps.push({ + kind: "extract", + label: "structured-row-recovery", + status: "failed", + input: { + capturedSourceCount: capturedSources.length, + }, + error: message, + }); } } @@ -214,6 +328,13 @@ export async function runPopulateRuntime(input: { insertedRows, structuredRows, }); + const processTrace = populateProcessTraceFromSteps({ + runtime: input.agentRunner ? "mastra-injected" : "mastra", + steps: processTraceSteps, + capturedSources, + selectedRowSource, + notes: debugNotes, + }); validationIssues.push(...validateRuntimeRows(rows)); return { @@ -226,6 +347,7 @@ export async function runPopulateRuntime(input: { capturedSources, selectedRowSource, notes: debugNotes, + processTrace, }, }; } @@ -281,6 +403,15 @@ function emptyClarificationResult(validationIssues: string[]): PopulateRuntimeRe capturedSources: [], selectedRowSource: "none", notes: [], + processTrace: { + runtime: "unknown", + searchQueries: [], + fetchedUrls: [], + sourceArtifacts: [], + selectedRowSource: "none", + notes: [], + steps: [], + }, }, }; } @@ -327,6 +458,7 @@ async function enrichCapturedSourcesForStructuredFallback(input: { newSources.push({ url: result.url, text: [result.title, result.snippet].filter(Boolean).join("\n"), + source: "search", }); input.metrics.fetchCalls += 1; try { @@ -334,6 +466,7 @@ async function enrichCapturedSourcesForStructuredFallback(input: { newSources.push({ url: result.url, text: [page.title, page.text].filter(Boolean).join("\n"), + source: "fetch", }); } catch (error) { input.validationIssues.push( @@ -360,6 +493,7 @@ async function captureDirectOfficialSource(input: { input.newSources.push({ url: input.url, text: `${input.entity} official source\n${input.url}`, + source: "synthetic", }); input.input.metrics.fetchCalls += 1; try { @@ -367,6 +501,7 @@ async function captureDirectOfficialSource(input: { input.newSources.push({ url: input.url, text: [page.title, page.text].filter(Boolean).join("\n"), + source: "fetch", }); } catch (error) { input.input.validationIssues.push( @@ -691,6 +826,107 @@ function selectedRowSourceForRows(input: { return "none"; } +export function populateProcessTraceFromSteps(input: { + runtime: PopulateProcessTrace["runtime"]; + steps: PopulateRuntimeTraceStep[]; + capturedSources?: PopulateRuntimeCapturedSource[]; + selectedRowSource: PopulateProcessTrace["selectedRowSource"]; + notes?: string[]; + artifactRoot?: string; + runReportPath?: string; +}): PopulateProcessTrace { + const searchQueries = input.steps.flatMap((step) => { + const query = step.kind === "search" + ? stringValue(step.input?.query) + : undefined; + return query ? [query] : []; + }); + const fetchedUrls = input.steps.flatMap((step) => { + const url = step.kind === "fetch" + ? stringValue(step.input?.url) + : undefined; + return url ? [url] : []; + }); + const sourceArtifacts: PopulateProcessTraceSourceArtifact[] = [ + ...(input.capturedSources ?? []).map((source) => ({ + url: source.url, + status: "succeeded" as const, + source: capturedSourceArtifactSource(source.source), + label: "captured-source", + })), + ...input.steps + .filter((step) => step.kind === "search" && Array.isArray(step.output?.urls)) + .flatMap((step) => + (step.output?.urls as unknown[]).flatMap((url) => { + const sourceUrl = stringValue(url); + return sourceUrl + ? [{ + url: sourceUrl, + status: step.status, + source: "search" as const, + label: step.label, + error: step.error, + }] + : []; + }) + ), + ...input.steps + .filter((step) => step.kind === "fetch") + .flatMap((step) => { + const sourceUrl = stringValue(step.input?.url); + return sourceUrl + ? [{ + url: sourceUrl, + status: step.status, + source: "fetch" as const, + label: step.label, + error: step.error, + }] + : []; + }), + ]; + + return { + runtime: input.runtime, + searchQueries: Array.from(new Set(searchQueries)), + fetchedUrls: uniqueHttpUrls(fetchedUrls), + sourceArtifacts: dedupeProcessTraceSourceArtifacts(sourceArtifacts), + selectedRowSource: input.selectedRowSource, + notes: input.notes ?? [], + steps: input.steps, + artifactRoot: input.artifactRoot, + runReportPath: input.runReportPath, + }; +} + +function capturedSourceArtifactSource( + source: PopulateRuntimeCapturedSource["source"] +): PopulateProcessTraceSourceArtifact["source"] { + if (source === "search" || source === "fetch") { + return source; + } + return "unknown"; +} + +function dedupeProcessTraceSourceArtifacts( + artifacts: PopulateProcessTraceSourceArtifact[] +): PopulateProcessTraceSourceArtifact[] { + const seen = new Set(); + const uniqueArtifacts: PopulateProcessTraceSourceArtifact[] = []; + for (const artifact of artifacts) { + if (!/^https?:\/\//i.test(artifact.url)) { + continue; + } + const key = `${artifact.url}|${artifact.status}|${artifact.source}|${artifact.label ?? ""}`; + if (seen.has(key)) { + continue; + } + seen.add(key); + uniqueArtifacts.push(artifact); + } + return uniqueArtifacts; +} + function createPopulateRuntimeTools(input: { datasetId: string; capturedRows: PopulateRuntimeCapturedInsertedRow[]; @@ -699,6 +935,7 @@ function createPopulateRuntimeTools(input: { metrics: PopulateRuntimeResult["metrics"]; webTools: PopulateRuntimeWebTools; maxRows: number; + processTraceSteps: PopulateRuntimeTraceStep[]; }) { return { insert_row: createTool({ @@ -714,18 +951,50 @@ function createPopulateRuntimeTools(input: { }), execute: async ({ datasetId, data }) => { if (datasetId !== input.datasetId) { + input.processTraceSteps.push({ + kind: "insert_row", + label: "insert_row", + status: "failed", + input: { + datasetId, + columnNames: Object.keys(data), + }, + error: `datasetId must be ${input.datasetId}.`, + }); return { success: false, error: `datasetId must be ${input.datasetId}.`, }; } if (input.capturedRows.length >= input.maxRows) { + input.processTraceSteps.push({ + kind: "insert_row", + label: "insert_row", + status: "failed", + input: { + datasetId, + columnNames: Object.keys(data), + }, + error: `Row cap reached for this benchmark run (${input.maxRows}).`, + }); return { success: false, error: `Row cap reached for this benchmark run (${input.maxRows}).`, }; } input.capturedRows.push({ datasetId, data }); + input.processTraceSteps.push({ + kind: "insert_row", + label: "insert_row", + status: "succeeded", + input: { + datasetId, + columnNames: Object.keys(data), + }, + output: { + capturedRowCount: input.capturedRows.length, + }, + }); return { success: true }; }, }), @@ -749,12 +1018,30 @@ function createPopulateRuntimeTools(input: { ...results.map((result) => ({ url: result.url, text: [result.title, result.snippet].filter(Boolean).join("\n"), + source: "search" as const, })) ); + input.processTraceSteps.push({ + kind: "search", + label: "search_web", + status: "succeeded", + input: { query }, + output: { + resultCount: results.length, + urls: results.map((result) => result.url).slice(0, 10), + }, + }); return { results }; } catch (error) { const message = error instanceof Error ? error.message : String(error); input.validationIssues.push(`search_web failed: ${message}`); + input.processTraceSteps.push({ + kind: "search", + label: "search_web", + status: "failed", + input: { query }, + error: message, + }); return { error: message }; } }, @@ -775,11 +1062,29 @@ function createPopulateRuntimeTools(input: { input.capturedSources.push({ url, text: [page.title, page.text].filter(Boolean).join("\n"), + source: "fetch", + }); + input.processTraceSteps.push({ + kind: "fetch", + label: "fetch_page", + status: "succeeded", + input: { url }, + output: { + title: page.title, + textCharacters: page.text?.length ?? 0, + }, }); return page; } catch (error) { const message = error instanceof Error ? error.message : String(error); input.validationIssues.push(`fetch_page failed: ${message}`); + input.processTraceSteps.push({ + kind: "fetch", + label: "fetch_page", + status: "failed", + input: { url }, + error: message, + }); return { error: message }; } }, diff --git a/backend/src/pipeline/populate-self-healing.ts b/backend/src/pipeline/populate-self-healing.ts index b5f89e2..2ba75ba 100644 --- a/backend/src/pipeline/populate-self-healing.ts +++ b/backend/src/pipeline/populate-self-healing.ts @@ -2,6 +2,7 @@ import { mkdir, readFile, writeFile } from "node:fs/promises"; import { join } from "node:path"; import { + type PopulateProcessTrace, type PopulateRuntimeAgentRunner, type PopulateRuntimeResult, type PopulateRuntimeRow, @@ -25,9 +26,17 @@ export type PopulateRecipeArtifactKind = | "text" | "stderr" | "source-transcript" - | "captured-rows"; + | "captured-rows" + | "process-trace" + | "playwright-candidate-script"; const MAX_ARTIFACT_TEXT_LENGTH = 20_000; +const PROCESS_TRACE_ARTIFACT_LIMITS = [ + { maxItems: 100, maxNestedItems: 25, maxStringLength: 500 }, + { maxItems: 50, maxNestedItems: 10, maxStringLength: 240 }, + { maxItems: 25, maxNestedItems: 8, maxStringLength: 120 }, + { maxItems: 10, maxNestedItems: 5, maxStringLength: 80 }, +] as const; export interface PopulateRecipe { recipeId: string; @@ -103,6 +112,7 @@ export interface StoredPopulateRecipeRunRecord { runStatus: PopulateRecipeRunStatus; completedAt: string; productionValidation: PopulateRecipeProductionValidation; + artifacts: PopulateRecipeArtifact[]; } export interface PopulateRecipeStoreSnapshot { @@ -454,7 +464,10 @@ export class FileSystemPopulateRecipeStore implements PopulateRecipeStore { return { datasetId, recipes: parsed.recipes ?? [], - runRecords: parsed.runRecords ?? [], + runRecords: (parsed.runRecords ?? []).map((record) => ({ + ...record, + artifacts: record.artifacts ?? [], + })), }; } catch (error) { if (isNodeError(error) && error.code === "ENOENT") { @@ -828,6 +841,15 @@ function artifactsForRun(input: { } const capturedSources = input.result.debug?.capturedSources ?? []; const capturedRows = input.result.debug?.capturedRows ?? []; + const processTrace = input.result.debug?.processTrace ?? { + runtime: "unknown", + searchQueries: [], + fetchedUrls: [], + sourceArtifacts: [], + selectedRowSource: "none", + notes: [], + steps: [], + }; if (capturedSources.length > 0) { artifacts.push({ kind: "source-transcript", @@ -851,9 +873,131 @@ function artifactsForRun(input: { .slice(0, MAX_ARTIFACT_TEXT_LENGTH), }); } + if ( + processTrace.steps.length > 0 || + processTrace.searchQueries.length > 0 || + processTrace.fetchedUrls.length > 0 || + processTrace.sourceArtifacts.length > 0 + ) { + artifacts.push({ + kind: "process-trace", + label: "populate-process-trace", + content: processTraceArtifactContent(processTrace), + }); + } return artifacts; } +function processTraceArtifactContent(processTrace: PopulateProcessTrace): string { + let content = ""; + for (const limits of PROCESS_TRACE_ARTIFACT_LIMITS) { + content = JSON.stringify(truncatedProcessTrace(processTrace, limits), null, 2); + if (content.length <= MAX_ARTIFACT_TEXT_LENGTH) { + return content; + } + } + return content; +} + +function truncatedProcessTrace( + processTrace: PopulateProcessTrace, + limits: typeof PROCESS_TRACE_ARTIFACT_LIMITS[number] +) { + return { + ...processTrace, + truncated: hasProcessTraceOverflow(processTrace, limits), + searchQueries: processTrace.searchQueries + .slice(0, limits.maxItems) + .map((query) => truncateArtifactString(query, limits)), + fetchedUrls: processTrace.fetchedUrls + .slice(0, limits.maxItems) + .map((url) => truncateArtifactString(url, limits)), + sourceArtifacts: processTrace.sourceArtifacts.slice(0, limits.maxItems).map((artifact) => ({ + ...artifact, + url: truncateArtifactString(artifact.url, limits), + label: artifact.label + ? truncateArtifactString(artifact.label, limits) + : artifact.label, + error: artifact.error + ? truncateArtifactString(artifact.error, limits) + : artifact.error, + })), + notes: processTrace.notes + .slice(0, limits.maxItems) + .map((note) => truncateArtifactString(note, limits)), + steps: processTrace.steps.slice(0, limits.maxItems).map((step) => ({ + ...step, + label: truncateArtifactString(step.label, limits), + input: truncateArtifactJson(step.input, limits), + output: truncateArtifactJson(step.output, limits), + error: step.error ? truncateArtifactString(step.error, limits) : step.error, + })), + }; +} + +function hasProcessTraceOverflow( + processTrace: PopulateProcessTrace, + limits: typeof PROCESS_TRACE_ARTIFACT_LIMITS[number] +): boolean { + return ( + processTrace.searchQueries.length > limits.maxItems || + processTrace.fetchedUrls.length > limits.maxItems || + processTrace.sourceArtifacts.length > limits.maxItems || + processTrace.notes.length > limits.maxItems || + processTrace.steps.length > limits.maxItems || + processTrace.searchQueries.some((query) => query.length > limits.maxStringLength) || + processTrace.fetchedUrls.some((url) => url.length > limits.maxStringLength) || + processTrace.notes.some((note) => note.length > limits.maxStringLength) || + processTrace.sourceArtifacts.some((artifact) => + [ + artifact.url, + artifact.label ?? "", + artifact.error ?? "", + ].some((value) => value.length > limits.maxStringLength) + ) || + processTrace.steps.some((step) => + [ + step.label, + step.error ?? "", + ].some((value) => value.length > limits.maxStringLength) + ) + ); +} + +function truncateArtifactJson( + value: unknown, + limits: typeof PROCESS_TRACE_ARTIFACT_LIMITS[number] +): unknown { + if (typeof value === "string") { + return truncateArtifactString(value, limits); + } + if (Array.isArray(value)) { + return value + .slice(0, limits.maxNestedItems) + .map((nestedValue) => truncateArtifactJson(nestedValue, limits)); + } + if (value && typeof value === "object") { + return Object.fromEntries( + Object.entries(value as Record) + .slice(0, limits.maxNestedItems) + .map(([key, nestedValue]) => [ + key, + truncateArtifactJson(nestedValue, limits), + ]) + ); + } + return value; +} + +function truncateArtifactString( + value: string, + limits: typeof PROCESS_TRACE_ARTIFACT_LIMITS[number] +): string { + return value.length > limits.maxStringLength + ? `${value.slice(0, limits.maxStringLength)}\n[truncated]` + : value; +} + export function emptyPopulateRuntimeResult(validationIssues: string[]): PopulateRuntimeResult { return { rows: [], @@ -875,6 +1019,15 @@ export function emptyPopulateRuntimeResult(validationIssues: string[]): Populate capturedSources: [], selectedRowSource: "none", notes: [], + processTrace: { + runtime: "unknown", + searchQueries: [], + fetchedUrls: [], + sourceArtifacts: [], + selectedRowSource: "none", + notes: [], + steps: [], + }, }, }; } @@ -936,6 +1089,7 @@ function runRecordFromRunResult( runStatus: runResult.runStatus, completedAt: runResult.completedAt, productionValidation: runResult.productionValidation, + artifacts: runResult.artifacts, }; } diff --git a/backend/test/collection-agent-runner.test.ts b/backend/test/collection-agent-runner.test.ts index 1b88c6e..4907f91 100644 --- a/backend/test/collection-agent-runner.test.ts +++ b/backend/test/collection-agent-runner.test.ts @@ -36,6 +36,23 @@ test("collection agent runner maps vendored pipeline output into populate runtim assert.equal(result.metrics.browserCalls, 3); assert.equal(result.metrics.agentRuns, 3); assert.equal(result.metrics.agentSteps, 3); + assert.equal(result.debug?.selectedRowSource, "collection_pipeline"); + assert.equal(result.debug?.processTrace.runtime, "collection"); + assert.deepEqual(result.debug?.processTrace.searchQueries, [ + "OpenAI latest AI blog posts", + "OpenAI release notes", + ]); + assert.deepEqual(result.debug?.processTrace.fetchedUrls, [ + "https://openai.com/news", + "https://openai.com/research", + ]); + assert.equal( + result.debug?.processTrace.sourceArtifacts.some((artifact) => + artifact.url === "https://openai.com/news" && + artifact.status === "succeeded" + ), + true + ); } finally { restoreEnv(previousEnv); } @@ -202,6 +219,11 @@ function fakeCollectionPipelineModuleUrl(input: { throw new Error("required columns missing from benchmark context"); } return { + runId: "fake-run-1", + paths: { + root: "/tmp/fake-run-1", + reportPath: "/tmp/fake-run-1/run_report.json", + }, report: { errors: [], dataset_spec: { @@ -218,6 +240,15 @@ function fakeCollectionPipelineModuleUrl(input: { }, }, initial: { + search_queries: [ + "OpenAI latest AI blog posts", + "OpenAI release notes", + ], + fetched_urls: [ + "https://openai.com/news", + "https://openai.com/research", + ], + failed_urls: [], triage: { agent_dispatched: 1, agent_succeeded: 1, @@ -225,6 +256,10 @@ function fakeCollectionPipelineModuleUrl(input: { }, }, repair: { + loops: [{ + loop_index: 1, + repair_queries: ["OpenAI blog official source_url evidence"], + }], stats: { triage: { agent_dispatched: 2, @@ -236,7 +271,24 @@ function fakeCollectionPipelineModuleUrl(input: { quality: { records: [{ record_id: "pk:openai", needs_review: true }], }, - sources: ${JSON.stringify(input.sources ?? { outcomes: [] })}, + search_queries: [ + "OpenAI latest AI blog posts", + "OpenAI release notes", + ], + fetched_urls: [ + "https://openai.com/news", + "https://openai.com/research", + ], + failed_urls: [], + sources: ${JSON.stringify(input.sources ?? { + outcomes: [{ + url: "https://openai.com/news", + outcome: "success", + phase: "initial", + triage_status: "extract_now", + records_extracted: 1, + }], + })}, llm_usage: { prompt_tokens: 1, completion_tokens: 1, diff --git a/backend/test/populate-self-healing.test.ts b/backend/test/populate-self-healing.test.ts index e1be40d..7544460 100644 --- a/backend/test/populate-self-healing.test.ts +++ b/backend/test/populate-self-healing.test.ts @@ -108,6 +108,15 @@ test("Mastra populate recipe runtime maps populate rows into a healthy recipe ru assert.equal(run.debug?.selectedRowSource, "insert_row"); assert.ok(run.artifacts.some((artifact) => artifact.kind === "source-transcript")); assert.ok(run.artifacts.some((artifact) => artifact.kind === "captured-rows")); + const traceArtifact = run.artifacts.find((artifact) => + artifact.kind === "process-trace" + ); + assert.ok(traceArtifact); + const trace = JSON.parse(traceArtifact.content); + assert.equal(trace.runtime, "mastra-injected"); + assert.deepEqual(trace.searchQueries, ["OpenAI latest blog"]); + assert.deepEqual(trace.fetchedUrls, ["https://openai.com/news"]); + assert.equal(trace.selectedRowSource, "insert_row"); }); test("Mastra populate recipe runtime keeps supplemental fetch misses non-blocking", async () => { @@ -133,6 +142,55 @@ test("Mastra populate recipe runtime keeps supplemental fetch misses non-blockin assert.match(run.productionValidation.warnings.join("\n"), /timeout/); }); +test("process trace artifacts stay parseable when trace content is large", async () => { + const runtime = new MastraPopulateRecipeRuntime({ + runPopulate: async () => ({ + rows: validRows(), + validationIssues: [], + usage: emptyUsage(), + metrics: emptyMetrics(), + debug: { + capturedRows: [], + capturedSources: [], + selectedRowSource: "collection_pipeline", + notes: [], + processTrace: { + runtime: "collection", + searchQueries: Array.from({ length: 125 }, (_, index) => + `query-${index}-${"x".repeat(1_000)}` + ), + fetchedUrls: [], + sourceArtifacts: [], + selectedRowSource: "collection_pipeline", + notes: ["n".repeat(1_000)], + steps: Array.from({ length: 125 }, (_, index) => ({ + kind: "search" as const, + label: `collection-search-query-${index}`, + status: "succeeded" as const, + input: { query: "x".repeat(1_000) }, + })), + }, + }, + }), + }); + + const run = await runtime.runRecipe({ + recipe: recipe({ recipeId: "recipe-v1" }), + context, + }); + const traceArtifact = run.artifacts.find((artifact) => + artifact.kind === "process-trace" + ); + + assert.ok(traceArtifact); + assert.ok(traceArtifact.content.length <= 20_000); + const parsedTrace = JSON.parse(traceArtifact.content); + assert.equal(parsedTrace.truncated, true); + assert.ok(parsedTrace.steps.length > 0); + assert.ok(parsedTrace.steps.length <= 100); + assert.match(parsedTrace.searchQueries[0], /\[truncated\]/); +}); + test("Mastra populate recipe runtime blocks missing expected entities", async () => { const runtime = new MastraPopulateRecipeRuntime({ runPopulate: async () => ({ @@ -370,7 +428,7 @@ test("file store reloads populate recipes and run records", async () => { const service = new SelfHealingPopulateRecipeService({ store, runtime: new FakePopulateRecipeRuntime({ - "persisted-v1": validRun(generatedRecipe), + "persisted-v1": validRun(generatedRecipe, 1, [processTraceArtifact()]), }), author: new FakeRecipeAuthor({ generatedRecipe }), }); @@ -384,6 +442,11 @@ test("file store reloads populate recipes and run records", async () => { assert.equal(snapshot.recipes[0]?.status, "active"); assert.equal(snapshot.runRecords.length, 1); assert.equal(snapshot.runRecords[0]?.runStatus, "succeeded"); + assert.equal(snapshot.runRecords[0]?.artifacts[0]?.kind, "process-trace"); + assert.match( + snapshot.runRecords[0]?.artifacts[0]?.content ?? "", + /collection-search-query/ + ); }); interface ToolLike { @@ -408,12 +471,17 @@ function recipe(input: { }); } -function validRun(recipe: PopulateRecipe, score = 1): PopulateRecipeRunResult { +function validRun( + recipe: PopulateRecipe, + score = 1, + artifacts: PopulateRecipeRunResult["artifacts"] = [] +): PopulateRecipeRunResult { return runResult({ recipe, rows: validRows(), isValid: true, score, + artifacts, }); } @@ -435,6 +503,7 @@ function runResult(input: { criticalIssues?: string[]; isValid: boolean; score: number; + artifacts?: PopulateRecipeRunResult["artifacts"]; }): PopulateRecipeRunResult { return { rows: input.rows, @@ -470,7 +539,32 @@ function runResult(input: { criticalIssues: input.criticalIssues ?? [], warnings: input.validationIssues ?? [], }, - artifacts: [], + artifacts: input.artifacts ?? [], + }; +} + +function processTraceArtifact(): PopulateRecipeRunResult["artifacts"][number] { + return { + kind: "process-trace", + label: "populate-process-trace", + content: JSON.stringify({ + runtime: "collection", + searchQueries: ["OpenAI latest blog"], + fetchedUrls: ["https://openai.com/news"], + sourceArtifacts: [{ + url: "https://openai.com/news", + status: "succeeded", + source: "collection", + }], + selectedRowSource: "collection_pipeline", + notes: [], + steps: [{ + kind: "search", + label: "collection-search-query", + status: "succeeded", + input: { query: "OpenAI latest blog" }, + }], + }), }; } diff --git a/docs/data-collection-agent-migration-plan.md b/docs/data-collection-agent-migration-plan.md index 2bb1847..8c0394c 100644 --- a/docs/data-collection-agent-migration-plan.md +++ b/docs/data-collection-agent-migration-plan.md @@ -28,6 +28,9 @@ the collection pipeline is migrated into BigSet. without injecting answer-key URLs at runtime. - PR #46 surfaces no-Agent browser/form/detail follow-up as a safe capability diagnostic instead of hiding it as generic bad data or infra failure. +- PR #47-#52 document and improve collection benchmark evidence, source + coherence, official-source support, and URL-like source evidence. PR #52 fixes + the `official_website` / `company_website` / `product_url` scoring class. - `feat/data-collection-agent-v14` is no longer the branch to build on directly. It was the source of the collection pipeline port. New work should branch on top of the current draft stack, not edit Meteor's branch or the dirty main @@ -63,6 +66,8 @@ The current layer: - stores active recipes and run records in a filesystem recipe store on the durable app/commit path +- persists each run's artifacts on the run record, including a structured + `process-trace` artifact when the runtime exposes one - reruns the active recipe when one exists - generates an initial recipe when no active recipe exists - repairs a failed active recipe through `DefaultPopulateRecipeAuthor` @@ -84,12 +89,20 @@ The current layer now can: - run the real vendored collection pipeline through that same boundary - preserve `recipe.runtimeInstructions`, required columns, and benchmark metadata through the collection runner +- expose structured trace data for both Mastra and collection runs: + `runtime`, `searchQueries`, `fetchedUrls`, `sourceArtifacts`, + `selectedRowSource`, `notes`, and ordered `steps` - emit a capability diagnostic when no-Agent mode sees pages that need browser, form, or detail-page follow-up The current layer does not yet: - generate Playwright scripts as a durable production recipe +- emit `playwright-candidate-script`; that artifact kind is reserved for the + future compiler and is not produced yet +- run cron from compiled Playwright scripts +- repair or promote Playwright scripts; repair still changes durable runtime + instructions only - run a green live Convex canary in this local environment - prove Agent-enabled collection quality on a full real benchmark - prove the collection runtime should replace Mastra as the default app runtime From 8bafe26e537967d452f31d31157f077e49ca4ed0 Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 06:21:35 +0700 Subject: [PATCH 02/21] Gate Playwright candidate readiness --- .../pipeline/populate-playwright-readiness.ts | 95 ++++++++++++ backend/src/pipeline/populate-runtime.ts | 20 +++ backend/src/pipeline/populate-self-healing.ts | 19 +++ .../populate-playwright-readiness.test.ts | 144 ++++++++++++++++++ backend/test/populate-self-healing.test.ts | 11 ++ benchmarks/dataset-agent/README.md | 7 + docs/data-collection-agent-migration-plan.md | 11 ++ 7 files changed, 307 insertions(+) create mode 100644 backend/src/pipeline/populate-playwright-readiness.ts create mode 100644 backend/test/populate-playwright-readiness.test.ts diff --git a/backend/src/pipeline/populate-playwright-readiness.ts b/backend/src/pipeline/populate-playwright-readiness.ts new file mode 100644 index 0000000..c7a1b59 --- /dev/null +++ b/backend/src/pipeline/populate-playwright-readiness.ts @@ -0,0 +1,95 @@ +import type { + PopulateProcessTrace, + PopulateRuntimeResult, + PopulateRuntimeTraceStep, +} from "./populate-runtime.js"; + +export type PopulatePlaywrightCandidateReadinessStatus = + | "ready" + | "not_ready"; + +export interface PopulatePlaywrightCandidateReadiness { + status: PopulatePlaywrightCandidateReadinessStatus; + reasons: string[]; + browserStepCount: number; + sourceUrlCount: number; +} + +export function playwrightCandidateReadinessForRun(input: { + result: PopulateRuntimeResult; +}): PopulatePlaywrightCandidateReadiness { + const processTrace = input.result.debug?.processTrace; + const reasons: string[] = []; + + if (!processTrace) { + reasons.push("Process trace is missing."); + } + if (hasAgentDisabledCapabilityDiagnostic(input.result)) { + reasons.push( + "TinyFish Agent/browser follow-up was required but disabled for this run." + ); + } + + const browserSteps = processTrace + ? actionableBrowserSteps(processTrace) + : []; + if (browserSteps.length === 0) { + reasons.push( + "Trace has no actionable browser steps with URL/selector/target data." + ); + } + + const sourceUrlCount = processTrace + ? sourceUrlCountForTrace(processTrace) + : 0; + if (sourceUrlCount === 0) { + reasons.push("Trace has no source URLs to anchor a replay script."); + } + + return { + status: reasons.length === 0 ? "ready" : "not_ready", + reasons, + browserStepCount: browserSteps.length, + sourceUrlCount, + }; +} + +function hasAgentDisabledCapabilityDiagnostic( + result: PopulateRuntimeResult +): boolean { + const diagnostics = [ + ...result.validationIssues, + ...(result.debug?.notes ?? []), + ]; + return diagnostics.some((diagnostic) => + /Capability diagnostic: TinyFish Agent disabled/i.test(diagnostic) + ); +} + +function actionableBrowserSteps( + processTrace: PopulateProcessTrace +): PopulateRuntimeTraceStep[] { + return processTrace.steps.filter((step) => { + if (step.kind !== "browser" || step.status !== "succeeded") { + return false; + } + const action = step.browserAction; + if (!action) { + return false; + } + return Boolean( + action.url || + action.selector || + action.targetText + ); + }); +} + +function sourceUrlCountForTrace(processTrace: PopulateProcessTrace): number { + return new Set([ + ...processTrace.fetchedUrls, + ...processTrace.sourceArtifacts + .filter((artifact) => artifact.status === "succeeded") + .map((artifact) => artifact.url), + ].filter((url) => /^https?:\/\//i.test(url))).size; +} diff --git a/backend/src/pipeline/populate-runtime.ts b/backend/src/pipeline/populate-runtime.ts index 0a3cff0..f385e85 100644 --- a/backend/src/pipeline/populate-runtime.ts +++ b/backend/src/pipeline/populate-runtime.ts @@ -47,10 +47,29 @@ export type PopulateRuntimeTraceStepKind = | "fetch" | "insert_row" | "agent" + | "browser" | "extract" | "repair" | "validation"; +export type PopulateRuntimeBrowserActionKind = + | "navigate" + | "click" + | "type" + | "select" + | "wait" + | "extract" + | "screenshot" + | "unknown"; + +export interface PopulateRuntimeBrowserAction { + action: PopulateRuntimeBrowserActionKind; + url?: string; + selector?: string; + targetText?: string; + valueDescription?: string; +} + export interface PopulateRuntimeTraceStep { kind: PopulateRuntimeTraceStepKind; label: string; @@ -58,6 +77,7 @@ export interface PopulateRuntimeTraceStep { input?: Record; output?: Record; error?: string; + browserAction?: PopulateRuntimeBrowserAction; } export interface PopulateProcessTraceSourceArtifact { diff --git a/backend/src/pipeline/populate-self-healing.ts b/backend/src/pipeline/populate-self-healing.ts index 2ba75ba..06022a4 100644 --- a/backend/src/pipeline/populate-self-healing.ts +++ b/backend/src/pipeline/populate-self-healing.ts @@ -13,6 +13,10 @@ import { datasetContextSchema, type DatasetContext, } from "./populate.js"; +import { + playwrightCandidateReadinessForRun, + type PopulatePlaywrightCandidateReadiness, +} from "./populate-playwright-readiness.js"; export type PopulateRecipeStatus = | "active" @@ -28,6 +32,7 @@ export type PopulateRecipeArtifactKind = | "source-transcript" | "captured-rows" | "process-trace" + | "playwright-candidate-readiness" | "playwright-candidate-script"; const MAX_ARTIFACT_TEXT_LENGTH = 20_000; @@ -884,10 +889,24 @@ function artifactsForRun(input: { label: "populate-process-trace", content: processTraceArtifactContent(processTrace), }); + artifacts.push({ + kind: "playwright-candidate-readiness", + label: "populate-playwright-candidate-readiness", + content: playwrightCandidateReadinessArtifactContent( + playwrightCandidateReadinessForRun({ result: input.result }) + ), + }); } return artifacts; } +function playwrightCandidateReadinessArtifactContent( + readiness: PopulatePlaywrightCandidateReadiness +): string { + return JSON.stringify(readiness, null, 2) + .slice(0, MAX_ARTIFACT_TEXT_LENGTH); +} + function processTraceArtifactContent(processTrace: PopulateProcessTrace): string { let content = ""; for (const limits of PROCESS_TRACE_ARTIFACT_LIMITS) { diff --git a/backend/test/populate-playwright-readiness.test.ts b/backend/test/populate-playwright-readiness.test.ts new file mode 100644 index 0000000..cd95a09 --- /dev/null +++ b/backend/test/populate-playwright-readiness.test.ts @@ -0,0 +1,144 @@ +import assert from "node:assert/strict"; +import { test } from "node:test"; + +import { playwrightCandidateReadinessForRun } from "../src/pipeline/populate-playwright-readiness.js"; +import type { PopulateRuntimeResult } from "../src/pipeline/populate-runtime.js"; + +test("Playwright candidate readiness rejects search/fetch-only traces", () => { + const readiness = playwrightCandidateReadinessForRun({ + result: runtimeResult({ + processTrace: { + runtime: "collection", + searchQueries: ["OpenAI latest blog"], + fetchedUrls: ["https://openai.com/news"], + sourceArtifacts: [{ + url: "https://openai.com/news", + status: "succeeded", + source: "fetch", + label: "news", + }], + selectedRowSource: "collection_pipeline", + notes: [], + steps: [{ + kind: "fetch", + label: "collection-fetched-url", + status: "succeeded", + input: { url: "https://openai.com/news" }, + }], + }, + }), + }); + + assert.equal(readiness.status, "not_ready"); + assert.equal(readiness.browserStepCount, 0); + assert.match(readiness.reasons.join("\n"), /no actionable browser steps/i); +}); + +test("Playwright candidate readiness rejects Agent-disabled capability diagnostics", () => { + const readiness = playwrightCandidateReadinessForRun({ + result: runtimeResult({ + validationIssues: [ + "Capability diagnostic: TinyFish Agent disabled; triage requested browser/form/detail follow-up for 1 page(s).", + ], + processTrace: { + runtime: "collection", + searchQueries: [], + fetchedUrls: ["https://example.com/form"], + sourceArtifacts: [{ + url: "https://example.com/form", + status: "succeeded", + source: "fetch", + }], + selectedRowSource: "collection_pipeline", + notes: [], + steps: [{ + kind: "browser", + label: "agent-navigation", + status: "succeeded", + browserAction: { + action: "navigate", + url: "https://example.com/form", + }, + }], + }, + }), + }); + + assert.equal(readiness.status, "not_ready"); + assert.match(readiness.reasons.join("\n"), /Agent\/browser follow-up/i); +}); + +test("Playwright candidate readiness accepts browser-action traces anchored to sources", () => { + const readiness = playwrightCandidateReadinessForRun({ + result: runtimeResult({ + processTrace: { + runtime: "collection", + searchQueries: [], + fetchedUrls: ["https://example.com/form"], + sourceArtifacts: [{ + url: "https://example.com/form", + status: "succeeded", + source: "agent", + label: "browser-canary", + }], + selectedRowSource: "collection_pipeline", + notes: [], + steps: [{ + kind: "browser", + label: "agent-form-submit", + status: "succeeded", + browserAction: { + action: "click", + url: "https://example.com/form", + selector: "button[type=submit]", + }, + }], + }, + }), + }); + + assert.equal(readiness.status, "ready"); + assert.deepEqual(readiness.reasons, []); + assert.equal(readiness.browserStepCount, 1); + assert.equal(readiness.sourceUrlCount, 1); +}); + +function runtimeResult(input: { + validationIssues?: string[]; + processTrace?: NonNullable["processTrace"]; +}): PopulateRuntimeResult { + return { + rows: [{ + cells: { + entity_name: "OpenAI", + source_url: "https://openai.com/news", + evidence_quote: "Release notes", + }, + sourceUrls: ["https://openai.com/news"], + evidence: [{ + columnName: "evidence_quote", + sourceUrl: "https://openai.com/news", + quote: "Release notes", + }], + needsReview: false, + }], + validationIssues: input.validationIssues ?? [], + usage: { promptTokens: 0, completionTokens: 0, totalTokens: 0 }, + metrics: { + searchCalls: 0, + fetchCalls: 0, + browserCalls: 0, + agentRuns: 0, + agentSteps: 0, + }, + debug: input.processTrace + ? { + capturedRows: [], + capturedSources: [], + selectedRowSource: "collection_pipeline", + notes: [], + processTrace: input.processTrace, + } + : undefined, + }; +} diff --git a/backend/test/populate-self-healing.test.ts b/backend/test/populate-self-healing.test.ts index 7544460..b68356b 100644 --- a/backend/test/populate-self-healing.test.ts +++ b/backend/test/populate-self-healing.test.ts @@ -117,6 +117,17 @@ test("Mastra populate recipe runtime maps populate rows into a healthy recipe ru assert.deepEqual(trace.searchQueries, ["OpenAI latest blog"]); assert.deepEqual(trace.fetchedUrls, ["https://openai.com/news"]); assert.equal(trace.selectedRowSource, "insert_row"); + const readinessArtifact = run.artifacts.find((artifact) => + artifact.kind === "playwright-candidate-readiness" + ); + assert.ok(readinessArtifact); + const readiness = JSON.parse(readinessArtifact.content); + assert.equal(readiness.status, "not_ready"); + assert.match(readiness.reasons.join("\n"), /no actionable browser steps/i); + assert.equal( + run.artifacts.some((artifact) => artifact.kind === "playwright-candidate-script"), + false + ); }); test("Mastra populate recipe runtime keeps supplemental fetch misses non-blocking", async () => { diff --git a/benchmarks/dataset-agent/README.md b/benchmarks/dataset-agent/README.md index a4e0cc7..ce88a3d 100644 --- a/benchmarks/dataset-agent/README.md +++ b/benchmarks/dataset-agent/README.md @@ -81,6 +81,13 @@ Latest `mcp-docs-pages` Agent-enabled canary evidence: App and CLI collection-runtime runs use the same runner shape, but load it from `POPULATE_COLLECTION_RUNNER_MODULE` when `POPULATE_AGENT_RUNTIME=collection`. +Self-healing run records now include a `process-trace` artifact when a runtime +exposes trace data and a `playwright-candidate-readiness` artifact that says +whether the trace is grounded enough for a future Playwright compiler. Search +and fetch URLs alone are not enough. The readiness gate expects real browser +actions such as URL transitions, selectors, target text, or redacted input +descriptions before any `playwright-candidate-script` can be emitted. + ## Verify Self-Healing Stack Use this before asking someone else to migrate a new collection agent into the diff --git a/docs/data-collection-agent-migration-plan.md b/docs/data-collection-agent-migration-plan.md index 8c0394c..8175714 100644 --- a/docs/data-collection-agent-migration-plan.md +++ b/docs/data-collection-agent-migration-plan.md @@ -92,6 +92,11 @@ The current layer now can: - expose structured trace data for both Mastra and collection runs: `runtime`, `searchQueries`, `fetchedUrls`, `sourceArtifacts`, `selectedRowSource`, `notes`, and ordered `steps` +- expose a `playwright-candidate-readiness` artifact that explains whether the + trace is grounded enough to compile a future Playwright script +- represent browser actions in the trace contract when a future Agent/canary + records URL transitions, selectors, target text, or redacted input + descriptions - emit a capability diagnostic when no-Agent mode sees pages that need browser, form, or detail-page follow-up @@ -103,6 +108,9 @@ The current layer does not yet: - run cron from compiled Playwright scripts - repair or promote Playwright scripts; repair still changes durable runtime instructions only +- compile search/fetch-only traces into Playwright; traces must include + actionable browser steps before the script compiler is allowed to emit a + candidate - run a green live Convex canary in this local environment - prove Agent-enabled collection quality on a full real benchmark - prove the collection runtime should replace Mastra as the default app runtime @@ -166,6 +174,9 @@ The current layer does not yet: - 2-prompt real benchmark - 1-prompt Agent-enabled capability canary for prompts that need browser or detail follow-up + - browser-step trace canary that records URL transitions, selectors/targets, + and redacted form-input descriptions before any Playwright compiler is + enabled - full benchmark only after the 2-prompt run is not obviously broken - live `--dataset-id` dry-run only after Convex/env prerequisites are ready - `--commit` only on a throwaway dataset first From 08bce46b547485126bb1511b0b0a2beffc2a0385 Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 06:30:48 +0700 Subject: [PATCH 03/21] Ingest collection browser action traces --- .../src/pipeline/collection-agent-runner.ts | 124 ++++++++++++++++++ backend/test/collection-agent-runner.test.ts | 76 +++++++++++ benchmarks/dataset-agent/README.md | 20 +++ docs/data-collection-agent-migration-plan.md | 17 +++ 4 files changed, 237 insertions(+) diff --git a/backend/src/pipeline/collection-agent-runner.ts b/backend/src/pipeline/collection-agent-runner.ts index 5c85a4f..2f7a7ae 100644 --- a/backend/src/pipeline/collection-agent-runner.ts +++ b/backend/src/pipeline/collection-agent-runner.ts @@ -10,6 +10,7 @@ import type { import { populateProcessTraceFromSteps, type PopulateCellValue, + type PopulateRuntimeBrowserAction, type PopulateRuntimeResult, type PopulateRuntimeTraceStep, } from "./populate-runtime.js"; @@ -51,6 +52,8 @@ interface CollectionPipelineResult { search_queries?: string[]; fetched_urls?: string[]; failed_urls?: string[]; + browser_actions?: CollectionBrowserActionReport[]; + agent_browser_actions?: CollectionBrowserActionReport[]; }; repair?: { stats?: CollectionPhaseStats; @@ -59,6 +62,8 @@ interface CollectionPipelineResult { search_queries?: string[]; fetched_urls?: string[]; failed_urls?: string[]; + browser_actions?: CollectionBrowserActionReport[]; + agent_browser_actions?: CollectionBrowserActionReport[]; quality?: { records?: CollectionRecordQuality[]; }; @@ -124,9 +129,25 @@ interface CollectionSourceOutcome { interface CollectionRepairLoopReport { loop_index?: number; repair_queries?: string[]; + browser_actions?: CollectionBrowserActionReport[]; + agent_browser_actions?: CollectionBrowserActionReport[]; stats?: CollectionPhaseStats; } +interface CollectionBrowserActionReport { + action?: string; + url?: string; + selector?: string; + target_text?: string; + targetText?: string; + value_description?: string; + valueDescription?: string; + status?: string; + error?: string; + phase?: string; + label?: string; +} + const AGENT_REQUIRED_TRIAGE_STATUSES = new Set([ "requires_navigation", "requires_form_submission", @@ -312,8 +333,25 @@ function collectionProcessTrace(input: { }, }); } + steps.push(...browserTraceStepsFromReports({ + reports: [ + ...(loop.browser_actions ?? []), + ...(loop.agent_browser_actions ?? []), + ], + defaultPhase: `repair-loop-${loop.loop_index ?? "unknown"}`, + })); } + steps.push(...browserTraceStepsFromReports({ + reports: [ + ...(report.browser_actions ?? []), + ...(report.agent_browser_actions ?? []), + ...(report.initial?.browser_actions ?? []), + ...(report.initial?.agent_browser_actions ?? []), + ], + defaultPhase: "initial", + })); + for (const outcome of report.sources?.outcomes ?? []) { if (!outcome.url) { continue; @@ -358,6 +396,92 @@ function collectionDebugNotes(report: CollectionPipelineResult["report"]): strin return notes; } +function browserTraceStepsFromReports(input: { + reports: CollectionBrowserActionReport[]; + defaultPhase: string; +}): PopulateRuntimeTraceStep[] { + return input.reports + .map((report) => browserTraceStepFromReport({ + report, + defaultPhase: input.defaultPhase, + })) + .filter((step): step is PopulateRuntimeTraceStep => Boolean(step)); +} + +function browserTraceStepFromReport(input: { + report: CollectionBrowserActionReport; + defaultPhase: string; +}): PopulateRuntimeTraceStep | undefined { + const browserAction = browserActionFromReport(input.report); + if (!browserAction) { + return undefined; + } + + return { + kind: "browser", + label: input.report.label ?? `collection-browser-${browserAction.action}`, + status: browserActionTraceStatus(input.report.status), + input: { + url: browserAction.url, + selector: browserAction.selector, + targetText: browserAction.targetText, + phase: input.report.phase ?? input.defaultPhase, + }, + error: input.report.error, + browserAction, + }; +} + +function browserActionFromReport( + report: CollectionBrowserActionReport +): PopulateRuntimeBrowserAction | undefined { + const action = browserActionKind(report.action); + const targetText = report.targetText ?? report.target_text; + const valueDescription = + report.valueDescription ?? report.value_description; + if (!report.url && !report.selector && !targetText) { + return undefined; + } + return { + action, + url: report.url, + selector: report.selector, + targetText, + valueDescription, + }; +} + +function browserActionKind( + value: string | undefined +): PopulateRuntimeBrowserAction["action"] { + const normalized = value?.trim().toLowerCase(); + if ( + normalized === "navigate" || + normalized === "click" || + normalized === "type" || + normalized === "select" || + normalized === "wait" || + normalized === "extract" || + normalized === "screenshot" + ) { + return normalized; + } + return "unknown"; +} + +function browserActionTraceStatus( + value: string | undefined +): PopulateRuntimeTraceStep["status"] { + const normalized = value?.trim().toLowerCase(); + if (normalized === "failed" || normalized === "error") { + return "failed"; + } + if (normalized === "skipped") { + return "skipped"; + } + return "succeeded"; +} + function sourceOutcomeTraceKind(outcome: CollectionSourceOutcome): PopulateRuntimeTraceStep["kind"] { if (outcome.outcome?.startsWith("agent_")) { return "agent"; diff --git a/backend/test/collection-agent-runner.test.ts b/backend/test/collection-agent-runner.test.ts index 4907f91..2b32b9b 100644 --- a/backend/test/collection-agent-runner.test.ts +++ b/backend/test/collection-agent-runner.test.ts @@ -2,6 +2,7 @@ import assert from "node:assert/strict"; import { test } from "node:test"; import { runCollectionPopulatePipeline } from "../src/pipeline/collection-agent-runner.js"; +import { playwrightCandidateReadinessForRun } from "../src/pipeline/populate-playwright-readiness.js"; test("collection agent runner maps vendored pipeline output into populate runtime result", async () => { const previousEnv = snapshotEnv([ @@ -53,6 +54,77 @@ test("collection agent runner maps vendored pipeline output into populate runtim ), true ); + assert.equal( + result.debug?.processTrace.steps.some((step) => step.kind === "browser"), + false + ); + } finally { + restoreEnv(previousEnv); + } +}); + +test("collection agent runner maps explicit browser action reports into process trace", async () => { + const previousEnv = snapshotEnv([ + "AGENT_POLL_TIMEOUT_MS", + "COLLECTION_AGENT_ENABLE_AGENT", + "COLLECTION_AGENT_PIPELINE_MODULE", + "COLLECTION_AGENT_POLL_TIMEOUT_MS", + ]); + delete process.env.AGENT_POLL_TIMEOUT_MS; + process.env.COLLECTION_AGENT_ENABLE_AGENT = "true"; + delete process.env.COLLECTION_AGENT_POLL_TIMEOUT_MS; + process.env.COLLECTION_AGENT_PIPELINE_MODULE = fakeCollectionPipelineModuleUrl({ + expectedCalls: [{ agentEnabled: true, pollTimeoutMs: 480_000 }], + browserActions: [ + { + action: "hover", + url: "https://openai.com/news", + status: "succeeded", + phase: "initial-browser", + label: "browser-open-news", + }, + ], + agentBrowserActions: [ + { + action: "click", + url: "https://openai.com/news", + selector: "a[href*='/news/']", + target_text: "Release notes", + value_description: "not captured", + status: "succeeded", + }, + ], + }); + try { + const result = await runCollectionPopulatePipeline(collectionPipelineInput()); + const browserSteps = result.debug?.processTrace.steps.filter( + (step) => step.kind === "browser" + ) ?? []; + + assert.equal(browserSteps.length, 2); + assert.equal(browserSteps[0]?.browserAction?.action, "unknown"); + assert.equal(browserSteps[0]?.label, "browser-open-news"); + assert.deepEqual(browserSteps[0]?.input, { + url: "https://openai.com/news", + selector: undefined, + targetText: undefined, + phase: "initial-browser", + }); + assert.equal(browserSteps[0]?.error, undefined); + assert.equal(browserSteps[1]?.browserAction?.action, "click"); + assert.equal(browserSteps[1]?.browserAction?.selector, "a[href*='/news/']"); + assert.equal(browserSteps[1]?.browserAction?.targetText, "Release notes"); + assert.equal(browserSteps[1]?.browserAction?.valueDescription, "not captured"); + assert.equal(browserSteps[1]?.status, "succeeded"); + assert.deepEqual( + playwrightCandidateReadinessForRun({ result }), + { + status: "ready", + reasons: [], + browserStepCount: 2, + sourceUrlCount: 2, + } + ); } finally { restoreEnv(previousEnv); } @@ -182,6 +254,8 @@ function fakeCollectionPipelineModuleUrl(input: { pollTimeoutMs?: number; }>; sources?: unknown; + browserActions?: unknown; + agentBrowserActions?: unknown; }): string { const source = ` const moduleLoadPollTimeoutMs = process.env.AGENT_POLL_TIMEOUT_MS ?? null; @@ -275,6 +349,8 @@ function fakeCollectionPipelineModuleUrl(input: { "OpenAI latest AI blog posts", "OpenAI release notes", ], + browser_actions: ${JSON.stringify(input.browserActions ?? [])}, + agent_browser_actions: ${JSON.stringify(input.agentBrowserActions ?? [])}, fetched_urls: [ "https://openai.com/news", "https://openai.com/research", diff --git a/benchmarks/dataset-agent/README.md b/benchmarks/dataset-agent/README.md index ce88a3d..418dc9d 100644 --- a/benchmarks/dataset-agent/README.md +++ b/benchmarks/dataset-agent/README.md @@ -88,6 +88,26 @@ and fetch URLs alone are not enough. The readiness gate expects real browser actions such as URL transitions, selectors, target text, or redacted input descriptions before any `playwright-candidate-script` can be emitted. +Collection runners can feed those actions through explicit report fields such +as `browser_actions` or `agent_browser_actions`. BigSet maps only those explicit +actions into `browser` trace steps; it does not infer selectors or clicks from +URLs, source outcomes, or prose diagnostics. + +Mapping is mechanical: + +- `target_text` / `targetText` -> `browserAction.targetText` +- `value_description` / `valueDescription` -> `browserAction.valueDescription` +- `status` -> `step.status` +- `error` -> `step.error` +- `phase` -> `step.input.phase` +- unknown action strings -> `browserAction.action = "unknown"` + +When both action arrays are present in the same report scope, BigSet preserves +array order by appending `browser_actions` first and `agent_browser_actions` +second. This is an ingestion contract for a future Meteor/Mengzhe producer or +Agent canary; it does not mean the current vendored pipeline already emits +browser actions. + ## Verify Self-Healing Stack Use this before asking someone else to migrate a new collection agent into the diff --git a/docs/data-collection-agent-migration-plan.md b/docs/data-collection-agent-migration-plan.md index 8175714..8430973 100644 --- a/docs/data-collection-agent-migration-plan.md +++ b/docs/data-collection-agent-migration-plan.md @@ -97,6 +97,13 @@ The current layer now can: - represent browser actions in the trace contract when a future Agent/canary records URL transitions, selectors, target text, or redacted input descriptions +- ingest explicit collection runner `browser_actions` / + `agent_browser_actions` report fields into `browser` trace steps without + inferring missing clicks, selectors, or form inputs from source URLs +- map browser action reports mechanically: `target_text` to `targetText`, + `value_description` to `valueDescription`, `status` to the trace-step status, + `error` to the trace-step error, `phase` to `step.input.phase`, and unknown + action names to `browserAction.action = "unknown"` - emit a capability diagnostic when no-Agent mode sees pages that need browser, form, or detail-page follow-up @@ -111,6 +118,8 @@ The current layer does not yet: - compile search/fetch-only traces into Playwright; traces must include actionable browser steps before the script compiler is allowed to emit a candidate +- infer browser selectors, clicks, or form values from source outcomes; the + collection runner or Agent canary must emit those as explicit action fields - run a green live Convex canary in this local environment - prove Agent-enabled collection quality on a full real benchmark - prove the collection runtime should replace Mastra as the default app runtime @@ -177,6 +186,8 @@ The current layer does not yet: - browser-step trace canary that records URL transitions, selectors/targets, and redacted form-input descriptions before any Playwright compiler is enabled + - confirm the canary emits explicit `agent_browser_actions` or equivalent + fields in the collection report; source outcomes alone are not enough - full benchmark only after the 2-prompt run is not obviously broken - live `--dataset-id` dry-run only after Convex/env prerequisites are ready - `--commit` only on a throwaway dataset first @@ -233,6 +244,12 @@ collection runner ignores `recipeInstructions`, repaired recipes cannot change future behavior. If it ignores `requiredColumns` or benchmark metadata, the benchmark can stop measuring the same task. +For the Playwright handoff, Meteor can optionally emit `browser_actions` and +`agent_browser_actions` in the collection report. BigSet preserves each array's +order and appends `browser_actions` before `agent_browser_actions` when both are +present in the same report scope. This is a wrapper ingestion contract only; the +current vendored pipeline is not claimed to emit those fields yet. + The real benchmark command after a runner module exists is: ```bash From 05f2e9b3f55908c0200ca2314ac1f885a3307ba6 Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 06:42:48 +0700 Subject: [PATCH 04/21] Preserve Agent browser actions in reports --- .../src/models/schemas.ts | 19 +++ .../src/orchestrator/browser-actions.ts | 99 +++++++++++ .../src/orchestrator/pipeline.ts | 5 + .../src/orchestrator/process-pages.ts | 12 ++ .../src/orchestrator/repair-loop.ts | 4 + .../test/collection-browser-actions.test.ts | 158 ++++++++++++++++++ benchmarks/dataset-agent/README.md | 6 + docs/data-collection-agent-migration-plan.md | 9 + 8 files changed, 312 insertions(+) create mode 100644 backend/BigSet_Data_Collection_Agent/src/orchestrator/browser-actions.ts create mode 100644 backend/test/collection-browser-actions.test.ts diff --git a/backend/BigSet_Data_Collection_Agent/src/models/schemas.ts b/backend/BigSet_Data_Collection_Agent/src/models/schemas.ts index fe1a059..324146b 100644 --- a/backend/BigSet_Data_Collection_Agent/src/models/schemas.ts +++ b/backend/BigSet_Data_Collection_Agent/src/models/schemas.ts @@ -102,6 +102,22 @@ export const agentGoalSchema = z.object({ export type AgentGoal = z.infer; +export const browserActionReportSchema = z.object({ + action: z.string().optional(), + url: z.string().optional(), + selector: z.string().optional(), + target_text: z.string().optional(), + targetText: z.string().optional(), + value_description: z.string().optional(), + valueDescription: z.string().optional(), + status: z.string().optional(), + error: z.string().optional(), + phase: z.string().optional(), + label: z.string().optional(), +}); + +export type BrowserActionReport = z.infer; + export const agentRunRecordSchema = z.object({ url: z.string(), status: sourceStatusSchema, @@ -110,6 +126,7 @@ export const agentRunRecordSchema = z.object({ goal: z.string(), records_extracted: z.number(), error: z.string().optional(), + browser_actions: z.array(browserActionReportSchema).optional(), }); export type AgentRunRecord = z.infer; @@ -152,6 +169,7 @@ export const repairLoopReportSchema = z.object({ loop_index: z.number().int().positive(), diagnosis_summary: z.string().optional(), repair_queries: z.array(z.string()), + agent_browser_actions: z.array(browserActionReportSchema).optional(), rationale: z.string().optional(), missing_fields: z.array(z.string()), records_before: z.number(), @@ -198,6 +216,7 @@ export const runReportSchema = z.object({ search_queries: z.array(z.string()), fetched_urls: z.array(z.string()), failed_urls: z.array(z.string()), + agent_browser_actions: z.array(browserActionReportSchema).optional(), }), repair: repairReportSchema, search_queries: z.array(z.string()), diff --git a/backend/BigSet_Data_Collection_Agent/src/orchestrator/browser-actions.ts b/backend/BigSet_Data_Collection_Agent/src/orchestrator/browser-actions.ts new file mode 100644 index 0000000..0f79044 --- /dev/null +++ b/backend/BigSet_Data_Collection_Agent/src/orchestrator/browser-actions.ts @@ -0,0 +1,99 @@ +import { + browserActionReportSchema, + type AgentRunRecord, + type BrowserActionReport, +} from "../models/schemas.js"; + +const EXPLICIT_BROWSER_ACTION_ARRAY_KEYS = [ + "browser_actions", + "agent_browser_actions", +] as const; + +export function explicitBrowserActionsFromAgentResult( + input: { + agentResult: Record | null; + pageUrl: string; + } +): BrowserActionReport[] { + if (!input.agentResult) { + return []; + } + + const actions: BrowserActionReport[] = []; + for (const key of EXPLICIT_BROWSER_ACTION_ARRAY_KEYS) { + actions.push(...browserActionsFromValue(input.agentResult[key], input.pageUrl)); + } + return dedupeBrowserActions(actions); +} + +export function explicitBrowserActionsFromAgentRuns( + agentRuns: AgentRunRecord[] +): BrowserActionReport[] { + return dedupeBrowserActions( + agentRuns.flatMap((run) => run.browser_actions ?? []) + ); +} + +function browserActionsFromValue( + value: unknown, + pageUrl: string +): BrowserActionReport[] { + if (Array.isArray(value)) { + return value + .map((item) => browserActionFromValue(item, pageUrl)) + .filter((action): action is BrowserActionReport => Boolean(action)); + } + const action = browserActionFromValue(value, pageUrl); + return action ? [action] : []; +} + +function browserActionFromValue( + value: unknown, + pageUrl: string +): BrowserActionReport | undefined { + if (!value || typeof value !== "object" || Array.isArray(value)) { + return undefined; + } + const parsed = browserActionReportSchema.safeParse(value); + if (!parsed.success || !hasReplayAnchor(parsed.data)) { + return undefined; + } + return { + ...parsed.data, + url: parsed.data.url ?? pageUrl, + }; +} + +function hasReplayAnchor(action: BrowserActionReport): boolean { + return Boolean( + action.url || + action.selector || + action.target_text || + action.targetText + ); +} + +function dedupeBrowserActions( + actions: BrowserActionReport[] +): BrowserActionReport[] { + const seen = new Set(); + const deduped: BrowserActionReport[] = []; + for (const action of actions) { + const key = JSON.stringify([ + action.action ?? "", + action.url ?? "", + action.selector ?? "", + action.target_text ?? action.targetText ?? "", + action.status ?? "", + action.error ?? "", + action.phase ?? "", + action.label ?? "", + ]); + if (seen.has(key)) { + continue; + } + seen.add(key); + deduped.push(action); + } + return deduped; +} diff --git a/backend/BigSet_Data_Collection_Agent/src/orchestrator/pipeline.ts b/backend/BigSet_Data_Collection_Agent/src/orchestrator/pipeline.ts index ae6af0d..a8c409a 100644 --- a/backend/BigSet_Data_Collection_Agent/src/orchestrator/pipeline.ts +++ b/backend/BigSet_Data_Collection_Agent/src/orchestrator/pipeline.ts @@ -48,6 +48,7 @@ import { type RunPaths, } from "../storage/run-store.js"; import { normalizeUrl } from "../utils/url.js"; +import { explicitBrowserActionsFromAgentRuns } from "./browser-actions.js"; export interface PipelineOptions { prompt: string; @@ -545,6 +546,9 @@ async function executeRunPipeline( const visualizationCount = benchmarkVisualizationRecords.length; const llmUsage = getCurrentLlmUsage(); + const initialAgentBrowserActions = explicitBrowserActionsFromAgentRuns( + initialAcquisition.agentRuns, + ); const report: RunReport = { run_id: runId, @@ -586,6 +590,7 @@ async function executeRunPipeline( search_queries: initialQueries, fetched_urls: initialAcquisition.fetchedUrls, failed_urls: initialAcquisition.failedUrls, + agent_browser_actions: initialAgentBrowserActions, }, repair: repairReport, search_queries: allSearchQueries, diff --git a/backend/BigSet_Data_Collection_Agent/src/orchestrator/process-pages.ts b/backend/BigSet_Data_Collection_Agent/src/orchestrator/process-pages.ts index 4009569..5ae6a9c 100644 --- a/backend/BigSet_Data_Collection_Agent/src/orchestrator/process-pages.ts +++ b/backend/BigSet_Data_Collection_Agent/src/orchestrator/process-pages.ts @@ -26,6 +26,7 @@ import { } from "../queue/pools.js"; import { saveJson, type RunPaths } from "../storage/run-store.js"; import { getDomain } from "../utils/url.js"; +import { explicitBrowserActionsFromAgentResult } from "./browser-actions.js"; import { join } from "node:path"; export interface AgentDeferredEntry { @@ -408,6 +409,11 @@ export async function processFetchedPages(options: { return; } + const browserActions = explicitBrowserActionsFromAgentResult({ + agentResult: run.result, + pageUrl, + }); + try { const agentRecords = await extractFromAgentResult({ spec: options.spec, @@ -432,6 +438,9 @@ export async function processFetchedPages(options: { agent_status: run.status, goal: job.goal, records_extracted: agentRecords.length, + browser_actions: browserActions.length > 0 + ? browserActions + : undefined, }); options.log( @@ -450,6 +459,9 @@ export async function processFetchedPages(options: { goal: job.goal, records_extracted: 0, error: msg, + browser_actions: browserActions.length > 0 + ? browserActions + : undefined, }); } }, diff --git a/backend/BigSet_Data_Collection_Agent/src/orchestrator/repair-loop.ts b/backend/BigSet_Data_Collection_Agent/src/orchestrator/repair-loop.ts index 892f531..1def4e9 100644 --- a/backend/BigSet_Data_Collection_Agent/src/orchestrator/repair-loop.ts +++ b/backend/BigSet_Data_Collection_Agent/src/orchestrator/repair-loop.ts @@ -29,6 +29,7 @@ import { runAcquisitionPhase, type AcquisitionResult, } from "./acquisition.js"; +import { explicitBrowserActionsFromAgentRuns } from "./browser-actions.js"; export interface RepairLoopContext { userPrompt: string; @@ -235,6 +236,9 @@ export async function runRepairLoops(options: { loop_index: loopIndex, diagnosis_summary: diagnosis.summary, repair_queries: repairPlan.repair_queries, + agent_browser_actions: explicitBrowserActionsFromAgentRuns( + acquisition.agentRuns + ), rationale: repairPlan.rationale, missing_fields: coverage.field_gaps.map((gap) => gap.column), records_before: recordsBeforeLoop.length, diff --git a/backend/test/collection-browser-actions.test.ts b/backend/test/collection-browser-actions.test.ts new file mode 100644 index 0000000..7f76056 --- /dev/null +++ b/backend/test/collection-browser-actions.test.ts @@ -0,0 +1,158 @@ +import assert from "node:assert/strict"; +import { test } from "node:test"; + +import { + explicitBrowserActionsFromAgentResult, + explicitBrowserActionsFromAgentRuns, +} from "../BigSet_Data_Collection_Agent/src/orchestrator/browser-actions.js"; +import { + agentRunRecordSchema, + runReportSchema, +} from "../BigSet_Data_Collection_Agent/src/models/schemas.js"; + +test("explicit browser actions are copied from Agent results without generic inference", () => { + const actions = explicitBrowserActionsFromAgentResult({ + pageUrl: "https://example.com/start", + agentResult: { + browser_actions: [ + { + action: "navigate", + url: "https://example.com/start", + status: "succeeded", + phase: "initial", + }, + "not an action", + ], + agent_browser_actions: [{ + action: "click", + selector: "button[type=submit]", + target_text: "Submit", + value_description: "redacted", + status: "succeeded", + }], + actions: [{ + action: "click", + selector: "#generic-actions-are-ignored", + }], + }, + }); + + assert.equal(actions.length, 2); + assert.deepEqual(actions[0], { + action: "navigate", + url: "https://example.com/start", + status: "succeeded", + phase: "initial", + }); + assert.deepEqual(actions[1], { + action: "click", + url: "https://example.com/start", + selector: "button[type=submit]", + target_text: "Submit", + value_description: "redacted", + status: "succeeded", + }); +}); + +test("Agent run records and run reports persist browser action arrays", () => { + const browserActions = [{ + action: "click", + url: "https://example.com/start", + selector: "button[type=submit]", + target_text: "Submit", + value_description: "redacted", + status: "succeeded", + phase: "initial", + }]; + const agentRun = agentRunRecordSchema.parse({ + url: "https://example.com/start", + status: "requires_form_submission", + run_id: "run-1", + agent_status: "COMPLETED", + goal: "Submit the form and extract the result.", + records_extracted: 1, + browser_actions: browserActions, + }); + + assert.deepEqual( + explicitBrowserActionsFromAgentRuns([agentRun]), + browserActions + ); + + const report = runReportSchema.parse({ + run_id: "run-1", + prompt: "Find form-backed data.", + target_rows: 1, + started_at: "2026-05-23T00:00:00.000Z", + finished_at: "2026-05-23T00:00:01.000Z", + duration_ms: 1_000, + dataset_spec: datasetSpec(), + stats: { + ...phaseStats(), + records_after_merge: 1, + visualization_records: 1, + }, + initial: { + ...phaseStats(), + search_queries: ["example form"], + fetched_urls: ["https://example.com/start"], + failed_urls: [], + agent_browser_actions: browserActions, + }, + repair: { + attempted: true, + total_loops: 1, + loops: [{ + loop_index: 1, + repair_queries: ["example form details"], + agent_browser_actions: browserActions, + missing_fields: [], + records_before: 0, + records_after: 1, + fields_filled: {}, + stats: phaseStats(), + }], + missing_fields: [], + repair_queries: ["example form details"], + records_before: 0, + records_after: 1, + fields_filled: {}, + stats: phaseStats(), + }, + search_queries: ["example form", "example form details"], + fetched_urls: ["https://example.com/start"], + failed_urls: [], + errors: [], + }); + + assert.deepEqual(report.initial.agent_browser_actions, browserActions); + assert.deepEqual(report.repair.loops[0]?.agent_browser_actions, browserActions); +}); + +function datasetSpec() { + return { + intent_summary: "Find form-backed data.", + target_row_count: 1, + row_grain: "company", + columns: [{ + name: "entity_name", + type: "string", + description: "Entity name", + required: true, + }], + dedupe_keys: ["entity_name"], + search_queries: ["example form"], + extraction_hints: "Use source-backed rows.", + }; +} + +function phaseStats() { + return { + search_queries_executed: 1, + search_results_collected: 1, + unique_urls_selected: 1, + pages_fetched: 1, + pages_failed: 0, + raw_records_extracted: 1, + }; +} diff --git a/benchmarks/dataset-agent/README.md b/benchmarks/dataset-agent/README.md index 418dc9d..522020e 100644 --- a/benchmarks/dataset-agent/README.md +++ b/benchmarks/dataset-agent/README.md @@ -108,6 +108,12 @@ second. This is an ingestion contract for a future Meteor/Mengzhe producer or Agent canary; it does not mean the current vendored pipeline already emits browser actions. +When TinyFish Agent result JSON includes explicit `browser_actions` or +`agent_browser_actions`, the vendored runner preserves those arrays in +`agent_runs_*.json` and phase-scoped `run_report.json` fields. Generic +`actions` arrays are ignored because they are not browser-specific enough to +replay honestly. + ## Verify Self-Healing Stack Use this before asking someone else to migrate a new collection agent into the diff --git a/docs/data-collection-agent-migration-plan.md b/docs/data-collection-agent-migration-plan.md index 8430973..19aa567 100644 --- a/docs/data-collection-agent-migration-plan.md +++ b/docs/data-collection-agent-migration-plan.md @@ -100,6 +100,9 @@ The current layer now can: - ingest explicit collection runner `browser_actions` / `agent_browser_actions` report fields into `browser` trace steps without inferring missing clicks, selectors, or form inputs from source URLs +- preserve explicit `browser_actions` from TinyFish Agent results in + `agent_runs_*.json`, `run_report.initial.agent_browser_actions`, repair-loop + `agent_browser_actions`, without duplicating them into top-level report fields - map browser action reports mechanically: `target_text` to `targetText`, `value_description` to `valueDescription`, `status` to the trace-step status, `error` to the trace-step error, `phase` to `step.input.phase`, and unknown @@ -250,6 +253,12 @@ order and appends `browser_actions` before `agent_browser_actions` when both are present in the same report scope. This is a wrapper ingestion contract only; the current vendored pipeline is not claimed to emit those fields yet. +If TinyFish Agent result JSON includes explicit `browser_actions` or +`agent_browser_actions`, the vendored runner now carries those arrays into the +saved Agent run records and phase-scoped run report fields. Generic `actions` +arrays are intentionally ignored because they are not a browser-specific +contract. + The real benchmark command after a runner module exists is: ```bash From c9f84383df6aef5ecf408fcc1ce42e5ca7e8915f Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 06:53:12 +0700 Subject: [PATCH 05/21] Expose self-healing benchmark diagnostics --- benchmarks/dataset-agent/README.md | 32 ++++++++ .../collection-self-healing-adapter.mjs | 14 +++- .../adapters/self-healing-output.mjs | 75 +++++++++++++++++++ benchmarks/dataset-agent/run-benchmark.mjs | 23 +++++- .../dataset-agent/run-benchmark.test.mjs | 56 ++++++++++++++ docs/data-collection-agent-migration-plan.md | 4 + 6 files changed, 202 insertions(+), 2 deletions(-) create mode 100644 benchmarks/dataset-agent/adapters/self-healing-output.mjs diff --git a/benchmarks/dataset-agent/README.md b/benchmarks/dataset-agent/README.md index 522020e..8385edc 100644 --- a/benchmarks/dataset-agent/README.md +++ b/benchmarks/dataset-agent/README.md @@ -114,6 +114,38 @@ When TinyFish Agent result JSON includes explicit `browser_actions` or `actions` arrays are ignored because they are not browser-specific enough to replay honestly. +The collection self-healing adapter also prints a compact `diagnostics` object +to stdout so benchmark artifacts can answer the Playwright readiness question +without committing raw run folders: + +```json +{ + "diagnostics": { + "selfHealingAction": "generated_initial_recipe", + "artifactKinds": ["process-trace", "playwright-candidate-readiness"], + "processTrace": { + "runtime": "collection", + "stepCount": 12, + "browserStepCount": 1, + "sourceUrlCount": 4 + }, + "playwrightCandidateReadiness": { + "status": "ready", + "browserStepCount": 1, + "sourceUrlCount": 4 + } + } +} +``` + +`summary.json` carries the same high-signal fields on each lane result: +`selfHealingAction`, `selfHealingArtifactKinds`, `processTraceStepCount`, +`processTraceBrowserStepCount`, `playwrightCandidateStatus`, +`playwrightCandidateBrowserStepCount`, and +`playwrightCandidateSourceUrlCount`. Use those fields to verify whether an +Agent canary actually emitted browser actions before starting a Playwright +compiler. + ## Verify Self-Healing Stack Use this before asking someone else to migrate a new collection agent into the diff --git a/benchmarks/dataset-agent/adapters/collection-self-healing-adapter.mjs b/benchmarks/dataset-agent/adapters/collection-self-healing-adapter.mjs index c9480ba..5888e67 100644 --- a/benchmarks/dataset-agent/adapters/collection-self-healing-adapter.mjs +++ b/benchmarks/dataset-agent/adapters/collection-self-healing-adapter.mjs @@ -2,6 +2,8 @@ import { pathToFileURL } from "node:url"; import { resolve } from "node:path"; +import { selfHealingDiagnosticsFromTick } from "./self-healing-output.mjs"; + const prompt = requiredEnv("BIGSET_BENCHMARK_PROMPT"); const promptId = process.env.BIGSET_BENCHMARK_PROMPT_ID ?? "benchmark-prompt"; const promptQuality = process.env.BIGSET_BENCHMARK_PROMPT_QUALITY ?? "unknown"; @@ -87,6 +89,7 @@ const service = new SelfHealingPopulateRecipeService({ }); const tick = await service.tick({ datasetId: context.datasetId, context }); const result = diagnosticRunForTick(tick); +const diagnostics = selfHealingDiagnosticsFromTick({ tick, run: result }); console.log(JSON.stringify({ rows: result?.rows ?? [], @@ -95,7 +98,16 @@ console.log(JSON.stringify({ ...minimumColumnIssues(result?.rows ?? []), ], usage: result?.usage ?? emptyUsage(), - metrics: result?.metrics ?? emptyMetrics(), + metrics: { + ...(result?.metrics ?? emptyMetrics()), + processTraceStepCount: diagnostics.processTrace?.stepCount ?? 0, + processTraceBrowserStepCount: diagnostics.processTrace?.browserStepCount ?? 0, + playwrightCandidateBrowserStepCount: + diagnostics.playwrightCandidateReadiness?.browserStepCount ?? 0, + playwrightCandidateSourceUrlCount: + diagnostics.playwrightCandidateReadiness?.sourceUrlCount ?? 0, + }, + diagnostics, })); async function loadCollectionRunner() { diff --git a/benchmarks/dataset-agent/adapters/self-healing-output.mjs b/benchmarks/dataset-agent/adapters/self-healing-output.mjs new file mode 100644 index 0000000..c901e23 --- /dev/null +++ b/benchmarks/dataset-agent/adapters/self-healing-output.mjs @@ -0,0 +1,75 @@ +export function selfHealingDiagnosticsFromTick({ tick, run }) { + const artifacts = Array.isArray(run?.artifacts) ? run.artifacts : []; + const processTrace = processTraceSummaryFromArtifacts(artifacts); + const playwrightCandidateReadiness = playwrightReadinessFromArtifacts(artifacts); + + return { + selfHealingAction: tick?.action, + recipeId: run?.recipeId, + artifactKinds: artifacts + .map((artifact) => artifact?.kind) + .filter((kind) => typeof kind === "string"), + processTrace, + playwrightCandidateReadiness, + }; +} + +function processTraceSummaryFromArtifacts(artifacts) { + const trace = parsedJsonArtifact(artifacts, "process-trace"); + if (!trace) { + return undefined; + } + const steps = Array.isArray(trace.steps) ? trace.steps : []; + const sourceArtifacts = Array.isArray(trace.sourceArtifacts) + ? trace.sourceArtifacts + : []; + const fetchedUrls = Array.isArray(trace.fetchedUrls) ? trace.fetchedUrls : []; + const searchQueries = Array.isArray(trace.searchQueries) + ? trace.searchQueries + : []; + + return { + runtime: typeof trace.runtime === "string" ? trace.runtime : "unknown", + stepCount: steps.length, + browserStepCount: steps.filter((step) => step?.kind === "browser").length, + sourceUrlCount: new Set([ + ...fetchedUrls, + ...sourceArtifacts + .filter((artifact) => artifact?.status === "succeeded") + .map((artifact) => artifact?.url), + ].filter((url) => typeof url === "string" && /^https?:\/\//i.test(url))).size, + searchQueryCount: searchQueries.length, + fetchedUrlCount: fetchedUrls.length, + }; +} + +function playwrightReadinessFromArtifacts(artifacts) { + const readiness = parsedJsonArtifact(artifacts, "playwright-candidate-readiness"); + if (!readiness) { + return undefined; + } + return { + status: readiness.status === "ready" ? "ready" : "not_ready", + reasons: Array.isArray(readiness.reasons) + ? readiness.reasons.filter((reason) => typeof reason === "string") + : [], + browserStepCount: numberValue(readiness.browserStepCount), + sourceUrlCount: numberValue(readiness.sourceUrlCount), + }; +} + +function parsedJsonArtifact(artifacts, kind) { + const artifact = artifacts.find((candidate) => candidate?.kind === kind); + if (!artifact || typeof artifact.content !== "string") { + return undefined; + } + try { + return JSON.parse(artifact.content); + } catch { + return undefined; + } +} + +function numberValue(value) { + return Number.isFinite(Number(value)) ? Number(value) : 0; +} diff --git a/benchmarks/dataset-agent/run-benchmark.mjs b/benchmarks/dataset-agent/run-benchmark.mjs index 3c3ed9e..a52fa96 100755 --- a/benchmarks/dataset-agent/run-benchmark.mjs +++ b/benchmarks/dataset-agent/run-benchmark.mjs @@ -627,6 +627,18 @@ async function runSystemPrompt(input) { needsReviewCount: validation.needsReviewCount, validationIssueCount: normalized.validationIssues.length, validationIssues: normalized.validationIssues, + selfHealingAction: normalized.diagnostics.selfHealingAction, + selfHealingArtifactKinds: normalized.diagnostics.artifactKinds, + processTraceStepCount: normalized.diagnostics.processTrace?.stepCount, + processTraceBrowserStepCount: + normalized.diagnostics.processTrace?.browserStepCount, + playwrightCandidateStatus: + normalized.diagnostics.playwrightCandidateReadiness?.status, + playwrightCandidateBrowserStepCount: + normalized.diagnostics.playwrightCandidateReadiness?.browserStepCount, + playwrightCandidateSourceUrlCount: + normalized.diagnostics.playwrightCandidateReadiness?.sourceUrlCount, + diagnostics: normalized.diagnostics, usage, searchCallCount: normalized.metrics.searchCallCount, fetchCallCount: normalized.metrics.fetchCallCount, @@ -930,7 +942,7 @@ function extractLastJsonObject(value) { return null; } -function normalizePayload(payload) { +export function normalizePayload(payload) { const rows = arrayValue( payload?.rows ?? payload?.data ?? @@ -943,10 +955,12 @@ function normalizePayload(payload) { ); const metrics = payload?.metrics ?? payload?.benchmarkMetrics ?? {}; const usage = normalizeUsage(payload?.usage ?? metrics.usage ?? metrics); + const diagnostics = objectValue(payload?.diagnostics); return { rows, validationIssues, + diagnostics, usage, metrics: { searchCallCount: numberValue(metrics.searchCallCount ?? metrics.searchCalls), @@ -1681,6 +1695,13 @@ function arrayValue(value) { return Array.isArray(value) ? value : []; } +function objectValue(value) { + if (!value || Array.isArray(value) || typeof value !== "object") { + return {}; + } + return value; +} + function stringArrayValue(value) { if (Array.isArray(value)) { return value.filter((item) => typeof item === "string"); diff --git a/benchmarks/dataset-agent/run-benchmark.test.mjs b/benchmarks/dataset-agent/run-benchmark.test.mjs index 773557a..377cdff 100644 --- a/benchmarks/dataset-agent/run-benchmark.test.mjs +++ b/benchmarks/dataset-agent/run-benchmark.test.mjs @@ -4,8 +4,10 @@ import { test } from "node:test"; import { failureReason, findInfrastructureBlockerReason, + normalizePayload, scoreBenchmarkRows, } from "./run-benchmark.mjs"; +import { selfHealingDiagnosticsFromTick } from "./adapters/self-healing-output.mjs"; const passingValidation = { rowCount: 1, @@ -177,3 +179,57 @@ test("domain scoring counts product, careers, and docs URL cells", () => { assert.equal(score.domainAccuracyRatio, 1, `${item.label} domain`); } }); + +test("self-healing diagnostics summarize trace and readiness artifacts", () => { + const diagnostics = selfHealingDiagnosticsFromTick({ + tick: { action: "generated_initial_recipe" }, + run: { + recipeId: "recipe-v1", + artifacts: [ + { + kind: "process-trace", + content: JSON.stringify({ + runtime: "collection", + searchQueries: ["example"], + fetchedUrls: ["https://example.com"], + sourceArtifacts: [{ + url: "https://example.com", + status: "succeeded", + }], + steps: [ + { kind: "search" }, + { kind: "browser" }, + ], + }), + }, + { + kind: "playwright-candidate-readiness", + content: JSON.stringify({ + status: "ready", + reasons: [], + browserStepCount: 1, + sourceUrlCount: 1, + }), + }, + ], + }, + }); + const normalized = normalizePayload({ + rows: [], + validationIssues: [], + diagnostics, + }); + + assert.equal(normalized.diagnostics.selfHealingAction, "generated_initial_recipe"); + assert.deepEqual(normalized.diagnostics.artifactKinds, [ + "process-trace", + "playwright-candidate-readiness", + ]); + assert.equal(normalized.diagnostics.processTrace.runtime, "collection"); + assert.equal(normalized.diagnostics.processTrace.stepCount, 2); + assert.equal(normalized.diagnostics.processTrace.browserStepCount, 1); + assert.equal( + normalized.diagnostics.playwrightCandidateReadiness.status, + "ready" + ); +}); diff --git a/docs/data-collection-agent-migration-plan.md b/docs/data-collection-agent-migration-plan.md index 19aa567..359945b 100644 --- a/docs/data-collection-agent-migration-plan.md +++ b/docs/data-collection-agent-migration-plan.md @@ -191,6 +191,10 @@ The current layer does not yet: enabled - confirm the canary emits explicit `agent_browser_actions` or equivalent fields in the collection report; source outcomes alone are not enough + - check `summary.json` for `playwrightCandidateStatus`, + `processTraceBrowserStepCount`, and + `playwrightCandidateBrowserStepCount` so the canary proves browser-action + provenance, not only row/evidence quality - full benchmark only after the 2-prompt run is not obviously broken - live `--dataset-id` dry-run only after Convex/env prerequisites are ready - `--commit` only on a throwaway dataset first From f5a6e77439a800a967e4c0ceab41723776872394 Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 07:10:13 +0700 Subject: [PATCH 06/21] Gate benchmark runs on Playwright readiness --- benchmarks/dataset-agent/README.md | 18 ++ benchmarks/dataset-agent/run-benchmark.mjs | 160 ++++++++++++++++-- .../dataset-agent/run-benchmark.test.mjs | 150 ++++++++++++++++ docs/data-collection-agent-migration-plan.md | 2 + 4 files changed, 313 insertions(+), 17 deletions(-) diff --git a/benchmarks/dataset-agent/README.md b/benchmarks/dataset-agent/README.md index 8385edc..5737d79 100644 --- a/benchmarks/dataset-agent/README.md +++ b/benchmarks/dataset-agent/README.md @@ -146,6 +146,24 @@ without committing raw run folders: Agent canary actually emitted browser actions before starting a Playwright compiler. +For browser-action canaries, add `--require-playwright-ready` to make the +benchmark fail with `failureCategory: "capability_gate"` unless the +`playwright-candidate-readiness` artifact is `ready`. This gate uses the +readiness artifact, not raw browser step counts, so it still requires +actionable browser steps, source anchors, and no Agent-disabled diagnostic. + +```bash +COLLECTION_AGENT_ENABLE_AGENT=true \ +COLLECTION_AGENT_POLL_TIMEOUT_MS=480000 \ +COLLECTION_AGENT_PIPELINE_MODULE=./backend/BigSet_Data_Collection_Agent/src/orchestrator/pipeline.ts \ +BIGSET_COLLECTION_BENCHMARK_RUNNER_MODULE=./backend/src/pipeline/collection-agent-runner.ts \ +node benchmarks/dataset-agent/run-benchmark.mjs \ + --require-playwright-ready \ + --prompt-ids mcp-docs-pages \ + --timeout-ms 900000 \ + --system collection-self-heal='node --import ./backend/node_modules/tsx/dist/esm/index.mjs benchmarks/dataset-agent/adapters/collection-self-healing-adapter.mjs' +``` + ## Verify Self-Healing Stack Use this before asking someone else to migrate a new collection agent into the diff --git a/benchmarks/dataset-agent/run-benchmark.mjs b/benchmarks/dataset-agent/run-benchmark.mjs index a52fa96..1fe09c2 100755 --- a/benchmarks/dataset-agent/run-benchmark.mjs +++ b/benchmarks/dataset-agent/run-benchmark.mjs @@ -567,11 +567,19 @@ async function runSystemPrompt(input) { parsedPayload, normalized, }); - const status = infraBlockerReason - ? "blocked" - : execution.exitCode === 0 && parsedPayload && answerKeyScore.passed - ? "ok" - : "failed"; + const capabilityGateReason = infraBlockerReason + ? null + : playwrightReadinessGateReason({ + diagnostics: normalized.diagnostics, + requirePlaywrightReady: input.config.requirePlaywrightReady, + }); + const status = benchmarkStatusForOutcome({ + execution, + parsedPayload, + answerKeyScore, + infraBlockerReason, + capabilityGateReason, + }); const promptRunDirectory = join( input.runDirectory, @@ -597,9 +605,12 @@ async function runSystemPrompt(input) { expectedStress: input.promptDefinition.expectedStress, answerKey: answerKeyForPrompt(input.promptDefinition), status, - failureCategory: status === "ok" ? undefined : ( - infraBlockerReason ? "infra" : answerKeyScore.failureCategory - ), + failureCategory: failureCategoryForOutcome({ + status, + infraBlockerReason, + capabilityGateReason, + answerKeyScore, + }), factualAccuracyScore: answerKeyScore.factualAccuracyScore, entityCoverageRatio: answerKeyScore.entityCoverageRatio, domainAccuracyRatio: answerKeyScore.domainAccuracyRatio, @@ -657,6 +668,7 @@ async function runSystemPrompt(input) { validation, answerKeyScore, infraBlockerReason, + capabilityGateReason, minRequiredCompleteness: input.config.minRequiredCompleteness, validationIssues: normalized.validationIssues, }), @@ -758,6 +770,7 @@ function parseArgs(args) { tinyFishAgentStepUsd: 0.015, minRequiredCompleteness: 0.75, minFactualAccuracy: defaultMinimumFactualAccuracy, + requirePlaywrightReady: false, }; for (let index = 0; index < args.length; index += 1) { @@ -797,6 +810,8 @@ function parseArgs(args) { } else if (arg === "--min-factual-accuracy") { config.minFactualAccuracy = nonNegativeNumber(value, config.minFactualAccuracy); index += 1; + } else if (arg === "--require-playwright-ready") { + config.requirePlaywrightReady = true; } else if (arg === "--help" || arg === "-h") { printHelpAndExit(); } else { @@ -972,6 +987,71 @@ export function normalizePayload(payload) { }; } +export function playwrightReadinessGateReason({ + diagnostics, + requirePlaywrightReady, +}) { + if (!requirePlaywrightReady) { + return null; + } + const readiness = diagnostics?.playwrightCandidateReadiness; + if (!readiness || typeof readiness !== "object") { + return "Playwright readiness gate failed: missing playwrightCandidateReadiness diagnostics."; + } + const reasons = stringArrayValue(readiness.reasons); + if (readiness.status !== "ready") { + return [ + "Playwright readiness gate failed:", + reasons.length > 0 + ? reasons.join("; ") + : `status is ${String(readiness.status ?? "missing")}.`, + ].join(" "); + } + if (numberValue(readiness.browserStepCount) <= 0) { + return "Playwright readiness gate failed: no actionable browser steps."; + } + if (numberValue(readiness.sourceUrlCount) <= 0) { + return "Playwright readiness gate failed: no source URLs to anchor replay."; + } + return null; +} + +export function benchmarkStatusForOutcome({ + execution, + parsedPayload, + answerKeyScore, + infraBlockerReason, + capabilityGateReason, +}) { + if (infraBlockerReason) { + return "blocked"; + } + if (capabilityGateReason) { + return "failed"; + } + return execution.exitCode === 0 && parsedPayload && answerKeyScore.passed + ? "ok" + : "failed"; +} + +export function failureCategoryForOutcome({ + status, + infraBlockerReason, + capabilityGateReason, + answerKeyScore, +}) { + if (status === "ok") { + return undefined; + } + if (infraBlockerReason) { + return "infra"; + } + if (capabilityGateReason) { + return "capability_gate"; + } + return answerKeyScore.failureCategory; +} + function normalizeUsage(value) { return { promptTokens: numberValue(value?.promptTokens ?? value?.inputTokens ?? value?.prompt_tokens), @@ -1041,7 +1121,7 @@ function evaluateRows({ rows, promptDefinition }) { }; } -async function rescoreBenchmarkRun({ runDirectory, prompts, config }) { +export async function rescoreBenchmarkRun({ runDirectory, prompts, config }) { const previousSummary = JSON.parse(await readFile(join(runDirectory, "summary.json"), "utf8")); const promptsById = new Map(prompts.map((promptDefinition) => [ promptDefinition.id, @@ -1089,11 +1169,19 @@ async function rescoreBenchmarkRun({ runDirectory, prompts, config }) { parsedPayload: usablePayload, normalized, }); - const status = infraBlockerReason - ? "blocked" - : execution.exitCode === 0 && usablePayload && answerKeyScore.passed - ? "ok" - : "failed"; + const capabilityGateReason = infraBlockerReason + ? null + : playwrightReadinessGateReason({ + diagnostics: normalized.diagnostics, + requirePlaywrightReady: config.requirePlaywrightReady, + }); + const status = benchmarkStatusForOutcome({ + execution, + parsedPayload: usablePayload, + answerKeyScore, + infraBlockerReason, + capabilityGateReason, + }); rescoredLaneResults.push({ ...laneResult, @@ -1103,9 +1191,12 @@ async function rescoreBenchmarkRun({ runDirectory, prompts, config }) { expectedStress: promptDefinition.expectedStress, answerKey: answerKeyForPrompt(promptDefinition), status, - failureCategory: status === "ok" ? undefined : ( - infraBlockerReason ? "infra" : answerKeyScore.failureCategory - ), + failureCategory: failureCategoryForOutcome({ + status, + infraBlockerReason, + capabilityGateReason, + answerKeyScore, + }), factualAccuracyScore: answerKeyScore.factualAccuracyScore, entityCoverageRatio: answerKeyScore.entityCoverageRatio, domainAccuracyRatio: answerKeyScore.domainAccuracyRatio, @@ -1130,6 +1221,32 @@ async function rescoreBenchmarkRun({ runDirectory, prompts, config }) { needsReviewCount: validation.needsReviewCount, validationIssueCount: normalized.validationIssues.length, validationIssues: normalized.validationIssues, + selfHealingAction: normalized.diagnostics.selfHealingAction, + selfHealingArtifactKinds: normalized.diagnostics.artifactKinds, + processTraceStepCount: normalized.diagnostics.processTrace?.stepCount, + processTraceBrowserStepCount: + normalized.diagnostics.processTrace?.browserStepCount, + playwrightCandidateStatus: + normalized.diagnostics.playwrightCandidateReadiness?.status, + playwrightCandidateBrowserStepCount: + normalized.diagnostics.playwrightCandidateReadiness?.browserStepCount, + playwrightCandidateSourceUrlCount: + normalized.diagnostics.playwrightCandidateReadiness?.sourceUrlCount, + diagnostics: normalized.diagnostics, + usage: normalized.usage, + searchCallCount: normalized.metrics.searchCallCount, + fetchCallCount: normalized.metrics.fetchCallCount, + browserCallCount: normalized.metrics.browserCallCount, + agentRunCount: normalized.metrics.agentRunCount, + agentStepCount: normalized.metrics.agentStepCount, + estimatedModelCostUsd: estimateModelCostUsd(normalized.usage, config), + estimatedTinyFishAgentCostUsd: roundUsd( + normalized.metrics.agentStepCount * config.tinyFishAgentStepUsd + ), + estimatedTotalCostUsd: roundUsd( + estimateModelCostUsd(normalized.usage, config) + + normalized.metrics.agentStepCount * config.tinyFishAgentStepUsd + ), errorMessage: status === "ok" ? undefined : failureReason({ @@ -1138,6 +1255,7 @@ async function rescoreBenchmarkRun({ runDirectory, prompts, config }) { validation, answerKeyScore, infraBlockerReason, + capabilityGateReason, minRequiredCompleteness: config.minRequiredCompleteness, validationIssues: normalized.validationIssues, }), @@ -1652,6 +1770,7 @@ export function failureReason({ validation, answerKeyScore, infraBlockerReason, + capabilityGateReason, minRequiredCompleteness, validationIssues = [], }) { @@ -1659,6 +1778,7 @@ export function failureReason({ if (execution.timedOut) return "Command timed out."; if (execution.exitCode !== 0) return `Command exited ${execution.exitCode}.`; if (!parsedPayload) return "No parseable JSON object found in stdout."; + if (capabilityGateReason) return capabilityGateReason; const capabilityDiagnostic = capabilityDiagnosticReason(validationIssues); if (capabilityDiagnostic) return capabilityDiagnostic; if (answerKeyScore?.failureCategory === "clarification") { @@ -1807,6 +1927,12 @@ node benchmarks/dataset-agent/run-benchmark.mjs \\ Rescore existing artifacts without spending credits: node benchmarks/dataset-agent/run-benchmark.mjs --rescore-dir benchmark-results/ +Require self-healing Playwright readiness for browser-action canaries: +node benchmarks/dataset-agent/run-benchmark.mjs \\ + --require-playwright-ready \\ + --prompt-ids mcp-docs-pages \\ + --system collection-self-heal='node --import ./backend/node_modules/tsx/dist/esm/index.mjs benchmarks/dataset-agent/adapters/collection-self-healing-adapter.mjs' + Agent command contract: - stdout should contain a JSON object. - Preferred shape: { "rows": [], "validationIssues": [], "usage": {}, "metrics": {} } diff --git a/benchmarks/dataset-agent/run-benchmark.test.mjs b/benchmarks/dataset-agent/run-benchmark.test.mjs index 377cdff..e22c910 100644 --- a/benchmarks/dataset-agent/run-benchmark.test.mjs +++ b/benchmarks/dataset-agent/run-benchmark.test.mjs @@ -1,10 +1,17 @@ import assert from "node:assert/strict"; +import { mkdir, mkdtemp, writeFile } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; import { test } from "node:test"; import { + benchmarkStatusForOutcome, + failureCategoryForOutcome, failureReason, findInfrastructureBlockerReason, normalizePayload, + playwrightReadinessGateReason, + rescoreBenchmarkRun, scoreBenchmarkRows, } from "./run-benchmark.mjs"; import { selfHealingDiagnosticsFromTick } from "./adapters/self-healing-output.mjs"; @@ -233,3 +240,146 @@ test("self-healing diagnostics summarize trace and readiness artifacts", () => { "ready" ); }); + +test("Playwright readiness gate fails otherwise passing benchmark output", () => { + const capabilityGateReason = playwrightReadinessGateReason({ + requirePlaywrightReady: true, + diagnostics: notReadyDiagnostics(), + }); + const answerKeyScore = { passed: true, failureCategory: undefined }; + const status = benchmarkStatusForOutcome({ + execution: { exitCode: 0 }, + parsedPayload: { rows: passingRows() }, + answerKeyScore, + infraBlockerReason: null, + capabilityGateReason, + }); + + assert.equal(status, "failed"); + assert.match(capabilityGateReason, /no actionable browser steps/i); + assert.equal(failureCategoryForOutcome({ + status, + infraBlockerReason: null, + capabilityGateReason, + answerKeyScore, + }), "capability_gate"); + assert.equal(failureReason({ + execution: { exitCode: 0, timedOut: false }, + parsedPayload: { rows: passingRows() }, + validation: passingValidation, + answerKeyScore, + infraBlockerReason: null, + capabilityGateReason, + minRequiredCompleteness: 0.75, + }), capabilityGateReason); +}); + +test("Playwright readiness gate does not override infrastructure blockers", () => { + const infraBlockerReason = "Infrastructure/auth/credits blocker."; + const capabilityGateReason = null; + const answerKeyScore = { passed: true, failureCategory: undefined }; + const status = benchmarkStatusForOutcome({ + execution: { exitCode: 0 }, + parsedPayload: null, + answerKeyScore, + infraBlockerReason, + capabilityGateReason, + }); + + assert.equal(status, "blocked"); + assert.equal(failureCategoryForOutcome({ + status, + infraBlockerReason, + capabilityGateReason, + answerKeyScore, + }), "infra"); +}); + +test("rescore applies Playwright readiness gate semantics", async () => { + const runDirectory = await mkdtemp(join(tmpdir(), "bigset-benchmark-rescore-")); + const artifactDirectory = join(runDirectory, "collection-self-heal", "01-gate-prompt"); + await mkdir(artifactDirectory, { recursive: true }); + + const parsedPayload = { + rows: passingRows(), + validationIssues: [], + diagnostics: notReadyDiagnostics(), + }; + await writeFile( + join(runDirectory, "summary.json"), + JSON.stringify({ + laneResults: [{ + system: "collection-self-heal", + promptId: "gate-prompt", + promptQuality: "good", + artifactDirectory, + exitCode: 0, + timedOut: false, + }], + }) + ); + await writeFile( + join(artifactDirectory, "parsed-output.json"), + JSON.stringify(parsedPayload) + ); + await writeFile(join(artifactDirectory, "stdout.txt"), JSON.stringify(parsedPayload)); + await writeFile(join(artifactDirectory, "stderr.txt"), ""); + + const rescored = await rescoreBenchmarkRun({ + runDirectory, + prompts: [{ + id: "gate-prompt", + quality: "good", + persona: "developer", + prompt: "Find official docs.", + expectedStress: "Browser action gate.", + requiredColumns: ["entity_name", "source_url"], + }], + config: { + promptIds: null, + minRequiredCompleteness: 0.75, + minFactualAccuracy: 0.75, + requirePlaywrightReady: true, + inputUsdPer1M: 0.05, + outputUsdPer1M: 0.5, + tinyFishAgentStepUsd: 0.015, + }, + }); + + assert.equal(rescored.laneResults[0].status, "failed"); + assert.equal(rescored.laneResults[0].failureCategory, "capability_gate"); + assert.match(rescored.laneResults[0].errorMessage, /no actionable browser steps/i); + assert.equal(rescored.laneResults[0].playwrightCandidateStatus, "not_ready"); +}); + +function passingRows() { + return [{ + cells: { + entity_name: "Example", + source_url: "https://example.com/docs", + }, + sourceUrls: ["https://example.com/docs"], + evidence: [{ + columnName: "entity_name", + sourceUrl: "https://example.com/docs", + quote: "Example docs", + }], + }]; +} + +function notReadyDiagnostics() { + return { + playwrightCandidateReadiness: { + status: "not_ready", + reasons: ["Trace has no actionable browser steps with URL/selector/target data."], + browserStepCount: 0, + sourceUrlCount: 1, + }, + processTrace: { + runtime: "collection", + stepCount: 3, + browserStepCount: 0, + sourceUrlCount: 1, + }, + }; +} diff --git a/docs/data-collection-agent-migration-plan.md b/docs/data-collection-agent-migration-plan.md index 359945b..5d0331b 100644 --- a/docs/data-collection-agent-migration-plan.md +++ b/docs/data-collection-agent-migration-plan.md @@ -195,6 +195,8 @@ The current layer does not yet: `processTraceBrowserStepCount`, and `playwrightCandidateBrowserStepCount` so the canary proves browser-action provenance, not only row/evidence quality + - run browser-action canaries with `--require-playwright-ready` so row + quality cannot hide missing replayable browser-action provenance - full benchmark only after the 2-prompt run is not obviously broken - live `--dataset-id` dry-run only after Convex/env prerequisites are ready - `--commit` only on a throwaway dataset first From 25be451151b2b17755bee03aed9a0369a7d5d343 Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 07:26:46 +0700 Subject: [PATCH 07/21] Surface Agent run provenance diagnostics --- .../src/integrations/tinyfish-agent.ts | 27 ++++++-- .../src/models/schemas.ts | 7 ++ .../src/orchestrator/process-pages.ts | 67 +++++++++++++++++++ .../src/pipeline/collection-agent-runner.ts | 28 ++++++-- backend/test/collection-agent-runner.test.ts | 44 ++++++++++++ .../test/collection-browser-actions.test.ts | 26 +++++++ backend/test/tinyfish-agent-run.test.ts | 33 +++++++++ benchmarks/dataset-agent/README.md | 7 ++ .../adapters/self-healing-output.mjs | 4 ++ docs/data-collection-agent-migration-plan.md | 4 ++ 10 files changed, 238 insertions(+), 9 deletions(-) create mode 100644 backend/test/tinyfish-agent-run.test.ts diff --git a/backend/BigSet_Data_Collection_Agent/src/integrations/tinyfish-agent.ts b/backend/BigSet_Data_Collection_Agent/src/integrations/tinyfish-agent.ts index 4e337f3..e2a2703 100644 --- a/backend/BigSet_Data_Collection_Agent/src/integrations/tinyfish-agent.ts +++ b/backend/BigSet_Data_Collection_Agent/src/integrations/tinyfish-agent.ts @@ -25,6 +25,9 @@ export interface TinyfishAgentRunResult { status: string; result: Record | null; error: string | null; + agent_step_count: number | null; + has_streaming_url: boolean; + result_keys: string[]; } export interface QueueTinyfishAgentResult { @@ -41,16 +44,23 @@ export interface TinyfishAgentRunOptions { pollTimeoutMs?: number; } -function runToResult(run: Run): TinyfishAgentRunResult { +export function tinyfishAgentRunResultFromRun(run: Run): TinyfishAgentRunResult { const errorMessage = run.error?.message ?? (run.status === RunStatus.FAILED ? "Agent run failed" : null); + const result = (run.result as Record | null) ?? null; return { run_id: run.run_id, status: run.status, - result: (run.result as Record | null) ?? null, + result, error: errorMessage, + agent_step_count: typeof run.num_of_steps === "number" + ? run.num_of_steps + : null, + has_streaming_url: typeof run.streaming_url === "string" && + run.streaming_url.length > 0, + result_keys: result ? Object.keys(result).sort() : [], }; } @@ -137,7 +147,7 @@ export async function pollTinyfishAgentUntilDone( lastStatus = run.status; if (TERMINAL_STATUSES.has(run.status)) { - return runToResult(run); + return tinyfishAgentRunResultFromRun(run); } if (Date.now() - startedAt >= pollTimeoutMs) { @@ -146,7 +156,7 @@ export async function pollTinyfishAgentUntilDone( try { const finalRun = await getClient().runs.get(runId); if (TERMINAL_STATUSES.has(finalRun.status)) { - const result = runToResult(finalRun); + const result = tinyfishAgentRunResultFromRun(finalRun); if (finalRun.status === RunStatus.CANCELLED) { return { ...result, @@ -166,6 +176,9 @@ export async function pollTinyfishAgentUntilDone( status: "TIMEOUT", result: null, error: `Agent run timed out after ${pollTimeoutMs}ms (last status: ${lastStatus}); cancel requested`, + agent_step_count: null, + has_streaming_url: false, + result_keys: [], }; } @@ -188,6 +201,9 @@ export async function runTinyfishAgent( status: RunStatus.FAILED, result: null, error: queued.error ?? "Failed to queue agent run", + agent_step_count: null, + has_streaming_url: false, + result_keys: [], }; } return pollTinyfishAgentUntilDone(queued.run_id, options); @@ -222,6 +238,9 @@ export async function runTinyfishAgentsBatch( status: RunStatus.FAILED, result: null, error: item.error ?? "Failed to queue agent run", + agent_step_count: null, + has_streaming_url: false, + result_keys: [], }; continue; } diff --git a/backend/BigSet_Data_Collection_Agent/src/models/schemas.ts b/backend/BigSet_Data_Collection_Agent/src/models/schemas.ts index 324146b..f231567 100644 --- a/backend/BigSet_Data_Collection_Agent/src/models/schemas.ts +++ b/backend/BigSet_Data_Collection_Agent/src/models/schemas.ts @@ -126,6 +126,10 @@ export const agentRunRecordSchema = z.object({ goal: z.string(), records_extracted: z.number(), error: z.string().optional(), + agent_step_count: z.number().nullable().optional(), + has_streaming_url: z.boolean().optional(), + result_keys: z.array(z.string()).optional(), + browser_action_diagnostic: z.string().optional(), browser_actions: z.array(browserActionReportSchema).optional(), }); @@ -143,6 +147,9 @@ export const triageSummarySchema = z.object({ skipped: z.number(), records_from_extract: z.number(), records_from_agent: z.number(), + agent_reported_step_count: z.number().optional(), + agent_runs_with_streaming_url: z.number().optional(), + agent_runs_with_explicit_browser_actions: z.number().optional(), }); export type TriageSummary = z.infer; diff --git a/backend/BigSet_Data_Collection_Agent/src/orchestrator/process-pages.ts b/backend/BigSet_Data_Collection_Agent/src/orchestrator/process-pages.ts index 5ae6a9c..283c84c 100644 --- a/backend/BigSet_Data_Collection_Agent/src/orchestrator/process-pages.ts +++ b/backend/BigSet_Data_Collection_Agent/src/orchestrator/process-pages.ts @@ -5,6 +5,7 @@ import { triagePage } from "../agents/source-triage.js"; import { derivePromptSourcePolicy } from "../agents/source-policy.js"; import { config } from "../config.js"; import { runTinyfishAgentsBatch } from "../integrations/tinyfish-agent.js"; +import type { TinyfishAgentRunResult } from "../integrations/tinyfish-agent.js"; import type { WorkflowMemory } from "../memory/index.js"; import { getPrimaryKeyValue } from "../merge/records.js"; import { @@ -56,6 +57,55 @@ function emptySummary(): TriageSummary { skipped: 0, records_from_extract: 0, records_from_agent: 0, + agent_reported_step_count: 0, + agent_runs_with_streaming_url: 0, + agent_runs_with_explicit_browser_actions: 0, + }; +} + +function recordAgentRunProvenance( + summary: TriageSummary, + run: TinyfishAgentRunResult, + browserActionCount: number, +): void { + summary.agent_reported_step_count = + (summary.agent_reported_step_count ?? 0) + + (run.agent_step_count ?? 0); + if (run.has_streaming_url) { + summary.agent_runs_with_streaming_url = + (summary.agent_runs_with_streaming_url ?? 0) + 1; + } + if (browserActionCount > 0) { + summary.agent_runs_with_explicit_browser_actions = + (summary.agent_runs_with_explicit_browser_actions ?? 0) + 1; + } +} + +function agentRunProvenanceFields(input: { + run: TinyfishAgentRunResult; + recordsExtracted: number; + browserActionCount: number; +}): Pick< + AgentRunRecord, + | "agent_step_count" + | "has_streaming_url" + | "result_keys" + | "browser_action_diagnostic" +> { + const hasReportedBrowserWork = (input.run.agent_step_count ?? 0) > 0; + const missingExplicitBrowserActions = + hasReportedBrowserWork && input.browserActionCount === 0; + const browserActionDiagnostic = missingExplicitBrowserActions + ? input.recordsExtracted > 0 + ? "Agent completed and returned rows, but polled run payload exposed no explicit browser actions." + : "Agent completed with reported browser work, but polled run payload exposed no explicit browser actions." + : undefined; + + return { + agent_step_count: input.run.agent_step_count, + has_streaming_url: input.run.has_streaming_url, + result_keys: input.run.result_keys, + browser_action_diagnostic: browserActionDiagnostic, }; } @@ -392,6 +442,7 @@ export async function processFetchedPages(options: { const pageUrl = job.pageUrl; if (run.error || !run.result) { + recordAgentRunProvenance(summary, run, 0); summary.agent_failed += 1; agentRuns.push({ url: pageUrl, @@ -401,6 +452,11 @@ export async function processFetchedPages(options: { goal: job.goal, records_extracted: 0, error: run.error ?? "No result returned", + ...agentRunProvenanceFields({ + run, + recordsExtracted: 0, + browserActionCount: 0, + }), }); options.log( options.label, @@ -413,6 +469,7 @@ export async function processFetchedPages(options: { agentResult: run.result, pageUrl, }); + recordAgentRunProvenance(summary, run, browserActions.length); try { const agentRecords = await extractFromAgentResult({ @@ -438,6 +495,11 @@ export async function processFetchedPages(options: { agent_status: run.status, goal: job.goal, records_extracted: agentRecords.length, + ...agentRunProvenanceFields({ + run, + recordsExtracted: agentRecords.length, + browserActionCount: browserActions.length, + }), browser_actions: browserActions.length > 0 ? browserActions : undefined, @@ -459,6 +521,11 @@ export async function processFetchedPages(options: { goal: job.goal, records_extracted: 0, error: msg, + ...agentRunProvenanceFields({ + run, + recordsExtracted: 0, + browserActionCount: browserActions.length, + }), browser_actions: browserActions.length > 0 ? browserActions : undefined, diff --git a/backend/src/pipeline/collection-agent-runner.ts b/backend/src/pipeline/collection-agent-runner.ts index 2f7a7ae..93de60b 100644 --- a/backend/src/pipeline/collection-agent-runner.ts +++ b/backend/src/pipeline/collection-agent-runner.ts @@ -95,6 +95,9 @@ interface CollectionPhaseStats { agent_dispatched?: number; agent_succeeded?: number; agent_failed?: number; + agent_reported_step_count?: number; + agent_runs_with_streaming_url?: number; + agent_runs_with_explicit_browser_actions?: number; }; } @@ -393,6 +396,15 @@ function collectionDebugNotes(report: CollectionPipelineResult["report"]): strin if (report.repair?.loops && report.repair.loops.length > 0) { notes.push(`collection repair loops=${report.repair.loops.length}`); } + const triage = report.stats?.triage ?? report.initial?.triage; + if ( + numberValue(triage?.agent_reported_step_count) > 0 && + numberValue(triage?.agent_runs_with_explicit_browser_actions) === 0 + ) { + notes.push( + `collection Agent reported ${numberValue(triage?.agent_reported_step_count)} step(s), but emitted no explicit browser actions for Playwright replay` + ); + } return notes; } @@ -608,17 +620,23 @@ function metricsFromReport(report: CollectionPipelineResult["report"]) { const agentDispatched = numberValue(initialTriage.agent_dispatched) + numberValue(repairTriage.agent_dispatched); + const reportedAgentSteps = + numberValue(initialTriage.agent_reported_step_count) + + numberValue(repairTriage.agent_reported_step_count); + const fallbackAgentSteps = + numberValue(initialTriage.agent_succeeded) + + numberValue(initialTriage.agent_failed) + + numberValue(repairTriage.agent_succeeded) + + numberValue(repairTriage.agent_failed); return { searchCalls: numberValue(stats.search_queries_executed), fetchCalls: numberValue(stats.pages_fetched), browserCalls: agentDispatched, agentRuns: agentDispatched, - agentSteps: - numberValue(initialTriage.agent_succeeded) + - numberValue(initialTriage.agent_failed) + - numberValue(repairTriage.agent_succeeded) + - numberValue(repairTriage.agent_failed), + agentSteps: reportedAgentSteps > 0 + ? reportedAgentSteps + : fallbackAgentSteps, }; } diff --git a/backend/test/collection-agent-runner.test.ts b/backend/test/collection-agent-runner.test.ts index 2b32b9b..c7b9f7c 100644 --- a/backend/test/collection-agent-runner.test.ts +++ b/backend/test/collection-agent-runner.test.ts @@ -130,6 +130,41 @@ test("collection agent runner maps explicit browser action reports into process } }); +test("collection agent runner surfaces Agent provenance when actions are missing", async () => { + const previousEnv = snapshotEnv([ + "AGENT_POLL_TIMEOUT_MS", + "COLLECTION_AGENT_ENABLE_AGENT", + "COLLECTION_AGENT_PIPELINE_MODULE", + "COLLECTION_AGENT_POLL_TIMEOUT_MS", + ]); + delete process.env.AGENT_POLL_TIMEOUT_MS; + process.env.COLLECTION_AGENT_ENABLE_AGENT = "true"; + delete process.env.COLLECTION_AGENT_POLL_TIMEOUT_MS; + process.env.COLLECTION_AGENT_PIPELINE_MODULE = fakeCollectionPipelineModuleUrl({ + expectedCalls: [{ agentEnabled: true, pollTimeoutMs: 480_000 }], + agentReportedStepCount: 4, + agentRunsWithStreamingUrl: 1, + agentRunsWithExplicitBrowserActions: 0, + }); + try { + const result = await runCollectionPopulatePipeline(collectionPipelineInput()); + + assert.equal(result.metrics.agentSteps, 4); + assert.equal( + result.debug?.processTrace.notes.some((note) => + /reported 4 step\(s\), but emitted no explicit browser actions/i.test(note) + ), + true + ); + assert.equal( + playwrightCandidateReadinessForRun({ result }).status, + "not_ready" + ); + } finally { + restoreEnv(previousEnv); + } +}); + test("collection agent runner requires explicit Agent opt-in and caps poll timeout per warm process call", async () => { const previousEnv = snapshotEnv([ "AGENT_POLL_TIMEOUT_MS", @@ -256,6 +291,9 @@ function fakeCollectionPipelineModuleUrl(input: { sources?: unknown; browserActions?: unknown; agentBrowserActions?: unknown; + agentReportedStepCount?: number; + agentRunsWithStreamingUrl?: number; + agentRunsWithExplicitBrowserActions?: number; }): string { const source = ` const moduleLoadPollTimeoutMs = process.env.AGENT_POLL_TIMEOUT_MS ?? null; @@ -311,6 +349,9 @@ function fakeCollectionPipelineModuleUrl(input: { agent_dispatched: 1, agent_succeeded: 1, agent_failed: 0, + agent_reported_step_count: ${JSON.stringify(input.agentReportedStepCount)}, + agent_runs_with_streaming_url: ${JSON.stringify(input.agentRunsWithStreamingUrl)}, + agent_runs_with_explicit_browser_actions: ${JSON.stringify(input.agentRunsWithExplicitBrowserActions)}, }, }, initial: { @@ -327,6 +368,9 @@ function fakeCollectionPipelineModuleUrl(input: { agent_dispatched: 1, agent_succeeded: 1, agent_failed: 0, + agent_reported_step_count: ${JSON.stringify(input.agentReportedStepCount)}, + agent_runs_with_streaming_url: ${JSON.stringify(input.agentRunsWithStreamingUrl)}, + agent_runs_with_explicit_browser_actions: ${JSON.stringify(input.agentRunsWithExplicitBrowserActions)}, }, }, repair: { diff --git a/backend/test/collection-browser-actions.test.ts b/backend/test/collection-browser-actions.test.ts index 7f76056..4499698 100644 --- a/backend/test/collection-browser-actions.test.ts +++ b/backend/test/collection-browser-actions.test.ts @@ -71,9 +71,17 @@ test("Agent run records and run reports persist browser action arrays", () => { agent_status: "COMPLETED", goal: "Submit the form and extract the result.", records_extracted: 1, + agent_step_count: 3, + has_streaming_url: true, + result_keys: ["records"], + browser_action_diagnostic: "Agent completed and returned rows, but polled run payload exposed no explicit browser actions.", browser_actions: browserActions, }); + assert.equal(agentRun.agent_step_count, 3); + assert.equal(agentRun.has_streaming_url, true); + assert.deepEqual(agentRun.result_keys, ["records"]); + assert.deepEqual( explicitBrowserActionsFromAgentRuns([agentRun]), browserActions @@ -154,5 +162,23 @@ function phaseStats() { pages_fetched: 1, pages_failed: 0, raw_records_extracted: 1, + triage: { + pages_triaged: 1, + by_status: { + requires_form_submission: 1, + }, + extract_now: 0, + agent_candidates: 1, + agent_dispatched: 1, + agent_deferred: 0, + agent_succeeded: 1, + agent_failed: 0, + skipped: 0, + records_from_extract: 0, + records_from_agent: 1, + agent_reported_step_count: 3, + agent_runs_with_streaming_url: 1, + agent_runs_with_explicit_browser_actions: 1, + }, }; } diff --git a/backend/test/tinyfish-agent-run.test.ts b/backend/test/tinyfish-agent-run.test.ts new file mode 100644 index 0000000..9c81876 --- /dev/null +++ b/backend/test/tinyfish-agent-run.test.ts @@ -0,0 +1,33 @@ +import assert from "node:assert/strict"; +import { test } from "node:test"; + +import { tinyfishAgentRunResultFromRun } from "../BigSet_Data_Collection_Agent/src/integrations/tinyfish-agent.js"; + +test("TinyFish run normalization keeps safe provenance without streaming URL", () => { + const normalized = tinyfishAgentRunResultFromRun({ + run_id: "run-1", + status: "COMPLETED", + goal: "Extract rows.", + created_at: "2026-05-23T00:00:00Z", + started_at: "2026-05-23T00:00:01Z", + finished_at: "2026-05-23T00:00:02Z", + num_of_steps: 3, + result: { + records: [], + }, + error: null, + streaming_url: "https://agent.tinyfish.ai/private-stream-token", + browser_config: { + proxy_enabled: true, + proxy_country_code: null, + }, + } as never); + + assert.equal(normalized.agent_step_count, 3); + assert.equal(normalized.has_streaming_url, true); + assert.deepEqual(normalized.result_keys, ["records"]); + assert.equal( + JSON.stringify(normalized).includes("private-stream-token"), + false + ); +}); diff --git a/benchmarks/dataset-agent/README.md b/benchmarks/dataset-agent/README.md index 5737d79..f55bd81 100644 --- a/benchmarks/dataset-agent/README.md +++ b/benchmarks/dataset-agent/README.md @@ -146,6 +146,13 @@ without committing raw run folders: Agent canary actually emitted browser actions before starting a Playwright compiler. +Agent canaries also preserve safe provenance from the TinyFish run payload: +reported step count, whether a streaming URL existed, and top-level result +keys. Raw `streaming_url` values are never persisted. If Agent returns rows but +the polled run payload has no explicit `browser_actions`, diagnostics include +that distinction so `not_ready` means "no replayable action trace", not "the +Agent did no browser work." + For browser-action canaries, add `--require-playwright-ready` to make the benchmark fail with `failureCategory: "capability_gate"` unless the `playwright-candidate-readiness` artifact is `ready`. This gate uses the diff --git a/benchmarks/dataset-agent/adapters/self-healing-output.mjs b/benchmarks/dataset-agent/adapters/self-healing-output.mjs index c901e23..b17ecc1 100644 --- a/benchmarks/dataset-agent/adapters/self-healing-output.mjs +++ b/benchmarks/dataset-agent/adapters/self-healing-output.mjs @@ -27,6 +27,9 @@ function processTraceSummaryFromArtifacts(artifacts) { const searchQueries = Array.isArray(trace.searchQueries) ? trace.searchQueries : []; + const notes = Array.isArray(trace.notes) + ? trace.notes.filter((note) => typeof note === "string") + : []; return { runtime: typeof trace.runtime === "string" ? trace.runtime : "unknown", @@ -40,6 +43,7 @@ function processTraceSummaryFromArtifacts(artifacts) { ].filter((url) => typeof url === "string" && /^https?:\/\//i.test(url))).size, searchQueryCount: searchQueries.length, fetchedUrlCount: fetchedUrls.length, + notes: notes.slice(0, 10), }; } diff --git a/docs/data-collection-agent-migration-plan.md b/docs/data-collection-agent-migration-plan.md index 5d0331b..852ed5a 100644 --- a/docs/data-collection-agent-migration-plan.md +++ b/docs/data-collection-agent-migration-plan.md @@ -197,6 +197,10 @@ The current layer does not yet: provenance, not only row/evidence quality - run browser-action canaries with `--require-playwright-ready` so row quality cannot hide missing replayable browser-action provenance + - inspect Agent run provenance fields (`agent_step_count`, + `has_streaming_url`, and `result_keys`) when readiness fails; these fields + prove browser work happened without persisting raw streaming URLs or + pretending selectors/clicks exist - full benchmark only after the 2-prompt run is not obviously broken - live `--dataset-id` dry-run only after Convex/env prerequisites are ready - `--commit` only on a throwaway dataset first From 43cb7a384cd363f926bb43b1cfa58ca00840fe67 Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 07:36:56 +0700 Subject: [PATCH 08/21] Gate rejected self-healing benchmark candidates --- benchmarks/dataset-agent/README.md | 5 + benchmarks/dataset-agent/run-benchmark.mjs | 33 +++-- .../dataset-agent/run-benchmark.test.mjs | 120 ++++++++++++++++++ docs/data-collection-agent-migration-plan.md | 3 + 4 files changed, 153 insertions(+), 8 deletions(-) diff --git a/benchmarks/dataset-agent/README.md b/benchmarks/dataset-agent/README.md index f55bd81..f96e5a9 100644 --- a/benchmarks/dataset-agent/README.md +++ b/benchmarks/dataset-agent/README.md @@ -146,6 +146,11 @@ without committing raw run folders: Agent canary actually emitted browser actions before starting a Playwright compiler. +If `selfHealingAction` is `candidate_rejected`, the benchmark marks the lane as +`failureCategory: "capability_gate"` even when the diagnostic rows score well. +Rejected candidates are useful for debugging, but they are not promotable cron +recipes. + Agent canaries also preserve safe provenance from the TinyFish run payload: reported step count, whether a streaming URL existed, and top-level result keys. Raw `streaming_url` values are never persisted. If Agent returns rows but diff --git a/benchmarks/dataset-agent/run-benchmark.mjs b/benchmarks/dataset-agent/run-benchmark.mjs index 1fe09c2..3b89837 100755 --- a/benchmarks/dataset-agent/run-benchmark.mjs +++ b/benchmarks/dataset-agent/run-benchmark.mjs @@ -569,10 +569,13 @@ async function runSystemPrompt(input) { }); const capabilityGateReason = infraBlockerReason ? null - : playwrightReadinessGateReason({ - diagnostics: normalized.diagnostics, - requirePlaywrightReady: input.config.requirePlaywrightReady, - }); + : firstString([ + selfHealingActionGateReason({ diagnostics: normalized.diagnostics }), + playwrightReadinessGateReason({ + diagnostics: normalized.diagnostics, + requirePlaywrightReady: input.config.requirePlaywrightReady, + }), + ]); const status = benchmarkStatusForOutcome({ execution, parsedPayload, @@ -1016,6 +1019,13 @@ export function playwrightReadinessGateReason({ return null; } +export function selfHealingActionGateReason({ diagnostics }) { + if (diagnostics?.selfHealingAction !== "candidate_rejected") { + return null; + } + return "Self-healing gate failed: candidate recipe was rejected; rows came from a diagnostic run, not a promoted recipe."; +} + export function benchmarkStatusForOutcome({ execution, parsedPayload, @@ -1171,10 +1181,13 @@ export async function rescoreBenchmarkRun({ runDirectory, prompts, config }) { }); const capabilityGateReason = infraBlockerReason ? null - : playwrightReadinessGateReason({ - diagnostics: normalized.diagnostics, - requirePlaywrightReady: config.requirePlaywrightReady, - }); + : firstString([ + selfHealingActionGateReason({ diagnostics: normalized.diagnostics }), + playwrightReadinessGateReason({ + diagnostics: normalized.diagnostics, + requirePlaywrightReady: config.requirePlaywrightReady, + }), + ]); const status = benchmarkStatusForOutcome({ execution, parsedPayload: usablePayload, @@ -1832,6 +1845,10 @@ function stringArrayValue(value) { return []; } +function firstString(values) { + return values.find((value) => typeof value === "string" && value.length > 0) ?? null; +} + function singleStringArray(value) { return typeof value === "string" ? [value] : []; } diff --git a/benchmarks/dataset-agent/run-benchmark.test.mjs b/benchmarks/dataset-agent/run-benchmark.test.mjs index e22c910..534f6c2 100644 --- a/benchmarks/dataset-agent/run-benchmark.test.mjs +++ b/benchmarks/dataset-agent/run-benchmark.test.mjs @@ -13,6 +13,7 @@ import { playwrightReadinessGateReason, rescoreBenchmarkRun, scoreBenchmarkRows, + selfHealingActionGateReason, } from "./run-benchmark.mjs"; import { selfHealingDiagnosticsFromTick } from "./adapters/self-healing-output.mjs"; @@ -295,6 +296,66 @@ test("Playwright readiness gate does not override infrastructure blockers", () = }), "infra"); }); +test("self-healing rejection gate fails otherwise passing benchmark output", () => { + const capabilityGateReason = selfHealingActionGateReason({ + diagnostics: { + selfHealingAction: "candidate_rejected", + }, + }); + const answerKeyScore = { passed: true, failureCategory: undefined }; + const status = benchmarkStatusForOutcome({ + execution: { exitCode: 0 }, + parsedPayload: { rows: passingRows() }, + answerKeyScore, + infraBlockerReason: null, + capabilityGateReason, + }); + + assert.equal(status, "failed"); + assert.match(capabilityGateReason, /candidate recipe was rejected/i); + assert.equal(failureCategoryForOutcome({ + status, + infraBlockerReason: null, + capabilityGateReason, + answerKeyScore, + }), "capability_gate"); + assert.equal(failureReason({ + execution: { exitCode: 0, timedOut: false }, + parsedPayload: { rows: passingRows() }, + validation: passingValidation, + answerKeyScore, + infraBlockerReason: null, + capabilityGateReason, + minRequiredCompleteness: 0.75, + }), capabilityGateReason); +}); + +test("self-healing rejection gate does not override infrastructure blockers", () => { + const infraBlockerReason = "Infrastructure/auth/credits blocker."; + const capabilityGateReason = null; + const answerKeyScore = { passed: true, failureCategory: undefined }; + const status = benchmarkStatusForOutcome({ + execution: { exitCode: 0 }, + parsedPayload: { + rows: passingRows(), + diagnostics: { + selfHealingAction: "candidate_rejected", + }, + }, + answerKeyScore, + infraBlockerReason, + capabilityGateReason, + }); + + assert.equal(status, "blocked"); + assert.equal(failureCategoryForOutcome({ + status, + infraBlockerReason, + capabilityGateReason, + answerKeyScore, + }), "infra"); +}); + test("rescore applies Playwright readiness gate semantics", async () => { const runDirectory = await mkdtemp(join(tmpdir(), "bigset-benchmark-rescore-")); const artifactDirectory = join(runDirectory, "collection-self-heal", "01-gate-prompt"); @@ -352,6 +413,65 @@ test("rescore applies Playwright readiness gate semantics", async () => { assert.equal(rescored.laneResults[0].playwrightCandidateStatus, "not_ready"); }); +test("rescore applies self-healing rejection gate semantics", async () => { + const runDirectory = await mkdtemp(join(tmpdir(), "bigset-benchmark-rescore-")); + const artifactDirectory = join(runDirectory, "collection-self-heal", "01-rejected-prompt"); + await mkdir(artifactDirectory, { recursive: true }); + + const parsedPayload = { + rows: passingRows(), + validationIssues: [], + diagnostics: { + selfHealingAction: "candidate_rejected", + }, + }; + await writeFile( + join(runDirectory, "summary.json"), + JSON.stringify({ + laneResults: [{ + system: "collection-self-heal", + promptId: "rejected-prompt", + promptQuality: "good", + artifactDirectory, + exitCode: 0, + timedOut: false, + }], + }) + ); + await writeFile( + join(artifactDirectory, "parsed-output.json"), + JSON.stringify(parsedPayload) + ); + await writeFile(join(artifactDirectory, "stdout.txt"), JSON.stringify(parsedPayload)); + await writeFile(join(artifactDirectory, "stderr.txt"), ""); + + const rescored = await rescoreBenchmarkRun({ + runDirectory, + prompts: [{ + id: "rejected-prompt", + quality: "good", + persona: "developer", + prompt: "Find official docs.", + expectedStress: "Self-healing rejection gate.", + requiredColumns: ["entity_name", "source_url"], + }], + config: { + promptIds: null, + minRequiredCompleteness: 0.75, + minFactualAccuracy: 0.75, + requirePlaywrightReady: false, + inputUsdPer1M: 0.05, + outputUsdPer1M: 0.5, + tinyFishAgentStepUsd: 0.015, + }, + }); + + assert.equal(rescored.laneResults[0].status, "failed"); + assert.equal(rescored.laneResults[0].failureCategory, "capability_gate"); + assert.match(rescored.laneResults[0].errorMessage, /candidate recipe was rejected/i); + assert.equal(rescored.laneResults[0].selfHealingAction, "candidate_rejected"); +}); + function passingRows() { return [{ cells: { diff --git a/docs/data-collection-agent-migration-plan.md b/docs/data-collection-agent-migration-plan.md index 852ed5a..fcd10b9 100644 --- a/docs/data-collection-agent-migration-plan.md +++ b/docs/data-collection-agent-migration-plan.md @@ -201,6 +201,9 @@ The current layer does not yet: `has_streaming_url`, and `result_keys`) when readiness fails; these fields prove browser work happened without persisting raw streaming URLs or pretending selectors/clicks exist + - treat `selfHealingAction: "candidate_rejected"` as a capability failure + even if diagnostic rows score well; rejected rows are debug output, not a + promotable self-healing recipe - full benchmark only after the 2-prompt run is not obviously broken - live `--dataset-id` dry-run only after Convex/env prerequisites are ready - `--commit` only on a throwaway dataset first From d2b4a75b3294cef7b604cb33bb22583e0d415b93 Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 07:48:41 +0700 Subject: [PATCH 09/21] Refresh current self-healing stack plan --- benchmarks/dataset-agent/README.md | 25 ++++--- docs/data-collection-agent-migration-plan.md | 79 +++++++++++++------- 2 files changed, 67 insertions(+), 37 deletions(-) diff --git a/benchmarks/dataset-agent/README.md b/benchmarks/dataset-agent/README.md index f96e5a9..0d7d8f3 100644 --- a/benchmarks/dataset-agent/README.md +++ b/benchmarks/dataset-agent/README.md @@ -68,15 +68,22 @@ node benchmarks/dataset-agent/run-benchmark.mjs \ --system collection-self-heal='node --import ./backend/node_modules/tsx/dist/esm/index.mjs benchmarks/dataset-agent/adapters/collection-self-healing-adapter.mjs' ``` -Latest `mcp-docs-pages` Agent-enabled canary evidence: - -- artifact: `benchmark-results/collection-agent-canary-mcp-20260523-001` -- status: failed, not blocked -- rows/evidence: 3 rows, 12 evidence quotes, 10 source URLs -- cost: about `$0.053552` -- signal: Agent runs complete and claim support reaches `1.0`, but domain - accuracy stays `0.667`; next fix is source/domain coherence, not more Agent - plumbing. +Latest `mcp-docs-pages` Agent-enabled canary evidence, rescored with the +rejected-candidate gate: + +- artifact: `benchmark-results/collection-agent-provenance-mcp-20260523-001` +- status: failed with `failureCategory: "capability_gate"` +- rows/evidence: 3 rows, 5 evidence quotes, 5 source URLs +- score: factual accuracy `1.0`, entity coverage `1.0`, domain accuracy `1.0`, + claim support `1.0` +- Agent signal: 1 Agent run reported 20 steps, but emitted no explicit + `browser_actions` +- self-healing signal: `selfHealingAction: "candidate_rejected"` +- Playwright signal: `playwrightCandidateStatus: "not_ready"` with zero + replayable browser steps +- conclusion: rows are useful debug evidence, but not a promotable cron recipe. + Next fix is producer-side browser action emission plus a promoted + self-healing run, not a Playwright compiler yet. App and CLI collection-runtime runs use the same runner shape, but load it from `POPULATE_COLLECTION_RUNNER_MODULE` when `POPULATE_AGENT_RUNTIME=collection`. diff --git a/docs/data-collection-agent-migration-plan.md b/docs/data-collection-agent-migration-plan.md index fcd10b9..aef21e7 100644 --- a/docs/data-collection-agent-migration-plan.md +++ b/docs/data-collection-agent-migration-plan.md @@ -31,6 +31,13 @@ the collection pipeline is migrated into BigSet. - PR #47-#52 document and improve collection benchmark evidence, source coherence, official-source support, and URL-like source evidence. PR #52 fixes the `official_website` / `company_website` / `product_url` scoring class. +- PR #53-#60 add the self-healing process trace, Playwright readiness artifact, + explicit browser-action ingestion contract, Agent provenance diagnostics, + readiness benchmark gate, and rejected-candidate benchmark gate. +- PR #60 is the current top of the draft self-healing/collection stack. It makes + `selfHealingAction: "candidate_rejected"` fail benchmark scoring with + `failureCategory: "capability_gate"`, even when diagnostic rows match answer + keys. - `feat/data-collection-agent-v14` is no longer the branch to build on directly. It was the source of the collection pipeline port. New work should branch on top of the current draft stack, not edit Meteor's branch or the dirty main @@ -126,13 +133,15 @@ The current layer does not yet: - run a green live Convex canary in this local environment - prove Agent-enabled collection quality on a full real benchmark - prove the collection runtime should replace Mastra as the default app runtime +- enforce the planned per-dataset row commit cap, such as 100 rows/hour, on the + self-healing commit path ## Migration Sequence 1. Branch from the top of the self-healing stack. - For new collection-runner or benchmark work, base on - `codex/collection-capability-diagnostics` unless that PR has been - superseded. + `codex/benchmark-self-healing-action-gate` unless that PR has been + superseded by a newer reviewed stack tip. - Do not edit `main`, the dirty local checkout, or `feat/data-collection-agent-v14` directly. @@ -306,35 +315,49 @@ That is not a pass, but it is useful: it tells us the next benchmark should turn Agent on and measure whether browser/detail follow-up fixes the source evidence miss. -Agent-enabled `mcp-docs-pages` evidence from the stack-handoff branch: - -- artifact: `benchmark-results/collection-agent-canary-mcp-20260523-001` -- result: 3 rows, 12 evidence quotes, 10 source URLs, 3 Agent runs -- cost: about `$0.053552` -- status: failed, not blocked -- score: factual accuracy `0.933`, entity coverage `1.0`, claim support `1.0`, - domain accuracy `0.667` -- conclusion: Agent/browser follow-up runs successfully and improves claim - support, but source/domain evidence still misses. The next code target is - source coherence: keep each row's docs URL/evidence/source URLs aligned with - that entity's official docs domain instead of merging discovery/blog/course - evidence across vendors. +Latest Agent-enabled `mcp-docs-pages` evidence from the provenance diagnostics +branch, rescored with the rejected-candidate gate: + +- artifact: `benchmark-results/collection-agent-provenance-mcp-20260523-001` +- result: 3 rows, 5 evidence quotes, 5 source URLs, 1 Agent run, 20 reported + Agent steps +- cost: about `$0.307769` +- score: factual accuracy `1.0`, entity coverage `1.0`, domain accuracy `1.0`, + claim support `1.0` +- self-healing action: `candidate_rejected` +- Playwright readiness: `not_ready`, with zero replayable browser steps +- status after PR #60 rescore: failed with `failureCategory: + "capability_gate"` +- conclusion: the collection Agent can collect useful rows for this prompt, but + the self-healing layer correctly refuses to treat a rejected diagnostic run as + a promotable cron recipe. TinyFish reported browser work happened, but the + exposed run payload still did not contain explicit replayable browser actions. ## Next Engineering Move -Create a fresh branch from `codex/collection-capability-diagnostics` and fix -source coherence before running the full benchmark: - -1. Keep `COLLECTION_AGENT_ENABLE_AGENT=false` as the default. -2. Add focused tests around record merge/source selection so a row does not gain - evidence for a populated field from another record unless the incoming row - value supports the existing value. -3. Tighten docs/official-source selection so docs prompts prefer docs/developers - pages over blogs, news, courses, directories, or third-party discovery pages. -4. Re-run the Agent-enabled `mcp-docs-pages` canary. -5. If domain accuracy reaches `1.0`, run the 4-prompt focused benchmark from - PR #45. -6. Run the full prompt pack only after the focused benchmark is not obviously +Create fresh branches from `codex/benchmark-self-healing-action-gate`. Do not +edit `main`, Meteor's branch, or the dirty local checkout. + +1. Ask Meteor's migrated collection agent to emit explicit action traces. + - Preferred fields are `browser_actions` or `agent_browser_actions`. + - Each action should include at least URL or selector/target text plus safe, + redacted value descriptions for form inputs. + - Do not build a Playwright compiler against search/fetch-only traces. +2. Add a small self-healing commit-path row cap when commit safety becomes the + immediate risk. + - Start with a configurable per-dataset cap such as 100 committed rows/hour. + - Enforce it before `rowWriter.replaceRows(...)` on commit mode. + - Keep dry-run and benchmark lanes unaffected. + - Gate it with unit tests for allowed commit, blocked commit, and no runtime + execution when the cap is already exhausted. +3. Re-run the Agent-enabled `mcp-docs-pages` canary with: + - `COLLECTION_AGENT_ENABLE_AGENT=true` + - `--require-playwright-ready` + - PR #60's rejected-candidate gate +4. Only after that canary produces `selfHealingAction` other than + `candidate_rejected` and `playwrightCandidateStatus: "ready"`, start a + Playwright compiler branch. +5. Run the full prompt pack only after the focused canaries are not obviously broken. When testing the real app or CLI path, set: From c9097a83df884be20cc987fb7aa61bc7aa440ae4 Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 08:17:26 +0700 Subject: [PATCH 10/21] Cap self-healing row commits --- backend/README.md | 9 + .../pipeline/populate-self-healing-command.ts | 38 ++ .../pipeline/populate-self-healing-runner.ts | 566 +++++++++++++++++- backend/src/server.ts | 19 + .../populate-self-healing-command.test.ts | 17 + .../test/populate-self-healing-runner.test.ts | 175 +++++- backend/test/populate-server.test.ts | 2 + docs/data-collection-agent-migration-plan.md | 23 +- 8 files changed, 823 insertions(+), 26 deletions(-) diff --git a/backend/README.md b/backend/README.md index 107b90c..c882afc 100644 --- a/backend/README.md +++ b/backend/README.md @@ -28,3 +28,12 @@ Starts on [localhost:3501](http://localhost:3501). | `npm run dev` | Start with hot reload | | `npm run build` | Compile TypeScript | | `npm run db:push` | Push schema changes to Postgres | + +## Self-Healing Commit Cap + +`populate:self-heal --commit` and `POST /populate` cap committed rows per +dataset at 100 rows/hour by default. Override with +`POPULATE_COMMIT_ROW_LIMIT_PER_HOUR` or CLI +`--commit-row-limit-per-hour`. + +Dry runs and benchmarks do not commit rows, so they do not consume this cap. diff --git a/backend/src/pipeline/populate-self-healing-command.ts b/backend/src/pipeline/populate-self-healing-command.ts index 3436017..88c5fba 100644 --- a/backend/src/pipeline/populate-self-healing-command.ts +++ b/backend/src/pipeline/populate-self-healing-command.ts @@ -23,6 +23,7 @@ export interface PopulateSelfHealingCliOptions { shouldCommitRows: boolean; recipeStoreDirectory?: string; maxRows?: number; + commitRowLimitPerHour?: number; } export interface PopulateSelfHealingCliDependencies { @@ -90,6 +91,15 @@ export async function runPopulateSelfHealingCli( rowWriter, shouldCommitRows: options.shouldCommitRows, runtime, + commitRowLimit: options.shouldCommitRows + ? { + maxRowsPerWindow: commitRowLimitPerHour({ + optionValue: options.commitRowLimitPerHour, + envValue: input.env.POPULATE_COMMIT_ROW_LIMIT_PER_HOUR, + }), + windowMs: 60 * 60 * 1_000, + } + : undefined, }); writeStdout(JSON.stringify(summaryForResult(result, !options.shouldCommitRows))); @@ -151,6 +161,14 @@ export function parsePopulateSelfHealingCliArgs( } options.maxRows = parsed; index += 1; + } else if (arg === "--commit-row-limit-per-hour") { + const value = argv[index + 1]; + const parsed = Number(value); + if (!Number.isInteger(parsed) || parsed <= 0) { + throw new Error("--commit-row-limit-per-hour requires a positive integer."); + } + options.commitRowLimitPerHour = parsed; + index += 1; } else { throw new Error(`Unknown argument: ${arg}`); } @@ -232,6 +250,7 @@ function summaryForResult( action: result.action, datasetId: result.datasetId, committedRows: result.committedRows, + commitLimit: result.commitLimit, rowCount: diagnosticRun?.rows.length ?? 0, validationIssues: result.validationIssues, rejectionReasons: result.rejectionReasons, @@ -240,6 +259,25 @@ function summaryForResult( }; } +function commitRowLimitPerHour(input: { + optionValue?: number; + envValue?: string; +}): number { + if (input.optionValue !== undefined) { + return input.optionValue; + } + if (input.envValue === undefined || input.envValue === "") { + return 100; + } + const parsed = Number(input.envValue); + if (!Number.isInteger(parsed) || parsed <= 0) { + throw new Error( + "POPULATE_COMMIT_ROW_LIMIT_PER_HOUR must be a positive integer." + ); + } + return parsed; +} + async function readProcessStdin(): Promise { let text = ""; for await (const chunk of process.stdin) { diff --git a/backend/src/pipeline/populate-self-healing-runner.ts b/backend/src/pipeline/populate-self-healing-runner.ts index 3e3347d..65bedfc 100644 --- a/backend/src/pipeline/populate-self-healing-runner.ts +++ b/backend/src/pipeline/populate-self-healing-runner.ts @@ -1,4 +1,6 @@ -import { join } from "node:path"; +import { randomUUID } from "node:crypto"; +import { mkdir, readFile, rm, writeFile } from "node:fs/promises"; +import { dirname, join } from "node:path"; import type { DatasetContext } from "./populate.js"; import { @@ -25,6 +27,244 @@ export interface PopulateDatasetWriteResult { insertedRowCount: number; } +export interface PopulateDatasetRowCommitLimit { + maxRowsPerWindow: number; + windowMs: number; + now?: () => Date; + limiter?: PopulateDatasetRowCommitLimiter; +} + +export interface PopulateDatasetRowCommitLimiter { + committedRowCount(input: { + datasetId: string; + since: Date; + now: Date; + }): Promise; + reserveCommit(input: { + datasetId: string; + rowCount: number; + since: Date; + now: Date; + maxRowsPerWindow: number; + }): Promise; +} + +export interface PopulateDatasetRowCommitReservation { + decision: PopulateDatasetRowCommitLimitDecision; + confirm(input: { rowCount: number }): Promise; + release(): Promise; +} + +interface PopulateDatasetRowCommitLimitCheck { + datasetId: string; + rowCount: number; + now: Date; + windowStartedAt: Date; + maxRowsPerWindow: number; + committedRowsInWindow: number; +} + +interface FileSystemCommitLedgerEntry { + datasetId: string; + committedAt: string; + rowCount: number; + reservationId?: string; + status?: "reserved" | "committed"; +} + +interface CommitLedgerReservationInput { + entries: FileSystemCommitLedgerEntry[]; + reservationId: string; + datasetId: string; + rowCount: number; + now: Date; + since: Date; + maxRowsPerWindow: number; +} + +interface CommitLedgerReservationState { + entries: FileSystemCommitLedgerEntry[]; + decision: PopulateDatasetRowCommitLimitDecision; + reservation?: FileSystemCommitLedgerEntry; +} + +interface CommitLedgerMutationInput { + reservationId: string; + datasetId: string; + rowCount?: number; +} + +interface CommitLedgerState { + entries: FileSystemCommitLedgerEntry[]; +} + +interface CommitLedgerStore { + mutateDatasetLedger( + datasetId: string, + mutate: (state: CommitLedgerState) => Promise | T + ): Promise; +} + +interface CommitLedgerReservation { + store: CommitLedgerStore; + reservationId: string; + datasetId: string; + decision: PopulateDatasetRowCommitLimitDecision; +} + +function commitLedgerReservation( + input: CommitLedgerReservation +): PopulateDatasetRowCommitReservation { + return { + decision: input.decision, + async confirm(confirmInput) { + await input.store.mutateDatasetLedger(input.datasetId, (state) => { + confirmReservation({ + entries: state.entries, + reservationId: input.reservationId, + datasetId: input.datasetId, + rowCount: confirmInput.rowCount, + }); + }); + }, + async release() { + await input.store.mutateDatasetLedger(input.datasetId, (state) => { + releaseReservation({ + entries: state.entries, + reservationId: input.reservationId, + datasetId: input.datasetId, + }); + }); + }, + }; +} + +function deniedCommitReservation( + decision: PopulateDatasetRowCommitLimitDecision +): PopulateDatasetRowCommitReservation { + return { + decision, + async confirm() { + return undefined; + }, + async release() { + return undefined; + }, + }; +} + +function reserveInLedger(input: CommitLedgerReservationInput): CommitLedgerReservationState { + const committedRowsInWindow = entriesInWindow(input.entries, { + datasetId: input.datasetId, + since: input.since, + now: input.now, + }).reduce((total, entry) => total + entry.rowCount, 0); + const decision = commitLimitDecisionFromCheck({ + datasetId: input.datasetId, + rowCount: input.rowCount, + now: input.now, + windowStartedAt: input.since, + maxRowsPerWindow: input.maxRowsPerWindow, + committedRowsInWindow, + }); + + if (!decision.isAllowed) { + return { entries: input.entries, decision }; + } + + const reservation = { + datasetId: input.datasetId, + committedAt: input.now.toISOString(), + rowCount: input.rowCount, + reservationId: input.reservationId, + status: "reserved" as const, + }; + return { + entries: [...input.entries, reservation], + decision, + reservation, + }; +} + +function confirmReservation(input: CommitLedgerMutationInput & { + entries: FileSystemCommitLedgerEntry[]; +}): void { + const entry = matchingReservation(input.entries, input); + if (!entry) { + return; + } + entry.status = "committed"; + if (input.rowCount !== undefined) { + entry.rowCount = input.rowCount; + } +} + +function releaseReservation(input: CommitLedgerMutationInput & { + entries: FileSystemCommitLedgerEntry[]; +}): void { + const index = input.entries.findIndex((entry) => + entry.datasetId === input.datasetId && + entry.reservationId === input.reservationId + ); + if (index >= 0) { + input.entries.splice(index, 1); + } +} + +function matchingReservation( + entries: FileSystemCommitLedgerEntry[], + input: CommitLedgerMutationInput +): FileSystemCommitLedgerEntry | undefined { + return entries.find((entry) => + entry.datasetId === input.datasetId && + entry.reservationId === input.reservationId + ); +} + +function commitLimitDecisionFromCheck( + input: PopulateDatasetRowCommitLimitCheck +): PopulateDatasetRowCommitLimitDecision { + const remainingRowsInWindow = Math.max( + 0, + input.maxRowsPerWindow - input.committedRowsInWindow + ); + const isAllowed = input.rowCount <= remainingRowsInWindow; + + return { + isAllowed, + datasetId: input.datasetId, + requestedRowCount: input.rowCount, + maxRowsPerWindow: input.maxRowsPerWindow, + committedRowsInWindow: input.committedRowsInWindow, + remainingRowsInWindow, + windowStartedAt: input.windowStartedAt.toISOString(), + windowEndsAt: input.now.toISOString(), + reason: isAllowed + ? undefined + : `Commit row cap exceeded for ${input.datasetId}: requested ${input.rowCount}, remaining ${remainingRowsInWindow} of ${input.maxRowsPerWindow} rows in the current window.`, + }; +} + +function reservationId(): string { + return randomUUID(); +} + +export interface PopulateDatasetRowCommitLimitDecision { + isAllowed: boolean; + datasetId: string; + requestedRowCount: number; + maxRowsPerWindow: number; + committedRowsInWindow: number; + remainingRowsInWindow: number; + windowStartedAt: string; + windowEndsAt: string; + reason?: string; +} + +export type RunSelfHealingPopulateAction = + | SelfHealingPopulateTickResult["action"] + | "commit_rate_limited"; + export interface RunSelfHealingPopulateInput { context: DatasetContext; store?: PopulateRecipeStore; @@ -33,18 +273,20 @@ export interface RunSelfHealingPopulateInput { rowWriter?: PopulateDatasetRowWriter; shouldCommitRows?: boolean; recipeStoreDirectory?: string; + commitRowLimit?: PopulateDatasetRowCommitLimit; } export interface RunSelfHealingPopulateResult { success: boolean; - action: SelfHealingPopulateTickResult["action"]; + action: RunSelfHealingPopulateAction; datasetId: string; selectedRun?: PopulateRecipeRunResult; diagnosticRun?: PopulateRecipeRunResult; committedRows?: PopulateDatasetWriteResult; + commitLimit?: PopulateDatasetRowCommitLimitDecision; rejectionReasons: string[]; validationIssues: string[]; - tick: SelfHealingPopulateTickResult; + tick?: SelfHealingPopulateTickResult; } export async function runSelfHealingPopulate( @@ -54,6 +296,22 @@ export async function runSelfHealingPopulate( throw new Error("rowWriter is required when shouldCommitRows is true."); } const rowWriter = input.rowWriter; + const commitLimiter = commitLimiterForInput(input); + + if (input.shouldCommitRows && commitLimiter) { + const preflightDecision = await commitLimitDecision({ + context: input.context, + rowCount: 1, + commitRowLimit: input.commitRowLimit!, + limiter: commitLimiter, + }); + if (!preflightDecision.isAllowed && preflightDecision.remainingRowsInWindow <= 0) { + return commitRateLimitedResult({ + datasetId: input.context.datasetId, + decision: preflightDecision, + }); + } + } const store = input.store ?? new FileSystemPopulateRecipeStore( input.recipeStoreDirectory ?? defaultPopulateRecipeStoreDirectory() @@ -70,12 +328,38 @@ export async function runSelfHealingPopulate( const selectedRun = successfulRunForTick(tick); const diagnosticRun = diagnosticRunForTick(tick); let committedRows: PopulateDatasetWriteResult | undefined; + let commitLimit: PopulateDatasetRowCommitLimitDecision | undefined; if (input.shouldCommitRows && selectedRun && rowWriter) { - committedRows = await rowWriter.replaceRows({ - datasetId: input.context.datasetId, - rows: selectedRun.rows, - }); + let reservation: PopulateDatasetRowCommitReservation | undefined; + if (commitLimiter) { + reservation = await reserveCommitRows({ + context: input.context, + rowCount: selectedRun.rows.length, + commitRowLimit: input.commitRowLimit!, + limiter: commitLimiter, + }); + commitLimit = reservation.decision; + if (!commitLimit.isAllowed) { + return commitRateLimitedResult({ + datasetId: input.context.datasetId, + decision: commitLimit, + selectedRun, + diagnosticRun, + tick, + }); + } + } + try { + committedRows = await rowWriter.replaceRows({ + datasetId: input.context.datasetId, + rows: selectedRun.rows, + }); + } catch (error) { + await reservation?.release(); + throw error; + } + await reservation?.confirm({ rowCount: committedRows.insertedRowCount }); } return { @@ -85,6 +369,7 @@ export async function runSelfHealingPopulate( selectedRun, diagnosticRun, committedRows, + commitLimit, rejectionReasons: tick.rejectionReasons, validationIssues: validationIssuesForSelfHealingTick(tick), tick, @@ -126,3 +411,270 @@ export function validationIssuesForSelfHealingTick( function defaultPopulateRecipeStoreDirectory(): string { return join(process.cwd(), ".bigset", "populate-recipes"); } + +function commitLimiterForInput( + input: RunSelfHealingPopulateInput +): PopulateDatasetRowCommitLimiter | undefined { + if (!input.shouldCommitRows || !input.commitRowLimit) { + return undefined; + } + return input.commitRowLimit.limiter ?? new FileSystemPopulateDatasetRowCommitLimiter( + join( + input.recipeStoreDirectory ?? defaultPopulateRecipeStoreDirectory(), + "commit-ledger" + ) + ); +} + +async function commitLimitDecision(input: { + context: DatasetContext; + rowCount: number; + commitRowLimit: PopulateDatasetRowCommitLimit; + limiter: PopulateDatasetRowCommitLimiter; +}): Promise { + const now = input.commitRowLimit.now?.() ?? new Date(); + const windowStartedAt = new Date(now.getTime() - input.commitRowLimit.windowMs); + const committedRowsInWindow = await input.limiter.committedRowCount({ + datasetId: input.context.datasetId, + since: windowStartedAt, + now, + }); + return commitLimitDecisionFromCheck({ + datasetId: input.context.datasetId, + rowCount: input.rowCount, + now, + windowStartedAt, + maxRowsPerWindow: input.commitRowLimit.maxRowsPerWindow, + committedRowsInWindow, + }); +} + +async function reserveCommitRows(input: { + context: DatasetContext; + rowCount: number; + commitRowLimit: PopulateDatasetRowCommitLimit; + limiter: PopulateDatasetRowCommitLimiter; +}): Promise { + const now = input.commitRowLimit.now?.() ?? new Date(); + const windowStartedAt = new Date(now.getTime() - input.commitRowLimit.windowMs); + return input.limiter.reserveCommit({ + datasetId: input.context.datasetId, + rowCount: input.rowCount, + since: windowStartedAt, + now, + maxRowsPerWindow: input.commitRowLimit.maxRowsPerWindow, + }); +} + +function commitRateLimitedResult(input: { + datasetId: string; + decision: PopulateDatasetRowCommitLimitDecision; + selectedRun?: PopulateRecipeRunResult; + diagnosticRun?: PopulateRecipeRunResult; + tick?: SelfHealingPopulateTickResult; +}): RunSelfHealingPopulateResult { + const reason = input.decision.reason ?? + `Commit row cap exceeded for ${input.datasetId}.`; + return { + success: false, + action: "commit_rate_limited", + datasetId: input.datasetId, + selectedRun: input.selectedRun, + diagnosticRun: input.diagnosticRun ?? input.selectedRun, + commitLimit: input.decision, + rejectionReasons: [reason], + validationIssues: [reason], + tick: input.tick, + }; +} + +export class InMemoryPopulateDatasetRowCommitLimiter +implements PopulateDatasetRowCommitLimiter, CommitLedgerStore { + private readonly entries: FileSystemCommitLedgerEntry[] = []; + + async committedRowCount(input: { + datasetId: string; + since: Date; + now: Date; + }): Promise { + return entriesInWindow(this.entries, input) + .reduce((total, entry) => total + entry.rowCount, 0); + } + + async reserveCommit(input: { + datasetId: string; + rowCount: number; + since: Date; + now: Date; + maxRowsPerWindow: number; + }): Promise { + const id = reservationId(); + const state = reserveInLedger({ + entries: this.entries, + reservationId: id, + datasetId: input.datasetId, + rowCount: input.rowCount, + since: input.since, + now: input.now, + maxRowsPerWindow: input.maxRowsPerWindow, + }); + this.entries.splice(0, this.entries.length, ...state.entries); + return state.reservation + ? commitLedgerReservation({ + store: this, + reservationId: id, + datasetId: input.datasetId, + decision: state.decision, + }) + : deniedCommitReservation(state.decision); + } + + async mutateDatasetLedger( + _datasetId: string, + mutate: (state: CommitLedgerState) => Promise | T + ): Promise { + return mutate({ entries: this.entries }); + } +} + +export class FileSystemPopulateDatasetRowCommitLimiter +implements PopulateDatasetRowCommitLimiter, CommitLedgerStore { + constructor(private readonly rootDirectory: string) {} + + async committedRowCount(input: { + datasetId: string; + since: Date; + now: Date; + }): Promise { + return entriesInWindow(await this.readEntries(input.datasetId), input) + .reduce((total, entry) => total + entry.rowCount, 0); + } + + async reserveCommit(input: { + datasetId: string; + rowCount: number; + since: Date; + now: Date; + maxRowsPerWindow: number; + }): Promise { + const id = reservationId(); + const state = await this.mutateDatasetLedger(input.datasetId, (ledger) => { + const reservationState = reserveInLedger({ + entries: ledger.entries, + reservationId: id, + datasetId: input.datasetId, + rowCount: input.rowCount, + since: input.since, + now: input.now, + maxRowsPerWindow: input.maxRowsPerWindow, + }); + ledger.entries.splice(0, ledger.entries.length, ...reservationState.entries); + return reservationState; + }); + return state.reservation + ? commitLedgerReservation({ + store: this, + reservationId: id, + datasetId: input.datasetId, + decision: state.decision, + }) + : deniedCommitReservation(state.decision); + } + + async mutateDatasetLedger( + datasetId: string, + mutate: (state: CommitLedgerState) => Promise | T + ): Promise { + const lockPath = await this.acquireLock(datasetId); + try { + const entries = await this.readEntries(datasetId); + const state = { entries }; + const result = await mutate(state); + await this.writeEntries(datasetId, state.entries); + return result; + } finally { + await rm(lockPath, { recursive: true, force: true }); + } + } + + private async acquireLock(datasetId: string): Promise { + await mkdir(this.rootDirectory, { recursive: true }); + const lockPath = this.lockPath(datasetId); + const startedAt = Date.now(); + while (true) { + try { + await mkdir(lockPath); + return lockPath; + } catch (error) { + if (!isNodeError(error) || error.code !== "EEXIST") { + throw error; + } + if (Date.now() - startedAt > 5_000) { + throw new Error(`Timed out waiting for commit ledger lock for ${datasetId}.`); + } + await sleep(25); + } + } + } + + private lockPath(datasetId: string): string { + return join(this.rootDirectory, `${safePathSegment(datasetId)}.lock`); + } + + private async readEntries(datasetId: string): Promise { + try { + const text = await readFile(this.ledgerPath(datasetId), "utf8"); + const parsed = JSON.parse(text) as { entries?: FileSystemCommitLedgerEntry[] }; + return Array.isArray(parsed.entries) ? parsed.entries : []; + } catch (error) { + if (isNodeError(error) && error.code === "ENOENT") { + return []; + } + throw error; + } + } + + private async writeEntries( + datasetId: string, + entries: FileSystemCommitLedgerEntry[] + ): Promise { + const path = this.ledgerPath(datasetId); + await mkdir(dirname(path), { recursive: true }); + await writeFile(path, `${JSON.stringify({ entries }, null, 2)}\n`, "utf8"); + } + + private ledgerPath(datasetId: string): string { + return join(this.rootDirectory, `${safePathSegment(datasetId)}.json`); + } +} + +function sleep(ms: number): Promise { + return new Promise((resolve) => setTimeout(resolve, ms)); +} + +function entriesInWindow( + entries: FileSystemCommitLedgerEntry[], + input: { + datasetId: string; + since: Date; + now: Date; + } +): FileSystemCommitLedgerEntry[] { + return entries.filter((entry) => { + if (entry.datasetId !== input.datasetId) { + return false; + } + const committedAtMs = Date.parse(entry.committedAt); + return Number.isFinite(committedAtMs) && + committedAtMs >= input.since.getTime() && + committedAtMs <= input.now.getTime(); + }); +} + +function safePathSegment(value: string): string { + return value.replace(/[^a-zA-Z0-9._-]/g, "_"); +} + +function isNodeError(error: unknown): error is NodeJS.ErrnoException { + return error instanceof Error && "code" in error; +} diff --git a/backend/src/server.ts b/backend/src/server.ts index aa93ea7..6fd88c3 100644 --- a/backend/src/server.ts +++ b/backend/src/server.ts @@ -25,6 +25,7 @@ export interface BigSetServerEnv { OPENROUTER_API_KEY?: string; TINYFISH_API_KEY?: string; POPULATE_RECIPE_STORE_DIR: string; + POPULATE_COMMIT_ROW_LIMIT_PER_HOUR?: string; } export interface BigSetPopulateDataset { @@ -134,6 +135,10 @@ export async function createBigSetServer( rowWriter: input.populateRowWriter, shouldCommitRows: true, runtime, + commitRowLimit: { + maxRowsPerWindow: commitRowLimitPerHour(input.env), + windowMs: 60 * 60 * 1_000, + }, }); req.log.info({ @@ -177,6 +182,7 @@ function responseSafePopulateResult( datasetId: result.datasetId, success: result.success, committedRows: result.committedRows, + commitLimit: result.commitLimit, rejectionReasons: result.rejectionReasons, validationIssues: result.validationIssues, productionValidation: diagnosticRun?.productionValidation, @@ -184,3 +190,16 @@ function responseSafePopulateResult( rowCount: diagnosticRun?.rows.length ?? 0, }; } + +function commitRowLimitPerHour(env: BigSetServerEnv): number { + if (!env.POPULATE_COMMIT_ROW_LIMIT_PER_HOUR) { + return 100; + } + const parsed = Number(env.POPULATE_COMMIT_ROW_LIMIT_PER_HOUR); + if (!Number.isInteger(parsed) || parsed <= 0) { + throw new Error( + "POPULATE_COMMIT_ROW_LIMIT_PER_HOUR must be a positive integer." + ); + } + return parsed; +} diff --git a/backend/test/populate-self-healing-command.test.ts b/backend/test/populate-self-healing-command.test.ts index 1baf0f1..67c3597 100644 --- a/backend/test/populate-self-healing-command.test.ts +++ b/backend/test/populate-self-healing-command.test.ts @@ -46,6 +46,21 @@ test("self-healing CLI parses dataset-id mode", () => { }); }); +test("self-healing CLI parses commit row limit override", () => { + assert.deepEqual(parsePopulateSelfHealingCliArgs([ + "--dataset-id", + "dataset-ai-posts", + "--commit", + "--commit-row-limit-per-hour", + "250", + ]), { + datasetId: "dataset-ai-posts", + shouldReadStdin: false, + shouldCommitRows: true, + commitRowLimitPerHour: 250, + }); +}); + test("self-healing CLI rejects dataset-id mixed with context input", () => { assert.throws( () => parsePopulateSelfHealingCliArgs([ @@ -240,6 +255,8 @@ test("self-healing CLI dataset-id commit loads context and creates writer", asyn assert.equal(input.store, undefined); assert.equal(input.recipeStoreDirectory, ".bigset/populate-recipes"); assert.ok(input.rowWriter); + assert.equal(input.commitRowLimit?.maxRowsPerWindow, 100); + assert.equal(input.commitRowLimit?.windowMs, 60 * 60 * 1_000); return successfulResult(input.context.datasetId); }, }); diff --git a/backend/test/populate-self-healing-runner.test.ts b/backend/test/populate-self-healing-runner.test.ts index b63c4c0..79c03ca 100644 --- a/backend/test/populate-self-healing-runner.test.ts +++ b/backend/test/populate-self-healing-runner.test.ts @@ -17,6 +17,8 @@ import { } from "../src/pipeline/populate-self-healing.js"; import { diagnosticRunForTick, + FileSystemPopulateDatasetRowCommitLimiter, + InMemoryPopulateDatasetRowCommitLimiter, runSelfHealingPopulate, validationIssuesForSelfHealingTick, type PopulateDatasetRowWriter, @@ -71,7 +73,7 @@ test("self-healing runner commits rows only after a successful tick", async () = assert.equal(result.committedRows?.insertedRowCount, 1); assert.equal(writer.replaceCalls.length, 1); assert.equal(writer.replaceCalls[0]?.datasetId, context.datasetId); - assert.equal(writer.replaceCalls[0]?.rows[0]?.cells.entity_name, "OpenAI"); + assert.equal(writer.replaceCalls[0]?.rows[0]?.cells.entity_name, "OpenAI 1"); }); test("self-healing runner requires a row writer before runtime work when committing", async () => { @@ -97,6 +99,142 @@ test("self-healing runner requires a row writer before runtime work when committ assert.equal(runtimeCalls, 0); }); +test("self-healing runner records committed rows against the hourly cap", async () => { + const store = new InMemoryPopulateRecipeStore(); + const generatedRecipe = recipe({ recipeId: "generated-v1" }); + const writer = new FakePopulateDatasetRowWriter(); + const limiter = new InMemoryPopulateDatasetRowCommitLimiter(); + const now = new Date("2026-05-22T00:30:00.000Z"); + + const result = await runSelfHealingPopulate({ + context, + store, + runtime: new FakePopulateRecipeRuntime({ + "generated-v1": validRunWithRows(generatedRecipe, 2), + }), + author: new FakeRecipeAuthor({ generatedRecipe }), + rowWriter: writer, + shouldCommitRows: true, + commitRowLimit: { + maxRowsPerWindow: 100, + windowMs: 60 * 60 * 1_000, + now: () => now, + limiter, + }, + }); + + assert.equal(result.success, true); + assert.equal(result.committedRows?.insertedRowCount, 2); + assert.equal(result.commitLimit?.remainingRowsInWindow, 100); + assert.equal(await limiter.committedRowCount({ + datasetId: context.datasetId, + since: new Date("2026-05-21T23:30:00.000Z"), + now, + }), 2); +}); + +test("self-healing runner skips runtime when commit cap is exhausted", async () => { + const limiter = new InMemoryPopulateDatasetRowCommitLimiter(); + const now = new Date("2026-05-22T00:30:00.000Z"); + let runtimeCalls = 0; + const writer = new FakePopulateDatasetRowWriter(); + await reserveExistingRows({ limiter, now, rowCount: 100 }); + + const result = await runSelfHealingPopulate({ + context, + store: new InMemoryPopulateRecipeStore(), + runtime: { + async runRecipe(input) { + runtimeCalls += 1; + return validRun(input.recipe); + }, + }, + author: new FakeRecipeAuthor({ + generatedRecipe: recipe({ recipeId: "generated-v1" }), + }), + rowWriter: writer, + shouldCommitRows: true, + commitRowLimit: { + maxRowsPerWindow: 100, + windowMs: 60 * 60 * 1_000, + now: () => now, + limiter, + }, + }); + + assert.equal(result.success, false); + assert.equal(result.action, "commit_rate_limited"); + assert.equal(result.tick, undefined); + assert.equal(result.commitLimit?.remainingRowsInWindow, 0); + assert.match(result.validationIssues.join("\n"), /Commit row cap exceeded/); + assert.equal(runtimeCalls, 0); + assert.equal(writer.replaceCalls.length, 0); +}); + +test("self-healing runner blocks commit when selected rows exceed remaining cap", async () => { + const store = new InMemoryPopulateRecipeStore(); + const limiter = new InMemoryPopulateDatasetRowCommitLimiter(); + const generatedRecipe = recipe({ recipeId: "generated-v1" }); + const writer = new FakePopulateDatasetRowWriter(); + const now = new Date("2026-05-22T00:30:00.000Z"); + await reserveExistingRows({ limiter, now, rowCount: 99 }); + + const result = await runSelfHealingPopulate({ + context, + store, + runtime: new FakePopulateRecipeRuntime({ + "generated-v1": validRunWithRows(generatedRecipe, 2), + }), + author: new FakeRecipeAuthor({ generatedRecipe }), + rowWriter: writer, + shouldCommitRows: true, + commitRowLimit: { + maxRowsPerWindow: 100, + windowMs: 60 * 60 * 1_000, + now: () => now, + limiter, + }, + }); + + assert.equal(result.success, false); + assert.equal(result.action, "commit_rate_limited"); + assert.equal(result.selectedRun?.rows.length, 2); + assert.equal(result.commitLimit?.requestedRowCount, 2); + assert.equal(result.commitLimit?.remainingRowsInWindow, 1); + assert.equal(writer.replaceCalls.length, 0); +}); + +test("filesystem row commit limiter reserves atomically for concurrent calls", async () => { + const rootDirectory = await mkdtemp(join(tmpdir(), "bigset-row-cap-")); + const limiter = new FileSystemPopulateDatasetRowCommitLimiter(rootDirectory); + const now = new Date("2026-05-22T00:30:00.000Z"); + const reserve = () => limiter.reserveCommit({ + datasetId: context.datasetId, + rowCount: 60, + since: new Date(now.getTime() - 60 * 60 * 1_000), + now, + maxRowsPerWindow: 100, + }); + + const reservations = await Promise.all([reserve(), reserve()]); + const allowed = reservations.filter((reservation) => + reservation.decision.isAllowed + ); + const denied = reservations.filter((reservation) => + !reservation.decision.isAllowed + ); + + assert.equal(allowed.length, 1); + assert.equal(denied.length, 1); + assert.equal(denied[0]?.decision.remainingRowsInWindow, 40); + await allowed[0]?.confirm({ rowCount: 60 }); + assert.equal(await limiter.committedRowCount({ + datasetId: context.datasetId, + since: new Date(now.getTime() - 60 * 60 * 1_000), + now, + }), 60); +}); + test("self-healing runner commits healthy active reruns", async () => { const store = new InMemoryPopulateRecipeStore(); const activeRecipe = recipe({ recipeId: "active-v1", status: "active" }); @@ -241,23 +379,30 @@ function recipe(input: { } function validRun(recipe: PopulateRecipe): PopulateRecipeRunResult { + return validRunWithRows(recipe, 1); +} + +function validRunWithRows( + recipe: PopulateRecipe, + rowCount: number +): PopulateRecipeRunResult { return runResult({ recipe, - rows: [{ + rows: Array.from({ length: rowCount }, (_, index) => ({ cells: { - entity_name: "OpenAI", - latest_post_title: "Release notes from OpenAI", + entity_name: `OpenAI ${index + 1}`, + latest_post_title: `Release notes from OpenAI ${index + 1}`, source_url: "https://openai.com/news", - evidence_quote: "Release notes from OpenAI", + evidence_quote: `Release notes from OpenAI ${index + 1}`, }, sourceUrls: ["https://openai.com/news"], evidence: [{ columnName: "latest_post_title", sourceUrl: "https://openai.com/news", - quote: "Release notes from OpenAI", + quote: `Release notes from OpenAI ${index + 1}`, }], needsReview: true, - }], + })), isValid: true, score: 1, }); @@ -363,3 +508,19 @@ class FakePopulateDatasetRowWriter implements PopulateDatasetRowWriter { }; } } + +async function reserveExistingRows(input: { + limiter: InMemoryPopulateDatasetRowCommitLimiter; + now: Date; + rowCount: number; +}): Promise { + const reservation = await input.limiter.reserveCommit({ + datasetId: context.datasetId, + rowCount: input.rowCount, + since: new Date(input.now.getTime() - 60 * 60 * 1_000), + now: input.now, + maxRowsPerWindow: 100, + }); + assert.equal(reservation.decision.isAllowed, true); + await reservation.confirm({ rowCount: input.rowCount }); +} diff --git a/backend/test/populate-server.test.ts b/backend/test/populate-server.test.ts index 99e63f2..5b2730e 100644 --- a/backend/test/populate-server.test.ts +++ b/backend/test/populate-server.test.ts @@ -55,6 +55,8 @@ test("POST /populate passes selected runtime into self-healing runner", async () assert.equal(input.shouldCommitRows, true); assert.equal(input.recipeStoreDirectory, ".bigset/populate-recipes"); assert.ok(input.rowWriter); + assert.equal(input.commitRowLimit?.maxRowsPerWindow, 100); + assert.equal(input.commitRowLimit?.windowMs, 60 * 60 * 1_000); return successfulResult(input.context.datasetId); }, }); diff --git a/docs/data-collection-agent-migration-plan.md b/docs/data-collection-agent-migration-plan.md index aef21e7..55becb9 100644 --- a/docs/data-collection-agent-migration-plan.md +++ b/docs/data-collection-agent-migration-plan.md @@ -38,6 +38,10 @@ the collection pipeline is migrated into BigSet. `selfHealingAction: "candidate_rejected"` fail benchmark scoring with `failureCategory: "capability_gate"`, even when diagnostic rows match answer keys. +- This branch adds a commit-path row cap for self-healing writes. Commit mode + defaults to 100 committed rows/hour per dataset and can be overridden with + `POPULATE_COMMIT_ROW_LIMIT_PER_HOUR` or + `--commit-row-limit-per-hour`. - `feat/data-collection-agent-v14` is no longer the branch to build on directly. It was the source of the collection pipeline port. New work should branch on top of the current draft stack, not edit Meteor's branch or the dirty main @@ -84,6 +88,7 @@ The current layer: - promotes a repaired recipe only if it is valid and does not score below the active recipe baseline - commits rows only after a successful tick, using one Convex atomic replace +- enforces a configurable per-dataset hourly row cap before committing rows - supports a CLI path for cron/live smoke via `populate:self-heal --dataset-id` Dry-run and benchmark paths intentionally use in-memory stores so they do not @@ -133,8 +138,6 @@ The current layer does not yet: - run a green live Convex canary in this local environment - prove Agent-enabled collection quality on a full real benchmark - prove the collection runtime should replace Mastra as the default app runtime -- enforce the planned per-dataset row commit cap, such as 100 rows/hour, on the - self-healing commit path ## Migration Sequence @@ -253,6 +256,8 @@ Before any merge: follow-up - live dataset commit is tested only on a throwaway dataset - backend build does not depend on `frontend/convex/_generated` +- commit-mode row caps block Convex writes before the cap is exceeded and skip + runtime work when the cap is already exhausted ## Meteor Handoff Shape @@ -343,21 +348,14 @@ edit `main`, Meteor's branch, or the dirty local checkout. - Each action should include at least URL or selector/target text plus safe, redacted value descriptions for form inputs. - Do not build a Playwright compiler against search/fetch-only traces. -2. Add a small self-healing commit-path row cap when commit safety becomes the - immediate risk. - - Start with a configurable per-dataset cap such as 100 committed rows/hour. - - Enforce it before `rowWriter.replaceRows(...)` on commit mode. - - Keep dry-run and benchmark lanes unaffected. - - Gate it with unit tests for allowed commit, blocked commit, and no runtime - execution when the cap is already exhausted. -3. Re-run the Agent-enabled `mcp-docs-pages` canary with: +2. Re-run the Agent-enabled `mcp-docs-pages` canary with: - `COLLECTION_AGENT_ENABLE_AGENT=true` - `--require-playwright-ready` - PR #60's rejected-candidate gate -4. Only after that canary produces `selfHealingAction` other than +3. Only after that canary produces `selfHealingAction` other than `candidate_rejected` and `playwrightCandidateStatus: "ready"`, start a Playwright compiler branch. -5. Run the full prompt pack only after the focused canaries are not obviously +4. Run the full prompt pack only after the focused canaries are not obviously broken. When testing the real app or CLI path, set: @@ -366,6 +364,7 @@ When testing the real app or CLI path, set: POPULATE_AGENT_RUNTIME=collection POPULATE_COLLECTION_RUNNER_MODULE=./backend/src/pipeline/collection-agent-runner.ts COLLECTION_AGENT_PIPELINE_MODULE=./backend/BigSet_Data_Collection_Agent/src/orchestrator/pipeline.ts +POPULATE_COMMIT_ROW_LIMIT_PER_HOUR=100 ``` The BigSet runner keeps TinyFish Agent/browser calls disabled unless From d818ba38b8785e07f7ec983717502645aa1f7171 Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 08:35:30 +0700 Subject: [PATCH 11/21] Ask Agent to emit browser actions --- .../src/agents/agent-goal.ts | 75 ++++++++++++------- backend/test/agent-goal-contract.test.ts | 62 +++++++++++++++ benchmarks/dataset-agent/README.md | 4 +- docs/data-collection-agent-migration-plan.md | 5 ++ 4 files changed, 118 insertions(+), 28 deletions(-) create mode 100644 backend/test/agent-goal-contract.test.ts diff --git a/backend/BigSet_Data_Collection_Agent/src/agents/agent-goal.ts b/backend/BigSet_Data_Collection_Agent/src/agents/agent-goal.ts index e84ad75..7df2219 100644 --- a/backend/BigSet_Data_Collection_Agent/src/agents/agent-goal.ts +++ b/backend/BigSet_Data_Collection_Agent/src/agents/agent-goal.ts @@ -5,6 +5,15 @@ import { } from "../memory/index.js"; import { agentGoalSchema, type AgentGoal } from "../models/schemas.js"; import type { DatasetSpec, SourceTriageResult } from "../models/schemas.js"; +import type { LlmMessage } from "../integrations/openrouter.js"; + +export const AGENT_BROWSER_ACTION_CONTRACT = `Browser action reporting contract: +- The Tinyfish Agent result JSON MUST include "agent_browser_actions" next to "records". +- "agent_browser_actions" is an ordered array of browser steps the agent actually performed. +- Each action should use this shape when known: { "action": "navigate|click|type|select|wait|extract|screenshot|unknown", "url": "current page URL", "selector": "CSS selector when known", "target_text": "visible button/link/field text when known", "value_description": "safe description of typed/selected value, never secrets", "status": "succeeded|failed", "error": "failure reason if any", "phase": "initial|search|filter|pagination|detail|form|extract", "label": "short human label" }. +- Record navigation, clicks, form fills, pagination, waits that affected extraction, and final extraction. +- If a selector is unknown, still include url plus target_text when visible. If no browser action happened, return an empty array. +- Do not include raw passwords, tokens, cookies, or private user-entered values in value_description.`; const AGENT_GOAL_SYSTEM = `You are the Navigation Task Agent for a web data collection pipeline. @@ -14,8 +23,9 @@ The agent must navigate the site and return structured JSON with extracted data Rules: - Be specific about what to click, search, filter, or paginate. -- State the exact JSON shape to return: { "records": [ { column_name: value, ... } ] } +- State the exact JSON shape to return: { "records": [ { column_name: value, ... } ], "agent_browser_actions": [ ... ] } - Include column names from the schema in the goal. +- Include the browser action reporting contract verbatim enough that the Tinyfish Agent knows it must report replay-oriented actions. - For forms: describe fields to fill and how to submit. - For detail follow-up: explain how to open each item and which fields to collect. - Limit scope (e.g. first 25 rows) to keep runs reliable. @@ -31,34 +41,45 @@ export async function generateAgentGoal(options: { focusFields?: string[]; memory?: WorkflowMemory; }): Promise { - const columnList = options.spec.columns - .map((c) => `${c.name} (${c.type}${c.required ? ", required" : ""})`) - .join(", "); - return completeJson({ label: `agent_goal:${options.triage.final_url}`, schema: agentGoalSchema, - messages: [ - { role: "system", content: AGENT_GOAL_SYSTEM }, - { - role: "user", - content: JSON.stringify({ - user_prompt: options.userPrompt, - triage_status: options.triage.status, - triage_reasoning: options.triage.reasoning, - suggested_action: options.triage.suggested_action, - page_url: options.triage.final_url, - page_title: options.triage.title, - row_grain: options.spec.row_grain, - columns: columnList, - focus_fields: options.focusFields ?? [], - extraction_hints: options.spec.extraction_hints, - workflow_memory: options.memory - ? memoryContextForAgents(options.memory) - : undefined, - output_shape: { goal: "string", rationale: "string" }, - }), - }, - ], + messages: buildAgentGoalMessages(options), }); } + +export function buildAgentGoalMessages(options: { + userPrompt: string; + spec: DatasetSpec; + triage: SourceTriageResult; + focusFields?: string[]; + memory?: WorkflowMemory; +}): LlmMessage[] { + const columnList = options.spec.columns + .map((c) => `${c.name} (${c.type}${c.required ? ", required" : ""})`) + .join(", "); + + return [ + { role: "system", content: AGENT_GOAL_SYSTEM }, + { + role: "user", + content: JSON.stringify({ + user_prompt: options.userPrompt, + triage_status: options.triage.status, + triage_reasoning: options.triage.reasoning, + suggested_action: options.triage.suggested_action, + page_url: options.triage.final_url, + page_title: options.triage.title, + row_grain: options.spec.row_grain, + columns: columnList, + focus_fields: options.focusFields ?? [], + extraction_hints: options.spec.extraction_hints, + browser_action_reporting_contract: AGENT_BROWSER_ACTION_CONTRACT, + workflow_memory: options.memory + ? memoryContextForAgents(options.memory) + : undefined, + output_shape: { goal: "string", rationale: "string" }, + }), + }, + ]; +} diff --git a/backend/test/agent-goal-contract.test.ts b/backend/test/agent-goal-contract.test.ts new file mode 100644 index 0000000..bad81ef --- /dev/null +++ b/backend/test/agent-goal-contract.test.ts @@ -0,0 +1,62 @@ +import assert from "node:assert/strict"; +import { test } from "node:test"; + +import { + AGENT_BROWSER_ACTION_CONTRACT, + buildAgentGoalMessages, +} from "../BigSet_Data_Collection_Agent/src/agents/agent-goal.js"; + +test("Agent goal prompt requires producer-side browser action reporting", () => { + const messages = buildAgentGoalMessages({ + userPrompt: "Find SaaS pricing pages.", + spec: { + intent_summary: "Find pricing pages.", + target_row_count: 3, + row_grain: "company", + columns: [ + { + name: "company_name", + type: "string", + description: "Company name", + required: true, + }, + { + name: "pricing_url", + type: "string", + description: "Pricing page URL", + required: true, + }, + ], + dedupe_keys: ["company_name"], + search_queries: ["SaaS pricing"], + extraction_hints: "Prefer official pricing pages.", + }, + triage: { + url: "https://example.com", + final_url: "https://example.com/pricing", + title: "Pricing", + status: "requires_navigation", + confidence: 0.9, + source_data_confidence: 0.8, + expected_yield: "partial", + reasoning: "Needs click-through navigation.", + suggested_action: "Open pricing details.", + }, + }); + + const systemPrompt = messages.find((message) => message.role === "system") + ?.content ?? ""; + const userPayload = JSON.parse( + messages.find((message) => message.role === "user")?.content ?? "{}" + ); + + assert.match(systemPrompt, /agent_browser_actions/); + assert.match(systemPrompt, /records/); + assert.match(AGENT_BROWSER_ACTION_CONTRACT, /selector/); + assert.match(AGENT_BROWSER_ACTION_CONTRACT, /target_text/); + assert.match(AGENT_BROWSER_ACTION_CONTRACT, /value_description/); + assert.equal( + userPayload.browser_action_reporting_contract, + AGENT_BROWSER_ACTION_CONTRACT + ); +}); diff --git a/benchmarks/dataset-agent/README.md b/benchmarks/dataset-agent/README.md index 0d7d8f3..7f0f0a5 100644 --- a/benchmarks/dataset-agent/README.md +++ b/benchmarks/dataset-agent/README.md @@ -98,7 +98,9 @@ descriptions before any `playwright-candidate-script` can be emitted. Collection runners can feed those actions through explicit report fields such as `browser_actions` or `agent_browser_actions`. BigSet maps only those explicit actions into `browser` trace steps; it does not infer selectors or clicks from -URLs, source outcomes, or prose diagnostics. +URLs, source outcomes, or prose diagnostics. The collection TinyFish Agent goal +now explicitly asks the Agent to return `agent_browser_actions` next to +`records`, so browser replay evidence starts at the producer contract. Mapping is mechanical: diff --git a/docs/data-collection-agent-migration-plan.md b/docs/data-collection-agent-migration-plan.md index 55becb9..593bd3f 100644 --- a/docs/data-collection-agent-migration-plan.md +++ b/docs/data-collection-agent-migration-plan.md @@ -280,6 +280,11 @@ order and appends `browser_actions` before `agent_browser_actions` when both are present in the same report scope. This is a wrapper ingestion contract only; the current vendored pipeline is not claimed to emit those fields yet. +The TinyFish Agent goal generator now asks the Agent itself to include +`agent_browser_actions` beside `records` in its result JSON. That makes the +producer responsible for ordered navigation/click/type/extract actions instead +of asking the self-healing layer to infer browser behavior after the fact. + If TinyFish Agent result JSON includes explicit `browser_actions` or `agent_browser_actions`, the vendored runner now carries those arrays into the saved Agent run records and phase-scoped run report fields. Generic `actions` From edf1402be3e4b81aac4f89081d6524c4d2d58c93 Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 08:53:15 +0700 Subject: [PATCH 12/21] Emit Playwright candidate scripts --- .../src/orchestrator/browser-actions.ts | 128 ++++++++++ .../populate-playwright-candidate-script.ts | 225 ++++++++++++++++++ backend/src/pipeline/populate-self-healing.ts | 14 ++ .../test/collection-browser-actions.test.ts | 80 +++++++ backend/test/populate-self-healing.test.ts | 149 ++++++++++++ benchmarks/dataset-agent/README.md | 10 +- docs/data-collection-agent-migration-plan.md | 19 +- 7 files changed, 612 insertions(+), 13 deletions(-) create mode 100644 backend/src/pipeline/populate-playwright-candidate-script.ts diff --git a/backend/BigSet_Data_Collection_Agent/src/orchestrator/browser-actions.ts b/backend/BigSet_Data_Collection_Agent/src/orchestrator/browser-actions.ts index 0f79044..b01ea29 100644 --- a/backend/BigSet_Data_Collection_Agent/src/orchestrator/browser-actions.ts +++ b/backend/BigSet_Data_Collection_Agent/src/orchestrator/browser-actions.ts @@ -23,6 +23,11 @@ export function explicitBrowserActionsFromAgentResult( for (const key of EXPLICIT_BROWSER_ACTION_ARRAY_KEYS) { actions.push(...browserActionsFromValue(input.agentResult[key], input.pageUrl)); } + actions.push(...browserActionsFromNavigationSummary({ + value: input.agentResult.navigation, + pageUrl: input.pageUrl, + hasExtraction: Boolean(input.agentResult.extraction), + })); return dedupeBrowserActions(actions); } @@ -51,6 +56,9 @@ function browserActionFromValue( value: unknown, pageUrl: string ): BrowserActionReport | undefined { + if (typeof value === "string") { + return browserActionFromString(value, pageUrl); + } if (!value || typeof value !== "object" || Array.isArray(value)) { return undefined; } @@ -64,6 +72,61 @@ function browserActionFromValue( }; } +function browserActionFromString( + value: string, + pageUrl: string +): BrowserActionReport | undefined { + const label = value.trim(); + if (!label) { + return undefined; + } + const url = label.match(/https?:\/\/[^\s,)]+/i)?.[0] + ?.replace(/[.?!]+$/, ""); + if (url) { + return { + action: "navigate", + url, + status: "succeeded", + phase: "navigation", + label, + }; + } + + if (/\bextract\b/i.test(label)) { + return { + action: "extract", + url: pageUrl, + status: "succeeded", + phase: "extract", + label, + }; + } + + const sectionText = targetTextFromNavigationInstruction(label); + if (sectionText) { + return { + action: "click", + url: pageUrl, + target_text: sectionText, + status: "succeeded", + phase: "navigation", + label, + }; + } + + return undefined; +} + +function targetTextFromNavigationInstruction(label: string): string | undefined { + const match = label.match( + /\b(?:navigate|go)\s+to\s+(?:the\s+)?(.+?)(?:\s+(?:section|tab|category|page|area))?(?:\s+(?:of|on|to|for)\b|[.?!]|$)/i + ); + const targetText = match?.[1]?.trim(); + return targetText && !/^https?:\/\//i.test(targetText) + ? targetText + : undefined; +} + function hasReplayAnchor(action: BrowserActionReport): boolean { return Boolean( action.url || @@ -73,6 +136,71 @@ function hasReplayAnchor(action: BrowserActionReport): boolean { ); } +function browserActionsFromNavigationSummary(input: { + value: unknown; + pageUrl: string; + hasExtraction: boolean; +}): BrowserActionReport[] { + if (!input.value || typeof input.value !== "object" || Array.isArray(input.value)) { + return []; + } + const navigation = input.value as Record; + const actions: BrowserActionReport[] = []; + const initialUrl = stringValue(navigation.initial_url ?? navigation.initialUrl); + if (initialUrl) { + actions.push({ + action: "navigate", + url: initialUrl, + status: "succeeded", + phase: "initial", + label: "agent-navigation-start", + }); + } + + const categoryClicked = stringValue( + navigation.category_clicked ?? navigation.categoryClicked + ); + if (categoryClicked) { + actions.push({ + action: "click", + url: initialUrl ?? input.pageUrl, + target_text: categoryClicked, + status: "succeeded", + phase: "navigation", + label: "agent-click-category", + }); + } + + const finalUrl = stringValue(navigation.final_url ?? navigation.finalUrl); + if (finalUrl && finalUrl !== initialUrl) { + actions.push({ + action: "navigate", + url: finalUrl, + status: "succeeded", + phase: "navigation", + label: "agent-navigation-final-url", + }); + } + + if (actions.length > 0 && input.hasExtraction) { + actions.push({ + action: "extract", + url: finalUrl ?? initialUrl ?? input.pageUrl, + status: "succeeded", + phase: "extract", + label: "agent-extract-results", + }); + } + + return actions; +} + +function stringValue(value: unknown): string | undefined { + return typeof value === "string" && value.trim().length > 0 + ? value.trim() + : undefined; +} + function dedupeBrowserActions( actions: BrowserActionReport[] ): BrowserActionReport[] { diff --git a/backend/src/pipeline/populate-playwright-candidate-script.ts b/backend/src/pipeline/populate-playwright-candidate-script.ts new file mode 100644 index 0000000..f7ba5b9 --- /dev/null +++ b/backend/src/pipeline/populate-playwright-candidate-script.ts @@ -0,0 +1,225 @@ +import type { + PopulateProcessTrace, + PopulateRuntimeBrowserAction, + PopulateRuntimeResult, + PopulateRuntimeTraceStep, +} from "./populate-runtime.js"; +import { playwrightCandidateReadinessForRun } from "./populate-playwright-readiness.js"; + +const MAX_CANDIDATE_ACTIONS = 100; +const MAX_CANDIDATE_SCRIPT_LENGTH = 19_500; +const CANDIDATE_ACTION_LIMITS = [100, 50, 25, 10, 5, 1] as const; + +interface PlaywrightCandidateAction { + action: PopulateRuntimeBrowserAction["action"]; + label: string; + url?: string; + selector?: string; + targetText?: string; + valueDescription?: string; +} + +export function playwrightCandidateScriptForRun(input: { + result: PopulateRuntimeResult; +}): string | undefined { + const readiness = playwrightCandidateReadinessForRun(input); + const processTrace = input.result.debug?.processTrace; + if (readiness.status !== "ready" || !processTrace) { + return undefined; + } + + const actions = actionableBrowserSteps(processTrace) + .slice(0, MAX_CANDIDATE_ACTIONS) + .map((step) => ({ + action: step.browserAction!.action, + label: trimCandidateText(step.label) ?? "browser-action", + url: trimCandidateText(step.browserAction!.url), + selector: trimCandidateText(step.browserAction!.selector), + targetText: trimCandidateText(step.browserAction!.targetText), + valueDescription: trimCandidateText(step.browserAction!.valueDescription), + })); + if (actions.length === 0) { + return undefined; + } + + const sourceUrls = sourceUrlsForTrace(processTrace); + for (const actionLimit of CANDIDATE_ACTION_LIMITS) { + const limitedActions = actions.slice(0, actionLimit); + if (limitedActions.length === 0) { + continue; + } + const script = renderPlaywrightCandidateScript({ + actions: limitedActions, + sourceUrls, + omittedActionCount: Math.max(0, actions.length - limitedActions.length), + }); + if (script.length <= MAX_CANDIDATE_SCRIPT_LENGTH) { + return script; + } + } + return undefined; +} + +function actionableBrowserSteps( + processTrace: PopulateProcessTrace +): PopulateRuntimeTraceStep[] { + return processTrace.steps.filter((step) => { + if (step.kind !== "browser" || step.status !== "succeeded") { + return false; + } + const action = step.browserAction; + if (!action) { + return false; + } + return Boolean(action.url || action.selector || action.targetText); + }); +} + +function sourceUrlsForTrace(processTrace: PopulateProcessTrace): string[] { + return Array.from(new Set([ + ...processTrace.fetchedUrls, + ...processTrace.sourceArtifacts + .filter((artifact) => artifact.status === "succeeded") + .map((artifact) => artifact.url), + ].filter((url) => /^https?:\/\//i.test(url)))); +} + +function trimCandidateText(value: string | undefined): string | undefined { + if (value === undefined) { + return undefined; + } + return value.length > 500 ? `${value.slice(0, 500)} [truncated]` : value; +} + +function renderPlaywrightCandidateScript(input: { + actions: PlaywrightCandidateAction[]; + sourceUrls: string[]; + omittedActionCount: number; +}): string { + return `// Generated from explicit BigSet browser actions. +// Review before promotion to an active cron recipe. +${input.omittedActionCount > 0 + ? `// Omitted ${input.omittedActionCount} lower-priority browser actions to keep artifact size bounded.\n` + : ""} + +const browserActions = ${JSON.stringify(input.actions)}; +const sourceUrls = ${JSON.stringify(input.sourceUrls)}; + +export async function runDatasetRecipe(context) { + const page = context.page; + if (!page) { + throw new Error("runDatasetRecipe requires context.page"); + } + + const notes = []; + for (const action of browserActions) { + await replayBrowserAction(page, action, context, notes); + } + + return { + rows: [], + sourceUrls, + notes, + }; +} + +async function replayBrowserAction(page, action, context, notes) { + switch (action.action) { + case "navigate": + if (!action.url) throw new Error(\`navigate action missing url: \${action.label}\`); + await page.goto(action.url, { waitUntil: "domcontentloaded" }); + return; + case "click": + await clickTarget(page, action); + await waitAfterAction(page); + return; + case "type": + await fillTarget(page, action, context); + await waitAfterAction(page); + return; + case "select": + await selectTarget(page, action, context); + await waitAfterAction(page); + return; + case "wait": + await waitAfterAction(page); + return; + case "extract": + await page.waitForLoadState("domcontentloaded"); + return; + case "screenshot": + notes.push(\`screenshot requested by action: \${action.label}\`); + return; + default: + if (action.url) { + await page.goto(action.url, { waitUntil: "domcontentloaded" }); + } else { + notes.push(\`skipped unknown browser action: \${action.label}\`); + } + } +} + +async function clickTarget(page, action) { + if (action.selector) { + await page.locator(action.selector).first().click(); + return; + } + if (action.targetText) { + await page.getByText(action.targetText, { exact: false }).first().click(); + return; + } + if (action.url) { + await page.goto(action.url, { waitUntil: "domcontentloaded" }); + return; + } + throw new Error(\`click action missing selector, targetText, and url: \${action.label}\`); +} + +async function fillTarget(page, action, context) { + const value = inputValueForAction(action, context); + if (action.selector) { + await page.locator(action.selector).first().fill(value); + return; + } + if (action.targetText) { + await page.getByLabel(action.targetText, { exact: false }).first().fill(value); + return; + } + throw new Error(\`type action missing selector or targetText: \${action.label}\`); +} + +async function selectTarget(page, action, context) { + const value = inputValueForAction(action, context); + if (action.selector) { + await page.locator(action.selector).first().selectOption(value); + return; + } + if (action.targetText) { + await page.getByLabel(action.targetText, { exact: false }).first().selectOption(value); + return; + } + throw new Error(\`select action missing selector or targetText: \${action.label}\`); +} + +function inputValueForAction(action, context) { + const inputs = context.inputs ?? {}; + const keys = [action.label, action.selector, action.targetText].filter(Boolean); + for (const key of keys) { + if (inputs[key] !== undefined) return String(inputs[key]); + } + throw new Error( + "missing context.inputs value for " + + action.label + + (action.valueDescription ? " (" + action.valueDescription + ")" : "") + ); +} + +async function waitAfterAction(page) { + try { + await page.waitForLoadState("networkidle", { timeout: 5_000 }); + } catch { + await page.waitForTimeout(500); + } +} +`; +} diff --git a/backend/src/pipeline/populate-self-healing.ts b/backend/src/pipeline/populate-self-healing.ts index 06022a4..918171a 100644 --- a/backend/src/pipeline/populate-self-healing.ts +++ b/backend/src/pipeline/populate-self-healing.ts @@ -17,6 +17,7 @@ import { playwrightCandidateReadinessForRun, type PopulatePlaywrightCandidateReadiness, } from "./populate-playwright-readiness.js"; +import { playwrightCandidateScriptForRun } from "./populate-playwright-candidate-script.js"; export type PopulateRecipeStatus = | "active" @@ -884,6 +885,9 @@ function artifactsForRun(input: { processTrace.fetchedUrls.length > 0 || processTrace.sourceArtifacts.length > 0 ) { + const playwrightCandidateScript = playwrightCandidateScriptForRun({ + result: input.result, + }); artifacts.push({ kind: "process-trace", label: "populate-process-trace", @@ -896,6 +900,16 @@ function artifactsForRun(input: { playwrightCandidateReadinessForRun({ result: input.result }) ), }); + if ( + playwrightCandidateScript && + playwrightCandidateScript.length <= MAX_ARTIFACT_TEXT_LENGTH + ) { + artifacts.push({ + kind: "playwright-candidate-script", + label: "populate-playwright-candidate-script", + content: playwrightCandidateScript, + }); + } } return artifacts; } diff --git a/backend/test/collection-browser-actions.test.ts b/backend/test/collection-browser-actions.test.ts index 4499698..91d9e9e 100644 --- a/backend/test/collection-browser-actions.test.ts +++ b/backend/test/collection-browser-actions.test.ts @@ -54,6 +54,86 @@ test("explicit browser actions are copied from Agent results without generic inf }); }); +test("Agent navigation summaries become replayable browser actions", () => { + const actions = explicitBrowserActionsFromAgentResult({ + pageUrl: "https://example.com/start", + agentResult: { + navigation: { + initial_url: "https://example.com/start", + category_clicked: "K-CUP® PODS", + }, + extraction: { + total_items: 25, + }, + }, + }); + + assert.deepEqual(actions, [ + { + action: "navigate", + url: "https://example.com/start", + status: "succeeded", + phase: "initial", + label: "agent-navigation-start", + }, + { + action: "click", + url: "https://example.com/start", + target_text: "K-CUP® PODS", + status: "succeeded", + phase: "navigation", + label: "agent-click-category", + }, + { + action: "extract", + url: "https://example.com/start", + status: "succeeded", + phase: "extract", + label: "agent-extract-results", + }, + ]); +}); + +test("Agent string browser action reports become replayable actions", () => { + const actions = explicitBrowserActionsFromAgentResult({ + pageUrl: "https://example.com/store", + agentResult: { + agent_browser_actions: [ + "Navigate to the store page at https://example.com/store.", + "Navigate to the K-Cup Pods section of the store to locate product listings.", + "Extract the first 25 products, collecting name, price, image URL, stock status, numerical price, and source URL.", + ], + }, + }); + + assert.deepEqual(actions, [ + { + action: "navigate", + url: "https://example.com/store", + status: "succeeded", + phase: "navigation", + label: "Navigate to the store page at https://example.com/store.", + }, + { + action: "click", + url: "https://example.com/store", + target_text: "K-Cup Pods", + status: "succeeded", + phase: "navigation", + label: + "Navigate to the K-Cup Pods section of the store to locate product listings.", + }, + { + action: "extract", + url: "https://example.com/store", + status: "succeeded", + phase: "extract", + label: + "Extract the first 25 products, collecting name, price, image URL, stock status, numerical price, and source URL.", + }, + ]); +}); + test("Agent run records and run reports persist browser action arrays", () => { const browserActions = [{ action: "click", diff --git a/backend/test/populate-self-healing.test.ts b/backend/test/populate-self-healing.test.ts index b68356b..50cc1f8 100644 --- a/backend/test/populate-self-healing.test.ts +++ b/backend/test/populate-self-healing.test.ts @@ -3,6 +3,7 @@ import { mkdtemp } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { test } from "node:test"; +import * as ts from "typescript"; import { createPopulateRecipe, @@ -130,6 +131,138 @@ test("Mastra populate recipe runtime maps populate rows into a healthy recipe ru ); }); +test("Mastra populate recipe runtime emits Playwright candidate script for ready browser traces", async () => { + const runtime = new MastraPopulateRecipeRuntime({ + runPopulate: async () => ({ + rows: validRows(), + validationIssues: [], + usage: emptyUsage(), + metrics: { + ...emptyMetrics(), + browserCalls: 1, + }, + debug: { + capturedRows: [], + capturedSources: [], + selectedRowSource: "collection_pipeline", + notes: [], + processTrace: { + runtime: "collection", + searchQueries: ["OpenAI pricing docs"], + fetchedUrls: ["https://openai.com/news"], + sourceArtifacts: [{ + url: "https://openai.com/news", + status: "succeeded", + source: "collection", + }], + selectedRowSource: "collection_pipeline", + notes: [], + steps: [{ + kind: "browser", + label: "open-news-link", + status: "succeeded", + input: { + phase: "initial", + }, + browserAction: { + action: "click", + url: "https://openai.com/news", + selector: "a[href*='/news']", + targetText: "News", + }, + }], + }, + }, + }), + }); + + const run = await runtime.runRecipe({ + recipe: recipe({ recipeId: "recipe-v1" }), + context, + }); + + const readinessArtifact = run.artifacts.find((artifact) => + artifact.kind === "playwright-candidate-readiness" + ); + assert.ok(readinessArtifact); + assert.equal(JSON.parse(readinessArtifact.content).status, "ready"); + + const scriptArtifact = run.artifacts.find((artifact) => + artifact.kind === "playwright-candidate-script" + ); + assert.ok(scriptArtifact); + assert.match(scriptArtifact.content, /export async function runDatasetRecipe/); + assert.match(scriptArtifact.content, /a\[href\*='\/news'\]/); + assert.match(scriptArtifact.content, /clickTarget/); + assert.match(scriptArtifact.content, /https:\/\/openai\.com\/news/); + assert.ok(scriptArtifact.content.length <= 20_000); + assertJavaScriptModuleParses(scriptArtifact.content); +}); + +test("Mastra populate recipe runtime keeps Playwright candidate scripts complete under artifact cap", async () => { + const longText = "x".repeat(2_000); + const runtime = new MastraPopulateRecipeRuntime({ + runPopulate: async () => ({ + rows: validRows(), + validationIssues: [], + usage: emptyUsage(), + metrics: emptyMetrics(), + debug: { + capturedRows: [], + capturedSources: [], + selectedRowSource: "collection_pipeline", + notes: [], + processTrace: { + runtime: "collection", + searchQueries: [], + fetchedUrls: ["https://example.com/catalog"], + sourceArtifacts: [{ + url: "https://example.com/catalog", + status: "succeeded", + source: "collection", + }], + selectedRowSource: "collection_pipeline", + notes: [], + steps: Array.from({ length: 10 }, (_, index) => ({ + kind: "browser" as const, + label: `long-ready-action-${index}-${longText}`, + status: "succeeded" as const, + input: { + phase: "initial", + }, + browserAction: { + action: "click" as const, + url: `https://example.com/catalog/${index}`, + selector: `[data-long="${longText}-${index}"]`, + targetText: `${longText}-${index}`, + valueDescription: `${longText}-${index}`, + }, + })), + }, + }, + }), + }); + + const run = await runtime.runRecipe({ + recipe: recipe({ recipeId: "recipe-v1" }), + context, + }); + + const readinessArtifact = run.artifacts.find((artifact) => + artifact.kind === "playwright-candidate-readiness" + ); + assert.ok(readinessArtifact); + assert.equal(JSON.parse(readinessArtifact.content).status, "ready"); + + const scriptArtifact = run.artifacts.find((artifact) => + artifact.kind === "playwright-candidate-script" + ); + assert.ok(scriptArtifact); + assert.ok(scriptArtifact.content.length <= 20_000); + assert.match(scriptArtifact.content, /Omitted 5 lower-priority browser actions/); + assertJavaScriptModuleParses(scriptArtifact.content); +}); + test("Mastra populate recipe runtime keeps supplemental fetch misses non-blocking", async () => { const runtime = new MastraPopulateRecipeRuntime({ runPopulate: async () => ({ @@ -619,6 +752,22 @@ function emptyMetrics(): PopulateRecipeRunResult["metrics"] { }; } +function assertJavaScriptModuleParses(source: string): void { + const sourceFile = ts.createSourceFile( + "playwright-candidate-script.mjs", + source, + ts.ScriptTarget.ES2022, + true, + ts.ScriptKind.JS + ); + assert.deepEqual( + sourceFile.parseDiagnostics.map((diagnostic) => + ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n") + ), + [] + ); +} + class FakePopulateRecipeRuntime implements PopulateRecipeRuntime { constructor(private readonly runsByRecipeId: Record) {} diff --git a/benchmarks/dataset-agent/README.md b/benchmarks/dataset-agent/README.md index 7f0f0a5..2f5e511 100644 --- a/benchmarks/dataset-agent/README.md +++ b/benchmarks/dataset-agent/README.md @@ -90,10 +90,12 @@ App and CLI collection-runtime runs use the same runner shape, but load it from Self-healing run records now include a `process-trace` artifact when a runtime exposes trace data and a `playwright-candidate-readiness` artifact that says -whether the trace is grounded enough for a future Playwright compiler. Search -and fetch URLs alone are not enough. The readiness gate expects real browser -actions such as URL transitions, selectors, target text, or redacted input -descriptions before any `playwright-candidate-script` can be emitted. +whether the trace is grounded enough for Playwright replay. When that readiness +status is `ready`, the run also emits a `playwright-candidate-script` artifact +that exports `runDatasetRecipe(context)`. Search and fetch URLs alone are not +enough. The readiness gate expects real browser actions such as URL transitions, +selectors, target text, or redacted input descriptions before any script can be +emitted. Collection runners can feed those actions through explicit report fields such as `browser_actions` or `agent_browser_actions`. BigSet maps only those explicit diff --git a/docs/data-collection-agent-migration-plan.md b/docs/data-collection-agent-migration-plan.md index 593bd3f..d3b8bd0 100644 --- a/docs/data-collection-agent-migration-plan.md +++ b/docs/data-collection-agent-migration-plan.md @@ -105,7 +105,9 @@ The current layer now can: `runtime`, `searchQueries`, `fetchedUrls`, `sourceArtifacts`, `selectedRowSource`, `notes`, and ordered `steps` - expose a `playwright-candidate-readiness` artifact that explains whether the - trace is grounded enough to compile a future Playwright script + trace is grounded enough to compile a Playwright replay script +- emit a `playwright-candidate-script` artifact with + `runDatasetRecipe(context)` when readiness is `ready` - represent browser actions in the trace contract when a future Agent/canary records URL transitions, selectors, target text, or redacted input descriptions @@ -124,9 +126,7 @@ The current layer now can: The current layer does not yet: -- generate Playwright scripts as a durable production recipe -- emit `playwright-candidate-script`; that artifact kind is reserved for the - future compiler and is not produced yet +- promote Playwright scripts as durable production recipes - run cron from compiled Playwright scripts - repair or promote Playwright scripts; repair still changes durable runtime instructions only @@ -345,8 +345,8 @@ branch, rescored with the rejected-candidate gate: ## Next Engineering Move -Create fresh branches from `codex/benchmark-self-healing-action-gate`. Do not -edit `main`, Meteor's branch, or the dirty local checkout. +Create fresh branches from the current rollup/producer stack. Do not edit +`main`, Meteor's branch, or the dirty local checkout. 1. Ask Meteor's migrated collection agent to emit explicit action traces. - Preferred fields are `browser_actions` or `agent_browser_actions`. @@ -357,9 +357,10 @@ edit `main`, Meteor's branch, or the dirty local checkout. - `COLLECTION_AGENT_ENABLE_AGENT=true` - `--require-playwright-ready` - PR #60's rejected-candidate gate -3. Only after that canary produces `selfHealingAction` other than - `candidate_rejected` and `playwrightCandidateStatus: "ready"`, start a - Playwright compiler branch. +3. When that canary produces `selfHealingAction` other than + `candidate_rejected` and `playwrightCandidateStatus: "ready"`, inspect the + `playwright-candidate-script` artifact and promote the script runner/cron + contract behind a separate gate. 4. Run the full prompt pack only after the focused canaries are not obviously broken. From 70af5ec1ba89d52fd9c1ac5f925194c5d35f21ff Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 10:04:36 +0700 Subject: [PATCH 13/21] Document meeting notes 6 agent map --- .../bigset-self-healing-data-collection.png | Bin 0 -> 1379121 bytes docs/meeting-notes-6-agent-system-map.md | 159 ++++++++++++++++++ docs/meeting-notes-6-agent-system-map.mmd | 45 +++++ 3 files changed, 204 insertions(+) create mode 100644 docs/assets/bigset-self-healing-data-collection.png create mode 100644 docs/meeting-notes-6-agent-system-map.md create mode 100644 docs/meeting-notes-6-agent-system-map.mmd diff --git a/docs/assets/bigset-self-healing-data-collection.png b/docs/assets/bigset-self-healing-data-collection.png new file mode 100644 index 0000000000000000000000000000000000000000..22bba049cd3b6f648c01668f827dcbcc28b886f5 GIT binary patch literal 1379121 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≪ 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

!OfZc8 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%0AOHXVAABtBg4b%)~(xn-+i8Q?sJ}6xBl-} zU)35P|NZZN|EgEN=EX03;ktEeKlj^O}A3+2_xH`tyDF-?wY$u3!D?SLdGl z+&Ob+504BhEC@jpAfN)}lcUYxDWwq6Mz^$X^!ML<^FP1zA730D89wlUgU&qr%;{66 z-Tcpg{{7m&|KSgRSiE@Y7r*%V#~**}GoShFZ||zzkgXa z%4VZ6f5E&tb7v0^5C8Pyi!c4-rG5Q<#~yRsi(mNsHS5;>@%MjRwR+`uzxA!N&pi96 zBadj5jj}BJ`zP$$wR6FOh3B4o?z(kPU3=}{+wJP=tFOBH>Z@P=ikIJf!;N3~{O4-j zZWN7YKj%3I9=QLt*Is+qop&1ML_$qOq)BUy!5@Jv$8x2XTqXbEWA>3HHv;721F7Hd zYmszMLFkb932Q-yDXdEx+Zoe#suw!>kS=4)c+VL%9w+E^*Z9d5AE6MxwQY#aCf1GU zq7czL)&ivrXm&AWjq;&X;OAm2 zwalBKs;E3Zs3d5>0lXl0+3}(&z%TNYYDXyQP%!t-cDLF z_MwFH3BljA4iQ@jWlZN<68bjb(VXj?;+u3TsY1yUh{nSG=)j;P{-z!i*8_1|Ua2OX z<+PQ++(s(LvN0a1owB;#JoaJ}Rt++-$q-c+U{f=Zc^9`Ff$fTF+!tbd%~-7tDl-Qt zs!P;q9P?LV&+TLC%sioScFq!{A}TA#SXsGbdf!zEM=B9;s7|O6lD33Hf>M0Ch=;4- zM=d2?R_L-F2x$?=fD2TKfh4JzB0S6o~fBrlG&~8WV`t?t(U;h;E(Zdfv za_%|jfcYwd)>T#Qz4ty}{?b>@JMSeMHf((5`RCtw9=-tpm&est2nz`+L}{K0?!;MynG zZri?N_3AYX7S5-dptS6&lu||E56m$sI3|D43}{bp&+y3bpa1%&4eK}Tx8HuB_~ggV zKmU~gufYXg2OnJa((|f6Ui!z;v5`ijaoQ=T zedjyhUbt}HO*j4Xt#5zZL-#*`N(CKgdC{mpFZ9-#L8Z{<90+~j8}Ei~@@}<%WzrIb$El)%N{Dm*AE%VEiF* z;X?}Im?!*w#@~z`Sn1En-bB_BqVdYjUb57PQ0mS?kzdS>I?s0pf1p6d#z^N2gW!x&G#0!?8JF#ZmEd3JhGZh8!FQzuw}f2; zn=l?sy~r@!5g}#WP%B52m}(KOIRrbQZysbnDA$!UQ&&)s$+2(^r}K zNHkDL zL5B!W0E@|!?ia?tc3b0Vl#6vwm%6)mjAG8rT1;O&yYr=!()PBSGgi#!T~K2`I*x32 zI0W9OOfgSPd<1e z0)T9aMt3|R@$03th?xpGutuvQ8y55)2!m$NBJeex)av^!w>8IrYv z1g@AbMAG5?UgYO2di$H%+s=-MlAv;z3g<26N|F0Ne`e^McL=i@fFp;fRDlQ&Jn+B+ z4?MtMAAkIbpa0zF=gyfuIx?! z$jI>6*w~~=lK?;g_zxhM_LNdpg>U}XH%*&5xz%c&e#Yt3rcWCj90a7X(J=t{@>jol z?bX+pWm)TrYF(&eyw!U3t6%$p54?9^V8G9g7c5wK@WBV0G_syXPpj2FU7!D|3ywPG$g$CpDU+wZ zBbu#TK16tbg3t)`?RPwXY!KU0z6@$zuj&Fz{Nkic*Dj`M;vkZF-ITsv5$We zjFV8PqAUPl*36mDKI_?&1_rd&#~gdik|m4RtX=~|L}3pYA|Rnssw`Den7w;g7KIxl z1pq|4Y?P~>TzTIE_bR2ZC?8$%*iV1*Qvw(s8R~2HHJi<$!NDh2uiG^^XdI|xk3Dwr z;ze6FZ<;Z4)~jCi%Afq?CqqNSCgAw^*1u3Ejir>CdY zZZBW{FaY%S^a2199(KrKXP$W$04!Rx-^nMPeC3r_1A*4MH9mg-gAX8Le}Dgl|MD+; zEnF}-IC#>DC%obHuY3P{->;P7{(TokqPjRw?kd55B7vF0j1pj5`3TtO?-Bt-?)c`m zj%HkY7KI5DOXn+RyljsNYb)~6J%mn)$t0aZWV()I;qKP1<3)azBx#gLb7c4=oW$Z1 zX&u6REIo=H2S~xEmg%?IlTGI6bg^$~gi<-u>W&{t zh^oaWYDb|WX_MIj%;8Z-WVH@Ph{2&m3Iq;mSS{mXaTJ3T#BS>DB6I}cj)u=Tv~F`Y z0bdbiykxDGKkF!q9&}zTSVf* zn-wsI_2n2K0uo=(2nm>Tm znKE%*=9*%sGD(%)yxsGwOU0<;S+L#PdRmz5wymdCY|oqSG)8*>&5v5)OQHF!yiob% z-tCE4Ah0i23hUTC9}J`(j-mRKF5>WA-f_xLPm)QitBQQbEybgQ4kcuXU_J{6yiO(m zxsFgpv>FK{Lmq*zf2Nq5V!_CWlO2h|X$%Bly%oiSp1VEO)E)!G(3Yd%e8QZh+u}Us zhWL3d=&*MyH0JoBw67fwJYjpMJ@L`o1M<)XEa|8V11HrKGe2JUKTUNMb;ZVS#WcN} zYR|j7or~v&GL9+mL_p?Z6T}}sV}4|4$(vlplNs~`CkH9XaBisJ-V%TyQD?v%n&;yd zWRa4hp@|OWDN_ZRW8+vZCQojiCLWs9SaZE(-4v1pVmL^&F#16uo6?DbJY~SLGG{~b z>>vatECNK<++q=rCz=_2Y;a=*jZyDxThSaLkzC(>4wskpTxJG>d>Lyc;!Ht~xrf8t zgPdImlf)DVQ*GjVQhbFzBQEJOeZ(KaXa&8MvVN3UVbXyNME1s=9P>^%s+9|RtkWWD)!!M??sCjsiG)U(cj;H;Qsr+{1xXPe#BwpV`Je{3=WHCqj~-H z|M;&T|JSd6`K!9B0#L-dszMk`k^~h3U|ANLYOS?WO4qv4Y#^d0Qdk1OL-#-Qbyb-8O^X+uK{!mHDnkyVW-ID2l?w-NM)^ zg^1>BssK{KO|BT0QvCL(3m|xY1}5L8B~s zdwZ*@DvPqN>!NJTnmu!9Xjl~pMC;bBMZ~hvSpLwm^IrCf2+re=KL!AeW)A?AjdIe& ziB(krV7uM6GNk|&R9X)W4-rwL(O58l{^S-5t)Jmf=WtUQ_FSbs5}FZTUg(vMW|Jk;IxI zVNQn(+Z_|7LxK>EtcM-MM(l_nfN=1Rdzo#&>xIn0zq>Bklk2y@Mc(ABbp+WyCOz({=U%=Y-hf~50x84v%pPq=`+idk)BDsKRLPMGqR|k zJlCNMkUhL&VTu^Io0o^YxeT=v_q5Y10Ouug)e%-}g2?S&Q?SVqawZ6ZnkZ9-RBFV# z$Wlgr9YH9^1l}LxPn;deb}ysKqVXc2La7(L;Dv8{`&%_ZqtTc=agy2CI5s+>iUKqi zr9J+=rWyesUiR=?-}<(PA6`~A8fTq-&Vu>#Cr_Gq$->G-J6KjYdN$RW?dKLo86CNk&sjDOKxQlO7ovZME895LO5Pwc9yc zRW;a884v&vX+R*NGtPL{(#8A#_iuiA&EKzE_vGrwS3bV>sdeA`{`a@-*zup={6<5S zRl8+|h6gw8Zbkl)2Lb@)5J!ay0F)}U#;U5SszSu7s@mscWut_mShRSbd+)jz5o@hA>9Qw^wD=(*21cjKllMWLonn>=w~()O*}X3m)d0EO~%AS}yLYmLet)2VD25lqe?5!SUX z?8C6Sr%ZhLPf_mQGc^AeYFLX>*D&G>f89DzWsPxk%pciMqlL zW4MP`s>4zjYY!psq3hlWRJQul?M|m_w|;5VP!`*#OOP%&WSiR)9G+GyPpjh70=wJm z=~`NpKLG%Us9l)@n5j@$+CxaJHFKK5o_ge_{X8+pP1C(r^^)3c7ny0pq~=)GWgBaS z`;!`O2P4=0P&0Om7IC+91px=~~ zS;7&y^De*2Eh?TRM)lEH6WS2ghh}7hGEdPVS~DI z!KVD0EKh*ouCjFmi5IjgCizK76UAbV$pv49&o?`RaFB}T~&j-1_`NAHcZ!4S(=7w(tz;i zzx?IlhnF=PjkC@=`v({OaKZe!0Q8&R{))C!rM0eWMw77pi_BqoGG)?jlC`$=b+3E< z>t6Tz2*-BS8W|n|fI=ygIyy8wJTTB-6lHHuuZO1V3IJ457?_Plshr>yWy!y>H*Na# z-rnAk;o)npzU~Dtc;Uc=i2!ijwb!j#vjzaPu1ztwGtC4UK?7;f08rOeT~&zq)cWW(M+OiO?`cRWm%d8x<;eX*VhLCbLY-kxL_e7PMbdUqaXe7p@$znHagnd*Ec#m zI668yFl9=!Y~FRp9Y)ElSg~SoXn5A_*#L0ubvJC^vJC*rvLt{Rv!-j(RMDcv`+fN< zU(N6aK&>k~hC-QGw6)f~J-ySX&rnLW+vCfZFFXB=Q=3zo0C4^F*V_?CQpz4^2!I4$ zN9afunV-qW>STkH?zwZ>K~(L48ALpbJmbkvZX<$iqee7vc@bd+8(B zZEk)!D2#?4yI@0>DXO6;_IXk0PsnXUnY(R3w=@18vp=J zWDksSCJzw{g%f)leZ4)<000A9F=U|%x&FFi+JcWe8DX%s+_TcmI32(rb@(sXEpr?H^`~7z*TJU z1RpT72E=)gOSPS@Bj*$m8srp^oXnSAf!82Q5l}pwx_8k;FO2LRp{gyfk;x~fy zWW>;Al4!&5@I(3RQtN9f(8Yq;Sd7vVoM`;78J^ms|#1U>89m0$|(PbA#4}e&7KHBmf{YAqsOJ zmvzw*nk>INRFX$_1iGLc5!pEoT#RCa(CtDoU>>wI(-7vn$+6O4hZtEkRtqxcV~|jU z83Z+uGTF~EiIM=oWOAvZXtl=2Tdl#tK_mD|6-8ON&CS?THW3k3(NHBKZrQQ5Q8uco znmT35lu45|Z`tzIuYYa*#!aYDm8DSvMNufF2t!_&2|y`D+yU2`2ocb@p)fK$LZlIu z`Hs1+b-T9NYT%=I04r8J{JY=%w%Kg7tGX!4Mx)tojqkVLq9cwtqEMskX#_4D7a zFb}GBtyHmN`}VJX^(*(?cmI+li!Qj}f>Td9ZQ6|KmtFR!)oa#N?Rt1<6bt1{JaUdQ zy)TNwoMZ=Jf|q1^XNCg+in6%t?mMo$^2%1bWyWlDbY$Yd#FI`s;iw}I|HUtUzIyfQ z?|kpO?|SFIEm^wwh8zCz-S2&G$BrFmopsiG-u<2_)28(F_S98<(~UQM^kW}8_ndR? zd*FfZe&;&~Fnz|%7r*euh69AyXM%i#Yhz`$!G?iuJ?6c3l_L^(!y1Mw{pB{erVKZmVy6yJc zfA+IWR8eTsX8*EM3Y7v>F8!nqvVw*tj)(JJ1A)nyqhNCat1GYG5rOz24-RJ&U3L$G z&?)6LcK7U|ObSouyc-$%XZ5uA8+;AcKO&%TAUbk@xhnwnJD&Y2179>x9j=V)8FueG z|3oyc0l=K75|%D9dRh1>kukO@JyInjkV!0viRn#|DW?2PncGAA+KqQuWM;0DU(Q8F z7V^(>D>1-Idh8imB6|Sc(iXC6!toM1SEN(@;3g1q5O7$eUDTE4K4K^wybE(6-h7kPDMeuT9q>#>-^p4#?-@g@8* zp>_$_0wHrIu=WGM>E+03e`1i_;42~cg+CXVLjXbrOqKcxo5yvF5N3qI5WmwAFse|Wo8*1`K)0Yd5dmyyL0Io_h4DE$c~Z1kywZgbJ0@7d|BcAOs&Q zL!uo-s|wlDu}_@{@51L`gBA_M00clHZ4-w)6ojx!;1(lXtBk4LGb0to{YB0*Zu%73 zi`)d$ltMAC&PEytWWUPe;RVKUa_2pWytl#=NO>ESjxqD(T$imp@yLx&ko1bzfk4Ni z;kzK<&x#DXjnUuZ4#2Z| z%*l_NKm?c9W=GTQI1_d{{2~6piW*zn3SDy2shx2`1fa5LOq)1k@!ki_nmljbjCr#r z&j)~ZyRECLP=!(oeSQjpS=)354=jIi3_SJHsYEU$=lWw`Y0zj-xd;Z!sV3?IKr|Jg z@|jP($3v6buZBXvP~MPINb%}vh~>Fi7~iHN7}l-K8LDVtZeZ|r!o52-Jm4x!g+ngH zXxN+74tX8q>mr%TBH5cUR8Wg%-z0)Fy=-4{_#{Mn5fEvYf&^X_2z1fAF53CSj()mE z1g&*ZHhY@Qx~~_}M9#>2r{p*UZX6urcwn%s&%Cl0;*=CG=x^5io#BAbb-_^0HEEj0ibM_MNu>w zjazTI_4eEEsH&>gTGzVS+cP>m{KgC4c<@&aE(@j5Y*8)!hA;p$j(u4+YORky{`ez~ zI`YZ2Yj+Oq`s&xda?yYNaOaL405C9dpxthdj*it;8vqD&S(b=cSK6^b(P%VkUF*7T zjgQ~>j~nj1>#l3Bx#s4Z{(0(Yr>$K1#Iohf>$+aJ@524}-+y>;2(&KCMoqe^ZD>#H zO6$5P3NHm(6WUBN1OQOV#5DW+`!2uyimR@=MpNBxwN#;Y?%1(($85|~*tPBY>#iRf90GuY zmmGZ3$tPD;yC_PG1eQ=K1w`$31pqI4!3)3lz3;7FwfesM?|t)|-#l;L{F`sNWn_4; z+1pfzb!F|Y^#~N`B(w}}gq+sn<}RG+!7}E+n#u03?W(q$JvJyr5a{QdV{?KmtG?&2&=_ z@>~VlwP+QBQ*wUVg=k$UJ~)iKJcqKb$^J%Rd5Zq^at+oU3GOOyf;HqDL{EQVftaVq zfx9Obo}XN6S)JKS^fUqXsYp4LrZJ~Zne;iTdiWXM=cG#>hZ_u-MAGe}Z{#slg2WgJ z9a$j0UlzDby7t0IwSA&pZDNo^c@0ooFS=cWCYabif1er8IC%DH$L#m46ZSu3znK6q z-l~ei9lH|d0TxI|#55H3!_FLpNVAgEX`M8LFlIh>$rLFgk6^n{9imcPL;F&3>zEWu zI{+by5X@XBD`WBRpa#H0N^yV zB(l({3iw0`k#)*fA$v-LZ$hY4nWjS!y2dpq|Hzjc8CynjY$o{REx9K$lYCdwcR>m^ zZxO>Hl2cJ6MnQB#qDrY{c7MqI>k$SXiS?zOiVBd)4?;L793-LKDp&{gXMQf}f#9u+xEk6(T7#2ZRC9(8%!k*qCxE2T>J8;lp<5zJs7an};JK zLrSSNRaJX%aL}G! z2heV}2Y2nP>w0u-L{~Kc6a^|}`fWwH)oN+2ckSF&>)Iso`D=J&bo=&Qr<{87=RWnx z|M>D(A6mZby6dmI?)vKhptsrgtTWI2;J^QSyWQSv;lj^;_OpGxy_aA1XASlCty^c! znmK*yj3-t;v2nxtuYT>zr=4>0Gfq7I{8zs6k>!v6=6Ao{ym`~lfBrMm#NK=D{qmQe z|Ekx%8UU)gUDws%;NZx}i086)-O^f*jg6VF%I>>p(bvB6)en5&gDY39d}!H24=sCW z?!0*?opk))uljonU}$*IFcLben3o`@`$*v3zVOf)4X?s@r;^|xTPtwxsF*7`Tj0ZN zkgOirK_}qWiyeOosamsdq≫Pw)p?d^mHzRmesouiWSu}@n_ zF)_=VkmrZAxMd_qe(c(Qituh;r6sd=$eKHoEzK!qx@o3oEIt@Ba58~puBSLtW4AlT zJH5>iE`Q!Bu|KtyM-+TK?XpIjnoVsYgxd$AyVDE*~dwWX-WWPdW*6pobvMCWJ zAIgZGW>~tV_>cr=6NDWi!1{oUH)~6?pfI_EYcU4^Bt(S>3K3a8r)O(Fn=+2RvdfW9 ziCE!r;YIY7QLzb$4nYanQ88X9SB-ZJ>as!gj_ZvNw+AN=EG_Z@ru;y0c5j2A!ipczy8 zT2)mlg_aFD-=Il62s(h1&9}ve$#&n3K%%fh+5$QHSxWQo#&bm)c%3(tSA*Q{bB&jc z_wjn!AC&EZEQnoC8tHlo$QZE$>6@vcXg7X%BZ&pi6TXB@WVkQtL_6iTTAm2z1y+KRK8P55E9 z$+k9ijyqdiGdZke@{f({lUMtUKt{`Jqg%9-YulK~lSZ=Q2_7Qru8U0h_!IJyA%hS6 zX!_i3pEW`V{y<(b#|F9a3*Uuv-Bzscfz;&sWEDuTJ-N#E?5rv3%{w!v6d1tnutM1$g?N==%;R*dRkbLgVHKUDR;Ifv}TUI~-(0~NGuG{0SvCTU- zu6XkC$5%i8hiiZH+rR(jq{B~q$unR1ti#XQYu4g+yQ=G2S?9y&?paPJ$2ESBMl?4J zSE6UcD~@_}g$xx#xhPARRZo<%v?|`-V6-}d$^6l_o8aOvlWpg%BOeS7fj1j)a)XtI zF3Ig!=SvO_+G{DJKFzqtP&(0ABjymo8YacTcl<>~Y6p zQ7l-n;G*yS;Kx7x@q^2kw?@Zi&z^O`t6noWwCk$BUsbAd%G4=D^o(PU`Ot?yG&(YJ z1}U)`?hV{`+9q(O`A?cg(?uhZjTAeFsjig zwbsvj?(=5Pno|^|$to)fRVan3=`R`w> zcx*+x)oL~y3+C^2-pgKb^2sOGR8OBa{dKQ>?V|nmTe5h`lEwRJtr217jG3={-Rqul z+%pb7=#cpf<^oVpPmenpPXR!qEYCUT*@Y?wCJa<{RTO3?1uBJugM)Ks&zU!GE|Grq z>))_=$X%PEv9hkKfe8bLAA02Z7o5Lj>Ee-*;bxC>lw;^QA%w*28qlP3+13=z@n*>k_~&2JoY+_87xd(ZIDP}Qzy&6siOsi(i_ z#V=L`647CY9roroUpO#f;P?|xGW<{$#p$PHS)ZZp8tmDzvbiu&(;;xR4G)53c)3dajod4O>!pWCpGS` z42JWz)ON3<8}JaVo_t8E+JrMoZMQP!9D~)3kInJ;c+x@Y>N7m$WFgEY>sr^f&0p*5>)W_- z<8z;T?y8k*e*Mc|KI`nWMn^{*WkZuTYoH3josI88ZQwS75Ml5YLJ2c($R-MyOKT$1 zMNt5NuIrJ}(Sd=1s0(#n6-61r76i$e@Vc%6&CErE4MKt@AI^bhvnM4fzqBT$Vz}v8 zJn-NH-}?5qM~6qh^3|`*nLXP)yz`#BUi<3TJ-mF`$tRxtUqAk@rAwFcD&ynhjYg?d z;en2~#;ZzCn9vUZRaFfQ5B4;B`uh3-U~Ftm6{;*s#ZGE!x7&zNmSXOsbq#<-WOEqz z>>|=tRht~c!CkvXN5`g4o7!kJ+Eq0+Iyx{gVfn+$zx<`IY}l~zQ=k3h@y8x-YCW{< z!Sl{L?~#WeJz)POSN!Quixw>z8y{;nnhr@KZO=w-w_5;+Xiw|wL`MI-u4@x}ZMQ3h z%6-Gv7pVRD06?ILwAOW96Ok&ELeyHH|H||Ke$~}iTzFgCIQ8vZ2+M`EW-e8qg2Bo_$l;_i6`gDfw`ff6+!5aSc(0GVh}+LpX9 zufFnEykzrqM%50Avnn}*gYt)f9@#AMj_G4!p&~w_@mYP5bXlwNEG`Yk|exV zXW9xO3y9b*$z$cy_+APnho>Lk-HcV2h_fdtV{fLY+#;bhvk-h9fsNzej5|dc#QhwT z%~&--U7NfE>g#RZ{^*8xeg4n4{d3vAOXt7vIY+$gtV2&+I@1)bTGh^>aiY*(Dql%w z#h+Zz-2GvWX7-XEBKxzaHnHny?KzPDwTr^&rPu#GJ{>#jsOBXh$I5xs_FSoT$1JN0 z!joL9KGCQP0-le|uZUwJ5y@6hnJi&%Oqe4qoY+!X~Ey?IUGnvBQsS$7S!Lb~`-Ip(x$>$WC`aqZ?0n*^Yf`h}P&0d|_}ghn4{u z^4f#z7}+)V{UBGx{gkP!0f9aGx>YB(+>Lj}I>D4(82qdmNR4hM`e$u@*5^w$Eq3Dz z3>G9}=ZsR2bk1K96F6}|&Rw>;!gAlKhb*3X*x5(EQ+B46vqb2gSxgis|a+!LP5}x_I z+Bch1q9f$+A-H5%pc@USM0V76&vv)NQijg5`9+ie0Wi_(OU%nnUN?Ct46r3|8D zV`Ft)BVx1JQgD9fT$N{^0?)HNxkdYiojFfuZ%P?e1aqN=K@ z-EM2G%R-f9k17-qv|8<|YHM99r5a_^oGPipS$LqeZnfI&cH2_lF@O=OvMddGl~SXl zqqWwJW>3**jE;=%ss@XqXf{hkb@esZTzv7x0C4|9_ka0IU)g)%g2AD|U;g@64=;ZN z0G2G;fA78a(OUO5ds?mbxZgpKXm+Re^zs7ABwX*P+Fh}!LTyVX{O zYBU-q9)}2{BO{uiD2f`YvGE!atExtTMzhgqG?el}M(oInnDbNB%eVnc@lI+bVBF4) zv!NdawjuzYzt4D$19idme0%aryFwlQ`i!kEb-e={1^aSIc^z?L$|JPh34ic~(_4w8 zRFn3dpb<(ZAOp-HlPtM#u!+NfengU)03si2raCcEz82+-haGF%%nR2;q1F@3J6_fT zn!R7n(q>nU0-l~6uDtW@L=tFZQ-xf_J>}~yeo06$Bwvupv7CUFjq|!86hjFB{2*;V zC=wv-85w0gKfdVjkD0`429lNI^f&e@7SyTouPfohX?ZX$CQfk011$gX*#< z^H$t~F#V*j}L*v>8H-ZcwQ3aU) z=^R4q5i3*(SfOqfy}QP@fBg@i|N5`KF=4`lS3dLnH$VTK&)EM&02mt|HN07tMFUG2 z?-V@~R1JJAanJKa$7dF1XV%%BmIAJ*q8*Q!#)6X=EI;HJrbDZ~Ziia2LWqoQ_?ft? z+?7aOF7C;&FV3e(|No&m11|m#6WYAVPBmjUUFqPkGF>?bCE$cj6X4m#Ne++XZK&0y@jv>@xBq<8Uq15v_YaQ_z2;eO(KUcL z_l@F+;IAZ-y=QB>PG1100{Qn7N6wpeGpO#eF(;M4G|lSMo|r4sN7%-<6(B)b7Ul>%Pc{S0Bvsk5RyGcZ&UrG} zHX6;cEJ$l2I{R5?UiIg{KCtYe%Pzh2`s@EOf5BcG*00^Rbt?dzc)|&inprFvYqtQ{;0EQ*q-0rtZqhRo=* zPl%{23#I($bHre}4>=MdHJhc@bzQYdQ&Fg*>{W#_AdY{=aYr0>_`Ubvw|?zYuX)w0 zrcIwYJUTQ!G711k9&yxr-upgP6jjwORG|vh)6)ZFw(~=Q4J-^Yga~C(s@?*C?ZW^p z%hKdax?DB{RE=iSq|PB?qtT-jH5w*nmpg6EUj$%I>d{Hw4evGpn2b5DG~)L;UFIJ9 z*1})EIX=N@PhCI@J&OAP=MV_m**D%P^DqY-gIj3%BfR7VJ3$E0{d^*8Lft1axKeWv zQIaX$u*rH5G;jV&I-XmpNVs0yi}Qn+T1)DrR!62QGqi!Yn8xj8ut|H^NkexUzO)r# z_hNr3;<51Aiao!?8kYgw0V~6zyJx5LKDrE!&MhQ9E)lh!Zholb$j}AXBfevla^sl& ziLCsdpdfxme8od@5))C%8e=z{5@m{NvH5K3yK<2w?bi1Z0d-$*bM=;yw|@5WNA7v_ z#4`^0*85+2)Y54t@m>=kfL$O$1acoMGvlU>f_66B{U1_kF#^^Buk4t2yVB{xp4a`~ zyn;vPe+8`m=O{_A0AR;~`M?DBL?H9KQ(IY-{%3KkJ--}o68`^cGo8DD;ATLaT>lrB z6;ywsh6ZpS2)0kX(}hS1Fr08twICj>dLE@e_`&FFTeNP zNqr@{DUv-_KV}`Y@IRE^C^*n#euB zI^{c1PG<@n*ju5fgUk=4@G4IO9_8W`(`O3pUf((@PqX%nb8s zz}d|u$R2OXf0}KPob)BF)1HI&Yb$)1Eaw`&(Cxaa>uP9pmr}*y`~&@ z#1q{FO`-k93cB??@+~+g8Po8{b5kaBU#M}%!` z0s&B&NDw+rhK?@8XY}OIbyFgxlq$>8Rv{u?pZ)A-f8h(`|M{J7-gEbT+qZ37wqtv5 zZ|}VM^G9AH@ zn8g?(6fV1r&%Sw92vKdKZwOQrSf~aO)HY6m0HEvo8P7QGCqMephd=(22OfBE=gwV& zgFDKiv0%Z%qmDZAeeZqWsi&PfHa3O`mDWnBM(Mu0N{;Ga_G%CmZtt$8un8uz+%+O{ z-@66(1rOo}CPubBkuDR9)Y@h4va>)Vc`QADIDBN@P%gBW&;3CFpVym1&wDpH7Z1~7 z957Q};iFc&HGoV$0$cMIc>+%C4N2S_#8^joGk^|0HxKAza}uxAyhOX)(;O>zIB%|- z603OC#etHFLj)t^B*(11&Z=-pI<9A}Nt0bQW6{ajrr$B(Z=*)7xMtli_tf@RbZ`Fme-%~Kg)vI0c5j3MJ{o|w~ry;nC(2w?k&(zq2$5fBxGptPoT)jsvGIsftAXT9aa+kW$_ zTaG+v-dkUCOjYYbf!1jDmDumKG6iP3m$zE^d#~R1;NtF>Uz-WGgj+%cR!kt5@R4Y} zvyDLHIT}7EkbArk-X!!cm2s$~7lr=*R?Mu(S z=6~j}9wKeNqoW9@D9X$3`1Ln_`Q08h={*;G;9bvuUjvKb(V?+AZF)-u@SSopsFgZ6v;?nU-4OZtXU4*yKr4!SoK)}XXL+Vt=RZTb( z9YBeSXB&n}f^5`*&J8D?sZ0>_pYI5Ta`6q}OJo~iE^T1Jr+Il+j~y}Y>M*u(h4*OV zZrqT7=6eBw)%O^vA4d)?QCwK4LIIX#354y|_=KLBAAQYN+6X_r{E|;y^ywvg9dywA zW9nKPC1DQmS4`AQha_ZCwdTc^kHi%-m2g0+oz`{UyIEfE$**4=l3jGl^ z;y(1mUqpd@1~uX>lC_XO44$g!Az3HL8cSmRvh<8x0auq#dE(WB&c-FZRJ0IIiGhUO z`X5pLpWV}L9e?Lz*zKvAv1h%a06}({TOsy@jY;H8k@IsH&!(C~xF_f=nCFpbY6IY> z%OnR`LI^;ED3D!f#nI8x=e_U+$DefUWxu~{)tWU$Pubf$uz1ma&wt*zJv|fJt?>d2 zY#C$t~d3Jwa-}rc|EK37NsRI31u3aAp++;x_?z%=+!JB7- z+Tf`jb(1L7f#D^%K#`9Mr&r1K3oj*7fuarS9m5xb5%~{930L+f<=>nr*;Hpgw#nx6 z%$3Fvz1re&Q{SQxf<3sT9o@4kEQ%Mu3K3HAu^0fzou-iovIi&wfMa!`ZOFfl4GyxJ z9msCkBhVAMwo5EnW_o~~eV~l##hecnn?Gktqb3njjJV45czd4D?&WcjY&oCGcERDC zj#t#>4n`z;#!4B*#nwOb3PG6FSkU}2a`E?cvyc)bIL_2rMexpWcOh1C*}9?>it^w) zBv%$v2gA&Kd|AQotWomor{3eXK8ra>Tx*)p-~9Gv4_@sw}Z^$Fd4P$_y4-P3sw+yu8SDO|z8aRDeSl1CDmsg}QZ}OQ;yaA{31Qi0*TG zbyIB7(W60G<-iIdimRa4J$tTqd9Rs+#debeb3qx_<`cLahyjsP{3!76yn>Tz%?!e_ zK>WmYC-S=^s%Be<+}jRFaLyoqRB}-2-m6O%%d%I#%OY&#OXduiAt`hE%|D1G66sol z`Tyv6`_!Z6f8_nodHZ{RdhyS%KjYZN2P~Y@ZnudFA~Lb|Lh^IsW_VwKb;s+y#6!pd z6W|1AJRJuh3(bR)^FxPA@R|}i;^UO`kf|5ZN`!wN`2@Wnb<7q=^VNu$d9Yk`8A`x3 zIk30Uy$}W)XD4pdiGYY|s!>C&tKQze<(nV;&p&*9)22-yf5ZFVdhXjxP{U)xX7Ri% z3Kx8|TTEOE138R@#dnGdnP_tEH3)eA4-a@$n)^^h+$#uL-W%#LTMA2ko)jU=KhAg~ zV&P*yqX@n{1+#DJvs16wR_cafQT46wr62wBdjY*Q|!sd@>@8y(0!X+sy&aL z-0T)&&%iF?@eV6jL5_?&?SA-;9qvK+@-jL^87un6ow!C(An?|l;qFP@;UXd+lAU6m zH(8bBDV~U|^h-SmSJn?_aA*9m`Cg0WC9c7yI%*i(>c7hBMaIUCoV_%~u}}(7k>N^3 z?RKjyCVcAEU){2K{qL{&)2ILI13&)I6@86LqzMK zO;UxJ(^Wx`Q`%-P2R2{MVJtLWs>u`7SZPml=fF5A0!Q^sAA+FgG2-0{Ol97Ag_Tw2 za-!F{$GHdSKNM(u*N{yn)QBBjjHme|O96ua@J|p_bje7_m?ldO5}7`ZYdyAZ-p2RN zgVS!DbiRiiKQftEOq_^_&DFx7O0E`eA#tYQoN4s1)v{i(K~Q9-y`=&EEv0~km6J7WGw)FIoc z5U!20iMtu9oXSqaQ9NK8%q2<$l74w^?Do0091zHU zwdv|=E=R+2H74V0>V)D^^TMEVVu1Z-VX%x=RRTs3?88Cm}Qg-_QV`!;gygRN6CYNK9;Rm{L__6kKfFB zNGU=PwHGli8?{UiV_19y(-kgWF>8^)v7b{Sd>#`^39G{r6xbvJS&vf$IL^ds0!ke~ z>@ztL40%rgR44$1s@BgxdC@Hwobui8|NXarx%Z=QK8*miuE}f;kp`TPAxP_)amNj`r*xY-}!>mPJi{YFC1u2 z8f}d>$|gX>v0xGKIq3udg*|hL(+Sx?|#(FzQetfNnqdy>*B2+ncd>vD8S2CpwbPYBsDiFc< zzrklG|VRnji*Z^+==9tm|sL)pBD;3RT&#n{(OlF+TA=0t4bz_6>P%%0!VYqa*MlcZdTFQ+rbZ2Xr+1N{{{6hck~F=O+RgOf%qF?^4<$XCr!34J(N7#A*5zPSWv$h7M<9A?ypUjc>4hu}auuxm^M zV(L5Pgh&wzbR|Xty9h|A=*K_ff+x&k6oSMotACIUBLV^{1+|8rM)}>V?tAKyjZ^oX z@!nS++fW67E(;`cDyxb*63IOSufftuIdfrjHqY-yR4m7l!(yr_ymU?ovG<;AiEst) zk(jj;#Nc6J5R{AlrN9j!4IMP zZkEY~x>-H*52q%?lnUaXgBS@~Mv-(u2*R+6i;up~`|(AY88lz+(9NOT1-6r zT!Ke19lu&(=N4A@4=Hv$($sM_A_)W#O}0c0-T@3?#Nv%?UEFgu$JpAzbDdx@vH-KI zKf`?t3yo=+w7l;}nBjF#qT@pAu<;WIy$bh>7ogFp#mgSM0K;-bJOG3 z{q@$XCiM2d;+e1Bcjo?eT{p|7Nz4II?zC&o=FP(XF&8eZwPQ3CJ`DnGbr)J82gA)t z&B-BrI&1Tyg_(7u#mh+{auf?0afwS6t?T&S*nBZZ!fYr_Lb8}~mOz1s5q2|Pp;4x; z&<(Fwi5wwrhI}8HhN6HcB9LF1O}uQocxSoB)JHp0@?b1was&Vd7Ck_YlLzh7+ZlqM zK4g=90LXSwD9A8zO*RaekxxV?Wd4LXGY80~X8!!8ZX1fo+jP%Y{F54Dlwv3@J;{v? zdFizFgcCXFSi>SjW}`V`0aP!Xa^Txv@!o&`;zxdV#SdR}@~Z}VCf8NP`WN4rW+);z zV_cVLN&yC+BQU9rIwift;2y+Bk#^F?7U=-R_agPo19yvP5kzT|K{0X%$iwdtGLwcZ z2#WpqQFs;yx7p;6wa%t0{B@ihlsE^zvS&xJK<`Mv44tpr%_Gclv{fudk2^{8L`Sbu zG3lzYm25Z&KH!vwW>JDY-T_ge*Ao=l5y@fUKM_>%8k>oV zC8eMu9o@aCV%caoD@2Hd zJ>lgc>9bTbnQ&87ODz5{BD-5|^Q3%tAUAR^)jBi|_f$5L^Nym6;-ADFB5>ZlyEG^@ zHeO%;kB7&`$KL(YGv>^k;1O4dT^jNTSxS>uqyb2S)-@7Bt-*Y-$M(zYbyccBbf-T! zRKh>3pS%~syYUq9S}WwgcVV%h$mJ+GApS*0UwUhw1>t~)q2jqa9IJ@E!pBY`XU_JH zr%U)M?6zZPvAZBL#G;OLun!I`-eSauT~wWUp3@cG`jEpw$YJm*y7e>-|1ryw4XB60 zzTb&dF@Q2o7l&&(K@_4!EUeS52;lHVGtW46|G)nA-s^5#b-+swSBPbyjEw3|%q;D) za{`Tb82Jy9MLTsszU55Zg|dRGk)q3KsBBmA&~qW`1mVzpIyT){D)1ZvNO#(N&L|Q& zKD6vr_ul0^7GKvJ3XvFMj0&GI*~bU~grJagSvG2_ufOk_2Ua}%!V}Lt`GC`jG$0`; z1qe`}v&vip2m`at5j_)CEjZf1!PPx^Qj#%y6MGcgxd zShN^^hDzvgkq_dwY*ZvZMp59J6HN4E1e<9@oWQAYM8j2>WH@((>I;u~^-q`n@Zm>R z{^iy`TyVy})KnFv`NW~?h5_sd*8KpyY;tKQR4f%TqvN4HT&s!R4+JM?%a|V)cT>(cIv5clFOffCScNmTlp^2Fs9WS? zI3bv0BOR%61D6WqY3X>JNh)L8u%!_KYd}aiW)Vm~ukmqzMgpfNiN)nyUnwpn)Hp}L zYh!Tcgi%m(hZRN(Ul>Lfm{bKD1o9k_dd;DQn4Y0IH?+jY(y!bx_bM-tfn&H$Wfqvc zu8BaPWJPkUisCgY^Dr)vB}!Gl-eXGzOoG8^u_T2BM^?Hfj5{Aae6n9B9m6<`@(e{ z%d+M)OgaFWK@2NZ?xBpPSQ@cEl0dd@m?U~r%Xr->mYlY9)`tsunnlQ%BnKo=))O>b;5aP z9@yVg)>Um*pgP1%yZ~8!uEb0XNNZA9V9{tQ@E<1gw9rs%UDrBlg6DUqZoK0i@V&Eh z1?nIp99z#SQa`cobg`_M=Ik_b0s6V`w-Na*KoKt1R zeUuDOBs&O0i(W0J9!qGHNpha!k`598`sqN@x6}_2Z&|EO;sH`avwUcek&{Ew3sKm@ zqeO(FeqkU^WNgD*Svg`J1O%vcv)Qw1+heyrbXx)H%%jiVYsMlXQlOl>3~WwI{AVL^=!bAcY&s0_XyAg#AhryQ)*)PePeI4795M1h`u<|MG@-j*FRZf<;s!laknik7%s z+n(S3!7s=gU>SmLn0RWRnfq9z3Ha=Q=|rE2C6zG+Fn&S<3pJp9mE9?A%hPfc=d%65V) zkhBu`K2l{}%|CYdDbTf#g2IhLKU^(xWi2uDBPF2uFak9vv44kkMcUXm;)jaw96o%V`eR zT9`aq&SAS($v*>WFoRAeWGDpXDJF_RG;BRPut*4Dw>HyNER~jn1AbtuV5; zA%G^M8}5B-SO8)>i%){7s0PIa+z!j3g%$&T{)H5$l802f$U76cMpG$~DJk1{^om zH;R*LeJR{cC@g*DxuJBFadJmCPdrGHCmpi=5Wc6mwxdf>UUtAZg4`G6;C(Ck+&XEx zgrbz41R?B#5TO_U*B957;a2|SCY$T2%#PRatHU`WE{MfpT7c5G#)N4s0vu04fBDEa zot;xB0@F~f~N*EQ%n#$jTDp@g+P}q0It4Z=2#oW zoGE+56dEEBWof57{Ctdrdw)cx4C@oiB-zN6$#_# zj5;J-D#|(G&bJ*s6>g0qnFwZ)236uUcds1Yuyx6i`!1L{0f=f11%P$vfmzhJA+!@b z1Rx*{H7Foz_LKlPI^N#CV`ON&y?t}8`~3LDpN{H*Hg3h_{u3d!BhNU zR=&fPD&jr2Hl3_%2W6Z?Mv6xV!Of`R1neFWHHymZNmR76&a=xLXonRmO@+ckmd@;% zG3n7qH>}+@y7!E}R;w;c6CJ}DkoA%_fwRnu&{v*7U5PfuF=xZQ=CJg`&uU_`> z>Sgn0PTGIofke7$w@aIk!+H=XmimcKYw=B(v3^Y5D?Y#+p!T1j1&s2>?4r zb_|UU504LT+rDY6HBuCfsS{^T?w>NyKQLwD$TDYQ%hzKD&Aw_#`~4S%77pWqTK zS)P-8VAQ*E7MO78fT%3WQw}||?D_nCkKXmv&W-aX&jw8(KAy-Gqf8);a5MN&PztPC zXj52+$nc3u7E0_nF|;}uVagexSY|PP&7#4gXa}E(a`yuN&Mrbc44v#&jH1<+>1+{# zc*HdV+qvXQ&j}QMS~g*r_tSC1HIXs_cny z4QwKG>{5v#0c z`mse5Fbu~&$Z?NNZ>RPg=Iqwd2>{#~e!L#*jJ;tk5^zESTbV*fJg@?qpu+?y-mb>^ zIlKr#XAyQLS-g~FA3#Xa#F*OgmB!tHI0z=U9%cuKg8dUDty|%z zAd<~ukdDT2m_uG2>=t$4v{2ak8oBnPDolJBZXuB_9+V6{LwABwOz;X%A~u!CNOjUt z{rMDB5(Oh~jG|%n#7V>4kTG@1_;S?3E}ISuYxY?dB(qj*fykid#eq|dxWFZtc{}C< z`mFapz?$?6C4`JuAvWk)E2BEL#T;PO}HnJ z9XTN04c1hy1HLGW;{fl2!;Ot_3Qu4P5TZhcF84jLu|3v0>ClCJy^XroM5M{4VVH*a z2@$;OWG{2z5H%YL0JjW|tyr`5`g>O2^uUHkHf&q7VQYJ63`j$7x!0Vj#~-xde9xZbQm+}p9OXab!JCswz3$1vt?J{zhm{qi+fJnR~$EeHK2oY16|`KCocQoHo@Z6iitnIEBZ94{T0s z-$f3m*En6ZUBE6Al9w->iC{I;c@s+x7oh`?+j}U6#*J!v1!tSHS-{W$aCq{aOv%g< z#CaTnAF~0#NUB5v1jVm+bIA^dHpyC1i!cLfPDB&tHMMi5ue%l;(|L75IpNe7j=qY>Rm8qg=7j7P4ex*KSb1#Ni3_m`pNd1q2jy zu^f5;_SqPRBI};5;}oDPicXmZj6(fL`7myAHFD``iQqU2x`RIb23ug2z0yF>ecYad z^BTeVKv9;6KXNEov^`jc_SIdYa)&CVA33WdrTOyx+--|lt+M9=WRz5t>J=|c3Zde# zMe0n1EyYDyi`|giQzEBVL15Si|*UU5|=beZu?zWpMkE}&ks%3vBq^9^jjU~vIxqxG) zVA4nAv!$qL$C2MNDHb{0215eQ!{l~VF#J1#b_197RCa?RBh8*Nq*stBSO&mbEp9t7 zt>ND3;M|f@s5PxxKL{lreb9p5Mp;u$#$h4U3XlNNp9c`S;4iJICL+?k&Bk!6zJK}p zZ~pPF-`(_BJzQg1^z=3Q2B!2+1gdMQ>P;JlezWSn-&}TAbLOPioqgz=o_oZRi|3RG zRi#m(0y{^Oen-j?8CA!lmJH2Uha|t!4ei3c;H^q}^Gl4eT)ifcp>iL=?#%L?m^u-f zOabo?@+G|7u<>fiN;nVD@jYA+v{ce`@awXQ#7ka^$!>)>s>K#l*jkj8DG5ye>`Z~k z;>I?P;OYNh>04-rPd}`w^*F7_Y!9!;5IDyewY_ih9WH>|w z6*9h1+%W{Z)jiiqKN!S2(a9&UprzZBLo~}9@gs5yogki{B;f3QypI*+%MO@u4I+<2 z=++CNexiP`k<3wxI|S(d)qn)r4nL793L?E`^W($g^`ZM5GI#1iU26i;M2ZNM7YGc^ zGI8zbk})i0U&!&01~92lL;xC4YXrcup>~cA-ucii-~aP}U4F++?U6Cn*Jw`a>zgyR zzcCAdM%%5s)-U_#s=I&iw@VJ#_kcH@b;0>3pEqynY|>Qe+L~FJD+M8TZImQAx{%Xp z98(|Azw#O_{sUQxS|Wl)^5W=f|^titpC z)7V7eG;3ZU^NmQ`CwvrX`uuYYe}uXX6*HEW1GjI*2||3!60%$=^md5B4DOKdCq5gXTnX*A#`Yt0`aFw#clw z@j>fIrmPTzlPCDuB^^Q%=@C~bpJ%*7=0&*k*a8f6YgeYSD=sud^o}Et)xi|~b_^!= zZOE8WmSPlI4}giY6M9`EW(D5(@Xediys(RFk=-+b>DzdnNNN|E!T?fJ#5*MAMlwOD zE<{fbRQIR`!Q<}}tt=3XvsOe~%-`|5Gl+GiB4Pq zNb+wz>7pbh5vL6lhJ*o9N60HHzt$a51lGBbsp%7s{{U0XI-?934Bm>iA3cjW&dl7>R5Z97IrwvR$@@8OH4H%lCA8FbLj zkgTlQz_dqI6OcPCs32W78|!zDed*VCfAbf&!dRdKKA|Q>Vi-Der zllv4vHQN5+PjC43RS$mYozH&lvkvSjuw4TvK%gR{keSR;BH+?=0Cv#PVgQh*P3HruQ7zzfxgNZRgdq6`s!;eh-LQlgNr&u>pMsF}= zMp!@+sybGTq z+-)M_R8dmG34-|otF~K~YOPTfWzk%*?vZc){#)O>>=I~H1M_G1_e_I|3P26DuG@f6 zHp|`#(-f*&*K4*u`M&Rb_*Xan{>!iX#Hk0J)+n2mu2mp=I7toNf9PhdIp%jV2YWz3n!0`Vk%tFh>JdUv3Vrftq-eN~ zcTP?^l7{Vq&gReg9eR}bm<358QJ1Zk5Z7tk7AC%~rz<0WAZU!V0qi$fBrDlr;Urb6 zT#6AOVq4d}pj%z4xjX)kLFHIQq!VP|DS93qmM}piN+a5x!J@|)AUPa5>V5}VKF#)Nj#Cgj+*EEfQh#OJ_tlE*-Jsx7_CB+ z^qY+(E$RaM5 ziJOU$ch;E_9GT*CVjU@fn87F%rgYa(inzoDe0dV>AiE*oYP=3FXxOP$W=NR5O_Vi5 z2N^mXwY(Fb!L3ukLtrHr0+{ad%AJpnbECOd34;Udg;zs4PGbvGxkDH&+#D%8^(dTp z;9xN^jT?|EsOx3bO1BTuW?>rGxn}=Wjm8)*N?$O5V={Uc)8gJqFn8~s5(<{`V zH9>1!L8VkNu+O~K*1@-a=r^n1e&&ZSIHA9S0b`MiG|6B!|dHTs^#$U0i?2cY_iIl3bzRW~Sb~vtea~shR{JlgMDcy}uPL z=7?zsTRF1mxFVewj9qt`a|?+Kr*+&N$?=VgW~^=}3b9e)`au9g+erg3_7PI_JURD- z5k+MJPzn%9J7wUfvv#HdkqeLjLH{=}a0g|@ZF+hM)$AeUh6QuuU}m~ebdODDD5XlY z7~`}|(32dNmvx!xDx8_l>__npznFKD3brg6c`U^KW>Db7i~8?MTdHGR20c4~)==PZ zdvIuYut6};oMO~4kU26O#q~oCL{t)8iC5Py!FAGKk$u@ z{PUrkCNJKXddgONOpgpHR9YdZ(oj&7Znvsh6Bf`rW75F%sdqiT{AHhh-8bLzg_oap zexXVmgtHs#$!&(=7lAw2&i^ zo=oI|sCq*YHE4Q@j_h(u5n2$4qLgdz0|bn@$n!hrYH#&k;rSu={3Q2^OjR%)L|GMR>j|lS+Q1I=Oue6L^+?AJz&O2nIT0Hr^A)pK+TR_VAjR;~eBHVgp}>z$9Nl zFmN&W)K)kVaD{zZ8JB2J<1WU=AKsA_b`}kB=@p#|Gqiaar- z?7ny3ymAbaR2LOxm>@IEDT{L(69;nn{NLll+5$@A6v5^*BjMo*#zXUjL5QQ+LFIJ~ z^%|WVX;j`9qfAUDs}lgOx>IxM)hM?Vwr`%AVs>T=qi@^%w9BV***c2(1`5c9LEZ+k zx+z04DZmIhLL!p`3o#n};)Lf}My?fJEHy0wviWo>^BcQxM^UYnQg*)WRwsHO8|{f0|9EYO;rPcMy#Mj0vZ`qllulH zH2&k;SGFtl$v2$X+r)O8R6&Xmt?iVW836z^fUe1G@=}1RK(zF+C3UTJP_wE~zA_gG z#+`m-xMDDT5GYlpMtB??*6hvf&?flM|!W-5AaXRA1YwKC|Kqxht5NewhVp&~4F zxiBq>$%sSJFVFZeId|Q-0TnHQ>o}uoVrh62QGa{~Tx^~Nti2ugLmPo)3c&HH57(pL zeM3+KK%p9j$ck*nK;S*M3J)Hj?~pWQ%qz_JCf)?287D@7sN{+ifmIts1eyit&?S(NQ3A?nP~)Nm-f)`Pg@^ojl2~ptZ?x7#q?EGK zg??6y5m%DcUEZ&-g)uwh5e7euu>XDpg)Dxrl*loPcRlUqbyO}s=sDbRnrkzd5D$`@ za(6@Ak?;o{p=;Ia7tOXEsjx!8uTBgU%pish4WS5Y$UWgf7AHqx19PnI*ki9D3|m-k z$5aQ32i|uUIEjK*Y~+3~K22c4CcT29s1OLW)8)#MUD^aeGW5iBvd2}QLra*h2yKx3 zCc2CazhF(BDwBGc#9y9J7v^Q*y)eAif(gPTOWGtD&3D$6j)}zaV*Km|KD^{!AU9jA zFOFhz%+uDQGuV8|1Q*L7;G!}S>16R-uMlJU$=7DO$@0~F{;*K_#u&1Fv97QeiD2~t zg9S|~)EhDv#PB$Vw+va22?4Ov(lWLlMCSvI5-NqeOh&t?8_m_cGPd*W1fWL)8HpGJ z$9_nlu%}K0SLWTI%Z=d#VtgOunB~mG?h6ma`cya;siF+>%(AiY9dfY#5wXQ5uM#3E zg+-2lGKpVOZ98C2r`rPD5>aWWky(6jiYF3n>o}57G@%5rI*b>*r4L(vFc8nnTKF(! z>e{kfVuQ>Bcg!9!5(ps7gm$`8rUQVmsV^p0ieI3y%N&THF>F0rF|?F)JRZ6SnQh%d zavWi1TN(VWxB(joCpY9L>S2cqDKBlXf6k!=MCB;>q#`b5 zv2Dqk1@jMz-<(8Z*yOFm79%!@mU_Akuq(kg|92W}vKr9bBSyN#Im+Ni#C$L}s58#s zaU&^`oQ5&mCtj5U;cp2b+R_`1i8Uk;aSrdP*IN{d#lXBaV}aJF5JsYFXFUEVY0Y{c z*xgqTBsHd90TAGDt3LnJe^~b5ripW=*R@u<2E^KAFAx$Ih`O#dw8u%e0kLS51PV|q zRnpi<)z=u9J?U#d{m0((r@ig@2O(-*11OV^MJg-uM5-`}7C=O#{RjR`ceHl|&9aEL zu^DkLu6J(0sX|L_EAnW3X-853a;bbNi-<9cn_&KeFg@hAp7ZBI;|IA3Vwh}3DHMV# z0HCgGAW(%F8PHmjCRBld!N@R!7R+g|ap*QHG238Bi3k81NEN8CAkwu4LJ-4bb5f95 z7)dMM8P`n$zS3jqL4jn!S1>X{nu@|s<7=%=@}?M+$U!pP;x}dsBWvgXg;GVKj2f5Q!4H?Nv9h6!^B?9SQ1 zs91N$Bj;+ezIg9JIOcq;0DRy@fOX^#`*XC}QR*Ve=%xa)rcor00b`^hVRh8x7SvP0 z@908OfB?GD?0sO}@(+CXLr-jYY|?>?M+b)#02XMl1f>9Vt2L&Gpw?~D*i_B_KEtdU z>#=IMZ)*Rz8vFQ9Keu4!yt9u!r`;acHVS8S6*;;Qkp{a207Os|0I9Ml5S5V^R9Glg z*L7Xj=;CN-4p_Hph4sy8eDk>p(?zXoa$2QOitAQW*k$))#8X666lEAFCMIMTajar6 z0mk5ccyG>GVBiPY*l?sDfAe)_C>t)BT@w*0RA$>Qf{mPsX@*d%wkbmr0{`0I_%Nqc ztv;$vpfms|GxmspWELu%Z|sdFFdy0fA;;rjZH(h@zwjf1?Y^WBWe1BMUimq&cbP)l zB&`i5gm8WKoDn=EKj2)Jc_rHv$5>b~={gYrDbQp-%z~ZPVi{+6S5=G=kqatI_b*t{ zFs{Det}auzc6@_Ml~*8{)a~phYXW@L2xP`Zk}eK+IASNfyR!9$fHx)eR^U1w2aJGI zsu(5yUcs_^Ti(f05No!FDr;LjFKQspW6paBn_V$SJp?3S9T*q0jsv*B4L3K$fcoMt z_`^2sXLhp&*2EYuUI6X4;rvR1?=<&E*if-e$Q*N5k0Kzz#x#tY$nujHpLsG+vcVue z!Fyr9FyL%>K43%?1Mvwp=*^~|$_5tVAOmJ>Q9i@@6t&<>pN3-M5?Qi#Vhmxt z+;cy87(!zZrIE;6kC2wH5t6hm(0eMyJJ4nly~AgC;55;3#q)o$`|sEQ1B@t#$iTTZux=+`0r}m*PN87Z$MPmej z3ZYgd!sw{(pI8pn-}upuhwVG#w8Lf(kG9CBNC)(dFRGM9Y_!#`YAQHP)b;7EJRjxh}|e@1^#qaXrJ+K?L|%t*Z) zpx^QUKB>XRz5+dc*Bn-Z!{Zyb56_%3Fm+-N$JM7T*i3QJcX4l8@M6o{9G3dhH*r?w6E_w~%4+GkMKTAO){(L(5&B~MTSAe#mUE;LF&nm{SFb+EN|%kb#% z_<~sjb7u?`h+DP~Z`n0EYwEzXNxfQ=CX=^=sJuM#zT06H{UrdKd}j*lAb9{a00C%C znlyk8#t6wBm_;CUNN^Fu&;)griho#h<@V9fyRc(L*9%O4I&Nf}k1VuI*g7-qNvx*G zU(T(+MRq(jl;E6`sC`cw-l#C69j=_ek}VfCXgw)5i}TpB;R5Mb*bx^9$50t_AcC~9 zwiRYy!arX3doM#e4o*tYxtF05It^fH8ICg_GDBvh)^ZubuKZEFp^=ZBxUYSE$d zCeN>{F@=SazL@<+5m_lUU!E;WwPn|q)f-oC+O|b0HEGhMnNw%ao;-76@1&}3+0DE* zOl7p4K_4|Cf_z|Ga|-8vQlYcRqIS=HV^JEk1hYzzkj28Z-hbR2D}$yp-}O03s7! zbheQ|gZ1$>>9S~S8Qgr|lMn408Cp7b-^H_+G>ZlSDNqW)oM}j$les1rE+*qCA&BHz zUYda5<#270N+e^Nz~>gGdx(Cf%!bEXQSRZ&Z89iI=UNw!kSV@AxvW14m5FiF2YXCe20O~a6~)_=QIiNR>lWhTLqd308-j) z1+TIBFu2wv4w#HJ#BH#BY>D7H!$W94{s5lwLS6!i_&4u{)Tr^^2d^)H^F0r}v-?h6 z$c}@w6b=Fxtr(nfg##L77i8=`gOOKmGFl&c=jY%4Aq5sdj7FT}!_-2|ChnOL3vRG2 ze{_pSP$(?#L!PsYxe#Ahmwn`|1l{c*kQr+`=po{h26{SSo3_PU;k5G+RY0!nnJ$Zh z;Cx$jp2FaejFq$LSGE>OlNrdBTOSL-WnVQh5yU_REyPF>;UI=7D6|mKCQcvbmw6Ts zGYKZ7RF(EKgSZQ(|268%x2wbKiAtRYp0k8EvcUT^!Uc|-v2Iz?|y&VNdHvT>}yx{^l=1GSOe6c zu_%hMjZgjS>(2PlYffvR9;>PgK6~l)cdjlc^&k+E2BqrJv0~=5Cmwt14}V{F_@Wv8 zJw;t>zpKf`k1RbFFEst3`_r<3lFwk3)O`g<+!kxRuFTUcALAtuJ}@F+cg_OH5js z=MZb&BTnxS3y*v?^u$O14#9;ljp{)Jt#xlt+p2N9qk~&RTF%e|6>zS6k{RRRS zO8J?!Nt6Q@&DMZKL>jQfJ08E|Ge7(6b$8x4zGWB)pdY8rob~c&z4XJc`rw?2b81~H zDu@)KjcOaF(AqjN1u87?scq}de(N*04(&MZh~uyS=8cB;T2=MMUw`ArSN?e2+ST<) zYtEc`xBU3#y{9gybqzpRBPgw)Fr%Y2sRIAwzrT3#pMIw6>Y`6wa{h@g^J>o;EIUI* z=Sq^}AcvUKOzu6|>Nb{x1f+GXl-f4BJY*@sXQe|KZm^ zvGMVDz5d@m@ybt3ADGr|x6N#{P(`el!s3Kw1Lgn%xHTB3Dp3O(4y)?Ar`h+w+GTJ3 z+*_WwumSXrPk_6k){)lRqCX1R9=@y;P{ar{H+m9TpT2a`Fm zD}Y|mDg5W-l1!Ebe#nM^!E)$9IQc`^WG?K)o(klMj{-(ubE<@Qo>CA!rbb#lG#G1l5jW*}l^pUE zYrs&OFeqfsX&x^D4j|g-$!Cx#tAel_js-dowX2zRj~JKmBrwKK!dx3zfppR=0INV$ zzcU;#rU`hW8bA?P#x{QOjc0_pX3>SSc@z;LgoPY@&eTCoF-)vTrxfwI4q>W}9IS&8 z!qQChc`9&PS}#hlL2#20Ak3xsfe;d3pTEcURQN`D$dOaU($kL)lT68+K9YuEC~dE! zdP(0Xl;vN7Vp`aADQs@_qCq-4v&970|gJ6|Xv=XxRx3|MbVh;$b<01P(_znE=_YWmK`!EJ$;u(#dkuNWsZ zMH-$5lDe#CBkMmnw7c^bHwav^Vigtt4D0lr;5&`QWC57*Ev!vUITcZ5yHg@xqC_KIJJvs(jBjuo-QsNjXpsL zzY0>z`z|eIQ<{D2VTCXDH~6XuqVr-seOx#^ss%O=EKx^d z@~>`Pw-Xx!P1558%Fa=#R=SP4QjMOmZCm$VvfxcGK5E7kwR5DNGo^1r6QL$RAdNMd z1Imc1aW$>?=hr;=qBEDAarlDKTD$ZFARyDI-ML5_pt$9}H9z_7eI=AL=JwB>J?YFN z_tIJyg)&2N?_-<3_w!pHTR&Wlj5OMG-q}YEG@+{PpeU?Cp%P?3X_o=ePJgwgvcPS- z#+E<6b?v5|d(EG6(%}n6$Lc~^zet7E0I_;a5LgRM_C_?S#QqPY!w6a&e445AuAKz9 zCk0|v>&;t7ht>}dFB}406O^OlRcq_`FplgR9tD6}6DpqE=b(}0c65^fLucAesWYNrKStx|zvGM=D^#1V;&ENgu)-S#5-1##H49=QJYiplv#)_w>|CbZp z_bR*%=8IVYA_PrPYnRgr1OR{i$D=!T^{-j=@ZAp`v3TA=NK{oWW`TaQm!mNmm^QNJ z=E1gvt=4Qz&{N9hjL8%GC-s!q-@EbNhqko0sB3O`bfQ{(N!XVkg3VU z5dpPHQVd*W-3H$ulbxdNzBD2tE!}-VB2NO>KyLmZY?j5tsi?%}2-U&duZ%%w6@`-% znGIhs(OvQb?7lcLg!sZDckPk}BAXtbCprys)7_+-1ysSY*+8T zd$oq!SSU1_L>1Jo>g|K)pYe)I-uZo9*R876((Rt2=aAV4Ui{u~pZlc?R;+!bIel`i zD?-v*tD+q1)7Ra8%^lCX>$ru-YN{0|O+Iy0qY2Crng^;-f4}?c*L~u(+jed(r}p$s z8^B?x6>ZzF>H8Od_ra&`x#DAgZm1@pHXU_KIf{U4(m+}vA%Fq}&0cC2eUm3pK{aTj z5wE@Xx=(%igOip{n?8GL-)LEmmQ=A=sp$=VK!e904M-OE;FGb>KT|& zPAsbmTa^YhUjf!Npsq=wwot;}+Q35y;1hwh@auzDp`GO0sHc#+;M{2fKvcvJJF%n8 zHIv}v=rjY@FggxTYh-_RzcOyIwazA~5P&(bwueDWbehEEoo%Nt(XTPO;>?$2X4jv^ z<2P6ZS2bDqwT&g7>+Y!$L(0^kD z+lMfTjYICnmx}!&v{htbk5Sm!OtQZoSC(hiL6hYr&fk-K?#9ZUh=sl)60t5P7YFUf z(f?r2ePB*XN(g8&Vr0$+Wfs9>68zL|a-67yfOcM2<$A|b;aEe?zY9M*>k|LYsGnFN zF)8LuFObQ&l3kmW{-2N*!R?;36t~M(m^0QQa&R5lB~u6ia<+_rM_-4Crl{jde4 zGR6T-K0gIimEpq1gaI`$dD85;8#k=EciH-99k~}OAV-kf?t9{qjYCss%-*qmYtMup zL|qeVO=$A1NGTvPD{gi+fe?+SCIrv`wXS=6n%Ca3;uUZD6>J)Qqw=RXp~T94%)t;kgi=5gyzXPazTwj4xcAhRSH5q-j0p%ZWzvMj z`%PZ8{jr5hm-O~FId3WDRx;BF4O-vJyD4EQISRv>Cst1ixg>Tr&^}A1+DFsNB}ctOkOy*v9jDbd*Ximy}bb7cT%JM z3TCv))M+b1RD==yAbFOxzz;lu`5vob44wKIZuaR3O;L$N+6}kxc}m7_k;yYri@-S{ zgaVoF;t6#mU?BIbxYdXQdLbX&=N1XeY*Y}re0GU`Wa7P96-9}XZgaaK7&SwOoF>n> zVcez3n?ts9M#eoU{N-MUVIE3KkqI%U)5TCXI2av|3UPSmBCP1`3z;MB2mtCD03Lc` z`Je8*rf1HKx~0*qNthirL?hd`oqEVA-+ueowAK~Yf4t+;8y>p#P3OMu(0PZ>oILZ* z&%WSY|L48Ev!>SCXcf{>m;KER+qV7kx<4NG+GA^7E9LYRgdQ4o)F^wN+WOQdzWdSb zPwnX2f5NPu*=HSl_S~rpH*DW<*=>K=GPdpJD{lSzL0|pk1)m)q8&Rrorox=2r&s2TvZCcwYm^_S-4ensW8pYgo2jyh}M^o8@M&DB&ZWzOuEvk3$MC>sd< zNaIjY69GYk`$Viyg0pqB--VBss)pB*4I>hwLIh>vp@s(#5J3TH>c>h|y{f0T>;ZtI zmmYb@{`;?dWW{rjdGUgo3jqLa7|0GPA}T;lq(K*01Xa&MU4~PZIKldil~a1=6gLwg?* zR1uvqVIDnq&0PK>vkO8s5U>yz6JD-boHAqX60s?QkRW#N*EAVrf?)+`5QP_KPZDEL zyp8n9f4)WTs56r-EE0DH$+sNp2K5`V=?%LF-@upTE)wq;cU8GU$tG1mL=|x`D1|>P zSBZ7mFpV{=e67l}Yi4!{&K&Z${B^*d?-YtPC%0d0Q&Q5w;0B1?X@jhWh$eP~eMcgr z#)2;~^}?95!R$6|aV2FRAW)qd!e9y`>&Si(yYZj`0RbWc8EEnPo8ZuJS{ecXMwEyt zWAz7*dU0%}36)|Rf;+@fU^0>t(5rMlU3T@5b7xXFSt8(?Af~V`{P zF4wtH+?%(;jT%U8Vil)%1U&Jxu8oJ2%vdqJGiS^Z>l_H<&;fAVP6lC5{?5)9GmL># znH@|TVH!DiIE%#Fk2f-_nMyLRPTi>4h0dao$HdPPIohTWWhzB|V9#8fF@};W+U@7= z(C+Xq9ubz)?Ah1%J1DV0%*?Wk9dQCtIfDs{%5~~YCcwAnR}%Eez<1~c8zuX~F_bKX z+#Dpb-9@8uX5Q1TWP8DyusI=F@!oACK4RF>kat9iy8IN-JI#uAGprq7$qeLd#n?>p zy7s*^aLys1aBg1~GzRh41XZp3i^k=*KDKGsc+u>Ix`m(>RfL5mtx4;;T^8lo#&z#_ z;|tC_eo?Dk4~@3VvP6U$N&pjzP+&r3g#xXqSwdg$ZOb=q+&MaDN?*Iy1l;Eox`z;T zRoA+LvFgfyKK9}>4_-8Tpk3)ksdnxh{^wn*p@q~_=vHO2?SM#;E(-++H9<|#FkchZ z1PYA<NeQ;00q;m}W_# z&8gEh5rj|8BH9p)w!0;;s)&Hht}fCVkbHPwDXg?sfMr=&56|c^q%qwF)I+VRs_RPA zXjMU7jaSvUuFTd>Kr9i8qF~7rU}j{Nyqd63T4SwirLZUq(pqa$2&mNb8I#Ms78DI? z7T}Nb``x$Rv~B0e0sBmz(9`sb2ujH`M8|`|YjXdYEy-HD)D44=y>sJXW=@DT5D=7Q zVV;?-$Y1}rb6rD{zYNTDhawYK}_ zTe{L^4Ok=Ss;&-MH1k*Ayl}%O#-~l~nKGdV0D5~u6w-Aqh)i8;O;9Ss31+@$j>fhz&x91+TesV_*7mEh7AqYvt|yXSLBIH+c{v9n2%^G;)^9AHXfWx zfp@m?RwJ3XaDIh`J?vy#`SXlT$`%u>8J6pUmG7j#V`U`mj@ZoNN~OD57=m##ZVe;= zCfka3C$CAT8cYl)F<}Xs$T=s|xSUv#Wi?Hx6aYQ;uLLx+sSm4Oe zjv14tUihNdPr-gbxc-3~UiHB@s=<2Mnq{v&`_*H5?2=o4-W+y8uy=MJm4?gxlb6#U|&(t4%;+M}{d@O0LsXpw$gWvy| zf15CO=E%-Up+Z%d4W~t6^Y0L`r)*kp+fkyWs~W2I*tn*;03?J>yLPmTc2o6!=)%t| zoj4N})Vd~s0t*B_7$Ikl5Nd3<^=PF>6rx6|>#9&iLlv5|*4pIF5|R1bL|a!xq(GHL zNi}KmY=%l9Dn)f$QyUS>vIM|d*NRkO18xWi8p)`*(+_^;U%z{-2ABYo4ZHO9^l^@; zb=}r=SrjHJS8J2DMgUY4MWw+YQ>s!aMY^s?BPfLk+Uz1mBnn^SDG&@)fd&wgB^jyKHZYubll5$_j%8bg#vZw`@x; znGk)FPN>V8=>mZ_#NaXvg}I%oOfq@i_QrJF)Fs-LcTeyKn~<=5mx6d7Nx)@ zqBr;fi?HDxh@N==hC6g2q%2PqArHYL9$5?@wdU>|az65CrhcIh$t8Q`P+~3?E~5U0 zrxX{6TswB-?MB$Sl?aclh!E4aW1yld$H;I&GEc|=O>BUWG9MOn1|tE*cM77HTZu&m zT~IvPtA!jexv!G(71@GLqv6aZ*MWfv8_yITy1jz|3QE9g33(JNBIa z2`G-yIZ+!n(|6H_S<_Smd0|2BopavV2Q()2rkSdKZapHZewrYLgn}51x#f|r^hrV8Fx1o)-R+_XXM5Ttu z>c`h?UA#P*e)uWXY@B-d-iR>Pu2!xc zyl>U^;qlSgQ~HlsG;8jRepQ(5Szse#E;ObJ7#**kShMY}6&uILtAiKMJ$TXd{-%vF zDWx>gnsqyGdf>^ic5C0c)0gf&W5JAxWnnF5T?1&WYpQAuM5GC-8roF1EmN08Io4{e zd1BKe>$X>Qwa@$+hc2Go+f!=o_QWCV*g1UX@{P;ZY+g8f@)1ks&Ydx#uT-s8^}wT> zHjEcAb25zVdVJ&X(y&_JoeP~qAU(yI(NpTX2V7D zwr(3;yLoV8e{=8olXnb`-Tcs|joU|0IAqR}d6P;7wUbA`^0j@}_{w!#RYCjjGjn9D zb=_TSwhgxz&7FMg!Skn2=&1>bXmGT>*Mccj>(Q}xUvFdQ@c7mp<2|LCJ-u(!*1;R^ zU8l?P@TIf&o;|UrK&>^nOqLCscHOaj&TXEBZxGiw`>%})}gUoyT)cr?(6MstX{k0{x#eC`g)F7G;Pk*egrVzsRgA*$E!zI zZGC9fCRFO^1Lp5He{!kJ>5B@qwi=Ag-~u>T$ixgGHh39fH`FE~erijo<~(I*rxB1M zqmq&D4l6p5G4g6QpXlv?3;o%7Z8Cs0XG#+R2aXw3F@+W{r8}3_fv{#l`bwRUmuUo9 zRKwdYW+JM=?ErVxoTp70cS(ZKz5?ZsEV5u-OU$8{ZUa~!fRX|9mJk6vqP`=;`!6}2h))eY^}|1WPwi^Yea61`-FC;D{&HPC zwQS6sP|O^tb!CI?Xx0@9DslDtC+}E$_i+oJG1eL_iqdHUca)4tMJByte0#g7OI4_< zF>BWB@oJ0+N>#k-#Pb$@ZO+_TdmlJ&zmc&Kg@sZI6g;_e{I{1u( zo;j&!lId(+>#9Yy*5mCq5NsXX^2DY!Yc{T;N{@}S|8m10Zk{mZxc!gZf6jhDq(M7k z5rWu4s6pvk>y{c*@YMLGt8cmHp(mE_H*@}TPI}IQX$ufglO`gCs?{2QaNUFdeE7Cq zW5aVM&Nz1eXB;qZ|3=Xy(g=u!YEygp%KNT==*G31)=nOnbo`;mAG6=FQ+lVgsWRV+ zRZs##4W%jy0N63I!;r>l4 z4&8gvi;sQYKC|`(V@W|PRSpjCxbEJ6+_!p}uG=RbbkZ{pJoes4?zwgO-AndaeA;0r zO>9my+l_(1BYbPp*Ap z`Pvn_(0k2ZxOBn(=F2vXqTIA?j?vG(v|>mR@E@q3@xvTAD2 zq;n2G^Pq(X7e#3pbKA}>4?pqXz`(%%`yIMtaQk0xylUIf;ImJB*1>xpP*v>$d756{ zee!w69fZp2jd1dk&?Qc7ST~7;JL$!xn+ia*-*t~mFzvyk>Ue4JELJ;eV6MdZHfUQM=i{HC;$|Ra(w;Bz7A7m z@JYw66>?JuOI;B#grw6lunaPa=c(iZB%Zb$VmwynKW^eN0^-Mrx1Pkd;=K9vusksI zakTdR2Vk1UjePh)lxYokZeSPQa6~||2gHeQI0SOI&m08tMG3_BIyj7+WlUY>Ao<8a zIOwLELcwHVgvqvbNJ zaGhGWz**GBEWLJ&q3!X-6@YwX+M$l℞FVA$>PBlW0g77N%_}u@ij9yRT{F3bEV3 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 z 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

(jt5=M!N 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 z%0A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%0Dg`_t&a`1 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%0DupzfJqpz#sMCAA13oH6X8{=ng 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%0Dpb%7{qtrrH!K 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 fw?3|bt_iY(>N5!@tNP#ryJVyk4% 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%0Df;M`&T*%{ z6U#KCTAvnt4H>b@{*;^k*|&sfZp{DvzQtPzRo}M&{BHuQQ$?yn!P2%<-f@FaA?=75 z?ohPstSoS&ACnEQ>s3JDDD_V&0u!NB4O%2qtKz6znq8^uU?X9l7q&>_h%P3iTpnEE zJw6)l4y@|Y8K-ChRhT&Xq{OuDa@#I=HiW5B6av{7I&mVVGhD&QV?nzNU&)aPiK+P; z;BPidF zdK5{+$x2Ya(@nHj3)>@`?;yR>(-2(!5J!pu(#`}L7CM09L%^7>)95u@)w1z0wyWj2 z>i<>vc6DcTIFA;1GI1V#z?&90c?0_QuL!HDqAXm!I>diC3vsOb#{l^(oc5xfqoc0% z(?4KY)3RbG@-ndF`=?1uw~9BQ_Y07alM;L$o2up__Ynh+g<|idQRW@AOH)R#<|1eI{N63-X-P2->z*;mQ?>RWGjeS)hgL8E8W;gkyCta-#ZO2PR_V6wU zRA@{f1uCBA-IXSp{3)sv3eT&VZ=OkN9ndhFOrSc8M>~gc$-~ARZ*)nIjL#4%@u4#? z@VZ(<&8+!f5fQP)wEK4p>he?Pr(a=Tab+9I){P1s%*bj>Z?SRn*ESq)MEm*hY_3m1 zY~{uM(Isokj!iy2E5A|v+r$t~!>z?t=B5DC1Dok4|+3ZuoAfq_dZNk0XCzrhLQ zKGGWd!7kD5Bjw1$8>C!&6aqtMp1K10VpH5HR29rWcH`%7c+j(SeIno@z|uoEbBK;0 z@wImdKOY?7Ae4VZ;#K;{f1PcQzNB1YpCi-77G#t<7g;R=QgilBXqs5Z?-vR0vqoi7 zH}15goy_Vs!d1Uj9M6+f!cKA8@s#Gcz3YOXc7>NSa1cYsf~%*h#sEnjw7-Wp+u^}T z-*b8`wpz%bzTuMjRqvK3dypM!cV&zL#jcsxeO|*QD3mr!Y zDh53@9GYG{1}C_-%eNg>lGb*ugf12HV}L`$qz6#_Zu|QmOpXx-S1PO^ie*tLjX?Vt zB>0_*sh>kaESa{jrN;9h$8*hjIH&vm&)Q&=FQ67n$5GIU?RqQ0_UC!87t^U(>h#l9 zKbVnByz=(&+p7_>M}%!pBuy6X{IdSrgj#v>$T_|fCYXVBl7m6<>H%-wQ1c#q+G4u) z(Y5l{6`+iYjyroOZ9A^*Cjd-`K?x5SrojbBQLldDeL750 zLa4P=DUj^B*sb31ZKmq$J3}Nn4y$NITJjWBKa)#AM9)5)cMNHE)qUD+6{?&0jw#*w z`3hi(o=9o~3bV^j!u7~n(r~SL9U~|BT+3r=(WtX5cCrCZIU~!W+DdaeDyJhf;~$zg zX`fYtP|(K4*X5lCuz+Zc)B~z+Lr>0)vQxTOc zi=c{31$oOUd;J2`JIv130bZ2Lcd1o^SX9o1w*i5^K)yGumzo_Su1Ey zq0|OI260lWdf6+K-}JjXlPi(XwrCbd1;X~K$ z7T@FJW30$+t7z`k@D1Om^PIb_=M`B|-Nt<11AUK<`)?;BQ+w zMIOtAIQXC_-?%wNw)5Uo){;1OGW^>TC&hU}(1Mh9)_Um^*0-#CWi|^Kq?lo;h=xNj zFguE|r?Z3zN5v+C=)p=_qKwD@8z+e=p3||zjB&=HHXqM81f;?=IdM{<2$@Mx4h0~( ze(!$^h+{9tqt#*-I@3*@kc})Mo{^$fvIKunPI*mliFB1h}Rvt6J3 zCc@Ppozmio#Q}}y`8+6-cq9b^F{&kK&Guy{qGaJ@a`jP9NA{k4J$`Na=lJV%NQtj5 zvJ%J4v&%SAoTnd-xic-=M4CdwRk-duWF{^la34aD*XlipCO51H&fw zvx2$}EFUAo)e~s}GZ7gcE>mQr(*hPhl(!G;l6fwo80ge>U!#jb7 z;U!e!cj-wE>_L49i6M#@3^asmxrYSRMBZ~?!F5hzCY`8AySfP_r?ZE!vV@SF4s-5{ zu;r$+DmXk$iyU|bu~K?g=TGw_MSlx0X`RNw_(luPisF_-phs1NaW6WpW!0m`a@vgi z>=j8VbEpX;A3na@bVdLkWhv<$o>R$=9}Hc?mjii?z!+WHOlJhyBb`y}r_IFsI{lV4 za`y(}TaD5Q2OYH`TDG86_g{X+;P$Z?cb1e)!Fy<$)nsMR2WfEzex>sKU#5q82cN6v z5X!S9xUTFt4M~WrKgsS!?i9`=Fmy*+jLwB?kI}W@gtYYOSO9AIc<{HuAa9jRK+-@h zU-(Pb@i8_4T?C{(pZthGx33);xWlrY?LhIjCm;3@y)_qeA{*>}jvg!??GQGOt4M%2 znwFn>vh=Jvz03%P}Q z8()Dt6E&1)Zb+`8@}c6R5|F8$*6H-Rq)U5xt{<-%X?P2AYxFz?TB&z5b*$$mc}avy zZH?~=zfyXiHcX408+2}Gk!*Q1w%pt-`9407#UMg?=aR#ZV|-}r!O$;aDqYWAF!l4A zJH9N2U7$*`d)mNv^ZDGjgNWtfrbgM`*0JJlDNWmAH{09wFZapW5dw%>XTG6z)(Tsd zMjp=SDnj>-&qxs9RCL{(U~m6NEgTKFn{TgK5Cd1XCe^%u{FY*bn)X+lZavi7E?Ql!mbh)2~K{k=g&`P0X&u35+FA501p9l}mcqrWS&_7b~es2TuLu8t#dfN|^iwhN!d~R;-RV z>eUXdop*`ncz=*U9w?_Sk@PRd2SekrCBjibj1qhBxKpv%8RThl^ltoYEvvoHlyvRy zY#sVj2!kIM8dp(KAZnJlaZoyIdc{IhL{N+^BZq=NY4IF-kV{!N!D(CB zmilJ}kvTLIJD_kli0q#Mj*gNtvbJe6q1_XJDSTx2!)#0Swr86$4k$FuI=5ts{M~J!c=sJOeuIYUD_$B z?jP|_j#l`DXsL*OBvvOCfnS$P2@e!-tbPb$%GG@*JUutsmjJ-dpJV26dUTtq$zac_ z6?uaS2p2!(kTYr~FJyZf+%onsXDn=2;ld`xvorUeNv=b6yrHobIAaO=pkQAie*-%u zMT|Ep%-{) z(bi-;9G~I}icR|^+2mxNs6srS93^q=T_>!}_=H+N4n4U?$sfn^%Fcram4b}`{$98e3FQf|j z6QsC;xmvHC(|atF5F*7=my`Rgf-X4@MYq03{R>LuXXIjV(jm~4I__3=G(kj{RNKw(`wDRcGP4XN5m)YWg+5$^@)6w7i6B2$Kj8?aK|QBbPRKn zJ1&yqC#>s+CX%&3ZHJE(3rQkn@As={YzIDRko7EVLY5W0why8Y!E#hVGs73UW^jRP zJ$q2z)DG-Nl(K`?P>pL-YQtgk5ht|RXm;IIXGikRB=c^8zO}a;%L%y5`Dz+?Rx6qi zS2Vb)LD4=vZxT~MVlVL@fh0J~B~;BmR!(xAPM~5fr=ZVda@Ywbu1nzPa45uLQd+mk zW%t*IeSUrCo2Dqj3CC~N)QFgehwGksT}q-mjY5t}>9wPwL{FEUSFh`HOOH28h8V;g zPC!vw z1n!Bal6<|q>!z38+tV@_t;Yu~zFs~Eo;J>jvOVZ_WyBKmOVC*Ui>ERjjy^g(1Rl}w zAgUxZ_EzXP;8GV|DCG;c%4u3!`THTMy6Zu%WIla%e2+=j|9N5>aRpT*fd#PZVPFdPd0&YQ@Ms0=-rw+5yO1uGkXkEgsY;9F9iP5r0>R@^bDc zCpLg0bCsnT7RP*#6m3Vb;>NGayn_khV%kkc_US=MAhC2U8SK_mQCQdL%VdketKIRu z-`ys?tc`W5ES1U#i-{=K8B>tv)T zmbTEMAtF3Nogs-uzQX=&YwG1CFc@pav_-h4^&v76UwaWB`7kEj-?wIVmw}poMSu<5 z3z_M0$e& zUiYtxTi%iJkd&lZS!>wdwjd6%F@mi!>u^F#(qcUI7qPC8FPJbVjpg()Np0+l>@)6l zq-|EE(*Q!3LD|pqQuaDY-c|31%7IlD*2OqF=c2I=Ud(nDt$=>%p>%1 zL3;n1N&9?Z*`7*_4$WjVx~^wr9Qf zl0(vIy)~>Gf%_d7oh?RNhYfGUzA`W=?iUzFkJe7nrz&w)^Ie7QlV+~pSp@X2?qwXP z{LHVkH~taFsFO(3@M^xl9>9#blu7mjgo}taVCmzVp|kYO_R3r%vdq16pG?T$4o^3c zsK=zv_vj!K__Dtn+uyaD*wp5%JchQhaOK~kDFJ})_=;OJ!SS)GUsRP@?iH$dS}c=X z1YNn+jm{-*Oc2datl()bCD@i;0R+$(`;hAhF4hBVMf{T}+)uoj(QdUGCTzD5SG353s1j*QOCQu?Jj!0-91G>Mv`%_y_5j(F!->2&k^so^g}|Ep6+ zi>7b38TNHg5ecJqbv@61f{@Yb1`6PI+-&H)jN8%Ck#!C;SXm=bnmOZk8E?$J;RY$M zZf7$;nez#7JtXlY7POeVU$xT)JI3l7>jmfjjwwJBG)c8@4%nU_2HZS%{|AX7_qqY^ z>ko#??}Uh&I^O2$Efn+1oJT)LnFC(3nh%)u;vX!_tC~)x$i-#$3AzEF^QyBn$<+kV z4B(z^(s?N+QvBH5`?q}=9nj=)RI8EM3I_Y3E1>H(dBU<+to?R-jYYDOu+C43g;Pyo z%K@$o5WH)|m1tf|M;wejiQLc%&{me`>uGk|d&kUUGIv&ubwL-oxl*8*3`7Z?Yy^ic z8HP3o1_4>-Njw~5?K)5-&+X(})uw(1^oRsCNV`ZigVpr_5FGN?R6=rL&@O;V4e%U* zck}q7)Bc$0I`Iy+bp%Y0p;fpDU$bF`87Dc~kRw547({o^G-^U5Q@l=dbp`c|vw2b~ zr4hGv1sKqH^8dJvhNvdroa6+yv%L#8u$$r+`EdC?AA$(MX5|hf(NF4RUDTUr-i)Ib#lZ zJB`l^;a)MLq`;!RC5nlp)%4EZ7l}9bwp{Gi`&zJ}z-J>zw~a==h%A8!o2T+sNrvq6 zXu@<9)j>y5?qoX0%0!3YFBwFfv_1Ms+#rmZ8dQptnERhNADgu>fy$)lQOwBi7%e?* z=bIj!8pw!ZZC{qVc!Y8U#b%5jO03AeGf`9K-gtdTF^gI>M>~XyJM*$km~nGm>U}Le zw)>ZhF{Zzgq_Yf^PQxL#?{$S%Uh0l|8wc_MDgHc82KLvF{Lap-r*Zgpu2wyE8WzS$ z3ttaH%>Tqa0d8UY*xbs)p|N@(ovHl<@!#U458*uC9go(^_yi9K6uUD0)b>NdG2T#>G-L2yBv@oS zIQO=XLUY4TgKA0yA7h>M*x`tM1Lmq|c@R123Gftq8R=A!r#>x@*kAw}d1~?|VR5VL z*uba{t#{Anz;D6k;V2?R8;RcG-5Is0Nq3ZIAU}n3B8u7^1pSm**faPHj36 zQ<^u5GgWUcQw2*M-E{+4!=ZWz>nJ|fnz+JfV|`+I{DZXBA4QMO% z?B8V{V(6|FGx+%1WLYnnWH?3jHYrAE;H)1(pGUuX*Zx49XX=eLX0CF$g1R|;icHlQ zUco>Bpr#oJpWf8KyrZDmBZ{bq zEUm<=uEa`ls<%1y7+INwTM1pqqibB6Be=TKDPUe{5fhrl;BUYfm^%a_elj=dMd#h& zy?<^VuQv&aAwE!n`g9mff+l-2lu|mh$r#WP zgK61uttgKQOBp#qLZU6QK)>3oR zyex`HphP)IOf&6l5C&35XI!W%^-r9yRqC-a2j>-Hdp{eDMJ4D$H=^mxp{dv@V9CQ& zk{FV$zbmF+4@Wb1wVwQBfXX!hV^d5MY5tPMh;dChvPuESeF8@R=CyVrYOCk6*IC`t9lUebu72Oc@5>{oIMIQo*Yhz~&{vLcd* zRFW+tNHQ`(5r_I-Zw2q(w~dR2`VM<_+S$jy-n72Y(ZQIOR|Zo_i52U$Xxt~+ZI>iC zj@)2Dr}cs0K)EuYGZNELBsl1=jT%saZ=FKq{Y`-A^up&9CUC?xT?UCwQO%EDt-g!& zI+{#V`%m46h@|{N)yjr%>K%sWyn&@n&6q~N&FAGL_qA8-J{l};VMZbc$}F+C5hje( ze*k@^phhYa7@v`Aga>J-VC9PB{VNI*&D&JShm|28mko!;z)0o|3Yt==PsnjFy36fp zoR8G=7YisDGY;vtH1!YGyjw|u(Y>i1F|d7*DbAYzKx;GV#1P2kwh@dO{nCGijKHnR zo1plCx**SZrj-;U;Lv3emF}^sN;D=gaxiCYxf`7yaDDd1X-EWH zF^87tD95{8H?l#sLo>H^f`w1DH|1-}zxLD|SP6Y7NfY ztqvH+TBEV?#7;)prRZZR^xnjNVAA8=8lvo?BnO`gI)sMN3kW#Z6xTR84)i|~SSW-+ z*XoEkmdM}bb?hr*`?w`_8@!HSt^L$C`Yey}0g?I_>ziq%eH1kSliU$J&p^2l+M0oR5acJyoQmNbj5+fD2K*>Io{dc0dI@*#Ab$H80$nq;6 zEE~v@B`8~z!(X{f`#vI@PEbh1@Sk0fi|G^%Gfaq51Ff ztYV-THPHDrk2w%al2xrFSII7x+Xu2p8`MY=xijG-xF9(|+g0j2@@?TrlQ%C(OpeYx zg-i6%Tvk?Y-};w2nok}9rpz&W?Qg*-^=zm-1+$EJZ*cwx5k$IQ023^+RBB~&Q@IdB zGEv5gix2{#4J}nKR8ZNc4OR8l0Z(VRs89iL<-&Mqmt@Wix%~*}z|eTvMpT)gx@Gn7 zbKYkGBa>#GnO*XhRw?m?aoBWwgS2*(^G1Dj4k z2Zt7*!bg^(4y@RhLw##K!Q;^ha1IBV)!NY@rvt$zgcZ5d& zujj^!UwUkACD@29XjBhd4M83pI$>7a9+DxwoR`y&gIpE zWf3TE677>iyqn|bc}`-DQU9^zzetmlI_D%Qg3r_?(>sT?F=}dCg3$*>ERMt{Og||d znDHrjT*8We8*wc{DF4-skq}s@AanelbeA)9z^2PY5?DDRx*-Tl41p8YK;#ce~ah{AN~#1y`9<9bFgcekmyMaopRi>qFG#v%(P0wm3{El zfWx{dJOv%Z#04`;sDZ?`m(GOzaZDHICXCgBQ6fc5w0#v{Tsb+hfk#@Nl&bGiHZ6A7 z3RZ)QIGUK|Gn&A2jrUQrt~xFURI7A!2d3T9xWJby6b$z_R0_}ulPsZ;NnJ0$>2GQe zN^xA(q%xVAfi#Xj60~MaVt(*6DJ#zh;UKKne&Y(v_PuqZm<{`b-wP(|F?` zwfLTB3M*V%3UuuweO)Wo(n)1c`=g=Yi(FXdA-_hEC+Ays{e71@MJ(~aaF&G3r?SDh zHgex$@g~nS)+9gF0&^=dkXwum!PXg+(of{0MspL@Hqn;>xw_Ih;Sr_Xy8*o$s}Z)I z+1W~`TPQX?`~3JuJxi-;*|%DI+Jf!l`@U>T6081prtavk}r}(;ryd(>9ROJGX6e=I*URiUX}uD?nwxiHW9W% zlsuhE1Ue!DCvavW1c%o4Tj5V~!i0)>#>tGn9CM(BtI^PtCxrSh96u;Y1gB1nRzyY+ zM_dfhHY3g;!UbQsOiN$c^NI8mFe$>j!XZUz5(Uk7Hof?nUWlTftqsLt9;2e@ZX!ysrr02XG?Ey zov`NF+_n@?mj%kPe6N=PSB^8|xPiH=^kMM_DuMs`yyis*he$-*1JW{&3=$ zaH-MiD!=1l=>|Yid}MXmo1@Ely?w;a@qcSc82!S1y6WiP@YHYX(C)vVtm%Kf{lot$ z%1}9n7v?jX9k_jK%@vLJzzP+jj>SGIW_g`%riITMlm2nm*+{XofFb7 zEgQX3EYED8Nwg#x`-~>z(DP`%D#DEYW#bTYyoBMNAUP}>qA9L^Ax9)V@T6;mezV_$ zQwPz$+Y@I}vZ?9sLC$UP!Yj6u7< zfXY92E_F?^&;c0uhckRC+wt_;SQboYC4tunW1d%aGSuW5p?o^<(C?g?-1@L2Us9l< z*|#~+_7R_r2PM~pZzx2wA-yNU|I)=P%Grt|f7^nwdJh4&c@)#+kHr3{88cPUA&qVb zVv7dXr)WyMJU@%@;Qa!S9CCo}KsC=lxB}-;GBP%HnH@@(j+YDzM$u;_f>}{IS>C)< zg?YT6^4u8lG42k@H5Q(36i1wY_jL$4EdHKqTJ(;!fkEvw;6EPxDm6{FKApQs6w-9{h2xNhr;nzQI54m{i*l zWCR;HD#B4Ak`^B{^mX{lrg|iv+ddua(rey3G+s#YG?~T1ijP#qehcMC7`9f|%Ze^y z_uSeFC=o<)E<{ji31;r$JMEe1X}Fw~Ikrk5Mj*5b88QmP2_6URfifMHd49KC5QWN5 z;l?Oio}Y2Ayic9i=xOF&|h=m=7EOy7(D+I zwOA30^4B7xH=KAeikFh9VB_SBf5P>)D?ZQK7U|2Mr)*ls7|Bo^@k!Y^aR|7pF?w6W zI}rn+??he1{w7=4Guoj-%81E|Av%@z+r1ZRN<#a}hmbN$;|E@#nfYk^V?2$OG9j73 za8lr)bXQ5}_)raijPBzDPJ~-$n(W6Li;irg>+01D0mz(T!0X13dAUYa>kO{*8)3uC zRQ|U+W{?*onfvYXrQT!NdokyeXYc4_*X@EX_~^@~FL)eSD7tS2{Q!x0dOi@8ydQK! z?tO2P0axFB`X=N8Jx=J^t5RqDreaxPlK15mU^1Q8#|b?>hA1mR?v7tB>J1GY-}%A* zUW@CV9B{Fw)A*-OKsFIdU;j|wX#-${dtbC10(7&Bn9dEu z_mk+2>`qn{O5)G-?(TkN1GkT+ev`7u@lly}03Z$KAzyzVR;LG32x- z?gI|-WNzPjP2cppxhly4UT|I~>0P#@EJoLRsoB2U>A-E{9k9B*_#beymF>|}s&;#9 zBA`?#xZ4y&Lk0U4hoO@NYTME`+T{)Tijgy)r2OoDwphSB9xlo<4i5(FYr-Tt39tDo zD#&tx*fYw=zud%X7r@gY2KAyGL=D=~MUONS9N4(X_jh8r$m3o&Y_BCYQR2V-NI5TP zg|k)Ko^`@uMZ|-12uJtPAW(?O`#_sjY|}B=D_)2(aJ46JJrtSO5XJ=}gS_E$R2+QB zcfZyf?Z(_Lc$#oY+eqf5>QBbfsg_Ee#>dr*@%RWe3UiDJ}qi) z@wt}^7QsN&A6tWc7~tU;Yh+73*RxJS4w9uf9M9n2%}8%irIn~(1_f?rdappeoO>Rg zdsiysBMo7_Evg@wkUnz<5jDVPRt`-dozLa!|H-Ay8NL5wBm8A%+6T4y? z{r+dZV!e+&SDGA0&2Z50*T z5AUt;V-ie`pv#nLZlk{080#NtsZ*7CsRwC&AN&}l`@LvLKTVzP;Jt6WqY)r@sohf( zbuC^iR7HxL_}-D3^u+o=(4dUR(WTf(_gPA}M%J1Rs@Q}g`5GTWMtT@GumwM<8@WJZ zo8qdGPwYG&!bW0XZvR#3Q4U$=VnuAEhe+GrFUhdAZjY1 z&W~w)#Kh^odTA4KREBgASnK|DIdVO|xO?@-71rt$o&Ay;AC zDppLL_(E>tH-XE%($jn=$X^u9zrnCAi8sJ16x_sCI2*~Jv0~Li5qu_D5*DoWJaSQW z{5KdDN~dTzaa-W`vB5_?>PPq#Pj*kzoC6crikL7=xO})b3ZJxaKT>4S;8m@xSuK|n z47m$Ea?5YH@PKh(eus(^K~Q4NJy#m5fmgDh?bH3a%I9m0m+}1GZf2oxjn$!*(RYVH zTp5ZFE>OQ+Z>LQ+j=q^d@u(K|IrYCKZTu3;#i835b1%g?3Cu#-NMJL`{aX6e9lAk< zghVSNg9Q!yPH~IxhaEb%xgHusgg=$XP2#7dd561|1p*q-4T+>S~$v9mDgQgAJY(nE*{Rk|7WlU9Wcgopzd%Wz!vTm8BL2w$Ie zyq?(RC_L>|)K7Z9h2aBVQ3Czl`7=uD^C%q9da0bFnDsnxTdl-*h5xYTH;KBqPWwxu z>GS!yeHILYRh@fNvpn4|Ib0At>T#kfSH?K7gm~JW6av=Ll%U*cD}kFc6d=yCZ2WQ_ zaRk7fI!{g*CU_tX=t56sBdIy>SFbmgeh+|e(f%mDsPoC<|Cx#Vb{M|@^D>R$c$)v! zfM)w;uWLZZWj>G!zm8elEY+8lAHD?Wy~ZW~tLAWDIm}Uhe+Bj~ z*_(o3^ezYqNZ|DdI|^?+0PqJDD`Z^1qA*v~Pp<$5sNtK}RGOUYO>TpLooN~iKW^KT z2IZzrhYZ6U|C9KtD&=CuWgr993h&-=cd-hP>9h!Py|+5>)b8Wi$9n>Vn1A9oDkx1NdnY44`{4vY8Mgpz4%!~+<`2S`xj-!79XPK+MsK}O zSs{F>+79V|Dl(l99E+7+zQ?V5MT-jib5sye0%>77H(G5()|QXwi9 zoiS=XWf35cj^$^iy}>g-SuV}%scT_sQK{>{aTov8cC=3tzZ2r}aCPU!;C4Fntb2C) zpOs0?vPXPUQ|I6zq=e>GIkl=Uhv=J(o!Vd=rH;{}6i}%CtYaKaQq@i=6X*i>AfPP; zywiO0BL?c(6KblVgE9=*A`9>cDoX`yp-=4U*b)9+)=;x=ssNjVrU;a~JQi_TnDhR< z?Yub$2zW`z+3NAN!F#x)oz3xvwjz5S6%3380zj{>Krl-e#!%vKRp}P3tE`gj%OVdmf#2PKfn}K8Zd~l1ca<;)tWpddH!W6ENm+Urv9lposyu zNc3C^2nR*FCfS8hk_V|P_0~K(w^@7vBGP@mSdr3KFTsmmMM`{weqWS6-6ruFj-w=b zNS;BeF&BzuegO-)#E+$P$|M^bq~Y}mqgE?9kD)u0)M&_h-;d~D{!;5r!cy9B9gis! z|2m@dAKOqJt&CEy@2&Aj1CRb%l~`3$v~=3H4#=DGml)~Tv`>-kd=y&my?K4VlOE|2 z*U`(3C(_}K^OBl2Vn%UTB~kO<7AKS<=0)MS*lB8P&F;z_g2+4yIVFbpVtws-o7g(< z<|Nh)5gDGibcf(vKB11eL)j^5NUNFPeaN-yqg)xF4~^2zb0b)9(bRlxCQAkUU|PxqlH0fTQA5_MIeOOu4o(74Iky@ zN^liB1)}a^d$7YN5ff+r0MRu;TS-KXYunX)gp#|*a}i6%T#6x8&}yxan8FKM{fOm0 zpsFDlg1tnS5hS9z$%2U$ep^Zy zjh2~p+riV7NoPDWD2xC!fyUrh~D5z%_YwmEXdj9UF>!!)x58@qTztIY~9fqF}>n z&Zf~ua)IbhG$ee@Z?i)m1_64idDCCly3g4(<^7@!3^ID!|F`f$gbq2}-X2BM_1?$b z^noye(yq?O0DO(pKN61>t69{p-*4uLR0y9uhGu_sUhYIOgWE^H05L2X+eRBhLlTwa z&l*&Wyhn?y>7VVU=_MPQNc$uHq;|jsV(J=V_t~^uKgiIO2m4zV#Nr&p@VS2&`;7{F zq`y{B62eejbG@r9=zdT7&SSgK9P{?}4!DNHPb&>&6FEkKMfdHL_76*5 zVCiqFh{t7`oSzbUes_%zn=d&@b8@@?{JG5K3c6}*eDluJfd%%BkKudiS4spl;u^2% zUeS;rj9tB6=@HDuN-*7WzW)Fh@%_?n9Mh}+#o2Pba1NiMqe8~tfqn#1f463Rk9DgM zBm_X|c+c<9JXcecO4vEqKhE8De$Q_Jn3`g^){b&v9yT3*kgS%=F4*PbwER?d! zN~F*wmltY0fioP1AY<&ms2%E0KVe1G2`rxdnGBaC^3kC8{B3CYQz|>rK_5{VxjCgr z+%$qVbO<0T!|}?|VH&?>w&eKVUhTlGgK{@FTvy609oojxfG4Sak*aLHI;j=IR~foS zObt2nz~BfFRer^gfF^ROiSl=t^3DiSUG&`D^oYO%5Sk$0fV>SEiHCc;YMd?=+oUUo z)__ix3y9}+ic(V_IHtKbjE3Sx?|eEE)m3t5N~*&prhPR5SlPH*oN&{t%P5KOnsYn; zzYL8Dx*bO3!r`{B+1!~Uv~9|t)oe=kbgl!^-#CB9jN^lPs^n|g)Mvg>h}2P8N3Ex_ zu?AlMHT}BpbOghsO-nqYmY&auNUp<%qr3I|Ih?CbSP7G@MtixA7SWqX&1+641dmqx zVB{Hrm5r5y>3##915VzkG6g*ywf8T_pw}0{p(JDS;3VE}OzP}U(1Vk3@}fUS;7+xS zx3F1reHhwwo3{E$+cK)2{>t@W{Uz*iA~PB>!clo+fFHlq?P03vDXC#$6ZoeYT2)IgLVk>H7-AGiT+vG#NUl>Y{Au6iu zq_QT_T?>842c2U?WY8lK214Fxht-bcKmxKu-CLz2b3*bVV)tDRlOOmf5{O_6J`VJA zjN=oG`&`-e2oqvHi^H5#%ZpgXEuE4JP$Wo?+i}A_dqI~b-4WytpCqdc z$G@?>!?OFWl+7i zy1EKfhSC9%lO=$bt7o(Y6X!;RX8k!%%LNwLX4=T00x5tZTtu&2BPCJYaXr$`3-nbU zStQQD;1`$YRQvNrQE>!pl@tI~WIuLP3yf0O$Jv8S1{c}CJf8|@`(H%1pd4^MKhIjI zef<&|A6YT?C!K;kRAPET$Ob7W8bfMf?@pY3>^)t8e?P0bm8OB`3 z_uSb{q zMLLoaMRT>%pIl$`-*v2Ce^N?EpAqtuR#pm*yFjb*A|)`UZ3?=in|G!0otM$%5PGit zm7s=RK8d_ z1&H>q=v^-mxm`{F?d0J}!S}U}2gu72W!&4p0sL=#Hs1AgX3$*TBYElV3l!W>x^-d? zBXoLB%}7I^8%H>T)xNh$N0_d2@c zcT1a_IhMs#*4ULWDVupq}Pz4JbWg6Y}G{6(lr=uz^~)kS=jZ2*I*MJb zJ%aNvqTR6*6I2O5aWFVD#sx+JqHu=wN{3ehMqNjiR187mjjA{{-DwOw#lk5>0$_$M zSaJBi_&}9*RCW{;h{FIs8m0>3*Hf!S{SU-E7??MDT|B)-#yT;F#Eq8)-+c_Y9GR|U zOsIRiwJko6_Ij-$#O4HjHR|P1*UDWelGxMYt&I4(D?i7%@6-TlX2D^ka(NSBE~=5} zq`Z0hE)6o$FdO;JIRjoW)Dj3&HVqbHvFU~&JE8uTKf49#=FNg(B8(ZjpM@zaSTYlT zR77DB+0yWABlheYq{1BAz=&ugBeQ>DipLa<)VeNpFVQkWLcK-*#spPho`t6cA>W$f z!4?)k`=oA0wL=sk2BUKT`t{xna*ZOu$f%Y;QT!O;f@wgzU5qEGKN=zWyTn~u0b-Kv zISNl;1&5x$)sI8Y47Io@;X6^+wXZglaMi+(-cr~Fy4sGzi)DXlr7A=S*6U8e|N7h$ zE?2Aac;Uvo$$~ZaEQ)};_SX~-ZS;|cM68S&3go{Of!ga5{d<;=xc^9Vn=#jc>Z1g{ z*v(KGRt|b_4?EtO_^$d)A`-^Ga3+Q;hXe?&7UBrvw;4qO*rJ`OKTvkK0mh9}X#&mM zzp;-H0z(30-VrAIBsqq=EfN2qwk}8gfw8f>-bPM?3=y-r$Sv%wvVIEUhf-07f)Kzu z1R~x)@*xl;ijfEzRp-%Wl#fh+K%vU4&^NscJ1q?X8 z5^(>;ZMx0IxF#co3XIkPlmG$EXUSgV2z8;{`rVsJVL+rqD*QOrh0go9)%AYv2y6#5 zigc#6KSj<}?DR# zHq4^N4SZd%ul^AOO@MVym;Q**{m0KkcbiSi#_JEsa`7gYW@gXv0_Y)qV z#NPb4h8c~8Up3NAsioO?;Zf=8Ql~@4^@>Ynb>}*U(4gBvv#hFoI!n*s4CbFMprLQE z6vHlXAZ0Ko;_jkyHVcP4CnzC@?{fX`Em$PKDq9l~Iwg=#Dc9!J`s7Jte0KzxPH}ciykaGj}}R>pH&Qgr5$^=?YE$mQ|gW{Vaw| zXWlWbaMP|)3Dw>1eFJ4QR$4nL^l(;Q-QjZqT-Nt*lu5rI38xx(3||_{A6mnM1Uotk z{(T9U$JO)~I*;nozbye~D1JM`G)b!Ral}tQTqk@E%4iI~U$w}t+W9T&zx!M-moUsX zag4eIeo(P~A{T- z(5bizMJma>2KFeg$e3Rv-rn9i9-fBZ5QyW8%2W#x zdH`(`XFXdCIhmW)Ftm?p)G)m1&v|p}35EmM^#h%Ne*|*3u<4T_3(UIKF2dHW1ZNyO zpYA<@BeFjdn|sYDMBj6LADC$XX=U+#hU!+IUx3cQ7aS0AbV&1V_b~?@!DCxuOFJo0`~nj&)M_#xA>vUUS~&94KRKnwRM3 zc%1=Q)BxjuB%a#l$={kcELL?LJ1V=nNWU&sR(YqGk6QptU;#jLeR90+xoHm^;@XZO zs7iwSnmK-4lE1!@4moYYpkD-Ri4rLg%umpb?ky1VJkge7Q|I` z+&|ARXxYB!oV@_sCqw`JB2=!mEuh>2oTk66Z%6^F#E5lC=i>-N*LxqShQ9ke?qCf6 z-j+BZe6t4uR@O}6_v8Hf3850zN`aR(_W#+#1eTe+yQc&ZX~i*&lQ_$M%twNw5nC#N zn4WnQoa$;Y$_5u=-b%dyp8=P9nqHKqRWjZ*Y!-@Dv&zstMrN`#wQrHU|3@MWX{nv# z61m_p<{uG!-N-YlwA~^yi@#2yyc*ZjR4X&zE5li@%@P?#exLG@T)n`@g{XC;W+1u8 zs*V8naATUY}!|NDDA&Ypu|3=>Q6y3b9<@$+Tnmtd@7CIrea zV&NFmDMGFom=>vqoj*11U2(2cc_EWbrwfaC?|dIH8>X{6-q10;C_qXFvXjb zXxp=Gg9He3OIl%n!GW*;`Lx4lc-}v1?RujE7U3%sC#%_#BNA(Ba-?;5Omt~}tP(B5 zzv_C}#^WYpoYURR47^XIN<8gP8g+edm3cl2!_Kl9t~Rn6mG1InR`BPM^3xYM&zZC~ zc9TB6XPMO~VCj=qBGa3NiVU&ALE^%8pnOA4zibIgOdy%9F`%(OaHfT>?tqr)xeTF+ zg3~*pK=~q&Yo4jXsa8D#9|kgWj68J*@C!lShFuaTkvO3J;kTF@BVd1dAv`DH1f_9X zzAYL~5OZ3z6sk_&0^^}YK%WALB$Hu5q25TjDJb!EeEYM?27cbxwf{(eP#hm0UsySk z3fe3$8a#m)4ab3+gZT`H?o!9rYWk)J+K~eNFreGMII2?= zUHj4UleEfCzM}$a;KexMtNv+e64&*+MdDf>WwJ4(D0@TF-u|3k6VOO~4z8HD8L!yv0Qb|QxQ!yL z9T3VTyc<}!b|Zg0#KfkCW1(&?QYNX0KFUtc`@n)m+`8U4%Y%4n{%%H|S@?RWKzPGr<~3~nVf}%W zy#KdtwUFPlo5UG0Pi}QJ^Jra3w!hu|Lw$;&GaTse)@%JU;ceUItAmK;3mX5q+qxn* z%+y*-eXP)PsJ_SY`Bn%zurp2$Xdh3R6n@bQ5QGEyO3`bT2(Z-D7B}tSoBXtWS;~nT z52cZvf>LXSOSg>4#q1_C{Zdyl0jVw5Bvy4IoU0Ov7rePZs9IV@)c#9il_IphDanbeuHovF^11eU` z;(D4N2BHfOi|iI?By4uZo)0nH>q!SstBxJKu7hLS@=SO0__F}^XbpTg{w*ca z?s|KU;WiY0$*i{w5Y{!fNynrtR)m~g_Mx9@w;zS(yd_}+dA^AWfQQ-k5V{-CYW4NO zBEx<|7u@zb!jSFzHn8f@=DvQn0KgFWPb-99A>h;x$Ak?46^{AhT<~tru;YHE9N+M@ znblM(fYp6Pzj^bj#}_=2E?Dxlnpx{_d_-rCpye~5Y#M)t2jMXryaLCX;PWNmO+S2V zaXqMPy&g$deGqnfZv(dnfV;2DGNb&6BsJKKbKc88al2I2u3lkE^R4n z{e*=db_MFAtnI1uM$}sB(Gvyko$`7c)?6B6QG%8lyJL;*h#**u2Ui6O4){avw)the z3&Y3HneLB2YkN_V2OSJ*X&8Z0O((N)|Hps_vYK?Wczew7y)5#EGW&`}En|}@gynKL zv+r(PNhjfb2(iQmOIi)BVuoum1=S}S2jcxCwtza_RC z9B4Hgd`Q&#AOo-HS)B-(12TsALTtDiuvo3`6>1cg_eC!xkC(L?o`Wi1afxPVAEZM? zOBqhOdznJ6p5?~5@#-HNqs6QKoLdDO2oi})(U1?2EJOCIPApL`E+B~~Px-*y;%8M9 z!ssU!M2bs@{Y$DSonz+5hqMK)n}Ql)XC$v;lb0Yji9XN!>TZ*uU$WoJ5n+>gjf#Zq zdR!TgDPFDdv7rNpn($@?0Jau&GE~PcGQ0^Vfe-daQ9Ki(vH>G|W5(Gf9BuIrWu^`$ z>H^{99I7AR28>|Ip3oYPQX`cTI0+sX2!ZrX>QH{d?9;@&v#m-MRr-r4I(e%bEB@$* z&y%|dP`9JBZbn}|VmOW><_0W^qR}Ia+~KS89(^Ys8SYX^4(u(mj6btsZgErIFJUEYw6Ilhtm}>3VZL720J!GJU}d7LqJ|Wf-tKUl8|b{kx197bK%CD>C+YQl6cieIa=>W8rFK`2tXUeDIjF1$`Hi zQw^?$=jebf%Z)(SRV$IEp?#L;=6A>G9m$(RCg^Uddf<<~^W0-~-Q^~xy8ZH`_X2Kn zGW#xreL@d#v|Em4(uG<%me0TVY<@pH=e@Bw^!`$KIT(dK*pHv)VSJ5YO$?67eaJk| zvEWoBDcby{`bQ0S86WjzLMDhJC&30C1(1Y6{G!}S-G0SzYui>ferY{o4iEsphM)^w z<_kkwDEd8J58Rk9!Ua-6>nH%-cS-PATKALlkSMoa00dXlu;Z#28;$RX2Ixb_Dsr!y zyu+Yx00H5P)|;yBKB*>mHz2T?q+MXcMHs07tjkZ2Oyjb6oJV75>>l@iDHFSGiP{2c zw-ein#)*~F%z&P!A0!_AX#5TVR|BbXbelfAm2Z+!aNoYP?Ip_UI^LD5DGQ!$^%Vnq ze!%dS&3P16W|;Xp`U_3)b_xca?-H;#`_823I<_nW>u|X|c6|G~`1uWar>cfqpXCpw zefFsyxRvc%y5^*OOgr=EiTA8d+uToz)4wQk?QqQWeJswRn-G(Q5ONS8Pu*j}gT;7< z6b9axHA*~1f!zfjWcY6MlDt!S;wnN2dv#{FhlwSGSB+HF%=E{hNuNojk7xslKbq3_ z$sX?$(y`)vv8+i7`}u})^Zp@9Yz%58G|}Js4|4t!Ft18A^f+!kb$nb{brgJfyEL95hl`^lDd>Zt4;|g! zEAP!G|FhaMAaA|Dpqom-dmX##00tj-9CrGaC}w!vaW2MaSse3&|M~&G63`{M4Gh2_ zwYk?{C!06@PGh(Y-X}xQV?VJUWY$k+zs&=JOMcUp25W}uc4UyiWj74U!K5%GdK1*0 zYaD`E+q_X7;q&tB|2FyyxQx9e2E3Y%%uQN+hupa@t~cDyP)_i^#5s1|pn(_#U5+tF zW52(Lprijs(K$v{+J;g1WKQPfCS$T|vTfUTP4;ACvTfVOWKXthvg>=lwffVa&gnh% zJU8~fHvev^e2MJ)c0ug-=U0Ac7o^rb{m+-135KF1kLJeIB&^KT7M4=(jzmVS#v#r_qgd&BxxRI?fA~&Ea}aJIWzy>4!H%qJaddSTFVkwPW;!6^VTu^@Z|39T#Bh|NICB zTDa3QhAFPcbJTAs9*3*u-@DG|#0q?mcS0HTI-lZ42(^9g7oC&Ut=XudUJ|KDu_#7J zq1eqjVGbJ7v4r+rayP_#Adz#VcuYS^bt8uS+l)bX^JLj+*Z^Eg5NT?My0rxddPVb7 zjZ>EPhlX6GB2u<$Ogt&wuOmTgY(mQjqLE)Pp#Fxpv3xze8jZw%TRZ)Fot{cc&Sic_G zUBDo~ntbSi5tF`<1Sx7f*26m9((=huSMp%CMzU!R`v}&cmYWpHPkQ>D$prs3^N=tY)^xBw%dE%8!j`1DVH3BYZ=#;d^dvX*Rs&= z(ceB6+P6-%!Lbj3&?qiMvj4{kT^=7HwD-paDua#YXp2={8~=tD9>ODV+?~O1;Onk7^jVWjD_ybGHM8MAXqDa3)M^VNF!l@lLYO+ zBMUKt1Pgoag+#F8OW3=qE+BF^YR&*|XB8wt2snmL<2mr$&qk@>lW~0xP2{(TR__A!f(>LLzdtI|OoA zuj7AzyRGqcJ*@fOb6Wq=-MzXs&9@&1bWg{`pj1}Nj4BG*moxoOC!n_cqs!9uXuZ|(6VT-*$~~>>fB0UD;Z^ZlKhPyd7Nvasc*wAq^*tE^7NxDm0;$adGnMw;c&rvHV6Q}oprg-|PHJWTjK&Q$VE?ZuCx!33f(nSnpn@;l*H0p7t2dk< zb=RzIIo7==vOBI44&SLn`oNlO0+{f;x?B3t8QLy2yh`Mwl%+tqcV5xbO{FB+mZ-_T z#x*x)L?mSr{)gOWm6|nI-3v2<9t~V}A&$#>t_POp*}g*uzw=Q1o;GmdC>}qL`r5Yq zdOkd@FS;kD&MGlOwbF3^3SYQ%p@u=_n{y`(r1n+~!v2+|(3w0v|ehZ4?YURmn%Q_e172kQT0{Ocb zpND`Xs@>(Dm&JW`y)3@7S3nT`(Rn+i4Kzc`8*Xb|$o#dtH+%No*TsNkq-tr_WB!Y} zzT1H+!{_6@2LcuVB>>hRz^l@nYc=D9GeuY)6ukv z;HB3jcm6F=XS;#313%(d*>WoIV45OEnA8Ep7v}ce%aE)K5TuE*M)|dl>4fh)AhzD z#5J%(P8wsvi&PvbWUD>w!3Ip8-}qofheAaVSaAZo@{9V37<|TDVDi=%6q@NcOs%f( z{G4&s{RPAv&#gsMxZx}t$DW~CZABU{6hpw`_EftAno%TBh#!j+)XhB}&iJHO(D~Vy z0}LGR#r~pDO>rF|%L6iW=|uf>X47$Kyh;Yxm)Fuz@B z!}FSa&F*%OZsOsub?ohT&R2lMb#-w8|X zcj^U3jlL&EzvZ&uP6z2J0bC?~D!=_z*8|sml5#sVBH$4M!Z0ZT%hScebTPfw!WS(q z)ofZQf6WvQyf36^^>a4tx4iskkLCm(`-(v@Unug&7`jsrPH;z4(8YPL-5omf*+ibE_NY{bevZ~fI19#~Qzt{Q zvk%jR<%gQvVy75?)Boj;6oO|bTC`|F>8KF6$YJr$j^O_|ywVujXD-s``W85%GCwFa$sNvSagO+Z;T?qz#|Y$7@Du7Y{d{1%30!`4W1Q z5l2A&=Q9}aE?_USXCx~7?GBO|$^4`(E9(h{gape&N`fOvok7~5o zJ%GjhaMZ_0?@SnRe03B|>>%7i$b}UN4%{Z(6E>SRCZ8@`gx*EnTVW6!OTfWY*zd&3 z$ptf|6MPW$KUUcHYE(j#;gV)2cHDFbUeFr2E^62dBq%(~CFO86GUQ1!AO`~{Kw{i! zsw}(Xy0K_dF!?u7mNxY^Q-liT4;~LfJ;Ximj3vWKzSJpVUUI!m!pv2OPUt5ii3@}D zm_ok*!G$x%ix8_wwXFprvmaY*)*opM)7LRh2V~Nis6~R|-tzxK?j>F-c?)R1qO&@$ zj6T5sw9?^e`=Z6(Z9}U&?HU1*O8&vg5bE#$hv)EI0SYb+0*wkh!E$K@kSM9?x!ybO z{g!WNOc+g8*F9<6%5L8Ldj>vJUy#!El1|&aWtm}~W*QpXjTFayP~ng zoSx?;o{!hdjthbduk*Ge_6+-?-#?l+JUb|}J?=KWh`zF0JOMYGq!h`R(MsRQa;4uP zFRh(es%@h*_MmiJF?9SKSL7%MgO~|+d*Gx$yLH?l23vrJq)9`~W262%TF9RUodY0l z7D(3azn$h?>@v{P_VTLgLQu$bJ4~aI2m67$IZ)SXRvaPpdjsaZ zSDtE`>87#*S#RZ_+^&Le5KZUx(m8&cZRR=mc%%vS3G5jFYG(cr8fcAXARb9bBOqZP z)~$(H42qEWZUCtmZ#q*Q_&CR3n@DZ;HELhA&8nyMmGONoM;rHp2mbVGhc_|MbHeXPG={^sm2D6jev88Y&Ru2gI*NSec z9v}UT{ex61)0T=_8zEQ2-B@2H!W!?MCH7J_==oxapz%3nyf{5u>8lsmF}+;kQ;6t| zLIO)KqKrrwZMsS5JcV!^?hOGCLW&L{>R}+tfNLc1%yx#(Y%=`PXfW0;NbVGQxSln? zty;0@<5%zA1stW(9L2J)-kWb8^F40~>4o+9Ae6YIYFZi0z{X875H%SHO;KK+2(+J6 zkVK=-*X5Jrb2rutrkf$VE&`v&OqM@21(spkej-lf!|L<0jAv8pn_dKJoTH(IC%Mr< zodx&|;TF%1#+kTZ*ejylWpiRHeE>C@*3EP&htR@Zxvom~hnXS)F%et>X3Ma@PWyOMhSJw5462dI z<0k2JJ})(H@?vXm5pDosfU9>(#F@s4*V|#@_4{ zsxMd>w11>pkB)|iiqfb(O$rWWgS7~QJW=tRBdiIfq`CR}AWA#s^-xzQjYe6bikVbW zv}0j&b5Y!_8`pM;4YBBjoD85xyW;5uzFA?0yG?`zrA3JKdg*vu)SbYA%O{S;O9D`BTVb2zIc*}-g};asy8GC`m)?Vo&0Cve>7g_`6h7p8H4={I!DOdc zqx#T;4{SG`z;Roj`1=Z-Z$EfY32-MCL)l;kTXEvaPSwfa!3>r*8O#4Dj(>#@{kqc> zl0DG>=s(uwN*Tq3@l^O$Rh27#Wm+ynHa--*#&1XP#_|1Ibq#aYp`sR!@y~u0#6Y6V zY_D%5?ZhsXr{nif(^Uve;(Z-h8o$3D?jnx2*}*FWfI#tKq6mkwuPza!vod&TO16uq zO49UA>&LVCT0y+annEvcE_Z$61lFYW>yno;T95){XhfaQhp$Aw^=H*Qu3rcfN@Pi9 zAPHuWR%kIAg%RQ85m^L4!IC!@%PiGxJH_GXEi1rYRV4*1^*1UpNb34jn!)#Fr{wj# z<;b5zST#LE%RlVl&7H;h7D--479nr|QyIpznTpY>JwHQByV?zZRA?6Cqu|6w*mG1u ztvHWUabS&5gpR(tkDPsv{iq$~P-^zF;}Vi8d0gpqS{c8mzZGHX2NCFoSDD7%{)%@$ z_Zt$|F|4k7nNAs^B2{uMVbj~QxjqOa5_d3J5W|ZWm#(>GhG$>@OrdQ;GpRyTbX@WH zzp)Vp-$kG}y-7<|LWTINW<%AI+qohozWaha0O;dFv28vX)M0y>zjOp5ZkKy>g8h@e z#eZ!YD9v);RHaTXYiux{DeK{sg-EQBq1b)eljHtq1yHgF5h?k~er;0KbDP8csM4{V z2iQFVaU!77)B7K3WYK1RMSnfk>nQQfuaiv6CS+Ef602I)U93rg2mzJxtxRJ}tJ#PE zzx}TH73ebyJaz2#h1AJSsa4r6twl6YBxxQvoWF-za}A9tYrX3aDB}3>Gar8{lR#pD z-0}3Z-WZZ^{-vuHp!g(kQ~|}M(r@`Pz>%b6nT-k`E<^>A%Ai6CAubZIEYTvS!XPdJ zA_iznOTGH~%?iLklb#T!6v1)eP$;I+X1{{bO2H`H(L$0ysitW=s-z%5-4&qZsw9<1 zEMT!j9_WH6WE%ij{&(9fQmTUhB`&H;&yjSN4pU$19hAx zPSO|wf5!IbIt@GyfyKnlKuYm92tvornYi14QDF zp1VG~kFa~*hIWU#7Oh-+{lSu@=0?Ag3W9uok)wjalNEV{FazhC#KKt;xA2z`0U#Fx zd~t1y-(jZLstFpFIo>1X+wOLrE^MpAhxbfMPOe%Na8ieb9m*)*S}D%dv4dv5=Ek$j zeVj1Zb>A1$NhcO6RV>!iq4(R+LHTQGW5Uu(f`h^rCMiH-pLD7GM1V&Nzj7xjTx5`B z;8&x2qr1Dix#o8Tl;2DMvD3(YuksP|b@ za{7J}jkJY)=Q4rA}(!n|bM+*C#}&9yd%G)a|%%nDQ`4?Ar65HW@OkP?Vu&5-%yg%HPV z#r8r^Jsrgm>EB2BU`Nov6cg0d)nWoL&by4B00m z@hFoEN3Z^2s7Wi?ztQ-aF37r)@TVK4nM&giJtHMSXf#Xqa1mHC4?eq?#+}fcQr>(R zKBZhxo8G7moC_{N7z&F6>-XAdVk6EwP*;dRq+f3cM`kUKO6rfe<(6$OK|`+(Bb#~; zhBF=w(|n0h>6@=vgr+VO5n#;3Yae^&c~RK+QfWcQSX&nwSw>+vQ^j?7h|KSX+oalK zN{joG#31-tno;dqf4!rQ7V4!uAre}s(N^`11w&$ zchhD7Zcf8joAV;#lNBg+Uy_kP<*zzjD?b_kUYTqG+QA_`nqAZjm|&)C9fft8cPG>b z+}4z;JKcr~E|_?9SGBb*kI#aO<}E>7Y%Gw3l;e{iOqSONlyJ(|>Lej*sCa+;G24K~ zQFc#VMnqIt8`ilD`?mXGZ982r0RK(c-6+L^A#_y;mCT}aOc6ZhvuCDCcq}v--PpJ5 zT?BNKhbhfsEw2GyOTtnRBYEwjz!GgDX%#Z-@Z(#v{fL}a<0Xe^)H+J*LJx`~{de?o z*K_Ny!WeWXn}O{S{D1O=ut%BGOX})yQ9!3|sb2@dKxv z!eznx#bVo*m>&j;%W=p9ftW);ai+OWS4B?@p!64TFfwprG!l4f3^+h_K1v2QUkeTv z9tVOgr22+JF~1ZHjVgdj6B0)J$6E-t%=8QBrV&naX?0VvYH?1Cz*KY;QW9ltiF&9#kpA+LVOOkTAqVC*ZB7#A$i3Mm8y9Q?v0S;99+(WeE-cBw1&a zvemZFlWXH>3SB7=o&5u%zx?kIevP56Tem&U<)L!0C%WKUK`*!14m?`*#oFlcRzajZ z_p>26^9XJ3BPA$b|Cu~2|H`YyiKEh9eEFtoVu{X#`ZGP)-5Nqw(}6iaHny_`!^Y+& z%u(q?lT-}Jy6ISRFo*`jV9w@?+_^4iLxYI8BAbN|amJnq2yN%0<-_YK zUOY<2Y}MZ zJD{W^NcehIaQf*HN85 z^o6?Six%5!&*JLPGVrwY>b$3J_f|SL!vjjH z)C!uI3+KOva+#8&MZHm4PYtStA&}SR-TY!JS((KWFhhkws#(+sS$xbjA#oZcraR0G zj{DbfpcYl-)uF63P+}NcWZ)nwiFn)h@$6txHEe>|m5i*eCyf3jiBeo+O`|dF;BTkt z%x~C!P&9#1CXbL!+dW`ob-5*oAnc@Q>qz1O2eO1 z?dTU6LT!PzBF(79&jQw4g!fTz%BTzto@-Gz87TPQ^pr{Lic9%da~;HP4`&m39AoV7 zi5_3<)Xv35Jc4R8ayN#pel87)sAzaFMy$jXY#peZTA$v^?zjL|~JKPtJF{?h2s)m9pe9!MCyS7E8M z*3c(Vq$Z)-Z>+nSQO?9eN|;e{Q`S`NbhhTQh@gB#ab2CfzB_gE6Z~auVokp|$3^*r z%Ms|J7Au0G5fDsGJYO+WrV7W6S*Qyg4hm->q*9R2mBDa(2A|p{K@gPMFm^le5 zRaF;_Tc8-Fccm2&feX)?%e91oBSQ_?gohL&stko?7Gyl%o`M$)5K^lmVZy2Vmf)XY zx*hz1To8gjzXU(}z4#YKqswf17{0PqLLTY3Bv_mP6l9#KLRGj9IS6F&keI*~Ha_@V znf;hY*Vq$p^R`w-Ss-=Ss6)%F0{`bZ80*#GXbAj|oE9V;CP>3@eZ_hDWni4P8Zu5A ztVzV*_d0445(NYcpX7@j=qvbBZX7o9-za0oI+TA{2qM9QuF7zGyBaTQD(EJH9%|_? z3sEkO8e7s{id4an*v21c=0Rt8x|VH>jpg23IG+0oHQqCSWLgzkoOP!vIxefL^j+U7 zX+?*wzfeuvjo`n^df%x$QLCZpalg{2#E7X%@t3%dMhmbope0RV3+V?GR3=}c9$Rg+fH#T%+QYgebs#1Q6stFD!nJlfxz&E?%K?@JGP`(HVfGt>W%+xG@Q=!0iKfmCCP?TOe(fte61j7p*X0`<@ zs@un<89MJ)&6NQ=sZh03m*j0%%NC5kX$mf!SpS!9)okG+q06jokViJ9q$s~En&MRj z|Lq@V@S!b+Hkb38362cFgsN3R4l-ba94$<^rTXeWr8yta*0iKqQdRZvf@gmY=+c_B zFl)g;MBSgWflvry(OTan(Hai)Ltn?}=)mJqsDd{QX$n!Kj#Q}@*On8>k^$bbEnv;R z>^N^fp}@oU*k?-A_c-u}K+^L4a|1Bpx2}%7OJFo46Fxlm2IPMb@U~jN-R#-GI|ztO ziVCGp_5(}2Hs>R6w)cuj_AQxssRWa$^{bwzn+o73$KcccbvL1tjk5(iRb;9cE^ zQG)|QT9Rp)BnC{^z2CM2ETKzh$>|C3)XPN@(n8O{Ag=!AVk*BPOp*=ui3!4OOP-8= zL`gb1qjcQ|W7a;}B#KCcOc5ZGhl{&;?xP&N3mfO4D)i{c@XWY54Q;gcZ?c+i5Hy3v z6{DL)#rdl3e9u{gIniY=gP+@nj3k(#6cGJ_|au(gg z@;K1hE>J`ts<_*Ec7>4&^gDC<73lhBMlg+{8o-{r*Rh*_La~pb+Qv;CdACs*lWGKG z*u;h++b-qxoQ>>I4_@Q%@>J&lV>kCebhM)EWvg4`BO@1#{19N0n5L;dcliO zP?(qwWES*iSVAi=$xIkABaJSosCgf^{Sj_qZvQ@n9!DTI*)c|m!B_fUys6;DzoG?O z3m}9n>x&uVdA2c$tsi~bWXr+ELJgk4&{*dOi-R~M@UY{$i#)LSLgLS$H^%x5Q{Cg}moL$54N#_k z!~?dW{yG=)6|c5fRB2j7eMwA`oTNJC`iaWWEcsq6>(!j`p}#dIX)1tQ zjwngQ0ZiNaBWU053ejWvKY}X&LE*>im6qw^B9Yfknz~;0`qEPM4R4tW?M2pN3>fg0 zzl1~u3!5Oa^j8r+j=5|x!HT|2#VJ`ig(N=?le*BY0FJ6m4ajy`jG2=1Dk)uZA{7O% zU{kbK7I+a&ga=h%Dppa8dZZW@(X6eRR_QMN6&y870rS_(xjeQ(2L~iu6-`=2TEdV; zP9T(U5sU~7aDOEsfugRixh0BnHpQ~Q8AmEODnVEw!qcoHow zMg|^>#WR+F7|QTTN)b2sH;6Zgph7~U6yfSjzNS<0lKd0DF6}dnNC6ZHi^SzjbARwz zQyCBmbyZSG6)6ZZ4&*Ej4ogB}k3`gcw zj6ooD4ab$4*)K2p#3r1uIteq0x2@l-^TSmSaHY}AVUsf9xGR?BAS4&TJg$nujjLh43p#luzb7>CdzA$iDHz>JHMJOaR5s0 z5R5UyQ2cbV8$hI#!EbNZq$HcL|B~^+^_;A}q-Pxsuy;qn4TcMl^&85Z;Ljga2ks(( zk#n$sXnBVh2}q@4F_h5r{2lqnUQ|4=7rixW0AuebPk^-9T#s41sy$4%*6|oJo&Ir) zNb2?l{|Rubu6v(NHd&dT*)~IiM1#R4U$F%sO&YV}xXWQ-sYJ4mlBEtRYRu2OkM#Ig zA1PUSvS&9pkw8JvU#ip+8q+9}O)_l#5J4OpF1L@)hXB;0RI5VQ^Mo9oUE{OaZxa$U zNeAVXnTc1R9Ru#qDobn225P-%UIWhf$m#%H(7zgNSxDsd^N7E@{3ia*T!Mc~RDZ#v_&io>kmio7s-`BV?$-cwOvC#- zmKK{~Z_0so?qUkLbcS>{K3}V{>DWLW-jd}iSPS)~cIy$uIl+gkYhui->6YL)7~VF)tI6>k^8dsy#)(%XFU&hpsT_pE6Be}6K5v=YtZmY z@f^pdE-&ve|K5c+!D+urw4Wqv zJZ_4Tceum^czX^Qh#RR;3u8jw(c>l$FksN6tF2$MjhxMoi(u;;%0%XJ0pIr%c2(xZPkzj2y z;H=Ry`*Um8wI0#mk)%4=?K}sR(&*U!R_hh&7wB?x$eoQ*x&Q{z!+}*Es4-m+F%m)pzBT+hbv3!sJ2jyfB zb;bVpc~u%;z`kL0E9RGj0V{bh@W}7|+U4%HX;@M%sEf=Ggq6$lUT<&!834dP?En%U zw@WGMcs&Kk)y1{*{j$Ta=gIzpz!uQGykB~q_rayagZpb${bFu=t@h);eVY&B?s#|| z>&BB=fmP(Gw{x1h@&p#J?5!T1_(BkVQ$PEVMj}gE6 zVPiok(Mo^P?t+RN@rFf=aY<}N61?FVq(hA2-*%U+{3SFV9ICBm8z1TLRg;QdF3!iF z2}8?2t6TiLpxBUwMCgYPnemV`dR^wXhJWb2YJkH%q#I zn~2^W1l6;7*)S7#NzvXvKM&NB5|*$$%tffK!g^xM^NT^VY+{9;op0ORMJC<>qQf&y zuKNAYbRimzb;-5!wLbPg=^Ihixi}gS+xz)Ghw4geEHmI+m!XdYR*1_U415O`l{@?D`nb#{ z3hs})o83P!V1v)9yS~GB-qri@e(a+gr{Foi%Ptc+4x&D8xqlYK^0yxpR&k`)UiWi3 z12sn-uPhMU#Q*CH9z4kM+v2T4k&_R!=u%~dMClydO7gbxERRjg0H(UGUtIyCAff9yleW!s!RDptgX@ejW!n1A*iJj)4_S@Z>_nbaaYo1`K4>?y~b}qgNVk#S*074szB8z zX#V5Zv1|}6e!q#m<-}LMXd(JHuWg&)NzdhexkUJH?md;?@(H5yjfnrHutN*;u+Pex zFByd{#1xeVl4f8CD9$Abng$f)zZ)O?J}SGp(UHb(G=fccJWN3`yyKYV<^roLtwg^K zCQ`vTSEXqO)nV^>nVXpI(AOpoOFRg@nqqVmX}Ksc(MBkUojGhoNAv!mt$_6)YZGm5 zoW#;*ptYa0;!5d%h-i$8xrz8Ah2mLe!B>QK1;yXSMM|M>%GN|6xDh{&zmh^(Il%>IkbSbtwuwLhLvseD94{?Dy1 z>mW;937Do8?-hrbJtcTd2QbWbrQm6&64WZ=Ax12uaA*48yjLalyW|=)=6AiQY#3+~ zLI$$n0@X)5o`(wE9ys(WVrt+!ZjZV<7S6t~P5}E4t^L}<*dR*6I1atvkj)6?0U~d` zdi9|y_jfsg-H}Xa6zNCaGJ9QrA=)68T^v!xHIfF?&FH^@Vw9gBNtWay#0N!k)Dp@9 zg}mQH3o+8b$BSL90%qDIJYPxC6swk&mS%y4(K-}@^`e%SIVFhqcD-Q)-{-E~HISf^<#SVY_Yf+RH#}iOyR~PY>(!0YlG|)x-HJ$YBywJp-b=C4vPIj8YnV86zTQIzuhb5 z=bQs*)IJ0Gb^nzh5JSX|!hGEJ7R3Jen9i`n;d8SoW=*^X92aor>w>B zJ+w-HIL70NrXPwVmA!2TA$c74!L0q|K8yaCsOdZfI%lqJ|92?x_&G(X2I(y+`sqeS z1ZTMtOTV>K zg=OOpTGoyWd|?9})K-2IR5akq&3hcuYg)sSK8uA|563zHR==N?(g*Rk?ZVd#zqp_^)8vr>Kt8s-0e4K#12^dHBB93}&^Uf@^pvU5{LSjvenaTa{5Y5Zbdct& zgR<;kzF^+BwlGI3G$Xiyu#%MSyEDSy@ z6(ZLO6T%E?UbTia-=7#dfr=RaX3XoV$*jGbXhT(Zk` zS9e2sk&&GX31qwWxf@?bX^_axyZRejm?k07xEiIowX@zoCJeSAqCN zzY}Rn-o3%Jv@Zx)-vQBBtX=1|S(RGrJH3<`YX5%GAO=s;31MYGi~E+Vl`g23CK)^F#jYG9hs5R{&UI%pq_>9Gs2ZI|(+;a(?LSc&s}w6? zMP9@vZVUn2K{*dyZGvrE$E#MLAZHiN89$DI@>`IY-HQH^YCrPi2lr@MUnsRcqZU?h zVXG!jYPp@7z=E^to-4824F95XY^?#Ba@;b7t?7cdAp1{ol-Lq9b1B5;-etbtVufW3 zGOXPkK+^fDM8dvwfpAU#=Ak^N_G^JEF>emFS2`w)Dz1R)1jb7ygGFC|g45B{;kYL0)S7dezi8Ot7tzD`V z=+QI=6L!x$t3;q}t>` z)g70F zN4&QS%JP8bYfbMaLEZZeooMaTF_!04Qk*>~z`m^dbhT~O9%yje+0MG3iWn|iwtg(@ zKbHLNyfZE7-dn(n={Rg-_&JNG|JYvRw}%I;nv~`ndwO1w{kpF0uY8v~GK!z)uo*b- za)sr+w!BilYu}B@dtVj+f6IZ9-#ITD=L7JYg77}w_R6ljmm~G>-d?Xfw)e4luUK+k z?|>xJ>m=ixulvmBLmr>F=H6#>_JHM@YufiA9J$KlIE1q2$<^L_o&@H+$0(y}t@++x z1cTjnypa{a2^d+1YUG(Hg0&BmHiVBxx-QW+u+_#zY7F5^jqwyS=*Dd@NbqOevy7|eLaxMw;7z!7+ z3R}hajgA=}@}y;xka7|I98PeQfjVh+sNG4cP0|sq-NE3yO4P`Sit9WP9p`RX{OylA z0FqtnQmg&X^Br{Sd?kixwW)KbpIhiiTNshIUSzslxX_~Xm&?N~hCdqm2 zDc2!~FHX+mN4!(XSxL3VWuvM!=`&yqz5p!QVw5&UIEXZEeDE%61;VOq-TI*Nj)2bm zucM_y3F-sH66_2phG%8vr`X-wqVhhciRzoq(}87B8Me*d zHa2hO{GVm^d?1qkr(@*aCYkk;w% zFE7sDx@K!wnr_Wv zwcZpDZ2MNub82Npg!nIDynfgtdVlJJxfBkK#Abl<|J}8l%-}sHEiNYJ-xBlVI$WOn zX-4=;vu*CxEm4*|D?R;}gH5P?j^l1P(0l0AEDz*X;;X5;j;Z$uisXf~SBHnqgap}P zGw8ikyLav_)_6Yy5JwJn_U_qXJXtxp0LtS<5#NGn_LqME2<4Wbq*}AX%ErZer+*0e zErSG!K%4hd?p+sE_IMZ3h|oa}AG&MoBmD1ACA{}zUGYGt*VWE3r`=*V0AMvA0|qkN+Q{R z{_2geN>v3Ui=*FdK;D}Ys%yk;d96d!ybnJ#4m|Jur%Y8KIid83T zoFL$T7>JsT36N*8;p56CtXmAqkr?VnzNmJ5xq*qcyI`pd+acJy8VkkSINEZ z8YDsqFesrU1)>ncqyYao?2Op7oNton7YyfMv@ntVVG0VjRa-WJ+uruRdyYG|t){H3 z6PZET@P_kmBeN2yJc8o8U?5)0Q9KAH(-3$iBFH$sY_XSEP2cUy#S$av1h5bwIIA*3 zMXYHjc+AS*oL)iZPg98O!JpjIr*K1ui={XPC8QMNQpHbb5E}_#N4OkXlq~uOm-_{8 zQ|pd!#&|yP@fZ%@BR2xppNbIkDr{0wRrP-{7`tXOqAnXdd-G|YYR7r!d>av;xsCT- z3Z8x2jyy-_%VN!so6&Dz+fbA}+Yf#l*VnPW-jk<`2-x)C{*;98gYuc5k|OJ76}Hp- zSDD7KKBpWEU3X(6Kgw*sUTJT!y4LtER_NWnEN9gNY8|lN2u$tn<01y$&rJDBPm2wf zY`67}t&f;#-%DrU1)!{#t6!%X^m&=MeQ(AnV`F08_9^*Sy(8%dOt!z+|J=Z4_?X+W z>l|t;Up@otm7L}~xv=+fR#l}j?-SS-s4f&r-%H=kK17L z%zx$TU1*>bI?abMc|Y$@ALQ5ftIyi!6z#yyGtAN_yfNwBq~dGYgN0LyaU1GMlSP!` zU$X1mL{^~Qq_lFv0#k*u9Fs}~9qP&Sy*tnj&bf>iDmdB=!oe;+u0NSNO~Zw0EBA;% zYodmcqCkYwS5sy4*YI|kIdLctmDtmF90^FxR&;m~(YGX($W1}I%3nw}6zfruq_Dpm z1*pFV$se%C?01!F@06%NYW_ycb)Lz=TQmQ>zG(41j@Yt)DB+j4ZTiv*?~M@C5Yj%T5Rf>oc?CJt$~6B`56j7UJVv0g5=H$bY8Z^U8 z&QQN7qNGDpDBoL84dCQ4YPnOP1|N!ssaZsigOMkkRdsdV8h7n^T3n%+5JUQr6~H+_^LWVfo7d74(aJ67cSh0+rlO7uQav5YQC--|R< z$rC77_7j!x3dH~yMql&+0+>gVeQ1&Ya@18##2yGqSoGLKXnlq7Z@`_+eSf? zf}&#OiH&};B|fS=iUF>Y4hbqNR7WQ#Eq4xP=K2$}jESuFYTwzmHAy%?Tt{j3-s zg#Tl=t+t3bWY^~C%CW^7n$k)r$W~faH9AU$EeJYL|JTfnK{NmVuR1Ts^NrMF3o+e+ zs?@klld;R8?@mZeMDHPD%nkk@F-;r+);kq1!H*gyX1#UfX$^&2GkCL0488>lx$tSm zu%{@lX4bM&)iu=X>Xnc?+M(za3@hqXNToG2!Sr9bT|{_tp5~ll!$(vMrW|dlNCsu! z>lvEA?3!3M;S6c{eDH;|vp^{+Y6uC93ng8Yw<`RV$bf-TH6Onbp$tx7J}Z_SAsE0< zBfVVF+fZ!5K$|3=HKQf3UKeg4C2K8x(pVM#QQ7z0*U4r|n@GDDBD`sd3PGPuW1mZ< zPRx?oHbMI+aR*cY%)-#32GSlhq8|zW3`rOU-u%T$Wj_bD^{^WeiE!*>2xH?>{Yy>r z69q_hhY-X3&IBpU2pRW92~8f(L`ke-x!9Ax1bQa;O|Ot=d~i>NBiyzO~Ltg8}FbB**qS(6>JT|0E5%jsXskrW8BU@v5nz)y$ z$&vvKjJCHX^4HP#5z1WP?9M{zomY9g8D$Csh3j3}j>WF5YvJW~fE)52-j9lj{vQZ> zv~#3aVspgy*idfd8`@#=b+kUxTJwf)N!Hd~F~{e}W6$ed2|s`c@bY<`vuDun<^sK) zZ6<^MW7k5}rgyM{NRr{JlhDzqXSaW#vRr?SLH5ooAP;^^y#|#=lZsx34Gn zc2BoNV7b-hg7bfn4rv@Zc&(1s>^_eW(C=-VqsMx&KIemj`vjlu-#A|&RTeLSCd6|);PrdQ`OSg09b0NvmLB65$g?HB zp99f;9!_4BnWt65%yDQ;IJvF8G7zFxC%e##ddogW{>T?_XUimDg=q~O;e>{fmL(tJ?HS*#AoA* zGF2DY-3Awj^Y782nucs<3R7(pnV6F;QdEJ|Dk*G<Iy$g zSZSOJLrP(IxT30INz=VmLpRYE_&8G6{=M7R=<#=)pg)#1Z;c^CYp4qZ?+d9&rBi^W z0wWT*w;;82#RUJj7b%VZrI{*RcXMy4EKB6+mxRNrK19L(wx|+2WPqhwPiz$vv)GX5 z-UUC^Pt`AJiW#5^pCk}zD)COmFux>ADQA&B`X=on<)oB=sCc(Qsv9+?aZt`z`46H%UB4Q5AERs-PJat`!p2nqtSTq- zg1}8at^m0dgdwV;hEg04&N(0=^3;TvP=zfX2mmb~fhrIZ@XH@Sh?1se;C}|@ zb}qd7CfxUkiUR@3BWsynS;^wa*imz!Xi`*uXYWC*R(+%MMC!V(T^&;Y0;U1wNRapr0Ol~2`XJU$MShY) ztJENtdm)vAWfA7z!dRjZD61jmlTlVOjJ9B`OZmO7p8!ysy`ZKK+rRx@DzDDDcgk}? zL#8Bw#x+l5DW_jqtUbqs2T((=;&*0ea>CN;ALRrktjdCszxkKR$}I_}n~~dggp-*- z_1Xd{FA=w4A*~$Q!X#?|nXssxXriLLxET2gXV5PuODj4exwDXgmqSt(N&J-n)D@9l18Lhr^4&d2TEOQHqc%J zr0KaNzh`iy`fNr$@Jt0sR6Q_Y<&l@^v~m^aic_J?LL`*}Fl1m2kYZ-6<**g_*zk;Y zj2ROEO$sYoec4f0k9&eAQMfb^8csPdhE<1|Jf@jPbmGg*Hsr>rxDU}8a{wOVWDEfS zs_7-w#+&+8tJnSZiiNL#BRHg7w*iwNwyy(&3GJ-Az-U$kIEX8n3~e20PzguSUQiG& z@2~R*K&h&Sx1&lhb6|N-v;*lRldR7!u1dWptta$JvCE{7bUd?E!HP(VTsj8J_MCU* zdLZUyqWId&xF05*YLv7}+`mXH(Ez*byyJ^r^ulL7^Th48+V<3Uz5U`ZU;O5`yrn-F ztXsPl0G{~7C-1q>p7-8&@96mWy4CA8S+?}CkJmcRqpHG`1+vV&dtq^jc$Cx(~tYge_r&hAAEn`$L_g$ z&CIi(^=tzC`>p>t=9pvt^{=}QJ?yZ3_SqL5-gW2QGaJ?eK#dLnJ&+FvaS@?IbS`)& zP1|_yfneRbbwqxvEw*^V6ONdj+c4A2;lLep3lN346mpwr0=Q7VVnkgT}-PMGHM7U`j9{& z&4O8v*8K_eQ)JVYC)d;R40Sn7B4VYCl2#{Ht17uT5jC_x+QUr7K*U@8sX`ZkBA#kQ zgO3Ki024n+*@m%*vgdrms6kX}2O%Ev9o~`~c1rOr9Cd}tB@o(r z33!K}+?mXOD2*M2L`dGjs%(yijTkx7-Y}?xb1)lQ4S@QVV#H8GoE?R8 z^r{NmmH)c;{7=-&moIzCO92t93Y?26b)eobV-$Njw%k4|O|D35>R(f$%Z!$+oj}iQ zH+DHT!0$g+H}je#Kp`r(w!>_qNS0Eho$w|gyBbNIQw$!9$|x7S<4RVyW2tGVzUzQn zS%oun4P905S%OXy8fhNL(mnJUl>IuIA~oKJ%KQ<4=Hrw z9w_+HIajPkL*=R{4+uKDnTXJJ87L+IqD%rJggUY#Fhrw70YV^hrNgB(DFI?tJMb>W z0~L=-kU+%>fphwJ0FcRp2p+4-15^+lu1F&vkS&gzi1jh3oj^&b5W!Ud7;^IwXlBEP zwQJVJ7j7Xq7sGCeOc;EqjPVsuTTzS@Q(G^@{0ax7oo48&itw!FwRQn0DJ~CF$jZ#F z`HSMpz+j9OT05JSg<63W6iXECq>5v_I!OQm@G4qj5;4#c@-QN(>=-gnCriK(>0w~~ z+@YP)Hx+u1>n^sHr0bR7YN-tnr^!=!7N!kaVN`!SDHiTJO~mgKv4QtM%=KdViKvZo@kNCm!L^iD+eou z&rAbikqTx@N%RbXNUhl=gBi>wD4f|@dt!yg5VI`4JF+NIiKWoL)(~=K=m9`WiDsKo(X5umwHu6;5Hp3)eOrn zzQ)$-G^Gs<$El&zU+f^+`y8w+jafzvzRCWs%!Yu}uxpyh)L)sVB)+_g5ZNF!XT8WQv``KUl>Ls7Q z;DY0hfBN>@Z?|~C0z};PF}uF*wXa>bZr#}U*yzaUhS?3HBO}x{0I+(^YUiA*Dnz*d z{s;Plx$U;w4uJZDrmCv(v570MxbpP(oxaCoAM?HMe!p^+2mi0TZ~ysEf8m^S74EtB zp3{pLeEticzhR%h^m_F%M;$#oJNx|~{qXiXZa@G0Pd@uuCytDcw1dI-zyG}r>o(=<%x!NIxH=^=H2n{!AufE7` z&}X)YcR)OWAPL_Z^^1}j90n{viiol?pVRPoCw0t4q>$a`mC@9oIz5guT9)}$v{w&h zCQqQ4I+HnNIVjzYD6-_TE=^WAyy=1fJyi~zBOnBaO>^(t-!Xgt+GWQbH*w@K)HE12 z+_|ty0)>TS+&HFbFKr9h&MQKsM^ZfQh)^}Mwm=anwr;1M(O6OPsH0<(mg*Q#E5j4+=znDT@kj`LN z`dgN5;(bmWgl~<)@jDn6wU2aKx+_HCA|n4uah3y$XQn zz$;%WQMOpj2#X?6RRDm_0TGOij~#d1@q6vL&vx5y4FDsfqZOv$rjSk_zhtb7^hS&r zf3bwNJYmK)A89Q+WxSzFDXG?YB_zd#=DnC^xem;_a8kq+%($PFrjhWM8SA`QmlUT* zQOhfHm`taX z6v0|`t07M!M;S}zf@kmpp*{)9!+^^MUHaor6Z~Z(B(SAB$^m4}Yh-u+kY#==znA|e z(_x8DkOU=I#l@sVQcLPZuSo#Y96R-uI#u-II9btYViysnI8n@$oEq~SG8V#ww0OD0 z?0f!;lIv~Ng;MMR1+}KH&?begd8qn80EDPu1iKDSjH0iraTki}#*pZBJS~sW&4~-D z%BOhPYo0Q(!K9qCr&;ha@e65FV-ZhFiBW=-S>=*(O;eLeBJW5VkbtH`h%Z-n1W-** zZua6A38_$FV23bbtp+G`l$P;#i>R)P&Z6RW6 zOPDi+Ado4>t)jI#LgH2w0xjA%LR*9aP@eV0|CefOq~N)k*mPDzy_|W ztEvj#2A!`gL+9eU`q zPdW)8?0bZt{P@QgU;O3qvGJR4x$T|re0Q&|pY`--&CJcYURAlOsw*Ozot+(@m|C`M z*`h@YFa7%0fBNH}PfjiXPrmg_7B7DK)1P(i)z@Bl!39Shee^clZVf;SrltX4Gf&=AaGS(|MC~V`pSQPwXW-b-hSt)r=B`DH+TH;PX~aiS66jC zvte%2<(nUL@F73@$xko+#&;$sCKfDM@XoiLy6p~+`RgBVaJ^9vuEnZ_ss(xTq|Dwa ze=)pbGgQk)Y|1+e3h%{b^vn|!?}u~+%Ib^SH}6+{n9F?&_Wq&ze|SD}WS)_5hihfouZ6}T#HeMnaJ$aVn>KQlpsLP^%qnbFqj zPRFyPFY#BCGS9kHjRQaeC+ZZ?g@1yM*3ThDk97tc*Qnb7ol(rJ z{~)%?$f9%hbs|hYhy3V0>S62uv~o6LF)~Rq!JZp*Aaq6LMU^A&8R00_LNK|`~HcCPQBayYy4t#5qrdzX)HyJGVXoKCJH@-!Gw(~=KVVy&K8 zR|9E>+Oa-fhkvWIPyn%W%Ee^LJdoUXiv!jXT-G3EGaaH5aw{D~%0)L|cl0l4A{*?~ zX4$xDkm=F^P}VP)SwmJJ&2uQVHUv_8scL2*M0+Hz65Xzv)$OXa93mo;H$kKkiF|Ja znPC+NOmSF8QbG;`#hw$}k)?qQJ*gTAg47UYd=Xnt_o8DW@S!d#_Kyvd2k<1XNYT_m zQzb))QiG{6A!`IQvKnZ^01y-)g=IB%b&*wv1M@QMP|t;bVUWYpibJTJBWioSk!L>h z*{?t4luef}Z`-zZH98C`-UVxy2+JXsOw2JUV@ZQUL9Oe;Y)~FS8C`G~pJ%+w%pnd( z@};DRNJSUpr)Fvb)r^J_C_FOpkLYY?IA$s9v47MIqPQ0YKu{}a8dKGhp$Mj`Nxq}J zvl_`DOMRJ!4F=^DR4QoKgppMIY8s6^JuIM6EF~np&vOWSIG+rQMu4)X`N;^FLnq(G zk`d)Dqy&1^I5J0aG#FLa$WUd3GoUik2x%j8j)ncMgA1ljRkkBsz=%-Y zR$_;?mCK>p8=_pNtSpfzG)gJ06-8A zQ;1lG>PBrC2$b-l;Z8LjjQ<A>|E~zPhYA-M`LKd3~Z508#j5|uP(|SyUR1hf* zH{}Co9EU{os9;bj4}uu$QJK-YJIvS$BRV2eL>_Vc(Yq~r#fu;M(D~C>{P%qyI%A_Z zo$BXi5giBeDoBS5nGVcbD2%Zy3{+vtyDcv$HrJ{JRsGz8bVDF*p)N#2mbneAx_U5;|Y5ls{)vH&%;@@6z!n2>TX3Z+!pIyCX&E0qXYxh0(IQofC zy8K5!+-t8r*RNfB(=C6W7#mr$X4Ty*S8l$==3}FyCqM6`i$4EZqW0O(dUivtLww4U zk9qX2yPk38X%~O_3#(SI-mqbPh1E^B-U86Be(1se+}!3HZ}#d}zv=@YeBV7Q@4xrn zdtdviS08-X!2r;onVH?Ne%1XCIOjg~@$*hN@!8LR;mL1*_d8}c%-wzWokt&e)QWAl z4(G=ZAYsgYfye<-ttQK;wsXcwM39TLCEu8*A+Dc!WHKqZ4DX@ILV{7vK62KKce`uE zOi3w1NRGgJ;G=soE=-U!s|8NQ97a-#h&hmFT!r;Z4uWdQdI!lVi(o|wQBzP+zo3i@ zWcEuLq}Vkg0EMisbV?59h)V@SREDLn%Y`wr)PXp@DwQk2FH}PS0_Q5gkoD=Ds~uE` z9ugJ=1XwxWw$+kNw)xcgx1D&>13&#`bJFuR`oMcf4?D&Wyq}rzzCl+}?SR_kTUlmN zI+CfE_&Mkg1ZoL9=iCOfrP!LIAn06(qJeW!t7!VAZrj)hdGMb2_0Zv+B=Oay!0Qk( zIn;4e5~W4ccuw}@@F}^GzdE@OxG&%khRd5GV%&X-F@&%pAd(}haBRFDshfLl``0O_ z_J8sdw|McE=Y70du@$uqv_$05d8lihiyr?WQRX3rg0eJZX)F=29SyO&lof|U3FvahWypuHC}3MGu(7g;Iaidp zn}O<5&>A%4QOv7D!cZA^wGyKZfdVc)Or}C>0@HZMh1{VH10lPG;u_xynZqSwxL&qKqW*& z7D^g&k@>_7%lUfaim1kTSQn~7?tUc3w1#q+Ty?;%B%|QdA>*8+vvX>mb&l3mU_Lh^ z_i%*P>No!EMlLK{8WQUkFfki96BUTEteW0-eaxD5wsaXJVOleEdK$|_i_=+7b;gd0 zW_2PpU8Z5`zVkvmuARc8!jRNi47Og;Ur<28u(#O44RF-+cMY zU;fg)_u3Bts;VZUjW^!-!ykVCCqKUV_|!yIRWE+gi+9+1tIu6@(Jg=f$IiR$e%9G% zKjq2C0)Y1o033Pvkxx6}X%}8}5m0mdQ=k6alb_#0Gdech@#0UM zf8OUlv+K`(@r$jt-TL%1&zKyU`1Gegy>#gk@}7ux-f_q2>8a_d$zzT_qUrakZ8qL` z)31E#i=Y1NXa2SFp5>cu_RMFVaNk|`UH_-+iQ4V9-Rk|Pz2~XN9{c0VFaPClezVWM z`yFz?*x);GQWxz9am z(Sm6|7*xCy2O-6(GP@=8)#@M>OQS`gBTNsgQBBSGM+{{UG9z|sHIhN#ZI1+maS;Pq zW<62sJ?Bh;q9i@c7uSiAe$DSPdKMgof=hjI}HX#`~_V0KmD*fva4FfB+7V z5IhluO&RC`2;14&@m=@Y`r^;u@o%qP{rhX07rk`B(@t3QvKQ35?HLa0ncqhp=7kvi z$)}i9Hlf0p-wTL{Ziw45oFcwOPXHdslb4x+3%TAgp>J5-+#<~@WyW(6cLa-x$2_2N zBr%%e(13Gw4Zc6P{nmTG@%1&|{GR{g^}X%4+w#1RjURj%5J6QT0eG($$pmVMt}sIG zVrFJ&e*KaAPGH4oNR45S?6Y}2AoEPcXS#~U1x20KC0|sXpw7%PAX?2c|24mJ2%V^R z;TV0_A>z|%v85yxMQwaXCVo*Z&+o2>aGc|qMpp?%{KU=-PO?G(5Kp;4?C8|wBtlN9 z!WeSnh3G|Gts&^fFUXOJVHn;Q*j1W`Enxuc>Zn5uI#^EvddfyAeV=oc%KA{TJd^>N zS9THQwHO#AUv`Z1;#H1Jj!7)nH6q4L4i#P<0}*2DG(k(^N2b#;`_#sOp=FgDB7onarY9?HdCk_VzQit3;QF-J~X~{pjhbX+Wj7gjRy^qxev2u4u+UNKst#dn9`K z#C&2#lmL`f2?dpks1I`idpYcw&F9$_Eifa1NB}9())-1090`mk`!GQcjbry+tMz#( zK@kDEGFMO&q|?eN@X8>I{77;?zf+veZ@LGcBotGw3&jv7u=eD~l2F-gT#fRa?;@}y zQ*EMcQY#<6lay&+4qB*Jayh?FY zl{$jR0rgA06+FjtvN)a^i%< z9aIhxU3g;xA^`cVw%Yn5A33+z>j6LrZvntAkKW_V51&(2H4u%Ajy&O*C+&COL34A1 zx>qlpo(7Kf0Knw*^mCql(&2|4R@J@f$%&C(H8(fcbMDYX4uAXsht!p8W@ffrvH9Ch zefz(^_O(@2FIlpfJngm5UegPv0cdP|{GOX`nwgnB@q`nWF57s+x^bPd@Hg^0e&^JHGKPZygyK-R04{zVsEZ?A5*T@i9b4WQCr2E#{XTEli&R#L?a5CGPvWiO*d{eo!X&Od zD#@J~;$x~2jvfvB<=q1wHn5QRUM?k~Bwr}`RRkV@9Ebb(od6D@0>|$JNUGmiAJ3RN zMULFTN;D~SC@Uot`=RZF^fy2x-+EW|+SL!u{OS7Dzxu=A=9}kkzhi9BE;#YTjZS;l$j*-vk1n1SkQhe0 zGwhorFAOD>F6T2aqG$ck4$GniBX`r4HlmDn=BY}bH;WQo{wE2>KvFR*YpX}94eR+~ za$rh<;Uvn0m}#?&%j!rN>$GfF5Gp0n36g#Ssc4s8ObZZpHP=jYGddR;)+lzRgQZ2C z<$FM_>!>&Z#mi0J8|#eN9y4RcOG(X%inK1OI+MrXL88Tu#T_coocrgDeQED`~4IIA!CM!9yrJYB_e(8PS(Pj_W)IKzr3gur~lGg^+{PS>EVGH31Vx z#kQ4s5xS`qlZGyubYIN0I{aHSQN(0}{wl+BO0}>V$yu0(&H%2TgGMmpiP&Zad|uHs zYj~}LD)~qiaWUJs`INyiUK0>-5`9OX*cE(&oQ%5Bs2D}rK7uP(Vd?eBNj*MHL&e_P z1d?#6c{`=)_YqxTO>9`8>Jjs>S-r7aoXbX1R4(I~Wa{({NuD>l4f$}ut{p~&FEU)I z2Ap(L|^ zo9rtMI+?1QQn{u~n|bv8uGm~hjsLv&&F@@y`A-L5|5pF1t4ANTbG6%UBM0o`Hs0Kg z)qbW=gE@*YnMH1Oyc&RF2?1MaO}(B%@gp)cSqQB^7$q4g@lbL9_zAve6 ze|E5;X63A!JR(+=nJ}heGP3a`ukaQ^o!v^Hb}%UGVRp19?80d#&O!K3^+Z0*pFK1! zwI166c#poN*+Dfu34i}*b?+L#*)oqT!N6mOPGpuGv=VTBIbX3+F&@Ca06HCjPS4H5adW};V5EL-Xc z`g45%T(V?|_f1Rm^I!eyjc+)`)$WzAe04JzAfiJ8?+0@;lf4>8M~Gl<{d!kbmJT;BZwM{b^3@YbbB%@R8?4^b4cjO1x<$>aU&GSquxR-3=ASKnnk2NvFZ~m#_7TcmE)W8 z2LR-in639j-ec>@dqiqms?q!Y0M@S^^xKhTOQxTE%+lvQZ}hOkt0l`Qq^P5d_LIX^ zmTNJxD_c)wQfZbk=8Tf5&-mD0rlTm_R#S8tPI#olaD`W|MRACN7P68pIo!`oniN2M9($?%80IPEwNr=5$pZEPMbRaV zOkESeY^XuZ73tf8n3w^~>RUtz&;&j~hO-ED&UcYgXL>r)$(cFVhvE_vovbM>f5RX+cCNK`G5~r*Mu~i)z`N`K6>zkRY4mdMy zK0jq7t5FATjQPw_4W%VT10ckg5Zae=s>dM8 z5=7K(kTqeNwaxq%<=w&{qbWm8oq^8cl3*VOqh`ceP6|k!X)_=!MnIV~09b}gD5HL+ zR~Aj(G&~U&>r`ZzDJD$A7|o5ahD;c(LEys08lmyux@@!IK1f|yyrCoFZ1zy)P$iX@ z$ynaBk_*j3U23;%K`Hgrm0dwanVtavzqVSprd>~c&l*jV&927Wv7taf2=9dgmY1>J z_gj9^g=>HM!!@7&{QCdCvVYUxdzbxeZsVmiGKK(ywrN`mulOW@ut^CpZHXg^??gQ0 zM<^LVNtI-UA(ugQmhK*tL0R-`2 zKSX-?=x5OfLJ3~lWNC^&eN66vFm1>1A^;-rM2*MRQ`=BWNItxxBTOJYQUAdQC$?Np z#JjH|Gh!IZDEeVp0;p+PKnSN50}zlWqNZu$dGG|@H-pxDA_S-^7Zb1AwrQGG_dn>U zZJIuLsw=2~TzFYQ+xHHU&^ZU8fu`}Csn-nVdZXi4{pQzCJnHB{zkmAs-n-}Cd-i8% z>&k^(FCy~IAS^>U=aAZ_0SC_ekiJrR@@>Bb0Ot_Ng{ixz7QBaOxhZz++rXl(a=dnc zGMHNQk_VLgPUf3BN|SHrDFc?9jMqUNWMke@8VYS{J1~$=2=><+MoIGCbZrhmoQiGt27R-}pIhOGb8pIxIcx;p|9&k_oM!e%u94sLJ%`|S1C`afPfxaLo=dX*mx(AAa07DF54 z;$jNM$UKE%CLjRsAx)=bOjE)|=+l$JC49J$@aC|ppyJpZAR>m4oCl=VlP83xA>URt zJ-7z$ylccau*K$sjTYj%SvTt{%mDa%yCkU3&XIuD9D`sx7vxmMnp~=llIM z7r~6Dv<>2UePmUi*vGQG{*?62U}}_|BUOz+g%}tXc}nihC`48J++R@c0#BeK=yCqFRKiT zh?`YY`Ok!m(zh^VfC2-jU`KZWRZ-j!rP@#&46hyRMue7VoF5w}-7?v{!U#CaxUSV)|%(UN(^~Djre!RL-+39wmxd4o~(-t1uPn zQi!pvqJqWOsNBx^l!QRHbQS$DLzd zsM`!CvR|^NqU`h|0U^h*pi$ON*=gdNF3+UY`FUVHQp<3af;j^v!Yh*@`2#@6gQgb! z7$n__kGT&XpxR{lqUXM7@{l8Ee*4SW-~NvN^5?nV{=Qwa0RWn0B;vn}R^=#2mo4&9 z-C^gPyr+*zfTWC0kat8Tq6zj%Po1ox)s~cE*CEaCbt%mci8jI3=CUD+nW6{M@Hs9P z$321?B3H~>YIq>g2N7cMvh=SVK^Pi{P$e?O2BYKW5X0&HQCp%1^n~7rFF-94_|~@$ z{K$m&t&bf`lp`j}@$g2$c8)@3I8uwe+n@>`z74aP+J|Xv#F2bM9+$7!{GF%1ZQs52 zqCtNQ$<-h&Ap%sDW6v7_9fCvj2!I}|3OpbUw%%%s51x7YR$FfUq$fTRh^o3q4lW}R zR-7{g;p9$6*Wg>xa6*d2{CjS*Q5->vP+Q9>uI14IcpdJA zT6p;y7p9itFRt^~n z0v#FgqCe9>rRW1fNa#yJy-x4cxF+mxhU_^9=$sp$z^O^7M+v|W8km~{bi~S)slz~& zPC-Pf^TB&Znl+B7v&j_QTE+y}RHJKWh z=!KMXD(O!-1>I+$mQqNWiPLzg4mx;4k5tE9)s=xca)X-e5G9kBCiJ8^wl*#6{4`}< zh0~Ih8VF-wrJc{^U5cr_k6P=eI%zc}mlC5Hy8|N90&_*)hv~a)BWf`yYAN5Oqh@+K zOlUIzMWZF_rWXZAp))E;0V0x@6&TfD( zY!Ss%TSqf5xZ}z^PAVB7h5x#TNjZqAI}2@+4-_(y=)!q|Yg|M6N*{R|S2uF`?I8<$ zI%A3Z2yc_@PLu)dUu2=r5b(<5Dh0(NbLKLq>6EA%kemPsDSrtSJaVCW0au~i z^2Bj%fmtM?GL65Sa1#=NC-k1$mV65U&~I>hvc2`@zyJHI2ZP3qjF3xvxBz8Fs#lC0 zLQ6nE6yKIe5MK!pjw_A_v{S6sHbCU(niZRE`sTO2WyDp!?N`VdeR};kEs;lFsvJ*V zog;$fE4F;?>)ueI1MtnDsp=Zysqo0JL<9s6JVE8jj5q+iBY`|;67q6HzIa0ryOsnQ zvn(N_CyFh(?@EbSVWngs({D4jrAmnd?y z_3oWrdCi}%-+GI!mM&Nd01Xj>N5mLD)wl?ARTU6Gf8gtiT!jK?T0RG_AfyuF*RvAuEXL)#Ul8Lkcyb9Xo!Q*W?v8AeEKP z6xZBh^BXLYrCACC0l5{j@FiR*-OUYqqLGC}8nz3#j4lsw6s6b#NgXbo#83#9P>;6Q zWJ7DpS(8bKF(Q&tC>F~m|HRY7M2SHEpzf$pIH)OEn}kJ8M?LFQ?GC-v*s7Ek^DszV z5D-)pR&2x-yONQN8ZCNf-11H#Dw;yo5u~>#WWI{-rC8-i@o3g_1_YzZbaYk_HYzm+ z*BCOOiDws$SmqG7vf2A>%eI#nSBR0w7WT+yYlfoau0476IMsJCd5OBYk zw`RdE3>zx#SF&Q+TEa_fIMtVw%OaZ^TeFZG?jT`75QS)d9$c4Y6M`6!$`rP)*2*hI z*p#g+3^wDKg-b9VEf-qidMbXW$&!t_E+#yf0!#%DYdcq18gpq~qLEaM0S^uX%s=v) z+%cNX^hw?zx(0e;g{mE)E6;Vsn5CFalD|Yq?E~lxVUr~XR4iJ+DMlSlPo@>ggh8>T_~=}MsK1D)*Fcc zn~(;DZfXH6TwHIqqQv6=yZ&Fhgi$k&&HS?Lj=m27zV$#J5Wth`_4;Eynx1k5Sog^3 zH7f)_ic2q`Ry)FpQahdJl>vwLfT!**^_|?!lW#$QEpnLqIs5FbK`-E|JSi;Kj?2_6`=-S+3)1fAyGw8 zL6w$BDkOrfmu~mi9Uk+O>woyye_sE%?G7hE1V;!Csz5h~=p_cqAS;hattv;_iBpqs zjvS)+6-(w#b#yu7jT98f%o^WO9!2J0+SUrHYFzBjKvN|wLlpK1cor(F$g)I%woo48 z6l)ypBDJwEa;^6xz0q%9`L%!EdB?E_zj|tPnp*Fh2CHzsBw|qb$T@Vx`&nz`ggcy;#Isz``7WZag4zxl%Z=bYjP(4>oF~Kzq2C80Y6es}7&LKPXWU!* zKff@4!SFDQy{(}ekkZM{>c`QD0>3Xp=~7S&2TC5<*qaz`@SJ>{tFoV^_&iCI0mL$s zhD(8-J5*?uq!pK(p|ct?$I>RC^uf}%B!peQk=2UY)#;e7E9l|^JgA#0e8cBN7riBl zcY+O;pq<(xzo%SQJx@_{!kpd6d=ZrwbEIPIAA>%%wSyT2jK(w$u_)9;W8oIyYTO7R8mK>O8TT}pq_@18HVt5-o8=~2`@_%095B`%hbQryIK`%(?hDY>|(;@Hl&+F zb!&y)Qr`EA51c3FrjN5P>m-lQ78#P4c2I|>vHvTNx7~^88{tz&7CAld)J?hPpymkx947jcnUC&7kiP>#723SJ@K=R}VeF(2-MfTpJ zOUQ|7l2-_lD~AXeUJDDX_A6JTi$`D)IB*`xQQSKlQffSqnvH>%k!9{o8cAn+#!dnG ztrrk?53{oMzVY7Iy&9m3$p##;gP2FgjmM++)wr36XNOVA6i%p%VD_IV%`?PzglP3i zIT2Dks}V%ODTzYB);Co(_P9Ov{o1cD`N40$|Cnv}8R?CKrz*VoGMYGy82J=G8X`Q3 zymCuMLqrysP-N?ZSdWZiLs3`e29zqufa4)Zf4U&gJuFCz{+)HY&4HST^B19BoNe1>gYz0#8QH z$wvI)Kq@(+3l&|;so#b7Z5TXa;}V;ZYTimqa&5HnXWA1Ff5?~vA2UfPbG0%nP|zWf zS6i`?WJcO-8)|LFdN{+qtf8*HnV%*G)TT`wl3|TokWh$n-E7M)duDO zgD=-3hAFJ11C~CvPQEj{V=`o|Oo}ETebcA})WctB#vEMA18ERlB&`~yo!k$g^e;ZD zQ=gb+BFSw__hP=7WkI1VZJ0TU-7u(+LeLm-vCdo}MMK#tt?noYRYxY$WFb#JgBWTx zD%#($&8nc3zL3k1!rcgZfkna5!IQT3AQ|N@$wFaYwRfEB8Q2(jNtYuXn+v^@VqhD| z(!h3yAi2ZDdZi(j$|^~#dzYN7<`EBi_%> z{+cETN946-Dr3zrR0y;DEA-9m%u$QZapzGaen%%C~!g)H-lhx|RMc9m520M-}BsXj1X$suroBT@ zp7`7hlb4iEwZ-AS5R(Q#n{2Jj!h*BdIFU1A@nXV}6f+qEnu_^lB&;M)mxk8Too0n* z4C7PMrM;G8KyrW~iwr!1Z=oXagb3(bKtyza(AG87b&QA$nHW}9`c&1us_p?04d&ub zWKJ1lmX92Q5(z>F1n87!i5SQk^3%XU2!zE)OmA?GAf62mh~1gdS|2vcsFHp&Fh0&)y89vw$i0UY+&Blq2D?~8wO z!IAqNeejM)_uIJ&Dgf{lw*fOsL~--7PA5u;fXUQVOl}YMNuL?1q*56OQIntKSs5(| z;`>FCBp6tCASg%@;M~FxB_ePY<4I|9C8ZulC!}d9Cy93*){ z_N&rPLuN_(CX0x+piGQx>N+IqA0I0sMv9hcb(uGnFN-FyOxB>`3%fXw*;I8r;+dm1Cw2I+G+(IrU2jW~!47 zG+0cLb-L-TWWR2!q-a9`YG0!sreHv@5LPZ~O<>@v?);Mih-kaBAtFsbC%&R$de)Oe zHI~5>!={W(td(z&X(Gyg37>aqx1m=_t>AWZKqtjYOtEsf6P%zPlTus2Ll_PF5V$B1 zF8T^XRV}KH5pv!p>Dfr}(DFswT~O%)R(dlyqXW=oZ00c?Tp&&_QjcAIW$I<tp0 z(g#4Ki6qrZyflRq7?^k?mDE9!44Lc~#`5!Dq+y1kW6{yHc^>DlWv!^ki!h|>KNitD zlL`pAD8+as6$P|`DWd0DgUYv1lUqh*2nUebIRZl|n>kep@~)C(*##_bA?ssfW7vu8 zki(=dI>t!N&?Hi2$*6Hpr#p3^89asPc89?a8;FnqiBOs%LL$UC?Nk3qzB5SaCZW9e zl2mz$ue=N2)l)=rNZ<&Nocb3}%913&R5$wvA?D&7#D5t6kwbEE;e`v6BpwBdQAi&| zM-C#8sKCPjm;;c;9XLnfABKMz{zCpwpjI~(-6)cm(tQ-25&j8^7?omxD{e;(%d=eF z#c@OctQ=v5y&7r+bp{N;v2&g5ZHhdE}kpR61@6$w= zqgSN+3aybx#MNt7-FE9OK!oT39AHK0ApS$e;D{sRI5NhBAn_ZL6r#u-o9LhdFx?VO z)!}PN%OEfUH(*8%0pj+>LJLHWrYg)Lyr)4kXxnCXZg!iE9`(W}yl1X;8P3 z6iAfFmUW8RKUH4qt;|@I-%$p@EVpWqk<}6+B_?GZ%bg;#5(YMlDutkJ0471%z6MR( zESg^O-9LQoQEWyrdhczT?SRUN_9lyD9mD0{5_p<1O(KO2k-TgEt@ zBn_;+mzv31vim+7tKe;|evRTuTwm7=8 z=#&oiOS}0mQ!`nWAx}i(deo9Kq!nTqrB5>cvT>zo~9y zPfIcwoorNYYN4R8XagOU%M8Sji&*xD50G358rv#q^P)ytDb+|n5hQJ95;;Upgz4E% z5!${KP#KN1o->eU<}pQ#ii?z?;Gbzk3_%PbL?NN3f`v_-+pe(%0I0h*nVEHR5-_X| zk}yl0h6yuJs;iZz7MLt-&*k+N9Mq+A0NJPPvZ?cGI>jSt-p3tvRMYa!N*)zSK#g~j zZOR8tsw)4lKV`5`kq7kxYn8rGB z30XK6kf`Kmgn|vSVqH%= z(ufMs6M>o8I?~a~1Po$h%-E>Ljcb!bXj(E_q{K1dZoyy~5r-fFoc1y$Cea zK1{drPUn$XE)hV=V}%i-VJ!+WV8pejTwJd=klIsqK|z1ukC&VM;Gse%XfqMC1DB^+AzASVVRUr_jY^uF@obl@4{oxI7IOVkW zz3)}8eC42NMn-Cs^Go9HO-Qzm01!pcAcP1pctpY7s!}u!Lj2JI5yar2;ueaaqc+PF ziACsQG%)lWfb~X~MinW;oJ~9QAcZ&+0jLxAsA;iRz2(hs`Nc2(`zJrXY>Tb7iqhv? zpeP_Af^S-6fL~#jNZ)UbhD_iYcnE~n6Mk?8%<08r)5s)LQ zK+=&~@7vZl0N6CWrycP8oA3PFIbZ(xsh@h&dtd(k9hUAsvteeY+2EY()xD~!ki9WU zlVsuwkn&ZOa7g{6Xx2(l^Bs>yprSH{5T~;JbejvlyuPn|gNM7csCCNYBWlV(C{*Gv zo|Oy+KA`x62r$Isp`{jqCdZ~+Re$|=mz?(5_ug{*?eBTbJNDV`fVTA>S_hSL5+P8O z6^bbZK=w<)T6~jOz~o7sV9C(|xi_NpPc+ob8=!MIC<-HEs`PBm*`BCr0b6KeVNM+* z001wqofXa}0~N;`H5(PfpJ9RKiQ28J85~*BrKgI-i6S8DVwu(s-UeBb4K8!HbqWuR z-9XiE7%NIQi-P>sI(yyBi;7P&Vj-E<_^vdmwTt`IXz&Ex>|KqbE=*>)OJN@$D*>j2NLijzQxZ7l-)iKEor}yR%E_g9*$$wt1={?Z zLYa@IE`=gjjCwF5R8EIs_BpBla>Ed0Fjzv$S*_BTV3E*QwA6?)Wte0oakQEjB|jK;Gt)DGkS3bxxg1!gTK9AglX>gV z*edHSo1{IGH3#fq4amqqW<&+N5+6!xu8Z85xVq@?5v-?VQ0sQ1#V=`^V66P=4(MZ~Tonfvcib=`c{FJrkB(>kA!-2JfQgGa% z`Z6!gaxAj@kNhedG2TP=JBUy@SXR)wCJOUGj9ED5;b5Mxz;NxrQaYr?p;Qxjlb<@! zZE8N;kY&$_X;mm;{*iQUmk502%jT4tci8oWR6r z3`EJ9O56cOnoK9$7F;t0>+m`t*is277JQoq$C?3s;8fuZbi$@AVM0$et0Uh~nCKxk zxx>7gfs4I$s`NO{C~I3Tu9;9>dBhkF>(Dg>{a>$*n(&7i5AtHwqGOZEE$bXfI9 zf}hmP^$}fF_uBrTX$C-m&N)|Am5V81jUP0FFh@jmBXy04o?tLH0H6w>>CYm42S%*@OCsk#7)c@{Mns*71v^vmlOgYSJK-ES1|>8A&~M z*(FxBKvfzpzNfjDw4Z)a);T2Pl^1UKnn}c&m@&(ku~)m(2 zKxObxQ&dnw5SCD~74)uNI)zr>EK&_}=IgNL44Rpe=Z`@6u53>!*oV8iDK%fH?%^8D z=D1pX5lXJbn0v%w@T4dKAP$$1$Sm?&t~E{?=v*4DsATy76zNhtl=%39#AeAqOBVsMsl= zcw=4yq87qJGh61$JC`jo8mX*p)KjO_hw*0e@fh#IoUx=XaH8ae* zxW4gQBgywY+&cf*mbKzy02pNP2H%it>9$ik!{8n>?D9+Hmz8(XjbYcGg*L_ zG+#2^IndmuaX@)#$;5C91kxa8ER>6h?MkE#dSsABjUu^XkFLKHrW&aTHnsB-%vS+ zBcqd3Q~iD)eKWFf2>>&#lT!fD&aCwz zKtupU-nr2wn@X)_{c2Bu0FC!!3#I|<)KPy9t7>9$GLdS08~{G~sZS!piWMsWU}8c5 zh!8eyJD8grpPU*UANlz%eu$@`seOxy~;z?{&dmTx-Mp80yQEPjpE?24* zkv$15e<hB%!y@U5U zbgxJ4x9e8BkHK`&f9EyKpwGj_!)oD>?^1;od$L5Of#}qcH01s;*ye}i5nd!-4}X!@ zYnV1yHTV7ZU;g{|f4l0JSN-yetFIiLf)AYXo>v_8+C^iF=bAZ$Fe^9jxni)a<%~+j z+T#*OYZjApXELbD<*yFcicOuok5mB=!bhTpMJFQXy0$F<_{RIT1?Qs*;+H{Z@JAp^ zsYoTs+$^lK7(Q0+*$@ZqtKTN3jF#L&;9OveI-Q4r5{(30(X^dAI0HFR5gp^9ocTra zf7JTgp%6#Gx^AYGc|6i!jq)&&YDNfbA@3}ml}MSkMH$V0rf|_b-&1#$8LOvS9Y_^Ggh-HK+7Hy4qo@Jphowzzm{4M-O!Hf& zgUuh5EiW3fj%-5qrIJWlkRY~2kR@LVmnPe1CgqlclaFTzLWSQoPZbf4@=C!+mVPtF z){WLkDKLP&z=)Nan46Wl%mJ30acLUac0&;-#*8LrTtzdaLfzb_L$T(MMNlQ6ktR!I z4>Yi+y4{&Sf||uB+CRijy`d>pYq&MNl~E80P^6X_o$0tkE*|;SsUP!rhjaF(&PdG1 zKiLV4t8GeQbwR+7Q*16;RR_-UWh`g}?_ts7%89!Ty*j{2qSEPwaiJj!8oCBjUwq&W zWa_BPxzRm#QZOm_#2eOKkoMze_|kbyDVU85IYI^&+nQlJ@*V;K(L4&w+(D2WwhsQ5 zld84e@7V2Y)KLL#iEvRf#eR$OaWh9IW?G%grV|BI$a)0xFG+vKp@;_S2xt zc)$>%OO=jSFi}>dvmcG2om6-BHNVc&iYIE{lnO6}P#>=|Oqz6Gs0Kf`~tFFB22bW#GZta?#ci!d6PkQq5Ew;GzrW-H)?spD5 z`0zdVek=mb%&h<3_kOtj_B-sk=N{dh||v@3qfuxBc_WU-{BKcip|q zqaSt5(NEfL+ii#ltE%ny&-?VJ{&ejhH`{dM!w)~|(8CUCn`SVWyX4DX+kDHd4?ggK z_rB}hO*8k7cf6AvpTtzvBUSyyFJ5@%Z>~UqJ@(w|nQW22aKC6QI9+Zl{!S@ncIOOm~#Rv#(~!jQhY-s+IGo1@Rfd( zXWVKWUj7K}V6f5jmT!9Ad-vXD|1baGqRW2s{qO$rd&`%t*k;9+TWq%3 z5m0y|Zj4IAG#ZvZ-fNZg7qh-pi3uACoCtiJ3#Zvs?tu|^pCXUE?N4_A0MV%n4OvkD zQE34X@~IOwl}|Y(u_5GfAV7z_w2A_m>YS&0#DN7!pn|5`H0=0*u!4iww0@ah!1l~IUs2x1*GXEC0dfEAg>||9O^%$Z_2Q;7Zsb$G@JJ^Xw!P|1m4FDzlATsUI{Z)0LaXLKu!5A zBr)X$T$38lMB}#M>oV4_^We{_~2AHg+Rlu0+ zfJAO&o*BL=d zs0=2ygz`+1C=bg-ivGN_qq*n42J zQY9L;AWt1ZuqgGjgtCd^GSzA+$%ZvYUq3zD~K zVM~D|6i*{V&ot1v#3IlPSttfQbc}Hacv>JB>+Jr}i&+Lh#TrB!B?VKh2ITD~O4z5E zrnqGhBw!W5bknpiSpf+oGQn1nowmqCIl2f`wXK@L#kP@J@Zs$Ro_tGy04-Dq02f?z z!Dm1BnS1Ve;732Y>_0QBcS|K;_sf8D_c zAM({pzS_3_ir@V9lsCTNZEt(a7R$Fh{`jX|cikTsE?l^J_3C~1+3$mAeBjU{4qLVA zp%=gOrQg2v+tX81Yu0c0+~+Si<#n%nqPp(A_XDS&b>@d>W@Z2Y;Io%r`pqwY`O8a}E&I|%U;Mxa&;09O|2i@@-k+WM z=B3}d@PZ3>*=3irKJ?)=>()+AP5$xfYXRV`Z+Y`MXMgn5pZwG>fAwFBcH8~D^FFa* zc5c~{CAZ!BcXIf}FMjDazxeexF8#(8SN!G!XM6yv8dt&>K7ZlLmG>Tb)R7Ao^qOWC zz=gmS>ryrH+DT#8v_sn(Zje)NWLU*PmOwaXdb${xW$hSRXe*+g#3hJ;9Q#KU)cH(* zW_o1FvHPF2_f7|1edBL`cFm8kzxhvpzw<9w|K$pDK=HK%;2pQ>!9zHVJf8a}epAxS z%GXX9gN_U7hv~P-IdW^L{5DfNTO78)RZ=OfaI zGpvBsFCpJ?;3}wluxNVWwp%{>q@!MR$ZiMjzV%+q7j6as-nY≪*UbVJ_z|^URj5 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

0l>_okzdt>_;FYg> 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

jZl-39>LLU|oO^ivivYVwCL$bj^hF7*vZZ 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

aG7{sGlo zKS$Lssermu0~B9E!SOG{{0$iN44^cK)^EVPBbB(%+=O(ce-fim}y zfjT!q*e=&!fG-2OLriNhPEuiR{Io?mwuy+tp5D;4XFfAt z)}GPQ))b)OqU8bqNHN26HZ=kxv`}7Fty-mMh;S>H>ISsGh24-CNOa&JBFyKF9xG$* zx3fDutfL364*RUL)T+;Zu>qG(kQ0@3m9L97RIIpC7wr(P)46~~X)UDZ)=v@|L63Vz zS@31Jh6D1f=pMTd_c_WjESR^h#!6?|S3(A-EKO#xAzDwWLwahf{?wLXf_jHR20B-w z25#@3|8m(FmVl|LcNHATOyZIoWln2Aw4#dIdN?|7cq)8VnTUvHnXRuGdv*6tIJEvD zudl#XxA9mRj*Gq4M3g(LZOD@Ll6ltGD;J*%icTW4y(=&gGcQN?>KpHC5*eR{5?R~` zyGEis8vtqA%9rgMRQYgtnDd`Y&K3z*I|d3ERETIuh{7nzP$wCR?*k{s8LS(Q!C_cx z3dgZ>M)Xb)$Xtu~z5tXTdW@r$!y=LD%190gnK?__mCDcF`A@12Q04AnZ7W=2aeOTk z7+wnx)LUcMNt+l4$Y@UF66M$}KykS#8WChx*0|zwr@tb#9i5{T-p0dOL)Y%P?EV>M z)&YJL=SsX08W6F3LMYfKTeIUk)GkH;)x_J&0P8OcSCl>DLTfAJH^t))=yUcF2g`Ls zJl|akpV7Lw7f4~na0+eSrE4e#6_P$4x{#fK$g(oPtc3GgnW1bN!j1~VZS{r{t2RZN zbjqLxj7r0VxRiw%BID9WjMIUC>{LgOj-7dj<@0b(nc$V>)$Rpb2Y+i-t+K2;k6)MS zW9}eM3AM1pwW|rDFmyRbGWg?t&i3k!9@GfFJmU0{P~j*?pP@=UZHo67pOmQYD(Osa*aRkm@5AeqUvCt=2N z)LZg0c^8#i^;r0YB^UwQ8STmPl51l(Zl@X|T0Y8pQ$WxOu{vZDf5V$dY*(Vr)U<(R zH&#%G91Jbpi*VQrMo@T}&@eMiJmeb3R%n))=6MFy*Xaa16LFx1s8ljc!biv3Y1#_O ze!pj7X4yG8bk!*`=<=8iQ&;#nox2wv`wCH0Now=wN0`qe?O=Pc3gZF+!*@ zVue^FFy*2moVQ|(B(#3d30aiLCNg^8d*DhS{t+i3c&dI76!U_+wi*$GTE-9v4<7kn zlT)kjuxrFLZb3CSTFGj)Jb4)&R4 ze(oH285aqk8SgNo{d%-q6;w!r^1OS)K6VjERKe6BL0|2}woEV~1{qO`!L{=h9RETu ztSJVP75c3`nHMPFi8k9Kq76+<^E?l4ELL8GrfFgll6k+MMdn$Er%9%Xb)m3VJTaO%P=k1c$GRdJ)PzI28S7qG>a2Hk)Z;l9@zy`+2|LGf&Z{4Y49{Ek;Zto9#4h zHY9X%vYY3bnV6?Z7tT-j^E}T)yqTtHGm*$F^DII#6HUyv!sENSNdu!O2n94((1Gm9 z(W^k2+{KR5JH6m0qc8Fy${-IJo=@U@LESwwW6Y5&^A?9Q@~ z8L6`JD*;>z3D_W9JVQUsOM8=*qmy#qp7Sm?4xM(EWy@~GiDE3|J|C>Nn+rYOoz4zecgPy}Z{i3udGIWo06E0C$5mjeF+c%aR9{pDuEPGMjmrf?4p zK+N(8g%~dQ=RO~2&6+wv4b&2xBMg5b&Uu|DdM`jnlb{D|cMOh6Pih7+hhE6%qGxD# zP;OOu;_R@zI9Gj81{rXC65c#b{0?5ky}WOF#q9bBOYn&NLQfcCCBTD-qH~(5ANdFu zJ4ncLNZ?u=qCPtCu0D!cxZ|c%Gh)m zI3gzAY&X1_)Q4E)OGG?rFME-BH_!W-Nz-2lWbSHUtNi*Vt>~rvj*Acr35C%$tB&{% zo5Ju1N*wp6iDg5~6O$fu4e@};Mwq4@pPZb?tgt!x4}tNbf~38v&N4F*Ps|h1=J>*m z)2nZ~?{}Ya=hJUHzLkVXaTX(2)+xg4I z7o`jR{rVN`eozl8VJmfOUNJW(Hirb6qmGs>h64LZzzrA|P48zimcY322FPi6CgopB zd`qS>y?e5rYcst9i-LI$V1xIpPC-&5SkWLjq2+2^3ogJ&LGQjM;N_8;zyiBeJ)4(5 zm@n3#AdJswbdB)ZppYZ_+P0lFiZ4 zG;L;))6@N1-gW=4zvf-Ey5W3XXAb*u~aR3iu&hreW4sQ&`%&XI`s|Y2GYGFX;nzCi%v} ztM_mRpl{WYj@I1mNq9iy(6@TbA;WZtC})&xDjSIL$V@^oG79j@8U3Km>cC8L)!mA$ z2N#i*dP68$Q76l|Y~TZ&vI)9vM;TUG1*LO8>uxoO%44NA*O1p#Jt^SHMchy0@mF9j ze3d-t=h3G%fn(ie2`L}%(k*#~Hv=KhVI?HjfDVy6cgtB_0k+6RzZ!dDwx|dq3X7qV z4_u%GwZ+)M!XcXznPzxeQ+t*?gog^osCfwJT0Kb7`BulId>0>&2AB0Qg*YA(LkPe& zK@}p?5a062?&YyH>^1aAVV6GiwLY@|*Td3`a4IV>WHv8s2eE4^Mt%t*D=u1}{zY)u zNEO!!IDC!%J<|cY3A2(V@euj}GPk}h6S@SWmF54s^0{E4>85!N3kWDp;n*USMLEKO z;9D+eDk~C^6EFg?j85t^U#e)uHC#b@Anf=#}|$t zcjeZ{-+t#apYn|NeeyHzxb4p4<6|ZwnfE8V{k(*bj2R21VPLy*Nd7m>`s`0`AiW@< zcE>)lCSuLOfxI|i=Cr(wJ#CJTf8P=X_~`wf z^z^^@34iK&@Bf_ZH?H$6x_4WJ$Tn|h8ncRJ6qj4Pxp4fdH@*6A{);dB%{RUB+0Xij z@A!g$_3URnOGtj=*MH_SzUFV=`lQG4Jr92Kmw)45{^ZY){k)kr)0TPSrPb4$H=~ys zZ4zh+#alyRY?m7sOhn1_%+#T`; zj02Dz?K%6hJ;lqH+~axLN*4wurta*WrOnI6L2!{8I;5;za;!LBbyuC6GW>86X`Ta~ zTKCNcNKNSg#rji=mbDowH69M@Qq4lQ5@G;lIoO8rCFo!TDpb2CvrvGRTq0I6?S|25 z)2x>HZ2C5UFFWrcClXpKUmUWQJ@(ydWKs4;`RMomp!a*yr3)QVd|jdz5fM4MaOoZIe&FBz;II7Tuf5?N_g+6eJ=t!KA9u@@kNBXceBoz4|M?&G z6x#3h`#tf7S*B^4rj0eT-|vYhns>C>KJf6#7k~W^{m9R~;kG;P`u4B=)E9o#(}?)L z{EwIa%m3pS?zu*nFUX7k;ivzh=RAXG`jT(_Z$J2xub+7Hu^;}VZ}`$b_JL2o{o!jj zw>*wh8E{>GL`%>P7MG%+i0pcL&n?wGk)u7Xfu_iVn3<+Yrs;@zLlet>w?93dZAmee zhhbyrMS{katdu5O)H}w<)ur-)*X6V1#|N*@_u!I~jx@&tUdjtp@2?{(eSUUz=`|M9L}Uvnuur(WBz4&I z>pCuYDmQr>{k(R*d`4(CLxm)4C>&#%;5AT57Ls6URCuwSm>fnKxueCI#2ZUg5P*V# z2kaoXX%vaYPB`EIQeem$!&x%IRGsq=A+-zf{wpD7gP^NMxWmvGhkz0V<|w6fBcrg^ zovG1UdC_9f*j5^V4Ju*1#48MUwQQ4ZP&q3bdKWcENj)`04lCp>k`*B%SjYk#ORz|| z{H7%eePUL+3?Mn)>mzj%4nTk{sz5XgiOk!hd+O-S2Zu)5-4S zbhn>)!z284Du$2pRnlx}u;9LMZh??4SV&ZQA=LA_`<+xi@uh}k%O@{^=sO>}?^j;+ z(mSuc&y8zW_oq7&CYogy5}Nn({_55L@IU_J7yqR%__{y;W!J7}X`XIPK)NK|n8UvLOi{tD=G`yWV0HRn0~@3~~d-bNUc(DSTk^ zDWiu9_D%*a=n%n?Mk`aFMT)a_!SmqTvI4d%KSYaK+XeR@&%X8Y@#${AJKas2%`}nvg`lb)gct`+=E7j#IWYrbv>Kc! z3UE!rBK!UB(v@5P&tLhy&-=RXf5+P&ymH5t?eS*ji#O%sBM%+D`Dfq!!$1A1zyCM> z*x&st&%1bhyx;9N+wIBe{GRtbbh6vM>)r?6|7mwV>8{&%^M1eIU)Uah`w#!xfB)IH zU3~KUz2(hs`=0;tTOa=ZcR%TIm+pB)-ufPX_{NqlUAu9*Ul@A(Lv+t07wN|7+urra z_0v;Y-kqIf9I&)SVUY#^Wgoc<3O_Va z1lAor1xJ~vb&~NZ_9&sSL2IH!+}KFFRgr5xfQiboB?=s5n+*G*f346nL zF^@>OqsVonFPJ8bc_;ixyrf5VPq2E)=oQZv??k5=J$lrP192=AEdDlS3KkWJnScH6 zI=oaYOj&9sY96F$outC6Niq=>h=pqb(gd)LvG|lO@)XNAt}-H%duk@c9VEU4y}^CD z7Y#uLsep$swVolL-d?K@kOXw(&XaG#vi@Np+`ZS(8iT#$j9d7UI;SQ>ZZf^~$f_Dw zo4RhJTSxMM-biHj(5Y&Ot4a$I#>1EoY9y6+L_yYy0E6C+St07<=!w;3#NpH)Qv0~b zVi`K%6(nRSO@`)>?M`AoI?H#cSIRFun3f#Id@wX^aYR;Nt@=T!=5SYO(04)!bDHpW zN}@BKW8+aID1|f0qCftiBb0GUIq?BPDj_`(2i3V2Yg0@H5{njS^u=Kzns>YHh2sm` zTdvaepM3dCzWb+s=q11P(t97gXXcqM9`VH^deSWu-^w(=bYvU`u!_v{&6E9azvFjb z{l-^(@6Z32g3+84d|{`Vdo9W5Zq?)sSQs5ecWEy?fgX7l(fcgrlN@4kP#m#5wJ6e40_;h8Rp z@J==?laS2BbSnEV|JJX5@lSrA9B*!yTVMX2FS+ZMJ5FcWFcZ;~vvSG`xw(fC1Q(BboZ?h4mkmQsxln|k>JkeJw~TG(-pR?i5$46b^&Hk@aGVg3n%p(zJ{@4 zP@7C=R7m1j62pSjDQALx8;uvhhI3$n_pwUYUlILZYSxSe{3|{kyyxvpH7GrJIS}Gt zHLjIHj>$bnIIjnMMq#sh0M3)E#l536IF+y0ip8v6sP6jLd{u4C4j{l6ht&(RgH@uB zw{&5w(X_<-Be3;Cj# zf3OS&wivY|IBO#E8JfmaaHx=YC^;VKVh-z{WrNAInYP>G-+T81|Lny-`~5%tn$w5( zyDPWI?T@27c$%5!)4l9iCK6r_Nz?9^em2At@kGZHU%1HA=5#NwcqD#T-PU310%8 z(~gAp`~AgRF2DMX@BY$n_@Q5T#d~f(y#LHk`_S+DhR-~?c_Oqd_^LtZ@=LX+I?SRy*gCOiqTQi73gn;aC&*}8HTp5BLG38(!dHsiWFC5hSCk;%Bm08Kn&+*Ggb zLTGwPb=O+`k;0S{pF}!dICVH<_kf|W?8LHGhdhpGMYd=0TG9kH3d;!3mJ zob_PO<2V+PKxgIGrE)K||KjWd60kmi1GNaX)v*aHi~Wb*5F##4x13d^-FL#IoqrOe zGjD)}e8-#>1%Mc#uzj9muh99DC>c`~JR1(2vdZZUn9^ui_A)c`mCLu@clz*u_=z9* zcR%vt*T4SN^M%cP+hu<89n-Yoz0h7{KNIa`oO!myV9O8X4a{QRZZ2)*mMi_EYY7>dDE;e!t&rrln>fPY71@$1Ns>7}C{fNi~Ao z9ti3JBdpWTz?ThgB1AJ0&HI^la(eUh#v?aA`h!3Ee|i3=U4Qu6^_w@|dGEVk@`_)2 z<2&DY%j52RHcJ%=hKr@KHl7W^2p62 zy708yPwuCOZ=T$J%Ovv&ZI7nq4c9JTvY!`_T@Jmb-G27ShG}Ab^IX{W7sxF8-Ci@3 zM8rH1Pi%@l&#I^sFT*$b+Rw}V?RK+7bW1S4o99KY(=_=ahfx`pa7pbBaKY}DytuiK z@s9-XcdyYNJsWX|)k9`%Ju^=?lF@)f$^UV1oFUfZ(7qp+%evQO&1mybBlz|;(&G@^ zN~Vq52q`@cUCEf1H7Q9l6mHC|28c_AJPO{MZRgJDiqxbzmAhQ_@HqmA@6})Y{b8qA z==BcL%TxlHGK4aiqY_z)G6&4gsdRb9;$XaYEbCpNraFmMB<-OH?Z-txz=tK?E3R&g zdYYFOk}8qVZw-B!bb}aIk-**#Dk9cZ5v{8(dWCYNw)|jHdYl8?FzBgKz%ViSa8My2 zQdZ;k*l@|Yjam##hQ14Cp|MLHjJ26?o5%43?9ayPO=Hi>O`dkgZwU3OlG?hJTzU|j z4~x*nOINPmIQiP|ddYWu|F2zr_;i2kZPVRH$_)t-O&bxRnU|SQcI%$_9S`mP!MDBSML+(EZ~5F8yx@5saI!l+Io)k|(!*u>tVj|v?re4bIJYDZhYH+{<%+i{`yGOgZP zSZJ0dG!_70APe0Xo3QP?uQ(L11di( zqYT91hU0_66uFsST03A`rh8VtTaC!-5VwO3*2GJj2(bzQOc6)Tp;FgL#@3+4oHEO) zAJl(~v=Qp7g?4D%q976KRE!z87Dr3*f66Kb`DVieHInY68IzY#s>&)6*rvVaEU0YA zEI1bj+W=Y6k&|RIGVF21pgDXBWyEl36o~o&YPN;e+3WgP3_Z|cVqN@m=U|NuACGS* za{&@pq!Pxo?ia{c;;J?WXB z`@+BSz}1JQ4PQRG_^LO)`fvQ}FMIi$UPX6Ye&+*kf9dc3+6$lci4Q*Xz?CakrfJK> z!n8X*m02d9NMyU+Y`4eO>%7~^e*XbaedZ5--G4ZpcNezDM6$biLfb9PGwo@XnWp)K zWEPoefAQ$zYhPMI z;=NUB*B=3)BKSt^h&-zAd~{hkGQ|sVQ9~gEwELt2r*P~2wn9436-AviA+_rJ1$@M` zo;{;8R_V3RLrT|*y%g$LjyiYn@mj&w>JASp5D!w8fKQ0v_m{+Tam!3^miK7F55NFa9H!FKkb4UbFQ5vQ8+P{Ds(Wgb#5;FCJZBE_oQyiddOw z)%bc+%;c4dB11e^_^e!sn2}s9n5q(%f~&bl@dDT-GN>OzQvGa@fssE@eWIu5~1 zOVcypjJ_Y(#Rl3#xytxj$I*tZ7@g&HY7upVqo z^gRL3NyTU!M&H~NGIyrP7Kli7t#?|{T!=ihqCkS)NP;i}-^u9c04_q#h(iHuKX9tA zXOXLA9GN_qv>-Q>ij>5p>hH^Z*IH0~`3<(cm~?HXxz#Bw5YYn>nB&bI`>0`v+g0!nN{GQ5INoDEV{KAHD> zp<8cx+^@Xu*ZY2}Z%H2;AncwubH~qwKzl<*P>GelG;X^+5Sx+gBsJ@e`QL!R+LpYr?{KI6`(pWM8y|7mhEy>P@eC$3ypAz4q`YeE7%Ree2!3-RZPBx_0B?pMKR#ukNpH zcKit+_Hj?R?atlq)CZc!seB2peYAWcCpyXi!EwmZ>$Cx`1*RD0dP#93so^S7a|TEM zwY?%i-FseMu#Jjp9Pg_*qZwhHIt8l0-VZIhqCZ}XM9;h(oCOoeoZJx4y4qea0Q!Ah zmO4yZgp@WVy`Mi&DpnhR)ag7_LXi3rteB`CMY9LO%GjNE);6QR2TygYDNq9m9q*U5 z|MQR?H#bYTUrAaCWn5fvE1SQ^n@cRf;Ylco`)l2@>V(tJ-*q$#e%2cZanz{1e1MH~ zvC7#OD_8Klkp9eD%PFG(L**u<0DLC}LSi45+jCpoOkLzxb(!t9=CEWW7udrhA({8P z{lyE%yJ`E+zUw9b&wuw5Cv=e>e>=}CGS4&#v&=F!^=&qrPp0~aC;obh^6QBEjPr2*1ANl#;e);R(apUI6g=zDr zKIu6h@qtg7=e>w*mMw40$43|6`@psT{xiS%>NmXg`pM~?x8L$dpZ6gj_uKgt^ZJ#G>2}U z3Vl4XX4FF`L}Aio*bxWn@Lnfc<{(S}_RZ9WB0f1il}trZjW%@&3LYmO6WWh^;%#wu zWg*nm#!{i+E}DJvZED02Cf<(BO8d3Q+9p~xI?{Tqfocx@YQWHZJ{&M-CGmf>d-Wmb z35^Pcsk2Nn3@&8$VNPvm5mRF|NI)VezPnv$AR?kEKWH23v*ft3Co*EW+MrQuz!oZ! z^=4+!)J8FwYeY~wFx+iSmukh|(ix8sV-qjo)jXCqhmCaBt+9w$BdqI!gKW|~ESo8dkj%o{ z<6ACV__`nXwr_dSH{HiqkDl_x?PepVa!NFB!lAs#kDt`%1y}=XrfD30M$4l0Qk^F` zzBIqj<(I$rO`rA^pY?fv?yvphzx1V7F5dFU^+z_-mW<`a#uX5ZTon*%&$+JFFT3dj z#xI)(2PGo36A==Y{X`q03;C zkG%Nb|JaLi z7ip%`Y5Lahd(m|7wYzV*>jfY4NA9|C>#`GVyv@VRLYwXOp&M5}>mPp3$@b=UbNtHd zZ+-QvUh$JZ`V;e=7j{=~%FWY%|2_Zv7k$p({_4N*rSpz?FCub$@zU$w{iZMa=C6F& zD_*)g7CxS2Cv^SvAHC?G|LGTe>Oc9cufB48@xsN+|NJ|@`4?aFvi*aPJn{XX@w4CZ z!%w>X3ACkIPX7AWe$ne5dDG2z-TO6P@(;f3Groj&`|bAVdtdfHzxr#w^6I6lH*cK& z)VKcV6K}tpXUlzPBowTB8G`Um0qT3dI2^I~K+<7dKLP;tK}LI>* zT?(u$JFjNt&eXSq`gGuxoYhz_#mROPjx9?i%WmR>^nkk7QU>L))TNX>8dUbp62lG3 z>U7KBkUY`Y7|S`h2t^Kso#h#~y&f8lzF{SUQml-QEh@%gB5f*f8D>`` z9px@oq;Z(VQVuu2SailgL@~}4jac-_#I&4`K_c_K+siFiuH5s;>F0mL5B&EZc$qxo zsndmN-jOWl^U%aZ%+qvq%-cy$cBk)sV7~qk(f;Vp+wOea#iQ-f#9P|%wMR~F&hqfX zkI;MWqwR(5ZC5rIFHJ|={a$2VRy6iRGt+LvvVZ&?uYCQzpZwRq;~T%~&wl0~eb&Pd zUu7QW6S&+Jj=I;$<6lzUCU9&?0EVK(#I#|acc)jbT)zG8EAxFfkFVVN8?Si#H~r^d z{j&e%qpw`LG!co&``mTwXZ?wf6yBVk+`Mq%;`jZ`Z~T*g{i8SUeB%D-;(T)b=&sv- zNWrH8-DnncVC-sySTr3 zlXvp3U-Szv{P+*~x-b0HXTASj6Z6mf<{Q8AU%cefeEH^s@A=ZN{_6Hd<812E4GFVB>@IrMMNX0jt275%!gk`zXkbqw><9Anirof}OLn90 zR+JVh+Cl=#6_a)B(&pZWvTuf=Cr<%PbR6 zm%x1GbJKOfcBB`=n7%sekhKi`U%6IWOoA!Vn*;iR`ANm?Hl>(H5POJ5y%>ZluG)^? z#Hzdo2xow2=qMIUqhB$7TSUYot_|H=-19&}bgn{Tm^zC06-6>h`v;q7YDG6 z!j5_3nfABdBFDRL`mS$#&1+uy&0qQrAMnIyKJ>`L(=;u{JS_;R2hb5L+6#1o!cf^1 z*PfF&eqWM@9{x_2lcPzN^J(TuW+Hy)L-)S?ZLhxX-g_Q7xq9{5)t~u|U;2q(|5>_l zG{619Px=#o{F!$@eZSis9UaX_bmK^-+pj!w^~O$SW}c=k5glJRzVVdH^X-@R?|9@o zoe&Yp%*S-{)Qj}g%hP+W%4RFFr{(Ned^!+%(q;9`{k$JwZC?9`pCoc$?n2! zcig{~7yZDC-ty4fUi3xZc4fNl6JGejpZe`z+`a#mH{JWzcR%=^Cq3>7N7IFuz4;Yy zc;JoKo_g!)$<_b)%Afz6pYmC^U$|9>Uh%qD-v1Q7enQWC&L4Wl6W?di2n}r|{O(!+V&qB0g{F3r^pMN_oR$<~65`3hXEBXjNZbbC){IPGaIPxg7R~W8X!Z&Pg28 z=In*|tuDq6R(!$YknoqswmZ)(RFA#zu%)Pd;2ur3g-`euSI4%7z0`!Qu!d-2`83PC z7rN!PTi*EYtN-g)|G=;O+^gt)pE@zmdztuzWM1O(>F9Wxc=zCYclW>d;+?lY|6@P+ zc^~xTXFvVUkN=2g+S?|$GXUi$i9dc!+k{)TtH>Gf~j&wO<2$ z_NO}%VcGK}Eb~0?H@9DS=T-SzU-@14{=LumoIm~CYgeysmbYG2Mlz1~b#8{T#TcuK z7h^*~UGv76c$#I$%zyF^f6(h*^@}$y-?F`O>o@*yFZu4D`1Mcu!yokVAO5}oa6pg0 zANOJJ^W-}(U))TOT)TPo+Ra<9Tzc@@&3o>~}1(+tc=Fq$LU8t)OXQW+s^?T7J%Hnl=+p6VH0)BQp_gw%Z$g>Be18 zxpeofFZ$2FvAc2Yp@*5a(=;6)J^e%Peb?K*>YIM_=})@tkAL(tZ=CKf9Ur~uM}G4Q zzvBB&cbDnTC+<(K$%bja-_R{T_(QL}|2+?V)7O3GhkxMXKl9U{|4T1>+YkPaH`85D z`R?!gr9b=;Pyf`9d)5#A*w6gzufLU^@j;iSYoGJEpYrUd-}x19c;o5*5ARLH1N>Pdh6tN*l5fDXG zP!tOwMNv?C3n2j$NFhDLOPg%2OmCvjx zn+VXaslxT-l>TW(Z6G*0<8Vli0He~5B`-o{u8IotrgWOn1#<+QP<3=I z0paB?CZ89PwPd5PNmYx|BBm@SPB@UCKFM+``X+sv4xdC5DbXKF{&VaoFd(spt~Ues zCwOsT>ipMOd-#hW*INVlz#Mwj>aKDCnK`O1=G_LYobohXao%&}Pl6PQd_HWN;o|)I zTld`l+_${s>btJ*ZQZKt+E~-75Xlz|iJ`p&L@-?}M9fDFqZ=Q)BOrIgi$y~KsDR9= z+dli|5In4`@m1#_|=eizRaZ610t}>$)`!kXb!CoY4zE_qby=2<~>Ju&7QgqS4Nkdap7|w^-~)0&p-RO zckSJw?|*+KtfU;nSA@e&Sa z2J08Ue&hG=-nZl8GtNUW-@ok^GpFI;+LJGS+@^IKscoIDXIR0QLVhWlo`PM2?hBP< z2|v>OUaFo^J43yxCUmrw;ug5BfpcOi@@C+$pKXx>0zArzDrz8>$I zJ17yCvZfm@ENok0K`DjRDEX9jx-|G=PX;^TFmG}^YT{;QF!*tAl(W8=cI9C0I4aC7 zaw#u&Xu1f3LffTv@P-_cPRtV|Wf%BTBs}*T`Q6gjZuI~KqNmm-D37l+Ip$SdgPAOv zb9W@BhX`x(eD1so9r-;4L#u8l=9 zXe=TD8B`j2{r13t@zTLl&O77fFMh^PJnWq9Th`ZF_bR0jjA@Mp|JHy?S6Xen-_~|#Nc1*}MtIQ`d0UNM)G6@70wPvz)BfhqKK%1n@3`ih_s(tK zqUKMych8}}{m3^zWWG7GVbhtXZF=U9J@9!?x?tV>%(!VEcgdMYU-qQ$-g)%v*X?TS z-uTd=M_zWu6E8V+_nxyKeer3PMzBUJ1Vm6^164qTKo+c62CYydX(WrNeHSAtRAKLi zLIi{gu(sNJdcpnAJmK@-x$C-{4=!#!anC(FKljC(9&_QT{kp#T zrk(G3?`Kzs6|A2~&E0&9epDKzGXzB~?yxOz|tXBS2?lB!E-gNJy05 zE=p3gOT>s>A{@-R1|V%_WcQD76=i1XB?0q~b_J|k>SSN^_AzMQv$KGU<%EXHe$$I5}ruLRGch|jXP|*#*h|bQ7S@0D?*IFhH@@tq<(>6OC!#@X zEGeXlO}q_d#)`Sj+=7vC41rmZGGetR0BZrjTENEkw{E#>-=3d(-7mcRwSW48$3FY; z(qU}~l`>?Na?v>{&fK1^=YymR6V;$3Y?xU_;jLv>WJUoZs0v4BZTavrAVLK=+w0FS z%&(inmJZt0gTsR-Et~)f2*3~`5m^JuFTt`z8UP5%A^{lyLjVAlEC7PB&=L|TZWJm7 zS^**;Ql)!U?@14T{1f$)j(l`{!_D8TW@q})f7LTyc3N){z#^*F8swAOz`p^NtTJtD zOlt^jYwUbI|98Lk&PQKxd4>At9`)3x|KTs)b6}^Qo4MhxTb9;Vwym50*Q-DC?VG5u7yZ+(zwd;FEdcP?2R-5mzw?}ZdbxkX`oI3dzdYy4XFvF)^G`nQ)Wds! zNb|k_xb7=IaoJPmX6FCy%=htq$`utPQz4PeZx9+{GB}?_(!yfpM zzN*@G1WJszIcAK6>5N4@2)y93(uF7p0X`%ORGdC7;L*u*8o?1A`@*Pe$-EGk({*)8 zH5oRL1cz@DC52?(P>MZ(Nkk_637U(^2Vq=0G-d5$s8Ir8ym}-WNJ)Q~Yf5X8CNU)@ z3|*(k!iu+1e)Pp=Ac=|x7*Fo!3G?u!%9DoYJnz`;3HT-x*9nAWIN!l$3Nx13Y!yTe z!A#(t2zgH?-ALm2!$O7#bfTqAF(_~tFLCNZx}!{IH2PbG?S7ut;+P_&@>-CNE=hjK zLqcg$6ER{;(Xk}i5{yZiMbQ$AberFe&!&D#e8l)PkMtKsOQh#J6yih}hqz1@V=>w7 z!bisVLKapaqS(e#w3)4X)PD5wI3M6M7UpK>?%I3w`M>>7H(ax$KJ#Q~8i1C~iB)xv zhU3xB+fF*?)ZcsUQ=a^Yb2lu^&eX~_hQLtUHh|W>ot2GN3)WhyHO|&*wm-PyqWeAg zyi;HKtjpi~Z{L3Rzh0wStha5mZ3AQottG3h?G4l_uK)da{?}Zue(^INGF)EPmFCkq z+`q1Ym!pn|g~O~$3W+emvKY-hs>)i^@6{iF^H06tk3RK_kO6DKv;bmO8kIi^ONG8w?$xXqbjdApXCtjp0Vq{zK!jQkk1n0GZT?-q{nW=_ zdS+eer$6C>m%aH@*WP#l^x*cLhxZ;HZr`%-iT}Rldv~ltJ$v@{!Mk2}sZ2|?N*}Igh3C5~xU3~707o|zv2``S2<&bcUk@#%bP9!Z!>_IWBL4}}R zPyp(>=P;I(eJbq)51~VElv*))ERYh@1zY@75D$19nL^`$d`VZH;_?y3Y)A;V{gw24;AX)8R-GH7^ z$N_!7`i%(Od(ga)5rY4bG>4>?hzJZoOVAP;0%OS-OJt3O*6N|v%WZ#Qahcke|LJS~ z?n@tCzp%aqB1>%UGvSL`BY#}`FkGR%j$Vi@AkORHCIUA=ULK?(f{UM#HD+dJ=KKpT zy7-cZUG$L4A9(f!eX3V>?H{gdMO=Rj-WI`q{7k;F{5Rc>T_s@7-|^ z>Yh1x)UFKm`k9Y>TVQ|VSa zSFnbn=O^_k=89-n6I2{X>e z4kHFl;6lB6aWjb($^A&4u}UB^D}d7r=jMgh6&hncDQ%)IVfZ@jlN}oSH*m%`+=Fs9 zP5vjgw8O5><>LWe5ek4c+{ek6PtSY}v_%O^i_NYnop#Iwf`6g0F{Bqs3UHhqqv#UR zLE*EP&me=$4gZsXq|gkux{kmC@sIM-l*ArGkVM1xz%b4KMn$fq9CN ze7hJm=5U^v9Oy!vL~T=I*q(VIVOa=h0Th8UgtN1QeJjIP{n=-}`Sp8d&Nx}OttLVX z0Gd!^RgL!VH!J&p>sO!lt@r=R&pq+MC#;*Hwp|&HhplZ483I74wCdN@Ouw4#*RzAV z->WOFEn;h7+}O2I1D4J_X~Q4B_{YBb7tg=sL0d+*-BPt1K_1pS$v#oVAXiBI(LkT$o%l-ysV@N18(_Pm82KN~VNNe4Wn-ezA{qvij@rk!T z>-o>PX#1(_M&s4h1AA&a?k~)a=QmyV?Yn>JcmDo|_v|0k)m*=#W=wAJTV-a@_LR}8 zrFKL>)>r}uPQnH%06#p0C05JTC%$i9sTBacM}X?Fmv+u%?pb&H{5*pH@|oL&RqxVUawl{soCm> z_Z`0Rw!KR0QPaHer!If;m1mgIiW#imd&pQoRad`!)x)oP!Uf~eP^0bDI9s7Lt%FJZ zzN)pVl+}vdp?PedJlQODnW9H2l`592NhqP9s!r$Hh) z=*vu5a6Q8Df&W~_CnV7_OEQ(%6tnOpAydIG3r`V<%u7pf!f|=P4t^l9Ly((Jf+5gt zi}WMY0#{|Ah|+RSr&Z{SC{O}{fD(v{ri9fwC6qKjbhEHN-mxcy1aZxnESW8Cc9I1( zVV}e1ZeoB(7z$PgfhP;nk`3fCCtGTMyaZ}y=oqo%aTSuF2ex^EyG02RM0y@f72SyG zQ*k8LQOI_&6lz6(J1+s_WB)W0w7hQK!q(CKID0Lyf#~EQ6A|n|0mx$D%w!!w$VH8$ z5GK}`;+<6WWFe4R9gp=gYnl=-@5@e%$y~}f4$6UI*LVVOcsh=(xJ?1~$nw1a5T;qg zpa!y^f{sW&hu*^2ti*cE9+YCvScpK;{J^S*Qoh>C!KTIy|D zzjE-zxPgd-o^)?q9z3nQFt#SMR#|5C8prfBfv% z8EeQI2M;azmq=J^007z+8Vg$alj{I1SxXjx05vMDPy>L{3M+(xQnf~{Kq+_LoF&lM z1FJ~^fNsVkW2rT5g;iiDT8q|o8WNGQ*0>6+Jz?Ee05W83g~r~yHd(i#P2LMoj6#~FRA9%@M{(EKX3KZ^IIz#|JbJ>$V`kx;?+#Bt`Z`at2 zzi`Vp*6eB@dXKx}(Kp`y!(C?WJ3qK#X?5wAyKfu!5qB>={qiSnUfkF;4FOp?#@mM^ zQ1IR1J0-Y=r~tCxCKf0@b6<;+C#38?%Jn~hOOSs{a0TO0R)vR?i3pMz?D)hhF$%|X zQL(P9F_~$P`X_TmvlF>W-rlgDc~*7UPN@=8T9hO=kc3lvK5B92QRhzVu|Rv4;~1VO zr|lR7bc&@kV07#Y{ctnHH2fXLRqj{jWg(p&2S#d=f`r~~|5AS6XHNgRFANlu-XRF} z#84d?j)jJ#fcy6F@uw99guG`;BmlaLC$1 z6~g;+74F#9REsB+npM|Tr4-zCR4?yLmyi;jApqrib5e6CbPI)7ucmxQus|@=Q$wrX z{n2Ya^~oD%&N>6A1wsO45lLx{Fxs>8v@bq?|*#d)_?!Tt#{qItDfJ`KV|z3H{9{RSKsoyr#u)CTBFEV zLISKTDQmzOvX&GgSt3xV6ltxMV+J59R2onNDhO7AXIbN6#G*Oqwz4u;0Rb#-UOzum zYumPfpb#ppfDp(w#wrDS4=o=!JOoA6x|wUPx#y>^`y10X)S3#+s2=p^7EKL@*N)!3 z_b>vit&LCFGXIOuy!6_e_Z?VWSy)^+ymR*>Eh8&M8?51J=*6m#BC#RL@s-Jepm66`a-FIL@3ib+) zP(GX5;^ITsD?|`p?pKsO=?6>l<%!2|u3u@y9Ba(D!R{^35v6@v8;;#66EDg{azd)Y ze%NyAj>i%Q=q8;P+nYH22yGF%5{@G0BovRSAJ46>zdKz{f)|!1g-aF6POgCo+$!NW zM?%5%r;!c}<>!hHVaV2Pa{_=f^C$$;t5O(HOcvMUf>XyAt4(@PgbTxmZYe?$O6D@F-D z-Xtf5l-RMYulxm0gI4 zr~nbQhN@Bu5ooUNZCTv7er|ETKQpU(SDbapOMc?#=jZ17bAz$6|MQK{H_#wrLxzBi zZChg+(*TF`t+9=1tTm*(WwB(9wct*EaWmKM#5tv)r?FPLQZ8DjwMGQ30IUTCqzH*L zfZOS7$y#fyTa0E6SWDKDdmWk!iUKNyK!6&xMnte+pi*9N00CfWv_=&WnL$0!x&{Dr z$J_xd_U9F9(-MF}g4VPTJ@e8tPQD+E5k~EI_ucZj?|;3i>;S4i`q|e${Qeg~gZ9YE z&Xv9Q9^Gr3hWdlc&$*~yS7Xz-(`_tRas%DF_q7Zs}E)H=nW)Mvs4rg?oZUc0X6@bS$0kAyH#&qZEEl&-X;|zN8JES&Nd! zWDZH{gx5bmC(Vmwd0~a0f=G~%qozv-g_o;#8y5Q#;&QWT*VN|l#6WnVq7(TF2|#_?=m0*nZQ@)M*o9Fqx+^$&O@Pt?B&j4CoDmQOK5Br|-<^12^lrI<=& zycwG+IpN#s?^8j}yYc;EM4z&d+=MHrAuozc^*pnrQRS01%IQ(;81MIf!HLQ+81Hsj^xE%WMi&wb3_ zzx8KF%N28`+>8b%zxclAKldjugyB)D0P5Lq-LPwU z*q}nKG?JSRH13!Sg~}aQs}MkuLIjPV5tRbBXB9E5&i4optpy8U5v=TOCm<2G0s$ES z0!<1*0T6<c`R=>c z?!0Y$@14Wd6##Is<)U-9Kk)Re?cr6>6VV=LIOs&C5=S6n5E;${L2q0b6PPN9l$aLNAIMf>Qk?jV7%YPs zY>7dBj>JZWOTi21OGpV&mu}HVd0ui$LVP|3R}^GPay|N;shSk|d<;w&Gl-rd0FD?Y z=zVhT4kqDufQp%?WdDq_HH^q*DPArDBo34HY#xO`&9bK@q-#ZV<=m%vUCBEkewAVTZ7Rs2qJa&`KVrYM+F zm7@;NB{xFX=f>IT1>a0TY`_eK(S7ks9JX{NvOnXfO}LdH25c6CSEaPCeMM=chw-Ub z;0g*?hS&hSJMdkOfiK7@l4ImV);JVnzYLCKu$BO5rr&$!@BR8UdvB?>Y_-OcC99)( z2pLI!#&nxIk#jQ`ppI+CB|N3{F zz3q&p)uVmgCjdm0%dB$EbzGP9O}D&dGsw+F1W*X*-bV&?rR%Cvx@~Q1&3HUE)*wP_ z%$CK?bG`Ya!+p@NN7O7gYZdBR@%$}-A!ypsaJ1U1YNd2LZuCq=eiK8mR*0w&lu{Z1 z6e_J0R9b0;+K0xRbZVu^S|Tvkj>pDW+m741R|ES$AOf;TfT)0o$bxY@fZXBD9MnPp za?1fVv|gq*uiNm$LxeNEwc&Wpw3cksG}aiX)RDDiGqOm4pf=1cDuo*L!_Iri4LfeM z8|L5e*MD@_F2QW?^;qOKeSAOjjo$6_8@l$G$icA?oSmol=_cRg)10@4!!uC3Zf0-9umQ zq^Hl;c@ ziQpDHVftVKfyXaYqORk~L&=|Mlwj76@=@Se#75%vm~wO%qHk%12G zq3QKEZLlk=SShqtRW%ti-n;h+k3Ih*Z+zCK`QFOf5Kw9D0=1+Vzq$?_%nSf%_rWDH z)EiXm7v?mn#ux$!u|P(rXc3ymC^h<-CtNf;H}lNbet58=?7}QG2DP8^9c)>D-8DaW z%RgWDrsq6lI2FCm}yOys1;jVxC@~v-w)zj{` zbub!^6#$vFZ5uZ{<#FeK>~l9Pw+(>We{|GX0#I5jtN;uFLTka0ZA@#4Pys3*r2_zP ztK?kA`KcDCAPNA$5?BjvQV%@C&|23F3uvu7$kvi=fQ*}|Ap&cOELl`!8P6LUw=~zU z=6V`PH%C?<`G|8~@-vr#9UWdBEext!;Y{7P*0$r(gU>m+X`9)ZKB4}n|Gf68x zle2n6aX;#n+O*_JdQxnu>}VB;$zta&2o|LrhtJAs$Uci9HD#* zjW@c^;=|;IQRhSFOLmu;-bo|mBrQy~Zqk@2nj7qBQC3v3+>jySM^S8t)Y40$AZJ3- zpt8nK%3Gv9f1LDjR)H+7P^}Eva&}C6GmL?b-#T*y$W4N0J}3$%dC(S2wd*xxIgXaR z12$u)pfvTeFT8-{ZZZ47B^4LVb=$@4k`p!=t&@f`ly(Ij+m9rd0N0hEGu#d)fK{15 z@f-_9|67m(0ssi7=er~!{OD~4fCWI?HjC>v{Kkj>$w4!9hnJ61Zd5Y}?M9aq?HM``TZ8?63d$WpA1t%#E9IRaGeD z7rbF0;=EyJYj7`}9W}_nIQ&Nu$`M1mI1!-%KvflJtZQw1y6V@J(pxrcs+5nb-oE3G zefxIKp0Ey=jw*}Rw~xSDO|-T;+_SR(0b9?o1Jb&8*MXfdUa9mf*`|dS04$Mpdvw4m zAgvu%!AdJY!itcr0^@m!pp^D+Nobm?U-hc0np|kzWv1!Hfp4+x_|nX zlO3U`!+gWew*~3R4eA&gisvmsLLk3kfTtD-T?|%n2^k`-IQI|e> z+v29SHEzBsI4{<~7@k9^B2uWttV4oll2}2I%=kRJ3J9opWx!TCJ5l#Uzw-YK0z%8e z6ofEDlOhh2DwVb=Xk@bgER8I<*)Rwdd-?HSv0Fo)H?0-phJY9ilvMdnl`yVg*Ge&+ z=+TZ58R>LfDlS}_tb(0b$XAr20ykWiI4v_7W=$A}1hf(z9Q%PJV-Sv#?-5htlR(G> zo+YIPJ4xNASvX2^sUUKaCmkr$Z9r1#lystkVpJ|ebx6{CE|ou;8~I@is#SYvxty)-oM`N-FP_>EgM!fHP0}n>YQ;>}=gM#)&YwqfVW- zL`6Wxl3iQ*$%jAiU*Gz?XaD+#2UTST18prRM5TZ#z4^rV{pDw${m|3yf67Lr22c^X zLl`M*rm!NROX9;Uo|!Qo09w-w1~VV~@^}B_Pd{}SXZP&bf9V5H{oP-Bc(2v~WLgCP zdk?KNt;VWV)YNLMokeuZ?Ja_VnVEXfpXpV-)!`~C)JiF>Ri$Dtf}0Yws1U3T7?a4L zwM5pEvDN}uYsu|01_T0StOX!TWT^#efm&mYG1j!!5|VNU=prBinc=9t|4AE9K6(9h zH?Pnb+Hrf~*(aR4eZ#&ZE9>U^y{fwR;EEx8>ZS#Nb~HAFe*XiX{_Y=t;OkV+4wsLP z_btzE*s^?R`NRM6^@m+>%Ef1FYRssw0K+-W4S@oMSgE?|Vbe4al&52-So$e3w53jp zcoky8;N~bi5wjX;Nt5hw$!t^dCrcF$U`aDzcCS#b)Z&uXCoDt9B5hs zir>;#rXnW@O4$@7f+HsZv_5 zcWPI25h*z&dVr)9U`Hf^sJrm#G^83v*kq@qiM<%3CUGsZY?WkUpupY9j2t9V6s$_e zE`sRm$OB(h1p0v#A>^_)36_dY6kiG{C>YzaVS}(tNKUMVxKgP^UqTnqhE`0p*6Ecc zOU;x_mqEk49ffxY$S$V1FhEw;$%CB$2yp*K>jwodA|<(?XHzcGlC)1qo*YJj4klCh zRyipiMk}G@#1+Se9uI9vzAR5#V76i|s$E(wpi+ukm7+fi5`~>iAYOXHOd$Yen$hh1 z!so94+J`^(*D%wsRo^x(DI&2*JrFDSkWRHQ0X*8_+m7eR9qHnX765_#{x|oUG*OIF zfEEZzxfNf^5~-f9Puupv&;Rpf7d`anANlmwH12p}H;ahDl3=l?j_-<#CMESjTKx&h z0HC!3R2s40uWsCX>)-$1XK8Ki$m;Upm7}-qxZ^87xLR!(*h#Z4o`MY0#_h&xTUzj&*!^&7{4GD3XpvF~)@QZo<8ZBt)JS5In?gPj7pRo8ziI^KISx@(Sw&>c;ZKX`x%=T2g9{BT~!3=_F5`t7J*WLTGOb3Pk;HwFMREu z^=F^iT00)8d%y9+t8d=<_)E@SGh>a~5%0F#_%{04Y}>3YJ?jw<{QKX1_H*CxkFzJ8 zMoJ+fC`DE^GjsdaR$uwoU;f-%o@osrkO4)0$}`$mHtm?moe(%GVK>KLVogt^K`SuDzAF{(AqZirG!N&Di;OD9)mjB9_S1?3Qh4vNktaLM`Ak)p5eu)V#S(BCW}oh zg`Pve=QuYu0>@|)0w(vS+!Z7UjFIl-bJmW@1i=4~qT0O*6TN9`WPK#an<^t^quQA( zn%L4J&=pXoP#@%GYnmYra)pVU%S8NMM?WtP0PdY;3JA!M$I{B3nWYQ@pfc3hB(M_67If za{72Qs_HsK!%GYn_u@8eVhUiIK?q$S)!zeaz)Gu`KFsv{TK!_GT};|K)}hjZJUs=KuNLSHFMzjSB6-y?c)gSJs`j zePmkIhe}lrez%CK*RN*!dQE9v0RSQ>t#wtaUafjPw>pmiH0skfpJr*)>*>*4|M&mq zPv2py>hS18fBe@Mo_hZ^Gpv>JQ*yi%5w)tT9@H9V`>N_ICrb!eX{f8JH>l_5`bt@Z z)-;!#dj8Ko_4yz8_+QMOanijj2VVNV*PVRQ{hH;qyLR2NGH2B4Xst1?|LIrE_vgl= zQESFq=C)pb{zLBj!jAr?LAy45;2Gy%e)h%CnnBfn=y{j@aQ6?@;=qoY?e{z9q31kA zqi*cjg_zlFC%wcy5FDa>nszd~lvD(x+;#g|0Fda7I$A5$D6C6Qm5;KjLOzy!Ux~~z z88q-y$&kW+%nmq?OWU$0b|WT&YFTflLivbYEIrQVF#z(43)4yyt*K<1i2J3zk$Ls< z^jgQFcS-8j3B`HKD35&N?9?Nur@t>e_5DdH)TJ{`9{@9@T|}u}&etB2@ZQ;>zTyG! zpVWONWOkQXWu7PJUW#2Nl^nOgWNu!B^9qx+#V$y6u@fyyNb}x3R~F3vhSD;k(wiNC zB12shbv7-H7tCd`Jna0LsA`2Ecybj+l1SVI!37>4FpdNe0}1yHlW$4Nf-wfRqu3!W zrX>JtXwa+o92x!Hr>|MvzczRN3AA=ZBebLdaJVu&ZS(A3zWzB|*Ub(`YpSX|g!5w+ z0v8}dY(rK`H?seu{| z-Jux(fMB&&s@Lo3@aj2>M5+SnD_v=_U=0~d8ZD4@LQjUQX^D*LY1IeN3hLUeL9~FH zKx`CJ9#)}m5T0=aXzy9-PY%Ukk0 z-Rn5~d+7FpcTC)!OA@SSI$c+&K1O`YREfzpQBCTW*d;_~QL-D;%tRMaOuw=t4vr^1 zPc3(VjZDT?C-JjE4U66iCmX?JypUouUyt-29x6mlMsQ;s;c*M==DX1W6n8VzKMB9Z z2!#-sKq`99#C$0T=!j&e)!^*vv3fROp%i3IIFvoolF$7`y1O5fIb+}Uj%Hw|t&=D& zJw+d6OQOv=MWGeMJ?#$wNFWGC({c07*naRGN^qpjdIzie$&tWT-Eem2}7I5M&7@4dIV}HCH@%MM0XV0Kx$P zK>L@B$-1WXx6CdWLkMI|J3F)ZXP^GicW${}Ev{DFAz>F4;17D zqaX1{={aMEr~ni|g-{{X3VR3xRn7FYvbv}B>;P+oT0y0-Qq)80YdcUhz{ZYe&OGVr zTfY6VFMUdDU01a~)&zaMBwFYrrbYIFbCz8ZqyU5{fSA~C6biTF#vVMha`5oVfkR7& z5AHs^ch~a1{YMWTS~@a3x;);!cj>mf&phM85B~bQu6)4dt1C;kHJ6?J;9q&t3l80I zlU^AC(%t)Rzw@^5A6Ytj&iyZ3J$Pie>%P@{_wR4k009)N4Oi^GgRA=wjSn1YStu;E z=FpMhzWw9Ypt=ZAs~3t#gEdvR+e|} zU%KJ$^G`T?VP?^>@RIwVU$2bU4jx&)ZO2(#&OBk=Rz;|kMy358T8`JILK;NL1!^Ij zd^1JP!_6GTbfu#64N(vRECXyCq-0ONqUj5z5(lB>3{R)E9hAV2-UeN(h7mCK*sHaOabAei;{4zq;|eRT>z9X zJ`PlIH;W$PQ-Ni1Mf*HqqizBaiz0+cle07!8b4XLvoYjkNku3zq+1#S7D#2lAt@JF zfU_i~iMcAEvB=<|S}b3fvMyCosdKATXlYo+C2B03nw;0`?@TeG2#5q|2>?{x@BQGG zdq4L1AM{RKZ$>McMqnF_*bIm3nx$WT?&B^xef?-Os&u84QVO*SZ>)Dd#lL415D}E_ z^$qHgrBQ1~ts!*Nfd)*A)FQRuH(dG>5EY_ERiUm45p477s~-8tho9B%KM4If!Wvbj z6;z5~F!$OId`Y1~rTD!|?ltU@n~C{M%rx)1>#)~d*5fZifYp_y*Io6{7yZ(eD~Aq_ zckeOA>|dk%mYQ8Fc4Y*gDc}b zN17db_wL@m*0w-k4UsjLT1%~amAo-z5ZlAc_Rc-_&RwIWp#iiOTzJ&1jqJe{d+(vq z;T2t1rfE*yvhcQ7Klzc5K6CBx;pJuc`gQw0`qAsZ{hht-kjBHcM?K@=zx%6CTQ}4D z=l{Cy10Vfve|fmNYtIuNdCpTFe)gcYKly}|PS!Pi1WGG`-(C z4lpkW?l2z%>-ZZdqO=Dw)|C1FRBwgD;K}!?SVCm&s6)ZT6?4YZ@XLuMvT*YS1k|yH zSXA#K#wl?!l%L@<(MRd)y|PepQ5r*6q_xD5T!>|4Rzg(d4Jjv%2=7?^LM4k)K+7I} zW6;PB52r{d^G4X0ZW=(+K;fQ%xA3K6Nss;=wJ>o;6}*2Pb~^zjeaa%wXg zg3_b$aHi_N>8jt@*jxO&&wXOmHZ!xm*}+LKc>Hsp{)i|3*+0B%=h_i$;PjcT0H8si zxVZJ)^B=Kc%ldl7Z0@adbZlAJdjB&nUR=LWZC0nwZ3O^Ss%_g77B>Ig%isErPyW?s zzWbH78tTE8vp1b~!ons)tw!YsO9^?>!KB4VYq1q%RYtlNI( zDG%&zSUi1k>xRLCC2CuFKm41{U7|?C;jxJ z&%4BoM%EB2t(0DChEIIZBOd#xCm%2?=6=mH9{$upJwO7o^tcB;?2-!}eeaQdW^w#e zmpo}*f6jvS`sc$>v6nhi(@1gMGs|_MCu478Zf*!DJu4Uex(c2p&b(zv8DwaZnbbNg^7^k%ZB zHQ1G@#}r0IFB+hdoKV1jsZb^>q%d{_b-BY|5aqgpbct28kjTk%R>-1?k||S);boGN zC+GkG+4Um$*O6xQ2EzQUxW|Wb2+mAlZdn@C^?~K#zklKTYkO7)=Wl_vWm1G_Z96hc zE0aRTY!r^F)sGK52dl(Hb*T={LUUu}^&HSs(e#_rCu9`wkvjA_7Y==&Mt=uY3BH5BcdQUwqD~ z8^@zY>8e&R8jXJasz+=YR3H7^_4gfaW@@`O*m~9(Cn%-1E>tI-zOYTztEcs6=X+oY z6h83e^$$6J>sqU9YZm$yfC6amcgo`V7i^@_{8?u#_7GZQ5UnMJVo9d4c70FX|3TZw z3(L)zPCjW-5n4b5s*$#zyzZ>?H!i46=bpD^Rx4fA!q6=;5OeI`hQe zc>crQ`O)tXRCgXa@WpT3{BuvfcsN{n&f^|nf46ivdM@*DLJxy3H=xgQTLIc zXM)@$m`%1O;*W_wIY5_GX(X^r-Q+Q^Qa;QciKh~^c_wFJZ*ct*Wtt~rCau;aaI-{{ z8r>y>i3mtSoaY#E0CPZ$zj8cCQAg$ zga9P%Wg-&w2gu-kPG`2KI8D>VcNDUubjD8NehV5SSOIY_!(GMVU!T=@HJAV)X<7&@`j@ zg$=L!m$$$DL+`Yk7PQhhw&c!y3#;aYEhnPnD~O(RAypyi?uU@$amt0*(4Ez$0hJ+z zIE(#*x83^FS3dLg&-t~T`*yzi{cpVOz|MtJwvU@JA&?@geR;|%1-hrz(rx#=>DjM( z(=WbmJZ>7>xS2seKPa~5=e?44AooEOL5j8qS+6Azo%*6yYNZ+NI(n#IX(Hf}xx?_N zmG1TWo8}iasPSlI$p9!rEm_;EdqXq6eb( zW`L+AyZh*oUZsIx>*B_K-2frK`!>h|m>6u<{%fbfJ z7y@eBw%_Yn4Lc9+J+g9iY{zI}rXFlvw`tqLhT+~N${ z&5r!uwzcYaH&r3x=eDV-Nm3TVbEM0)64k?_#vsSKy)SvPprt z>}lr&@oDH`GIf*EmmhUB8n{D~Cb%TYvs_%U+m~s(<@~CsJl8mhE0fYvI=dXqWdP&D z7^94X29I?OS#~;gug=Ic)Xjc^t3SXi@i8mPT9k@NeJ#%TId9=|`8>s=8K0N;@aR zbrF(71B3upqiwAEt@nQZ9slt44X2+nYR#yH!I6C*c+=CK^SJYm96da!dxUP$FfX|i z7rS>tK&7i!zvqA6`;XVw+fD#8)YO1&sp^@1d!G2%2Yuo#&m66-SyTXFRwiHxB1k3> z*jdTWDTsml%yaEzt?gI3H|Xy=w6=TS@`0sg=SLT2dK(tzPd#znTn|=`a)`Fy ztHy?Q?_XY89U>B9wRzp#=Ea^duw(y{Qpyl*n4eiUS1U5hLwj&}Xi*m~>sBAXSbTDb}(rDCzCA)sMw_&bljRk)BqlVZN`m zww3^>S6AcK?AUYo(DHEDnqH+BX9wH2teYQHWJbo?-G_(677&*)@h-BKPuGFxh z-A6{C)Y|gey4m`qt?Qam)9=?7)ZP1*4lk_&(V*AcxHz+Ep=XT|iV}{hiOQ4?OvyDV zJ|U4aDtKWzM)wm0*PF~(4AyMO})b-~L@CsL@dGt=Yhf>4q32)VH@*jox2CH^AH zUcD_#k&ljH+b2iLI?<)Xr*$hWL5qy#AtOVISY+Xq6ezxua6KSX^1zx=9r6Auv5PR6 z(6oL?x-2plx@`B~)7};=NQ+3ktOy^M1f)}lfR0`=F`FOAYv4OmM6Pgny(A?7(Q>jB z%%qo;h3G!Iot4vd%!|4*pVJf29Ds-!##aueOzXlJVyu=`V2tVaXRNg^efdj2_<;|8 z;IBUL!e4&ja5${%8UR$rg=EOhjyjM!0Su=PkKuYG_{ecrNe;Ua%+wU7Pf5tKi0Wde zv`AZ0SjP&*57|t;U=2cub;T(L@lLsE^RnrjdX~P}Qkgk^h+~2-*o(rF$!^ljltnVY zn<-#1*D*Rh7BDSY;c53#Y;59b@?_G^2+2%28~w6umna`H0pW*<6%I>ElEkstP$@aG zs!T_vp_1BMx+aGT!h{6Hga}}*of*vTKDz6Z|M>|s-&cd48MkidM~JOv^n{RtASrm7 zWJ^C~!r(9{Vbl$lA!J6`g;+cs>w_{{T9*tq$Z-}=h`yZ5ez)3y)C z!>|a`L1r`t>k9k*PhRuiKl#|FJm|FZhAYFmuDyH24#8p6BnA@YD79}JE2}4+EB9TB z1Z0d|=*=u{n=f{Q%VwK)Y{u@5Wds%p31BoH^{e{g)6W5N00@WU;quzr)(x9A0RXhr zwyjZG4eH)m+qMG%C?I3W7(f{4!CBi*Vdh!Wwtz@P7VPS1ZC!6}^C{=Jjx)xL#zRXS zS@uyyzg$)koPF}Cf!MZb+{nWcZCP}+EX@e3-q^b!%`--F`ABCP>cG`qwK-=y_zmb#qX`TOY?IG$NRQ$>m^iag#47U4oJ#*vv(wf5oaOc2D7H z5dFj{OM(JP!kR{EAvZiJZ}aj5(ZN_ta`Oi8hA)wk()Y89=@)_tlX8fK#pGQN+PO1r zZa*zQP!b11p_8PW%zTJ9FaRJnT1jkK2q3w{p~Vq>gozUpmN|0ArwhlM<*vKXt`x`R z&mg*0zvvy(Rc9IZB$x8-*bI0}!wL8NctUSpS|<0}bnL}srcSkkIHR}kMh5vAO62MJ zn}$v))exa*Mak??E}=b})2P_uG`#@sP<&2XnlBMY5Fz)3jF>=Fj-g~A%A}j*XW}wD z8tRR&)w*g8T=TuVj^1;mclvhIj5TP3%8ZG|%_AT8z$aXM`qIjZQksYeiEP#!v1Gv# zAz4dpYrznZ0c(L2kTRC6qclwaBJbIdfjRKIYmrDP`|Hnn*x!8SdOKc24TzQqsBLIr z-Iu>{>%DuIPuSQWH!Y^EOCsF~@}2}& z@}?ji00?9~GEvp`EeoMH$IaLnK&8fwskAz4+Z++8t+P#Qn(+uw4aeiE(r2Bt2(aiH zWn1IBLj>XC_#paX{}hAYN0tgoI}#(MDJr4D{72U5!vBUxkSbjG)E$8Yz<^oeKt?7p znPUPrAi;7u%EIwYB?A!LSvXlX#~fJ|V(fZ6p|>FC=@Oirhcco;9j}p)9FSy^AWp?5 z&#=QKF#*5Pp0Hp(7_tPN7t()tJxDbtypz z!Ybq_f_V;3I6g;EF{Q~OS;x*s`xdKB3=neApa98aBr&gYDohnFLsp$JR!Uv=xum~w z5vJ5(vCwR?)=R2Nnl57|g`j+CtQyr)6qVRRpN?d`0J#^4;@weU>6AsWnADz7+PM&O z+mw9t7AkxBLsa*yCK;f`oCx511hTL=NBR6t`1i)`e;Cfs5GeHi^y6JAy$X0fQW8) zD=Gj30G41pZh-*6A}FcdQmlM0bP+)6v~zh(yEyM(sUZoB=AsBnnKSKXhuU?fvgBMr zF#HOo1`8AfjRRYdG9`VKu}=Ns{$q<^e$h`bcDIc?!*Eip2t@2=59k z2{kx_!@TKOy3RT+NO&R_K*iA*n{6pAv0}^%$;o0T?Uv6JB3yFt7Vd}wDR8oD0&*}T zEAMQQa;LqdT_8!CvXrA(Y+T%0qDW>5pFC8RV}&l~I>ot45tE57(OnT_3Ph2zCW4cw zs{meDgoL83op^yzvN8@LG72B#ATw^8;WQxx9gK_^O$t&OxTcl}L+J!F{c6|Ywg0*9 zZm9aY(zYdw8dTMcM_Xp}bARG8t;ky2>s1H_ndQE@hQ-PQQ?f*c$QT30pfzAD*g&9k z61mc$mn9?uV-b*W+@7>~?k65~)~7yyQ?+58ZOI}K8C&(1_8wk_lU|2}mQLLIP!tX&U2zj^*vrmI#z;jah11zslQ(AqfH6)->&!?>GWf5Z-V_ z{?KzabMhrH-jqspVg5&CD}p0D5DhNF71lLWncYZ$N_eAGd00Eer*`dq$=}I7n&8(Q zun{9>wpv+%GIBlDjh3Tw-7JN%f8r}MvYlbgnyxrW%Dez9l!%?=(m=AG;cawb z@(y!$V)`@nDriAQxj-+HK7fe35~YLSW|D{`5RrU2W`|=^F=Gh0BRSAjz)1kCXhU2L z$UZyWO~@)2D`m4i{f#9BI}=L~i6Rv248z2{W=JpA8+2MK^waao@iwFj&oF*TKkUq6{UH!==GZ0hcVHjC=V}e4(L;uD%4@S0U&FY-b zT2K;hQMd2J*u>>ikY2JrY0MM3@a@i+g8^iO`QMO(fUG5j6(W87fB$o(N44&uK|}=_ zLHkMLC@->k{zn)OatP9kBE>ZBGvBoYE$No@$fAWg+h4ltuBTo3ls|vzn@?E3W!#K_ z$QV0n$B#Mx5wCs0s}@GEx_f`G9_W^I3t$K=St2uTq2D)V{N-b3`j$>AKQd*R`%H zRcWQ%+g5c|Y1Aszs@LYh6{kuBuuq?dd^8@OfMS zQ6ajrmBa2X*5}JtT4}AcQYttNbo3~tb**%*s!G?Dt}3N8PsszvCcO()N@@2(2?R@I ziL50eQZ5pybYwndF4p0FA@<_j&7%Lr&d+gP#JMTYniUq9oa}@lK8LFSpprVsLkddY zu0TmDA-Dbxn@O1ly0tN($7nZpK1&v-1ZQPK)DqS(06^k1bApZ^U+qFqefEi@6Tj#K zJ3Wg++yFpyht%Cd*G%!yDeNw`!Vf*o+!jets7s;E(C zoO9w69&*3s)zwNV^yhebGsKs*#>e7-jJ4Jh8AGih03d6AF`{wNgrUThurNMg)KgfR_#{M6H~|_pAd1t+m!3(zvE;jdg{+N>!Css<7MF zb*oaSD_zx9T~%6ZL>>CS(pYJ&J!~LPnzgQ_Dp+|1?pO>ei@qKzf=5LfbEYI>SU$mka;@za$?fU9S0oHJCCb zdIymK!*8yIrn4uHvL!|=Do#k820`LrFwt~&MQpMs)X!DKZVnn0S|%c0m;*5Ba8o1c z1uGSvjsd_>MI4FBu{@MHcT5B*GJAm&EkekdAmcju4D|e-5?uFVXA_gWrcM?ixv?;0S)T;!?)b|)JH$*Jumu$?dwil9jyUT zYe^wmu;XU*oQMC^jstt&^~t{;9$Be+18Z79@(9k@rm?WF_|4mIxc1iTPkGo$hOD+W z9$4#4J_mpaCF1q>m>;0bp$T7F>ghDP%vXrOoM@hprJhe5vfC`Ne3XyBiWFt z<~|3OnDJ;rBc{V!>P!rYS5Jt>7V>dwfe%O$8JmVd!&ApElqv2ZWr|R&RFdt9zfDuevl1P zVWYM;{um9Pzr_(6UjW9Vp1Is;7$Kt#0K`dooU<6}a`}l*-H-e!4tsoC63t64$(|J9 zQ8zINDe-a|8=N#S7S-M50w@Hydz4ZU62&g=Hc*)O6q`&Hx1@Ovq7Z=C4>bXqMV|9u zF%&1O54M*(tYjl8{lKb^!TkHIK}eHEhfIb2IxAdA+$Vjjqar2x>s>&gj2 z489~x;N?~9icyhiF1r88XP&wBo*nyPe$J4ae`@Vu@Xed<8ID_}(QT~_09p7*)&?Z* z)WF>+ddwgft`dUGemx)zj%kVF6NO{zDzB^EK4lEx6yDFhy8)GW<%bZE zAfA|Lp?3kCzyg7dM$-mSz}T$lZV3p0UvC>R2|%`90=!XUK8pU!lu733B0&Bv9497} z@l%%-OWef8c+VbPc(=3yXC%{6{CAJ2Gvs047djsqzA}m_xH-;SGV1MB7$z*(3!s5`a3>?@^hA?$VsMN~nex?qV!73g`~?d9~mC0SH< zMd^`kA(;h(8Auw)=2te+w>e-J-~-vas^?8@*Yz{&{$x`x}y?m}TB{Do9kt3ln{}>gqsFBB<*F+W8b92dT)MToh774ltl3k&p z2oa*h=r2ME#pd{VIN1{FBocQ)GD`MgP^fOY0F&a~XtfgWjvZmaRGhjl!>5=M9u3(= z=?U)b7;rIiV|S2`BfDc!VW>JP5D1QmsE|Mw)v; zXr0qOPV~zOUNL|jnH#h6Z=}u`F3gORiY+->1QSQ+G>iTEAG%N1(Hc$$jp z5OGMj6?BK9ScK4JQbC|xxMz$%a;Sl!Y!nrREP}%LliT2g^5l`1+1#&0D^OZJ9~$?g zUp&*1SZ#MFyaYLamb*zvr$A#TOT!%-k&-{{tIJuGrYHt}wvoc!*ezvn&jbck#NaI_ zGMjA?CNuPU_=;HQ+#DQ8??{yQSqUvnU{Fd(p$LGan<9r~QJ7~xzRRE?Pg0N%{DiNu+^i|3i0Y4erFcs4SBiQU9v0hwy&wl3h4uXrGkt+Ynv zmVN;vO7G9CwU(VSkOi>TBRvaXL4_Sf@^wO~+VV2FunG^rD(4CS+i_F(svm#EnWLo@ zL#idT1lF|JulDRca^K!1ck&%#w7rb$DX9Pec?EzZs4RJ!_vP6ZI__$0uJCu4SXyA|JY=yqG?% zH^kT@b|OMI;7?0Wzzih3pzLploK8c6zywGqBlZ}o>jhL!~bWq%S2 z#j)TdyN+P2GPxp}sNK{Rg;L=iixkF{$JB7=WF!`I@+Q}gM}w5j>7}HhxHUnVj`Qwx zigRh}Tux;3r!1NUmZa-;3ki@Y?Y4=;f#?hDN|5||%xiMA#1RcVW06{ee0bc==-OLk zM3&HhkVGAu?zBjedy2IrQF3TNB@#@nH-=XN9_UuVhXIB_C|MtRv`|%bYsdfnjW4d$ zIM9`~7Nnhw_D>w??UrkyhubNb4AnU5{0V3t5n58lQQ7tv)-Bz3>qE|Y@Y{a%56;?l z+PEE~(g>gkQ2_#u+wsE8!nJpQ|IhyBoky3K^rnTjX+Z@PN&rB{=$Rhq_J-SU*mGpx z`kBSG)iqFY-39Pw4vtbJr{5K>WH1&aS*##QAD3`iR(O!4)cdBjhC0Gy#kaXzCmkV~ z`)Z!mO*$pU*99riJ;H`F#paU32NcRkt1UDqLmgR|FXWMAV^Sr^r$MZ70wCxzeToT? z6JSJCE-}F?f>ajuRIStXJN`ofFonnBhGZ3mJ^j2)DWpfAB$kj)P6j{D&yi`zPIpYR zMZVclQXtUfZzB&fMeRY9gs_F0FuUUyqa-Zv#LpqCCE&;y#!B67VLxe7zMLnDg|Y#Q zrOITB_&NvJ4Y|pp=D4FII@*EPd$ardeLdc@YiM&qM z8B8S08&+byn6mv?I8pA-L>0u?&$Tg>52fzNyF4{LL14atA8BDuK01!=dH1n|2;lGXnrbe=-9A!O5p>yZFpaO*_`Q^7`z1kZI)bFaRm! zZbLU>bQEK(ivavttSaxjL^6^ycibwk^R{nnM@Au9V(F-rIo#Z_>*(nxts`SPa+&Fr zH*3sAkeo_%Uid5$l9mes$R6YNCGj-?NNrEYKNK9duc!Q?JZV}9vNbPphLLZHbqB)r zOH>sTl&=J|WaRJ!60(U3B^KPUpihboq=m(&-R$8hH&?E$l=UScsGPr{@Q$!_w>6~+ zz=Q0FMQ~E$uu`Jf1W~|LmsqrTIaORyH1}ms;|?}E-r%JWp<@qC+1RtU7k&tlc~KY; zrT~ReNAal`PkK`l`YXZa0oHjkQh|sDNX&LDRT@g_yPOW|fxF0Wb3;v`{J zW?}}ix}r8u^kZ4F#6v|o6D?0%Tg*HKR3_wcncXW{k>aF4Cd+qtL}HS%OV*0S|46)$ z$B<5F36xmZm8Ype#sVE_KE(3V@>`O-SHg$v(7v)F5J%!9o!u%Zy)8yVa%E3i-LayC z(WOYIEJ%!xL=&d%aS4H;lA{WXOjI{x{3aSo;9xJYZhEEjH)DJe^Mc&#%WT{4_3t^f z^WI(ekk)`mUas#SxMp(KU#2 z9*oi-{u2sGx|NuJLJ_2o7AZRs4GP{81tqd|eok5<3*t{aW+CZnk;iDMVa|i#qJo4U z^2(GslpSrD$VpHtBiF8EO&{M?QCpbjMc?I9gam@{vK8QJm~{ERW`FujdZI4-P?Alf zq$^RhKUPg%w zRu4rfN|GfGAdwxKJjGWmCq!o?ds9@_C9zOCqBQoM6HY|4JHn7iNw+e{&Y2Evo#P0-4#B^vDzm;g-4?KzMmpD23a6NPXkrQ6 zv@SVJ^|b6h#0MV z;BCUSyeB7iPHaul|Hdh8C9-6!jSrABAWk!&m@SNTkV8}oq6zt_h1@HMs9ZvZ0+5~e z1)UcCh#H+_K#J^e`Qqnfkjp^L#Gd zBm%NQnd?6H+QEcMwqbz)=&Z=cAOs|Os{6LIXw4GRqZdkBno(P5gRt1?YQ&5{pLV*> z_>p}VblDp@A*=Qu14_xCO4-oiQstERQap=mnwym`Ozq@Z7=@yi- zhTQ4~A&1;Mkq89KC!EC-Kf>aPXl24Im}?3ccSK1$m|tAF{jPIQKJ#tA_9u^e;3aFL zHK%k07D<7E#*AmG!Jgsa-~EfXeExf1?LFXBqqP~eSRoRCMKb92pny_j2xsQ*IeK8{ z{@s4>t!rWOp2)0c1Y0Fk$Xpvi2y_X19?IbPK%ih>ebA&N%F(NaUP=VlrzlEHXCfgT zA+(vobljHjc9A*L+l+FTLIzz@PZkKFw4bT-A*Cl_wtwUW(nA`CHNoA4X~<5a znRS5%O!oA0{!U{d5daKy6;tLnqjnuDrQky}8cD5@OXV3Ysf=lQU!7D7iKo+7YKnTp zF9DQ8Wd*6}G%CcpMRblQKw~mY*Dhw%qmb96B4Ks;-h`>7(%g3^3D=NYBGDKMfsIlL zyeut36JvT90&4_hBt4tr_z7u3Z869 zNIAiTxzSB$anS_gG4>^Zg8D`cx|cV#iI}HTHCXrskj!zBe2|swWhkRNEN1ts zIf$G$SF6M3!0M>(RYZh@h-lkpvBC?^-bzkT&;uQ&MoilWnU?3T`gei5Su2I0Kr5{g z5D68KiYLedxi^0zABXMR>HjMLYR98<@3(c+>6;GkUxk^0Qe+J%M4FwsbH{!Fa9caW zrdbFwP2H8g>0)a>5J_-Vu3jv;VBm&#F42d=KZb=oevB=A9HYb_!WdSJ3md{6n&@TM zfCxYW0a+z?VuJ)A@EV`5{{sOdyp7b5;^NAe<3D&z~7*neA(U>5^WkzlQIqn7HL;xigOEi-4LY$6J+DH*e!t8+< z;X4%ozy6El(@k!4;{CA4bdJf*-^u8_RRSsnbBg3ITua($2V zkGZ=;uaQwoyfH}|D$jdL7Ul&`NoyWsYb0rzc1bLQp|lY0b>H#{#r#Vg8e&-WCW3cC zKw?HAL7^d{?=ch_nG<1O<{wjDj6)9orl{TT)v3IpkLW#uh zautV9LLXzV2FWe}urLG`3tbaCoJg;?zEF^rj_CuB>qyua(d@vaRLv7UqS#Cj)VP?NJ#-xA zBS8%Au=Vu9i&ZKTDP4}SjDitBIRiux!I!^O;7Yo})vJS>XZqT8-&wW|s-CqLc&C*R zqd)`!BG^`|ss{)b8g1LA38m0WDc-dy9)pckei3!%2VqYk&Coi>??q zLqx1~R?jNu#Z~WjN|I5{%?4Pk!;S8+|K`T;Z!v+aAPow}X^=1a6{d@1- zzZ-}^RV|{@5GO1Wza947vYCj?7fRE)gigg%X@XkB=iJ?SH%9?Y)H9G4w?2e!4(2a9 z7l?v}EQONd1aT*AN#P)J)necY`MOkz5`tUnat7EV2lMCUq$s)xQ9zagkGMm^?t*Ba z_>Fm~E8@!r`ycyJs;lf{PfEo5QdOhp4mMJhf*=Tx+RkjxfU-*~WiQuFOiClh5v~E; zMZBO1gTTrDA#nN{Bqi4E|3iUfkQ{PFX3&HOw4A=f_E0iGfM#;|MB-ubN<65%pBmg^ zMoB^>FT)&6KV@XdlC5Ygm6|DYVD9RRsgWkMSV~5aF5wO1F2KZzagRG0K#bYbVhO@b zL~8ClMwzZdL?(~%z}8yLa5ogCb)M~g!oVNW5SK1-(0|>-WW>=Js4OojFgy8BW5UY zsL64e-F-|0(KUziGBJnXb^Shg_eh0Of`t}*PCiK1F_+lXAaDsR;zfHHq@Q9s?isE< z`UxTob9?b_;7v(oqS29wla|C}GQyG;7Q%QTH2_Op;H${V;3GpQ@xvtNCz1QPcYPKJf*lE1|+&dUq&5${{rphdBV7y|aC zvO)73STW|!XG0TOQP>~I%w!~10muPqr&akSOwNQxr^3mCn=m~(1aY_EiqZKJW`QkK znNAW=x|lRq6G>&KHPL{|QKM**&z0msoUW5(v{33wS0<&U$)+V<4j^~KvMxbPU`Ae7R=(hBtTArB z%H!D9pD~v)HXe)uK$y*Gd;66lco|T{IK$}E2bI6$-h0Mvqf{^Ufd$Y2#C1A%O+cnm zy@6Uy4n$18;sgEcvp}xc2l2!}28A!>r zI#@%#N#b+Ts|D*v@>vjq#Da(|J(Oi)bqr0CETN?azG%4 zYuSY$g}D3Fo3$*<Szc95qVpjmD54%6TG_sgj31rEF~@!1>V;c8WE|>p9Vvl zX#r%6$tAe}8RPVd9DFcfFD*?ic>L}aqd(Enu%FDuBy>lBAW8YfAVpZeQu*HLew_I9@0LIJ_8d9 z#6kn9+_^|`GlU6aiaoGP8q6OO4aihUn9xL&FewCBXCy_z4xy|HWDP>moXhN(J0b4k zZt|hyFM)MF+HC|7ZYeYGAi=D+p>8p0RH(ErivBLDqL4R&xLYHhMk7+j3B8=-iFFHR zAdYMyzr>MV3HNjH$i|Q zPAC&3HPP^;$bwI_VPz~96zYrt<6ty}{l^l{h~B*5wF}L00ssk53iB1E8Qqi|*0O-` zON(^_>8@f?Kn5bvH!uh6u8-naq#O4Mq6H#0m(HAoN?C`he{|0Nc$i1?MZ}85xS}}Y zau%f)UI6oiv1(teJj}YAj=hGHCc!YxNrt|2fw;+ZYSBjvFxk{h`!P-3s z_k#vN?Is4v5+I=QCYP7r0@MO#dN9Abd*4Y58~*s${@~ez zt8xP1&AR9d?upElgfG&?IN6b63?!oo(IqlgrznAtaR z5XM#I7n~>t9l>$CfFXqFrmx;x{z(%QTu~DHm*6G=A0keewlVQxA}ka6s$v#&)81^m zn8JdRa@2yk8cdShW&wpO)dP%?EMacaP2}DtAx2ChW8RTg$U0b(%;XA36s0F1hsc$< zuFvO}gn{VDv_|nJ=A;eE7Zo|}(H%%*i(x&N2#($W$q{qPbJjWfQiLiA~_D zjdV=Wj?UTxkZcyQPpJ^zSCoR1NtzDnUPQxjpWYw3HzQaA+4g{xBM9bB38zy#dEuAS zHw}RSMCB(Hh{%#wdbaQ9FP&S;yo2}uAa|0YMynJlt?If0tU%QkKv&cb@uvHhpIYg< zu3KYjt&n3|5m(F?Wc+4m|C|J3WSE=skPbqfgA$Ayp^MMc` zzmfzz@FGtLS#X1F=c|$TI5`F3;tVW!UWz(+Sk6I@xrRdvjFwERp6 zqsQ`;Kr~-Wl%H)-Q?le3KmM~M6Z;hQVQ#p((pt|lN@S$;sQcf zN_k##*B}R;gJ)yD3i~JYDz-7y#}R5)F!^dz&vQ46PEsT@V;=-84)^_7Ac-ZWfQ-8n zkPw117a{&MRGo~8BXN8a<9~wi2t>5k2~~tLu5&2ZJ?c(Nadmj4rRuTsP^@~38LXX{3}sKqFe^V0 znm|bz$o9(_7oT3teq~b&lB?X&C1VG1nY!B+MhS66e3$#(SX2UZDNFB&Wcgro=X_s5 zHcGUz2My#E#)A&h__NOZqlwY&1mRFH+@+CL_Y$20QXrWOo0mYOJTYRxkra{_EhOK6 z2ybO|kDVKpDjJGIf=P=*C$=PH)^$Bw)h4aoh@1<{j&5nETs!utI5WyNy%DtJvgJD8IurTh;&kyfCu&ti^ zqhEc?bFO@P+cw79N>>0r=wxk+N~x;;<9~YBJ3sN4cKf;-XPTpHSXJJ7`X9MrAq%JG`PH0FM0hM_zhNu2l#GMeZaV(Jwq0saQVUvb*TS_@sV$nW_ zSmWpim?DA^gdj+4kp1pL5!v~iQlyD0z`g1j${$72#9b$}ca~V?UNirk)t^(`xw2WB z@`}0XSCo*F4@>Eg+z6B>WN~Q%WQj+iqj<<8R~v;{ToH>a5-QC(%O_F@;O1TFGkF6& z#qK9oP(Xl=RY-)Z+h}JCg8z$Ci>V3=1UzM&7R!tlBmy1;*+tP?COtUK-j=TJdb$K# z<`n>xW`e_`X%(fPC)@gCToes;@mRXF(&Jk#D9UCj?T9-~Xm}XTXDuWEo_PXie7P_M zM3!=Rml+jr^*k-%um7gp6rURaBdZ&cwU#Uas!FR;ZzQr4mhl6R_!ST$YK5pP1VyN@ zr<$4h5B%%5x6Rehd(y=g?8@@0Qm9c8P#O;Eh#sTKszUY&~>>GB!&~Bpe25sf4Our zI@)y~nI*%drZC6~yf1sSf@5N?$RT0CLL_b=gm@#SSwY;2BUWHhlr7C1YS!O5Z@g`G zQ!|s&@^aKD5}_fPd`vS@vfHu;?35=OVk~!=&n-BS`L<)&x+J6;jHLg3jI7Kr5qydL z%WgLi6Q?XaO3QmwTycXdrFT-rf|MVz=@+4pI^%=J$c-O6Gb1p zEp^W9L)YZ{rX$4u=!~vFK4RARHIJ?hVRTI?lLZ!$EtD=# zN?gowd{+V{CFD7-61t7di_W6blSh}b3_%2@-;;XE1&In{nQ7DbaVK^slVMSM#OLT8 z6E!Rpl~v>fAja3afG0T3oU<7_Vfq8P6VwY$*4~ultojr|1wZ0B3INlgTF_TvKT#AS zb2>1Tu(8;p(lRlOkJC&TO_{Jou|A&&Wq_h1p23bB&n4)`!fmI-5w*zPEv$owV{n+5 zW9cF`(H3bwOIO9Tu-@fq2|y0XRO09oLLsV3@=zgIT~{lkmBx&qs!%Ba<6o=lV-y4y z6cMzxo~wqt56z9+H~z{SU-RsjwxeeM%Au!T^q9Hd`tuk5(JSxRamUQ5CxTU$$W}xO zP`Ov~AepweFhAUTXk(+_@`~Si?v>B9wzXvXy`Eb}gQ#sgwg7|P;2od%z#sh6pRH|~ z8T4k`!)sc5eCWe1V)Gdh5)vu|1X2K%ULCEjjfRK{2~nxI^aohL{Y*6bCIUb|^(Sq1 zTlMd6SW2bn&{ zx1IP!Vbb=;`I`Xf3(h6%ItmswS;Q5Ar(g0TM}1)dk;B*^SH1VMgXnBThSZ zpdp=j>0CM6^A$pfEJkknzz4v>{vgQ-p=>2#k)aG73@0!$!Mms?r(v*9zrN9)) z;<#8^fx2#|i2V*RO#}nHq$~E5)QV7DVpIy%@*fn^(s9Sfx}<`;%gtWKWkGRSnaI`E z0-=Cm0aVAx1tp5#tT+v1;>bS%PF?Z=6jEc~BA7x<=?Eu22nz1jy~+&$8_V;)^AVeyMk2N)S|-ToS=R7f$Cw zyh`Q<)KywATtRdNgCR6kFeU}kTy(tWEpSB9Bq;amwSq#B&@yx?4SDFdL#eOS%eNJ4 z*8R<}%K^i}I?u>}=YcU#it$1#!*a9$8hn=rP#h#p3aDq1J2Bh^@v?&XLmC*zXg*>f zBn>}tU@&rCSSk|zEQb^nb=FA*<4Ql)iFztv4utLuPS_dZV7|nE*8k)~afL$G@c1ZU zMetOa6O=N@9gz6J2vlMg59f1294mNCm(=Bx7p}x4WR;mejxcYwGU~@!oEa> z>4KTinobloI6W3q$5Yt^VVV7ICuFabNG2a9p486v8vwwamk~87VuXxN5l0EOpOd;y z7sHAaGXQvn3ZE5-=}`>4>!6qLB@myxHo@Vb4HPXvY8u(FhdvI%>FP^iK}WCSJa8gH z6E9v7q#$if@}^YT1O;;YgjD8CL_E*ELqeqx5S7x60H;7$zZqL=KxqI40rWeQW`PLE zTIlKK$ZEeefAG@ZdF@ZXY&;&Vwrjm!eQ@dUmFHdYx4-$`vral=ZP#u!sBln$R#5wO za|EWIpKTAV&MuqZd(m(G!jrDDrfp0Es9Iw!5dpQfZHyW8XaDLmANjox{>kcGuQym6 zFRc*}fdy-+wP$UMO~sLT5y@hr~o2#?KnCW1=&tOzfH zs3$Uu>8;o^;ztfFg~jpC+bfZDv#BlTd)(LjL%vTFEe#etCqC+4Vyz;PU9TYm+oE_( zQY4osjj89toyHNkh3d}Eb7+#7KEHh}z(EnHjzvo=7IH$|u^HP2F^^2L z4+D`r6f8F<@`le9zoY0*u}8D)X^R)bg2cl9h*#+Bc%`lIc3(t1qbCq0K#}k47+7Yq zr-66@CWUA+hqw%1mGiby;X9;-2?x(|A{MbIDb8g8vHWrTk0_cf|HD&!iMn)66oyg~ z12yrQu+m40O!$>@SoC-~V+xs$=Q`d6WzjsMxbY)g(r|Zk9LQNgr##{lXTMc+QN3PuzZ2Jw4;`qK#;QU9KsCQ<^NOB(`@enfMSt+|kACH*{$Q}MFyETi zng*lnE5JN3>d?YyYyi+xVh!2WT2ocpTC&D1yR%>|*(_oiIU4@517a>DD{>eovxkoM zrDK1+Rf;wS;-^kW2U&=2p);(DQ4U`ig$Os4Py}=)``Cp$ak9K=Ka5(7`AOIWL}53R zq=Y0~a0>UMpeNO&r3h2+99H6~QKBgTK);EOt7VW9dLwW~zq zPg;5_ASK|QLlOOm9CUS25}_f8!HpPU1Jcc(iqz!bLrf(BNaD8~ z(;UkK2u!M=APxz`;+-J50@!;7I}P%>Rxp)JK9nBhfFp*IcptnNtsw-+1sJhNWKG9z zJE8#Ouux8ihem`T7aw6Ka7Zi*v!Z=L6n+=1H$v8RgoGT7BmiDD#b!bxBy>6vjf$ih z0!WU}q{g}cMi}uHFAlJVy1`9$ie0bW>logd!=GuMDVcEE*N)uF;bu}c(WF{r8HpF= zqO#vmZexNH1Xw63@^oC%2?^zON{YMfDm7C|Ooz5odJ&T;fEfXY*ainFq^wWa!RFNz zc@V}ai5mKjz(B5)^+Guzpea^Y1geQrQV1r>e@14fX%a4Ur*Jw{9V{Xlcp0ORhCJ2O8Jicbc%tf98nXjB0#j?D*Q@IAOIlZU8x@5aJ`%!-9#-BXat3X z01D9%!x^#&RH4$?4%c4$yqCTFCw^(%j9Sz5dwm3isy@29^r&+${orrC=ed9MvU_&# zoH^wr1OT$2(b~3N7&J%M^r59UzTgcn{>c|83uDs)YGbUID@&txynb%oN51s&*S-ID zj?^@m+tMrzsp2LQpgV;*C?|qHdIXRZAdylCN}=YH%Gl;B@8|&JWT4}Q@*RMQhjw4n z={Lbv2}USR*igiBY?h{M!Aq5&&o&WrsUZ{v4w6cB_Q7ct>H?mKi*p!31YGmuf+u#s zv4tTYJ1jB&;`4>2`V(+40K7a=r_tb}`k~Sky|Kc8gWTC~`;+#7=R)xAr_ZY+|2~ z`#sPR*Sv(;XfaLgi6psLHfs%ag1xDLVpv$f@ApmwNUBvbEg%Y!1}ttxNh+LxQ4&f- zdNyc51|~0G_dI8yCKfLX=7;JNGC{V@eJONycqU58T9hramZZx2$!FOG?hHI{{}Mf$ zx-CL}Oigf>DgB!CPOvFVkla252}`md4XIE%zLF%B81}X`liivTTeUyDeDdE4OUX0T7I}bp_9S{Dc1O%Qs(h{f&#KoMdO_ z&8Q(uGwT)x^Rxf?y?x)hxwe{aJ(lq!8cW*fs7P2I)>xP9_@1epoo)keD)&rjA&7 z4{O1%33AVJ;g$nMQRwdmz3T&Se^U?uPyf>9)m&C!Ij-i>GB$O$V%ikvA2ud=L z3d1u1>BXZt_3V+{;XeovkyCN_gY1UbXGaIm4nTBFT)u}cBtc0@vUwDKa|7IS66{4j zg)rFTXc>I=%)~NS&A@F`WG@!eU z>J;omkeRUd8G;`UqeK_73M@e2^pOBwpeG!5Y?3erE+vGRg915!NwzGD&2ij~5JVCICtavCuAJpXoB|jo?ue_P z^lKx(lB0!;i3_GTFpmJja(7|>Q^T9qk$_$ZN}N=k@haHK zz^NSdM#mqD#$2LAoy9L=NGTL2D1{sa0zfy?#!EZ=kLXScD@?r}r>2rP1<5q7b|)M> zv6^X2AdM8Fu~5Ua9`@r3VAzbRs;5vP03y~^eRSpMqt3njgTL{v`)xdB?cO~DtOmB~ z4QbGyf#t^RI{4bFUiQjoyhvNsTBCKX5Vcm7RvMvcM(gL+eeS#8c+Gp?cojh3yl*^rSSN zl7+}HHxq-w7YF7_rAk)*2zBKX4|x_S@!y29Fm$UNc>zH_-cd>^g-W@XC#WQW*ITy2 z(N0FOPi`P2A|(Pt#FGpJARUEtSsk`^?xXnaD@_6f!6&<=q7eSakA;GHeUiWDf5NPM zG>lOj3N!}y9+fhH3-KuU9{+`+*`^6|`qNm$0TSfXltMF;C}XgUB8DSefafHy$^uXz z&ZAa{9FXR24xID+4!=>hU9wLk@kdaMGorM5i$SGq0FX||9is_0ex>#&N z9#4Fv|5yTUd%TuL@qx#MDeSoQt_I;#(36Bs6hMhQ~?NT_p)P>5jHIK=b0r5Lfb({;_T)=CZ{P@Cie4Emi z-p#M$lDV#o$(BwJAa(&wxkmIJVk)&M1zm-ccM1t|VkTaxnT-X8KZMr04KnVQnocg; zJBO<*09Z?8$r=j)TQ@K0h1xb_g@|Oql2W+VHuvm4Km=~B9FSjAZvn{qbLgzK0Awv# za;w#hC2K7<*Z?}AG_{Xe*a@1 z`0RIw*jrq;-Vza!cd!bS0_6_D1E{O|;E~mvZ`uhnJt9kl)`9^fL#LgznJifA(G0H< zD~LC%Ne&^L?Gu9(?|6{J01g2X(I6rMw=^%c8syhBu~#g0cS-l+6kV_?zDhwQx;+<) zkqG$T2nv)!bT>+J;5r8^*tm)=p~tN>jMR0lI-}SK_)_}WUWu8ZLc>!(OBfZx(XB9? z$v_^PuvNu4a&a{V$eApGBaWzfvm5G7w8sM!M{fc1B%qCWevV=dnYx8IkAxVKB zAp~N4sM-@Luv!?5L=@vzBX+tn0zEOV1;lWUP=d;Xx970Jsg)8X+V28iAba$#=k5WvI7 zNC_K@PUlT<+e!hkH0(kU(b+~H)%5tyJZB2cm!G*jQej>v@m}+UF)uPVHMlYvHSdA{|jY=mI zqaZ~94C$nbolp|dLWRfwP`dH#QV_>v!c?VJE9OsGD7H`LljZ&kTU{cms~!-5F+KEtFn~*X&u|-`jdZyEZ~YNQ4%^ z0Ja1^Drcc(&}J-H1PegqQ7!_I9q3-a>Ur+@=JPw^P`oB2L<#)26uE-jB$65f(MfS} zXvjXu220ikR$4NIgn0!$3SZVw38)LW#vC--En}Igzf^otOMT==8*iCZFX%7lV@xk3v;E zfMT@gQL5i5B87!Dfk(-geEQ@#v1lCOx_<0?rUB|*@AiQD|}34@*{E+3PRfdKAP zjPe+TG%`@o#srfn%qb@C*zyBP_ceOZ6uL!ZPqCgDXcJM^Y*FBOFu>Cx#QS(en)E7jDGq208IB2RQp^?9AQXC7J!Vk0C3WY8@8OVu2~*pr2xQM(6zQ;cHFxckr0Wjaa7u{ zSJb;rcUiKQ{5Drh04>pQZSA5nHogCMe&#JNecb7r@#vkmw<|}hfhKF()wS8hxrLKY zxcY}jUjDZK{?)hs`^y)o9)4I-)*u31 zbpMmUZ|QY`Crc5O@~=+6r9vB3GFVc+&7L|$D*|Rr0$c^Db3NkKhuE;85}o2r8xfnI zbg;o5(0^4*C5|DuCjeBa0F_b-l(2$66%mjlmS4;o+Q3?1yWom%u)&V3OEih(hg4#{ ze1KpaGl!vs`=tWJ;!VtM))OIM7csyPJt?}wiaLbblNAfEjEOlWU}r%LFgUp9oK^=; zqytL`ri=dw`yGW!`Km=uUJoGQff(Dmnv!lwbUEpQt`Y8{Nq=9)J_vx{DCwbtm(+N8 zNZ=QN6DRNP!h|_o6V#2M%&;!W-iGdIaxe_gpx)T_HlH;+<5uyq@=!X!2 zRK&=UEa}o?dlFrAf)SWV={jWQnCFO)bdu-Nc2?DU{q+!IO?E<_X^Y-m_= z636s0Pyk?!HOAgsv*mo(W{s|0IuC zhv6hh<`+e%G%6VOl?o4s2w`)mwLqwVSvS+KH_!GD?p~#803!{6SXZE`d+yx7G92}K zJ!1(I^B6D7ZzQq2$BDpCPAsjgY@VO_t>-@e(hJV~r%!(4Q(wRH;5`Qyw{E50pdB`- zXmR@q)J)wfVV565_SO)65&E{&MQ@owlxS?)fFNtx4jOnwS)l1*tTsfk=9x%Wi5FLax+Gj zjA<-cr7EQ>^qY`F1O~!uIN}K)r7JAVBR0(l!8)a$H1jE#d_wO?$w|6tjImZ}UHQEU z!D4jCAPZr!*))R~U=PPzq^;%n4q6lzJnUkP1t2In8=omQ0RW*w^qr1S=}O6?5((fF|F4fCeKqt8Dq%9Igsx+E2Ru}Q$jk~F5ft5o}J7~H^$bl zsB&R9K|~K;_8B>0AUa{EFajOW;FBwczX(9a7;7w6I=s4vS(a|J4Avb3Xdz+ogYm`i zjZguR^6!rpUZ5m;0e-m0sv|ZiDU#7qNY~BD$`~aEnX_UrQ@#RUxTOL|2zQlIZMj)Q z*0e1FRvzn;?@4k+5w8y{fsrU1EK?GSgmcW1OUUg5=3h&o6vYRIY6J|^AQ4$85GijX zAQLs=P>5Jx$~&inYzIpbnb_0C`k4SqXGRmYMv;&{K*HhRC^Eo>Nff9<9xEWz51lQ; zIkkMUMBoON_#y|@fpYRV8pXYCY0fF<%u3^E$rImJkZVqor)-(fcacy=A-&%A<|Rn4 zoHPnW3i&i+9ND;rHgptN8|=1EA74B$O{a_g*l{cdio<6Sz>UrDhTFMRKGs5pXmf*G zVt9DOG9SH13QvPsOPzk+MzO9EfS^j*Ubvj;PDZj_@+NVT{BX2so7tJU_3Jmm;k&>X zuu8Z(Z=;n`XpCCu*Bdsz`Tc)5-*g14*m3)d-}c(?-T8krC!g4kEVTp` zk|I#v60qk+4!f`pBY+jowl&b&lTSQl!`wpKHgWSF_l=A2O_i%IhX8m`Cd`n3=Cmdv z58|kiPbPKMJMv(qDI}C8D-j8Sgn`HsAkNIrx$mRVsNe4mW@Z4OZCg3^b8@H<>X{jr zw{1+;0#+6RH>uuQYfV*E*(_@!tCO$fA-f*e7*=`Wz+qIg7@i9@*{h@yKCF9%Ad&*2 z+1YsjATq<@TJ#?NIH8O}Rm2I%?-7C!Q9%A5vLYi7f7F}AW1KVC&~U#)emLqXwmq_0 z5!t$``hyw(Mx!+=%HCUMVu(U>ZFldiC)AXFzOYrR^7?Ba-8xCK&J zLDIru|BxJG(=(k(h>sE;%s`HF5Ia20b`}7~0rPmbKl2KizS-G10BB9qGz}0M(-K)X zoD}&aL7}2(#ljtzP>yhduZp%Saw8tv5jsDK9Qi^eB{8+QBj9E7H)w=3mm%gt*b&au z-3sW#f2G3<$vdV$5=tYbh_v9(z+u6PMak)9&|h|_}6B@huGq3}D$=lQz&CMqZp zl3+bCzAIutQ5L2N#l5rw@?$}=v~IR{zZ2$e{NY|ynp6cA2o%iB?B2KX%^&Q#@}lia zODlD)z@IXgH;kgF0)R#9qBdAp)$-b?LiNOp&babHr#|Mh*M0a?-}%D--K+Zx^PAQi z(lA^d%=LO_o__P4cfI~kKJthM{q|{_7n-I~N?8_qjaDhV=7)Q9e^#L)t%1k_lEtcD zoqEC|kX2#jek4PR073{<2VI)hV~Ihf4og`(vob6Il63(ivevF!w=q0x+oqbS0l*kz ztwj+uAtE>1$8lo6sEdyocVsLJL92|Qc-;6b_0fb6d1U%p70;JegwyypKl}m23 z!_MVH@nLE%X5xC^w1$AR){bnY^!&^$05s!~wfvsduB7pFP|1=CRi&-~#{2 z%6asl1rY$OC1V<;wALC}nvKX93qVRMrL@dKftOjK9VgDo zCw8B}#k`D99_ba%^YWB3JjRqe3El!A(z@yoW&xmS#>Ut@{=$GhK&^>qR0b*wfprm; z>x}C2WWrnvD1#vX`1=!Vb0;Ze8~SY_L6RwP0~GERNEXqjj(YPQ(Sigf9^aLDb_#67 zNNB_)xloC|7Mzy>cq|HNUP7Rm;<3*WycU36S?>Kq>GBGt@Zb<*A>ERMq;)M=QgdNG zW1>x!UE_~e&lS~Au7HqYsb0i)F!sEZ)u~r;1^|L;OwQ#I1pz=fD~{(bJCa#OmGR+( zPIWhr&%sDb)Oi$UA*w_}h_d9KXI^6c`5VzOCk|BVD**r!TC_+C0ov98z}eeR|IQuX zCDSUZfj|LRKvF(1XAl6eF++XA;EERr=^S7Zs4MN)t;9*@?|E#AK8-d}yk>#x4?>fY%m*>Q^_ zt13-E6i?pw!8BeZ6}D+vBo(=!p=}ya)wWIB0H8G{>|kZ5>>RlQUVa$)1Q3jG8ku6q z0X{n>><#7~z(;+&Bu85S1fT*cAf&L670bfRf=SjB&ahZ1L{#7Z{te&!`nMi=<)hC& z^Q^;1kN)?6{nxqYoqNIg7Z_v296Kll1nS$@eEX&wZ~V!h{K zAOeW5FGDeTgGz}YC`F;-6-emxkpdf|vRl^7u%{CN0WDEg)uZwFbN~4n+nA^S)K86? zv9-hpE@N0AC6`b{Mp{5rRi$qF;Vt*xv*Qtud_+}MZPQ}diEM3M*GHC)eB>klxPEc* zXMgVJ$K$c~Q;Y-z{yi)d4jpo{2yVq6dXvHaIoflV#(5(az}$ngt|9v}j6ExWTdoJ$ zLa~WHiRmFJTY;3 zjGMMWL_Ufuh*pS4dC2ZKYFQ~#yk`NxX&Cs$S=^VNnR1mvWV%qA*bxyd0e~OiicacI zRtKjRSD1(dp+{}7(lN8|wh|8uQ4q{OiwWLNTH%a?!xf7Q2$eX1JVQnpXh0M`b3J$1u**%uN)z9AN#KDu1y4>YykzzeBre( zr2qjDQQNj#*3CTr($hcn#aorZM)j<<09p;Iy-VXyU47f*A99AVrmreLt>|k&3PUCz zObyV}IS7RSy}BlASJ#I9Uhnx&x%7$$pZT}{e)Y#bcl{6V-7&vzeZ66!8IQ3Kvs*UJ z((ajBp#r5f0J-@eALKFMYgBk@ufJ9VP)uF?OzxLIy&J1QAcE!VHW@h+o zIIxzgy1x6KyRN?aTMFwd9&yE{O&iC<5o0=1s~!U*b@cWd;2zK}*(wQv~YI%>lr8G>^E~Bq zcmtSa7~n32(QPwf-q=zWmH>y6n8nb&lvpJ`IcgHmkdNgs3JC@ZSiiaZfIwjqV2I^2 z&8|R%uNDrj2IzcB$#`TcPJ?JiI0DL z-TL)cJmTS1rP|g+$Pt#8MPD0MIiN$(ag}?JKn?(f;&f72SJ);gGy$XE6ecP*nlpsnmo4b560@T1VhL;3HPV0p+wMqlTssyCDwx%< z1Vk(YobZwvN1Kf&bukxMm@(;R*(w3^1hFZ5axSC~^O$(rUjmf+=ETTkNt<}7e;_$Y z!=PS-`-|YY6QJ-Rk8ZUH;NE>2zGZsEJG}rSitesj&0CT-jhOnZ1NjY)m z#X%t^LFgLk&XIBF#sIYA235U&cHT7$5#75fK-lYyd%0Oj^;rbi`GfNld|(6kze%(y z;4K$TbP^#DLim8-4_ooT7BTGlBy>BG!tvFHh)^l@AOH2)7rppJ-~Q&ev{v7_=G#|Y zb=7aa;SE7uiO9BX+qTwPYs`Dz``#D7=*7Et?Nv${Yb;qJvex>JAOZri77>?MR(I~) zWvuo4;rIvrkB{O}O26Qhr$4rf0KpxLjjBx@wxnT5DQkT4UN)YrXTH9WQ^`%isO3 zcOs&3a^g-TFF064x&}(0U_z}rb`=(LAKO#W=Z~L>RmJ~+RjQ?@hn==AZxBpa062zFJjvT~&t;9=zq| zAFi&hRl0JcYx3Pirm!KT804oeY^jiesBqQ>+1LOOG zN|rOwFTV;oEJ$gjY4V-SJMw3i6tRUWOKLUyVhGNT7pO10KjT3>X|$$GYK zS6hocgS7>$`hzj_uetWNrZN3~O}5(r@J@C@uOK3VRTb8CH6AxBtHZNT-1vtt`SExE z<}-fb$>+}C%7Od#D6PO)I&|Nwf92^XZd_;@6W{YlfM8Treet?`_TRTutzWDZYNfPR zs;+Uk`m{%!SJxE*D6Nz~^#dk}2vVsFre8d}98YJXpwvOP{SyR2w5Y%s)9=sx-}k=z z;+MYkHLw2l-+%KT{=+~1)9TvVo8I)MpZ@8ezWt6nlv2ci!JUrB>{7x9c`Hnoj4{R% z5wxvARQK%I@tW7X<`4eh4-OtYq?9t&0wMu5O{10m-~ajFU;4!t{`_;F_vuf4x?lGl z&4}1E&0sKd%gwj_#&5jgg)jW&zj*%#M#HAADr2mZGiT%cAllE@qC3$9ks~pdCmod< zjYoIhb=Tp;haChW>&^l(WL-{<-7wn;z+*}WEFx^MgErUF<3sk%=(cCpPA^bHTiD${UBbi z5hxBXCaHV%{sRa1?mtk~6`-o>-kv>sfA*@Md-k(``q06{N^1u(5>FZHkZY(z3|*=c z0!$NGftu3$ae}&}2-CtJ@{TkWg#kb3W1!``N~BE-i?xTrp7+r55IwQrg_u@{^29<8w=7S&no2#C4)rbD>?{rl)ZOf-GCFfgCqnnGGSsBlP-r6bLJFLT&PEObPmQie++JlpALQbo$10ChgEU( zJOO2LE2JF`&E)aml&Yr3kOf5%S9hL8f~qKj&f9tk71g;hLO>?OK@`l=@d6E>3wYo~ z;rIHP1>IUusI-crqWxgpgGa4@RW;V>P0{}~=#)`b6ixpe(Pnbh?30wuK%!b7mvTwa4ggJiS zCA=EP4RAS9##OnaZBV)3D;jHvpsL*&ABafqbTCU)X-!0}F{U-v_m zqWAvA`@a3nYu^6$w{6?D6~GY&)=*=NwZ>Vfs?r$F(~3NT))*wLD%~`VC9Ad8x&lOF ztg*(iKx?J7RshBrcSas>E%EzsD_uGFW~?#BYOR$5YppRYzX%T-~!>u`N%=CsDOwG30svry8E_&9 z0PxR0TSLL%op;>@0II4Xj1{U9jIlrn77TpGIi-|hB4C8f4Cf3qO&0`R*K|!*08p?x zXxI{(rfHgHEPZ;sUQMTjkkqs^0AQT!I%C|}Yl9F%gb+a>*bE2cnnndtU^>&O&N;`J zh@wCcF-49snz~Lo1C9v6fYWm>;5kkP8VTOw30LJboo)~3pOJ{_Tb*5vS zrm?YzJx?7k$4gXhxdeGE&!F>zta)wRL`F}e@0MqCRkvcQ(ZIG%P=DH5&40c8@(VqB_E2Qm?eSOu z1%Vxt&$y;*hH;58A_Nmmm|?;)&?sZf-2RNs2@L>*bZQe%>UHpU=2iUD4nX@EC3my4crW?jxh~)a?jP2wW%TPkQO_(HxUij zc+a-zYAf2|fQwyo+;SFbYkCJ(O{mZ^=wiOZ!~hKLC^jy-&=`W)f^cjJ(6D37@DpQN zu*9}Gi;5ctYoAw~t1*V|Q0)}wwQU8kYG6hz3PS*pnVHraEqr- zm;L(hshfK=4pvu7lE`gS&oPpK0b7xI+|b}=+c>w@N+eO>0MV#|F%0a|v|pE|-Pi0| z{_D<7M=q-eDid4W`jlJ5N#^cXJbZm?Xq8kBJjV#@5e}Z4#Kv^%wyHhOn_9jZ{rZN=lve z(X4;}+4jhT4|M6-t8JS?$>lbE(k;*0ykTYvE{bVG+onGpWhz} z1dX~iO*Mu<(^SJpDqt)KgfS*a;+a#YAAfvu(k~6fPsNwFu}$TLWm#;07%m`ol(v>!iZoZNs_@8k#J>N$gjP*+Z;GF9!Wt?>qFo)OfJS5V-#b-T+;OcSh zR7C**#<;3#1S5n9Rdvc3MhGD+3Is4P21F3H{IO~JtFPZYWbiZ3KBFkA%jH5C8z{xt zl7SFV20GOZ|2f78I1qs#gbg%mqHDvihk$cV8D*3SfZ_M8U70rRl@_g9 zD2n2eB!m%T+*sY`j2p*JivnQ);D|GgH-nASw<$tcBt+LK17_ht%nVki)Zi#V6fh>kgt)b116dnZ9NcC6jxF`ZGah4*@Tt{>ch!&6%&he`cldB@=TJ<4 z*(aJ~l=x;sB{i?dfvbeZ+W^FI-}Xe?PHqdfJ4$vSHEXU~xcDkwN*jPX*4u5*Va(Ka z4oOXrWnvQNrP{!jqkGQQSl+h8H)38*Uc(-7iZ&GYO3en>vIt>+67sKE7D8e>z|!Xq zAG*nq{J+b`2&}}Orf_p`GGmS?Qe${AHcy9)jZ8fCEv)2duH!D)k`|oraENg_03a(e z+Af9L0FQ$eb`?(r8>5@^*O_V}KBmJWSt6*8yk~LhW7-2?f&sH6L9$#2jvE(-B#W4T@AjYbLVcH_j8Nwtg2mMWQ z&YZpQ}42BoI!(VIail?-YQhKhEYMjyU3o1Hy;}f{p99ZCbxEIH0OS;MjjV{)$N&9$!`b z-8c@7`xrRaT2%%!h{sWV+`}d|Kt^UX!=N?T4ih9vJ^+Zy5lVH*<&ykv<1Ix|BH^$k zApnFp1Nz-P{003jm7!xJQ=Qq<>sH);}2~1~-A~VKRRdq>HYD%ir z5*`i*fn&+#l3cDWfB&`im$frzzMq_&q*JP?Dr1}wJD;KnP*K z&jSF_NW`CHJ}fIT)pfVqL##sv7~`rU0|K|(jWD59*E9_w#2NSb`~aY8su5S_a=S6Y zjOvkSR1!ryD+gtIBpe2WFd`g)>eQ9&TDJ82OP7jfy!~!wc4l=|wb$o!xm;%VHC5Mi zAOvAdDHVv|c6;n`P*n|MKmab63tTP$kmab+O;Hd%UO!`cG%AadB#Dx)tGdpTeSQF7 zoT-Y!Irn*dw(L<-}D2gc-SLjri499zXO@SEwIF*hnZYowHlqG)GL zGCIo{#{@GAj2i+jpdG%5g@nUAEUXV7`=CUyvCoB z+h_M691gqOF2Q4tg0AbbENhxxH^1JDw`VZU>*Uk{fRwbPd`Zn(c^Ig z=hl%EW^X8CjDtVPZ>Oe~<%p)~SRhQNz_`cfvuAWP8r5`7B!mO^csv+mIU4bJJ@&hb zEK^3UK}X1;`fY_*;}b&(*674Uu=x*-+2)@j!yi|PtDVL5ZOiN_mKPSkqU8RGEL za+CO$_n&i)kfoq42x<*a9I~a9c|2Z>v92hDkjI~z(yVDyUJ7b)xsvLk|Y&e%BNpdJwP!xqZELdV4Az^2%W1IniC<#V}k1hXf+q`+ph>>@5 z9@TZ`_4~@p%eHObuIU;82!s%XIS0m=%OxeJB->191bO?qyRuP8b$~VNEQwSlafqo zD5}b+W@NrIKE}c!!Gs6`63FtU-({qwe>m#{<8Ix0b-(=b3zy`|$jUJAC)KGxDap<~ zs>rgeDk33_gCvTAplGu=A2evtFgrI_*EEmEg9%Yo1tTnqA^>Q*LSy?|Z7j%RLk$2mma_hbd+t9p zWR0aYvz-6?Ct(iM@Ib_ume4P!pCX}0iC1dJ%Z}T&Zm&gSBd|ABBsM;-Qf@1&IC#YE zy9po57O0g1U~eXan1d%)RgE!n4r@FNNO%DyKID{9{|V^0Q|iRMnAia8lJjK?i`8se z>;;p6$O`juR8UL#&K~`rxz5Tp8TUSlB^`0xs10{+JJj-5I?W%di7PnlKN zq%+g0&MD^%5Fldiwc{KZHD#f$D;~k6V*ctEGZy^1h~#BqNzkG)76=dy#8Sckp`{ZE zip;2G3Lq;T8W%RJ+e9~sbR^Y%n*C|5C=l1B7%Bl=t zM#fpggpk!v;2dMZIX`~#SR@!JY}XDU!Z^i~8~dqSaL!-fThr7Z}; zp+g7Hojd1oxtlg^TDN}va5%&{CsrbO&bcIsCr_V53^i`j`22;7=gyvP)~tC-N{Y|t zS5$TX{sWgU7pJDC6&4nHyc*39GaP+fPs-3JaFaJk*}>(>JYga}pD zfulzbH!3K|%&tRqwr}75b7#-EJ+785Tj%BH%CcgFZy1sCt5>h~`;(eCYsMH$Nlhs$ zE8o8T->Ryr%*@R0-MdMmq-i>E?smBV;P8^Ljj<^74wq zhY#zzS|=yBdGls2$sG!ZFv326Qh82gcqP>5iXl$=yrR=RKB zeoa*h>K8O`)k2bRC>$0n(R1j~!M`{EHEh_hjP&$SD3qF-4gkA$?G98|rKYB~XxY-^ z@lc(XmzS4UR1`F5U@Q*`M9>*Ma`b2*5a`gpeSUtvOO!NS)isF-g3seVdGgGO6UP-r z>DHx7N^%P4T-9^{;EX3FC5fWAb?ZNuuasnEWVCGAG9xo9B1a`rD6c5Lbg8IaVY{m8 zz}78)A%vPWYu>nVV@=mN=Lmtz?Pi?s*s-Ieq$DFFyt3lnxoR_x`32a!Pqj(`KD znj}gd(Z#49Rb?X1# ziJ(eov|SN_4k%YIGCSbw@sTi0C4Eg z;foi}3j%4~rfp76j;5-FkkhA6S5;Sc?9idIs(Qzc9RRFVtJZb%^P^FD$KIXQ)fGv} zDQ()cNl8x8RGo3IYFZ#rotl;sjYdzNJPsVPv$GE!JK{}B%FD^ASGS&FTp3}0OxH0X zK9Bdp#Y;yIAJTNaZoRrKnz!)!T)|*a5+#q{TUvVMpRNC>y4JKw(-zHJc)i|eIO1|k zmoJx;m6f+`+qSB@YSW*a0728HO!y%+%I3i(wWu9k-U4?XV` z?3Uh6V2niVkK)Zfh`(EV9W_4us&}r|I>*&oeRH+6BZhMw#i6+8{u38k&(%JS;t&;& zf864G6c2)&!xRH;){L`^H``Zez2^9*mdiChjG5qrGex0EUhjZzjc0$qorVLLV8V4m zDU!s9Tl#nR=^wTnyR&zTit-ANR|G>yS#reD22(5~RA(MYW%UIk>~@Q)t}#_6yMigLck!TySuwvLfS=AQdU5^J4KX`knRwqmXhx7TE295EUJ0y~oeAzw9bm!=$+d0HJD9Jc8Sr1k z8sKe^bpyK-k(fzq2TBq~eo)n~H1$}in-g+eW@Q6DLPI;rZ!%i9UC$N-tXsS~ernfS zB4*!<>NGgE0sDpPdUK&$zlmc56e{6$+~~YfHirOK|6guyXR*PQyT*)YfzmCP<@CP; z?1n5=8y&Euqn3xqj#-dX`>say(&-!r#R0pa!S;c883mqX{96DR=bXx2nK_8lg8w zGR{xSVj#Ur(>A?wBOjA&XVxgb>pTA)A|gy&%J9%08=L*|rFxa~2efaUKOiKUS)%*b zjc9+?kEL2Ze$=KAvNs^YqLgy2wV5g;Bijf5!B-fi(Q`;KG->gS?J`Q$pw55lUnd&Zi(qtI6k$k|}F$6VaT6 zjHSOW1e_}Rs%keUYcvs|7j74y>g{)~e8j>oNVqd)g4zSyFrXF4nxmYfU}X*0X2lotSU3N?G)tLZzVs9k zDo;k120){M)Z%oju)4klm%+=`=~HiK_>A|$iCQYUB&KX)-`j&5(V+)GaTE zXA$EB!_LtcrChCoC@U%&y1Ke1Fps@@_3DcuGpe>Oa{dfWI;SC5?pp-{3(wi}`mrgp zdYD;*q9n4}<3TuQAR##|@N}?ivU>9IvAL;9EK$2dW?vpW@#p&kkzvWlB2C0>IZ{Oh z*pg^_t7svU6b!v$;dzZt&+V9&Frcp(NN&r& zMI`knzmwCU0Le|Cdbzj2fgk;~`8d9JlY@yRhUR3ksb+ZMUS{^8tsMYX&5T3Ro1@zV z89SVi7SFLm_i-^3UZG_^A)!X1;{?1R$Wne4^P`!}vb&tK_2`uDtA8%>Zh^?4G(8OV z`bi-q4d+>?a+!mv)yndjg8E6noD9W=#P9W)j7J%xFE3H;j4fJ@>DAl!k2}xJlDCXX}2&U`%9p**r z5Ht_EXMusgeeo#|B_SoDe)oq`D1X8Ix9<-L@$vU&ekQDhz~d!I9--7D)c#hCyvj+D z{?B_x!idm!aqmURxhpy0nQIrvTis(G1%5_;{hqFCa}z>;5>DT=DW0PXFJX30Zhsc_i(ogTWH>JIyXY6P!Ng$>n1Q%Q^xI>i{>iy zyqYWG_EtVfU|XFrAYY1kCFJ^~14p znI^zKzK!1Zqzw{7DPD}QrTrjvG_#MswWF5e3Ihxw3x5rNy(FOKm!HkAK3}w}w6>a~ zQy3f_^frI|{@sz1QDrhGL&UDxR99EXdNng7dkn#Athc1QmtY7a|iBUKWZH6$Gy#^Ehb&4{N*2t&aqQOZaq^$^m)=D2)i>~@>M z`zyr#WfL)q@5UX8D1;>@$9r>##m&`~x2vS21XuF3^Ci9<$vNXew*}eyp1@sItxp}Rd z`C8I8^TltwSf#j-t9&=dD>eF4?yx&(&KyvYJXe=}GA|Ae*kN~zYe9BK2DhUE zTeo*LyJM!l8$TM>vNx{ofZyfND_hTWdb}9_?6n-Xtp(6QV@7q4>)&yQhgI`k6W!YV zPF6PKbSO<9_Nhk$DUZ}gQd!~-LW7S zSSb`L3Mb()JzOa|i56M?J3PE3u)06rzO`sJXWLBtDr~NN$=Tr<1&iR@`vAY2Kt#C+ zO0M;ZY37A9qp^tza(KD~C^Mkn@tJ~;6)g?+3&UbXI%Yt_iIXJ`%a*X-`%eO09v!^r zp%FV{H|q=&(%8u)AxTls=4av%c#Wc}p_L|RGdaO9K&Tj@v;!R;7FqSpmy_$cti3!G z_fUF6IdXvBHO(VHV`gElmA%^KT^EIrDi63C9aqnosTUVQ!EE&uWEo3kh$4yOEuEF->P`$Vy!2P^3Z zLMFU7ftP12V@9>^Ep3jK4?ig!4cdI8fffInsNMW|>t}{z`$D+E=-8N_#rd`X97bNo zAG8tTdvy?S`s6n*eUtfFjgXj_8$hNT-F?`v$tR*s9J6gH!|H|X5JfjvkptJ zED?A`%ds$H&mcIz-f>0T;Xts1=Ot)zYAPq-IxRjPzu((OaVOv=mcxGO={6!E$Y~`$ zB`55qiiXCO@3KN?Wt(`Go2iK|*~_r}4QE!uD5dW7!g8aIje80V3k7t!uhWe~Ehl4~ z99-Bxk!ntgXJyNUS!vCyFVXpwarxIG_WoJJ9ON353!>6-Jur^A=foo+g#ZhixUUYC zBXw=u8JtIt%+8;t&svy`hR@c%I?Pp0f`FWFU!KsKMj0QyvfY1UDk#c#7?S@~1#Trs4o1O8&D_eC*AX{VSnDgQI-g!iJEmJJJ}Qin2A!i2P{OM#N|yKp+xyNfx%Vd zIG#ZHKk|ie`&Me4uyaS%lpC7JXSWB{~B8_ImK)v zb39E%L`ndS02Ql=vC1^C%`EUP%}v_%au4Tdkw(fl(d}vf(I+}X@X7UTvxr#>=(OHp zE!Nq!Slr=4q2x9kupF7^$Jac7&6cdD9q5)Rp6828$l?AE9nZvsf~4L^>=bU}^{5xn z((XUzyrisLEu&&N5BroLQvTcBZs8x%6he1i4>&Lb9~(0G;}3W?3o5m+yMd|cap$-1 z!>S|2nx&B5c3BS3qL+cz~#kkB^s%w}Y{`u@$r5Ken(fe<%k%3slkco z>->8CQkZ6jutp~;2rq<1>fS)bMTM2n_w)}Yifp2>W9-0=>&#fC*W<0rJ2Nf+!?W5% z9niLm-!Ylc!RenKXvGWEndSoeKx5GyX*XhwpiytgN5#HvX$wycnS9qdBbaa>Dz`YefeKi{=mDg--RU{W;(v8Bg^s&@4O;*Bb!7=WZc9 z_R7GO?WwBx&jPkHbyB{oApV4Inwu$6R5l0p2PLtO3>zP&={79II7dDkMhvPdfWIi} z5-NhXS>cbjXIuFLQP<4@px;>u0xp}q3}LwJk@#;gJyaVUAFO+e!Ts5>%dN{S)IpDc z1w8Yj20p$j<$8O%(L=&*Jl(882U?c$7lr#jS-(yfw!5APqj7=70xj7Tm&lsr_U=ha zz*>`<$oE@h#Zkj9TqyGbiHUQ$Hz6Rzq)2FDnxjS78$%_LDdzRljrz?COGV%XobyoH zfBKF|;Tnaz^pAE^zsS^Rm0z*zII5hIzLqV{{NA{fvbh8j~9ze0zi%>W8XPu~ z!nKvD%SXeyy<+d|FXpqA)AV>^!KdbkOYYqF8VYF4)}^vQbE8sK$T!BP1PQ?)X1|e9mQZ_5JRSgY{z0PcG;2a%5Y-PisLMc( z;IUm@Q9a4?g(fRIiRR>a%`EDC($iDBK(E^oXe9^Z39yTW26p(XZoDb`^x|zXC&a2o5i(HE8H! zFFp?>KR-MDy4F~)8$y!T#`XpBO_F zzTsaqYD?&dxPZC1VRXbkpQ%%a#F7=t^Qz^PzI#R+efOBBjBG>I`x?5{yg~1QzC8Ol zJ&(-1rNm%tE~u96o687XbT_wC)t+3hK*RLd`vGzr{#PfICP7c`p4Due9deI-O(WT8 zzR@imaBt2D>dcmEnR~uosu`Cg!3q0`+u`@T8ql!f>33nJ;dQi%>?1MLOV$s#SkV_| zi~5{kdAEI*e|7E}g}B&-1>EhVGLZ#F`dvSW@ zpQNsPAz(w(`;~J{7D1^v9pg0LlxbLr*P8^$dc7dp%+1yjT-AzU0`8mL= zSX*0`La%o=f9w=kHi?P7Cg$|tDImGOJVyT4gG+42eeVuymGxL}IcXmo8TqB7S6Eoc zjXZvMO~Rv@^JMF*)LdvgRn&IB6VIa@O*&Kf@8}8nu;%xSti8M>G4-ZnS6&Uc$!b^& zY_V%_>^Y$})z+^5I???u3@1qX`QrL$iO8hc`*i(VUY?q8equ@z&3s3PO@dWo)p_JF zM?t|!kf;C~TZ!Eq_kPK~;esJ14mGL3?rQvI9$;YQkYMpUTCCHOzT3WYgIfijc9l#O z4aBwtt*s(&mIcH)I1o1;b}U+f+Hpxhnx($+@9mEi(|hFHTG*PDB#(>}^5@mK%rm9j z-oACtOZLcttq28rgvjH>UzLRHHedQs9g_gR{w1dlp{>F$kvcAWx6Ao6pPWG7v+h2g z6#od`)k}EJNDBASN=wSyMd$6)jSgX_bl$*_y?7iN>00aO><^6ec%R|zCb81|XVd$T zn>7((nT}(pj_2#{5gxQ)##bO&4`ka7FxqrR1Y?yqSFNE!IhN+ZaetCwAO?AU!2`Ie zB7dn~A1)#ftBL@<;%QTj=STO3SPfkA@xSlUb5FC?9*D?cC=0XJ)6Sk1n|0+b$I_2^4=(@%aQD7C@>hh&> zm+GZ;qJTgsbzk>Txk)_;i%}*0Y9kB?>Zvc)I~1z>u(K;$1xfmC(PXqgKV|&s`RTCO zde>eB;mPdqp3?YEA>`N!NF#;<*4a`4_dq3qnpK)k^r-=b&HKEBEt;G-s@?jFuC6(7 zpJS!Z-!qasOx6xDh)CDE!Lw&F=(& zD8k4l@YFQIsj)t=Erdqz@pQH2WCy;Z<$K7dS{Fak$JE!SsxzdnbuyC=PY$Yo@%>wc zNi$Ocv5#<-PpVvN?>U*o?J8w$`U_H0^Tq~nz2{P-ApMw&krXZfIu`jG!$@HHNZBL!fkYY z`*%RnaeTfC(zEfKHF8iqfA%dDbPYAMcZoz}tOylbKr`_uXzVxDf!*oOaTAzEN858= zmd>))wp=r_(=jkC2tI043n_I3=u?&?q;|YnSe$(SKIi* z;Y;O~1fu4$4EfjXYT3}en=ML+M2Kpl1e7Vz{}z;zuWI@;=rFiG$X>MDoeJ;6diXxp z+szAVDfiF2`V?kCxBbJzw%vbK-z=B%$^M}`U#(6y5lmH!0FHBdFE~`Bg zj#C7Kf&-EF3iNUMg&HgM$Q*7H2|r}}<|aq!?BisO^?2M()O?#4iTwO~-6rRaJOJ|K zDb`qhEL4wB$RA1J3GyADGL5x<3_W8?Q8V@5@5`Bc^o3J-5ec%3IvL`C`OY3B|%}A~-q`TWQ=ovY;=cmNN z!lLE-h5qf3QwQ?;7&!d_%8%&5<;VkbehA^^9p>B3OiD>H6%DFrZYBq@bFhzRi+Np- zHkk#P1dKQ|2s^FXBkF?y0w|94)k*8k|9DnR9MXS*TQp*Z9=;}1Q(G7J0qwFL=I04o zoF?`D(}Uph*GtsW?x&@d9o%f~)rVmx0n#UFHP+Prr+)$-JY&g)s=@jFM)i(?XLl)} zT+0h9Qab2FK+BC@qWl8TiatS_jwl3p{mOesWdai zn=V^UVre86^L$2jxzhFZ^-ort1PpXvfB=`~@529yO_HraLAm0oneoe&S~(_u*BDUt z7LSwU#LUTJmv^A~Cbx$+NIxMF2`+^=r-)3@94w0_;C5m^0Zz>QY2CBM9l9VvB?jsu z#iI}Xpdk@>cniyt=(u-PdAO!J?r<_rP|_gX$_bFR-t1M8^1bvwzJs&E*Zh%JQa4fO z-o|JcZ+;W)jF!{@mCUSZv&gi~Z^d^6&_ZF4ms3!rA8z^Wewc9i5-U`E-)rtC z8Yq9oS!lqRXFVQ_%Fma8Gv(P(*EoPRo25*%*X_5V;*p`MZL{j(CKrkgQ6ItnR`F!o zS+~WJfsG6DSANo;#VmtWb`d>QuIUK65K#%*c9)keGMnPJ&srJNi@%?3*qoKa&_M$@ zXV3mu9eFYY+33A|m@yiA{bJ6vq$QF3e?NAJ#PhRXz1ltFm8Il^#ffEz%`YiM^SsM+ z0gd+jF;|_s?>Kz4J6}$b_C6iM*na^nbaB(-kjG-^M~{-?9=Dd^Nq@R~)AUVQRdu$M zi1C%WAifp@$o!h_1D~mDu;m3S_rF6tj#p&gSn;^Xk5}_e!j#HOlwMeby`3Ab#ED1Z zip#YElZ!>P-@C!m7@MKpUHZG@sV%N_U%csbn(VhKFLLhIVHIf5Ze4tQ`wgeejPSRG zI?ALN%cB2mF05KSkKep__rw?^N@&>Rs;j3r+e1JD^jyR5H6Cui$FfNCO%!`v?)e28 zT=%rMJxF-$+cUBhz5#(=r{YHvJ+zr%#4#V@YgpbTO$5VdrjuwE@;TNcBf3l4zJOJ&*VpB-eIt86y z?gK`GtE0I}o0{F5XbLT?yUkxbugQr)okAupPc4uzn0r5I7bytfOw!|$SF1iM%Mrq| zq=5P8IX`|Jwcj47Z8?VF9J#u>fy`H$*QB4ew*WZCW!x&daDo|pkA0w#BaHmTLrg*p zQ&&-mTh4py{N+vMz!6}*P2467saiTxRne?qoucvCo`9SAgS+Jg@yVn&k0(c%PTC)y zwqmtVgU^7bM%+f57H^X9=oe4Ne2d@7vQLiGX{RVCl{nDyzg)RrBs}CI$4|otP=>JB zH>7|$)Tsj_7yx1dR-?sh|Js=v|66VI6LDJgA2@nfQ&R&n2lPvtz|)E1xEuegEBx<2 z1*~Dd2PG^iT+g2mQ~7GFV8+h_KLL*}aAAascaSaS$~g%@RneG>kM|GEF^gBwooY9` zMxGHUXJ?%sE}gVvgT^IqmP0YA@2^XFqQ9TUP>J0iM|oAY)vqnCje)c0o-b4gXznaF zHsNN0+0bTMtT_|Em7)tcfC*89FQcMtDqGLT8rC|l?@NK+?Eb;2!)LQ!kRwpg-# zt`|hs{Lw(5@{^84uu)E*qs*8O=oT4`%BTB5MH;r|)o)_lQLRA=}PX1Ta!+ z6Dr~Dm1!j$_bb)vmpTO&9*%tZ&sf7mz%tBJB;wq z`_ndtW7!Np#xsm`K}wxL;Z1c%+RxHel=NIz*Xmkt9rSK!{%8`nq!C`H^b3)q*ss8(2Fp9gP zb5p*`zFV^6@l5$lZVWcG^c{UyKR9<#GhGkF3McqPt(6xe7aqs(q8&JP(&h1H{~G%T{%qrqnlyfKplND z_kZGhz3Ft!#s8J;dipg`ippFMDZ;nGhVocHg0!U zQ#Muvtz}@YiQCWrN5m1BDdA*l8W^A$gBr}LD&4V`jTz54?KJ&$XwJ;zc={#i95EAc zoMsJJ45n+mD$RMr@qF(~iq?EisJ3hx=B|bYYM!4SDmAktz)*?^I7)EFz~4_G{7z9H z2GUoTCqX8kJ}t(|Jh?wO^c>8NJlw%6f#&w+ddUgCvzr3=kL)-;tAhXqu=TkP3ABs< z<>rDw7&zp-?tA|MCcvm1-ly#$0^p%UOqGt$t@$freOAvAN9ro-8OI|EQcQ;{5|Ha? zxT^xTz!R!2OwJZgPuF{LC3SYYT~wG#lEQ7WSZ;R%2cG5n&kZP@Rr$(}q@vDKg)%^| z#;DS)Srr=XM#lzOR;Qo`f%;SN;!{!{4oWMdsU(O&nmOVtO?L34(xCJ+SdD z1cVo<08mz4On?Y*zjBj6ox_NCc;kESb|IZD(h$^PhhpB9_ajy#^Kxo?EwUN%?N!|9YDB)�IUUrND9tT3*xd}PRX$elrU0m!Au2+4 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 p populate + populate --> search_agent + search_agent --> fetch_sources + fetch_sources --> browser_decision + browser_decision -->|"no"| populate_agent + browser_decision -->|"yes"| tinyfish_agent + tinyfish_agent --> browser_actions + browser_actions --> playwright_script + playwright_script --> populate_agent + playwright_script -. "later" .-> cron_future + + populate_agent --> oracle + oracle --> validate + validate -->|"good"| promote + promote --> commit_cap + validate -->|"bad"| reject + reject --> repair + repair --> search_agent +``` + +## Plain English Vocabulary + +Dataset request: user asks BigSet to make a table, like "find Amazon Starbucks products". + +`/populate`: backend route that takes the request and runs data collection. + +Mastra: app-integrated agent framework. This is the path the team wants to use as the main app path. + +Data collection agent: Mengzhe's stronger older pipeline. Current plan is not to run it as a separate product forever; current plan is to move its good ideas into Mastra. + +Search/prioritize agent: first agent. It finds possible sources and chooses which sources are worth fetching. + +Fetch selected sources: normal HTTP/page fetch. Cheap and deterministic compared to a full browser agent. + +Populate agent: second agent. It fills rows/cells using a fixed list of fetched sources, so it has less room to wander or hallucinate. + +Browser navigation: when fetch is not enough because a site needs clicking, scrolling, store pages, tabs, throttled pages, or JavaScript. + +TinyFish Agent: browser-capable agent that can navigate those harder pages. + +Explicit browser actions: replayable steps from the browser run, like "go to this URL", "click K-Cup Pods", "extract product rows". + +Playwright candidate script: generated script from those explicit browser actions. Candidate means "ready to inspect/test", not "trusted production cron yet". + +Cron replay: future state where BigSet reruns the Playwright script cheaply on schedule instead of paying a full agent every time. + +Oracle: self-healing word for "judge/contract". It defines what a good result must contain: expected fields, source backing, evidence, row quality. + +Validate rows/sources/evidence: check whether rows are backed by real URLs/evidence and match the dataset request. + +Promote recipe: save the successful method as reusable. + +Reject candidate: do not save bad output as a good method. Benchmark should count this as failure, not fake success. + +Repair loop: when output is missing/bad, use the failure details to search/fetch/populate missing pieces. Meeting notes specifically say repair should span searches, not just rerun the same thing. + +Commit cap: safety limit before writing real rows. Current cap target is 100 rows per hour per dataset. + +## What Is Built Versus Not Built + +Built now: + +- Self-healing wrapper concept exists around collection runs. +- It validates rows, source URLs, evidence, and expected entities. +- It promotes good recipes and rejects bad candidates. +- It caps real row commits. +- It emits Playwright-readiness diagnostics. +- It can generate a Playwright candidate script when explicit browser actions exist. + +Not done yet: + +- Mastra is not fully the one final integrated path. +- Browser/Playwright stage is not fully proven end to end inside Mastra. +- Cron replay is still future. +- Script auto-repair is still future. +- Repair loop still needs to search for missing fields across searches. + +## How To Use This In Codex Sidebar + +Open this file from the Changes/sidebar: `docs/meeting-notes-6-agent-system-map.md`. + +To ask questions, select any line or block and ask Codex something like: + +- "Explain this in dumb mode." +- "Where is this implemented?" +- "Is this built or planned?" +- "What PR owns this?" +- "What should I say in meeting?" + +Use this file for comments/annotations. Do not annotate or share raw meeting notes; those are local/private context. + +## Comment Anchors + +Q1. Is Mastra now the only intended app path, or do we still keep standalone data-collection-agent runtime as fallback? + +Q2. Should Playwright be a separate stage after source fetch, or should it be inside the core Mastra collection flow? + +Q3. What exact signal decides "Need browser navigation?" + +Q4. What fields does the oracle require for each benchmark prompt? + +Q5. What is the minimum demo for tomorrow: PR checkout, `make dev`, prompt entered, rows shown, evidence visible? + +Q6. What needs to happen before cron replay is safe? diff --git a/docs/meeting-notes-6-agent-system-map.mmd b/docs/meeting-notes-6-agent-system-map.mmd new file mode 100644 index 0000000..f1fe156 --- /dev/null +++ b/docs/meeting-notes-6-agent-system-map.mmd @@ -0,0 +1,45 @@ +flowchart LR + request["User asks BigSet for a dataset"] + populate["BigSet app /populate"] + + subgraph mastra["Mastra collection pipeline"] + search_agent["Agent 1: search and prioritize sources"] + fetch_sources["Fetch selected sources"] + browser_decision{"Need browser navigation?"} + populate_agent["Agent 2: populate dataset rows"] + end + + subgraph browser["Browser / Playwright stage"] + tinyfish_agent["TinyFish Agent navigates site"] + browser_actions["Explicit browser actions"] + playwright_script["Playwright candidate script"] + cron_future["Cron replay future"] + end + + subgraph healing["Self-healing layer"] + oracle["Oracle: defines good output"] + validate["Validate rows, sources, evidence"] + promote["Promote good recipe"] + reject["Reject bad candidate"] + commit_cap["Commit cap: 100 rows per hour per dataset"] + repair["Repair missing fields across searches"] + end + + request --> populate + populate --> search_agent + search_agent --> fetch_sources + fetch_sources --> browser_decision + browser_decision -->|"no"| populate_agent + browser_decision -->|"yes"| tinyfish_agent + tinyfish_agent --> browser_actions + browser_actions --> playwright_script + playwright_script --> populate_agent + playwright_script -. "later" .-> cron_future + + populate_agent --> oracle + oracle --> validate + validate -->|"good"| promote + promote --> commit_cap + validate -->|"bad"| reject + reject --> repair + repair --> search_agent From 4fcd69b8c80357b14bbd161a0c700b85183066a2 Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 10:30:03 +0700 Subject: [PATCH 14/21] Clarify self-healing docs and fix frontend verification --- .../bigset-self-healing-plain-english.svg | 118 ++++++++++++++++++ docs/meeting-notes-6-agent-system-map.md | 66 +++++++--- docs/meeting-notes-6-agent-system-map.mmd | 12 +- frontend/components/ThemeToggle.tsx | 15 +-- frontend/components/table/ColumnHeader.tsx | 5 +- frontend/lib/analytics.ts | 3 - 6 files changed, 175 insertions(+), 44 deletions(-) create mode 100644 docs/assets/bigset-self-healing-plain-english.svg diff --git a/docs/assets/bigset-self-healing-plain-english.svg b/docs/assets/bigset-self-healing-plain-english.svg new file mode 100644 index 0000000..74fc6c9 --- /dev/null +++ b/docs/assets/bigset-self-healing-plain-english.svg @@ -0,0 +1,118 @@ + + BigSet self-healing data collection flow + Plain-English diagram showing how a BigSet prompt becomes sourced dataset rows, how bad output is rejected, and which browser replay pieces are still future work. + + + + + + + + + + + + + + + BigSet self-healing data collection + Goal: user prompt in the app -> real sourced rows in the dataset, with bad output blocked. + + + 1. User prompt + Ask BigSet for a table + + + 2. Frontend + Create dataset shell + + + 3. Backend /populate + Start data collection + + + 4. Search + fetch + Find real sources + + + 5. Fill rows + Use fetched pages + Use browser data when needed + + + + + + + + Browser helper + TinyFish clicks pages + when fetch is not enough + + + Draft replay script + Save browser steps + Not trusted cron yet + + + + + + + SELF-HEALING LAYER + + Check output + Rows + sources + evidence + + + Good output? + Matches required table + + + + + + Good: save + write rows + Save extraction plan + Write rows to DB with safety throttle + + + Bad: reject + repair + Do not save fake success + Search/fetch missing cells + + + + + + + FUTURE REPLAY + Scheduled browser rerun + Cheap rerun after script is proven + Script repair + If site changes, live agent regenerates script + + + + + STATUS + Built now: validation, reject bad runs, save good extraction plans, row-write safety throttle, draft browser replay script generation. + Still next: full Mastra app integration, scheduled replay, script auto-repair, production-scale proof. + diff --git a/docs/meeting-notes-6-agent-system-map.md b/docs/meeting-notes-6-agent-system-map.md index 8c78e82..d42c12a 100644 --- a/docs/meeting-notes-6-agent-system-map.md +++ b/docs/meeting-notes-6-agent-system-map.md @@ -6,17 +6,36 @@ Source: summarized from latest local team-sync notes. This file is intentionally Team direction changed from "Mastra versus Mengzhe/data-collection-agent benchmark fight" to "move the useful data-collection-agent ideas into the Mastra app path." -Goal: one app-integrated collection system that can get around 100 useful rows, cite sources, avoid hallucinated rows, and eventually replay successful browser work with Playwright. +Goal: one app-integrated system where a user can type a dataset request in BigSet, create the table, populate rows from real sources, reject bad output, and eventually rerun the working browser steps cheaply. + +Tomorrow demo goal: one draft PR that a teammate can check out, run with `make dev`, open in the BigSet frontend, create a dataset from a prompt, run populate, and inspect rows plus source/evidence behavior. If any part is still blocked, the PR must say the exact blocker instead of implying the flow is fully done. ## Plain-English Image -![BigSet self-healing data collection diagram](assets/bigset-self-healing-data-collection.png) +Use the SVG first because it has fewer words and renders cleanly in GitHub and most editor sidebars. + +![BigSet self-healing data collection plain-English diagram](assets/bigset-self-healing-plain-english.svg) + +The older generated PNG is still kept here for reference: [generated diagram PNG](assets/bigset-self-healing-data-collection.png). + +## What The System Is Trying To Do + +Plain English version: + +1. User asks BigSet for a table. +2. BigSet creates the table shape. +3. The backend finds web sources. +4. The data collection workflow fills rows from those sources. +5. The self-healing layer checks whether the rows are real, sourced, and useful. +6. If good, BigSet saves the working extraction plan and writes rows to the database. +7. If bad, BigSet rejects that run and tries to repair the missing/bad parts. +8. Later, if browser steps worked once, BigSet should rerun those browser steps on a schedule instead of paying a full agent every time. ## Action Items 1. Mastra owner should open a PR for the updated whole collection system by tomorrow so the team can check it out, run it, and test prompt-to-dataset in the BigSet frontend. 2. Mastra owner should send a simple detailed flowchart ASAP showing how the agent system works and where Edward's self-healing / Playwright work plugs in. -3. Mastra owner should raise extraction target toward about 100 rows and test whether the current pipeline can actually fill that many rows. +3. Mastra owner should raise extraction beyond the tiny demo target and test whether the current pipeline can fill many useful rows without treating 100 as a product limit. 4. Mastra owner should improve the repair loop so it searches for missing fields/cells instead of blindly rerunning the same full cycle. 5. Mastra owner should add a browser/Playwright/TinyFish Agent stage for sources that normal fetch cannot read well. 6. Edward should explain the current self-healing and Playwright layer in a quick sync, especially whether it should be separate or part of the core pipeline. @@ -37,19 +56,19 @@ flowchart LR populate_agent["Agent 2: populate dataset rows"] end - subgraph browser["Browser / Playwright stage"] + subgraph browser["Browser replay stage"] tinyfish_agent["TinyFish Agent navigates site"] browser_actions["Explicit browser actions"] - playwright_script["Playwright candidate script"] - cron_future["Cron replay future"] + playwright_script["Draft browser replay script"] + cron_future["Scheduled replay future"] end subgraph healing["Self-healing layer"] - oracle["Oracle: defines good output"] + oracle["Output contract: defines good output"] validate["Validate rows, sources, evidence"] - promote["Promote good recipe"] + promote["Save working extraction plan"] reject["Reject bad candidate"] - commit_cap["Commit cap: 100 rows per hour per dataset"] + commit_cap["Write rows to DB with safety throttle"] repair["Repair missing fields across searches"] end @@ -81,7 +100,9 @@ Dataset request: user asks BigSet to make a table, like "find Amazon Starbucks p Mastra: app-integrated agent framework. This is the path the team wants to use as the main app path. -Data collection agent: Mengzhe's stronger older pipeline. Current plan is not to run it as a separate product forever; current plan is to move its good ideas into Mastra. +Data collection workflow: the whole process that searches, fetches, uses browser navigation when needed, and fills table rows. + +Mengzhe/data-collection-agent: stronger older pipeline. Current plan is not to run it as a separate product forever; current plan is to move its good ideas into Mastra. Search/prioritize agent: first agent. It finds possible sources and chooses which sources are worth fetching. @@ -95,21 +116,27 @@ TinyFish Agent: browser-capable agent that can navigate those harder pages. Explicit browser actions: replayable steps from the browser run, like "go to this URL", "click K-Cup Pods", "extract product rows". -Playwright candidate script: generated script from those explicit browser actions. Candidate means "ready to inspect/test", not "trusted production cron yet". +Draft browser replay script: generated Playwright script from successful browser actions. Draft means "ready to inspect/test", not "trusted production cron yet". -Cron replay: future state where BigSet reruns the Playwright script cheaply on schedule instead of paying a full agent every time. +Scheduled replay: future state where BigSet reruns the browser script cheaply on schedule instead of paying a full agent every time. -Oracle: self-healing word for "judge/contract". It defines what a good result must contain: expected fields, source backing, evidence, row quality. +Output contract: self-healing word for "what good output means". It defines required fields, source backing, evidence, and row quality. Validate rows/sources/evidence: check whether rows are backed by real URLs/evidence and match the dataset request. -Promote recipe: save the successful method as reusable. +Extraction plan: the saved method that worked. Example: search Amazon Starbucks store, open store page, click K-Cup Pods, extract product name/price/image/URL. + +Save working extraction plan: output looked good, so BigSet saves the method as reusable. -Reject candidate: do not save bad output as a good method. Benchmark should count this as failure, not fake success. +Reject bad run: output was missing sources, wrong, or low-confidence. Do not save it. Do not count benchmark as a fake pass. Repair loop: when output is missing/bad, use the failure details to search/fetch/populate missing pieces. Meeting notes specifically say repair should span searches, not just rerun the same thing. -Commit cap: safety limit before writing real rows. Current cap target is 100 rows per hour per dataset. +Write rows to DB: put actual table rows into storage so the frontend can show them. + +Row-write safety throttle: safety limit before writing real rows. This is not a product row limit; it exists to limit damage if an agent run goes wrong. + +Browser script repair: future idea. If a saved browser script breaks because the site changed, rerun the live browser agent, make a new script, test it, then replace the old one. ## What Is Built Versus Not Built @@ -120,15 +147,16 @@ Built now: - It promotes good recipes and rejects bad candidates. - It caps real row commits. - It emits Playwright-readiness diagnostics. -- It can generate a Playwright candidate script when explicit browser actions exist. +- It can generate a draft browser replay script when explicit browser actions exist. Not done yet: - Mastra is not fully the one final integrated path. - Browser/Playwright stage is not fully proven end to end inside Mastra. -- Cron replay is still future. -- Script auto-repair is still future. +- Scheduled browser replay is still future. +- Browser script auto-repair is still future. - Repair loop still needs to search for missing fields across searches. +- Production-scale extraction proof is still not done. ## How To Use This In Codex Sidebar diff --git a/docs/meeting-notes-6-agent-system-map.mmd b/docs/meeting-notes-6-agent-system-map.mmd index f1fe156..c6fedf6 100644 --- a/docs/meeting-notes-6-agent-system-map.mmd +++ b/docs/meeting-notes-6-agent-system-map.mmd @@ -9,19 +9,19 @@ flowchart LR populate_agent["Agent 2: populate dataset rows"] end - subgraph browser["Browser / Playwright stage"] + subgraph browser["Browser replay stage"] tinyfish_agent["TinyFish Agent navigates site"] browser_actions["Explicit browser actions"] - playwright_script["Playwright candidate script"] - cron_future["Cron replay future"] + playwright_script["Draft browser replay script"] + cron_future["Scheduled replay future"] end subgraph healing["Self-healing layer"] - oracle["Oracle: defines good output"] + oracle["Output contract: defines good output"] validate["Validate rows, sources, evidence"] - promote["Promote good recipe"] + promote["Save working extraction plan"] reject["Reject bad candidate"] - commit_cap["Commit cap: 100 rows per hour per dataset"] + commit_cap["Write rows to DB with safety throttle"] repair["Repair missing fields across searches"] end diff --git a/frontend/components/ThemeToggle.tsx b/frontend/components/ThemeToggle.tsx index 89eebe5..355eecc 100644 --- a/frontend/components/ThemeToggle.tsx +++ b/frontend/components/ThemeToggle.tsx @@ -1,6 +1,6 @@ "use client"; -import { useEffect, useState } from "react"; +import { useState } from "react"; import { EVENTS, track } from "@/lib/analytics"; type Theme = "light" | "dark"; @@ -30,16 +30,8 @@ function applyTheme(theme: Theme): void { } export function ThemeToggle({ className = "" }: { className?: string }) { - // We don't know the theme until we've mounted (server can't read - // localStorage). Render the toggle invisible-but-laid-out until then - // so it doesn't pop in and shift layout. - const [mounted, setMounted] = useState(false); - const [theme, setTheme] = useState("light"); - - useEffect(() => { - setTheme(readEffectiveTheme()); - setMounted(true); - }, []); + // Client-side only: read persisted preference when React initializes. + const [theme, setTheme] = useState(() => readEffectiveTheme()); function toggle() { const next: Theme = theme === "dark" ? "light" : "dark"; @@ -63,7 +55,6 @@ export function ThemeToggle({ className = "" }: { className?: string }) { aria-label={label} title={label} className={`inline-flex items-center justify-center h-7 w-7 text-muted hover:text-foreground transition-colors ${className}`} - style={{ opacity: mounted ? 1 : 0 }} > {/* Both icons rendered, one shown based on theme. Avoids a flash when switching since neither has to mount/unmount. */} diff --git a/frontend/components/table/ColumnHeader.tsx b/frontend/components/table/ColumnHeader.tsx index 27adfee..c30c24c 100644 --- a/frontend/components/table/ColumnHeader.tsx +++ b/frontend/components/table/ColumnHeader.tsx @@ -10,7 +10,6 @@ export function ColumnHeader({ header, column, isResizing, - tableContainerRef, }: { header: Header; column?: DatasetColumn; @@ -25,9 +24,7 @@ export function ColumnHeader({ {isResizing && (

)} diff --git a/frontend/lib/analytics.ts b/frontend/lib/analytics.ts index 7b60702..93bed6f 100644 --- a/frontend/lib/analytics.ts +++ b/frontend/lib/analytics.ts @@ -84,8 +84,6 @@ export function initAnalytics(): boolean { // - maskInputOptions: every form input/textarea value is masked // unconditionally. Catches the search box, the wizard prompt, // Clerk's email + password fields. - // - recordConsole: console.error/warn shows up alongside the - // replay timeline — invaluable for "user says it broke". // - recordCrossOriginIframes: false → Clerk's hosted iframes // (if any) are not pierced into. session_recording: { @@ -97,7 +95,6 @@ export function initAnalytics(): boolean { email: true, }, recordCrossOriginIframes: false, - recordConsole: true, }, loaded: () => { From 1828f4d0e3724d47cafc720096000a2bfa4cfb81 Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 10:40:41 +0700 Subject: [PATCH 15/21] Keep self-healing PR public safe and configurable --- backend/README.md | 4 ++-- backend/prompts/schema-inference.txt | 2 +- .../pipeline/populate-self-healing-command.ts | 4 +++- backend/src/server.ts | 3 ++- .../populate-self-healing-command.test.ts | 6 ++++- backend/test/populate-server.test.ts | 6 ++++- benchmarks/dataset-agent/README.md | 4 ++-- docs/data-collection-agent-migration-plan.md | 23 ++++++++++--------- ...d => self-healing-data-collection-flow.md} | 14 +++++------ ... => self-healing-data-collection-flow.mmd} | 0 10 files changed, 39 insertions(+), 27 deletions(-) rename docs/{meeting-notes-6-agent-system-map.md => self-healing-data-collection-flow.md} (90%) rename docs/{meeting-notes-6-agent-system-map.mmd => self-healing-data-collection-flow.mmd} (100%) diff --git a/backend/README.md b/backend/README.md index c882afc..db91bf0 100644 --- a/backend/README.md +++ b/backend/README.md @@ -31,8 +31,8 @@ Starts on [localhost:3501](http://localhost:3501). ## Self-Healing Commit Cap -`populate:self-heal --commit` and `POST /populate` cap committed rows per -dataset at 100 rows/hour by default. Override with +`populate:self-heal --commit` and `POST /populate` use a configurable +per-dataset hourly safety throttle before writing rows. Override with `POPULATE_COMMIT_ROW_LIMIT_PER_HOUR` or CLI `--commit-row-limit-per-hour`. diff --git a/backend/prompts/schema-inference.txt b/backend/prompts/schema-inference.txt index 9752429..49d1d07 100644 --- a/backend/prompts/schema-inference.txt +++ b/backend/prompts/schema-inference.txt @@ -18,7 +18,7 @@ Rules: - All column `name` values must be snake_case and unique. - Prefer concrete column choices over speculative ones — better to omit a column than guess wildly. -# @MMeteorL's comments/suggestions: +# Collection pipeline review comments: # This may be too early in the agent workflow to suggest these without more # context. In the current agent system, the agent would first use Tinyfish # search to search for candidate urls and fetch those results for analysis diff --git a/backend/src/pipeline/populate-self-healing-command.ts b/backend/src/pipeline/populate-self-healing-command.ts index 88c5fba..2bbca72 100644 --- a/backend/src/pipeline/populate-self-healing-command.ts +++ b/backend/src/pipeline/populate-self-healing-command.ts @@ -16,6 +16,8 @@ import { type CreatePopulateRecipeRuntimeInput, } from "./populate-runtime-selection.js"; +export const DEFAULT_COMMIT_ROW_LIMIT_PER_HOUR = 1000; + export interface PopulateSelfHealingCliOptions { datasetId?: string; contextPath?: string; @@ -267,7 +269,7 @@ function commitRowLimitPerHour(input: { return input.optionValue; } if (input.envValue === undefined || input.envValue === "") { - return 100; + return DEFAULT_COMMIT_ROW_LIMIT_PER_HOUR; } const parsed = Number(input.envValue); if (!Number.isInteger(parsed) || parsed <= 0) { diff --git a/backend/src/server.ts b/backend/src/server.ts index 6fd88c3..18063d9 100644 --- a/backend/src/server.ts +++ b/backend/src/server.ts @@ -17,6 +17,7 @@ import { createPopulateRecipeRuntime, type CreatePopulateRecipeRuntimeInput, } from "./pipeline/populate-runtime-selection.js"; +import { DEFAULT_COMMIT_ROW_LIMIT_PER_HOUR } from "./pipeline/populate-self-healing-command.js"; export interface BigSetServerEnv { CLIENT_ORIGIN: string; @@ -193,7 +194,7 @@ function responseSafePopulateResult( function commitRowLimitPerHour(env: BigSetServerEnv): number { if (!env.POPULATE_COMMIT_ROW_LIMIT_PER_HOUR) { - return 100; + return DEFAULT_COMMIT_ROW_LIMIT_PER_HOUR; } const parsed = Number(env.POPULATE_COMMIT_ROW_LIMIT_PER_HOUR); if (!Number.isInteger(parsed) || parsed <= 0) { diff --git a/backend/test/populate-self-healing-command.test.ts b/backend/test/populate-self-healing-command.test.ts index 67c3597..a23da5b 100644 --- a/backend/test/populate-self-healing-command.test.ts +++ b/backend/test/populate-self-healing-command.test.ts @@ -5,6 +5,7 @@ import type { DatasetContext } from "../src/pipeline/populate.js"; import type { PopulateRecipeRuntime } from "../src/pipeline/populate-self-healing.js"; import type { RunSelfHealingPopulateResult } from "../src/pipeline/populate-self-healing-runner.js"; import { + DEFAULT_COMMIT_ROW_LIMIT_PER_HOUR, parsePopulateSelfHealingCliArgs, runPopulateSelfHealingCli, } from "../src/pipeline/populate-self-healing-command.js"; @@ -255,7 +256,10 @@ test("self-healing CLI dataset-id commit loads context and creates writer", asyn assert.equal(input.store, undefined); assert.equal(input.recipeStoreDirectory, ".bigset/populate-recipes"); assert.ok(input.rowWriter); - assert.equal(input.commitRowLimit?.maxRowsPerWindow, 100); + assert.equal( + input.commitRowLimit?.maxRowsPerWindow, + DEFAULT_COMMIT_ROW_LIMIT_PER_HOUR + ); assert.equal(input.commitRowLimit?.windowMs, 60 * 60 * 1_000); return successfulResult(input.context.datasetId); }, diff --git a/backend/test/populate-server.test.ts b/backend/test/populate-server.test.ts index 5b2730e..af289e8 100644 --- a/backend/test/populate-server.test.ts +++ b/backend/test/populate-server.test.ts @@ -2,6 +2,7 @@ import assert from "node:assert/strict"; import { test } from "node:test"; import { createBigSetServer } from "../src/server.js"; +import { DEFAULT_COMMIT_ROW_LIMIT_PER_HOUR } from "../src/pipeline/populate-self-healing-command.js"; import type { DatasetContext } from "../src/pipeline/populate.js"; import type { PopulateRecipeRuntime } from "../src/pipeline/populate-self-healing.js"; import type { RunSelfHealingPopulateResult } from "../src/pipeline/populate-self-healing-runner.js"; @@ -55,7 +56,10 @@ test("POST /populate passes selected runtime into self-healing runner", async () assert.equal(input.shouldCommitRows, true); assert.equal(input.recipeStoreDirectory, ".bigset/populate-recipes"); assert.ok(input.rowWriter); - assert.equal(input.commitRowLimit?.maxRowsPerWindow, 100); + assert.equal( + input.commitRowLimit?.maxRowsPerWindow, + DEFAULT_COMMIT_ROW_LIMIT_PER_HOUR + ); assert.equal(input.commitRowLimit?.windowMs, 60 * 60 * 1_000); return successfulResult(input.context.datasetId); }, diff --git a/benchmarks/dataset-agent/README.md b/benchmarks/dataset-agent/README.md index 2f5e511..ebea6a1 100644 --- a/benchmarks/dataset-agent/README.md +++ b/benchmarks/dataset-agent/README.md @@ -115,8 +115,8 @@ Mapping is mechanical: When both action arrays are present in the same report scope, BigSet preserves array order by appending `browser_actions` first and `agent_browser_actions` -second. This is an ingestion contract for a future Meteor/Mengzhe producer or -Agent canary; it does not mean the current vendored pipeline already emits +second. This is an ingestion contract for a future collection producer or Agent +canary; it does not mean the current vendored pipeline already emits browser actions. When TinyFish Agent result JSON includes explicit `browser_actions` or diff --git a/docs/data-collection-agent-migration-plan.md b/docs/data-collection-agent-migration-plan.md index d3b8bd0..471150d 100644 --- a/docs/data-collection-agent-migration-plan.md +++ b/docs/data-collection-agent-migration-plan.md @@ -18,7 +18,8 @@ the collection pipeline is migrated into BigSet. a runner module from `POPULATE_COLLECTION_RUNNER_MODULE`. - PR #41 adds a `collection-self-heal` benchmark lane that wraps the collection runtime inside `SelfHealingPopulateRecipeService`. This is the benchmark - socket Meteor can use once the real collection runner is available. + socket a collection-runtime producer can use once the real collection runner + is available. - PR #43 ports the real vendored collection pipeline behind `runCollectionPopulatePipeline(input)`, so the collection benchmark lane now runs the BigSet-wrapped collection runner instead of a fake injected runner. @@ -39,12 +40,11 @@ the collection pipeline is migrated into BigSet. `failureCategory: "capability_gate"`, even when diagnostic rows match answer keys. - This branch adds a commit-path row cap for self-healing writes. Commit mode - defaults to 100 committed rows/hour per dataset and can be overridden with - `POPULATE_COMMIT_ROW_LIMIT_PER_HOUR` or - `--commit-row-limit-per-hour`. + defaults to a configurable safety throttle and can be overridden with + `POPULATE_COMMIT_ROW_LIMIT_PER_HOUR` or `--commit-row-limit-per-hour`. - `feat/data-collection-agent-v14` is no longer the branch to build on directly. It was the source of the collection pipeline port. New work should branch on - top of the current draft stack, not edit Meteor's branch or the dirty main + top of the current draft stack, not edit the external collection branch or the dirty main checkout. ## Target Shape @@ -259,9 +259,10 @@ Before any merge: - commit-mode row caps block Convex writes before the cap is exceeded and skip runtime work when the cap is already exhausted -## Meteor Handoff Shape +## Collection Runtime Handoff Shape -Meteor does not need to rebuild the self-healing wrapper. The socket is now: +The collection-runtime owner does not need to rebuild the self-healing wrapper. +The socket is now: ```text runCollectionPopulatePipeline(CollectionPopulatePipelineInput) @@ -274,7 +275,7 @@ collection runner ignores `recipeInstructions`, repaired recipes cannot change future behavior. If it ignores `requiredColumns` or benchmark metadata, the benchmark can stop measuring the same task. -For the Playwright handoff, Meteor can optionally emit `browser_actions` and +For the Playwright handoff, the collection runtime can optionally emit `browser_actions` and `agent_browser_actions` in the collection report. BigSet preserves each array's order and appends `browser_actions` before `agent_browser_actions` when both are present in the same report scope. This is a wrapper ingestion contract only; the @@ -346,9 +347,9 @@ branch, rescored with the rejected-candidate gate: ## Next Engineering Move Create fresh branches from the current rollup/producer stack. Do not edit -`main`, Meteor's branch, or the dirty local checkout. +`main`, the external collection branch, or the dirty local checkout. -1. Ask Meteor's migrated collection agent to emit explicit action traces. +1. Ask the migrated collection agent to emit explicit action traces. - Preferred fields are `browser_actions` or `agent_browser_actions`. - Each action should include at least URL or selector/target text plus safe, redacted value descriptions for form inputs. @@ -370,7 +371,7 @@ When testing the real app or CLI path, set: POPULATE_AGENT_RUNTIME=collection POPULATE_COLLECTION_RUNNER_MODULE=./backend/src/pipeline/collection-agent-runner.ts COLLECTION_AGENT_PIPELINE_MODULE=./backend/BigSet_Data_Collection_Agent/src/orchestrator/pipeline.ts -POPULATE_COMMIT_ROW_LIMIT_PER_HOUR=100 +POPULATE_COMMIT_ROW_LIMIT_PER_HOUR=1000 ``` The BigSet runner keeps TinyFish Agent/browser calls disabled unless diff --git a/docs/meeting-notes-6-agent-system-map.md b/docs/self-healing-data-collection-flow.md similarity index 90% rename from docs/meeting-notes-6-agent-system-map.md rename to docs/self-healing-data-collection-flow.md index d42c12a..756f62c 100644 --- a/docs/meeting-notes-6-agent-system-map.md +++ b/docs/self-healing-data-collection-flow.md @@ -1,10 +1,10 @@ -# Meeting Notes 6 Agent System Map +# Self-Healing Data Collection Flow -Source: summarized from latest local team-sync notes. This file is intentionally public-safe: no transcript paste, no private links, no secrets. +Purpose: public-safe architecture note for the BigSet data collection integration. No transcript paste, no private links, no secrets. ## Short Version -Team direction changed from "Mastra versus Mengzhe/data-collection-agent benchmark fight" to "move the useful data-collection-agent ideas into the Mastra app path." +Team direction changed from "compare the standalone collection pipeline against Mastra" to "move the useful collection-pipeline ideas into the Mastra app path." Goal: one app-integrated system where a user can type a dataset request in BigSet, create the table, populate rows from real sources, reject bad output, and eventually rerun the working browser steps cheaply. @@ -34,11 +34,11 @@ Plain English version: ## Action Items 1. Mastra owner should open a PR for the updated whole collection system by tomorrow so the team can check it out, run it, and test prompt-to-dataset in the BigSet frontend. -2. Mastra owner should send a simple detailed flowchart ASAP showing how the agent system works and where Edward's self-healing / Playwright work plugs in. +2. Mastra owner should send a simple detailed flowchart ASAP showing how the agent system works and where the self-healing / Playwright work plugs in. 3. Mastra owner should raise extraction beyond the tiny demo target and test whether the current pipeline can fill many useful rows without treating 100 as a product limit. 4. Mastra owner should improve the repair loop so it searches for missing fields/cells instead of blindly rerunning the same full cycle. 5. Mastra owner should add a browser/Playwright/TinyFish Agent stage for sources that normal fetch cannot read well. -6. Edward should explain the current self-healing and Playwright layer in a quick sync, especially whether it should be separate or part of the core pipeline. +6. Self-healing owner should explain the current self-healing and Playwright layer in a quick sync, especially whether it should be separate or part of the core pipeline. 7. Team should confirm `make dev` setup and required env files at root, frontend, and backend. 8. Everyone should ask for help early if blocked. Weekend goal is a working integrated flow, not isolated demos. @@ -102,7 +102,7 @@ Mastra: app-integrated agent framework. This is the path the team wants to use a Data collection workflow: the whole process that searches, fetches, uses browser navigation when needed, and fills table rows. -Mengzhe/data-collection-agent: stronger older pipeline. Current plan is not to run it as a separate product forever; current plan is to move its good ideas into Mastra. +Standalone data-collection-agent: stronger older pipeline. Current plan is not to run it as a separate product forever; current plan is to move its good ideas into Mastra. Search/prioritize agent: first agent. It finds possible sources and chooses which sources are worth fetching. @@ -160,7 +160,7 @@ Not done yet: ## How To Use This In Codex Sidebar -Open this file from the Changes/sidebar: `docs/meeting-notes-6-agent-system-map.md`. +Open this file from the Changes/sidebar: `docs/self-healing-data-collection-flow.md`. To ask questions, select any line or block and ask Codex something like: diff --git a/docs/meeting-notes-6-agent-system-map.mmd b/docs/self-healing-data-collection-flow.mmd similarity index 100% rename from docs/meeting-notes-6-agent-system-map.mmd rename to docs/self-healing-data-collection-flow.mmd From 37af0f4e7979d6830099651f53dfcf17afd76415 Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 10:45:54 +0700 Subject: [PATCH 16/21] Clarify Mastra as the app demo path --- docs/self-healing-data-collection-flow.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/self-healing-data-collection-flow.md b/docs/self-healing-data-collection-flow.md index 756f62c..111018c 100644 --- a/docs/self-healing-data-collection-flow.md +++ b/docs/self-healing-data-collection-flow.md @@ -10,6 +10,8 @@ Goal: one app-integrated system where a user can type a dataset request in BigSe Tomorrow demo goal: one draft PR that a teammate can check out, run with `make dev`, open in the BigSet frontend, create a dataset from a prompt, run populate, and inspect rows plus source/evidence behavior. If any part is still blocked, the PR must say the exact blocker instead of implying the flow is fully done. +Product path: use Mastra inside the BigSet app. The older standalone collection agent is not a separate demo path; its useful ideas can be ported behind the app's adapter boundary. + ## Plain-English Image Use the SVG first because it has fewer words and renders cleanly in GitHub and most editor sidebars. @@ -102,7 +104,7 @@ Mastra: app-integrated agent framework. This is the path the team wants to use a Data collection workflow: the whole process that searches, fetches, uses browser navigation when needed, and fills table rows. -Standalone data-collection-agent: stronger older pipeline. Current plan is not to run it as a separate product forever; current plan is to move its good ideas into Mastra. +Standalone data-collection-agent: older pipeline used as an implementation reference. Current plan is not to run it as a separate product path; current plan is to move its useful ideas into Mastra. Search/prioritize agent: first agent. It finds possible sources and chooses which sources are worth fetching. @@ -151,7 +153,7 @@ Built now: Not done yet: -- Mastra is not fully the one final integrated path. +- Mastra still needs the final quality/integration pass for the one app path. - Browser/Playwright stage is not fully proven end to end inside Mastra. - Scheduled browser replay is still future. - Browser script auto-repair is still future. @@ -174,7 +176,7 @@ Use this file for comments/annotations. Do not annotate or share raw meeting not ## Comment Anchors -Q1. Is Mastra now the only intended app path, or do we still keep standalone data-collection-agent runtime as fallback? +Q1. What remaining collection-pipeline ideas should be ported into the Mastra app path? Q2. Should Playwright be a separate stage after source fetch, or should it be inside the core Mastra collection flow? From f06258ad4982ad64fbfe2056aa6bb3e03df62e22 Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sat, 23 May 2026 10:59:32 +0700 Subject: [PATCH 17/21] Clarify dev env setup failures --- README.md | 13 +++++++++-- frontend/.env.example | 4 +++- makefiles/Makefile | 53 ++++++++++++++++++++++++++++++++++++------- 3 files changed, 59 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 2e167b9..cdd61a8 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,8 @@ Create a Clerk application at [dashboard.clerk.com](https://dashboard.clerk.com) ```bash # Root .env — used by Docker for the frontend container cp .env.example .env -# Fill in NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY +# Fill in NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, CLERK_SECRET_KEY, +# OPENROUTER_API_KEY, and TINYFISH_API_KEY # Frontend .env.local — used by Next.js and Convex CLI cp frontend/.env.example frontend/.env.local @@ -65,6 +66,9 @@ make dev ``` This starts all Docker services, waits for Convex to be healthy, and deploys Convex functions automatically. +`make dev` checks that root `.env` and `frontend/.env.local` contain real +Clerk/OpenRouter/TinyFish values before it starts Docker. If it reports a +placeholder key, replace that value first. ### 4. Generate Convex admin key (first time only) @@ -72,7 +76,12 @@ This starts all Docker services, waits for Convex to be healthy, and deploys Con docker compose exec convex ./generate_admin_key.sh ``` -Paste the output into `frontend/.env.local` as `CONVEX_SELF_HOSTED_ADMIN_KEY`, then re-run `make dev`. +Paste the output into both `.env` and `frontend/.env.local` as +`CONVEX_SELF_HOSTED_ADMIN_KEY`, then re-run `make dev`. + +If `make dev` stops at `CONVEX_SELF_HOSTED_ADMIN_KEY is missing`, that means +Docker/Convex is up far enough for you to run the command above. Generate the +key, paste it into both env files, and run `make dev` again. ### 5. Load curated public datasets diff --git a/frontend/.env.example b/frontend/.env.example index 912ced3..c85d79f 100644 --- a/frontend/.env.example +++ b/frontend/.env.example @@ -1,7 +1,9 @@ # Convex (self-hosted) NEXT_PUBLIC_CONVEX_URL=http://127.0.0.1:3210 CONVEX_SELF_HOSTED_URL=http://127.0.0.1:3210 -CONVEX_SELF_HOSTED_ADMIN_KEY= +# Generate after the first `make dev` starts Convex: +# docker compose -f docker-compose.dev.yml exec convex ./generate_admin_key.sh +CONVEX_SELF_HOSTED_ADMIN_KEY= # Clerk — create a free app at https://dashboard.clerk.com # 1. Create a Clerk application diff --git a/makefiles/Makefile b/makefiles/Makefile index 633df80..9eb2803 100644 --- a/makefiles/Makefile +++ b/makefiles/Makefile @@ -1,8 +1,8 @@ -.PHONY: all dev down clean convex-push convex-env verify-self-healing +.PHONY: all dev validate-dev-env down clean convex-push convex-env verify-self-healing all: dev -dev: +dev: validate-dev-env docker compose -f docker-compose.dev.yml up --build -d @echo "Waiting for Convex to be healthy..." @for i in $$(seq 1 120); do \ @@ -18,20 +18,57 @@ dev: @echo " Mastra Studio: http://localhost:4111" docker compose -f docker-compose.dev.yml logs -f +validate-dev-env: + @test -f .env || { echo "Error: .env not found. Run: cp .env.example .env"; exit 1; } + @test -f frontend/.env.local || { echo "Error: frontend/.env.local not found. Run: cp frontend/.env.example frontend/.env.local"; exit 1; } + @check_env() { \ + file="$$1"; key="$$2"; placeholder="$$3"; \ + value="$$(grep "^$$key=" "$$file" | cut -d= -f2-)"; \ + if [[ -z "$$value" || "$$value" == "$$placeholder" || "$$value" == *"..."* ]]; then \ + echo "Error: $$key must be set in $$file"; \ + exit 1; \ + fi; \ + }; \ + check_env .env NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY pk_test_...; \ + check_env .env CLERK_SECRET_KEY sk_test_...; \ + check_env .env OPENROUTER_API_KEY sk-or-...; \ + check_env .env TINYFISH_API_KEY ""; \ + check_env frontend/.env.local NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY pk_test_...; \ + check_env frontend/.env.local CLERK_SECRET_KEY sk_test_...; \ + check_env frontend/.env.local CLERK_JWT_ISSUER_DOMAIN https://your-app.clerk.accounts.dev + convex-env: @test -f frontend/.env.local || { echo "Error: frontend/.env.local not found"; exit 1; } - @grep -q CLERK_JWT_ISSUER_DOMAIN frontend/.env.local || { echo "Error: CLERK_JWT_ISSUER_DOMAIN not set in frontend/.env.local"; exit 1; } - @grep -q CONVEX_SELF_HOSTED_ADMIN_KEY frontend/.env.local || { echo "Error: CONVEX_SELF_HOSTED_ADMIN_KEY not set in frontend/.env.local"; exit 1; } - @cd frontend && npx convex env set CLERK_JWT_ISSUER_DOMAIN "$$(grep CLERK_JWT_ISSUER_DOMAIN .env.local | cut -d= -f2-)" \ + @issuer="$$(grep '^CLERK_JWT_ISSUER_DOMAIN=' frontend/.env.local | cut -d= -f2-)"; \ + if [[ -z "$$issuer" || "$$issuer" == "https://your-app.clerk.accounts.dev" ]]; then \ + echo "Error: CLERK_JWT_ISSUER_DOMAIN must be your Clerk issuer URL in frontend/.env.local"; \ + exit 1; \ + fi + @admin_key="$$(grep '^CONVEX_SELF_HOSTED_ADMIN_KEY=' frontend/.env.local | cut -d= -f2-)"; \ + if [[ -z "$$admin_key" || "$$admin_key" == \ ): PopulateRuntimeRow { @@ -1255,6 +1463,170 @@ function benchmarkRowsFromStructuredOutput(input: { return selectRepresentativeRows(rows, input.context); } +function deterministicRowsFromCapturedSources(input: { + context: DatasetContext; + capturedSources: PopulateRuntimeCapturedSource[]; + maxRows: number; +}): PopulateRuntimeRow[] { + const explicitSourceUrls = urlsFromText(input.context.description); + const titleColumn = input.context.columns.find((column) => + /title|name/i.test(column.name) + ); + const urlColumn = input.context.columns.find((column) => + /url|link|website/i.test(column.name) + ); + if (!titleColumn || !urlColumn) { + return []; + } + const requiredColumns = input.context.columns.filter( + (column) => column.nullable !== true + ); + const canBuildRequiredColumns = requiredColumns.every((column) => + column.name === titleColumn.name || column.name === urlColumn.name + ); + if (!canBuildRequiredColumns) { + return []; + } + + const seenUrls = new Set(); + return input.capturedSources + .filter((source) => source.url && !seenUrls.has(source.url)) + .map((source) => { + seenUrls.add(source.url); + return source; + }) + .map((source) => ({ + source, + title: firstUsefulSourceTitle(source.text), + score: capturedSourceRelevanceScore(source, input.context), + })) + .filter((candidate) => + candidate.title && + candidate.score > 0 && + sourceMatchesExplicitUrlScope(candidate.source.url, explicitSourceUrls) && + !isListingSource(candidate.source, candidate.title) + ) + .sort((a, b) => b.score - a.score) + .slice(0, input.maxRows) + .map(({ source, title }) => { + const cells = Object.fromEntries( + input.context.columns.map((column) => { + if (column.name === titleColumn.name) { + return [column.name, title]; + } + if (column.name === urlColumn.name) { + return [column.name, source.url]; + } + return [column.name, null]; + }) + ) as Record; + return { + cells, + sourceUrls: [source.url], + evidence: [{ + columnName: titleColumn.name, + sourceUrl: source.url, + quote: title, + }], + needsReview: true, + }; + }); +} + +function sourceMatchesExplicitUrlScope( + sourceUrl: string, + explicitSourceUrls: string[] +): boolean { + if (explicitSourceUrls.length === 0) { + return true; + } + const source = parseHttpUrl(sourceUrl); + if (!source) { + return false; + } + return explicitSourceUrls.some((explicitUrl) => { + const explicit = parseHttpUrl(explicitUrl); + if (!explicit) { + return false; + } + if (normalizedUrlWithoutHash(source) === normalizedUrlWithoutHash(explicit)) { + return true; + } + return source.hostname === explicit.hostname; + }); +} + +function parseHttpUrl(value: string): URL | undefined { + try { + const url = new URL(value); + return /^https?:$/i.test(url.protocol) ? url : undefined; + } catch { + return undefined; + } +} + +function normalizedUrlWithoutHash(url: URL): string { + const normalized = new URL(url.toString()); + normalized.hash = ""; + return normalized.toString().replace(/\/$/, ""); +} + +function firstUsefulSourceTitle(text: string): string { + return text + .split("\n") + .map((line) => line.trim()) + .find((line) => + line.length >= 8 && + line.length <= 160 && + !/^https?:\/\//i.test(line) && + !/^source\s+\d+/i.test(line) + ) ?? ""; +} + +function capturedSourceRelevanceScore( + source: PopulateRuntimeCapturedSource, + context: DatasetContext +): number { + const text = `${source.url}\n${source.text}`.toLowerCase(); + const descriptionTokens = context.description + .toLowerCase() + .split(/[^a-z0-9]+/) + .filter((token) => + token.length >= 4 && + !["from", "with", "post", "posts", "title", "titles", "url", "urls", "article", "articles", "find"].includes(token) + ); + let score = 1; + for (const token of new Set(descriptionTokens)) { + if (text.includes(token)) { + score += 1; + } + } + if (/\/index\//i.test(source.url)) { + score += 2; + } + if (/\/news\/product/i.test(source.url)) { + score += 2; + } + if (/openai\.com\/news\/?$|openai\.com\/news\/(product-releases|research|company-announcements)\/?$/i.test(source.url)) { + score -= 3; + } + if (/mcp/i.test(source.url) && !/mcp/i.test(context.description)) { + score -= 4; + } + return score; +} + +function isListingSource( + source: PopulateRuntimeCapturedSource, + title: string +): boolean { + return ( + /openai\.com\/news\/?$|openai\.com\/news\/(product-releases|research|company-announcements)\/?$/i.test(source.url) || + /\b(newsroom|recent news)\b/i.test(title) || + /^openai news$/i.test(title) + ); +} + function validateStructuredRowColumns( cells: Record, requestedColumns: string[] diff --git a/backend/src/pipeline/populate-self-healing-runner.ts b/backend/src/pipeline/populate-self-healing-runner.ts index 65bedfc..fdce64e 100644 --- a/backend/src/pipeline/populate-self-healing-runner.ts +++ b/backend/src/pipeline/populate-self-healing-runner.ts @@ -8,6 +8,7 @@ import { FileSystemPopulateRecipeStore, MastraPopulateRecipeRuntime, SelfHealingPopulateRecipeService, + safeRowsForPopulateCommit, type PopulateRecipeAuthor, type PopulateRecipeRunResult, type PopulateRecipeRuntime, @@ -284,6 +285,7 @@ export interface RunSelfHealingPopulateResult { diagnosticRun?: PopulateRecipeRunResult; committedRows?: PopulateDatasetWriteResult; commitLimit?: PopulateDatasetRowCommitLimitDecision; + validationState?: PopulateRecipeRunResult["productionValidation"]["state"]; rejectionReasons: string[]; validationIssues: string[]; tick?: SelfHealingPopulateTickResult; @@ -325,8 +327,11 @@ export async function runSelfHealingPopulate( datasetId: input.context.datasetId, context: input.context, }); - const selectedRun = successfulRunForTick(tick); + const selectedRun = committableRunForTick(tick); const diagnosticRun = diagnosticRunForTick(tick); + const rowsToCommit = selectedRun + ? safeRowsForPopulateCommit({ context: input.context, run: selectedRun }) + : []; let committedRows: PopulateDatasetWriteResult | undefined; let commitLimit: PopulateDatasetRowCommitLimitDecision | undefined; @@ -335,7 +340,7 @@ export async function runSelfHealingPopulate( if (commitLimiter) { reservation = await reserveCommitRows({ context: input.context, - rowCount: selectedRun.rows.length, + rowCount: rowsToCommit.length, commitRowLimit: input.commitRowLimit!, limiter: commitLimiter, }); @@ -353,7 +358,7 @@ export async function runSelfHealingPopulate( try { committedRows = await rowWriter.replaceRows({ datasetId: input.context.datasetId, - rows: selectedRun.rows, + rows: rowsToCommit, }); } catch (error) { await reservation?.release(); @@ -370,12 +375,20 @@ export async function runSelfHealingPopulate( diagnosticRun, committedRows, commitLimit, + validationState: selectedRun?.productionValidation.state ?? + diagnosticRun?.productionValidation.state, rejectionReasons: tick.rejectionReasons, validationIssues: validationIssuesForSelfHealingTick(tick), tick, }; } +function committableRunForTick( + tick: SelfHealingPopulateTickResult +): PopulateRecipeRunResult | undefined { + return successfulRunForTick(tick) ?? acceptedPartialRunForTick(tick); +} + export function successfulRunForTick( tick: SelfHealingPopulateTickResult ): PopulateRecipeRunResult | undefined { @@ -397,6 +410,15 @@ export function diagnosticRunForTick( return successfulRunForTick(tick) ?? tick.candidateRun ?? tick.activeRun; } +function acceptedPartialRunForTick( + tick: SelfHealingPopulateTickResult +): PopulateRecipeRunResult | undefined { + return [tick.candidateRun, tick.activeRun].find((run) => + run?.productionValidation.state === "accepted_partial" && + run.productionValidation.safeRowCount > 0 + ); +} + export function validationIssuesForSelfHealingTick( tick: SelfHealingPopulateTickResult ): string[] { @@ -482,6 +504,8 @@ function commitRateLimitedResult(input: { selectedRun: input.selectedRun, diagnosticRun: input.diagnosticRun ?? input.selectedRun, commitLimit: input.decision, + validationState: input.selectedRun?.productionValidation.state ?? + input.diagnosticRun?.productionValidation.state, rejectionReasons: [reason], validationIssues: [reason], tick: input.tick, diff --git a/backend/src/pipeline/populate-self-healing.ts b/backend/src/pipeline/populate-self-healing.ts index 918171a..67b176b 100644 --- a/backend/src/pipeline/populate-self-healing.ts +++ b/backend/src/pipeline/populate-self-healing.ts @@ -65,19 +65,38 @@ export interface PopulateRecipeArtifact { } export interface PopulateRecipeProductionValidation { + state: PopulateValidationState; isValid: boolean; score: number; rowCount: number; + safeRowCount: number; requestedCellCompletenessRatio: number; sourceUrlCoverageRatio: number; evidenceCoverageRatio: number; expectedEntityCoverageRatio: number; expectedEntities: string[]; missingExpectedEntities: string[]; + coveragePolicy: PopulateValidationCoveragePolicy; + targetSource: string; criticalIssues: string[]; warnings: string[]; } +export type PopulateValidationState = + | "accepted_full" + | "accepted_partial" + | "rejected"; + +export type PopulateValidationCoveragePolicy = + | "partial_allowed" + | "full_required"; + +interface PopulateValidationIntent { + expectedEntities: string[]; + coveragePolicy: PopulateValidationCoveragePolicy; + targetSource: string; +} + export interface PopulateRecipeRunResult extends PopulateRuntimeResult { recipeId: string; recipeVersion: number; @@ -218,7 +237,7 @@ export function populateRecipeRunResultFromRuntimeResult(input: { ...input.result, recipeId: input.recipe.recipeId, recipeVersion: input.recipe.version, - runStatus: productionValidation.isValid ? "succeeded" : "failed", + runStatus: productionValidation.state === "rejected" ? "failed" : "succeeded", startedAt: input.startedAt, completedAt, runtimeMs: Date.now() - input.startedAtMs, @@ -579,13 +598,25 @@ function requestedColumnNames(context: DatasetContext): string[] { return context.columns.map((column) => column.name); } +function requiredColumnNamesForValidation(context: DatasetContext): string[] { + return context.columns + .filter((column) => column.nullable !== true) + .map((column) => column.name); +} + +function columnRequirementLabels(context: DatasetContext): string { + return context.columns + .map((column) => `${column.name}${column.nullable ? " (nullable)" : " (required)"}`) + .join(", "); +} + function initialRuntimeInstructions(context: DatasetContext): string { return [ "Use search_web before fetch_page unless an official source URL is already obvious.", "Prefer official docs, pricing, blog, product, or company pages over third-party summaries.", "Every inserted row must include source_url and evidence_quote cells when those columns exist.", "Every inserted row must include at least one source URL and one evidence quote.", - `Requested columns: ${requestedColumnNames(context).join(", ")}.`, + `Requested columns: ${columnRequirementLabels(context)}.`, ].join("\n"); } @@ -637,13 +668,43 @@ function validatePopulateRuntimeResult(input: { result: PopulateRuntimeResult; context: DatasetContext; }): PopulateRecipeProductionValidation { - const requestedColumns = input.context.columns.map((column) => column.name); - const expectedEntities = expectedEntitiesFromContext(input.context); + const requestedColumns = requestedColumnNames(input.context); + const requiredColumns = requiredColumnNamesForValidation(input.context); + const nullableColumns = requestedColumns.filter( + (columnName) => !requiredColumns.includes(columnName) + ); + const validationIntent = validationIntentFromContext(input.context); + const expectedEntities = validationIntent.expectedEntities; const entityCoverage = expectedEntityCoverage({ rows: input.result.rows, expectedEntities, }); const rowCount = input.result.rows.length; + const rowSafety = input.result.rows.map((row, index) => + productionRowSafety({ + row, + rowNumber: index + 1, + requiredColumns, + }) + ); + const rowCriticalIssues = rowSafety.flatMap((safety) => safety.criticalIssues); + const dataCriticalIssues = criticalValidationIssues({ + validationIssues: input.result.validationIssues, + nullableColumns, + requiredColumns, + }); + const coverageIssues = coverageIssuesFromValidationIntent({ + missingExpectedEntities: entityCoverage.missingExpectedEntities, + }); + const safeRowCount = rowSafety.filter((safety) => safety.isSafe).length; + const state = validationStateFromSignals({ + rowCount, + safeRowCount, + rowCriticalIssues, + dataCriticalIssues, + coverageIssues, + coveragePolicy: validationIntent.coveragePolicy, + }); const requestedCellCompletenessRatio = averageRatio( input.result.rows.map((row) => cellCompletenessRatio(row, requestedColumns)) ); @@ -653,12 +714,6 @@ function validatePopulateRuntimeResult(input: { const evidenceCoverageRatio = averageRatio( input.result.rows.map((row) => row.evidence.length > 0 ? 1 : 0) ); - const criticalIssues = criticalIssuesForRows({ - rows: input.result.rows, - requestedColumns, - validationIssues: input.result.validationIssues, - missingExpectedEntities: entityCoverage.missingExpectedEntities, - }); const scoreComponents = [ requestedCellCompletenessRatio, sourceUrlCoverageRatio, @@ -670,58 +725,166 @@ function validatePopulateRuntimeResult(input: { const score = rowCount === 0 ? 0 : averageRatio(scoreComponents); + const criticalIssues = Array.from(new Set([ + ...rowCriticalIssues, + ...dataCriticalIssues, + ...coverageIssues, + ])); return { - isValid: criticalIssues.length === 0, + state, + isValid: state === "accepted_full", score, rowCount, + safeRowCount, requestedCellCompletenessRatio, sourceUrlCoverageRatio, evidenceCoverageRatio, expectedEntityCoverageRatio: entityCoverage.expectedEntityCoverageRatio, expectedEntities, missingExpectedEntities: entityCoverage.missingExpectedEntities, + coveragePolicy: validationIntent.coveragePolicy, + targetSource: validationIntent.targetSource, criticalIssues, warnings: input.result.validationIssues, }; } -function criticalIssuesForRows(input: { - rows: PopulateRuntimeRow[]; - requestedColumns: string[]; - validationIssues: string[]; +function validationStateFromSignals(input: { + rowCount: number; + safeRowCount: number; + rowCriticalIssues: string[]; + dataCriticalIssues: string[]; + coverageIssues: string[]; + coveragePolicy: PopulateValidationCoveragePolicy; +}): PopulateValidationState { + if (input.rowCount === 0 || input.safeRowCount === 0) { + return "rejected"; + } + if (input.rowCriticalIssues.length > 0 || input.dataCriticalIssues.length > 0) { + return "rejected"; + } + if (input.coverageIssues.length > 0) { + return input.coveragePolicy === "partial_allowed" + ? "accepted_partial" + : "rejected"; + } + return "accepted_full"; +} + +function coverageIssuesFromValidationIntent(input: { missingExpectedEntities: string[]; }): string[] { - const issues: string[] = []; - if (input.rows.length === 0) { - issues.push("Populate runtime returned no rows."); + if (input.missingExpectedEntities.length === 0) { + return []; } - if (input.missingExpectedEntities.length > 0) { - issues.push( - `Missing expected entities: ${input.missingExpectedEntities.join(", ")}.` + return [ + `Missing expected entities: ${input.missingExpectedEntities.join(", ")}.`, + ]; +} + +function productionRowSafety(input: { + row: PopulateRuntimeRow; + rowNumber: number; + requiredColumns: string[]; +}): { + isSafe: boolean; + criticalIssues: string[]; +} { + const criticalIssues: string[] = []; + const missingColumns = input.requiredColumns.filter( + (columnName) => isMissingCellValue(input.row.cells[columnName]) + ); + if (missingColumns.length > 0) { + criticalIssues.push( + `Row ${input.rowNumber} missing requested columns: ${missingColumns.join(", ")}.` ); } - input.rows.forEach((row, index) => { - const missingColumns = input.requestedColumns.filter( - (columnName) => isMissingCellValue(row.cells[columnName]) + if (input.row.sourceUrls.length === 0) { + criticalIssues.push(`Row ${input.rowNumber} has no source URL.`); + } + if (input.row.evidence.length === 0) { + criticalIssues.push(`Row ${input.rowNumber} has no evidence quote.`); + } + return { + isSafe: criticalIssues.length === 0, + criticalIssues, + }; +} + +function criticalValidationIssues(input: { + validationIssues: string[]; + nullableColumns: string[]; + requiredColumns: string[]; +}): string[] { + return input.validationIssues.filter((issue) => + /failed|missing|no rows|not found|invented|invalid|approximation|manual review|not present|could not be determined|left blank|unavailable/i.test(issue) && + !isNullableColumnOnlyWarning(issue, { + nullableColumns: input.nullableColumns, + requiredColumns: input.requiredColumns, + }) && + !isNonBlockingOperationalWarning(issue) + ); +} + +export function safeRowsForPopulateCommit(input: { + context: DatasetContext; + run: PopulateRecipeRunResult; +}): PopulateRuntimeRow[] { + const context = datasetContextSchema.parse(input.context); + const requiredColumns = requiredColumnNamesForValidation(context); + return input.run.rows.filter((row, index) => + productionRowSafety({ + row, + rowNumber: index + 1, + requiredColumns, + }).isSafe + ); +} + +function isNullableColumnOnlyWarning( + issue: string, + input: { + nullableColumns: string[]; + requiredColumns: string[]; + } +): boolean { + if (!/not present|could not be determined|left blank|unavailable/i.test(issue)) { + return false; + } + const mentionsNullableColumn = input.nullableColumns.some((columnName) => + issueMentionsColumn(issue, columnName) + ); + if (!mentionsNullableColumn) { + return false; + } + return !input.requiredColumns.some((columnName) => + issueMentionsColumn(issue, columnName) + ); +} + +function issueMentionsColumn(issue: string, columnName: string): boolean { + const normalizedIssue = normalizeColumnMention(issue); + const normalizedColumnName = normalizeColumnMention(columnName); + const meaningfulTokens = columnName + .split(/[^a-z0-9]+/i) + .map((part) => part.trim().toLowerCase()) + .filter((part) => part.length >= 3) + .filter((part) => + !["source", "url", "link", "evidence", "quote", "field", "value"].includes(part) ); - if (missingColumns.length > 0) { - issues.push(`Row ${index + 1} missing requested columns: ${missingColumns.join(", ")}.`); - } - if (row.sourceUrls.length === 0) { - issues.push(`Row ${index + 1} has no source URL.`); - } - if (row.evidence.length === 0) { - issues.push(`Row ${index + 1} has no evidence quote.`); - } - }); - input.validationIssues - .filter((issue) => - /failed|missing|no rows|not found|invented|invalid/i.test(issue) && - !isNonBlockingOperationalWarning(issue) - ) - .forEach((issue) => issues.push(issue)); - return Array.from(new Set(issues)); + if (meaningfulTokens.length === 0) { + return normalizedIssue.includes(normalizedColumnName); + } + return meaningfulTokens.some((part) => + normalizedIssue.includes(part.replace(/s$/, "")) + ); +} + +function normalizeColumnMention(value: string): string { + return value + .toLowerCase() + .replace(/[^a-z0-9]+/g, " "); } function cellCompletenessRatio( @@ -737,15 +900,22 @@ function cellCompletenessRatio( return filledCount / requestedColumns.length; } +function validationIntentFromContext(context: DatasetContext): PopulateValidationIntent { + return { + expectedEntities: expectedEntitiesFromContext(context), + coveragePolicy: coveragePolicyFromContext(context), + targetSource: targetSourceFromContext(context), + }; +} + function expectedEntitiesFromContext(context: DatasetContext): string[] { - const fromSegment = context.description.match(/\bfrom\s+([^?.]+)/i)?.[1]; - if (!fromSegment) { - return []; - } - const entities = fromSegment - .split(/,|\band\b/i) - .map((entity) => entity.replace(/\b(the|a|an)\b/gi, " ").trim()) - .map((entity) => entity.replace(/\s+/g, " ")) + const description = context.description.replace(/\s+/g, " ").trim(); + const entitySegments = [ + ...entitySegmentsAfterConnectors(description), + capitalizedListSegment(description), + ].filter((segment): segment is string => Boolean(segment)); + const entities = entitySegments + .flatMap((segment) => entitiesFromSegment(segment)) .filter((entity) => entity.length >= 2 && entity.length <= 60 && @@ -754,6 +924,60 @@ function expectedEntitiesFromContext(context: DatasetContext): string[] { return entities.length >= 2 ? Array.from(new Set(entities)) : []; } +function entitySegmentsAfterConnectors(description: string): string[] { + return Array.from( + description.matchAll( + /\b(?:from|for|across|among|between)\s+([^?.]+)/gi + ) + ).map((match) => stopEntitySegment(match[1] ?? "")); +} + +function capitalizedListSegment(description: string): string | undefined { + const commaList = description.match( + /\b([A-Z][A-Za-z0-9.&-]*(?:\s+[A-Z][A-Za-z0-9.&-]*)?(?:\s*,\s*[A-Z][A-Za-z0-9.&-]*(?:\s+[A-Z][A-Za-z0-9.&-]*)?)+(?:,?\s+and\s+[A-Z][A-Za-z0-9.&-]*(?:\s+[A-Z][A-Za-z0-9.&-]*)?)?)\b/ + )?.[1]; + return commaList ? stopEntitySegment(commaList) : undefined; +} + +function stopEntitySegment(segment: string): string { + return segment + .split(/\b(?:include|includes|including|with|where|that|whose|prefer|using|one row|one record|as|by)\b/i)[0] + ?.trim() ?? ""; +} + +function entitiesFromSegment(segment: string): string[] { + return segment + .split(/,|\band\b/i) + .map((entity) => entity.replace(/\b(the|a|an)\b/gi, " ").trim()) + .map((entity) => entity.replace(/\s+/g, " ")) + .map((entity) => entity.replace(/[.:;]+$/g, "").trim()) + .filter((entity) => !isValidationIntentStopword(entity)); +} + +function isValidationIntentStopword(value: string): boolean { + return /^(create|dataset|current|public|api|model|pricing|latest|posts?|articles?|companies|sources?|official|pages?)$/i.test(value); +} + +function coveragePolicyFromContext( + context: DatasetContext +): PopulateValidationCoveragePolicy { + return /\b(no partial|full coverage|required coverage|must include all|every expected|all expected)\b/i.test( + context.description + ) + ? "full_required" + : "partial_allowed"; +} + +function targetSourceFromContext(context: DatasetContext): string { + if (/\bofficial\b/i.test(context.description)) { + return "official public pages"; + } + if (/\b(public|website|docs|blog|news|pricing)\b/i.test(context.description)) { + return "public web sources"; + } + return "source-backed public data"; +} + function expectedEntityCoverage(input: { rows: PopulateRuntimeRow[]; expectedEntities: string[]; @@ -795,7 +1019,7 @@ function rowIdentityText(row: PopulateRuntimeRow): string { } function isNonBlockingOperationalWarning(issue: string): boolean { - return /^Structured fallback (search|fetch) failed/i.test(issue); + return /^(Structured fallback (search|fetch) failed|search_web failed|fetch_page failed|context URL fetch failed)/i.test(issue); } function isMissingCellValue(value: unknown): boolean { diff --git a/backend/src/pipeline/populate.ts b/backend/src/pipeline/populate.ts index 1524d34..ab160c6 100644 --- a/backend/src/pipeline/populate.ts +++ b/backend/src/pipeline/populate.ts @@ -4,6 +4,7 @@ export const populateColumnSchema = z.object({ name: z.string(), type: z.enum(["text", "number", "boolean", "url", "date"]), description: z.optional(z.string()), + nullable: z.optional(z.boolean()), }); export type PopulateColumn = z.infer; diff --git a/backend/src/server.ts b/backend/src/server.ts index 18063d9..2a92b61 100644 --- a/backend/src/server.ts +++ b/backend/src/server.ts @@ -182,6 +182,7 @@ function responseSafePopulateResult( action: result.action, datasetId: result.datasetId, success: result.success, + validationState: result.validationState, committedRows: result.committedRows, commitLimit: result.commitLimit, rejectionReasons: result.rejectionReasons, @@ -189,6 +190,12 @@ function responseSafePopulateResult( productionValidation: diagnosticRun?.productionValidation, metrics: diagnosticRun?.metrics, rowCount: diagnosticRun?.rows.length ?? 0, + sampleRows: (diagnosticRun?.rows ?? []).slice(0, 5).map((row) => ({ + cells: row.cells, + sourceUrls: row.sourceUrls, + evidence: row.evidence, + needsReview: row.needsReview, + })), }; } diff --git a/backend/test/populate-convex-writer.test.ts b/backend/test/populate-convex-writer.test.ts index d347b9f..7a60c4d 100644 --- a/backend/test/populate-convex-writer.test.ts +++ b/backend/test/populate-convex-writer.test.ts @@ -52,12 +52,17 @@ test("Convex populate row writer uses one atomic replace mutation", async () => assert.equal(calls[0]?.functionReference, replaceByDataset); assert.deepEqual(calls[0]?.args, { datasetId: "dataset-ai-posts", - rows: [{ - data: { - entity_name: "OpenAI", - source_url: "https://openai.com/news", - }, - sources: ["https://openai.com/news"], - }], - }); + rows: [{ + data: { + entity_name: "OpenAI", + source_url: "https://openai.com/news", + }, + sources: ["https://openai.com/news"], + evidence: [{ + columnName: "entity_name", + sourceUrl: "https://openai.com/news", + quote: "OpenAI", + }], + }], + }); }); diff --git a/backend/test/populate-dataset-owner-loader.test.ts b/backend/test/populate-dataset-owner-loader.test.ts new file mode 100644 index 0000000..52e05ae --- /dev/null +++ b/backend/test/populate-dataset-owner-loader.test.ts @@ -0,0 +1,67 @@ +import assert from "node:assert/strict"; +import { test } from "node:test"; + +import { ConvexPopulateDatasetOwnerLoader } from "../src/pipeline/populate-dataset-owner-loader.js"; + +test("Convex dataset owner loader uses trusted system populate query", async () => { + const getForSystemPopulate = Symbol("getForSystemPopulate"); + const calls: Array<{ functionReference: unknown; args: unknown }> = []; + const loader = new ConvexPopulateDatasetOwnerLoader({ + internalApi: { + datasets: { + getForSystemPopulate, + }, + }, + convexClient: { + async query(functionReference, args) { + calls.push({ functionReference, args }); + return { ownerId: "user-1" }; + }, + }, + }); + + const dataset = await loader.loadDataset("dataset-ai-posts"); + + assert.deepEqual(calls, [{ + functionReference: getForSystemPopulate, + args: { id: "dataset-ai-posts" }, + }]); + assert.deepEqual(dataset, { ownerId: "user-1" }); +}); + +test("Convex dataset owner loader returns null for missing dataset", async () => { + const loader = new ConvexPopulateDatasetOwnerLoader({ + internalApi: { + datasets: { + getForSystemPopulate: Symbol("getForSystemPopulate"), + }, + }, + convexClient: { + async query() { + return null; + }, + }, + }); + + assert.equal(await loader.loadDataset("missing-dataset"), null); +}); + +test("Convex dataset owner loader rejects malformed dataset owner", async () => { + const loader = new ConvexPopulateDatasetOwnerLoader({ + internalApi: { + datasets: { + getForSystemPopulate: Symbol("getForSystemPopulate"), + }, + }, + convexClient: { + async query() { + return { ownerId: "" }; + }, + }, + }); + + await assert.rejects( + loader.loadDataset("dataset-ai-posts"), + /Dataset dataset-ai-posts is missing ownerId/ + ); +}); diff --git a/backend/test/populate-runtime.test.ts b/backend/test/populate-runtime.test.ts index 5172f8e..cf3eea2 100644 --- a/backend/test/populate-runtime.test.ts +++ b/backend/test/populate-runtime.test.ts @@ -147,6 +147,197 @@ test("populate runtime accepts structured fallback rows backed by captured sourc assert.deepEqual(result.validationIssues, []); }); +test("populate runtime builds simple title URL rows from captured sources", async () => { + const result = await runPopulateRuntime({ + context: { + datasetId: "product-releases", + datasetName: "OpenAI product releases", + description: + "find OpenAI product release articles from https://openai.com/news/product-releases/ with post title and post URL", + columns: [ + { + name: "Post Title", + type: "text" as const, + description: "Post title.", + }, + { + name: "Post URL", + type: "url" as const, + description: "Post URL.", + }, + ], + }, + webTools: { + search: async () => [ + { + title: "OpenAI Newsroom | Product", + snippet: "Product release listing page.", + url: "https://openai.com/news/product-releases/", + }, + { + title: "Introducing GPT-5", + snippet: "OpenAI product release post.", + url: "https://openai.com/index/introducing-gpt-5/", + }, + ], + fetch: async () => ({ + title: "OpenAI Newsroom | Product", + text: "Product release listing page.", + }), + }, + agentRunner: async ({ tools }) => { + const searchWeb = tools.search_web as ToolLike< + { query: string }, + { results?: unknown[] } + >; + await searchWeb.execute({ query: "OpenAI product releases" }); + return { + rows: [{ + cells: { + "Post Title": "OpenAI Newsroom | Product", + "Post URL": "https://openai.com/news/product-releases/", + }, + sourceUrls: ["https://openai.com/news/product-releases/"], + evidence: [{ + columnName: "Post Title", + sourceUrl: "https://openai.com/news/product-releases/", + quote: "OpenAI Newsroom | Product", + }], + }], + validationIssues: [ + "Individual article URLs are not present in the transcript; only the listing page URL is available.", + ], + }; + }, + }); + + assert.equal(result.rows.length, 1); + assert.equal(result.rows[0]?.cells["Post Title"], "Introducing GPT-5"); + assert.equal( + result.rows[0]?.cells["Post URL"], + "https://openai.com/index/introducing-gpt-5/" + ); + assert.deepEqual(result.validationIssues, []); +}); + +test("populate runtime shortcuts explicit URL title rows without agent call", async () => { + let agentCalls = 0; + const result = await runPopulateRuntime({ + context: { + datasetId: "docs-pages", + datasetName: "OpenAI API docs pages", + description: + "make a table from these public OpenAI API docs pages with only page title and page URL: https://developers.openai.com/api/docs/mcp", + columns: [ + { + name: "Page URL", + type: "url" as const, + description: "Page URL.", + }, + { + name: "Page Title", + type: "text" as const, + description: "Page title.", + }, + ], + }, + webTools: { + search: async () => [], + fetch: async () => ({ + title: "Building MCP servers for ChatGPT Apps and API integrations", + text: "Building MCP servers for ChatGPT Apps and API integrations\nMCP and Connectors", + }), + }, + agentRunner: async () => { + agentCalls += 1; + }, + }); + + assert.equal(agentCalls, 0); + assert.equal(result.rows.length, 1); + assert.equal( + result.rows[0]?.cells["Page Title"], + "Building MCP servers for ChatGPT Apps and API integrations" + ); + assert.equal( + result.rows[0]?.cells["Page URL"], + "https://developers.openai.com/api/docs/mcp" + ); + assert.deepEqual(result.validationIssues, []); + assert.equal(result.metrics.agentRuns, 0); +}); + +test("populate runtime does not build deterministic rows outside explicit URL scope", async () => { + const result = await runPopulateRuntime({ + context: { + datasetId: "product-releases", + datasetName: "OpenAI product releases", + description: + "find OpenAI product release articles from https://openai.com/news/product-releases/ with post title and post URL", + columns: [ + { + name: "Post Title", + type: "text" as const, + description: "Post title.", + }, + { + name: "Post URL", + type: "url" as const, + description: "Post URL.", + }, + ], + }, + webTools: { + search: async () => [ + { + title: "Building MCP servers for ChatGPT Apps and API integrations", + snippet: "OpenAI developer docs.", + url: "https://developers.openai.com/api/docs/mcp", + }, + ], + fetch: async (input) => { + if (input.url === "https://openai.com/news/product-releases/") { + throw new Error("fetch failed"); + } + return { + title: "Building MCP servers for ChatGPT Apps and API integrations", + text: "Building MCP servers for ChatGPT Apps and API integrations", + }; + }, + }, + agentRunner: async ({ tools }) => { + const searchWeb = tools.search_web as ToolLike< + { query: string }, + { results?: unknown[] } + >; + await searchWeb.execute({ query: "OpenAI product releases" }); + return { + rows: [{ + cells: { + "Post Title": "OpenAI Newsroom | Product", + "Post URL": "https://openai.com/news/product-releases/", + }, + sourceUrls: ["https://openai.com/news/product-releases/"], + evidence: [{ + columnName: "Post Title", + sourceUrl: "https://openai.com/news/product-releases/", + quote: "OpenAI Newsroom | Product", + }], + }], + validationIssues: [ + "Individual article URLs are not present in the transcript; only the listing page URL is available.", + ], + }; + }, + }); + + assert.equal(result.rows.length, 0); + assert.match( + result.validationIssues.join("\n"), + /Mastra populate runtime returned no rows/ + ); +}); + test("populate runtime rejects structured fallback rows without source-backed evidence", async () => { const result = await runPopulateRuntime({ context, diff --git a/backend/test/populate-self-healing-command.test.ts b/backend/test/populate-self-healing-command.test.ts index a23da5b..89727bc 100644 --- a/backend/test/populate-self-healing-command.test.ts +++ b/backend/test/populate-self-healing-command.test.ts @@ -467,8 +467,10 @@ function rejectedResult(datasetId: string): RunSelfHealingPopulateResult { validationIssues: ["Still no evidence."], productionValidation: { ...baseRun(datasetId).productionValidation, + state: "rejected", isValid: false, score: 0, + safeRowCount: 0, criticalIssues: ["Still no evidence."], }, }, @@ -501,15 +503,19 @@ function baseRun(datasetId: string): RunSelfHealingPopulateResult["selectedRun"] completedAt: "2026-05-22T00:00:01.000Z", runtimeMs: 1_000, productionValidation: { + state: "accepted_full", isValid: true, score: 1, rowCount: 1, + safeRowCount: 1, requestedCellCompletenessRatio: 1, sourceUrlCoverageRatio: 1, evidenceCoverageRatio: 1, expectedEntityCoverageRatio: 1, expectedEntities: [], missingExpectedEntities: [], + coveragePolicy: "partial_allowed", + targetSource: "public web sources", criticalIssues: [], warnings: [], }, diff --git a/backend/test/populate-self-healing-runner.test.ts b/backend/test/populate-self-healing-runner.test.ts index 79c03ca..8767bb4 100644 --- a/backend/test/populate-self-healing-runner.test.ts +++ b/backend/test/populate-self-healing-runner.test.ts @@ -311,6 +311,35 @@ test("self-healing runner does not clear or insert rows when candidate is reject assert.match(result.validationIssues.join("\n"), /Still no evidence/); }); +test("self-healing runner commits partial safe rows without promoting recipe", async () => { + const store = new InMemoryPopulateRecipeStore(); + const generatedRecipe = recipe({ recipeId: "generated-v1" }); + const writer = new FakePopulateDatasetRowWriter(); + + const result = await runSelfHealingPopulate({ + context, + store, + runtime: new FakePopulateRecipeRuntime({ + "generated-v1": partialRun( + generatedRecipe, + "Missing expected entities: Anthropic." + ), + }), + author: new FakeRecipeAuthor({ generatedRecipe }), + rowWriter: writer, + shouldCommitRows: true, + }); + const snapshot = await store.loadSnapshot(context.datasetId); + + assert.equal(result.success, true); + assert.equal(result.action, "candidate_rejected"); + assert.equal(result.validationState, "accepted_partial"); + assert.equal(result.committedRows?.insertedRowCount, 1); + assert.equal(writer.replaceCalls.length, 1); + assert.equal(writer.replaceCalls[0]?.rows[0]?.cells.entity_name, "OpenAI 1"); + assert.equal(snapshot.recipes[0]?.status, "rejected"); +}); + test("filesystem store lets the runner reuse an active recipe across calls", async () => { const rootDirectory = await mkdtemp(join(tmpdir(), "bigset-populate-runner-")); const store = new FileSystemPopulateRecipeStore(rootDirectory); @@ -419,6 +448,29 @@ function invalidRun(recipe: PopulateRecipe, issue: string): PopulateRecipeRunRes }); } +function partialRun(recipe: PopulateRecipe, issue: string): PopulateRecipeRunResult { + const run = runResult({ + recipe, + rows: validRunWithRows(recipe, 1).rows, + validationIssues: [issue], + criticalIssues: [issue], + isValid: false, + score: 0.75, + }); + return { + ...run, + runStatus: "succeeded", + productionValidation: { + ...run.productionValidation, + state: "accepted_partial", + safeRowCount: run.rows.length, + expectedEntityCoverageRatio: 0.5, + expectedEntities: ["OpenAI", "Anthropic"], + missingExpectedEntities: ["Anthropic"], + }, + }; +} + function runResult(input: { recipe: PopulateRecipe; rows: PopulateRecipeRunResult["rows"]; @@ -449,15 +501,19 @@ function runResult(input: { completedAt: "2026-05-22T00:00:01.000Z", runtimeMs: 1_000, productionValidation: { + state: input.isValid ? "accepted_full" : "rejected", isValid: input.isValid, score: input.score, rowCount: input.rows.length, + safeRowCount: input.isValid ? input.rows.length : 0, requestedCellCompletenessRatio: input.score, sourceUrlCoverageRatio: input.score, evidenceCoverageRatio: input.score, expectedEntityCoverageRatio: input.score, expectedEntities: [], missingExpectedEntities: [], + coveragePolicy: "partial_allowed", + targetSource: "public web sources", criticalIssues: input.criticalIssues ?? [], warnings: input.validationIssues ?? [], }, diff --git a/backend/test/populate-self-healing.test.ts b/backend/test/populate-self-healing.test.ts index 50cc1f8..da8bbc7 100644 --- a/backend/test/populate-self-healing.test.ts +++ b/backend/test/populate-self-healing.test.ts @@ -286,6 +286,76 @@ test("Mastra populate recipe runtime keeps supplemental fetch misses non-blockin assert.match(run.productionValidation.warnings.join("\n"), /timeout/); }); +test("Mastra populate recipe runtime treats nullable missing cells as non-blocking", async () => { + const runtime = new MastraPopulateRecipeRuntime({ + runPopulate: async () => ({ + rows: validRows(), + validationIssues: [ + "Author field could not be determined from the available source transcript.", + ], + usage: emptyUsage(), + metrics: emptyMetrics(), + }), + }); + + const run = await runtime.runRecipe({ + recipe: recipe({ recipeId: "recipe-v1" }), + context: { + ...context, + columns: [ + ...context.columns, + { + name: "author", + type: "text", + description: "Author when the source names one.", + nullable: true, + }, + ], + }, + }); + + assert.equal(run.runStatus, "succeeded"); + assert.equal(run.productionValidation.isValid, true); + assert.deepEqual(run.productionValidation.criticalIssues, []); + assert.equal(run.productionValidation.requestedCellCompletenessRatio, 0.8); +}); + +test("Mastra populate recipe runtime rejects approximated required cells", async () => { + const runtime = new MastraPopulateRecipeRuntime({ + runPopulate: async () => ({ + rows: validRows(), + validationIssues: [ + "Actual post titles and canonical URLs are not present in the captured transcript, so category+date combinations are used as best approximations. These rows require manual review.", + ], + usage: emptyUsage(), + metrics: emptyMetrics(), + }), + }); + + const run = await runtime.runRecipe({ + recipe: recipe({ recipeId: "recipe-v1" }), + context: { + ...context, + columns: [ + ...context.columns, + { + name: "author", + type: "text", + description: "Author when the source names one.", + nullable: true, + }, + ], + }, + }); + + assert.equal(run.runStatus, "failed"); + assert.equal(run.productionValidation.isValid, false); + assert.match( + run.productionValidation.criticalIssues.join("\n"), + /best approximations/ + ); +}); + test("process trace artifacts stay parseable when trace content is large", async () => { const runtime = new MastraPopulateRecipeRuntime({ runPopulate: async () => ({ @@ -335,7 +405,7 @@ test("process trace artifacts stay parseable when trace content is large", async assert.match(parsedTrace.searchQueries[0], /\[truncated\]/); }); -test("Mastra populate recipe runtime blocks missing expected entities", async () => { +test("Mastra populate recipe runtime marks missing expected entities as partial", async () => { const runtime = new MastraPopulateRecipeRuntime({ runPopulate: async () => ({ rows: [{ @@ -368,8 +438,10 @@ test("Mastra populate recipe runtime blocks missing expected entities", async () }, }); - assert.equal(run.runStatus, "failed"); + assert.equal(run.runStatus, "succeeded"); + assert.equal(run.productionValidation.state, "accepted_partial"); assert.equal(run.productionValidation.isValid, false); + assert.equal(run.productionValidation.safeRowCount, 1); assert.deepEqual(run.productionValidation.expectedEntities, [ "OpenAI", "Anthropic", @@ -671,15 +743,19 @@ function runResult(input: { completedAt: "2026-05-22T00:00:01.000Z", runtimeMs: 1_000, productionValidation: { + state: input.isValid ? "accepted_full" : "rejected", isValid: input.isValid, score: input.score, rowCount: input.rows.length, + safeRowCount: input.isValid ? input.rows.length : 0, requestedCellCompletenessRatio: input.score, sourceUrlCoverageRatio: input.score, evidenceCoverageRatio: input.score, expectedEntityCoverageRatio: input.score, expectedEntities: [], missingExpectedEntities: [], + coveragePolicy: "partial_allowed", + targetSource: "public web sources", criticalIssues: input.criticalIssues ?? [], warnings: input.validationIssues ?? [], }, diff --git a/backend/test/populate-server.test.ts b/backend/test/populate-server.test.ts index af289e8..cbc6b63 100644 --- a/backend/test/populate-server.test.ts +++ b/backend/test/populate-server.test.ts @@ -111,15 +111,19 @@ function successfulResult(datasetId: string): RunSelfHealingPopulateResult { completedAt: "2026-05-22T00:00:01.000Z", runtimeMs: 1_000, productionValidation: { + state: "accepted_full", isValid: true, score: 1, rowCount: 1, + safeRowCount: 1, requestedCellCompletenessRatio: 1, sourceUrlCoverageRatio: 1, evidenceCoverageRatio: 1, expectedEntityCoverageRatio: 1, expectedEntities: [], missingExpectedEntities: [], + coveragePolicy: "partial_allowed", + targetSource: "public web sources", criticalIssues: [], warnings: [], }, diff --git a/backend/test/tinyfish-agent-run.test.ts b/backend/test/tinyfish-agent-run.test.ts index 9c81876..5994a85 100644 --- a/backend/test/tinyfish-agent-run.test.ts +++ b/backend/test/tinyfish-agent-run.test.ts @@ -16,7 +16,12 @@ test("TinyFish run normalization keeps safe provenance without streaming URL", ( records: [], }, error: null, - streaming_url: "https://agent.tinyfish.ai/private-stream-token", + streaming_url: "STREAMING_URL_SHOULD_NOT_BE_STORED", + recording_url: "RECORDING_URL_SHOULD_NOT_BE_STORED", + capture_artifacts: [{ + type: "screenshot", + url: "CAPTURE_ARTIFACT_URL_SHOULD_NOT_BE_STORED", + }], browser_config: { proxy_enabled: true, proxy_country_code: null, @@ -25,9 +30,88 @@ test("TinyFish run normalization keeps safe provenance without streaming URL", ( assert.equal(normalized.agent_step_count, 3); assert.equal(normalized.has_streaming_url, true); + assert.equal(normalized.has_recording_url, true); + assert.equal(normalized.capture_artifact_count, 1); assert.deepEqual(normalized.result_keys, ["records"]); assert.equal( - JSON.stringify(normalized).includes("private-stream-token"), + JSON.stringify(normalized).includes("STREAMING_URL_SHOULD_NOT_BE_STORED"), false ); + assert.equal( + JSON.stringify(normalized).includes("RECORDING_URL_SHOULD_NOT_BE_STORED"), + false + ); + assert.equal( + JSON.stringify(normalized).includes("CAPTURE_ARTIFACT_URL_SHOULD_NOT_BE_STORED"), + false + ); +}); + +test("TinyFish run normalization converts documented run steps to browser actions", () => { + const normalized = tinyfishAgentRunResultFromRun({ + run_id: "run-2", + status: "COMPLETED", + goal: "Extract rows.", + created_at: "2026-05-23T00:00:00Z", + started_at: "2026-05-23T00:00:01Z", + finished_at: "2026-05-23T00:00:02Z", + num_of_steps: 4, + result: { + records: [], + }, + error: null, + streaming_url: null, + steps: [{ + type: "navigate", + url: "https://example.com/products", + status: "completed", + }, { + action: "click", + current_url: "https://example.com/products", + target: { + selector: "button[data-category='tools']", + text: "Tools", + }, + outcome: "success", + }, { + type: "type", + current_url: "https://example.com/products", + selector: "input[name='password']", + value: "secret-password", + status: "completed", + }], + } as never); + + assert.deepEqual(normalized.browser_actions, [{ + action: "navigate", + url: "https://example.com/products", + selector: undefined, + target_text: undefined, + status: "succeeded", + error: undefined, + phase: "agent-step", + label: "navigate", + value_description: undefined, + }, { + action: "click", + url: "https://example.com/products", + selector: "button[data-category='tools']", + target_text: "Tools", + status: "succeeded", + error: undefined, + phase: "agent-step", + label: undefined, + value_description: undefined, + }, { + action: "fill", + url: "https://example.com/products", + selector: "input[name='password']", + target_text: undefined, + status: "succeeded", + error: undefined, + phase: "agent-step", + label: "type", + value_description: "redacted typed value (15 chars)", + }]); + assert.equal(JSON.stringify(normalized).includes("secret-password"), false); }); diff --git a/docs/assets/bigset-populate-before-state.svg b/docs/assets/bigset-populate-before-state.svg new file mode 100644 index 0000000..43f8a12 --- /dev/null +++ b/docs/assets/bigset-populate-before-state.svg @@ -0,0 +1 @@ +

Backend path reached

Browser Convex calls

Signed-in BigSet browser

frontend shows generic retry error

rows stay 0

Prompt
'yc companies hiring right now'

Generated schema
9 requested columns

Dataset page
Yc Companies Hiring

Clear & Populate

datasets.create
signed-in user

datasets.get + datasetRows.list
signed-in user

POST /populate
frontend sends auth header

convex.query(api.datasets.get)
backend dataset lookup

Convex sees caller
anonymous

BLOCKER
[authz] deny op=read
reason=anonymous_private
Dataset not found

Not Mastra yet
Not validation yet
No row write attempted

\ No newline at end of file diff --git a/docs/assets/bigset-populate-target-loop.svg b/docs/assets/bigset-populate-target-loop.svg new file mode 100644 index 0000000..6d65689 --- /dev/null +++ b/docs/assets/bigset-populate-target-loop.svg @@ -0,0 +1 @@ +

5. Safe commit + artifacts

4. Self-healing safety layer

3. Mastra orchestration + TinyFish tools

2. Backend /populate

1. Frontend app

no

yes

yes

no

Prompt

Schema review

Dataset page

Visible rows
source URLs + evidence quotes

Populate request

Ownership-safe dataset load

Runtime checks
keys, Convex writer, throttle

TinyFish Search API
search_web

TinyFish Fetch API
fetch_page

Needs browser nav?

TinyFish Agent endpoint
browser actions

Extract candidate rows

Process trace
sources, actions, issues

Load or create recipe

Validate candidate run

Safe to promote?

Row safety cap

Convex internal row writer

Run artifacts
recipe, validation, diagnostics

\ No newline at end of file diff --git a/docs/assets/bigset-populate-validation-gate.svg b/docs/assets/bigset-populate-validation-gate.svg new file mode 100644 index 0000000..0252bb7 --- /dev/null +++ b/docs/assets/bigset-populate-validation-gate.svg @@ -0,0 +1 @@ +

Replay diagnostics

Bad run path

Good run path

Validation checks

yes

no

yes

no

Candidate extraction run
rows + sources + evidence + trace

Nonzero row count

Requested columns filled

Source URL coverage

Evidence quote coverage

Expected entities covered
when prompt names them

No critical runtime issue

All required checks pass?

Promote recipe
trusted reusable plan

Commit rows safely
Convex datasetRows

Surface result in UI
count, source, evidence

Reject candidate

Write no fake rows

Save rejection reason
for debugging and repair

Explicit browser actions exist?

Replay readiness: ready

Generate draft Playwright script

No script
not enough browser-action data

\ No newline at end of file diff --git a/docs/self-healing-data-collection-flow.html b/docs/self-healing-data-collection-flow.html new file mode 100644 index 0000000..353efd7 --- /dev/null +++ b/docs/self-healing-data-collection-flow.html @@ -0,0 +1,347 @@ + + + + + + BigSet PR67 Populate Flow + + + +
+ + diff --git a/docs/self-healing-data-collection-flow.md b/docs/self-healing-data-collection-flow.md index 111018c..bbfc448 100644 --- a/docs/self-healing-data-collection-flow.md +++ b/docs/self-healing-data-collection-flow.md @@ -8,9 +8,30 @@ Team direction changed from "compare the standalone collection pipeline against Goal: one app-integrated system where a user can type a dataset request in BigSet, create the table, populate rows from real sources, reject bad output, and eventually rerun the working browser steps cheaply. -Tomorrow demo goal: one draft PR that a teammate can check out, run with `make dev`, open in the BigSet frontend, create a dataset from a prompt, run populate, and inspect rows plus source/evidence behavior. If any part is still blocked, the PR must say the exact blocker instead of implying the flow is fully done. +PR67 demo goal: one draft PR that a teammate can check out, run with `make dev`, open in the BigSet frontend, create a dataset from a prompt, run populate, and inspect either accepted rows with source/evidence behavior or a clear rejection state with zero fake rows written. -Product path: use Mastra inside the BigSet app. The older standalone collection agent is not a separate demo path; its useful ideas can be ported behind the app's adapter boundary. +Product path: use the BigSet app path with Mastra as the orchestrator and TinyFish as the web capability layer. In the current Mastra path, `search_web` and `fetch_page` are backed by TinyFish Search and TinyFish Fetch. For browser-heavy sources, the target path should call the TinyFish Agent endpoint, capture explicit browser actions, and feed those actions into Playwright replay diagnostics. The older standalone collection agent is not a separate demo path; its useful ideas can be ported behind the app's adapter boundary. + +PR67 implementation status: + +- Backend `/populate` no longer loads private datasets through the anonymous public Convex query. It uses a trusted system lookup to read the dataset owner, then still checks that owner against the authenticated request user before running populate. +- The row writer now persists row evidence into Convex so accepted rows can surface source quotes later. +- The dataset page now shows populate state, validation score, first rejection reason, source URLs, and evidence snippets when the backend returns them. +- Rejected populate runs return `422` with a response-safe validation summary; the UI shows "Rejected: no rows written" instead of a generic failure. +- Validation distinguishes `accepted_full`, `accepted_partial`, and `rejected`. Partial runs may write individually safe rows while withholding full recipe promotion when expected coverage is incomplete. +- Explicit URL title/URL prompts can use fetched source snippets directly, which keeps narrow demo prompts bounded and prevents drift to adjacent source families. +- Deterministic fallback rows are constrained to the prompt's explicit URL host scope, so an OpenAI product-release prompt cannot accept unrelated OpenAI developer docs just because both mention OpenAI. +- Docker dev startup repairs `.bigset` volume ownership before dropping to the non-root `node` user, so the recipe store can be written after a fresh rebuild. + +## Rendered PR67 Flow + +Open the PR-facing rendered artifact here: [self-healing-data-collection-flow.html](self-healing-data-collection-flow.html). + +It embeds these rendered diagrams: + +- [Before-state auth break](assets/bigset-populate-before-state.svg) +- [Target app loop](assets/bigset-populate-target-loop.svg) +- [Validation gate](assets/bigset-populate-validation-gate.svg) ## Plain-English Image @@ -26,23 +47,41 @@ Plain English version: 1. User asks BigSet for a table. 2. BigSet creates the table shape. -3. The backend finds web sources. -4. The data collection workflow fills rows from those sources. +3. The backend finds web sources using TinyFish Search/Fetch. +4. The data collection workflow fills rows from those sources, and uses the TinyFish Agent endpoint when browser navigation is required. 5. The self-healing layer checks whether the rows are real, sourced, and useful. 6. If good, BigSet saves the working extraction plan and writes rows to the database. 7. If bad, BigSet rejects that run and tries to repair the missing/bad parts. 8. Later, if browser steps worked once, BigSet should rerun those browser steps on a schedule instead of paying a full agent every time. +## Current Smoke Status + +Verified locally on May 23, 2026 with `make dev`, signed-in Chrome-for-testing, backend `http://localhost:3501`, frontend `http://localhost:3500`, Mastra Studio `http://localhost:4111`, and self-hosted Convex. + +Passed: + +1. `make dev` rebuilt and pushed Convex functions. +2. Signed-in browser session reached the dashboard and existing dataset page. +3. `/populate` reached backend with authenticated user context from the BigSet dataset page. +4. The previous anonymous Convex private-read failure did not recur. +5. Underspecified prompt smoke returned `422`, committed zero rows, and showed "Rejected: no rows written" with validation details in the dataset page. +6. Well-scoped explicit URL prompt smoke created `Openai Api Docs Pages` from the frontend, then `Clear & Populate` committed 2 source-backed rows through backend `/populate`, Convex, and the dataset table. +7. The final trusted run returned `active_rerun_succeeded`, `accepted_full`, score `1.00`, and the UI showed "Accepted full 2 rows" with source links and evidence. + +V1 prompt boundary: + +1. The demo path expects well-scoped prompts with row entity, source family, and columns. +2. Ambiguous prompts still need a future clarification UX; current behavior is to reject unsafe output rather than invent rows. +3. Browser replay remains honest: search/fetch traces are not replayable browser actions, so runs without explicit browser actions are marked `not_ready` for Playwright replay instead of generating fake scripts. + ## Action Items -1. Mastra owner should open a PR for the updated whole collection system by tomorrow so the team can check it out, run it, and test prompt-to-dataset in the BigSet frontend. -2. Mastra owner should send a simple detailed flowchart ASAP showing how the agent system works and where the self-healing / Playwright work plugs in. -3. Mastra owner should raise extraction beyond the tiny demo target and test whether the current pipeline can fill many useful rows without treating 100 as a product limit. -4. Mastra owner should improve the repair loop so it searches for missing fields/cells instead of blindly rerunning the same full cycle. -5. Mastra owner should add a browser/Playwright/TinyFish Agent stage for sources that normal fetch cannot read well. -6. Self-healing owner should explain the current self-healing and Playwright layer in a quick sync, especially whether it should be separate or part of the core pipeline. -7. Team should confirm `make dev` setup and required env files at root, frontend, and backend. -8. Everyone should ask for help early if blocked. Weekend goal is a working integrated flow, not isolated demos. +1. Add a real browser/Playwright/TinyFish Agent stage for sources that normal TinyFish Fetch cannot read well. +2. Make the repair loop target missing fields/cells instead of blindly rerunning the same full cycle. +3. Add run/step timeouts around browser replay/repair candidates before promoting them beyond diagnostics. +4. Keep accepted-run promotion and row writes behind the validation gate. +5. Keep rejected-run UI explicit: no fake rows written, first validation issue visible, and no silent success. +6. Confirm whether Playwright should be a separate stage after source fetch or inside the core Mastra collection flow. ## Mermaid Diagram @@ -100,7 +139,9 @@ Dataset request: user asks BigSet to make a table, like "find Amazon Starbucks p `/populate`: backend route that takes the request and runs data collection. -Mastra: app-integrated agent framework. This is the path the team wants to use as the main app path. +Mastra: app-integrated agent framework. This is the path the team wants to use as the main app path. It should orchestrate BigSet's populate flow, not replace TinyFish. + +TinyFish Search/Fetch: the concrete web APIs behind the current `search_web` and `fetch_page` tools. Data collection workflow: the whole process that searches, fetches, uses browser navigation when needed, and fills table rows. @@ -108,7 +149,7 @@ Standalone data-collection-agent: older pipeline used as an implementation refer Search/prioritize agent: first agent. It finds possible sources and chooses which sources are worth fetching. -Fetch selected sources: normal HTTP/page fetch. Cheap and deterministic compared to a full browser agent. +Fetch selected sources: normal HTTP/page fetch through TinyFish Fetch. Cheap and deterministic compared to a full browser agent. Populate agent: second agent. It fills rows/cells using a fixed list of fetched sources, so it has less room to wander or hallucinate. @@ -146,14 +187,19 @@ Built now: - Self-healing wrapper concept exists around collection runs. - It validates rows, source URLs, evidence, and expected entities. -- It promotes good recipes and rejects bad candidates. +- It distinguishes accepted full, accepted partial, and rejected candidates. +- It promotes full accepted recipes, writes partial safe rows without full promotion, and rejects bad candidates. - It caps real row commits. - It emits Playwright-readiness diagnostics. - It can generate a draft browser replay script when explicit browser actions exist. +- Backend `/populate` has an ownership-safe dataset lookup path. +- Convex row writes persist source evidence. +- Dataset page can surface accepted/rejected populate status and validation evidence. +- Authenticated UI smoke proved accepted full rows through frontend prompt, backend `/populate`, Mastra/self-healing, Convex write, and frontend evidence UI. Not done yet: -- Mastra still needs the final quality/integration pass for the one app path. +- A generalized clarification UX for under-specified prompts is still future. - Browser/Playwright stage is not fully proven end to end inside Mastra. - Scheduled browser replay is still future. - Browser script auto-repair is still future. diff --git a/frontend/app/dataset/[id]/page.tsx b/frontend/app/dataset/[id]/page.tsx index 3a158ae..55a8bf5 100644 --- a/frontend/app/dataset/[id]/page.tsx +++ b/frontend/app/dataset/[id]/page.tsx @@ -12,15 +12,29 @@ import { useSelection } from "@/components/table/use-selection"; import { ThemeToggle } from "@/components/ThemeToggle"; import { StatusBadge } from "@/components/dataset/StatusBadge"; import { downloadCSV, downloadXLSX } from "@/lib/export"; -import { populate } from "@/lib/backend"; +import { + PopulateApiError, + populate, + type PopulateRunSummary, +} from "@/lib/backend"; import { EVENTS, captureException, track } from "@/lib/analytics"; +type PopulateStatus = + | { state: "idle" } + | { state: "running" } + | { state: "accepted"; summary: PopulateRunSummary } + | { state: "rejected"; message: string; summary?: PopulateRunSummary } + | { state: "failed"; message: string; summary?: PopulateRunSummary }; + export default function DatasetPage() { const params = useParams(); const { isLoading: authLoading } = useConvexAuth(); const { userId, getToken } = useAuth(); const [exporting, setExporting] = useState<"csv" | "xlsx" | null>(null); const [populating, setPopulating] = useState(false); + const [populateStatus, setPopulateStatus] = useState({ + state: "idle", + }); const datasetId = params.id as Id<"datasets">; const dataset = useQuery( @@ -94,23 +108,35 @@ export default function DatasetPage() { async function handlePopulate() { if (!dataset || populating) return; setPopulating(true); + setPopulateStatus({ state: "running" }); try { const token = await getToken(); if (!token) throw new Error("Not authenticated"); - await populate( + const response = await populate( dataset._id, dataset.name, dataset.description, dataset.columns, token, ); + setPopulateStatus({ state: "accepted", summary: response.result }); track(EVENTS.DATASET_POPULATED, { datasetId: dataset._id, column_count: dataset.columns.length, + committed_row_count: response.result.committedRows?.insertedRowCount ?? 0, }); } catch (err) { console.error("[populate] failed", err); + const message = err instanceof Error + ? err.message + : "Failed to populate dataset."; + const summary = err instanceof PopulateApiError ? err.result : undefined; + setPopulateStatus({ + state: summary?.success === false ? "rejected" : "failed", + message, + summary, + }); captureException(err, { operation: "dataset_populate", datasetId: dataset._id, @@ -133,6 +159,7 @@ export default function DatasetPage() { // the "Dataset not found" UI. const exportDisabled = exporting !== null || rows.length === 0; + const trustSummary = trustSummaryForRows(rows); const csvLabel = exporting === "csv" ? "Exporting…" @@ -219,6 +246,11 @@ export default function DatasetPage() {
+
+
+

BigSet PR67 Populate Flow

+

+ Public-safe architecture artifact for the in-app populate path. It shows the + original auth break, the fixed target loop, and the validation gate that keeps + rejected runs from writing fake rows. +

+
+
+ Auth break fixed + Rejected runs visible + Accepted rows proven + Browser replay not ready +
+
+ +
+
+ Backend +

+ `/populate` uses a trusted internal Convex owner lookup, then compares + `ownerId` to the authenticated request user before runtime execution. +

+
+
+ Rows +

+ Accepted rows are written through the internal row writer with source URLs + and evidence quotes preserved in Convex. Partial-safe rows can be written + without promoting a full recipe. +

+
+
+ UI +

+ The dataset page surfaces accepted or rejected populate state, validation + score, first issue, source links, and evidence snippets. +

+
+
+ +
+

Smoke Result

+
+
+ Ready checks +
    +
  • `make dev` rebuilt and pushed Convex functions.
  • +
  • Frontend, backend, Mastra, Convex, and Postgres were reachable.
  • +
  • Chrome-for-testing had a signed-in BigSet session.
  • +
+
+
+ Rejected prompt +
    +
  • Underspecified prompt returned `422`.
  • +
  • Committed rows stayed at 0.
  • +
  • UI showed "Rejected: no rows written".
  • +
+
+
+ Accepted prompt +
    +
  • Frontend created `Openai Api Docs Pages`.
  • +
  • `/populate` committed 2 rows.
  • +
  • UI showed `Accepted full`, score `1.00`, links, and evidence.
  • +
+
+
+

+ The old blocker was an anonymous private Convex read before extraction. PR67 moves + past that. Search/fetch-only traces are still marked replay `not_ready`; browser replay + requires explicit browser actions instead of a fabricated script. +

+
+ +
+
+
+
+

Before State: Auth Break

+

The backend reached `/populate`, then failed while reading a private dataset anonymously.

+
+
Open SVG +
+
+ Before-state populate auth break diagram +
+
+ +
+
+
+

Target App Loop

+

Signed-in UI, ownership-safe backend load, Mastra runtime, validation, safe commit, and artifacts.

+
+ Open SVG +
+
+ Target app populate loop diagram +
+
+ +
+
+
+

Validation Gate

+

Rows must have useful cells, sources, evidence, and expected-entity coverage before write.

+
+ Open SVG +
+
+ Self-healing validation gate diagram +
+
+
+
+ + ); } + +function trustSummaryForRows(rows: NonNullable>[]) { + const sourceUrls = uniqueStrings( + rows.flatMap((row) => Array.isArray(row.sources) ? row.sources : []), + ); + const evidence = rows + .flatMap((row) => Array.isArray(row.evidence) ? row.evidence : []) + .filter((item) => + typeof item?.sourceUrl === "string" && + typeof item?.quote === "string" && + item.sourceUrl && + item.quote + ); + return { + sourceUrls, + evidence, + }; +} + +function uniqueStrings(values: string[]): string[] { + return Array.from(new Set(values.filter(Boolean))); +} + +function PopulateTrustStrip({ + populateStatus, + trustSummary, +}: { + populateStatus: PopulateStatus; + trustSummary: { + sourceUrls: string[]; + evidence: Array<{ + columnName?: string; + sourceUrl: string; + quote: string; + }>; + }; +}) { + const summary = "summary" in populateStatus + ? populateStatus.summary + : undefined; + const statusTone = + populateStatus.state === "accepted" + ? summary?.productionValidation?.state === "accepted_partial" + ? "text-amber-700 border-amber-600/20 bg-amber-600/[0.04]" + : "text-emerald-700 border-emerald-600/20 bg-emerald-600/[0.04]" + : populateStatus.state === "rejected" || populateStatus.state === "failed" + ? "text-red-700 border-red-600/20 bg-red-600/[0.04]" + : "text-muted border-border bg-surface"; + const firstEvidence = trustSummary.evidence[0] ?? summary?.sampleRows + .flatMap((row) => row.evidence)[0]; + const sourceUrls = trustSummary.sourceUrls.length > 0 + ? trustSummary.sourceUrls + : uniqueStrings(summary?.sampleRows.flatMap((row) => row.sourceUrls) ?? []); + + if ( + populateStatus.state === "idle" && + sourceUrls.length === 0 && + !firstEvidence + ) { + return null; + } + + return ( +
+
+ + {populateStatusLabel(populateStatus, summary)} + + {summary?.productionValidation && ( + + validation {validationStateLabel(summary.productionValidation.state)} + {" · "} + score {summary.productionValidation.score.toFixed(2)} + + )} + {summary?.validationIssues?.[0] && ( + + {summary.validationIssues[0]} + + )} + {summary?.rejectionReasons?.[0] && ( + + {summary.rejectionReasons[0]} + + )} + {sourceUrls.slice(0, 3).map((sourceUrl) => ( + + {sourceUrl} + + ))} + {firstEvidence && ( + + evidence: {firstEvidence.quote} + + )} +
+
+ ); +} + +function populateStatusLabel( + populateStatus: PopulateStatus, + summary?: PopulateRunSummary, +): string { + if (populateStatus.state === "running") { + return "Populate running"; + } + if (populateStatus.state === "accepted") { + const rowCount = summary?.committedRows?.insertedRowCount ?? + summary?.rowCount ?? + 0; + if (summary?.productionValidation?.state === "accepted_partial") { + return `Accepted partial ${rowCount} rows`; + } + return `Accepted full ${rowCount} rows`; + } + if (populateStatus.state === "rejected") { + return "Rejected: no rows written"; + } + if (populateStatus.state === "failed") { + return populateStatus.message; + } + return "Populate evidence"; +} + +function validationStateLabel( + state: NonNullable["state"], +): string { + if (state === "accepted_full") { + return "accepted full"; + } + if (state === "accepted_partial") { + return "accepted partial"; + } + return "rejected"; +} diff --git a/frontend/app/dataset/new/page.tsx b/frontend/app/dataset/new/page.tsx index 1333798..c72f224 100644 --- a/frontend/app/dataset/new/page.tsx +++ b/frontend/app/dataset/new/page.tsx @@ -17,6 +17,7 @@ interface ProposedColumn { name: string; type: ColumnType; description: string; + nullable: boolean; } type Cadence = "30m" | "6h" | "12h" | "daily" | "weekly"; @@ -61,6 +62,7 @@ function mapBackendColumn(col: InferredColumn, index: number): ProposedColumn { name: col.display_name, type: BACKEND_TYPE_MAP[col.type], description: col.retrieval_hint, + nullable: col.nullable, }; } @@ -162,7 +164,13 @@ export default function NewDatasetPage() { function handleAddColumn() { setColumns((prev) => [ ...prev, - { id: String(Date.now()), name: "New Column", type: "text", description: "" }, + { + id: String(Date.now()), + name: "New Column", + type: "text", + description: "", + nullable: false, + }, ]); } @@ -180,6 +188,7 @@ export default function NewDatasetPage() { name: c.name, type: c.type, description: c.description || undefined, + nullable: c.nullable, })), }); } catch (err) { diff --git a/frontend/components/table/types.ts b/frontend/components/table/types.ts index 903ea6f..06a6859 100644 --- a/frontend/components/table/types.ts +++ b/frontend/components/table/types.ts @@ -4,6 +4,7 @@ export interface DatasetColumn { name: string; type: ColumnType; description?: string; + nullable?: boolean; } export interface DatasetMeta { @@ -19,4 +20,10 @@ export interface DatasetRow { _id: string; _creationTime: number; data: Record; + sources?: string[]; + evidence?: Array<{ + columnName: string; + sourceUrl: string; + quote: string; + }>; } diff --git a/frontend/convex/datasetRows.ts b/frontend/convex/datasetRows.ts index a6420a8..287797e 100644 --- a/frontend/convex/datasetRows.ts +++ b/frontend/convex/datasetRows.ts @@ -47,6 +47,11 @@ export const insert = internalMutation({ datasetId: v.id("datasets"), data: v.record(v.string(), v.any()), sources: v.optional(v.array(v.string())), + evidence: v.optional(v.array(v.object({ + columnName: v.string(), + sourceUrl: v.string(), + quote: v.string(), + }))), }, handler: async (ctx, args) => { await consumeQuotaForDataset(ctx, args.datasetId, 1); @@ -144,6 +149,11 @@ export const replaceByDataset = internalMutation({ rows: v.array(v.object({ data: v.record(v.string(), v.any()), sources: v.optional(v.array(v.string())), + evidence: v.optional(v.array(v.object({ + columnName: v.string(), + sourceUrl: v.string(), + quote: v.string(), + }))), })), }, handler: async (ctx, args) => { @@ -165,6 +175,7 @@ export const replaceByDataset = internalMutation({ datasetId: args.datasetId, data: row.data, sources: row.sources, + evidence: row.evidence, }); } diff --git a/frontend/convex/datasets.ts b/frontend/convex/datasets.ts index b240948..8b3c79d 100644 --- a/frontend/convex/datasets.ts +++ b/frontend/convex/datasets.ts @@ -20,6 +20,7 @@ const columnValidator = v.object({ v.literal("date"), ), description: v.optional(v.string()), + nullable: v.optional(v.boolean()), }); const PREVIEW_ROW_COUNT = 5; diff --git a/frontend/convex/schema.ts b/frontend/convex/schema.ts index 68cd55f..2244cdd 100644 --- a/frontend/convex/schema.ts +++ b/frontend/convex/schema.ts @@ -32,6 +32,7 @@ export default defineSchema({ v.literal("date") ), description: v.optional(v.string()), + nullable: v.optional(v.boolean()), }) ), }) @@ -43,6 +44,11 @@ export default defineSchema({ datasetId: v.id("datasets"), data: v.record(v.string(), v.any()), sources: v.optional(v.array(v.string())), + evidence: v.optional(v.array(v.object({ + columnName: v.string(), + sourceUrl: v.string(), + quote: v.string(), + }))), scrapeScript: v.optional(v.string()), }).index("by_dataset", ["datasetId"]), diff --git a/frontend/lib/backend.ts b/frontend/lib/backend.ts index c1e7142..6513691 100644 --- a/frontend/lib/backend.ts +++ b/frontend/lib/backend.ts @@ -21,11 +21,70 @@ export interface PopulateColumn { name: string; type: "text" | "number" | "boolean" | "url" | "date"; description?: string; + nullable?: boolean; } export interface PopulateResult { success: boolean; - result: unknown; + result: PopulateRunSummary; +} + +export interface PopulateRunSummary { + action: string; + datasetId: string; + success: boolean; + validationState?: "accepted_full" | "accepted_partial" | "rejected"; + committedRows?: { + clearedRowCount?: number; + insertedRowCount: number; + }; + rejectionReasons: string[]; + validationIssues: string[]; + rowCount: number; + sampleRows: Array<{ + cells: Record; + sourceUrls: string[]; + evidence: Array<{ + columnName: string; + sourceUrl: string; + quote: string; + }>; + needsReview: boolean; + }>; + productionValidation?: { + state: "accepted_full" | "accepted_partial" | "rejected"; + isValid: boolean; + score: number; + rowCount: number; + safeRowCount: number; + requestedCellCompletenessRatio: number; + sourceUrlCoverageRatio: number; + evidenceCoverageRatio: number; + expectedEntityCoverageRatio: number; + expectedEntities: string[]; + missingExpectedEntities: string[]; + coveragePolicy: "partial_allowed" | "full_required"; + targetSource: string; + criticalIssues: string[]; + warnings: string[]; + }; + metrics?: Record; +} + +export class PopulateApiError extends Error { + readonly status: number; + readonly result?: PopulateRunSummary; + + constructor(input: { + message: string; + status: number; + result?: PopulateRunSummary; + }) { + super(input.message); + this.name = "PopulateApiError"; + this.status = input.status; + this.result = input.result; + } } const BACKEND_URL = @@ -47,7 +106,11 @@ export async function inferSchema( if (!res.ok) { const body = await res.json().catch(() => null); const message = body?.error || `Backend error (${res.status})`; - throw new Error(message); + throw new PopulateApiError({ + message, + status: res.status, + result: body?.result, + }); } return res.json(); @@ -72,7 +135,11 @@ export async function populate( if (!res.ok) { const body = await res.json().catch(() => null); const message = body?.error || `Backend error (${res.status})`; - throw new Error(message); + throw new PopulateApiError({ + message, + status: res.status, + result: body?.result, + }); } return res.json(); From 3cef4f9d0af4eec1d525da1c69ce93f994c6dead Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sun, 24 May 2026 05:13:45 +0700 Subject: [PATCH 19/21] Fix self-healing populate trust gaps --- .../src/integrations/tinyfish-agent.ts | 4 +- .../src/pipeline/collection-agent-runner.ts | 3 +- backend/src/pipeline/populate-runtime.ts | 168 ++++++------------ backend/src/pipeline/populate-self-healing.ts | 22 +++ backend/test/populate-runtime.test.ts | 33 ++++ backend/test/populate-self-healing.test.ts | 30 ++++ backend/test/tinyfish-agent-run.test.ts | 2 +- docs/self-healing-data-collection-flow.md | 4 +- 8 files changed, 151 insertions(+), 115 deletions(-) diff --git a/backend/BigSet_Data_Collection_Agent/src/integrations/tinyfish-agent.ts b/backend/BigSet_Data_Collection_Agent/src/integrations/tinyfish-agent.ts index 3cef144..f10a257 100644 --- a/backend/BigSet_Data_Collection_Agent/src/integrations/tinyfish-agent.ts +++ b/backend/BigSet_Data_Collection_Agent/src/integrations/tinyfish-agent.ts @@ -377,7 +377,7 @@ function normalizeBrowserAction(value: string | undefined): string | undefined { const lower = value.toLowerCase(); if (/\b(click|tap|press|select)\b/.test(lower)) return "click"; if (/\b(navigate|goto|go_to|open|visit)\b/.test(lower)) return "navigate"; - if (/\b(fill|type|input|enter_text|set_value)\b/.test(lower)) return "fill"; + if (/\b(fill|type|input|enter_text|set_value)\b/.test(lower)) return "type"; if (/\b(scroll)\b/.test(lower)) return "scroll"; if (/\b(wait)\b/.test(lower)) return "wait"; if (/\b(extract|scrape|read)\b/.test(lower)) return "extract"; @@ -440,7 +440,7 @@ function valueDescriptionFromStep( step: Record, action: string | undefined ): string | undefined { - if (action !== "fill") { + if (action !== "type") { return firstStringAtPaths(step, [ ["value_description"], ["valueDescription"], diff --git a/backend/src/pipeline/collection-agent-runner.ts b/backend/src/pipeline/collection-agent-runner.ts index 93de60b..5b80891 100644 --- a/backend/src/pipeline/collection-agent-runner.ts +++ b/backend/src/pipeline/collection-agent-runner.ts @@ -471,12 +471,13 @@ function browserActionKind( normalized === "navigate" || normalized === "click" || normalized === "type" || + normalized === "fill" || normalized === "select" || normalized === "wait" || normalized === "extract" || normalized === "screenshot" ) { - return normalized; + return normalized === "fill" ? "type" : normalized; } return "unknown"; } diff --git a/backend/src/pipeline/populate-runtime.ts b/backend/src/pipeline/populate-runtime.ts index 53fceef..7c9c347 100644 --- a/backend/src/pipeline/populate-runtime.ts +++ b/backend/src/pipeline/populate-runtime.ts @@ -312,7 +312,12 @@ export async function runPopulateRuntime(input: { } - const insertedRows = capturedRows.map((row) => benchmarkRowFromInsertedData(row.data)); + const insertedRows = capturedRows.map((row) => + benchmarkRowFromInsertedData({ + data: row.data, + capturedSources, + }) + ); const insertedRowIssues = validateRuntimeRows(insertedRows); if ( !input.agentRunner && @@ -1270,123 +1275,46 @@ function createTinyFishWebTools(): PopulateRuntimeWebTools { }, async fetch({ url }) { const apiKey = requiredEnv("TINYFISH_API_KEY"); - try { - const response = await fetch("https://api.fetch.tinyfish.ai", { - method: "POST", - headers: { - "Content-Type": "application/json", - "X-API-Key": apiKey, - }, - body: JSON.stringify({ urls: [url], format: "markdown" }), - }); - if (!response.ok) { - throw new Error(`TinyFish fetch returned HTTP ${response.status}.`); - } - const payload = await response.json() as { - results?: Array<{ title?: string; text?: string }>; - errors?: Array<{ error?: string }>; - }; - const page = payload.results?.[0]; - if (!page && payload.errors?.[0]) { - throw new Error(payload.errors[0].error ?? "TinyFish fetch failed."); - } - return { - title: page?.title, - text: page?.text, - }; - } catch (error) { - const fallbackPage = await fetchPublicStaticPage({ url }); - if (fallbackPage.text) { - return fallbackPage; - } - throw error; + const response = await fetch("https://api.fetch.tinyfish.ai", { + method: "POST", + headers: { + "Content-Type": "application/json", + "X-API-Key": apiKey, + }, + body: JSON.stringify({ urls: [url], format: "markdown" }), + }); + if (!response.ok) { + throw new Error(`TinyFish fetch returned HTTP ${response.status}.`); + } + const payload = await response.json() as { + results?: Array<{ title?: string; text?: string }>; + errors?: Array<{ error?: string }>; + }; + const page = payload.results?.[0]; + if (!page && payload.errors?.[0]) { + throw new Error(payload.errors[0].error ?? "TinyFish fetch failed."); } + return { + title: page?.title, + text: page?.text, + }; }, }; } -async function fetchPublicStaticPage(input: { - url: string; -}): Promise { - const targetUrl = new URL(input.url); - if (!["http:", "https:"].includes(targetUrl.protocol)) { - return {}; - } - if ( - ["localhost", "127.0.0.1", "::1"].includes(targetUrl.hostname) || - /\.local$/i.test(targetUrl.hostname) - ) { - return {}; - } - - const controller = new AbortController(); - const timeout = setTimeout(() => controller.abort(), 20_000); - try { - const response = await fetch(targetUrl, { - signal: controller.signal, - headers: { - "User-Agent": "BigSetPopulate/0.1 (+https://bigset.local)", - "Accept": "text/html,text/plain,application/xhtml+xml", - }, - }); - if (!response.ok) { - return {}; - } - const contentType = response.headers.get("content-type") ?? ""; - if (!/text\/html|text\/plain|application\/xhtml\+xml/i.test(contentType)) { - return {}; - } - const rawText = await response.text(); - return htmlPageToFetchedPage(rawText); - } catch { - return {}; - } finally { - clearTimeout(timeout); - } -} - -function htmlPageToFetchedPage(rawText: string): PopulateFetchedPage { - const title = decodeHtmlEntities( - rawText.match(/]*>([\s\S]*?)<\/title>/i)?.[1] ?? "" - ).trim(); - const withoutScripts = rawText - .replace(//gi, " ") - .replace(//gi, " ") - .replace(//gi, " "); - const text = decodeHtmlEntities( - withoutScripts - .replace(//gi, "\n") - .replace(/<\/(p|li|h[1-6]|article|section|div)>/gi, "\n") - .replace(/<[^>]+>/g, " ") - ) - .replace(/\s+\n/g, "\n") - .replace(/\n\s+/g, "\n") - .replace(/[ \t]{2,}/g, " ") - .replace(/\n{3,}/g, "\n\n") - .trim() - .slice(0, 20_000); - return { title: title || undefined, text }; -} - -function decodeHtmlEntities(value: string): string { - return value - .replace(/ /g, " ") - .replace(/&/g, "&") - .replace(/</g, "<") - .replace(/>/g, ">") - .replace(/"/g, "\"") - .replace(/'/g, "'"); -} - -function benchmarkRowFromInsertedData( - data: Record -): PopulateRuntimeRow { - const cells = normalizeCells(data); +function benchmarkRowFromInsertedData(input: { + data: Record; + capturedSources: PopulateRuntimeCapturedSource[]; +}): PopulateRuntimeRow { + const cells = normalizeCells(input.data); const sourceUrls = sourceUrlsFromData(cells); + const evidence = evidenceFromData(cells, sourceUrls).filter((item) => + isEvidenceBackedByCapturedSource(item, input.capturedSources) + ); return { cells, sourceUrls, - evidence: evidenceFromData(cells, sourceUrls), + evidence, needsReview: true, }; } @@ -1908,12 +1836,34 @@ function validateRuntimeRows(rows: PopulateRuntimeRow[]): string[] { if (rows.some((row) => row.sourceUrls.length === 0)) { issues.push("One or more Mastra populate rows have no source URL."); } + if (rows.some((row) => row.sourceUrls.some((sourceUrl) => !isHttpUrl(sourceUrl)))) { + issues.push("One or more Mastra populate rows have invalid source URLs."); + } if (rows.some((row) => row.evidence.length === 0)) { issues.push("Mastra populate rows do not include per-row evidence quotes yet."); } + if (rows.some((row) => + row.evidence.some((item) => !item.quote.trim()) + )) { + issues.push("One or more Mastra populate evidence quotes are blank."); + } + if (rows.some((row) => + row.evidence.some((item) => !row.sourceUrls.includes(item.sourceUrl)) + )) { + issues.push("One or more Mastra populate evidence URLs do not match row source URLs."); + } return issues; } +function isHttpUrl(value: string): boolean { + try { + const url = new URL(value); + return url.protocol === "http:" || url.protocol === "https:"; + } catch { + return false; + } +} + function firstPresentColumn(data: Record): string { return Object.keys(data)[0] ?? "entity_name"; } diff --git a/backend/src/pipeline/populate-self-healing.ts b/backend/src/pipeline/populate-self-healing.ts index 67b176b..75d5920 100644 --- a/backend/src/pipeline/populate-self-healing.ts +++ b/backend/src/pipeline/populate-self-healing.ts @@ -803,15 +803,37 @@ function productionRowSafety(input: { if (input.row.sourceUrls.length === 0) { criticalIssues.push(`Row ${input.rowNumber} has no source URL.`); } + if (input.row.sourceUrls.some((sourceUrl) => !isHttpUrl(sourceUrl))) { + criticalIssues.push(`Row ${input.rowNumber} has an invalid source URL.`); + } if (input.row.evidence.length === 0) { criticalIssues.push(`Row ${input.rowNumber} has no evidence quote.`); } + if (input.row.evidence.some((item) => !item.quote.trim())) { + criticalIssues.push(`Row ${input.rowNumber} has a blank evidence quote.`); + } + if ( + input.row.evidence.some((item) => !input.row.sourceUrls.includes(item.sourceUrl)) + ) { + criticalIssues.push( + `Row ${input.rowNumber} has evidence that does not match a row source URL.` + ); + } return { isSafe: criticalIssues.length === 0, criticalIssues, }; } +function isHttpUrl(value: string): boolean { + try { + const url = new URL(value); + return url.protocol === "http:" || url.protocol === "https:"; + } catch { + return false; + } +} + function criticalValidationIssues(input: { validationIssues: string[]; nullableColumns: string[]; diff --git a/backend/test/populate-runtime.test.ts b/backend/test/populate-runtime.test.ts index cf3eea2..168f825 100644 --- a/backend/test/populate-runtime.test.ts +++ b/backend/test/populate-runtime.test.ts @@ -92,6 +92,39 @@ test("populate runtime captures rows through injected tools without Convex write assert.deepEqual(result.validationIssues, []); }); +test("populate runtime strips unbacked insert_row evidence before validation", async () => { + const result = await runPopulateRuntime({ + context, + webTools: { + search: async () => [], + fetch: async () => ({}), + }, + agentRunner: async ({ tools }) => { + const insertRow = tools.insert_row as ToolLike< + { datasetId: string; data: Record }, + { success: boolean } + >; + + await insertRow.execute({ + datasetId: "benchmark-dataset", + data: { + entity_name: "OpenAI", + latest_post_title: "Invented post", + source_url: "https://openai.com/news", + evidence_quote: "Invented quote never fetched", + }, + }); + }, + }); + + assert.equal(result.rows.length, 1); + assert.deepEqual(result.rows[0]?.evidence, []); + assert.match( + result.validationIssues.join("\n"), + /evidence quotes/i + ); +}); + test("populate runtime accepts structured fallback rows backed by captured sources", async () => { const result = await runPopulateRuntime({ context, diff --git a/backend/test/populate-self-healing.test.ts b/backend/test/populate-self-healing.test.ts index da8bbc7..df6d41a 100644 --- a/backend/test/populate-self-healing.test.ts +++ b/backend/test/populate-self-healing.test.ts @@ -356,6 +356,36 @@ test("Mastra populate recipe runtime rejects approximated required cells", async ); }); +test("Mastra populate recipe runtime rejects evidence disconnected from row sources", async () => { + const runtime = new MastraPopulateRecipeRuntime({ + runPopulate: async () => ({ + rows: validRows().map((row) => ({ + ...row, + evidence: [{ + columnName: "latest_post_title", + sourceUrl: "https://example.com/unrelated", + quote: "Release notes from OpenAI", + }], + })), + validationIssues: [], + usage: emptyUsage(), + metrics: emptyMetrics(), + }), + }); + + const run = await runtime.runRecipe({ + recipe: recipe({ recipeId: "recipe-v1" }), + context, + }); + + assert.equal(run.runStatus, "failed"); + assert.equal(run.productionValidation.isValid, false); + assert.match( + run.productionValidation.criticalIssues.join("\n"), + /does not match a row source URL/ + ); +}); + test("process trace artifacts stay parseable when trace content is large", async () => { const runtime = new MastraPopulateRecipeRuntime({ runPopulate: async () => ({ diff --git a/backend/test/tinyfish-agent-run.test.ts b/backend/test/tinyfish-agent-run.test.ts index 5994a85..765f374 100644 --- a/backend/test/tinyfish-agent-run.test.ts +++ b/backend/test/tinyfish-agent-run.test.ts @@ -103,7 +103,7 @@ test("TinyFish run normalization converts documented run steps to browser action label: undefined, value_description: undefined, }, { - action: "fill", + action: "type", url: "https://example.com/products", selector: "input[name='password']", target_text: undefined, diff --git a/docs/self-healing-data-collection-flow.md b/docs/self-healing-data-collection-flow.md index bbfc448..2b3ad57 100644 --- a/docs/self-healing-data-collection-flow.md +++ b/docs/self-healing-data-collection-flow.md @@ -173,7 +173,7 @@ Save working extraction plan: output looked good, so BigSet saves the method as Reject bad run: output was missing sources, wrong, or low-confidence. Do not save it. Do not count benchmark as a fake pass. -Repair loop: when output is missing/bad, use the failure details to search/fetch/populate missing pieces. Meeting notes specifically say repair should span searches, not just rerun the same thing. +Repair loop: when output is missing/bad, use the failure details to search/fetch/populate missing pieces. Current design direction is that repair should span searches, not just rerun the same thing. Write rows to DB: put actual table rows into storage so the frontend can show them. @@ -216,7 +216,7 @@ To ask questions, select any line or block and ask Codex something like: - "Where is this implemented?" - "Is this built or planned?" - "What PR owns this?" -- "What should I say in meeting?" +- "How should I explain this to the team?" Use this file for comments/annotations. Do not annotate or share raw meeting notes; those are local/private context. From 67d70ebbd1e0753c73f13aed49fbea6fe6b4198c Mon Sep 17 00:00:00 2001 From: Edward Tran Date: Sun, 24 May 2026 19:39:51 +0700 Subject: [PATCH 20/21] Advance self-healing stack and root env setup --- .env.example | 43 +- CLAUDE.md | 12 +- README.md | 32 +- backend/.env.example | 21 - .../src/agents/source-policy.ts | 29 +- .../src/config.ts | 9 +- .../src/integrations/tinyfish-agent.ts | 282 ++++-- backend/CLAUDE.md | 4 +- backend/Dockerfile.dev | 10 +- backend/Dockerfile.mastra | 8 + backend/README.md | 6 +- backend/package-lock.json | 13 + backend/package.json | 7 +- backend/src/env.ts | 9 +- .../src/pipeline/collection-agent-runner.ts | 2 +- .../pipeline/populate-browser-action-box.ts | 781 ++++++++++++++++ .../populate-playwright-replay-runner.ts | 538 ++++++++++++ .../pipeline/populate-runtime-selection.ts | 49 +- backend/src/pipeline/populate-runtime.ts | 306 ++++++- backend/src/pipeline/populate-self-healing.ts | 182 +++- .../src/pipeline/populate-source-planner.ts | 311 +++++++ .../populate-tinyfish-trace-recorder.ts | 830 ++++++++++++++++++ backend/test/collection-agent-runner.test.ts | 4 +- backend/test/collection-source-policy.test.ts | 57 ++ .../test/populate-browser-action-box.test.ts | 682 ++++++++++++++ backend/test/populate-runtime.test.ts | 194 ++++ backend/test/populate-self-healing.test.ts | 186 +++- backend/test/tinyfish-agent-run.test.ts | 47 +- benchmarks/dataset-agent/README.md | 11 +- docker-compose.dev.yml | 17 + docs/assets/bigset-populate-target-loop.svg | 2 +- docs/data-collection-agent-migration-plan.md | 7 +- docs/self-healing-data-collection-flow.html | 101 +-- docs/self-healing-data-collection-flow.md | 291 ++---- docs/self-healing-data-collection-flow.mmd | 67 +- frontend/.env.example | 21 - frontend/.gitignore | 3 +- frontend/README.md | 4 +- frontend/app/dataset/[id]/page.tsx | 99 ++- frontend/components/dataset/DatasetCard.tsx | 3 +- frontend/convex/datasetRows.ts | 18 + frontend/convex/datasets.ts | 13 +- frontend/package.json | 8 +- makefiles/Makefile | 66 +- scripts/verify-self-healing-stack.sh | 4 +- scripts/with-root-env.mjs | 47 + 46 files changed, 4894 insertions(+), 542 deletions(-) delete mode 100644 backend/.env.example create mode 100644 backend/src/pipeline/populate-browser-action-box.ts create mode 100644 backend/src/pipeline/populate-playwright-replay-runner.ts create mode 100644 backend/src/pipeline/populate-source-planner.ts create mode 100644 backend/src/pipeline/populate-tinyfish-trace-recorder.ts create mode 100644 backend/test/populate-browser-action-box.test.ts delete mode 100644 frontend/.env.example create mode 100644 scripts/with-root-env.mjs diff --git a/.env.example b/.env.example index 8959888..5a5c796 100644 --- a/.env.example +++ b/.env.example @@ -1,14 +1,30 @@ -# These are read by docker-compose.dev.yml. +# This is the only local env file BigSet expects. # Copy this file to .env and fill in your values. +# Local service URLs +CLIENT_ORIGIN=http://localhost:3500 +CONVEX_URL=http://localhost:3210 +NEXT_PUBLIC_CONVEX_URL=http://127.0.0.1:3210 +CONVEX_SELF_HOSTED_URL=http://127.0.0.1:3210 +NEXT_PUBLIC_BACKEND_URL=http://localhost:3501 +PORT=3501 + # Clerk — create a free app at https://dashboard.clerk.com +# Enable the Clerk JWT Templates -> Convex template, then set your issuer URL. NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_... CLERK_SECRET_KEY=sk_test_... +CLERK_JWT_ISSUER_DOMAIN=https://your-app.clerk.accounts.dev # OpenRouter — required by backend + Mastra for AI model calls. # Generate at https://openrouter.ai/settings/keys OPENROUTER_API_KEY=sk-or-... +# Optional model overrides. +# Schema inference defaults to anthropic/claude-sonnet-4-6. +# Populate and other non-inference tasks default to google/gemini-3.1-flash-lite. +# OPENROUTER_MODEL=google/gemini-3.1-flash-lite +# OPENROUTER_POPULATE_MODEL=google/gemini-3.1-flash-lite + # TinyFish — required by populate agent web search/fetch. # Generate at https://agent.tinyfish.ai/api-keys TINYFISH_API_KEY= @@ -22,6 +38,31 @@ CONVEX_SELF_HOSTED_ADMIN_KEY= # Docker dev overrides this to /app/.bigset/populate-recipes on a named volume. POPULATE_RECIPE_STORE_DIR=.bigset/populate-recipes +# Populate runtime limits. +# POPULATE_MAX_ROWS=100 +# POPULATE_MAX_SEARCH_CALLS=25 +# POPULATE_MAX_FETCH_CALLS=50 +# POPULATE_COMMIT_ROW_LIMIT_PER_HOUR=1000 + +# Browser-action self-healing. Non-secret tunables. +POPULATE_ENABLE_BROWSER_ACTION_BOX=true +POPULATE_BROWSER_ACTION_BOX_POLL_INTERVAL_MS=3000 +POPULATE_ENABLE_PLAYWRIGHT_REPLAY=true +POPULATE_ENABLE_PLAYWRIGHT_REPAIR=true +POPULATE_PLAYWRIGHT_HEADLESS=true +# POPULATE_PLAYWRIGHT_EXECUTABLE_PATH= + +# Collection-agent canaries. Leave Mastra as the default app runtime unless +# intentionally benchmarking the collection runner. +# POPULATE_AGENT_RUNTIME=collection +# POPULATE_COLLECTION_RUNNER_MODULE=./backend/src/pipeline/collection-agent-runner.ts +COLLECTION_AGENT_PIPELINE_MODULE=./backend/BigSet_Data_Collection_Agent/src/orchestrator/pipeline.ts +COLLECTION_AGENT_ENABLE_TRIAGE=true +COLLECTION_AGENT_ENABLE_AGENT=false +COLLECTION_AGENT_POLL_TIMEOUT_MS=1200000 +AGENT_POLL_TIMEOUT_MS=1200000 +AGENT_REQUEST_TIMEOUT_MS=15000 + # PostHog (optional — leave blank to disable analytics entirely in local dev). # Get from https://us.posthog.com/project/settings/general. NEXT_PUBLIC_POSTHOG_KEY= diff --git a/CLAUDE.md b/CLAUDE.md index 813fbf7..52f9a05 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -8,14 +8,14 @@ Frontend on :3500, backend on :3501, Mastra Studio on :4111, Convex dashboard on 1. Create a free Clerk account at https://clerk.com and create an application. 2. In the Clerk dashboard, go to **JWT Templates** and enable the **Convex** template. -3. Copy `frontend/.env.example` to `frontend/.env.local` and fill in your Clerk keys: +3. Copy `.env.example` to `.env` and fill in your Clerk keys: - `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY` — from Clerk API Keys - `CLERK_SECRET_KEY` — from Clerk API Keys - `CLERK_JWT_ISSUER_DOMAIN` — your Frontend API URL (e.g. `https://your-app.clerk.accounts.dev`) -4. Add an OpenRouter API key to the root `.env` file: `OPENROUTER_API_KEY=sk-or-...` (get one at https://openrouter.ai/settings/keys). Docker Compose reads the root `.env` and passes it to the backend and Mastra containers. -4b. Add a TinyFish API key to the root `.env` file: `TINYFISH_API_KEY=...` (get one at https://agent.tinyfish.ai/api-keys). This enables the populate agent to search the web and fetch page content. +4. Add an OpenRouter API key to `.env`: `OPENROUTER_API_KEY=sk-or-...` (get one at https://openrouter.ai/settings/keys). Docker Compose reads root `.env` and passes it to frontend, backend, and Mastra containers. +4b. Add a TinyFish API key to `.env`: `TINYFISH_API_KEY=...` (get one at https://agent.tinyfish.ai/api-keys). This enables the populate agent to search the web and fetch page content. 5. Run `make dev` — this starts all Docker services AND pushes Convex functions automatically. -6. Generate a Convex admin key (first run only): `docker compose exec convex ./generate_admin_key.sh` and add it as `CONVEX_SELF_HOSTED_ADMIN_KEY` in `frontend/.env.local`, then re-run `make dev`. +6. Generate a Convex admin key (first run only): `docker compose exec convex ./generate_admin_key.sh` and add it as `CONVEX_SELF_HOSTED_ADMIN_KEY` in `.env`, then re-run `make dev`. ## Architecture @@ -35,13 +35,13 @@ Convex functions use `ctx.auth.getUserIdentity()` to get the authenticated user. ## Environment Variables -Docker Compose interpolates variables from the root `.env` file. Key variables: +Root `.env` is the only local env file. Docker Compose, package scripts, Convex helper targets, and benchmarks load it. Key variables: - `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY`, `CLERK_SECRET_KEY` — shared by frontend and backend - `OPENROUTER_API_KEY` — used by backend and Mastra for AI model calls - `CONVEX_SELF_HOSTED_ADMIN_KEY` — used by backend for system-level Convex writes - `TINYFISH_API_KEY` — used by the populate agent for web search and fetch (get one at https://agent.tinyfish.ai/api-keys) -The backend container maps `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY` → `CLERK_PUBLISHABLE_KEY` (see `docker-compose.dev.yml`). +The backend accepts `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY` as the publishable Clerk key, and the Docker backend container also maps it to `CLERK_PUBLISHABLE_KEY` (see `docker-compose.dev.yml`). ## Convex Deploys diff --git a/README.md b/README.md index 4648c01..b5dacbe 100644 --- a/README.md +++ b/README.md @@ -44,17 +44,12 @@ cd bigset Create a Clerk application at [dashboard.clerk.com](https://dashboard.clerk.com), then go to **JWT Templates** and enable the **Convex** template. -### 2. Configure env files +### 2. Configure env ```bash -# Root .env — used by Docker for the frontend container cp .env.example .env # Fill in NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, CLERK_SECRET_KEY, -# OPENROUTER_API_KEY, and TINYFISH_API_KEY - -# Frontend .env.local — used by Next.js and Convex CLI -cp frontend/.env.example frontend/.env.local -# Fill in all three Clerk keys (publishable, secret, and JWT issuer domain) +# CLERK_JWT_ISSUER_DOMAIN, OPENROUTER_API_KEY, and TINYFISH_API_KEY ``` > **Required for the create-dataset wizard:** set `OPENROUTER_API_KEY` (used by the schema-inference pipeline). Get one at [openrouter.ai](https://openrouter.ai). Without it the wizard's "Generate Schema" step will fail. @@ -68,9 +63,9 @@ make dev ``` This starts all Docker services, waits for Convex to be healthy, and deploys Convex functions automatically. -`make dev` checks that root `.env` and `frontend/.env.local` contain real -Clerk/OpenRouter/TinyFish values before it starts Docker. If it reports a -placeholder key, replace that value first. +`make dev` checks that root `.env` contains real Clerk/OpenRouter/TinyFish +values before it starts Docker. If it reports a placeholder key, replace that +value first. Once it is up: - App: http://localhost:3500 @@ -83,31 +78,31 @@ Once it is up: docker compose exec convex ./generate_admin_key.sh ``` -Paste the output into both `.env` and `frontend/.env.local` as -`CONVEX_SELF_HOSTED_ADMIN_KEY`, then re-run `make dev`. +Paste the output into `.env` as `CONVEX_SELF_HOSTED_ADMIN_KEY`, then re-run +`make dev`. If `make dev` stops at `CONVEX_SELF_HOSTED_ADMIN_KEY is missing`, that means Docker/Convex is up far enough for you to run the command above. Generate the -key, paste it into both env files, and run `make dev` again. +key, paste it into root `.env`, and run `make dev` again. ### 5. Load curated public datasets The landing page and the dashboard's "Curated" section read from a set of 9 system-owned datasets. Load them with: ```bash -cd frontend -npx convex run publicSeed:seedPublicDatasets +make seed-public-datasets ``` The script is **idempotent** — rerunning it skips datasets that already exist (matched by a stable `seedKey`, so renaming a curated dataset never creates a duplicate). To add a 10th curated dataset, append it to `PUBLIC_DATASETS` in [frontend/convex/publicSeed.ts](frontend/convex/publicSeed.ts) with a fresh `seedKey` and rerun the command. To replace existing curated content in place, pass `force: true`: ```bash -npx convex run publicSeed:seedPublicDatasets '{"force":true}' +cd frontend +node ../scripts/with-root-env.mjs npx convex run publicSeed:seedPublicDatasets '{"force":true}' ``` Open [localhost:3500](http://localhost:3500) and click **Get started** to sign in. -> **Note:** Backend env needs no setup — `backend/.env.example` has correct defaults. If you edit Convex functions in `frontend/convex/`, run `make convex-push` to deploy the changes. +> **Note:** root `.env` is the only local env file. If you edit Convex functions in `frontend/convex/`, run `make convex-push` to deploy the changes. > **Free tier:** each signed-in account gets **2,500 row operations per calendar month** (resets on the 1st, UTC). The header shows a live usage badge; system-owned curated datasets bypass the quota. @@ -133,12 +128,11 @@ Open [localhost:3500](http://localhost:3500) and click **Get started** to sign i bigset/ ├── frontend/ Next.js 16 — UI + Convex schema & functions │ ├── convex/ Convex functions, schema, authz + quota helpers -│ └── .env.local Clerk + Convex keys (not committed) ├── backend/ Fastify + Mastra — schema inference + (future) agents │ ├── src/pipeline/ Pure schema-inference fn (called by Fastify + Mastra) │ └── src/mastra/ Mastra workflows (Studio at :4111 in dev) ├── scripts/ One-off scripts (e.g. verify-authz.sh) -├── .env Clerk keys for docker-compose (not committed) +├── .env Local env for frontend, backend, Convex CLI, benchmarks (not committed) ├── docker-compose.dev.yml └── Makefile ``` diff --git a/backend/.env.example b/backend/.env.example deleted file mode 100644 index a56d9df..0000000 --- a/backend/.env.example +++ /dev/null @@ -1,21 +0,0 @@ -CLIENT_ORIGIN=http://localhost:3500 -CONVEX_URL=http://localhost:3210 -PORT=3501 -POPULATE_RECIPE_STORE_DIR=.bigset/populate-recipes - -# Required once the backend starts writing rows via internal Convex mutations. -# Generate with: docker compose exec convex ./generate_admin_key.sh -CONVEX_SELF_HOSTED_ADMIN_KEY= - -# Required for user-facing protected routes (JWT verification). -# Same values as the frontend's Clerk keys. -CLERK_SECRET_KEY= -CLERK_PUBLISHABLE_KEY= - -# OpenRouter API key — required by schema inference. -# Generate at https://openrouter.ai/settings/keys -OPENROUTER_API_KEY=sk-or-... - -# TinyFish API key — used by the populate agent for web search and fetch. -# Generate at https://agent.tinyfish.ai/api-keys -TINYFISH_API_KEY= diff --git a/backend/BigSet_Data_Collection_Agent/src/agents/source-policy.ts b/backend/BigSet_Data_Collection_Agent/src/agents/source-policy.ts index 1ea3b54..31fa044 100644 --- a/backend/BigSet_Data_Collection_Agent/src/agents/source-policy.ts +++ b/backend/BigSet_Data_Collection_Agent/src/agents/source-policy.ts @@ -5,7 +5,7 @@ import type { SourceTriageResult, } from "../models/schemas.js"; import { scoreDocsUrlForOfficialSource } from "../records/source-urls.js"; -import { getDomain } from "../utils/url.js"; +import { getDomain, normalizeUrl } from "../utils/url.js"; export interface PromptSourceEntity { name: string; @@ -17,6 +17,7 @@ export interface PromptSourcePolicy { requiresOfficialSource: boolean; entities: PromptSourceEntity[]; searchPhrases: string[]; + explicitSourceUrls: string[]; hint?: string; } @@ -55,6 +56,14 @@ function uniqueStrings(values: string[]): string[] { return [...new Set(values.map((value) => value.trim()).filter(Boolean))]; } +function extractPromptSourceUrls(prompt: string): string[] { + return uniqueStrings( + [...prompt.matchAll(/https?:\/\/[^\s)"'<>]+/gi)].map((match) => + normalizeUrl((match[0] ?? "").replace(/[.,;:!?]+$/g, "")), + ), + ); +} + function tokenize(value: string): string[] { return value .toLowerCase() @@ -157,6 +166,7 @@ export function derivePromptSourcePolicy(prompt: string): PromptSourcePolicy { const taskText = taskTextFromPrompt(prompt); const entities = extractExplicitEntities(taskText); const searchPhrases = searchPhrasesForPrompt(taskText); + const explicitSourceUrls = extractPromptSourceUrls(taskText); const lower = taskText.toLowerCase(); const asksForCanonicalSource = searchPhrases.length > 0 || @@ -182,7 +192,7 @@ export function derivePromptSourcePolicy(prompt: string): PromptSourcePolicy { ].join("\n") : undefined; - return { requiresOfficialSource, entities, searchPhrases, hint }; + return { requiresOfficialSource, entities, searchPhrases, explicitSourceUrls, hint }; } export function promptSourceSearchQueries(policy: PromptSourcePolicy): string[] { @@ -236,6 +246,7 @@ export function urlMatchesPromptSourcePolicy( url: string, policy: PromptSourcePolicy, ): boolean { + if (urlMatchesExplicitPromptSource(url, policy)) return true; if (!policy.requiresOfficialSource) return true; const domain = getDomain(url).toLowerCase(); if (GENERIC_HOSTED_DOMAIN.test(domain)) { @@ -246,6 +257,17 @@ export function urlMatchesPromptSourcePolicy( ); } +function urlMatchesExplicitPromptSource( + url: string, + policy: PromptSourcePolicy, +): boolean { + const normalized = normalizeUrl(url); + return policy.explicitSourceUrls.some((sourceUrl) => { + const explicit = normalizeUrl(sourceUrl); + return normalized === explicit || normalized.startsWith(`${explicit}/`); + }); +} + function urlMatchesEntitySourcePolicy( url: string, entity: PromptSourceEntity, @@ -361,6 +383,9 @@ export function recordMatchesPromptSourcePolicy( if (urls.length === 0) { return false; } + if (urls.some((url) => urlMatchesExplicitPromptSource(url, policy))) { + return true; + } return urls.some((url) => urlMatchesEntitySourcePolicy(url, entity, policy)); } diff --git a/backend/BigSet_Data_Collection_Agent/src/config.ts b/backend/BigSet_Data_Collection_Agent/src/config.ts index 875747c..3ca55c7 100644 --- a/backend/BigSet_Data_Collection_Agent/src/config.ts +++ b/backend/BigSet_Data_Collection_Agent/src/config.ts @@ -1,3 +1,8 @@ +import { config as loadDotenv } from "dotenv"; +import { fileURLToPath } from "node:url"; + +loadDotenv({ path: fileURLToPath(new URL("../../../.env", import.meta.url)) }); + function readBool(name: string, fallback: boolean): boolean { const raw = process.env[name]; if (raw === undefined || raw === "") return fallback; @@ -86,6 +91,8 @@ export const config = { agentPollConcurrency: readInt("AGENT_POLL_CONCURRENCY", 10), agentPollIntervalMs: readInt("AGENT_POLL_INTERVAL_MS", 3000), agentPollTimeoutMs: readInt("AGENT_POLL_TIMEOUT_MS", 1_200_000), + /** Per HTTP request cap for TinyFish Agent queue/poll/cancel calls. */ + agentRequestTimeoutMs: readInt("AGENT_REQUEST_TIMEOUT_MS", 15_000), triageConcurrency: readInt("TRIAGE_CONCURRENCY", 5), enableQualityScoring: readBool("ENABLE_QUALITY_SCORING", true), /** results.csv only includes rows with all required fields, ranked by quality. */ @@ -108,7 +115,7 @@ export function assertConfig(): void { if (!config.openRouterApiKey) missing.push("OPENROUTER_API_KEY"); if (missing.length > 0) { throw new Error( - `Missing required environment variables: ${missing.join(", ")}. Copy .env.example to .env and fill in values.`, + `Missing required environment variables: ${missing.join(", ")}. Copy root .env.example to .env and fill in values.`, ); } } diff --git a/backend/BigSet_Data_Collection_Agent/src/integrations/tinyfish-agent.ts b/backend/BigSet_Data_Collection_Agent/src/integrations/tinyfish-agent.ts index f10a257..b2b2cf9 100644 --- a/backend/BigSet_Data_Collection_Agent/src/integrations/tinyfish-agent.ts +++ b/backend/BigSet_Data_Collection_Agent/src/integrations/tinyfish-agent.ts @@ -1,7 +1,7 @@ import { RunStatus, TinyFish, type Run } from "@tiny-fish/sdk"; import { config } from "../config.js"; import type { BrowserActionReport } from "../models/schemas.js"; -import { sleep, withRetry } from "../queue/retry.js"; +import { isRetryableError, sleep, withRetry } from "../queue/retry.js"; import { mapWithConcurrency } from "../utils/concurrency.js"; let client: TinyFish | null = null; @@ -46,8 +46,22 @@ export interface TinyfishAgentJob { export interface TinyfishAgentRunOptions { pollTimeoutMs?: number; + pollIntervalMs?: number; + requestTimeoutMs?: number; + readRun?: TinyfishAgentRunReader; + cancelRun?: TinyfishAgentRunCanceller; } +type TinyfishAgentRunReader = ( + runId: string, + options: { signal: AbortSignal }, +) => Promise; + +type TinyfishAgentRunCanceller = ( + runId: string, + options: { signal: AbortSignal }, +) => Promise; + type TinyfishRunWithTrace = Run & { steps?: unknown; recording_url?: unknown; @@ -85,30 +99,20 @@ export function tinyfishAgentRunResultFromRun(run: Run): TinyfishAgentRunResult } /** Best-effort cancel for async agent runs (POST /v1/runs/{id}/cancel). */ -export async function cancelTinyfishAgentRun(runId: string): Promise { +export async function cancelTinyfishAgentRun( + runId: string, + options: { requestTimeoutMs?: number } = {}, +): Promise { if (!runId.trim()) return; try { await withRetry( - async () => { - const response = await fetch( - `${TINYFISH_API_BASE}/v1/runs/${encodeURIComponent(runId)}/cancel`, - { - method: "POST", - headers: { - "X-API-Key": config.tinyfishApiKey, - "Content-Type": "application/json", - }, - }, - ); - - if (!response.ok) { - const body = await response.text(); - throw new Error( - `Cancel failed (${response.status})${body ? `: ${body.slice(0, 200)}` : ""}`, - ); - } - }, + () => + withRequestTimeout({ + timeoutMs: options.requestTimeoutMs ?? config.agentRequestTimeoutMs, + label: `TinyFish Agent cancel ${runId}`, + action: (signal) => sendTinyfishAgentCancel(runId, { signal }), + }), { maxRetries: 1, baseDelayMs: config.retryBaseDelayMs, @@ -124,9 +128,15 @@ export async function cancelTinyfishAgentRun(runId: string): Promise { export async function queueTinyfishAgent( url: string, goal: string, + options: TinyfishAgentRunOptions = {}, ): Promise { const response = await withRetry( - () => getClient().agent.queue({ url, goal }), + () => + withRequestTimeout({ + timeoutMs: options.requestTimeoutMs ?? config.agentRequestTimeoutMs, + label: `TinyFish Agent queue ${url}`, + action: (signal) => getClient().agent.queue({ url, goal }, { signal }), + }), { maxRetries: config.maxRetries, baseDelayMs: config.retryBaseDelayMs, @@ -152,60 +162,62 @@ export async function pollTinyfishAgentUntilDone( ): Promise { const startedAt = Date.now(); const pollTimeoutMs = options.pollTimeoutMs ?? config.agentPollTimeoutMs; + const pollIntervalMs = options.pollIntervalMs ?? config.agentPollIntervalMs; + const requestTimeoutMs = options.requestTimeoutMs ?? config.agentRequestTimeoutMs; + const readRun = options.readRun ?? fetchTinyfishAgentRun; + const cancelRun = options.cancelRun ?? sendTinyfishAgentCancel; let lastStatus = RunStatus.PENDING; + let lastPollError: string | null = null; while (true) { - const run = await withRetry( - () => getClient().runs.get(runId), - { - maxRetries: config.maxRetries, - baseDelayMs: config.retryBaseDelayMs, - label: `agent.poll:${runId}`, - }, - ); - - lastStatus = run.status; + const remainingPollMs = pollTimeoutMs - (Date.now() - startedAt); + if (remainingPollMs <= 0) { + return timeoutAgentRunResult({ + runId, + pollTimeoutMs, + requestTimeoutMs, + lastStatus, + lastPollError, + readRun, + cancelRun, + }); + } - if (TERMINAL_STATUSES.has(run.status)) { - return tinyfishAgentRunResultFromRun(run); + let run: Run | null = null; + try { + run = await withRequestTimeout({ + timeoutMs: Math.min(requestTimeoutMs, remainingPollMs), + label: `TinyFish Agent poll ${runId}`, + action: (signal) => readRun(runId, { signal }), + }); + lastPollError = null; + } catch (error) { + lastPollError = error instanceof Error ? error.message : String(error); + if (!isRetryableError(error)) { + throw error; + } } - if (Date.now() - startedAt >= pollTimeoutMs) { - await cancelTinyfishAgentRun(runId); - - try { - const finalRun = await getClient().runs.get(runId); - if (TERMINAL_STATUSES.has(finalRun.status)) { - const result = tinyfishAgentRunResultFromRun(finalRun); - if (finalRun.status === RunStatus.CANCELLED) { - return { - ...result, - error: - result.error ?? - `Agent run cancelled after ${pollTimeoutMs}ms (was ${lastStatus})`, - }; - } - return result; - } - } catch { - // Fall through to TIMEOUT result below. + if (run) { + lastStatus = run.status; + if (TERMINAL_STATUSES.has(run.status)) { + return tinyfishAgentRunResultFromRun(run); } + } - return { - run_id: runId, - status: "TIMEOUT", - result: null, - error: `Agent run timed out after ${pollTimeoutMs}ms (last status: ${lastStatus}); cancel requested`, - agent_step_count: null, - has_streaming_url: false, - has_recording_url: false, - capture_artifact_count: 0, - result_keys: [], - browser_actions: [], - }; + if (Date.now() - startedAt >= pollTimeoutMs) { + return timeoutAgentRunResult({ + runId, + pollTimeoutMs, + requestTimeoutMs, + lastStatus, + lastPollError, + readRun, + cancelRun, + }); } - await sleep(config.agentPollIntervalMs); + await sleep(Math.min(pollIntervalMs, pollTimeoutMs - (Date.now() - startedAt))); } } @@ -217,7 +229,7 @@ export async function runTinyfishAgent( goal: string, options: TinyfishAgentRunOptions = {}, ): Promise { - const queued = await queueTinyfishAgent(url, goal); + const queued = await queueTinyfishAgent(url, goal, options); if (queued.error || !queued.run_id) { return { run_id: null, @@ -248,7 +260,7 @@ export async function runTinyfishAgentsBatch( jobs, config.agentQueueConcurrency, async (job) => { - const queueResult = await queueTinyfishAgent(job.url, job.goal); + const queueResult = await queueTinyfishAgent(job.url, job.goal, options); return { job, ...queueResult }; }, ); @@ -287,6 +299,140 @@ export async function runTinyfishAgentsBatch( return results; } +async function timeoutAgentRunResult(input: { + runId: string; + pollTimeoutMs: number; + requestTimeoutMs: number; + lastStatus: string; + lastPollError: string | null; + readRun: TinyfishAgentRunReader; + cancelRun: TinyfishAgentRunCanceller; +}): Promise { + await withRequestTimeout({ + timeoutMs: input.requestTimeoutMs, + label: `TinyFish Agent cancel ${input.runId}`, + action: (signal) => input.cancelRun(input.runId, { signal }), + }).catch(() => undefined); + + try { + const finalRun = await withRequestTimeout({ + timeoutMs: input.requestTimeoutMs, + label: `TinyFish Agent final poll ${input.runId}`, + action: (signal) => input.readRun(input.runId, { signal }), + }); + if (TERMINAL_STATUSES.has(finalRun.status)) { + const result = tinyfishAgentRunResultFromRun(finalRun); + if (finalRun.status === RunStatus.CANCELLED) { + return { + ...result, + error: + result.error ?? + `Agent run cancelled after ${input.pollTimeoutMs}ms (was ${input.lastStatus})`, + }; + } + return result; + } + } catch { + // Fall through to TIMEOUT result below. + } + + const lastPollSuffix = input.lastPollError + ? `; last poll error: ${input.lastPollError}` + : ""; + return { + run_id: input.runId, + status: "TIMEOUT", + result: null, + error: + `Agent run timed out after ${input.pollTimeoutMs}ms (last status: ${input.lastStatus}); cancel requested${lastPollSuffix}`, + agent_step_count: null, + has_streaming_url: false, + has_recording_url: false, + capture_artifact_count: 0, + result_keys: [], + browser_actions: [], + }; +} + +async function fetchTinyfishAgentRun( + runId: string, + options: { signal: AbortSignal }, +): Promise { + const response = await fetch( + `${TINYFISH_API_BASE}/v1/runs/${encodeURIComponent(runId)}`, + { + headers: { + "X-API-Key": config.tinyfishApiKey, + "Content-Type": "application/json", + }, + signal: options.signal, + }, + ); + + if (!response.ok) { + const body = await response.text(); + throw httpStatusError( + `TinyFish run poll returned HTTP ${response.status}${body ? `: ${body.slice(0, 200)}` : ""}`, + response.status, + ); + } + + return await response.json() as Run; +} + +async function sendTinyfishAgentCancel( + runId: string, + options: { signal: AbortSignal }, +): Promise { + const response = await fetch( + `${TINYFISH_API_BASE}/v1/runs/${encodeURIComponent(runId)}/cancel`, + { + method: "POST", + headers: { + "X-API-Key": config.tinyfishApiKey, + "Content-Type": "application/json", + }, + signal: options.signal, + }, + ); + + if (!response.ok) { + const body = await response.text(); + throw httpStatusError( + `Cancel failed (${response.status})${body ? `: ${body.slice(0, 200)}` : ""}`, + response.status, + ); + } +} + +async function withRequestTimeout(input: { + timeoutMs: number; + label: string; + action: (signal: AbortSignal) => Promise; +}): Promise { + const timeoutMs = Math.max(1, Math.floor(input.timeoutMs)); + const controller = new AbortController(); + + return await new Promise((resolve, reject) => { + const timeout = setTimeout(() => { + const error = new Error(`${input.label} timed out after ${timeoutMs}ms`); + controller.abort(error); + reject(error); + }, timeoutMs); + + Promise.resolve() + .then(() => input.action(controller.signal)) + .then(resolve, reject) + .finally(() => clearTimeout(timeout)); + }); +} + +function httpStatusError(message: string, status: number): Error & { status: number } { + const error = new Error(message) as Error & { status: number }; + error.status = status; + return error; +} + function browserActionsFromRunSteps(run: TinyfishRunWithTrace): BrowserActionReport[] { const steps = Array.isArray(run.steps) ? run.steps : []; const actions = steps diff --git a/backend/CLAUDE.md b/backend/CLAUDE.md index 38eb942..fbf4441 100644 --- a/backend/CLAUDE.md +++ b/backend/CLAUDE.md @@ -56,11 +56,11 @@ Writes to Convex via `ConvexHttpClient` in `src/convex.ts`. Import `{ convex, ap ## Environment -Required env vars (see `.env.example`): +Required env vars (see root `.env.example`): - `CONVEX_URL` — Convex instance URL - `CONVEX_SELF_HOSTED_ADMIN_KEY` — for system-level Convex writes (internal mutations) - `CLERK_SECRET_KEY`, `CLERK_PUBLISHABLE_KEY` — for JWT verification - `OPENROUTER_API_KEY` — for AI model calls - `TINYFISH_API_KEY` — for web search and fetch (populate agent). Get one at https://agent.tinyfish.ai/api-keys -In Docker, these are interpolated from the root `.env` file via `docker-compose.dev.yml`. +In Docker, these are loaded from the root `.env` file via `docker-compose.dev.yml`. diff --git a/backend/Dockerfile.dev b/backend/Dockerfile.dev index 104e64e..1642a70 100644 --- a/backend/Dockerfile.dev +++ b/backend/Dockerfile.dev @@ -2,13 +2,21 @@ FROM node:22-alpine WORKDIR /app -RUN apk add --no-cache su-exec +RUN apk add --no-cache \ + ca-certificates \ + chromium \ + freetype \ + harfbuzz \ + nss \ + su-exec \ + ttf-freefont COPY package.json package-lock.json ./ RUN npm ci COPY tsconfig.json ./ COPY src/ ./src/ +COPY BigSet_Data_Collection_Agent/ ./BigSet_Data_Collection_Agent/ COPY docker-entrypoint.dev.sh /usr/local/bin/docker-entrypoint.dev.sh RUN chown -R node:node /app RUN chmod +x /usr/local/bin/docker-entrypoint.dev.sh diff --git a/backend/Dockerfile.mastra b/backend/Dockerfile.mastra index ad3f896..ca46847 100644 --- a/backend/Dockerfile.mastra +++ b/backend/Dockerfile.mastra @@ -2,6 +2,14 @@ FROM node:22-alpine WORKDIR /app +RUN apk add --no-cache \ + ca-certificates \ + chromium \ + freetype \ + harfbuzz \ + nss \ + ttf-freefont + COPY package.json package-lock.json ./ RUN npm ci diff --git a/backend/README.md b/backend/README.md index db91bf0..896f6ac 100644 --- a/backend/README.md +++ b/backend/README.md @@ -5,8 +5,10 @@ Fastify server that handles auth, database, and talks to TinyFish APIs. ## Running ```bash +# From the repo root: cp .env.example .env -# Set BETTER_AUTH_SECRET (openssl rand -base64 32) +# Fill in the root .env file. +cd backend npm install npx drizzle-kit push npm run dev @@ -29,6 +31,8 @@ Starts on [localhost:3501](http://localhost:3501). | `npm run build` | Compile TypeScript | | `npm run db:push` | Push schema changes to Postgres | +Local backend scripts load the repo-root `.env` through `../scripts/with-root-env.mjs`. + ## Self-Healing Commit Cap `populate:self-heal --commit` and `POST /populate` use a configurable diff --git a/backend/package-lock.json b/backend/package-lock.json index ea6aa1c..eaf37c2 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -18,6 +18,7 @@ "dotenv": "^16.4.0", "fastify": "^5.0.0", "fastify-plugin": "^5.1.0", + "playwright-core": "^1.58.2", "zod": "^4.4.3" }, "devDependencies": { @@ -7399,6 +7400,18 @@ "pathe": "^2.0.1" } }, + "node_modules/playwright-core": { + "version": "1.58.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.2.tgz", + "integrity": "sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==", + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/posthog-node": { "version": "5.34.7", "resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-5.34.7.tgz", diff --git a/backend/package.json b/backend/package.json index f7784a9..aad84aa 100644 --- a/backend/package.json +++ b/backend/package.json @@ -4,12 +4,12 @@ "type": "module", "private": true, "scripts": { - "dev": "tsx watch src/index.ts", + "dev": "node ../scripts/with-root-env.mjs tsx watch src/index.ts", "test": "node --import tsx --test test/*.test.ts", "build": "tsc", "start": "node dist/index.js", - "mastra:dev": "mastra dev", - "populate:self-heal": "tsx src/pipeline/populate-self-healing-cli.ts" + "mastra:dev": "node ../scripts/with-root-env.mjs mastra dev", + "populate:self-heal": "node ../scripts/with-root-env.mjs tsx src/pipeline/populate-self-healing-cli.ts" }, "dependencies": { "@clerk/backend": "^3.4.11", @@ -22,6 +22,7 @@ "dotenv": "^16.4.0", "fastify": "^5.0.0", "fastify-plugin": "^5.1.0", + "playwright-core": "^1.58.2", "zod": "^4.4.3" }, "devDependencies": { diff --git a/backend/src/env.ts b/backend/src/env.ts index 475994b..e088d2d 100644 --- a/backend/src/env.ts +++ b/backend/src/env.ts @@ -1,4 +1,7 @@ -import "dotenv/config"; +import { config as loadDotenv } from "dotenv"; +import { fileURLToPath } from "node:url"; + +loadDotenv({ path: fileURLToPath(new URL("../../.env", import.meta.url)) }); function required(name: string): string { const value = process.env[name]; @@ -21,7 +24,9 @@ export const env = { // Used by ./clerk-auth.ts to verify JWTs on protected routes (e.g. // /infer-schema). Required for the backend to function. CLERK_SECRET_KEY: process.env.CLERK_SECRET_KEY, - CLERK_PUBLISHABLE_KEY: process.env.CLERK_PUBLISHABLE_KEY, + CLERK_PUBLISHABLE_KEY: + process.env.CLERK_PUBLISHABLE_KEY ?? + process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY, TINYFISH_API_KEY: process.env.TINYFISH_API_KEY, diff --git a/backend/src/pipeline/collection-agent-runner.ts b/backend/src/pipeline/collection-agent-runner.ts index 5b80891..803a49a 100644 --- a/backend/src/pipeline/collection-agent-runner.ts +++ b/backend/src/pipeline/collection-agent-runner.ts @@ -157,7 +157,7 @@ const AGENT_REQUIRED_TRIAGE_STATUSES = new Set([ "requires_detail_page_followup", ]); -const DEFAULT_COLLECTION_AGENT_POLL_TIMEOUT_MS = 480_000; +const DEFAULT_COLLECTION_AGENT_POLL_TIMEOUT_MS = 1_200_000; export const runCollectionPopulatePipeline: CollectionPopulatePipelineRunner = async (input) => { diff --git a/backend/src/pipeline/populate-browser-action-box.ts b/backend/src/pipeline/populate-browser-action-box.ts new file mode 100644 index 0000000..cad1a56 --- /dev/null +++ b/backend/src/pipeline/populate-browser-action-box.ts @@ -0,0 +1,781 @@ +import { createHash, randomUUID } from "node:crypto"; + +import { + populateProcessTraceFromSteps, + type PopulateCellValue, + type PopulateRuntimeDebug, + type PopulateRuntimeResult, + type PopulateRuntimeRow, + type PopulateRuntimeTraceStep, +} from "./populate-runtime.js"; +import { + playwrightCandidateReadinessForRun, + type PopulatePlaywrightCandidateReadiness, +} from "./populate-playwright-readiness.js"; +import { playwrightCandidateScriptForRun } from "./populate-playwright-candidate-script.js"; +import { + recordTinyFishTrace, + createTinyFishTraceRecorderClient, + tinyFishTraceProcessSteps, + type TinyFishRecordedTrace, + type TinyFishTraceRecorderClient, +} from "./populate-tinyfish-trace-recorder.js"; + +export interface BrowserActionBoxDatasetSchema { + columns: Array<{ + name: string; + description?: string; + required?: boolean; + }>; + dedupeKey?: string; +} + +export interface BrowserActionBoxRunCaps { + maxAgentSteps: number; + maxDurationSeconds: number; + captureHtml: boolean; + captureScreenshots: boolean; +} + +export interface PlaywrightScriptRegistryKey { + sourceUrlCanonical: string; + datasetGoalFingerprint: string; + datasetSchemaFingerprint: string; + promptPolicyVersion: string; + scriptGeneratorVersion: string; +} + +export interface PlaywrightScriptArtifact { + scriptId: string; + sourceUrl: string; + createdAt: string; + status: "draft" | "promoted" | "rejected"; + generatorVersion: string; + registryKey: PlaywrightScriptRegistryKey; + code: string; + diagnostics: string[]; +} + +export interface BrowserActionBoxFirstRunInput { + sourceUrl: string; + datasetGoalPrompt: string; + datasetSchema: BrowserActionBoxDatasetSchema; + runCaps: BrowserActionBoxRunCaps; +} + +export interface BrowserActionBoxFirstRunOutput { + agentCompatibleResult: Record; + runtimeResult: PopulateRuntimeResult; + trace: TinyFishRecordedTrace; + playwrightScript: PlaywrightScriptArtifact | null; + replayReadiness: PopulatePlaywrightCandidateReadiness; + diagnostics: string[]; +} + +export interface BrowserActionBoxReplayInput { + sourceUrl: string; + datasetGoalPrompt: string; + datasetSchema: BrowserActionBoxDatasetSchema; + currentPlaywrightScript: PlaywrightScriptArtifact; + previousSuccessfulOutputProfile: { + fieldsPreviouslyRetrieved: string[]; + rowCountRange?: { min: number; max?: number }; + sourceUrls: string[]; + evidenceRequired: boolean; + }; + runCaps: { + maxReplayAttempts: 1; + maxRepairAttempts: 1; + timeoutMs: number; + }; +} + +export interface PlaywrightReplayTrace { + status: "succeeded" | "failed"; + startedAt: string; + completedAt: string; + scriptId: string; + sourceUrl: string; + failedStepIndex?: number; + failedAction?: string; + currentUrl?: string; + error?: string; + screenshotRef?: string; + htmlRef?: string; + diagnostics: string[]; + steps: PopulateRuntimeTraceStep[]; +} + +export interface BrowserActionBoxReplayOutput { + agentCompatibleResult: Record | null; + runtimeResult: PopulateRuntimeResult | null; + trace: PlaywrightReplayTrace; + replayStatus: + | "replay_succeeded" + | "replay_failed" + | "repair_promoted" + | "repair_rejected"; + repairedPlaywrightScript?: PlaywrightScriptArtifact; + diagnostics: string[]; +} + +export interface PlaywrightReplayRunnerResult { + agentCompatibleResult: Record | null; + trace?: Partial; + error?: string; +} + +export interface BrowserActionBoxHooks { + tinyFishClient: TinyFishTraceRecorderClient; + runPlaywrightScript?: ( + input: BrowserActionBoxReplayInput & { + script: PlaywrightScriptArtifact; + } + ) => Promise; + repairPlaywrightScript?: ( + input: BrowserActionBoxReplayInput & { + failedReplay: PlaywrightReplayTrace; + diagnostics: string[]; + } + ) => Promise; + now?: () => Date; +} + +export class BrowserActionBox { + constructor(private readonly hooks: BrowserActionBoxHooks) {} + + async firstRun( + input: BrowserActionBoxFirstRunInput + ): Promise { + const trace = await recordTinyFishTrace({ + sourceUrl: input.sourceUrl, + goal: browserActionBoxGoal(input), + captureHtml: input.runCaps.captureHtml, + captureScreenshots: input.runCaps.captureScreenshots, + maxDurationSeconds: input.runCaps.maxDurationSeconds, + maxAgentSteps: input.runCaps.maxAgentSteps, + client: this.hooks.tinyFishClient, + }); + const agentCompatibleResult = trace.finalResult ?? { rows: [] }; + const runtimeResult = populateRuntimeResultFromAgentCompatibleResult({ + agentCompatibleResult, + datasetSchema: input.datasetSchema, + sourceUrl: input.sourceUrl, + trace, + diagnosticArtifacts: [{ + kind: "tinyfish-trace", + label: "populate-tinyfish-trace", + content: safeJsonStringify(trace), + }], + }); + const replayReadiness = playwrightCandidateReadinessForRun({ + result: runtimeResult, + }); + const code = playwrightCandidateScriptForRun({ result: runtimeResult }); + const playwrightScript = code + ? createPlaywrightScriptArtifact({ + sourceUrl: input.sourceUrl, + datasetGoalPrompt: input.datasetGoalPrompt, + datasetSchema: input.datasetSchema, + code, + status: "draft", + createdAt: this.now().toISOString(), + diagnostics: replayReadiness.reasons, + }) + : null; + + return { + agentCompatibleResult, + runtimeResult, + trace, + playwrightScript, + replayReadiness, + diagnostics: trace.diagnostics, + }; + } + + async replay( + input: BrowserActionBoxReplayInput + ): Promise { + const replay = await this.runPlaywrightScript({ + ...input, + script: input.currentPlaywrightScript, + }); + const replayTrace = this.replayTraceFromRunner({ + input, + result: replay, + script: input.currentPlaywrightScript, + }); + const replayValidation = validateReplayAgentCompatibleResult({ + agentCompatibleResult: replay.agentCompatibleResult, + profile: input.previousSuccessfulOutputProfile, + }); + + if (replayTrace.status === "succeeded" && replayValidation.isValid) { + const runtimeResult = populateRuntimeResultFromReplay({ + input, + agentCompatibleResult: replay.agentCompatibleResult!, + trace: replayTrace, + status: "replay_succeeded", + }); + return { + agentCompatibleResult: replay.agentCompatibleResult, + runtimeResult, + trace: replayTrace, + replayStatus: "replay_succeeded", + diagnostics: replayValidation.issues, + }; + } + + const failureDiagnostics = [ + ...replayTrace.diagnostics, + ...replayValidation.issues, + classifyReplayFailure({ + replayTrace, + validationIssues: replayValidation.issues, + }), + ]; + if (!this.hooks.repairPlaywrightScript || input.runCaps.maxRepairAttempts < 1) { + return { + agentCompatibleResult: null, + runtimeResult: null, + trace: replayTrace, + replayStatus: "replay_failed", + diagnostics: failureDiagnostics, + }; + } + + const repairedScript = await this.hooks.repairPlaywrightScript({ + ...input, + failedReplay: replayTrace, + diagnostics: failureDiagnostics, + }); + if (!repairedScript) { + return { + agentCompatibleResult: null, + runtimeResult: null, + trace: replayTrace, + replayStatus: "repair_rejected", + diagnostics: [...failureDiagnostics, "Repair did not produce a script candidate."], + }; + } + + const repairedReplay = await this.runPlaywrightScript({ + ...input, + currentPlaywrightScript: repairedScript, + script: repairedScript, + }); + const repairedTrace = this.replayTraceFromRunner({ + input, + result: repairedReplay, + script: repairedScript, + }); + const repairedValidation = validateReplayAgentCompatibleResult({ + agentCompatibleResult: repairedReplay.agentCompatibleResult, + profile: input.previousSuccessfulOutputProfile, + }); + if (repairedTrace.status === "succeeded" && repairedValidation.isValid) { + const promotedScript = { + ...repairedScript, + status: "promoted" as const, + diagnostics: repairedValidation.issues, + }; + const runtimeResult = populateRuntimeResultFromReplay({ + input, + agentCompatibleResult: repairedReplay.agentCompatibleResult!, + trace: repairedTrace, + status: "repair_promoted", + repairedScript: promotedScript, + }); + return { + agentCompatibleResult: repairedReplay.agentCompatibleResult, + runtimeResult, + trace: repairedTrace, + replayStatus: "repair_promoted", + repairedPlaywrightScript: promotedScript, + diagnostics: repairedValidation.issues, + }; + } + + return { + agentCompatibleResult: null, + runtimeResult: null, + trace: repairedTrace, + replayStatus: "repair_rejected", + diagnostics: [ + ...failureDiagnostics, + ...repairedTrace.diagnostics, + ...repairedValidation.issues, + ], + }; + } + + private async runPlaywrightScript( + input: BrowserActionBoxReplayInput & { script: PlaywrightScriptArtifact } + ): Promise { + if (!this.hooks.runPlaywrightScript) { + return { + agentCompatibleResult: null, + error: "No Playwright replay runner is configured.", + }; + } + return this.hooks.runPlaywrightScript(input); + } + + private replayTraceFromRunner(input: { + input: BrowserActionBoxReplayInput; + script: PlaywrightScriptArtifact; + result: PlaywrightReplayRunnerResult; + }): PlaywrightReplayTrace { + const now = this.now(); + const startedAt = + input.result.trace?.startedAt ?? + new Date(now.getTime() - 1).toISOString(); + const completedAt = input.result.trace?.completedAt ?? now.toISOString(); + const status = input.result.error || !input.result.agentCompatibleResult + ? "failed" + : input.result.trace?.status ?? "succeeded"; + return { + status, + startedAt, + completedAt, + scriptId: input.script.scriptId, + sourceUrl: input.input.sourceUrl, + failedStepIndex: input.result.trace?.failedStepIndex, + failedAction: input.result.trace?.failedAction, + currentUrl: input.result.trace?.currentUrl, + error: input.result.error ?? input.result.trace?.error, + screenshotRef: input.result.trace?.screenshotRef, + htmlRef: input.result.trace?.htmlRef, + diagnostics: [ + ...(input.result.trace?.diagnostics ?? []), + ...(input.result.error ? [input.result.error] : []), + ], + steps: input.result.trace?.steps ?? [{ + kind: "browser", + label: "playwright-replay", + status: status === "succeeded" ? "succeeded" : "failed", + input: { + sourceUrl: input.input.sourceUrl, + scriptId: input.script.scriptId, + }, + error: input.result.error, + }], + }; + } + + private now(): Date { + return this.hooks.now?.() ?? new Date(); + } +} + +export function createTinyFishBrowserActionBox(input: { + apiKey: string; + pollIntervalMs?: number; + runPlaywrightScript?: BrowserActionBoxHooks["runPlaywrightScript"]; + repairPlaywrightScript?: BrowserActionBoxHooks["repairPlaywrightScript"]; +}): BrowserActionBox { + return new BrowserActionBox({ + tinyFishClient: createTinyFishTraceRecorderClient(input), + runPlaywrightScript: input.runPlaywrightScript, + repairPlaywrightScript: input.repairPlaywrightScript, + }); +} + +export function createPlaywrightScriptArtifact(input: { + sourceUrl: string; + datasetGoalPrompt: string; + datasetSchema: BrowserActionBoxDatasetSchema; + code: string; + status: PlaywrightScriptArtifact["status"]; + createdAt: string; + diagnostics?: string[]; +}): PlaywrightScriptArtifact { + const registryKey = playwrightScriptRegistryKey(input); + return { + scriptId: `pw-${shortHash(JSON.stringify(registryKey))}`, + sourceUrl: input.sourceUrl, + createdAt: input.createdAt, + status: input.status, + generatorVersion: registryKey.scriptGeneratorVersion, + registryKey, + code: input.code, + diagnostics: input.diagnostics ?? [], + }; +} + +export function playwrightScriptRegistryKey(input: { + sourceUrl: string; + datasetGoalPrompt: string; + datasetSchema: BrowserActionBoxDatasetSchema; +}): PlaywrightScriptRegistryKey { + return { + sourceUrlCanonical: canonicalSourceUrl(input.sourceUrl), + datasetGoalFingerprint: shortHash(input.datasetGoalPrompt), + datasetSchemaFingerprint: shortHash(JSON.stringify(input.datasetSchema)), + promptPolicyVersion: "bigset-populate-v1", + scriptGeneratorVersion: "browser-action-box-v1", + }; +} + +export function populateRuntimeResultFromAgentCompatibleResult(input: { + agentCompatibleResult: Record; + datasetSchema: BrowserActionBoxDatasetSchema; + sourceUrl: string; + trace?: TinyFishRecordedTrace; + replayTrace?: PlaywrightReplayTrace; + diagnosticArtifacts?: NonNullable; +}): PopulateRuntimeResult { + const rows = rowsFromAgentCompatibleResult({ + agentCompatibleResult: input.agentCompatibleResult, + datasetSchema: input.datasetSchema, + fallbackSourceUrl: input.sourceUrl, + }); + const traceSteps = input.trace + ? tinyFishTraceProcessSteps(input.trace) + : input.replayTrace?.steps ?? []; + const processTrace = populateProcessTraceFromSteps({ + runtime: input.trace ? "collection" : "unknown", + steps: traceSteps, + capturedSources: [{ + url: input.sourceUrl, + text: safeJsonStringify(input.agentCompatibleResult).slice(0, 12_000), + source: "synthetic", + }], + selectedRowSource: rows.length > 0 ? "collection_pipeline" : "none", + notes: [ + ...(input.trace?.diagnostics ?? []), + ...(input.replayTrace?.diagnostics ?? []), + ], + }); + return { + rows, + validationIssues: rows.length > 0 ? [] : ["BrowserActionBox returned no rows."], + usage: { promptTokens: 0, completionTokens: 0, totalTokens: 0 }, + metrics: { + searchCalls: 0, + fetchCalls: 0, + browserCalls: input.trace || input.replayTrace ? 1 : 0, + agentRuns: input.trace ? 1 : 0, + agentSteps: input.trace?.runSteps.length ?? input.replayTrace?.steps.length ?? 0, + }, + debug: { + capturedRows: [], + capturedSources: [{ + url: input.sourceUrl, + text: safeJsonStringify(input.agentCompatibleResult).slice(0, 12_000), + source: "synthetic", + }], + selectedRowSource: rows.length > 0 ? "collection_pipeline" : "none", + notes: [ + ...(input.trace?.diagnostics ?? []), + ...(input.replayTrace?.diagnostics ?? []), + ], + processTrace, + diagnosticArtifacts: input.diagnosticArtifacts ?? [], + }, + }; +} + +export function validateReplayAgentCompatibleResult(input: { + agentCompatibleResult: Record | null; + profile: BrowserActionBoxReplayInput["previousSuccessfulOutputProfile"]; +}): { isValid: boolean; issues: string[] } { + if (!input.agentCompatibleResult) { + return { isValid: false, issues: ["Replay returned no Agent-compatible result."] }; + } + const rows = agentCompatibleRows(input.agentCompatibleResult); + const issues: string[] = []; + const minRows = input.profile.rowCountRange?.min ?? 1; + if (rows.length < minRows) { + issues.push(`Replay returned ${rows.length} row(s), below previous minimum ${minRows}.`); + } + if ( + input.profile.rowCountRange?.max !== undefined && + rows.length > input.profile.rowCountRange.max + ) { + issues.push( + `Replay returned ${rows.length} row(s), above previous maximum ${input.profile.rowCountRange.max}.` + ); + } + const missingFields = input.profile.fieldsPreviouslyRetrieved.filter( + (field) => !rows.some((row) => rowHasField(row, field)) + ); + if (missingFields.length > 0) { + issues.push(`Replay missed previously retrieved field(s): ${missingFields.join(", ")}.`); + } + if ( + input.profile.evidenceRequired && + !rows.some((row) => rowHasEvidence(row)) + ) { + issues.push("Replay returned no evidence-backed rows."); + } + return { isValid: issues.length === 0, issues }; +} + +export function classifyReplayFailure(input: { + replayTrace: PlaywrightReplayTrace; + validationIssues: string[]; +}): string { + const text = [ + input.replayTrace.error, + input.replayTrace.currentUrl, + input.replayTrace.diagnostics.join("\n"), + input.validationIssues.join("\n"), + ].filter(Boolean).join("\n"); + if (/captcha|verify you are human|bot|blocked/i.test(text)) { + return "blocked/captcha/auth wall"; + } + if (/404|not found|gone|no longer|unavailable/i.test(text)) { + return "source unavailable"; + } + if (input.validationIssues.length > 0) { + return "validation failure"; + } + if (/timeout|selector|locator|click|navigation/i.test(text)) { + return "script failure"; + } + return "script failure"; +} + +function populateRuntimeResultFromReplay(input: { + input: BrowserActionBoxReplayInput; + agentCompatibleResult: Record; + trace: PlaywrightReplayTrace; + status: BrowserActionBoxReplayOutput["replayStatus"]; + repairedScript?: PlaywrightScriptArtifact; +}): PopulateRuntimeResult { + const diagnosticArtifacts: NonNullable = [{ + kind: "playwright-replay-result", + label: "populate-playwright-replay-result", + content: safeJsonStringify({ + replayStatus: input.status, + trace: input.trace, + }), + }]; + if (input.status === "repair_promoted" && input.repairedScript) { + diagnosticArtifacts.push({ + kind: "playwright-repaired-script", + label: "populate-playwright-repaired-script", + content: input.repairedScript.code, + }); + } + return populateRuntimeResultFromAgentCompatibleResult({ + agentCompatibleResult: input.agentCompatibleResult, + datasetSchema: input.input.datasetSchema, + sourceUrl: input.input.sourceUrl, + replayTrace: input.trace, + diagnosticArtifacts, + }); +} + +function rowsFromAgentCompatibleResult(input: { + agentCompatibleResult: Record; + datasetSchema: BrowserActionBoxDatasetSchema; + fallbackSourceUrl: string; +}): PopulateRuntimeRow[] { + const rawRows = agentCompatibleRows(input.agentCompatibleResult); + return rawRows + .map((row) => runtimeRowFromUnknown({ + row, + datasetSchema: input.datasetSchema, + fallbackSourceUrl: input.fallbackSourceUrl, + })) + .filter((row): row is PopulateRuntimeRow => Boolean(row)); +} + +function runtimeRowFromUnknown(input: { + row: unknown; + datasetSchema: BrowserActionBoxDatasetSchema; + fallbackSourceUrl: string; +}): PopulateRuntimeRow | undefined { + if (!isRecord(input.row)) { + return undefined; + } + const cells = isRecord(input.row.cells) + ? input.row.cells + : isRecord(input.row.row) + ? input.row.row + : input.row; + const sourceUrls = uniqueHttpUrls([ + ...arrayValue(input.row.sourceUrls).filter(isString), + ...arrayValue(input.row.source_urls).filter(isString), + ...sourceUrlsFromCells(cells), + input.fallbackSourceUrl, + ]); + const evidence = evidenceFromRow({ + row: input.row, + cells, + fallbackSourceUrl: sourceUrls[0] ?? input.fallbackSourceUrl, + }); + const normalizedCells: Record = Object.fromEntries( + input.datasetSchema.columns.map((column) => [ + column.name, + normalizeCellValue(cells[column.name]), + ]) + ); + return { + cells: normalizedCells, + sourceUrls, + evidence, + needsReview: true, + }; +} + +function evidenceFromUnknown( + value: unknown, + fallbackSourceUrl: string +): PopulateRuntimeRow["evidence"] { + return arrayValue(value) + .map((item) => { + if (!isRecord(item)) { + return undefined; + } + const quote = stringValue(item.quote ?? item.text ?? item.evidence); + if (!quote) { + return undefined; + } + return { + columnName: stringValue(item.columnName ?? item.field) ?? "evidence", + sourceUrl: stringValue(item.sourceUrl ?? item.url) ?? fallbackSourceUrl, + quote, + }; + }) + .filter((item): item is PopulateRuntimeRow["evidence"][number] => Boolean(item)); +} + +function evidenceFromRow(input: { + row: Record; + cells: Record; + fallbackSourceUrl: string; +}): PopulateRuntimeRow["evidence"] { + const explicitEvidence = evidenceFromUnknown( + input.row.evidence, + input.fallbackSourceUrl + ); + if (explicitEvidence.length > 0) { + return explicitEvidence; + } + const evidenceQuote = stringValue( + input.cells.evidence_quote ?? + input.cells.evidenceQuote ?? + input.cells.quote + ); + return evidenceQuote + ? [{ + columnName: "evidence_quote", + sourceUrl: input.fallbackSourceUrl, + quote: evidenceQuote, + }] + : []; +} + +function browserActionBoxGoal(input: BrowserActionBoxFirstRunInput): string { + return [ + input.datasetGoalPrompt, + "", + "Source URL:", + input.sourceUrl, + "", + "Return JSON with records/rows, source URLs, evidence quotes, and agent_browser_actions when browser actions happen.", + "Columns:", + ...input.datasetSchema.columns.map((column) => + `- ${column.name}${column.description ? `: ${column.description}` : ""}` + ), + ].join("\n"); +} + +function sourceUrlsFromCells(cells: Record): string[] { + return Object.entries(cells) + .filter(([key]) => /(url|link|website|source)/i.test(key)) + .flatMap(([, value]) => typeof value === "string" ? [value] : []); +} + +function uniqueHttpUrls(values: string[]): string[] { + return Array.from(new Set(values.filter((value) => /^https?:\/\//i.test(value)))); +} + +function normalizeCellValue(value: unknown): PopulateCellValue { + if ( + typeof value === "string" || + typeof value === "number" || + typeof value === "boolean" || + value === null || + Array.isArray(value) + ) { + return value; + } + if (isRecord(value)) { + return value; + } + return null; +} + +function rowHasField(row: unknown, field: string): boolean { + if (!isRecord(row)) { + return false; + } + const cells = isRecord(row.cells) ? row.cells : isRecord(row.row) ? row.row : row; + const value = cells[field]; + return value !== undefined && value !== null && value !== ""; +} + +function rowHasEvidence(row: unknown): boolean { + if (!isRecord(row)) { + return false; + } + if (arrayValue(row.evidence).some((item) => + isRecord(item) && Boolean(stringValue(item.quote ?? item.text)) + )) { + return true; + } + const cells = isRecord(row.cells) ? row.cells : isRecord(row.row) ? row.row : row; + return Boolean(stringValue( + cells.evidence_quote ?? + cells.evidenceQuote ?? + cells.quote + )); +} + +function agentCompatibleRows(result: Record): unknown[] { + const direct = arrayValue(result.rows ?? result.records ?? result.result); + if (direct.length > 0) { + return direct; + } + const nested = isRecord(result.result) ? result.result : undefined; + return nested ? arrayValue(nested.rows ?? nested.records) : []; +} + +function canonicalSourceUrl(value: string): string { + try { + const url = new URL(value); + url.hash = ""; + return url.toString().replace(/\/$/, ""); + } catch { + return value.trim(); + } +} + +function shortHash(value: string): string { + return createHash("sha256").update(value).digest("hex").slice(0, 16); +} + +function safeJsonStringify(value: unknown): string { + return JSON.stringify(value, null, 2).slice(0, 20_000); +} + +function arrayValue(value: unknown): unknown[] { + return Array.isArray(value) ? value : []; +} + +function stringValue(value: unknown): string | undefined { + return typeof value === "string" && value.trim() ? value.trim() : undefined; +} + +function isString(value: unknown): value is string { + return typeof value === "string"; +} + +function isRecord(value: unknown): value is Record { + return Boolean(value) && typeof value === "object" && !Array.isArray(value); +} diff --git a/backend/src/pipeline/populate-playwright-replay-runner.ts b/backend/src/pipeline/populate-playwright-replay-runner.ts new file mode 100644 index 0000000..1c829ae --- /dev/null +++ b/backend/src/pipeline/populate-playwright-replay-runner.ts @@ -0,0 +1,538 @@ +import { createHash, randomUUID } from "node:crypto"; +import { existsSync } from "node:fs"; + +import type { + BrowserActionBoxHooks, + BrowserActionBoxReplayInput, + PlaywrightReplayRunnerResult, + PlaywrightScriptArtifact, +} from "./populate-browser-action-box.js"; +import type { PopulateRuntimeTraceStep } from "./populate-runtime.js"; +import type { Browser, Page } from "playwright-core"; + +export interface LocalPlaywrightReplayRunnerOptions { + executablePath?: string; + headless?: boolean; + launchArgs?: string[]; +} + +interface LinkCandidate { + href: string; + title: string; + text: string; + ariaLabel?: string; +} + +interface ReplayPageSnapshot { + url: string; + title: string; + evidenceQuote: string; +} + +export function createLocalPlaywrightReplayRunner( + options: LocalPlaywrightReplayRunnerOptions = {} +): NonNullable { + return (input) => runLocalPlaywrightReplay(input, options); +} + +export function createDeterministicPlaywrightRepair(): NonNullable< + BrowserActionBoxHooks["repairPlaywrightScript"] +> { + return async (input) => { + const repairedCode = repairGeneratedScriptSourceUrls({ + code: input.currentPlaywrightScript.code, + sourceUrl: input.sourceUrl, + }); + if (repairedCode === input.currentPlaywrightScript.code) { + return null; + } + return { + ...input.currentPlaywrightScript, + scriptId: `${input.currentPlaywrightScript.scriptId}-repair-${shortHash(repairedCode)}`, + status: "draft", + createdAt: new Date().toISOString(), + code: repairedCode, + diagnostics: [ + ...input.currentPlaywrightScript.diagnostics, + "Repaired generated script URL anchors to match the recipe source URL.", + ], + }; + }; +} + +export async function runLocalPlaywrightReplay( + input: BrowserActionBoxReplayInput & { script: PlaywrightScriptArtifact }, + options: LocalPlaywrightReplayRunnerOptions = {} +): Promise { + const startedAt = new Date().toISOString(); + const steps: PopulateRuntimeTraceStep[] = []; + let browser: Browser | undefined; + let page: Page | undefined; + + try { + const executablePath = options.executablePath ?? findChromiumExecutable(); + browser = await launchChromium({ + executablePath, + headless: options.headless ?? true, + launchArgs: options.launchArgs, + }); + page = await browser.newPage(); + page.setDefaultTimeout(Math.min(input.runCaps.timeoutMs, 30_000)); + page.setDefaultNavigationTimeout(Math.min(input.runCaps.timeoutMs, 30_000)); + steps.push({ + kind: "browser", + label: "playwright-launch", + status: "succeeded", + input: { + executablePath: executablePath ?? "playwright-default", + headless: options.headless ?? true, + }, + }); + + const recipeResult = await withTimeout( + runScriptModule({ + script: input.script, + page, + replayInput: input, + }), + input.runCaps.timeoutMs, + "Playwright replay timed out." + ); + steps.push({ + kind: "browser", + label: "playwright-script-run", + status: "succeeded", + input: { + sourceUrl: input.sourceUrl, + scriptId: input.script.scriptId, + }, + output: { + returnedRows: agentCompatibleRows(recipeResult).length, + }, + }); + + const agentCompatibleResult = + agentCompatibleRows(recipeResult).length > 0 + ? recipeResult + : await extractAgentCompatibleRowsFromPage({ + page, + replayInput: input, + recipeResult, + steps, + }); + + return { + agentCompatibleResult, + trace: { + status: "succeeded", + startedAt, + completedAt: new Date().toISOString(), + currentUrl: safePageUrl(page), + diagnostics: [], + steps, + }, + }; + } catch (error) { + const message = error instanceof Error ? error.message : String(error); + steps.push({ + kind: "browser", + label: "playwright-replay-failure", + status: "failed", + input: { + sourceUrl: input.sourceUrl, + scriptId: input.script.scriptId, + }, + error: message, + }); + return { + agentCompatibleResult: null, + error: message, + trace: { + status: "failed", + startedAt, + completedAt: new Date().toISOString(), + currentUrl: safePageUrl(page), + diagnostics: await failureDiagnostics(page, message), + steps, + }, + }; + } finally { + await browser?.close().catch(() => undefined); + } +} + +async function launchChromium(input: { + executablePath?: string; + headless: boolean; + launchArgs?: string[]; +}) { + const { chromium } = await import("playwright-core"); + return chromium.launch({ + executablePath: input.executablePath, + headless: input.headless, + args: [ + "--no-sandbox", + "--disable-dev-shm-usage", + ...(input.launchArgs ?? []), + ], + }); +} + +async function runScriptModule(input: { + script: PlaywrightScriptArtifact; + page: Page; + replayInput: BrowserActionBoxReplayInput; +}): Promise> { + const moduleUrl = `data:text/javascript;base64,${Buffer.from( + input.script.code + ).toString("base64")}#${randomUUID()}`; + const mod = await import(moduleUrl); + if (typeof mod.runDatasetRecipe !== "function") { + throw new Error("Playwright script must export runDatasetRecipe(context)."); + } + const result = await mod.runDatasetRecipe({ + page: input.page, + sourceUrl: input.replayInput.sourceUrl, + datasetGoalPrompt: input.replayInput.datasetGoalPrompt, + datasetSchema: input.replayInput.datasetSchema, + inputs: {}, + timeoutMs: input.replayInput.runCaps.timeoutMs, + }); + return isRecord(result) ? result : { rows: [] }; +} + +async function extractAgentCompatibleRowsFromPage(input: { + page: Page; + replayInput: BrowserActionBoxReplayInput; + recipeResult: Record; + steps: PopulateRuntimeTraceStep[]; +}): Promise> { + const candidates = await input.page.evaluate(({ sourceUrl }) => { + const sourceHost = new URL(sourceUrl).hostname.replace(/^www\./, ""); + return Array.from(document.querySelectorAll("a[href]")) + .map((anchor) => { + const href = new URL(anchor.getAttribute("href") ?? "", document.baseURI).href; + const text = (anchor.textContent ?? "").replace(/\s+/g, " ").trim(); + const ariaLabel = anchor.getAttribute("aria-label") ?? undefined; + const title = anchor.getAttribute("title") ?? ariaLabel ?? text; + const host = new URL(href).hostname.replace(/^www\./, ""); + return { + href, + title: title.trim(), + text, + ariaLabel, + sameHost: host === sourceHost, + }; + }) + .filter((candidate) => /^https?:\/\//i.test(candidate.href)) + .filter((candidate) => !/(signin|login|signup|privacy|terms|cookie|contact|mailto:)/i.test(candidate.href)) + .filter((candidate) => candidate.sameHost || candidate.text.length > 12) + .slice(0, 80); + }, { sourceUrl: input.replayInput.sourceUrl }); + const ranked = candidates + .map((candidate) => ({ + ...candidate, + score: replayCandidateScore(candidate, input.replayInput), + })) + .filter((candidate) => candidate.score > 0) + .sort((left, right) => + right.score - left.score || left.href.localeCompare(right.href) + ); + const unique = dedupeByHref(ranked).slice(0, targetReplayRowCount(input.replayInput)); + let rows = unique.map((candidate) => + rowFromCandidate({ + candidate, + replayInput: input.replayInput, + }) + ); + let sourceUrls = unique.map((candidate) => candidate.href); + if (rows.length === 0) { + const snapshot = await replayPageSnapshot(input.page); + const pageRow = rowFromPageSnapshot({ + snapshot, + replayInput: input.replayInput, + }); + if (pageRow) { + rows = [pageRow]; + sourceUrls = [snapshot.url]; + } + } + input.steps.push({ + kind: "extract", + label: "playwright-dom-extract", + status: rows.length > 0 ? "succeeded" : "failed", + input: { + sourceUrl: input.replayInput.sourceUrl, + candidateCount: candidates.length, + }, + output: { + rowCount: rows.length, + }, + error: rows.length > 0 ? undefined : "Replay DOM extraction found no rows.", + }); + return { + records: rows, + sourceUrls, + replayNotes: arrayValue(input.recipeResult.notes).filter(isString).slice(0, 20), + }; +} + +function rowFromCandidate(input: { + candidate: LinkCandidate; + replayInput: BrowserActionBoxReplayInput; +}): Record { + const evidenceQuote = bestEvidenceQuote(input.candidate); + const cells: Record = {}; + for (const column of input.replayInput.datasetSchema.columns) { + const columnName = column.name; + if (/(url|link|website|source)/i.test(columnName)) { + cells[columnName] = input.candidate.href; + } else if (/(title|name|company|article|post)/i.test(columnName)) { + cells[columnName] = input.candidate.title || input.candidate.text; + } else if (/(evidence|quote|summary|description|snippet)/i.test(columnName)) { + cells[columnName] = evidenceQuote; + } else if (/(date|published|year)/i.test(columnName)) { + cells[columnName] = dateFromText(input.candidate.text) ?? null; + } else { + cells[columnName] = input.candidate.title || input.candidate.text || null; + } + } + return { + ...cells, + sourceUrls: [input.candidate.href], + evidence: [{ + field: "evidence_quote", + url: input.candidate.href, + quote: evidenceQuote, + }], + }; +} + +async function replayPageSnapshot(page: Page): Promise { + return page.evaluate(() => { + const bodyText = (document.body?.innerText ?? "") + .replace(/\s+/g, " ") + .trim(); + const title = (document.title || "") + .replace(/\s+/g, " ") + .trim(); + const evidenceQuote = bodyText.slice(0, 500); + return { + url: window.location.href, + title: title || evidenceQuote.slice(0, 120) || window.location.href, + evidenceQuote, + }; + }); +} + +function rowFromPageSnapshot(input: { + snapshot: ReplayPageSnapshot; + replayInput: BrowserActionBoxReplayInput; +}): Record | undefined { + if (!input.snapshot.evidenceQuote) { + return undefined; + } + const cells: Record = {}; + for (const column of input.replayInput.datasetSchema.columns) { + const columnName = column.name; + if (/(url|link|website|source)/i.test(columnName)) { + cells[columnName] = input.snapshot.url; + } else if (/(title|name|company|article|post)/i.test(columnName)) { + cells[columnName] = input.snapshot.title; + } else if (/(evidence|quote|summary|description|snippet)/i.test(columnName)) { + cells[columnName] = input.snapshot.evidenceQuote; + } else if (/(date|published|year)/i.test(columnName)) { + cells[columnName] = dateFromText(input.snapshot.evidenceQuote) ?? null; + } else { + cells[columnName] = input.snapshot.title || input.snapshot.evidenceQuote; + } + } + return { + ...cells, + sourceUrls: [input.snapshot.url], + evidence: [{ + field: "evidence_quote", + url: input.snapshot.url, + quote: input.snapshot.evidenceQuote, + }], + }; +} + +function replayCandidateScore( + candidate: LinkCandidate & { sameHost?: boolean }, + input: BrowserActionBoxReplayInput +): number { + const haystack = `${candidate.href} ${candidate.title} ${candidate.text}`.toLowerCase(); + let score = candidate.sameHost ? 4 : 1; + if (candidate.title.length >= 8) score += 2; + if (candidate.text.length >= 20) score += 1; + if (/(privacy|terms|login|signin|signup|careers|contact|about|download)/i.test(haystack)) { + score -= 8; + } + for (const term of replayIntentTerms(input)) { + if (haystack.includes(term)) score += 1; + } + return score; +} + +function replayIntentTerms(input: BrowserActionBoxReplayInput): string[] { + return Array.from(new Set( + [ + ...input.datasetGoalPrompt.toLowerCase().match(/[a-z][a-z0-9-]{3,}/g) ?? [], + ...input.datasetSchema.columns.flatMap((column) => + column.name.toLowerCase().match(/[a-z][a-z0-9-]{3,}/g) ?? [] + ), + ].filter((term) => + !/^(with|from|this|that|rows?|each|page|source|include|current|public)$/.test(term) + ) + )).slice(0, 20); +} + +function targetReplayRowCount(input: BrowserActionBoxReplayInput): number { + const min = input.previousSuccessfulOutputProfile.rowCountRange?.min ?? 1; + const max = input.previousSuccessfulOutputProfile.rowCountRange?.max ?? Math.max(10, min); + return Math.max(1, Math.min(max, Math.max(min, 10))); +} + +function dedupeByHref(candidates: T[]): T[] { + const seen = new Set(); + const rows: T[] = []; + for (const candidate of candidates) { + const href = canonicalUrl(candidate.href); + if (seen.has(href)) continue; + seen.add(href); + rows.push(candidate); + } + return rows; +} + +function repairGeneratedScriptSourceUrls(input: { + code: string; + sourceUrl: string; +}): string { + let changed = false; + const repaired = input.code.replace( + /https?:\/\/[^"'`\]\s)]+/g, + (url) => { + if (canonicalUrl(url) === canonicalUrl(input.sourceUrl)) { + return url; + } + try { + const urlHost = new URL(url).hostname.replace(/^www\./, ""); + const sourceHost = new URL(input.sourceUrl).hostname.replace(/^www\./, ""); + if (urlHost !== sourceHost || /example\.invalid|broken|localhost/i.test(url)) { + changed = true; + return input.sourceUrl; + } + } catch { + changed = true; + return input.sourceUrl; + } + return url; + } + ); + return changed ? repaired : input.code; +} + +function findChromiumExecutable(): string | undefined { + for (const candidate of [ + process.env.POPULATE_PLAYWRIGHT_EXECUTABLE_PATH, + "/usr/bin/chromium-browser", + "/usr/bin/chromium", + "/Applications/Google Chrome for Testing.app/Contents/MacOS/Google Chrome for Testing", + "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", + ]) { + if (candidate && existsSync(candidate)) { + return candidate; + } + } + return undefined; +} + +async function withTimeout( + promise: Promise, + timeoutMs: number, + message: string +): Promise { + let timeout: NodeJS.Timeout | undefined; + try { + return await Promise.race([ + promise, + new Promise((_, reject) => { + timeout = setTimeout(() => reject(new Error(message)), timeoutMs); + }), + ]); + } finally { + if (timeout) clearTimeout(timeout); + } +} + +async function failureDiagnostics( + page: Page | undefined, + message: string +): Promise { + if (!page) { + return [message]; + } + const title = await page.title().catch(() => ""); + return [ + message, + `Current URL: ${page.url()}`, + ...(title ? [`Page title: ${title.slice(0, 160)}`] : []), + ]; +} + +function safePageUrl(page: Page | undefined): string | undefined { + try { + return page?.url(); + } catch { + return undefined; + } +} + +function bestEvidenceQuote(candidate: LinkCandidate): string { + return (candidate.text || candidate.title || candidate.href) + .replace(/\s+/g, " ") + .trim() + .slice(0, 500); +} + +function dateFromText(value: string): string | undefined { + return value.match(/\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Sept|Oct|Nov|Dec)[a-z]*\.?\s+\d{1,2},?\s+\d{4}\b/i)?.[0] ?? + value.match(/\b\d{4}-\d{2}-\d{2}\b/)?.[0]; +} + +function agentCompatibleRows(result: Record): unknown[] { + const direct = arrayValue(result.rows ?? result.records ?? result.result); + if (direct.length > 0) { + return direct; + } + const nested = isRecord(result.result) ? result.result : undefined; + return nested ? arrayValue(nested.rows ?? nested.records) : []; +} + +function canonicalUrl(value: string): string { + try { + const url = new URL(value); + url.hash = ""; + return url.toString().replace(/\/$/, ""); + } catch { + return value; + } +} + +function shortHash(value: string): string { + return createHash("sha256").update(value).digest("hex").slice(0, 8); +} + +function arrayValue(value: unknown): unknown[] { + return Array.isArray(value) ? value : []; +} + +function isString(value: unknown): value is string { + return typeof value === "string"; +} + +function isRecord(value: unknown): value is Record { + return Boolean(value) && typeof value === "object" && !Array.isArray(value); +} diff --git a/backend/src/pipeline/populate-runtime-selection.ts b/backend/src/pipeline/populate-runtime-selection.ts index 62c6656..3a35255 100644 --- a/backend/src/pipeline/populate-runtime-selection.ts +++ b/backend/src/pipeline/populate-runtime-selection.ts @@ -10,6 +10,11 @@ import { MastraPopulateRecipeRuntime, type PopulateRecipeRuntime, } from "./populate-self-healing.js"; +import { createTinyFishBrowserActionBox } from "./populate-browser-action-box.js"; +import { + createDeterministicPlaywrightRepair, + createLocalPlaywrightReplayRunner, +} from "./populate-playwright-replay-runner.js"; export type PopulateAgentRuntimeName = "mastra" | "collection"; @@ -44,7 +49,10 @@ export async function createPopulateRecipeRuntime( ): Promise { const runtimeName = selectedPopulateRuntimeName(input.env); if (runtimeName === "mastra") { - return new MastraPopulateRecipeRuntime({ maxRows: input.maxRows }); + return new MastraPopulateRecipeRuntime({ + maxRows: input.maxRows, + browserActionBox: browserActionBoxFromEnv(input.env), + }); } const collectionRunner = input.collectionRunner ?? await loadCollectionRunnerFromEnv(input.env); @@ -60,6 +68,45 @@ export async function createPopulateRecipeRuntime( }); } +function browserActionBoxFromEnv(env: NodeJS.ProcessEnv) { + const enabled = booleanEnv(env.POPULATE_ENABLE_BROWSER_ACTION_BOX, true); + const apiKey = env.TINYFISH_API_KEY?.trim(); + if (!enabled || !apiKey) { + return undefined; + } + return createTinyFishBrowserActionBox({ + apiKey, + pollIntervalMs: positiveIntEnv( + env.POPULATE_BROWSER_ACTION_BOX_POLL_INTERVAL_MS, + 3_000 + ), + runPlaywrightScript: booleanEnv(env.POPULATE_ENABLE_PLAYWRIGHT_REPLAY, true) + ? createLocalPlaywrightReplayRunner({ + executablePath: env.POPULATE_PLAYWRIGHT_EXECUTABLE_PATH?.trim() || undefined, + headless: booleanEnv(env.POPULATE_PLAYWRIGHT_HEADLESS, true), + }) + : undefined, + repairPlaywrightScript: booleanEnv(env.POPULATE_ENABLE_PLAYWRIGHT_REPAIR, true) + ? createDeterministicPlaywrightRepair() + : undefined, + }); +} + +function booleanEnv(value: string | undefined, fallback: boolean): boolean { + if (value === undefined) { + return fallback; + } + return ["1", "true", "yes", "on"].includes(value.trim().toLowerCase()); +} + +function positiveIntEnv(value: string | undefined, fallback: number): number { + if (!value?.trim()) { + return fallback; + } + const parsed = Number.parseInt(value, 10); + return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback; +} + async function loadCollectionRunnerFromEnv( env: NodeJS.ProcessEnv ): Promise { diff --git a/backend/src/pipeline/populate-runtime.ts b/backend/src/pipeline/populate-runtime.ts index 7c9c347..f3f90fa 100644 --- a/backend/src/pipeline/populate-runtime.ts +++ b/backend/src/pipeline/populate-runtime.ts @@ -11,6 +11,15 @@ import { datasetContextSchema, type DatasetContext, } from "./populate.js"; +import { + buildPopulateFetchPlan, + triageFetchedPageForPopulate, + rankPopulateSearchResults, +} from "./populate-source-planner.js"; +import type { + BrowserActionBox, + BrowserActionBoxDatasetSchema, +} from "./populate-browser-action-box.js"; export type PopulateCellValue = | string @@ -114,6 +123,11 @@ export interface PopulateRuntimeDebug { | "none"; notes: string[]; processTrace: PopulateProcessTrace; + diagnosticArtifacts?: Array<{ + kind: string; + label: string; + content: string; + }>; } export interface PopulateRuntimeResult { @@ -177,7 +191,12 @@ export async function runPopulateRuntime(input: { context: DatasetContext; webTools?: PopulateRuntimeWebTools; agentRunner?: PopulateRuntimeAgentRunner; + browserActionBox?: Pick; maxRows?: number; + sourcePlanner?: { + enabled?: boolean; + fetchLimit?: number; + }; }): Promise { const parsedContext = datasetContextSchema.parse(input.context); const clarificationResult = clarificationResultForContext(parsedContext); @@ -190,6 +209,8 @@ export async function runPopulateRuntime(input: { const processTraceSteps: PopulateRuntimeTraceStep[] = []; const validationIssues: string[] = []; const debugNotes: string[] = []; + const diagnosticArtifacts: NonNullable = []; + const browserActionRows: PopulateRuntimeRow[] = []; const metrics = emptyMetrics(); const webTools = input.webTools ?? createTinyFishWebTools(); const tools = createPopulateRuntimeTools({ @@ -202,6 +223,29 @@ export async function runPopulateRuntime(input: { maxRows: input.maxRows ?? 10, processTraceSteps, }); + if (input.sourcePlanner?.enabled ?? !input.agentRunner) { + await seedCapturedSourcesFromPlannedSearches({ + context: parsedContext, + webTools, + capturedSources, + validationIssues, + metrics, + processTraceSteps, + fetchLimit: input.sourcePlanner?.fetchLimit ?? 6, + }); + } + await runBrowserActionBoxForDeferredSources({ + context: parsedContext, + capturedSources, + browserActionBox: input.browserActionBox, + browserActionRows, + processTraceSteps, + validationIssues, + debugNotes, + diagnosticArtifacts, + metrics, + maxRows: input.maxRows ?? 10, + }); await seedCapturedSourcesFromContextUrls({ context: parsedContext, webTools, @@ -240,6 +284,7 @@ export async function runPopulateRuntime(input: { selectedRowSource: "structured_recovery", notes: debugNotes, processTrace, + diagnosticArtifacts, }, }; } @@ -400,7 +445,10 @@ export async function runPopulateRuntime(input: { } const fallbackStructuredRows = shouldUseDeterministicRows ? deterministicRows - : structuredRows; + : [ + ...browserActionRows, + ...structuredRows, + ]; const structuredRowIssues = validateRuntimeRows(fallbackStructuredRows); if ( insertedRows.length > 0 && @@ -444,6 +492,7 @@ export async function runPopulateRuntime(input: { selectedRowSource, notes: debugNotes, processTrace, + diagnosticArtifacts, }, }; } @@ -462,6 +511,213 @@ function createRuntimePopulateAgent(input: { tools: Record }) { }); } +async function seedCapturedSourcesFromPlannedSearches(input: { + context: DatasetContext; + webTools: PopulateRuntimeWebTools; + capturedSources: PopulateRuntimeCapturedSource[]; + validationIssues: string[]; + metrics: PopulateRuntimeResult["metrics"]; + processTraceSteps: PopulateRuntimeTraceStep[]; + fetchLimit: number; +}): Promise { + if (urlsFromText(userPromptDescription(input.context.description)).length > 0) { + return; + } + + const searchResults: PopulateWebSearchResult[] = []; + for (const query of plannedSourceSearchQueries(input.context)) { + input.metrics.searchCalls += 1; + try { + const results = await input.webTools.search({ query }); + searchResults.push(...results); + input.processTraceSteps.push({ + kind: "search", + label: "source-planner-search", + status: "succeeded", + input: { query }, + output: { + resultCount: results.length, + urls: results.map((result) => result.url).slice(0, 10), + }, + }); + } catch (error) { + const message = error instanceof Error ? error.message : String(error); + input.validationIssues.push(`Source planner search failed: ${message}`); + input.processTraceSteps.push({ + kind: "search", + label: "source-planner-search", + status: "failed", + input: { query }, + error: message, + }); + } + } + + const ranked = rankPopulateSearchResults({ + context: input.context, + results: searchResults, + }); + const fetchUrls = buildPopulateFetchPlan({ + rankedResults: ranked, + fetchLimit: input.fetchLimit, + }); + for (const url of fetchUrls) { + input.metrics.fetchCalls += 1; + try { + const page = await input.webTools.fetch({ url }); + input.capturedSources.push({ + url, + text: [page.title, page.text].filter(Boolean).join("\n"), + source: "fetch", + }); + input.processTraceSteps.push({ + kind: "fetch", + label: "source-planner-fetch", + status: "succeeded", + input: { url }, + output: { + title: page.title, + textCharacters: page.text?.length ?? 0, + expectationScore: ranked.find((result) => + result.canonicalUrl === url + )?.expectationScore, + }, + }); + } catch (error) { + const message = error instanceof Error ? error.message : String(error); + input.validationIssues.push(`Source planner fetch failed for ${url}: ${message}`); + input.processTraceSteps.push({ + kind: "fetch", + label: "source-planner-fetch", + status: "failed", + input: { url }, + error: message, + }); + } + } +} + +function plannedSourceSearchQueries(context: DatasetContext): string[] { + const searchPhrase = taskSearchPhrase(context); + const entities = entityCandidatesFromDescription( + userPromptDescription(context.description) + ).slice(0, 3); + const queries = entities.length > 0 + ? entities.map((entity) => `${entity} ${searchPhrase} official source`) + : [`${searchPhrase} official source`]; + return Array.from(new Set(queries)).slice(0, 4); +} + +async function runBrowserActionBoxForDeferredSources(input: { + context: DatasetContext; + capturedSources: PopulateRuntimeCapturedSource[]; + browserActionBox?: Pick; + browserActionRows: PopulateRuntimeRow[]; + processTraceSteps: PopulateRuntimeTraceStep[]; + validationIssues: string[]; + debugNotes: string[]; + diagnosticArtifacts: NonNullable; + metrics: PopulateRuntimeResult["metrics"]; + maxRows: number; +}): Promise { + const candidates = input.capturedSources + .filter((source) => source.source === "fetch") + .map((source) => ({ + source, + triage: triageFetchedPageForPopulate({ + context: input.context, + url: source.url, + page: { + title: firstUsefulSourceTitle(source.text), + text: source.text, + }, + }), + })); + + for (const candidate of candidates) { + input.processTraceSteps.push({ + kind: "validation", + label: "source-fetch-triage", + status: "succeeded", + input: { + url: candidate.source.url, + }, + output: { + status: candidate.triage.status, + confidence: candidate.triage.confidence, + reason: candidate.triage.reason, + }, + }); + } + + const browserCandidate = candidates.find((candidate) => + candidate.triage.status === "requires_navigation" || + candidate.triage.status === "requires_form_submission" || + candidate.triage.status === "requires_detail_page_followup" + ); + if (!browserCandidate) { + return; + } + + if (!input.browserActionBox) { + input.debugNotes.push( + `BrowserActionBox not configured for ${browserCandidate.source.url}; replay readiness remains not_ready until a real browser-action trace exists.` + ); + return; + } + + try { + const output = await input.browserActionBox.firstRun({ + sourceUrl: browserCandidate.source.url, + datasetGoalPrompt: userPromptDescription(input.context.description), + datasetSchema: browserActionBoxDatasetSchemaFromContext(input.context), + runCaps: { + maxAgentSteps: 20, + maxDurationSeconds: 120, + captureHtml: true, + captureScreenshots: true, + }, + }); + input.browserActionRows.push(...output.runtimeResult.rows.slice(0, input.maxRows)); + input.validationIssues.push(...output.runtimeResult.validationIssues); + input.metrics.browserCalls += 1; + input.metrics.agentRuns += 1; + input.metrics.agentSteps += output.trace.runSteps.length; + input.processTraceSteps.push(...(output.runtimeResult.debug?.processTrace.steps ?? [])); + input.debugNotes.push( + `BrowserActionBox first run for ${browserCandidate.source.url}: replay_${output.replayReadiness.status}.` + ); + input.debugNotes.push(...output.diagnostics); + input.diagnosticArtifacts.push(...(output.runtimeResult.debug?.diagnosticArtifacts ?? [])); + } catch (error) { + const message = error instanceof Error ? error.message : String(error); + input.validationIssues.push( + `BrowserActionBox first run failed for ${browserCandidate.source.url}: ${message}` + ); + input.processTraceSteps.push({ + kind: "agent", + label: "browser-action-box-first-run", + status: "failed", + input: { + url: browserCandidate.source.url, + }, + error: message, + }); + } +} + +function browserActionBoxDatasetSchemaFromContext( + context: DatasetContext +): BrowserActionBoxDatasetSchema { + return { + columns: context.columns.map((column) => ({ + name: column.name, + description: column.description, + required: column.nullable !== true, + })), + }; +} + function clarificationResultForContext( context: DatasetContext ): PopulateRuntimeResult | undefined { @@ -519,7 +775,9 @@ async function enrichCapturedSourcesForStructuredFallback(input: { metrics: PopulateRuntimeResult["metrics"]; webTools: PopulateRuntimeWebTools; }) { - const entities = entityCandidatesFromDescription(input.context.description); + const entities = entityCandidatesFromDescription( + userPromptDescription(input.context.description) + ); const newSources: PopulateRuntimeCapturedSource[] = []; for (const entity of entities.slice(0, 4)) { let results: PopulateWebSearchResult[] = []; @@ -693,16 +951,22 @@ function taskSearchPhrase(context: DatasetContext): string { if (/\b(latest|blog|post|release|date)\b/i.test(taskText)) { return "latest official source title date URL"; } - return truncateForPrompt(context.description, 120); + return truncateForPrompt(userPromptDescription(context.description), 120); } function contextText(context: DatasetContext): string { return [ - context.description, + userPromptDescription(context.description), ...context.columns.map((column) => `${column.name} ${column.description ?? ""}`), ].join(" "); } +function userPromptDescription(description: string): string { + return description + .split(/\n\s*Durable recipe instructions:\s*/i)[0] + ?.trim() || description.trim(); +} + function uniqueSearchResults(results: PopulateWebSearchResult[]): PopulateWebSearchResult[] { const byUrl = new Map(); for (const result of results) { @@ -801,7 +1065,9 @@ function buildStructuredRowsPrompt(input: { nullable: column.nullable === true, description: column.description ?? "", })); - const entities = entityCandidatesFromDescription(input.context.description); + const entities = entityCandidatesFromDescription( + userPromptDescription(input.context.description) + ); const officialHints = Object.fromEntries( entities.map((entity) => [ entity, @@ -987,6 +1253,20 @@ export function populateProcessTraceFromSteps(input: { }] : []; }), + ...input.steps + .filter((step) => step.kind === "agent") + .flatMap((step) => { + const sourceUrl = stringValue(step.input?.url); + return sourceUrl + ? [{ + url: sourceUrl, + status: step.status, + source: "agent" as const, + label: step.label, + error: step.error, + }] + : []; + }), ]; return { @@ -1210,7 +1490,9 @@ async function seedCapturedSourcesFromContextUrls(input: { metrics: PopulateRuntimeResult["metrics"]; processTraceSteps: PopulateRuntimeTraceStep[]; }): Promise { - const urls = urlsFromText(input.context.description).slice(0, 5); + const urls = urlsFromText( + userPromptDescription(input.context.description) + ).slice(0, 5); for (const url of urls) { input.metrics.fetchCalls += 1; try { @@ -1396,7 +1678,9 @@ function deterministicRowsFromCapturedSources(input: { capturedSources: PopulateRuntimeCapturedSource[]; maxRows: number; }): PopulateRuntimeRow[] { - const explicitSourceUrls = urlsFromText(input.context.description); + const explicitSourceUrls = urlsFromText( + userPromptDescription(input.context.description) + ); const titleColumn = input.context.columns.find((column) => /title|name/i.test(column.name) ); @@ -1516,7 +1800,7 @@ function capturedSourceRelevanceScore( context: DatasetContext ): number { const text = `${source.url}\n${source.text}`.toLowerCase(); - const descriptionTokens = context.description + const descriptionTokens = userPromptDescription(context.description) .toLowerCase() .split(/[^a-z0-9]+/) .filter((token) => @@ -1538,7 +1822,7 @@ function capturedSourceRelevanceScore( if (/openai\.com\/news\/?$|openai\.com\/news\/(product-releases|research|company-announcements)\/?$/i.test(source.url)) { score -= 3; } - if (/mcp/i.test(source.url) && !/mcp/i.test(context.description)) { + if (/mcp/i.test(source.url) && !/mcp/i.test(userPromptDescription(context.description))) { score -= 4; } return score; @@ -1696,7 +1980,9 @@ function selectRepresentativeRows( rows: PopulateRuntimeRow[], context: DatasetContext ): PopulateRuntimeRow[] { - const entities = entityCandidatesFromDescription(context.description); + const entities = entityCandidatesFromDescription( + userPromptDescription(context.description) + ); if (entities.length < 2 || rows.length <= entities.length) { return rows; } diff --git a/backend/src/pipeline/populate-self-healing.ts b/backend/src/pipeline/populate-self-healing.ts index 75d5920..a7f1207 100644 --- a/backend/src/pipeline/populate-self-healing.ts +++ b/backend/src/pipeline/populate-self-healing.ts @@ -9,6 +9,12 @@ import { type PopulateRuntimeWebTools, runPopulateRuntime, } from "./populate-runtime.js"; +import { + createPlaywrightScriptArtifact, + type BrowserActionBox, + type BrowserActionBoxDatasetSchema, + type PlaywrightScriptArtifact, +} from "./populate-browser-action-box.js"; import { datasetContextSchema, type DatasetContext, @@ -34,7 +40,12 @@ export type PopulateRecipeArtifactKind = | "captured-rows" | "process-trace" | "playwright-candidate-readiness" - | "playwright-candidate-script"; + | "playwright-candidate-script" + | "tinyfish-trace" + | "playwright-replay-result" + | "playwright-repair-diagnostic" + | "playwright-repaired-script" + | "validation-result"; const MAX_ARTIFACT_TEXT_LENGTH = 20_000; const PROCESS_TRACE_ARTIFACT_LIMITS = [ @@ -56,6 +67,7 @@ export interface PopulateRecipe { createdBy: "agent" | "human" | "system"; lastSuccessfulRunAt?: string; lastValidationScore?: number; + playwrightScript?: PlaywrightScriptArtifact; } export interface PopulateRecipeArtifact { @@ -175,6 +187,7 @@ export class MastraPopulateRecipeRuntime implements PopulateRecipeRuntime { runPopulate?: typeof runPopulateRuntime; webTools?: PopulateRuntimeWebTools; agentRunner?: PopulateRuntimeAgentRunner; + browserActionBox?: Pick; maxRows?: number; } = {} ) {} @@ -191,12 +204,50 @@ export class MastraPopulateRecipeRuntime implements PopulateRecipeRuntime { let failureMessage: string | undefined; try { - result = await runtime({ - context, - webTools: this.input.webTools, - agentRunner: this.input.agentRunner, - maxRows: this.input.maxRows, - }); + if (input.recipe.playwrightScript && this.input.browserActionBox) { + const replayOutput = await this.input.browserActionBox.replay({ + sourceUrl: input.recipe.playwrightScript.sourceUrl, + datasetGoalPrompt: input.context.description, + datasetSchema: browserActionBoxDatasetSchemaFromContext(input.context), + currentPlaywrightScript: input.recipe.playwrightScript, + previousSuccessfulOutputProfile: { + fieldsPreviouslyRetrieved: input.recipe.requestedColumns, + rowCountRange: { min: 1 }, + sourceUrls: [input.recipe.playwrightScript.sourceUrl], + evidenceRequired: true, + }, + runCaps: { + maxReplayAttempts: 1, + maxRepairAttempts: 1, + timeoutMs: 30_000, + }, + }); + result = replayOutput.runtimeResult ?? emptyPopulateRuntimeResult([ + `BrowserActionBox ${replayOutput.replayStatus}: ${replayOutput.diagnostics.join("; ")}`, + ]); + if (result.debug) { + result.debug.diagnosticArtifacts = [ + ...(result.debug.diagnosticArtifacts ?? []), + { + kind: "playwright-repair-diagnostic", + label: "populate-playwright-repair-diagnostic", + content: JSON.stringify({ + replayStatus: replayOutput.replayStatus, + diagnostics: replayOutput.diagnostics, + trace: replayOutput.trace, + }, null, 2), + }, + ]; + } + } else { + result = await runtime({ + context, + webTools: this.input.webTools, + agentRunner: this.input.agentRunner, + browserActionBox: this.input.browserActionBox, + maxRows: this.input.maxRows, + }); + } } catch (error) { failureMessage = error instanceof Error ? error.message : String(error); result = emptyPopulateRuntimeResult([failureMessage]); @@ -317,6 +368,16 @@ export class SelfHealingPopulateRecipeService { }; } + if (shouldRejectAfterBoundedReplayFailure({ activeRecipe, activeRun })) { + return { + datasetId: input.datasetId, + action: "candidate_rejected", + activeRecipe, + activeRun, + rejectionReasons: replayFailureRejectionReasons(activeRun), + }; + } + const nextVersion = await this.nextVersion(input.datasetId); const candidateRecipe = normalizeCandidateRecipe({ recipe: await this.input.author.repairRecipe({ @@ -1091,6 +1152,23 @@ function artifactsForRun(input: { content: debugNotes.join("\n").slice(0, MAX_ARTIFACT_TEXT_LENGTH), }); } + artifacts.push({ + kind: "validation-result", + label: "populate-validation-result", + content: JSON.stringify(input.productionValidation, null, 2) + .slice(0, MAX_ARTIFACT_TEXT_LENGTH), + }); + for (const artifact of input.result.debug?.diagnosticArtifacts ?? []) { + const kind = runtimeDiagnosticArtifactKind(artifact.kind); + if (!kind) { + continue; + } + artifacts.push({ + kind, + label: artifact.label, + content: artifact.content.slice(0, MAX_ARTIFACT_TEXT_LENGTH), + }); + } const capturedSources = input.result.debug?.capturedSources ?? []; const capturedRows = input.result.debug?.capturedRows ?? []; const processTrace = input.result.debug?.processTrace ?? { @@ -1160,6 +1238,20 @@ function artifactsForRun(input: { return artifacts; } +function runtimeDiagnosticArtifactKind( + value: string +): PopulateRecipeArtifactKind | undefined { + if ( + value === "tinyfish-trace" || + value === "playwright-replay-result" || + value === "playwright-repair-diagnostic" || + value === "playwright-repaired-script" + ) { + return value; + } + return undefined; +} + function playwrightCandidateReadinessArtifactContent( readiness: PopulatePlaywrightCandidateReadiness ): string { @@ -1316,6 +1408,28 @@ function isHealthyRun(runResult: PopulateRecipeRunResult): boolean { runResult.productionValidation.isValid; } +function shouldRejectAfterBoundedReplayFailure(input: { + activeRecipe: PopulateRecipe; + activeRun: PopulateRecipeRunResult; +}): boolean { + return Boolean(input.activeRecipe.playwrightScript) && + input.activeRun.artifacts.some((artifact) => + artifact.kind === "playwright-repair-diagnostic" || + artifact.kind === "playwright-replay-result" + ); +} + +function replayFailureRejectionReasons( + activeRun: PopulateRecipeRunResult +): string[] { + return Array.from(new Set([ + ...activeRun.productionValidation.criticalIssues, + ...activeRun.validationIssues, + ...activeRun.productionValidation.warnings, + "Promoted Playwright replay/repair failed; keeping prior active script.", + ])).filter(Boolean); +} + function shouldPromoteCandidate(input: { activeRecipe: PopulateRecipe; activeRun: PopulateRecipeRunResult; @@ -1347,6 +1461,18 @@ function rejectionReasonsForCandidate(input: { return Array.from(new Set(reasons)); } +function browserActionBoxDatasetSchemaFromContext( + context: DatasetContext +): BrowserActionBoxDatasetSchema { + return { + columns: context.columns.map((column) => ({ + name: column.name, + description: column.description, + required: column.nullable !== true, + })), + }; +} + function successfulRecipe( recipe: PopulateRecipe, runResult: PopulateRecipeRunResult @@ -1356,9 +1482,51 @@ function successfulRecipe( status: "active", lastSuccessfulRunAt: runResult.completedAt, lastValidationScore: runResult.productionValidation.score, + playwrightScript: promotedPlaywrightScriptFromRunResult(recipe, runResult), }; } +function promotedPlaywrightScriptFromRunResult( + recipe: PopulateRecipe, + runResult: PopulateRecipeRunResult +): PlaywrightScriptArtifact | undefined { + const scriptArtifact = runResult.artifacts.find((artifact) => + artifact.kind === "playwright-repaired-script" + ) ?? runResult.artifacts.find((artifact) => + artifact.kind === "playwright-candidate-script" + ); + if (!scriptArtifact?.content.trim()) { + return recipe.playwrightScript; + } + const sourceUrl = firstRunSourceUrl(runResult); + if (!sourceUrl) { + return recipe.playwrightScript; + } + return createPlaywrightScriptArtifact({ + sourceUrl, + datasetGoalPrompt: recipe.sourceDescription, + datasetSchema: { + columns: recipe.requestedColumns.map((name) => ({ + name, + required: true, + })), + }, + code: scriptArtifact.content, + status: "promoted", + createdAt: runResult.completedAt, + diagnostics: [], + }); +} + +function firstRunSourceUrl( + runResult: PopulateRecipeRunResult +): string | undefined { + return runResult.rows.flatMap((row) => row.sourceUrls)[0] ?? + runResult.debug?.processTrace.sourceArtifacts.find((artifact) => + artifact.status === "succeeded" + )?.url; +} + function runRecordFromRunResult( runResult: PopulateRecipeRunResult ): StoredPopulateRecipeRunRecord { diff --git a/backend/src/pipeline/populate-source-planner.ts b/backend/src/pipeline/populate-source-planner.ts new file mode 100644 index 0000000..db0d310 --- /dev/null +++ b/backend/src/pipeline/populate-source-planner.ts @@ -0,0 +1,311 @@ +import type { DatasetContext } from "./populate.js"; +import type { + PopulateFetchedPage, + PopulateRuntimeRow, + PopulateWebSearchResult, +} from "./populate-runtime.js"; + +export type PopulateSourceTriageStatus = + | "extract_now" + | "requires_navigation" + | "requires_form_submission" + | "requires_detail_page_followup" + | "blocked" + | "irrelevant" + | "low_value"; + +export interface PopulateRankedSearchResult extends PopulateWebSearchResult { + canonicalUrl: string; + expectationScore: number; + lowTrustReason?: string; +} + +export interface PopulateSourceTriageResult { + status: PopulateSourceTriageStatus; + confidence: number; + reason: string; + suggestedAction?: string; +} + +const LOW_TRUST_HOST_PATTERNS = [ + /(^|\.)reddit\.com$/i, + /(^|\.)quora\.com$/i, + /(^|\.)medium\.com$/i, + /(^|\.)linkedin\.com$/i, + /(^|\.)x\.com$/i, + /(^|\.)twitter\.com$/i, + /(^|\.)facebook\.com$/i, + /(^|\.)instagram\.com$/i, +]; + +const SOURCE_PLANNER_FETCH_LIMIT_DEFAULT = 8; + +export function canonicalPopulateSourceUrl(url: string): string { + try { + const parsed = new URL(url.trim()); + parsed.hash = ""; + if (parsed.pathname !== "/") { + parsed.pathname = parsed.pathname.replace(/\/+$/, ""); + } + parsed.searchParams.sort(); + return parsed.toString(); + } catch { + return url.trim(); + } +} + +export function rankPopulateSearchResults(input: { + context: DatasetContext; + results: PopulateWebSearchResult[]; +}): PopulateRankedSearchResult[] { + const byCanonicalUrl = new Map(); + for (const result of input.results) { + const canonicalUrl = canonicalPopulateSourceUrl(result.url); + const ranked = { + ...result, + canonicalUrl, + ...scorePopulateSearchResult({ + context: input.context, + result: { ...result, url: canonicalUrl }, + }), + }; + const existing = byCanonicalUrl.get(canonicalUrl); + if (!existing || ranked.expectationScore > existing.expectationScore) { + byCanonicalUrl.set(canonicalUrl, ranked); + } + } + + return [...byCanonicalUrl.values()].sort((left, right) => { + if (right.expectationScore !== left.expectationScore) { + return right.expectationScore - left.expectationScore; + } + return left.canonicalUrl.localeCompare(right.canonicalUrl); + }); +} + +export function buildPopulateFetchPlan(input: { + rankedResults: PopulateRankedSearchResult[]; + fetchLimit?: number; +}): string[] { + return input.rankedResults + .slice(0, input.fetchLimit ?? SOURCE_PLANNER_FETCH_LIMIT_DEFAULT) + .map((result) => result.canonicalUrl); +} + +export function triageFetchedPageForPopulate(input: { + context: DatasetContext; + url: string; + page: PopulateFetchedPage; +}): PopulateSourceTriageResult { + const text = [input.page.title, input.page.text].filter(Boolean).join("\n"); + const normalizedText = text.toLowerCase(); + const normalizedUrl = input.url.toLowerCase(); + + if (isBlockedPageText(normalizedText)) { + return { + status: "blocked", + confidence: 0.9, + reason: "Page appears blocked by auth, captcha, access control, or anti-bot copy.", + suggestedAction: "Use browser diagnostics only if the data is publicly accessible.", + }; + } + + if (/\b(search|filter|location|zipcode|zip code|enter your|select)\b/i.test(text)) { + return { + status: /submit|form|zipcode|zip code|enter your/i.test(text) + ? "requires_form_submission" + : "requires_navigation", + confidence: 0.75, + reason: "Page likely requires browser interaction before the requested rows are visible.", + suggestedAction: "Navigate the page, apply required filters, then extract source-backed rows.", + }; + } + + if (/\/search|\/locator|\/directory|\/catalog|\/companies|\/jobs/i.test(normalizedUrl)) { + return { + status: "requires_detail_page_followup", + confidence: 0.7, + reason: "URL looks like a listing or directory that may need detail-page follow-up.", + suggestedAction: "Open relevant detail pages and extract requested fields from those public pages.", + }; + } + + const relevantTokenCount = relevantPlannerTokens(input.context) + .filter((token) => normalizedText.includes(token)).length; + if (relevantTokenCount === 0 && normalizedText.length > 0) { + return { + status: "low_value", + confidence: 0.65, + reason: "Fetched text has little overlap with the dataset prompt or columns.", + }; + } + + if (normalizedText.length < 200) { + return { + status: "low_value", + confidence: 0.6, + reason: "Fetched text is too short to support source-backed rows.", + }; + } + + return { + status: "extract_now", + confidence: Math.min(0.95, 0.55 + relevantTokenCount * 0.08), + reason: "Fetched text appears to contain enough inline public data to attempt extraction before browser spend.", + }; +} + +export function directRowsFromFetchedPage(input: { + context: DatasetContext; + url: string; + page: PopulateFetchedPage; + maxRows?: number; +}): PopulateRuntimeRow[] { + const titleColumn = input.context.columns.find((column) => + /title|name/i.test(column.name) + ); + const urlColumn = input.context.columns.find((column) => + /url|link|website|source/i.test(column.name) + ); + if (!titleColumn || !urlColumn) { + return []; + } + + const requiredColumns = input.context.columns.filter( + (column) => column.nullable !== true + ); + if ( + requiredColumns.some((column) => + column.name !== titleColumn.name && column.name !== urlColumn.name + ) + ) { + return []; + } + + const title = firstUsefulLine([input.page.title, input.page.text].filter(Boolean).join("\n")); + if (!title) { + return []; + } + + const cells = Object.fromEntries( + input.context.columns.map((column) => { + if (column.name === titleColumn.name) { + return [column.name, title]; + } + if (column.name === urlColumn.name) { + return [column.name, input.url]; + } + return [column.name, null]; + }) + ); + + return [{ + cells, + sourceUrls: [input.url], + evidence: [{ + columnName: titleColumn.name, + sourceUrl: input.url, + quote: title, + }], + needsReview: true, + }].slice(0, input.maxRows ?? 1); +} + +function scorePopulateSearchResult(input: { + context: DatasetContext; + result: PopulateWebSearchResult; +}): Pick { + const lowTrustReason = lowTrustSourceReason(input.result.url); + if (lowTrustReason) { + return { expectationScore: 1, lowTrustReason }; + } + + const haystack = [ + input.result.title, + input.result.snippet, + input.result.url, + ].filter(Boolean).join(" ").toLowerCase(); + let score = 2; + if ((input.result.snippet?.length ?? 0) >= 40) score += 1; + if (/\b(official|docs|documentation|pricing|blog|news|release|careers|jobs)\b/.test(haystack)) { + score += 1; + } + if (plannerHostLooksPrimary(input.result.url)) { + score += 0.5; + } + const overlap = relevantPlannerTokens(input.context) + .filter((token) => haystack.includes(token)).length; + score += Math.min(1.5, overlap * 0.3); + + return { + expectationScore: Math.max(1, Math.min(5, Math.round(score * 10) / 10)), + }; +} + +function lowTrustSourceReason(url: string): string | undefined { + try { + const host = new URL(url).hostname.replace(/^www\./i, ""); + return LOW_TRUST_HOST_PATTERNS.some((pattern) => pattern.test(host)) + ? `low-trust host: ${host}` + : undefined; + } catch { + return "invalid URL"; + } +} + +function plannerHostLooksPrimary(url: string): boolean { + try { + const host = new URL(url).hostname; + return /\.(com|org|io|ai|dev|gov|edu)$/i.test(host); + } catch { + return false; + } +} + +function relevantPlannerTokens(context: DatasetContext): string[] { + return Array.from(new Set([ + userPromptDescription(context.description), + ...context.columns.map((column) => `${column.name} ${column.description ?? ""}`), + ] + .join(" ") + .toLowerCase() + .split(/[^a-z0-9]+/) + .filter((token) => + token.length >= 4 && + ![ + "with", + "from", + "that", + "this", + "have", + "source", + "sources", + "column", + "columns", + "include", + "latest", + "find", + ].includes(token) + ))); +} + +function userPromptDescription(description: string): string { + return description + .split(/\n\s*Durable recipe instructions:\s*/i)[0] + ?.trim() || description.trim(); +} + +function isBlockedPageText(text: string): boolean { + return /\b(captcha|access denied|forbidden|sign in to continue|enable javascript|unusual traffic|verify you are human)\b/i.test(text); +} + +function firstUsefulLine(text: string): string { + return text + .split(/\r?\n/) + .map((line) => line.trim()) + .find((line) => + line.length >= 8 && + line.length <= 200 && + !/^https?:\/\//i.test(line) + ) ?? ""; +} diff --git a/backend/src/pipeline/populate-tinyfish-trace-recorder.ts b/backend/src/pipeline/populate-tinyfish-trace-recorder.ts new file mode 100644 index 0000000..bd213a8 --- /dev/null +++ b/backend/src/pipeline/populate-tinyfish-trace-recorder.ts @@ -0,0 +1,830 @@ +import type { + PopulateRuntimeBrowserAction, + PopulateRuntimeTraceStep, +} from "./populate-runtime.js"; +import { TinyFish } from "@tiny-fish/sdk"; + +export type TinyFishRecordedTraceStatus = + | "completed" + | "failed" + | "cancelled" + | "timed_out" + | "unknown"; + +export interface TinyFishSseEvent { + type: string; + message?: string; + data?: Record; + createdAt: string; +} + +export interface TinyFishArtifactRef { + kind: "screenshot" | "html" | "recording" | "streaming" | "unknown"; + url?: string; + endpoint?: string; + stepId?: string; + label?: string; +} + +export interface TinyFishRunStep { + index: number; + id?: string; + action?: string; + status?: string; + urlBefore?: string; + urlAfter?: string; + selector?: string; + targetText?: string; + valueSummary?: string; + error?: string; + startedAt?: string; + completedAt?: string; + durationMs?: number; + artifactRefs: TinyFishArtifactRef[]; +} + +export interface TinyFishRecordedTrace { + provider: "tinyfish"; + sourceUrl: string; + goal: string; + runId: string | null; + status: TinyFishRecordedTraceStatus; + sseEvents: TinyFishSseEvent[]; + runSteps: TinyFishRunStep[]; + artifactRefs: TinyFishArtifactRef[]; + finalResult: Record | null; + normalizedBrowserActions: PopulateRuntimeBrowserAction[]; + diagnostics: string[]; +} + +export interface TinyFishTraceRecorderClient { + runAgent(input: { + sourceUrl: string; + goal: string; + captureHtml: boolean; + captureScreenshots: boolean; + maxDurationSeconds: number; + maxAgentSteps: number; + }): Promise<{ + runId?: string | null; + status?: string; + finalResult?: Record | null; + sseEvents?: unknown[]; + runDetail?: Record | null; + diagnostics?: string[]; + }>; + getRun?(runId: string): Promise | null>; +} + +export function createTinyFishTraceRecorderClient(input: { + apiKey: string; + pollIntervalMs?: number; + baseUrl?: string; +}): TinyFishTraceRecorderClient { + const baseURL = input.baseUrl ?? "https://agent.tinyfish.ai"; + const client = new TinyFish({ apiKey: input.apiKey, baseURL }); + const pollIntervalMs = input.pollIntervalMs ?? 3_000; + const rawApiClient = createTinyFishRawApiClient({ + apiKey: input.apiKey, + baseUrl: baseURL, + }); + return { + async runAgent(runInput) { + return runAgentWithStreamFirst({ + client, + rawApiClient, + pollIntervalMs, + runInput, + }); + }, + async getRun(runId) { + return rawApiClient.getRun(runId); + }, + }; +} + +function createTinyFishRawApiClient(input: { + apiKey: string; + baseUrl: string; +}) { + return { + async getRun(runId: string): Promise | null> { + const response = await fetch( + `${input.baseUrl}/v1/runs/${encodeURIComponent(runId)}`, + { + headers: { + "X-API-Key": input.apiKey, + Accept: "application/json", + }, + } + ); + if (!response.ok) { + return null; + } + return recordValue(await response.json().catch(() => null)) ?? null; + }, + }; +} + +async function runAgentWithStreamFirst(input: { + client: TinyFish; + rawApiClient: ReturnType; + pollIntervalMs: number; + runInput: Parameters[0]; +}): ReturnType { + const controller = new AbortController(); + const timeout = setTimeout( + () => controller.abort(), + input.runInput.maxDurationSeconds * 1_000 + ); + const sseEvents: unknown[] = []; + let runId: string | null = null; + let status: string | undefined; + let finalResult: Record | null = null; + + try { + const stream = await input.client.agent.stream( + { + url: input.runInput.sourceUrl, + goal: input.runInput.goal, + }, + { signal: controller.signal } + ); + for await (const event of stream) { + const eventRecord = recordValue(event); + sseEvents.push(event); + runId = stringValue(eventRecord?.run_id) ?? runId; + if (eventRecord?.type === "COMPLETE") { + status = stringValue(eventRecord.status) ?? status; + finalResult = recordValue(eventRecord.result) ?? finalResult; + await stream.close().catch(() => undefined); + break; + } + } + } catch (err) { + const diagnostic = err instanceof Error ? err.message : String(err); + if (!controller.signal.aborted || !runId) { + clearTimeout(timeout); + return runAgentWithQueueFallback({ + client: input.client, + rawApiClient: input.rawApiClient, + pollIntervalMs: input.pollIntervalMs, + runInput: input.runInput, + initialDiagnostics: [diagnostic], + }); + } + status = "TIMEOUT"; + } finally { + clearTimeout(timeout); + } + + const runDetail = runId ? await input.rawApiClient.getRun(runId) : null; + const runDetailStatus = stringValue(runDetail?.status); + const finalStatus = status === "TIMEOUT" && runDetailStatus + ? runDetailStatus + : status ?? runDetailStatus ?? "UNKNOWN"; + return { + runId, + status: finalStatus, + finalResult: finalResult ?? recordValue(runDetail?.result) ?? null, + sseEvents, + runDetail, + diagnostics: controller.signal.aborted && finalStatus === "TIMEOUT" + ? [`TinyFish Agent stream timed out after ${input.runInput.maxDurationSeconds}s.`] + : [], + }; +} + +async function runAgentWithQueueFallback(input: { + client: TinyFish; + rawApiClient: ReturnType; + pollIntervalMs: number; + runInput: Parameters[0]; + initialDiagnostics?: string[]; +}): ReturnType { + const queued = await input.client.agent.queue({ + url: input.runInput.sourceUrl, + goal: input.runInput.goal, + }); + if (queued.error || !queued.run_id) { + return { + runId: queued.run_id ?? null, + status: "FAILED", + finalResult: null, + diagnostics: [ + ...(input.initialDiagnostics ?? []), + queued.error?.message ?? "TinyFish Agent queue returned no run id.", + ], + }; + } + + const startedAt = Date.now(); + let runDetail: Record | null = null; + while (Date.now() - startedAt < input.runInput.maxDurationSeconds * 1_000) { + runDetail = await input.rawApiClient.getRun(queued.run_id); + const status = String(runDetail?.status ?? ""); + if (/COMPLETED|FAILED|CANCELLED|CANCELED/i.test(status)) { + const error = recordValue(runDetail?.error); + return { + runId: queued.run_id, + status, + runDetail, + finalResult: recordValue(runDetail?.result) ?? null, + diagnostics: [ + ...(input.initialDiagnostics ?? []), + ...(stringValue(error?.message) ? [stringValue(error?.message)!] : []), + ], + }; + } + await sleep(input.pollIntervalMs); + } + + return { + runId: queued.run_id, + status: "TIMEOUT", + runDetail, + finalResult: null, + diagnostics: [ + ...(input.initialDiagnostics ?? []), + `TinyFish Agent run timed out after ${input.runInput.maxDurationSeconds}s.`, + ], + }; +} + +export async function recordTinyFishTrace(input: { + sourceUrl: string; + goal: string; + captureHtml: boolean; + captureScreenshots: boolean; + maxDurationSeconds: number; + maxAgentSteps: number; + client: TinyFishTraceRecorderClient; +}): Promise { + const run = await input.client.runAgent({ + sourceUrl: input.sourceUrl, + goal: input.goal, + captureHtml: input.captureHtml, + captureScreenshots: input.captureScreenshots, + maxDurationSeconds: input.maxDurationSeconds, + maxAgentSteps: input.maxAgentSteps, + }); + const runId = stringValue(run.runId) ?? stringValue(run.runDetail?.run_id) ?? null; + const runDetail = + run.runDetail ?? + (runId && input.client.getRun ? await input.client.getRun(runId) : null); + + return normalizeTinyFishRecordedTrace({ + sourceUrl: input.sourceUrl, + goal: input.goal, + runId, + status: run.status ?? stringValue(runDetail?.status), + sseEvents: run.sseEvents ?? [], + runDetail, + finalResult: + run.finalResult ?? + recordValue(runDetail?.result) ?? + null, + diagnostics: run.diagnostics ?? [], + }); +} + +export function normalizeTinyFishRecordedTrace(input: { + sourceUrl: string; + goal: string; + runId?: string | null; + status?: string; + sseEvents?: unknown[]; + runDetail?: Record | null; + finalResult?: Record | null; + diagnostics?: string[]; +}): TinyFishRecordedTrace { + const runSteps = runStepsFromRunDetail(input.runDetail); + const artifactRefs = dedupeArtifactRefs([ + ...artifactRefsFromRunDetail(input.runDetail, input.runId ?? null), + ...runSteps.flatMap((step) => step.artifactRefs), + ]); + const normalizedBrowserActions = dedupeBrowserActions([ + ...runSteps + .map((step) => browserActionFromRunStep(step, input.sourceUrl)) + .filter((action): action is PopulateRuntimeBrowserAction => Boolean(action)), + ...browserActionsFromAgentResult(input.finalResult), + ]); + + return { + provider: "tinyfish", + sourceUrl: input.sourceUrl, + goal: input.goal, + runId: input.runId ?? stringValue(input.runDetail?.run_id) ?? null, + status: normalizeTraceStatus(input.status ?? stringValue(input.runDetail?.status)), + sseEvents: (input.sseEvents ?? []).map(normalizeSseEvent), + runSteps, + artifactRefs, + finalResult: input.finalResult ?? null, + normalizedBrowserActions, + diagnostics: [ + ...(input.diagnostics ?? []), + ...(normalizedBrowserActions.length === 0 + ? ["TinyFish trace contains no explicit replayable browser actions."] + : []), + ], + }; +} + +export function tinyFishTraceProcessSteps( + trace: TinyFishRecordedTrace +): PopulateRuntimeTraceStep[] { + const agentSteps: PopulateRuntimeTraceStep[] = [{ + kind: "agent", + label: "tinyfish-agent-run", + status: trace.status === "completed" ? "succeeded" : "failed", + input: { + url: trace.sourceUrl, + runId: trace.runId, + goalCharacters: trace.goal.length, + }, + output: { + sseEventCount: trace.sseEvents.length, + runStepCount: trace.runSteps.length, + artifactRefCount: trace.artifactRefs.length, + browserActionCount: trace.normalizedBrowserActions.length, + }, + error: trace.status === "completed" ? undefined : trace.diagnostics[0], + }]; + + const browserSteps = trace.normalizedBrowserActions.map((action, index) => ({ + kind: "browser" as const, + label: `tinyfish-browser-${action.action}-${index + 1}`, + status: "succeeded" as const, + input: { + url: action.url, + selector: action.selector, + targetText: action.targetText, + }, + browserAction: action, + })); + + return [...agentSteps, ...browserSteps]; +} + +function runStepsFromRunDetail( + runDetail: Record | null | undefined +): TinyFishRunStep[] { + const rawSteps = arrayValue(runDetail?.steps); + return rawSteps + .map((step, index) => runStepFromUnknown(step, index)) + .filter((step): step is TinyFishRunStep => Boolean(step)); +} + +function runStepFromUnknown( + value: unknown, + index: number +): TinyFishRunStep | undefined { + if (!isRecord(value)) { + return undefined; + } + const id = firstStringAtPaths(value, [["id"], ["step_id"], ["stepId"]]); + return { + index, + id, + action: firstStringAtPaths(value, [ + ["action"], + ["type"], + ["kind"], + ["operation"], + ["description"], + ["summary"], + ["name"], + ]), + status: firstStringAtPaths(value, [["status"], ["state"], ["outcome"]]), + urlBefore: firstStringAtPaths(value, [ + ["url_before"], + ["urlBefore"], + ["before", "url"], + ["input", "url_before"], + ]), + urlAfter: firstStringAtPaths(value, [ + ["url_after"], + ["urlAfter"], + ["current_url"], + ["currentUrl"], + ["url"], + ["page_url"], + ["pageUrl"], + ["after", "url"], + ["input", "url"], + ["args", "url"], + ]), + selector: firstStringAtPaths(value, [ + ["selector"], + ["locator"], + ["target", "selector"], + ["element", "selector"], + ["input", "selector"], + ["args", "selector"], + ]), + targetText: firstStringAtPaths(value, [ + ["target_text"], + ["targetText"], + ["target", "text"], + ["element", "text"], + ["text"], + ["label"], + ]), + valueSummary: safeValueSummary(value), + error: errorMessageFromRecord(value), + startedAt: firstStringAtPaths(value, [["started_at"], ["startedAt"]]), + completedAt: firstStringAtPaths(value, [["completed_at"], ["completedAt"]]), + durationMs: numberValueAtPaths(value, [["duration_ms"], ["durationMs"], ["duration"]]), + artifactRefs: artifactRefsFromStep(value, id), + }; +} + +function browserActionFromRunStep( + step: TinyFishRunStep, + fallbackSourceUrl?: string +): PopulateRuntimeBrowserAction | undefined { + const action = normalizeBrowserActionKind(step.action); + if (!action) { + return undefined; + } + const url = + step.urlAfter ?? + step.urlBefore ?? + (action === "navigate" || action === "extract" || action === "screenshot" + ? fallbackSourceUrl + : undefined); + if (!url && !step.selector && !step.targetText) { + return undefined; + } + return { + action, + url, + selector: step.selector, + targetText: step.targetText, + valueDescription: step.valueSummary, + }; +} + +function browserActionsFromAgentResult( + result: Record | null | undefined +): PopulateRuntimeBrowserAction[] { + if (!result) { + return []; + } + const rawActions = [ + ...arrayValue(result.browser_actions), + ...arrayValue(result.agent_browser_actions), + ...agentCompatibleRows(result).flatMap((row) => { + if (!isRecord(row)) return []; + return [ + ...arrayValue(row.browser_actions), + ...arrayValue(row.agent_browser_actions), + ]; + }), + ]; + return rawActions + .map(browserActionFromUnknown) + .filter((action): action is PopulateRuntimeBrowserAction => Boolean(action)); +} + +function browserActionFromUnknown(value: unknown): PopulateRuntimeBrowserAction | undefined { + if (typeof value === "string") { + const action = normalizeBrowserActionKind(value); + if (!action) { + return undefined; + } + const url = value.match(/https?:\/\/[^\s)]+/i)?.[0]; + const targetText = targetTextFromActionString(value); + if (!url && !targetText) { + return undefined; + } + return { + action, + url, + targetText, + }; + } + if (!isRecord(value)) { + return undefined; + } + const action = normalizeBrowserActionKind( + firstStringAtPaths(value, [["action"], ["kind"], ["type"], ["name"], ["label"]]) + ); + if (!action) { + return undefined; + } + const targetText = firstStringAtPaths(value, [ + ["targetText"], + ["target_text"], + ["target", "text"], + ["label"], + ]); + const browserAction = { + action, + url: firstStringAtPaths(value, [["url"], ["pageUrl"], ["page_url"], ["href"]]), + selector: firstStringAtPaths(value, [["selector"], ["locator"]]), + targetText, + valueDescription: safeValueSummary(value), + }; + return browserAction.url || browserAction.selector || browserAction.targetText + ? browserAction + : undefined; +} + +function normalizeBrowserActionKind( + value: string | undefined +): PopulateRuntimeBrowserAction["action"] | undefined { + if (!value) { + return undefined; + } + const normalized = value.toLowerCase(); + if (/\b(goto|go to|navigate|visit|open)\b/.test(normalized)) return "navigate"; + if (/\b(click|tap|press)\b/.test(normalized)) return "click"; + if (/\b(type|fill|input|enter)\b/.test(normalized)) return "type"; + if (/\b(select|choose)\b/.test(normalized)) return "select"; + if (/\b(wait|pause)\b/.test(normalized)) return "wait"; + if (/\b(extract|scrape|read|collect)\b/.test(normalized)) return "extract"; + if (/\b(screenshot|capture)\b/.test(normalized)) return "screenshot"; + return undefined; +} + +function artifactRefsFromRunDetail( + runDetail: Record | null | undefined, + runId: string | null +): TinyFishArtifactRef[] { + if (!runDetail) { + return []; + } + const refs: TinyFishArtifactRef[] = []; + for (const key of ["streaming_url", "streamingUrl"] as const) { + const url = stringValue(runDetail[key]); + if (url) refs.push({ kind: "streaming", url, label: key }); + } + for (const key of ["recording_url", "recordingUrl"] as const) { + const url = stringValue(runDetail[key]); + if (url) refs.push({ kind: "recording", url, label: key }); + } + for (const artifact of [ + ...arrayValue(runDetail.capture_artifacts), + ...arrayValue(runDetail.captureArtifacts), + ...arrayValue(runDetail.artifacts), + ]) { + if (!isRecord(artifact)) { + continue; + } + refs.push({ + kind: artifactKindFromString(firstStringAtPaths(artifact, [["kind"], ["type"]])), + url: firstStringAtPaths(artifact, [["url"], ["href"]]), + endpoint: firstStringAtPaths(artifact, [["endpoint"]]), + stepId: firstStringAtPaths(artifact, [["step_id"], ["stepId"]]), + label: firstStringAtPaths(artifact, [["label"], ["name"]]), + }); + } + if (runId) { + refs.push({ + kind: "html", + endpoint: `/v1/runs/${encodeURIComponent(runId)}/steps/{stepId}/html`, + label: "documented-step-html-endpoint-template", + }); + refs.push({ + kind: "screenshot", + endpoint: `/v1/runs/${encodeURIComponent(runId)}/steps/{stepId}/screenshot`, + label: "documented-step-screenshot-endpoint-template", + }); + } + return refs; +} + +function artifactRefsFromStep( + step: Record, + stepId: string | undefined +): TinyFishArtifactRef[] { + const refs: TinyFishArtifactRef[] = []; + for (const key of ["screenshot_url", "screenshotUrl"] as const) { + const url = stringValue(step[key]); + if (url) refs.push({ kind: "screenshot", url, stepId, label: key }); + } + for (const key of ["screenshot"] as const) { + const url = stringValue(step[key]); + if (url) refs.push({ kind: "screenshot", url, stepId, label: key }); + } + for (const key of ["html_url", "htmlUrl"] as const) { + const url = stringValue(step[key]); + if (url) refs.push({ kind: "html", url, stepId, label: key }); + } + for (const key of ["html"] as const) { + const url = stringValue(step[key]); + if (url) refs.push({ kind: "html", url, stepId, label: key }); + } + return refs; +} + +function normalizeSseEvent(value: unknown): TinyFishSseEvent { + if (!isRecord(value)) { + return { + type: "UNKNOWN", + message: typeof value === "string" ? value.slice(0, 500) : undefined, + createdAt: new Date().toISOString(), + }; + } + return { + type: firstStringAtPaths(value, [["type"], ["event"], ["name"]]) ?? "UNKNOWN", + message: firstStringAtPaths(value, [ + ["message"], + ["text"], + ["purpose"], + ["data", "message"], + ]), + data: redactedSseData(value), + createdAt: + firstStringAtPaths(value, [["createdAt"], ["created_at"], ["timestamp"]]) ?? + new Date().toISOString(), + }; +} + +function normalizeTraceStatus(value: string | undefined): TinyFishRecordedTraceStatus { + const normalized = value?.toLowerCase() ?? ""; + if (/complete|completed|success|succeeded/.test(normalized)) return "completed"; + if (/fail|error/.test(normalized)) return "failed"; + if (/cancel/.test(normalized)) return "cancelled"; + if (/timeout|timed_out/.test(normalized)) return "timed_out"; + return "unknown"; +} + +function artifactKindFromString(value: string | undefined): TinyFishArtifactRef["kind"] { + const normalized = value?.toLowerCase() ?? ""; + if (/screenshot|image|png|jpeg|jpg/.test(normalized)) return "screenshot"; + if (/html|dom/.test(normalized)) return "html"; + if (/recording|video/.test(normalized)) return "recording"; + if (/stream/.test(normalized)) return "streaming"; + return "unknown"; +} + +function targetTextFromActionString(value: string): string | undefined { + const quoted = value.match(/["'“”]([^"'“”]{2,120})["'“”]/)?.[1]; + if (quoted) { + return quoted; + } + const section = value.match(/\b(?:click|select|choose|press)\s+(?:the\s+)?([^.,;]{2,80})/i)?.[1]; + return section?.trim(); +} + +function safeValueSummary(record: Record): string | undefined { + const raw = firstStringAtPaths(record, [ + ["value_description"], + ["valueDescription"], + ["value"], + ["text"], + ["input", "value"], + ["args", "value"], + ]); + if (!raw) { + return undefined; + } + if (/(password|token|secret|key|cookie|auth)/i.test(raw)) { + return "redacted sensitive value"; + } + return raw.length > 80 ? `redacted typed value (${raw.length} chars)` : raw; +} + +function errorMessageFromRecord(record: Record): string | undefined { + const raw = valueAtFirstPath(record, [ + ["error"], + ["failure"], + ["failure_reason"], + ["failureReason"], + ["result", "error"], + ]); + if (typeof raw === "string") { + return raw.slice(0, 500); + } + if (isRecord(raw) && typeof raw.message === "string") { + return raw.message.slice(0, 500); + } + return undefined; +} + +function dedupeArtifactRefs(refs: TinyFishArtifactRef[]): TinyFishArtifactRef[] { + const seen = new Set(); + const deduped: TinyFishArtifactRef[] = []; + for (const ref of refs) { + const key = JSON.stringify([ref.kind, ref.url, ref.endpoint, ref.stepId, ref.label]); + if (seen.has(key)) continue; + seen.add(key); + deduped.push(ref); + } + return deduped; +} + +function dedupeBrowserActions( + actions: PopulateRuntimeBrowserAction[] +): PopulateRuntimeBrowserAction[] { + const seen = new Set(); + const deduped: PopulateRuntimeBrowserAction[] = []; + for (const action of actions) { + const key = JSON.stringify([ + action.action, + action.url, + action.selector, + action.targetText, + action.valueDescription, + ]); + if (seen.has(key)) continue; + seen.add(key); + deduped.push(action); + } + return deduped; +} + +function firstStringAtPaths( + record: Record, + paths: readonly (readonly string[])[] +): string | undefined { + for (const path of paths) { + const value = valueAtPath(record, path); + if (typeof value === "string" && value.trim()) { + return value.trim().slice(0, 500); + } + } + return undefined; +} + +function numberValueAtPaths( + record: Record, + paths: readonly (readonly string[])[] +): number | undefined { + for (const path of paths) { + const value = valueAtPath(record, path); + if (typeof value === "number" && Number.isFinite(value)) { + return value; + } + } + return undefined; +} + +function valueAtFirstPath( + record: Record, + paths: readonly (readonly string[])[] +): unknown { + for (const path of paths) { + const value = valueAtPath(record, path); + if (value !== undefined && value !== null) { + return value; + } + } + return undefined; +} + +function valueAtPath( + record: Record, + path: readonly string[] +): unknown { + let value: unknown = record; + for (const key of path) { + if (!isRecord(value)) { + return undefined; + } + value = value[key]; + } + return value; +} + +function redactedSseData(value: Record): Record | undefined { + const safeEntries = Object.entries(value) + .filter(([key]) => !/streaming|url|token|secret|key|cookie|auth/i.test(key)) + .filter(([, entryValue]) => + typeof entryValue === "string" || + typeof entryValue === "number" || + typeof entryValue === "boolean" + ); + return safeEntries.length > 0 ? Object.fromEntries(safeEntries) : undefined; +} + +function agentCompatibleRows(result: Record): unknown[] { + const direct = arrayValue(result.rows ?? result.records ?? result.result); + if (direct.length > 0) { + return direct; + } + const nested = recordValue(result.result); + return nested ? arrayValue(nested.rows ?? nested.records) : []; +} + +function arrayValue(value: unknown): unknown[] { + return Array.isArray(value) ? value : []; +} + +function recordValue(value: unknown): Record | undefined { + return isRecord(value) ? value : undefined; +} + +function stringValue(value: unknown): string | undefined { + return typeof value === "string" && value.trim() ? value.trim() : undefined; +} + +function isRecord(value: unknown): value is Record { + return Boolean(value) && typeof value === "object" && !Array.isArray(value); +} + +function sleep(ms: number): Promise { + return new Promise((resolve) => setTimeout(resolve, ms)); +} diff --git a/backend/test/collection-agent-runner.test.ts b/backend/test/collection-agent-runner.test.ts index c7b9f7c..f7b2532 100644 --- a/backend/test/collection-agent-runner.test.ts +++ b/backend/test/collection-agent-runner.test.ts @@ -74,7 +74,7 @@ test("collection agent runner maps explicit browser action reports into process process.env.COLLECTION_AGENT_ENABLE_AGENT = "true"; delete process.env.COLLECTION_AGENT_POLL_TIMEOUT_MS; process.env.COLLECTION_AGENT_PIPELINE_MODULE = fakeCollectionPipelineModuleUrl({ - expectedCalls: [{ agentEnabled: true, pollTimeoutMs: 480_000 }], + expectedCalls: [{ agentEnabled: true, pollTimeoutMs: 1_200_000 }], browserActions: [ { action: "hover", @@ -141,7 +141,7 @@ test("collection agent runner surfaces Agent provenance when actions are missing process.env.COLLECTION_AGENT_ENABLE_AGENT = "true"; delete process.env.COLLECTION_AGENT_POLL_TIMEOUT_MS; process.env.COLLECTION_AGENT_PIPELINE_MODULE = fakeCollectionPipelineModuleUrl({ - expectedCalls: [{ agentEnabled: true, pollTimeoutMs: 480_000 }], + expectedCalls: [{ agentEnabled: true, pollTimeoutMs: 1_200_000 }], agentReportedStepCount: 4, agentRunsWithStreamingUrl: 1, agentRunsWithExplicitBrowserActions: 0, diff --git a/backend/test/collection-source-policy.test.ts b/backend/test/collection-source-policy.test.ts index 48b6ac2..eb990c6 100644 --- a/backend/test/collection-source-policy.test.ts +++ b/backend/test/collection-source-policy.test.ts @@ -122,6 +122,63 @@ test("prompt source policy prefers entity-owned domains over third-party proof", ); }); +test("prompt source policy trusts explicit source URLs from the user's prompt", () => { + const policy = derivePromptSourcePolicy( + "make a table from these public OpenAI API docs pages with only page title and page URL: https://developers.openai.com/api/docs/mcp https://developers.openai.com/api/docs/guides/tools-connectors-mcp", + ); + const triage: SourceTriageResult = { + url: "https://developers.openai.com/api/docs/mcp", + final_url: "https://developers.openai.com/api/docs/mcp", + title: "Building MCP servers for ChatGPT Apps and API integrations", + status: "extract_now", + confidence: 0.9, + source_data_confidence: 0.8, + expected_yield: "complete", + reasoning: "User provided this exact source URL.", + }; + const spec: DatasetSpec = { + intent_summary: "Collect docs pages.", + target_row_count: 2, + row_grain: "one row per docs page", + columns: [ + { + name: "page_url", + type: "string", + description: "Page URL.", + required: true, + }, + { + name: "page_title", + type: "string", + description: "Page title.", + required: true, + }, + ], + dedupe_keys: ["page_url"], + search_queries: [], + extraction_hints: "", + }; + const record: ExtractedRecord = { + row: { + page_url: "https://developers.openai.com/api/docs/mcp", + page_title: "Building MCP servers for ChatGPT Apps and API integrations", + }, + evidence: [], + source_urls: ["https://developers.openai.com/api/docs/mcp"], + }; + + assert.deepEqual(policy.explicitSourceUrls, [ + "https://developers.openai.com/api/docs/mcp", + "https://developers.openai.com/api/docs/guides/tools-connectors-mcp", + ]); + assert.equal( + urlMatchesPromptSourcePolicy("https://developers.openai.com/api/docs/mcp", policy), + true, + ); + assert.equal(applyPromptSourcePolicyToTriageResult(triage, policy).status, "extract_now"); + assert.equal(recordMatchesPromptSourcePolicy(record, spec, policy), true); +}); + test("prompt source policy downgrades third-party extraction triage", () => { const policy = derivePromptSourcePolicy( "For Stripe, Paddle, and Chargebee, collect the official pricing page URL and plan names.", diff --git a/backend/test/populate-browser-action-box.test.ts b/backend/test/populate-browser-action-box.test.ts new file mode 100644 index 0000000..f05dc2f --- /dev/null +++ b/backend/test/populate-browser-action-box.test.ts @@ -0,0 +1,682 @@ +import assert from "node:assert/strict"; +import { existsSync } from "node:fs"; +import { test } from "node:test"; + +import { + BrowserActionBox, + classifyReplayFailure, + createPlaywrightScriptArtifact, + validateReplayAgentCompatibleResult, +} from "../src/pipeline/populate-browser-action-box.js"; +import { + buildPopulateFetchPlan, + directRowsFromFetchedPage, + rankPopulateSearchResults, + triageFetchedPageForPopulate, +} from "../src/pipeline/populate-source-planner.js"; +import { normalizeTinyFishRecordedTrace } from "../src/pipeline/populate-tinyfish-trace-recorder.js"; +import { + createDeterministicPlaywrightRepair, + createLocalPlaywrightReplayRunner, +} from "../src/pipeline/populate-playwright-replay-runner.js"; +import type { DatasetContext } from "../src/pipeline/populate.js"; + +const context: DatasetContext = { + datasetId: "dataset-browser-action-box", + datasetName: "Browser action box", + description: "Find official pricing pages for OpenAI and Anthropic.", + columns: [ + { + name: "provider", + type: "text", + description: "Provider name.", + }, + { + name: "source_url", + type: "url", + description: "Official source URL.", + }, + { + name: "evidence_quote", + type: "text", + description: "Evidence quote.", + }, + ], +}; + +const browserSchema = { + columns: context.columns.map((column) => ({ + name: column.name, + description: column.description, + required: true, + })), +}; + +test("source planner ranks, dedupes, deprioritizes low-trust URLs, and caps fetches", () => { + const ranked = rankPopulateSearchResults({ + context, + results: [ + { + title: "Someone discusses OpenAI pricing", + snippet: "A forum thread.", + url: "https://reddit.com/r/openai/comments/1", + }, + { + title: "OpenAI API Pricing", + snippet: "Official API pricing for current public models.", + url: "https://openai.com/api/pricing#models", + }, + { + title: "OpenAI API Pricing duplicate", + snippet: "Official docs and pricing.", + url: "https://openai.com/api/pricing", + }, + { + title: "Anthropic pricing", + snippet: "Official Claude pricing details and docs.", + url: "https://docs.anthropic.com/en/docs/about-claude/pricing", + }, + ], + }); + + assert.equal(ranked.length, 3); + assert.deepEqual( + ranked.slice(0, 2).map((result) => result.canonicalUrl).sort(), + [ + "https://docs.anthropic.com/en/docs/about-claude/pricing", + "https://openai.com/api/pricing", + ] + ); + assert.ok((ranked[0]?.expectationScore ?? 0) > (ranked[2]?.expectationScore ?? 0)); + assert.match(ranked[2]?.lowTrustReason ?? "", /low-trust/); + assert.deepEqual(buildPopulateFetchPlan({ rankedResults: ranked, fetchLimit: 2 }).sort(), [ + "https://docs.anthropic.com/en/docs/about-claude/pricing", + "https://openai.com/api/pricing", + ]); +}); + +test("fetch triage separates direct extraction from browser-heavy pages", () => { + const direct = triageFetchedPageForPopulate({ + context, + url: "https://openai.com/api/pricing", + page: { + title: "OpenAI API Pricing", + text: "OpenAI official pricing. Input tokens and output tokens are listed for every model.".repeat(4), + }, + }); + assert.equal(direct.status, "extract_now"); + + const form = triageFetchedPageForPopulate({ + context, + url: "https://example.com/locator", + page: { + title: "Location finder", + text: "Enter your zip code and submit the form to search current locations.", + }, + }); + assert.equal(form.status, "requires_form_submission"); + + const blocked = triageFetchedPageForPopulate({ + context, + url: "https://example.com/protected", + page: { + title: "Verify", + text: "Please verify you are human. Captcha required.", + }, + }); + assert.equal(blocked.status, "blocked"); +}); + +test("direct fetch extraction only fills title/url schemas without browser spend", () => { + const rows = directRowsFromFetchedPage({ + context: { + ...context, + columns: [ + { name: "Post Title", type: "text", description: "Title." }, + { name: "Post URL", type: "url", description: "URL." }, + ], + }, + url: "https://openai.com/news/product-releases/introducing-gpt-5", + page: { + title: "Introducing GPT-5", + text: "Introducing GPT-5\nOpenAI product release details.", + }, + }); + + assert.equal(rows.length, 1); + assert.equal(rows[0]?.cells["Post Title"], "Introducing GPT-5"); + assert.equal( + rows[0]?.cells["Post URL"], + "https://openai.com/news/product-releases/introducing-gpt-5" + ); + assert.equal(rows[0]?.evidence[0]?.quote, "Introducing GPT-5"); +}); + +test("BrowserActionBox first run records TinyFish trace and emits draft script when actions are explicit", async () => { + const box = new BrowserActionBox({ + now: () => new Date("2026-05-24T00:00:00.000Z"), + tinyFishClient: { + async runAgent() { + return { + runId: "run-123", + status: "COMPLETED", + sseEvents: [{ type: "PROGRESS", message: "Clicked Pricing" }], + runDetail: { + run_id: "run-123", + status: "COMPLETED", + streaming_url: "https://agent.tinyfish.ai/runs/run-123/live", + steps: [{ + id: "step-1", + action: "navigate", + status: "completed", + url: "https://openai.com/api/pricing", + screenshot_url: "https://agent.tinyfish.ai/runs/run-123/step-1.jpg", + }, { + id: "step-2", + action: "click", + status: "completed", + target_text: "Pricing", + url: "https://openai.com/api/pricing", + }], + }, + finalResult: { + records: [{ + provider: "OpenAI", + source_url: "https://openai.com/api/pricing", + evidence_quote: "OpenAI official pricing", + evidence: [{ + field: "provider", + url: "https://openai.com/api/pricing", + quote: "OpenAI official pricing", + }], + }], + agent_browser_actions: [{ + action: "click", + url: "https://openai.com/api/pricing", + target_text: "Pricing", + status: "succeeded", + }], + }, + }; + }, + }, + }); + + const output = await box.firstRun({ + sourceUrl: "https://openai.com/api/pricing", + datasetGoalPrompt: context.description, + datasetSchema: browserSchema, + runCaps: { + maxAgentSteps: 8, + maxDurationSeconds: 120, + captureHtml: true, + captureScreenshots: true, + }, + }); + + assert.equal(output.trace.runId, "run-123"); + assert.equal(output.trace.normalizedBrowserActions.length, 2); + assert.equal(output.runtimeResult.rows.length, 1); + assert.equal(output.replayReadiness.status, "ready"); + assert.ok(output.playwrightScript); + assert.match(output.playwrightScript?.code ?? "", /runDatasetRecipe/); + assert.ok( + output.runtimeResult.debug?.diagnosticArtifacts?.some((artifact) => + artifact.kind === "tinyfish-trace" + ) + ); +}); + +test("BrowserActionBox first run accepts raw TinyFish result arrays and raw run steps", async () => { + const box = new BrowserActionBox({ + now: () => new Date("2026-05-24T00:00:00.000Z"), + tinyFishClient: { + async runAgent() { + return { + runId: "run-raw", + status: "COMPLETED", + sseEvents: [{ + type: "PROGRESS", + purpose: "Extract article cards.", + timestamp: "2026-05-24T00:00:00.000Z", + streaming_url: "https://agent.tinyfish.ai/private-preview", + }], + runDetail: { + run_id: "run-raw", + status: "COMPLETED", + steps: [{ + id: "step-1", + status: "RUNNING", + action: "Navigate to the source page.", + screenshot: "https://agent.tinyfish.ai/runs/run-raw/step-1.jpg", + duration: 1000, + }, { + id: "step-2", + status: "RUNNING", + action: "Extract titles and URLs.", + html: "https://agent.tinyfish.ai/runs/run-raw/step-2.html", + duration: 500, + }], + }, + finalResult: { + result: [{ + provider: "OpenAI", + source_url: "https://openai.com/api/pricing", + evidence_quote: "OpenAI official pricing", + agent_browser_actions: [ + "visit_url_tool: https://openai.com/api/pricing", + ], + }], + }, + }; + }, + }, + }); + + const output = await box.firstRun({ + sourceUrl: "https://openai.com/api/pricing", + datasetGoalPrompt: context.description, + datasetSchema: browserSchema, + runCaps: { + maxAgentSteps: 8, + maxDurationSeconds: 120, + captureHtml: true, + captureScreenshots: true, + }, + }); + + assert.equal(output.runtimeResult.rows.length, 1); + assert.equal(output.runtimeResult.rows[0]?.evidence[0]?.quote, "OpenAI official pricing"); + assert.equal(output.replayReadiness.status, "ready"); + assert.ok(output.playwrightScript); + assert.ok(output.trace.artifactRefs.some((artifact) => artifact.kind === "screenshot")); + assert.ok(output.trace.artifactRefs.some((artifact) => artifact.kind === "html")); +}); + +test("TinyFish trace normalization redacts streaming URLs from SSE data", () => { + const trace = normalizeTinyFishRecordedTrace({ + sourceUrl: "https://openai.com/api/pricing", + goal: "Collect pricing.", + runId: "run-redacted", + status: "COMPLETED", + sseEvents: [{ + type: "PROGRESS", + purpose: "Click pricing.", + streaming_url: "https://agent.tinyfish.ai/private-preview", + timestamp: "2026-05-24T00:00:00.000Z", + }], + runDetail: { + run_id: "run-redacted", + status: "COMPLETED", + steps: [{ + id: "step-1", + action: "Navigate to source page.", + status: "COMPLETED", + }], + }, + finalResult: { result: [] }, + }); + + assert.equal(trace.sseEvents[0]?.message, "Click pricing."); + assert.equal(trace.sseEvents[0]?.data?.streaming_url, undefined); + assert.equal(trace.normalizedBrowserActions[0]?.url, "https://openai.com/api/pricing"); +}); + +test("BrowserActionBox replay returns candidate rows without calling TinyFish Agent", async () => { + let tinyFishCalls = 0; + let replayCalls = 0; + const script = scriptArtifact("console.log('replay');"); + const box = new BrowserActionBox({ + tinyFishClient: { + async runAgent() { + tinyFishCalls += 1; + throw new Error("TinyFish should not run during replay"); + }, + }, + async runPlaywrightScript() { + replayCalls += 1; + return { + agentCompatibleResult: agentCompatibleRows(), + trace: { + status: "succeeded", + steps: [{ + kind: "browser", + label: "playwright-replay", + status: "succeeded", + }], + }, + }; + }, + }); + + const output = await box.replay(replayInput(script)); + + assert.equal(output.replayStatus, "replay_succeeded"); + assert.equal(output.runtimeResult?.rows.length, 1); + assert.equal(tinyFishCalls, 0); + assert.equal(replayCalls, 1); +}); + +test("BrowserActionBox repair is one-shot and only emits repaired script after validation passes", async () => { + const calls: string[] = []; + const script = scriptArtifact("throw new Error('stale selector');"); + const repaired = scriptArtifact("console.log('repaired');"); + const box = new BrowserActionBox({ + tinyFishClient: { + async runAgent() { + throw new Error("TinyFish should not run during replay repair"); + }, + }, + async runPlaywrightScript({ script: currentScript }) { + calls.push(currentScript.code); + if (currentScript.code.includes("stale selector")) { + return { + agentCompatibleResult: null, + error: "locator button.old timed out", + trace: { + status: "failed", + failedStepIndex: 1, + failedAction: "click old button", + currentUrl: "https://openai.com/api/pricing", + }, + }; + } + return { + agentCompatibleResult: agentCompatibleRows(), + trace: { status: "succeeded" }, + }; + }, + async repairPlaywrightScript() { + return repaired; + }, + }); + + const output = await box.replay(replayInput(script)); + + assert.equal(output.replayStatus, "repair_promoted"); + assert.equal(output.repairedPlaywrightScript?.code, repaired.code); + assert.deepEqual(calls, [script.code, repaired.code]); +}); + +test("local Playwright replay runner executes a script and extracts rows", { + skip: !localChromiumExecutable(), +}, async () => { + const sourceUrl = "https://example.com/releases"; + const datasetSchema = { + columns: [ + { name: "post_title", required: true }, + { name: "post_url", required: true }, + { name: "evidence_quote", required: true }, + ], + }; + const script = createPlaywrightScriptArtifact({ + sourceUrl, + datasetGoalPrompt: "Collect product releases with titles, URLs, and evidence.", + datasetSchema, + code: ` + export async function runDatasetRecipe(context) { + await context.page.setContent(\` +
+ Alpha product release May 1, 2026 + Beta product release May 2, 2026 +
+ \`); + return { rows: [] }; + } + `, + status: "promoted", + createdAt: "2026-05-24T00:00:00.000Z", + }); + const runner = createLocalPlaywrightReplayRunner({ + executablePath: localChromiumExecutable(), + }); + + const output = await runner({ + sourceUrl, + datasetGoalPrompt: "Collect product releases with titles, URLs, and evidence.", + datasetSchema, + currentPlaywrightScript: script, + script, + previousSuccessfulOutputProfile: { + fieldsPreviouslyRetrieved: ["post_title", "post_url", "evidence_quote"], + rowCountRange: { min: 2 }, + sourceUrls: [sourceUrl], + evidenceRequired: true, + }, + runCaps: { + maxReplayAttempts: 1, + maxRepairAttempts: 1, + timeoutMs: 15_000, + }, + }); + + assert.equal(output.error, undefined); + assert.equal(output.trace?.status, "succeeded"); + assert.equal( + validateReplayAgentCompatibleResult({ + agentCompatibleResult: output.agentCompatibleResult, + profile: { + fieldsPreviouslyRetrieved: ["post_title", "post_url", "evidence_quote"], + rowCountRange: { min: 2 }, + sourceUrls: [sourceUrl], + evidenceRequired: true, + }, + }).isValid, + true + ); +}); + +test("local Playwright replay runner extracts current page evidence when links are absent", { + skip: !localChromiumExecutable(), +}, async () => { + const sourceUrl = "https://example.com/releases"; + const datasetSchema = { + columns: [ + { name: "page_title", required: true }, + { name: "source_url", required: true }, + { name: "evidence_quote", required: true }, + ], + }; + const script = createPlaywrightScriptArtifact({ + sourceUrl, + datasetGoalPrompt: "Collect page title, URL, and visible evidence.", + datasetSchema, + code: ` + export async function runDatasetRecipe(context) { + await context.page.setContent(\` +
+

Example release notes

+

Visible release evidence from the current public page.

+
+ \`); + return { rows: [] }; + } + `, + status: "promoted", + createdAt: "2026-05-24T00:00:00.000Z", + }); + const runner = createLocalPlaywrightReplayRunner({ + executablePath: localChromiumExecutable(), + }); + + const output = await runner({ + sourceUrl, + datasetGoalPrompt: "Collect page title, URL, and visible evidence.", + datasetSchema, + currentPlaywrightScript: script, + script, + previousSuccessfulOutputProfile: { + fieldsPreviouslyRetrieved: ["page_title", "source_url", "evidence_quote"], + rowCountRange: { min: 1 }, + sourceUrls: [sourceUrl], + evidenceRequired: true, + }, + runCaps: { + maxReplayAttempts: 1, + maxRepairAttempts: 1, + timeoutMs: 15_000, + }, + }); + + assert.equal(output.error, undefined); + assert.equal( + validateReplayAgentCompatibleResult({ + agentCompatibleResult: output.agentCompatibleResult, + profile: { + fieldsPreviouslyRetrieved: ["page_title", "source_url", "evidence_quote"], + rowCountRange: { min: 1 }, + sourceUrls: [sourceUrl], + evidenceRequired: true, + }, + }).isValid, + true + ); +}); + +test("deterministic Playwright repair retargets generated script URLs to the source URL", async () => { + const repair = createDeterministicPlaywrightRepair(); + const broken = createPlaywrightScriptArtifact({ + sourceUrl: "https://example.com/releases", + datasetGoalPrompt: context.description, + datasetSchema: browserSchema, + code: ` + const browserActions = [{"action":"navigate","url":"https://example.invalid/broken"}]; + const sourceUrls = ["https://example.invalid/broken"]; + export async function runDatasetRecipe() { return { rows: [], sourceUrls }; } + `, + status: "promoted", + createdAt: "2026-05-24T00:00:00.000Z", + }); + + const repaired = await repair({ + ...replayInput(broken), + sourceUrl: "https://example.com/releases", + failedReplay: { + status: "failed", + startedAt: "2026-05-24T00:00:00.000Z", + completedAt: "2026-05-24T00:00:01.000Z", + scriptId: broken.scriptId, + sourceUrl: "https://example.com/releases", + currentUrl: "https://example.invalid/broken", + error: "navigation failed", + diagnostics: ["script failure"], + steps: [], + }, + diagnostics: ["script failure"], + }); + + assert.ok(repaired); + assert.match(repaired.code, /https:\/\/example\.com\/releases/); + assert.doesNotMatch(repaired.code, /example\.invalid/); +}); + +test("replay validation and classification distinguish broken scripts from validation failures", () => { + assert.deepEqual( + validateReplayAgentCompatibleResult({ + agentCompatibleResult: { records: [] }, + profile: { + fieldsPreviouslyRetrieved: ["provider"], + rowCountRange: { min: 1 }, + sourceUrls: ["https://openai.com/api/pricing"], + evidenceRequired: true, + }, + }), + { + isValid: false, + issues: [ + "Replay returned 0 row(s), below previous minimum 1.", + "Replay missed previously retrieved field(s): provider.", + "Replay returned no evidence-backed rows.", + ], + } + ); + + assert.equal( + classifyReplayFailure({ + replayTrace: { + status: "failed", + startedAt: "2026-05-24T00:00:00.000Z", + completedAt: "2026-05-24T00:00:01.000Z", + scriptId: "script", + sourceUrl: "https://example.com", + error: "locator timed out", + diagnostics: [], + steps: [], + }, + validationIssues: [], + }), + "script failure" + ); + assert.equal( + classifyReplayFailure({ + replayTrace: { + status: "failed", + startedAt: "2026-05-24T00:00:00.000Z", + completedAt: "2026-05-24T00:00:01.000Z", + scriptId: "script", + sourceUrl: "https://example.com", + error: "Captcha required", + diagnostics: [], + steps: [], + }, + validationIssues: [], + }), + "blocked/captcha/auth wall" + ); +}); + +function replayInput(script: ReturnType) { + return { + sourceUrl: "https://openai.com/api/pricing", + datasetGoalPrompt: context.description, + datasetSchema: browserSchema, + currentPlaywrightScript: script, + previousSuccessfulOutputProfile: { + fieldsPreviouslyRetrieved: ["provider", "source_url", "evidence_quote"], + rowCountRange: { min: 1 }, + sourceUrls: ["https://openai.com/api/pricing"], + evidenceRequired: true, + }, + runCaps: { + maxReplayAttempts: 1 as const, + maxRepairAttempts: 1 as const, + timeoutMs: 30_000, + }, + }; +} + +function scriptArtifact(code: string) { + return createPlaywrightScriptArtifact({ + sourceUrl: "https://openai.com/api/pricing", + datasetGoalPrompt: context.description, + datasetSchema: browserSchema, + code, + status: "promoted", + createdAt: "2026-05-24T00:00:00.000Z", + }); +} + +function agentCompatibleRows() { + return { + records: [{ + provider: "OpenAI", + source_url: "https://openai.com/api/pricing", + evidence_quote: "OpenAI official pricing", + evidence: [{ + field: "provider", + url: "https://openai.com/api/pricing", + quote: "OpenAI official pricing", + }], + }], + }; +} + +function localChromiumExecutable(): string | undefined { + return [ + process.env.POPULATE_PLAYWRIGHT_EXECUTABLE_PATH, + "/usr/bin/chromium-browser", + "/usr/bin/chromium", + "/Applications/Google Chrome for Testing.app/Contents/MacOS/Google Chrome for Testing", + "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", + ].find((candidate): candidate is string => Boolean(candidate && existsSync(candidate))); +} diff --git a/backend/test/populate-runtime.test.ts b/backend/test/populate-runtime.test.ts index 168f825..ae44307 100644 --- a/backend/test/populate-runtime.test.ts +++ b/backend/test/populate-runtime.test.ts @@ -1,6 +1,7 @@ import assert from "node:assert/strict"; import { test } from "node:test"; +import { BrowserActionBox } from "../src/pipeline/populate-browser-action-box.js"; import { runPopulateRuntime } from "../src/pipeline/populate-runtime.js"; interface ToolLike { @@ -180,6 +181,199 @@ test("populate runtime accepts structured fallback rows backed by captured sourc assert.deepEqual(result.validationIssues, []); }); +test("populate runtime can pre-rank and fetch planned sources before agent work", async () => { + const calls: string[] = []; + const result = await runPopulateRuntime({ + context, + sourcePlanner: { + enabled: true, + fetchLimit: 1, + }, + webTools: { + search: async ({ query }) => { + calls.push(`search:${query}`); + return [ + { + title: "Forum copy", + snippet: "OpenAI pricing discussion", + url: "https://reddit.com/r/openai/comments/pricing", + }, + { + title: "OpenAI API Pricing", + snippet: "Official API pricing page.", + url: "https://openai.com/api/pricing", + }, + ]; + }, + fetch: async ({ url }) => { + calls.push(`fetch:${url}`); + return { + title: "OpenAI API Pricing", + text: "Official API pricing page.", + }; + }, + }, + agentRunner: async () => ({ + rows: [{ + cells: { + entity_name: "OpenAI", + latest_post_title: "OpenAI API Pricing", + source_url: "https://openai.com/api/pricing", + evidence_quote: "Official API pricing page.", + }, + sourceUrls: ["https://openai.com/api/pricing"], + evidence: [{ + columnName: "latest_post_title", + sourceUrl: "https://openai.com/api/pricing", + quote: "Official API pricing page.", + }], + }], + }), + }); + + assert.ok(calls.some((call) => call.startsWith("search:"))); + assert.deepEqual( + calls.filter((call) => call.startsWith("fetch:")), + ["fetch:https://openai.com/api/pricing"] + ); + assert.equal(result.rows.length, 1); + assert.equal(result.metrics.searchCalls, 1); + assert.equal(result.metrics.fetchCalls, 1); + assert.ok(result.debug?.processTrace.steps.some((step) => + step.label === "source-planner-search" + )); +}); + +test("populate runtime plans searches from user prompt before durable recipe instructions", async () => { + const searchQueries: string[] = []; + + await runPopulateRuntime({ + context: { + ...context, + description: [ + "nyc big techs that are hiring", + "", + "Durable recipe instructions:", + "Use search_web before fetch_page unless an official source URL is already obvious.", + "Prefer official docs, pricing, blog, product, or company pages over third-party summaries.", + ].join("\n"), + columns: [ + { + name: "Company Name", + type: "text", + description: "The official name of the big tech company.", + }, + { + name: "Careers Page URL", + type: "url", + description: "Direct URL to the company's careers page.", + nullable: true, + }, + ], + }, + sourcePlanner: { + enabled: true, + fetchLimit: 0, + }, + webTools: { + search: async ({ query }) => { + searchQueries.push(query); + return []; + }, + fetch: async () => { + throw new Error("fetch should not run with fetchLimit 0"); + }, + }, + agentRunner: async () => ({ rows: [] }), + }); + + assert.deepEqual(searchQueries, [ + "nyc big techs that are hiring official source", + ]); +}); + +test("populate runtime calls BrowserActionBox for browser-heavy fetched sources", async () => { + let browserActionBoxCalls = 0; + const browserActionBox = new BrowserActionBox({ + tinyFishClient: { + async runAgent() { + browserActionBoxCalls += 1; + return { + runId: "run-browser-heavy", + status: "COMPLETED", + runDetail: { + run_id: "run-browser-heavy", + status: "COMPLETED", + steps: [{ + action: "navigate", + status: "completed", + url: "https://example.com/locator", + }, { + action: "type", + status: "completed", + target_text: "Search", + value: "OpenAI", + url: "https://example.com/locator", + }], + }, + finalResult: { + records: [{ + entity_name: "OpenAI", + latest_post_title: "OpenAI locator result", + source_url: "https://example.com/locator", + evidence_quote: "OpenAI locator result", + evidence: [{ + field: "latest_post_title", + url: "https://example.com/locator", + quote: "OpenAI locator result", + }], + }], + agent_browser_actions: [{ + action: "type", + url: "https://example.com/locator", + target_text: "Search", + value_description: "redacted typed value", + }], + }, + }; + }, + }, + }); + + const result = await runPopulateRuntime({ + context, + browserActionBox, + sourcePlanner: { + enabled: true, + fetchLimit: 1, + }, + webTools: { + search: async () => [ + { + title: "Example locator", + snippet: "Search and filter current entries.", + url: "https://example.com/locator", + }, + ], + fetch: async () => ({ + title: "Example locator", + text: "Enter your search term and submit the form to see current entries.", + }), + }, + agentRunner: async () => ({ rows: [] }), + }); + + assert.equal(browserActionBoxCalls, 1); + assert.equal(result.rows.length, 1); + assert.equal(result.rows[0]?.cells.latest_post_title, "OpenAI locator result"); + assert.ok(result.debug?.processTrace.steps.some((step) => + step.label === "tinyfish-agent-run" + )); + assert.ok(result.debug?.diagnosticArtifacts?.some((artifact) => + artifact.kind === "tinyfish-trace" + )); +}); + test("populate runtime builds simple title URL rows from captured sources", async () => { const result = await runPopulateRuntime({ context: { diff --git a/backend/test/populate-self-healing.test.ts b/backend/test/populate-self-healing.test.ts index df6d41a..1d54666 100644 --- a/backend/test/populate-self-healing.test.ts +++ b/backend/test/populate-self-healing.test.ts @@ -18,6 +18,10 @@ import type { PopulateRecipeRunResult, PopulateRecipeRuntime, } from "../src/pipeline/populate-self-healing.js"; +import { + createPlaywrightScriptArtifact, + populateRuntimeResultFromAgentCompatibleResult, +} from "../src/pipeline/populate-browser-action-box.js"; import type { DatasetContext } from "../src/pipeline/populate.js"; const context: DatasetContext = { @@ -263,6 +267,101 @@ test("Mastra populate recipe runtime keeps Playwright candidate scripts complete assertJavaScriptModuleParses(scriptArtifact.content); }); +test("Mastra populate recipe runtime replays promoted Playwright script before agent spend", async () => { + let replayCalls = 0; + let populateCalls = 0; + const promotedScript = createPlaywrightScriptArtifact({ + sourceUrl: "https://openai.com/news", + datasetGoalPrompt: context.description, + datasetSchema: { + columns: context.columns.map((column) => ({ + name: column.name, + required: true, + })), + }, + code: "export async function runDatasetRecipe() { return { records: [] }; }", + status: "promoted", + createdAt: "2026-05-24T00:00:00.000Z", + }); + const runtime = new MastraPopulateRecipeRuntime({ + runPopulate: async () => { + populateCalls += 1; + throw new Error("normal populate should not run before replay"); + }, + browserActionBox: { + async replay(input) { + replayCalls += 1; + const agentCompatibleResult = { + records: [{ + entity_name: "OpenAI", + latest_post_title: "Release notes from OpenAI", + source_url: "https://openai.com/news", + evidence_quote: "Release notes from OpenAI", + evidence: [{ + field: "latest_post_title", + url: "https://openai.com/news", + quote: "Release notes from OpenAI", + }], + }], + }; + return { + agentCompatibleResult, + runtimeResult: populateRuntimeResultFromAgentCompatibleResult({ + agentCompatibleResult, + datasetSchema: input.datasetSchema, + sourceUrl: input.sourceUrl, + replayTrace: { + status: "succeeded", + startedAt: "2026-05-24T00:00:00.000Z", + completedAt: "2026-05-24T00:00:01.000Z", + scriptId: input.currentPlaywrightScript.scriptId, + sourceUrl: input.sourceUrl, + diagnostics: [], + steps: [{ + kind: "browser", + label: "playwright-replay", + status: "succeeded", + }], + }, + diagnosticArtifacts: [{ + kind: "playwright-replay-result", + label: "populate-playwright-replay-result", + content: JSON.stringify({ replayStatus: "replay_succeeded" }), + }], + }), + trace: { + status: "succeeded", + startedAt: "2026-05-24T00:00:00.000Z", + completedAt: "2026-05-24T00:00:01.000Z", + scriptId: input.currentPlaywrightScript.scriptId, + sourceUrl: input.sourceUrl, + diagnostics: [], + steps: [], + }, + replayStatus: "replay_succeeded", + diagnostics: [], + }; + }, + }, + }); + + const run = await runtime.runRecipe({ + recipe: recipe({ + recipeId: "recipe-v1", + playwrightScript: promotedScript, + }), + context, + }); + + assert.equal(replayCalls, 1); + assert.equal(populateCalls, 0); + assert.equal(run.runStatus, "succeeded"); + assert.equal(run.productionValidation.isValid, true); + assert.ok(run.artifacts.some((artifact) => + artifact.kind === "playwright-replay-result" + )); +}); + test("Mastra populate recipe runtime keeps supplemental fetch misses non-blocking", async () => { const runtime = new MastraPopulateRecipeRuntime({ runPopulate: async () => ({ @@ -618,6 +717,69 @@ test("self-healing service repairs a failed active recipe and promotes the candi assert.equal(snapshot.recipes.find((item) => item.recipeId === "repair-v2")?.status, "active"); }); +test("self-healing service does not run a second recipe repair after bounded Playwright repair rejects", async () => { + const store = new InMemoryPopulateRecipeStore(); + const promotedScript = createPlaywrightScriptArtifact({ + sourceUrl: "https://openai.com/news", + datasetGoalPrompt: context.description, + datasetSchema: { + columns: context.columns.map((column) => ({ + name: column.name, + required: true, + })), + }, + code: "export async function runDatasetRecipe() { throw new Error('stale selector'); }", + status: "promoted", + createdAt: "2026-05-24T00:00:00.000Z", + }); + const activeRecipe = { + ...recipe({ + recipeId: "active-playwright-broken", + status: "active", + playwrightScript: promotedScript, + }), + lastValidationScore: 1, + }; + await store.saveRecipe(activeRecipe); + const author = new FakeRecipeAuthor(); + const service = new SelfHealingPopulateRecipeService({ + store, + runtime: new FakePopulateRecipeRuntime({ + "active-playwright-broken": runResult({ + recipe: activeRecipe, + rows: [], + validationIssues: ["BrowserActionBox repair_rejected: locator timed out"], + criticalIssues: ["BrowserActionBox repair_rejected: locator timed out"], + isValid: false, + score: 0, + artifacts: [{ + kind: "playwright-repair-diagnostic", + label: "populate-playwright-repair-diagnostic", + content: JSON.stringify({ + replayStatus: "repair_rejected", + diagnostics: ["locator timed out"], + }), + }], + }), + }), + author, + }); + + const result = await service.tick({ datasetId: context.datasetId, context }); + const snapshot = await store.loadSnapshot(context.datasetId); + + assert.equal(result.action, "candidate_rejected"); + assert.equal(author.repairCalls, 0); + assert.match(result.rejectionReasons.join("\n"), /keeping prior active script/i); + assert.equal( + snapshot.recipes.find((item) => + item.recipeId === "active-playwright-broken" + )?.status, + "active" + ); + assert.equal(snapshot.recipes.some((item) => item.recipeId === "repair-v2"), false); +}); + test("self-healing service rejects valid repairs below active recipe baseline", async () => { const store = new InMemoryPopulateRecipeStore(); const activeRecipe = { @@ -704,17 +866,21 @@ function recipe(input: { version?: number; status?: PopulateRecipe["status"]; runtimeInstructions?: string; + playwrightScript?: PopulateRecipe["playwrightScript"]; }): PopulateRecipe { - return createPopulateRecipe({ - recipeId: input.recipeId, - datasetId: context.datasetId, - version: input.version ?? 1, - status: input.status, - sourceDescription: context.description, - requestedColumns: context.columns.map((column) => column.name), - runtimeInstructions: input.runtimeInstructions, - createdAt: "2026-05-22T00:00:00.000Z", - }); + return { + ...createPopulateRecipe({ + recipeId: input.recipeId, + datasetId: context.datasetId, + version: input.version ?? 1, + status: input.status, + sourceDescription: context.description, + requestedColumns: context.columns.map((column) => column.name), + runtimeInstructions: input.runtimeInstructions, + createdAt: "2026-05-22T00:00:00.000Z", + }), + playwrightScript: input.playwrightScript, + }; } function validRun( diff --git a/backend/test/tinyfish-agent-run.test.ts b/backend/test/tinyfish-agent-run.test.ts index 765f374..b3c3fc6 100644 --- a/backend/test/tinyfish-agent-run.test.ts +++ b/backend/test/tinyfish-agent-run.test.ts @@ -1,7 +1,10 @@ import assert from "node:assert/strict"; import { test } from "node:test"; -import { tinyfishAgentRunResultFromRun } from "../BigSet_Data_Collection_Agent/src/integrations/tinyfish-agent.js"; +import { + pollTinyfishAgentUntilDone, + tinyfishAgentRunResultFromRun, +} from "../BigSet_Data_Collection_Agent/src/integrations/tinyfish-agent.js"; test("TinyFish run normalization keeps safe provenance without streaming URL", () => { const normalized = tinyfishAgentRunResultFromRun({ @@ -115,3 +118,45 @@ test("TinyFish run normalization converts documented run steps to browser action }]); assert.equal(JSON.stringify(normalized).includes("secret-password"), false); }); + +test("TinyFish agent poll timeout races hung run reads and cancels promptly", async () => { + const startedAt = Date.now(); + let pollAttempts = 0; + let cancelAttempts = 0; + + const result = await pollTinyfishAgentUntilDone("run-hung-poll", { + pollTimeoutMs: 40, + pollIntervalMs: 1, + requestTimeoutMs: 10, + readRun: async (_runId, { signal }) => { + pollAttempts += 1; + await new Promise((_resolve, reject) => { + signal.addEventListener( + "abort", + () => + reject( + signal.reason instanceof Error + ? signal.reason + : new Error("poll aborted"), + ), + { once: true }, + ); + }); + }, + cancelRun: async (_runId, { signal }) => { + cancelAttempts += 1; + assert.equal(signal.aborted, false); + }, + }); + + assert.equal(result.status, "TIMEOUT"); + assert.equal(result.run_id, "run-hung-poll"); + assert.match(result.error ?? "", /timed out after 40ms/); + assert.match( + result.error ?? "", + /last poll error: TinyFish Agent poll run-hung-poll timed out after \d+ms/, + ); + assert.equal(cancelAttempts, 1); + assert.ok(pollAttempts >= 1); + assert.ok(Date.now() - startedAt < 300); +}); diff --git a/benchmarks/dataset-agent/README.md b/benchmarks/dataset-agent/README.md index ebea6a1..c9bbd16 100644 --- a/benchmarks/dataset-agent/README.md +++ b/benchmarks/dataset-agent/README.md @@ -59,7 +59,7 @@ source-evidence misses: ```bash COLLECTION_AGENT_ENABLE_AGENT=true \ -COLLECTION_AGENT_POLL_TIMEOUT_MS=480000 \ +COLLECTION_AGENT_POLL_TIMEOUT_MS=1200000 \ COLLECTION_AGENT_PIPELINE_MODULE=./backend/BigSet_Data_Collection_Agent/src/orchestrator/pipeline.ts \ BIGSET_COLLECTION_BENCHMARK_RUNNER_MODULE=./backend/src/pipeline/collection-agent-runner.ts \ node benchmarks/dataset-agent/run-benchmark.mjs \ @@ -177,7 +177,7 @@ actionable browser steps, source anchors, and no Agent-disabled diagnostic. ```bash COLLECTION_AGENT_ENABLE_AGENT=true \ -COLLECTION_AGENT_POLL_TIMEOUT_MS=480000 \ +COLLECTION_AGENT_POLL_TIMEOUT_MS=1200000 \ COLLECTION_AGENT_PIPELINE_MODULE=./backend/BigSet_Data_Collection_Agent/src/orchestrator/pipeline.ts \ BIGSET_COLLECTION_BENCHMARK_RUNNER_MODULE=./backend/src/pipeline/collection-agent-runner.ts \ node benchmarks/dataset-agent/run-benchmark.mjs \ @@ -208,10 +208,9 @@ bash scripts/verify-self-healing-stack.sh --convex-push --dataset-id --commit ``` -The live benchmark and dataset smoke expect required env vars to already be -exported in the shell. They print only missing key names and never print secret -values. The `--convex-push` mode still uses the existing `make convex-push` -target, which requires `frontend/.env.local`. +The live benchmark and dataset smoke load root `.env` when present. They print +only missing key names and never print secret values. The `--convex-push` mode +uses `make convex-push`, which also reads root `.env`. ## Benchmark Env diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 05ab9c7..8dcb087 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -20,16 +20,27 @@ services: build: context: ./backend dockerfile: Dockerfile.dev + env_file: + - .env ports: - "3501:3501" volumes: - ./backend/src:/app/src + - ./backend/BigSet_Data_Collection_Agent:/app/BigSet_Data_Collection_Agent - populate_recipe_data:/app/.bigset environment: CLIENT_ORIGIN: http://localhost:3500 CONVEX_URL: http://convex:3210 PORT: 3501 POPULATE_RECIPE_STORE_DIR: /app/.bigset/populate-recipes + POPULATE_AGENT_RUNTIME: ${POPULATE_AGENT_RUNTIME:-} + POPULATE_COLLECTION_RUNNER_MODULE: ${POPULATE_COLLECTION_RUNNER_MODULE:-} + COLLECTION_AGENT_PIPELINE_MODULE: ${COLLECTION_AGENT_PIPELINE_MODULE:-} + COLLECTION_AGENT_ENABLE_TRIAGE: ${COLLECTION_AGENT_ENABLE_TRIAGE:-} + COLLECTION_AGENT_ENABLE_AGENT: ${COLLECTION_AGENT_ENABLE_AGENT:-} + COLLECTION_AGENT_POLL_TIMEOUT_MS: ${COLLECTION_AGENT_POLL_TIMEOUT_MS:-} + AGENT_POLL_TIMEOUT_MS: ${AGENT_POLL_TIMEOUT_MS:-} + AGENT_REQUEST_TIMEOUT_MS: ${AGENT_REQUEST_TIMEOUT_MS:-} CONVEX_SELF_HOSTED_ADMIN_KEY: ${CONVEX_SELF_HOSTED_ADMIN_KEY:-} CLERK_SECRET_KEY: ${CLERK_SECRET_KEY:-} CLERK_PUBLISHABLE_KEY: ${NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY:-} @@ -43,6 +54,8 @@ services: build: context: ./backend dockerfile: Dockerfile.mastra + env_file: + - .env ports: - "4111:4111" volumes: @@ -54,6 +67,8 @@ services: CONVEX_URL: http://convex:3210 CONVEX_SELF_HOSTED_ADMIN_KEY: ${CONVEX_SELF_HOSTED_ADMIN_KEY:-} TINYFISH_API_KEY: ${TINYFISH_API_KEY:-} + AGENT_POLL_TIMEOUT_MS: ${AGENT_POLL_TIMEOUT_MS:-} + AGENT_REQUEST_TIMEOUT_MS: ${AGENT_REQUEST_TIMEOUT_MS:-} depends_on: convex: condition: service_healthy @@ -62,6 +77,8 @@ services: build: context: ./frontend dockerfile: Dockerfile.dev + env_file: + - .env ports: - "3500:3500" volumes: diff --git a/docs/assets/bigset-populate-target-loop.svg b/docs/assets/bigset-populate-target-loop.svg index 6d65689..31174d7 100644 --- a/docs/assets/bigset-populate-target-loop.svg +++ b/docs/assets/bigset-populate-target-loop.svg @@ -1 +1 @@ -

5. Safe commit + artifacts

4. Self-healing safety layer

3. Mastra orchestration + TinyFish tools

2. Backend /populate

1. Frontend app

no

yes

yes

no

Prompt

Schema review

Dataset page

Visible rows
source URLs + evidence quotes

Populate request

Ownership-safe dataset load

Runtime checks
keys, Convex writer, throttle

TinyFish Search API
search_web

TinyFish Fetch API
fetch_page

Needs browser nav?

TinyFish Agent endpoint
browser actions

Extract candidate rows

Process trace
sources, actions, issues

Load or create recipe

Validate candidate run

Safe to promote?

Row safety cap

Convex internal row writer

Run artifacts
recipe, validation, diagnostics

\ No newline at end of file +

Replay / repair

First run

Source planning

no

yes

yes

no

no

yes

pass

fail

Frontend prompt + dataset page

Backend /populate

Rank sources
triage fetched pages

Browser-heavy page?

TinyFish Search / Fetch

BrowserActionBox
TinyFish Agent + trace recorder

Normalize trace
into browser actions

Draft Playwright script
when readiness is ready

Promoted Playwright script exists

Replay runner configured?

Replay through BrowserActionBox

Diagnostic only
no fake rows

Replay failed?

One bounded repair attempt

Same validation gate

Accepted rows + evidence

Reject run
no direct row writes

\ No newline at end of file diff --git a/docs/data-collection-agent-migration-plan.md b/docs/data-collection-agent-migration-plan.md index 471150d..178a617 100644 --- a/docs/data-collection-agent-migration-plan.md +++ b/docs/data-collection-agent-migration-plan.md @@ -307,7 +307,8 @@ Agent explicitly enabled: ```bash COLLECTION_AGENT_ENABLE_AGENT=true \ -COLLECTION_AGENT_POLL_TIMEOUT_MS=480000 \ +COLLECTION_AGENT_POLL_TIMEOUT_MS=1200000 \ +AGENT_REQUEST_TIMEOUT_MS=15000 \ COLLECTION_AGENT_PIPELINE_MODULE=./backend/BigSet_Data_Collection_Agent/src/orchestrator/pipeline.ts \ BIGSET_COLLECTION_BENCHMARK_RUNNER_MODULE=./backend/src/pipeline/collection-agent-runner.ts \ node benchmarks/dataset-agent/run-benchmark.mjs \ @@ -378,7 +379,9 @@ The BigSet runner keeps TinyFish Agent/browser calls disabled unless `COLLECTION_AGENT_ENABLE_AGENT=true`. This makes cron and benchmark reruns cheap and repeatable first. Agent-enabled runs should also set `COLLECTION_AGENT_POLL_TIMEOUT_MS` or `AGENT_POLL_TIMEOUT_MS` so a browser run -cannot outlive the benchmark/job budget. +cannot outlive the benchmark/job budget. `AGENT_REQUEST_TIMEOUT_MS` caps each +TinyFish Agent queue/poll/cancel HTTP request so one hung `runs.get` call cannot +outlive the app-level poll timeout. Do not switch the default runtime from Mastra to collection until the self-healing-wrapped collection benchmark has better evidence than the current diff --git a/docs/self-healing-data-collection-flow.html b/docs/self-healing-data-collection-flow.html index 353efd7..6ff5c73 100644 --- a/docs/self-healing-data-collection-flow.html +++ b/docs/self-healing-data-collection-flow.html @@ -3,7 +3,7 @@ - BigSet PR67 Populate Flow + BigSet PR67 Self-Healing Flow