@vint.tri/report_gen_mcp 1.5.0 → 1.5.1
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/NEURAL_NETWORK_FIX_SUMMARY.md +31 -0
- package/PUBLICATION_CONFIRMATION_V1.5.1.md +26 -0
- package/TODO.md +14 -13
- package/UPDATED_NEURAL_NETWORK_INSTRUCTIONS.md +171 -33
- package/VERSION_1.5.1_RELEASE_NOTES.md +29 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/test_neural_network_fix.js +130 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Исправление ошибок валидации при генерации отчетов
|
|
2
|
+
|
|
3
|
+
## Проблема
|
|
4
|
+
При генерации отчетов возникали ошибки валидации со следующими сообщениями:
|
|
5
|
+
1. `Expected string, received object` для `elements.comparison_chart.config.options.title`
|
|
6
|
+
2. `Invalid literal value, expected "pollinations"` для `elements.comparison_chart.type`
|
|
7
|
+
3. `Required` поля `prompt` или `url` в зависимости от типа элемента
|
|
8
|
+
|
|
9
|
+
## Причина ошибок
|
|
10
|
+
Ошибки возникали из-за неправильного форматирования параметров в инструкциях для нейросети:
|
|
11
|
+
1. Значение `options.title` передавалось как объект вместо строки
|
|
12
|
+
2. Тип элемента `comparison_chart` указывался как `bar` вместо допустимых значений `pollinations` или `url`
|
|
13
|
+
3. Отсутствовали обязательные поля для соответствующих типов элементов
|
|
14
|
+
|
|
15
|
+
## Решение
|
|
16
|
+
Были обновлены инструкции для нейросети в файле `UPDATED_NEURAL_NETWORK_INSTRUCTIONS.md` с четким описанием:
|
|
17
|
+
1. Правильных типов элементов (`bar`, `line`, `pie`, `doughnut`, `radar`, `polarArea` для диаграмм и `pollinations`, `url` для изображений)
|
|
18
|
+
2. Формата значения `options.title` (строка, а не объект)
|
|
19
|
+
3. Обязательных полей для каждого типа элемента
|
|
20
|
+
4. Примеров корректного использования всех типов элементов
|
|
21
|
+
|
|
22
|
+
## Тестирование
|
|
23
|
+
Создан и успешно выполнен тест `test_neural_network_fix.js`, который проверяет:
|
|
24
|
+
1. Корректную работу с диаграммами с правильным форматом заголовка
|
|
25
|
+
2. Корректную работу с изображениями типа `pollinations`
|
|
26
|
+
3. Корректную работу с изображениями типа `url`
|
|
27
|
+
4. Отклонение неправильного формата заголовка (объект вместо строки)
|
|
28
|
+
5. Отклонение неправильного типа элемента
|
|
29
|
+
|
|
30
|
+
## Результат
|
|
31
|
+
Все тесты прошли успешно, что подтверждает исправление ошибок валидации и корректную работу системы генерации отчетов с обновленными инструкциями для нейросети.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Publication Confirmation - Version 1.5.1
|
|
2
|
+
|
|
3
|
+
This document confirms that version 1.5.1 of the report_gen_mcp package has been prepared for publication.
|
|
4
|
+
|
|
5
|
+
## Changes Included
|
|
6
|
+
|
|
7
|
+
1. Updated package version to 1.5.1 in package.json
|
|
8
|
+
2. Updated MCP server version to 1.5.1 in src/index.ts
|
|
9
|
+
3. Rebuilt distribution files with updated version information
|
|
10
|
+
4. Created release notes (VERSION_1.5.1_RELEASE_NOTES.md)
|
|
11
|
+
|
|
12
|
+
## Files Ready for Publication
|
|
13
|
+
|
|
14
|
+
- package.json (updated version)
|
|
15
|
+
- src/index.ts (updated version)
|
|
16
|
+
- dist/index.js (rebuilt with updated version)
|
|
17
|
+
- VERSION_1.5.1_RELEASE_NOTES.md (new release notes)
|
|
18
|
+
|
|
19
|
+
## Verification Steps Completed
|
|
20
|
+
|
|
21
|
+
- [x] Version numbers updated consistently across all files
|
|
22
|
+
- [x] Project rebuilt successfully
|
|
23
|
+
- [x] Release notes created
|
|
24
|
+
- [x] All existing functionality preserved
|
|
25
|
+
|
|
26
|
+
The package is now ready for publication to npm.
|
package/TODO.md
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Fix Report Generation Errors - TODO List
|
|
2
2
|
|
|
3
|
-
##
|
|
4
|
-
-
|
|
5
|
-
|
|
6
|
-
-
|
|
3
|
+
## Task Analysis
|
|
4
|
+
The error occurs when generating reports with the `generate-report` tool. The validation is failing for `comparison_chart` elements with issues related to:
|
|
5
|
+
1. Expected string for `elements.comparison_chart.config.options.title` but received object
|
|
6
|
+
2. Invalid literal value for `elements.comparison_chart.type` - expected "pollinations" or "url" but received "bar"
|
|
7
|
+
3. Missing required fields like `prompt` or `url` depending on the type
|
|
7
8
|
|
|
8
|
-
##
|
|
9
|
-
- [x] Modify src/index.ts to start HTTP server when MCP server starts
|
|
10
|
-
- [x] Ensure REPORTS_DIR environment variable is used for serving files
|
|
11
|
-
- [x] Update documentation if needed
|
|
12
|
-
- [x] Test the implementation
|
|
9
|
+
## Action Items
|
|
13
10
|
|
|
14
|
-
|
|
15
|
-
- [
|
|
16
|
-
- [
|
|
11
|
+
- [ ] Analyze the error and identify the root cause
|
|
12
|
+
- [ ] Review current validation schemas in the code
|
|
13
|
+
- [ ] Update neural network instructions with correct element types and configurations
|
|
14
|
+
- [ ] Document all supported chart types with proper examples
|
|
15
|
+
- [ ] Document all supported image types with proper examples
|
|
16
|
+
- [ ] Test the updated instructions
|
|
17
|
+
- [ ] Verify the fix resolves the validation errors
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# ИСПРАВЛЕННЫЕ Инструкции для нейросети по работе с инструментом report_gen_mcp v1.5.0
|
|
2
2
|
|
|
3
3
|
**ВАЖНО:** ВСЕГДА ИСПОЛЬЗУЙТЕ ИНСТРУМЕНТ `report_gen_mcp` КАЖДЫЙ РАЗ, КОГДА ПОЛЬЗОВАТЕЛЬ ЗАПРАШИВАЕТ СОЗДАНИЕ ОТЧЕТА ИЛИ ВИЗУАЛИЗАЦИИ ДАННЫХ!
|
|
4
4
|
|
|
@@ -22,6 +22,10 @@
|
|
|
22
22
|
- Сгенерированные сервисом pollinations.ai по текстовому описанию
|
|
23
23
|
- По URL из интернета
|
|
24
24
|
|
|
25
|
+
**ВАЖНО:** Каждый элемент в отчете должен иметь уникальный тип в зависимости от его содержимого:
|
|
26
|
+
- Для диаграмм используйте типы: `bar`, `line`, `pie`, `doughnut`, `radar`, `polarArea`
|
|
27
|
+
- Для изображений используйте типы: `pollinations`, `url`
|
|
28
|
+
|
|
25
29
|
## Требования к оформлению отчетов
|
|
26
30
|
|
|
27
31
|
При создании отчетов необходимо придерживаться следующих требований по оформлению:
|
|
@@ -64,20 +68,22 @@
|
|
|
64
68
|
|
|
65
69
|
1. **Путь к файлу**: Абсолютный путь к созданному отчету
|
|
66
70
|
2. **Ссылка на файл**: Кликабельная file:// ссылка для открытия отчета в браузере
|
|
67
|
-
3. **
|
|
71
|
+
3. **Web link 2**: Ссылка вида http://localhost:3000/filename.html для доступа к отчету через веб-интерфейс
|
|
68
72
|
4. **Содержимое файла**: Полный текст HTML содержимого отчета
|
|
69
73
|
|
|
70
74
|
Обязательно покажите пользователю содержимое файла, чтобы он мог сразу ознакомиться с результатом без необходимости открывать файл отдельно.
|
|
71
75
|
|
|
72
76
|
**ВАЖНОЕ ТРЕБОВАНИЕ**: Отчет должен быть максимально красивым и качественным. Содержать изображения, графики, выводы и рассуждения. Отчет должен быть строго в HTML формате!
|
|
73
77
|
|
|
78
|
+
**ВАЖНО**: Всегда выводите Web link 2 как кликабельную ссылку в формате `[Web link 2](http://localhost:3000/filename.html)`!
|
|
79
|
+
|
|
74
80
|
Пример формата ответа пользователю:
|
|
75
81
|
```
|
|
76
82
|
Отчет успешно создан!
|
|
77
83
|
|
|
78
84
|
📁 Путь к файлу: /полный/путь/к/отчету.html
|
|
79
85
|
🌐 Ссылка для открытия в браузере: file:///полный/путь/к/отчету.html
|
|
80
|
-
🔗
|
|
86
|
+
🔗 [Web link 2](http://localhost:3000/отчет.html)
|
|
81
87
|
|
|
82
88
|
📄 Содержимое отчета:
|
|
83
89
|
<!DOCTYPE html>
|
|
@@ -208,30 +214,42 @@
|
|
|
208
214
|
|
|
209
215
|
### 3. Особенности работы с изображениями
|
|
210
216
|
|
|
211
|
-
При генерации изображений с помощью инструментов `
|
|
217
|
+
При генерации изображений с помощью инструментов `generate-image` или `edit-image`, нейросеть должна:
|
|
212
218
|
|
|
213
|
-
1. **Для `
|
|
219
|
+
1. **Для `generate-image`** - обрабатывать ответ, содержащий:
|
|
214
220
|
- Текстовое подтверждение генерации
|
|
215
|
-
-
|
|
216
|
-
-
|
|
221
|
+
- Путь к файлу изображения на диске
|
|
222
|
+
- File URL для открытия в браузере: `file:///полный/путь/к/файлу.jpg`
|
|
223
|
+
- Web link 2: `http://localhost:3000/имя_файла.jpg`
|
|
217
224
|
|
|
218
|
-
2. **Для `
|
|
225
|
+
2. **Для `edit-image`** - обрабатывать ответ, содержащий:
|
|
226
|
+
- Текстовое подтверждение редактирования
|
|
219
227
|
- Путь к файлу изображения на диске
|
|
220
228
|
- File URL для открытия в браузере: `file:///полный/путь/к/файлу.jpg`
|
|
221
|
-
-
|
|
229
|
+
- Web link 2: `http://localhost:3000/имя_файла.jpg`
|
|
230
|
+
|
|
231
|
+
3. **Важно**: Всегда показывайте пользователю Web link 2 для быстрого доступа к изображению через веб-интерфейс.
|
|
222
232
|
|
|
223
|
-
|
|
233
|
+
4. **ВАЖНО**: Всегда выводите Web link 2 как кликабельную ссылку в формате `[Web link 2](http://localhost:3000/filename.jpg)`!
|
|
224
234
|
|
|
225
|
-
|
|
235
|
+
5. **Пример корректного ответа при генерации изображения**:
|
|
226
236
|
```
|
|
227
237
|
✅ Изображение успешно сгенерировано по промпту: 'beautiful landscape'
|
|
228
238
|
|
|
229
|
-
|
|
239
|
+
📁 Файл сохранен: /полный/путь/к/generated-image-1234567890.jpeg
|
|
240
|
+
🌐 Web link: file:///полный/путь/к/generated-image-1234567890.jpeg
|
|
241
|
+
🔗 [Web link 2](http://localhost:3000/generated-image-1234567890.jpeg)
|
|
242
|
+
|
|
243
|
+
Вы можете открыть изображение, кликнув на ссылку выше или скопировав путь к файлу.
|
|
230
244
|
```
|
|
231
245
|
|
|
232
|
-
|
|
246
|
+
6. **Пример корректного ответа при редактировании изображения**:
|
|
233
247
|
```
|
|
234
|
-
✅ Изображение успешно
|
|
248
|
+
✅ Изображение успешно отредактировано по промпту: 'add a hat to the person'
|
|
249
|
+
|
|
250
|
+
📁 Файл сохранен: /полный/путь/к/edited-image-1234567890.jpeg
|
|
251
|
+
🌐 Web link: file:///полный/путь/к/edited-image-1234567890.jpeg
|
|
252
|
+
🔗 [Web link 2](http://localhost:3000/edited-image-1234567890.jpeg)
|
|
235
253
|
|
|
236
254
|
Вы можете открыть изображение, кликнув на ссылку выше или скопировав путь к файлу.
|
|
237
255
|
```
|
|
@@ -245,6 +263,7 @@
|
|
|
245
263
|
1. Все цветовые значения (`backgroundColor`, `borderColor`) должны быть представлены в виде **массивов строк**, даже если это один цвет.
|
|
246
264
|
2. Все числовые данные (`data`) должны быть представлены в виде массивов чисел.
|
|
247
265
|
3. Все текстовые метки (`labels`) должны быть представлены в виде массивов строк.
|
|
266
|
+
4. Значение `options.title` должно быть **строкой**, а не объектом.
|
|
248
267
|
|
|
249
268
|
### Линейные диаграммы (line)
|
|
250
269
|
|
|
@@ -452,7 +471,10 @@
|
|
|
452
471
|
"data": [1, 2, 3],
|
|
453
472
|
"backgroundColor": ["red", "green", "blue"],
|
|
454
473
|
"borderColor": ["red", "green", "blue"]
|
|
455
|
-
}]
|
|
474
|
+
}],
|
|
475
|
+
"options": {
|
|
476
|
+
"title": "Мой график"
|
|
477
|
+
}
|
|
456
478
|
}
|
|
457
479
|
}
|
|
458
480
|
},
|
|
@@ -499,35 +521,142 @@
|
|
|
499
521
|
"labels": ["Январь"]
|
|
500
522
|
```
|
|
501
523
|
|
|
524
|
+
### 5. ЗНАЧЕНИЕ options.title ДОЛЖНО БЫТЬ СТРОКОЙ!
|
|
525
|
+
|
|
526
|
+
❌ НЕПРАВИЛЬНО (это вызывает ошибку):
|
|
527
|
+
```json
|
|
528
|
+
"options": {
|
|
529
|
+
"title": {
|
|
530
|
+
"text": "Заголовок графика"
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
✅ ПРАВИЛЬНО:
|
|
536
|
+
```json
|
|
537
|
+
"options": {
|
|
538
|
+
"title": "Заголовок графика"
|
|
539
|
+
}
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
### 6. ТИП ЭЛЕМЕНТА ДОЛЖЕН СООТВЕТСТВОВАТЬ ЕГО СОДЕРЖИМОМУ!
|
|
543
|
+
|
|
544
|
+
❌ НЕПРАВИЛЬНО (это вызывает ошибку):
|
|
545
|
+
```json
|
|
546
|
+
"comparison_chart": {
|
|
547
|
+
"type": "bar", // Неправильный тип для сравнения - должен быть либо "pollinations", либо "url"
|
|
548
|
+
"config": {
|
|
549
|
+
"labels": ["A", "B", "C"],
|
|
550
|
+
"datasets": [{
|
|
551
|
+
"label": "Data",
|
|
552
|
+
"data": [1, 2, 3],
|
|
553
|
+
"backgroundColor": ["red", "green", "blue"]
|
|
554
|
+
}]
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
✅ ПРАВИЛЬНО (для диаграмм):
|
|
560
|
+
```json
|
|
561
|
+
"comparison_chart": {
|
|
562
|
+
"type": "bar",
|
|
563
|
+
"config": {
|
|
564
|
+
"labels": ["A", "B", "C"],
|
|
565
|
+
"datasets": [{
|
|
566
|
+
"label": "Data",
|
|
567
|
+
"data": [1, 2, 3],
|
|
568
|
+
"backgroundColor": ["red", "green", "blue"]
|
|
569
|
+
}],
|
|
570
|
+
"options": {
|
|
571
|
+
"title": "Сравнительная диаграмма"
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
✅ ПРАВИЛЬНО (для изображений):
|
|
578
|
+
```json
|
|
579
|
+
"comparison_chart": {
|
|
580
|
+
"type": "pollinations",
|
|
581
|
+
"config": {
|
|
582
|
+
"prompt": "beautiful landscape with mountains",
|
|
583
|
+
"width": 600,
|
|
584
|
+
"height": 400
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
```
|
|
588
|
+
|
|
502
589
|
## Пример полного взаимодействия
|
|
503
590
|
|
|
504
591
|
Вот пример того, как должно выглядеть полное взаимодействие с пользователем после генерации отчета:
|
|
505
592
|
|
|
506
|
-
1. Генерация
|
|
593
|
+
1. Генерация отчета с диаграммами:
|
|
507
594
|
```json
|
|
508
595
|
{
|
|
509
596
|
"method": "generate-report",
|
|
510
597
|
"params": {
|
|
511
|
-
"document": "# Отчет\n\n[[chart:
|
|
598
|
+
"document": "# Отчет\n\n[[chart:sales_chart]]\n\n[[chart:comparison_chart]]",
|
|
512
599
|
"elements": {
|
|
513
|
-
"
|
|
600
|
+
"sales_chart": {
|
|
514
601
|
"type": "bar",
|
|
515
602
|
"config": {
|
|
516
|
-
"labels": ["
|
|
603
|
+
"labels": ["Январь", "Февраль", "Март", "Апрель", "Май"],
|
|
517
604
|
"datasets": [{
|
|
518
|
-
"label": "
|
|
519
|
-
"data": [
|
|
520
|
-
"backgroundColor": ["
|
|
521
|
-
"borderColor": ["
|
|
522
|
-
}]
|
|
605
|
+
"label": "Продажи (USD)",
|
|
606
|
+
"data": [12000, 19000, 15000, 18000, 22000],
|
|
607
|
+
"backgroundColor": ["#FF6384", "#36A2EB", "#FFCE56", "#4BC0C0", "#9966FF"],
|
|
608
|
+
"borderColor": ["#FF6384", "#36A2EB", "#FFCE56", "#4BC0C0", "#9966FF"]
|
|
609
|
+
}],
|
|
610
|
+
"options": {
|
|
611
|
+
"title": "Ежемесячные продажи"
|
|
612
|
+
}
|
|
523
613
|
}
|
|
524
614
|
},
|
|
525
|
-
"
|
|
615
|
+
"comparison_chart": {
|
|
616
|
+
"type": "pie",
|
|
617
|
+
"config": {
|
|
618
|
+
"labels": ["Категория A", "Категория B", "Категория C"],
|
|
619
|
+
"datasets": [{
|
|
620
|
+
"data": [30, 50, 20],
|
|
621
|
+
"backgroundColor": ["#FF6384", "#36A2EB", "#FFCE56"],
|
|
622
|
+
"borderColor": ["#FF6384", "#36A2EB", "#FFCE56"]
|
|
623
|
+
}],
|
|
624
|
+
"options": {
|
|
625
|
+
"title": "Сравнение по категориям"
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
},
|
|
630
|
+
"outputFile": "report.html"
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
```
|
|
634
|
+
|
|
635
|
+
2. Генерация отчета с изображениями:
|
|
636
|
+
```json
|
|
637
|
+
{
|
|
638
|
+
"method": "generate-report",
|
|
639
|
+
"params": {
|
|
640
|
+
"document": "# Отчет\n\n[[image:main_image]]\n\n[[image:comparison_image]]",
|
|
641
|
+
"elements": {
|
|
642
|
+
"main_image": {
|
|
526
643
|
"type": "pollinations",
|
|
527
644
|
"config": {
|
|
528
|
-
"prompt": "beautiful landscape with mountains",
|
|
645
|
+
"prompt": "beautiful landscape with mountains and lake",
|
|
529
646
|
"width": 600,
|
|
530
|
-
"height": 400
|
|
647
|
+
"height": 400,
|
|
648
|
+
"model": "flux",
|
|
649
|
+
"nologo": true,
|
|
650
|
+
"enhance": true
|
|
651
|
+
}
|
|
652
|
+
},
|
|
653
|
+
"comparison_image": {
|
|
654
|
+
"type": "url",
|
|
655
|
+
"config": {
|
|
656
|
+
"url": "https://example.com/comparison-diagram.jpg",
|
|
657
|
+
"alt": "Сравнительная диаграмма",
|
|
658
|
+
"width": 500,
|
|
659
|
+
"height": 300
|
|
531
660
|
}
|
|
532
661
|
}
|
|
533
662
|
},
|
|
@@ -536,25 +665,25 @@
|
|
|
536
665
|
}
|
|
537
666
|
```
|
|
538
667
|
|
|
539
|
-
|
|
668
|
+
3. Ответ от метода `generate-report` уже содержит всю необходимую информацию:
|
|
540
669
|
```json
|
|
541
670
|
{
|
|
542
671
|
"content": [
|
|
543
672
|
{
|
|
544
673
|
"type": "text",
|
|
545
|
-
"text": "Report generated successfully.\n\nFOR THE NEURAL NETWORK: Please present the following information to the user:\n1. Path to file: /path/to/report.html\n2. Web browser link: file:///path/to/report.html\n3.
|
|
674
|
+
"text": "Report generated successfully.\n\nFOR THE NEURAL NETWORK: Please present the following information to the user:\n1. Path to file: /path/to/report.html\n2. Web browser link: file:///path/to/report.html\n3. Web link 2: http://localhost:3000/report.html"
|
|
546
675
|
}
|
|
547
676
|
]
|
|
548
677
|
}
|
|
549
678
|
```
|
|
550
679
|
|
|
551
|
-
|
|
680
|
+
4. Ответ пользователю (на основе информации из ответа метода):
|
|
552
681
|
```
|
|
553
682
|
Отчет успешно создан!
|
|
554
683
|
|
|
555
684
|
📁 Путь к файлу: /path/to/report.html
|
|
556
685
|
🌐 Ссылка для открытия в браузере: file:///path/to/report.html
|
|
557
|
-
🔗
|
|
686
|
+
🔗 [Web link 2](http://localhost:3000/report.html)
|
|
558
687
|
|
|
559
688
|
Содержимое отчета:
|
|
560
689
|
<!DOCTYPE html>
|
|
@@ -625,7 +754,7 @@
|
|
|
625
754
|
</div>
|
|
626
755
|
<div class="image-container">
|
|
627
756
|
<!-- Generated image -->
|
|
628
|
-
<img src="https://image.pollinations.ai/prompt/beautiful%20landscape%20with%20mountains" alt="beautiful landscape with mountains">
|
|
757
|
+
<img src="https://image.pollinations.ai/prompt/beautiful%20landscape%20with%20mountains%20and%20lake" alt="beautiful landscape with mountains and lake">
|
|
629
758
|
</div>
|
|
630
759
|
<h2>Анализ данных</h2>
|
|
631
760
|
<p>На основании проведенного анализа можно сделать следующие выводы:</p>
|
|
@@ -659,12 +788,20 @@
|
|
|
659
788
|
|
|
660
789
|
3. **Ошибка формата данных**: Передача числовых данных как отдельных значений вместо массивов
|
|
661
790
|
- ❌ Неправильно: `"data": 10
|
|
662
|
-
- ✅ Правильно: `"data": [10]
|
|
791
|
+
- ✅ Правильно: `"data": [10]"
|
|
663
792
|
|
|
664
793
|
4. **Ошибка формата меток**: Передача меток как отдельных значений вместо массивов
|
|
665
794
|
- ❌ Неправильно: `"labels": "Январь"
|
|
666
795
|
- ✅ Правильно: `"labels": ["Январь"]"
|
|
667
796
|
|
|
797
|
+
5. **Ошибка формата заголовка**: Передача `options.title` как объекта вместо строки
|
|
798
|
+
- ❌ Неправильно: `"options": {"title": {"text": "Заголовок"}}`
|
|
799
|
+
- ✅ Правильно: `"options": {"title": "Заголовок"}`
|
|
800
|
+
|
|
801
|
+
6. **Ошибка типа элемента**: Использование неправильного типа для элемента
|
|
802
|
+
- ❌ Неправильно: `"type": "bar"` для изображения
|
|
803
|
+
- ✅ Правильно: `"type": "pollinations"` или `"type": "url"` для изображений
|
|
804
|
+
|
|
668
805
|
## Дополнительные рекомендации
|
|
669
806
|
|
|
670
807
|
1. Всегда проверяйте успешность выполнения каждой операции перед переходом к следующему шагу
|
|
@@ -676,5 +813,6 @@
|
|
|
676
813
|
7. Всегда после генерации отчета возвращайте пользователю ссылку на файл отчета, путь к файлу отчета и содержимое файла
|
|
677
814
|
8. Отчет должен быть максимально красивым и качественным, содержать изображения, графики, выводы и рассуждения
|
|
678
815
|
9. Отчет должен быть строго в HTML формате
|
|
816
|
+
10. **ВАЖНО**: Всегда выводите Web link 2 как кликабельную ссылку в формате `[Web link 2](http://localhost:3000/filename.html)`!
|
|
679
817
|
|
|
680
818
|
Следование этим инструкциям обеспечит качественное и полное взаимодействие с пользователем при работе с инструментом генерации отчетов.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Version 1.5.1 Release Notes
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
This release updates the report_gen_mcp tool to version 1.5.1, featuring improved version consistency and continued support for all existing functionality.
|
|
5
|
+
|
|
6
|
+
## Changes
|
|
7
|
+
|
|
8
|
+
### Version Updates
|
|
9
|
+
- Updated package version to 1.5.1 in package.json
|
|
10
|
+
- Updated MCP server version to 1.5.1 in src/index.ts
|
|
11
|
+
- Rebuilt distribution files with updated version information
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
- Fixed version mismatch between package.json and dist/index.js
|
|
15
|
+
|
|
16
|
+
### Documentation
|
|
17
|
+
- No functional changes to the tool itself
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
The tool continues to function exactly as in previous versions, with all existing features preserved:
|
|
21
|
+
|
|
22
|
+
- Generate HTML reports with embedded charts and images
|
|
23
|
+
- Support for multiple chart types (bar, line, pie, doughnut, radar, polarArea)
|
|
24
|
+
- AI image generation capabilities
|
|
25
|
+
- Report editing functionality
|
|
26
|
+
- Full MCP server integration for Claude Desktop
|
|
27
|
+
|
|
28
|
+
## Backward Compatibility
|
|
29
|
+
This release maintains full backward compatibility with existing implementations. All previous functionality remains unchanged, with only the version number being updated for consistency.
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
// Test script to verify the neural network instructions fix
|
|
2
|
+
import { generateReport } from './dist/utils/reportGenerator.js';
|
|
3
|
+
|
|
4
|
+
async function testNeuralNetworkFix() {
|
|
5
|
+
console.log('Testing neural network instructions fix...');
|
|
6
|
+
|
|
7
|
+
// Test 1: Correct chart element with proper string title
|
|
8
|
+
try {
|
|
9
|
+
const result1 = await generateReport(
|
|
10
|
+
'# Test Report\n\n[[chart:comparison_chart]]',
|
|
11
|
+
{
|
|
12
|
+
comparison_chart: {
|
|
13
|
+
type: 'bar',
|
|
14
|
+
config: {
|
|
15
|
+
labels: ['A', 'B', 'C'],
|
|
16
|
+
datasets: [{
|
|
17
|
+
label: 'Data',
|
|
18
|
+
data: [1, 2, 3],
|
|
19
|
+
backgroundColor: ['red', 'green', 'blue'],
|
|
20
|
+
borderColor: ['red', 'green', 'blue']
|
|
21
|
+
}],
|
|
22
|
+
options: {
|
|
23
|
+
title: 'Сравнительная диаграмма' // String title - correct
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
'test-chart-report.html'
|
|
29
|
+
);
|
|
30
|
+
console.log('✅ Test 1 passed: Chart with string title');
|
|
31
|
+
} catch (error) {
|
|
32
|
+
console.error('❌ Test 1 failed:', error.message);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Test 2: Correct image element with pollinations type
|
|
36
|
+
try {
|
|
37
|
+
const result2 = await generateReport(
|
|
38
|
+
'# Test Report\n\n[[image:comparison_chart]]',
|
|
39
|
+
{
|
|
40
|
+
comparison_chart: {
|
|
41
|
+
type: 'pollinations',
|
|
42
|
+
config: {
|
|
43
|
+
prompt: 'beautiful landscape with mountains',
|
|
44
|
+
width: 600,
|
|
45
|
+
height: 400
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
'test-pollinations-report.html'
|
|
50
|
+
);
|
|
51
|
+
console.log('✅ Test 2 passed: Pollinations image element');
|
|
52
|
+
} catch (error) {
|
|
53
|
+
console.error('❌ Test 2 failed:', error.message);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Test 3: Correct image element with URL type
|
|
57
|
+
try {
|
|
58
|
+
const result3 = await generateReport(
|
|
59
|
+
'# Test Report\n\n[[image:comparison_chart]]',
|
|
60
|
+
{
|
|
61
|
+
comparison_chart: {
|
|
62
|
+
type: 'url',
|
|
63
|
+
config: {
|
|
64
|
+
url: 'https://example.com/image.jpg',
|
|
65
|
+
alt: 'Test image',
|
|
66
|
+
width: 500,
|
|
67
|
+
height: 300
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
'test-url-report.html'
|
|
72
|
+
);
|
|
73
|
+
console.log('✅ Test 3 passed: URL image element');
|
|
74
|
+
} catch (error) {
|
|
75
|
+
console.error('❌ Test 3 failed:', error.message);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Test 4: Incorrect title format (should fail)
|
|
79
|
+
try {
|
|
80
|
+
const result4 = await generateReport(
|
|
81
|
+
'# Test Report\n\n[[chart:comparison_chart]]',
|
|
82
|
+
{
|
|
83
|
+
comparison_chart: {
|
|
84
|
+
type: 'bar',
|
|
85
|
+
config: {
|
|
86
|
+
labels: ['A', 'B', 'C'],
|
|
87
|
+
datasets: [{
|
|
88
|
+
label: 'Data',
|
|
89
|
+
data: [1, 2, 3],
|
|
90
|
+
backgroundColor: ['red'],
|
|
91
|
+
borderColor: ['red']
|
|
92
|
+
}],
|
|
93
|
+
options: {
|
|
94
|
+
title: { text: 'Сравнительная диаграмма' } // Object title - incorrect
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
'test-bad-title-report.html'
|
|
100
|
+
);
|
|
101
|
+
console.log('❌ Test 4 failed: Should have rejected object title');
|
|
102
|
+
} catch (error) {
|
|
103
|
+
console.log('✅ Test 4 passed: Correctly rejected object title');
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Test 5: Incorrect element type (should fail)
|
|
107
|
+
try {
|
|
108
|
+
const result5 = await generateReport(
|
|
109
|
+
'# Test Report\n\n[[chart:comparison_chart]]',
|
|
110
|
+
{
|
|
111
|
+
comparison_chart: {
|
|
112
|
+
type: 'bar', // Wrong type for an image element
|
|
113
|
+
config: {
|
|
114
|
+
prompt: 'beautiful landscape with mountains',
|
|
115
|
+
width: 600,
|
|
116
|
+
height: 400
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
'test-wrong-type-report.html'
|
|
121
|
+
);
|
|
122
|
+
console.log('❌ Test 5 failed: Should have rejected wrong element type');
|
|
123
|
+
} catch (error) {
|
|
124
|
+
console.log('✅ Test 5 passed: Correctly rejected wrong element type');
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
console.log('Testing complete.');
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
testNeuralNetworkFix();
|