summaryrefslogtreecommitdiffhomepage
path: root/packages/opencode/src/session/summary.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/opencode/src/session/summary.ts')
-rw-r--r--packages/opencode/src/session/summary.ts21
1 files changed, 11 insertions, 10 deletions
diff --git a/packages/opencode/src/session/summary.ts b/packages/opencode/src/session/summary.ts
index d9247f182..8d366e499 100644
--- a/packages/opencode/src/session/summary.ts
+++ b/packages/opencode/src/session/summary.ts
@@ -76,19 +76,20 @@ export namespace SessionSummary {
const small =
(await Provider.getSmallModel(assistantMsg.providerID)) ??
(await Provider.getModel(assistantMsg.providerID, assistantMsg.modelID))
+ const language = await Provider.getLanguage(small)
const options = pipe(
{},
- mergeDeep(ProviderTransform.options(small.providerID, small.modelID, small.npm ?? "", assistantMsg.sessionID)),
- mergeDeep(ProviderTransform.smallOptions({ providerID: small.providerID, modelID: small.modelID })),
- mergeDeep(small.info.options),
+ mergeDeep(ProviderTransform.options(small, assistantMsg.sessionID)),
+ mergeDeep(ProviderTransform.smallOptions(small)),
+ mergeDeep(small.options),
)
const textPart = msgWithParts.parts.find((p) => p.type === "text" && !p.synthetic) as MessageV2.TextPart
if (textPart && !userMsg.summary?.title) {
const result = await generateText({
- maxOutputTokens: small.info.reasoning ? 1500 : 20,
- providerOptions: ProviderTransform.providerOptions(small.npm, small.providerID, options),
+ maxOutputTokens: small.capabilities.reasoning ? 1500 : 20,
+ providerOptions: ProviderTransform.providerOptions(small.api.npm, small.providerID, options),
messages: [
...SystemPrompt.title(small.providerID).map(
(x): ModelMessage => ({
@@ -106,8 +107,8 @@ export namespace SessionSummary {
`,
},
],
- headers: small.info.headers,
- model: small.language,
+ headers: small.headers,
+ model: language,
})
log.info("title", { title: result.text })
userMsg.summary.title = result.text
@@ -132,9 +133,9 @@ export namespace SessionSummary {
}
}
const result = await generateText({
- model: small.language,
+ model: language,
maxOutputTokens: 100,
- providerOptions: ProviderTransform.providerOptions(small.npm, small.providerID, options),
+ providerOptions: ProviderTransform.providerOptions(small.api.npm, small.providerID, options),
messages: [
...SystemPrompt.summarize(small.providerID).map(
(x): ModelMessage => ({
@@ -148,7 +149,7 @@ export namespace SessionSummary {
content: `Summarize the above conversation according to your system prompts.`,
},
],
- headers: small.info.headers,
+ headers: small.headers,
}).catch(() => {})
if (result) summary = result.text
}