fest-gateway 0.3.1 → 0.4.0
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 +87 -0
- package/dist/cli/codex.js +116 -0
- package/dist/cli/codex.js.map +1 -0
- package/dist/cli/copilot.js +109 -0
- package/dist/cli/copilot.js.map +1 -0
- package/dist/server/api/live.js +1 -0
- package/dist/server/api/live.js.map +1 -1
- package/dist/server/api/routes.js +2 -1
- package/dist/server/api/routes.js.map +1 -1
- package/dist/server/bin/fest.js +41 -1
- package/dist/server/bin/fest.js.map +1 -1
- package/dist/server/config.js +47 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/http/client.js +54 -0
- package/dist/server/http/client.js.map +1 -0
- package/dist/server/http/errors.js +23 -0
- package/dist/server/http/errors.js.map +1 -1
- package/dist/server/http/headers.js +53 -4
- package/dist/server/http/headers.js.map +1 -1
- package/dist/server/http/server.js +104 -0
- package/dist/server/http/server.js.map +1 -1
- package/dist/server/http/sse.js +2 -1
- package/dist/server/http/sse.js.map +1 -1
- package/dist/server/pipeline/bedrock.js +86 -0
- package/dist/server/pipeline/bedrock.js.map +1 -0
- package/dist/server/pipeline/count-tokens.js +5 -1
- package/dist/server/pipeline/count-tokens.js.map +1 -1
- package/dist/server/pipeline/dispatch.js +3 -1
- package/dist/server/pipeline/dispatch.js.map +1 -1
- package/dist/server/pipeline/openai.js +101 -0
- package/dist/server/pipeline/openai.js.map +1 -0
- package/dist/server/pipeline/passthrough.js +55 -35
- package/dist/server/pipeline/passthrough.js.map +1 -1
- package/dist/server/pipeline/record.js +1 -0
- package/dist/server/pipeline/record.js.map +1 -1
- package/dist/server/pipeline/wire.js +63 -0
- package/dist/server/pipeline/wire.js.map +1 -0
- package/dist/server/secret/fingerprint.js +11 -1
- package/dist/server/secret/fingerprint.js.map +1 -1
- package/dist/server/store/migrations/006-client.sql +14 -0
- package/dist/server/store/queries.js +27 -1
- package/dist/server/store/queries.js.map +1 -1
- package/dist/server/store/write.js +3 -2
- package/dist/server/store/write.js.map +1 -1
- package/dist/server/usage/accumulator.js +3 -3
- package/dist/server/usage/accumulator.js.map +1 -1
- package/dist/server/usage/prices/catalog.js +3 -1
- package/dist/server/usage/prices/catalog.js.map +1 -1
- package/dist/server/usage/responses.js +124 -0
- package/dist/server/usage/responses.js.map +1 -0
- package/dist/shared/demotion-vars.js +35 -0
- package/dist/shared/demotion-vars.js.map +1 -1
- package/dist/web/dist/assets/bitter-latin-700-normal-1jQzrEdb.woff2 +0 -0
- package/dist/web/dist/assets/bitter-latin-700-normal-BHV1FLDM.woff +0 -0
- package/dist/web/dist/assets/index-C7n3_lX2.css +2 -0
- package/dist/web/dist/assets/index-TVK-7gFI.js +56 -0
- package/dist/web/dist/assets/index-TVK-7gFI.js.map +1 -0
- package/dist/web/dist/index.html +7 -3
- package/package.json +2 -1
- package/dist/web/dist/assets/index-AEUYX58m.css +0 -2
- package/dist/web/dist/assets/index-DQd08peN.js +0 -56
- package/dist/web/dist/assets/index-DQd08peN.js.map +0 -1
package/README.md
CHANGED
|
@@ -8,6 +8,9 @@ and route to different models without Claude Code knowing the difference.
|
|
|
8
8
|
developer authenticates with their *own* subscription. Fest relays that
|
|
9
9
|
credential and never stores it. Per-user pass-through, never pooling.
|
|
10
10
|
|
|
11
|
+
<img width="2766" height="1404" alt="image" src="https://github.com/user-attachments/assets/4d1f48f6-01e8-473b-a529-b6d4ef8a7d44" />
|
|
12
|
+
|
|
13
|
+
|
|
11
14
|
Three ways to read this, depending on what you want:
|
|
12
15
|
|
|
13
16
|
| | |
|
|
@@ -48,8 +51,16 @@ Other commands:
|
|
|
48
51
|
fest whoami # what's logged in, and whether the token is still live
|
|
49
52
|
fest logout # forget the local token (does not revoke it server-side)
|
|
50
53
|
fest claude gw # force org credentials + the gateway's extra models
|
|
54
|
+
fest codex # OpenAI Codex CLI, on its own ChatGPT login or API key
|
|
55
|
+
fest copilot # GitHub Copilot CLI in BYOK mode, on your ANTHROPIC_API_KEY
|
|
51
56
|
```
|
|
52
57
|
|
|
58
|
+
Codex and Copilot CLI are metered into the same dashboard, labelled by client.
|
|
59
|
+
Codex on a ChatGPT login is relayed the way a Claude subscription is: your plan
|
|
60
|
+
pays. Copilot runs only in its bring-your-own-key mode, so a model key pays, never
|
|
61
|
+
the Copilot seat. See [docs/CODEX.md](docs/CODEX.md) and
|
|
62
|
+
[docs/COPILOT.md](docs/COPILOT.md).
|
|
63
|
+
|
|
53
64
|
Without installing anything, `npx fest-gateway login …` does the same job.
|
|
54
65
|
|
|
55
66
|
### If your operator hasn't set up OAuth
|
|
@@ -120,6 +131,8 @@ docker compose run --rm fest token list | token revoke <id>
|
|
|
120
131
|
| `FEST_SECURE_COOKIES` | set behind HTTPS. |
|
|
121
132
|
| `FEST_ROUTES` | routing table path. Absent means everything passes through. See [docs/ROUTING.md](docs/ROUTING.md). |
|
|
122
133
|
| `FEST_UPSTREAM_BASE_URL`, `FEST_LOG_LEVEL` | |
|
|
134
|
+
| `FEST_BEDROCK_BASE_URL` | opens the `/bedrock` mount, relaying Claude-in-Bedrock traffic on the *caller's* AWS credential. Must include Bedrock's `/anthropic` segment. Unset means the mount refuses. |
|
|
135
|
+
| `FEST_OPENAI_BASE_URL`, `FEST_CHATGPT_BASE_URL` | where the `/openai` (Codex on an API key) and `/chatgpt` (Codex on a ChatGPT login) mounts relay. Default `https://api.openai.com` and `https://chatgpt.com`; `off` refuses. See [docs/CODEX.md](docs/CODEX.md). |
|
|
123
136
|
| `FEST_PRICING_REFRESH` | set `0` to never fetch prices. Rates then come only from the vendored snapshot, which is always sufficient. |
|
|
124
137
|
| `FEST_PRICING_URL` | internal mirror of litellm's price file. |
|
|
125
138
|
| `FEST_PUBLIC_URL` | base URL Fest is reachable at. Builds the OAuth redirect URI, and its path sets the mount point. Defaults to `http://<host>:<port>`. |
|
|
@@ -166,6 +179,78 @@ The registered OAuth redirect URI must include the path —
|
|
|
166
179
|
`https://fest.corp.test/fest/api/auth/oauth/google/callback`. Developers point
|
|
167
180
|
both Claude Code and the CLI at the full prefixed URL.
|
|
168
181
|
|
|
182
|
+
### Amazon Bedrock, on the developer's own AWS credential
|
|
183
|
+
|
|
184
|
+
Claude Code can talk to Claude in Amazon Bedrock directly, and Fest can sit in
|
|
185
|
+
the middle of that without holding an AWS credential at all. The developer's own
|
|
186
|
+
short-lived bearer is forwarded and forgotten — exactly the property the
|
|
187
|
+
subscription path has — and Fest still meters, attributes and prices the traffic.
|
|
188
|
+
|
|
189
|
+
Server side, one variable and a restart:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
FEST_BEDROCK_BASE_URL=https://bedrock-mantle.us-east-1.api.aws/anthropic
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
That opens a `/bedrock` mount. Developers point Claude Code's Bedrock client at
|
|
196
|
+
it, after their identity prefix:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
CLAUDE_CODE_USE_MANTLE=1
|
|
200
|
+
ANTHROPIC_BEDROCK_MANTLE_BASE_URL=http://127.0.0.1:8787/t/<their-token>/bedrock
|
|
201
|
+
AWS_BEARER_TOKEN_BEDROCK=<minted with aws-bedrock-token-generator — 12 hours, maximum>
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Nothing else changes: Bedrock's mantle endpoint serves the ordinary Messages API
|
|
205
|
+
with ordinary SSE, so the request is a byte relay. Model ids are Bedrock's own
|
|
206
|
+
(`anthropic.claude-opus-5`), sent by the client, and priced from litellm's
|
|
207
|
+
Bedrock rates — including the 10% premium on a regional inference profile like
|
|
208
|
+
`us.anthropic.claude-opus-5`, because that is what AWS invoices.
|
|
209
|
+
|
|
210
|
+
**Why the developer holds the credential, and not the server.** Bedrock bearer
|
|
211
|
+
tokens last 12 hours at most. Fest resolves credentials from `{env:NAME}` only,
|
|
212
|
+
and nothing can rewrite a running process's environment, so a server-held
|
|
213
|
+
Bedrock token would mean restarting the gateway twice a day. The client can
|
|
214
|
+
refresh its own: `awsAuthRefresh` and `awsCredentialExport` are Claude Code
|
|
215
|
+
credential helpers, and the client maps both to the mantle base URL. The
|
|
216
|
+
renewal loop lives next to the SSO session, which is the only thing that can
|
|
217
|
+
mint a token non-interactively anyway. A useful side effect: AWS sees each
|
|
218
|
+
developer's own identity, so CloudTrail attributes calls to a person rather than
|
|
219
|
+
to one shared token.
|
|
220
|
+
|
|
221
|
+
The corollary is that **this is not a way to give developers Bedrock access they
|
|
222
|
+
do not already have.** Each one needs an AWS identity permitted to call Bedrock.
|
|
223
|
+
If that is the thing you are trying to avoid, Fest would have to sign SigV4
|
|
224
|
+
itself — a real `bedrock` adapter, not a config change, and not built.
|
|
225
|
+
|
|
226
|
+
Five things worth knowing:
|
|
227
|
+
|
|
228
|
+
- **The routing table gets no vote here.** A `/bedrock` request is always a
|
|
229
|
+
pass-through on the caller's own credential. A rule matching
|
|
230
|
+
`anthropic.claude-*` cannot divert it onto a server-held key, because the
|
|
231
|
+
mount never enters the routing fork at all — asserted in
|
|
232
|
+
`test/bedrock-http.test.ts`.
|
|
233
|
+
- **It is org spend, recorded honestly.** Rows land as `inbound_key` with basis
|
|
234
|
+
`list`: the caller's own key paid, AWS bills the org, and the dashboard says
|
|
235
|
+
so rather than counting it as a subscription that cost nothing.
|
|
236
|
+
- **`FEST_BEDROCK_BASE_URL` must include Bedrock's `/anthropic` segment**, since
|
|
237
|
+
that is genuinely part of the region's base URL. Fest concatenates rather than
|
|
238
|
+
resolving, so the segment survives.
|
|
239
|
+
- **Requests to the mount are refused, not redirected, when it is unset.** A
|
|
240
|
+
501 naming the variable, because falling through would send an AWS bearer to
|
|
241
|
+
`api.anthropic.com` and return a 401 that explains nothing.
|
|
242
|
+
- **Start these sessions with `claude`, not `fest claude`.** The CLI strips
|
|
243
|
+
every variable that demotes a developer off their subscription, and
|
|
244
|
+
`CLAUDE_CODE_USE_MANTLE` is one of them — so `fest claude` would quietly put
|
|
245
|
+
a Bedrock-configured shell back on the developer's own plan. That is the
|
|
246
|
+
right default everywhere else; here it is the wrong command.
|
|
247
|
+
|
|
248
|
+
Two Bedrock things Fest does **not** do. Non-Claude models on Bedrock, and
|
|
249
|
+
Claude on the older `InvokeModel`/`Converse` integration (`CLAUDE_CODE_USE_BEDROCK`
|
|
250
|
+
rather than `CLAUDE_CODE_USE_MANTLE`), both use a different wire shape —
|
|
251
|
+
`/model/{id}/invoke`, AWS eventstream framing, `model` moved out of the body.
|
|
252
|
+
Neither is a byte relay, so neither is a config change.
|
|
253
|
+
|
|
169
254
|
---
|
|
170
255
|
|
|
171
256
|
## How it works
|
|
@@ -308,6 +393,8 @@ inside it — read the relevant one before working there.
|
|
|
308
393
|
| [CLI-AUTH.md](docs/CLI-AUTH.md) | OAuth setup and the `fest login` flow end to end |
|
|
309
394
|
| [ROUTING.md](docs/ROUTING.md) | the routing table format and the substitute path |
|
|
310
395
|
| [PRICING.md](docs/PRICING.md) | where rates come from, and spend vs. value |
|
|
396
|
+
| [CODEX.md](docs/CODEX.md) | Codex CLI through the `/openai` and `/chatgpt` mounts |
|
|
397
|
+
| [COPILOT.md](docs/COPILOT.md) | Copilot CLI in BYOK mode, and why not its subscription |
|
|
311
398
|
| [POSTURES.md](docs/POSTURES.md) | subscription vs. key posture |
|
|
312
399
|
| [CANARY.md](docs/CANARY.md) | the version-upgrade gate |
|
|
313
400
|
| [PHASE0.md](docs/PHASE0.md) · [PHASE0-RESULTS.md](docs/PHASE0-RESULTS.md) | the gating experiment, and what it found |
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `fest codex`: run the real `codex` binary, pointed at this developer's Fest
|
|
3
|
+
* gateway, on whichever credential Codex is already logged in with.
|
|
4
|
+
*
|
|
5
|
+
* Codex has no base-URL environment variable any more; a gateway is a custom
|
|
6
|
+
* model provider. So Fest defines one for the life of the process with `-c`
|
|
7
|
+
* overrides and never edits `~/.codex/config.toml` — a developer's own config
|
|
8
|
+
* stays exactly as they left it, and plain `codex` still goes direct.
|
|
9
|
+
*
|
|
10
|
+
* Two modes, mirroring the two server mounts (`server/pipeline/openai.ts`):
|
|
11
|
+
*
|
|
12
|
+
* - **ChatGPT login** (`auth_mode: "chatgpt"` in `~/.codex/auth.json`): base
|
|
13
|
+
* URL `<fest>/chatgpt/backend-api/codex`, `requires_openai_auth = true`, so
|
|
14
|
+
* Codex sends its own ChatGPT token and the developer's plan pays.
|
|
15
|
+
* - **API key**: base URL `<fest>/openai/v1`. With `OPENAI_API_KEY` set,
|
|
16
|
+
* Codex reads it via `env_key`; otherwise `requires_openai_auth` lets it use
|
|
17
|
+
* a key stored by `codex login --with-api-key`. The key's owner pays.
|
|
18
|
+
*
|
|
19
|
+
* The Fest identity token travels in an `X-Fest-Token` header that Codex reads
|
|
20
|
+
* from an environment variable (`env_http_headers`). It is never in argv:
|
|
21
|
+
* `-c` values are visible to anyone who can run `ps`.
|
|
22
|
+
*/
|
|
23
|
+
import { spawn } from "node:child_process";
|
|
24
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
25
|
+
import { homedir } from "node:os";
|
|
26
|
+
import { join } from "node:path";
|
|
27
|
+
import { readCliConfig } from "./config.js";
|
|
28
|
+
/**
|
|
29
|
+
* The child-only variable `env_http_headers` reads the token from. Not
|
|
30
|
+
* `FEST_TOKEN`: that one means "use this instead of ~/.fest" to the fest CLI
|
|
31
|
+
* itself, and a Codex shell tool running `fest` should not inherit that.
|
|
32
|
+
*/
|
|
33
|
+
export const TOKEN_ENV = "FEST_GATEWAY_TOKEN";
|
|
34
|
+
/** Codex's own config directory. `CODEX_HOME` moves it. */
|
|
35
|
+
function codexHome(env) {
|
|
36
|
+
const fromEnv = env["CODEX_HOME"];
|
|
37
|
+
return fromEnv !== undefined && fromEnv !== "" ? fromEnv : join(homedir(), ".codex");
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* How is Codex logged in? Reads the `auth_mode` key only — `auth.json` also
|
|
41
|
+
* holds the ChatGPT tokens and any stored API key, and none of that is read.
|
|
42
|
+
*/
|
|
43
|
+
export function detectCodexMode(env) {
|
|
44
|
+
const path = join(codexHome(env), "auth.json");
|
|
45
|
+
if (existsSync(path)) {
|
|
46
|
+
try {
|
|
47
|
+
const parsed = JSON.parse(readFileSync(path, "utf8"));
|
|
48
|
+
if (parsed["auth_mode"] === "chatgpt")
|
|
49
|
+
return { mode: "chatgpt", detail: "ChatGPT login found" };
|
|
50
|
+
if (parsed["auth_mode"] === "apikey")
|
|
51
|
+
return { mode: "key", detail: "Codex API-key login found" };
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// Unparseable: fall through and let Codex itself say what is wrong.
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return { mode: "key", detail: "no ChatGPT login found" };
|
|
58
|
+
}
|
|
59
|
+
/** TOML string literal for a `-c key=value` override. */
|
|
60
|
+
const toml = (s) => JSON.stringify(s);
|
|
61
|
+
/**
|
|
62
|
+
* Pure, so it is testable without spawning `codex`. Returns the args to put in
|
|
63
|
+
* FRONT of the developer's own (they are top-level options, so they apply to
|
|
64
|
+
* `codex`, `codex exec` and `codex resume` alike) and the child environment.
|
|
65
|
+
*/
|
|
66
|
+
export function buildCodexInvocation(base, cfg, mode) {
|
|
67
|
+
const p = "model_providers.fest";
|
|
68
|
+
const args = [
|
|
69
|
+
"-c", `model_provider=${toml("fest")}`,
|
|
70
|
+
"-c", `${p}.name=${toml("Fest")}`,
|
|
71
|
+
"-c", `${p}.wire_api=${toml("responses")}`,
|
|
72
|
+
"-c", `${p}.env_http_headers={ "X-Fest-Token" = ${toml(TOKEN_ENV)} }`,
|
|
73
|
+
"-c", `${p}.http_headers={ "X-Fest-Client" = ${toml("codex")} }`,
|
|
74
|
+
];
|
|
75
|
+
const hasEnvKey = (base["OPENAI_API_KEY"] ?? "") !== "";
|
|
76
|
+
if (mode === "chatgpt") {
|
|
77
|
+
args.push("-c", `${p}.base_url=${toml(`${cfg.serverUrl}/chatgpt/backend-api/codex`)}`);
|
|
78
|
+
args.push("-c", `${p}.requires_openai_auth=true`);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
args.push("-c", `${p}.base_url=${toml(`${cfg.serverUrl}/openai/v1`)}`);
|
|
82
|
+
args.push("-c", hasEnvKey ? `${p}.env_key=${toml("OPENAI_API_KEY")}` : `${p}.requires_openai_auth=true`);
|
|
83
|
+
}
|
|
84
|
+
return { args, env: { ...base, [TOKEN_ENV]: cfg.identityToken } };
|
|
85
|
+
}
|
|
86
|
+
const note = (s) => void process.stderr.write(`fest codex: ${s}\n`);
|
|
87
|
+
export async function runCodex(argv, requested = "auto") {
|
|
88
|
+
const cfg = await readCliConfig();
|
|
89
|
+
if (cfg === null)
|
|
90
|
+
throw new Error("not logged in. Run `fest login` first.");
|
|
91
|
+
const detected = requested === "auto" ? detectCodexMode(process.env) : null;
|
|
92
|
+
const mode = requested === "auto" ? detected.mode : requested;
|
|
93
|
+
// Who pays, every time, as `fest claude` does.
|
|
94
|
+
if (mode === "chatgpt")
|
|
95
|
+
note(`ChatGPT login (${detected?.detail ?? "forced"}) — your own plan pays.`);
|
|
96
|
+
else if (requested === "key")
|
|
97
|
+
note("API key forced — the key's owner pays.");
|
|
98
|
+
else
|
|
99
|
+
note(`API key (${detected.detail}) — the key's owner pays.`);
|
|
100
|
+
const { args, env } = buildCodexInvocation(process.env, cfg, mode);
|
|
101
|
+
const child = spawn("codex", [...args, ...argv], { stdio: "inherit", env });
|
|
102
|
+
const code = await new Promise((resolve, reject) => {
|
|
103
|
+
child.on("error", (err) => {
|
|
104
|
+
reject(err.code === "ENOENT" ? new Error("`codex` was not found on PATH. Install Codex CLI first.") : err);
|
|
105
|
+
});
|
|
106
|
+
child.on("exit", (exitCode, signal) => {
|
|
107
|
+
if (signal !== null) {
|
|
108
|
+
process.kill(process.pid, signal);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
resolve(exitCode ?? 1);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
process.exitCode = code;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=codex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../cli/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `fest copilot`: run the real `copilot` binary (GitHub Copilot CLI) in its
|
|
3
|
+
* bring-your-own-key mode, with Fest as the provider.
|
|
4
|
+
*
|
|
5
|
+
* What this is NOT: a relay for a Copilot subscription. Copilot's own model
|
|
6
|
+
* traffic is authenticated with the developer's GitHub token against
|
|
7
|
+
* GitHub-run endpoints, and there is no supported way to point it anywhere
|
|
8
|
+
* else. BYOK (`COPILOT_PROVIDER_*`) is the supported way to put Copilot CLI on
|
|
9
|
+
* a model API of your choosing, and it bills that API — so under `fest copilot`
|
|
10
|
+
* a key pays, never the Copilot seat. See `docs/COPILOT.md`.
|
|
11
|
+
*
|
|
12
|
+
* Three modes:
|
|
13
|
+
*
|
|
14
|
+
* - **anthropic** (default): Copilot speaks the Anthropic Messages API to
|
|
15
|
+
* Fest's existing `/v1/messages` on the developer's own `ANTHROPIC_API_KEY`
|
|
16
|
+
* — the same relay Claude Code's key posture uses.
|
|
17
|
+
* - **gw**: no key of the developer's; the Fest token goes in the bearer
|
|
18
|
+
* position, so the server's routing table supplies the credential, exactly
|
|
19
|
+
* as `fest claude gw` does.
|
|
20
|
+
* - **openai**: the Responses API to Fest's `/openai/v1` mount on the
|
|
21
|
+
* developer's own `OPENAI_API_KEY`.
|
|
22
|
+
*
|
|
23
|
+
* The identity token rides in `COPILOT_PROVIDER_HEADERS` as `X-Fest-Token`
|
|
24
|
+
* (gw mode excepted), alongside `X-Fest-Client: copilot` so the dashboard can
|
|
25
|
+
* tell this traffic from Claude Code's — both send `claude-*` model ids.
|
|
26
|
+
*/
|
|
27
|
+
import { spawn } from "node:child_process";
|
|
28
|
+
import { BASE_MODELS } from "../shared/base-models.js";
|
|
29
|
+
import { readCliConfig } from "./config.js";
|
|
30
|
+
/**
|
|
31
|
+
* Pure, so it is testable without spawning `copilot`. Throws with a sentence a
|
|
32
|
+
* developer can act on when the mode needs a key that is not there.
|
|
33
|
+
*/
|
|
34
|
+
export function buildCopilotEnv(base, cfg, mode) {
|
|
35
|
+
const env = { ...base };
|
|
36
|
+
// Start from a clean provider: an inherited COPILOT_PROVIDER_BEARER_TOKEN
|
|
37
|
+
// silently takes precedence over the API key set below, and an inherited
|
|
38
|
+
// base URL or type would point the session somewhere else entirely.
|
|
39
|
+
for (const name of Object.keys(env)) {
|
|
40
|
+
if (name.startsWith("COPILOT_PROVIDER_") || name === "COPILOT_PROVIDERS_CONFIG")
|
|
41
|
+
delete env[name];
|
|
42
|
+
}
|
|
43
|
+
const headers = [`X-Fest-Client: copilot`];
|
|
44
|
+
if (mode === "openai") {
|
|
45
|
+
const key = base["OPENAI_API_KEY"] ?? "";
|
|
46
|
+
if (key === "")
|
|
47
|
+
throw new Error("`fest copilot openai` needs OPENAI_API_KEY set.");
|
|
48
|
+
if ((base["COPILOT_MODEL"] ?? "") === "") {
|
|
49
|
+
throw new Error("`fest copilot openai` needs COPILOT_MODEL set (e.g. COPILOT_MODEL=gpt-5.5).");
|
|
50
|
+
}
|
|
51
|
+
env["COPILOT_PROVIDER_TYPE"] = "openai";
|
|
52
|
+
env["COPILOT_PROVIDER_WIRE_API"] = "responses";
|
|
53
|
+
env["COPILOT_PROVIDER_BASE_URL"] = `${cfg.serverUrl}/openai/v1`;
|
|
54
|
+
env["COPILOT_PROVIDER_API_KEY"] = key;
|
|
55
|
+
headers.push(`X-Fest-Token: ${cfg.identityToken}`);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
env["COPILOT_PROVIDER_TYPE"] = "anthropic";
|
|
59
|
+
env["COPILOT_PROVIDER_BASE_URL"] = cfg.serverUrl;
|
|
60
|
+
if (mode === "gw") {
|
|
61
|
+
env["COPILOT_PROVIDER_BEARER_TOKEN"] = cfg.identityToken;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
const key = base["ANTHROPIC_API_KEY"] ?? "";
|
|
65
|
+
if (key === "") {
|
|
66
|
+
throw new Error("`fest copilot` needs ANTHROPIC_API_KEY set. Without one, `fest copilot gw` uses the gateway's own routes.");
|
|
67
|
+
}
|
|
68
|
+
// A subscription token is Claude Code's alone; Anthropic refuses it from
|
|
69
|
+
// any other client, and the refusal reads like a Fest bug.
|
|
70
|
+
if (key.startsWith("sk-ant-oat")) {
|
|
71
|
+
throw new Error("ANTHROPIC_API_KEY holds a Claude subscription token, which only Claude Code can use. Set an API key.");
|
|
72
|
+
}
|
|
73
|
+
env["COPILOT_PROVIDER_API_KEY"] = key;
|
|
74
|
+
headers.push(`X-Fest-Token: ${cfg.identityToken}`);
|
|
75
|
+
}
|
|
76
|
+
// BYOK has no default model, and Copilot's own default is a GitHub-hosted
|
|
77
|
+
// id the gateway cannot serve. Sonnet is the everyday Claude Code model.
|
|
78
|
+
if ((base["COPILOT_MODEL"] ?? "") === "") {
|
|
79
|
+
env["COPILOT_MODEL"] = (BASE_MODELS.find((m) => m.id.includes("sonnet")) ?? BASE_MODELS[0]).id;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
env["COPILOT_PROVIDER_HEADERS"] = headers.join("\n");
|
|
83
|
+
return env;
|
|
84
|
+
}
|
|
85
|
+
const note = (s) => void process.stderr.write(`fest copilot: ${s}\n`);
|
|
86
|
+
export async function runCopilot(argv, mode = "anthropic") {
|
|
87
|
+
const cfg = await readCliConfig();
|
|
88
|
+
if (cfg === null)
|
|
89
|
+
throw new Error("not logged in. Run `fest login` first.");
|
|
90
|
+
const env = buildCopilotEnv(process.env, cfg, mode);
|
|
91
|
+
note(mode === "gw"
|
|
92
|
+
? "BYOK via gateway routes — org credentials pay, not your Copilot seat."
|
|
93
|
+
: `BYOK on your ${mode === "openai" ? "OPENAI_API_KEY" : "ANTHROPIC_API_KEY"} — that key pays, not your Copilot seat.`);
|
|
94
|
+
const child = spawn("copilot", argv, { stdio: "inherit", env });
|
|
95
|
+
const code = await new Promise((resolve, reject) => {
|
|
96
|
+
child.on("error", (err) => {
|
|
97
|
+
reject(err.code === "ENOENT" ? new Error("`copilot` was not found on PATH. Install GitHub Copilot CLI first.") : err);
|
|
98
|
+
});
|
|
99
|
+
child.on("exit", (exitCode, signal) => {
|
|
100
|
+
if (signal !== null) {
|
|
101
|
+
process.kill(process.pid, signal);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
resolve(exitCode ?? 1);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
process.exitCode = code;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=copilot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../cli/copilot.ts"],"names":[],"mappings":"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"}
|
package/dist/server/api/live.js
CHANGED
|
@@ -53,6 +53,7 @@ export function toLiveRow(rec) {
|
|
|
53
53
|
rl5hUtilization: rec.rateLimit?.fiveHourUtilization ?? null,
|
|
54
54
|
rlClaim: rec.rateLimit?.representativeClaim ?? null,
|
|
55
55
|
clientVersion: rec.clientVersion,
|
|
56
|
+
client: rec.client ?? null,
|
|
56
57
|
pipeline: rec.pipeline,
|
|
57
58
|
routeId: rec.routeId,
|
|
58
59
|
credentialsConsidered: rec.credentialsConsidered,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.js","sourceRoot":"","sources":["../../../server/api/live.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"live.js","sourceRoot":"","sources":["../../../server/api/live.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* result arrives as `scope`. Every query takes that scope explicitly, so there
|
|
12
12
|
* is no ambient "current org" a handler could forget to apply.
|
|
13
13
|
*/
|
|
14
|
-
import { listRequests, usageTotals, usageByUser, usageByModel, usageByCredentialOrigin, usageSeries, errorBreakdown, latencySummary, latestQuotaByUser, } from "../store/queries.js";
|
|
14
|
+
import { listRequests, usageTotals, usageByUser, usageByModel, usageByCredentialOrigin, usageByClient, usageSeries, errorBreakdown, latencySummary, latestQuotaByUser, } from "../store/queries.js";
|
|
15
15
|
import { explainRoutes } from "./routing-view.js";
|
|
16
16
|
import { ADAPTER_TRANSFORMS } from "../adapters/registry.js";
|
|
17
17
|
import { handleLive } from "./live.js";
|
|
@@ -76,6 +76,7 @@ export function handleApi(req, res, path, deps) {
|
|
|
76
76
|
totals: usageTotals(deps.store, scope, range),
|
|
77
77
|
series: usageSeries(deps.store, scope, range),
|
|
78
78
|
byCredentialOrigin: usageByCredentialOrigin(deps.store, scope, range),
|
|
79
|
+
byClient: usageByClient(deps.store, scope, range),
|
|
79
80
|
latency: latencySummary(deps.store, scope, range),
|
|
80
81
|
sink: deps.sink.stats(),
|
|
81
82
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../server/api/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EACL,YAAY,EACZ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,uBAAuB,EACvB,WAAW,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAY9C,MAAM,gBAAgB,GAAG,EAAE,GAAG,SAAS,CAAC;AACxC,MAAM,YAAY,GAAG,GAAG,GAAG,UAAU,CAAC;AAEtC,SAAS,QAAQ,CAAC,MAAuB,EAAE,IAAY;IACrD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACxD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAuB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAClE,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC;IAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,GAAG,gBAAgB,CAAC;IACpE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,YAAY,CAAC,CAAC;IACtD,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,QAAQ,CAAC,MAAuB,EAAE,IAAY;IACrD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7D,CAAC;AAgBD,SAAS,IAAI,CAAC,GAAmB,EAAE,MAAc,EAAE,IAAa;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE;QACpB,cAAc,EAAE,kBAAkB;QAClC,eAAe,EAAE,UAAU;KAC5B,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CACvB,GAAoB,EACpB,GAAmB,EACnB,IAAY,EACZ,IAAa;IAEb,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,mBAAmB,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC;IAChC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAEzB,0EAA0E;IAC1E,yBAAyB;IACzB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,eAAe;YAClB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;gBACb,KAAK;gBACL,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;gBAC7C,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;gBAC7C,kBAAkB,EAAE,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;gBACrE,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;gBACjD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;aACG,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;QAEd,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,MAAM,GAAG;gBACb,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9F,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC,KAAK,SAAS;oBACpD,CAAC,CAAC,EAAE,gBAAgB,EAAE,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE;oBAC5D,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9F,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzF,CAAC;YACF,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAA4B,CAAC,CAAC;YACnF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,YAAY;YACf,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAA0B,CAAC,CAAC;YAC/F,OAAO,IAAI,CAAC;QAEd,KAAK,aAAa;YAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAA2B,CAAC,CAAC;YACjG,OAAO,IAAI,CAAC;QAEd,KAAK,aAAa;YAChB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;gBACb,KAAK;gBACL,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;gBAC9C,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;aACzB,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC;QAEd,uEAAuE;QACvE,sEAAsE;QACtE,wEAAwE;QACxE,sCAAsC;QACtC,KAAK,cAAc;YACjB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;gBACb,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBACtC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzD,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,gBAAgB,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM;oBACrC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI;oBAC9D,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE;iBAChD,CAAC,CAAC;gBACH,oEAAoE;gBACpE,oEAAoE;gBACpE,yCAAyC;gBACzC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;oBAClF,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,OAAO;oBACP,SAAS;oBACT,OAAO;iBACR,CAAC,CAAC;aACsB,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC;QAEd,qEAAqE;QACrE,+DAA+D;QAC/D,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;gBACnD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,IAAI,GAAG;gBACX,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxF,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/F,CAAC;YACF,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAA0B,CAAC,CAAC;YAC3F,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,YAAY;YACf,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAA0B,CAAC,CAAC;YACvF,OAAO,IAAI,CAAC;QAEd;YACE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,qBAAqB,IAAI,EAAE,EAAE,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../server/api/routes.ts"],"names":[],"mappings":"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"}
|
package/dist/server/bin/fest.js
CHANGED
|
@@ -29,6 +29,15 @@
|
|
|
29
29
|
* login pays if you have one, org credentials
|
|
30
30
|
* if you do not. `gw` forces org credentials
|
|
31
31
|
* and the gateway model menu.
|
|
32
|
+
* fest codex [key] [-- codex args...]
|
|
33
|
+
* run `codex` through Fest on its own login:
|
|
34
|
+
* a ChatGPT login's plan pays, or an API key's
|
|
35
|
+
* owner. `key` forces API-key mode.
|
|
36
|
+
* fest copilot [gw|openai] [-- copilot args...]
|
|
37
|
+
* run Copilot CLI in BYOK mode with Fest as
|
|
38
|
+
* the provider, on your ANTHROPIC_API_KEY
|
|
39
|
+
* (`gw`: gateway routes; `openai`: your
|
|
40
|
+
* OPENAI_API_KEY). Never your Copilot seat.
|
|
32
41
|
* fest logout forget the local login
|
|
33
42
|
*/
|
|
34
43
|
import { mkdir, rm } from "node:fs/promises";
|
|
@@ -56,6 +65,8 @@ import { readFile } from "node:fs/promises";
|
|
|
56
65
|
import { runLogin } from "../../cli/login.js";
|
|
57
66
|
import { runWhoami } from "../../cli/whoami.js";
|
|
58
67
|
import { runClaude } from "../../cli/claude.js";
|
|
68
|
+
import { runCodex } from "../../cli/codex.js";
|
|
69
|
+
import { runCopilot } from "../../cli/copilot.js";
|
|
59
70
|
import { runLogout } from "../../cli/logout.js";
|
|
60
71
|
import { readCliConfig } from "../../cli/config.js";
|
|
61
72
|
const out = (s) => void process.stdout.write(s + "\n");
|
|
@@ -499,6 +510,10 @@ function printHelp() {
|
|
|
499
510
|
" fest login [--provider google|github] [--server <url>]\n" +
|
|
500
511
|
" fest whoami\n" +
|
|
501
512
|
" fest claude [gw] [-- claude args...] (gw: force org credentials + gateway models)\n" +
|
|
513
|
+
" fest codex [key] [-- codex args...] (key: force API-key mode over a ChatGPT login)\n" +
|
|
514
|
+
" fest copilot [gw|openai] [-- copilot args...]\n" +
|
|
515
|
+
" (Copilot CLI BYOK on your ANTHROPIC_API_KEY;\n" +
|
|
516
|
+
" gw: gateway routes, openai: your OPENAI_API_KEY)\n" +
|
|
502
517
|
" fest logout");
|
|
503
518
|
}
|
|
504
519
|
async function cmdLogin(argv) {
|
|
@@ -518,7 +533,22 @@ async function cmdLogin(argv) {
|
|
|
518
533
|
* `loadConfig()` is ever called: a laptop has no reason to have any FEST_*
|
|
519
534
|
* server env var set, and these commands must not imply otherwise.
|
|
520
535
|
*/
|
|
521
|
-
const CLIENT_COMMANDS = new Set(["login", "whoami", "claude", "logout"]);
|
|
536
|
+
const CLIENT_COMMANDS = new Set(["login", "whoami", "claude", "codex", "copilot", "logout"]);
|
|
537
|
+
/**
|
|
538
|
+
* Peel an optional mode word off a client command's args, then a conventional
|
|
539
|
+
* leading `--`. Only before `--`: `fest codex -- key` forwards `key`.
|
|
540
|
+
*/
|
|
541
|
+
function modeArgs(argv, modes) {
|
|
542
|
+
let rest = [...argv];
|
|
543
|
+
let mode = null;
|
|
544
|
+
if (rest[0] !== undefined && modes.includes(rest[0])) {
|
|
545
|
+
mode = rest[0];
|
|
546
|
+
rest = rest.slice(1);
|
|
547
|
+
}
|
|
548
|
+
if (rest[0] === "--")
|
|
549
|
+
rest = rest.slice(1);
|
|
550
|
+
return { mode, rest };
|
|
551
|
+
}
|
|
522
552
|
async function main() {
|
|
523
553
|
const argv = process.argv.slice(2);
|
|
524
554
|
const cmd = argv[0] ?? "help";
|
|
@@ -546,6 +576,16 @@ async function main() {
|
|
|
546
576
|
await runClaude(claudeArgs, posture);
|
|
547
577
|
return;
|
|
548
578
|
}
|
|
579
|
+
case "codex": {
|
|
580
|
+
const { mode, rest } = modeArgs(argv.slice(1), ["key"]);
|
|
581
|
+
await runCodex(rest, mode ?? "auto");
|
|
582
|
+
return;
|
|
583
|
+
}
|
|
584
|
+
case "copilot": {
|
|
585
|
+
const { mode, rest } = modeArgs(argv.slice(1), ["gw", "openai"]);
|
|
586
|
+
await runCopilot(rest, mode ?? "anthropic");
|
|
587
|
+
return;
|
|
588
|
+
}
|
|
549
589
|
case "logout":
|
|
550
590
|
await runLogout();
|
|
551
591
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fest.js","sourceRoot":"","sources":["../../../server/bin/fest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fest.js","sourceRoot":"","sources":["../../../server/bin/fest.ts"],"names":[],"mappings":"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"}
|