perf(plugin-loader): parallelize component loading

- Convert sequential plugin component loading to Promise.all
- Wrap sync functions in Promise.resolve() for parallel execution
- commands, skills, agents, mcpServers, hooksConfigs now load concurrently

🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
This commit is contained in:
YeonGyu-Kim
2026-01-04 21:26:09 +09:00
parent 6575dfcbc4
commit 91d2705804

View File

@@ -464,11 +464,13 @@ export interface PluginComponentsResult {
export async function loadAllPluginComponents(options?: PluginLoaderOptions): Promise<PluginComponentsResult> { export async function loadAllPluginComponents(options?: PluginLoaderOptions): Promise<PluginComponentsResult> {
const { plugins, errors } = discoverInstalledPlugins(options) const { plugins, errors } = discoverInstalledPlugins(options)
const commands = loadPluginCommands(plugins) const [commands, skills, agents, mcpServers, hooksConfigs] = await Promise.all([
const skills = loadPluginSkillsAsCommands(plugins) Promise.resolve(loadPluginCommands(plugins)),
const agents = loadPluginAgents(plugins) Promise.resolve(loadPluginSkillsAsCommands(plugins)),
const mcpServers = await loadPluginMcpServers(plugins) Promise.resolve(loadPluginAgents(plugins)),
const hooksConfigs = loadPluginHooksConfigs(plugins) loadPluginMcpServers(plugins),
Promise.resolve(loadPluginHooksConfigs(plugins)),
])
log(`Loaded ${plugins.length} plugins with ${Object.keys(commands).length} commands, ${Object.keys(skills).length} skills, ${Object.keys(agents).length} agents, ${Object.keys(mcpServers).length} MCP servers`) log(`Loaded ${plugins.length} plugins with ${Object.keys(commands).length} commands, ${Object.keys(skills).length} skills, ${Object.keys(agents).length} agents, ${Object.keys(mcpServers).length} MCP servers`)