# Завершённая работа

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