self-bench 0.3.0 → 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 (140) hide show
  1. package/.dockerignore +9 -0
  2. package/Dockerfile +38 -0
  3. package/Dockerfile.sandbox +24 -0
  4. package/README.md +103 -171
  5. package/biome.json +18 -0
  6. package/bun.lock +1182 -0
  7. package/compose.yaml +85 -0
  8. package/dist/agent-smoke-main.js +1 -1
  9. package/dist/api.d.ts.map +1 -1
  10. package/dist/api.js +40 -2
  11. package/dist/api.js.map +1 -1
  12. package/dist/artifacts.d.ts +0 -1
  13. package/dist/artifacts.d.ts.map +1 -1
  14. package/dist/artifacts.js +0 -3
  15. package/dist/artifacts.js.map +1 -1
  16. package/dist/build-metadata.d.ts +2 -0
  17. package/dist/build-metadata.d.ts.map +1 -0
  18. package/dist/build-metadata.js +2 -0
  19. package/dist/build-metadata.js.map +1 -0
  20. package/dist/cli.js +26 -8
  21. package/dist/cli.js.map +1 -1
  22. package/dist/codex-review.d.ts +2 -1
  23. package/dist/codex-review.d.ts.map +1 -1
  24. package/dist/codex-review.js +26 -22
  25. package/dist/codex-review.js.map +1 -1
  26. package/dist/config.d.ts +0 -1
  27. package/dist/config.d.ts.map +1 -1
  28. package/dist/config.js +0 -2
  29. package/dist/config.js.map +1 -1
  30. package/dist/contracts.d.ts +1 -1
  31. package/dist/contracts.d.ts.map +1 -1
  32. package/dist/eval-main.js +3 -3
  33. package/dist/evaluate.d.ts.map +1 -1
  34. package/dist/evaluate.js +12 -7
  35. package/dist/evaluate.js.map +1 -1
  36. package/dist/provenance.d.ts +0 -1
  37. package/dist/provenance.d.ts.map +1 -1
  38. package/dist/provenance.js.map +1 -1
  39. package/dist/reaudit-main.js +10 -7
  40. package/dist/reaudit-main.js.map +1 -1
  41. package/dist/repair-main.js +8 -5
  42. package/dist/repair-main.js.map +1 -1
  43. package/dist/review/assets/index-CZ3G759O.js +1568 -0
  44. package/dist/review/assets/index-DgSLzX8l.css +1 -0
  45. package/dist/review/assets/{mojo-Blby8dQK.js → mojo-DJz3ZmWd.js} +1 -1
  46. package/dist/review/assets/typst-BUadGCkm.js +1 -0
  47. package/dist/review/index.html +2 -2
  48. package/dist/sandbox-repair.bundle.js +8 -7
  49. package/dist/sandbox-repair.js +7 -7
  50. package/dist/sandbox-repair.js.map +1 -1
  51. package/dist/sandbox-review.bundle.js +29 -25
  52. package/dist/sandbox-review.js +5 -3
  53. package/dist/sandbox-review.js.map +1 -1
  54. package/dist/sandbox-validation-repair.bundle.js +9 -9
  55. package/dist/sandbox-validation-repair.js +11 -9
  56. package/dist/sandbox-validation-repair.js.map +1 -1
  57. package/dist/subscription-auth.d.ts +12 -1
  58. package/dist/subscription-auth.d.ts.map +1 -1
  59. package/dist/subscription-auth.js +16 -16
  60. package/dist/subscription-auth.js.map +1 -1
  61. package/dist/{activities.d.ts → temporal/activities.d.ts} +2 -3
  62. package/dist/temporal/activities.d.ts.map +1 -0
  63. package/dist/{activities.js → temporal/activities.js} +44 -33
  64. package/dist/temporal/activities.js.map +1 -0
  65. package/dist/{temporal.d.ts → temporal/connection.d.ts} +2 -2
  66. package/dist/temporal/connection.d.ts.map +1 -0
  67. package/dist/{temporal.js → temporal/connection.js} +1 -1
  68. package/dist/temporal/connection.js.map +1 -0
  69. package/dist/{worker-main.d.ts.map → temporal/worker-main.d.ts.map} +1 -1
  70. package/dist/{worker-main.js → temporal/worker-main.js} +5 -9
  71. package/dist/temporal/worker-main.js.map +1 -0
  72. package/dist/{workflow.d.ts → temporal/workflow.d.ts} +1 -1
  73. package/dist/temporal/workflow.d.ts.map +1 -0
  74. package/dist/temporal/workflow.js.map +1 -0
  75. package/dist/validate-main.js +1 -1
  76. package/docs/evaluations.md +68 -0
  77. package/docs/operations.md +169 -0
  78. package/docs/task-construction.md +94 -0
  79. package/package.json +33 -20
  80. package/scripts/verify-package.ts +57 -0
  81. package/scripts/write-build-metadata.ts +27 -0
  82. package/src/agent-smoke-main.ts +63 -0
  83. package/src/agent-smoke.ts +132 -0
  84. package/src/api-main.ts +12 -0
  85. package/src/api.ts +277 -0
  86. package/src/artifacts.ts +357 -0
  87. package/src/audit.ts +106 -0
  88. package/src/build-metadata.ts +3 -0
  89. package/src/cli.ts +359 -0
  90. package/src/codex-review.ts +229 -0
  91. package/src/config.ts +114 -0
  92. package/src/contracts.ts +204 -0
  93. package/src/coupling.ts +259 -0
  94. package/src/docker-executor.ts +115 -0
  95. package/src/eval-main.ts +92 -0
  96. package/src/evaluate.ts +298 -0
  97. package/src/github.ts +26 -0
  98. package/src/harbor-results.ts +142 -0
  99. package/src/harbor-task.ts +528 -0
  100. package/src/hash.ts +5 -0
  101. package/src/modal-auth.ts +11 -0
  102. package/src/modal-executor.ts +176 -0
  103. package/src/parallel.ts +24 -0
  104. package/src/process.ts +165 -0
  105. package/src/provenance.ts +457 -0
  106. package/src/reaudit-main.ts +195 -0
  107. package/src/repair-main.ts +206 -0
  108. package/src/repair.ts +55 -0
  109. package/src/run-wait.ts +40 -0
  110. package/src/sandbox-author.ts +19 -0
  111. package/src/sandbox-repair.ts +156 -0
  112. package/src/sandbox-review.ts +19 -0
  113. package/src/sandbox-validation-repair.ts +177 -0
  114. package/src/sandbox.ts +51 -0
  115. package/src/subscription-auth.ts +80 -0
  116. package/src/temporal/activities.ts +1241 -0
  117. package/src/temporal/connection.ts +23 -0
  118. package/src/temporal/worker-main.ts +28 -0
  119. package/src/temporal/workflow.ts +519 -0
  120. package/src/validate-main.ts +171 -0
  121. package/src/validation-repair.ts +94 -0
  122. package/tsconfig.build.json +13 -0
  123. package/tsconfig.json +21 -0
  124. package/dist/activities.d.ts.map +0 -1
  125. package/dist/activities.js.map +0 -1
  126. package/dist/extensions/review.d.ts +0 -3
  127. package/dist/extensions/review.d.ts.map +0 -1
  128. package/dist/extensions/review.js +0 -44
  129. package/dist/extensions/review.js.map +0 -1
  130. package/dist/review/assets/index-Dq-6DFzI.css +0 -1
  131. package/dist/review/assets/index-DurW_RD7.js +0 -1567
  132. package/dist/review/assets/typst-DHCkPAjA.js +0 -1
  133. package/dist/temporal.d.ts.map +0 -1
  134. package/dist/temporal.js.map +0 -1
  135. package/dist/worker-main.js.map +0 -1
  136. package/dist/workflow.d.ts.map +0 -1
  137. package/dist/workflow.js.map +0 -1
  138. package/src/extensions/review.ts +0 -54
  139. /package/dist/{worker-main.d.ts → temporal/worker-main.d.ts} +0 -0
  140. /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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"}
