This commit is contained in:
Colin McDonnell
2025-12-17 11:37:05 -08:00
parent 9cc1e7b689
commit 02ce90556f
3 changed files with 15 additions and 7 deletions
+1
View File
@@ -85,6 +85,7 @@ function buildRuntimeContext({ repo, prepResults }: BuildRuntimeContextParams):
// working directory
lines.push(`working_directory: ${process.cwd()}`);
lines.push(`log_level: ${process.env.LOG_LEVEL}`);
// git status (try to get it, but don't fail if git isn't available)
try {
+8 -4
View File
@@ -73,6 +73,7 @@ export const opencode = agent({
const startTime = Date.now();
let lastActivityTime = startTime;
let eventCount = 0;
let stdoutBuffer = "";
let output = "";
const result = await spawn({
@@ -83,13 +84,15 @@ export const opencode = agent({
timeout: 600000, // 10 minutes timeout to prevent infinite hangs
stdio: ["ignore", "pipe", "pipe"],
onStdout: async (chunk) => {
const parsed = JSON.parse(chunk);
log.debug(JSON.stringify(parsed, null, 2));
const text = chunk.toString();
output += text;
stdoutBuffer += text;
// parse each complete line as JSON (opencode outputs one JSON object per line)
const lines = stdoutBuffer.split("\n");
// keep the last (potentially incomplete) line in the buffer
stdoutBuffer = lines.pop() || "";
// parse each line as JSON (opencode outputs one JSON object per line)
const lines = text.split("\n");
for (const line of lines) {
const trimmed = line.trim();
if (!trimmed) {
@@ -98,6 +101,7 @@ export const opencode = agent({
try {
const event = JSON.parse(trimmed) as OpenCodeEvent;
log.debug(JSON.stringify(event, null, 2));
eventCount++;
const timeSinceLastActivity = Date.now() - lastActivityTime;
if (timeSinceLastActivity > 10000) {