mirror of
https://github.com/stablyai/orca.git
synced 2026-10-19 00:03:20 +00:00
23 lines
910 B
TypeScript
23 lines
910 B
TypeScript
import { capabilityKinds } from '../../shared/plugins/plugin-capabilities'
|
|
import type { DiscoveredPlugin, ValidDiscoveredPlugin } from './plugin-discovery'
|
|
import { isInvalidDiscoveredPlugin } from './plugin-discovery'
|
|
import type { PluginWorkerSpawnSpec } from './plugin-worker-manager'
|
|
import { buildPluginWorkerSpawnSpec } from './plugin-worker-spawn-spec'
|
|
|
|
export function collectApprovedWorkerSpecs(
|
|
plugins: readonly DiscoveredPlugin[],
|
|
isApproved: (plugin: ValidDiscoveredPlugin) => boolean
|
|
): ReadonlyMap<string, PluginWorkerSpawnSpec> {
|
|
const specs = new Map<string, PluginWorkerSpawnSpec>()
|
|
for (const plugin of plugins) {
|
|
if (isInvalidDiscoveredPlugin(plugin) || !plugin.manifest.main || !isApproved(plugin)) {
|
|
continue
|
|
}
|
|
specs.set(
|
|
plugin.pluginKey,
|
|
buildPluginWorkerSpawnSpec(plugin, capabilityKinds(plugin.manifest.capabilities))
|
|
)
|
|
}
|
|
return specs
|
|
}
|