qwen-alpha 1.0.19 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +4 -4
- package/CHANGELOG.md +116 -0
- package/PUBLISH.md +93 -37
- package/README.md +189 -123
- package/bin/qwen-alpha.js +17 -13
- package/package.json +2 -2
- package/src/bot/bot.js +39 -21
- package/src/bot/handlers/admin.js +35 -29
- package/src/bot/handlers/file.js +30 -35
- package/src/bot/handlers/help.js +30 -12
- package/src/bot/handlers/instructions.js +94 -0
- package/src/bot/handlers/message.js +133 -33
- package/src/bot/handlers/reset.js +15 -16
- package/src/bot/handlers/settings.js +2 -3
- package/src/bot/handlers/start.js +58 -26
- package/src/bot/handlers/stats.js +14 -11
- package/src/bot/handlers/systemPrompt.js +132 -0
- package/src/bot/middleware/auth.js +8 -8
- package/src/bot/middleware/logging.js +23 -17
- package/src/bot/middleware/rateLimit.js +13 -15
- package/src/bot/middleware/security.js +68 -0
- package/src/bot/middleware/session.js +14 -13
- package/src/config/index.js +6 -6
- package/src/config/security.js +109 -0
- package/src/index.js +64 -16
- package/src/services/db/admins.js +39 -20
- package/src/services/db/index.js +14 -14
- package/src/services/db/sessions.js +84 -52
- package/src/services/db/stats.js +48 -45
- package/src/services/db/systemPrompt.js +92 -0
- package/src/services/db/users.js +34 -34
- package/src/services/qwenService.js +212 -95
- package/src/utils/logger.js +29 -26
- package/src/utils/paths.js +1 -1
package/.eslintrc.js
CHANGED
|
@@ -10,12 +10,12 @@ module.exports = {
|
|
|
10
10
|
},
|
|
11
11
|
rules: {
|
|
12
12
|
'no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
semi: ['error', 'always'],
|
|
14
|
+
quotes: ['warn', 'single'],
|
|
15
15
|
'no-console': 'off',
|
|
16
16
|
'no-eval': 'error',
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
eqeqeq: ['error', 'always'],
|
|
18
|
+
curly: ['error', 'all'],
|
|
19
19
|
},
|
|
20
20
|
ignorePatterns: ['node_modules/', 'logs/', '*.log'],
|
|
21
21
|
};
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Все изменения в проекте Qwen Alpha.
|
|
4
|
+
|
|
5
|
+
## [2.0.0] — 2026-03-02
|
|
6
|
+
|
|
7
|
+
### ✨ Новые возможности
|
|
8
|
+
|
|
9
|
+
- **Системные промпты** — кастомизация поведения бота под разные задачи
|
|
10
|
+
- Команда `/setSystemPrompt <промт>` — установка промпта
|
|
11
|
+
- Команда `/getSystemPrompt` — просмотр текущего промпта
|
|
12
|
+
- Команда `/resetSystemPrompt` — сброс к промпту по умолчанию
|
|
13
|
+
- Промпт сохраняется в БД и переживает перезапуск бота
|
|
14
|
+
- Автоматическая инициализация при первом запуске
|
|
15
|
+
|
|
16
|
+
- **Команда `/instructions`** — подробные инструкции по настройке
|
|
17
|
+
- Для супер-админа: настройка промпта, примеры, управление админами
|
|
18
|
+
- Для всех: работа с кодом, контекст, безопасность
|
|
19
|
+
|
|
20
|
+
- **Система безопасности**
|
|
21
|
+
- `DANGEROUS_PATTERNS` — блокировка опасных запросов (shell, файлы, секреты)
|
|
22
|
+
- `SENSITIVE_PATTERNS` — скрытие чувствительной информации в ответах
|
|
23
|
+
- Middleware `securityMiddleware` — проверка запросов ДО отправки в Qwen
|
|
24
|
+
- Фильтр `filterResponse` — очистка ответов ПОСЛЕ получения от Qwen
|
|
25
|
+
- Супер-админ обходит все проверки
|
|
26
|
+
|
|
27
|
+
- **Интеграция с Qwen Code**
|
|
28
|
+
- Передача ID пользователя в запросе
|
|
29
|
+
- Добавление информации о правах в системный промпт
|
|
30
|
+
- Разные промпты для супер-админа и обычных пользователей
|
|
31
|
+
|
|
32
|
+
- **Улучшенное форматирование**
|
|
33
|
+
- Переход на HTML вместо Markdown (стабильнее)
|
|
34
|
+
- Обработка заголовков: `#` → `**🔸 Заголовок**`
|
|
35
|
+
- Обработка цитат: `>` → обычный текст
|
|
36
|
+
- Предобработка `preprocessMarkdown()` для неподдерживаемых элементов
|
|
37
|
+
|
|
38
|
+
- **Приветствие супер-админа**
|
|
39
|
+
- Расширенное сообщение при первом `/start`
|
|
40
|
+
- Пошаговые инструкции по настройке
|
|
41
|
+
- Примеры системных промптов
|
|
42
|
+
|
|
43
|
+
### 🔧 Исправления
|
|
44
|
+
|
|
45
|
+
- Исправлены ошибки парсинга Markdown (незакрытые теги)
|
|
46
|
+
- Исправлено форматирование Prettier
|
|
47
|
+
- Увеличен таймаут Qwen: 120с → 300с (5 минут)
|
|
48
|
+
- Увеличен таймаут Telegraf: 120с → 360с (6 минут)
|
|
49
|
+
- Удалена функция `escapeMarkdownV2()` (не нужна с HTML)
|
|
50
|
+
|
|
51
|
+
### 📦 Изменения
|
|
52
|
+
|
|
53
|
+
- Версия: `1.0.20` → `2.0.0`
|
|
54
|
+
- Обновлён README.md с полным описанием v2.0
|
|
55
|
+
- Обновлён `.env.example` с новыми опциями
|
|
56
|
+
- Создан `CHANGELOG.md`
|
|
57
|
+
- Обновлён `PUBLISH.md` с инструкциями для v2.0
|
|
58
|
+
|
|
59
|
+
### 🎯 Сценарии использования
|
|
60
|
+
|
|
61
|
+
1. **Консультант магазина**
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
/setSystemPrompt Ты — консультант магазина электроники...
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
2. **Техподдержка SaaS**
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
/setSystemPrompt Ты — техподдержка CRM-системы...
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
3. **Юридический бот**
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
/setSystemPrompt Ты — юридический консультант по праву РФ...
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
4. **AI-ассистент кода**
|
|
80
|
+
```
|
|
81
|
+
/setSystemPrompt Ты — AI-ассистент для работы с кодом...
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## [1.0.20] — 2026-03-01
|
|
87
|
+
|
|
88
|
+
### Добавлено
|
|
89
|
+
|
|
90
|
+
- Базовая функциональность Telegram-бота
|
|
91
|
+
- Интеграция с Qwen Code (headless режим)
|
|
92
|
+
- Code review, генерация кода, объяснение
|
|
93
|
+
- Сессии и контекст диалога
|
|
94
|
+
- Админ-панель (`/admin`)
|
|
95
|
+
- Статистика пользователей
|
|
96
|
+
- Rate limiting
|
|
97
|
+
- Логирование (pino)
|
|
98
|
+
- JSON хранилище (~/.qwen-alpha/)
|
|
99
|
+
|
|
100
|
+
### Исправлено
|
|
101
|
+
|
|
102
|
+
- Ошибки обработки сообщений
|
|
103
|
+
- Проблемы с таймаутами
|
|
104
|
+
- Форматирование ответов
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Формат
|
|
109
|
+
|
|
110
|
+
Следуем [Semantic Versioning](https://semver.org/lang/ru/).
|
|
111
|
+
|
|
112
|
+
Формат версий: `[MAJOR.MINOR.PATCH]`
|
|
113
|
+
|
|
114
|
+
- **MAJOR** — несовместимые изменения API
|
|
115
|
+
- **MINOR** — новые возможности (обратная совместимость)
|
|
116
|
+
- **PATCH** — исправления багов (обратная совместимость)
|
package/PUBLISH.md
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
# 🚀 Инструкция по публикации и запуску Qwen Alpha
|
|
1
|
+
# 🚀 Инструкция по публикации и запуску Qwen Alpha v2.0
|
|
2
2
|
|
|
3
3
|
## ✅ Чек-лист перед публикацией
|
|
4
4
|
|
|
5
5
|
- [ ] Все зависимости установлены (`npm install`)
|
|
6
6
|
- [ ] Тесты проходят (`npm test`)
|
|
7
7
|
- [ ] Линтинг проходит (`npm run lint`)
|
|
8
|
+
- [ ] Форматирование в порядке (`npm run format:check`)
|
|
8
9
|
- [ ] README.md актуален
|
|
9
|
-
- [ ]
|
|
10
|
+
- [ ] CHANGELOG.md обновлён
|
|
11
|
+
- [ ] Version в package.json обновлён (2.0.0)
|
|
12
|
+
- [ ] .env.example актуален
|
|
10
13
|
|
|
11
14
|
---
|
|
12
15
|
|
|
@@ -30,7 +33,7 @@ npm pkg get
|
|
|
30
33
|
npm pack --dry-run
|
|
31
34
|
|
|
32
35
|
# Просмотр содержимого .tgz
|
|
33
|
-
tar -tzf qwen-alpha-
|
|
36
|
+
tar -tzf qwen-alpha-2.0.0.tgz
|
|
34
37
|
```
|
|
35
38
|
|
|
36
39
|
### 3. Публикация
|
|
@@ -39,8 +42,8 @@ tar -tzf qwen-alpha-1.0.0.tgz
|
|
|
39
42
|
# Публикация стабильной версии
|
|
40
43
|
npm publish
|
|
41
44
|
|
|
42
|
-
# Публикация
|
|
43
|
-
npm publish --tag
|
|
45
|
+
# Публикация с тегом latest (явно)
|
|
46
|
+
npm publish --tag latest
|
|
44
47
|
```
|
|
45
48
|
|
|
46
49
|
### 4. Проверка публикации
|
|
@@ -59,7 +62,7 @@ npm view qwen-alpha
|
|
|
59
62
|
### 1. Глобальная установка
|
|
60
63
|
|
|
61
64
|
```bash
|
|
62
|
-
npm install -g qwen-alpha
|
|
65
|
+
npm install -g qwen-alpha@2.0.0
|
|
63
66
|
```
|
|
64
67
|
|
|
65
68
|
### 2. Проверка CLI
|
|
@@ -85,9 +88,7 @@ qwen-alpha --token <YOUR_BOT_TOKEN>
|
|
|
85
88
|
|
|
86
89
|
---
|
|
87
90
|
|
|
88
|
-
## 🔄 Обновление версии
|
|
89
|
-
|
|
90
|
-
### SemVer (Semantic Versioning)
|
|
91
|
+
## 🔄 Обновление версии (SemVer)
|
|
91
92
|
|
|
92
93
|
```
|
|
93
94
|
MAJOR.MINOR.PATCH
|
|
@@ -100,16 +101,16 @@ MAJOR.MINOR.PATCH
|
|
|
100
101
|
### Команды для обновления версии
|
|
101
102
|
|
|
102
103
|
```bash
|
|
103
|
-
# Исправление багов (
|
|
104
|
+
# Исправление багов (2.0.0 → 2.0.1)
|
|
104
105
|
npm version patch
|
|
105
106
|
|
|
106
|
-
# Новые функции (
|
|
107
|
+
# Новые функции (2.0.0 → 2.1.0)
|
|
107
108
|
npm version minor
|
|
108
109
|
|
|
109
|
-
# Ломающие изменения (
|
|
110
|
+
# Ломающие изменения (2.0.0 → 3.0.0)
|
|
110
111
|
npm version major
|
|
111
112
|
|
|
112
|
-
# Pre-release версии (
|
|
113
|
+
# Pre-release версии (2.0.0 → 2.0.1-beta.0)
|
|
113
114
|
npm version prerelease --preid=beta
|
|
114
115
|
```
|
|
115
116
|
|
|
@@ -177,6 +178,7 @@ npm-views qwen-alpha
|
|
|
177
178
|
### Перед публикацией проверьте:
|
|
178
179
|
|
|
179
180
|
1. **Нет ли .env файлов в репозитории**
|
|
181
|
+
|
|
180
182
|
```bash
|
|
181
183
|
git ls-files | grep .env
|
|
182
184
|
```
|
|
@@ -186,11 +188,20 @@ npm-views qwen-alpha
|
|
|
186
188
|
- Или через переменную окружения `BOT_TOKEN`
|
|
187
189
|
|
|
188
190
|
3. **npm audit**
|
|
191
|
+
|
|
189
192
|
```bash
|
|
190
193
|
npm audit
|
|
191
194
|
npm audit fix
|
|
192
195
|
```
|
|
193
196
|
|
|
197
|
+
4. **Проверка .gitignore**
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
cat .gitignore
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Должны быть: `node_modules/`, `.env`, `*.log`, `~/.qwen-alpha/`
|
|
204
|
+
|
|
194
205
|
---
|
|
195
206
|
|
|
196
207
|
## 📝 Примеры использования
|
|
@@ -213,40 +224,85 @@ qwen-alpha --token <TOKEN> --log-level debug
|
|
|
213
224
|
qwen-alpha --token <TOKEN> --allowed-users 123456789,987654321
|
|
214
225
|
```
|
|
215
226
|
|
|
216
|
-
### Через
|
|
227
|
+
### Через переменную окружения
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
export BOT_TOKEN=your_token_here
|
|
231
|
+
qwen-alpha --token $BOT_TOKEN
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## 🎯 Настройка v2.0 после установки
|
|
237
|
+
|
|
238
|
+
### 1. Первый запуск
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
qwen-alpha --token <TOKEN>
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Бот автоматически:
|
|
217
245
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
246
|
+
- Инициализирует хранилище `~/.qwen-alpha/`
|
|
247
|
+
- Создаст системный промпт по умолчанию
|
|
248
|
+
- Зарегистрирует первого пользователя как супер-админа
|
|
249
|
+
|
|
250
|
+
### 2. Настройка системного промпта
|
|
251
|
+
|
|
252
|
+
В Telegram (супер-админ):
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
/setSystemPrompt Ты — консультант магазина электроники. Ассортимент: телевизоры, холодильники. Отвечай кратко.
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### 3. Проверка промпта
|
|
259
|
+
|
|
260
|
+
```
|
|
261
|
+
/getSystemPrompt
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### 4. Инструкции
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
/instructions
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### 5. Добавление администраторов
|
|
271
|
+
|
|
272
|
+
```
|
|
273
|
+
/admin add <user_id>
|
|
222
274
|
```
|
|
223
275
|
|
|
224
276
|
---
|
|
225
277
|
|
|
226
|
-
##
|
|
278
|
+
## 📚 Документация v2.0
|
|
279
|
+
|
|
280
|
+
### Новые возможности
|
|
227
281
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
282
|
+
- **Системные промпты** — кастомизация поведения бота
|
|
283
|
+
- **Команда `/instructions`** — подробные инструкции
|
|
284
|
+
- **Система безопасности** — защита от опасных запросов
|
|
285
|
+
- **Фильтрация ответов** — скрытие чувствительной информации
|
|
286
|
+
- **HTML-форматирование** — стабильная работа с Telegram
|
|
232
287
|
|
|
233
|
-
|
|
234
|
-
- Установите аватар (логотип)
|
|
235
|
-
- Настройте description и about
|
|
288
|
+
### Сценарии использования
|
|
236
289
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
290
|
+
| Сценарий | Пример промпта |
|
|
291
|
+
| -------------------- | --------------------------------------------- |
|
|
292
|
+
| Консультант магазина | `Ты — консультант магазина электроники...` |
|
|
293
|
+
| Техподдержка | `Ты — техподдержка CRM-системы...` |
|
|
294
|
+
| Юридический бот | `Ты — юридический консультант по праву РФ...` |
|
|
295
|
+
| AI-ассистент кода | `Ты — AI-ассистент для работы с кодом...` |
|
|
296
|
+
|
|
297
|
+
---
|
|
241
298
|
|
|
242
|
-
|
|
243
|
-
- Добавьте бота в группу
|
|
244
|
-
- Проверьте работу `/qwen` команд
|
|
299
|
+
## 🔗 Ссылки
|
|
245
300
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
301
|
+
- **Репозиторий**: https://github.com/JeBance/QwenAlpha
|
|
302
|
+
- **NPM**: https://www.npmjs.com/package/qwen-alpha
|
|
303
|
+
- **Issues**: https://github.com/JeBance/QwenAlpha/issues
|
|
304
|
+
- **CHANGELOG**: https://github.com/JeBance/QwenAlpha/blob/main/CHANGELOG.md
|
|
249
305
|
|
|
250
306
|
---
|
|
251
307
|
|
|
252
|
-
**Удачи с
|
|
308
|
+
**Удачи с публикацией v2.0! 🚀**
|