Skip to content

Commit 934c83d

Browse files
Add task metadata to Unbound API requests (#4144)
* Add structured task metadata to Unbound API requests * Moves origin app to a constant --------- Co-authored-by: Pugazhendhi <[email protected]>
1 parent 78769f1 commit 934c83d

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

src/api/providers/unbound.ts

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import { addCacheBreakpoints as addGeminiCacheBreakpoints } from "../transform/c
1111
import type { SingleCompletionHandler, ApiHandlerCreateMessageMetadata } from "../index"
1212
import { RouterProvider } from "./router-provider"
1313

14+
const ORIGIN_APP = "roo-code"
15+
1416
const DEFAULT_HEADERS = {
1517
"X-Unbound-Metadata": JSON.stringify({ labels: [{ key: "app", value: "roo-code" }] }),
1618
}
@@ -20,6 +22,20 @@ interface UnboundUsage extends OpenAI.CompletionUsage {
2022
cache_read_input_tokens?: number
2123
}
2224

25+
type UnboundChatCompletionCreateParamsStreaming = OpenAI.Chat.Completions.ChatCompletionCreateParamsStreaming & {
26+
unbound_metadata: {
27+
originApp: string
28+
taskId?: string
29+
mode?: string
30+
}
31+
}
32+
33+
type UnboundChatCompletionCreateParamsNonStreaming = OpenAI.Chat.Completions.ChatCompletionCreateParamsNonStreaming & {
34+
unbound_metadata: {
35+
originApp: string
36+
}
37+
}
38+
2339
export class UnboundHandler extends RouterProvider implements SingleCompletionHandler {
2440
constructor(options: ApiHandlerOptions) {
2541
super({
@@ -60,11 +76,16 @@ export class UnboundHandler extends RouterProvider implements SingleCompletionHa
6076
maxTokens = info.maxTokens ?? undefined
6177
}
6278

63-
const requestOptions: OpenAI.Chat.Completions.ChatCompletionCreateParamsStreaming = {
79+
const requestOptions: UnboundChatCompletionCreateParamsStreaming = {
6480
model: modelId.split("/")[1],
6581
max_tokens: maxTokens,
6682
messages: openAiMessages,
6783
stream: true,
84+
unbound_metadata: {
85+
originApp: ORIGIN_APP,
86+
taskId: metadata?.taskId,
87+
mode: metadata?.mode,
88+
},
6889
}
6990

7091
if (this.supportsTemperature(modelId)) {
@@ -108,9 +129,12 @@ export class UnboundHandler extends RouterProvider implements SingleCompletionHa
108129
const { id: modelId, info } = await this.fetchModel()
109130

110131
try {
111-
const requestOptions: OpenAI.Chat.Completions.ChatCompletionCreateParamsNonStreaming = {
132+
const requestOptions: UnboundChatCompletionCreateParamsNonStreaming = {
112133
model: modelId.split("/")[1],
113134
messages: [{ role: "user", content: prompt }],
135+
unbound_metadata: {
136+
originApp: ORIGIN_APP,
137+
},
114138
}
115139

116140
if (this.supportsTemperature(modelId)) {

0 commit comments

Comments
 (0)