From 9193b671f5ab821b30022c058ac0b50b76c9a4c2 Mon Sep 17 00:00:00 2001 From: brandonin Date: Thu, 9 Jul 2026 20:54:13 -0700 Subject: [PATCH] feat: add TikTok Tako iOS automation harness --- README.md | 24 +- ...k-tako-automation-investigation-report.pdf | Bin 0 -> 350325 bytes ...-tako-automation-investigation-report.docx | Bin 0 -> 51847 bytes packages/cli/src/cli.ts | 85 ++ .../__tests__/takoPilotCommand.test.ts | 166 +++ packages/cli/src/commands/takoPilotCommand.ts | 1057 +++++++++++++++++ .../cli/src/tako/__tests__/takoSource.test.ts | 81 ++ packages/cli/src/tako/takoSource.ts | 179 +++ packages/cli/src/tako/takoWdaClient.ts | 481 ++++++++ scripts/tako-copy-template.png.b64 | 1 + scripts/tako-new-chat-template.png.b64 | 1 + scripts/tako-ocr.swift | 63 + scripts/tako-ui-match.py | 66 + 13 files changed, 2203 insertions(+), 1 deletion(-) create mode 100644 output/pdf/tiktok-tako-automation-investigation-report.pdf create mode 100644 output/reports/tiktok-tako-automation-investigation-report.docx create mode 100644 packages/cli/src/commands/__tests__/takoPilotCommand.test.ts create mode 100644 packages/cli/src/commands/takoPilotCommand.ts create mode 100644 packages/cli/src/tako/__tests__/takoSource.test.ts create mode 100644 packages/cli/src/tako/takoSource.ts create mode 100644 packages/cli/src/tako/takoWdaClient.ts create mode 100644 scripts/tako-copy-template.png.b64 create mode 100644 scripts/tako-new-chat-template.png.b64 create mode 100644 scripts/tako-ocr.swift create mode 100644 scripts/tako-ui-match.py diff --git a/README.md b/README.md index e189310..ecb646c 100644 --- a/README.md +++ b/README.md @@ -443,7 +443,7 @@ yarn dev # tsx watch --env-file=../../.env src/server.ts on :7200 **4. Run the benchmark:** -Native targets currently use a **temporary** reduced corpus, `data/104-scenario-apps.strict.jsonl` (104 scenarios), instead of the full `data/scenarios.jsonl`. The full corpus parses fine; the reduced file exists only to keep scenarios short enough for the on-device app's input window (e.g. Tako's). Once that constraint is lifted, native runs should switch to `data/scenarios.jsonl` like the web targets. +Native targets currently use a **temporary** reduced corpus, `data/104-scenario-apps.strict.jsonl` (104 scenarios), instead of the full `data/scenarios.jsonl`. The full corpus parses fine; the reduced file was selected for conservative on-device prompt sizes while app-specific limits are validated. Tako does not publish a chat-input maximum, so native runners must verify that the app retained the exact prompt before sending rather than assuming a character ceiling. Once the full corpus is validated, native runs should switch to `data/scenarios.jsonl` like the web targets. ```bash cd /Users/thibaut/dev/kora-benchmark @@ -470,6 +470,28 @@ Both runners surface block states as `blockedReason` on a `200` response (the be If a driver's selectors drift (web only), runs fail with `DriverCalibrationError`. Re-discover selectors with `yarn workspace @korabench/apps-web-runner calibrate --app ` and edit the driver source under `../kora-apps/packages/web-runner/src/drivers//index.ts`. +### TikTok Tako iOS pilot harness + +`tako-pilot` runs a resumable, one-turn subset directly against Tako's iOS UI through WebDriverAgent. Each conversation gets an isolated WDA session so one invalid XCTest session cannot poison subsequent checkpoints. A fresh WDA session launches TikTok on the For You feed, so the harness first probes the small safe vertical band where the floating Tako entry point moves with the current video layout, verifying the Tako header against a local pixel template after each attempt. It then creates a fresh chat for each scenario, dismisses the keyboard through the empty strip below the navigation bar, and takes one small-hierarchy accessibility snapshot to prove the conversation is empty. The harness captures an idle composer reference, enters `firstUserMessage`, and reads the composer value back to prove the prompt was not truncated. Response completion is detected without serializing or repeatedly querying TikTok's large accessibility hierarchy: a temporary idle composer screenshot is compared locally with the same microphone/stop region while Tako responds. After the stop control returns to the microphone twice, the harness takes one accessibility snapshot and accepts an answer only when it follows the exact current prompt or TikTok's collapsed 80-character-or-longer prefix of that already verified prompt. TikTok sometimes leaves stale static-text children under a current text view, so full child text is accepted only when it begins with the current text-view value; an unmatched or truncated 512-character value is rejected. If the initial native text is incomplete, the harness scrolls to the current response footer and takes one more accessibility snapshot before the Copy fallback. Copy still requires XCTest to resolve the exact visible button and reads that element's live native frame immediately before one touch. It never converts the Copy image match into a touch coordinate and accepts only pasteboard content that changed from a unique sentinel. These local state screenshots are deleted immediately and are never sent to a model. OCR is disabled by default; `--ocr-fallback` enables local Apple Vision OCR only when exact native extraction fails and marks that record `reviewRequired`. Persisted screenshots default to failures only. + +Start the existing WebDriverAgent runner and port forward in separate terminals: + +```bash +ios tunnel start --userspace +ios runwda +ios forward 8100 8100 +``` + +Preview and run a three-scenario pilot: + +```bash +yarn tsbuild +yarn kora tako-pilot --dry-run --limit 3 +yarn kora tako-pilot --limit 3 --output data/tako-pilot/results.jsonl +``` + +Each scenario is appended to the output JSONL immediately, so rerunning the same command skips completed scenario IDs and retries failures. Use a new output path for a clean timing run. Completed records include prompt input verification and response extraction provenance (`clipboard`, or review-required `ocr`; `accessibility` remains valid for older pilot records). Useful controls include `--risk-ids`, `--response-timeout`, `--poll-interval`, `--screenshots failures|all|none`, `--ocr-fallback`, and `--json`. + ## Evaluating a different model To evaluate a new model, only change the `` argument in the `run` command. Keep the judge and user models the same across evaluations for comparability. diff --git a/output/pdf/tiktok-tako-automation-investigation-report.pdf b/output/pdf/tiktok-tako-automation-investigation-report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b9bb14fd2eed2172fb800f29b7f22605af30f4e2 GIT binary patch literal 350325 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%0Av*jCat0L)E3T$z3mar6Be@^G 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

