sf-agent-framework
Version:
AI Agent Orchestration Framework for Salesforce Development - Two-phase architecture with 70% context reduction
63 lines (51 loc) • 1.53 kB
JavaScript
const fs = require('fs');
const yaml = require('js-yaml');
function generateMermaidDiagram(workflow) {
let mermaid = `graph TD
`;
let lastPhase = null;
for (const phase of workflow.workflow.sequence) {
mermaid += `
subgraph ${phase.phase}`;
if (phase.parallel_tracks) {
for (const track of phase.parallel_tracks) {
mermaid += `
subgraph ${track.track}`;
let lastStep = null;
for (const step of track.steps) {
mermaid += `
${step.step}["${step.step}"]`;
if (lastStep) {
mermaid += `\n ${lastStep} --> ${step.step}`;
}
lastStep = step.step;
}
mermaid += `\n end`;
}
} else if (phase.steps) {
let lastStep = null;
for (const step of phase.steps) {
mermaid += `\n ${step.step}["${step.step}"]`;
if (lastStep) {
mermaid += `\n ${lastStep} --> ${step.step}`;
}
lastStep = step.step;
}
}
mermaid += `\n end`;
if (lastPhase) {
mermaid += `\n ${lastPhase} --> ${phase.phase}`;
}
lastPhase = phase.phase;
}
return mermaid;
}
function visualizeWorkflow(filePath) {
console.log(`Visualizing workflow: ${filePath}`);
const fileContents = fs.readFileSync(filePath, 'utf8');
const workflow = yaml.load(fileContents);
console.log('\n--- Mermaid Diagram---\n');
const mermaidDiagram = generateMermaidDiagram(workflow);
console.log(mermaidDiagram);
}
module.exports = visualizeWorkflow;