gskaro-v1/.skaro/docs/completed-work.md

210 lines
9.1 KiB
Markdown
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.

# Завершённая работа
## Конституция проекта
- Язык: 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