@@ -3,10 +3,7 @@ import path from "node:path";
33import type { OpenClawConfig } from "../config/types.js" ;
44import type { PluginInstallRecord } from "../config/types.plugins.js" ;
55import { isBlockedObjectKey } from "../infra/prototype-keys.js" ;
6- import {
7- normalizeOptionalLowercaseString ,
8- normalizeOptionalString ,
9- } from "../shared/string-coerce.js" ;
6+ import { normalizeOptionalString } from "../shared/string-coerce.js" ;
107import { normalizeOptionalTrimmedStringList } from "../shared/string-normalization.js" ;
118import { sanitizeForLog } from "../terminal/ansi.js" ;
129import { resolveUserPath } from "../utils.js" ;
@@ -169,90 +166,6 @@ const DEFAULT_MANIFEST_CACHE_MS = 1000;
169166
170167export { clearPluginManifestRegistryCache } from "./manifest-registry-state.js" ;
171168
172- function listContractValues (
173- plugin : PluginManifestRecord ,
174- contract : PluginManifestContractListKey ,
175- ) : readonly string [ ] {
176- return plugin . contracts ?. [ contract ] ?? [ ] ;
177- }
178-
179- export function resolveManifestContractPluginIds ( params : {
180- contract : PluginManifestContractListKey ;
181- origin ?: PluginOrigin ;
182- config ?: OpenClawConfig ;
183- workspaceDir ?: string ;
184- env ?: NodeJS . ProcessEnv ;
185- onlyPluginIds ?: readonly string [ ] ;
186- } ) : string [ ] {
187- const onlyPluginIdSet =
188- params . onlyPluginIds && params . onlyPluginIds . length > 0 ? new Set ( params . onlyPluginIds ) : null ;
189- return loadPluginManifestRegistry ( {
190- config : params . config ,
191- workspaceDir : params . workspaceDir ,
192- env : params . env ,
193- } )
194- . plugins . filter (
195- ( plugin ) =>
196- ( ! params . origin || plugin . origin === params . origin ) &&
197- ( ! onlyPluginIdSet || onlyPluginIdSet . has ( plugin . id ) ) &&
198- listContractValues ( plugin , params . contract ) . length > 0 ,
199- )
200- . map ( ( plugin ) => plugin . id )
201- . toSorted ( ( left , right ) => left . localeCompare ( right ) ) ;
202- }
203-
204- export function resolveManifestContractPluginIdsByCompatibilityRuntimePath ( params : {
205- contract : PluginManifestContractListKey ;
206- path : string | undefined ;
207- origin ?: PluginOrigin ;
208- config ?: OpenClawConfig ;
209- workspaceDir ?: string ;
210- env ?: NodeJS . ProcessEnv ;
211- } ) : string [ ] {
212- const normalizedPath = params . path ?. trim ( ) ;
213- if ( ! normalizedPath ) {
214- return [ ] ;
215- }
216- return loadPluginManifestRegistry ( {
217- config : params . config ,
218- workspaceDir : params . workspaceDir ,
219- env : params . env ,
220- } )
221- . plugins . filter (
222- ( plugin ) =>
223- ( ! params . origin || plugin . origin === params . origin ) &&
224- listContractValues ( plugin , params . contract ) . length > 0 &&
225- ( plugin . configContracts ?. compatibilityRuntimePaths ?? [ ] ) . includes ( normalizedPath ) ,
226- )
227- . map ( ( plugin ) => plugin . id )
228- . toSorted ( ( left , right ) => left . localeCompare ( right ) ) ;
229- }
230-
231- export function resolveManifestContractOwnerPluginId ( params : {
232- contract : PluginManifestContractListKey ;
233- value : string | undefined ;
234- origin ?: PluginOrigin ;
235- config ?: OpenClawConfig ;
236- workspaceDir ?: string ;
237- env ?: NodeJS . ProcessEnv ;
238- } ) : string | undefined {
239- const normalizedValue = normalizeOptionalLowercaseString ( params . value ) ;
240- if ( ! normalizedValue ) {
241- return undefined ;
242- }
243- return loadPluginManifestRegistry ( {
244- config : params . config ,
245- workspaceDir : params . workspaceDir ,
246- env : params . env ,
247- } ) . plugins . find (
248- ( plugin ) =>
249- ( ! params . origin || plugin . origin === params . origin ) &&
250- listContractValues ( plugin , params . contract ) . some (
251- ( candidate ) => normalizeOptionalLowercaseString ( candidate ) === normalizedValue ,
252- ) ,
253- ) ?. id ;
254- }
255-
256169function resolveManifestCacheMs ( env : NodeJS . ProcessEnv ) : number {
257170 const raw = env . OPENCLAW_PLUGIN_MANIFEST_CACHE_MS ?. trim ( ) ;
258171 if ( raw === "" || raw === "0" ) {
0 commit comments