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,19 +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 { createArtifactStore } from "./artifacts.js";
9
- import { auditTaskDefinition } from "./audit.js";
10
- import { COUPLING_REVIEW_MODEL, couplingReviewInput, couplingReviewSchema, } from "./codex-review.js";
11
- import { artifactRefSchema, candidateSchema, taskDefinitionSchema, } from "./contracts.js";
12
- import { buildCouplingEvidence, discoverContractArtifacts, resolveCouplingReview, scanBaseContractArtifacts, } from "./coupling.js";
13
- import { assertPullRequestBelongsToRepository } from "./github.js";
14
- import { harborInfrastructureError, readHarborJobResult, } from "./harbor-results.js";
15
- import { refreshHarborTask } from "./harbor-task.js";
16
- import { sha256 } from "./hash.js";
17
- import { runCommand } from "./process.js";
18
- import { assertProvenanceMatchesPullRequest } from "./provenance.js";
19
- import { createSandboxExecutor } from "./sandbox.js";
20
- import { githubToken, loadCodexSubscriptionAuth, loadPiSubscriptionAuth, } from "./subscription-auth.js";
8
+ import { createArtifactStore } from "../artifacts.js";
9
+ import { auditTaskDefinition } from "../audit.js";
10
+ import { COUPLING_REVIEW_MODEL, couplingReviewInput, couplingReviewSchema, } from "../codex-review.js";
11
+ import { candidateSchema, taskDefinitionSchema, } from "../contracts.js";
12
+ import { buildCouplingEvidence, discoverContractArtifacts, resolveCouplingReview, scanBaseContractArtifacts, } from "../coupling.js";
13
+ import { assertPullRequestBelongsToRepository } from "../github.js";
14
+ import { harborInfrastructureError, readHarborJobResult, } from "../harbor-results.js";
15
+ import { refreshHarborTask } from "../harbor-task.js";
16
+ import { sha256 } from "../hash.js";
17
+ import { runCommand } from "../process.js";
18
+ import { assertProvenanceMatchesPullRequest } from "../provenance.js";
19
+ import { createSandboxExecutor } from "../sandbox.js";
20
+ import { githubToken, loadCodexModelAuth, loadPiModelAuth } from "../subscription-auth.js";
21
21
  const HARBOR_INFRASTRUCTURE_FAILURE_TYPE = "HarborInfrastructureFailure";
22
22
  const DISCOVERY_TIMEOUT_MS = 45 * 60 * 1000;
23
23
  const AGENT_INACTIVITY_TIMEOUT_MS = 8 * 60 * 1000;
