mapClaudeModelToOpenCode() returns {providerID, modelID} but opencode expects model as a string. Both agent loaders now convert to 'providerID/modelID' string format before assigning to config.
Extract plugin component loading into dedicated modules: - discovery.ts: plugin directory detection - plugin-path-resolver.ts: path resolution logic - agent-loader.ts, command-loader.ts, hook-loader.ts - mcp-server-loader.ts, skill-loader.ts