DeepSpace v4.4 – Финальный архитектурный spec-документ
Вводная пояснительная записка: DeepSpace – более удобный аналог Cursor AI для разработчиков
Что такое DeepSpace?
DeepSpace – это IDE-комбайн, объединяющий многопанельный файловый менеджер (локальный + FTP/SFTP), многопанельный редактор кода на базе Monaco (как в VS Code и Notepad++) и интеллектуального AI-агента, способного выполнять файловые операции, редактировать код и помогать в разработке так же, как это делает Cursor AI.

В отличие от обычных чат-интерфейсов, DeepSpace даёт AI «руки»: нейросеть может не просто советовать, но и самостоятельно создавать файлы, переименовывать папки, вносить изменения в код и даже выполнять команды в терминале – но только после вашего подтверждения.

Чем DeepSpace лучше/отличается от Cursor?
Характеристика Cursor DeepSpace
Основа Electron (VS Code fork) Нативный .NET + WebView2 – меньше памяти, быстрее запуск
Файловый менеджер Однопанельный (как в VS Code) Двухпанельный с вкладками – удобно копировать между папками, работать с FTP
Редактор Однопанельный (табы) Многопанельный (split view) – как в Notepad++, можно открыть несколько файлов рядом
AI-агент Есть (Composer, Tab) Аналогично: function calling, diff-предложения с подтверждением, индексация кода (RAG)
Поддержка FTP Только через плагины Встроенная – работа с удалёнными файлами как с локальными
Обход блокировок Через системный прокси Встроенная поддержка SOCKS5/HTTP, интеграция с Amnezia/WireGuard (опционально)
Контекстная память Ограничена окном чата Автосохранение диалога в MD – можно загрузить контекст при новой сессии
Цена Платный (подписка) Бесплатный, open source
DeepSpace создан для разработчиков, которые ценят контроль над кодом, любят двухпанельные файловые менеджеры (как Far Manager или Total Commander) и хотят, чтобы AI был полноценным напарником, а не просто справочной системой.

DeepSpace v4.4 – Архитектурный spec-документ (финальный)
Дата: 3 марта 2026
Версия: 4.4 (после анализа v5.0 и интеграции уточнений)
Автор: Gemini 3.1 pro, DeepSeek Coder, Claude Sonnet 4.6, GPT-5.3 Codex, и я)

  1. Введение
    DeepSpace – это десктопное приложение для Windows, объединяющее:

Многопанельный файловый менеджер (локальные диски + FTP/SFTP с вкладками).

Многопанельный редактор кода (Monaco с поддержкой split view).

AI-агента с доступом к файловой системе, терминалу и индексации кода.

Все операции AI производятся только после явного подтверждения пользователем через интерфейс сравнения изменений (diff). Безопасность и контроль – главные принципы.

  1. Технологический стек
    Компонент Технология Обоснование
    Бэкенд C# .NET 9 (AOT-ready) Полный доступ к Win32, зрелая TPL, богатые библиотеки для FTP/SSH (FluentFTP, SSH.NET).
    Хост-процесс Photino.NET WebView2-хост, минимальный рантайм, кастомные схемы.
    UI-фреймворк React 18 + TypeScript Экосистема, виртуализация, Monaco.
    Стили Tailwind CSS Атомарный CSS, без рантайм-оверхеда.
    Виртуализация TanStack Virtual + TanStack Table Для списков файлов.
    Состояние Zustand + локальные стейты Глобальное состояние (настройки, AI-история, индексы) и локальное для панелей.
    Редактор Monaco Editor + monaco-languageclient С поддержкой разделения (multi-pane) через кастомную обёртку.
    LSP-прокси WebSocket (динамический порт + токен) Безопасное соединение.
    Иконки/ассеты Кастомная схема deepspace:// Изоляция, без открытых портов.
    Работа с файлами System.IO + P/Invoke + FluentFTP/SSH.NET
    AI-прокси HttpClient с прокси (SOCKS5/HTTP)
    Индексация Lucene.NET (MVP), затем ONNX + SQLite Поэтапное внедрение RAG.
    Терминал System.Diagnostics.Process Запуск команд с подтверждением.
    Diff-патчи DiffPlex + Monaco diff editor Для безопасного применения изменений.
    Обновления Squirrel.Windows
  2. Архитектура приложения
    3.1. Процессы
    Единый основной процесс: C# .NET 9 (Photino), в котором запущен WebView2.

