Split Face turn and support model lanes
This commit is contained in:
parent
ccb590cfbd
commit
58624a6bb6
11 changed files with 42 additions and 20 deletions
|
|
@ -23,7 +23,8 @@ const repoFaceRetrievalToolAllowlist = [
|
|||
|
||||
async function main() {
|
||||
const options = parseArgs(process.argv.slice(2));
|
||||
const model = options.model ?? process.env.REPO_FACE_HEARTBEAT_CODEX_MODEL ?? "gpt-5.4-mini";
|
||||
const faceModel = options["face-model"] ?? process.env.REPO_FACE_TURN_CODEX_MODEL ?? "gpt-5.4";
|
||||
const interpreterModel = options["interpreter-model"] ?? options.model ?? process.env.REPO_FACE_HEARTBEAT_CODEX_MODEL ?? "gpt-5.3-codex-spark";
|
||||
const reasoningEffort = options["reasoning-effort"] ?? process.env.REPO_FACE_HEARTBEAT_CODEX_REASONING_EFFORT ?? "low";
|
||||
const mcpMode = options.mcp === "mock" ? "mock" : "real-readonly";
|
||||
const outPath = resolve(repoRoot, options.out ?? defaultOut);
|
||||
|
|
@ -50,7 +51,7 @@ async function main() {
|
|||
|
||||
process.stderr.write(`[dry-run] face turn ${identity}\n`);
|
||||
const childRun = await runCodex(facePrompt, {
|
||||
model,
|
||||
model: faceModel,
|
||||
reasoningEffort,
|
||||
scenarioId: `${identity}_swarm_dry_run_child`,
|
||||
logPath: childLogPath,
|
||||
|
|
@ -69,7 +70,7 @@ async function main() {
|
|||
faceOutput: childText,
|
||||
});
|
||||
const interpreterRun = await runCodex(interpreterPrompt, {
|
||||
model,
|
||||
model: interpreterModel,
|
||||
reasoningEffort,
|
||||
scenarioId: `${identity}_swarm_dry_run_interpreter`,
|
||||
mcpMode: "none",
|
||||
|
|
@ -102,7 +103,8 @@ async function main() {
|
|||
|
||||
const report = {
|
||||
generatedAt: new Date().toISOString(),
|
||||
model,
|
||||
faceModel,
|
||||
interpreterModel,
|
||||
reasoningEffort,
|
||||
mcpMode,
|
||||
passed: runs.every((run) => run.assessment.failures.length === 0),
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ function readPrompt(name) {
|
|||
|
||||
async function main() {
|
||||
const options = parseArgs(process.argv.slice(2));
|
||||
const model = options.model ?? process.env.REPO_FACE_HEARTBEAT_CODEX_MODEL ?? "gpt-5.4-mini";
|
||||
const model = options.model ?? process.env.REPO_FACE_HEARTBEAT_CODEX_MODEL ?? "gpt-5.4";
|
||||
const reasoningEffort = options["reasoning-effort"] ?? process.env.REPO_FACE_HEARTBEAT_CODEX_REASONING_EFFORT ?? "low";
|
||||
const outPath = resolve(repoRoot, options.out ?? defaultOut);
|
||||
const selected = options.scenario
|
||||
|
|
|
|||
|
|
@ -16,8 +16,9 @@ const defaultOut = resolve(repoRoot, ".voidbot", "status", "repo-face-interprete
|
|||
|
||||
async function main() {
|
||||
const options = parseArgs(process.argv.slice(2));
|
||||
const modelCandidates = modelCandidatesFromOptions(options);
|
||||
const model = modelCandidates.join(",");
|
||||
const faceModel = options["face-model"] ?? process.env.REPO_FACE_TURN_CODEX_MODEL ?? "gpt-5.4";
|
||||
const interpreterModelCandidates = modelCandidatesFromOptions(options);
|
||||
const interpreterModel = interpreterModelCandidates.join(",");
|
||||
const reasoningEffort = options["reasoning-effort"] ?? process.env.REPO_FACE_HEARTBEAT_CODEX_REASONING_EFFORT ?? "low";
|
||||
const facePromptPath = resolve(repoRoot, options["face-prompt"] ?? defaultFacePrompt);
|
||||
const outPath = resolve(repoRoot, options.out ?? defaultOut);
|
||||
|
|
@ -26,7 +27,7 @@ async function main() {
|
|||
await rm(childLogPath, { force: true }).catch(() => undefined);
|
||||
|
||||
const childRun = await runCodexWithModelFallback(facePrompt, {
|
||||
models: modelCandidates,
|
||||
models: [faceModel],
|
||||
reasoningEffort,
|
||||
scenarioId: "nibu_interpreter_loop_child",
|
||||
logPath: childLogPath,
|
||||
|
|
@ -42,7 +43,7 @@ async function main() {
|
|||
faceOutput: childText,
|
||||
});
|
||||
const interpreterRun = await runCodexWithModelFallback(interpreterPrompt, {
|
||||
models: modelCandidates,
|
||||
models: interpreterModelCandidates,
|
||||
reasoningEffort,
|
||||
scenarioId: "nibu_interpreter_loop_parent",
|
||||
logPath: undefined,
|
||||
|
|
@ -56,7 +57,8 @@ async function main() {
|
|||
];
|
||||
const report = {
|
||||
generatedAt: new Date().toISOString(),
|
||||
model,
|
||||
faceModel,
|
||||
interpreterModel,
|
||||
reasoningEffort,
|
||||
facePromptPath,
|
||||
passed: failures.length === 0,
|
||||
|
|
@ -83,7 +85,8 @@ async function main() {
|
|||
await writeFile(outPath, `${JSON.stringify(report, null, 2)}\n`, "utf8");
|
||||
process.stdout.write(`${JSON.stringify({
|
||||
outPath,
|
||||
model,
|
||||
faceModel,
|
||||
interpreterModel,
|
||||
reasoningEffort,
|
||||
passed: report.passed,
|
||||
failures,
|
||||
|
|
@ -276,7 +279,7 @@ function modelCandidatesFromOptions(options) {
|
|||
explicit ??
|
||||
process.env.REPO_FACE_HEARTBEAT_CODEX_MODELS ??
|
||||
process.env.REPO_FACE_HEARTBEAT_CODEX_MODEL ??
|
||||
"gpt-5.4-mini";
|
||||
"gpt-5.3-codex-spark,gpt-5.4-mini";
|
||||
return raw
|
||||
.split(",")
|
||||
.map((entry) => entry.trim())
|
||||
|
|
|
|||
Loading…
Reference in a new issue