diff options
| author | Filip <[email protected]> | 2025-10-31 05:35:26 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-10-30 23:35:26 -0500 |
| commit | 51e4c9fc4cb4ef01f7d337127b463729c2967594 (patch) | |
| tree | 7689fad82be7db37949d31013a76671910e2d57c | |
| parent | 43e272e6c4a631b96e1958271e72700bea0d4bdd (diff) | |
| download | opencode-51e4c9fc4cb4ef01f7d337127b463729c2967594.tar.gz opencode-51e4c9fc4cb4ef01f7d337127b463729c2967594.zip | |
add optional headers field to model config (#3546)
| -rw-r--r-- | packages/opencode/src/provider/models.ts | 1 | ||||
| -rw-r--r-- | packages/opencode/src/provider/provider.ts | 1 | ||||
| -rw-r--r-- | packages/opencode/src/session/compaction.ts | 1 | ||||
| -rw-r--r-- | packages/opencode/src/session/prompt.ts | 9 | ||||
| -rw-r--r-- | packages/opencode/src/session/summary.ts | 2 |
5 files changed, 11 insertions, 3 deletions
diff --git a/packages/opencode/src/provider/models.ts b/packages/opencode/src/provider/models.ts index 4981d38b3..34640706a 100644 --- a/packages/opencode/src/provider/models.ts +++ b/packages/opencode/src/provider/models.ts @@ -37,6 +37,7 @@ export namespace ModelsDev { experimental: z.boolean().optional(), status: z.enum(["alpha", "beta"]).optional(), options: z.record(z.string(), z.any()), + headers: z.record(z.string(), z.string()).optional(), provider: z.object({ npm: z.string() }).optional(), }) .meta({ diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index c42b361b1..9bcff4b48 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -306,6 +306,7 @@ export namespace Provider { input: ["text"], output: ["text"], }, + headers: model.headers, provider: model.provider ?? existing?.provider, } if (model.id && model.id !== modelID) { diff --git a/packages/opencode/src/session/compaction.ts b/packages/opencode/src/session/compaction.ts index 4896d5f5e..116a7e39d 100644 --- a/packages/opencode/src/session/compaction.ts +++ b/packages/opencode/src/session/compaction.ts @@ -150,6 +150,7 @@ export namespace SessionCompaction { maxRetries: 0, model: model.language, providerOptions: ProviderTransform.providerOptions(model.npm, model.providerID, model.info.options), + headers: model.info.headers, abortSignal: signal, onError(error) { log.error("stream error", { diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 080f9d994..c6e0ad589 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -270,13 +270,15 @@ export namespace SessionPrompt { toolName: "invalid", } }, - headers: - model.providerID === "opencode" + headers: { + ...(model.providerID === "opencode" ? { "x-opencode-session": input.sessionID, "x-opencode-request": userMsg.info.id, } - : undefined, + : undefined), + ...model.info.headers, + }, // set to 0, we handle loop maxRetries: 0, activeTools: Object.keys(tools).filter((x) => x !== "invalid"), @@ -1816,6 +1818,7 @@ export namespace SessionPrompt { }, ]), ], + headers: small.info.headers, model: small.language, }) .then((result) => { diff --git a/packages/opencode/src/session/summary.ts b/packages/opencode/src/session/summary.ts index 115fbe452..12b040f6b 100644 --- a/packages/opencode/src/session/summary.ts +++ b/packages/opencode/src/session/summary.ts @@ -84,6 +84,7 @@ export namespace SessionSummary { content: textPart?.text ?? "", }, ], + headers:small.info.headers, model: small.language, }) log.info("title", { title: result.text }) @@ -116,6 +117,7 @@ export namespace SessionSummary { `, }, ], + headers: small.info.headers }) summary = result.text } |
