@rnsk/toolkits 0.0.10 → 0.0.11
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 +12 -2
- package/dist/index.d.ts +11 -1
- package/dist/index.js +21 -1
- package/dist/toolkits/bitbucket/tools/index.d.ts +5 -5
- package/dist/toolkits/bitbucket/tools/reports.d.ts +5 -5
- package/dist/toolkits/cloudflare/tools/create-list.d.ts +1 -1
- package/dist/toolkits/cloudflare/tools/create-zone.d.ts +1 -1
- package/dist/toolkits/cloudflare/tools/index.d.ts +4 -4
- package/dist/toolkits/cloudflare/tools/list-pools.d.ts +1 -1
- package/dist/toolkits/cloudflare/tools/list-zones.d.ts +1 -1
- package/dist/toolkits/convex/icon.d.ts +5 -0
- package/dist/toolkits/convex/icon.js +10 -0
- package/dist/toolkits/convex/manifest.d.ts +3 -0
- package/dist/toolkits/convex/manifest.js +33 -0
- package/dist/toolkits/convex/tools/client.d.ts +28 -0
- package/dist/toolkits/convex/tools/client.js +85 -0
- package/dist/toolkits/convex/tools/deploy-keys.d.ts +10 -0
- package/dist/toolkits/convex/tools/deploy-keys.js +46 -0
- package/dist/toolkits/convex/tools/deployments.d.ts +35 -0
- package/dist/toolkits/convex/tools/deployments.js +126 -0
- package/dist/toolkits/convex/tools/domains.d.ts +7 -0
- package/dist/toolkits/convex/tools/domains.js +29 -0
- package/dist/toolkits/convex/tools/functions.d.ts +14 -0
- package/dist/toolkits/convex/tools/functions.js +49 -0
- package/dist/toolkits/convex/tools/index.d.ts +176 -0
- package/dist/toolkits/convex/tools/index.js +145 -0
- package/dist/toolkits/convex/tools/logging.d.ts +5 -0
- package/dist/toolkits/convex/tools/logging.js +25 -0
- package/dist/toolkits/convex/tools/projects.d.ts +31 -0
- package/dist/toolkits/convex/tools/projects.js +111 -0
- package/dist/toolkits/convex/tools/teams.d.ts +12 -0
- package/dist/toolkits/convex/tools/teams.js +62 -0
- package/dist/toolkits/datadog/icon.d.ts +5 -0
- package/dist/toolkits/datadog/icon.js +6 -0
- package/dist/toolkits/datadog/manifest.d.ts +3 -0
- package/dist/toolkits/datadog/manifest.js +44 -0
- package/dist/toolkits/datadog/tools/api-keys.d.ts +21 -0
- package/dist/toolkits/datadog/tools/api-keys.js +42 -0
- package/dist/toolkits/datadog/tools/apm.d.ts +51 -0
- package/dist/toolkits/datadog/tools/apm.js +106 -0
- package/dist/toolkits/datadog/tools/client.d.ts +19 -0
- package/dist/toolkits/datadog/tools/client.js +81 -0
- package/dist/toolkits/datadog/tools/dashboards.d.ts +93 -0
- package/dist/toolkits/datadog/tools/dashboards.js +127 -0
- package/dist/toolkits/datadog/tools/events.d.ts +35 -0
- package/dist/toolkits/datadog/tools/events.js +56 -0
- package/dist/toolkits/datadog/tools/hosts.d.ts +49 -0
- package/dist/toolkits/datadog/tools/hosts.js +87 -0
- package/dist/toolkits/datadog/tools/incidents.d.ts +18 -0
- package/dist/toolkits/datadog/tools/incidents.js +34 -0
- package/dist/toolkits/datadog/tools/index.d.ts +999 -0
- package/dist/toolkits/datadog/tools/index.js +450 -0
- package/dist/toolkits/datadog/tools/integrations.d.ts +32 -0
- package/dist/toolkits/datadog/tools/integrations.js +47 -0
- package/dist/toolkits/datadog/tools/logs.d.ts +39 -0
- package/dist/toolkits/datadog/tools/logs.js +121 -0
- package/dist/toolkits/datadog/tools/metrics.d.ts +27 -0
- package/dist/toolkits/datadog/tools/metrics.js +83 -0
- package/dist/toolkits/datadog/tools/monitors.d.ts +95 -0
- package/dist/toolkits/datadog/tools/monitors.js +190 -0
- package/dist/toolkits/datadog/tools/oncall-notifications.d.ts +61 -0
- package/dist/toolkits/datadog/tools/oncall-notifications.js +155 -0
- package/dist/toolkits/datadog/tools/oncall-policies.d.ts +28 -0
- package/dist/toolkits/datadog/tools/oncall-policies.js +72 -0
- package/dist/toolkits/datadog/tools/oncall-schedules.d.ts +31 -0
- package/dist/toolkits/datadog/tools/oncall-schedules.js +87 -0
- package/dist/toolkits/datadog/tools/oncall-teams.d.ts +14 -0
- package/dist/toolkits/datadog/tools/oncall-teams.js +54 -0
- package/dist/toolkits/datadog/tools/slos.d.ts +43 -0
- package/dist/toolkits/datadog/tools/slos.js +62 -0
- package/dist/toolkits/datadog/tools/synthetics.d.ts +58 -0
- package/dist/toolkits/datadog/tools/synthetics.js +90 -0
- package/dist/toolkits/datadog/tools/usage.d.ts +7 -0
- package/dist/toolkits/datadog/tools/usage.js +25 -0
- package/dist/toolkits/datadog/tools/users.d.ts +35 -0
- package/dist/toolkits/datadog/tools/users.js +66 -0
- package/dist/toolkits/dev-to/icon.d.ts +5 -0
- package/dist/toolkits/dev-to/icon.js +10 -0
- package/dist/toolkits/dev-to/manifest.d.ts +3 -0
- package/dist/toolkits/dev-to/manifest.js +34 -0
- package/dist/toolkits/dev-to/tools/articles.d.ts +78 -0
- package/dist/toolkits/dev-to/tools/articles.js +262 -0
- package/dist/toolkits/dev-to/tools/client.d.ts +25 -0
- package/dist/toolkits/dev-to/tools/client.js +65 -0
- package/dist/toolkits/dev-to/tools/community.d.ts +61 -0
- package/dist/toolkits/dev-to/tools/community.js +244 -0
- package/dist/toolkits/dev-to/tools/index.d.ts +202 -0
- package/dist/toolkits/dev-to/tools/index.js +37 -0
- package/dist/toolkits/dev-to/tools/listings.d.ts +26 -0
- package/dist/toolkits/dev-to/tools/listings.js +92 -0
- package/dist/toolkits/discord/tools/applications.d.ts +5 -5
- package/dist/toolkits/discord/tools/index.d.ts +5 -5
- package/dist/toolkits/figma/tools/create-modify-delete-variables.d.ts +1 -1
- package/dist/toolkits/figma/tools/get-file-nodes.d.ts +1 -1
- package/dist/toolkits/figma/tools/index.d.ts +3 -3
- package/dist/toolkits/figma/tools/render-images-of-file-nodes.d.ts +1 -1
- package/dist/toolkits/google-analytics/tools/reports.d.ts +9 -9
- package/dist/toolkits/google-classroom/tools/index.d.ts +7 -7
- package/dist/toolkits/google-classroom/tools/invitations.d.ts +2 -2
- package/dist/toolkits/google-classroom/tools/misc.d.ts +1 -1
- package/dist/toolkits/google-classroom/tools/roster.d.ts +5 -5
- package/dist/toolkits/google-search-console/tools/index.d.ts +2 -2
- package/dist/toolkits/google-search-console/tools/search-analytics-query.d.ts +2 -2
- package/dist/toolkits/hostinger/tools/index.d.ts +1 -1
- package/dist/toolkits/hostinger/tools/whois.d.ts +1 -1
- package/dist/toolkits/hugging-face/tools/datasets-viewer.d.ts +1 -1
- package/dist/toolkits/hugging-face/tools/datasets.d.ts +1 -1
- package/dist/toolkits/hugging-face/tools/index.d.ts +1 -1
- package/dist/toolkits/hugging-face/tools/models.d.ts +1 -1
- package/dist/toolkits/hugging-face/tools/repos.d.ts +1 -1
- package/dist/toolkits/hugging-face/tools/spaces.d.ts +1 -1
- package/dist/toolkits/jira/tools/index.d.ts +4 -4
- package/dist/toolkits/jira/tools/meta.d.ts +2 -2
- package/dist/toolkits/jira/tools/users.d.ts +3 -3
- package/dist/toolkits/kaggle/icon.d.ts +5 -0
- package/dist/toolkits/kaggle/icon.js +6 -0
- package/dist/toolkits/kaggle/manifest.d.ts +3 -0
- package/dist/toolkits/kaggle/manifest.js +32 -0
- package/dist/toolkits/kaggle/tools/client.d.ts +10 -0
- package/dist/toolkits/kaggle/tools/client.js +94 -0
- package/dist/toolkits/kaggle/tools/competitions.d.ts +48 -0
- package/dist/toolkits/kaggle/tools/competitions.js +109 -0
- package/dist/toolkits/kaggle/tools/config.d.ts +110 -0
- package/dist/toolkits/kaggle/tools/config.js +256 -0
- package/dist/toolkits/kaggle/tools/datasets.d.ts +88 -0
- package/dist/toolkits/kaggle/tools/datasets.js +161 -0
- package/dist/toolkits/kaggle/tools/index.d.ts +482 -0
- package/dist/toolkits/kaggle/tools/index.js +53 -0
- package/dist/toolkits/kaggle/tools/kernels.d.ts +62 -0
- package/dist/toolkits/kaggle/tools/kernels.js +121 -0
- package/dist/toolkits/kaggle/tools/model_instance_files.d.ts +11 -0
- package/dist/toolkits/kaggle/tools/model_instance_files.js +23 -0
- package/dist/toolkits/kaggle/tools/model_instances.d.ts +8 -0
- package/dist/toolkits/kaggle/tools/model_instances.js +20 -0
- package/dist/toolkits/kaggle/tools/models.d.ts +14 -0
- package/dist/toolkits/kaggle/tools/models.js +33 -0
- package/dist/toolkits/nasa/icon.d.ts +5 -0
- package/dist/toolkits/nasa/icon.js +56 -0
- package/dist/toolkits/nasa/manifest.d.ts +3 -0
- package/dist/toolkits/nasa/manifest.js +49 -0
- package/dist/toolkits/nasa/tools/agage.d.ts +60 -0
- package/dist/toolkits/nasa/tools/agage.js +176 -0
- package/dist/toolkits/nasa/tools/client.d.ts +95 -0
- package/dist/toolkits/nasa/tools/client.js +337 -0
- package/dist/toolkits/nasa/tools/cmr.d.ts +268 -0
- package/dist/toolkits/nasa/tools/cmr.js +984 -0
- package/dist/toolkits/nasa/tools/donki.d.ts +63 -0
- package/dist/toolkits/nasa/tools/donki.js +301 -0
- package/dist/toolkits/nasa/tools/eonet.d.ts +74 -0
- package/dist/toolkits/nasa/tools/eonet.js +279 -0
- package/dist/toolkits/nasa/tools/icesat2.d.ts +25 -0
- package/dist/toolkits/nasa/tools/icesat2.js +97 -0
- package/dist/toolkits/nasa/tools/imagery.d.ts +36 -0
- package/dist/toolkits/nasa/tools/imagery.js +138 -0
- package/dist/toolkits/nasa/tools/index.d.ts +1063 -0
- package/dist/toolkits/nasa/tools/index.js +865 -0
- package/dist/toolkits/nasa/tools/neo.d.ts +15 -0
- package/dist/toolkits/nasa/tools/neo.js +75 -0
- package/dist/toolkits/nasa/tools/ntrs.d.ts +152 -0
- package/dist/toolkits/nasa/tools/ntrs.js +292 -0
- package/dist/toolkits/nasa/tools/osdr.d.ts +72 -0
- package/dist/toolkits/nasa/tools/osdr.js +290 -0
- package/dist/toolkits/nasa/tools/planetary.d.ts +58 -0
- package/dist/toolkits/nasa/tools/planetary.js +312 -0
- package/dist/toolkits/nasa/tools/power.d.ts +52 -0
- package/dist/toolkits/nasa/tools/power.js +213 -0
- package/dist/toolkits/nasa/tools/ssc.d.ts +44 -0
- package/dist/toolkits/nasa/tools/ssc.js +92 -0
- package/dist/toolkits/nasa/tools/tolnet.d.ts +84 -0
- package/dist/toolkits/nasa/tools/tolnet.js +254 -0
- package/dist/toolkits/neo4j/tools/analytics.d.ts +1 -1
- package/dist/toolkits/neo4j/tools/index.d.ts +3 -3
- package/dist/toolkits/neo4j/tools/instances.d.ts +2 -2
- package/dist/toolkits/neon/tools/auth.d.ts +4 -4
- package/dist/toolkits/neon/tools/dataapi.d.ts +1 -1
- package/dist/toolkits/neon/tools/index.d.ts +7 -7
- package/dist/toolkits/neon/tools/projects.d.ts +2 -2
- package/dist/toolkits/new-relic/icon.d.ts +5 -0
- package/dist/toolkits/new-relic/icon.js +6 -0
- package/dist/toolkits/new-relic/manifest.d.ts +3 -0
- package/dist/toolkits/new-relic/manifest.js +41 -0
- package/dist/toolkits/new-relic/tools/admin.d.ts +310 -0
- package/dist/toolkits/new-relic/tools/admin.js +282 -0
- package/dist/toolkits/new-relic/tools/alert-policies.d.ts +74 -0
- package/dist/toolkits/new-relic/tools/alert-policies.js +136 -0
- package/dist/toolkits/new-relic/tools/apm.d.ts +129 -0
- package/dist/toolkits/new-relic/tools/apm.js +228 -0
- package/dist/toolkits/new-relic/tools/client.d.ts +62 -0
- package/dist/toolkits/new-relic/tools/client.js +167 -0
- package/dist/toolkits/new-relic/tools/conditions.d.ts +190 -0
- package/dist/toolkits/new-relic/tools/conditions.js +265 -0
- package/dist/toolkits/new-relic/tools/config.d.ts +73 -0
- package/dist/toolkits/new-relic/tools/config.js +131 -0
- package/dist/toolkits/new-relic/tools/dashboards.d.ts +204 -0
- package/dist/toolkits/new-relic/tools/dashboards.js +159 -0
- package/dist/toolkits/new-relic/tools/entities.d.ts +160 -0
- package/dist/toolkits/new-relic/tools/entities.js +218 -0
- package/dist/toolkits/new-relic/tools/index.d.ts +23 -0
- package/dist/toolkits/new-relic/tools/index.js +179 -0
- package/dist/toolkits/new-relic/tools/ingest.d.ts +31 -0
- package/dist/toolkits/new-relic/tools/ingest.js +80 -0
- package/dist/toolkits/new-relic/tools/notifications.d.ts +186 -0
- package/dist/toolkits/new-relic/tools/notifications.js +232 -0
- package/dist/toolkits/new-relic/tools/nrql-conditions.d.ts +105 -0
- package/dist/toolkits/new-relic/tools/nrql-conditions.js +136 -0
- package/dist/toolkits/new-relic/tools/nrql.d.ts +38 -0
- package/dist/toolkits/new-relic/tools/nrql.js +99 -0
- package/dist/toolkits/new-relic/tools/synthetics.d.ts +176 -0
- package/dist/toolkits/new-relic/tools/synthetics.js +246 -0
- package/dist/toolkits/notebook-lm/icon.d.ts +5 -0
- package/dist/toolkits/notebook-lm/icon.js +6 -0
- package/dist/toolkits/notebook-lm/manifest.d.ts +3 -0
- package/dist/toolkits/notebook-lm/manifest.js +44 -0
- package/dist/toolkits/notebook-lm/tools/add-text-sources.d.ts +36 -0
- package/dist/toolkits/notebook-lm/tools/add-text-sources.js +51 -0
- package/dist/toolkits/notebook-lm/tools/create-audio-overview.d.ts +47 -0
- package/dist/toolkits/notebook-lm/tools/create-audio-overview.js +55 -0
- package/dist/toolkits/notebook-lm/tools/create-notebook.d.ts +52 -0
- package/dist/toolkits/notebook-lm/tools/create-notebook.js +49 -0
- package/dist/toolkits/notebook-lm/tools/delete-audio-overview.d.ts +33 -0
- package/dist/toolkits/notebook-lm/tools/delete-audio-overview.js +46 -0
- package/dist/toolkits/notebook-lm/tools/delete-notebooks.d.ts +32 -0
- package/dist/toolkits/notebook-lm/tools/delete-notebooks.js +46 -0
- package/dist/toolkits/notebook-lm/tools/delete-sources.d.ts +33 -0
- package/dist/toolkits/notebook-lm/tools/delete-sources.js +47 -0
- package/dist/toolkits/notebook-lm/tools/get-notebook.d.ts +52 -0
- package/dist/toolkits/notebook-lm/tools/get-notebook.js +45 -0
- package/dist/toolkits/notebook-lm/tools/get-source.d.ts +53 -0
- package/dist/toolkits/notebook-lm/tools/get-source.js +47 -0
- package/dist/toolkits/notebook-lm/tools/index.d.ts +516 -0
- package/dist/toolkits/notebook-lm/tools/index.js +93 -0
- package/dist/toolkits/notebook-lm/tools/list-recent-notebooks.d.ts +32 -0
- package/dist/toolkits/notebook-lm/tools/list-recent-notebooks.js +41 -0
- package/dist/toolkits/notebook-lm/tools/share-notebook.d.ts +48 -0
- package/dist/toolkits/notebook-lm/tools/share-notebook.js +57 -0
- package/dist/toolkits/notebook-lm/tools/upload-source-file.d.ts +40 -0
- package/dist/toolkits/notebook-lm/tools/upload-source-file.js +62 -0
- package/dist/toolkits/notebook-lm/tools/utils.d.ts +15 -0
- package/dist/toolkits/notebook-lm/tools/utils.js +46 -0
- package/dist/toolkits/npm/icon.d.ts +5 -0
- package/dist/toolkits/npm/icon.js +11 -0
- package/dist/toolkits/npm/manifest.d.ts +3 -0
- package/dist/toolkits/npm/manifest.js +35 -0
- package/dist/toolkits/npm/tools/client.d.ts +19 -0
- package/dist/toolkits/npm/tools/client.js +64 -0
- package/dist/toolkits/npm/tools/downloads.d.ts +19 -0
- package/dist/toolkits/npm/tools/downloads.js +39 -0
- package/dist/toolkits/npm/tools/index.d.ts +14 -0
- package/dist/toolkits/npm/tools/index.js +24 -0
- package/dist/toolkits/npm/tools/registry.d.ts +24 -0
- package/dist/toolkits/npm/tools/registry.js +58 -0
- package/dist/toolkits/npm/tools/security.d.ts +9 -0
- package/dist/toolkits/npm/tools/security.js +29 -0
- package/dist/toolkits/slack/tools/admin-users.d.ts +1 -1
- package/dist/toolkits/slack/tools/slack-lists.d.ts +3 -3
- package/dist/toolkits/snowflake/icon.d.ts +5 -0
- package/dist/toolkits/snowflake/icon.js +6 -0
- package/dist/toolkits/snowflake/manifest.d.ts +3 -0
- package/dist/toolkits/snowflake/manifest.js +32 -0
- package/dist/toolkits/snowflake/tools/catalog.d.ts +56 -0
- package/dist/toolkits/snowflake/tools/catalog.js +123 -0
- package/dist/toolkits/snowflake/tools/client.d.ts +53 -0
- package/dist/toolkits/snowflake/tools/client.js +145 -0
- package/dist/toolkits/snowflake/tools/index.d.ts +14 -0
- package/dist/toolkits/snowflake/tools/index.js +28 -0
- package/dist/toolkits/snowflake/tools/statements.d.ts +27 -0
- package/dist/toolkits/snowflake/tools/statements.js +84 -0
- package/dist/toolkits/snowflake/tools/status.d.ts +22 -0
- package/dist/toolkits/snowflake/tools/status.js +54 -0
- package/dist/toolkits/telegram/icon.d.ts +5 -0
- package/dist/toolkits/telegram/icon.js +6 -0
- package/dist/toolkits/telegram/manifest.d.ts +3 -0
- package/dist/toolkits/telegram/manifest.js +34 -0
- package/dist/toolkits/telegram/tools/bot.d.ts +13 -0
- package/dist/toolkits/telegram/tools/bot.js +23 -0
- package/dist/toolkits/telegram/tools/chats.d.ts +22 -0
- package/dist/toolkits/telegram/tools/chats.js +46 -0
- package/dist/toolkits/telegram/tools/client.d.ts +12 -0
- package/dist/toolkits/telegram/tools/client.js +46 -0
- package/dist/toolkits/telegram/tools/index.d.ts +15 -0
- package/dist/toolkits/telegram/tools/index.js +31 -0
- package/dist/toolkits/telegram/tools/messages.d.ts +86 -0
- package/dist/toolkits/telegram/tools/messages.js +134 -0
- package/dist/toolkits/telegram/tools/updates.d.ts +23 -0
- package/dist/toolkits/telegram/tools/updates.js +54 -0
- package/dist/toolkits/youtube/tools/get-channel-activities.d.ts +1 -1
- package/dist/toolkits/youtube/tools/index.d.ts +5 -5
- package/dist/toolkits/youtube/tools/list-channel-sections.d.ts +1 -1
- package/dist/toolkits/youtube/tools/post-comment.d.ts +1 -1
- package/dist/toolkits/youtube/tools/subscribe-channel.d.ts +1 -1
- package/dist/toolkits/youtube/tools/unsubscribe-channel.d.ts +1 -1
- package/package.json +2 -3
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { ddApi, toDatadogError } from './client.js';
|
|
5
|
+
const credsField = z.string().describe('Datadog credentials JSON with apiKey and appKey (injected by system)');
|
|
6
|
+
const widgetSchema = z.object({
|
|
7
|
+
definition: z.record(z.any()).describe('Widget definition with type, requests, styling'),
|
|
8
|
+
id: z.number().optional().describe('Widget ID (auto-generated when omitted)'),
|
|
9
|
+
layout: z.record(z.any()).optional().describe('Layout (x, y, width, height for free layouts)'),
|
|
10
|
+
});
|
|
11
|
+
const templateVariableSchema = z.object({
|
|
12
|
+
name: z.string().describe('Variable name'),
|
|
13
|
+
prefix: z.string().optional().describe('Variable prefix'),
|
|
14
|
+
default: z.string().optional().describe('Default value'),
|
|
15
|
+
available_values: z.array(z.string()).optional().describe('Allowed values'),
|
|
16
|
+
});
|
|
17
|
+
export const datadogCreateDashboard = tool({
|
|
18
|
+
description: 'Create a dashboard with widgets for unified monitoring views. For log/APM/RUM widget queries keep group_by inside the query object, not at request level.',
|
|
19
|
+
inputSchema: z.object({
|
|
20
|
+
datadogCredentials: credsField,
|
|
21
|
+
title: z.string().min(1).max(80).describe('Dashboard title'),
|
|
22
|
+
widgets: z.array(widgetSchema).min(1).describe('Widgets to include'),
|
|
23
|
+
description: z.string().max(500).optional().describe('Dashboard description'),
|
|
24
|
+
layout_type: z.enum(['ordered', 'free']).optional().describe('Layout (default ordered)'),
|
|
25
|
+
tags: z.array(z.string()).optional().describe('Dashboard tags'),
|
|
26
|
+
notify_list: z.array(z.string()).optional().describe('Users to notify of changes'),
|
|
27
|
+
template_variables: z.array(templateVariableSchema).optional().describe('Template variables'),
|
|
28
|
+
}),
|
|
29
|
+
execute: async ({ datadogCredentials, ...body }) => {
|
|
30
|
+
try {
|
|
31
|
+
const data = await ddApi(datadogCredentials, 'POST', '/api/v1/dashboard', { body });
|
|
32
|
+
return { ...data, success: true };
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
return toDatadogError(error, 'Failed to create dashboard');
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
export const datadogGetDashboard = tool({
|
|
40
|
+
description: 'Get a dashboard by ID with widgets, layout, and template variables. Keep reflow_type and pause_auto_refresh from the response for round-trip updates.',
|
|
41
|
+
inputSchema: z.object({
|
|
42
|
+
datadogCredentials: credsField,
|
|
43
|
+
dashboard_id: z.string().describe('Dashboard ID'),
|
|
44
|
+
}),
|
|
45
|
+
execute: async ({ datadogCredentials, dashboard_id }) => {
|
|
46
|
+
try {
|
|
47
|
+
return await ddApi(datadogCredentials, 'GET', `/api/v1/dashboard/${dashboard_id}`);
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
return toDatadogError(error, 'Failed to get dashboard');
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
export const datadogUpdateDashboard = tool({
|
|
55
|
+
description: 'Update a dashboard; only provided fields change. Omit reflow_type and pause_auto_refresh to preserve existing values.',
|
|
56
|
+
inputSchema: z.object({
|
|
57
|
+
datadogCredentials: credsField,
|
|
58
|
+
dashboard_id: z.string().describe('Dashboard ID to update'),
|
|
59
|
+
title: z.string().min(1).max(80).optional().describe('Dashboard title'),
|
|
60
|
+
widgets: z.array(widgetSchema).optional().describe('Replacement widgets'),
|
|
61
|
+
description: z.string().max(500).optional().describe('Dashboard description'),
|
|
62
|
+
layout_type: z.string().optional().describe("Layout: 'ordered' or 'free'"),
|
|
63
|
+
tags: z.array(z.string()).optional().describe('Replacement tags'),
|
|
64
|
+
notify_list: z.array(z.string()).optional().describe('Replacement notify list'),
|
|
65
|
+
template_variables: z.array(templateVariableSchema).optional().describe('Replacement variables'),
|
|
66
|
+
reflow_type: z.string().optional().describe("Reflow for ordered layouts: 'auto' or 'fixed'"),
|
|
67
|
+
is_read_only: z.boolean().optional().describe('Read-only flag'),
|
|
68
|
+
pause_auto_refresh: z.boolean().optional().describe('Pause automatic refresh'),
|
|
69
|
+
}),
|
|
70
|
+
execute: async ({ datadogCredentials, dashboard_id, ...body }) => {
|
|
71
|
+
try {
|
|
72
|
+
const data = await ddApi(datadogCredentials, 'PUT', `/api/v1/dashboard/${dashboard_id}`, { body });
|
|
73
|
+
return { ...data, success: true };
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
return toDatadogError(error, 'Failed to update dashboard');
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
export const datadogDeleteDashboard = tool({
|
|
81
|
+
description: 'Permanently delete a dashboard. Irreversible — confirm with the user first.',
|
|
82
|
+
inputSchema: z.object({
|
|
83
|
+
datadogCredentials: credsField,
|
|
84
|
+
dashboard_id: z.string().describe('Dashboard ID to delete'),
|
|
85
|
+
}),
|
|
86
|
+
execute: async ({ datadogCredentials, dashboard_id }) => {
|
|
87
|
+
try {
|
|
88
|
+
const data = await ddApi(datadogCredentials, 'DELETE', `/api/v1/dashboard/${dashboard_id}`);
|
|
89
|
+
return {
|
|
90
|
+
deleted_dashboard_id: data?.deleted_dashboard_id ?? dashboard_id,
|
|
91
|
+
message: 'Dashboard deleted',
|
|
92
|
+
success: true,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
return toDatadogError(error, 'Failed to delete dashboard');
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
export const datadogListDashboards = tool({
|
|
101
|
+
description: 'List dashboards with shared/deleted filters and start/count pagination.',
|
|
102
|
+
inputSchema: z.object({
|
|
103
|
+
datadogCredentials: credsField,
|
|
104
|
+
filter_shared: z.boolean().optional().describe('Filter by shared status'),
|
|
105
|
+
filter_deleted: z.boolean().optional().describe('Include deleted dashboards'),
|
|
106
|
+
count: z.number().optional().describe('Max dashboards to return'),
|
|
107
|
+
start: z.number().optional().describe('Offset: skip this many dashboards'),
|
|
108
|
+
}),
|
|
109
|
+
execute: async ({ datadogCredentials, filter_shared, filter_deleted, count, start }) => {
|
|
110
|
+
try {
|
|
111
|
+
const data = await ddApi(datadogCredentials, 'GET', '/api/v1/dashboard', {
|
|
112
|
+
query: {
|
|
113
|
+
'filter[shared]': filter_shared,
|
|
114
|
+
'filter[deleted]': filter_deleted,
|
|
115
|
+
count,
|
|
116
|
+
start,
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
const dashboards = data?.dashboards ?? (Array.isArray(data) ? data : []);
|
|
120
|
+
return { dashboards, total_count: dashboards.length };
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
return toDatadogError(error, 'Failed to list dashboards');
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
});
|
|
127
|
+
//# sourceMappingURL=dashboards.js.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export declare const datadogCreateEvent: import("ai").Tool<{
|
|
2
|
+
title: string;
|
|
3
|
+
text: string;
|
|
4
|
+
datadogCredentials: string;
|
|
5
|
+
priority?: "low" | "normal" | undefined;
|
|
6
|
+
tags?: string[] | undefined;
|
|
7
|
+
host?: string | undefined;
|
|
8
|
+
device_name?: string | undefined;
|
|
9
|
+
alert_type?: "error" | "success" | "warning" | "info" | undefined;
|
|
10
|
+
source_type_name?: string | undefined;
|
|
11
|
+
aggregation_key?: string | undefined;
|
|
12
|
+
date_happened?: number | undefined;
|
|
13
|
+
}, any>;
|
|
14
|
+
export declare const datadogListEvents: import("ai").Tool<{
|
|
15
|
+
start: number;
|
|
16
|
+
end: number;
|
|
17
|
+
datadogCredentials: string;
|
|
18
|
+
priority?: "low" | "normal" | undefined;
|
|
19
|
+
sources?: string | undefined;
|
|
20
|
+
page?: number | undefined;
|
|
21
|
+
tags?: string[] | undefined;
|
|
22
|
+
unaggregated?: boolean | undefined;
|
|
23
|
+
exclude_aggregate?: boolean | undefined;
|
|
24
|
+
}, {
|
|
25
|
+
error: string;
|
|
26
|
+
message?: undefined;
|
|
27
|
+
} | {
|
|
28
|
+
error: string;
|
|
29
|
+
message: string;
|
|
30
|
+
} | {
|
|
31
|
+
events: any;
|
|
32
|
+
total_count: any;
|
|
33
|
+
status: any;
|
|
34
|
+
}>;
|
|
35
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { ddApi, toDatadogError } from './client.js';
|
|
5
|
+
const credsField = z.string().describe('Datadog credentials JSON with apiKey and appKey (injected by system)');
|
|
6
|
+
export const datadogCreateEvent = tool({
|
|
7
|
+
description: 'Post an event for deployments, outages, or config changes. Markdown is supported in text.',
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
datadogCredentials: credsField,
|
|
10
|
+
title: z.string().max(100).describe('Event title'),
|
|
11
|
+
text: z.string().describe('Event body (markdown supported)'),
|
|
12
|
+
host: z.string().optional().describe('Associated host'),
|
|
13
|
+
device_name: z.string().optional().describe('Associated device'),
|
|
14
|
+
tags: z.array(z.string()).optional().describe('Event tags'),
|
|
15
|
+
priority: z.enum(['normal', 'low']).optional().describe('Priority'),
|
|
16
|
+
alert_type: z.enum(['error', 'warning', 'info', 'success']).optional().describe('Alert type'),
|
|
17
|
+
source_type_name: z.string().optional().describe("Source, e.g. 'jenkins', 'docker'"),
|
|
18
|
+
aggregation_key: z.string().optional().describe('Key for grouping events'),
|
|
19
|
+
date_happened: z.number().optional().describe('Seconds epoch (defaults to now)'),
|
|
20
|
+
}),
|
|
21
|
+
execute: async ({ datadogCredentials, ...body }) => {
|
|
22
|
+
try {
|
|
23
|
+
return await ddApi(datadogCredentials, 'POST', '/api/v1/events', { body });
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return toDatadogError(error, 'Failed to create event');
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
export const datadogListEvents = tool({
|
|
31
|
+
description: 'List events in a seconds-epoch window. Start broad (few filters, narrow range) and narrow incrementally — combined filters on wide ranges can return empty or huge results.',
|
|
32
|
+
inputSchema: z.object({
|
|
33
|
+
datadogCredentials: credsField,
|
|
34
|
+
start: z.number().describe('Range start as seconds epoch'),
|
|
35
|
+
end: z.number().describe('Range end as seconds epoch'),
|
|
36
|
+
tags: z.array(z.string()).optional().describe('Tag filters'),
|
|
37
|
+
sources: z.string().optional().describe('Comma-separated sources, e.g. jenkins,docker'),
|
|
38
|
+
priority: z.enum(['normal', 'low']).optional().describe('Priority filter'),
|
|
39
|
+
page: z.number().optional().describe('Page number'),
|
|
40
|
+
unaggregated: z.boolean().optional().describe('Return unaggregated events'),
|
|
41
|
+
exclude_aggregate: z.boolean().optional().describe('Exclude aggregated events'),
|
|
42
|
+
}),
|
|
43
|
+
execute: async ({ datadogCredentials, tags, ...rest }) => {
|
|
44
|
+
try {
|
|
45
|
+
const data = await ddApi(datadogCredentials, 'GET', '/api/v1/events', {
|
|
46
|
+
query: { ...rest, tags: tags?.join(',') },
|
|
47
|
+
});
|
|
48
|
+
const events = data?.events ?? (Array.isArray(data) ? data : []);
|
|
49
|
+
return { events, total_count: events.length, status: data?.status };
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
return toDatadogError(error, 'Failed to list events');
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export declare const datadogListHosts: import("ai").Tool<{
|
|
2
|
+
datadogCredentials: string;
|
|
3
|
+
filter?: string | undefined;
|
|
4
|
+
count?: number | undefined;
|
|
5
|
+
start?: number | undefined;
|
|
6
|
+
from_timestamp?: number | undefined;
|
|
7
|
+
sort_field?: "status" | "name" | "cpu" | "iowait" | "load" | undefined;
|
|
8
|
+
sort_dir?: "asc" | "desc" | undefined;
|
|
9
|
+
include_hosts_metadata?: boolean | undefined;
|
|
10
|
+
include_muted_hosts_data?: boolean | undefined;
|
|
11
|
+
}, any>;
|
|
12
|
+
export declare const datadogGetHostTags: import("ai").Tool<{
|
|
13
|
+
datadogCredentials: string;
|
|
14
|
+
host_name: string;
|
|
15
|
+
source?: string | undefined;
|
|
16
|
+
}, any>;
|
|
17
|
+
export declare const datadogListAllTags: import("ai").Tool<{
|
|
18
|
+
datadogCredentials: string;
|
|
19
|
+
source?: string | undefined;
|
|
20
|
+
}, {
|
|
21
|
+
error: string;
|
|
22
|
+
message?: undefined;
|
|
23
|
+
} | {
|
|
24
|
+
error: string;
|
|
25
|
+
message: string;
|
|
26
|
+
} | {
|
|
27
|
+
tags: {
|
|
28
|
+
name: string;
|
|
29
|
+
count: number;
|
|
30
|
+
}[];
|
|
31
|
+
total_count: number;
|
|
32
|
+
}>;
|
|
33
|
+
export declare const datadogUpdateHostTags: import("ai").Tool<{
|
|
34
|
+
tags: string[];
|
|
35
|
+
datadogCredentials: string;
|
|
36
|
+
host_name: string;
|
|
37
|
+
source?: string | undefined;
|
|
38
|
+
}, {
|
|
39
|
+
error: string;
|
|
40
|
+
message?: undefined;
|
|
41
|
+
} | {
|
|
42
|
+
error: string;
|
|
43
|
+
message: string;
|
|
44
|
+
} | {
|
|
45
|
+
host: string;
|
|
46
|
+
tags: any;
|
|
47
|
+
source: string | undefined;
|
|
48
|
+
}>;
|
|
49
|
+
//# sourceMappingURL=hosts.d.ts.map
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { ddApi, toDatadogError } from './client.js';
|
|
5
|
+
const credsField = z.string().describe('Datadog credentials JSON with apiKey and appKey (injected by system)');
|
|
6
|
+
export const datadogListHosts = tool({
|
|
7
|
+
description: 'List infrastructure hosts with metrics, tags, and status. Filter by tag query and sort by status, name, cpu, iowait, or load.',
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
datadogCredentials: credsField,
|
|
10
|
+
filter: z.string().optional().describe("Tag filter, e.g. 'env:production'"),
|
|
11
|
+
sort_field: z.enum(['status', 'name', 'cpu', 'iowait', 'load']).optional().describe('Sort field'),
|
|
12
|
+
sort_dir: z.enum(['asc', 'desc']).optional().describe('Sort direction'),
|
|
13
|
+
start: z.number().optional().describe('Pagination offset'),
|
|
14
|
+
count: z.number().max(1000).optional().describe('Hosts to return (max 1000)'),
|
|
15
|
+
from_timestamp: z.number().optional().describe('Activity window start as seconds epoch'),
|
|
16
|
+
include_hosts_metadata: z.boolean().optional().describe('Include host metadata'),
|
|
17
|
+
include_muted_hosts_data: z.boolean().optional().describe('Include muted hosts'),
|
|
18
|
+
}),
|
|
19
|
+
execute: async ({ datadogCredentials, ...query }) => {
|
|
20
|
+
try {
|
|
21
|
+
return await ddApi(datadogCredentials, 'GET', '/api/v1/hosts', { query });
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return toDatadogError(error, 'Failed to list hosts');
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
export const datadogGetHostTags = tool({
|
|
29
|
+
description: 'Get all tags for a host, optionally filtered by source (users, chef, puppet, aws, datadog).',
|
|
30
|
+
inputSchema: z.object({
|
|
31
|
+
datadogCredentials: credsField,
|
|
32
|
+
host_name: z.string().describe('Host name'),
|
|
33
|
+
source: z.string().optional().describe('Tag source to filter by'),
|
|
34
|
+
}),
|
|
35
|
+
execute: async ({ datadogCredentials, host_name, source }) => {
|
|
36
|
+
try {
|
|
37
|
+
return await ddApi(datadogCredentials, 'GET', `/api/v1/tags/hosts/${encodeURIComponent(host_name)}`, {
|
|
38
|
+
query: { source },
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
return toDatadogError(error, 'Failed to get host tags');
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
export const datadogListAllTags = tool({
|
|
47
|
+
description: 'List all tags in use across the organization, optionally filtered by source. Use to discover tag keys for filters.',
|
|
48
|
+
inputSchema: z.object({
|
|
49
|
+
datadogCredentials: credsField,
|
|
50
|
+
source: z.string().optional().describe("Source filter, e.g. 'chef', 'users', 'datadog'"),
|
|
51
|
+
}),
|
|
52
|
+
execute: async ({ datadogCredentials, source }) => {
|
|
53
|
+
try {
|
|
54
|
+
const data = await ddApi(datadogCredentials, 'GET', '/api/v1/tags/hosts', {
|
|
55
|
+
query: { source },
|
|
56
|
+
});
|
|
57
|
+
const tagMap = data?.tags ?? {};
|
|
58
|
+
const tags = Object.entries(tagMap).map(([name, hosts]) => ({
|
|
59
|
+
name,
|
|
60
|
+
count: Array.isArray(hosts) ? hosts.length : 0,
|
|
61
|
+
}));
|
|
62
|
+
return { tags, total_count: tags.length };
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
return toDatadogError(error, 'Failed to list tags');
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
export const datadogUpdateHostTags = tool({
|
|
70
|
+
description: 'Replace all tags from one source on a host (defaults to users source). This overwrites — include the full desired tag set.',
|
|
71
|
+
inputSchema: z.object({
|
|
72
|
+
datadogCredentials: credsField,
|
|
73
|
+
host_name: z.string().describe('Host name'),
|
|
74
|
+
tags: z.array(z.string()).describe('Complete replacement tag list'),
|
|
75
|
+
source: z.string().optional().describe("Tag source (defaults to 'users')"),
|
|
76
|
+
}),
|
|
77
|
+
execute: async ({ datadogCredentials, host_name, tags, source }) => {
|
|
78
|
+
try {
|
|
79
|
+
const data = await ddApi(datadogCredentials, 'PUT', `/api/v1/tags/hosts/${encodeURIComponent(host_name)}`, { query: { source }, body: { tags } });
|
|
80
|
+
return { host: host_name, tags: data?.tags ?? tags, source };
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
return toDatadogError(error, 'Failed to update host tags');
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
//# sourceMappingURL=hosts.js.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const datadogListIncidents: import("ai").Tool<{
|
|
2
|
+
page_size: number;
|
|
3
|
+
datadogCredentials: string;
|
|
4
|
+
page_offset: number;
|
|
5
|
+
sort?: "public_id" | "-public_id" | undefined;
|
|
6
|
+
include?: string | undefined;
|
|
7
|
+
filter_query?: string | undefined;
|
|
8
|
+
}, {
|
|
9
|
+
error: string;
|
|
10
|
+
message?: undefined;
|
|
11
|
+
} | {
|
|
12
|
+
error: string;
|
|
13
|
+
message: string;
|
|
14
|
+
} | {
|
|
15
|
+
incidents: any;
|
|
16
|
+
total_count: any;
|
|
17
|
+
}>;
|
|
18
|
+
//# sourceMappingURL=incidents.d.ts.map
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { ddApi, toDatadogError } from './client.js';
|
|
5
|
+
const credsField = z.string().describe('Datadog credentials JSON with apiKey and appKey (injected by system)');
|
|
6
|
+
export const datadogListIncidents = tool({
|
|
7
|
+
description: 'List incidents with state/severity/timeline data. Filter active incidents with filter_query state:active.',
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
datadogCredentials: credsField,
|
|
10
|
+
filter_query: z.string().optional().describe("Filter, e.g. 'state:active'"),
|
|
11
|
+
sort: z.enum(['public_id', '-public_id']).optional().describe('Sort by public ID'),
|
|
12
|
+
include: z.string().optional().describe("Related resources, e.g. 'users,attachments'"),
|
|
13
|
+
page_size: z.number().min(1).max(100).optional().default(25).describe('Incidents per page'),
|
|
14
|
+
page_offset: z.number().min(0).optional().default(0).describe('Pagination offset'),
|
|
15
|
+
}),
|
|
16
|
+
execute: async ({ datadogCredentials, filter_query, page_size = 25, page_offset = 0, ...rest }) => {
|
|
17
|
+
try {
|
|
18
|
+
const data = await ddApi(datadogCredentials, 'GET', '/api/v2/incidents', {
|
|
19
|
+
query: {
|
|
20
|
+
...rest,
|
|
21
|
+
'filter[query]': filter_query,
|
|
22
|
+
'page[size]': page_size,
|
|
23
|
+
'page[offset]': page_offset,
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
const incidents = data?.data ?? [];
|
|
27
|
+
return { incidents, total_count: data?.meta?.page?.total_count ?? incidents.length };
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
return toDatadogError(error, 'Failed to list incidents');
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=incidents.js.map
|