mirror of
https://github.com/Direct-Dev-Ru/go-lcg.git
synced 2025-11-15 17:20:00 +00:00
release v2.0.1
This commit is contained in:
@@ -1,33 +1,53 @@
|
|||||||
archives:
|
# This is an example .goreleaser.yml file with some sensible defaults.
|
||||||
- format: tar.gz
|
# Make sure to check the documentation at https://goreleaser.com
|
||||||
|
|
||||||
builds:
|
|
||||||
- binary: lcg
|
|
||||||
env:
|
|
||||||
- CGO_ENABLED=0
|
|
||||||
goarch:
|
|
||||||
- amd64
|
|
||||||
- arm64
|
|
||||||
- arm
|
|
||||||
goos:
|
|
||||||
- linux
|
|
||||||
- darwin
|
|
||||||
|
|
||||||
changelog:
|
|
||||||
filters:
|
|
||||||
exclude:
|
|
||||||
- '^docs:'
|
|
||||||
- '^test:'
|
|
||||||
sort: asc
|
|
||||||
|
|
||||||
checksum:
|
|
||||||
name_template: 'checksums.txt'
|
|
||||||
|
|
||||||
release:
|
|
||||||
draft: true
|
|
||||||
|
|
||||||
snapshot:
|
|
||||||
name_template: "{{ incpatch .Version }}-next"
|
|
||||||
|
|
||||||
|
# The lines below are called `modelines`. See `:help modeline`
|
||||||
|
# Feel free to remove those if you don't want/need to use them.
|
||||||
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
|
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
|
||||||
# vim: set ts=2 sw=2 tw=0 fo=cnqoj
|
# vim: set ts=2 sw=2 tw=0 fo=cnqoj
|
||||||
|
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
before:
|
||||||
|
hooks:
|
||||||
|
# You may remove this if you don't use go modules.
|
||||||
|
- go mod tidy
|
||||||
|
# you may remove this if you don't need go generate
|
||||||
|
- go generate ./...
|
||||||
|
|
||||||
|
builds:
|
||||||
|
- env:
|
||||||
|
- CGO_ENABLED=0
|
||||||
|
goos:
|
||||||
|
- linux
|
||||||
|
- windows
|
||||||
|
- darwin
|
||||||
|
|
||||||
|
archives:
|
||||||
|
- formats: [tar.gz]
|
||||||
|
# this name template makes the OS and Arch compatible with the results of `uname`.
|
||||||
|
name_template: >-
|
||||||
|
{{ .ProjectName }}_
|
||||||
|
{{- title .Os }}_
|
||||||
|
{{- if eq .Arch "amd64" }}x86_64
|
||||||
|
{{- else if eq .Arch "386" }}i386
|
||||||
|
{{- else }}{{ .Arch }}{{ end }}
|
||||||
|
{{- if .Arm }}v{{ .Arm }}{{ end }}
|
||||||
|
# use zip for windows archives
|
||||||
|
format_overrides:
|
||||||
|
- goos: windows
|
||||||
|
formats: [zip]
|
||||||
|
|
||||||
|
changelog:
|
||||||
|
sort: asc
|
||||||
|
filters:
|
||||||
|
exclude:
|
||||||
|
- "^docs:"
|
||||||
|
- "^test:"
|
||||||
|
|
||||||
|
release:
|
||||||
|
footer: >-
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Released by [GoReleaser](https://github.com/goreleaser/goreleaser).
|
||||||
|
|||||||
33
.goreleaser.yaml.old
Normal file
33
.goreleaser.yaml.old
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
archives:
|
||||||
|
- format: tar.gz
|
||||||
|
|
||||||
|
builds:
|
||||||
|
- binary: lcg
|
||||||
|
env:
|
||||||
|
- CGO_ENABLED=0
|
||||||
|
goarch:
|
||||||
|
- amd64
|
||||||
|
- arm64
|
||||||
|
- arm
|
||||||
|
goos:
|
||||||
|
- linux
|
||||||
|
- darwin
|
||||||
|
|
||||||
|
changelog:
|
||||||
|
filters:
|
||||||
|
exclude:
|
||||||
|
- '^docs:'
|
||||||
|
- '^test:'
|
||||||
|
sort: asc
|
||||||
|
|
||||||
|
checksum:
|
||||||
|
name_template: 'checksums.txt'
|
||||||
|
|
||||||
|
release:
|
||||||
|
draft: true
|
||||||
|
|
||||||
|
snapshot:
|
||||||
|
name_template: "{{ incpatch .Version }}-next"
|
||||||
|
|
||||||
|
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
|
||||||
|
# vim: set ts=2 sw=2 tw=0 fo=cnqoj
|
||||||
@@ -181,3 +181,7 @@ curl -sS -X POST \
|
|||||||
|
|
||||||
- Добавление новых полей в ответах, не используемых клиентом, допустимо при сохранении существующих.
|
- Добавление новых полей в ответах, не используемых клиентом, допустимо при сохранении существующих.
|
||||||
- Переименование или удаление полей `response` (proxy) и `message.content` (ollama) нарушит совместимость.
|
- Переименование или удаление полей `response` (proxy) и `message.content` (ollama) нарушит совместимость.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Дополнительно: для HTTP API веб‑сервера (эндпоинт `POST /execute`, только `curl`) см. `API_GUIDE.md` с примерами и подробной схемой запроса/ответа.
|
||||||
|
|||||||
@@ -1,6 +1,34 @@
|
|||||||
CHANGELOG
|
CHANGELOG
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
Версия 2.0.1 (2025-10-22)
|
||||||
|
=========================
|
||||||
|
|
||||||
|
## ✨ ИЗМЕНЕНИЯ И НОВОЕ
|
||||||
|
|
||||||
|
- 📱 Веб‑интерфейс: улучшена мобильная адаптация (кнопки, шрифты, отступы, верстка)
|
||||||
|
- 🧭 Учет `prefers-reduced-motion` для снижения анимаций при необходимости
|
||||||
|
- 🔌 Добавлен публичный REST эндпоинт `POST /execute` для программного доступа
|
||||||
|
- ⚠️ Ограничение безопасности: принимаются только запросы от `curl` (User-Agent)
|
||||||
|
- 📖 Подробности и примеры: см. `API_GUIDE.md`
|
||||||
|
|
||||||
|
## 🐛 ИСПРАВЛЕНИЯ И УЛУЧШЕНИЯ
|
||||||
|
|
||||||
|
- 🔧 Рефакторинг HTTP‑сервера: вынесен в пакет `serve/*` для лучшей поддерживаемости
|
||||||
|
- 🗑️ Удалены устаревшие файлы: `cmd/serve.go`, `_main.go`
|
||||||
|
- 🛠️ Скрипты релиза: небольшие правки в `shell-code/pre-release.sh` и `shell-code/release.py`
|
||||||
|
|
||||||
|
## 📚 ДОКУМЕНТАЦИЯ
|
||||||
|
|
||||||
|
- ➕ Добавлен `API_GUIDE.md` (описание `/execute`, примеры `curl`/Python)
|
||||||
|
- 📝 Обновлены `README.md` и `USAGE_GUIDE.md` (актуализация про мобильную версию и API)
|
||||||
|
- 🔗 В `API_CONTRACT.md` добавлена ссылка на `API_GUIDE.md` (HTTP API веб‑сервера)
|
||||||
|
|
||||||
|
## ♻️ СОВМЕСТИМОСТЬ
|
||||||
|
|
||||||
|
- ✅ Обратная совместимость сохранена; CLI и провайдеры (proxy/ollama) без изменений
|
||||||
|
- 🚫 Миграция не требуется
|
||||||
|
|
||||||
Версия 2.0.0 (2025-01-19)
|
Версия 2.0.0 (2025-01-19)
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,11 @@ Explanations:
|
|||||||
|
|
||||||
Clipboard support requires `xclip` or `xsel`.
|
Clipboard support requires `xclip` or `xsel`.
|
||||||
|
|
||||||
|
## What's new in 2.0.1
|
||||||
|
|
||||||
|
- Mobile UI improvements: better responsiveness (buttons, fonts, spacing) and reduced motion support
|
||||||
|
- Public REST endpoint: `POST /execute` (curl-only) for programmatic access — see `API_GUIDE.md`
|
||||||
|
|
||||||
## Environment
|
## Environment
|
||||||
|
|
||||||
- `LCG_PROVIDER` (default `ollama`) — provider type: `ollama` or `proxy`
|
- `LCG_PROVIDER` (default `ollama`) — provider type: `ollama` or `proxy`
|
||||||
|
|||||||
@@ -21,7 +21,8 @@ sudo apt-get install xsel
|
|||||||
Сборка из исходников:
|
Сборка из исходников:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone --depth 1 https://github.com/Direct-Dev-Ru/linux-command-gpt.git ~/.linux-command-gpt
|
|
||||||
|
git clone --depth 1 https://github.com/Direct-Dev-Ru/go-lcg.git ~/.linux-command-gpt
|
||||||
cd ~/.linux-command-gpt
|
cd ~/.linux-command-gpt
|
||||||
go build -o lcg
|
go build -o lcg
|
||||||
|
|
||||||
@@ -59,6 +60,12 @@ lcg --file /path/to/context.txt "хочу вывести список дирек
|
|||||||
Действия: (c)копировать, (s)сохранить, (r)перегенерировать, (e)выполнить, (v|vv|vvv)подробно, (n)ничего:
|
Действия: (c)копировать, (s)сохранить, (r)перегенерировать, (e)выполнить, (v|vv|vvv)подробно, (n)ничего:
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Что нового в 2.0.1
|
||||||
|
|
||||||
|
- Улучшена мобильная версия веб‑интерфейса: корректные размеры кнопок, шрифтов и отступов; адаптивная верстка
|
||||||
|
- Учитывается `prefers-reduced-motion` для снижения анимаций, если это задано в системе
|
||||||
|
- Добавлен REST эндпоинт `POST /execute` (только через curl) — см. подробности и примеры в `API_GUIDE.md`
|
||||||
|
|
||||||
## Переменные окружения
|
## Переменные окружения
|
||||||
|
|
||||||
Можно настроить поведение без изменения командной строки.
|
Можно настроить поведение без изменения командной строки.
|
||||||
@@ -75,6 +82,7 @@ lcg --file /path/to/context.txt "хочу вывести список дирек
|
|||||||
| `LCG_PROVIDER` | `ollama` | Тип провайдера: `ollama` или `proxy`. |
|
| `LCG_PROVIDER` | `ollama` | Тип провайдера: `ollama` или `proxy`. |
|
||||||
| `LCG_JWT_TOKEN` | пусто | JWT токен для `proxy` провайдера (альтернатива — файл `~/.proxy_jwt_token`). |
|
| `LCG_JWT_TOKEN` | пусто | JWT токен для `proxy` провайдера (альтернатива — файл `~/.proxy_jwt_token`). |
|
||||||
| `LCG_PROMPT_ID` | `1` | ID системного промпта по умолчанию. |
|
| `LCG_PROMPT_ID` | `1` | ID системного промпта по умолчанию. |
|
||||||
|
| `LCG_BROWSER_PATH` | пусто | Путь к браузеру для автооткрытия (`--browser`). |
|
||||||
| `LCG_TIMEOUT` | `300` | Таймаут запроса в секундах. |
|
| `LCG_TIMEOUT` | `300` | Таймаут запроса в секундах. |
|
||||||
| `LCG_RESULT_HISTORY` | `$(LCG_RESULT_FOLDER)/lcg_history.json` | Путь к JSON‑истории запросов. |
|
| `LCG_RESULT_HISTORY` | `$(LCG_RESULT_FOLDER)/lcg_history.json` | Путь к JSON‑истории запросов. |
|
||||||
| `LCG_PROMPT_FOLDER` | `~/.config/lcg/gpt_sys_prompts` | Папка для хранения системных промптов. |
|
| `LCG_PROMPT_FOLDER` | `~/.config/lcg/gpt_sys_prompts` | Папка для хранения системных промптов. |
|
||||||
@@ -109,7 +117,7 @@ lcg [глобальные опции] <описание команды>
|
|||||||
- `--file, -f string` — прочитать часть запроса из файла и добавить к описанию.
|
- `--file, -f string` — прочитать часть запроса из файла и добавить к описанию.
|
||||||
- `--sys, -s string` — системный промпт (содержимое или ID как строка). Если не задан, используется `--prompt-id` или `LCG_PROMPT`.
|
- `--sys, -s string` — системный промпт (содержимое или ID как строка). Если не задан, используется `--prompt-id` или `LCG_PROMPT`.
|
||||||
- `--prompt-id, --pid int` — ID системного промпта (1–5 для стандартных, либо ваш кастомный ID).
|
- `--prompt-id, --pid int` — ID системного промпта (1–5 для стандартных, либо ваш кастомный ID).
|
||||||
- `--timeout, -t int` — таймаут запроса в секундах (по умолчанию 300).
|
- `--timeout, -t int` — таймаут запроса в секундах (по умолчанию 120; через `LCG_TIMEOUT` — 300).
|
||||||
- `--no-history, --nh` — отключить запись/обновление истории для текущего запуска.
|
- `--no-history, --nh` — отключить запись/обновление истории для текущего запуска.
|
||||||
- `--debug, -d` — показать отладочную информацию (параметры запроса и промпты).
|
- `--debug, -d` — показать отладочную информацию (параметры запроса и промпты).
|
||||||
- `--version, -v` — вывести версию.
|
- `--version, -v` — вывести версию.
|
||||||
@@ -133,10 +141,11 @@ lcg [глобальные опции] <описание команды>
|
|||||||
- `lcg prompts list --full` (`-f`) — полный вывод содержимого без обрезки длинных строк.
|
- `lcg prompts list --full` (`-f`) — полный вывод содержимого без обрезки длинных строк.
|
||||||
- `lcg prompts add` (`-a`) — добавить пользовательский промпт (по шагам в интерактиве).
|
- `lcg prompts add` (`-a`) — добавить пользовательский промпт (по шагам в интерактиве).
|
||||||
- `lcg prompts delete <id>` (`-d`) — удалить пользовательский промпт по ID (>5).
|
- `lcg prompts delete <id>` (`-d`) — удалить пользовательский промпт по ID (>5).
|
||||||
- `lcg test-prompt <prompt-id> <описание>` (`-tp`): показать детали выбранного системного промпта и протестировать его на заданном описании.
|
- `lcg test-prompt <prompt-id> <описание>` (алиас: `tp`): показать детали выбранного системного промпта и протестировать его на заданном описании.
|
||||||
- `lcg serve`: запустить HTTP сервер для просмотра сохраненных результатов:
|
- `lcg serve`: запустить HTTP сервер для просмотра сохраненных результатов:
|
||||||
- `--port, -p` — порт сервера (по умолчанию из `LCG_SERVER_PORT`)
|
- `--port, -p` — порт сервера (по умолчанию из `LCG_SERVER_PORT`)
|
||||||
- `--host, -H` — хост сервера (по умолчанию из `LCG_SERVER_HOST`)
|
- `--host, -H` — хост сервера (по умолчанию из `LCG_SERVER_HOST`)
|
||||||
|
- `--browser, -b` — открыть браузер автоматически после старта
|
||||||
|
|
||||||
### Подробные объяснения (v/vv/vvv)
|
### Подробные объяснения (v/vv/vvv)
|
||||||
|
|
||||||
@@ -249,6 +258,9 @@ lcg serve --port 9090
|
|||||||
# Запуск на другом хосте
|
# Запуск на другом хосте
|
||||||
lcg serve --host 0.0.0.0 --port 8080
|
lcg serve --host 0.0.0.0 --port 8080
|
||||||
|
|
||||||
|
# Автооткрытие браузера (опционально)
|
||||||
|
lcg serve --browser
|
||||||
|
|
||||||
# Использование переменных окружения
|
# Использование переменных окружения
|
||||||
export LCG_SERVER_PORT=3000
|
export LCG_SERVER_PORT=3000
|
||||||
export LCG_SERVER_HOST=0.0.0.0
|
export LCG_SERVER_HOST=0.0.0.0
|
||||||
@@ -277,6 +289,11 @@ lcg serve
|
|||||||
- `## Command` — первая сгенерированная команда.
|
- `## Command` — первая сгенерированная команда.
|
||||||
- `## Explanation and Alternatives (model: <MODEL>)` — подробное объяснение и альтернативы.
|
- `## Explanation and Alternatives (model: <MODEL>)` — подробное объяснение и альтернативы.
|
||||||
|
|
||||||
|
### Браузер
|
||||||
|
|
||||||
|
- По умолчанию UI не открывается автоматически. Для автооткрытия используйте `--browser`.
|
||||||
|
- Путь к конкретному браузеру можно задать переменной `LCG_BROWSER_PATH`.
|
||||||
|
|
||||||
## Выполнение сгенерированной команды
|
## Выполнение сгенерированной команды
|
||||||
|
|
||||||
Действие `e` запустит команду через `bash -c`. Перед запуском потребуется подтверждение `y/yes`. Всегда проверяйте команду вручную, особенно при операциях с файлами и сетью.
|
Действие `e` запустит команду через `bash -c`. Перед запуском потребуется подтверждение `y/yes`. Всегда проверяйте команду вручную, особенно при операциях с файлами и сетью.
|
||||||
@@ -345,7 +362,7 @@ lcg serve --host 0.0.0.0 --port 8080
|
|||||||
|
|
||||||
## История
|
## История
|
||||||
|
|
||||||
`lcg history` выводит историю текущего процесса (не сохраняется между запусками, максимум 100 записей):
|
`lcg history` выводит историю из JSON‑файла (`LCG_RESULT_HISTORY`), сохраняется между запусками:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
lcg history list
|
lcg history list
|
||||||
@@ -388,3 +405,20 @@ lcg history list
|
|||||||
## Лицензия и исходники
|
## Лицензия и исходники
|
||||||
|
|
||||||
См. README и репозиторий проекта. Предложения и баг‑репорты приветствуются в Issues.
|
См. README и репозиторий проекта. Предложения и баг‑репорты приветствуются в Issues.
|
||||||
|
|
||||||
|
## Доступ к локальному API
|
||||||
|
|
||||||
|
Эндпоинт: `POST /execute` (только через curl).
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Запустить сервер
|
||||||
|
lcg serve
|
||||||
|
|
||||||
|
# Выполнить запрос
|
||||||
|
curl -X POST http://localhost:8080/execute \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-A curl \
|
||||||
|
-d '{"prompt": "create directory test", "verbose": "vv"}'
|
||||||
|
```
|
||||||
|
|
||||||
|
Подробности и примеры: `API_GUIDE.md`.
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
v2.0.0
|
v2.0.1
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -8,7 +8,7 @@ require gopkg.in/yaml.v3 v3.0.1
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.5 //indirect
|
github.com/cpuguy83/go-md2man/v2 v2.0.5 //indirect
|
||||||
github.com/russross/blackfriday/v2 v2.1.0
|
github.com/russross/blackfriday/v2 v2.1.0
|
||||||
github.com/urfave/cli/v2 v2.27.5
|
github.com/urfave/cli/v2 v2.27.5
|
||||||
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect
|
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect
|
||||||
)
|
)
|
||||||
|
|||||||
1
go.sum
1
go.sum
@@ -8,6 +8,7 @@ github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w=
|
|||||||
github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ=
|
github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ=
|
||||||
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4=
|
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4=
|
||||||
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM=
|
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM=
|
||||||
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
|||||||
Reference in New Issue
Block a user