self-bench 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/.dockerignore +0 -1
  2. package/Dockerfile +2 -1
  3. package/README.md +101 -177
  4. package/bun.lock +12 -12
  5. package/compose.yaml +4 -4
  6. package/dist/api.d.ts.map +1 -1
  7. package/dist/api.js +40 -2
  8. package/dist/api.js.map +1 -1
  9. package/dist/artifacts.d.ts +0 -1
  10. package/dist/artifacts.d.ts.map +1 -1
  11. package/dist/artifacts.js +0 -3
  12. package/dist/artifacts.js.map +1 -1
  13. package/dist/build-metadata.js +1 -1
  14. package/dist/cli.js +8 -0
  15. package/dist/cli.js.map +1 -1
  16. package/dist/codex-review.d.ts +2 -1
  17. package/dist/codex-review.d.ts.map +1 -1
  18. package/dist/codex-review.js +26 -22
  19. package/dist/codex-review.js.map +1 -1
  20. package/dist/config.d.ts +0 -1
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +0 -2
  23. package/dist/config.js.map +1 -1
  24. package/dist/contracts.d.ts +1 -1
  25. package/dist/contracts.d.ts.map +1 -1
  26. package/dist/eval-main.js +2 -2
  27. package/dist/evaluate.d.ts.map +1 -1
  28. package/dist/evaluate.js +12 -7
  29. package/dist/evaluate.js.map +1 -1
  30. package/dist/provenance.d.ts +0 -1
  31. package/dist/provenance.d.ts.map +1 -1
  32. package/dist/provenance.js.map +1 -1
  33. package/dist/reaudit-main.js +9 -6
  34. package/dist/reaudit-main.js.map +1 -1
  35. package/dist/repair-main.js +7 -4
  36. package/dist/repair-main.js.map +1 -1
  37. package/dist/review/assets/index-CZ3G759O.js +1568 -0
  38. package/dist/review/assets/index-DgSLzX8l.css +1 -0
  39. package/dist/review/assets/{mojo-Blby8dQK.js → mojo-DJz3ZmWd.js} +1 -1
  40. package/dist/review/assets/typst-BUadGCkm.js +1 -0
  41. package/dist/review/index.html +2 -2
  42. package/dist/sandbox-repair.bundle.js +8 -7
  43. package/dist/sandbox-repair.js +7 -7
  44. package/dist/sandbox-repair.js.map +1 -1
  45. package/dist/sandbox-review.bundle.js +29 -25
  46. package/dist/sandbox-review.js +5 -3
  47. package/dist/sandbox-review.js.map +1 -1
  48. package/dist/sandbox-validation-repair.bundle.js +9 -9
  49. package/dist/sandbox-validation-repair.js +11 -9
  50. package/dist/sandbox-validation-repair.js.map +1 -1
  51. package/dist/subscription-auth.d.ts +12 -1
  52. package/dist/subscription-auth.d.ts.map +1 -1
  53. package/dist/subscription-auth.js +16 -16
  54. package/dist/subscription-auth.js.map +1 -1
  55. package/dist/{activities.d.ts → temporal/activities.d.ts} +2 -3
  56. package/dist/temporal/activities.d.ts.map +1 -0
  57. package/dist/{activities.js → temporal/activities.js} +44 -33
  58. package/dist/temporal/activities.js.map +1 -0
  59. package/dist/{temporal.d.ts → temporal/connection.d.ts} +2 -2
  60. package/dist/temporal/connection.d.ts.map +1 -0
  61. package/dist/{temporal.js → temporal/connection.js} +1 -1
  62. package/dist/temporal/connection.js.map +1 -0
  63. package/dist/{worker-main.d.ts.map → temporal/worker-main.d.ts.map} +1 -1
  64. package/dist/{worker-main.js → temporal/worker-main.js} +5 -9
  65. package/dist/temporal/worker-main.js.map +1 -0
  66. package/dist/{workflow.d.ts → temporal/workflow.d.ts} +1 -1
  67. package/dist/temporal/workflow.d.ts.map +1 -0
  68. package/dist/temporal/workflow.js.map +1 -0
  69. package/docs/evaluations.md +13 -12
  70. package/docs/operations.md +10 -19
  71. package/package.json +6 -6
  72. package/src/api.ts +40 -2
  73. package/src/artifacts.ts +0 -4
  74. package/src/cli.ts +9 -0
  75. package/src/codex-review.ts +63 -54
  76. package/src/config.ts +0 -3
  77. package/src/contracts.ts +0 -5
  78. package/src/eval-main.ts +2 -2
  79. package/src/evaluate.ts +13 -8
  80. package/src/provenance.ts +0 -1
  81. package/src/reaudit-main.ts +9 -6
  82. package/src/repair-main.ts +7 -4
  83. package/src/sandbox-repair.ts +7 -11
  84. package/src/sandbox-review.ts +5 -3
  85. package/src/sandbox-validation-repair.ts +13 -10
  86. package/src/subscription-auth.ts +30 -17
  87. package/src/{activities.ts → temporal/activities.ts} +45 -40
  88. package/src/{temporal.ts → temporal/connection.ts} +1 -1
  89. package/src/{worker-main.ts → temporal/worker-main.ts} +5 -9
  90. package/src/{workflow.ts → temporal/workflow.ts} +10 -10
  91. package/dist/activities.d.ts.map +0 -1
  92. package/dist/activities.js.map +0 -1
  93. package/dist/extensions/review.d.ts +0 -3
  94. package/dist/extensions/review.d.ts.map +0 -1
  95. package/dist/extensions/review.js +0 -44
  96. package/dist/extensions/review.js.map +0 -1
  97. package/dist/review/assets/index-Dq-6DFzI.css +0 -1
  98. package/dist/review/assets/index-DurW_RD7.js +0 -1567
  99. package/dist/review/assets/typst-DHCkPAjA.js +0 -1
  100. package/dist/temporal.d.ts.map +0 -1
  101. package/dist/temporal.js.map +0 -1
  102. package/dist/worker-main.js.map +0 -1
  103. package/dist/workflow.d.ts.map +0 -1
  104. package/dist/workflow.js.map +0 -1
  105. package/src/extensions/review.ts +0 -54
  106. /package/dist/{worker-main.d.ts → temporal/worker-main.d.ts} +0 -0
  107. /package/dist/{workflow.js → temporal/workflow.js} +0 -0
@@ -5,20 +5,19 @@ import { fileURLToPath } from "node:url";
5
5
  import { CancelledFailure, Context } from "@temporalio/activity";
6
6
  import { ApplicationFailure } from "@temporalio/common";
7
7
  import { z } from "zod";
