@houtini/gemini-mcp 1.4.5 → 2.2.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/README.md +314 -834
- package/claude_desktop_config_example.json +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +8 -4
- package/dist/config/index.js.map +1 -1
- package/dist/config/types.d.ts +5 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/image-viewer/image-viewer-app.html +180 -0
- package/dist/image-viewer/src/ui/image-viewer.html +324 -0
- package/dist/index-new.d.ts +3 -0
- package/dist/index-new.d.ts.map +1 -0
- package/dist/index-new.js +7 -0
- package/dist/index-new.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +70 -172
- package/dist/index.js.map +1 -1
- package/dist/landing-page-viewer/src/ui/landing-page-viewer.html +330 -0
- package/dist/services/gemini/export.d.ts +5 -0
- package/dist/services/gemini/export.d.ts.map +1 -0
- package/dist/services/gemini/export.js +5 -0
- package/dist/services/gemini/export.js.map +1 -0
- package/dist/services/gemini/image-service.d.ts +45 -0
- package/dist/services/gemini/image-service.d.ts.map +1 -0
- package/dist/services/gemini/image-service.js +248 -0
- package/dist/services/gemini/image-service.js.map +1 -0
- package/dist/services/gemini/index.d.ts +7 -2
- package/dist/services/gemini/index.d.ts.map +1 -1
- package/dist/services/gemini/index.js +132 -56
- package/dist/services/gemini/index.js.map +1 -1
- package/dist/services/gemini/types.d.ts +32 -0
- package/dist/services/gemini/types.d.ts.map +1 -1
- package/dist/services/gemini/video-service.d.ts +58 -0
- package/dist/services/gemini/video-service.d.ts.map +1 -0
- package/dist/services/gemini/video-service.js +325 -0
- package/dist/services/gemini/video-service.js.map +1 -0
- package/dist/services/media-server.d.ts +28 -0
- package/dist/services/media-server.d.ts.map +1 -0
- package/dist/services/media-server.js +195 -0
- package/dist/services/media-server.js.map +1 -0
- package/dist/svg-viewer/src/ui/svg-viewer.html +325 -0
- package/dist/tools/gemini-chat.d.ts.map +1 -1
- package/dist/tools/gemini-chat.js +7 -1
- package/dist/tools/gemini-chat.js.map +1 -1
- package/dist/tools/gemini-deep-research.d.ts +1 -2
- package/dist/tools/gemini-deep-research.d.ts.map +1 -1
- package/dist/tools/gemini-deep-research.js +11 -51
- package/dist/tools/gemini-deep-research.js.map +1 -1
- package/dist/tools/gemini-help.d.ts +3 -0
- package/dist/tools/gemini-help.d.ts.map +1 -0
- package/dist/tools/gemini-help.js +534 -0
- package/dist/tools/gemini-help.js.map +1 -0
- package/dist/tools/gemini-prompt-assistant.d.ts +20 -0
- package/dist/tools/gemini-prompt-assistant.d.ts.map +1 -0
- package/dist/tools/gemini-prompt-assistant.js +129 -0
- package/dist/tools/gemini-prompt-assistant.js.map +1 -0
- package/dist/tools/generate-landing-page.d.ts +15 -0
- package/dist/tools/generate-landing-page.d.ts.map +1 -0
- package/dist/tools/generate-landing-page.js +66 -0
- package/dist/tools/generate-landing-page.js.map +1 -0
- package/dist/tools/generate-svg.d.ts +14 -0
- package/dist/tools/generate-svg.d.ts.map +1 -0
- package/dist/tools/generate-svg.js +106 -0
- package/dist/tools/generate-svg.js.map +1 -0
- package/dist/tools/generate-video.d.ts +24 -0
- package/dist/tools/generate-video.d.ts.map +1 -0
- package/dist/tools/generate-video.js +163 -0
- package/dist/tools/generate-video.js.map +1 -0
- package/dist/tools/image-prompt-assistant.d.ts +3 -0
- package/dist/tools/image-prompt-assistant.d.ts.map +1 -0
- package/dist/tools/image-prompt-assistant.js +790 -0
- package/dist/tools/image-prompt-assistant.js.map +1 -0
- package/dist/tools/load-image-from-path.d.ts +11 -0
- package/dist/tools/load-image-from-path.d.ts.map +1 -0
- package/dist/tools/load-image-from-path.js +100 -0
- package/dist/tools/load-image-from-path.js.map +1 -0
- package/dist/tools/prompt-library/charts.d.ts +325 -0
- package/dist/tools/prompt-library/charts.d.ts.map +1 -0
- package/dist/tools/prompt-library/charts.js +384 -0
- package/dist/tools/prompt-library/charts.js.map +1 -0
- package/dist/tools/prompt-library/index.d.ts +8 -0
- package/dist/tools/prompt-library/index.d.ts.map +1 -0
- package/dist/tools/prompt-library/index.js +10 -0
- package/dist/tools/prompt-library/index.js.map +1 -0
- package/dist/tools/register-analyze-image.d.ts +3 -0
- package/dist/tools/register-analyze-image.d.ts.map +1 -0
- package/dist/tools/register-analyze-image.js +67 -0
- package/dist/tools/register-analyze-image.js.map +1 -0
- package/dist/tools/register-chat.d.ts +3 -0
- package/dist/tools/register-chat.d.ts.map +1 -0
- package/dist/tools/register-chat.js +71 -0
- package/dist/tools/register-chat.js.map +1 -0
- package/dist/tools/register-deep-research.d.ts +3 -0
- package/dist/tools/register-deep-research.d.ts.map +1 -0
- package/dist/tools/register-deep-research.js +59 -0
- package/dist/tools/register-deep-research.js.map +1 -0
- package/dist/tools/register-describe-image.d.ts +3 -0
- package/dist/tools/register-describe-image.d.ts.map +1 -0
- package/dist/tools/register-describe-image.js +59 -0
- package/dist/tools/register-describe-image.js.map +1 -0
- package/dist/tools/register-image-gen.d.ts +3 -0
- package/dist/tools/register-image-gen.d.ts.map +1 -0
- package/dist/tools/register-image-gen.js +235 -0
- package/dist/tools/register-image-gen.js.map +1 -0
- package/dist/tools/register-landing-page.d.ts +3 -0
- package/dist/tools/register-landing-page.d.ts.map +1 -0
- package/dist/tools/register-landing-page.js +79 -0
- package/dist/tools/register-landing-page.js.map +1 -0
- package/dist/tools/register-list-models.d.ts +3 -0
- package/dist/tools/register-list-models.d.ts.map +1 -0
- package/dist/tools/register-list-models.js +33 -0
- package/dist/tools/register-list-models.js.map +1 -0
- package/dist/tools/register-load-image.d.ts +3 -0
- package/dist/tools/register-load-image.d.ts.map +1 -0
- package/dist/tools/register-load-image.js +66 -0
- package/dist/tools/register-load-image.js.map +1 -0
- package/dist/tools/register-svg.d.ts +3 -0
- package/dist/tools/register-svg.d.ts.map +1 -0
- package/dist/tools/register-svg.js +84 -0
- package/dist/tools/register-svg.js.map +1 -0
- package/dist/tools/register-video.d.ts +3 -0
- package/dist/tools/register-video.d.ts.map +1 -0
- package/dist/tools/register-video.js +118 -0
- package/dist/tools/register-video.js.map +1 -0
- package/dist/tools/register-viewers.d.ts +8 -0
- package/dist/tools/register-viewers.d.ts.map +1 -0
- package/dist/tools/register-viewers.js +89 -0
- package/dist/tools/register-viewers.js.map +1 -0
- package/dist/tools/schemas.d.ts +33 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +39 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/types.d.ts +12 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/ui/image-viewer.d.ts +2 -0
- package/dist/ui/image-viewer.d.ts.map +1 -0
- package/dist/ui/image-viewer.js +42 -0
- package/dist/ui/image-viewer.js.map +1 -0
- package/dist/utils/chart-design-system.d.ts +92 -0
- package/dist/utils/chart-design-system.d.ts.map +1 -0
- package/dist/utils/chart-design-system.js +235 -0
- package/dist/utils/chart-design-system.js.map +1 -0
- package/dist/utils/image-compress.d.ts +9 -0
- package/dist/utils/image-compress.d.ts.map +1 -0
- package/dist/utils/image-compress.js +43 -0
- package/dist/utils/image-compress.js.map +1 -0
- package/dist/utils/image-utils.d.ts +9 -0
- package/dist/utils/image-utils.d.ts.map +1 -0
- package/dist/utils/image-utils.js +257 -0
- package/dist/utils/image-utils.js.map +1 -0
- package/dist/utils/resolve-images.d.ts +29 -0
- package/dist/utils/resolve-images.d.ts.map +1 -0
- package/dist/utils/resolve-images.js +56 -0
- package/dist/utils/resolve-images.js.map +1 -0
- package/dist/utils/tool-wrapper.d.ts +13 -0
- package/dist/utils/tool-wrapper.d.ts.map +1 -0
- package/dist/utils/tool-wrapper.js +22 -0
- package/dist/utils/tool-wrapper.js.map +1 -0
- package/dist/utils/video-utils.d.ts +16 -0
- package/dist/utils/video-utils.d.ts.map +1 -0
- package/dist/utils/video-utils.js +319 -0
- package/dist/utils/video-utils.js.map +1 -0
- package/dist/video-viewer/src/ui/video-viewer.html +310 -0
- package/package.json +21 -7
- package/server.json +30 -29
|
@@ -0,0 +1,534 @@
|
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
const HELP_TOPICS = {
|
|
3
|
+
overview: `# Gemini MCP Server - Overview
|
|
4
|
+
|
|
5
|
+
**Version:** 2.1.0
|
|
6
|
+
**Tools Available:** 10
|
|
7
|
+
|
|
8
|
+
## Core Features
|
|
9
|
+
• **Chat & Research:** gemini_chat, gemini_deep_research
|
|
10
|
+
• **Image Generation:** generate_image, edit_image
|
|
11
|
+
• **Image Analysis:** describe_image, analyze_image
|
|
12
|
+
• **Utilities:** gemini_list_models, load_image_from_path, generate_landing_page
|
|
13
|
+
• **Help:** gemini_help (this tool)
|
|
14
|
+
|
|
15
|
+
## Quick Start
|
|
16
|
+
\`gemini_help topic="image_generation"\` - Image generation guide
|
|
17
|
+
\`gemini_help topic="grounding"\` - Search grounding features
|
|
18
|
+
\`gemini_help topic="media_resolution"\` - Token optimization
|
|
19
|
+
\`gemini_help topic="all"\` - Complete documentation
|
|
20
|
+
|
|
21
|
+
## Key Capabilities
|
|
22
|
+
✓ Google Search grounding for real-time data
|
|
23
|
+
✓ Multi-modal image generation with conversational editing
|
|
24
|
+
✓ Advanced image analysis with token optimization
|
|
25
|
+
✓ Deep research with iterative multi-step analysis
|
|
26
|
+
✓ Full-resolution image output (saved to disk)
|
|
27
|
+
✓ High-quality inline previews (1024px, quality 100)`,
|
|
28
|
+
image_generation: `# Image Generation Guide
|
|
29
|
+
|
|
30
|
+
## Tool: generate_image
|
|
31
|
+
|
|
32
|
+
### Basic Usage
|
|
33
|
+
\`\`\`
|
|
34
|
+
generate_image(
|
|
35
|
+
prompt="A photorealistic sunset over mountains",
|
|
36
|
+
aspectRatio="16:9"
|
|
37
|
+
)
|
|
38
|
+
\`\`\`
|
|
39
|
+
|
|
40
|
+
### Parameters
|
|
41
|
+
|
|
42
|
+
**prompt** (required)
|
|
43
|
+
Description of the image to generate. Be specific and detailed.
|
|
44
|
+
|
|
45
|
+
**model** (optional, default: "gemini-3-pro-image-preview")
|
|
46
|
+
Options:
|
|
47
|
+
• gemini-3-pro-image-preview - Best quality, conversational editing support
|
|
48
|
+
• gemini-2.5-flash-image - Stable, fast generation
|
|
49
|
+
• nano-banana-pro-preview - Alias for gemini-3-pro-image-preview
|
|
50
|
+
|
|
51
|
+
**aspectRatio** (optional, default: "1:1")
|
|
52
|
+
Options: "1:1", "3:4", "4:3", "9:16", "16:9"
|
|
53
|
+
Use 16:9 for landscapes, 9:16 for portraits, 1:1 for squares
|
|
54
|
+
|
|
55
|
+
**imageSize** (optional)
|
|
56
|
+
Options: "1K", "2K", "4K"
|
|
57
|
+
Only works with image-specific models. Higher = more detail but slower.
|
|
58
|
+
Note: Preview is capped at 1024px, but full-res saved to disk
|
|
59
|
+
|
|
60
|
+
**use_search** (optional, default: false)
|
|
61
|
+
Enable Google Search grounding for real-time data.
|
|
62
|
+
Use for: weather forecasts, current events, stock prices, sports scores
|
|
63
|
+
Returns grounding sources as markdown links
|
|
64
|
+
|
|
65
|
+
**global_media_resolution** (optional, default: "HIGH")
|
|
66
|
+
For reference images only. See \`gemini_help topic="media_resolution"\`
|
|
67
|
+
|
|
68
|
+
**outputPath** (optional)
|
|
69
|
+
Custom save location. Otherwise saves to configured output directory.
|
|
70
|
+
|
|
71
|
+
### Output Resolution
|
|
72
|
+
• Generation: Full resolution (up to 4K depending on settings)
|
|
73
|
+
• Disk: Full resolution saved (always)
|
|
74
|
+
• Preview: 1024px max dimension, quality 100 (for inline display)
|
|
75
|
+
|
|
76
|
+
### Advanced: Conversational Editing
|
|
77
|
+
Generate an image, then edit it by passing the thoughtSignature:
|
|
78
|
+
\`\`\`
|
|
79
|
+
1. generate_image(prompt="A logo") → returns thoughtSignature
|
|
80
|
+
2. edit_image(
|
|
81
|
+
prompt="Make it blue",
|
|
82
|
+
images=[{data, mimeType, thoughtSignature}]
|
|
83
|
+
)
|
|
84
|
+
\`\`\``,
|
|
85
|
+
image_editing: `# Image Editing Guide
|
|
86
|
+
|
|
87
|
+
## Tool: edit_image
|
|
88
|
+
|
|
89
|
+
### Basic Usage
|
|
90
|
+
\`\`\`
|
|
91
|
+
edit_image(
|
|
92
|
+
prompt="Change the color scheme to blue and green",
|
|
93
|
+
images=[{data: base64Data, mimeType: "image/png"}]
|
|
94
|
+
)
|
|
95
|
+
\`\`\`
|
|
96
|
+
|
|
97
|
+
### Parameters
|
|
98
|
+
|
|
99
|
+
**prompt** (required)
|
|
100
|
+
Natural language instructions for how to edit the image(s).
|
|
101
|
+
Examples:
|
|
102
|
+
• "Make the background darker"
|
|
103
|
+
• "Add a red border"
|
|
104
|
+
• "Change to black and white"
|
|
105
|
+
• "Increase contrast and saturation"
|
|
106
|
+
|
|
107
|
+
**images** (required, array)
|
|
108
|
+
One or more images to edit. Each image object:
|
|
109
|
+
• data: Base64 encoded image data
|
|
110
|
+
• mimeType: Image MIME type (e.g., "image/png", "image/jpeg")
|
|
111
|
+
• thoughtSignature: (optional) For conversational editing
|
|
112
|
+
• mediaResolution: (optional) Per-image quality override
|
|
113
|
+
|
|
114
|
+
**model** (optional, default: "gemini-3-pro-image-preview")
|
|
115
|
+
Same options as generate_image
|
|
116
|
+
|
|
117
|
+
**use_search** (optional, default: false)
|
|
118
|
+
Enable Google Search for data-driven edits
|
|
119
|
+
Example: "Add current weather data for London"
|
|
120
|
+
|
|
121
|
+
**global_media_resolution** (optional, default: "HIGH")
|
|
122
|
+
Token cost optimization. See \`gemini_help topic="media_resolution"\`
|
|
123
|
+
|
|
124
|
+
**outputPath** (optional)
|
|
125
|
+
Custom save location for edited image
|
|
126
|
+
|
|
127
|
+
### Conversational Editing
|
|
128
|
+
For multi-step refinements with gemini-3-pro-image-preview:
|
|
129
|
+
1. First edit returns thoughtSignature
|
|
130
|
+
2. Pass thoughtSignature in subsequent edits
|
|
131
|
+
3. Model maintains visual context across iterations
|
|
132
|
+
|
|
133
|
+
### Tips
|
|
134
|
+
• Be specific: "Make brighter" vs "Increase brightness by 20%"
|
|
135
|
+
• Reference elements: "The sky in the background" vs "The background"
|
|
136
|
+
• Multiple images: Model can composite or compare them`,
|
|
137
|
+
image_analysis: `# Image Analysis Guide
|
|
138
|
+
|
|
139
|
+
## Tools: describe_image, analyze_image
|
|
140
|
+
|
|
141
|
+
### describe_image - Text Descriptions
|
|
142
|
+
|
|
143
|
+
**Purpose:** Generate natural language descriptions of images
|
|
144
|
+
|
|
145
|
+
\`\`\`
|
|
146
|
+
describe_image(
|
|
147
|
+
images=[{data: base64Data, mimeType: "image/jpeg"}],
|
|
148
|
+
prompt="Describe this image in detail"
|
|
149
|
+
)
|
|
150
|
+
\`\`\`
|
|
151
|
+
|
|
152
|
+
Returns plain text description.
|
|
153
|
+
|
|
154
|
+
### analyze_image - Structured Analysis
|
|
155
|
+
|
|
156
|
+
**Purpose:** Extract specific information from images as structured data
|
|
157
|
+
|
|
158
|
+
\`\`\`
|
|
159
|
+
analyze_image(
|
|
160
|
+
images=[{data: base64Data, mimeType: "image/png"}],
|
|
161
|
+
prompt="Extract all text from this document and count words"
|
|
162
|
+
)
|
|
163
|
+
\`\`\`
|
|
164
|
+
|
|
165
|
+
Returns structured analysis based on prompt.
|
|
166
|
+
|
|
167
|
+
### Media Resolution (Cost Optimization)
|
|
168
|
+
|
|
169
|
+
**global_media_resolution** parameter:
|
|
170
|
+
• MEDIA_RESOLUTION_LOW (280 tokens, 75% savings)
|
|
171
|
+
Use for: Simple tasks, bulk operations, thumbnails
|
|
172
|
+
• MEDIA_RESOLUTION_MEDIUM (560 tokens, 50% savings)
|
|
173
|
+
Use for: PDFs, documents (OCR quality same as HIGH!)
|
|
174
|
+
• MEDIA_RESOLUTION_HIGH (1120 tokens, default)
|
|
175
|
+
Use for: Detailed analysis, complex images
|
|
176
|
+
|
|
177
|
+
**Per-image override:**
|
|
178
|
+
\`\`\`
|
|
179
|
+
images=[
|
|
180
|
+
{data: icon, mimeType: "image/png",
|
|
181
|
+
mediaResolution: "MEDIA_RESOLUTION_LOW"},
|
|
182
|
+
{data: detailed, mimeType: "image/png",
|
|
183
|
+
mediaResolution: "MEDIA_RESOLUTION_ULTRA_HIGH"}
|
|
184
|
+
]
|
|
185
|
+
\`\`\`
|
|
186
|
+
|
|
187
|
+
ULTRA_HIGH (2000+ tokens) only available as per-image override.
|
|
188
|
+
|
|
189
|
+
### PDF Analysis Best Practice
|
|
190
|
+
For PDFs, use MEDIUM resolution:
|
|
191
|
+
• Same OCR quality as HIGH
|
|
192
|
+
• 50% token savings
|
|
193
|
+
• Perfect for multi-page documents`,
|
|
194
|
+
chat: `# Chat & Conversation Guide
|
|
195
|
+
|
|
196
|
+
## Tool: gemini_chat
|
|
197
|
+
|
|
198
|
+
### Basic Usage
|
|
199
|
+
\`\`\`
|
|
200
|
+
gemini_chat(
|
|
201
|
+
message="Explain quantum entanglement",
|
|
202
|
+
model="gemini-3-pro-preview"
|
|
203
|
+
)
|
|
204
|
+
\`\`\`
|
|
205
|
+
|
|
206
|
+
### Parameters
|
|
207
|
+
|
|
208
|
+
**message** (required)
|
|
209
|
+
Your message/question to Gemini
|
|
210
|
+
|
|
211
|
+
**model** (optional)
|
|
212
|
+
Options: See \`gemini_help topic="models"\`
|
|
213
|
+
|
|
214
|
+
**grounding** (optional, default: false)
|
|
215
|
+
Enable Google Search grounding for current information
|
|
216
|
+
Returns grounding metadata with sources
|
|
217
|
+
|
|
218
|
+
**max_tokens** (optional, default: 65536)
|
|
219
|
+
Maximum tokens in response (1-65536)
|
|
220
|
+
|
|
221
|
+
**temperature** (optional, default: 0.7)
|
|
222
|
+
Randomness (0.0-1.0). Lower = more focused, Higher = more creative
|
|
223
|
+
|
|
224
|
+
**thinking_level** (optional)
|
|
225
|
+
For Gemini 3 models only:
|
|
226
|
+
• "LOW" - Minimal reasoning, fast responses
|
|
227
|
+
• "MEDIUM" - Balanced (Flash only)
|
|
228
|
+
• "HIGH" - Deep reasoning, slower (default for Gemini 3)
|
|
229
|
+
• "MINIMAL" - Absolute minimum thinking (Flash only)
|
|
230
|
+
|
|
231
|
+
**system_prompt** (optional)
|
|
232
|
+
System-level instructions for the model
|
|
233
|
+
|
|
234
|
+
### Grounding Example
|
|
235
|
+
\`\`\`
|
|
236
|
+
gemini_chat(
|
|
237
|
+
message="What are the latest developments in the MCP specification?",
|
|
238
|
+
grounding=true
|
|
239
|
+
)
|
|
240
|
+
\`\`\`
|
|
241
|
+
Returns current information with source citations.`,
|
|
242
|
+
deep_research: `# Deep Research Guide
|
|
243
|
+
|
|
244
|
+
## Tool: gemini_deep_research
|
|
245
|
+
|
|
246
|
+
### Purpose
|
|
247
|
+
Conduct comprehensive multi-step research on complex topics using iterative analysis.
|
|
248
|
+
|
|
249
|
+
### Usage
|
|
250
|
+
\`\`\`
|
|
251
|
+
gemini_deep_research(
|
|
252
|
+
research_question="What are the implications of quantum computing for cryptography?",
|
|
253
|
+
max_iterations=5,
|
|
254
|
+
focus_areas=["RSA encryption", "Post-quantum algorithms"]
|
|
255
|
+
)
|
|
256
|
+
\`\`\`
|
|
257
|
+
|
|
258
|
+
### Parameters
|
|
259
|
+
|
|
260
|
+
**research_question** (required)
|
|
261
|
+
Complex research question or topic to investigate deeply
|
|
262
|
+
|
|
263
|
+
**max_iterations** (optional, default: 5)
|
|
264
|
+
Number of research iterations (3-10)
|
|
265
|
+
More iterations = deeper research but longer wait time
|
|
266
|
+
• 3-4: Quick overview (4-8 minutes)
|
|
267
|
+
• 5-7: Comprehensive analysis (8-15 minutes)
|
|
268
|
+
• 8-10: Exhaustive research (15-25 minutes)
|
|
269
|
+
|
|
270
|
+
**focus_areas** (optional, array)
|
|
271
|
+
Specific areas to focus the research on
|
|
272
|
+
Example: ["clinical trials", "side effects", "dosage"]
|
|
273
|
+
|
|
274
|
+
**model** (optional)
|
|
275
|
+
Research model to use (defaults to latest available)
|
|
276
|
+
|
|
277
|
+
### How It Works
|
|
278
|
+
1. Initial search and information gathering
|
|
279
|
+
2. Iterative deepening with follow-up queries
|
|
280
|
+
3. Cross-referencing and validation
|
|
281
|
+
4. Synthesis into comprehensive report
|
|
282
|
+
|
|
283
|
+
### Returns
|
|
284
|
+
Comprehensive research report with:
|
|
285
|
+
• Executive summary
|
|
286
|
+
• Key findings organized by theme
|
|
287
|
+
• Source citations
|
|
288
|
+
• Confidence assessments
|
|
289
|
+
• Recommended follow-up questions
|
|
290
|
+
|
|
291
|
+
### Best For
|
|
292
|
+
• Complex topics requiring multiple sources
|
|
293
|
+
• Academic or technical research
|
|
294
|
+
• Comparative analysis across domains
|
|
295
|
+
• Questions with no single definitive answer`,
|
|
296
|
+
grounding: `# Google Search Grounding Guide
|
|
297
|
+
|
|
298
|
+
## What is Grounding?
|
|
299
|
+
Grounding connects Gemini to Google Search for real-time, factual information.
|
|
300
|
+
|
|
301
|
+
## Available in Tools
|
|
302
|
+
• gemini_chat (grounding parameter)
|
|
303
|
+
• generate_image (use_search parameter)
|
|
304
|
+
• edit_image (use_search parameter)
|
|
305
|
+
|
|
306
|
+
## Chat Grounding
|
|
307
|
+
\`\`\`
|
|
308
|
+
gemini_chat(
|
|
309
|
+
message="What happened in tech news today?",
|
|
310
|
+
grounding=true
|
|
311
|
+
)
|
|
312
|
+
\`\`\`
|
|
313
|
+
|
|
314
|
+
**Returns:**
|
|
315
|
+
• Current information (not training data)
|
|
316
|
+
• Grounding metadata with sources
|
|
317
|
+
• Web search queries used
|
|
318
|
+
|
|
319
|
+
**Best for:**
|
|
320
|
+
• Current events and news
|
|
321
|
+
• Recent developments in any field
|
|
322
|
+
• Fact-checking and verification
|
|
323
|
+
• Topics that change frequently
|
|
324
|
+
|
|
325
|
+
## Image Grounding
|
|
326
|
+
\`\`\`
|
|
327
|
+
generate_image(
|
|
328
|
+
prompt="Weather forecast for London tomorrow with actual temperatures",
|
|
329
|
+
use_search=true
|
|
330
|
+
)
|
|
331
|
+
\`\`\`
|
|
332
|
+
|
|
333
|
+
**Returns:**
|
|
334
|
+
• Image with real-time data
|
|
335
|
+
• Grounding sources as markdown links
|
|
336
|
+
• Search queries used
|
|
337
|
+
|
|
338
|
+
**Best for:**
|
|
339
|
+
• Weather forecasts
|
|
340
|
+
• Stock prices and financial data
|
|
341
|
+
• Sports scores and statistics
|
|
342
|
+
• Current events infographics
|
|
343
|
+
• Any data-driven visualizations
|
|
344
|
+
|
|
345
|
+
## Important Notes
|
|
346
|
+
• Grounding adds latency (search takes time)
|
|
347
|
+
• Sources returned as clickable markdown links
|
|
348
|
+
• Not needed for general knowledge or creative tasks
|
|
349
|
+
• Most valuable for factual, current information`,
|
|
350
|
+
media_resolution: `# Media Resolution & Token Optimization
|
|
351
|
+
|
|
352
|
+
## What is Media Resolution?
|
|
353
|
+
Controls image quality when analyzing images, trading quality for token cost.
|
|
354
|
+
|
|
355
|
+
## Resolution Levels
|
|
356
|
+
|
|
357
|
+
**MEDIA_RESOLUTION_LOW (280 tokens)**
|
|
358
|
+
• 75% token savings vs HIGH
|
|
359
|
+
• Use for: Simple visual tasks, thumbnails, bulk processing
|
|
360
|
+
• Quality: Sufficient for basic recognition and simple questions
|
|
361
|
+
|
|
362
|
+
**MEDIA_RESOLUTION_MEDIUM (560 tokens)**
|
|
363
|
+
• 50% token savings vs HIGH
|
|
364
|
+
• Use for: PDFs, documents, screenshots
|
|
365
|
+
• Quality: **Same OCR quality as HIGH!** (OCR saturates at medium)
|
|
366
|
+
• **RECOMMENDED for all document analysis**
|
|
367
|
+
|
|
368
|
+
**MEDIA_RESOLUTION_HIGH (1120 tokens)**
|
|
369
|
+
• Default quality level
|
|
370
|
+
• Use for: Complex images, detailed analysis
|
|
371
|
+
• Quality: Full fidelity for most tasks
|
|
372
|
+
|
|
373
|
+
**MEDIA_RESOLUTION_ULTRA_HIGH (2000+ tokens)**
|
|
374
|
+
• Maximum detail, per-image only (not global)
|
|
375
|
+
• Use for: Pixel-perfect analysis, fine details, medical imaging
|
|
376
|
+
• Quality: Highest possible fidelity
|
|
377
|
+
|
|
378
|
+
## Usage
|
|
379
|
+
|
|
380
|
+
### Global Setting (All Images)
|
|
381
|
+
\`\`\`
|
|
382
|
+
analyze_image(
|
|
383
|
+
images=[{data1}, {data2}, {data3}],
|
|
384
|
+
prompt="Analyze these images",
|
|
385
|
+
global_media_resolution="MEDIA_RESOLUTION_MEDIUM"
|
|
386
|
+
)
|
|
387
|
+
\`\`\`
|
|
388
|
+
|
|
389
|
+
### Per-Image Override (Mixed Quality)
|
|
390
|
+
\`\`\`
|
|
391
|
+
analyze_image(
|
|
392
|
+
images=[
|
|
393
|
+
{data: simple, mimeType: "image/png",
|
|
394
|
+
mediaResolution: "MEDIA_RESOLUTION_LOW"},
|
|
395
|
+
{data: detailed, mimeType: "image/png",
|
|
396
|
+
mediaResolution: "MEDIA_RESOLUTION_ULTRA_HIGH"}
|
|
397
|
+
],
|
|
398
|
+
global_media_resolution="MEDIA_RESOLUTION_MEDIUM"
|
|
399
|
+
)
|
|
400
|
+
\`\`\`
|
|
401
|
+
|
|
402
|
+
Per-image setting overrides global setting.
|
|
403
|
+
|
|
404
|
+
## Best Practices
|
|
405
|
+
|
|
406
|
+
**For PDFs/Documents:**
|
|
407
|
+
Always use MEDIUM - same OCR quality, 50% cost savings
|
|
408
|
+
|
|
409
|
+
**For Bulk Processing:**
|
|
410
|
+
Use LOW for simple tasks (thumbnails, basic recognition)
|
|
411
|
+
|
|
412
|
+
**For Mixed Batches:**
|
|
413
|
+
Set global to MEDIUM, override specific images to ULTRA_HIGH
|
|
414
|
+
|
|
415
|
+
**For Cost Optimization:**
|
|
416
|
+
Start with MEDIUM, only increase if quality insufficient`,
|
|
417
|
+
models: `# Gemini Models Reference
|
|
418
|
+
|
|
419
|
+
## Chat Models
|
|
420
|
+
|
|
421
|
+
**Gemini 3 Series (Latest)**
|
|
422
|
+
• gemini-3-pro-preview - Best reasoning, supports thinking levels
|
|
423
|
+
• gemini-3-flash-preview - Fast, supports thinking levels
|
|
424
|
+
• gemini-3.1-pro-preview - Enhanced reasoning
|
|
425
|
+
• gemini-3.1-pro-preview-customtools - Optimized for tool use
|
|
426
|
+
|
|
427
|
+
**Gemini 2.5 Series (Stable)**
|
|
428
|
+
• gemini-2.5-pro - Stable flagship model
|
|
429
|
+
• gemini-2.5-flash - Stable fast model
|
|
430
|
+
• gemini-2.5-flash-lite - Lightweight, efficient
|
|
431
|
+
|
|
432
|
+
**Gemini 2.0 Series**
|
|
433
|
+
• gemini-2.0-flash - Versatile multimodal
|
|
434
|
+
• gemini-2.0-flash-001 - Stable version
|
|
435
|
+
• gemini-2.0-flash-lite - Lightweight variant
|
|
436
|
+
|
|
437
|
+
**Aliases**
|
|
438
|
+
• gemini-flash-latest - Latest Flash release
|
|
439
|
+
• gemini-pro-latest - Latest Pro release
|
|
440
|
+
|
|
441
|
+
## Image Generation Models
|
|
442
|
+
|
|
443
|
+
**gemini-3-pro-image-preview** (Nano Banana Pro)
|
|
444
|
+
• Best quality image generation
|
|
445
|
+
• Supports conversational editing via thoughtSignatures
|
|
446
|
+
• Default for generate_image and edit_image
|
|
447
|
+
|
|
448
|
+
**gemini-2.5-flash-image**
|
|
449
|
+
• Stable image generation
|
|
450
|
+
• Fast, reliable
|
|
451
|
+
• No conversational editing
|
|
452
|
+
|
|
453
|
+
**nano-banana-pro-preview**
|
|
454
|
+
• Alias for gemini-3-pro-image-preview
|
|
455
|
+
|
|
456
|
+
## Image Analysis Models
|
|
457
|
+
|
|
458
|
+
All chat models support image analysis via:
|
|
459
|
+
• describe_image
|
|
460
|
+
• analyze_image
|
|
461
|
+
|
|
462
|
+
Recommended:
|
|
463
|
+
• gemini-3-flash-preview (default) - Fast, accurate
|
|
464
|
+
• gemini-3-pro-preview - Best quality analysis
|
|
465
|
+
|
|
466
|
+
## Specialized Models
|
|
467
|
+
|
|
468
|
+
**gemini-2.5-computer-use-preview-10-2025**
|
|
469
|
+
• Computer interaction tasks
|
|
470
|
+
|
|
471
|
+
**deep-research-pro-preview-12-2025**
|
|
472
|
+
• Deep research iterations
|
|
473
|
+
|
|
474
|
+
**Gemma Models**
|
|
475
|
+
• gemma-3-1b-it through gemma-3-27b-it
|
|
476
|
+
• Open weights models for research
|
|
477
|
+
|
|
478
|
+
## Model Selection Tips
|
|
479
|
+
|
|
480
|
+
**For Chat:**
|
|
481
|
+
• Quick questions: gemini-3-flash-preview
|
|
482
|
+
• Complex reasoning: gemini-3-pro-preview
|
|
483
|
+
• Stable production: gemini-2.5-pro
|
|
484
|
+
|
|
485
|
+
**For Images:**
|
|
486
|
+
• Generation: gemini-3-pro-image-preview (only one with editing)
|
|
487
|
+
• Analysis: gemini-3-flash-preview (fast, accurate)
|
|
488
|
+
|
|
489
|
+
**For Research:**
|
|
490
|
+
• deep-research-pro-preview-12-2025
|
|
491
|
+
|
|
492
|
+
Use \`gemini_list_models\` to see all available models with descriptions.`,
|
|
493
|
+
};
|
|
494
|
+
export function registerGeminiHelp(server) {
|
|
495
|
+
server.registerTool('gemini_help', {
|
|
496
|
+
title: 'Gemini MCP Help',
|
|
497
|
+
description: 'Get comprehensive help about Gemini MCP features, settings, and best practices',
|
|
498
|
+
inputSchema: {
|
|
499
|
+
topic: z.enum([
|
|
500
|
+
'overview',
|
|
501
|
+
'image_generation',
|
|
502
|
+
'image_editing',
|
|
503
|
+
'image_analysis',
|
|
504
|
+
'chat',
|
|
505
|
+
'deep_research',
|
|
506
|
+
'grounding',
|
|
507
|
+
'media_resolution',
|
|
508
|
+
'models',
|
|
509
|
+
'all',
|
|
510
|
+
])
|
|
511
|
+
.optional()
|
|
512
|
+
.default('overview')
|
|
513
|
+
.describe('Help topic to display'),
|
|
514
|
+
},
|
|
515
|
+
}, async ({ topic }) => {
|
|
516
|
+
if (topic === 'all') {
|
|
517
|
+
const allTopics = Object.keys(HELP_TOPICS)
|
|
518
|
+
.map((t) => HELP_TOPICS[t])
|
|
519
|
+
.join('\n\n---\n\n');
|
|
520
|
+
return { content: [{ type: 'text', text: allTopics }] };
|
|
521
|
+
}
|
|
522
|
+
const content = HELP_TOPICS[topic];
|
|
523
|
+
if (!content) {
|
|
524
|
+
return {
|
|
525
|
+
content: [{
|
|
526
|
+
type: 'text',
|
|
527
|
+
text: `Unknown help topic: ${topic}\n\nAvailable topics:\n${Object.keys(HELP_TOPICS).join('\n')}`,
|
|
528
|
+
}],
|
|
529
|
+
};
|
|
530
|
+
}
|
|
531
|
+
return { content: [{ type: 'text', text: content }] };
|
|
532
|
+
});
|
|
533
|
+
}
|
|
534
|
+
//# sourceMappingURL=gemini-help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini-help.js","sourceRoot":"","sources":["../../src/tools/gemini-help.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,MAAM,WAAW,GAA2B;IAC1C,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;qDAwByC;IAEnD,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwDb;IAEL,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAmDsC;IAErD,cAAc,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAwDiB;IAEjC,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mDA+C2C;IAEjD,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAqD4B;IAE3C,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDAqDoC;IAE/C,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yDAkEqC;IAEvD,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0EA2EgE;CACzE,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,gFAAgF;QAC7F,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;gBACZ,UAAU;gBACV,kBAAkB;gBAClB,eAAe;gBACf,gBAAgB;gBAChB,MAAM;gBACN,eAAe;gBACf,WAAW;gBACX,kBAAkB;gBAClB,QAAQ;gBACR,KAAK;aACN,CAAC;iBACC,QAAQ,EAAE;iBACV,OAAO,CAAC,UAAU,CAAC;iBACnB,QAAQ,CAAC,uBAAuB,CAAC;SACrC;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;iBACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;iBAC1B,IAAI,CAAC,aAAa,CAAC,CAAC;YACvB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACnE,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,uBAAuB,KAAK,0BAA0B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBAClG,CAAC;aACH,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt Assistant Tool - Modular Handler
|
|
3
|
+
*
|
|
4
|
+
* Clean architecture for easy expansion:
|
|
5
|
+
* 1. Domain modules live in ./prompt-library/
|
|
6
|
+
* 2. Each domain exports enhance*, get*, validate* functions
|
|
7
|
+
* 3. Add new domains by importing and adding cases
|
|
8
|
+
*/
|
|
9
|
+
export interface PromptAssistantArgs {
|
|
10
|
+
request_type: 'chart_design' | 'optimize_chart' | 'validate_chart' | 'get_palette';
|
|
11
|
+
color_scheme?: 'professional' | 'editorial' | 'scientific' | 'minimal' | 'dark';
|
|
12
|
+
chart_type?: 'line' | 'bar' | 'scatter' | 'area' | 'pie' | 'network' | 'heatmap' | 'treemap';
|
|
13
|
+
emphasis?: 'data-ink' | 'storytelling' | 'exploration' | 'presentation';
|
|
14
|
+
current_prompt?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Main handler - routes to appropriate domain module
|
|
18
|
+
*/
|
|
19
|
+
export declare function handlePromptAssistant(args: PromptAssistantArgs): Promise<string>;
|
|
20
|
+
//# sourceMappingURL=gemini-prompt-assistant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini-prompt-assistant.d.ts","sourceRoot":"","sources":["../../src/tools/gemini-prompt-assistant.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,aAAa,CAAC;IAEnF,YAAY,CAAC,EAAE,cAAc,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;IAChF,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC7F,QAAQ,CAAC,EAAE,UAAU,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,CAAC;IAExE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqItF"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt Assistant Tool - Modular Handler
|
|
3
|
+
*
|
|
4
|
+
* Clean architecture for easy expansion:
|
|
5
|
+
* 1. Domain modules live in ./prompt-library/
|
|
6
|
+
* 2. Each domain exports enhance*, get*, validate* functions
|
|
7
|
+
* 3. Add new domains by importing and adding cases
|
|
8
|
+
*/
|
|
9
|
+
import { enhanceChartPrompt, getChartColorPalette, validateChartPrompt } from './prompt-library/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* Main handler - routes to appropriate domain module
|
|
12
|
+
*/
|
|
13
|
+
export async function handlePromptAssistant(args) {
|
|
14
|
+
const { request_type } = args;
|
|
15
|
+
// CHART DESIGN ENHANCEMENT
|
|
16
|
+
if (request_type === 'chart_design') {
|
|
17
|
+
const basePrompt = args.current_prompt || 'Professional data visualization';
|
|
18
|
+
const enhanced = enhanceChartPrompt(basePrompt, {
|
|
19
|
+
colorScheme: args.color_scheme,
|
|
20
|
+
chartType: args.chart_type,
|
|
21
|
+
emphasis: args.emphasis
|
|
22
|
+
});
|
|
23
|
+
return `# Enhanced Chart Design Prompt
|
|
24
|
+
|
|
25
|
+
${enhanced}
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
**USAGE:**
|
|
30
|
+
\`\`\`javascript
|
|
31
|
+
Use gemini:generate_image with:
|
|
32
|
+
prompt: "${enhanced.slice(0, 200)}..."
|
|
33
|
+
aspectRatio: "16:9"
|
|
34
|
+
\`\`\`
|
|
35
|
+
|
|
36
|
+
**CUSTOMIZE:**
|
|
37
|
+
• Try different \`color_scheme\`: professional, editorial, scientific, minimal, dark
|
|
38
|
+
• Adjust \`chart_type\` for specifics: line, bar, scatter, pie, heatmap
|
|
39
|
+
• Set \`emphasis\` for audience: data-ink, storytelling, exploration, presentation`;
|
|
40
|
+
}
|
|
41
|
+
// OPTIMIZE EXISTING CHART PROMPT
|
|
42
|
+
if (request_type === 'optimize_chart') {
|
|
43
|
+
if (!args.current_prompt) {
|
|
44
|
+
return 'Error: current_prompt required for optimization';
|
|
45
|
+
}
|
|
46
|
+
const validation = validateChartPrompt(args.current_prompt);
|
|
47
|
+
const enhanced = enhanceChartPrompt(args.current_prompt, {
|
|
48
|
+
colorScheme: args.color_scheme,
|
|
49
|
+
chartType: args.chart_type,
|
|
50
|
+
emphasis: args.emphasis
|
|
51
|
+
});
|
|
52
|
+
let response = `# Chart Prompt Optimization
|
|
53
|
+
|
|
54
|
+
**Original Prompt:**
|
|
55
|
+
${args.current_prompt}
|
|
56
|
+
|
|
57
|
+
`;
|
|
58
|
+
if (validation.warnings.length > 0) {
|
|
59
|
+
response += `**⚠️ Warnings:**\n`;
|
|
60
|
+
validation.warnings.forEach(w => response += `• ${w}\n`);
|
|
61
|
+
response += `\n`;
|
|
62
|
+
}
|
|
63
|
+
if (validation.suggestions.length > 0) {
|
|
64
|
+
response += `**💡 Suggestions:**\n`;
|
|
65
|
+
validation.suggestions.forEach(s => response += `• ${s}\n`);
|
|
66
|
+
response += `\n`;
|
|
67
|
+
}
|
|
68
|
+
response += `**✨ Optimized Prompt:**\n${enhanced}`;
|
|
69
|
+
return response;
|
|
70
|
+
}
|
|
71
|
+
// VALIDATE CHART PROMPT
|
|
72
|
+
if (request_type === 'validate_chart') {
|
|
73
|
+
if (!args.current_prompt) {
|
|
74
|
+
return 'Error: current_prompt required for validation';
|
|
75
|
+
}
|
|
76
|
+
const validation = validateChartPrompt(args.current_prompt);
|
|
77
|
+
let response = `# Chart Prompt Validation
|
|
78
|
+
|
|
79
|
+
**Prompt:** ${args.current_prompt}
|
|
80
|
+
|
|
81
|
+
**Status:** ${validation.valid ? '✅ Looks good' : '⚠️ Issues found'}
|
|
82
|
+
|
|
83
|
+
`;
|
|
84
|
+
if (validation.warnings.length > 0) {
|
|
85
|
+
response += `\n**Warnings:**\n`;
|
|
86
|
+
validation.warnings.forEach(w => response += `• ${w}\n`);
|
|
87
|
+
}
|
|
88
|
+
if (validation.suggestions.length > 0) {
|
|
89
|
+
response += `\n**Suggestions:**\n`;
|
|
90
|
+
validation.suggestions.forEach(s => response += `• ${s}\n`);
|
|
91
|
+
}
|
|
92
|
+
return response;
|
|
93
|
+
}
|
|
94
|
+
// GET COLOR PALETTE
|
|
95
|
+
if (request_type === 'get_palette') {
|
|
96
|
+
const scheme = args.color_scheme || 'professional';
|
|
97
|
+
const palette = getChartColorPalette(scheme);
|
|
98
|
+
return `# ${scheme.charAt(0).toUpperCase() + scheme.slice(1)} Color Palette
|
|
99
|
+
|
|
100
|
+
**Description:** ${palette.description}
|
|
101
|
+
|
|
102
|
+
**Primary Colors:**
|
|
103
|
+
${palette.primary.map(c => `• ${c}`).join('\n')}
|
|
104
|
+
|
|
105
|
+
**Neutral Grays:**
|
|
106
|
+
${palette.neutral.map(c => `• ${c}`).join('\n')}
|
|
107
|
+
|
|
108
|
+
**Accent Colors:**
|
|
109
|
+
${palette.accent.map(c => `• ${c}`).join('\n')}
|
|
110
|
+
|
|
111
|
+
**Usage in Prompt:**
|
|
112
|
+
"Use professional colour palette: primary ${palette.primary.slice(0, 3).join(', ')}; neutral greys ${palette.neutral[0]} to ${palette.neutral[palette.neutral.length - 1]}"
|
|
113
|
+
|
|
114
|
+
**All Available Schemes:**
|
|
115
|
+
• professional - IBM Carbon, Tailwind-inspired
|
|
116
|
+
• editorial - FiveThirtyEight, Economist-inspired
|
|
117
|
+
• scientific - Nature, Science journal-inspired
|
|
118
|
+
• minimal - Edward Tufte data-ink approach
|
|
119
|
+
• dark - Observable, GitHub dark mode`;
|
|
120
|
+
}
|
|
121
|
+
return `Unknown request_type: ${request_type}
|
|
122
|
+
|
|
123
|
+
Available request types:
|
|
124
|
+
• chart_design - Get professional chart design system
|
|
125
|
+
• optimize_chart - Improve existing chart prompt
|
|
126
|
+
• validate_chart - Check prompt for anti-patterns
|
|
127
|
+
• get_palette - View color scheme details`;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=gemini-prompt-assistant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini-prompt-assistant.js","sourceRoot":"","sources":["../../src/tools/gemini-prompt-assistant.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAY1G;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAyB;IACnE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAE9B,2BAA2B;IAC3B,IAAI,YAAY,KAAK,cAAc,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,IAAI,iCAAiC,CAAC;QAC5E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,EAAE;YAC9C,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QAEH,OAAO;;EAET,QAAQ;;;;;;;aAOG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;;;;;;;mFAOgD,CAAC;IAClF,CAAC;IAED,iCAAiC;IACjC,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,iDAAiD,CAAC;QAC3D,CAAC;QAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE;YACvD,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAG;;;EAGjB,IAAI,CAAC,cAAc;;CAEpB,CAAC;QAEE,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,QAAQ,IAAI,oBAAoB,CAAC;YACjC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;YACzD,QAAQ,IAAI,IAAI,CAAC;QACnB,CAAC;QAED,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,QAAQ,IAAI,uBAAuB,CAAC;YACpC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5D,QAAQ,IAAI,IAAI,CAAC;QACnB,CAAC;QAED,QAAQ,IAAI,4BAA4B,QAAQ,EAAE,CAAC;QAEnD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,wBAAwB;IACxB,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,+CAA+C,CAAC;QACzD,CAAC;QAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE5D,IAAI,QAAQ,GAAG;;cAEL,IAAI,CAAC,cAAc;;cAEnB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB;;CAElE,CAAC;QAEE,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,QAAQ,IAAI,mBAAmB,CAAC;YAChC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,QAAQ,IAAI,sBAAsB,CAAC;YACnC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,oBAAoB;IACpB,IAAI,YAAY,KAAK,aAAa,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,cAAc,CAAC;QACnD,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAE7C,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;;mBAE7C,OAAO,CAAC,WAAW;;;EAGpC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAG7C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAG7C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;4CAGF,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;;;;;;;sCAOnI,CAAC;IACrC,CAAC;IAED,OAAO,yBAAyB,YAAY;;;;;;0CAMJ,CAAC;AAC3C,CAAC"}
|