# Завершённая работа ## Конституция проекта - Язык: Go 1.25.6 - Рамка: нет определённой рамки (голый Go) - База данных: Нет базы данных - Инфраструктура: Web сервер на Go ## Кодинг Стандарты - Линтер: gofmt - Форматтер: gofmt - Название: ниже указанные конвенции - Максимальная длина функции: нет определённой максимальной длины - Максимальная вложенность: нет определённой максимальной вложенности ## Тестирование - Минимальный порог покрытия: нет определённого минимума покрытия - Фреймворк: тесты написаны в Go, используется стандартная библиотека - Требования: тесты должны быть написаны для каждого функционала и проверить все важные сценарии ## Ограничения - Не использовать секреты в коде (хранить их в .skaro/secrets.yaml) - Не использовать неинициализированные переменные - Не использовать глобальные переменные, если это возможно - Не использовать устаревшие функции и пакеты ## Безопасность - Авторизация: нет авторизации в коде (доступ к API ограничен по IP) - Валидация ввода: проверяется валидность данных перед обработкой - Секреты: хранятся в .skaro/secrets.yaml ## Правила для работы с LLM - Не оставлять пустые stubs без явного TODO с обоснованием - Не копировать код: предпочитать реюза и чистую абстракцию - Не делать неявные допущения — если не уверен, спрашивать - Всегда генерировать AI_NOTES.md по шаблону - Следовать кодинг стилю описанному выше ## Архитектура проекта ### Обзор Монолитная архитектура. ### Компоненты - `cmd/gskaro` — основной модуль, содержит главный файл `main.go`, отвечающий за запуск сервера. - `internal/llm` — пакет, содержащий модели, состояния и потоков для работы с LLM (Language Learning Machine). - `internal/server` — пакет, содержащий серверный код, включая обработчики и сервер. - `internal/server/web` — подпакет, содержащий HTML файлы и Go-код для работы с веб-интерфейсом. ### Данные хранения Не используется база данных. ### Связь Используется REST (Web сервер на Go). ### Инфраструктура Не обнаружено конкретной инфраструктуры, но присутствуют скрипты `build.bat`, `init-gskaro.bat` и `start-gskaro.bat`. ### Внешние интеграции Нет обнаруженных внешних интеграций третьих услуг или API. ## Безопасность - Авторизация отсутствует, доступ к API ограничен по IP. - Валидация ввода происходит перед обработкой. - Секреты хранятся в `.skaro/secrets.yaml`. ## Известные торговые компромиссы Не обнаружено явных торговых компромиссов, но присутствует отсутствие авторизации и использование монолитной архитектуры. ## Структура репозитория ``` .git/ .gitignore .skaro/ .skaroignore build.bat cmd/ cmd/gskaro/ cmd/gskaro/main.go go.mod init-gskaro.bat internal/ internal/llm/ internal/llm/models.go internal/llm/state.go internal/llm/stream.go internal/server/ internal/server/handlers_llm.go internal/server/server.go internal/server/web/ internal/server/web/index.html internal/server/web_static.go README.md start-gskaro.bat ``` ## Источники файлов ```.gitignore # ── Skaro (auto-generated, do not remove this marker) ── # This section is managed by `skaro init`. Do NOT delete it. # You may add your own rules below the closing marker. # # Secrets — API keys, never commit! .skaro/secrets.yaml # Usage tracking — local stats, not project artifacts .skaro/token_usage.yaml .skaro/usage_log.jsonl # ── /Skaro ───────────────────────────────────────────── ``` ```.skaroignore # .skaroignore — файлы исключенные от LLM анализа во время `skaro init` # Синтаксис идентичен .gitignore. # Добавьте пути, содержащие чувствительную, приватную или неактуальную информацию. # # ── Секреты & кредиентали ────────────────────────────── .env .env.* !.env.example *.pem *.key *.p12 *.pfx secrets.* credentials.* *_secret* *_credentials* # ── Частные данные & дампы ─────────────────────────────── *.sql *.dump *.db *.sqlite *.sqlite3 data/ datasets/ fixtures/private/ # ── Генерированные & вендированные ────────────────────── vendor/ third_party/ generated/ auto_generated/ # ── Крупные ассеты ─────────────────────────────────────── assets/ media/ uploads/ storage/ ``` ```build.bat go build -o gskaro-v1.exe ./cmd/gskaro pause ``` ```cmd/gskaro/main.go package main import "gskaro-v1/internal/server" func main() { server.Start() } ``` ```go.mod module gskaro-v1 go 1.25.6 ``` ```init-gskaro.bat gskaro-v1.exe init pause init ``` ### Функциональная область LLM Console - **LLM консоль**: веб-интерфейс для работы с моделями языкового обучения машин (LLM) (`internal/server/web/index.html`, `internal/server/handlers_llm.go`) - Статус: complete - Детали: позволяет выбирать модель, вводить запросы и просматривать результаты работы модели ### Функциональная область LLM Models - **LLM Модели**: список доступных моделей языкового обучения машин (`internal/llm/models.go`, `internal/server/handlers_llm.go`) - Статус: complete - Детали: позволяет выбирать модель для работы с LLM Console ### Функциональная область LLM History - **История LLM**: просмотр истории запросов и ответов модели (`internal/llm/state.go`, `internal/server/handlers_llm.go`) - Статус: complete - Детали: позволяет просматривать историю работы модели с LLM Console ### Функциональная область LLM Streaming - **Стриминг ответов**: получение результатов работы модели по частям (`internal/llm/stream.go`, `internal/server/handlers_llm.go`) - Статус: complete - Детали: используется для обработки длинных ответов модели ### Функциональная область Web Server - **Web сервер**: веб-сервер на Go, обеспечивающий доступ к LLM Console и другим функционалам (`internal/server/server.go`, `internal/server/web_static.go`) - Статус: complete - Детали: позволяет запустить веб-сервер с различными ресурсами, включая HTML и Go код для LLM Console ### Функциональная область Build Scripts - **Скрипты сборки**: скрипты для сборки и запуска проекта (`build.bat`, `init-gskaro.bat`, `start-gskaro.bat`) - Статус: complete - Детали: позволяют собрать и запустить веб-сервер на Windows