8
- import { type ArtifactStore, createArtifactStore } from "./artifacts.js";
9
- import { auditTaskDefinition } from "./audit.js";
8
+ import { type ArtifactStore, createArtifactStore } from "../artifacts.js";
9
+ import { auditTaskDefinition } from "../audit.js";
10
10
  import {
11
11
  COUPLING_REVIEW_MODEL,
12
12
  couplingReviewInput,
13
13
  couplingReviewSchema,
14
- } from "./codex-review.js";
15
- import type { SelfBenchConfig } from "./config.js";
14
+ } from "../codex-review.js";
15
+ import type { SelfBenchConfig } from "../config.js";
16
16
  import {
17
17
  type ArtifactRef,
18
18
  type AuditResult,
19
19
  type AuthoredTask,
20
20
  type AuthorOutcome,
21
- artifactRefSchema,
22
21
  type Candidate,
23
22
  candidateSchema,
24
23
  type Difficulty,
@@ -27,29 +26,25 @@ import {
27
26
  type RunRequest,
28
27
  taskDefinitionSchema,
29
28
  type ValidationResult,
30
- } from "./contracts.js";
29
+ } from "../contracts.js";
31
30
  import {
32
31
  buildCouplingEvidence,
33
32
  discoverContractArtifacts,
34
33
  resolveCouplingReview,
35
34
  scanBaseContractArtifacts,
36
- } from "./coupling.js";
37
- import { assertPullRequestBelongsToRepository } from "./github.js";
35
+ } from "../coupling.js";
36
+ import { assertPullRequestBelongsToRepository } from "../github.js";
38
37
  import {
39
38
  type HarborJobResult,
40
39
  harborInfrastructureError,
41
40
  readHarborJobResult,
42
- } from "./harbor-results.js";
43
- import { refreshHarborTask } from "./harbor-task.js";
44
- import { sha256 } from "./hash.js";
45
- import { runCommand } from "./process.js";
46
- import { assertProvenanceMatchesPullRequest, type ProvenanceMessage } from "./provenance.js";
47
- import { createSandboxExecutor, type SandboxExecutor, type SandboxRunOptions } from "./sandbox.js";
48
- import {
49
- githubToken,
50
- loadCodexSubscriptionAuth,
51
- loadPiSubscriptionAuth,
52
- } from "./subscription-auth.js";
41
+ } from "../harbor-results.js";
42
+ import { refreshHarborTask } from "../harbor-task.js";
43
+ import { sha256 } from "../hash.js";
44
+ import { runCommand } from "../process.js";
45
+ import { assertProvenanceMatchesPullRequest, type ProvenanceMessage } from "../provenance.js";
46
+ import { createSandboxExecutor, type SandboxExecutor, type SandboxRunOptions } from "../sandbox.js";
47
+ import { githubToken, loadCodexModelAuth, loadPiModelAuth } from "../subscription-auth.js";
53
48
 
54
49
  const HARBOR_INFRASTRUCTURE_FAILURE_TYPE = "HarborInfrastructureFailure";
55
50
  const DISCOVERY_TIMEOUT_MS = 45 * 60 * 1000;
@@ -178,7 +173,7 @@ async function discoverCandidateShard(
178
173
  } else {
179
174
  const [extension, piAuth, ghToken] = await Promise.all([
180
175
  readAsset("src/extensions/discovery.ts"),
181
- loadPiSubscriptionAuth(),
176
+ loadPiModelAuth(),
182
177
  githubToken(),
183
178
  ]);
184
179
  Context.current().heartbeat(
@@ -200,7 +195,8 @@ async function discoverCandidateShard(
200
195
  ],
201
196
  outputPaths: ["/work/discovery.json"],
202
197
  secrets: {
203
- SELFBENCH_PI_AUTH_JSON: piAuth,
198
+ ...(piAuth.apiKey ? { OPENAI_API_KEY: piAuth.apiKey } : {}),
199
+ ...(piAuth.authJson ? { SELFBENCH_PI_AUTH_JSON: piAuth.authJson } : {}),
204
200
  ...(ghToken ? { GH_TOKEN: ghToken } : {}),
205
201
  },
206
202
  environment: {
@@ -356,7 +352,7 @@ async function authorCandidate(
356
352
  readAsset("src/extensions/authoring.ts"),
357
353
  readAsset("src/skills/selfbench/SKILL.md"),
358
354
  readAsset("dist/sandbox-author.bundle.js"),
359
- loadPiSubscriptionAuth(),
355
+ loadPiModelAuth(),
360
356
  githubToken(),
361
357
  ]);
362
358
  const prompt = authoringPrompt(run, candidate);
@@ -378,7 +374,8 @@ async function authorCandidate(
378
374
  ],
379
375
  outputPaths: ["/work/task.tar.gz", "/work/definition.json"],
380
376
  secrets: {
381
- SELFBENCH_PI_AUTH_JSON: piAuth,
377
+ ...(piAuth.apiKey ? { OPENAI_API_KEY: piAuth.apiKey } : {}),
378
+ ...(piAuth.authJson ? { SELFBENCH_PI_AUTH_JSON: piAuth.authJson } : {}),
382
379
  ...(ghToken ? { GH_TOKEN: ghToken } : {}),
383
380
  },
384
381
  environment: {
@@ -591,9 +588,8 @@ async function repairValidationTask(
591
588
  store.get(input.task.bundle),
592
589
  store.get(input.task.definition),
593
590
  readAsset("dist/sandbox-validation-repair.bundle.js"),
594
- loadPiSubscriptionAuth(),
595
- ]);
596
- // Full verifier logs remain durable artifacts. The validation reason already carries bounded
591
+ loadPiModelAuth(),
592
+ ]); // Full verifier logs remain durable artifacts. The validation reason already carries bounded
597
593
  // tails for failed gates, which keeps the repair prompt within the model context window.
598
594
  const diagnostics = Buffer.from(input.validation.reason ?? "validation failed without a reason");
