@houtini/gemini-mcp 1.4.2 → 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 -784
- 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/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +45 -11
- package/dist/utils/logger.js.map +1 -1
- 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/houtini-logo.jpg +0 -0
- package/package.json +24 -8
- package/server.json +30 -0
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chart & Data Visualization Prompt Enhancement v2.0
|
|
3
|
+
*
|
|
4
|
+
* Expanded design systems based on influential data visualization pioneers:
|
|
5
|
+
* - Edward Tufte (minimal data-ink)
|
|
6
|
+
* - Cole Nussbaumer Knaflic (strategic highlighting)
|
|
7
|
+
* - Observable/D3.js (interactive exploration)
|
|
8
|
+
* - FiveThirtyEight/The Economist (editorial storytelling)
|
|
9
|
+
* - Financial Times (elegant journalism)
|
|
10
|
+
* - Nature/Science journals (academic rigor)
|
|
11
|
+
* - Bloomberg/Fintech (high-density terminals)
|
|
12
|
+
* - W.E.B. Du Bois (modernist geometry)
|
|
13
|
+
* - IBM Carbon/Tailwind (enterprise UI)
|
|
14
|
+
*
|
|
15
|
+
* Usage:
|
|
16
|
+
* const enhanced = enhanceChartPrompt(basePrompt, {
|
|
17
|
+
* colorScheme: 'storytelling',
|
|
18
|
+
* chartType: 'bar'
|
|
19
|
+
* });
|
|
20
|
+
*/
|
|
21
|
+
const COLOR_SYSTEMS = {
|
|
22
|
+
professional: {
|
|
23
|
+
background: '#ffffff',
|
|
24
|
+
primary: ['#2563eb', '#7c3aed', '#dc2626', '#ea580c', '#ca8a04'],
|
|
25
|
+
neutral: ['#0f172a', '#475569', '#94a3b8', '#cbd5e1', '#f1f5f9'],
|
|
26
|
+
accent: ['#06b6d4', '#10b981', '#f59e0b'],
|
|
27
|
+
text: '#0f172a',
|
|
28
|
+
gridlines: '#e5e7eb',
|
|
29
|
+
axis: '#6b7280',
|
|
30
|
+
description: 'IBM Carbon, Tailwind-inspired professional palette'
|
|
31
|
+
},
|
|
32
|
+
editorial: {
|
|
33
|
+
background: '#ffffff',
|
|
34
|
+
primary: ['#e63946', '#f1faee', '#a8dadc', '#457b9d', '#1d3557'],
|
|
35
|
+
neutral: ['#2b2d42', '#8d99ae', '#edf2f4'],
|
|
36
|
+
accent: ['#ff6b6b', '#4ecdc4'],
|
|
37
|
+
text: '#2b2d42',
|
|
38
|
+
gridlines: '#edf2f4',
|
|
39
|
+
axis: '#8d99ae',
|
|
40
|
+
description: 'FiveThirtyEight, Economist-inspired editorial colours'
|
|
41
|
+
},
|
|
42
|
+
scientific: {
|
|
43
|
+
background: '#ffffff',
|
|
44
|
+
primary: ['#003f5c', '#58508d', '#bc5090', '#ff6361', '#ffa600'],
|
|
45
|
+
neutral: ['#1a1a1a', '#4a4a4a', '#8a8a8a', '#cacaca', '#f0f0f0'],
|
|
46
|
+
accent: ['#00d9ff', '#7209b7'],
|
|
47
|
+
text: '#1a1a1a',
|
|
48
|
+
gridlines: '#e5e5e5',
|
|
49
|
+
axis: '#4a4a4a',
|
|
50
|
+
description: 'Nature, Science journal-inspired academic palette'
|
|
51
|
+
},
|
|
52
|
+
minimal: {
|
|
53
|
+
background: '#fafafa',
|
|
54
|
+
primary: ['#000000', '#404040', '#737373', '#a6a6a6', '#d9d9d9'],
|
|
55
|
+
neutral: ['#fafafa', '#f5f5f5', '#e5e5e5'],
|
|
56
|
+
accent: ['#2563eb', '#dc2626'],
|
|
57
|
+
text: '#000000',
|
|
58
|
+
gridlines: '#f5f5f5',
|
|
59
|
+
axis: '#737373',
|
|
60
|
+
description: 'Edward Tufte-inspired minimal data-ink approach'
|
|
61
|
+
},
|
|
62
|
+
dark: {
|
|
63
|
+
background: '#0a0a0a',
|
|
64
|
+
primary: ['#60a5fa', '#a78bfa', '#f472b6', '#fb923c', '#fbbf24'],
|
|
65
|
+
neutral: ['#0a0a0a', '#1f1f1f', '#404040', '#737373', '#a6a6a6'],
|
|
66
|
+
accent: ['#22d3ee', '#34d399'],
|
|
67
|
+
text: '#ffffff',
|
|
68
|
+
gridlines: '#1f1f1f',
|
|
69
|
+
axis: '#737373',
|
|
70
|
+
description: 'Observable dark mode, GitHub dark-inspired'
|
|
71
|
+
},
|
|
72
|
+
storytelling: {
|
|
73
|
+
background: '#ffffff',
|
|
74
|
+
primary: ['#bfbfbf', '#999999', '#737373'], // Base data (muted)
|
|
75
|
+
neutral: ['#595959', '#d9d9d9', '#f2f2f2'],
|
|
76
|
+
accent: ['#005a9c', '#f26c23', '#c00000'], // Highlight colors (pick one)
|
|
77
|
+
text: '#262626',
|
|
78
|
+
gridlines: '#f2f2f2',
|
|
79
|
+
axis: '#d9d9d9',
|
|
80
|
+
description: 'Cole Nussbaumer Knaflic - strategic highlighting with pre-attentive processing'
|
|
81
|
+
},
|
|
82
|
+
financial: {
|
|
83
|
+
background: '#fff1e5', // Famous FT Pink
|
|
84
|
+
primary: ['#0f5499', '#0d7680', '#cc0000', '#5a298c', '#d9a300'],
|
|
85
|
+
neutral: ['#33302e', '#e9decf'],
|
|
86
|
+
accent: ['#0f5499', '#cc0000'],
|
|
87
|
+
text: '#33302e',
|
|
88
|
+
gridlines: '#ffffff', // White gridlines on pink background
|
|
89
|
+
axis: '#33302e',
|
|
90
|
+
description: 'Financial Times - elegant editorial with signature salmon background'
|
|
91
|
+
},
|
|
92
|
+
terminal: {
|
|
93
|
+
background: '#000000',
|
|
94
|
+
primary: ['#00e3d1', '#34e05b', '#ff2b6d', '#ff8e15', '#fdee00'], // Electric/neon
|
|
95
|
+
neutral: ['#111111', '#2a2a2a', '#333333'],
|
|
96
|
+
accent: ['#00e3d1', '#ff2b6d'],
|
|
97
|
+
text: '#ffffff',
|
|
98
|
+
gridlines: '#2a2a2a',
|
|
99
|
+
axis: '#aaaaaa',
|
|
100
|
+
description: 'Bloomberg/Fintech - high-density terminal with electric neon accents'
|
|
101
|
+
},
|
|
102
|
+
modernist: {
|
|
103
|
+
background: '#e5ded0', // Modern parchment/manila
|
|
104
|
+
primary: ['#dc143c', '#009b77', '#ffd700', '#000080', '#654321'], // Bold primary colors
|
|
105
|
+
neutral: ['#1a1a1a', '#e5ded0'],
|
|
106
|
+
accent: ['#dc143c', '#009b77'],
|
|
107
|
+
text: '#1a1a1a',
|
|
108
|
+
gridlines: 'transparent', // No gridlines in modernist
|
|
109
|
+
axis: '#1a1a1a',
|
|
110
|
+
description: 'W.E.B. Du Bois - bold geometric modernism with stark contrasts'
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
const TYPOGRAPHY_SYSTEMS = {
|
|
114
|
+
professional: {
|
|
115
|
+
title: 'Inter or SF Pro',
|
|
116
|
+
labels: 'Inter or Roboto',
|
|
117
|
+
data: 'JetBrains Mono',
|
|
118
|
+
sizes: { title: '18-24px', subtitle: '14-16px', labels: '11-13px', annotations: '10-12px' },
|
|
119
|
+
weights: { title: 600, labels: 500, data: 400 }
|
|
120
|
+
},
|
|
121
|
+
editorial: {
|
|
122
|
+
title: 'Playfair Display',
|
|
123
|
+
labels: 'Franklin Gothic',
|
|
124
|
+
data: 'Courier New',
|
|
125
|
+
sizes: { title: '24-32px', subtitle: '16-20px', labels: '12-14px', annotations: '11-13px' },
|
|
126
|
+
weights: { title: 700, labels: 400, data: 400 }
|
|
127
|
+
},
|
|
128
|
+
scientific: {
|
|
129
|
+
title: 'Arial',
|
|
130
|
+
labels: 'Arial',
|
|
131
|
+
data: 'Monaco',
|
|
132
|
+
sizes: { title: '16-20px', subtitle: '13-15px', labels: '10-12px', annotations: '9-11px' },
|
|
133
|
+
weights: { title: 600, labels: 400, data: 400 }
|
|
134
|
+
},
|
|
135
|
+
storytelling: {
|
|
136
|
+
title: 'Inter or Helvetica Neue',
|
|
137
|
+
labels: 'Inter or Arial',
|
|
138
|
+
data: 'Inter',
|
|
139
|
+
sizes: { title: '20-26px', subtitle: '14-16px', labels: '11-13px', annotations: '10-12px' },
|
|
140
|
+
weights: { title: 700, labels: 400, data: 700 } // Bold for highlighted data
|
|
141
|
+
},
|
|
142
|
+
financial: {
|
|
143
|
+
title: 'Merriweather or Playfair Display', // Serif for narrative
|
|
144
|
+
labels: 'Open Sans or Fira Sans', // Sans for data
|
|
145
|
+
data: 'Open Sans',
|
|
146
|
+
sizes: { title: '22-28px', subtitle: '14-18px', labels: '11-13px', annotations: '10-12px' },
|
|
147
|
+
weights: { title: 600, labels: 400, data: 400 }
|
|
148
|
+
},
|
|
149
|
+
terminal: {
|
|
150
|
+
title: 'Inter',
|
|
151
|
+
labels: 'Roboto Mono or IBM Plex Mono', // Monospace for precision
|
|
152
|
+
data: 'JetBrains Mono',
|
|
153
|
+
sizes: { title: '16-22px', subtitle: '13-16px', labels: '10-12px', annotations: '9-11px' },
|
|
154
|
+
weights: { title: 700, labels: 400, data: 400 }
|
|
155
|
+
},
|
|
156
|
+
modernist: {
|
|
157
|
+
title: 'Jost or Futura', // Geometric sans
|
|
158
|
+
labels: 'Jost or Public Sans',
|
|
159
|
+
data: 'Jost',
|
|
160
|
+
sizes: { title: '24-32px', subtitle: '16-20px', labels: '12-14px', annotations: '11-13px' },
|
|
161
|
+
weights: { title: 700, labels: 600, data: 700 }
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
const DESIGN_PRINCIPLES = {
|
|
165
|
+
'data-ink': `
|
|
166
|
+
• Maximize data-ink ratio (Tufte principle)
|
|
167
|
+
• Remove chartjunk and unnecessary decoration
|
|
168
|
+
• Use subtle gridlines (1px, 10-15% opacity)
|
|
169
|
+
• Direct labeling instead of legends when possible
|
|
170
|
+
• Minimal borders and backgrounds
|
|
171
|
+
`,
|
|
172
|
+
'storytelling': `
|
|
173
|
+
• Clear visual hierarchy with focal points
|
|
174
|
+
• Progressive disclosure of complexity
|
|
175
|
+
• Annotations and callouts for key insights
|
|
176
|
+
• Contextual reference lines or benchmarks
|
|
177
|
+
• Narrative flow through chart elements
|
|
178
|
+
`,
|
|
179
|
+
'exploration': `
|
|
180
|
+
• Rich interactive affordances suggested visually
|
|
181
|
+
• Tooltip regions clearly defined
|
|
182
|
+
• Hover states indicated subtly
|
|
183
|
+
• Multiple layers of detail accessibility
|
|
184
|
+
• Clear filtering and selection states
|
|
185
|
+
`,
|
|
186
|
+
'presentation': `
|
|
187
|
+
• High contrast for projector/screen visibility
|
|
188
|
+
• Large, readable text (minimum 12px)
|
|
189
|
+
• Strong visual anchors and structure
|
|
190
|
+
• Balanced whitespace and breathing room
|
|
191
|
+
• Professional polish without decoration
|
|
192
|
+
`
|
|
193
|
+
};
|
|
194
|
+
const SCHEME_SPECIFIC_RULES = {
|
|
195
|
+
storytelling: `
|
|
196
|
+
STORYTELLING-SPECIFIC RULES (Cole Nussbaumer Knaflic):
|
|
197
|
+
• NO LEGENDS: Direct label lines/bars at endpoints using same colour as data
|
|
198
|
+
• ACTIONABLE TITLES: Title must be a sentence explaining the takeaway (e.g., "Sales dipped in Q3")
|
|
199
|
+
- Highlight key words (e.g., "dipped") in the accent colour
|
|
200
|
+
• Y-AXIS: Remove Y-axis line completely; keep solid X-axis line only
|
|
201
|
+
• GRIDLINES: No vertical gridlines; horizontal gridlines extremely faint (#f2f2f2) or removed
|
|
202
|
+
• COLOUR STRATEGY: Everything defaults to muted grey (#bfbfbf, #999999)
|
|
203
|
+
- Only ONE data series/point highlighted in bold accent (#005a9c, #f26c23, or #c00000)
|
|
204
|
+
• PRE-ATTENTIVE PROCESSING: Design so viewer knows where to look instantly
|
|
205
|
+
`,
|
|
206
|
+
financial: `
|
|
207
|
+
FINANCIAL-SPECIFIC RULES (Financial Times):
|
|
208
|
+
• TOP BORDER: Include solid 2px border at top of chart (#33302e)
|
|
209
|
+
• GRIDLINES: Thin horizontal lines in WHITE (#ffffff) or darker pink (#e9decf) behind data
|
|
210
|
+
• AXIS LINES: Remove Y and X axis bounding lines; let gridlines define space
|
|
211
|
+
• TITLE PLACEMENT: Top-left aligned; large serif title + sans-serif subtitle
|
|
212
|
+
• BACKGROUND: Always use FT Pink (#fff1e5) - reduces glare, distinctive editorial feel
|
|
213
|
+
`,
|
|
214
|
+
terminal: `
|
|
215
|
+
TERMINAL-SPECIFIC RULES (Bloomberg/Fintech):
|
|
216
|
+
• ZERO FILL: Avoid filled areas unless 10-15% opacity; use crisp 2px neon lines
|
|
217
|
+
• AXIS PLACEMENT: Y-axis labels on RIGHT side (closer to recent data in time-series)
|
|
218
|
+
• CROSSHAIRS: Include subtle crosshairs/vertical tooltip line (#444444 dashed)
|
|
219
|
+
• BORDERS: Thin 1px solid border (#333333) around entire chart area
|
|
220
|
+
• HIGH CONTRAST: Electric neon colours on absolute black for OLED screens
|
|
221
|
+
`,
|
|
222
|
+
modernist: `
|
|
223
|
+
MODERNIST-SPECIFIC RULES (W.E.B. Du Bois):
|
|
224
|
+
• OUTLINES: Every shape has crisp 1-2px solid #1a1a1a stroke
|
|
225
|
+
• NO GRADIENTS/OPACITY: Colours must be 100% solid and opaque
|
|
226
|
+
• NO GRIDLINES: Use direct data labels on shapes instead
|
|
227
|
+
• TITLES: Centered, all-caps, generous letter-spacing (0.05em)
|
|
228
|
+
• GEOMETRIC: Bold, poster-like blocks; flat high-contrast colours
|
|
229
|
+
`
|
|
230
|
+
};
|
|
231
|
+
const CHART_SPECIFICS = {
|
|
232
|
+
line: `
|
|
233
|
+
• Line weight: 2-3px for primary, 1-2px for secondary
|
|
234
|
+
• Point markers only at data points, not everywhere
|
|
235
|
+
• Differentiate series with both colour AND line style
|
|
236
|
+
• Y-axis starts at 0 unless justified otherwise
|
|
237
|
+
`,
|
|
238
|
+
bar: `
|
|
239
|
+
• Bar spacing: 10-30% of bar width
|
|
240
|
+
• Sorted by value unless categorical order matters
|
|
241
|
+
• Horizontal bars for long labels
|
|
242
|
+
• Subtle rounded corners (2-4px) for modern feel
|
|
243
|
+
`,
|
|
244
|
+
scatter: `
|
|
245
|
+
• Point size: 4-8px diameter
|
|
246
|
+
• 30-50% opacity for overlapping points
|
|
247
|
+
• Trend lines should be subtle (dashed, lighter colour)
|
|
248
|
+
• Legend shows both shape AND colour
|
|
249
|
+
`,
|
|
250
|
+
pie: `
|
|
251
|
+
• Maximum 5-7 slices (combine small values into "Other")
|
|
252
|
+
• Start at 12 o'clock, arrange clockwise by size
|
|
253
|
+
• Consider donut chart (60-70% inner radius)
|
|
254
|
+
• Direct slice labeling with values
|
|
255
|
+
`,
|
|
256
|
+
area: `
|
|
257
|
+
• Stack order matters (most important on bottom)
|
|
258
|
+
• 60-80% opacity to show overlaps
|
|
259
|
+
• Clear boundaries between areas
|
|
260
|
+
• Consider streamgraph for organic feel
|
|
261
|
+
`,
|
|
262
|
+
heatmap: `
|
|
263
|
+
• Sequential colour scale for continuous data
|
|
264
|
+
• Diverging scale for data with meaningful midpoint
|
|
265
|
+
• Include colour legend with numerical scale
|
|
266
|
+
• Cell annotations for key values
|
|
267
|
+
`,
|
|
268
|
+
network: `
|
|
269
|
+
• Node size represents importance
|
|
270
|
+
• Edge weight shows relationship strength
|
|
271
|
+
• Use force-directed or hierarchical layout
|
|
272
|
+
• Label key nodes only to avoid clutter
|
|
273
|
+
`,
|
|
274
|
+
treemap: `
|
|
275
|
+
• Colour encodes category or metric
|
|
276
|
+
• Size encodes primary value
|
|
277
|
+
• Border weight shows hierarchy level
|
|
278
|
+
• Include parent labels for context
|
|
279
|
+
`
|
|
280
|
+
};
|
|
281
|
+
/**
|
|
282
|
+
* Enhance a chart prompt with professional design system
|
|
283
|
+
*/
|
|
284
|
+
export function enhanceChartPrompt(basePrompt, options = {}) {
|
|
285
|
+
const { colorScheme = 'professional', chartType = 'bar', emphasis = 'data-ink' } = options;
|
|
286
|
+
const colors = COLOR_SYSTEMS[colorScheme];
|
|
287
|
+
// Map color scheme to typography system
|
|
288
|
+
const typographyKey = (['storytelling', 'financial', 'terminal', 'modernist'].includes(colorScheme))
|
|
289
|
+
? colorScheme
|
|
290
|
+
: (colorScheme === 'editorial' ? 'editorial' :
|
|
291
|
+
colorScheme === 'scientific' ? 'scientific' : 'professional');
|
|
292
|
+
const typography = TYPOGRAPHY_SYSTEMS[typographyKey];
|
|
293
|
+
const principles = DESIGN_PRINCIPLES[emphasis];
|
|
294
|
+
const specifics = CHART_SPECIFICS[chartType] || '';
|
|
295
|
+
// Include scheme-specific rules if available
|
|
296
|
+
const schemeRules = SCHEME_SPECIFIC_RULES[colorScheme] || '';
|
|
297
|
+
return `${basePrompt}
|
|
298
|
+
|
|
299
|
+
PROFESSIONAL DESIGN SYSTEM:
|
|
300
|
+
Style: ${colors.description}
|
|
301
|
+
|
|
302
|
+
COLOUR PALETTE:
|
|
303
|
+
Background: ${colors.background}
|
|
304
|
+
Primary data: ${colors.primary.join(', ')}
|
|
305
|
+
Neutral/greys: ${colors.neutral.join(', ')}
|
|
306
|
+
Accent highlights: ${colors.accent.join(', ')}
|
|
307
|
+
Text: ${colors.text}
|
|
308
|
+
Gridlines: ${colors.gridlines}
|
|
309
|
+
Axis: ${colors.axis}
|
|
310
|
+
|
|
311
|
+
TYPOGRAPHY:
|
|
312
|
+
• Titles: ${typography.title} at ${typography.sizes.title}, font-weight ${typography.weights.title}
|
|
313
|
+
• Axis labels: ${typography.labels} at ${typography.sizes.labels}, font-weight ${typography.weights.labels}
|
|
314
|
+
• Data labels: ${typography.data} at ${typography.sizes.labels}, font-weight ${typography.weights.data}
|
|
315
|
+
• Annotations: ${typography.labels} at ${typography.sizes.annotations}, font-weight 400
|
|
316
|
+
|
|
317
|
+
DESIGN PRINCIPLES:${principles}
|
|
318
|
+
${schemeRules}
|
|
319
|
+
CHART-SPECIFIC GUIDELINES:${specifics}
|
|
320
|
+
|
|
321
|
+
LAYOUT & SPACING:
|
|
322
|
+
• Margins: 40-60px (top/bottom), 50-80px (left/right) for axis labels
|
|
323
|
+
• Title placement: top-left or centered, 20-30px from chart area
|
|
324
|
+
• Legend: top-right or bottom, with 16px item spacing (if legends are used)
|
|
325
|
+
• Grid alignment: aligned to data ticks
|
|
326
|
+
|
|
327
|
+
AVOID:
|
|
328
|
+
❌ 3D effects, shadows, or gradients on data elements (unless modernist scheme)
|
|
329
|
+
❌ Decorative borders, backgrounds, or textures
|
|
330
|
+
❌ Comic Sans, Papyrus, or novelty fonts
|
|
331
|
+
❌ Unnecessary chart elements (chartjunk)
|
|
332
|
+
❌ Default chart library aesthetics (Excel, Google Sheets look)
|
|
333
|
+
|
|
334
|
+
ACHIEVE:
|
|
335
|
+
✓ Clean, confident, professional presentation
|
|
336
|
+
✓ Accessibility (WCAG AA contrast ratios minimum)
|
|
337
|
+
✓ Print-ready quality (300 DPI equivalent)
|
|
338
|
+
✓ Timeless design that won't look dated
|
|
339
|
+
✓ Focus on data clarity and insight`;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Get color palette for a specific scheme
|
|
343
|
+
*/
|
|
344
|
+
export function getChartColorPalette(scheme) {
|
|
345
|
+
return COLOR_SYSTEMS[scheme];
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Get typography system for a specific scheme
|
|
349
|
+
*/
|
|
350
|
+
export function getChartTypography(scheme) {
|
|
351
|
+
const typographyKey = (['storytelling', 'financial', 'terminal', 'modernist'].includes(scheme))
|
|
352
|
+
? scheme
|
|
353
|
+
: (scheme === 'editorial' ? 'editorial' :
|
|
354
|
+
scheme === 'scientific' ? 'scientific' : 'professional');
|
|
355
|
+
return TYPOGRAPHY_SYSTEMS[typographyKey];
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Validate chart prompt for common anti-patterns
|
|
359
|
+
*/
|
|
360
|
+
export function validateChartPrompt(prompt) {
|
|
361
|
+
const warnings = [];
|
|
362
|
+
const suggestions = [];
|
|
363
|
+
const lower = prompt.toLowerCase();
|
|
364
|
+
if (lower.includes('3d') || lower.includes('shadow')) {
|
|
365
|
+
warnings.push('3D effects and shadows reduce data clarity');
|
|
366
|
+
suggestions.push('Use flat design with subtle depth cues instead');
|
|
367
|
+
}
|
|
368
|
+
if (lower.includes('gradient') && lower.includes('data')) {
|
|
369
|
+
warnings.push('Gradients on data elements can be distracting');
|
|
370
|
+
suggestions.push('Reserve gradients for backgrounds only, if at all');
|
|
371
|
+
}
|
|
372
|
+
if (!lower.includes('color') && !lower.includes('colour')) {
|
|
373
|
+
suggestions.push('Consider specifying a professional colour palette');
|
|
374
|
+
}
|
|
375
|
+
if (!lower.includes('font') && !lower.includes('typography')) {
|
|
376
|
+
suggestions.push('Specify typography for more professional results');
|
|
377
|
+
}
|
|
378
|
+
return {
|
|
379
|
+
valid: warnings.length === 0,
|
|
380
|
+
warnings,
|
|
381
|
+
suggestions
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
//# sourceMappingURL=charts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"charts.js","sourceRoot":"","sources":["../../../src/tools/prompt-library/charts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt Library - Modular Prompt Enhancement System
|
|
3
|
+
*
|
|
4
|
+
* Architecture: Each domain (charts, photography, etc.) is a separate module
|
|
5
|
+
* that exports enhancement functions. Easy to add new domains.
|
|
6
|
+
*/
|
|
7
|
+
export { enhanceChartPrompt, getChartColorPalette, validateChartPrompt } from './charts.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/prompt-library/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt Library - Modular Prompt Enhancement System
|
|
3
|
+
*
|
|
4
|
+
* Architecture: Each domain (charts, photography, etc.) is a separate module
|
|
5
|
+
* that exports enhancement functions. Easy to add new domains.
|
|
6
|
+
*/
|
|
7
|
+
export { enhanceChartPrompt, getChartColorPalette, validateChartPrompt } from './charts.js';
|
|
8
|
+
// Future: export { enhancePhotographyPrompt, ... } from './photography.js';
|
|
9
|
+
// Future: export { enhanceCinematicPrompt, ... } from './cinematic.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/prompt-library/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC5F,4EAA4E;AAC5E,wEAAwE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-analyze-image.d.ts","sourceRoot":"","sources":["../../src/tools/register-analyze-image.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAkE/C"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
import logger from '../utils/logger.js';
|
|
3
|
+
import { createToolResult } from '../utils/error-handler.js';
|
|
4
|
+
import { toolError } from '../utils/tool-wrapper.js';
|
|
5
|
+
import { resolveImageInputs } from '../utils/resolve-images.js';
|
|
6
|
+
import { imageInputSchema } from './schemas.js';
|
|
7
|
+
export function register(ctx) {
|
|
8
|
+
ctx.server.registerTool('analyze_image', {
|
|
9
|
+
title: 'Analyze Image',
|
|
10
|
+
description: 'Analyze and extract information from one or more images using Gemini multimodal understanding. ' +
|
|
11
|
+
'Returns a text analysis — no image is generated. ' +
|
|
12
|
+
'Default model: gemini-3-pro-preview.',
|
|
13
|
+
inputSchema: {
|
|
14
|
+
images: z.array(imageInputSchema)
|
|
15
|
+
.min(1)
|
|
16
|
+
.describe('One or more images to analyze'),
|
|
17
|
+
prompt: z.string()
|
|
18
|
+
.describe('What to analyze or extract from the image(s)'),
|
|
19
|
+
model: z.string()
|
|
20
|
+
.optional()
|
|
21
|
+
.describe('Model to use (default: gemini-3-pro-preview)'),
|
|
22
|
+
max_tokens: z.number()
|
|
23
|
+
.int()
|
|
24
|
+
.min(1)
|
|
25
|
+
.max(65536)
|
|
26
|
+
.optional()
|
|
27
|
+
.default(16384)
|
|
28
|
+
.describe('Maximum tokens in response (default 16384, up to 64K output limit)'),
|
|
29
|
+
global_media_resolution: z.enum([
|
|
30
|
+
'MEDIA_RESOLUTION_LOW',
|
|
31
|
+
'MEDIA_RESOLUTION_MEDIUM',
|
|
32
|
+
'MEDIA_RESOLUTION_HIGH'
|
|
33
|
+
])
|
|
34
|
+
.optional()
|
|
35
|
+
.describe('Global image quality for cost optimization. MEDIUM recommended for PDFs (50% savings).')
|
|
36
|
+
},
|
|
37
|
+
outputSchema: {
|
|
38
|
+
content: z.string(),
|
|
39
|
+
success: z.boolean()
|
|
40
|
+
}
|
|
41
|
+
}, async ({ images, prompt, model, max_tokens, global_media_resolution }) => {
|
|
42
|
+
try {
|
|
43
|
+
logger.info('Executing analyze_image tool', {
|
|
44
|
+
model,
|
|
45
|
+
imageCount: images.length,
|
|
46
|
+
globalMediaResolution: global_media_resolution
|
|
47
|
+
});
|
|
48
|
+
// Resolve filePath references server-side (bypasses MCP transport)
|
|
49
|
+
const resolved = await resolveImageInputs(images);
|
|
50
|
+
const result = await ctx.geminiService.analyzeImages({
|
|
51
|
+
images: resolved,
|
|
52
|
+
prompt,
|
|
53
|
+
model: model || 'gemini-3-pro-preview',
|
|
54
|
+
maxTokens: max_tokens,
|
|
55
|
+
globalMediaResolution: global_media_resolution
|
|
56
|
+
});
|
|
57
|
+
return {
|
|
58
|
+
content: createToolResult(true, result),
|
|
59
|
+
structuredContent: { content: result, success: true }
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
return toolError('analyze_image', error);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=register-analyze-image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-analyze-image.js","sourceRoot":"","sources":["../../src/tools/register-analyze-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,UAAU,QAAQ,CAAC,GAAgB;IACvC,GAAG,CAAC,MAAM,CAAC,YAAY,CACrB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,iGAAiG;YACjG,mDAAmD;YACnD,sCAAsC;QACxC,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;iBAC9B,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,+BAA+B,CAAC;YAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;iBACf,QAAQ,CAAC,8CAA8C,CAAC;YAC3D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;iBACd,QAAQ,EAAE;iBACV,QAAQ,CAAC,8CAA8C,CAAC;YAC3D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;iBACnB,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,KAAK,CAAC;iBACV,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,oEAAoE,CAAC;YACjF,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC;gBAC9B,sBAAsB;gBACtB,yBAAyB;gBACzB,uBAAuB;aACxB,CAAC;iBACC,QAAQ,EAAE;iBACV,QAAQ,CAAC,wFAAwF,CAAC;SACtG;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;SACrB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,uBAAuB,EAAE,EAAE,EAAE;QACvE,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;gBAC1C,KAAK;gBACL,UAAU,EAAE,MAAM,CAAC,MAAM;gBACzB,qBAAqB,EAAE,uBAAuB;aAC/C,CAAC,CAAC;YAEH,mEAAmE;YACnE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,MAAa,CAAC,CAAC;YAEzD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC;gBACnD,MAAM,EAAE,QAAe;gBACvB,MAAM;gBACN,KAAK,EAAE,KAAK,IAAI,sBAAsB;gBACtC,SAAS,EAAE,UAAU;gBACrB,qBAAqB,EAAE,uBAAuB;aAC/C,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC;gBACvC,iBAAiB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;aACtD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-chat.d.ts","sourceRoot":"","sources":["../../src/tools/register-chat.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAwE/C"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
import logger from '../utils/logger.js';
|
|
3
|
+
import { createToolResult } from '../utils/error-handler.js';
|
|
4
|
+
import { toolError } from '../utils/tool-wrapper.js';
|
|
5
|
+
export function register(ctx) {
|
|
6
|
+
ctx.server.registerTool('gemini_chat', {
|
|
7
|
+
title: 'Gemini Chat',
|
|
8
|
+
description: 'Chat with Google Gemini models',
|
|
9
|
+
inputSchema: {
|
|
10
|
+
message: z.string().describe('The message to send'),
|
|
11
|
+
model: z.string()
|
|
12
|
+
.optional()
|
|
13
|
+
.describe('Model to use (defaults to latest available)'),
|
|
14
|
+
temperature: z.number()
|
|
15
|
+
.min(0.0)
|
|
16
|
+
.max(1.0)
|
|
17
|
+
.optional()
|
|
18
|
+
.default(0.7)
|
|
19
|
+
.describe('Controls randomness (0.0 to 1.0)'),
|
|
20
|
+
max_tokens: z.number()
|
|
21
|
+
.int()
|
|
22
|
+
.min(1)
|
|
23
|
+
.max(65536)
|
|
24
|
+
.optional()
|
|
25
|
+
.default(65536)
|
|
26
|
+
.describe('Maximum tokens in response'),
|
|
27
|
+
system_prompt: z.string()
|
|
28
|
+
.optional()
|
|
29
|
+
.describe('Optional system instruction'),
|
|
30
|
+
grounding: z.boolean()
|
|
31
|
+
.optional()
|
|
32
|
+
.default(true)
|
|
33
|
+
.describe('Enable Google Search grounding for real-time information'),
|
|
34
|
+
thinking_level: z.enum(['low', 'medium', 'high', 'minimal'])
|
|
35
|
+
.optional()
|
|
36
|
+
.describe('Thinking depth for Gemini 3 models only. ' +
|
|
37
|
+
'"low" minimises latency for simple tasks. ' +
|
|
38
|
+
'"high" (default for Gemini 3) maximises reasoning depth. ' +
|
|
39
|
+
'"medium"/"minimal" available on Gemini 3 Flash only. ' +
|
|
40
|
+
'Ignored for non-Gemini-3 models.')
|
|
41
|
+
},
|
|
42
|
+
outputSchema: {
|
|
43
|
+
content: z.string(),
|
|
44
|
+
success: z.boolean()
|
|
45
|
+
}
|
|
46
|
+
}, async ({ message, model, temperature, max_tokens, system_prompt, grounding, thinking_level }) => {
|
|
47
|
+
try {
|
|
48
|
+
logger.info('Executing gemini_chat tool', {
|
|
49
|
+
model,
|
|
50
|
+
messageLength: message.length
|
|
51
|
+
});
|
|
52
|
+
const response = await ctx.geminiService.chat({
|
|
53
|
+
message,
|
|
54
|
+
model,
|
|
55
|
+
temperature,
|
|
56
|
+
maxTokens: max_tokens,
|
|
57
|
+
systemPrompt: system_prompt,
|
|
58
|
+
grounding,
|
|
59
|
+
thinkingLevel: thinking_level,
|
|
60
|
+
});
|
|
61
|
+
return {
|
|
62
|
+
content: createToolResult(true, response.content),
|
|
63
|
+
structuredContent: { content: response.content, success: true }
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
return toolError('gemini_chat', error);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=register-chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-chat.js","sourceRoot":"","sources":["../../src/tools/register-chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD,MAAM,UAAU,QAAQ,CAAC,GAAgB;IACvC,GAAG,CAAC,MAAM,CAAC,YAAY,CACrB,aAAa,EACb;QACE,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,gCAAgC;QAC7C,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;iBACd,QAAQ,EAAE;iBACV,QAAQ,CAAC,6CAA6C,CAAC;YAC1D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;iBACpB,GAAG,CAAC,GAAG,CAAC;iBACR,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,EAAE;iBACV,OAAO,CAAC,GAAG,CAAC;iBACZ,QAAQ,CAAC,kCAAkC,CAAC;YAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;iBACnB,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,KAAK,CAAC;iBACV,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,4BAA4B,CAAC;YACzC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;iBACtB,QAAQ,EAAE;iBACV,QAAQ,CAAC,6BAA6B,CAAC;YAC1C,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;iBACnB,QAAQ,EAAE;iBACV,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CAAC,0DAA0D,CAAC;YACvE,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;iBACzD,QAAQ,EAAE;iBACV,QAAQ,CACP,2CAA2C;gBAC3C,4CAA4C;gBAC5C,2DAA2D;gBAC3D,uDAAuD;gBACvD,kCAAkC,CACnC;SACJ;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;SACrB;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,EAAE;QAC9F,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;gBACxC,KAAK;gBACL,aAAa,EAAE,OAAO,CAAC,MAAM;aAC9B,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC;gBAC5C,OAAO;gBACP,KAAK;gBACL,WAAW;gBACX,SAAS,EAAE,UAAU;gBACrB,YAAY,EAAE,aAAa;gBAC3B,SAAS;gBACT,aAAa,EAAE,cAAqB;aACrC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;gBACjD,iBAAiB,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;aAChE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-deep-research.d.ts","sourceRoot":"","sources":["../../src/tools/register-deep-research.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CA6D/C"}
|