@@ -81,7 +81,7 @@ async function discoverCandidateShard(store, sandbox, input) {
81
81
  else {
82
82
  const [extension, piAuth, ghToken] = await Promise.all([
83
83
  readAsset("src/extensions/discovery.ts"),
84
- loadPiSubscriptionAuth(),
84
+ loadPiModelAuth(),
85
85
  githubToken(),
86
86
  ]);
87
87
  Context.current().heartbeat(`starting discovery wave ${input.wave} shard ${input.shardIndex} over ${shard.length} messages`);
@@ -97,7 +97,8 @@ async function discoverCandidateShard(store, sandbox, input) {
97
97
  ],
98
98
  outputPaths: ["/work/discovery.json"],
99
99
  secrets: {
100
- SELFBENCH_PI_AUTH_JSON: piAuth,
100
+ ...(piAuth.apiKey ? { OPENAI_API_KEY: piAuth.apiKey } : {}),
101
+ ...(piAuth.authJson ? { SELFBENCH_PI_AUTH_JSON: piAuth.authJson } : {}),
101
102
  ...(ghToken ? { GH_TOKEN: ghToken } : {}),
102
103
  },
103
104
  environment: {
@@ -188,7 +189,7 @@ async function authorCandidate(store, sandbox, input) {
188
189
  readAsset("src/extensions/authoring.ts"),
189
190
  readAsset("src/skills/selfbench/SKILL.md"),
190
191
  readAsset("dist/sandbox-author.bundle.js"),
191
- loadPiSubscriptionAuth(),
192
+ loadPiModelAuth(),
192
193
  githubToken(),
193
194
  ]);
194
195
  const prompt = authoringPrompt(run, candidate);
@@ -206,7 +207,8 @@ async function authorCandidate(store, sandbox, input) {
206
207
  ],
207
208
  outputPaths: ["/work/task.tar.gz", "/work/definition.json"],
208
209
  secrets: {
209
- SELFBENCH_PI_AUTH_JSON: piAuth,
210
+ ...(piAuth.apiKey ? { OPENAI_API_KEY: piAuth.apiKey } : {}),
211
+ ...(piAuth.authJson ? { SELFBENCH_PI_AUTH_JSON: piAuth.authJson } : {}),
210
212
  ...(ghToken ? { GH_TOKEN: ghToken } : {}),
211
213
  },
212
214
  environment: {
@@ -333,9 +335,8 @@ async function repairValidationTask(store, sandbox, input) {
333
335
  store.get(input.task.bundle),
334
336
  store.get(input.task.definition),
335
337
  readAsset("dist/sandbox-validation-repair.bundle.js"),
336
- loadPiSubscriptionAuth(),
337
- ]);
338
- // Full verifier logs remain durable artifacts. The validation reason already carries bounded
338
+ loadPiModelAuth(),
339
+ ]); // Full verifier logs remain durable artifacts. The validation reason already carries bounded
339
340
  // tails for failed gates, which keeps the repair prompt within the model context window.
340
341
  const diagnostics = Buffer.from(input.validation.reason ?? "validation failed without a reason");
