Spaces:
Running
Running
| 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") | |
| }) | |