@@ -54,6 +54,19 @@ export const DatadogBlock: BlockConfig<DatadogResponse> = {
5454]` ,
5555 condition : { field : 'operation' , value : 'datadog_submit_metrics' } ,
5656 required : true ,
57+ wandConfig : {
58+ enabled : true ,
59+ prompt : `Generate a JSON array of Datadog metrics based on the user's description.
60+ Each metric object should have:
61+ - "metric": The metric name (e.g., "custom.app.response_time")
62+ - "type": The metric type ("gauge", "count", or "rate")
63+ - "points": Array of {timestamp, value} objects
64+ - "tags": Array of tag strings (e.g., "env:production")
65+
66+ Return ONLY valid JSON - no explanations, no markdown code blocks.` ,
67+ placeholder : 'Describe the metrics you want to submit...' ,
68+ generationType : 'json-object' ,
69+ } ,
5770 } ,
5871
5972 // ========================
@@ -66,6 +79,18 @@ export const DatadogBlock: BlockConfig<DatadogResponse> = {
6679 placeholder : 'avg:system.cpu.user{*}' ,
6780 condition : { field : 'operation' , value : 'datadog_query_timeseries' } ,
6881 required : true ,
82+ wandConfig : {
83+ enabled : true ,
84+ prompt : `Generate a Datadog metrics query based on the user's description.
85+ The query format is: <aggregation>:<metric_name>{<tag_filters>}
86+ Examples:
87+ - "avg:system.cpu.user{*}" - Average CPU usage across all hosts
88+ - "sum:app.requests{env:production} by {service}" - Sum of requests grouped by service
89+ - "max:system.mem.used{host:webserver-1}" - Max memory on specific host
90+
91+ Return ONLY the query string - no explanations, no quotes around the entire query.` ,
92+ placeholder : 'Describe what metrics you want to query...' ,
93+ } ,
6994 } ,
7095 {
7196 id : 'from' ,
@@ -120,6 +145,15 @@ Return ONLY the numeric timestamp - no explanations, no quotes, no extra text.`,
120145 placeholder : 'Deployment completed' ,
121146 condition : { field : 'operation' , value : 'datadog_create_event' } ,
122147 required : true ,
148+ wandConfig : {
149+ enabled : true ,
150+ prompt : `Generate a concise, descriptive event title for Datadog based on the user's description.
151+ The title should be short (under 100 characters), clear, and action-oriented.
152+ Examples: "Deployment completed", "High CPU usage detected", "Service restart initiated"
153+
154+ Return ONLY the title text - no quotes, no extra formatting.` ,
155+ placeholder : 'Describe the event you want to create...' ,
156+ } ,
123157 } ,
124158 {
125159 id : 'text' ,
@@ -128,6 +162,15 @@ Return ONLY the numeric timestamp - no explanations, no quotes, no extra text.`,
128162 placeholder : 'Describe the event...' ,
129163 condition : { field : 'operation' , value : 'datadog_create_event' } ,
130164 required : true ,
165+ wandConfig : {
166+ enabled : true ,
167+ prompt : `Generate descriptive event text for a Datadog event based on the user's description.
168+ Include relevant details like what happened, when, and any important context.
169+ Can use Markdown formatting for readability.
170+
171+ Return the event description text directly - no extra formatting needed.` ,
172+ placeholder : 'Describe the event details...' ,
173+ } ,
131174 } ,
132175 {
133176 id : 'alertType' ,
@@ -171,6 +214,15 @@ Return ONLY the numeric timestamp - no explanations, no quotes, no extra text.`,
171214 placeholder : 'High CPU Usage Alert' ,
172215 condition : { field : 'operation' , value : 'datadog_create_monitor' } ,
173216 required : true ,
217+ wandConfig : {
218+ enabled : true ,
219+ prompt : `Generate a clear, descriptive monitor name for Datadog based on the user's description.
220+ The name should be concise but descriptive, indicating what is being monitored.
221+ Examples: "High CPU Usage Alert", "Database Connection Pool Low", "API Error Rate Spike"
222+
223+ Return ONLY the monitor name - no quotes, no extra formatting.` ,
224+ placeholder : 'Describe what the monitor should track...' ,
225+ } ,
174226 } ,
175227 {
176228 id : 'type' ,
@@ -196,13 +248,36 @@ Return ONLY the numeric timestamp - no explanations, no quotes, no extra text.`,
196248 placeholder : 'avg(last_5m):avg:system.cpu.idle{*} < 20' ,
197249 condition : { field : 'operation' , value : 'datadog_create_monitor' } ,
198250 required : true ,
251+ wandConfig : {
252+ enabled : true ,
253+ prompt : `Generate a Datadog monitor query based on the user's description.
254+ Monitor query format: <aggregation>(<time_window>):<metric_query> <comparator> <threshold>
255+ Examples:
256+ - "avg(last_5m):avg:system.cpu.idle{*} < 20" - Alert when average CPU idle is below 20%
257+ - "sum(last_1h):sum:app.errors{env:production} > 100" - Alert when errors exceed 100 in an hour
258+ - "max(last_15m):max:system.disk.used{*} by {host} > 90" - Alert when disk usage exceeds 90%
259+
260+ Return ONLY the monitor query string - no explanations.` ,
261+ placeholder : 'Describe what condition should trigger the alert...' ,
262+ } ,
199263 } ,
200264 {
201265 id : 'message' ,
202266 title : 'Notification Message' ,
203267 type : 'long-input' ,
204268 placeholder : 'Alert! CPU usage is high. @slack-alerts' ,
205269 condition : { field : 'operation' , value : 'datadog_create_monitor' } ,
270+ wandConfig : {
271+ enabled : true ,
272+ prompt : `Generate a Datadog monitor notification message based on the user's description.
273+ The message should include:
274+ - A clear description of what triggered the alert
275+ - Relevant template variables like {{host.name}}, {{value}}
276+ - Optional: notification handles like @slack-channel or @pagerduty
277+
278+ Return the notification message text directly.` ,
279+ placeholder : 'Describe what the notification should say...' ,
280+ } ,
206281 } ,
207282 {
208283 id : 'monitorTags' ,
@@ -224,6 +299,20 @@ Return ONLY the numeric timestamp - no explanations, no quotes, no extra text.`,
224299 type : 'code' ,
225300 placeholder : '{"notify_no_data": true, "thresholds": {"critical": 90}}' ,
226301 condition : { field : 'operation' , value : 'datadog_create_monitor' } ,
302+ wandConfig : {
303+ enabled : true ,
304+ prompt : `Generate Datadog monitor options JSON based on the user's description.
305+ Common options include:
306+ - "notify_no_data": boolean - Notify when data stops arriving
307+ - "thresholds": {"critical": number, "warning": number} - Alert thresholds
308+ - "renotify_interval": number - Minutes between re-notifications
309+ - "timeout_h": number - Hours before auto-resolving
310+ - "include_tags": boolean - Include trigger tags in notifications
311+
312+ Return ONLY valid JSON - no explanations, no markdown code blocks.` ,
313+ placeholder : 'Describe the monitor options you need...' ,
314+ generationType : 'json-object' ,
315+ } ,
227316 } ,
228317
229318 // ========================
@@ -305,6 +394,18 @@ Return ONLY the numeric timestamp - no explanations, no quotes, no extra text.`,
305394 placeholder : 'service:web-app status:error' ,
306395 condition : { field : 'operation' , value : 'datadog_query_logs' } ,
307396 required : true ,
397+ wandConfig : {
398+ enabled : true ,
399+ prompt : `Generate a Datadog log search query based on the user's description.
400+ The query uses facet syntax: facet:value
401+ Examples:
402+ - "service:web-app status:error" - Errors from web-app service
403+ - "source:nginx @http.status_code:>=500" - Nginx 5xx errors
404+ - "host:prod-* @duration:>1000" - Slow requests on prod hosts
405+
406+ Return ONLY the search query string - no explanations.` ,
407+ placeholder : 'Describe what logs you want to find...' ,
408+ } ,
308409 } ,
309410 {
310411 id : 'logFrom' ,
@@ -374,6 +475,20 @@ Return ONLY the relative time string - no explanations, no quotes, no extra text
374475]` ,
375476 condition : { field : 'operation' , value : 'datadog_send_logs' } ,
376477 required : true ,
478+ wandConfig : {
479+ enabled : true ,
480+ prompt : `Generate a JSON array of Datadog log entries based on the user's description.
481+ Each log object should have:
482+ - "message": The log message text
483+ - "service": The service name
484+ - "ddsource": The log source (e.g., "custom", "nodejs", "python")
485+ - "ddtags": Comma-separated tags (e.g., "env:production,version:1.0")
486+ - Optional: "hostname", "status" (info/warn/error)
487+
488+ Return ONLY valid JSON - no explanations, no markdown code blocks.` ,
489+ placeholder : 'Describe the logs you want to send...' ,
490+ generationType : 'json-object' ,
491+ } ,
377492 } ,
378493
379494 // ========================
@@ -393,6 +508,15 @@ Return ONLY the relative time string - no explanations, no quotes, no extra text
393508 type : 'long-input' ,
394509 placeholder : 'Scheduled maintenance' ,
395510 condition : { field : 'operation' , value : 'datadog_create_downtime' } ,
511+ wandConfig : {
512+ enabled : true ,
513+ prompt : `Generate a downtime message for Datadog based on the user's description.
514+ The message should explain why monitoring is being muted.
515+ Examples: "Scheduled maintenance window", "Deploying new version", "Infrastructure upgrade in progress"
516+
517+ Return the message text directly - no extra formatting.` ,
518+ placeholder : 'Describe the reason for the downtime...' ,
519+ } ,
396520 } ,
397521 {
398522 id : 'downtimeStart' ,
0 commit comments