105 lines
4.8 KiB
HTML
105 lines
4.8 KiB
HTML
<!doctype html>
|
|
<html lang="ru">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>AI Project Editor MVP</title>
|
|
<link rel="stylesheet" href="./styles.css" />
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.2/min/vs/loader.min.js"></script>
|
|
</head>
|
|
<body>
|
|
<main class="layout" id="layout-root">
|
|
<section class="panel" id="tree-panel">
|
|
<div class="row-header">
|
|
<h2>Проект</h2>
|
|
</div>
|
|
<div class="row-controls">
|
|
<label id="pick-project-label" for="pick-project-fallback" class="picker-label">Выбрать директорию</label>
|
|
<input id="pick-project-fallback" class="picker-input" type="file" webkitdirectory directory multiple />
|
|
</div>
|
|
<div id="tree-root" class="scroll"></div>
|
|
<div class="editor-footer tree-footer">
|
|
<span id="tree-info" class="editor-info tree-footer-line">Файлов: 0 • 0 KB</span>
|
|
<span id="rag-status" class="rag-status tree-footer-line" title="Статус индексации RAG">
|
|
<span id="rag-status-dot" class="rag-dot rag-red" aria-hidden="true"></span>
|
|
<span id="rag-status-text">RAG</span>
|
|
</span>
|
|
</div>
|
|
</section>
|
|
|
|
<div class="splitter" id="splitter-left" aria-label="resize left"></div>
|
|
|
|
<section class="panel" id="editor-panel">
|
|
<div class="row-header">
|
|
<h2>Открытые файлы</h2>
|
|
</div>
|
|
<div class="row-controls tabs-row">
|
|
<div id="file-tabs" class="tabs"></div>
|
|
<button id="new-text-tab" type="button" class="new-tab-btn" title="Новая вкладка .md">+MD</button>
|
|
<button id="md-toggle-mode" type="button" class="md-toggle" title="Режим markdown" disabled>👁</button>
|
|
</div>
|
|
<div class="editor-workspace">
|
|
<textarea id="file-editor" class="file-editor large" spellcheck="false"></textarea>
|
|
<div id="file-editor-monaco" class="file-editor monaco-host large hidden"></div>
|
|
<div id="md-preview" class="md-preview large hidden"></div>
|
|
<div class="review-wrap editor-review hidden">
|
|
<h2>Ревью изменений</h2>
|
|
<div id="review-toolbar" class="toolbar hidden">
|
|
<button id="accept-file">Accept file</button>
|
|
<button id="reject-file">Reject file</button>
|
|
<button id="accept-selected">Accept selected</button>
|
|
<button id="reject-selected">Reject selected</button>
|
|
<button id="apply-accepted">Apply accepted</button>
|
|
</div>
|
|
<div id="change-list" class="change-list"></div>
|
|
<div id="diff-view" class="diff-view"></div>
|
|
</div>
|
|
</div>
|
|
<div id="editor-footer-main" class="editor-footer">
|
|
<span id="editor-info" class="editor-info">Файл не выбран</span>
|
|
<div class="editor-actions">
|
|
<button id="save-file" type="button" disabled>Сохранить</button>
|
|
<button id="close-file" type="button" disabled>Закрыть</button>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<div class="splitter" id="splitter-right" aria-label="resize right"></div>
|
|
|
|
<section class="panel" id="right-panel">
|
|
<div class="chat-wrap">
|
|
<div class="row-header">
|
|
<h2>Чат</h2>
|
|
</div>
|
|
<div class="row-controls right-controls">
|
|
<button id="new-chat-session" type="button">Новая сессия</button>
|
|
</div>
|
|
<div id="chat-log" class="scroll chat-log"></div>
|
|
<form id="chat-form" class="chat-form">
|
|
<textarea id="chat-input" rows="4" placeholder="Введите задачу. Для теста changeset: /changeset { ... }"></textarea>
|
|
<button type="submit">Отправить</button>
|
|
</form>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
<div id="indexing-modal" class="indexing-modal hidden" role="dialog" aria-modal="true" aria-live="polite">
|
|
<div class="indexing-card">
|
|
<h3>Индексация проекта в RAG</h3>
|
|
<div class="indexing-row">
|
|
<span class="indexing-label">Текущий файл:</span>
|
|
<span id="indexing-file" class="indexing-value">—</span>
|
|
</div>
|
|
<div class="indexing-row">
|
|
<span class="indexing-label">Осталось:</span>
|
|
<span id="indexing-remaining" class="indexing-value">—</span>
|
|
</div>
|
|
<div class="indexing-progress">
|
|
<div id="indexing-progress-bar" class="indexing-progress-bar"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script type="module" src="./src/main.js"></script>
|
|
</body>
|
|
</html>
|