Skip to content

Commit 6be4158

Browse files
committed
fix(pdf): preserve resolver compatibility
1 parent 289c193 commit 6be4158

3 files changed

Lines changed: 48 additions & 16 deletions

File tree

src/agents/tools/pdf-native-providers.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { readResponseBodySnippet } from "../../infra/http-error-body.js";
77
import {
88
postJsonRequest,
99
readProviderJsonResponse,
10-
resolveProviderHttpRequestConfig,
10+
resolveProviderHttpRequestConfigWithOriginTrust,
1111
} from "../../media-understanding/shared.js";
1212
import { normalizeProviderTransportWithPlugin } from "../../plugins/provider-runtime.js";
1313
import { isRecord } from "../../utils.js";
@@ -125,7 +125,7 @@ export async function anthropicAnalyzePdf(params: {
125125
content.push({ type: "text", text: params.prompt });
126126

127127
const { baseUrl, allowPrivateNetwork, headers, dispatcherPolicy, trustConfiguredBaseUrlOrigin } =
128-
resolveProviderHttpRequestConfig({
128+
resolveProviderHttpRequestConfigWithOriginTrust({
129129
baseUrl: params.baseUrl,
130130
defaultBaseUrl: resolveAnthropicMessagesUrl(undefined).replace(/\/messages$/u, ""),
131131
defaultHeaders: {
@@ -224,7 +224,7 @@ export async function geminiAnalyzePdf(params: {
224224
},
225225
}) ?? { baseUrl: params.baseUrl };
226226
const { baseUrl, allowPrivateNetwork, headers, dispatcherPolicy, trustConfiguredBaseUrlOrigin } =
227-
resolveProviderHttpRequestConfig({
227+
resolveProviderHttpRequestConfigWithOriginTrust({
228228
baseUrl: transport.baseUrl,
229229
defaultBaseUrl: "https://generativelanguage.googleapis.com/v1beta",
230230
defaultHeaders: {

src/media-understanding/shared.test.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,9 @@ import {
4040
pollProviderOperationJson,
4141
postJsonRequest,
4242
postTranscriptionRequest,
43-
resolveProviderOperationTimeoutMs,
4443
resolveProviderHttpRequestConfig,
44+
resolveProviderHttpRequestConfigWithOriginTrust,
45+
resolveProviderOperationTimeoutMs,
4546
waitProviderOperationPollInterval,
4647
} from "./shared.js";
4748

@@ -537,13 +538,13 @@ describe("resolveProviderHttpRequestConfig", () => {
537538
expect(resolved.headers.get("x-goog-api-key")).toBe("test-key");
538539
});
539540

540-
it("carries configured-origin trust eligibility for custom and local endpoints", () => {
541-
const custom = resolveProviderHttpRequestConfig({
541+
it("keeps configured-origin trust eligibility internal to core callers", () => {
542+
const custom = resolveProviderHttpRequestConfigWithOriginTrust({
542543
baseUrl: "https://models.internal/v1",
543544
defaultBaseUrl: "https://api.example.com/v1",
544545
provider: "example",
545546
});
546-
const deniedLocal = resolveProviderHttpRequestConfig({
547+
const deniedLocal = resolveProviderHttpRequestConfigWithOriginTrust({
547548
baseUrl: "http://127.0.0.1:11434/v1",
548549
defaultBaseUrl: "https://api.example.com/v1",
549550
provider: "example",
@@ -552,6 +553,13 @@ describe("resolveProviderHttpRequestConfig", () => {
552553

553554
expect(custom.trustConfiguredBaseUrlOrigin).toBe(true);
554555
expect(deniedLocal.trustConfiguredBaseUrlOrigin).toBe(false);
556+
expect(
557+
resolveProviderHttpRequestConfig({
558+
baseUrl: "https://models.internal/v1",
559+
defaultBaseUrl: "https://api.example.com/v1",
560+
provider: "example",
561+
}),
562+
).not.toHaveProperty("trustConfiguredBaseUrlOrigin");
555563
});
556564

557565
it("surfaces dispatcher policy for explicit proxy and mTLS transport overrides", () => {

src/media-understanding/shared.ts

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,19 @@ function sanitizeAuditContext(auditContext: string | undefined): string | undefi
324324
return cleaned.slice(0, MAX_AUDIT_CONTEXT_CHARS);
325325
}
326326

327-
export function resolveProviderHttpRequestConfig(params: {
327+
type ResolvedProviderHttpRequestConfig = {
328+
baseUrl: string;
329+
allowPrivateNetwork: boolean;
330+
headers: Headers;
331+
dispatcherPolicy?: PinnedDispatcherPolicy;
332+
requestConfig: ResolvedProviderRequestConfig;
333+
};
334+
335+
type ResolvedProviderHttpRequestConfigWithOriginTrust = ResolvedProviderHttpRequestConfig & {
336+
trustConfiguredBaseUrlOrigin: boolean;
337+
};
338+
339+
function resolveProviderHttpRequestConfigWithOriginTrustInternal(params: {
328340
baseUrl?: string;
329341
defaultBaseUrl: string;
330342
allowPrivateNetwork?: boolean;
@@ -335,14 +347,7 @@ export function resolveProviderHttpRequestConfig(params: {
335347
api?: string;
336348
capability?: ProviderRequestCapability;
337349
transport?: ProviderRequestTransport;
338-
}): {
339-
baseUrl: string;
340-
allowPrivateNetwork: boolean;
341-
headers: Headers;
342-
dispatcherPolicy?: PinnedDispatcherPolicy;
343-
requestConfig: ResolvedProviderRequestConfig;
344-
trustConfiguredBaseUrlOrigin: boolean;
345-
} {
350+
}): ResolvedProviderHttpRequestConfigWithOriginTrust {
346351
const requestConfig = resolveProviderRequestPolicyConfig({
347352
provider: params.provider ?? "",
348353
baseUrl: params.baseUrl,
@@ -376,6 +381,25 @@ export function resolveProviderHttpRequestConfig(params: {
376381
};
377382
}
378383

384+
export function resolveProviderHttpRequestConfig(
385+
params: Parameters<typeof resolveProviderHttpRequestConfigWithOriginTrustInternal>[0],
386+
): ResolvedProviderHttpRequestConfig {
387+
const resolved = resolveProviderHttpRequestConfigWithOriginTrustInternal(params);
388+
return {
389+
baseUrl: resolved.baseUrl,
390+
allowPrivateNetwork: resolved.allowPrivateNetwork,
391+
headers: resolved.headers,
392+
dispatcherPolicy: resolved.dispatcherPolicy,
393+
requestConfig: resolved.requestConfig,
394+
};
395+
}
396+
397+
export function resolveProviderHttpRequestConfigWithOriginTrust(
398+
params: Parameters<typeof resolveProviderHttpRequestConfigWithOriginTrustInternal>[0],
399+
): ResolvedProviderHttpRequestConfigWithOriginTrust {
400+
return resolveProviderHttpRequestConfigWithOriginTrustInternal(params);
401+
}
402+
379403
/**
380404
* Decide whether to auto-upgrade a provider HTTP request into
381405
* `TRUSTED_ENV_PROXY` mode based on the runtime environment.

0 commit comments

Comments
 (0)