

























@@ -77,7 +77,7 @@ describe("web tool runtime context", () => {
7777const ownerLookup = latestOwnerLookupParams();
7878expect(ownerLookup.contract).toBe("webSearchProviders");
7979expect(ownerLookup.value).toBe("perplexity");
80-expect(ownerLookup.origin).toBe("bundled");
80+expect(ownerLookup).not.toHaveProperty("origin");
8181expect(ownerLookup.config).toBe(runtimeConfig);
8282});
8383@@ -103,7 +103,7 @@ describe("web tool runtime context", () => {
103103const ownerLookup = latestOwnerLookupParams();
104104expect(ownerLookup.contract).toBe("webSearchProviders");
105105expect(ownerLookup.value).toBe("brave");
106-expect(ownerLookup.origin).toBe("bundled");
106+expect(ownerLookup).not.toHaveProperty("origin");
107107expect(ownerLookup.config).toBe(capturedConfig);
108108});
109109@@ -115,12 +115,26 @@ describe("web tool runtime context", () => {
115115const ownerLookup = latestOwnerLookupParams();
116116expect(ownerLookup.contract).toBe("webSearchProviders");
117117expect(ownerLookup.value).toBe("brave");
118-expect(ownerLookup.origin).toBe("bundled");
118+expect(ownerLookup).not.toHaveProperty("origin");
119119expect(ownerLookup.config).toEqual({
120120tools: { web: { search: { provider: "Brave" } } },
121121});
122122});
123123124+it("treats resolved global provider owners as explicit selections", async () => {
125+mocks.resolveManifestContractOwnerPluginId.mockReturnValue("brave");
126+const { resolveWebSearchToolRuntimeContext } = await import("./web-tool-runtime-context.js");
127+128+const resolved = resolveWebSearchToolRuntimeContext({
129+config: { tools: { web: { search: { provider: "brave" } } } },
130+});
131+132+expect(resolved.preferRuntimeProviders).toBe(false);
133+expect(mocks.resolveManifestContractOwnerPluginId.mock.calls.at(-1)?.[0]).not.toHaveProperty(
134+"origin",
135+);
136+});
137+124138it("keeps runtime providers disabled for bundled fetch owners", async () => {
125139mocks.resolveManifestContractOwnerPluginId.mockReturnValue("firecrawl");
126140此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。