MCPcopy
hub / github.com/rpamis/comet / runL3Build

Function runL3Build

scripts/context-execution-benchmark.mjs:1363–1412  ·  view source on GitHub ↗
({ claudeCommand, model, cwd, mode, contextFile, contextText, tier, maxRetries })

Source from the content-addressed store, hash-verified

1361}
1362
1363async function runL3Build({ claudeCommand, model, cwd, mode, contextFile, contextText, tier, maxRetries }) {
1364 const basePrompt = buildL3BuildPrompt(mode, contextFile, contextText, tier);
1365 let totalUsage = { inputTokens: 0, outputTokens: 0, totalTokens: 0 };
1366 let totalDurationMs = 0;
1367 let totalCostUsd = 0;
1368 let lastResult = null;
1369 let testResult = null;
1370
1371 for (let attempt = 1; attempt <= maxRetries; attempt++) {
1372 const prompt = attempt === 1 ? basePrompt : buildRetryPrompt(basePrompt, testResult);
1373 const args = buildClaudeArgs({ cwd, model });
1374 const { stdout, stderr, exitCode } = await spawnCapture(claudeCommand, args, {
1375 cwd,
1376 input: prompt,
1377 timeoutMs: CLAUDE_TIMEOUT_MS,
1378 allowFailure: true,
1379 });
1380 const parsed = parseClaudeJson(stdout);
1381 lastResult = { ...parsed, stdout, stderr, exitCode };
1382
1383 totalUsage.inputTokens += parsed.usage.inputTokens;
1384 totalUsage.outputTokens += parsed.usage.outputTokens;
1385 totalUsage.totalTokens += parsed.usage.totalTokens;
1386 totalDurationMs += parsed.durationMs;
1387 totalCostUsd += parsed.costUsd;
1388
1389 testResult = await runTests(cwd);
1390 if (testResult.testsTotal > 0 && testResult.testsPassed === testResult.testsTotal) {
1391 return {
1392 usage: totalUsage,
1393 attempts: attempt,
1394 testResult,
1395 completed: true,
1396 durationMs: totalDurationMs,
1397 costUsd: totalCostUsd,
1398 lastResult,
1399 };
1400 }
1401 }
1402
1403 return {
1404 usage: totalUsage,
1405 attempts: maxRetries,
1406 testResult,
1407 completed: false,
1408 durationMs: totalDurationMs,
1409 costUsd: totalCostUsd,
1410 lastResult,
1411 };
1412}
1413
1414/**
1415 * L3 Full Workflow: Design → Handoff → Build.

Callers 1

runL3Function · 0.85

Calls 6

buildClaudeArgsFunction · 0.90
spawnCaptureFunction · 0.90
parseClaudeJsonFunction · 0.90
buildL3BuildPromptFunction · 0.85
buildRetryPromptFunction · 0.85
runTestsFunction · 0.85

Tested by

no test coverage detected