Skip to content

Commit 9e98498

Browse files
committed
debug opencode missing parts
1 parent d3c92d8 commit 9e98498

1 file changed

Lines changed: 10 additions & 36 deletions

File tree

agents/opencode.ts

Lines changed: 10 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -116,29 +116,6 @@ function logError(value: unknown, options: AgentRunOptions | undefined): void {
116116
}
117117
}
118118

119-
function logPromptResult(
120-
result: { info: AssistantMessage; parts?: Part[] },
121-
options: AgentRunOptions | undefined,
122-
logs?: string[],
123-
): void {
124-
logJson({ info: result.info }, options);
125-
126-
if (!Array.isArray(result.parts)) {
127-
logError(
128-
{
129-
error: "invalid_parts_array",
130-
message: `Expected 'parts' to be an array, but got ${typeof result.parts}`,
131-
receivedResponse: result,
132-
},
133-
options,
134-
);
135-
136-
return;
137-
}
138-
139-
result.parts.forEach((part) => logJson(part, options));
140-
}
141-
142119
function serializeError(error: unknown): Record<string, unknown> {
143120
if (error instanceof Error) {
144121
return {
@@ -198,7 +175,7 @@ const opencodeAgent: AgentDefinition = {
198175
try {
199176
const [providerID, modelID] = model.split("/");
200177

201-
const { data } = await opencode.client.session.prompt({
178+
const { data, error } = await opencode.client.session.prompt({
202179
path: { id: sessionID! },
203180
query: { directory: cwd },
204181
body: {
@@ -208,24 +185,21 @@ const opencodeAgent: AgentDefinition = {
208185
},
209186
parts: [{ type: "text", text: prompt }],
210187
},
211-
throwOnError: true,
212188
});
213189

214-
if (data.info?.tokens) {
215-
usage.input = data.info.tokens.input || 0;
216-
usage.output = data.info.tokens.output || 0;
217-
} else {
218-
console.error(
219-
`[opencode] WARNING: No token usage in response. Available fields: ${Object.keys(data.info || {}).join(", ")}`,
220-
);
190+
if (error) {
191+
throw error;
221192
}
222193

194+
usage.input = data.info.tokens.input || 0;
195+
usage.output = data.info.tokens.output || 0;
196+
223197
actions.push(JSON.stringify(data.info));
224-
if (Array.isArray(data.parts)) {
225-
data.parts.forEach((part) => actions.push(JSON.stringify(part)));
226-
}
227198

228-
logPromptResult(data, options);
199+
data.parts.forEach((part) => actions.push(JSON.stringify(part)));
200+
201+
logJson({ info: data.info }, options);
202+
data.parts.forEach((part) => logJson(part, options));
229203
} catch (error) {
230204
console.error(
231205
`[opencode] Error in ${model}:`,

0 commit comments

Comments
 (0)