Дочерние процессы: LSP-серверы, внешний WireGuard (если используется).

Фоновые потоки: для индексации, для операций с FTP, для AI-запросов.

3.2. Коммуникация C# <-> WebView2
Асинхронный IPC через PostWebMessageAsJson с уникальными ID запросов. Никаких синхронных вызовов, блокирующих UI.

Кастомная схема deepspace:// для иконок, превью и любых бинарных данных (избегаем base64 в IPC).

События из C# в React: прогресс операций, стриминг AI-ответов, обновления от FileSystemWatcher.

3.3. Файловый менеджер (многопанельный с вкладками)
Две основные панели (левая и правая) – могут быть расширены до трёх в будущем.

Каждая панель содержит:

Вкладки (локальные пути или FTP-подключения).

Виртуализированную таблицу файлов (TanStack Table + Virtual).

Адресную строку, кнопки навигации.

Поддержка FTP/SFTP: через FluentFTP и SSH.NET. Файлы открываются и сохраняются в памяти, без временных файлов.

FileSystemWatcher с троттлингом (Rx.NET, 500 мс) для автообновления содержимого.

Буфер обмена: копирование файлов в системный clipboard (CF_HDROP) – основное средство обмена с другими приложениями. Исходящий Drag & Drop не реализуется в v1.0.

Контекстное меню: собственное (копировать, вставить, удалить, свойства). Для свойств вызывается стандартный диалог Windows через ShellExecute.

3.4. Редактор кода (многопанельный, как в Notepad++)
Используется библиотека allotment для создания изменяемых разделителей.

Состояние макета хранится в Zustand: дерево областей (панелей) с вкладками.

Возможности:

Горизонтальное/вертикальное разделение текущей области.

Перетаскивание вкладок между областями (HTML5 Drag & Drop).

При открытии файла из FM он добавляется в текущую активную область.

Monaco Editor:

Модели кешируются (один файл – одна модель).

При превышении размера файла (>15 МБ) открытие во внешнем приложении.

LSP: через WebSocket с токеном (как в v4.3).

3.5. AI-агент («руки», как в Cursor)
3.5.1. Интерфейс AI-панели
Правая панель с чатом, поддержкой вложений (текст, изображения).

Кнопки:

Save Context – сохраняет историю чата в .deepspace/context-{date}.md (без суммаризации).

Load Context – загружает MD-файл и вставляет как системное сообщение.

Swap – меняет расположение AI-панели с редактором (Zen-режим).

3.5.2. Function calling (инструменты)
При каждом запросе к AI-модели C# передаёт список доступных инструментов:

read_file(path) – возвращает содержимое (не более 15 МБ).

write_file(path, content) – создаёт/перезаписывает файл (предложение, не прямое действие).

delete_file(path) – удаляет (в корзину).

rename_file(old_path, new_path).

list_directory(path).

create_directory(path).

run_command(command) – выполняет команду в терминале (с подтверждением).

apply_patch(file_path, unified_diff) – применяет патч в формате unified diff.

Важно: Все операции изменения файловой системы (write, delete, rename, create, run) не выполняются сразу. Вместо этого C# отправляет в React событие с предложением (proposal). React открывает вкладку с Monaco в режиме diff (для изменений кода) или показывает диалог подтверждения (для команд). Только после нажатия Accept изменения применяются физически.

3.5.3. Формат патчей
Для редактирования файлов используется unified diff (как в git diff). Библиотека DiffPlex в C# умеет генерировать и применять такие патчи. Модель должна возвращать патч в виде строки. При подтверждении пользователем C# применяет патч к файлу.

