fest-gateway 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -5
- package/dist/cli/copilot.js +150 -28
- package/dist/cli/copilot.js.map +1 -1
- package/dist/server/bin/fest.js +12 -10
- package/dist/server/bin/fest.js.map +1 -1
- package/dist/server/config.js +9 -2
- package/dist/server/config.js.map +1 -1
- package/dist/server/http/client.js +7 -0
- package/dist/server/http/client.js.map +1 -1
- package/dist/server/http/server.js +30 -0
- package/dist/server/http/server.js.map +1 -1
- package/dist/server/pipeline/copilot.js +236 -0
- package/dist/server/pipeline/copilot.js.map +1 -0
- package/dist/server/pipeline/openai.js +2 -2
- package/dist/server/pipeline/openai.js.map +1 -1
- package/dist/server/pipeline/wire.js +56 -0
- package/dist/server/pipeline/wire.js.map +1 -1
- package/dist/server/secret/fingerprint.js +7 -1
- package/dist/server/secret/fingerprint.js.map +1 -1
- package/dist/server/usage/chat.js +95 -0
- package/dist/server/usage/chat.js.map +1 -0
- package/dist/web/dist/assets/{index-BClCav9v.js → index-DJb4NfM5.js} +2 -2
- package/dist/web/dist/assets/{index-BClCav9v.js.map → index-DJb4NfM5.js.map} +1 -1
- package/dist/web/dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../server/http/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../server/http/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copilot CLI, on the developer's own Copilot login.
|
|
3
|
+
*
|
|
4
|
+
* Copilot CLI sends its model traffic to GitHub's Copilot API, at the host its
|
|
5
|
+
* `copilot_internal/user` response names for the account's plan:
|
|
6
|
+
* `api.individual.githubcopilot.com`, `api.business.…`, `api.enterprise.…`.
|
|
7
|
+
* Its `COPILOT_API_URL` override replaces that host, and `fest copilot` points
|
|
8
|
+
* it at `<fest>/t/<token>/copilot/<plan>`. The plan is in the path because the
|
|
9
|
+
* gateway serves every developer and each one's plan picks a different host;
|
|
10
|
+
* the path is also what keeps this from being an open relay — the upstream is
|
|
11
|
+
* one of three GitHub hosts, never something a caller names.
|
|
12
|
+
*
|
|
13
|
+
* What arrives, captured from Copilot CLI 1.0.96 (October 2026):
|
|
14
|
+
*
|
|
15
|
+
* - `GET /models`, `POST /auto` (model routing), then the turn itself on one
|
|
16
|
+
* of three wires, chosen per model: `POST /v1/messages` (Claude),
|
|
17
|
+
* `POST /responses` (GPT-5 and later), `POST /chat/completions` (the rest).
|
|
18
|
+
* The turn is metered; everything else under the mount is relayed as is.
|
|
19
|
+
* - It first tries the Responses call as a WebSocket upgrade, and falls back
|
|
20
|
+
* to HTTP when the upgrade is refused. Fest refuses it (Node destroys an
|
|
21
|
+
* upgrade socket nobody listens for), so every turn is plain HTTP SSE.
|
|
22
|
+
* - `Authorization: Bearer gho_…` on everything: the GitHub OAuth token of
|
|
23
|
+
* Copilot's own login, with no exchange for a short-lived Copilot token.
|
|
24
|
+
* - The built-in GitHub MCP server's calls go to `<origin>/mcp/readonly`,
|
|
25
|
+
* dropping the API URL's path — and with it the identity token and the
|
|
26
|
+
* plan. They are relayed from the root by `relayCopilotMcp`, unmetered and
|
|
27
|
+
* unattributed, to the one host GitHub serves that server from.
|
|
28
|
+
*
|
|
29
|
+
* ── The GitHub token ─────────────────────────────────────────────────────────
|
|
30
|
+
*
|
|
31
|
+
* It is forwarded and forgotten, under the same rules as every other relayed
|
|
32
|
+
* credential, and it is a broader credential than a model key — it can act on
|
|
33
|
+
* the developer's GitHub account — so it is worth stating where it goes:
|
|
34
|
+
*
|
|
35
|
+
* - upstream, in the `Authorization` header it arrived in, and nowhere else;
|
|
36
|
+
* - into a 12-hex-character SHA-256 fingerprint on the request row, the same
|
|
37
|
+
* non-reversible correlation id every credential gets;
|
|
38
|
+
* - never into a log line (`redactSecrets` knows `gh[opsu]_` and
|
|
39
|
+
* `github_pat_`), an error message, the store, or the live feed.
|
|
40
|
+
*
|
|
41
|
+
* `test/copilot-http.test.ts` checks all of that against the real writer, by
|
|
42
|
+
* scanning the SQLite files and the captured log output for the token.
|
|
43
|
+
*/
|
|
44
|
+
import { joinUpstreamUrl } from "../adapters/url.js";
|
|
45
|
+
import { detectInbound } from "../auth/posture.js";
|
|
46
|
+
import { readBodyBytes, isTooLarge } from "../http/body.js";
|
|
47
|
+
import { openaiError } from "../http/errors.js";
|
|
48
|
+
import { buildDownstreamHeaders, buildUpstreamHeaders } from "../http/headers.js";
|
|
49
|
+
import { log } from "../log.js";
|
|
50
|
+
import { handleMessages } from "./passthrough.js";
|
|
51
|
+
import { COPILOT_ANTHROPIC_WIRE, COPILOT_CHAT_WIRE, COPILOT_RESPONSES_WIRE, } from "./wire.js";
|
|
52
|
+
export const COPILOT_MOUNT = "/copilot";
|
|
53
|
+
/** The plans GitHub serves from their own API host. */
|
|
54
|
+
export const COPILOT_PLANS = ["individual", "business", "enterprise"];
|
|
55
|
+
const MAX_BODY_BYTES = 32 * 1024 * 1024;
|
|
56
|
+
function pathnameOf(url) {
|
|
57
|
+
const q = url.indexOf("?");
|
|
58
|
+
return q === -1 ? url : url.slice(0, q);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Split `/copilot/<plan>/<rest>` into its plan and the path to relay.
|
|
62
|
+
*
|
|
63
|
+
* Returns null when the path is not under the mount at all, and `plan: null`
|
|
64
|
+
* when it is but the plan segment is not one GitHub serves. `rest` keeps the
|
|
65
|
+
* query string.
|
|
66
|
+
*/
|
|
67
|
+
export function splitCopilotMount(remainder) {
|
|
68
|
+
if (remainder !== COPILOT_MOUNT && !remainder.startsWith(`${COPILOT_MOUNT}/`) && !remainder.startsWith(`${COPILOT_MOUNT}?`)) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
const after = remainder.slice(COPILOT_MOUNT.length + 1);
|
|
72
|
+
const cut = after.search(/[/?]/);
|
|
73
|
+
const segment = cut === -1 ? after : after.slice(0, cut);
|
|
74
|
+
const rest = cut === -1 ? "/" : after.slice(cut);
|
|
75
|
+
const plan = COPILOT_PLANS.includes(segment) ? segment : null;
|
|
76
|
+
return { plan, rest: rest.startsWith("?") ? `/${rest}` : rest };
|
|
77
|
+
}
|
|
78
|
+
/** The upstream for one plan: the configured template with `{plan}` filled in. */
|
|
79
|
+
export function copilotUpstream(template, plan) {
|
|
80
|
+
return template.replaceAll("{plan}", plan);
|
|
81
|
+
}
|
|
82
|
+
/** The wire a request is metered on, or null when it is not a model call. */
|
|
83
|
+
export function copilotWire(method, restPath) {
|
|
84
|
+
if (method !== "POST")
|
|
85
|
+
return null;
|
|
86
|
+
if (restPath === "/v1/messages")
|
|
87
|
+
return COPILOT_ANTHROPIC_WIRE;
|
|
88
|
+
if (restPath === "/chat/completions")
|
|
89
|
+
return COPILOT_CHAT_WIRE;
|
|
90
|
+
// `/responses/compact` and anything else beneath it bills as model work.
|
|
91
|
+
if (restPath === "/responses" || restPath.startsWith("/responses/"))
|
|
92
|
+
return COPILOT_RESPONSES_WIRE;
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Who is calling, checked before anything is relayed.
|
|
97
|
+
*
|
|
98
|
+
* The same two failure modes as `handleMessages`, with Copilot's remedy in the
|
|
99
|
+
* message rather than Claude Code's: Copilot shows `error.message` too, and a
|
|
100
|
+
* sentence about `ANTHROPIC_BASE_URL` would send the developer the wrong way.
|
|
101
|
+
* Returns false when it has already answered.
|
|
102
|
+
*/
|
|
103
|
+
function admit(req, res, ctx) {
|
|
104
|
+
const inbound = detectInbound(req.url ?? "/", req.headers);
|
|
105
|
+
const resolved = ctx.resolveIdentity(inbound.identityToken);
|
|
106
|
+
if (resolved !== null) {
|
|
107
|
+
ctx.touchToken?.(resolved.tokenId);
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
const deny = (message) => {
|
|
111
|
+
res.writeHead(401, { "content-type": "application/json", "x-should-retry": "false" });
|
|
112
|
+
res.end(openaiError("authentication_error", message));
|
|
113
|
+
return false;
|
|
114
|
+
};
|
|
115
|
+
if (inbound.identityToken !== null) {
|
|
116
|
+
return deny("Fest: your identity token is not valid (unknown, revoked, or expired). Run `fest login`, then `fest copilot` again.");
|
|
117
|
+
}
|
|
118
|
+
if (ctx.requireIdentity) {
|
|
119
|
+
return deny("Fest: this gateway needs to know who you are. Run `fest login`, then start Copilot with `fest copilot`.");
|
|
120
|
+
}
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Relay one request as is: body in, status, headers and body out, streamed.
|
|
125
|
+
*
|
|
126
|
+
* For everything that is not a model call — the model list, `/auto`, the MCP
|
|
127
|
+
* server. Nothing is recorded: none of it uses tokens, and a row per model-list
|
|
128
|
+
* fetch would drag every per-request average toward zero, which is the reason
|
|
129
|
+
* `count_tokens` is not recorded either.
|
|
130
|
+
*/
|
|
131
|
+
async function relay(req, res, target) {
|
|
132
|
+
const method = req.method ?? "GET";
|
|
133
|
+
let body;
|
|
134
|
+
if (method !== "GET" && method !== "HEAD") {
|
|
135
|
+
const read = await readBodyBytes(req, MAX_BODY_BYTES);
|
|
136
|
+
if (isTooLarge(read)) {
|
|
137
|
+
res.writeHead(413, { "content-type": "application/json" });
|
|
138
|
+
res.end(openaiError("invalid_request_error", `Fest: request body exceeds ${MAX_BODY_BYTES} bytes.`));
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
body = read;
|
|
142
|
+
}
|
|
143
|
+
const abort = new AbortController();
|
|
144
|
+
// A long-lived MCP stream must not outlive the client that asked for it.
|
|
145
|
+
res.on("close", () => {
|
|
146
|
+
if (!res.writableFinished)
|
|
147
|
+
abort.abort();
|
|
148
|
+
});
|
|
149
|
+
let upstream;
|
|
150
|
+
try {
|
|
151
|
+
upstream = await fetch(target, {
|
|
152
|
+
method,
|
|
153
|
+
headers: buildUpstreamHeaders(req.headers, {
|
|
154
|
+
posture: "subscription",
|
|
155
|
+
upstreamHost: target.host,
|
|
156
|
+
defaultAnthropicVersion: false,
|
|
157
|
+
}),
|
|
158
|
+
...(body === undefined ? {} : { body }),
|
|
159
|
+
signal: abort.signal,
|
|
160
|
+
redirect: "error",
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
if (abort.signal.aborted)
|
|
165
|
+
return;
|
|
166
|
+
log.warn("copilot relay failed", { path: target.pathname, error: String(err).slice(0, 200) });
|
|
167
|
+
res.writeHead(502, { "content-type": "application/json" });
|
|
168
|
+
res.end(openaiError("api_error", "Fest: could not reach GitHub's Copilot API."));
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
const stream = (upstream.headers.get("content-type") ?? "").includes("text/event-stream");
|
|
172
|
+
res.writeHead(upstream.status, buildDownstreamHeaders(upstream.headers, { stream, allow: () => true }));
|
|
173
|
+
if (upstream.body === null) {
|
|
174
|
+
res.end();
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
if (stream)
|
|
178
|
+
res.flushHeaders();
|
|
179
|
+
const reader = upstream.body.getReader();
|
|
180
|
+
try {
|
|
181
|
+
for (;;) {
|
|
182
|
+
const { done, value } = await reader.read();
|
|
183
|
+
if (done || res.destroyed)
|
|
184
|
+
break;
|
|
185
|
+
res.write(value);
|
|
186
|
+
}
|
|
187
|
+
res.end();
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
if (!abort.signal.aborted) {
|
|
191
|
+
log.warn("copilot relay stream failed", { path: target.pathname, error: String(err).slice(0, 200) });
|
|
192
|
+
}
|
|
193
|
+
if (!res.writableEnded)
|
|
194
|
+
res.end();
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
/** `/copilot/<plan>/…`: the turn metered, everything else relayed. */
|
|
198
|
+
export async function handleCopilot(req, res, opts) {
|
|
199
|
+
if (!admit(req, res, opts.ctx))
|
|
200
|
+
return;
|
|
201
|
+
const upstreamBaseUrl = copilotUpstream(opts.template, opts.plan);
|
|
202
|
+
const wire = copilotWire(req.method ?? "GET", pathnameOf(opts.rest));
|
|
203
|
+
if (wire !== null) {
|
|
204
|
+
await handleMessages(req, res, {
|
|
205
|
+
...opts.ctx,
|
|
206
|
+
upstreamBaseUrl,
|
|
207
|
+
pathOverride: opts.rest,
|
|
208
|
+
wire,
|
|
209
|
+
// The Copilot API serves nothing but plan-billed traffic, as chatgpt.com
|
|
210
|
+
// does for Codex; the bearer's prefix says "GitHub", not "who pays".
|
|
211
|
+
subscriptionMount: true,
|
|
212
|
+
});
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
await relay(req, res, joinUpstreamUrl(upstreamBaseUrl, opts.rest));
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* `/mcp/…` at the root: Copilot's built-in GitHub MCP server.
|
|
219
|
+
*
|
|
220
|
+
* No identity check, because there is no identity to check: Copilot builds
|
|
221
|
+
* this URL from the API URL's origin alone, so the `/t/<token>` segment never
|
|
222
|
+
* arrives. What keeps that safe is that the upstream is fixed — this forwards
|
|
223
|
+
* a caller's own credential to GitHub's MCP host and nowhere else — and that
|
|
224
|
+
* nothing is recorded. An operator who would rather not relay unattributed
|
|
225
|
+
* traffic sets `FEST_COPILOT_MCP_BASE_URL=off`, and `fest copilot` can switch
|
|
226
|
+
* the built-in server off on the client side.
|
|
227
|
+
*/
|
|
228
|
+
export async function relayCopilotMcp(req, res, opts) {
|
|
229
|
+
await relay(req, res, joinUpstreamUrl(opts.upstreamBaseUrl, opts.path));
|
|
230
|
+
}
|
|
231
|
+
/** Refuse a path under the mount whose plan segment GitHub does not serve. */
|
|
232
|
+
export function refuseUnknownPlan(res) {
|
|
233
|
+
res.writeHead(404, { "content-type": "application/json", "x-should-retry": "false" });
|
|
234
|
+
res.end(openaiError("not_found_error", `Fest: unknown Copilot plan in the URL; expected /copilot/{${COPILOT_PLANS.join("|")}}/… — start Copilot with \`fest copilot\`.`));
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=copilot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../../server/pipeline/copilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,cAAc,EAA2B,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,GAEvB,MAAM,WAAW,CAAC;AAEnB,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AAExC,uDAAuD;AACvD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,CAAU,CAAC;AAG/E,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAExC,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAiB;IAEjB,IAAI,SAAS,KAAK,aAAa,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,aAAa,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC;QAC5H,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,IAAI,GAAI,aAAmC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,OAAuB,CAAC,CAAC,CAAC,IAAI,CAAC;IACtG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAClE,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,IAAiB;IACjE,OAAO,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,QAAgB;IAC1D,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,QAAQ,KAAK,cAAc;QAAE,OAAO,sBAAsB,CAAC;IAC/D,IAAI,QAAQ,KAAK,mBAAmB;QAAE,OAAO,iBAAiB,CAAC;IAC/D,yEAAyE;IACzE,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,sBAAsB,CAAC;IACnG,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,KAAK,CACZ,GAAoB,EACpB,GAAmB,EACnB,GAAmF;IAEnF,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,OAAe,EAAS,EAAE;QACtC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC;QACtF,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,qHAAqH,CAAC,CAAC;IACrI,CAAC;IACD,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,yGAAyG,CAAC,CAAC;IACzH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,KAAK,CAAC,GAAoB,EAAE,GAAmB,EAAE,MAAW;IACzE,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;IACnC,IAAI,IAAyC,CAAC;IAC9C,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACtD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,uBAAuB,EAAE,8BAA8B,cAAc,SAAS,CAAC,CAAC,CAAC;YACrG,OAAO;QACT,CAAC;QACD,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,yEAAyE;IACzE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,IAAI,CAAC,GAAG,CAAC,gBAAgB;YAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE;YAC7B,MAAM;YACN,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE;gBACzC,OAAO,EAAE,cAAc;gBACvB,YAAY,EAAE,MAAM,CAAC,IAAI;gBACzB,uBAAuB,EAAE,KAAK;aAC/B,CAAC;YACF,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YACvC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QACjC,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9F,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,6CAA6C,CAAC,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAC1F,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACxG,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC3B,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IACD,IAAI,MAAM;QAAE,GAAG,CAAC,YAAY,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,IAAI,CAAC;QACH,SAAS,CAAC;YACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI,IAAI,GAAG,CAAC,SAAS;gBAAE,MAAM;YACjC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;QACD,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,aAAa;YAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IACpC,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAoB,EACpB,GAAmB,EACnB,IAKC;IAED,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO;IACvC,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE;YAC7B,GAAG,IAAI,CAAC,GAAG;YACX,eAAe;YACf,YAAY,EAAE,IAAI,CAAC,IAAI;YACvB,IAAI;YACJ,yEAAyE;YACzE,qEAAqE;YACrE,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAoB,EACpB,GAAmB,EACnB,IAA+C;IAE/C,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAAC,GAAmB;IACnD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC;IACtF,GAAG,CAAC,GAAG,CACL,WAAW,CACT,iBAAiB,EACjB,6DAA6D,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,4CAA4C,CACjI,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -93,9 +93,9 @@ export async function handleCodexModels(req, res, opts) {
|
|
|
93
93
|
res.end(openaiError("api_error", "Fest: could not reach upstream for the model list."));
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
/** Refuse a mount whose upstream an operator switched off. */
|
|
96
|
+
/** Refuse a mount whose upstream an operator switched off. Also used by `/copilot`. */
|
|
97
97
|
export function refuseDisabled(res, envVar) {
|
|
98
98
|
res.writeHead(501, { "content-type": "application/json", "x-should-retry": "false" });
|
|
99
|
-
res.end(openaiError("invalid_request_error", `Fest: this gateway does not relay this
|
|
99
|
+
res.end(openaiError("invalid_request_error", `Fest: this gateway does not relay this backend (${envVar} is set to "off").`));
|
|
100
100
|
}
|
|
101
101
|
//# sourceMappingURL=openai.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../server/pipeline/openai.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../server/pipeline/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,11 +12,17 @@
|
|
|
12
12
|
* CLI in BYOK mode with `COPILOT_PROVIDER_TYPE=anthropic`.
|
|
13
13
|
* - `openai-responses` — the Responses API. Codex on an API key (`/openai`)
|
|
14
14
|
* and on a ChatGPT login (`/chatgpt`).
|
|
15
|
+
* - `openai-chat` — Chat Completions. Only Copilot's own API (`/copilot`)
|
|
16
|
+
* speaks it to Fest today.
|
|
17
|
+
*
|
|
18
|
+
* `/copilot` relays all three, on Copilot variants of each (see the bottom of
|
|
19
|
+
* this file).
|
|
15
20
|
*/
|
|
16
21
|
import { USAGE_EVENT_TYPES } from "../../shared/types.js";
|
|
17
22
|
import { anthropicError, openaiError, openaiSseErrorEvent, sseErrorEvent, } from "../http/errors.js";
|
|
18
23
|
import { parseCodexRateLimit, parseRateLimit } from "../http/headers.js";
|
|
19
24
|
import { createUsageAccumulator, usageFromJson, } from "../usage/accumulator.js";
|
|
25
|
+
import { CHAT_USAGE_EVENT_TYPES, chatUsageFromJson, createChatAccumulator } from "../usage/chat.js";
|
|
20
26
|
import { createResponsesAccumulator, responsesUsageFromJson, RESPONSES_MAX_EVENT_CHARS, RESPONSES_USAGE_EVENT_TYPES, } from "../usage/responses.js";
|
|
21
27
|
export const ANTHROPIC_WIRE = {
|
|
22
28
|
id: "anthropic",
|
|
@@ -60,4 +66,54 @@ export const OPENAI_RESPONSES_WIRE = {
|
|
|
60
66
|
parseRateLimit: parseCodexRateLimit,
|
|
61
67
|
upstreamRequestId: (h) => h.get("x-request-id") ?? h.get("x-oai-request-id"),
|
|
62
68
|
};
|
|
69
|
+
/**
|
|
70
|
+
* Copilot's own API, on the developer's Copilot login (`/copilot`).
|
|
71
|
+
*
|
|
72
|
+
* The usage events are the stock ones for each wire — captured from Copilot CLI
|
|
73
|
+
* 1.0.96 against api.individual.githubcopilot.com — so the parsing is shared.
|
|
74
|
+
* Two things differ from the Anthropic and OpenAI originals:
|
|
75
|
+
*
|
|
76
|
+
* - Every response header is relayed except credentials and hop-by-hop ones.
|
|
77
|
+
* Copilot reads its plan quota from `x-quota-snapshot-*`, and its MCP
|
|
78
|
+
* traffic depends on `mcp-session-id`; an allowlist would be a list of the
|
|
79
|
+
* headers someone remembered. The developer is the one the response is
|
|
80
|
+
* addressed to, and `set-cookie` stays dropped by `buildDownstreamHeaders`.
|
|
81
|
+
* - No `anthropic-version` is invented for a Claude request: Copilot sends what
|
|
82
|
+
* its API expects, and the relay adds nothing.
|
|
83
|
+
*
|
|
84
|
+
* Quota is not parsed into the 5h/7d snapshot. Copilot's windows are monthly
|
|
85
|
+
* (`x-quota-snapshot-chat: …&rem=98.5&rst=2026-11-01T00:00:00Z`), and filing
|
|
86
|
+
* them under five-hour and seven-day columns would be wrong on the dashboard.
|
|
87
|
+
*/
|
|
88
|
+
const relayAll = () => true;
|
|
89
|
+
const copilotRequestId = (h) => h.get("x-github-request-id") ?? h.get("x-request-id");
|
|
90
|
+
export const COPILOT_ANTHROPIC_WIRE = {
|
|
91
|
+
...ANTHROPIC_WIRE,
|
|
92
|
+
defaultAnthropicVersion: false,
|
|
93
|
+
downstreamAllow: relayAll,
|
|
94
|
+
parseRateLimit: () => null,
|
|
95
|
+
upstreamRequestId: copilotRequestId,
|
|
96
|
+
};
|
|
97
|
+
export const COPILOT_RESPONSES_WIRE = {
|
|
98
|
+
...OPENAI_RESPONSES_WIRE,
|
|
99
|
+
downstreamAllow: relayAll,
|
|
100
|
+
parseRateLimit: () => null,
|
|
101
|
+
upstreamRequestId: copilotRequestId,
|
|
102
|
+
};
|
|
103
|
+
/** A Chat Completions stream reports a failure as a bare `error` chunk. */
|
|
104
|
+
function chatSseErrorFrame(type, message) {
|
|
105
|
+
return `data: ${JSON.stringify({ error: { type, message } })}\n\n`;
|
|
106
|
+
}
|
|
107
|
+
export const COPILOT_CHAT_WIRE = {
|
|
108
|
+
id: "openai-chat",
|
|
109
|
+
usageEventTypes: CHAT_USAGE_EVENT_TYPES,
|
|
110
|
+
createAccumulator: createChatAccumulator,
|
|
111
|
+
usageFromJson: chatUsageFromJson,
|
|
112
|
+
errorBody: openaiError,
|
|
113
|
+
sseErrorFrame: chatSseErrorFrame,
|
|
114
|
+
defaultAnthropicVersion: false,
|
|
115
|
+
downstreamAllow: relayAll,
|
|
116
|
+
parseRateLimit: () => null,
|
|
117
|
+
upstreamRequestId: copilotRequestId,
|
|
118
|
+
};
|
|
63
119
|
//# sourceMappingURL=wire.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../server/pipeline/wire.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../server/pipeline/wire.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,6 +67,8 @@ export function classifyCredential(header, rawValue) {
|
|
|
67
67
|
kind = "FIREPASS_KEY";
|
|
68
68
|
else if (token.startsWith("fest_"))
|
|
69
69
|
kind = "FEST_IDENTITY_TOKEN";
|
|
70
|
+
else if (/^(?:gh[opsu]_|github_pat_)/.test(token))
|
|
71
|
+
kind = "GITHUB_TOKEN";
|
|
70
72
|
// After every `sk-ant-` case, so an Anthropic key can never land here.
|
|
71
73
|
else if (token.startsWith("sk-"))
|
|
72
74
|
kind = "OPENAI_API_KEY";
|
|
@@ -74,7 +76,11 @@ export function classifyCredential(header, rawValue) {
|
|
|
74
76
|
header,
|
|
75
77
|
scheme: bearer ? "Bearer" : "raw",
|
|
76
78
|
kind,
|
|
77
|
-
|
|
79
|
+
// A GitHub token's family prefix is short (`gho_`), so the usual 11
|
|
80
|
+
// characters would carry seven of its secret ones. Keep the family only.
|
|
81
|
+
prefix: kind === "GITHUB_TOKEN"
|
|
82
|
+
? (/^(?:gh[opsu]_|github_pat_)/.exec(token)?.[0] ?? "")
|
|
83
|
+
: token.slice(0, Math.min(PREFIX_CHARS, token.length)),
|
|
78
84
|
length: token.length,
|
|
79
85
|
fingerprint: fingerprint(token),
|
|
80
86
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../../../server/secret/fingerprint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;IACzD,eAAe;IACf,WAAW;IACX,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,QAAQ;IACR,YAAY;IACZ,uDAAuD;IACvD,cAAc;CACf,CAAC,CAAC;AAEH,wDAAwD;AACxD,MAAM,CAAC,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC;IACrD,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,mBAAmB;IACnB,SAAS;IACT,kBAAkB;IAClB,IAAI;IACJ,SAAS;CACV,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../../../server/secret/fingerprint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;IACzD,eAAe;IACf,WAAW;IACX,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,QAAQ;IACR,YAAY;IACZ,uDAAuD;IACvD,cAAc;CACf,CAAC,CAAC;AAEH,wDAAwD;AACxD,MAAM,CAAC,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC;IACrD,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,mBAAmB;IACnB,SAAS;IACT,kBAAkB;IAClB,IAAI;IACJ,SAAS;CACV,CAAC,CAAC;AA6BH,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,uEAAuE;AACvE,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;AACtF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,QAAgB;IACjE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEjD,IAAI,IAAI,GAAmB,SAAS,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,IAAI,GAAG,OAAO,CAAC;SAClC,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,IAAI,GAAG,8BAA8B,CAAC;SAC1E,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,IAAI,GAAG,mBAAmB,CAAC;SAC/D,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,IAAI,GAAG,iBAAiB,CAAC;SAC1D,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,IAAI,GAAG,eAAe,CAAC;SACpD,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,IAAI,GAAG,cAAc,CAAC;SACpD,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,IAAI,GAAG,qBAAqB,CAAC;SAC5D,IAAI,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,IAAI,GAAG,cAAc,CAAC;IACzE,uEAAuE;SAClE,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,IAAI,GAAG,gBAAgB,CAAC;IAE1D,OAAO;QACL,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;QACjC,IAAI;QACJ,oEAAoE;QACpE,yEAAyE;QACzE,MAAM,EAAE,IAAI,KAAK,cAAc;YAC7B,CAAC,CAAC,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACvD,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,wBAAwB,CAAC,IAAoB;IAC3D,OAAO,IAAI,CAAC,IAAI,KAAK,8BAA8B,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,cAAc,GAClB,wFAAwF,CAAC;AAE3F;;;;;GAKG;AACH,MAAM,WAAW,GAAG,oCAAoC,CAAC;AAEzD,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AACvF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAgE;IAEhE,MAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACvE,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;;YAC9E,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;IAC7B,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Folds OpenAI Chat Completions SSE chunks into a single UsagePayload.
|
|
3
|
+
*
|
|
4
|
+
* Copilot's own API (`api.<plan>.githubcopilot.com`) serves three wires and
|
|
5
|
+
* picks one per model: Anthropic Messages for Claude, the Responses API for the
|
|
6
|
+
* GPT-5 family and later, and Chat Completions for the rest and for its own
|
|
7
|
+
* utility calls. This is the third. Chunks carry no `event:` field, so every
|
|
8
|
+
* one arrives as the SSE default type, `message`:
|
|
9
|
+
*
|
|
10
|
+
* data: {"choices":[{"delta":{"content":"po"}}],…}
|
|
11
|
+
* data: {"choices":[],"usage":{"prompt_tokens":812,"completion_tokens":5,
|
|
12
|
+
* "prompt_tokens_details":{"cached_tokens":768}},…}
|
|
13
|
+
* data: [DONE]
|
|
14
|
+
*
|
|
15
|
+
* Usage arrives once, on a late chunk, when the request asked for it
|
|
16
|
+
* (`stream_options.include_usage`); a client that did not ask gets none, and
|
|
17
|
+
* the row honestly records no tokens rather than a guess.
|
|
18
|
+
*
|
|
19
|
+
* ── Mapping onto Fest's disjoint buckets ─────────────────────────────────────
|
|
20
|
+
*
|
|
21
|
+
* Same rule as the Responses API: `prompt_tokens` INCLUDES the cached ones, so
|
|
22
|
+
*
|
|
23
|
+
* inputTokens = prompt_tokens − cached_tokens
|
|
24
|
+
* cacheReadTokens = cached_tokens
|
|
25
|
+
* outputTokens = completion_tokens
|
|
26
|
+
*
|
|
27
|
+
* Same contract as the other accumulators: last-wins per field, and `apply()`
|
|
28
|
+
* never throws.
|
|
29
|
+
*/
|
|
30
|
+
import { EMPTY_USAGE } from "../../shared/types.js";
|
|
31
|
+
import { asRecord, num, parse } from "./accumulator.js";
|
|
32
|
+
/** Every chunk is a `message`: Chat Completions never names its events. */
|
|
33
|
+
export const CHAT_USAGE_EVENT_TYPES = new Set(["message"]);
|
|
34
|
+
/** Read one Chat Completions `usage` object, or null when nothing in it is usable. */
|
|
35
|
+
function fromUsage(usage) {
|
|
36
|
+
const prompt = num(usage["prompt_tokens"]);
|
|
37
|
+
const completion = num(usage["completion_tokens"]);
|
|
38
|
+
if (prompt === undefined && completion === undefined)
|
|
39
|
+
return null;
|
|
40
|
+
const details = asRecord(usage["prompt_tokens_details"]);
|
|
41
|
+
const cached = (details ? num(details["cached_tokens"]) : undefined) ?? 0;
|
|
42
|
+
return {
|
|
43
|
+
...EMPTY_USAGE,
|
|
44
|
+
inputTokens: Math.max(0, (prompt ?? 0) - cached),
|
|
45
|
+
cacheReadTokens: cached,
|
|
46
|
+
outputTokens: completion ?? 0,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export function createChatAccumulator() {
|
|
50
|
+
let usage = EMPTY_USAGE;
|
|
51
|
+
let observed = false;
|
|
52
|
+
let error = null;
|
|
53
|
+
let terminal = false;
|
|
54
|
+
return {
|
|
55
|
+
apply(event) {
|
|
56
|
+
if (event.data === "[DONE]") {
|
|
57
|
+
terminal = true;
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
// Every content delta is a `message` too, so this runs once per token.
|
|
61
|
+
// Parsing only the chunks that could hold usage or an error keeps the
|
|
62
|
+
// observer's cost proportional to the metadata, not to the answer.
|
|
63
|
+
if (!event.data.includes('"usage"') && !event.data.includes('"error"'))
|
|
64
|
+
return;
|
|
65
|
+
const root = asRecord(parse(event.data));
|
|
66
|
+
if (!root)
|
|
67
|
+
return;
|
|
68
|
+
const err = asRecord(root["error"]);
|
|
69
|
+
if (err) {
|
|
70
|
+
error = {
|
|
71
|
+
type: typeof err["type"] === "string" ? err["type"] : (typeof err["code"] === "string" ? err["code"] : "error"),
|
|
72
|
+
message: typeof err["message"] === "string" ? err["message"] : "",
|
|
73
|
+
};
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const u = asRecord(root["usage"]);
|
|
77
|
+
const parsed = u ? fromUsage(u) : null;
|
|
78
|
+
if (parsed !== null) {
|
|
79
|
+
usage = parsed;
|
|
80
|
+
observed = true;
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
snapshot: () => usage,
|
|
84
|
+
sawUsage: () => observed,
|
|
85
|
+
streamError: () => error,
|
|
86
|
+
sawTerminal: () => terminal,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/** Usage from a non-streaming `POST /chat/completions` body. */
|
|
90
|
+
export function chatUsageFromJson(body) {
|
|
91
|
+
const root = asRecord(body);
|
|
92
|
+
const u = root ? asRecord(root["usage"]) : undefined;
|
|
93
|
+
return u ? fromUsage(u) : null;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../server/usage/chat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,WAAW,EAAoC,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAyB,MAAM,kBAAkB,CAAC;AAE/E,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAEhF,sFAAsF;AACtF,SAAS,SAAS,CAAC,KAA8B;IAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACnD,IAAI,MAAM,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1E,OAAO;QACL,GAAG,WAAW;QACd,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;QAChD,eAAe,EAAE,MAAM;QACvB,YAAY,EAAE,UAAU,IAAI,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,IAAI,KAAK,GAAiB,WAAW,CAAC;IACtC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,KAAK,GAA6C,IAAI,CAAC;IAC3D,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,OAAO;QACL,KAAK,CAAC,KAAe;YACnB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,QAAQ,GAAG,IAAI,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,uEAAuE;YACvE,sEAAsE;YACtE,mEAAmE;YACnE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO;YAC/E,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI;gBAAE,OAAO;YAElB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACpC,IAAI,GAAG,EAAE,CAAC;gBACR,KAAK,GAAG;oBACN,IAAI,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC/G,OAAO,EAAE,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;iBAClE,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACvC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,KAAK,GAAG,MAAM,CAAC;gBACf,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;QACH,CAAC;QAED,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;QACrB,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ;QACxB,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK;QACxB,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ;KAC5B,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC"}
|