summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/session/message-v2.ts5
-rw-r--r--packages/opencode/src/session/prompt.ts6
2 files changed, 11 insertions, 0 deletions
diff --git a/packages/opencode/src/session/message-v2.ts b/packages/opencode/src/session/message-v2.ts
index 2d850e0a4..7704a6155 100644
--- a/packages/opencode/src/session/message-v2.ts
+++ b/packages/opencode/src/session/message-v2.ts
@@ -115,6 +115,7 @@ export namespace MessageV2 {
end: z.number().optional(),
})
.optional(),
+ metadata: z.record(z.string(), z.any()).optional(),
}).meta({
ref: "TextPart",
})
@@ -138,6 +139,7 @@ export namespace MessageV2 {
callID: z.string(),
tool: z.string(),
state: ToolState,
+ metadata: z.record(z.string(), z.any()).optional(),
}).meta({
ref: "ToolPart",
})
@@ -519,6 +521,7 @@ export namespace MessageV2 {
{
type: "text",
text: part.text,
+ providerMetadata: part.metadata,
},
]
if (part.type === "step-start")
@@ -536,6 +539,7 @@ export namespace MessageV2 {
toolCallId: part.callID,
input: part.state.input,
output: part.state.time.compacted ? "[Old tool result content cleared]" : part.state.output,
+ callProviderMetadata: part.metadata,
},
]
if (part.state.status === "error")
@@ -546,6 +550,7 @@ export namespace MessageV2 {
toolCallId: part.callID,
input: part.state.input,
errorText: part.state.error,
+ callProviderMetadata: part.metadata,
},
]
}
diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts
index c8eeb5772..d385ea922 100644
--- a/packages/opencode/src/session/prompt.ts
+++ b/packages/opencode/src/session/prompt.ts
@@ -892,6 +892,7 @@ export namespace SessionPrompt {
time: {
start: Date.now(),
},
+ metadata: value.providerMetadata,
}
break
@@ -913,6 +914,7 @@ export namespace SessionPrompt {
...part.time,
end: Date.now(),
}
+ if (value.providerMetadata) part.metadata = value.providerMetadata
await Session.updatePart(part)
delete reasoningMap[value.id]
}
@@ -952,6 +954,7 @@ export namespace SessionPrompt {
start: Date.now(),
},
},
+ metadata: value.providerMetadata,
})
toolcalls[value.toolCallId] = part as MessageV2.ToolPart
}
@@ -1054,12 +1057,14 @@ export namespace SessionPrompt {
time: {
start: Date.now(),
},
+ metadata: value.providerMetadata,
}
break
case "text-delta":
if (currentText) {
currentText.text += value.text
+ if (value.providerMetadata) currentText.metadata = value.providerMetadata
if (currentText.text) await Session.updatePart(currentText)
}
break
@@ -1071,6 +1076,7 @@ export namespace SessionPrompt {
start: Date.now(),
end: Date.now(),
}
+ if (value.providerMetadata) currentText.metadata = value.providerMetadata
await Session.updatePart(currentText)
}
currentText = undefined