341
342
  const result = await withActivityHeartbeats(`running validation repair sandbox for ${input.task.taskId}`, (options) => sandbox.run({
@@ -354,7 +355,10 @@ async function repairValidationTask(store, sandbox, input) {
354
355
  "/work/repaired-test.patch",
355
356
  "/work/repair-report.json",
356
357
  ],
357
- secrets: { SELFBENCH_PI_AUTH_JSON: authJson },
358
+ secrets: {
359
+ ...(authJson.apiKey ? { OPENAI_API_KEY: authJson.apiKey } : {}),
360
+ ...(authJson.authJson ? { SELFBENCH_PI_AUTH_JSON: authJson.authJson } : {}),
361
+ },
358
362
  environment: { SELFBENCH_REPAIR_MODEL: input.run.authoring.model },
359
363
  command: [
360
364
  "node",
@@ -426,7 +430,7 @@ async function reviewTask(store, sandbox, input) {
426
430
  });
427
431
  const [reviewer, authJson] = await Promise.all([
428
432
  readAsset("dist/sandbox-review.bundle.js"),
429
- loadPiSubscriptionAuth(),
433
+ loadPiModelAuth(),
430
434
  ]);
431
435
  const result = await withActivityHeartbeats(`running sandboxed coupling review for ${input.task.taskId}`, (options) => sandbox.run({
432
436
  runId: input.run.runId,
@@ -441,7 +445,10 @@ async function reviewTask(store, sandbox, input) {
441
445
  },
442
446
  ],
443
447
  outputPaths: ["/work/review.json"],
444
- secrets: { SELFBENCH_PI_AUTH_JSON: authJson },
448
+ secrets: {
449
+ ...(authJson.apiKey ? { OPENAI_API_KEY: authJson.apiKey } : {}),
450
+ ...(authJson.authJson ? { SELFBENCH_PI_AUTH_JSON: authJson.authJson } : {}),
451
+ },
445
452
  environment: { SELFBENCH_REVIEW_OUTPUT: "/work/review.json" },
446
453
  command: ["node", "/work/sandbox-review.js"],
447
454
  }, options));
@@ -485,7 +492,7 @@ async function repairTask(store, sandbox, input) {
485
492
  store.get(input.task.bundle),
486
493
  store.get(input.review),
487
494
  readAsset("dist/sandbox-repair.bundle.js"),
488
- loadCodexSubscriptionAuth(),
495
+ loadCodexModelAuth(),
489
496
  ]);
490
497
  const result = await withActivityHeartbeats(`running test repair sandbox for ${input.task.taskId}`, (options) => sandbox.run({
491
498
  runId: input.run.runId,
@@ -498,7 +505,10 @@ async function repairTask(store, sandbox, input) {
498
505
  { path: "/work/sandbox-repair.js", contents: repairer },
499
506
  ],
500
507
  outputPaths: ["/work/repaired-task.tar.gz", "/work/repair-report.json"],
501
- secrets: { SELFBENCH_CODEX_AUTH_JSON: authJson },
508
+ secrets: {
509
+ ...(authJson.apiKey ? { OPENAI_API_KEY: authJson.apiKey } : {}),
510
+ ...(authJson.authJson ? { SELFBENCH_CODEX_AUTH_JSON: authJson.authJson } : {}),
511
+ },
502
512
  environment: { SELFBENCH_REPAIR_MODEL: input.run.authoring.model },
503
513
  command: [
504
514
  "node",
@@ -624,7 +634,7 @@ function modalAgentScript(extension, tool) {
624
634
  clone_source
625
635
  cd /work/repo
626
636
  pi --print --mode json --no-session --no-approve --no-skills --no-prompt-templates --no-context-files --no-extensions \\
627
- --extension /work/${extension} --provider openai-codex --model "$AUTHOR_MODEL" --thinking high \\
637
+ --extension /work/${extension} --provider "$(model_provider)" --model "$AUTHOR_MODEL" --thinking high \\
628
638
  --tools read,bash,grep,find,ls,${tool} "$(cat /work/prompt.txt)" 2>&1`;
629
639
  }
630
640
  function authoringScript() {
@@ -634,7 +644,7 @@ mkdir -p /work/tasks
634
644
  cd /work/repo
635
645
  pi --print --mode json --no-session --no-approve --no-prompt-templates --no-context-files --no-extensions \\
636
646
  --skill /work/selfbench-skill --extension /work/authoring.ts \\
637
- --provider openai-codex --model "$AUTHOR_MODEL" --thinking high \\
647
+ --provider "$(model_provider)" --model "$AUTHOR_MODEL" --thinking high \\
638
648
  --tools read,bash,grep,find,ls,submit_task "$(cat /work/prompt.txt)" 2>&1
639
649
  node /work/sandbox-author.js /work/tasks /work/repo /work/harbor-task
640
650
  cp /work/tasks/*/definition.json /work/definition.json
@@ -643,9 +653,13 @@ tar -czf /work/task.tar.gz -C /work harbor-task`;
643
653
  function sandboxBootstrap() {
644
654
  return `set -euo pipefail
645
655
  mkdir -p "$HOME/.pi/agent"
646
- printf '%s' "$SELFBENCH_PI_AUTH_JSON" > "$HOME/.pi/agent/auth.json"
656
+ if [ -n "\${SELFBENCH_PI_AUTH_JSON:-}" ]; then
657
+ printf '%s' "$SELFBENCH_PI_AUTH_JSON" > "$HOME/.pi/agent/auth.json"
658
+ chmod 600 "$HOME/.pi/agent/auth.json"
659
+ fi
647
660
  printf '%s\n' '{"transport":"auto"}' > "$HOME/.pi/agent/settings.json"
648
- chmod 600 "$HOME/.pi/agent/auth.json" "$HOME/.pi/agent/settings.json"
661
+ chmod 600 "$HOME/.pi/agent/settings.json"
662
+ model_provider() { [ -n "\${OPENAI_API_KEY:-}" ] && printf openai || printf openai-codex; }
649
663
  cleanup() { rm -f "$HOME/.pi/agent/auth.json" "$HOME/.pi/agent/settings.json" "$HOME/.git-credentials"; }
650
664
  trap cleanup EXIT
651
665
  clone_source() {
@@ -797,7 +811,7 @@ function parseProvenance(value) {
797
811
  .map((line) => JSON.parse(line));
798
812
  }
799
813
  function readAsset(relativePath) {
800
- const root = resolve(dirname(fileURLToPath(import.meta.url)), "..");
814
+ const root = resolve(dirname(fileURLToPath(import.meta.url)), "../..");
801
815
  return readFile(join(root, relativePath));
802
816
  }
803
817
  function rewards(trial) {
@@ -817,7 +831,4 @@ function numberValue(value) {
817
831
  function isRecord(value) {
818
832
  return typeof value === "object" && value !== null && !Array.isArray(value);
819
833
  }
820
- export function parseArtifactReference(value) {
821
- return artifactRefSchema.parse(value);
822
- }
823
834
  //# sourceMappingURL=activities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activities.js","sourceRoot":"","sources":["../../src/temporal/activities.ts"],"names":[],"mappings":"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"}
@@ -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
  export declare function connectTemporalClient(config: SelfBenchConfig["temporal"]): Promise<Connection>;
5
5
  export declare function connectTemporalWorker(config: SelfBenchConfig["temporal"]): Promise<NativeConnection>;
6
- //# sourceMappingURL=temporal.d.ts.map
6
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/temporal/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,eAAe,CAAC,UAAU,CAAC,GAClC,OAAO,CAAC,UAAU,CAAC,CAMrB;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,eAAe,CAAC,UAAU,CAAC,GAClC,OAAO,CAAC,gBAAgB,CAAC,CAM3B"}
@@ -14,4 +14,4 @@ export async function connectTemporalWorker(config) {
14
14
  ...(config.apiKey ? { apiKey: config.apiKey } : {}),
15
15
  });
16
16
  }
17
- //# sourceMappingURL=temporal.js.map
17
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/temporal/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAmC;IAEnC,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC;QAC9B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAmC;IAEnC,OAAO,MAAM,gBAAgB,CAAC,OAAO,CAAC;QACpC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker-main.d.ts","sourceRoot":"","sources":["../src/worker-main.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"worker-main.d.ts","sourceRoot":"","sources":["../../src/temporal/worker-main.ts"],"names":[],"mappings":""}
@@ -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
  removeEmptyModalCredentialOverrides();
10
9
  const config = loadConfig();
11
10
  if (config.execution.kind === "docker" || config.harborEnvironment === "docker") {
@@ -13,10 +12,7 @@ if (config.execution.kind === "docker" || config.harborEnvironment === "docker")
13
12
  await runCommand("docker", ["compose", "version"], { timeoutMs: 30_000 });
14
13
  }
15
14
  const connection = await connectTemporalWorker(config.temporal);
16
- const javascriptWorkflow = fileURLToPath(new URL("./workflow.js", import.meta.url));
17
- const workflowsPath = existsSync(javascriptWorkflow)
18
- ? javascriptWorkflow
19
- : fileURLToPath(new URL("./workflow.ts", import.meta.url));
15
+ const workflowsPath = fileURLToPath(new URL("./workflow.js", import.meta.url));
20
16
  const worker = await Worker.create({
21
17
  connection,
22
18
  namespace: config.temporal.namespace,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-main.js","sourceRoot":"","sources":["../../src/temporal/worker-main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,mCAAmC,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,mCAAmC,EAAE,CAAC;AACtC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;AAC5B,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;IAChF,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5D,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;AAC5E,CAAC;AACD,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChE,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;IACjC,UAAU;IACV,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;IACpC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;IACpC,aAAa;IACb,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC;IACpC,mCAAmC,EAAE,MAAM,CAAC,mBAAmB;CAChE,CAAC,CAAC;AACH,OAAO,CAAC,GAAG,CACT,4BAA4B,MAAM,CAAC,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,8BAA8B,MAAM,CAAC,mBAAmB,EAAE,CAC7I,CAAC;AACF,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
+ import type { RunRequest, RunResult, RunStatus } from "../contracts.js";
1
2
  import type { SelfBenchActivities } from "./activities.js";
2
- import type { RunRequest, RunResult, RunStatus } from "./contracts.js";
3
3
  export declare const statusQuery: import("@temporalio/workflow").QueryDefinition<RunStatus, [], string>;
4
4
  export declare function selfBenchRunWorkflow(input: RunRequest): Promise<RunResult>;
5
5
  export declare function executeRun(input: RunRequest, activitySet: SelfBenchActivities, installStatusQuery?: (status: () => RunStatus) => void): Promise<RunResult>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/temporal/workflow.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAMV,UAAU,EACV,SAAS,EACT,SAAS,EAEV,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAKV,mBAAmB,EAGpB,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,WAAW,uEAAmC,CAAC;AAqD5D,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAEhF;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,mBAAmB,EAChC,kBAAkB,GAAE,CAAC,MAAM,EAAE,MAAM,SAAS,KAAK,IAAsB,GACtE,OAAO,CAAC,SAAS,CAAC,CAqQpB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/temporal/workflow.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- # Running SelfBench evaluations
1
+ # Running self-bench evaluations
2
2
 
3
- A SelfBench export contains a manifest and one archive per accepted Harbor task:
3
+ A self-bench export contains a manifest and one archive per accepted Harbor task:
4
4
 
5
5
  ```text
6
6
  manifest.json
@@ -28,14 +28,13 @@ TASK_ID="$(jq -r '.tasks[0].taskId' ./export/manifest.json)"
28
28
  tar -xzf "./export/tasks/$TASK_ID.tar.gz" -C ./selected-task
29
29
  ```
30
30
 
31
- Install Harbor and run Codex against it:
31
+ Install Harbor and run Codex against it with API-key authentication:
32
32
 
33
33
  ```bash
34
34
  uv tool install --python 3.12 'harbor[modal]==0.20.1.dev202608040148'
35
35
 
36
- export CODEX_FORCE_AUTH_JSON=1
37
- export CODEX_AUTH_JSON_PATH="$HOME/.codex/auth.json"
38
- env -u OPENAI_API_KEY harbor run \
36
+ export OPENAI_API_KEY=...
37
+ harbor run \
39
38
  --path ./selected-task/harbor-task \
40
39
  --agent codex \
41
40
  --model gpt-5.6-sol \
@@ -50,18 +49,20 @@ The `solution/` directory is used only for explicit oracle validation and is nev
50
49
 
51
50
  ## Run the model matrix
52
51
 
53
- The included matrix runner evaluates every exported task with `gpt-5.6-sol`, `gpt-5.6-terra`, and `gpt-5.6-luna`. It reuses completed Harbor jobs after a restart.
52
+ The included matrix runner evaluates every exported task with `gpt-5.6-sol`, `gpt-5.6-terra`, and `gpt-5.6-luna`, all at high reasoning. It reuses completed Harbor jobs after a restart.
54
53
 
55
- From the SelfBench checkout:
54
+ From the self-bench checkout:
56
55
 
57
56
  ```bash
58
- env -u OPENAI_API_KEY node dist/eval-main.js \
57
+ export OPENAI_API_KEY=...
58
+ node dist/eval-main.js \
59
59
  --export ./my-evals.tar.gz \
60
60
  --jobs ./matrix-jobs \
61
61
  --harbor harbor \
62
62
  --environment modal \
63
- --concurrency 20 \
64
- --auth "$HOME/.codex/auth.json"
63
+ --concurrency 20
65
64
  ```
66
65
 
67
- The harness requires ChatGPT-backed Codex authentication and does not forward `OPENAI_API_KEY`.
66
+ The runner writes per-task Harbor jobs and a combined `./matrix-jobs/summary.json`.
67
+
68
+ ChatGPT subscription authentication remains supported for existing deployments: omit `OPENAI_API_KEY` and pass `--auth /path/to/codex-auth.json`.
@@ -18,21 +18,12 @@ Temporal and artifact state live in the `selfbench_temporal-postgres` and `selfb
18
18
 
19
19
  ## Credentials
20
20
 
21
- SelfBench uses three separate credentials:
21
+ self-bench requires GitHub and model credentials:
22
22
 
23
23
  - `gh auth login` supplies read access to merged pull requests. Export `GH_TOKEN="$(gh auth token)"` for the worker. Write access is not required.
24
- - Pi's `openai-codex` entry in `~/.pi/agent/auth.json` powers discovery, authoring, and review.
25
- - `~/.codex/auth.json` powers the constrained repair step and agent evaluation.
24
+ - `OPENAI_API_KEY` powers discovery, authoring, review, constrained repair, and model evaluation. This is the recommended model-authentication path.
26
25
 
27
- Both model credentials must be backed by a ChatGPT subscription. SelfBench removes API-key fields and does not fall back to `OPENAI_API_KEY`.
28
-
29
- Compose mounts the default auth files read-only. Override their host paths before starting the stack when necessary:
30
-
31
- ```bash
32
- export SELFBENCH_PI_AUTH_PATH=/absolute/path/to/pi-auth.json
33
- export SELFBENCH_CODEX_AUTH_PATH=/absolute/path/to/codex-auth.json
34
- self-bench up
35
- ```
26
+ Existing deployments may continue using ChatGPT subscription authentication by providing both `SELFBENCH_PI_AUTH_JSON` and `SELFBENCH_CODEX_AUTH_JSON`. API-key authentication takes precedence when `OPENAI_API_KEY` is set.
36
27
 
37
28
  ## Execution backends
38
29
 
@@ -131,11 +122,11 @@ SelfBench has no remote deletion route. Delete local artifact-volume data or GCS
131
122
  | `SELFBENCH_TEMPORAL_ADDRESS` | `127.0.0.1:7233` | API and worker |
132
123
  | `SELFBENCH_TEMPORAL_NAMESPACE` | `default` | API and worker |
133
124
  | `SELFBENCH_TASK_QUEUE` | `selfbench-dev` | API and worker |
134
- | `SELFBENCH_PI_AUTH_PATH` | `~/.pi/agent/auth.json` | Compose host mount |
135
- | `SELFBENCH_PI_AUTH_JSON` | — | Worker secret alternative |
136
- | `SELFBENCH_CODEX_AUTH_PATH` | `~/.codex/auth.json` | Compose host mount |
125
+ | `OPENAI_API_KEY` | | Worker sandboxes and matrix harness |
126
+ | `SELFBENCH_PI_AUTH_JSON` | — | Optional Pi subscription-auth fallback |
127
+ | `SELFBENCH_CODEX_AUTH_JSON` | | Optional Codex subscription-auth fallback |
137
128
  | `GH_TOKEN` | — | Worker GitHub reads |
138
- | `CODEX_AUTH_JSON_PATH` | `~/.codex/auth.json` | Worker and matrix harness |
129
+ | `CODEX_AUTH_JSON_PATH` | `~/.codex/auth.json` | Optional matrix subscription-auth file |
139
130
 
140
131
  ## Cloud topology
141
132
 
@@ -153,7 +144,7 @@ SELFBENCH_TEMPORAL_API_KEY=...
153
144
  SELFBENCH_TEMPORAL_TLS=true
154
145
  ```
155
146
 
156
- Run `node dist/worker-main.js` from the same image digest on a long-running container platform, not a scale-to-zero request service. Give it the same Temporal, task queue, and GCS configuration plus:
147
+ Run `node dist/temporal/worker-main.js` from the same image digest on a long-running container platform, not a scale-to-zero request service. Give it the same Temporal, task queue, and GCS configuration plus:
157
148
 
158
149
  ```text
159
150
  SELFBENCH_EXECUTION_BACKEND=modal
@@ -161,7 +152,7 @@ SELFBENCH_HARBOR_ENVIRONMENT=modal
161
152
  MODAL_TOKEN_ID=...
162
153
  MODAL_TOKEN_SECRET=...
163
154
  GH_TOKEN=...
164
- SELFBENCH_PI_AUTH_JSON=...
155
+ OPENAI_API_KEY=...
165
156
  ```
166
157
 
167
158
  The worker owns model, GitHub, Modal, and Harbor credentials. Use separate least-privilege service accounts and a secret manager. Grant GCS object access only to the configured prefix, use a TLS-enabled Temporal namespace, and keep API/worker image digests and `SELFBENCH_TASK_QUEUE` identical.
@@ -173,6 +164,6 @@ This repository defines the application boundary, not turnkey cloud infrastructu
173
164
  - Exports contain source snapshots, held-out tests, and reference solutions. They are sensitive and unencrypted.
174
165
  - Artifact references carry byte length and SHA-256; reads verify integrity.
175
166
  - Local artifact paths and GCS object names are confined to their configured roots. GCS IAM should enforce the same prefix independently.
176
- - Author and review sandboxes receive only Pi's validated `openai-codex` OAuth entry. Repair receives a validated ChatGPT Codex token set with API-key fields removed.
167
+ - Sandboxes receive only the selected model credential: `OPENAI_API_KEY` by default, or a stage-specific subscription credential for compatibility deployments.
177
168
  - Sandboxes contain both a source checkout and a short-lived model credential. Use SelfBench only with repositories you trust to execute; it is not a malware-analysis service.
178
169
  - Docker uses disposable containers and volumes and removes them after normal completion. A host crash can leave resources for an operator to inspect and remove. Modal uses disposable Sandboxes.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "self-bench",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "description": "Turn completed repository changes into durable, private Harbor evaluations",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -50,36 +50,36 @@
50
50
  "check": "biome check . && tsc --noEmit -p tsconfig.json && bun run typecheck:review",
51
51
  "dev:api": "tsx src/api-main.ts",
52
52
  "dev:review": "vite --config review/vite.config.ts",
53
- "dev:worker": "tsx src/worker-main.ts",
53
+ "dev:worker": "tsx src/temporal/worker-main.ts",
54
54
  "format": "biome format --write .",
55
55
  "start:api": "node dist/api-main.js",
56
- "start:worker": "node dist/worker-main.js",
56
+ "start:worker": "node dist/temporal/worker-main.js",
57
57
  "test": "bun test tests review/src",
58
58
  "typecheck:review": "tsc --noEmit -p review/tsconfig.json",
59
59
  "validate": "bun run check && bun run test && bun run build && bun run verify:package"
60
60
  },
61
61
  "dependencies": {
62
62
  "@google-cloud/storage": "^7.17.0",
63
- "@pierre/diffs": "1.2.12",
64
63
  "@temporalio/activity": "^1.13.2",
65
64
  "@temporalio/client": "^1.13.2",
66
65
  "@temporalio/common": "^1.13.2",
67
66
  "@temporalio/worker": "^1.13.2",
68
67
  "@temporalio/workflow": "^1.13.2",
69
68
  "modal": "^0.9.0",
70
- "react": "19.2.7",
71
- "react-dom": "19.2.7",
72
69
  "zod": "^4.1.12"
73
70
  },
74
71
  "devDependencies": {
75
72
  "@biomejs/biome": "^2.2.6",
76
73
  "@earendil-works/pi-coding-agent": "0.84.0",
74
+ "@pierre/diffs": "1.2.12",
77
75
  "@sinclair/typebox": "0.34.41",
78
76
  "@types/bun": "^1.3.14",
79
77
  "@types/node": "24.10.13",
80
78
  "@types/react": "19.2.14",
81
79
  "@types/react-dom": "19.2.3",
82
80
  "@vitejs/plugin-react": "4.7.0",
81
+ "react": "19.2.7",
82
+ "react-dom": "19.2.7",
83
83
  "tsx": "^4.20.6",
84
84
  "typescript": "5.9.3",
85
85
  "vite": "7.3.1"
package/src/api.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import { timingSafeEqual } from "node:crypto";
2
+ import { readFile } from "node:fs/promises";
2
3
  import { createServer, type IncomingMessage, type ServerResponse } from "node:http";
4
+ import { dirname, join } from "node:path";
3
5
  import { pipeline } from "node:stream/promises";
6
+ import { fileURLToPath } from "node:url";
4
7
  import { Client } from "@temporalio/client";
5
8
  import { z } from "zod";
6
9
  import { createArtifactStore } from "./artifacts.js";
@@ -12,8 +15,8 @@ import {
12
15
  repositoryRefSchema,
13
16
  runRequestSchema,
14
17
  } from "./contracts.js";
15
- import { connectTemporalClient } from "./temporal.js";
16
- import { selfBenchRunWorkflow, statusQuery } from "./workflow.js";
18
+ import { connectTemporalClient } from "./temporal/connection.js";
19
+ import { selfBenchRunWorkflow, statusQuery } from "./temporal/workflow.js";
17
20
 
18
21
  const submissionSchema = z.object({
19
22
  runId: z.string().regex(/^[a-z0-9][a-z0-9-]{2,62}$/),
@@ -39,6 +42,13 @@ export async function startApi(config: SelfBenchConfig): Promise<() => Promise<v
39
42
  sendJson(response, 200, { ok: true });
40
43
  return;
41
44
  }
45
+ if (
46
+ request.method === "GET" &&
47
+ (url.pathname === "/" || url.pathname.startsWith("/assets/"))
48
+ ) {
49
+ await sendReviewAsset(response, url.pathname);
50
+ return;
51
+ }
42
52
  if (!authorized(request, config.apiToken)) {
43
53
  sendJson(response, 401, { error: "unauthorized" });
44
54
  return;
@@ -229,6 +239,34 @@ function authorized(request: IncomingMessage, token: string | undefined): boolea
229
239
  );
230
240
  }
231
241
 
242
+ async function sendReviewAsset(response: ServerResponse, pathname: string): Promise<void> {
243
+ const relativePath = pathname === "/" ? "index.html" : pathname.slice(1);
244
+ const root = join(dirname(fileURLToPath(import.meta.url)), "review");
245
+ const path = join(root, relativePath);
246
+ if (!path.startsWith(`${root}/`)) {
247
+ sendJson(response, 400, { error: "invalid asset path" });
248
+ return;
249
+ }
250
+ try {
251
+ const body = await readFile(path);
252
+ response.writeHead(200, {
253
+ "content-type": contentType(path),
254
+ "content-length": body.byteLength,
255
+ "cache-control": pathname === "/" ? "no-cache" : "public, max-age=31536000, immutable",
256
+ });
257
+ response.end(body);
258
+ } catch {
259
+ sendJson(response, 404, { error: "asset not found" });
260
+ }
261
+ }
262
+
263
+ function contentType(path: string): string {
264
+ if (path.endsWith(".html")) return "text/html; charset=utf-8";
265
+ if (path.endsWith(".css")) return "text/css; charset=utf-8";
266
+ if (path.endsWith(".js")) return "text/javascript; charset=utf-8";
267
+ return "application/octet-stream";
268
+ }
269
+
232
270
  function sendJson(response: ServerResponse, status: number, value: unknown): void {
233
271
  const body = `${JSON.stringify(value, null, 2)}\n`;
234
272
  response.writeHead(status, {