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:
|
||||
- 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"
|
||||
# This is an example .goreleaser.yml file with some sensible defaults.
|
||||
# Make sure to check the documentation at https://goreleaser.com
|
||||
|
||||
# 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
|
||||
# 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) нарушит совместимость.
|
||||
|
||||
---
|
||||
|
||||
Дополнительно: для HTTP API веб‑сервера (эндпоинт `POST /execute`, только `curl`) см. `API_GUIDE.md` с примерами и подробной схемой запроса/ответа.
|
||||
|
||||
@@ -1,6 +1,34 @@
|
||||
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)
|
||||
=========================
|
||||
|
||||
|
||||
@@ -35,6 +35,11 @@ Explanations:
|
||||
|
||||
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
|
||||
|
||||
- `LCG_PROVIDER` (default `ollama`) — provider type: `ollama` or `proxy`
|
||||
|
||||
@@ -21,7 +21,8 @@ sudo apt-get install xsel
|
||||
Сборка из исходников:
|
||||
|
||||
```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
|
||||
go build -o lcg
|
||||
|
||||
@@ -59,6 +60,12 @@ lcg --file /path/to/context.txt "хочу вывести список дирек
|
||||
Действия: (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_JWT_TOKEN` | пусто | JWT токен для `proxy` провайдера (альтернатива — файл `~/.proxy_jwt_token`). |
|
||||
| `LCG_PROMPT_ID` | `1` | ID системного промпта по умолчанию. |
|
||||
| `LCG_BROWSER_PATH` | пусто | Путь к браузеру для автооткрытия (`--browser`). |
|
||||
| `LCG_TIMEOUT` | `300` | Таймаут запроса в секундах. |
|
||||
| `LCG_RESULT_HISTORY` | `$(LCG_RESULT_FOLDER)/lcg_history.json` | Путь к JSON‑истории запросов. |
|
||||
| `LCG_PROMPT_FOLDER` | `~/.config/lcg/gpt_sys_prompts` | Папка для хранения системных промптов. |
|
||||
@@ -109,7 +117,7 @@ lcg [глобальные опции] <описание команды>
|
||||
- `--file, -f string` — прочитать часть запроса из файла и добавить к описанию.
|
||||
- `--sys, -s string` — системный промпт (содержимое или ID как строка). Если не задан, используется `--prompt-id` или `LCG_PROMPT`.
|
||||
- `--prompt-id, --pid int` — ID системного промпта (1–5 для стандартных, либо ваш кастомный ID).
|
||||
- `--timeout, -t int` — таймаут запроса в секундах (по умолчанию 300).
|
||||
- `--timeout, -t int` — таймаут запроса в секундах (по умолчанию 120; через `LCG_TIMEOUT` — 300).
|
||||
- `--no-history, --nh` — отключить запись/обновление истории для текущего запуска.
|
||||
- `--debug, -d` — показать отладочную информацию (параметры запроса и промпты).
|
||||
- `--version, -v` — вывести версию.
|
||||
@@ -133,10 +141,11 @@ lcg [глобальные опции] <описание команды>
|
||||
- `lcg prompts list --full` (`-f`) — полный вывод содержимого без обрезки длинных строк.
|
||||
- `lcg prompts add` (`-a`) — добавить пользовательский промпт (по шагам в интерактиве).
|
||||
- `lcg prompts delete <id>` (`-d`) — удалить пользовательский промпт по ID (>5).
|
||||
- `lcg test-prompt <prompt-id> <описание>` (`-tp`): показать детали выбранного системного промпта и протестировать его на заданном описании.
|
||||
- `lcg test-prompt <prompt-id> <описание>` (алиас: `tp`): показать детали выбранного системного промпта и протестировать его на заданном описании.
|
||||
- `lcg serve`: запустить HTTP сервер для просмотра сохраненных результатов:
|
||||
- `--port, -p` — порт сервера (по умолчанию из `LCG_SERVER_PORT`)
|
||||
- `--host, -H` — хост сервера (по умолчанию из `LCG_SERVER_HOST`)
|
||||
- `--browser, -b` — открыть браузер автоматически после старта
|
||||
|
||||
### Подробные объяснения (v/vv/vvv)
|
||||
|
||||
@@ -249,6 +258,9 @@ lcg serve --port 9090
|
||||
# Запуск на другом хосте
|
||||
lcg serve --host 0.0.0.0 --port 8080
|
||||
|
||||
# Автооткрытие браузера (опционально)
|
||||
lcg serve --browser
|
||||
|
||||
# Использование переменных окружения
|
||||
export LCG_SERVER_PORT=3000
|
||||
export LCG_SERVER_HOST=0.0.0.0
|
||||
@@ -277,6 +289,11 @@ lcg serve
|
||||
- `## Command` — первая сгенерированная команда.
|
||||
- `## Explanation and Alternatives (model: <MODEL>)` — подробное объяснение и альтернативы.
|
||||
|
||||
### Браузер
|
||||
|
||||
- По умолчанию UI не открывается автоматически. Для автооткрытия используйте `--browser`.
|
||||
- Путь к конкретному браузеру можно задать переменной `LCG_BROWSER_PATH`.
|
||||
|
||||
## Выполнение сгенерированной команды
|
||||
|
||||
Действие `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
|
||||
lcg history list
|
||||
@@ -388,3 +405,20 @@ lcg history list
|
||||
## Лицензия и исходники
|
||||
|
||||
См. 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 (
|
||||
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/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/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=
|
||||
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/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
|
||||
Reference in New Issue
Block a user