Spaces:
Running
Running
File size: 2,113 Bytes
98c9143 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | import { afterEach, expect, test } from "bun:test"
import {
prepareForCompact,
prepareMessageProxyHeaders,
} from "../src/lib/api-config"
import { COMPACT_AUTO_CONTINUE, COMPACT_REQUEST } from "../src/lib/compact"
const originalOauthApp = process.env.COPILOT_API_OAUTH_APP
afterEach(() => {
if (originalOauthApp === undefined) {
delete process.env.COPILOT_API_OAUTH_APP
return
}
process.env.COPILOT_API_OAUTH_APP = originalOauthApp
})
test("prepareMessageProxyHeaders applies message proxy headers by default", () => {
delete process.env.COPILOT_API_OAUTH_APP
const headers: Record<string, string> = {
"user-agent": "GitHubCopilotChat/0.42.3",
}
prepareMessageProxyHeaders(headers)
expect(headers["x-interaction-type"]).toBe("messages-proxy")
expect(headers["openai-intent"]).toBe("messages-proxy")
expect(headers["user-agent"]).toBe(
"vscode_claude_code/2.1.112 (external, sdk-ts, agent-sdk/0.2.112)",
)
expect(headers["x-request-id"]).toBeDefined()
expect(headers["x-agent-task-id"]).toBe(headers["x-request-id"])
})
test("prepareMessageProxyHeaders leaves opencode headers untouched", () => {
process.env.COPILOT_API_OAUTH_APP = "opencode"
const headers: Record<string, string> = {
"Openai-Intent": "conversation-edits",
"User-Agent": "opencode/1.0.0",
}
prepareMessageProxyHeaders(headers)
expect(headers).toEqual({
"Openai-Intent": "conversation-edits",
"User-Agent": "opencode/1.0.0",
})
})
test("prepareForCompact marks compact traffic as agent initiated", () => {
const compactHeaders: Record<string, string> = { "x-initiator": "user" }
const autoContinueHeaders: Record<string, string> = { "x-initiator": "user" }
const normalHeaders: Record<string, string> = { "x-initiator": "user" }
prepareForCompact(compactHeaders, COMPACT_REQUEST)
prepareForCompact(autoContinueHeaders, COMPACT_AUTO_CONTINUE)
prepareForCompact(normalHeaders, 0)
expect(compactHeaders["x-initiator"]).toBe("agent")
expect(autoContinueHeaders["x-initiator"]).toBe("agent")
expect(normalHeaders["x-initiator"]).toBe("user")
})
|