mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-21 19:00:44 +00:00
fix(ai): OAuth login/refresh now respects HTTP proxy env vars
Extracted HTTP proxy setup to shared module and imported it from both stream.ts and oauth/index.ts. This ensures fetch() calls during OAuth flows (token exchange, refresh, project discovery) go through the proxy. fixes #1132
This commit is contained in:
parent
73839f876e
commit
469fb5d27c
4 changed files with 18 additions and 9 deletions
|
|
@ -5,6 +5,7 @@
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Fixed `cacheRetention` option not being passed through in `buildBaseOptions` ([#1154](https://github.com/badlogic/pi-mono/issues/1154))
|
- Fixed `cacheRetention` option not being passed through in `buildBaseOptions` ([#1154](https://github.com/badlogic/pi-mono/issues/1154))
|
||||||
|
- Fixed OAuth login/refresh not using HTTP proxy settings (`HTTP_PROXY`, `HTTPS_PROXY` env vars) ([#1132](https://github.com/badlogic/pi-mono/issues/1132))
|
||||||
|
|
||||||
## [0.50.9] - 2026-02-01
|
## [0.50.9] - 2026-02-01
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import "./providers/register-builtins.js";
|
import "./providers/register-builtins.js";
|
||||||
|
import "./utils/http-proxy.js";
|
||||||
|
|
||||||
import { getApiProvider } from "./api-registry.js";
|
import { getApiProvider } from "./api-registry.js";
|
||||||
import type {
|
import type {
|
||||||
|
|
@ -14,15 +15,6 @@ import type {
|
||||||
|
|
||||||
export { getEnvApiKey } from "./env-api-keys.js";
|
export { getEnvApiKey } from "./env-api-keys.js";
|
||||||
|
|
||||||
// Set up http proxy according to env variables for `fetch` based SDKs in Node.js.
|
|
||||||
// Bun has builtin support for this.
|
|
||||||
if (typeof process !== "undefined" && process.versions?.node) {
|
|
||||||
import("undici").then((m) => {
|
|
||||||
const { EnvHttpProxyAgent, setGlobalDispatcher } = m;
|
|
||||||
setGlobalDispatcher(new EnvHttpProxyAgent());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function resolveApiProvider(api: Api) {
|
function resolveApiProvider(api: Api) {
|
||||||
const provider = getApiProvider(api);
|
const provider = getApiProvider(api);
|
||||||
if (!provider) {
|
if (!provider) {
|
||||||
|
|
|
||||||
13
packages/ai/src/utils/http-proxy.ts
Normal file
13
packages/ai/src/utils/http-proxy.ts
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
/**
|
||||||
|
* Set up HTTP proxy according to env variables for `fetch` based SDKs in Node.js.
|
||||||
|
* Bun has builtin support for this.
|
||||||
|
*
|
||||||
|
* This module should be imported early by any code that needs proxy support for fetch().
|
||||||
|
* ES modules are cached, so importing multiple times is safe - setup only runs once.
|
||||||
|
*/
|
||||||
|
if (typeof process !== "undefined" && process.versions?.node) {
|
||||||
|
import("undici").then((m) => {
|
||||||
|
const { EnvHttpProxyAgent, setGlobalDispatcher } = m;
|
||||||
|
setGlobalDispatcher(new EnvHttpProxyAgent());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
@ -9,6 +9,9 @@
|
||||||
* - Antigravity (Gemini 3, Claude, GPT-OSS via Google Cloud)
|
* - Antigravity (Gemini 3, Claude, GPT-OSS via Google Cloud)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Set up HTTP proxy for fetch() calls (respects HTTP_PROXY, HTTPS_PROXY env vars)
|
||||||
|
import "../http-proxy.js";
|
||||||
|
|
||||||
// Anthropic
|
// Anthropic
|
||||||
export { anthropicOAuthProvider, loginAnthropic, refreshAnthropicToken } from "./anthropic.js";
|
export { anthropicOAuthProvider, loginAnthropic, refreshAnthropicToken } from "./anthropic.js";
|
||||||
// GitHub Copilot
|
// GitHub Copilot
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue