feat(web-search): wire hosted plugin composition

This commit is contained in:
2026-09-01 02:39:16 +08:00
parent 68cb2e73be
commit 60e6a8eeb3
9 changed files with 361 additions and 6 deletions

View File

@@ -46,6 +46,8 @@ import {
import { createDataServicePluginAdapter } from '../coding-plugins/adapters/data-service';
import { createGameResourcePluginAdapter } from '../coding-plugins/adapters/game-resource';
import { GameResourceClient } from '../services/game-resource-client';
import { createWebSearchPluginAdapter } from '../coding-plugins/adapters/web-search';
import { WebSearchClient } from '../services/web-search-client';
import { AccountPluginCache } from '../coding-plugins/account-plugin-cache';
import {
createMarketplaceClient,
@@ -288,6 +290,12 @@ export function createCodingComposition(
packageStore,
makeloreVersion: options.clientVersion ?? '2.0.0',
});
const webSearchAdapter = createWebSearchPluginAdapter({
client: new WebSearchClient(),
marketplace: marketplaceClient,
packageStore,
makeloreVersion: options.clientVersion ?? '2.0.0',
});
const policyClient = options.policyClient ?? new PluginPolicyClient();
const knownPluginIds = new Set(pluginDefinitions.map(({ id }) => id));
// Existing user Releases are discovered from the device index at startup;
@@ -323,7 +331,7 @@ export function createCodingComposition(
const capabilityRegistry = createCodingCapabilityRegistry({
policyClient,
projectPlugins,
adapters: [dataServiceAdapter, gameResourceAdapter],
adapters: [dataServiceAdapter, gameResourceAdapter, webSearchAdapter],
definitions: pluginDefinitions,
effectiveResolver,
getDurableProjectId: async (projectPath, localProjectId) => {
@@ -339,7 +347,7 @@ export function createCodingComposition(
projects,
projectPlugins,
policyClient,
adapters: [dataServiceAdapter, gameResourceAdapter],
adapters: [dataServiceAdapter, gameResourceAdapter, webSearchAdapter],
definitions: pluginDefinitions,
effectiveResolver,
getDefinitions: async () => {