@usine/gateway 0.1.0 → 0.2.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/LICENSE +661 -21
- package/README.md +99 -11
- package/dist/admin/api.d.ts +6 -66
- package/dist/admin/api.d.ts.map +1 -1
- package/dist/admin/api.js +4 -4
- package/dist/admin/api.js.map +1 -1
- package/dist/admin/server.d.ts +1 -1
- package/dist/admin/server.d.ts.map +1 -1
- package/dist/admin/server.js +1 -1
- package/dist/admin/server.js.map +1 -1
- package/dist/attachment/attachment.d.ts +8 -1
- package/dist/attachment/attachment.d.ts.map +1 -1
- package/dist/attachment/attachment.js +14 -4
- package/dist/attachment/attachment.js.map +1 -1
- package/dist/attachment/store.d.ts +7 -0
- package/dist/attachment/store.d.ts.map +1 -1
- package/dist/attachment/store.js +46 -14
- package/dist/attachment/store.js.map +1 -1
- package/dist/caller/caller.d.ts +1 -1
- package/dist/caller/caller.d.ts.map +1 -1
- package/dist/caller/caller.js +8 -7
- package/dist/caller/caller.js.map +1 -1
- package/dist/chatgpt/auth-file.d.ts +47 -0
- package/dist/chatgpt/auth-file.d.ts.map +1 -0
- package/dist/chatgpt/auth-file.js +132 -0
- package/dist/chatgpt/auth-file.js.map +1 -0
- package/dist/chatgpt/logins.d.ts +50 -0
- package/dist/chatgpt/logins.d.ts.map +1 -0
- package/dist/chatgpt/logins.js +303 -0
- package/dist/chatgpt/logins.js.map +1 -0
- package/dist/gateway.d.ts +8 -4
- package/dist/gateway.d.ts.map +1 -1
- package/dist/gateway.js +8 -4
- package/dist/gateway.js.map +1 -1
- package/dist/github/github.d.ts +19 -8
- package/dist/github/github.d.ts.map +1 -1
- package/dist/github/github.js +45 -21
- package/dist/github/github.js.map +1 -1
- package/dist/github/rename.d.ts +30 -0
- package/dist/github/rename.d.ts.map +1 -0
- package/dist/github/rename.js +83 -0
- package/dist/github/rename.js.map +1 -0
- package/dist/llm/llm.d.ts +64 -15
- package/dist/llm/llm.d.ts.map +1 -1
- package/dist/llm/llm.js +89 -37
- package/dist/llm/llm.js.map +1 -1
- package/dist/node/egress-proxy.js +1 -1
- package/dist/node/egress-proxy.js.map +1 -1
- package/dist/node/environment.d.ts +15 -10
- package/dist/node/environment.d.ts.map +1 -1
- package/dist/node/environment.js +51 -24
- package/dist/node/environment.js.map +1 -1
- package/dist/node/node.d.ts +7 -8
- package/dist/node/node.d.ts.map +1 -1
- package/dist/node/node.js +22 -23
- package/dist/node/node.js.map +1 -1
- package/dist/node/reload.d.ts +2 -1
- package/dist/node/reload.d.ts.map +1 -1
- package/dist/node/reload.js +41 -13
- package/dist/node/reload.js.map +1 -1
- package/dist/proxy/forward.d.ts +2 -2
- package/dist/proxy/forward.d.ts.map +1 -1
- package/dist/proxy/forward.js +1 -1
- package/dist/proxy/forward.js.map +1 -1
- package/dist/proxy/proxy.d.ts +4 -3
- package/dist/proxy/proxy.d.ts.map +1 -1
- package/dist/proxy/proxy.js +132 -24
- package/dist/proxy/proxy.js.map +1 -1
- package/package.json +9 -9
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { RepositoryName } from "@usine/core/repository";
|
|
2
|
+
import { Effect, Option, Schema } from "effect";
|
|
3
|
+
import { HttpClient } from "effect/http";
|
|
4
|
+
import type { Attachment } from "../attachment/attachment.ts";
|
|
5
|
+
import { type GitHubOrigins } from "./github.ts";
|
|
6
|
+
/** The statuses GitHub uses to redirect a renamed or transferred repository's former name. */
|
|
7
|
+
export declare const PERMANENT_REDIRECTS: ReadonlySet<number>;
|
|
8
|
+
/**
|
|
9
|
+
* Returns the repository name in `location`, GitHub's redirect of the upstream URL `requested`,
|
|
10
|
+
* if both are git's `/OWNER/REPO/info/refs` or both are the API's `/repos/OWNER/REPO`, so only
|
|
11
|
+
* the owner and repository differ. Returns `None` for other redirects, such as a release
|
|
12
|
+
* download's, which can point at another repository without a rename.
|
|
13
|
+
*/
|
|
14
|
+
export declare const redirectedName: (origins: GitHubOrigins, requested: URL, location: URL) => Option.Option<RepositoryName>;
|
|
15
|
+
declare const RenameUnconfirmed_base: Schema.Class<RenameUnconfirmed, Schema.TaggedStruct<"RenameUnconfirmed", {
|
|
16
|
+
readonly reason: Schema.Literals<readonly ["former-name-not-redirected", "repository-unreadable", "other-current-name", "github-unreachable"]>;
|
|
17
|
+
readonly detail: Schema.String;
|
|
18
|
+
}>, import("effect/Cause").YieldableError>;
|
|
19
|
+
/** Why GitHub's API didn't confirm that the attached repository has a redirect's name. */
|
|
20
|
+
declare class RenameUnconfirmed extends RenameUnconfirmed_base {
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Confirms with GitHub's API, using the attachment's credential, that `newName` is the attached
|
|
24
|
+
* repository's current name: `/repos/OWNER/REPO` for the attached name must answer a permanent
|
|
25
|
+
* redirect to `/repositories/ID`, and the `full_name` of repository ID must be `newName`. Fails
|
|
26
|
+
* with `RenameUnconfirmed` otherwise, or if GitHub can't be reached.
|
|
27
|
+
*/
|
|
28
|
+
export declare const confirmRename: (client: HttpClient.HttpClient, origins: GitHubOrigins, attachment: Attachment, newName: string & import("effect/Brand").Brand<"RepositoryName">) => Effect.Effect<undefined, RenameUnconfirmed, never>;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=rename.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rename.d.ts","sourceRoot":"","sources":["../../src/github/rename.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAW,UAAU,EAAqB,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAA4B,KAAK,aAAa,EAAwB,MAAM,aAAa,CAAC;AAEjG,8FAA8F;AAC9F,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAuB,CAAC;AAmC5E;;;;;GAKG;AACH,eAAO,MAAM,cAAc,YAChB,aAAa,aACX,GAAG,YACJ,GAAG,KACZ,MAAM,CAAC,MAAM,CAAC,cAAc,CAM5B,CAAC;;;;;AAEJ,0FAA0F;AAC1F,cAAM,iBAAkB,SAAQ,sBAQ9B;CAAG;AAcL;;;;;GAKG;AACH,eAAO,MAAM,aAAa,yMAqDxB,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { canonicalRepositoryName, RepositoryName } from "@usine/core/repository";
|
|
2
|
+
import { Effect, Option, Schema } from "effect";
|
|
3
|
+
import { Headers, HttpClient, HttpClientRequest } from "effect/http";
|
|
4
|
+
import { absoluteUrl, afterPrefix, withGitHubCredential } from "./github.js";
|
|
5
|
+
/** The statuses GitHub uses to redirect a renamed or transferred repository's former name. */
|
|
6
|
+
export const PERMANENT_REDIRECTS = new Set([301, 308]);
|
|
7
|
+
const GIT_REFS_PATH = /^\/([^/]+)\/([^/]+?)(?:\.git)?\/info\/refs$/u;
|
|
8
|
+
const API_REPOSITORY_PATH = /^\/repos\/([^/]+)\/([^/]+)$/u;
|
|
9
|
+
const decodeRepository = Schema.decodeUnknownOption(RepositoryName);
|
|
10
|
+
const repositoryItself = (origins, url) => {
|
|
11
|
+
const target = `${url.origin}${url.pathname}`;
|
|
12
|
+
const named = (resource, pattern) => (path) => {
|
|
13
|
+
const match = pattern.exec(path);
|
|
14
|
+
return match === null
|
|
15
|
+
? Option.none()
|
|
16
|
+
: Option.map(decodeRepository(`${match[1]}/${match[2]}`), (repository) => ({
|
|
17
|
+
resource,
|
|
18
|
+
repository,
|
|
19
|
+
}));
|
|
20
|
+
};
|
|
21
|
+
return Option.flatMap(afterPrefix(target, origins.web), named("git-refs", GIT_REFS_PATH)).pipe(Option.orElse(() => Option.flatMap(afterPrefix(target, origins.api), named("api-repository", API_REPOSITORY_PATH))));
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Returns the repository name in `location`, GitHub's redirect of the upstream URL `requested`,
|
|
25
|
+
* if both are git's `/OWNER/REPO/info/refs` or both are the API's `/repos/OWNER/REPO`, so only
|
|
26
|
+
* the owner and repository differ. Returns `None` for other redirects, such as a release
|
|
27
|
+
* download's, which can point at another repository without a rename.
|
|
28
|
+
*/
|
|
29
|
+
export const redirectedName = (origins, requested, location) => Option.flatMap(repositoryItself(origins, requested), ({ resource }) => repositoryItself(origins, location).pipe(Option.filter((redirected) => redirected.resource === resource), Option.map(({ repository }) => repository)));
|
|
30
|
+
/** Why GitHub's API didn't confirm that the attached repository has a redirect's name. */
|
|
31
|
+
class RenameUnconfirmed extends Schema.TaggedError()("RenameUnconfirmed", {
|
|
32
|
+
reason: Schema.Literals([
|
|
33
|
+
"former-name-not-redirected",
|
|
34
|
+
"repository-unreadable",
|
|
35
|
+
"other-current-name",
|
|
36
|
+
"github-unreachable",
|
|
37
|
+
]),
|
|
38
|
+
detail: Schema.String,
|
|
39
|
+
}) {
|
|
40
|
+
}
|
|
41
|
+
/** Where GitHub's API redirects a renamed or transferred repository's former name. */
|
|
42
|
+
const REPOSITORY_BY_ID_PATH = /^\/repositories\/[1-9][0-9]*$/u;
|
|
43
|
+
const decodeCurrentName = Schema.decodeUnknownOption(Schema.fromJsonString(Schema.Struct({ full_name: RepositoryName })));
|
|
44
|
+
const API_HEADERS = Headers.fromInput({
|
|
45
|
+
accept: "application/vnd.github+json",
|
|
46
|
+
"user-agent": "usine-gateway",
|
|
47
|
+
});
|
|
48
|
+
/**
|
|
49
|
+
* Confirms with GitHub's API, using the attachment's credential, that `newName` is the attached
|
|
50
|
+
* repository's current name: `/repos/OWNER/REPO` for the attached name must answer a permanent
|
|
51
|
+
* redirect to `/repositories/ID`, and the `full_name` of repository ID must be `newName`. Fails
|
|
52
|
+
* with `RenameUnconfirmed` otherwise, or if GitHub can't be reached.
|
|
53
|
+
*/
|
|
54
|
+
export const confirmRename = Effect.fn("GitHubRename.confirm")(function* (client, origins, attachment, newName) {
|
|
55
|
+
yield* Effect.annotateCurrentSpan({ attachment: attachment.id, newName });
|
|
56
|
+
const get = (url) => client
|
|
57
|
+
.execute(HttpClientRequest.get(url).pipe(HttpClientRequest.setHeaders(withGitHubCredential("api", attachment.credential, API_HEADERS))))
|
|
58
|
+
.pipe(Effect.flatMap((response) => Effect.map(response.text, (body) => ({
|
|
59
|
+
status: response.status,
|
|
60
|
+
location: Headers.get(response.headers, "location"),
|
|
61
|
+
body,
|
|
62
|
+
}))), Effect.provideService(HttpClient.TracerDisabledWhen, () => true), Effect.mapError((error) => new RenameUnconfirmed({ reason: "github-unreachable", detail: error.reason._tag })));
|
|
63
|
+
const former = yield* get(`${origins.api}/repos/${attachment.repository}`);
|
|
64
|
+
const byId = Option.flatMap(former.location, (location) => Option.flatMap(absoluteUrl(location), (url) => afterPrefix(`${url.origin}${url.pathname}`, origins.api))).pipe(Option.filter((path) => REPOSITORY_BY_ID_PATH.test(path)));
|
|
65
|
+
if (!PERMANENT_REDIRECTS.has(former.status) || Option.isNone(byId))
|
|
66
|
+
return yield* new RenameUnconfirmed({
|
|
67
|
+
reason: "former-name-not-redirected",
|
|
68
|
+
detail: `/repos/${attachment.repository} answered ${String(former.status)}`,
|
|
69
|
+
});
|
|
70
|
+
const current = yield* get(`${origins.api}${byId.value}`);
|
|
71
|
+
const name = current.status === 200 ? decodeCurrentName(current.body) : Option.none();
|
|
72
|
+
if (Option.isNone(name))
|
|
73
|
+
return yield* new RenameUnconfirmed({
|
|
74
|
+
reason: "repository-unreadable",
|
|
75
|
+
detail: `${byId.value} answered ${String(current.status)}`,
|
|
76
|
+
});
|
|
77
|
+
if (canonicalRepositoryName(name.value.full_name) !== canonicalRepositoryName(newName))
|
|
78
|
+
return yield* new RenameUnconfirmed({
|
|
79
|
+
reason: "other-current-name",
|
|
80
|
+
detail: `${byId.value} is ${name.value.full_name}`,
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=rename.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rename.js","sourceRoot":"","sources":["../../src/github/rename.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/llm.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { Option, Schema } from "effect";
|
|
3
|
-
import { Headers } from "effect/
|
|
1
|
+
import { type GatewayCredentialKind, GatewayLlmProvider } from "@usine/core/worker";
|
|
2
|
+
import { Option, Redacted, Schema } from "effect";
|
|
3
|
+
import { Headers } from "effect/http";
|
|
4
4
|
declare const AnthropicApiKey_base: Schema.Class<AnthropicApiKey, Schema.TaggedStruct<"AnthropicApiKey", {
|
|
5
5
|
readonly key: Schema.Redacted<Schema.NonEmptyString>;
|
|
6
6
|
}>, {}>;
|
|
@@ -12,8 +12,9 @@ declare const AnthropicSubscriptionToken_base: Schema.Class<AnthropicSubscriptio
|
|
|
12
12
|
}>, {}>;
|
|
13
13
|
/**
|
|
14
14
|
* A Claude subscription token from `claude setup-token`, sent upstream as a bearer token with
|
|
15
|
-
* the OAuth beta flag.
|
|
16
|
-
* proxy; `test/placeholder-swap`
|
|
15
|
+
* the OAuth beta flag. The token is valid for one year and has no refresh token. Anthropic
|
|
16
|
+
* doesn't document swapping a placeholder for one through a proxy; `test/placeholder-swap`
|
|
17
|
+
* checks that it works.
|
|
17
18
|
*/
|
|
18
19
|
export declare class AnthropicSubscriptionToken extends AnthropicSubscriptionToken_base {
|
|
19
20
|
}
|
|
@@ -27,13 +28,37 @@ declare const AnthropicProvider_base: Schema.Class<AnthropicProvider, Schema.Tag
|
|
|
27
28
|
/** Claude Code's upstream. On the Worker, `ANTHROPIC_BASE_URL` is `http://llm.<domain>/anthropic`. */
|
|
28
29
|
export declare class AnthropicProvider extends AnthropicProvider_base {
|
|
29
30
|
}
|
|
31
|
+
declare const OpenAiApiKey_base: Schema.Class<OpenAiApiKey, Schema.TaggedStruct<"OpenAiApiKey", {
|
|
32
|
+
readonly key: Schema.Redacted<Schema.NonEmptyString>;
|
|
33
|
+
}>, {}>;
|
|
34
|
+
/** An OpenAI-compatible API key, sent upstream as a bearer token. */
|
|
35
|
+
export declare class OpenAiApiKey extends OpenAiApiKey_base {
|
|
36
|
+
}
|
|
37
|
+
/** An absolute path to a file on the Gateway host. */
|
|
38
|
+
export declare const HostFilePath: Schema.brand<Schema.String, "HostFilePath">;
|
|
39
|
+
export type HostFilePath = typeof HostFilePath.Type;
|
|
40
|
+
declare const ChatGptLogin_base: Schema.Class<ChatGptLogin, Schema.TaggedStruct<"ChatGptLogin", {
|
|
41
|
+
readonly authFile: Schema.brand<Schema.String, "HostFilePath">;
|
|
42
|
+
readonly tokenUrl: Schema.brand<Schema.String, "UpstreamBase">;
|
|
43
|
+
}>, {}>;
|
|
44
|
+
/**
|
|
45
|
+
* A ChatGPT login from `codex login`, read from the `auth.json` that Codex writes. The Gateway
|
|
46
|
+
* keeps its tokens in memory, refreshes them at `tokenUrl` before they expire, and writes the
|
|
47
|
+
* rotated tokens back to `authFile`.
|
|
48
|
+
*/
|
|
49
|
+
export declare class ChatGptLogin extends ChatGptLogin_base {
|
|
50
|
+
}
|
|
51
|
+
/** The credential added to OpenAI requests. */
|
|
52
|
+
export declare const OpenAiCredential: Schema.Union<readonly [typeof OpenAiApiKey, typeof ChatGptLogin]>;
|
|
53
|
+
export type OpenAiCredential = typeof OpenAiCredential.Type;
|
|
30
54
|
declare const OpenAiProvider_base: Schema.Class<OpenAiProvider, Schema.TaggedStruct<"OpenAiProvider", {
|
|
31
55
|
readonly upstream: Schema.brand<Schema.String, "UpstreamBase">;
|
|
32
|
-
readonly
|
|
56
|
+
readonly credential: Schema.Union<readonly [typeof OpenAiApiKey, typeof ChatGptLogin]>;
|
|
33
57
|
}>, {}>;
|
|
34
58
|
/**
|
|
35
|
-
*
|
|
36
|
-
* `http://llm.<domain>/openai/v1
|
|
59
|
+
* Codex's upstream: an OpenAI-compatible API with an API key, or the ChatGPT backend with a
|
|
60
|
+
* ChatGPT login. On the Worker, the `model_provider` `base_url` is `http://llm.<domain>/openai/v1`
|
|
61
|
+
* in both cases.
|
|
37
62
|
*/
|
|
38
63
|
export declare class OpenAiProvider extends OpenAiProvider_base {
|
|
39
64
|
}
|
|
@@ -42,8 +67,11 @@ export interface LlmProviders {
|
|
|
42
67
|
readonly anthropic: Option.Option<AnthropicProvider>;
|
|
43
68
|
readonly openai: Option.Option<OpenAiProvider>;
|
|
44
69
|
}
|
|
70
|
+
/** A provider with its credential. */
|
|
71
|
+
export type LlmProvider = AnthropicProvider | OpenAiProvider;
|
|
72
|
+
/** The `llm.<domain>` path prefixes that select a provider. */
|
|
45
73
|
export declare const LlmProviderName: Schema.Literals<readonly ["anthropic", "openai"]>;
|
|
46
|
-
export type LlmProviderName =
|
|
74
|
+
export type LlmProviderName = GatewayLlmProvider;
|
|
47
75
|
/** An LLM request's provider and the path after its prefix. */
|
|
48
76
|
export interface LlmTarget {
|
|
49
77
|
readonly provider: LlmProviderName;
|
|
@@ -51,14 +79,35 @@ export interface LlmTarget {
|
|
|
51
79
|
}
|
|
52
80
|
/** Returns the provider from the first path segment; for example, `/anthropic/v1/messages` is Anthropic's `/v1/messages`. */
|
|
53
81
|
export declare const llmTarget: (pathname: string) => Option.Option<LlmTarget>;
|
|
54
|
-
/** Returns the credential kind sent to `provider
|
|
55
|
-
export declare const credentialKind: (provider:
|
|
82
|
+
/** Returns the credential kind sent to `provider`: a subscription for a Claude token or a ChatGPT login. */
|
|
83
|
+
export declare const credentialKind: (provider: LlmProvider) => GatewayCredentialKind;
|
|
56
84
|
/** Returns the configured provider for `name` as a single forwardable value. */
|
|
57
|
-
export declare const configuredProvider: (providers: LlmProviders, name: LlmProviderName) => Option.Option<
|
|
85
|
+
export declare const configuredProvider: (providers: LlmProviders, name: LlmProviderName) => Option.Option<LlmProvider>;
|
|
86
|
+
/**
|
|
87
|
+
* Returns the upstream path for `rest`, the path after the provider's prefix, if it's one of the
|
|
88
|
+
* provider's `LLM_ROUTES`. Codex calls `<base_url>/responses` with `base_url` ending in `/v1`;
|
|
89
|
+
* the ChatGPT backend serves the same routes without `/v1`, so with a ChatGPT login
|
|
90
|
+
* `/v1/responses` is the backend's `/responses`.
|
|
91
|
+
*/
|
|
92
|
+
export declare const llmRoute: (provider: LlmProvider, rest: string) => Option.Option<string>;
|
|
93
|
+
/** A credential sent as it's configured, without a refresh. */
|
|
94
|
+
export type StaticCredential = AnthropicApiKey | AnthropicSubscriptionToken | OpenAiApiKey;
|
|
95
|
+
/**
|
|
96
|
+
* Adds `credential` to headers without the caller's credential. For a subscription token, also
|
|
97
|
+
* merges the OAuth beta flag into the harness's flags.
|
|
98
|
+
*/
|
|
99
|
+
export declare const withStaticCredential: (credential: StaticCredential, headers: Headers.Headers) => Headers.Headers;
|
|
100
|
+
/** A ChatGPT login's current access token and account, as Codex sends them to the ChatGPT backend. */
|
|
101
|
+
export interface ChatGptAccess {
|
|
102
|
+
readonly accessToken: Redacted.Redacted<string>;
|
|
103
|
+
/** The ChatGPT account or workspace ID, sent as `ChatGPT-Account-ID`; `None` if the login has none. */
|
|
104
|
+
readonly accountId: Option.Option<string>;
|
|
105
|
+
}
|
|
58
106
|
/**
|
|
59
|
-
* Adds
|
|
60
|
-
*
|
|
107
|
+
* Adds a ChatGPT login's access token as a bearer token and its account as `ChatGPT-Account-ID`,
|
|
108
|
+
* replacing any account header the caller sent. Other headers, such as Codex's `originator` and
|
|
109
|
+
* `session-id`, pass unchanged.
|
|
61
110
|
*/
|
|
62
|
-
export declare const
|
|
111
|
+
export declare const withChatGptAccess: (access: ChatGptAccess, headers: Headers.Headers) => Headers.Headers;
|
|
63
112
|
export {};
|
|
64
113
|
//# sourceMappingURL=llm.d.ts.map
|
package/dist/llm/llm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../src/llm/llm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../src/llm/llm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;;;;AAKtC,0DAA0D;AAC1D,qBAAa,eAAgB,SAAQ,oBAEnC;CAAG;;;;AAEL;;;;;GAKG;AACH,qBAAa,0BAA2B,SAAQ,+BAG/C;CAAG;AAEJ,kDAAkD;AAClD,eAAO,MAAM,mBAAmB,oFAA8D,CAAC;AAC/F,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAC;;;;;AAElE,sGAAsG;AACtG,qBAAa,iBAAkB,SAAQ,sBAGtC;CAAG;;;;AAEJ,qEAAqE;AACrE,qBAAa,YAAa,SAAQ,iBAEhC;CAAG;AAEL,sDAAsD;AACtD,eAAO,MAAM,YAAY,6CAEW,CAAC;AACrC,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC;;;;;AAEpD;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,iBAGhC;CAAG;AAEL,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,mEAA6C,CAAC;AAC3E,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAC;;;;;AAE5D;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,mBAGlC;CAAG;AAEL,2GAA2G;AAC3G,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;CAChD;AAED,sCAAsC;AACtC,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,cAAc,CAAC;AAE7D,+DAA+D;AAC/D,eAAO,MAAM,eAAe,mDAAqB,CAAC;AAClD,MAAM,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAIjD,+DAA+D;AAC/D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,6HAA6H;AAC7H,eAAO,MAAM,SAAS,aAAc,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAKnE,CAAC;AAEF,4GAA4G;AAC5G,eAAO,MAAM,cAAc,aAAc,WAAW,KAAG,qBAStD,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,kBAAkB,cAClB,YAAY,QACjB,eAAe,KACpB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAoE,CAAC;AAkBjG;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,aAAc,WAAW,QAAQ,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAIlF,CAAC;AAgBF,+DAA+D;AAC/D,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,0BAA0B,GAAG,YAAY,CAAC;AAE3F;;;GAGG;AACH,eAAO,MAAM,oBAAoB,eACnB,gBAAgB,WACnB,OAAO,CAAC,OAAO,KACvB,OAAO,CAAC,OAYV,CAAC;AAEF,sGAAsG;AACtG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChD,uGAAuG;IACvG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,WACpB,aAAa,WACZ,OAAO,CAAC,OAAO,KACvB,OAAO,CAAC,OAUV,CAAC"}
|
package/dist/llm/llm.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { GatewayLlmProvider } from "@usine/core/worker";
|
|
1
2
|
import { Option, Redacted, Schema } from "effect";
|
|
2
|
-
import { Headers } from "effect/
|
|
3
|
+
import { Headers } from "effect/http";
|
|
3
4
|
import { UpstreamBase } from "../upstream.js";
|
|
4
5
|
const Secret = Schema.Redacted(Schema.NonEmptyString);
|
|
5
6
|
/** An Anthropic API key, sent upstream as `x-api-key`. */
|
|
@@ -9,8 +10,9 @@ export class AnthropicApiKey extends Schema.TaggedClass()("AnthropicApiKey", {
|
|
|
9
10
|
}
|
|
10
11
|
/**
|
|
11
12
|
* A Claude subscription token from `claude setup-token`, sent upstream as a bearer token with
|
|
12
|
-
* the OAuth beta flag.
|
|
13
|
-
* proxy; `test/placeholder-swap`
|
|
13
|
+
* the OAuth beta flag. The token is valid for one year and has no refresh token. Anthropic
|
|
14
|
+
* doesn't document swapping a placeholder for one through a proxy; `test/placeholder-swap`
|
|
15
|
+
* checks that it works.
|
|
14
16
|
*/
|
|
15
17
|
export class AnthropicSubscriptionToken extends Schema.TaggedClass()("AnthropicSubscriptionToken", { token: Secret }) {
|
|
16
18
|
}
|
|
@@ -19,18 +21,37 @@ export const AnthropicCredential = Schema.Union([AnthropicApiKey, AnthropicSubsc
|
|
|
19
21
|
/** Claude Code's upstream. On the Worker, `ANTHROPIC_BASE_URL` is `http://llm.<domain>/anthropic`. */
|
|
20
22
|
export class AnthropicProvider extends Schema.TaggedClass()("AnthropicProvider", { upstream: UpstreamBase, credential: AnthropicCredential }) {
|
|
21
23
|
}
|
|
24
|
+
/** An OpenAI-compatible API key, sent upstream as a bearer token. */
|
|
25
|
+
export class OpenAiApiKey extends Schema.TaggedClass()("OpenAiApiKey", {
|
|
26
|
+
key: Secret,
|
|
27
|
+
}) {
|
|
28
|
+
}
|
|
29
|
+
/** An absolute path to a file on the Gateway host. */
|
|
30
|
+
export const HostFilePath = Schema.String.check(Schema.isPattern(/^\/\S*[^/\s]$/u, { message: "Expected an absolute file path" })).pipe(Schema.brand("HostFilePath"));
|
|
31
|
+
/**
|
|
32
|
+
* A ChatGPT login from `codex login`, read from the `auth.json` that Codex writes. The Gateway
|
|
33
|
+
* keeps its tokens in memory, refreshes them at `tokenUrl` before they expire, and writes the
|
|
34
|
+
* rotated tokens back to `authFile`.
|
|
35
|
+
*/
|
|
36
|
+
export class ChatGptLogin extends Schema.TaggedClass()("ChatGptLogin", {
|
|
37
|
+
authFile: HostFilePath,
|
|
38
|
+
tokenUrl: UpstreamBase,
|
|
39
|
+
}) {
|
|
40
|
+
}
|
|
41
|
+
/** The credential added to OpenAI requests. */
|
|
42
|
+
export const OpenAiCredential = Schema.Union([OpenAiApiKey, ChatGptLogin]);
|
|
22
43
|
/**
|
|
23
|
-
*
|
|
24
|
-
* `http://llm.<domain>/openai/v1
|
|
44
|
+
* Codex's upstream: an OpenAI-compatible API with an API key, or the ChatGPT backend with a
|
|
45
|
+
* ChatGPT login. On the Worker, the `model_provider` `base_url` is `http://llm.<domain>/openai/v1`
|
|
46
|
+
* in both cases.
|
|
25
47
|
*/
|
|
26
48
|
export class OpenAiProvider extends Schema.TaggedClass()("OpenAiProvider", {
|
|
27
49
|
upstream: UpstreamBase,
|
|
28
|
-
|
|
50
|
+
credential: OpenAiCredential,
|
|
29
51
|
}) {
|
|
30
52
|
}
|
|
31
53
|
/** The `llm.<domain>` path prefixes that select a provider. */
|
|
32
|
-
const
|
|
33
|
-
export const LlmProviderName = Schema.Literals(LLM_PROVIDER_NAMES);
|
|
54
|
+
export const LlmProviderName = GatewayLlmProvider;
|
|
34
55
|
const isProviderName = Schema.is(LlmProviderName);
|
|
35
56
|
/** Returns the provider from the first path segment; for example, `/anthropic/v1/messages` is Anthropic's `/v1/messages`. */
|
|
36
57
|
export const llmTarget = (pathname) => {
|
|
@@ -40,22 +61,46 @@ export const llmTarget = (pathname) => {
|
|
|
40
61
|
return Option.none();
|
|
41
62
|
return Option.some({ provider, rest: match[2] ?? "" });
|
|
42
63
|
};
|
|
43
|
-
/** Returns the credential kind sent to `provider
|
|
64
|
+
/** Returns the credential kind sent to `provider`: a subscription for a Claude token or a ChatGPT login. */
|
|
44
65
|
export const credentialKind = (provider) => {
|
|
45
|
-
switch (provider._tag) {
|
|
46
|
-
case "
|
|
66
|
+
switch (provider.credential._tag) {
|
|
67
|
+
case "AnthropicApiKey":
|
|
68
|
+
case "OpenAiApiKey":
|
|
47
69
|
return "api-key";
|
|
48
|
-
case "
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return "api-key";
|
|
52
|
-
case "AnthropicSubscriptionToken":
|
|
53
|
-
return "subscription";
|
|
54
|
-
}
|
|
70
|
+
case "AnthropicSubscriptionToken":
|
|
71
|
+
case "ChatGptLogin":
|
|
72
|
+
return "subscription";
|
|
55
73
|
}
|
|
56
74
|
};
|
|
57
75
|
/** Returns the configured provider for `name` as a single forwardable value. */
|
|
58
|
-
export const configuredProvider = (providers, name) => name === "anthropic" ? providers.anthropic : providers.openai;
|
|
76
|
+
export const configuredProvider = (providers, name) => (name === "anthropic" ? providers.anthropic : providers.openai);
|
|
77
|
+
/**
|
|
78
|
+
* The routes each provider serves after its prefix: those Claude Code and Codex call. Each
|
|
79
|
+
* pattern matches whole plain segments, so a percent-encoded separator or a dot segment never
|
|
80
|
+
* matches, and other parts of the provider's API, such as files or organization administration,
|
|
81
|
+
* can't be reached with the Gateway's credential.
|
|
82
|
+
*/
|
|
83
|
+
const LLM_ROUTES = {
|
|
84
|
+
anthropic: [
|
|
85
|
+
/^\/v1\/messages$/u,
|
|
86
|
+
/^\/v1\/messages\/count_tokens$/u,
|
|
87
|
+
/^\/v1\/models$/u,
|
|
88
|
+
/^\/v1\/models\/[A-Za-z0-9][A-Za-z0-9._-]*$/u,
|
|
89
|
+
],
|
|
90
|
+
openai: [/^\/v1\/responses$/u, /^\/v1\/responses\/compact$/u, /^\/v1\/models$/u],
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Returns the upstream path for `rest`, the path after the provider's prefix, if it's one of the
|
|
94
|
+
* provider's `LLM_ROUTES`. Codex calls `<base_url>/responses` with `base_url` ending in `/v1`;
|
|
95
|
+
* the ChatGPT backend serves the same routes without `/v1`, so with a ChatGPT login
|
|
96
|
+
* `/v1/responses` is the backend's `/responses`.
|
|
97
|
+
*/
|
|
98
|
+
export const llmRoute = (provider, rest) => {
|
|
99
|
+
const routes = provider._tag === "AnthropicProvider" ? LLM_ROUTES.anthropic : LLM_ROUTES.openai;
|
|
100
|
+
if (!routes.some((route) => route.test(rest)))
|
|
101
|
+
return Option.none();
|
|
102
|
+
return Option.some(provider.credential._tag === "ChatGptLogin" ? rest.slice("/v1".length) : rest);
|
|
103
|
+
};
|
|
59
104
|
const OAUTH_BETA = "oauth-2025-04-20";
|
|
60
105
|
const withBeta = (incoming, flag) => {
|
|
61
106
|
const flags = Option.match(incoming, {
|
|
@@ -68,25 +113,32 @@ const withBeta = (incoming, flag) => {
|
|
|
68
113
|
return (flags.includes(flag) ? flags : [...flags, flag]).join(",");
|
|
69
114
|
};
|
|
70
115
|
/**
|
|
71
|
-
* Adds
|
|
72
|
-
*
|
|
116
|
+
* Adds `credential` to headers without the caller's credential. For a subscription token, also
|
|
117
|
+
* merges the OAuth beta flag into the harness's flags.
|
|
73
118
|
*/
|
|
74
|
-
export const
|
|
75
|
-
switch (
|
|
76
|
-
case "
|
|
77
|
-
return Headers.set(headers, "authorization", `Bearer ${Redacted.value(
|
|
78
|
-
case "
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
authorization: `Bearer ${Redacted.value(credential.token)}`,
|
|
86
|
-
"anthropic-beta": withBeta(Headers.get(headers, "anthropic-beta"), OAUTH_BETA),
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
}
|
|
119
|
+
export const withStaticCredential = (credential, headers) => {
|
|
120
|
+
switch (credential._tag) {
|
|
121
|
+
case "OpenAiApiKey":
|
|
122
|
+
return Headers.set(headers, "authorization", `Bearer ${Redacted.value(credential.key)}`);
|
|
123
|
+
case "AnthropicApiKey":
|
|
124
|
+
return Headers.set(headers, "x-api-key", Redacted.value(credential.key));
|
|
125
|
+
case "AnthropicSubscriptionToken":
|
|
126
|
+
return Headers.setAll(headers, {
|
|
127
|
+
authorization: `Bearer ${Redacted.value(credential.token)}`,
|
|
128
|
+
"anthropic-beta": withBeta(Headers.get(headers, "anthropic-beta"), OAUTH_BETA),
|
|
129
|
+
});
|
|
90
130
|
}
|
|
91
131
|
};
|
|
132
|
+
/**
|
|
133
|
+
* Adds a ChatGPT login's access token as a bearer token and its account as `ChatGPT-Account-ID`,
|
|
134
|
+
* replacing any account header the caller sent. Other headers, such as Codex's `originator` and
|
|
135
|
+
* `session-id`, pass unchanged.
|
|
136
|
+
*/
|
|
137
|
+
export const withChatGptAccess = (access, headers) => {
|
|
138
|
+
const bearer = Headers.set(Headers.remove(headers, "chatgpt-account-id"), "authorization", `Bearer ${Redacted.value(access.accessToken)}`);
|
|
139
|
+
return Option.match(access.accountId, {
|
|
140
|
+
onNone: () => bearer,
|
|
141
|
+
onSome: (accountId) => Headers.set(bearer, "chatgpt-account-id", accountId),
|
|
142
|
+
});
|
|
143
|
+
};
|
|
92
144
|
//# sourceMappingURL=llm.js.map
|
package/dist/llm/llm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/llm/llm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/llm/llm.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { lookup } from "node:dns/promises";
|
|
|
2
2
|
import { createServer, request as httpRequest, } from "node:http";
|
|
3
3
|
import { BlockList, connect } from "node:net";
|
|
4
4
|
import { Data, Effect, Fiber, Match, Option, Predicate, Schema } from "effect";
|
|
5
|
-
import { Headers } from "effect/
|
|
5
|
+
import { Headers } from "effect/http";
|
|
6
6
|
import { tokenFromAuthorization, CallerTokens } from "../caller/caller.js";
|
|
7
7
|
import { ClientHelloReader, comparableHost } from "../egress/client-hello.js";
|
|
8
8
|
import { EgressRefused } from "../egress/egress.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"egress-proxy.js","sourceRoot":"","sources":["../../src/node/egress-proxy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"egress-proxy.js","sourceRoot":"","sources":["../../src/node/egress-proxy.ts"],"names":[],"mappings":"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"}
|