599
595
  const result = await withActivityHeartbeats(
@@ -616,7 +612,10 @@ async function repairValidationTask(
616
612
  "/work/repaired-test.patch",
617
613
  "/work/repair-report.json",
618
614
  ],
619
- secrets: { SELFBENCH_PI_AUTH_JSON: authJson },
615
+ secrets: {
616
+ ...(authJson.apiKey ? { OPENAI_API_KEY: authJson.apiKey } : {}),
617
+ ...(authJson.authJson ? { SELFBENCH_PI_AUTH_JSON: authJson.authJson } : {}),
618
+ },
620
619
  environment: { SELFBENCH_REPAIR_MODEL: input.run.authoring.model },
621
620
  command: [
622
621
  "node",
@@ -704,7 +703,7 @@ async function reviewTask(
704
703
  });
705
704
  const [reviewer, authJson] = await Promise.all([
706
705
  readAsset("dist/sandbox-review.bundle.js"),
707
- loadPiSubscriptionAuth(),
706
+ loadPiModelAuth(),
708
707
  ]);
709
708
  const result = await withActivityHeartbeats(
710
709
  `running sandboxed coupling review for ${input.task.taskId}`,
@@ -728,7 +727,10 @@ async function reviewTask(
728
727
  },
729
728
  ],
730
729
  outputPaths: ["/work/review.json"],
731
- secrets: { SELFBENCH_PI_AUTH_JSON: authJson },
730
+ secrets: {
731
+ ...(authJson.apiKey ? { OPENAI_API_KEY: authJson.apiKey } : {}),
732
+ ...(authJson.authJson ? { SELFBENCH_PI_AUTH_JSON: authJson.authJson } : {}),
733
+ },
732
734
  environment: { SELFBENCH_REVIEW_OUTPUT: "/work/review.json" },
733
735
  command: ["node", "/work/sandbox-review.js"],
734
736
  },
@@ -796,7 +798,7 @@ async function repairTask(
796
798
  store.get(input.task.bundle),
797
799
  store.get(input.review),
798
800
  readAsset("dist/sandbox-repair.bundle.js"),
799
- loadCodexSubscriptionAuth(),
801
+ loadCodexModelAuth(),
800
802
  ]);
