MCPcopy Create free account
hub / github.com/MigoXLab/coderio / main

Function main

skills/design-to-code/scripts/coderio-skill.mjs:100–298  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

98}
99
100async function main() {
101 try {
102 switch (command) {
103 case 'scaffold-prompt': {
104 console.log(INITIAL_AGENT_SYSTEM_PROMPT);
105 console.log('\n--- INSTRUCTION ---\n');
106 console.log(initialAgentInstruction({ appPath, appName: args[0] || 'MyApp' }));
107 break;
108 }
109
110 case 'fetch-figma': {
111 const [figmaUrl, figmaToken] = args;
112 if (!figmaUrl || !figmaToken) throw new Error('Usage: fetch-figma <url> <token>');
113
114 const urlInfo = parseFigmaUrl(figmaUrl);
115 console.log('Fetching Figma document...');
116 const { document, imageNodesMap } = await executeFigmaAndImagesActions(urlInfo, assetsDir, processDir, figmaToken);
117
118 const simplified = figmaTool.simplifyImageNodes(document, imageNodesMap);
119 const processed = figmaTool.processedStyle(simplified);
120 fs.writeFileSync(path.join(processDir, 'processed.json'), JSON.stringify(processed, null, 2));
121
122 if (processed.thumbnailUrl) {
123 console.log('Downloading thumbnail...');
124 const base64 = await downloadImage(processed.thumbnailUrl, undefined, undefined, true);
125 fs.writeFileSync(path.join(processDir, 'thumbnail.png'), Buffer.from(base64, 'base64'));
126 console.log('Thumbnail saved to process/thumbnail.png');
127 }
128 console.log('Figma data processed.');
129 break;
130 }
131
132 case 'structure-prompt': {
133 const procDoc = JSON.parse(fs.readFileSync(path.join(processDir, 'processed.json'), 'utf-8'));
134 const frames = procDoc.frames || procDoc.children;
135 const positions = extractNodePositionsHierarchical(frames);
136 const prompt = generateStructurePrompt({
137 positions: JSON.stringify(positions, null, 2),
138 width: String(procDoc.absoluteBoundingBox?.width || 1440)
139 });
140 console.log(prompt);
141 break;
142 }
143
144 case 'save-structure': {
145 const structureJson = fs.readFileSync(path.join(scriptsDir, 'structure-output.json'), 'utf-8');
146 const pDoc = JSON.parse(fs.readFileSync(path.join(processDir, 'processed.json'), 'utf-8'));
147
148 const parsed = JSON.parse(extractJSON(structureJson));
149 const structFrames = pDoc.frames || pDoc.children;
150 postProcessStructure(parsed, structFrames);
151
152 const protocol = Array.isArray(parsed) ? parsed[0] : parsed;
153 fs.writeFileSync(path.join(processDir, 'protocol.json'), JSON.stringify(protocol, null, 2));
154 console.log('Structure saved to process/protocol.json');
155 break;
156 }
157

Callers 1

coderio-skill.mjsFile · 0.70

Calls 15

initialAgentInstructionFunction · 0.85
parseFigmaUrlFunction · 0.85
downloadImageFunction · 0.85
generateStructurePromptFunction · 0.85
extractJSONFunction · 0.85
postProcessStructureFunction · 0.85
extractDataListPromptFunction · 0.85
flattenPostOrderFunction · 0.85
generateComponentPromptFunction · 0.85

Tested by

no test coverage detected