From d18cadb1ab134d1211d86a5c1314f0fe5c2ed9d0 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Sun, 24 May 2026 19:16:03 +0900 Subject: [PATCH] test(ultrawork): add byte-exact characterization test Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- .../ultrawork-byte-exactness.test.ts | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/hooks/keyword-detector/ultrawork/ultrawork-byte-exactness.test.ts diff --git a/src/hooks/keyword-detector/ultrawork/ultrawork-byte-exactness.test.ts b/src/hooks/keyword-detector/ultrawork/ultrawork-byte-exactness.test.ts new file mode 100644 index 000000000..f5fe2dd92 --- /dev/null +++ b/src/hooks/keyword-detector/ultrawork/ultrawork-byte-exactness.test.ts @@ -0,0 +1,62 @@ +/// + +import { describe, expect, test } from "bun:test" +import { createHash } from "node:crypto" +import { getUltraworkMessage, getUltraworkSource } from "./index" +import type { UltraworkSource } from "./source-detector" + +type UltraworkPromptBaseline = { + readonly name: string + readonly agentName: string + readonly modelID: string + readonly expectedSource: UltraworkSource + readonly sha256: string +} + +const ULTRAWORK_PROMPT_BASELINES: readonly UltraworkPromptBaseline[] = [ + { + name: "default", + agentName: "sisyphus", + modelID: "claude-sonnet-4-6", + expectedSource: "default", + sha256: "78aa43e2e2b7db307827d9ddda30a4c6a24aa35a9255efe1ee39a4476d71acca", + }, + { + name: "gpt", + agentName: "sisyphus", + modelID: "gpt-5.5", + expectedSource: "gpt", + sha256: "8f31f0053256914e94605944b28e123c584a0ad093e0d44d5ad66da009a632ae", + }, + { + name: "gemini", + agentName: "sisyphus", + modelID: "gemini-3.1-pro", + expectedSource: "gemini", + sha256: "5c5766549e868e7a1c87252e742e491b7015138948c6e26fb704346bb55d5d7c", + }, + { + name: "planner", + agentName: "prometheus", + modelID: "gpt-5.5", + expectedSource: "planner", + sha256: "8897b3a11b61c12a02bfba13a76c80742bc4e5356cfc30e2f0c38464aa587bf3", + }, +] + +describe("Ultrawork prompt byte exactness", () => { + test("#given captured ultrawork prompt baselines #then every routed source keeps the same bytes", () => { + for (const baseline of ULTRAWORK_PROMPT_BASELINES) { + const source = getUltraworkSource(baseline.agentName, baseline.modelID) + const prompt = getUltraworkMessage(baseline.agentName, baseline.modelID) + + expect(source, baseline.name).toBe(baseline.expectedSource) + expect(prompt.length, baseline.name).toBeGreaterThan(0) + expect(hashPrompt(prompt), baseline.name).toBe(baseline.sha256) + } + }) +}) + +function hashPrompt(prompt: string): string { + return createHash("sha256").update(prompt).digest("hex") +}