/** * slides/09-installation-1.js * ---------------------------------------------------------------------------- * Slide 09 -- Installation: prerequisites + clone * Steps 1-2 of 5. */ 'use strict'; const { helpers, layouts } = require('../../design-system'); function buildInstallPart1(pres, theme) { const slide = pres.addSlide(); helpers.slideBase(slide, pres, theme); helpers.addHeader(slide, pres, theme, { eyebrow: 'STAGE 4', sectionNumber: 4, title: 'Установка (1/2): шаги 1-2', }); helpers.addCodeBlock(slide, pres, theme, { x: 0.5, y: layouts.CONTENT_TOP, w: 5.5, h: 1.5, language: 'bash', code: [ '# 1. prerequisites', 'python --version # >= 3.11', 'node --version # >= 20', 'uv --version # или pip', 'docker --version # для dev', ].join('\n'), filePath: 'INSTALLATION.md: step 1', startLine: 1, }); helpers.addCodeBlock(slide, pres, theme, { x: 0.5, y: 3.1, w: 5.5, h: 1.75, language: 'bash', code: [ '# 2. clone + install', 'git clone https://github.com/', ' langchain-ai/open-swe.git', 'cd open-swe', 'uv sync # или pip install -e .', ].join('\n'), filePath: 'INSTALLATION.md: step 2', startLine: 1, }); helpers.addCallout(slide, pres, theme, { x: 6.2, y: layouts.CONTENT_TOP, w: 3.3, h: 1.55, kind: 'info', title: 'Не SaaS', text: 'Open SWE -- не готовый сервис. ' + 'После клонирования нужно ' + 'поднять backend, UI, sandbox, ' + 'GitHub App, LangSmith.', }); helpers.addCallout(slide, pres, theme, { x: 6.2, y: 3.1, w: 3.3, h: 1.75, kind: 'warning', title: 'ENV-файл', text: 'cp .env.example .env, затем ' + 'заполните:\n' + '- GITHUB_APP_ID\n' + '- LANGSMITH_API_KEY\n' + '- DAYTONA_API_KEY', }); helpers.addPageNumber(slide, pres, theme, 9); helpers.addSourceLine(slide, pres, theme, { source: 'github.com/langchain-ai/open-swe/blob/main/INSTALLATION.md', }); return slide; } module.exports = { buildInstallPart1 };