801
803
  const result = await withActivityHeartbeats(
802
804
  `running test repair sandbox for ${input.task.taskId}`,
@@ -813,7 +815,10 @@ async function repairTask(
813
815
  { path: "/work/sandbox-repair.js", contents: repairer },
814
816
  ],
815
817
  outputPaths: ["/work/repaired-task.tar.gz", "/work/repair-report.json"],
816
- secrets: { SELFBENCH_CODEX_AUTH_JSON: authJson },
818
+ secrets: {
819
+ ...(authJson.apiKey ? { OPENAI_API_KEY: authJson.apiKey } : {}),
820
+ ...(authJson.authJson ? { SELFBENCH_CODEX_AUTH_JSON: authJson.authJson } : {}),
821
+ },
817
822
  environment: { SELFBENCH_REPAIR_MODEL: input.run.authoring.model },
818
823
  command: [
819
824
  "node",
@@ -980,7 +985,7 @@ function modalAgentScript(extension: string, tool: string): string {
980
985
  clone_source
981
986
  cd /work/repo
982
987
  pi --print --mode json --no-session --no-approve --no-skills --no-prompt-templates --no-context-files --no-extensions \\
983
- --extension /work/${extension} --provider openai-codex --model "$AUTHOR_MODEL" --thinking high \\
988
+ --extension /work/${extension} --provider "$(model_provider)" --model "$AUTHOR_MODEL" --thinking high \\
984
989
  --tools read,bash,grep,find,ls,${tool} "$(cat /work/prompt.txt)" 2>&1`;
985
990
  }
986
991
 
@@ -991,7 +996,7 @@ mkdir -p /work/tasks
991
996
  cd /work/repo
992
997
  pi --print --mode json --no-session --no-approve --no-prompt-templates --no-context-files --no-extensions \\
993
998
  --skill /work/selfbench-skill --extension /work/authoring.ts \\
994
- --provider openai-codex --model "$AUTHOR_MODEL" --thinking high \\
999
+ --provider "$(model_provider)" --model "$AUTHOR_MODEL" --thinking high \\
995
1000
  --tools read,bash,grep,find,ls,submit_task "$(cat /work/prompt.txt)" 2>&1
996
1001
  node /work/sandbox-author.js /work/tasks /work/repo /work/harbor-task
997
1002
  cp /work/tasks/*/definition.json /work/definition.json
@@ -1001,9 +1006,13 @@ tar -czf /work/task.tar.gz -C /work harbor-task`;
1001
1006
  function sandboxBootstrap(): string {
1002
1007
  return `set -euo pipefail
1003
1008
  mkdir -p "$HOME/.pi/agent"
1004
- printf '%s' "$SELFBENCH_PI_AUTH_JSON" > "$HOME/.pi/agent/auth.json"
1009
+ if [ -n "\${SELFBENCH_PI_AUTH_JSON:-}" ]; then
1010
+ printf '%s' "$SELFBENCH_PI_AUTH_JSON" > "$HOME/.pi/agent/auth.json"
1011
+ chmod 600 "$HOME/.pi/agent/auth.json"
1012
+ fi
1005
1013
  printf '%s\n' '{"transport":"auto"}' > "$HOME/.pi/agent/settings.json"
1006
- chmod 600 "$HOME/.pi/agent/auth.json" "$HOME/.pi/agent/settings.json"
1014
+ chmod 600 "$HOME/.pi/agent/settings.json"
1015
+ model_provider() { [ -n "\${OPENAI_API_KEY:-}" ] && printf openai || printf openai-codex; }
1007
1016
  cleanup() { rm -f "$HOME/.pi/agent/auth.json" "$HOME/.pi/agent/settings.json" "$HOME/.git-credentials"; }
1008
1017
  trap cleanup EXIT
1009
1018
  clone_source() {
@@ -1204,7 +1213,7 @@ function parseProvenance(value: Uint8Array): ProvenanceMessage[] {
1204
1213
  }
1205
1214
 
1206
1215
  function readAsset(relativePath: string): Promise<Buffer> {
1207
- const root = resolve(dirname(fileURLToPath(import.meta.url)), "..");
1216
+ const root = resolve(dirname(fileURLToPath(import.meta.url)), "../..");
1208
1217
  return readFile(join(root, relativePath));
1209
1218
  }
1210
1219
 
@@ -1230,7 +1239,3 @@ function numberValue(value: unknown): number {
1230
1239
  function isRecord(value: unknown): value is Record<string, unknown> {
1231
1240
  return typeof value === "object" && value !== null && !Array.isArray(value);
1232
1241
  }
1233
-
1234
- export function parseArtifactReference(value: unknown): ArtifactRef {
1235
- return artifactRefSchema.parse(value);
1236
- }
@@ -1,6 +1,6 @@
1
1
  import { Connection } from "@temporalio/client";
2
2
  import { NativeConnection } from "@temporalio/worker";
3
- import type { SelfBenchConfig } from "./config.js";
3
+ import type { SelfBenchConfig } from "../config.js";
4
4
 
5
5
  export async function connectTemporalClient(
6
6
  config: SelfBenchConfig["temporal"],
@@ -1,11 +1,10 @@
1
- import { existsSync } from "node:fs";
2
1
  import { fileURLToPath } from "node:url";
3
2
  import { Worker } from "@temporalio/worker";
3
+ import { loadConfig } from "../config.js";
4
+ import { removeEmptyModalCredentialOverrides } from "../modal-auth.js";
5
+ import { runCommand } from "../process.js";
4
6
  import { createActivities } from "./activities.js";
5
- import { loadConfig } from "./config.js";
6
- import { removeEmptyModalCredentialOverrides } from "./modal-auth.js";
7
- import { runCommand } from "./process.js";
8
- import { connectTemporalWorker } from "./temporal.js";
7
+ import { connectTemporalWorker } from "./connection.js";
9
8
 
10
9
  removeEmptyModalCredentialOverrides();
11
10
  const config = loadConfig();
@@ -14,10 +13,7 @@ if (config.execution.kind === "docker" || config.harborEnvironment === "docker")
14
13
  await runCommand("docker", ["compose", "version"], { timeoutMs: 30_000 });
15
14
  }
16
15
  const connection = await connectTemporalWorker(config.temporal);
17
- const javascriptWorkflow = fileURLToPath(new URL("./workflow.js", import.meta.url));
18
- const workflowsPath = existsSync(javascriptWorkflow)
19
- ? javascriptWorkflow
20
- : fileURLToPath(new URL("./workflow.ts", import.meta.url));
16
+ const workflowsPath = fileURLToPath(new URL("./workflow.js", import.meta.url));
21
17
  const worker = await Worker.create({
22
18
  connection,
23
19
  namespace: config.temporal.namespace,
@@ -6,15 +6,6 @@ import {
6
6
  proxyActivities,
7
7
  setHandler,
8
8
  } from "@temporalio/workflow";
9
- import type {
10
- AuthorCandidateInput,
11
- DiscoveryShardInput,
12
- ExportInput,
13
- RepairTaskInput,
14
- SelfBenchActivities,
15
- TaskStageInput,
16
- ValidationRepairTaskInput,
17
- } from "./activities.js";
18
9
  import type {
19
10
  AuthoredTask,
20
11
  AuthorOutcome,
@@ -25,7 +16,16 @@ import type {
25
16
  RunResult,
26
17
  RunStatus,
27
18
  TaskProgress,
28
- } from "./contracts.js";
19
+ } from "../contracts.js";
20
+ import type {
21
+ AuthorCandidateInput,
22
+ DiscoveryShardInput,
23
+ ExportInput,
24
+ RepairTaskInput,
25
+ SelfBenchActivities,
26
+ TaskStageInput,
27
+ ValidationRepairTaskInput,
28
+ } from "./activities.js";
29
29
 
30
30
  export const statusQuery = defineQuery<RunStatus>("status");
31
31
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"activities.d.ts","sourceRoot":"","sources":["../src/activities.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,EAElB,KAAK,SAAS,EAEd,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,UAAU,EAEf,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAiDxB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAC/D,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,sBAAsB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7E,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACrE,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/D,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/E,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACzD,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3D,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACvD,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACvD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB,CAa7E;AA2kCD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAElE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"activities.js","sourceRoot":"","sources":["../src/activities.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
- export default function reviewExtension(pi: ExtensionAPI): void;
3
- //# sourceMappingURL=review.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/extensions/review.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAGpE,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAiD9D"}
@@ -1,44 +0,0 @@
1
- import { writeFileSync } from "node:fs";
2
- import { Type } from "@sinclair/typebox";
3
- export default function reviewExtension(pi) {
4
- pi.registerTool({
5
- name: "submit_review",
6
- label: "Submit coupling review",
7
- description: "Submit the final independent test-coupling verdict exactly once.",
8
- parameters: Type.Object({
9
- verdict: Type.Union([Type.Literal("clean"), Type.Literal("coupled")]),
10
- reason: Type.String({ minLength: 1 }),
11
- findings: Type.Array(Type.Object({
12
- artifact: Type.String({ minLength: 1 }),
13
- category: Type.Union([
14
- Type.Literal("endpoint_path"),
15
- Type.Literal("field_name"),
16
- Type.Literal("header_name"),
17
- Type.Literal("media_type"),
18
- Type.Literal("other"),
19
- ]),
20
- disposition: Type.Union([
21
- Type.Literal("base_contract"),
22
- Type.Literal("prompt_contract"),
23
- Type.Literal("external_contract"),
24
- Type.Literal("gold_only"),
25
- Type.Literal("not_contract"),
26
- ]),
27
- evidence: Type.String({ minLength: 1 }),
28
- }, { additionalProperties: false }), { minItems: 1 }),
29
- counterexample: Type.String({ minLength: 1 }),
30
- }, { additionalProperties: false }),
31
- async execute(_toolCallId, input) {
32
- const output = process.env.SELFBENCH_REVIEW_OUTPUT;
33
- if (!output) {
34
- throw new Error("SELFBENCH_REVIEW_OUTPUT is not configured");
35
- }
36
- writeFileSync(output, `${JSON.stringify(input, null, 2)}\n`, { flag: "wx" });
37
- return {
38
- content: [{ type: "text", text: `Submitted ${input.verdict} verdict.` }],
39
- details: input,
40
- };
41
- },
42
- });
43
- }
44
- //# sourceMappingURL=review.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/extensions/review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAgB;IACtD,EAAE,CAAC,YAAY,CAAC;QACd,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,kEAAkE;QAC/E,UAAU,EAAE,IAAI,CAAC,MAAM,CACrB;YACE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YACrE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;YACrC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAClB,IAAI,CAAC,MAAM,CACT;gBACE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;gBACvC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC;oBACnB,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;oBAC7B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;oBAC1B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;oBAC3B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;oBAC1B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;iBACtB,CAAC;gBACF,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC;oBACtB,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;oBAC7B,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC;oBACjC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;oBACzB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;iBAC7B,CAAC;gBACF,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;aACxC,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC,EACD,EAAE,QAAQ,EAAE,CAAC,EAAE,CAChB;YACD,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;SAC9C,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC;QACD,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK;YAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;YACnD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;YACD,aAAa,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7E,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,KAAK,CAAC,OAAO,WAAW,EAAE,CAAC;gBACxE,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1 +0,0 @@
1
- :root{color:#20242c;background:#f3f4f6;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--canvas: #f3f4f6;--panel: #ffffff;--panel-subtle: #f8f9fb;--ink: #20242c;--muted: #68707d;--faint: #9399a4;--line: #e2e5ea;--line-strong: #cfd4dc;--accent: #3758e8;--accent-soft: #edf0ff;--success: #16805d;--success-soft: #e8f6f0;--success-border: #b8dfd0;--danger: #c33d4a;--danger-soft: #fff0f1;--danger-border: #efc5c9;--warning: #a86513;--warning-soft: #fff6e7;--warning-border: #ead2a8;--shadow-sm: 0 1px 2px rgb(20 25 35 / 5%), 0 4px 14px rgb(20 25 35 / 4%);--shadow-lg: 0 24px 70px rgb(20 25 35 / 18%)}:root[data-theme=dark]{color:#e7eaf0;background:#0d1016;color-scheme:dark;--canvas: #0d1016;--panel: #151922;--panel-subtle: #1a1f29;--ink: #e7eaf0;--muted: #9ca4b2;--faint: #737c8c;--line: #292f3a;--line-strong: #3b4350;--accent: #7890ff;--accent-soft: #222b50;--success: #62d0a5;--success-soft: #142d27;--success-border: #285b4c;--danger: #ff8490;--danger-soft: #351d24;--danger-border: #6b3540;--warning: #e8b66b;--warning-soft: #332817;--warning-border: #674d26;--shadow-sm: 0 1px 2px rgb(0 0 0 / 24%), 0 8px 24px rgb(0 0 0 / 12%);--shadow-lg: 0 24px 70px rgb(0 0 0 / 52%)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;background:var(--canvas)}button,input,select,textarea{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{border:0}button:not(:disabled),a{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgb(55 88 232 / 22%);outline-offset:2px}a{color:inherit;text-decoration:none}svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6}.app-shell{min-height:100vh}.site-header{position:sticky;z-index:30;top:0;display:grid;grid-template-columns:minmax(230px,312px) 1fr auto;min-height:68px;align-items:center;border-bottom:1px solid var(--line);background:#fffffff0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand-lockup{display:flex;height:100%;align-items:center;gap:11px;padding:0 22px;border-right:1px solid var(--line)}.brand-mark{display:grid;width:34px;height:34px;flex:none;place-items:center;border-radius:10px;background:#232834;color:#fff;font-size:15px;font-weight:760;letter-spacing:-.03em;box-shadow:inset 0 0 0 1px #ffffff1a}.brand-name{font-size:14px;font-weight:720;letter-spacing:-.015em}.brand-context{margin-top:1px;color:var(--muted);font-size:11px}.header-status{display:flex;align-items:center;gap:8px;padding:0 22px;color:var(--muted);font-size:12px}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px var(--success-soft)}.live-dot[data-active=true]{background:var(--warning);box-shadow:0 0 0 3px var(--warning-soft);animation:pulse 1.7s ease-out infinite}.header-actions{display:flex;align-items:center;gap:8px;padding-right:20px}.keyboard-hint{display:flex;align-items:center;gap:4px;color:var(--faint);font-size:11px;margin-right:12px}.theme-toggle{width:36px;padding:0}.keyboard-hint kbd{display:grid;width:22px;height:22px;place-items:center;border:1px solid var(--line-strong);border-radius:5px;background:var(--panel-subtle);color:var(--muted);font:600 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;box-shadow:0 1px #c7ccd4}.keyboard-hint span{margin-left:3px}.button{display:inline-flex;min-height:36px;align-items:center;justify-content:center;gap:7px;padding:0 13px;border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:640;transition:background .14s ease,border-color .14s ease,transform .14s ease}.button:active:not(:disabled){transform:translateY(1px)}.button svg{width:16px;height:16px}.button svg[data-spinning=true]{animation:spin .9s linear infinite}.button:disabled{cursor:not-allowed;opacity:.55}.button.secondary{border-color:var(--line-strong);background:var(--panel);box-shadow:0 1px 2px #1419230a}.button.secondary:hover:not(:disabled),.button.ghost:hover:not(:disabled),a.button.ghost:hover{border-color:#b7bdc8;background:#f8f9fb}.button.primary{background:var(--accent);color:#fff;box-shadow:0 2px 5px #3758e838}.button.primary:hover:not(:disabled){background:#2948d5}.button.ghost{min-height:32px;padding:0 10px;border-color:var(--line);background:#fff;color:#4f5764}.button.full{width:100%}.app-grid{display:grid;min-height:calc(100vh - 68px);grid-template-columns:minmax(260px,312px) minmax(0,1fr)}.queue{position:sticky;top:68px;display:flex;overflow:hidden;height:calc(100vh - 68px);flex-direction:column;border-right:1px solid var(--line);background:#f8f9fb}.queue-head{flex:none;padding:22px 17px 15px;border-bottom:1px solid var(--line)}.queue-title-row{display:flex;align-items:end;justify-content:space-between;margin-bottom:17px}.eyebrow{color:#858c98;font-size:10px;font-weight:720;letter-spacing:.105em;text-transform:uppercase}.queue h1{margin:3px 0 0;font-size:21px;font-weight:690;letter-spacing:-.035em}.model-legend{display:flex;gap:5px}.model-legend span{display:grid;width:22px;height:22px;place-items:center;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--muted);font-size:9px;font-weight:750}.search-field{position:relative;display:block}.search-field svg{position:absolute;top:50%;left:11px;width:16px;height:16px;color:#9299a5;transform:translateY(-50%)}.search-field input{width:100%;height:37px;padding:0 12px 0 34px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;font-size:12px;outline:none}.search-field input::placeholder{color:#a0a6b0}.search-field input:focus{border-color:#8a9cf1;box-shadow:0 0 0 3px #3758e81a}.filter-tabs{display:grid;margin-top:11px;grid-template-columns:repeat(3,1fr);padding:3px;border-radius:8px;background:#e9ebef}.filter-tabs button{min-height:28px;border-radius:6px;background:transparent;color:#747b87;font-size:10px;font-weight:650}.filter-tabs button[data-active=true]{background:#fff;color:var(--ink);box-shadow:0 1px 3px #1419231a}.task-list{overflow:auto;flex:1;padding:9px}.task-row{position:relative;display:block;width:100%;padding:13px 12px 12px;border:1px solid transparent;border-radius:10px;background:transparent;text-align:left;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease}.task-row+.task-row{margin-top:3px}.task-row:hover{background:#f0f2f5}.task-row[data-active=true]{border-color:#d9dde5;background:#fff;box-shadow:var(--shadow-sm)}.task-row[data-active=true]:before{position:absolute;top:14px;bottom:14px;left:-1px;width:3px;border-radius:0 3px 3px 0;background:var(--accent);content:""}.task-row-top,.task-row-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.task-name{overflow:hidden;max-width:205px;font-size:12px;font-weight:680;letter-spacing:-.012em;text-overflow:ellipsis;white-space:nowrap}.task-score{color:var(--muted);font:650 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.task-id{overflow:hidden;margin:4px 0 11px;color:var(--faint);font:10px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;text-overflow:ellipsis;white-space:nowrap}.task-row-bottom{color:var(--muted);font-size:10px}.result-dots{display:flex;gap:5px}.result-dot{display:grid;width:23px;height:23px;place-items:center;border:1px solid var(--line);border-radius:50%;background:#f1f2f4;color:#7c838f;font-size:8px;font-weight:800}.result-dot[data-result=pass]{border-color:var(--success-border);background:var(--success-soft);color:var(--success)}.result-dot[data-result=fail],.result-dot[data-result=unreadable]{border-color:var(--danger-border);background:var(--danger-soft);color:var(--danger)}.result-dot[data-result=stale]{border-color:var(--warning-border);background:var(--warning-soft);color:var(--warning)}.workspace{min-width:0;background:var(--canvas)}.task-hero{padding:30px 34px 0;background:#fff}.hero-topline,.hero-title-row{display:flex;align-items:center;justify-content:space-between;gap:24px}.breadcrumbs{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}.breadcrumbs svg{width:12px;height:12px;color:#adb2bb}.queue-navigation{display:flex;gap:6px}.queue-navigation button{display:grid;width:31px;height:31px;place-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted)}.queue-navigation button:hover:not(:disabled){border-color:var(--line-strong);background:var(--panel-subtle)}.queue-navigation button:disabled{opacity:.35}.queue-navigation svg{width:16px;height:16px}.queue-navigation svg[data-direction=right]{transform:rotate(180deg)}.hero-title-row{margin-top:20px}.hero-title-row h2{margin:0;font-size:clamp(24px,3vw,34px);font-weight:680;letter-spacing:-.045em}.hero-id{margin-top:6px;color:var(--faint);font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.status-pill{display:inline-flex;min-height:26px;align-items:center;gap:7px;padding:0 9px;border:1px solid var(--line);border-radius:999px;background:#f5f6f8;color:var(--muted);font-size:10px;font-weight:680;white-space:nowrap}.status-pill>span{width:6px;height:6px;border-radius:50%;background:currentColor}.status-pill[data-result=pass]{border-color:var(--success-border);background:var(--success-soft);color:var(--success)}.status-pill[data-result=fail],.status-pill[data-result=unreadable]{border-color:var(--danger-border);background:var(--danger-soft);color:var(--danger)}.status-pill[data-result=stale]{border-color:var(--warning-border);background:var(--warning-soft);color:var(--warning)}.outcome-strip{display:flex;min-height:72px;align-items:center;gap:20px;margin-top:24px;border-top:1px solid var(--line)}.model-outcome{display:flex;align-items:center;gap:9px}.model-outcome strong,.model-outcome span{display:block}.model-outcome strong{font-size:11px;font-weight:680;text-transform:capitalize}.model-outcome div>span{margin-top:2px;color:var(--muted);font-size:9px}.test-counts{display:flex;margin-left:auto;gap:19px;color:var(--muted);font-size:10px}.test-counts strong{color:var(--ink);font-size:12px}.section-tabs{position:sticky;z-index:20;top:68px;display:flex;overflow-x:auto;min-height:48px;align-items:end;gap:25px;padding:0 34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fffffff2;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.section-tabs button{position:relative;min-height:47px;padding:1px 0 0;background:transparent;color:#737a86;font-size:11px;font-weight:630;white-space:nowrap}.section-tabs button:hover,.section-tabs button[data-active=true]{color:var(--ink)}.section-tabs button[data-active=true]:after{position:absolute;right:0;bottom:-1px;left:0;height:2px;background:var(--accent);content:""}.section-content{width:100%;max-width:1480px;margin:0 auto;padding:26px 34px 60px}.surface,.diff-surface{border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow-sm)}.surface{padding:20px}.surface-header,.diff-toolbar,.inspector-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px}.surface-header{margin-bottom:18px}.surface-header h3,.diff-toolbar h3,.inspector-toolbar h3{margin:4px 0 0;font-size:15px;font-weight:680;letter-spacing:-.02em}.surface-action{flex:none}.brief-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(270px,.7fr);gap:18px;align-items:start}.brief-side{display:grid;gap:18px}.source-surface{grid-column:1 / -1}.source-chip{display:inline-flex;max-width:230px;overflow:hidden;padding:5px 8px;border-radius:6px;background:var(--panel-subtle);color:var(--muted);font:9px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;text-overflow:ellipsis;white-space:nowrap}.prompt-copy{color:#303640;font-size:14px;line-height:1.76;white-space:pre-wrap}.field-label{display:block;margin:14px 0 6px;color:var(--muted);font-size:10px;font-weight:670}.input-control{width:100%;border:1px solid var(--line-strong);border-radius:8px;background:#fff;font-size:11px;outline:none}select.input-control{height:36px;padding:0 10px}.notes-field{min-height:94px;padding:10px;line-height:1.5;resize:vertical}.input-control:focus{border-color:#8a9cf1;box-shadow:0 0 0 3px #3758e81a}.review-card .button.full{margin-top:13px}.fact-list{margin:0}.fact-list>div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;padding:10px 0;border-top:1px solid #edf0f3}.fact-list>div:first-child{padding-top:0;border-top:0}.fact-list dt{color:var(--faint);font-size:10px}.fact-list dd{overflow:hidden;margin:0;color:#444b57;font-size:11px;text-overflow:ellipsis}.fact-list dd[data-mono=true]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.fact-list a{display:inline-flex;align-items:center;gap:3px;color:var(--accent)}.fact-list a svg{width:12px;height:12px}.issue-stack{display:grid;margin-top:14px;gap:8px}.notice{display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border:1px solid var(--warning-border);border-radius:8px;background:var(--warning-soft);color:#765022;font-size:10px;line-height:1.45}.notice[data-tone=danger]{border-color:var(--danger-border);background:var(--danger-soft);color:#8e303b}.notice svg{width:14px;height:14px;flex:none;margin-top:1px}.source-session{display:grid;gap:10px}.source-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--faint);font:9px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.text-button{padding:0;background:transparent;color:var(--accent);font-size:10px;font-weight:650}.source-message{overflow:hidden;border:1px solid var(--line);border-radius:9px}.source-message[data-role=assistant]{background:var(--panel-subtle)}.source-message[data-selected=true]{border-color:#abb7f4;box-shadow:0 0 0 2px #3758e814}.source-message-label{display:flex;align-items:center;justify-content:space-between;padding:8px 11px;border-bottom:1px solid var(--line);color:var(--muted);font-size:9px;font-weight:700;text-transform:uppercase}.source-message-label span{color:var(--accent)}.source-message pre{margin:0;padding:12px;font:11px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap}.validation-grid{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr);gap:18px;align-items:start}.gate-list{border-top:1px solid var(--line)}.gate-row{display:grid;min-height:52px;align-items:center;grid-template-columns:27px minmax(0,1fr) auto;gap:10px;border-bottom:1px solid var(--line);font-size:11px}.gate-row strong{color:var(--success);font-size:9px;text-transform:uppercase}.gate-check{display:grid;width:22px;height:22px;place-items:center;border-radius:50%;background:#eef0f3;color:var(--faint)}.gate-check[data-pass=true]{background:var(--success-soft);color:var(--success)}.gate-check svg{width:13px;height:13px}.review-rationale{margin-top:18px;padding:13px;border-radius:8px;background:var(--panel-subtle)}.review-rationale p{margin:7px 0 0;color:#555d69;font-size:11px;line-height:1.55}.raw-validation .code-block{max-height:660px}.code-block{overflow:auto;max-width:100%;max-height:70vh;margin:0;padding:16px;border:1px solid #e5e7eb;border-radius:9px;background:#f7f8fa;color:#343b47;font:10px/1.65 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;tab-size:2;white-space:pre-wrap}.runs-layout{display:grid;gap:18px}.run-selector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.run-selector>button{display:flex;min-height:70px;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;box-shadow:0 1px 2px #14192308}.run-selector>button:hover{border-color:#c4c9d2}.run-selector>button[data-active=true]{border-color:#9faff1;box-shadow:0 0 0 3px #3758e814}.model-name,.model-full{display:block}.model-name{font-size:13px;font-weight:700;text-transform:capitalize}.model-full{margin-top:4px;color:var(--faint);font:9px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.run-inspector{padding:20px}.run-facts{display:flex;overflow-x:auto;margin:0 -20px;padding:0 20px 18px;gap:0;border-bottom:1px solid var(--line)}.run-facts>div{min-width:130px;padding-right:22px}.run-facts>div+div{padding-left:22px;border-left:1px solid var(--line)}.run-facts span,.run-facts strong{display:block}.run-facts span{color:var(--faint);font-size:9px}.run-facts strong{margin-top:5px;font-size:11px;font-weight:680}.inspector-toolbar{margin:19px 0 14px}.inspector-toolbar h3{margin:0}.inspector-toolbar p{margin:4px 0 0;color:var(--muted);font-size:10px}.run-inspector>.code-block{margin-bottom:16px}.diff-surface{overflow:hidden}.run-inspector .diff-surface{border-radius:9px;box-shadow:none}.diff-toolbar{min-height:64px;padding:12px 15px;border-bottom:1px solid var(--line);background:#fbfbfc}.diff-toolbar h3{font-size:13px}.diff-actions{display:flex;gap:7px}.diff-body{min-height:260px;background:#fff}.diff-surface[data-expanded=true]{position:fixed;z-index:100;inset:14px;display:flex;overflow:hidden;flex-direction:column;border-color:var(--line-strong);border-radius:12px;box-shadow:var(--shadow-lg)}.diff-surface[data-expanded=true]:before{position:fixed;z-index:-1;inset:-14px;background:#181c247a;content:"";-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.diff-surface[data-expanded=true] .diff-body{overflow:auto;flex:1}.patch-files{display:grid;gap:12px;padding:12px;background:#f1f3f6}.patch-files>div{overflow:hidden;border:1px solid #dce0e6;border-radius:8px;background:#fff}.diff-skeleton{display:grid;padding:24px;gap:9px}.diff-skeleton span,.workspace-skeleton div{border-radius:5px;background:linear-gradient(90deg,#edf0f3 25%,#f7f8fa 48%,#edf0f3 72%);background-size:300% 100%;animation:shimmer 1.6s infinite}.diff-skeleton span{height:9px}.empty-state{display:grid;min-height:190px;place-items:center;align-content:center;padding:28px;color:var(--muted);text-align:center}.empty-state strong{color:var(--ink);font-size:12px}.empty-state p{max-width:280px;margin:6px 0 0;font-size:10px;line-height:1.5}.empty-icon{display:grid;width:38px;height:38px;margin-bottom:11px;place-items:center;border:1px solid var(--line);border-radius:10px;background:#fff}.empty-icon svg{width:17px;height:17px}.loading-screen,.error-screen{display:flex;min-height:100vh;align-items:center;justify-content:center}.loading-screen{gap:13px}.loading-screen strong,.loading-screen span{display:block}.loading-screen strong{font-size:13px}.loading-screen span{margin-top:4px;color:var(--muted);font-size:10px}.error-screen{flex-direction:column;padding:30px;text-align:center}.error-screen>svg{width:30px;height:30px;color:var(--danger)}.error-screen h1{margin:16px 0 0;font-size:20px}.error-screen p{max-width:540px;margin:8px 0 18px;color:var(--muted);font-size:11px;line-height:1.55}.workspace-skeleton{display:grid;padding:40px 34px;gap:16px}.workspace-skeleton div:nth-child(1){width:58%;height:36px}.workspace-skeleton div:nth-child(2){width:100%;height:76px}.workspace-skeleton div:nth-child(3){width:100%;height:360px}:root[data-theme=dark] .site-header{background:#0d1016f0}:root[data-theme=dark] .brand-mark{background:#eef1f7;color:#11151c;box-shadow:inset 0 0 0 1px #ffffff3d}:root[data-theme=dark] .keyboard-hint kbd{box-shadow:0 1px #080a0e}:root[data-theme=dark] .button.secondary{box-shadow:0 1px 2px #0003}:root[data-theme=dark] .button.secondary:hover:not(:disabled),:root[data-theme=dark] .button.ghost:hover:not(:disabled),:root[data-theme=dark] a.button.ghost:hover{border-color:#566171;background:#202631}:root[data-theme=dark] .button.primary:hover:not(:disabled){background:#8ca0ff}:root[data-theme=dark] .button.ghost{background:var(--panel);color:var(--muted)}:root[data-theme=dark] .queue{background:#11151c}:root[data-theme=dark] .eyebrow{color:#7e8796}:root[data-theme=dark] .model-legend span,:root[data-theme=dark] .search-field input,:root[data-theme=dark] .filter-tabs button[data-active=true],:root[data-theme=dark] .task-row[data-active=true],:root[data-theme=dark] .task-hero,:root[data-theme=dark] .queue-navigation button,:root[data-theme=dark] .input-control,:root[data-theme=dark] .run-selector>button,:root[data-theme=dark] .diff-body,:root[data-theme=dark] .patch-files>div,:root[data-theme=dark] .empty-icon{background:var(--panel)}:root[data-theme=dark] .search-field svg,:root[data-theme=dark] .search-field input::placeholder{color:#727b8a}:root[data-theme=dark] .filter-tabs{background:#1b2029}:root[data-theme=dark] .filter-tabs button{color:#858e9d}:root[data-theme=dark] .filter-tabs button[data-active=true]{box-shadow:0 1px 3px #00000047}:root[data-theme=dark] .task-row:hover{background:#191e27}:root[data-theme=dark] .task-row[data-active=true]{border-color:#343b47}:root[data-theme=dark] .result-dot{background:#202631;color:#959dab}:root[data-theme=dark] .result-dot[data-result=pass],:root[data-theme=dark] .status-pill[data-result=pass],:root[data-theme=dark] .gate-check[data-pass=true]{border-color:var(--success-border);background:var(--success-soft);color:var(--success)}:root[data-theme=dark] .result-dot[data-result=fail],:root[data-theme=dark] .result-dot[data-result=unreadable],:root[data-theme=dark] .status-pill[data-result=fail],:root[data-theme=dark] .status-pill[data-result=unreadable]{border-color:var(--danger-border);background:var(--danger-soft);color:var(--danger)}:root[data-theme=dark] .result-dot[data-result=stale],:root[data-theme=dark] .status-pill[data-result=stale]{border-color:var(--warning-border);background:var(--warning-soft);color:var(--warning)}:root[data-theme=dark] .breadcrumbs svg{color:#616a79}:root[data-theme=dark] .status-pill[data-result=missing],:root[data-theme=dark] .gate-check:not([data-pass=true]){background:#202631}:root[data-theme=dark] .section-tabs{background:#151922f2}:root[data-theme=dark] .section-tabs button{color:#8d96a5}:root[data-theme=dark] .prompt-copy{color:#d3d7df}:root[data-theme=dark] .fact-list>div{border-color:#242a34}:root[data-theme=dark] .fact-list dd{color:#c2c8d2}:root[data-theme=dark] .notice{color:#e5bd7c}:root[data-theme=dark] .notice[data-tone=danger]{color:#f3a0a8}:root[data-theme=dark] .source-message[data-selected=true]{border-color:#596fda;box-shadow:0 0 0 2px #7890ff24}:root[data-theme=dark] .review-rationale{background:#1a2029}:root[data-theme=dark] .review-rationale p{color:#b7bec9}:root[data-theme=dark] .code-block{border-color:#2c333e;background:#10141b;color:#cbd1da}:root[data-theme=dark] .run-selector>button{box-shadow:0 1px 2px #0003}:root[data-theme=dark] .run-selector>button:hover{border-color:#4b5564}:root[data-theme=dark] .run-selector>button[data-active=true]{border-color:#6479e0;box-shadow:0 0 0 3px #7890ff21}:root[data-theme=dark] .diff-toolbar{background:#171b24}:root[data-theme=dark] .diff-surface[data-expanded=true]:before{background:#000000a8}:root[data-theme=dark] .patch-files{background:#0f1319}:root[data-theme=dark] .patch-files>div{border-color:#303743}:root[data-theme=dark] .diff-skeleton span,:root[data-theme=dark] .workspace-skeleton div{background:linear-gradient(90deg,#1b2029 25%,#252b36 48%,#1b2029 72%);background-size:300% 100%}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%{box-shadow:0 0 #a8651340}80%,to{box-shadow:0 0 0 7px #a8651300}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}@media(max-width:1100px){.site-header{grid-template-columns:276px 1fr auto}.app-grid{grid-template-columns:276px minmax(0,1fr)}.brief-grid,.validation-grid{grid-template-columns:1fr}.source-surface{grid-column:auto}.brief-side{grid-template-columns:repeat(2,minmax(0,1fr))}.run-selector>button{align-items:flex-start;flex-direction:column}.model-full{display:none}}@media(max-width:820px){.site-header{position:relative;grid-template-columns:1fr auto}.brand-lockup{border-right:0}.header-status,.keyboard-hint{display:none}.header-actions{padding-right:14px}.button.secondary{width:36px;padding:0;font-size:0}.app-grid{display:block}.queue{position:relative;top:auto;height:auto;max-height:360px;border-right:0;border-bottom:1px solid var(--line)}.queue-head{padding:17px 15px 12px}.queue-title-row{margin-bottom:12px}.task-list{display:flex;overflow-x:auto;padding:8px 13px 12px;gap:8px}.task-row,.task-row+.task-row{width:240px;min-width:240px;margin:0;border-color:var(--line);background:#fff}:root[data-theme=dark] .task-row{background:var(--panel)}.task-row[data-active=true]:before{inset:auto 14px -1px;width:auto;height:3px;border-radius:3px 3px 0 0}.task-hero{padding:22px 18px 0}.hero-title-row{align-items:flex-start}.hero-title-row>.status-pill{display:none}.outcome-strip{overflow-x:auto;margin-right:-18px;padding-right:18px;gap:18px}.model-outcome{min-width:92px}.test-counts{min-width:180px}.section-tabs{position:sticky;top:0;gap:22px;padding:0 18px}.section-content{padding:18px 14px 44px}.brief-side{grid-template-columns:1fr}.run-selector{overflow-x:auto;grid-template-columns:repeat(3,minmax(150px,1fr))}.run-selector>button{min-width:150px}.diff-toolbar{align-items:flex-start}.diff-actions .button span{display:none}.diff-actions .button{width:34px;padding:0;font-size:0}.diff-surface[data-expanded=true]{inset:4px;border-radius:8px}.diff-surface[data-expanded=true]:before{inset:-4px}}@media(max-width:520px){.brand-lockup{padding-left:14px}.brand-context,.filter-tabs{display:none}.queue{max-height:300px}.task-list{padding-top:5px}.hero-title-row h2{font-size:24px}.hero-id{max-width:270px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-tabs{gap:19px}.surface,.run-inspector{padding:15px}.surface-header{align-items:flex-start;margin-bottom:15px}.prompt-copy{font-size:13px;line-height:1.68}.source-chip{max-width:120px}.fact-list>div{grid-template-columns:74px minmax(0,1fr)}.run-facts{margin-right:-15px;margin-left:-15px;padding-right:15px;padding-left:15px}.inspector-toolbar{align-items:flex-start;flex-direction:column}.patch-files{padding:5px;gap:7px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}