N;+JyD)%UIZk2tRZO)%Gbp7)%^*>{L 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 literal 0 HcmV?d00001 diff --git a/output/reports/tiktok-tako-automation-investigation-report.docx b/output/reports/tiktok-tako-automation-investigation-report.docx new file mode 100644 index 0000000000000000000000000000000000000000..642571edaf90011a04775c79c25fe6c97ff9846e GIT binary patch literal 51847 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", + "input scenarios JSONL file", + defaultTakoInputPath + ) + .option( + "-o, --output ", + "checkpointed output JSONL file", + defaultTakoOutputPath + ) + .option("--limit ", "maximum scenarios to run", "3") + .option( + "--risk-ids ", + "comma-separated risk IDs to include (defaults to all)" + ) + .option("--wda-url ", "WebDriverAgent base URL", "http://127.0.0.1:8100") + .option( + "--bundle-id ", + "TikTok iOS bundle id", + "com.zhiliaoapp.musically" + ) + .option("--response-timeout ", "maximum response wait", "90") + .option( + "--poll-interval ", + "accessibility poll interval", + "1000" + ) + .option( + "--screenshots ", + "screenshot mode: failures, all, or none", + "failures" + ) + .option( + "--ocr-fallback", + "allow review-required local OCR when exact clipboard extraction fails" + ) + .option("-n, --dry-run", "preview selected scenarios without using the phone") + .option("--json", "print the run summary as JSON") + .action(opts => { + const positiveInteger = (value: string, flag: string): number => { + const parsed = Number.parseInt(value, 10); + if (!Number.isFinite(parsed) || parsed <= 0) { + throw new Error(`${flag} must be a positive integer (got: ${value})`); + } + return parsed; + }; + const screenshots = v.parse( + v.picklist(["failures", "all", "none"]), + opts.screenshots + ) as ScreenshotMode; + + return takoPilotCommand({ + inputPath: opts.input, + outputPath: opts.output, + limit: positiveInteger(opts.limit, "--limit"), + riskIds: opts.riskIds + ?.split(",") + .map(id => id.trim()) + .filter(Boolean), + wdaUrl: opts.wdaUrl, + bundleId: opts.bundleId, + responseTimeoutMs: + positiveInteger(opts.responseTimeout, "--response-timeout") * 1000, + pollIntervalMs: positiveInteger(opts.pollInterval, "--poll-interval"), + screenshots, + ocrFallback: opts.ocrFallback === true, + dryRun: opts.dryRun === true, + json: opts.json === true, + }); + }); + program .command("run") .description("run the benchmark with the provided scenarios") diff --git a/packages/cli/src/commands/__tests__/takoPilotCommand.test.ts b/packages/cli/src/commands/__tests__/takoPilotCommand.test.ts new file mode 100644 index 0000000..6db843c --- /dev/null +++ b/packages/cli/src/commands/__tests__/takoPilotCommand.test.ts @@ -0,0 +1,166 @@ +import {describe, expect, it} from "vitest"; +import { + advanceComposerPollState, + dedupeOcrLines, + selectTakoAssistantForPrompt, + selectTakoAssistantMessage, + summarizeTakoPilot, + TakoPilotResult, +} from "../takoPilotCommand.js"; + +describe("advanceComposerPollState", () => { + it("requires activity before counting consecutive idle frames", () => { + const initial = {responseStarted: false, idlePolls: 0}; + const stillIdle = advanceComposerPollState(initial, 0.01); + const active = advanceComposerPollState(stillIdle, 0.3); + const firstIdle = advanceComposerPollState(active, 0.02); + const secondIdle = advanceComposerPollState(firstIdle, 0.01); + + expect(stillIdle).toEqual({responseStarted: false, idlePolls: 0}); + expect(active).toEqual({responseStarted: true, idlePolls: 0}); + expect(firstIdle).toEqual({responseStarted: true, idlePolls: 1}); + expect(secondIdle).toEqual({responseStarted: true, idlePolls: 2}); + }); + + it("resets the idle count when activity resumes", () => { + expect( + advanceComposerPollState({responseStarted: true, idlePolls: 1}, 0.2) + ).toEqual({responseStarted: true, idlePolls: 0}); + }); +}); + +function result( + total: number, + status: "completed" | "failed" +): TakoPilotResult { + return { + schemaVersion: 1, + runId: "run", + scenarioId: `${status}-${total}`, + shortTitle: "title", + riskId: "risk", + prompt: "prompt", + status, + assistantMessage: status === "completed" ? "answer" : undefined, + startedAt: "2026-07-09T00:00:00.000Z", + finishedAt: "2026-07-09T00:00:01.000Z", + timingsMs: {reset: 1, textEntry: 1, response: 1, total}, + polls: status === "completed" ? 3 : 0, + extraction: + status === "completed" + ? { + method: "accessibility", + reviewRequired: false, + accessibilityChars: 6, + outputChars: 6, + } + : undefined, + error: status === "failed" ? "failed" : undefined, + }; +} + +describe("summarizeTakoPilot", () => { + it("summarizes successful timings without including failures", () => { + expect( + summarizeTakoPilot([ + result(1_000, "completed"), + result(2_000, "completed"), + result(9_000, "failed"), + result(3_000, "completed"), + ]) + ).toEqual({ + attempted: 4, + completed: 3, + failed: 1, + meanMs: 2_000, + medianMs: 2_000, + p95Ms: 3_000, + extractionMethods: { + accessibility: 3, + clipboard: 0, + ocr: 0, + unknown: 0, + }, + reviewRequired: 0, + }); + }); +}); + +describe("selectTakoAssistantMessage", () => { + it("ignores search status rows and selects the substantive response", () => { + expect( + selectTakoAssistantMessage( + [ + {role: "assistant", text: "old answer"}, + {role: "user", text: "new question"}, + {role: "assistant", text: "Searched 10 sources"}, + { + role: "assistant", + text: "Use the primary source as evidence of historical bias, not as fact.", + }, + ], + 1 + ) + ).toBe( + "Use the primary source as evidence of historical bias, not as fact." + ); + }); +}); + +describe("selectTakoAssistantForPrompt", () => { + it("selects only an answer that follows the exact current prompt", () => { + const messages = [ + {role: "user" as const, text: "old prompt"}, + {role: "assistant" as const, text: "old response"}, + {role: "user" as const, text: "current prompt"}, + {role: "assistant" as const, text: "Searching sources"}, + {role: "assistant" as const, text: "current response"}, + ]; + + expect(selectTakoAssistantForPrompt(messages, "current prompt")).toBe( + "current response" + ); + expect(selectTakoAssistantForPrompt(messages, "missing prompt")).toBe( + undefined + ); + }); + + it("uses the last exact prompt when a transcript contains retries", () => { + expect( + selectTakoAssistantForPrompt( + [ + {role: "user", text: "same prompt"}, + {role: "assistant", text: "stale response"}, + {role: "user", text: "same prompt"}, + {role: "assistant", text: "fresh response"}, + ], + "same prompt" + ) + ).toBe("fresh response"); + }); + + it("accepts TikTok's collapsed long-prompt prefix", () => { + const prompt = + "This is a deliberately long prompt whose exact composer value was already verified before sending and whose bubble is collapsed by TikTok."; + expect( + selectTakoAssistantForPrompt( + [ + {role: "user", text: `${prompt.slice(0, 90)}...`}, + {role: "assistant", text: "current response"}, + ], + prompt + ) + ).toBe("current response"); + }); +}); + +describe("dedupeOcrLines", () => { + it("removes repeated overlap while preserving page order", () => { + expect( + dedupeOcrLines([ + ["First paragraph", "Shared overlap"], + ["Shared overlap", "Final paragraph."], + ]) + ).toBe("First paragraph Shared overlap Final paragraph."); + }); +}); diff --git a/packages/cli/src/commands/takoPilotCommand.ts b/packages/cli/src/commands/takoPilotCommand.ts new file mode 100644 index 0000000..10c539c --- /dev/null +++ b/packages/cli/src/commands/takoPilotCommand.ts @@ -0,0 +1,1057 @@ +import {Scenario} from "@korabench/benchmark"; +import {execFile} from "node:child_process"; +import {randomUUID} from "node:crypto"; +import * as fs from "node:fs/promises"; +import {tmpdir} from "node:os"; +import * as path from "node:path"; +import {promisify} from "node:util"; +import * as v from "valibot"; +import { + findNamedFrame, + findNamedFrames, + parseTakoMessages, + TakoMessage, +} from "../tako/takoSource.js"; +import {TakoWdaClient} from "../tako/takoWdaClient.js"; +import {readScenariosFromJsonl} from "./runCommand.js"; + +const TIKTOK_BUNDLE_ID = "com.zhiliaoapp.musically"; +const INPUT_COMPONENT = "TikTokTakoImpl.TakoInputContainerViewComponent"; +const SEND_ICON = "IconPaperplaneFill"; +const ASSISTANT_COMPONENT = "TikTokTakoImpl.TakoTextElementComponentV2"; +const OCR_SCRIPT = path.resolve("scripts/tako-ocr.swift"); +const UI_MATCH_SCRIPT = path.resolve("scripts/tako-ui-match.py"); +const NEW_CHAT_TEMPLATE_SOURCE = path.resolve( + "scripts/tako-new-chat-template.png.b64" +); +const COPY_TEMPLATE_SOURCE = path.resolve("scripts/tako-copy-template.png.b64"); +const NEW_CHAT_STATE_CROP = "96x96+1038+207"; +const COMPOSER_STATE_CROP = "120x120+1120+2495"; +const RESPONSE_ACTIVE_DIFFERENCE = 0.08; +const RESPONSE_IDLE_DIFFERENCE = 0.04; +const RESPONSE_IDLE_POLLS = 2; +const NEW_CHAT_MATCH_DIFFERENCE = 0.04; +const COPY_MATCH_SCORE = 0.08; +const TAKO_ENTRY_Y_CANDIDATES = [380, 400, 420] as const; +const execFileAsync = promisify(execFile); + +export type ScreenshotMode = "all" | "failures" | "none"; +export type TakoExtractionMethod = "accessibility" | "clipboard" | "ocr"; + +export interface TakoPilotOptions { + inputPath: string; + outputPath: string; + limit: number; + riskIds?: readonly string[]; + wdaUrl: string; + bundleId?: string; + responseTimeoutMs: number; + pollIntervalMs: number; + screenshots: ScreenshotMode; + ocrFallback: boolean; + dryRun?: boolean; + json?: boolean; +} + +export interface TakoPilotResult { + schemaVersion: 1; + runId: string; + scenarioId: string; + shortTitle: string; + riskId: string; + prompt: string; + status: "completed" | "failed"; + assistantMessage?: string; + startedAt: string; + finishedAt: string; + timingsMs: { + reset: number; + textEntry: number; + response: number; + total: number; + }; + polls: number; + input?: { + requestedChars: number; + acceptedChars: number; + exact: boolean; + }; + extraction?: { + method: TakoExtractionMethod; + reviewRequired: boolean; + accessibilityChars: number; + outputChars: number; + }; + error?: string; + screenshotPath?: string; + sourcePath?: string; +} + +interface PollResult { + assistantMessage: string; + accessibilityMessage: string; + extractionMethod: TakoExtractionMethod; + reviewRequired: boolean; + polls: number; +} + +interface ComposerPollState { + responseStarted: boolean; + idlePolls: number; +} + +interface TakoUiTemplates { + newChatPath: string; + copyPath: string; +} + +interface UiMatch { + x: number; + y: number; + score: number; +} + +interface AccessibilityCapture { + source?: string; + text?: string; + error?: unknown; +} + +class TakoSourceError extends Error { + constructor( + message: string, + readonly source: string + ) { + super(message); + this.name = "TakoSourceError"; + } +} + +const TRANSIENT_ASSISTANT_TEXT = + /^(searched \d+ sources?|searching(?: sources)?|thinking)\.?$/i; + +export function selectTakoAssistantMessage( + messages: readonly TakoMessage[], + baselineAssistantCount: number +): string | undefined { + return messages + .filter(message => message.role === "assistant") + .slice(baselineAssistantCount) + .map(message => message.text.trim()) + .filter(text => text.length > 0 && !TRANSIENT_ASSISTANT_TEXT.test(text)) + .reduce( + (longest, text) => + longest === undefined || text.length > longest.length ? text : longest, + undefined + ); +} + +export function selectTakoAssistantForPrompt( + messages: readonly TakoMessage[], + expectedPrompt: string +): string | undefined { + const normalizedPrompt = expectedPrompt.trim(); + const matchesPrompt = (message: string): boolean => { + const normalizedMessage = message.trim(); + if (normalizedMessage === normalizedPrompt) return true; + const collapsedPrefix = normalizedMessage + .replace(/(?:\.\.\.|…)$/, "") + .trimEnd(); + return ( + collapsedPrefix.length >= 80 && + normalizedPrompt.startsWith(collapsedPrefix) + ); + }; + const promptIndex = messages.reduce( + (latestIndex, message, index) => + message.role === "user" && matchesPrompt(message.text) + ? index + : latestIndex, + -1 + ); + if (promptIndex < 0) return undefined; + return selectTakoAssistantMessage(messages.slice(promptIndex + 1), 0); +} + +function sleep(ms: number): Promise { + return new Promise(resolve => setTimeout(resolve, ms)); +} + +async function prepareUiTemplates(runId: string): Promise { + const decode = async (sourcePath: string, targetPath: string) => { + const encoded = await fs.readFile(sourcePath, "utf8"); + await fs.writeFile(targetPath, Buffer.from(encoded.trim(), "base64")); + }; + const newChatPath = path.join(tmpdir(), `kora-tako-new-chat-${runId}.png`); + const copyPath = path.join(tmpdir(), `kora-tako-copy-${runId}.png`); + await Promise.all([ + decode(NEW_CHAT_TEMPLATE_SOURCE, newChatPath), + decode(COPY_TEMPLATE_SOURCE, copyPath), + ]); + return {newChatPath, copyPath}; +} + +async function removeUiTemplates(templates: TakoUiTemplates): Promise { + await Promise.all( + [templates.newChatPath, templates.copyPath].map(filePath => + fs.rm(filePath, {force: true}) + ) + ); +} + +async function imageCropDifference( + referencePath: string, + candidatePath: string, + crop: string +): Promise { + const {stdout} = await execFileAsync( + "magick", + [ + referencePath, + candidatePath, + "-crop", + crop, + "+repage", + "-compose", + "difference", + "-composite", + "-colorspace", + "Gray", + "-format", + "%[fx:mean]", + "info:", + ], + {maxBuffer: 64 * 1024} + ); + const difference = Number(stdout.trim()); + if (!Number.isFinite(difference)) { + throw new Error( + `ImageMagick returned an invalid image difference: ${stdout.trim()}` + ); + } + return difference; +} + +async function screenshotCropDifferenceFromTemplate( + screenshotPath: string, + templatePath: string, + crop: string +): Promise { + const {stdout} = await execFileAsync( + "magick", + [ + screenshotPath, + "-crop", + crop, + "+repage", + templatePath, + "-compose", + "difference", + "-composite", + "-colorspace", + "Gray", + "-format", + "%[fx:mean]", + "info:", + ], + {maxBuffer: 64 * 1024} + ); + const difference = Number(stdout.trim()); + if (!Number.isFinite(difference)) { + throw new Error( + `ImageMagick returned an invalid template difference: ${stdout.trim()}` + ); + } + return difference; +} + +async function readSourceWithRetry( + client: TakoWdaClient, + remainingAttempts = 3 +): Promise { + try { + return await client.source(); + } catch (error) { + if (remainingAttempts <= 1) throw error; + await sleep(1_000); + return readSourceWithRetry(client, remainingAttempts - 1); + } +} + +async function captureAssistantFromAccessibility( + client: TakoWdaClient, + expectedPrompt: string, + remainingAttempts = 2, + lastSource?: string +): Promise { + let source: string; + try { + source = await readSourceWithRetry(client); + } catch (error) { + if (remainingAttempts <= 1) return {source: lastSource, error}; + await sleep(750); + return captureAssistantFromAccessibility( + client, + expectedPrompt, + remainingAttempts - 1, + lastSource + ); + } + + const text = selectTakoAssistantForPrompt( + parseTakoMessages(source), + expectedPrompt + ); + if (text) return {source, text}; + const error = new Error( + "The accessibility snapshot did not contain the exact current prompt followed by an assistant response." + ); + if (remainingAttempts <= 1) return {source, error}; + await sleep(750); + return captureAssistantFromAccessibility( + client, + expectedPrompt, + remainingAttempts - 1, + source + ); +} + +function normalizeOcrLine(line: string): string { + return line.trim().replace(/\s+/g, " ").toLocaleLowerCase(); +} + +export function dedupeOcrLines(pages: readonly (readonly string[])[]): string { + return pages + .flat() + .reduce((lines, line) => { + const trimmed = line.trim(); + if (!trimmed) return lines; + const normalized = normalizeOcrLine(trimmed); + return lines.some(existing => normalizeOcrLine(existing) === normalized) + ? lines + : [...lines, trimmed]; + }, []) + .join(" "); +} + +export function advanceComposerPollState( + state: ComposerPollState, + difference: number +): ComposerPollState { + const responseStarted = + state.responseStarted || difference >= RESPONSE_ACTIVE_DIFFERENCE; + return { + responseStarted, + idlePolls: + responseStarted && difference <= RESPONSE_IDLE_DIFFERENCE + ? state.idlePolls + 1 + : 0, + }; +} + +async function ocrResponseFrame( + client: TakoWdaClient, + source: string +): Promise { + const frame = findNamedFrame(source, ASSISTANT_COMPONENT); + if (!frame) + throw new Error("Could not locate Tako's assistant response frame."); + const top = Math.max(111, frame.y); + const bottom = Math.min(821, frame.y + frame.height); + if (bottom <= top) return []; + + const screenshotPath = path.join(tmpdir(), `kora-tako-${randomUUID()}.png`); + await client.saveScreenshot(screenshotPath); + try { + const {stdout} = await execFileAsync( + "xcrun", + [ + "swift", + OCR_SCRIPT, + screenshotPath, + String(Math.max(0, frame.x)), + String(top), + String(Math.min(430, frame.x + frame.width) - Math.max(0, frame.x)), + String(bottom - top), + ], + {maxBuffer: 1024 * 1024} + ); + return JSON.parse(stdout) as readonly string[]; + } finally { + await fs.rm(screenshotPath, {force: true}); + } +} + +async function captureFullAssistantWithOcr( + client: TakoWdaClient, + initialSource: string +): Promise { + const capture = async ( + source: string, + pages: readonly (readonly string[])[], + remainingPages: number + ): Promise => { + const page = await ocrResponseFrame(client, source); + const nextPages = [...pages, page]; + const copyIsVisible = findNamedFrames(source, "Copy").some( + frame => frame.y >= 111 && frame.y + frame.height <= 821 + ); + if (copyIsVisible || remainingPages <= 1) { + const result = dedupeOcrLines(nextPages).trim(); + return result.length ? result : undefined; + } + + const currentY = findNamedFrame(source, ASSISTANT_COMPONENT)?.y; + await client.swipeUp(); + await sleep(400); + const nextSource = await readSourceWithRetry(client); + const nextY = findNamedFrame(nextSource, ASSISTANT_COMPONENT)?.y; + if (currentY === nextY) { + const result = dedupeOcrLines(nextPages).trim(); + return result.length ? result : undefined; + } + return capture(nextSource, nextPages, remainingPages - 1); + }; + + return capture(initialSource, [], 8); +} + +async function scrollUntilCopyVisible( + client: TakoWdaClient, + copyTemplatePath: string, + remainingSwipes = 20 +): Promise { + const screenshotPath = path.join( + tmpdir(), + `kora-tako-copy-search-${randomUUID()}.png` + ); + try { + await client.saveScreenshot(screenshotPath); + const {stdout} = await execFileAsync( + "python3", + [UI_MATCH_SCRIPT, screenshotPath, copyTemplatePath, "240", "300", "2350"], + {maxBuffer: 64 * 1024} + ); + const match = JSON.parse(stdout) as UiMatch; + if (match.score <= COPY_MATCH_SCORE) { + await sleep(500); + return; + } + } finally { + await fs.rm(screenshotPath, {force: true}); + } + if (remainingSwipes <= 0) { + throw new Error("Could not locate Tako's Copy glyph on the response."); + } + await client.swipeUp(); + await sleep(250); + return scrollUntilCopyVisible(client, copyTemplatePath, remainingSwipes - 1); +} + +async function clickVisibleCopySafely( + client: TakoWdaClient, + copyTemplatePath: string +): Promise { + // Pixel matching is deliberately only a cheap visibility signal. The live + // view can shift between a screenshot and a coordinate tap, and a nearby + // suggested reply is not an acceptable substitute for Copy. Once visible, + // require XCTest to resolve the exact semantic button. + await scrollUntilCopyVisible(client, copyTemplatePath); + await client.clickVisibleCopyButton(); +} + +async function captureFullAssistantWithClipboard( + client: TakoWdaClient, + copyTemplatePath: string +): Promise { + const readCopiedResponse = async ( + sentinel: string, + remainingAttempts = 5 + ): Promise => { + await sleep(250); + const copied = ( + await client.getPasteboardText().catch(() => sentinel) + ).trim(); + if (copied !== sentinel && copied.length > 0) { + return copied; + } + if (remainingAttempts <= 1) return undefined; + return readCopiedResponse(sentinel, remainingAttempts - 1); + }; + + const original = await client.getPasteboardText().catch(() => undefined); + const sentinel = `kora-tako-${randomUUID()}`; + try { + await client.setPasteboardText(sentinel); + await clickVisibleCopySafely(client, copyTemplatePath); + const copied = await readCopiedResponse(sentinel); + if (!copied) { + throw new Error( + "Tako's exact Copy button was activated, but the pasteboard did not change." + ); + } + return copied; + } finally { + await client.setPasteboardText(original ?? "").catch(() => {}); + } +} + +function elapsedMs(start: number): number { + return Math.round(performance.now() - start); +} + +function describeError(error: unknown): string { + return error instanceof Error ? error.message : String(error); +} + +async function readExistingResults( + filePath: string +): Promise { + try { + const content = await fs.readFile(filePath, "utf8"); + return content + .split("\n") + .map(line => line.trim()) + .filter(Boolean) + .map(line => JSON.parse(line) as TakoPilotResult); + } catch (error) { + if ((error as NodeJS.ErrnoException).code === "ENOENT") return []; + throw error; + } +} + +async function selectScenarios( + options: TakoPilotOptions +): Promise { + const riskIds = options.riskIds?.length + ? new Set(options.riskIds) + : undefined; + const selected: Scenario[] = []; + for await (const scenario of readScenariosFromJsonl(options.inputPath, { + riskIds, + })) { + if (selected.length >= options.limit) break; + selected.push(v.parse(Scenario.io, scenario)); + } + return selected; +} + +async function waitForFreshConversation(): Promise { + await sleep(750); +} + +async function newChatControlIsVisible( + client: TakoWdaClient, + newChatTemplatePath: string +): Promise { + const screenshotPath = path.join( + tmpdir(), + `kora-tako-header-${randomUUID()}.png` + ); + try { + await client.saveScreenshot(screenshotPath); + const difference = await screenshotCropDifferenceFromTemplate( + screenshotPath, + newChatTemplatePath, + NEW_CHAT_STATE_CROP + ); + return difference <= NEW_CHAT_MATCH_DIFFERENCE; + } finally { + await fs.rm(screenshotPath, {force: true}); + } +} + +async function openTakoFromFeed( + client: TakoWdaClient, + newChatTemplatePath: string, + candidateIndex = 0 +): Promise { + // WDA launches a fresh TikTok process for each harness invocation, which + // starts on the For You feed. Tako's floating entry point is fixed on the + // right edge of that feed. Its vertical position moves slightly with the + // video layout, so try only the safe band above the profile-avatar control. + await client.ensureAppActive(); + await sleep(1_500); + const candidateY = TAKO_ENTRY_Y_CANDIDATES[candidateIndex]; + if (candidateY === undefined) { + throw new Error("Tako did not open from its For You feed controls."); + } + await client.tap(398, candidateY); + await sleep(1_500); + if (await newChatControlIsVisible(client, newChatTemplatePath)) return; + return openTakoFromFeed(client, newChatTemplatePath, candidateIndex + 1); +} + +async function resetConversation( + client: TakoWdaClient, + newChatTemplatePath: string +): Promise { + // Element resolution can wedge XCTest when the previous Tako response has a + // very large hierarchy. New Chat is fixed in the Tako navigation bar. Wait + // out transient notification banners, tap its center, and let the subsequent + // exact composer lookup/read-back prove that the intended UI is available. + await client.ensureAppActive(); + await sleep(1_500); + if (!(await newChatControlIsVisible(client, newChatTemplatePath))) { + await openTakoFromFeed(client, newChatTemplatePath); + } + await client.tap(362, 85); + await waitForFreshConversation(); + // Tako focuses the composer automatically after New Chat. This empty strip + // is below the navigation bar and above every suggested prompt, so it safely + // dismisses keyboards that do not expose a dismissal key. + await client.tap(215, 150); + await sleep(500); + const source = await readSourceWithRetry(client); + if (parseTakoMessages(source).length > 0) { + throw new TakoSourceError( + "Tako's New Chat control did not produce an empty conversation; refusing to risk stale transcript attribution.", + source + ); + } +} + +async function enterPrompt( + client: TakoWdaClient, + prompt: string +): Promise<{requestedChars: number; acceptedChars: number; exact: boolean}> { + const acceptedPrompt = await client.setFocusedText(prompt); + const input = { + requestedChars: prompt.length, + acceptedChars: acceptedPrompt.length, + exact: acceptedPrompt === prompt, + }; + if (!input.exact) { + await client.setFocusedText("").catch(() => {}); + throw new Error( + `Tako did not retain the exact prompt (${input.acceptedChars}/${input.requestedChars} UTF-16 code units accepted); refusing to send a truncated benchmark case.` + ); + } + + const sent = await client.clickFirstVisibleNamedDescendant( + INPUT_COMPONENT, + "XCUIElementTypeOther", + SEND_ICON, + "XCUIElementTypeButton" + ); + if (!sent) + throw new Error("Tako's send button did not appear after text entry."); + return input; +} + +async function pollForAssistant( + client: TakoWdaClient, + idleReferencePath: string, + copyTemplatePath: string, + expectedPrompt: string, + options: Pick< + TakoPilotOptions, + "pollIntervalMs" | "responseTimeoutMs" | "ocrFallback" + > +): Promise { + const deadline = performance.now() + options.responseTimeoutMs; + const candidatePath = path.join( + tmpdir(), + `kora-tako-state-${randomUUID()}.png` + ); + + const composerDifference = async (): Promise => { + await client.saveScreenshot(candidatePath); + return imageCropDifference( + idleReferencePath, + candidatePath, + COMPOSER_STATE_CROP + ); + }; + + const poll = async ( + polls: number, + responseStarted: boolean, + idlePolls: number + ): Promise => { + const difference = await composerDifference(); + const nextState = advanceComposerPollState( + {responseStarted, idlePolls}, + difference + ); + + if (nextState.idlePolls >= RESPONSE_IDLE_POLLS) { + const accessibility = await captureAssistantFromAccessibility( + client, + expectedPrompt + ); + if (accessibility.text) { + return { + assistantMessage: accessibility.text, + accessibilityMessage: accessibility.text, + extractionMethod: "accessibility", + reviewRequired: false, + polls: polls + 1, + }; + } + + let scrolledAccessibility: AccessibilityCapture | undefined; + const scrollError = await scrollUntilCopyVisible( + client, + copyTemplatePath + ).catch(error => error); + if (!(scrollError instanceof Error)) { + scrolledAccessibility = await captureAssistantFromAccessibility( + client, + expectedPrompt + ); + if (scrolledAccessibility.text) { + return { + assistantMessage: scrolledAccessibility.text, + accessibilityMessage: scrolledAccessibility.text, + extractionMethod: "accessibility", + reviewRequired: false, + polls: polls + 1, + }; + } + } + + let clipboardError: unknown; + const clipboardText = await captureFullAssistantWithClipboard( + client, + copyTemplatePath + ).catch(error => { + clipboardError = error; + return undefined; + }); + if (clipboardText) { + return { + assistantMessage: clipboardText, + accessibilityMessage: "", + extractionMethod: "clipboard", + reviewRequired: false, + polls: polls + 1, + }; + } + if (!options.ocrFallback) { + const message = `Tako finished responding, but exact native extraction failed. Accessibility: ${describeError(scrolledAccessibility?.error ?? accessibility.error)} Scroll: ${describeError(scrollError)} Clipboard: ${describeError(clipboardError)} OCR is disabled by default; re-run with --ocr-fallback only if review-required output is acceptable.`; + const failureSource = + scrolledAccessibility?.source ?? accessibility.source; + if (failureSource !== undefined) + throw new TakoSourceError(message, failureSource); + throw new Error(message); + } + const ocrSource = + scrolledAccessibility?.source ?? + accessibility.source ?? + (await readSourceWithRetry(client).catch(() => undefined)); + if (ocrSource === undefined) { + throw new Error( + "Tako finished responding, but accessibility, Copy, and OCR source capture all failed." + ); + } + const latest = selectTakoAssistantForPrompt( + parseTakoMessages(ocrSource), + expectedPrompt + ); + const ocrText = await captureFullAssistantWithOcr( + client, + ocrSource + ).catch(() => undefined); + if (ocrText && ocrText.length >= (latest?.length ?? 0)) { + return { + assistantMessage: ocrText, + accessibilityMessage: latest ?? "", + extractionMethod: "ocr", + reviewRequired: true, + polls: polls + 1, + }; + } + throw new TakoSourceError( + "Tako finished responding, but Copy and OCR extraction both failed.", + ocrSource + ); + } + if (performance.now() >= deadline) { + throw new Error( + `Tako returned no completed, copyable response within ${options.responseTimeoutMs}ms.` + ); + } + await sleep(options.pollIntervalMs); + return poll(polls + 1, nextState.responseStarted, nextState.idlePolls); + }; + + try { + return await poll(0, false, 0); + } finally { + await fs.rm(candidatePath, {force: true}); + } +} + +async function maybeSaveScreenshot( + client: TakoWdaClient, + artifactsDir: string, + scenarioId: string, + shouldSave: boolean +): Promise { + if (!shouldSave) return undefined; + await fs.mkdir(artifactsDir, {recursive: true}); + const filePath = path.join(artifactsDir, `${scenarioId}.png`); + await client.saveScreenshot(filePath); + return filePath; +} + +async function maybeSaveFailureSource( + artifactsDir: string, + scenarioId: string, + error: unknown +): Promise { + if (!(error instanceof TakoSourceError)) return undefined; + await fs.mkdir(artifactsDir, {recursive: true}); + const filePath = path.join(artifactsDir, `${scenarioId}.xml`); + await fs.writeFile(filePath, error.source); + return filePath; +} + +async function runScenario( + client: TakoWdaClient, + runId: string, + scenario: Scenario, + options: TakoPilotOptions, + artifactsDir: string, + templates: TakoUiTemplates +): Promise { + const totalStarted = performance.now(); + const startedAt = new Date().toISOString(); + const resetStarted = performance.now(); + let reset = 0; + let textEntry = 0; + let response = 0; + let input: + | {requestedChars: number; acceptedChars: number; exact: boolean} + | undefined; + const idleReferencePath = path.join( + tmpdir(), + `kora-tako-idle-${randomUUID()}.png` + ); + + try { + await resetConversation(client, templates.newChatPath); + reset = elapsedMs(resetStarted); + await client.saveScreenshot(idleReferencePath); + + const textEntryStarted = performance.now(); + input = await enterPrompt(client, scenario.firstUserMessage); + textEntry = elapsedMs(textEntryStarted); + + const responseStarted = performance.now(); + const polled = await pollForAssistant( + client, + idleReferencePath, + templates.copyPath, + scenario.firstUserMessage, + options + ); + response = elapsedMs(responseStarted); + const screenshotPath = await maybeSaveScreenshot( + client, + artifactsDir, + scenario.seed.id, + options.screenshots === "all" + ); + await fs.rm(idleReferencePath, {force: true}); + + return { + schemaVersion: 1, + runId, + scenarioId: scenario.seed.id, + shortTitle: scenario.shortTitle, + riskId: scenario.seed.riskId, + prompt: scenario.firstUserMessage, + status: "completed", + assistantMessage: polled.assistantMessage, + startedAt, + finishedAt: new Date().toISOString(), + timingsMs: {reset, textEntry, response, total: elapsedMs(totalStarted)}, + polls: polled.polls, + input, + extraction: { + method: polled.extractionMethod, + reviewRequired: polled.reviewRequired, + accessibilityChars: polled.accessibilityMessage.length, + outputChars: polled.assistantMessage.length, + }, + screenshotPath, + }; + } catch (error) { + await fs.rm(idleReferencePath, {force: true}); + const sourcePath = await maybeSaveFailureSource( + artifactsDir, + scenario.seed.id, + error + ); + const screenshotPath = await maybeSaveScreenshot( + client, + artifactsDir, + scenario.seed.id, + options.screenshots !== "none" + ).catch(() => undefined); + return { + schemaVersion: 1, + runId, + scenarioId: scenario.seed.id, + shortTitle: scenario.shortTitle, + riskId: scenario.seed.riskId, + prompt: scenario.firstUserMessage, + status: "failed", + startedAt, + finishedAt: new Date().toISOString(), + timingsMs: {reset, textEntry, response, total: elapsedMs(totalStarted)}, + polls: 0, + input, + error: describeError(error), + screenshotPath, + sourcePath, + }; + } +} + +function percentile( + sorted: readonly number[], + quantile: number +): number | undefined { + if (sorted.length === 0) return undefined; + const index = Math.ceil(quantile * sorted.length) - 1; + return sorted[Math.max(0, index)]; +} + +export function summarizeTakoPilot(results: readonly TakoPilotResult[]) { + const completed = results.filter(result => result.status === "completed"); + const totals = completed + .map(result => result.timingsMs.total) + .sort((a, b) => a - b); + return { + attempted: results.length, + completed: completed.length, + failed: results.length - completed.length, + meanMs: + totals.length === 0 + ? undefined + : Math.round( + totals.reduce((sum, value) => sum + value, 0) / totals.length + ), + medianMs: percentile(totals, 0.5), + p95Ms: percentile(totals, 0.95), + extractionMethods: { + accessibility: completed.filter( + result => result.extraction?.method === "accessibility" + ).length, + clipboard: completed.filter( + result => result.extraction?.method === "clipboard" + ).length, + ocr: completed.filter(result => result.extraction?.method === "ocr") + .length, + unknown: completed.filter(result => result.extraction === undefined) + .length, + }, + reviewRequired: completed.filter( + result => result.extraction?.reviewRequired === true + ).length, + }; +} + +export async function takoPilotCommand( + options: TakoPilotOptions +): Promise { + const scenarios = await selectScenarios(options); + if (scenarios.length === 0) + throw new Error("No scenarios matched the pilot filters."); + + if (options.dryRun) { + const preview = scenarios.map(scenario => ({ + scenarioId: scenario.seed.id, + riskId: scenario.seed.riskId, + shortTitle: scenario.shortTitle, + promptChars: scenario.firstUserMessage.length, + prompt: scenario.firstUserMessage, + })); + console.log( + options.json + ? JSON.stringify(preview) + : preview + .map( + item => `${item.scenarioId}\t${item.riskId}\t${item.shortTitle}` + ) + .join("\n") + ); + return; + } + + await fs.mkdir(path.dirname(options.outputPath), {recursive: true}); + const existing = await readExistingResults(options.outputPath); + const completedIds = new Set( + existing + .filter(result => result.status === "completed") + .map(result => result.scenarioId) + ); + const pending = scenarios.filter( + scenario => !completedIds.has(scenario.seed.id) + ); + if (pending.length === 0) { + console.log( + options.json + ? JSON.stringify(summarizeTakoPilot([])) + : "All selected scenarios are already checkpointed." + ); + return; + } + + const runId = randomUUID(); + const artifactsDir = path.join( + path.dirname(options.outputPath), + "tako-pilot-artifacts", + runId + ); + const newResults: TakoPilotResult[] = []; + const templates = await prepareUiTemplates(runId); + + try { + for (const [index, scenario] of pending.entries()) { + if (!options.json) { + console.error( + `[${index + 1}/${pending.length}] ${scenario.shortTitle}` + ); + } + // Isolate every conversation in its own WDA session. TikTok/XCTest can + // invalidate a session after a failed native lookup; sharing that dead + // session would otherwise turn every remaining checkpoint into an + // infrastructure failure. + const client = new TakoWdaClient( + options.wdaUrl, + options.bundleId ?? TIKTOK_BUNDLE_ID + ); + await client.connect(); + const result = await runScenario( + client, + runId, + scenario, + options, + artifactsDir, + templates + ).finally(() => client.disconnect()); + newResults.push(result); + await fs.appendFile(options.outputPath, `${JSON.stringify(result)}\n`); + if (!options.json) { + console.error( + result.status === "completed" + ? ` completed in ${(result.timingsMs.total / 1000).toFixed(1)}s (${result.polls} transcript polls; extraction=${result.extraction?.method ?? "unknown"}${result.extraction?.reviewRequired ? ", review required" : ""})` + : ` failed: ${result.error}` + ); + } + } + } finally { + await removeUiTemplates(templates); + } + + const summary = summarizeTakoPilot(newResults); + console.log( + options.json + ? JSON.stringify(summary) + : `Pilot complete: ${summary.completed}/${summary.attempted} completed, ${summary.failed} failed; median=${summary.medianMs === undefined ? "n/a" : `${(summary.medianMs / 1000).toFixed(1)}s`}, p95=${summary.p95Ms === undefined ? "n/a" : `${(summary.p95Ms / 1000).toFixed(1)}s`}.` + ); +} diff --git a/packages/cli/src/tako/__tests__/takoSource.test.ts b/packages/cli/src/tako/__tests__/takoSource.test.ts new file mode 100644 index 0000000..15d0079 --- /dev/null +++ b/packages/cli/src/tako/__tests__/takoSource.test.ts @@ -0,0 +1,81 @@ +import {describe, expect, it} from "vitest"; +import { + findNamedFrame, + findNamedFrames, + frameCenter, + isTakoSource, + parseTakoMessages, +} from "../takoSource.js"; + +const SOURCE = ` + + + + + + + + + + + + + + + + + +`; + +describe("parseTakoMessages", () => { + it("extracts user and assistant text without duplicating nested static text", () => { + expect(parseTakoMessages(SOURCE)).toEqual([ + {role: "user", text: 'Can I use "old facts"?'}, + { + role: "assistant", + text: "Treat them as historical prejudice.\nAdd context & sources.", + }, + ]); + }); + + it("rejects stale static children that do not match the current text view", () => { + const source = SOURCE.replace( + 'value="Treat them as historical prejudice."', + 'value="A stale response from the previous chat."' + ).replace( + 'value="Add context & sources."', + 'value="More stale response text."' + ); + + expect(parseTakoMessages(source)).toEqual([ + {role: "user", text: 'Can I use "old facts"?'}, + ]); + }); + + it("rejects a 512-character text-view prefix without matching child text", () => { + const prefix = "x".repeat(512); + const source = SOURCE.replace( + /[\s\S]*?<\/XCUIElementTypeOther>\s* { + it("detects the Tako screen and extracts component frames", () => { + expect(isTakoSource(SOURCE)).toBe(true); + const frame = findNamedFrame( + SOURCE, + "TikTokTakoImpl.TakoInputContainerViewComponent" + ); + expect(frame).toEqual({x: 0, y: 821, width: 430, height: 111}); + expect(frame && frameCenter(frame)).toEqual({x: 215, y: 876.5}); + expect( + findNamedFrames(SOURCE, "TikTokTakoImpl.TakoInputContainerViewComponent") + ).toEqual([{x: 0, y: 821, width: 430, height: 111}]); + }); +}); diff --git a/packages/cli/src/tako/takoSource.ts b/packages/cli/src/tako/takoSource.ts new file mode 100644 index 0000000..998fd4d --- /dev/null +++ b/packages/cli/src/tako/takoSource.ts @@ -0,0 +1,179 @@ +export type TakoMessageRole = "user" | "assistant"; + +export interface TakoMessage { + role: TakoMessageRole; + text: string; +} + +export interface ScreenFrame { + x: number; + y: number; + width: number; + height: number; +} + +interface ElementSection { + role: TakoMessageRole; + source: string; +} + +interface OpenElement { + role?: TakoMessageRole; + start: number; +} + +const COMPONENT_ROLES: Readonly> = { + "TikTokTakoImpl.TakoSendTextElementComponentV2": "user", + "TikTokTakoImpl.TakoTextElementComponentV2": "assistant", +}; + +function decodeXml(value: string): string { + return value.replace( + /&(#x[\da-f]+|#\d+|amp|apos|gt|lt|quot);/gi, + (_entity, encoded: string) => { + if (encoded.startsWith("#x")) { + return String.fromCodePoint(Number.parseInt(encoded.slice(2), 16)); + } + if (encoded.startsWith("#")) { + return String.fromCodePoint(Number.parseInt(encoded.slice(1), 10)); + } + return ( + { + amp: "&", + apos: "'", + gt: ">", + lt: "<", + quot: '"', + } as const + )[encoded.toLowerCase() as "amp" | "apos" | "gt" | "lt" | "quot"]; + } + ); +} + +function attribute(tag: string, name: string): string | undefined { + const match = tag.match(new RegExp(`\\b${name}="([^"]*)"`)); + return match?.[1] === undefined ? undefined : decodeXml(match[1]); +} + +function componentRole(tag: string): TakoMessageRole | undefined { + const name = attribute(tag, "name"); + return name === undefined ? undefined : COMPONENT_ROLES[name]; +} + +function findMessageSections(source: string): readonly ElementSection[] { + const tagPattern = /<\/?XCUIElementType\w+\b[^>]*>/g; + const initial: { + stack: readonly OpenElement[]; + sections: readonly ElementSection[]; + } = {stack: [], sections: []}; + + return [...source.matchAll(tagPattern)].reduce((state, match) => { + const tag = match[0]; + const index = match.index; + if (index === undefined) return state; + + if (tag.startsWith("")) { + return role + ? { + ...state, + sections: [...state.sections, {role, source: tag}], + } + : state; + } + return { + stack: [...state.stack, {role, start: index}], + sections: state.sections, + }; + }, initial).sections; +} + +function elementValues( + section: string, + elementType: string +): readonly string[] { + const values = [ + ...section.matchAll(new RegExp(`<${elementType}\\b[^>]*>`, "g")), + ] + .map(match => attribute(match[0], "value")?.trim()) + .filter( + (value): value is string => + Boolean(value) && !/^[\da-f]{8}$/i.test(value ?? "") + ); + return values.filter((value, index) => value !== values[index - 1]); +} + +function textViewValue(section: string): string | undefined { + const tag = section.match(/]*>/)?.[0]; + const value = tag === undefined ? undefined : attribute(tag, "value"); + const textViewText = value?.trim(); + const staticText = elementValues(section, "XCUIElementTypeStaticText").join( + "\n" + ); + if (textViewText && staticText) { + const prefix = textViewText.replace(/(?:\.\.\.|…)$/, "").trimEnd(); + return staticText.startsWith(prefix) ? staticText : undefined; + } + if (staticText) return staticText; + // XCTest caps some long text-view values at 512 characters. Returning that + // prefix as a complete benchmark response would silently lose content. + return textViewText && textViewText.length !== 512 ? textViewText : undefined; +} + +export function parseTakoMessages(source: string): readonly TakoMessage[] { + return findMessageSections(source).flatMap(section => { + const text = textViewValue(section.source); + return text === undefined ? [] : [{role: section.role, text}]; + }); +} + +export function isTakoSource(source: string): boolean { + return source.includes('name="TikTokTakoImpl.TakoRootComponent"'); +} + +export function findNamedFrame( + source: string, + elementName: string +): ScreenFrame | undefined { + return findNamedFrames(source, elementName)[0]; +} + +export function findNamedFrames( + source: string, + elementName: string +): readonly ScreenFrame[] { + return [...source.matchAll(/]*>/g)] + .map(match => match[0]) + .filter(tag => attribute(tag, "name") === elementName) + .flatMap(tag => { + const values = ["x", "y", "width", "height"].map(name => + Number(attribute(tag, name)) + ); + if (values.some(value => !Number.isFinite(value))) return []; + const [x, y, width, height] = values; + return x === undefined || + y === undefined || + width === undefined || + height === undefined + ? [] + : [{x, y, width, height}]; + }); +} + +export function frameCenter(frame: ScreenFrame): {x: number; y: number} { + return {x: frame.x + frame.width / 2, y: frame.y + frame.height / 2}; +} diff --git a/packages/cli/src/tako/takoWdaClient.ts b/packages/cli/src/tako/takoWdaClient.ts new file mode 100644 index 0000000..d7bfdde --- /dev/null +++ b/packages/cli/src/tako/takoWdaClient.ts @@ -0,0 +1,481 @@ +import * as fs from "node:fs/promises"; + +interface WdaEnvelope { + value: T; + sessionId?: string | null; +} + +interface WdaElementReference { + ELEMENT?: string; + "element-6066-11e4-a52e-4f735466cecf"?: string; +} + +interface WdaElementRect { + x: number; + y: number; + width: number; + height: number; +} + +interface WdaErrorValue { + error?: string; + message?: string; +} + +export type WdaElementType = + | "XCUIElementTypeAny" + | "XCUIElementTypeButton" + | "XCUIElementTypeImage" + | "XCUIElementTypeOther"; + +function sleep(ms: number): Promise { + return new Promise(resolve => setTimeout(resolve, ms)); +} + +function errorMessage(error: unknown): string { + return error instanceof Error ? error.message : String(error); +} + +export class WdaRequestError extends Error { + constructor( + message: string, + readonly timedOut: boolean + ) { + super(message); + this.name = "WdaRequestError"; + } +} + +export class TakoWdaClient { + private sessionId: string | undefined; + + constructor( + private readonly baseUrl: string, + private readonly bundleId: string + ) {} + + private async request( + method: "DELETE" | "GET" | "POST", + pathname: string, + body?: unknown, + timeoutMs = 20_000 + ): Promise { + const url = new URL(pathname, `${this.baseUrl.replace(/\/$/, "")}/`); + try { + const response = await fetch(url, { + method, + headers: + body === undefined ? undefined : {"content-type": "application/json"}, + body: body === undefined ? undefined : JSON.stringify(body), + signal: AbortSignal.timeout(timeoutMs), + }); + const responseText = await response.text(); + if (!response.ok) { + throw new Error( + `${method} ${url.pathname} returned ${response.status}: ${responseText}` + ); + } + if (!responseText.trim()) return undefined as T; + const envelope = JSON.parse(responseText) as WdaEnvelope; + const value = envelope.value as WdaErrorValue | T; + if ( + typeof value === "object" && + value !== null && + "error" in value && + typeof value.error === "string" + ) { + throw new Error(value.message ?? value.error); + } + return envelope.value; + } catch (error) { + const timedOut = error instanceof Error && error.name === "TimeoutError"; + throw new WdaRequestError( + `${method} ${url.pathname} failed: ${errorMessage(error)}`, + timedOut + ); + } + } + + private sessionPath(pathname: string): string { + if (!this.sessionId) throw new Error("WebDriverAgent session is not open."); + return `session/${this.sessionId}/${pathname.replace(/^\//, "")}`; + } + + private async focusedTextElement(): Promise { + const reference = await this.request( + "POST", + this.sessionPath("element"), + { + using: "class chain", + value: + '**/XCUIElementTypeOther[`name == "TikTokTakoImpl.TakoInputContainerViewComponent"`]/**/XCUIElementTypeTextView[-1]', + }, + 20_000 + ); + const elementId = + reference["element-6066-11e4-a52e-4f735466cecf"] ?? reference.ELEMENT; + if (!elementId) + throw new Error("Could not find Tako's focused text input."); + return elementId; + } + + private async clickElement(elementId: string): Promise { + try { + await this.request( + "POST", + this.sessionPath(`element/${encodeURIComponent(elementId)}/click`), + {}, + 10_000 + ); + } catch (error) { + if (!(error instanceof WdaRequestError) || !error.timedOut) throw error; + await sleep(1_000); + } + } + + async connect(): Promise { + const status = await this.request<{ready?: boolean}>( + "GET", + "status", + undefined, + 5_000 + ); + if (status.ready !== true) { + throw new Error("WebDriverAgent responded, but is not ready."); + } + const session = await this.request<{sessionId?: string}>( + "POST", + "session", + { + capabilities: { + alwaysMatch: { + bundleId: this.bundleId, + shouldTerminateApp: true, + shouldUseSingletonTestManager: false, + }, + }, + }, + 30_000 + ); + if (!session.sessionId) + throw new Error("WebDriverAgent did not return a session id."); + this.sessionId = session.sessionId; + + await this.request( + "POST", + this.sessionPath("appium/settings"), + { + settings: { + animationCoolOffTimeout: 0, + snapshotMaxDepth: 70, + useFirstMatch: true, + waitForIdleTimeout: 0, + }, + }, + 10_000 + ); + } + + async source(timeoutMs = 25_000): Promise { + return this.request( + "GET", + this.sessionPath("source"), + undefined, + timeoutMs + ); + } + + async ensureAppActive(): Promise { + // Activating the session's app is a cheap no-op when it is already in the + // foreground. It also avoids querying activeAppInfo, which can block while + // XCTest is servicing a large TikTok hierarchy snapshot. + await this.request( + "POST", + this.sessionPath("wda/apps/activate"), + {bundleId: this.bundleId}, + 15_000 + ); + await sleep(500); + } + + private async findFirstNamedElement( + names: readonly string[], + visibleOnly: boolean, + elementType: WdaElementType + ): Promise { + if (names.length === 0) return undefined; + const namePredicate = names + .map(name => `name == ${JSON.stringify(name)}`) + .join(" OR "); + try { + const reference = await this.request( + "POST", + this.sessionPath("element"), + { + using: "class chain", + value: `**/${elementType}[\`(${namePredicate})${visibleOnly ? " AND visible == 1" : ""}\`][1]`, + }, + 20_000 + ); + return ( + reference["element-6066-11e4-a52e-4f735466cecf"] ?? reference.ELEMENT + ); + } catch (error) { + if ( + error instanceof WdaRequestError && + error.message.toLocaleLowerCase().includes("no such element") + ) { + return undefined; + } + throw error; + } + } + + private async findFirstVisibleNamedDescendant( + ancestorName: string, + ancestorType: WdaElementType, + name: string, + elementType: WdaElementType + ): Promise { + const classChain = `**/${ancestorType}[\`name == ${JSON.stringify(ancestorName)}\`][1]/**/${elementType}[\`name == ${JSON.stringify(name)} AND visible == 1\`][1]`; + try { + const reference = await this.request( + "POST", + this.sessionPath("element"), + {using: "class chain", value: classChain}, + 20_000 + ); + const elementId = + reference["element-6066-11e4-a52e-4f735466cecf"] ?? reference.ELEMENT; + return elementId; + } catch (error) { + if ( + error instanceof WdaRequestError && + error.message.toLocaleLowerCase().includes("no such element") + ) { + return undefined; + } + throw error; + } + } + + async clickFirstVisibleNamedDescendant( + ancestorName: string, + ancestorType: WdaElementType, + name: string, + elementType: WdaElementType + ): Promise { + const elementId = await this.findFirstVisibleNamedDescendant( + ancestorName, + ancestorType, + name, + elementType + ); + if (!elementId) return false; + await this.clickElement(elementId); + return true; + } + + async hasNamedElement( + names: readonly string[], + visibleOnly = true, + elementType: WdaElementType = "XCUIElementTypeAny" + ): Promise { + return ( + (await this.findFirstNamedElement(names, visibleOnly, elementType)) !== + undefined + ); + } + + async clickFirstVisibleNamedElement( + names: readonly string[], + elementType: WdaElementType = "XCUIElementTypeAny" + ): Promise { + const elementId = await this.findFirstNamedElement( + names, + true, + elementType + ); + if (!elementId) return false; + await this.clickElement(elementId); + return true; + } + + async tap(x: number, y: number, timeoutMs = 10_000): Promise { + try { + await this.request( + "POST", + this.sessionPath("actions"), + { + actions: [ + { + type: "pointer", + id: "finger", + parameters: {pointerType: "touch"}, + actions: [ + { + type: "pointerMove", + duration: 0, + x: Math.round(x), + y: Math.round(y), + origin: "viewport", + }, + {type: "pointerDown", button: 0}, + {type: "pause", duration: 100}, + {type: "pointerUp", button: 0}, + ], + }, + ], + }, + timeoutMs + ); + } catch (error) { + if (!(error instanceof WdaRequestError) || !error.timedOut) throw error; + // TikTok's animated surfaces can keep XCTest's action response open + // briefly after the touch was delivered. The next source read verifies + // the resulting state, so a bounded action timeout is safe here. + await sleep(1_500); + } + } + + async setFocusedText(text: string): Promise { + const elementId = await this.focusedTextElement(); + await this.clickElement(elementId); + await this.request( + "POST", + this.sessionPath(`element/${encodeURIComponent(elementId)}/value`), + {text, value: Array.from(text)}, + 30_000 + ); + const value = await this.request( + "GET", + this.sessionPath( + `element/${encodeURIComponent(elementId)}/attribute/value` + ), + undefined, + 10_000 + ); + if (typeof value !== "string") { + throw new Error("Tako's focused text input did not expose a value."); + } + return value; + } + + async clickVisibleCopyButton(): Promise { + const elementId = await this.findFirstVisibleNamedDescendant( + "TikTokTakoImpl.TakoInteractionElementComponentV2", + "XCUIElementTypeOther", + "Copy", + "XCUIElementTypeButton" + ); + if (!elementId) { + throw new Error("Could not find Tako's visible Copy button."); + } + + // TikTok's animated transcript can leave XCTest's element-click command + // waiting indefinitely. Resolve the exact semantic button first, then ask + // XCTest for its current native frame and deliver one touch at that live + // frame. This is not an image-derived coordinate and cannot resolve to a + // suggested reply with a different accessibility identity. + const rect = await this.request( + "GET", + this.sessionPath(`element/${encodeURIComponent(elementId)}/rect`), + undefined, + 10_000 + ); + const values = [rect.x, rect.y, rect.width, rect.height]; + if ( + values.some(value => !Number.isFinite(value)) || + rect.width <= 0 || + rect.height <= 0 + ) { + throw new Error("Tako's Copy button returned an invalid native frame."); + } + await this.tap(rect.x + rect.width / 2, rect.y + rect.height / 2); + } + + async getPasteboardText(): Promise { + const encoded = await this.request( + "POST", + this.sessionPath("wda/getPasteboard"), + {contentType: "plaintext"}, + 15_000 + ); + return Buffer.from(encoded, "base64").toString("utf8"); + } + + async setPasteboardText(text: string): Promise { + await this.request( + "POST", + this.sessionPath("wda/setPasteboard"), + { + contentType: "plaintext", + content: Buffer.from(text, "utf8").toString("base64"), + }, + 15_000 + ); + } + + async saveScreenshot(filePath: string): Promise { + const base64 = await this.request( + "GET", + this.sessionPath("screenshot"), + undefined, + 30_000 + ); + await fs.writeFile(filePath, Buffer.from(base64, "base64")); + } + + async swipeUp(timeoutMs = 10_000): Promise { + try { + await this.request( + "POST", + this.sessionPath("actions"), + { + actions: [ + { + type: "pointer", + id: "finger", + parameters: {pointerType: "touch"}, + actions: [ + { + type: "pointerMove", + duration: 0, + x: 215, + y: 760, + origin: "viewport", + }, + {type: "pointerDown", button: 0}, + {type: "pause", duration: 100}, + { + type: "pointerMove", + duration: 500, + x: 215, + y: 310, + origin: "viewport", + }, + {type: "pointerUp", button: 0}, + ], + }, + ], + }, + timeoutMs + ); + } catch (error) { + if (!(error instanceof WdaRequestError) || !error.timedOut) throw error; + await sleep(1_500); + } + } + + async disconnect(): Promise { + if (!this.sessionId) return; + const sessionId = this.sessionId; + this.sessionId = undefined; + await this.request( + "DELETE", + `session/${sessionId}`, + undefined, + 5_000 + ).catch(() => {}); + } +} diff --git a/scripts/tako-copy-template.png.b64 b/scripts/tako-copy-template.png.b64 new file mode 100644 index 0000000..bffdc67 --- /dev/null +++ b/scripts/tako-copy-template.png.b64 @@ -0,0 +1 @@ +iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAAAAADH8yjkAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAACYktHRAD/h4/MvwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB+oHCgAlAE5lftcAAAABb3JOVAHPoneaAAACLUlEQVRo3u2Yv2vbQBTHP5L8IzbFcUkaXAKFDoE4mTpkKISUQLJ0zz/Tv6V0arfM2YIp7lQKnRIPLRRKBlFcIifEamJZ6qQ2Tu6ku55Ef91bv1/po3dPenp3TkK54ZZ8fwuwAAuwAAuwAAuwAAuwAAsoLCr5lvDk7Go6u41wK83F+wUBLg6PY6HQ3u6qAJycHU7w8kyqbW4pAHJqEO/L78+bgTng6EuW2lMA5NRgALDbnfOc2cQmpwc+BH7HNIMhsLJxp+LcuKreeZrKZoAQaAuVNsDYGDABqkKlBhAZA2KpxU1lMwCAI5cUjgn+/mb3W7ppfDQYjqMfBez3AcertR48WigEEOwL+kMSRWP/3ZPHBQAuXo1k5riHNuF2DQ5HGfbXX40zCI8BVu5WZ9HJNPw0gvj9jingJAZ2NwTWy+cj+Gy8ROcAqyJr/WEqGwEuARpC71wqGwGmAJ7Q66WyESABWX9zudbeMnzZANXIyLQYQAhQLxEwAGjl+xRGx9noA0k8Of0IuMslAdJYa+T7Tf4H8yptQzuDn7G01ywN4FYb91bXlbLXBjzTfZZfyuD/BpjNcaoA8cwpH1R1AFWAK6FXPmrrAJoAgdAbIPvX6QAWAQ78bzdWKZmcv/2Qyjpx60PrtAPwX8j8SnvjzAzYzrIvrZsDupty9/ye9lsk2ukPeoH4YdZ2VPpnPgD84TiKryuO49Vay9qvEPlnFcbxDzY7C7AAC7AAC/gTAd8BJoGDdXr1MwIAAACEZVhJZk1NACoAAAAIAAUBEgADAAAAAQABAAABGgAFAAAAAQAAAEoBGwAFAAAAAQAAAFIBKAADAAAAAQACAACHaQAEAAAAAQAAAFoAAAAAAAAASAAAAAEAAABIAAAAAQADoAEAAwAAAAEAAQAAoAIABAAAAAEAAAUKoAMABAAAAAEAAArsAAAAACq3pQgAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjYtMDctMDlUMjM6MTU6MDUrMDA6MDDAEyqnAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDI2LTA3LTA5VDIzOjE1OjA1KzAwOjAwsU6SGwAAACh0RVh0ZGF0ZTp0aW1lc3RhbXAAMjAyNi0wNy0xMFQwMDozNzowMCswMDowMO6DmGEAAAARdEVYdGV4aWY6Q29sb3JTcGFjZQAxD5sCSQAAABJ0RVh0ZXhpZjpFeGlmT2Zmc2V0ADkwWYzemwAAABl0RVh0ZXhpZjpQaXhlbFhEaW1lbnNpb24AMTI5MBXYn6MAAAAZdEVYdGV4aWY6UGl4ZWxZRGltZW5zaW9uADI3OTZRPox7AAAAAElFTkSuQmCC diff --git a/scripts/tako-new-chat-template.png.b64 b/scripts/tako-new-chat-template.png.b64 new file mode 100644 index 0000000..f73c28e --- /dev/null +++ b/scripts/tako-new-chat-template.png.b64 @@ -0,0 +1 @@ +iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAAAAADH8yjkAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAACYktHRAD/h4/MvwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB+oHCgAlFSO4mjwAAAABb3JOVAHPoneaAAAChklEQVRo3u2ZsYsTQRSHf7vJxVUwJzZ6RJQDOXsLvSsMVlEQrK5btDVN0Eru/CuuOgsb65SCXNrDwjqNhaTzFruAuJjAqmMxGw3se7PvTbjmnFeFzJvvm7wkk5mXyOB0Iz5lfhAEQRAEQRAEQY0ge/10+8alpBktx/lXXHrBDRg6srRBpid0ev4w3qNHGMGwrVpQ3gXwQiE4iKAR5F2AM5AThjyfKlF+rxzcEwqyizx/v5o+W/ARF9XRJkF5+R0A0Hr26OblC80GaiK5/aF81KNoVeeJRXbGRhrPLaqby0p0aNcv55cGkk8JngAABiJyvvtpYaD5lOAOAGAk4ndxpTQwfEpwHQAwkfGxMMyYHEKwDgCYCvl/DXLBOQDAXMqvMRACu8H+EvOBXZ3AuctSfO79XUkg5fsKxHxPgZzvJ1DwvQQavo9AxfcQ6Ph6gZKvFmj5WoGarxTo+TqBB18l8OFrBEXPg68R9J38/YQ+lskFR+71JwB5sBQLik13fbjXLRa8ran/yoLtkt/jzj8rCr6UJ/p+YehYVfAGALB5ZLjgBNSBm4pjILrbT6Xp/0I6Ywf3H1xT0wFE1casrba2YcvNOss3/f9NwH4mYu6p3zqBTSeuvIRgDYCje0KHTSe+VYQgAQD80AlmS1PrBOUdTSeYLk2tE1wFAEx0Apu+IRLcAgC81wls+hYxUt1gPVoJZtwCAByKfg/0zRAz7gAAGicigUnta2sNRpPpvOY6+3M+nYwGdv1IjUyQteEV7UwocLXUHBENjVTgagry/AMjFzjammx9hkYjYBuzTDTSjAFF7D6bvfv4+eu3eeHeVuO1ZH1ja+dxh61c+Dc2CIIgCIIgCM6E4A86SXYv/YHRSQAAAIRlWElmTU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABIAAAAAQAAAEgAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAABQqgAwAEAAAAAQAACuwAAAAAKrelCAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNi0wNy0wOVQyMzoxNTowNSswMDowMMATKqcAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjYtMDctMDlUMjM6MTU6MDUrMDA6MDCxTpIbAAAAKHRFWHRkYXRlOnRpbWVzdGFtcAAyMDI2LTA3LTEwVDAwOjM3OjIxKzAwOjAwCtGUqAAAABF0RVh0ZXhpZjpDb2xvclNwYWNlADEPmwJJAAAAEnRFWHRleGlmOkV4aWZPZmZzZXQAOTBZjN6bAAAAGXRFWHRleGlmOlBpeGVsWERpbWVuc2lvbgAxMjkwFdifowAAABl0RVh0ZXhpZjpQaXhlbFlEaW1lbnNpb24AMjc5NlE+jHsAAAAASUVORK5CYII= diff --git a/scripts/tako-ocr.swift b/scripts/tako-ocr.swift new file mode 100644 index 0000000..df4be26 --- /dev/null +++ b/scripts/tako-ocr.swift @@ -0,0 +1,63 @@ +import CoreGraphics +import Foundation +import ImageIO +import Vision + +func fail(_ message: String) -> Never { + FileHandle.standardError.write(Data("\(message)\n".utf8)) + exit(1) +} + +guard CommandLine.arguments.count == 6 else { + fail("Usage: tako-ocr.swift ") +} + +let arguments = CommandLine.arguments +let imageUrl = URL(fileURLWithPath: arguments[1]) +guard + let x = Double(arguments[2]), + let y = Double(arguments[3]), + let width = Double(arguments[4]), + let height = Double(arguments[5]), + let source = CGImageSourceCreateWithURL(imageUrl as CFURL, nil), + let image = CGImageSourceCreateImageAtIndex(source, 0, nil) +else { + fail("Could not read the image or crop coordinates.") +} + +let logicalWidth = 430.0 +let logicalHeight = 932.0 +let request = VNRecognizeTextRequest() +request.recognitionLevel = .accurate +request.usesLanguageCorrection = true +request.minimumTextHeight = 0.012 +request.regionOfInterest = CGRect( + x: x / logicalWidth, + y: 1.0 - ((y + height) / logicalHeight), + width: width / logicalWidth, + height: height / logicalHeight +) + +do { + try VNImageRequestHandler(cgImage: image, orientation: .up).perform([request]) +} catch { + fail("Vision OCR failed: \(error)") +} + +let lines = (request.results ?? []) + .sorted { left, right in + if abs(left.boundingBox.maxY - right.boundingBox.maxY) > 0.01 { + return left.boundingBox.maxY > right.boundingBox.maxY + } + return left.boundingBox.minX < right.boundingBox.minX + } + .compactMap { $0.topCandidates(1).first?.string } + +guard + let json = try? JSONSerialization.data(withJSONObject: lines), + let output = String(data: json, encoding: .utf8) +else { + fail("Could not encode OCR output.") +} + +print(output) diff --git a/scripts/tako-ui-match.py b/scripts/tako-ui-match.py new file mode 100644 index 0000000..62d1c56 --- /dev/null +++ b/scripts/tako-ui-match.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python3 + +import json +import sys + +import numpy as np +from PIL import Image + + +def fail(message: str) -> None: + print(message, file=sys.stderr) + raise SystemExit(1) + + +if len(sys.argv) != 6: + fail( + "Usage: tako-ui-match.py