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.
- package/.dockerignore +9 -0
- package/Dockerfile +38 -0
- package/Dockerfile.sandbox +24 -0
- package/README.md +103 -171
- package/biome.json +18 -0
- package/bun.lock +1182 -0
- package/compose.yaml +85 -0
- package/dist/agent-smoke-main.js +1 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +40 -2
- package/dist/api.js.map +1 -1
- package/dist/artifacts.d.ts +0 -1
- package/dist/artifacts.d.ts.map +1 -1
- package/dist/artifacts.js +0 -3
- package/dist/artifacts.js.map +1 -1
- package/dist/build-metadata.d.ts +2 -0
- package/dist/build-metadata.d.ts.map +1 -0
- package/dist/build-metadata.js +2 -0
- package/dist/build-metadata.js.map +1 -0
- package/dist/cli.js +26 -8
- package/dist/cli.js.map +1 -1
- package/dist/codex-review.d.ts +2 -1
- package/dist/codex-review.d.ts.map +1 -1
- package/dist/codex-review.js +26 -22
- package/dist/codex-review.js.map +1 -1
- package/dist/config.d.ts +0 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -2
- package/dist/config.js.map +1 -1
- package/dist/contracts.d.ts +1 -1
- package/dist/contracts.d.ts.map +1 -1
- package/dist/eval-main.js +3 -3
- package/dist/evaluate.d.ts.map +1 -1
- package/dist/evaluate.js +12 -7
- package/dist/evaluate.js.map +1 -1
- package/dist/provenance.d.ts +0 -1
- package/dist/provenance.d.ts.map +1 -1
- package/dist/provenance.js.map +1 -1
- package/dist/reaudit-main.js +10 -7
- package/dist/reaudit-main.js.map +1 -1
- package/dist/repair-main.js +8 -5
- package/dist/repair-main.js.map +1 -1
- package/dist/review/assets/index-CZ3G759O.js +1568 -0
- package/dist/review/assets/index-DgSLzX8l.css +1 -0
- package/dist/review/assets/{mojo-Blby8dQK.js → mojo-DJz3ZmWd.js} +1 -1
- package/dist/review/assets/typst-BUadGCkm.js +1 -0
- package/dist/review/index.html +2 -2
- package/dist/sandbox-repair.bundle.js +8 -7
- package/dist/sandbox-repair.js +7 -7
- package/dist/sandbox-repair.js.map +1 -1
- package/dist/sandbox-review.bundle.js +29 -25
- package/dist/sandbox-review.js +5 -3
- package/dist/sandbox-review.js.map +1 -1
- package/dist/sandbox-validation-repair.bundle.js +9 -9
- package/dist/sandbox-validation-repair.js +11 -9
- package/dist/sandbox-validation-repair.js.map +1 -1
- package/dist/subscription-auth.d.ts +12 -1
- package/dist/subscription-auth.d.ts.map +1 -1
- package/dist/subscription-auth.js +16 -16
- package/dist/subscription-auth.js.map +1 -1
- package/dist/{activities.d.ts → temporal/activities.d.ts} +2 -3
- package/dist/temporal/activities.d.ts.map +1 -0
- package/dist/{activities.js → temporal/activities.js} +44 -33
- package/dist/temporal/activities.js.map +1 -0
- package/dist/{temporal.d.ts → temporal/connection.d.ts} +2 -2
- package/dist/temporal/connection.d.ts.map +1 -0
- package/dist/{temporal.js → temporal/connection.js} +1 -1
- package/dist/temporal/connection.js.map +1 -0
- package/dist/{worker-main.d.ts.map → temporal/worker-main.d.ts.map} +1 -1
- package/dist/{worker-main.js → temporal/worker-main.js} +5 -9
- package/dist/temporal/worker-main.js.map +1 -0
- package/dist/{workflow.d.ts → temporal/workflow.d.ts} +1 -1
- package/dist/temporal/workflow.d.ts.map +1 -0
- package/dist/temporal/workflow.js.map +1 -0
- package/dist/validate-main.js +1 -1
- package/docs/evaluations.md +68 -0
- package/docs/operations.md +169 -0
- package/docs/task-construction.md +94 -0
- package/package.json +33 -20
- package/scripts/verify-package.ts +57 -0
- package/scripts/write-build-metadata.ts +27 -0
- package/src/agent-smoke-main.ts +63 -0
- package/src/agent-smoke.ts +132 -0
- package/src/api-main.ts +12 -0
- package/src/api.ts +277 -0
- package/src/artifacts.ts +357 -0
- package/src/audit.ts +106 -0
- package/src/build-metadata.ts +3 -0
- package/src/cli.ts +359 -0
- package/src/codex-review.ts +229 -0
- package/src/config.ts +114 -0
- package/src/contracts.ts +204 -0
- package/src/coupling.ts +259 -0
- package/src/docker-executor.ts +115 -0
- package/src/eval-main.ts +92 -0
- package/src/evaluate.ts +298 -0
- package/src/github.ts +26 -0
- package/src/harbor-results.ts +142 -0
- package/src/harbor-task.ts +528 -0
- package/src/hash.ts +5 -0
- package/src/modal-auth.ts +11 -0
- package/src/modal-executor.ts +176 -0
- package/src/parallel.ts +24 -0
- package/src/process.ts +165 -0
- package/src/provenance.ts +457 -0
- package/src/reaudit-main.ts +195 -0
- package/src/repair-main.ts +206 -0
- package/src/repair.ts +55 -0
- package/src/run-wait.ts +40 -0
- package/src/sandbox-author.ts +19 -0
- package/src/sandbox-repair.ts +156 -0
- package/src/sandbox-review.ts +19 -0
- package/src/sandbox-validation-repair.ts +177 -0
- package/src/sandbox.ts +51 -0
- package/src/subscription-auth.ts +80 -0
- package/src/temporal/activities.ts +1241 -0
- package/src/temporal/connection.ts +23 -0
- package/src/temporal/worker-main.ts +28 -0
- package/src/temporal/workflow.ts +519 -0
- package/src/validate-main.ts +171 -0
- package/src/validation-repair.ts +94 -0
- package/tsconfig.build.json +13 -0
- package/tsconfig.json +21 -0
- package/dist/activities.d.ts.map +0 -1
- package/dist/activities.js.map +0 -1
- package/dist/extensions/review.d.ts +0 -3
- package/dist/extensions/review.d.ts.map +0 -1
- package/dist/extensions/review.js +0 -44
- package/dist/extensions/review.js.map +0 -1
- package/dist/review/assets/index-Dq-6DFzI.css +0 -1
- package/dist/review/assets/index-DurW_RD7.js +0 -1567
- package/dist/review/assets/typst-DHCkPAjA.js +0 -1
- package/dist/temporal.d.ts.map +0 -1
- package/dist/temporal.js.map +0 -1
- package/dist/worker-main.js.map +0 -1
- package/dist/workflow.d.ts.map +0 -1
- package/dist/workflow.js.map +0 -1
- package/src/extensions/review.ts +0 -54
- /package/dist/{worker-main.d.ts → temporal/worker-main.d.ts} +0 -0
- /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 "
|
|
9
|
-
import { auditTaskDefinition } from "
|
|
10
|
-
import { COUPLING_REVIEW_MODEL, couplingReviewInput, couplingReviewSchema, } from "
|
|
11
|
-
import {
|
|
12
|
-
import { buildCouplingEvidence, discoverContractArtifacts, resolveCouplingReview, scanBaseContractArtifacts, } from "
|
|
13
|
-
import { assertPullRequestBelongsToRepository } from "
|
|
14
|
-
import { harborInfrastructureError, readHarborJobResult, } from "
|
|
15
|
-
import { refreshHarborTask } from "
|
|
16
|
-
import { sha256 } from "
|
|
17
|
-
import { runCommand } from "
|
|
18
|
-
import { assertProvenanceMatchesPullRequest } from "
|
|
19
|
-
import { createSandboxExecutor } from "
|
|
20
|
-
import { githubToken,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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: {
|
|
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
|
-
|
|
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: {
|
|
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
|
-
|
|
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: {
|
|
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
|
|
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
|
|
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
|
-
|
|
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/
|
|
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 "
|
|
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=
|
|
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"}
|
|
@@ -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":["
|
|
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 {
|
|
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
|
|
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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"}
|
package/dist/validate-main.js
CHANGED
|
@@ -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
|
-
|
|
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.
|