fix: ensure copilot plugin properly sets headers for new messages api

This commit is contained in:
Aiden Cline
2026-01-28 02:04:21 -05:00
parent 3bb10773e6
commit 5a0b3ee673

View File

@@ -61,12 +61,13 @@ export async function CopilotAuthPlugin(input: PluginInput): Promise<Hooks> {
const info = await getAuth()
if (info.type !== "oauth") return fetch(request, init)
const url = request instanceof URL ? request.href : request.toString()
const { isVision, isAgent } = iife(() => {
try {
const body = typeof init?.body === "string" ? JSON.parse(init.body) : init?.body
// Completions API
if (body?.messages) {
if (body?.messages && url.includes("completions")) {
const last = body.messages[body.messages.length - 1]
return {
isVision: body.messages.some(
@@ -88,6 +89,28 @@ export async function CopilotAuthPlugin(input: PluginInput): Promise<Hooks> {
isAgent: last?.role !== "user",
}
}
// Messages API
if (body?.messages) {
const last = body.messages[body.messages.length - 1]
const hasNonToolCalls =
Array.isArray(last?.content) && last.content.some((part: any) => part?.type !== "tool_result")
return {
isVision: body.messages.some(
(item: any) =>
Array.isArray(item?.content) &&
item.content.some(
(part: any) =>
part?.type === "image" ||
// images can be nested inside tool_result content
(part?.type === "tool_result" &&
Array.isArray(part?.content) &&
part.content.some((nested: any) => nested?.type === "image")),
),
),
isAgent: !(last?.role === "user" && hasNonToolCalls),
}
}
} catch {}
return { isVision: false, isAgent: false }
})