3.5.4. Безопасность
Все пути проверяются на принадлежность рабочей директории (корень проекта).

Команды терминала показываются пользователю с полным текстом; выполнение только после одобрения.

Для API-ключей используется шифрование DPAPI.

3.5.5. Предупреждения о локальных моделях
В настройках приложения и при первом запуске AI выводится предупреждение:

Для использования функций редактирования файлов и терминала рекомендуется использовать коммерческие модели (DeepSeek, OpenAI, Claude). При работе с локальными моделями (Ollama, LMStudio) возможны ошибки вызова функций.

3.6. Индексация кода (RAG)
Поэтапное внедрение:

MVP (v1.0): Полнотекстовый поиск через Lucene.NET. При индексации сканируются все текстовые файлы проекта, игнорируя бинарные и служебные папки. При запросе к AI в системный промпт добавляются первые 100 строк из 3-5 наиболее релевантных файлов (по ключевым словам).

Улучшенный (v2.0): Векторный поиск с использованием ONNX-модели (например, all-MiniLM-L6-v2) и SQLite с расширением для векторов. Индексация выполняется в фоне с низким приоритетом.

Важно: Никаких вызовов внешних API для эмбеддингов – всё локально.

3.7. Управление контекстом (MD-файлы)
Сохранение: кнопка "Save Context" сохраняет историю чата в Markdown-файл с разделением по ролям (User/Assistant). Никакой автоматической суммаризации – пользователь сам может отредактировать.

Загрузка: кнопка "Load Context" загружает выбранный MD-файл и вставляет его содержимое в начало чата как системное сообщение. Это позволяет «скормить» ИИ предыдущее состояние проекта и продолжить работу.

3.8. Смена расположения панелей (Zen-режим)
Реализуется через Zustand-флаг isAiCentered и CSS Grid с тремя колонками:

normal: [FM 20%] [Editor 50%] [AI 30%]

aiCentered: [FM 20%] [AI 60%] [Editor 20%]
Переключение по кнопке в заголовке AI-панели (или двойному клику). Анимация через flex-basis или grid-template-columns с transition.

3.9. Обработка больших файлов и производительность
Лимит открытия в Monaco: 15 МБ. При превышении – предложение открыть внешним приложением.

Виртуализация списков файлов (TanStack Virtual) – обязательно.

Пагинация при загрузке содержимого папок (100 элементов за раз).

Троттлинг FileSystemWatcher – через Rx.NET, интервал 500 мс.

  1. План реализации (этапы)
    Этап 1: Базовый скелет
    Photino + WebView2, асинхронный IPC.

Однопанельный FM (локальный) + Monaco (без разделения).

Простой AI-чат (без tools) с одной моделью (DeepSeek/OpenAI).

Кастомная схема для иконок.

Базовая структура рабочей директории.

Этап 2: Многопанельность FM и редактора
Две панели FM с вкладками.

Разделение редактора (split view) через allotment.

Перетаскивание вкладок между областями.

FTP/SFTP (чтение/запись через память).

Буфер обмена (копирование файлов).

Этап 3: AI-агент
Интеграция function calling (инструменты: read, write, delete, rename, list, mkdir, run_command).

Режим предложений и подтверждения через diff-редактор (Monaco diff).

Выполнение команд терминала с подтверждением.

Вложения (текст, изображения).

Сохранение и загрузка контекста (MD).

Переключение расположения панелей.

Этап 4: Индексация и полировка
Полнотекстовый поиск Lucene.NET.

Улучшение инструментов (apply_patch с unified diff).

LSP, корзина, троттлинг FSWatcher.

Оптимизация производительности, тестирование на больших проектах.

Установщик и автообновления.

  1. Заключение
    DeepSpace v4.4 – это прагматичный, безопасный и реалистичный план создания мощной AI-ориентированной IDE. Все сложные функции разбиты на этапы, а критические риски (безопасность, производительность, работа с локальными моделями) учтены. Проект может быть реализован одним разработчиком с помощью Cursor
Edit

Pub: 01 Mar 2026 13:07 UTC

Views: 24