@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.
Files changed (69) hide show
  1. package/LICENSE +661 -21
  2. package/README.md +99 -11
  3. package/dist/admin/api.d.ts +6 -66
  4. package/dist/admin/api.d.ts.map +1 -1
  5. package/dist/admin/api.js +4 -4
  6. package/dist/admin/api.js.map +1 -1
  7. package/dist/admin/server.d.ts +1 -1
  8. package/dist/admin/server.d.ts.map +1 -1
  9. package/dist/admin/server.js +1 -1
  10. package/dist/admin/server.js.map +1 -1
  11. package/dist/attachment/attachment.d.ts +8 -1
  12. package/dist/attachment/attachment.d.ts.map +1 -1
  13. package/dist/attachment/attachment.js +14 -4
  14. package/dist/attachment/attachment.js.map +1 -1
  15. package/dist/attachment/store.d.ts +7 -0
  16. package/dist/attachment/store.d.ts.map +1 -1
  17. package/dist/attachment/store.js +46 -14
  18. package/dist/attachment/store.js.map +1 -1
  19. package/dist/caller/caller.d.ts +1 -1
  20. package/dist/caller/caller.d.ts.map +1 -1
  21. package/dist/caller/caller.js +8 -7
  22. package/dist/caller/caller.js.map +1 -1
  23. package/dist/chatgpt/auth-file.d.ts +47 -0
  24. package/dist/chatgpt/auth-file.d.ts.map +1 -0
  25. package/dist/chatgpt/auth-file.js +132 -0
  26. package/dist/chatgpt/auth-file.js.map +1 -0
  27. package/dist/chatgpt/logins.d.ts +50 -0
  28. package/dist/chatgpt/logins.d.ts.map +1 -0
  29. package/dist/chatgpt/logins.js +303 -0
  30. package/dist/chatgpt/logins.js.map +1 -0
  31. package/dist/gateway.d.ts +8 -4
  32. package/dist/gateway.d.ts.map +1 -1
  33. package/dist/gateway.js +8 -4
  34. package/dist/gateway.js.map +1 -1
  35. package/dist/github/github.d.ts +19 -8
  36. package/dist/github/github.d.ts.map +1 -1
  37. package/dist/github/github.js +45 -21
  38. package/dist/github/github.js.map +1 -1
  39. package/dist/github/rename.d.ts +30 -0
  40. package/dist/github/rename.d.ts.map +1 -0
  41. package/dist/github/rename.js +83 -0
  42. package/dist/github/rename.js.map +1 -0
  43. package/dist/llm/llm.d.ts +64 -15
  44. package/dist/llm/llm.d.ts.map +1 -1
  45. package/dist/llm/llm.js +89 -37
  46. package/dist/llm/llm.js.map +1 -1
  47. package/dist/node/egress-proxy.js +1 -1
  48. package/dist/node/egress-proxy.js.map +1 -1
  49. package/dist/node/environment.d.ts +15 -10
  50. package/dist/node/environment.d.ts.map +1 -1
  51. package/dist/node/environment.js +51 -24
  52. package/dist/node/environment.js.map +1 -1
  53. package/dist/node/node.d.ts +7 -8
  54. package/dist/node/node.d.ts.map +1 -1
  55. package/dist/node/node.js +22 -23
  56. package/dist/node/node.js.map +1 -1
  57. package/dist/node/reload.d.ts +2 -1
  58. package/dist/node/reload.d.ts.map +1 -1
  59. package/dist/node/reload.js +41 -13
  60. package/dist/node/reload.js.map +1 -1
  61. package/dist/proxy/forward.d.ts +2 -2
  62. package/dist/proxy/forward.d.ts.map +1 -1
  63. package/dist/proxy/forward.js +1 -1
  64. package/dist/proxy/forward.js.map +1 -1
  65. package/dist/proxy/proxy.d.ts +4 -3
  66. package/dist/proxy/proxy.d.ts.map +1 -1
  67. package/dist/proxy/proxy.js +132 -24
  68. package/dist/proxy/proxy.js.map +1 -1
  69. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"forward.js","sourceRoot":"","sources":["../../src/proxy/forward.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EACL,OAAO,EACP,UAAU,EACV,iBAAiB,EAEjB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAE9B,mFAAmF;AACnF,MAAM,UAAU,GAAG;IACjB,YAAY;IACZ,YAAY;IACZ,oBAAoB;IACpB,qBAAqB;IACrB,kBAAkB;IAClB,IAAI;IACJ,SAAS;IACT,mBAAmB;IACnB,SAAS;IACT,QAAQ;IACR,MAAM;CACE,CAAC;AAEX,4FAA4F;AAC5F,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAwB,EAAmB,EAAE;IAC3E,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE;QAC9D,MAAM,EAAE,GAA0B,EAAE,CAAC,EAAE;QACvC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;KAC7E,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,CACtC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EACpD,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,OAA4C,EAAW,EAAE,CACxE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAChE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAE;QAC3D,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;QACnB,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG;KAC1C,CAAC,CAAC;AAEL;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,MAA6B,EAC7B,OAA4C,EAC5C,QAAgB,EAChB,OAAwB,EACxB,EAAE;IACF,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,CACf,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAC7E,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAClC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAChE,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACtB,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;QACzC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;KAC3C,CAAC,CACH,CACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"forward.js","sourceRoot":"","sources":["../../src/proxy/forward.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EACL,OAAO,EACP,UAAU,EACV,iBAAiB,EAEjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,mFAAmF;AACnF,MAAM,UAAU,GAAG;IACjB,YAAY;IACZ,YAAY;IACZ,oBAAoB;IACpB,qBAAqB;IACrB,kBAAkB;IAClB,IAAI;IACJ,SAAS;IACT,mBAAmB;IACnB,SAAS;IACT,QAAQ;IACR,MAAM;CACE,CAAC;AAEX,4FAA4F;AAC5F,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAwB,EAAmB,EAAE;IAC3E,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE;QAC9D,MAAM,EAAE,GAA0B,EAAE,CAAC,EAAE;QACvC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;KAC7E,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,CACtC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EACpD,OAAO,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,OAA4C,EAAW,EAAE,CACxE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAChE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAE;QAC3D,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;QACnB,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG;KAC1C,CAAC,CAAC;AAEL;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,MAA6B,EAC7B,OAA4C,EAC5C,QAAgB,EAChB,OAAwB,EACxB,EAAE;IACF,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,CACf,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAC7E,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAClC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAChE,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACtB,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;QACzC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;KAC3C,CAAC,CACH,CACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,13 +1,14 @@
1
1
  import { Context, Effect, Layer, Schema } from "effect";
2
- import { HttpClient, HttpServerRequest, HttpServerResponse } from "effect/unstable/http";
2
+ import { HttpClient, HttpServerRequest, HttpServerResponse } from "effect/http";
3
3
  import { Attachments } from "../attachment/store.ts";
4
4
  import { CallerTokens } from "../caller/caller.ts";
5
+ import { ChatGptLogins } from "../chatgpt/logins.ts";
5
6
  import { GatewaySettings, SettingsInForce } from "../settings.ts";
6
7
  /**
7
8
  * The reason the Gateway refused a request. Each refusal is logged at warning level with the
8
9
  * reason, host, and Worker (if known), and returned in `x-usine-gateway-refusal`.
9
10
  */
10
- export declare const RefusalReason: Schema.Literals<readonly ["unknown-host", "unsupported-path", "missing-caller-token", "invalid-caller-token", "stale-caller-token", "attachment-expired", "repository-mismatch", "provider-not-configured"]>;
11
+ export declare const RefusalReason: Schema.Literals<readonly ["unknown-host", "unsupported-path", "missing-caller-token", "invalid-caller-token", "stale-caller-token", "attachment-expired", "repository-mismatch", "provider-not-configured", "provider-login-unavailable"]>;
11
12
  export type RefusalReason = typeof RefusalReason.Type;
12
13
  /** The response header that contains the refusal reason. */
13
14
  export declare const REFUSAL_HEADER = "x-usine-gateway-refusal";
@@ -22,7 +23,7 @@ declare const GatewayProxy_base: Context.ServiceClass<GatewayProxy, "@usine/gate
22
23
  * hosts are refused.
23
24
  */
24
25
  export declare class GatewayProxy extends GatewayProxy_base {
25
- static readonly layer: Layer.Layer<GatewayProxy, never, Attachments | CallerTokens | GatewaySettings | HttpClient.HttpClient | SettingsInForce>;
26
+ static readonly layer: Layer.Layer<GatewayProxy, never, Attachments | CallerTokens | ChatGptLogins | GatewaySettings | HttpClient.HttpClient | SettingsInForce>;
26
27
  }
27
28
  export {};
28
29
  //# sourceMappingURL=proxy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/proxy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAQ,MAAM,EAAE,KAAK,EAAyB,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrF,OAAO,EAEL,UAAU,EAEV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAEL,YAAY,EAGb,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EAAE,eAAe,EAAgB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGhF;;;GAGG;AACH,eAAO,MAAM,aAAa,8MASxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;AAEtD,4DAA4D;AAC5D,eAAO,MAAM,cAAc,4BAA4B,CAAC;;IA6DpD,wFAAwF;qBACvE,MAAM,CAAC,MAAM,CAC5B,kBAAkB,CAAC,kBAAkB,EACrC,KAAK,EACL,iBAAiB,CAAC,iBAAiB,CACpC;;AAdL;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,iBAUA;IAChC,MAAM,CAAC,QAAQ,CAAC,KAAK,2HAgKnB;CACH"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/proxy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAQ,MAAM,EAAE,KAAK,EAAyB,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrF,OAAO,EAEL,UAAU,EAEV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAEL,YAAY,EAGb,MAAM,qBAAqB,CAAC;AAW7B,OAAO,EAAgC,aAAa,EAAE,MAAM,sBAAsB,CAAC;AASnF,OAAO,EAAE,eAAe,EAAgB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGhF;;;GAGG;AACH,eAAO,MAAM,aAAa,4OAUxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;AAEtD,4DAA4D;AAC5D,eAAO,MAAM,cAAc,4BAA4B,CAAC;;IA4EpD,wFAAwF;qBACvE,MAAM,CAAC,MAAM,CAC5B,kBAAkB,CAAC,kBAAkB,EACrC,KAAK,EACL,iBAAiB,CAAC,iBAAiB,CACpC;;AAdL;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,iBAUA;IAChC,MAAM,CAAC,QAAQ,CAAC,KAAK,2IAiSnB;CACH"}
@@ -1,10 +1,12 @@
1
1
  import { canonicalRepositoryName } from "@usine/core/repository";
2
2
  import { Context, Data, Effect, Layer, Match, Option, Result, Schema } from "effect";
3
- import { Headers, HttpClient, HttpServerRequest, HttpServerResponse, } from "effect/unstable/http";
3
+ import { Headers, HttpClient, HttpServerRequest, HttpServerResponse, } from "effect/http";
4
4
  import { Attachments } from "../attachment/store.js";
5
5
  import { CallerTokens, presentedToken, withoutCallerCredentials, } from "../caller/caller.js";
6
- import { GITHUB_HOSTS, githubRoute, withGitHubCredential, } from "../github/github.js";
7
- import { configuredProvider, llmTarget, withProviderCredential } from "../llm/llm.js";
6
+ import { absoluteUrl, GITHUB_HOSTS, gatewayLocation, githubRoute, withGitHubCredential, } from "../github/github.js";
7
+ import { confirmRename, PERMANENT_REDIRECTS, redirectedName } from "../github/rename.js";
8
+ import { ChatGptLogins } from "../chatgpt/logins.js";
9
+ import { llmRoute, configuredProvider, llmTarget, withChatGptAccess, withStaticCredential, } from "../llm/llm.js";
8
10
  import { GatewaySettings, gatewayHosts, SettingsInForce } from "../settings.js";
9
11
  import { endToEndHeaders, forwardRequest } from "./forward.js";
10
12
  /**
@@ -20,6 +22,7 @@ export const RefusalReason = Schema.Literals([
20
22
  "attachment-expired",
21
23
  "repository-mismatch",
22
24
  "provider-not-configured",
25
+ "provider-login-unavailable",
23
26
  ]);
24
27
  /** The response header that contains the refusal reason. */
25
28
  export const REFUSAL_HEADER = "x-usine-gateway-refusal";
@@ -32,14 +35,26 @@ const REFUSAL_STATUS = {
32
35
  "attachment-expired": 403,
33
36
  "repository-mismatch": 403,
34
37
  "provider-not-configured": 503,
38
+ "provider-login-unavailable": 503,
35
39
  };
36
- /** A refusal, with the caller's claims once its token is verified. */
40
+ /** A refusal, with the caller's claims once its token is verified, and the response status. */
37
41
  class Refused extends Data.TaggedError("Refused") {
38
42
  }
39
43
  /** Returns a refusal for a request whose caller token isn't verified yet. */
40
- const refused = (reason, message) => new Refused({ reason, message, caller: Option.none() });
44
+ const refused = (reason, message) => new Refused({ reason, message, caller: Option.none(), status: REFUSAL_STATUS[reason] });
41
45
  /** Returns a refusal for a verified caller. */
42
- const refusedCaller = (claims, reason, message) => new Refused({ reason, message, caller: Option.some(claims) });
46
+ const refusedCaller = (claims, reason, message) => new Refused({ reason, message, caller: Option.some(claims), status: REFUSAL_STATUS[reason] });
47
+ /**
48
+ * Returns the refusal for a ChatGPT login without a usable access token: 503 while a later
49
+ * refresh can succeed, which Codex retries, and 401 once the token endpoint has rejected the
50
+ * refresh token, which Codex doesn't.
51
+ */
52
+ const loginUnavailable = (claims, error) => new Refused({
53
+ reason: "provider-login-unavailable",
54
+ message: error.message,
55
+ caller: Option.some(claims),
56
+ status: error.reason === "refresh-rejected" ? 401 : 503,
57
+ });
43
58
  /** Returns the target from an origin-form request and its `Host`, or from an absolute-form URL. */
44
59
  const requestTarget = (request) => {
45
60
  const parse = (base) => Result.getSuccess(Result.try(() => new URL(request.url, base)));
@@ -61,6 +76,7 @@ export class GatewayProxy extends Context.Service()("@usine/gateway/GatewayProxy
61
76
  const inForce = yield* SettingsInForce;
62
77
  const attachments = yield* Attachments;
63
78
  const callers = yield* CallerTokens;
79
+ const logins = yield* ChatGptLogins;
64
80
  const client = yield* HttpClient.HttpClient;
65
81
  const hosts = gatewayHosts(settings.domain);
66
82
  const authenticate = Effect.fn("GatewayProxy.authenticate")(function* (request) {
@@ -78,33 +94,83 @@ export class GatewayProxy extends Context.Service()("@usine/gateway/GatewayProxy
78
94
  const stale = refusedCaller(claims, "stale-caller-token", `The caller token belongs to attachment ${claims.attachment} of ${claims.repository} on worker "${claims.worker}", which is no longer attached.`);
79
95
  const lookup = yield* attachments.find(claims.attachment);
80
96
  return yield* Match.valueTags(lookup, {
81
- LiveAttachment: ({ attachment }) => attachment.worker === claims.worker &&
82
- canonicalRepositoryName(attachment.repository) ===
97
+ LiveAttachment: (live) => live.attachment.worker === claims.worker &&
98
+ canonicalRepositoryName(live.attachment.repository) ===
83
99
  canonicalRepositoryName(claims.repository)
84
- ? Effect.succeed({ claims, attachment })
100
+ ? Effect.succeed({ claims, live })
85
101
  : Effect.fail(stale),
86
102
  ExpiredAttachment: () => Effect.fail(refusedCaller(claims, "attachment-expired", `The attachment of ${claims.repository} to worker "${claims.worker}" has expired.`)),
87
103
  MissingAttachment: () => Effect.fail(stale),
88
104
  });
89
105
  });
106
+ /**
107
+ * Teaches the attachment the new name in GitHub's permanent redirect of a request for the
108
+ * repository itself, once GitHub's API confirms it with the attachment's credential. GitHub
109
+ * answers a renamed or transferred repository's former name that way; a redirect of anything
110
+ * else can point at another repository without a rename.
111
+ */
112
+ const learnFromRedirect = Effect.fn("GatewayProxy.learnFromRedirect")(function* (live, requested, location) {
113
+ const { attachment } = live;
114
+ yield* Effect.annotateCurrentSpan({
115
+ attachment: attachment.id,
116
+ repository: attachment.repository,
117
+ });
118
+ const fields = {
119
+ attachment: attachment.id,
120
+ worker: attachment.worker,
121
+ repository: attachment.repository,
122
+ };
123
+ const newName = Option.flatMap(absoluteUrl(requested.upstream), (upstream) => redirectedName(settings.github, upstream, location));
124
+ if (Option.isNone(newName))
125
+ return yield* Effect.logDebug("Learned no name from a redirect that isn't a rename", {
126
+ ...fields,
127
+ path: location.pathname,
128
+ });
129
+ const renamed = { ...fields, newName: newName.value };
130
+ if (live.serves(newName.value))
131
+ return yield* Effect.logDebug("The attachment already serves the redirect's name", renamed);
132
+ yield* confirmRename(client, settings.github, attachment, newName.value).pipe(Effect.andThen(attachments.learnNewName(attachment.id, newName.value)), Effect.catchTag("RenameUnconfirmed", ({ reason, detail }) => Effect.logWarning("GitHub's API didn't confirm the new name of an attached repository", {
133
+ ...renamed,
134
+ reason,
135
+ detail,
136
+ })));
137
+ });
138
+ /** Points a `Location` at github.com or api.github.com to `git.<domain>`, and logs the rewrite. */
139
+ const throughGateway = Effect.fn("GatewayProxy.throughGateway")(function* (answer, live, requested) {
140
+ const { attachment } = live;
141
+ const from = Option.flatMap(Headers.get(answer.headers, "location"), absoluteUrl);
142
+ const to = Option.flatMap(from, (url) => gatewayLocation(settings.github, hosts.git, url));
143
+ if (Option.isNone(from) || Option.isNone(to))
144
+ return answer;
145
+ yield* Effect.logInfo("Rewrote a GitHub Location header to the gateway", {
146
+ worker: attachment.worker,
147
+ repository: attachment.repository,
148
+ status: answer.status,
149
+ from: from.value.host,
150
+ path: to.value.pathname,
151
+ });
152
+ if (PERMANENT_REDIRECTS.has(answer.status))
153
+ yield* learnFromRedirect(live, requested, from.value);
154
+ return HttpServerResponse.setHeader(answer, "location", to.value.href);
155
+ });
90
156
  const github = Effect.fn("GatewayProxy.github")(function* (request, target, host) {
91
- const { claims, attachment } = yield* authenticate(request);
157
+ const { claims, live } = yield* authenticate(request);
158
+ const { attachment } = live;
92
159
  const route = githubRoute(settings.github, host, target.pathname, target.search);
93
160
  if (Option.isNone(route))
94
- return yield* refusedCaller(claims, "unsupported-path", `The gateway serves Git smart HTTP and the GitHub API, not ${target.pathname}.`);
161
+ return yield* refusedCaller(claims, "unsupported-path", `The gateway serves Git smart HTTP, release downloads, and the GitHub API, not ${target.pathname}.`);
95
162
  const named = route.value.repository;
96
- if (Option.isSome(named) &&
97
- canonicalRepositoryName(named.value) !== canonicalRepositoryName(claims.repository))
163
+ if (Option.isSome(named) && !live.serves(named.value))
98
164
  return yield* refusedCaller(claims, "repository-mismatch", `The caller token was issued for ${claims.repository}, not ${named.value}.`);
99
- const headers = withGitHubCredential(route.value, attachment.credential, withoutCallerCredentials(endToEndHeaders(request.headers)));
100
- const response = yield* forwardRequest(client, request, route.value.upstream, headers);
101
- yield* forwarded("Forwarded a GitHub request", request, target, attachment, response, {
102
- protocol: route.value.protocol,
103
- });
165
+ const headers = withGitHubCredential(route.value.protocol, attachment.credential, withoutCallerCredentials(endToEndHeaders(request.headers)));
166
+ const response = yield* throughGateway(yield* forwardRequest(client, request, route.value.upstream, headers), live, route.value);
167
+ yield* forwarded(route.value.protocol === "release"
168
+ ? "Served a GitHub release download"
169
+ : "Forwarded a GitHub request", request, target, attachment, response, { protocol: route.value.protocol, ...redirectTarget(response) });
104
170
  return response;
105
171
  });
106
172
  const llm = Effect.fn("GatewayProxy.llm")(function* (request, target) {
107
- const { claims, attachment } = yield* authenticate(request);
173
+ const { claims, live: { attachment }, } = yield* authenticate(request);
108
174
  const destination = llmTarget(target.pathname);
109
175
  if (Option.isNone(destination))
110
176
  return yield* refusedCaller(claims, "unsupported-path", `The gateway serves /anthropic and /openai on ${hosts.llm}, not ${target.pathname}.`);
@@ -112,14 +178,51 @@ export class GatewayProxy extends Context.Service()("@usine/gateway/GatewayProxy
112
178
  const provider = configuredProvider(providers, destination.value.provider);
113
179
  if (Option.isNone(provider))
114
180
  return yield* refusedCaller(claims, "provider-not-configured", `The gateway has no credential for ${destination.value.provider}.`);
115
- const headers = withProviderCredential(provider.value, withoutCallerCredentials(endToEndHeaders(request.headers)));
116
- const upstream = `${provider.value.upstream}${destination.value.rest}${target.search}`;
117
- const response = yield* forwardRequest(client, request, upstream, headers);
181
+ const path = llmRoute(provider.value, destination.value.rest);
182
+ if (Option.isNone(path))
183
+ return yield* refusedCaller(claims, "unsupported-path", `The gateway serves only the routes Claude Code and Codex call on ${hosts.llm}, such as /anthropic/v1/messages and /openai/v1/responses, not ${target.pathname}.`);
184
+ const incoming = withoutCallerCredentials(endToEndHeaders(request.headers));
185
+ const { credential } = provider.value;
186
+ const outgoing = credential._tag === "ChatGptLogin"
187
+ ? yield* chatGptRequest(claims, credential, incoming)
188
+ : {
189
+ headers: withStaticCredential(credential, incoming),
190
+ answered: () => Effect.void,
191
+ };
192
+ const upstream = `${provider.value.upstream}${path.value}${target.search}`;
193
+ const response = yield* forwardRequest(client, request, upstream, outgoing.headers);
194
+ yield* outgoing.answered(response.status);
118
195
  yield* forwarded("Forwarded an LLM request", request, target, attachment, response, {
119
196
  provider: destination.value.provider,
197
+ credential: credential._tag,
120
198
  });
121
199
  return response;
122
200
  });
201
+ /**
202
+ * Returns the headers for a request with a ChatGPT login, and records a 401 answer so the
203
+ * next request refreshes the access token first.
204
+ */
205
+ const chatGptRequest = Effect.fn("GatewayProxy.chatGptRequest")(function* (claims, login, incoming) {
206
+ const access = yield* logins
207
+ .access(login)
208
+ .pipe(Effect.mapError((error) => loginUnavailable(claims, error)));
209
+ return {
210
+ headers: withChatGptAccess(access, incoming),
211
+ answered: (status) => status === 401 ? logins.refused(login, access) : Effect.void,
212
+ };
213
+ });
214
+ /**
215
+ * Refuses a host the reverse proxy doesn't serve. gh sends every request to the gateway,
216
+ * including a followed redirect to a GitHub download host, so for an allowlisted host the
217
+ * refusal says how to download from it with curl.
218
+ */
219
+ const unknownHost = Effect.fn("GatewayProxy.unknownHost")(function* (target) {
220
+ const { egress } = yield* inForce.current;
221
+ const served = `The gateway serves ${hosts.git} and ${hosts.llm}, not ${target.host}`;
222
+ return yield* refused("unknown-host", egress.decide(target.host, 443)._tag === "EgressPermitted"
223
+ ? `${served}, which the forward proxy serves. gh sends every request to the gateway, so it can't follow GitHub's redirect to ${target.host}. Download with curl -fL -u ":$GH_TOKEN" from ${hosts.git} instead, such as http://${hosts.git}/OWNER/REPO/releases/download/TAG/FILE, or http://${hosts.git}/api/v3/repos/OWNER/REPO/tarball/REF for an archive.`
224
+ : `${served}. Send requests for other hosts through the forward proxy.`);
225
+ });
123
226
  const route = (request, target) => {
124
227
  if (target.host === hosts.git)
125
228
  return github(request, target, "gateway");
@@ -128,7 +231,7 @@ export class GatewayProxy extends Context.Service()("@usine/gateway/GatewayProxy
128
231
  return github(request, target, githubHost);
129
232
  if (target.host === hosts.llm)
130
233
  return llm(request, target);
131
- return Effect.fail(refused("unknown-host", `The gateway serves ${hosts.git} and ${hosts.llm}, not ${target.host}. Send requests for other hosts through the forward proxy.`));
234
+ return unknownHost(target);
132
235
  };
133
236
  const handle = Effect.gen(function* () {
134
237
  const request = yield* HttpServerRequest.HttpServerRequest;
@@ -151,7 +254,12 @@ export class GatewayProxy extends Context.Service()("@usine/gateway/GatewayProxy
151
254
  return { handle };
152
255
  }));
153
256
  }
154
- const refusalResponse = (error) => HttpServerResponse.jsonUnsafe({ message: `usine gateway: ${error.message}`, reason: error.reason }, { status: REFUSAL_STATUS[error.reason], headers: { [REFUSAL_HEADER]: error.reason } });
257
+ const refusalResponse = (error) => HttpServerResponse.jsonUnsafe({ message: `usine gateway: ${error.message}`, reason: error.reason }, { status: error.status, headers: { [REFUSAL_HEADER]: error.reason } });
258
+ /** Returns the host a response redirects to, without the `Location` path and query, which can hold a signature. */
259
+ const redirectTarget = (response) => Option.match(Option.flatMap(Headers.get(response.headers, "location"), absoluteUrl), {
260
+ onNone: () => ({}),
261
+ onSome: (url) => ({ target: url.host }),
262
+ });
155
263
  const clientAddress = (request) => Option.getOrElse(request.remoteAddress, () => "unknown");
156
264
  const logRefusal = (request, target, error) => {
157
265
  const caller = Option.match(error.caller, {
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/proxy/proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/proxy/proxy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@usine/gateway",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "The usine gateway: a credential-injecting proxy for GitHub and LLM providers, and an egress allowlist, in front of Worker VMs.",
5
- "license": "MIT",
5
+ "license": "AGPL-3.0-only",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "git+https://github.com/basaltbytes/usine.git",
@@ -35,19 +35,19 @@
35
35
  "access": "public"
36
36
  },
37
37
  "dependencies": {
38
- "@effect/platform-node": "4.0.0-rc.111",
39
- "@effect/platform-node-shared": "4.0.0-rc.111",
40
- "@usine/core": "0.4.0"
38
+ "@effect/platform-node": "4.0.6",
39
+ "@effect/platform-node-shared": "4.0.6",
40
+ "@usine/core": "0.5.0"
41
41
  },
42
42
  "devDependencies": {
43
- "@effect/vitest": "4.0.0-rc.111",
44
- "effect": "4.0.0-rc.111",
43
+ "@effect/vitest": "4.0.6",
44
+ "effect": "4.0.6",
45
45
  "typescript": "7.0.2",
46
- "vitest": "4.1.11",
46
+ "vitest": "5.0.5",
47
47
  "@usine/tsconfig": "0.0.0"
48
48
  },
49
49
  "peerDependencies": {
50
- "effect": "4.0.0-rc.111"
50
+ "effect": "4.0.6"
51
51
  },
52
52
  "engines": {
53
53
  "node": ">=22"