Files
web_app/index.html
2026-02-27 21:26:26 +03:00

124 lines
5.9 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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="md-toggle-mode" type="button" class="md-toggle" title="Режим markdown" disabled>👁</button>
</div>
<div class="editor-workspace">
<div id="editor-empty-state" class="editor-empty-state">Откройте файл в дереве проекта</div>
<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"></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="tree-context-menu" class="tree-context-menu hidden" role="menu" aria-label="Действия с файлом">
<button id="tree-menu-create-dir" type="button" role="menuitem">Создать папку</button>
<button id="tree-menu-create" type="button" role="menuitem">Создать файл в папке</button>
<button id="tree-menu-delete" type="button" role="menuitem">Удалить</button>
<button id="tree-menu-rename" type="button" role="menuitem">Переименовать</button>
</div>
<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-row">
<span class="indexing-label">Всего проиндексировано:</span>
<span id="indexing-total-indexed" class="indexing-value">0</span>
</div>
<div class="indexing-row">
<span class="indexing-label">С кэшем rag_repo:</span>
<span id="indexing-cache-hit" class="indexing-value">0</span>
</div>
<div class="indexing-row">
<span class="indexing-label">Без кэша rag_repo:</span>
<span id="indexing-cache-miss" class="indexing-value">0</span>
</div>
<div class="indexing-row">
<span class="indexing-label">Доля reuse:</span>
<span id="indexing-reuse-ratio" class="indexing-value">0%</span>
</div>
<div class="indexing-progress">
<div id="indexing-progress-bar" class="indexing-progress-bar"></div>
</div>
<div class="indexing-actions">
<button id="indexing-close-btn" type="button" disabled>Закрыть</button>
</div>
</div>
</div>
<script type="module" src="./src/main.js"></script>
</body>
</html>