| name | plugin-dependency-resolver |
| description | Generate plugin dependency resolution logic with topological sorting. |
| allowed-tools | Read, Write, Edit, Bash, Glob, Grep |
| graph | {"domains":["domain:software-engineering"],"specializations":["specialization:cli-mcp-development"],"skillAreas":["skill-area:cli-design","skill-area:plugin-systems"],"roles":["role:backend-engineer","role:platform-engineer"],"workflows":["workflow:feature-development"],"topics":["topic:developer-experience"]} |
Plugin Dependency Resolver
Generate plugin dependency resolution logic.
Generated Patterns
interface PluginNode {
name: string;
dependencies: string[];
}
export function resolveDependencies(plugins: PluginNode[]): string[] {
const graph = new Map<string, string[]>();
inDegree = <, >();
( plugin plugins) {
graph.(plugin., plugin.);
inDegree.(plugin., );
}
( [, deps] graph) {
( dep deps) {
inDegree.(dep, (inDegree.(dep) || ) + );
}
}
queue = [...inDegree.()].( d === ).( n);
: [] = [];
(queue. > ) {
node = queue.()!;
result.(node);
( dep graph.(node) || []) {
inDegree.(dep, inDegree.(dep)! - );
(inDegree.(dep) === ) queue.(dep);
}
}
(result. !== plugins.) {
();
}
result.();
}