



















@@ -6,6 +6,55 @@ const { loadPluginManifestRegistryMock } = vi.hoisted(() => ({
66}),
77}));
889+const { loadBundledPluginPublicArtifactModuleSyncMock } = vi.hoisted(() => {
10+const providerBase = {
11+label: "Fixture",
12+hint: "fixture",
13+envVars: ["FIXTURE_API_KEY"],
14+placeholder: "fixture",
15+signupUrl: "https://example.com",
16+credentialPath: "plugins.entries.fixture.config.apiKey",
17+getCredentialValue: () => undefined,
18+setCredentialValue: () => ({}),
19+};
20+return {
21+loadBundledPluginPublicArtifactModuleSyncMock: vi.fn(
22+({ dirName, artifactBasename }: { dirName: string; artifactBasename: string }) => {
23+if (dirName === "brave" && artifactBasename === "web-search-contract-api.js") {
24+return {
25+createBraveWebSearchProvider: () => ({
26+ ...providerBase,
27+id: "brave",
28+createTool: () => null,
29+}),
30+};
31+}
32+if (dirName === "google" && artifactBasename === "web-search-provider.js") {
33+return {
34+createGeminiWebSearchProvider: () => ({
35+ ...providerBase,
36+id: "gemini",
37+createTool: () => ({ description: "fixture", parameters: {} }),
38+}),
39+};
40+}
41+if (dirName === "firecrawl" && artifactBasename === "web-fetch-contract-api.js") {
42+return {
43+createFirecrawlWebFetchProvider: () => ({
44+ ...providerBase,
45+id: "firecrawl",
46+createTool: () => null,
47+}),
48+};
49+}
50+throw new Error(
51+`Unable to resolve bundled plugin public surface ${dirName}/${artifactBasename}`,
52+);
53+},
54+),
55+};
56+});
57+958vi.mock("./manifest-registry.js", async (importOriginal) => {
1059const actual = await importOriginal<typeof import("./manifest-registry.js")>();
1160return {
@@ -14,6 +63,14 @@ vi.mock("./manifest-registry.js", async (importOriginal) => {
1463};
1564});
166566+vi.mock("./public-surface-loader.js", async (importOriginal) => {
67+const actual = await importOriginal<typeof import("./public-surface-loader.js")>();
68+return {
69+ ...actual,
70+loadBundledPluginPublicArtifactModuleSync: loadBundledPluginPublicArtifactModuleSyncMock,
71+};
72+});
73+1774import { resolveBundledExplicitRuntimeWebSearchProvidersFromPublicArtifacts as resolveExplicitRuntimeWebSearchProviders } from "./web-provider-public-artifacts.explicit.js";
1875import {
1976resolveBundledWebFetchProvidersFromPublicArtifacts,
@@ -23,6 +80,7 @@ import {
2380describe("web provider public artifacts explicit fast path", () => {
2481beforeEach(() => {
2582loadPluginManifestRegistryMock.mockClear();
83+loadBundledPluginPublicArtifactModuleSyncMock.mockClear();
2684});
27852886it("resolves bundled web search providers by explicit plugin id without manifest scans", () => {
@@ -33,6 +91,10 @@ describe("web provider public artifacts explicit fast path", () => {
33913492expect(provider?.pluginId).toBe("brave");
3593expect(provider?.createTool({ config: {} as never })).toBeNull();
94+expect(loadBundledPluginPublicArtifactModuleSyncMock).toHaveBeenCalledWith({
95+dirName: "brave",
96+artifactBasename: "web-search-contract-api.js",
97+});
3698expect(loadPluginManifestRegistryMock).not.toHaveBeenCalled();
3799});
38100@@ -43,6 +105,10 @@ describe("web provider public artifacts explicit fast path", () => {
4310544106expect(provider?.pluginId).toBe("google");
45107expect(provider?.createTool({ config: {} as never })).not.toBeNull();
108+expect(loadBundledPluginPublicArtifactModuleSyncMock).toHaveBeenCalledWith({
109+dirName: "google",
110+artifactBasename: "web-search-provider.js",
111+});
46112expect(loadPluginManifestRegistryMock).not.toHaveBeenCalled();
47113});
48114@@ -54,6 +120,10 @@ describe("web provider public artifacts explicit fast path", () => {
5412055121expect(provider?.pluginId).toBe("firecrawl");
56122expect(provider?.createTool({ config: {} as never })).toBeNull();
123+expect(loadBundledPluginPublicArtifactModuleSyncMock).toHaveBeenCalledWith({
124+dirName: "firecrawl",
125+artifactBasename: "web-fetch-contract-api.js",
126+});
57127expect(loadPluginManifestRegistryMock).not.toHaveBeenCalled();
58128});
59129});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。