@@ -19,7 +19,7 @@ if (parsed.values.help) {
19
19
  console.log(`Run Harbor nop and oracle gates for expanded SelfBench tasks.
20
20
 
21
21
  Usage:
22
- selfbench-validate --tasks DIRECTORY --jobs DIRECTORY [options]
22
+ self-bench-validate --tasks DIRECTORY --jobs DIRECTORY [options]
23
23
 
24
24
  Options:
25
25
  --environment NAME Harbor environment (default: modal)
@@ -0,0 +1,68 @@
1
+ # Running self-bench evaluations
2
+
3
+ A self-bench export contains a manifest and one archive per accepted Harbor task:
4
+
5
+ ```text
6
+ manifest.json
7
+ tasks/
8
+ └── TASK_ID.tar.gz
9
+ └── harbor-task/
10
+ ├── task.toml
11
+ ├── instruction.md
12
+ ├── environment/
13
+ ├── tests/
14
+ └── solution/
15
+ ```
16
+
17
+ Exports include repository snapshots, held-out tests, and reference solutions. They are sensitive and unencrypted; keep them private.
18
+
19
+ ## Run one task
20
+
21
+ Extract the export and select a task:
22
+
23
+ ```bash
24
+ mkdir -p ./export ./selected-task
25
+ tar -xzf ./my-evals.tar.gz -C ./export
26
+
27
+ TASK_ID="$(jq -r '.tasks[0].taskId' ./export/manifest.json)"
28
+ tar -xzf "./export/tasks/$TASK_ID.tar.gz" -C ./selected-task
29
+ ```
30
+
31
+ Install Harbor and run Codex against it with API-key authentication:
32
+
33
+ ```bash
34
+ uv tool install --python 3.12 'harbor[modal]==0.20.1.dev202608040148'
35
+
36
+ export OPENAI_API_KEY=...
37
+ harbor run \
38
+ --path ./selected-task/harbor-task \
39
+ --agent codex \
40
+ --model gpt-5.6-sol \
41
+ --ak version=0.146.1 \
42
+ --ak reasoning_effort=high \
43
+ --env modal \
44
+ --jobs-dir ./harbor-jobs \
45
+ --yes
46
+ ```
47
+
48
+ The `solution/` directory is used only for explicit oracle validation and is never mounted for coding-agent trials.
49
+
50
+ ## Run the model matrix
51
+
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.
53
+
54
+ From the self-bench checkout:
55
+
56
+ ```bash
57
+ export OPENAI_API_KEY=...
58
+ node dist/eval-main.js \
59
+ --export ./my-evals.tar.gz \
60
+ --jobs ./matrix-jobs \
61
+ --harbor harbor \
62
+ --environment modal \
63
+ --concurrency 20
64
+ ```
65
+
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`.
@@ -0,0 +1,169 @@
1
+ # Operations and deployment
2
+
3
+ This document covers SelfBench configuration, persistence, authentication, the HTTP API, and cloud deployment. Start with the repository [README](../README.md) for the shortest local workflow.
4
+
5
+ ## Local stack
6
+
7
+ `docker compose up` starts:
8
+
9
+ - Postgres for Temporal state;
10
+ - Temporal;
11
+ - the SelfBench API;
12
+ - the SelfBench worker;
13
+ - a persistent artifact volume.
14
+
15
+ The worker mounts the host Docker socket for local sandboxes. The API never receives the Docker socket or model credentials. The local Postgres user and password are development defaults, both named `temporal`.
16
+
17
+ Temporal and artifact state live in the `selfbench_temporal-postgres` and `selfbench_artifacts` volumes. Back up those volumes before an upgrade when workflow history or generated artifacts must be retained. SelfBench has no application database migrations.
18
+
19
+ ## Credentials
20
+
21
+ self-bench requires GitHub and model credentials:
22
+
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
+ - `OPENAI_API_KEY` powers discovery, authoring, review, constrained repair, and model evaluation. This is the recommended model-authentication path.
25
+
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.
27
+
28
+ ## Execution backends
29
+
30
+ ### Docker
31
+
32
+ Build the worker's sandbox image once:
33
+
34
+ ```bash
35
+ self-bench up --backend docker
36
+ ```
37
+
38
+ Docker defaults to one activity at a time because sandboxes share the host. Each candidate defaults to 4 CPUs, 8,192 MB RAM, and 20,480 MB storage. Authored tasks may request other positive limits.
39
+
40
+ ### Modal
41
+
42
+ Authenticate Modal and mount its profile into the worker:
43
+
44
+ ```bash
45
+ modal token new
46
+
47
+ self-bench up --backend modal
48
+
49
+ # If your profile is not at ~/.modal.toml:
50
+ self-bench up --backend modal --modal-config /absolute/path/to/.modal.toml
51
+ ```
52
+
53
+ `self-bench up` selects both sandbox execution and Harbor validation for the requested backend. Modal mounts `~/.modal.toml` by default; `--modal-config` overrides that path. A secret manager may provide `MODAL_TOKEN_ID` and `MODAL_TOKEN_SECRET` instead. Empty token environment variables are removed at worker startup so they cannot override a valid mounted profile.
54
+
55
+ Modal defaults to 20 concurrent worker activities. Discovery starts eight independently retryable shards, and candidate slots are continuously refilled. Discovery and authoring stop after eight minutes without process output; review stops after five. Discovery also has a 45-minute per-attempt deadline and up to three attempts per shard.
56
+
57
+ ## CLI behavior
58
+
59
+ `self-bench run` requires an absolute or relative path to a Git checkout whose `origin` is an HTTPS or SSH GitHub URL. It pins `HEAD`; uncommitted content is excluded.
60
+
61
+ The CLI collects two types of provenance:
62
+
63
+ 1. sanitized user messages from Pi, Claude Code, and Codex sessions associated with the checkout or its worktrees;
64
+ 2. exact titles and bodies from up to 500 recent merged pull requests by non-bot authors that clear coarse tier-appropriate size thresholds.
65
+
66
+ GitHub records remain labeled `github-pull-request` and are bound to their own repository, PR number, and canonical URL. Local requests are preferred when they clearly describe the same change. Common credential forms and injected harness context are removed, but this is not a general secret scanner.
67
+
68
+ ```bash
69
+ self-bench run \
70
+ --repo /absolute/path/to/repository \
71
+ --easy-count 5 \
72
+ --medium-count 10 \
73
+ --hard-count 5 \
74
+ --model gpt-5.6-sol \
75
+ --output ./self-bench-tasks.tar.gz
76
+ ```
77
+
78
+ The three tier counts total 1–100. Each is a fixed candidate authoring budget, not an accepted-task target: rejected candidates are not replaced. Discovery expands only until it fills each requested tier budget, then accepted tasks are exported.
79
+
80
+ `--output` implies `--wait`. It reports phase changes, requires a successful Temporal terminal state, downloads with create-only filesystem semantics, and verifies the API-provided SHA-256.
81
+
82
+ A custom `--run-id` must contain 3–63 lowercase letters, digits, or hyphens and start with a letter or digit.
83
+
84
+ ## HTTP API
85
+
86
+ The CLI is the recommended client. The API exposes:
87
+
88
+ | Method | Path | Purpose |
89
+ | --- | --- | --- |
90
+ | `GET` | `/healthz` | Liveness check |
91
+ | `POST` | `/v1/provenance?runId=...` | Store sanitized provenance JSONL |
92
+ | `POST` | `/v1/runs` | Start a tiered candidate workflow |
93
+ | `GET` | `/v1/runs` | List workflows |
94
+ | `GET` | `/v1/runs/:runId` | Read progress and rejection reasons |
95
+ | `POST` | `/v1/runs/:runId/cancel` | Request Temporal cancellation |
96
+ | `GET` | `/v1/runs/:runId/export` | Download a completed export |
97
+
98
+ `/healthz` is unauthenticated. Every other route requires `Authorization: Bearer $SELFBENCH_API_TOKEN` when the token is configured. Startup fails if the API binds beyond loopback without a token.
99
+
100
+ Run status includes its phase, accepted/rejected counts, per-candidate stage, discovery wave, completed/failed shard counts, and current candidates. Failed generation runs use a new run ID; the separate agent matrix is resumable through completed Harbor job reuse.
101
+
102
+ SelfBench has no remote deletion route. Delete local artifact-volume data or GCS run prefixes through normal operator tooling.
103
+
104
+ ## Configuration
105
+
106
+ | Variable | Default | Used by |
107
+ | --- | --- | --- |
108
+ | `SELFBENCH_API_HOST` | `127.0.0.1` | API |
109
+ | `SELFBENCH_API_PORT` | `8080` | API |
110
+ | `SELFBENCH_API_TOKEN` | unset | API and CLI |
111
+ | `SELFBENCH_ARTIFACT_BACKEND` | `local` | API and worker |
112
+ | `SELFBENCH_ARTIFACT_DIR` | `.selfbench/artifacts` | Local artifact store |
113
+ | `SELFBENCH_GCS_BUCKET` | — | GCS artifact store |
114
+ | `SELFBENCH_GCS_PREFIX` | `selfbench` | GCS artifact store |
115
+ | `SELFBENCH_EXECUTION_BACKEND` | `docker` | Worker; set by `self-bench up --backend` locally |
116
+ | `SELFBENCH_HARBOR_ENVIRONMENT` | execution backend | Worker; set by `self-bench up --backend` locally |
117
+ | `SELFBENCH_ACTIVITY_CONCURRENCY` | `1` Docker, `20` Modal | Worker |
118
+ | `SELFBENCH_MODAL_APP` | `selfbench` | Modal worker |
119
+ | `SELFBENCH_MODAL_ENVIRONMENT` | — | Modal worker |
120
+ | `SELFBENCH_MODAL_IMAGE` | `node:22-bookworm` | Modal worker |
121
+ | `SELFBENCH_MODAL_CONFIG_PATH` | `/dev/null` | Compose host mount; set by `self-bench up --modal-config` locally |
122
+ | `SELFBENCH_TEMPORAL_ADDRESS` | `127.0.0.1:7233` | API and worker |
123
+ | `SELFBENCH_TEMPORAL_NAMESPACE` | `default` | API and worker |
124
+ | `SELFBENCH_TASK_QUEUE` | `selfbench-dev` | API and worker |
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 |
128
+ | `GH_TOKEN` | — | Worker GitHub reads |
129
+ | `CODEX_AUTH_JSON_PATH` | `~/.codex/auth.json` | Optional matrix subscription-auth file |
130
+
131
+ ## Cloud topology
132
+
133
+ The API is a regular request-oriented HTTP service suitable for Cloud Run. Deploy `Dockerfile` with its default `node dist/api-main.js` command and port 8080:
134
+
135
+ ```text
136
+ SELFBENCH_API_HOST=0.0.0.0
137
+ SELFBENCH_API_TOKEN=...
138
+ SELFBENCH_ARTIFACT_BACKEND=gcs
139
+ SELFBENCH_GCS_BUCKET=...
140
+ SELFBENCH_GCS_PREFIX=selfbench
141
+ SELFBENCH_TEMPORAL_ADDRESS=...
142
+ SELFBENCH_TEMPORAL_NAMESPACE=...
143
+ SELFBENCH_TEMPORAL_API_KEY=...
144
+ SELFBENCH_TEMPORAL_TLS=true
145
+ ```
146
+
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:
148
+
149
+ ```text
150
+ SELFBENCH_EXECUTION_BACKEND=modal
151
+ SELFBENCH_HARBOR_ENVIRONMENT=modal
152
+ MODAL_TOKEN_ID=...
153
+ MODAL_TOKEN_SECRET=...
154
+ GH_TOKEN=...
155
+ OPENAI_API_KEY=...
156
+ ```
157
+
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.
159
+
160
+ This repository defines the application boundary, not turnkey cloud infrastructure. Project, region, ingress, IAM, GCS, and Temporal provisioning remain deployment-specific.
161
+
162
+ ## Security boundary
163
+
164
+ - Exports contain source snapshots, held-out tests, and reference solutions. They are sensitive and unencrypted.
165
+ - Artifact references carry byte length and SHA-256; reads verify integrity.
166
+ - Local artifact paths and GCS object names are confined to their configured roots. GCS IAM should enforce the same prefix independently.
167
+ - Sandboxes receive only the selected model credential: `OPENAI_API_KEY` by default, or a stage-specific subscription credential for compatibility deployments.
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.
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.