@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.
Files changed (292) hide show
  1. package/README.md +12 -2
  2. package/dist/index.d.ts +11 -1
  3. package/dist/index.js +21 -1
  4. package/dist/toolkits/bitbucket/tools/index.d.ts +5 -5
  5. package/dist/toolkits/bitbucket/tools/reports.d.ts +5 -5
  6. package/dist/toolkits/cloudflare/tools/create-list.d.ts +1 -1
  7. package/dist/toolkits/cloudflare/tools/create-zone.d.ts +1 -1
  8. package/dist/toolkits/cloudflare/tools/index.d.ts +4 -4
  9. package/dist/toolkits/cloudflare/tools/list-pools.d.ts +1 -1
  10. package/dist/toolkits/cloudflare/tools/list-zones.d.ts +1 -1
  11. package/dist/toolkits/convex/icon.d.ts +5 -0
  12. package/dist/toolkits/convex/icon.js +10 -0
  13. package/dist/toolkits/convex/manifest.d.ts +3 -0
  14. package/dist/toolkits/convex/manifest.js +33 -0
  15. package/dist/toolkits/convex/tools/client.d.ts +28 -0
  16. package/dist/toolkits/convex/tools/client.js +85 -0
  17. package/dist/toolkits/convex/tools/deploy-keys.d.ts +10 -0
  18. package/dist/toolkits/convex/tools/deploy-keys.js +46 -0
  19. package/dist/toolkits/convex/tools/deployments.d.ts +35 -0
  20. package/dist/toolkits/convex/tools/deployments.js +126 -0
  21. package/dist/toolkits/convex/tools/domains.d.ts +7 -0
  22. package/dist/toolkits/convex/tools/domains.js +29 -0
  23. package/dist/toolkits/convex/tools/functions.d.ts +14 -0
  24. package/dist/toolkits/convex/tools/functions.js +49 -0
  25. package/dist/toolkits/convex/tools/index.d.ts +176 -0
  26. package/dist/toolkits/convex/tools/index.js +145 -0
  27. package/dist/toolkits/convex/tools/logging.d.ts +5 -0
  28. package/dist/toolkits/convex/tools/logging.js +25 -0
  29. package/dist/toolkits/convex/tools/projects.d.ts +31 -0
  30. package/dist/toolkits/convex/tools/projects.js +111 -0
  31. package/dist/toolkits/convex/tools/teams.d.ts +12 -0
  32. package/dist/toolkits/convex/tools/teams.js +62 -0
  33. package/dist/toolkits/datadog/icon.d.ts +5 -0
  34. package/dist/toolkits/datadog/icon.js +6 -0
  35. package/dist/toolkits/datadog/manifest.d.ts +3 -0
  36. package/dist/toolkits/datadog/manifest.js +44 -0
  37. package/dist/toolkits/datadog/tools/api-keys.d.ts +21 -0
  38. package/dist/toolkits/datadog/tools/api-keys.js +42 -0
  39. package/dist/toolkits/datadog/tools/apm.d.ts +51 -0
  40. package/dist/toolkits/datadog/tools/apm.js +106 -0
  41. package/dist/toolkits/datadog/tools/client.d.ts +19 -0
  42. package/dist/toolkits/datadog/tools/client.js +81 -0
  43. package/dist/toolkits/datadog/tools/dashboards.d.ts +93 -0
  44. package/dist/toolkits/datadog/tools/dashboards.js +127 -0
  45. package/dist/toolkits/datadog/tools/events.d.ts +35 -0
  46. package/dist/toolkits/datadog/tools/events.js +56 -0
  47. package/dist/toolkits/datadog/tools/hosts.d.ts +49 -0
  48. package/dist/toolkits/datadog/tools/hosts.js +87 -0
  49. package/dist/toolkits/datadog/tools/incidents.d.ts +18 -0
  50. package/dist/toolkits/datadog/tools/incidents.js +34 -0
  51. package/dist/toolkits/datadog/tools/index.d.ts +999 -0
  52. package/dist/toolkits/datadog/tools/index.js +450 -0
  53. package/dist/toolkits/datadog/tools/integrations.d.ts +32 -0
  54. package/dist/toolkits/datadog/tools/integrations.js +47 -0
  55. package/dist/toolkits/datadog/tools/logs.d.ts +39 -0
  56. package/dist/toolkits/datadog/tools/logs.js +121 -0
  57. package/dist/toolkits/datadog/tools/metrics.d.ts +27 -0
  58. package/dist/toolkits/datadog/tools/metrics.js +83 -0
  59. package/dist/toolkits/datadog/tools/monitors.d.ts +95 -0
  60. package/dist/toolkits/datadog/tools/monitors.js +190 -0
  61. package/dist/toolkits/datadog/tools/oncall-notifications.d.ts +61 -0
  62. package/dist/toolkits/datadog/tools/oncall-notifications.js +155 -0
  63. package/dist/toolkits/datadog/tools/oncall-policies.d.ts +28 -0
  64. package/dist/toolkits/datadog/tools/oncall-policies.js +72 -0
  65. package/dist/toolkits/datadog/tools/oncall-schedules.d.ts +31 -0
  66. package/dist/toolkits/datadog/tools/oncall-schedules.js +87 -0
  67. package/dist/toolkits/datadog/tools/oncall-teams.d.ts +14 -0
  68. package/dist/toolkits/datadog/tools/oncall-teams.js +54 -0
  69. package/dist/toolkits/datadog/tools/slos.d.ts +43 -0
  70. package/dist/toolkits/datadog/tools/slos.js +62 -0
  71. package/dist/toolkits/datadog/tools/synthetics.d.ts +58 -0
  72. package/dist/toolkits/datadog/tools/synthetics.js +90 -0
  73. package/dist/toolkits/datadog/tools/usage.d.ts +7 -0
  74. package/dist/toolkits/datadog/tools/usage.js +25 -0
  75. package/dist/toolkits/datadog/tools/users.d.ts +35 -0
  76. package/dist/toolkits/datadog/tools/users.js +66 -0
  77. package/dist/toolkits/dev-to/icon.d.ts +5 -0
  78. package/dist/toolkits/dev-to/icon.js +10 -0
  79. package/dist/toolkits/dev-to/manifest.d.ts +3 -0
  80. package/dist/toolkits/dev-to/manifest.js +34 -0
  81. package/dist/toolkits/dev-to/tools/articles.d.ts +78 -0
  82. package/dist/toolkits/dev-to/tools/articles.js +262 -0
  83. package/dist/toolkits/dev-to/tools/client.d.ts +25 -0
  84. package/dist/toolkits/dev-to/tools/client.js +65 -0
  85. package/dist/toolkits/dev-to/tools/community.d.ts +61 -0
  86. package/dist/toolkits/dev-to/tools/community.js +244 -0
  87. package/dist/toolkits/dev-to/tools/index.d.ts +202 -0
  88. package/dist/toolkits/dev-to/tools/index.js +37 -0
  89. package/dist/toolkits/dev-to/tools/listings.d.ts +26 -0
  90. package/dist/toolkits/dev-to/tools/listings.js +92 -0
  91. package/dist/toolkits/discord/tools/applications.d.ts +5 -5
  92. package/dist/toolkits/discord/tools/index.d.ts +5 -5
  93. package/dist/toolkits/figma/tools/create-modify-delete-variables.d.ts +1 -1
  94. package/dist/toolkits/figma/tools/get-file-nodes.d.ts +1 -1
  95. package/dist/toolkits/figma/tools/index.d.ts +3 -3
  96. package/dist/toolkits/figma/tools/render-images-of-file-nodes.d.ts +1 -1
  97. package/dist/toolkits/google-analytics/tools/reports.d.ts +9 -9
  98. package/dist/toolkits/google-classroom/tools/index.d.ts +7 -7
  99. package/dist/toolkits/google-classroom/tools/invitations.d.ts +2 -2
  100. package/dist/toolkits/google-classroom/tools/misc.d.ts +1 -1
  101. package/dist/toolkits/google-classroom/tools/roster.d.ts +5 -5
  102. package/dist/toolkits/google-search-console/tools/index.d.ts +2 -2
  103. package/dist/toolkits/google-search-console/tools/search-analytics-query.d.ts +2 -2
  104. package/dist/toolkits/hostinger/tools/index.d.ts +1 -1
  105. package/dist/toolkits/hostinger/tools/whois.d.ts +1 -1
  106. package/dist/toolkits/hugging-face/tools/datasets-viewer.d.ts +1 -1
  107. package/dist/toolkits/hugging-face/tools/datasets.d.ts +1 -1
  108. package/dist/toolkits/hugging-face/tools/index.d.ts +1 -1
  109. package/dist/toolkits/hugging-face/tools/models.d.ts +1 -1
  110. package/dist/toolkits/hugging-face/tools/repos.d.ts +1 -1
  111. package/dist/toolkits/hugging-face/tools/spaces.d.ts +1 -1
  112. package/dist/toolkits/jira/tools/index.d.ts +4 -4
  113. package/dist/toolkits/jira/tools/meta.d.ts +2 -2
  114. package/dist/toolkits/jira/tools/users.d.ts +3 -3
  115. package/dist/toolkits/kaggle/icon.d.ts +5 -0
  116. package/dist/toolkits/kaggle/icon.js +6 -0
  117. package/dist/toolkits/kaggle/manifest.d.ts +3 -0
  118. package/dist/toolkits/kaggle/manifest.js +32 -0
  119. package/dist/toolkits/kaggle/tools/client.d.ts +10 -0
  120. package/dist/toolkits/kaggle/tools/client.js +94 -0
  121. package/dist/toolkits/kaggle/tools/competitions.d.ts +48 -0
  122. package/dist/toolkits/kaggle/tools/competitions.js +109 -0
  123. package/dist/toolkits/kaggle/tools/config.d.ts +110 -0
  124. package/dist/toolkits/kaggle/tools/config.js +256 -0
  125. package/dist/toolkits/kaggle/tools/datasets.d.ts +88 -0
  126. package/dist/toolkits/kaggle/tools/datasets.js +161 -0
  127. package/dist/toolkits/kaggle/tools/index.d.ts +482 -0
  128. package/dist/toolkits/kaggle/tools/index.js +53 -0
  129. package/dist/toolkits/kaggle/tools/kernels.d.ts +62 -0
  130. package/dist/toolkits/kaggle/tools/kernels.js +121 -0
  131. package/dist/toolkits/kaggle/tools/model_instance_files.d.ts +11 -0
  132. package/dist/toolkits/kaggle/tools/model_instance_files.js +23 -0
  133. package/dist/toolkits/kaggle/tools/model_instances.d.ts +8 -0
  134. package/dist/toolkits/kaggle/tools/model_instances.js +20 -0
  135. package/dist/toolkits/kaggle/tools/models.d.ts +14 -0
  136. package/dist/toolkits/kaggle/tools/models.js +33 -0
  137. package/dist/toolkits/nasa/icon.d.ts +5 -0
  138. package/dist/toolkits/nasa/icon.js +56 -0
  139. package/dist/toolkits/nasa/manifest.d.ts +3 -0
  140. package/dist/toolkits/nasa/manifest.js +49 -0
  141. package/dist/toolkits/nasa/tools/agage.d.ts +60 -0
  142. package/dist/toolkits/nasa/tools/agage.js +176 -0
  143. package/dist/toolkits/nasa/tools/client.d.ts +95 -0
  144. package/dist/toolkits/nasa/tools/client.js +337 -0
  145. package/dist/toolkits/nasa/tools/cmr.d.ts +268 -0
  146. package/dist/toolkits/nasa/tools/cmr.js +984 -0
  147. package/dist/toolkits/nasa/tools/donki.d.ts +63 -0
  148. package/dist/toolkits/nasa/tools/donki.js +301 -0
  149. package/dist/toolkits/nasa/tools/eonet.d.ts +74 -0
  150. package/dist/toolkits/nasa/tools/eonet.js +279 -0
  151. package/dist/toolkits/nasa/tools/icesat2.d.ts +25 -0
  152. package/dist/toolkits/nasa/tools/icesat2.js +97 -0
  153. package/dist/toolkits/nasa/tools/imagery.d.ts +36 -0
  154. package/dist/toolkits/nasa/tools/imagery.js +138 -0
  155. package/dist/toolkits/nasa/tools/index.d.ts +1063 -0
  156. package/dist/toolkits/nasa/tools/index.js +865 -0
  157. package/dist/toolkits/nasa/tools/neo.d.ts +15 -0
  158. package/dist/toolkits/nasa/tools/neo.js +75 -0
  159. package/dist/toolkits/nasa/tools/ntrs.d.ts +152 -0
  160. package/dist/toolkits/nasa/tools/ntrs.js +292 -0
  161. package/dist/toolkits/nasa/tools/osdr.d.ts +72 -0
  162. package/dist/toolkits/nasa/tools/osdr.js +290 -0
  163. package/dist/toolkits/nasa/tools/planetary.d.ts +58 -0
  164. package/dist/toolkits/nasa/tools/planetary.js +312 -0
  165. package/dist/toolkits/nasa/tools/power.d.ts +52 -0
  166. package/dist/toolkits/nasa/tools/power.js +213 -0
  167. package/dist/toolkits/nasa/tools/ssc.d.ts +44 -0
  168. package/dist/toolkits/nasa/tools/ssc.js +92 -0
  169. package/dist/toolkits/nasa/tools/tolnet.d.ts +84 -0
  170. package/dist/toolkits/nasa/tools/tolnet.js +254 -0
  171. package/dist/toolkits/neo4j/tools/analytics.d.ts +1 -1
  172. package/dist/toolkits/neo4j/tools/index.d.ts +3 -3
  173. package/dist/toolkits/neo4j/tools/instances.d.ts +2 -2
  174. package/dist/toolkits/neon/tools/auth.d.ts +4 -4
  175. package/dist/toolkits/neon/tools/dataapi.d.ts +1 -1
  176. package/dist/toolkits/neon/tools/index.d.ts +7 -7
  177. package/dist/toolkits/neon/tools/projects.d.ts +2 -2
  178. package/dist/toolkits/new-relic/icon.d.ts +5 -0
  179. package/dist/toolkits/new-relic/icon.js +6 -0
  180. package/dist/toolkits/new-relic/manifest.d.ts +3 -0
  181. package/dist/toolkits/new-relic/manifest.js +41 -0
  182. package/dist/toolkits/new-relic/tools/admin.d.ts +310 -0
  183. package/dist/toolkits/new-relic/tools/admin.js +282 -0
  184. package/dist/toolkits/new-relic/tools/alert-policies.d.ts +74 -0
  185. package/dist/toolkits/new-relic/tools/alert-policies.js +136 -0
  186. package/dist/toolkits/new-relic/tools/apm.d.ts +129 -0
  187. package/dist/toolkits/new-relic/tools/apm.js +228 -0
  188. package/dist/toolkits/new-relic/tools/client.d.ts +62 -0
  189. package/dist/toolkits/new-relic/tools/client.js +167 -0
  190. package/dist/toolkits/new-relic/tools/conditions.d.ts +190 -0
  191. package/dist/toolkits/new-relic/tools/conditions.js +265 -0
  192. package/dist/toolkits/new-relic/tools/config.d.ts +73 -0
  193. package/dist/toolkits/new-relic/tools/config.js +131 -0
  194. package/dist/toolkits/new-relic/tools/dashboards.d.ts +204 -0
  195. package/dist/toolkits/new-relic/tools/dashboards.js +159 -0
  196. package/dist/toolkits/new-relic/tools/entities.d.ts +160 -0
  197. package/dist/toolkits/new-relic/tools/entities.js +218 -0
  198. package/dist/toolkits/new-relic/tools/index.d.ts +23 -0
  199. package/dist/toolkits/new-relic/tools/index.js +179 -0
  200. package/dist/toolkits/new-relic/tools/ingest.d.ts +31 -0
  201. package/dist/toolkits/new-relic/tools/ingest.js +80 -0
  202. package/dist/toolkits/new-relic/tools/notifications.d.ts +186 -0
  203. package/dist/toolkits/new-relic/tools/notifications.js +232 -0
  204. package/dist/toolkits/new-relic/tools/nrql-conditions.d.ts +105 -0
  205. package/dist/toolkits/new-relic/tools/nrql-conditions.js +136 -0
  206. package/dist/toolkits/new-relic/tools/nrql.d.ts +38 -0
  207. package/dist/toolkits/new-relic/tools/nrql.js +99 -0
  208. package/dist/toolkits/new-relic/tools/synthetics.d.ts +176 -0
  209. package/dist/toolkits/new-relic/tools/synthetics.js +246 -0
  210. package/dist/toolkits/notebook-lm/icon.d.ts +5 -0
  211. package/dist/toolkits/notebook-lm/icon.js +6 -0
  212. package/dist/toolkits/notebook-lm/manifest.d.ts +3 -0
  213. package/dist/toolkits/notebook-lm/manifest.js +44 -0
  214. package/dist/toolkits/notebook-lm/tools/add-text-sources.d.ts +36 -0
  215. package/dist/toolkits/notebook-lm/tools/add-text-sources.js +51 -0
  216. package/dist/toolkits/notebook-lm/tools/create-audio-overview.d.ts +47 -0
  217. package/dist/toolkits/notebook-lm/tools/create-audio-overview.js +55 -0
  218. package/dist/toolkits/notebook-lm/tools/create-notebook.d.ts +52 -0
  219. package/dist/toolkits/notebook-lm/tools/create-notebook.js +49 -0
  220. package/dist/toolkits/notebook-lm/tools/delete-audio-overview.d.ts +33 -0
  221. package/dist/toolkits/notebook-lm/tools/delete-audio-overview.js +46 -0
  222. package/dist/toolkits/notebook-lm/tools/delete-notebooks.d.ts +32 -0
  223. package/dist/toolkits/notebook-lm/tools/delete-notebooks.js +46 -0
  224. package/dist/toolkits/notebook-lm/tools/delete-sources.d.ts +33 -0
  225. package/dist/toolkits/notebook-lm/tools/delete-sources.js +47 -0
  226. package/dist/toolkits/notebook-lm/tools/get-notebook.d.ts +52 -0
  227. package/dist/toolkits/notebook-lm/tools/get-notebook.js +45 -0
  228. package/dist/toolkits/notebook-lm/tools/get-source.d.ts +53 -0
  229. package/dist/toolkits/notebook-lm/tools/get-source.js +47 -0
  230. package/dist/toolkits/notebook-lm/tools/index.d.ts +516 -0
  231. package/dist/toolkits/notebook-lm/tools/index.js +93 -0
  232. package/dist/toolkits/notebook-lm/tools/list-recent-notebooks.d.ts +32 -0
  233. package/dist/toolkits/notebook-lm/tools/list-recent-notebooks.js +41 -0
  234. package/dist/toolkits/notebook-lm/tools/share-notebook.d.ts +48 -0
  235. package/dist/toolkits/notebook-lm/tools/share-notebook.js +57 -0
  236. package/dist/toolkits/notebook-lm/tools/upload-source-file.d.ts +40 -0
  237. package/dist/toolkits/notebook-lm/tools/upload-source-file.js +62 -0
  238. package/dist/toolkits/notebook-lm/tools/utils.d.ts +15 -0
  239. package/dist/toolkits/notebook-lm/tools/utils.js +46 -0
  240. package/dist/toolkits/npm/icon.d.ts +5 -0
  241. package/dist/toolkits/npm/icon.js +11 -0
  242. package/dist/toolkits/npm/manifest.d.ts +3 -0
  243. package/dist/toolkits/npm/manifest.js +35 -0
  244. package/dist/toolkits/npm/tools/client.d.ts +19 -0
  245. package/dist/toolkits/npm/tools/client.js +64 -0
  246. package/dist/toolkits/npm/tools/downloads.d.ts +19 -0
  247. package/dist/toolkits/npm/tools/downloads.js +39 -0
  248. package/dist/toolkits/npm/tools/index.d.ts +14 -0
  249. package/dist/toolkits/npm/tools/index.js +24 -0
  250. package/dist/toolkits/npm/tools/registry.d.ts +24 -0
  251. package/dist/toolkits/npm/tools/registry.js +58 -0
  252. package/dist/toolkits/npm/tools/security.d.ts +9 -0
  253. package/dist/toolkits/npm/tools/security.js +29 -0
  254. package/dist/toolkits/slack/tools/admin-users.d.ts +1 -1
  255. package/dist/toolkits/slack/tools/slack-lists.d.ts +3 -3
  256. package/dist/toolkits/snowflake/icon.d.ts +5 -0
  257. package/dist/toolkits/snowflake/icon.js +6 -0
  258. package/dist/toolkits/snowflake/manifest.d.ts +3 -0
  259. package/dist/toolkits/snowflake/manifest.js +32 -0
  260. package/dist/toolkits/snowflake/tools/catalog.d.ts +56 -0
  261. package/dist/toolkits/snowflake/tools/catalog.js +123 -0
  262. package/dist/toolkits/snowflake/tools/client.d.ts +53 -0
  263. package/dist/toolkits/snowflake/tools/client.js +145 -0
  264. package/dist/toolkits/snowflake/tools/index.d.ts +14 -0
  265. package/dist/toolkits/snowflake/tools/index.js +28 -0
  266. package/dist/toolkits/snowflake/tools/statements.d.ts +27 -0
  267. package/dist/toolkits/snowflake/tools/statements.js +84 -0
  268. package/dist/toolkits/snowflake/tools/status.d.ts +22 -0
  269. package/dist/toolkits/snowflake/tools/status.js +54 -0
  270. package/dist/toolkits/telegram/icon.d.ts +5 -0
  271. package/dist/toolkits/telegram/icon.js +6 -0
  272. package/dist/toolkits/telegram/manifest.d.ts +3 -0
  273. package/dist/toolkits/telegram/manifest.js +34 -0
  274. package/dist/toolkits/telegram/tools/bot.d.ts +13 -0
  275. package/dist/toolkits/telegram/tools/bot.js +23 -0
  276. package/dist/toolkits/telegram/tools/chats.d.ts +22 -0
  277. package/dist/toolkits/telegram/tools/chats.js +46 -0
  278. package/dist/toolkits/telegram/tools/client.d.ts +12 -0
  279. package/dist/toolkits/telegram/tools/client.js +46 -0
  280. package/dist/toolkits/telegram/tools/index.d.ts +15 -0
  281. package/dist/toolkits/telegram/tools/index.js +31 -0
  282. package/dist/toolkits/telegram/tools/messages.d.ts +86 -0
  283. package/dist/toolkits/telegram/tools/messages.js +134 -0
  284. package/dist/toolkits/telegram/tools/updates.d.ts +23 -0
  285. package/dist/toolkits/telegram/tools/updates.js +54 -0
  286. package/dist/toolkits/youtube/tools/get-channel-activities.d.ts +1 -1
  287. package/dist/toolkits/youtube/tools/index.d.ts +5 -5
  288. package/dist/toolkits/youtube/tools/list-channel-sections.d.ts +1 -1
  289. package/dist/toolkits/youtube/tools/post-comment.d.ts +1 -1
  290. package/dist/toolkits/youtube/tools/subscribe-channel.d.ts +1 -1
  291. package/dist/toolkits/youtube/tools/unsubscribe-channel.d.ts +1 -1
  292. package/package.json +2 -3
@@ -0,0 +1,27 @@
1
+ export declare const datadogListMetrics: import("ai").Tool<{
2
+ datadogCredentials: string;
3
+ from_timestamp: number;
4
+ host?: string | undefined;
5
+ tag_filter?: string | undefined;
6
+ }, any>;
7
+ export declare const datadogQueryMetrics: import("ai").Tool<{
8
+ query: string;
9
+ datadogCredentials: string;
10
+ from_timestamp: number;
11
+ to_timestamp: number;
12
+ }, any>;
13
+ export declare const datadogSubmitMetrics: import("ai").Tool<{
14
+ series: {
15
+ metric: string;
16
+ points: {
17
+ value: number;
18
+ timestamp?: number | undefined;
19
+ }[];
20
+ type?: string | undefined;
21
+ tags?: string[] | undefined;
22
+ host?: string | undefined;
23
+ interval?: number | undefined;
24
+ }[];
25
+ datadogCredentials: string;
26
+ }, any>;
27
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1,83 @@
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 datadogListMetrics = tool({
7
+ description: 'Discover actively reporting metric names since a timestamp, optionally filtered by host or tags. Use before datadogQueryMetrics to find exact names.',
8
+ inputSchema: z.object({
9
+ datadogCredentials: credsField,
10
+ from_timestamp: z.number().describe('Seconds since epoch: list metrics active since this time'),
11
+ host: z.string().optional().describe('Only metrics reported with this hostname tag'),
12
+ tag_filter: z.string().optional().describe("Tag filter, e.g. 'env:prod AND service:api' (no other filters)"),
13
+ }),
14
+ execute: async ({ datadogCredentials, from_timestamp, host, tag_filter }) => {
15
+ try {
16
+ return await ddApi(datadogCredentials, 'GET', '/api/v1/metrics', {
17
+ query: { from: from_timestamp, host, tag_filter },
18
+ });
19
+ }
20
+ catch (error) {
21
+ return toDatadogError(error, 'Failed to list metrics');
22
+ }
23
+ },
24
+ });
25
+ export const datadogQueryMetrics = tool({
26
+ description: 'Query timeseries data with a metrics query string over a UTC seconds range (max 1 year). Use datadogListMetrics first to confirm names; millisecond timestamps silently return empty series.',
27
+ inputSchema: z.object({
28
+ datadogCredentials: credsField,
29
+ query: z.string().describe("Query, e.g. 'avg:system.cpu.user{*}'"),
30
+ from_timestamp: z.number().describe('Range start as UTC seconds'),
31
+ to_timestamp: z.number().describe('Range end as UTC seconds'),
32
+ }),
33
+ execute: async ({ datadogCredentials, query, from_timestamp, to_timestamp }) => {
34
+ try {
35
+ return await ddApi(datadogCredentials, 'GET', '/api/v1/query', {
36
+ query: { from: from_timestamp, to: to_timestamp, query },
37
+ });
38
+ }
39
+ catch (error) {
40
+ return toDatadogError(error, 'Failed to query metrics');
41
+ }
42
+ },
43
+ });
44
+ export const datadogSubmitMetrics = tool({
45
+ description: 'Submit custom gauge/rate/count series (KPIs, app metrics). Points default to the current time when timestamp is omitted.',
46
+ inputSchema: z.object({
47
+ datadogCredentials: credsField,
48
+ series: z
49
+ .array(z.object({
50
+ metric: z.string().describe('Metric name, e.g. myapp.response_time'),
51
+ points: z
52
+ .array(z.object({
53
+ timestamp: z.number().optional().describe('Seconds epoch (defaults to now)'),
54
+ value: z.number().describe('Point value'),
55
+ }))
56
+ .min(1)
57
+ .describe('Data points'),
58
+ host: z.string().optional().describe('Host name'),
59
+ tags: z.array(z.string()).optional().describe("Tags, e.g. ['env:production']"),
60
+ type: z.string().optional().describe("One of 'gauge', 'rate', 'count'"),
61
+ interval: z.number().optional().describe('Seconds between points (rate metrics)'),
62
+ }))
63
+ .min(1)
64
+ .describe('Series to submit'),
65
+ }),
66
+ execute: async ({ datadogCredentials, series }) => {
67
+ try {
68
+ const now = Math.floor(Date.now() / 1000);
69
+ return await ddApi(datadogCredentials, 'POST', '/api/v1/series', {
70
+ body: {
71
+ series: series.map((s) => ({
72
+ ...s,
73
+ points: s.points.map((p) => [p.timestamp ?? now, p.value]),
74
+ })),
75
+ },
76
+ });
77
+ }
78
+ catch (error) {
79
+ return toDatadogError(error, 'Failed to submit metrics');
80
+ }
81
+ },
82
+ });
83
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1,95 @@
1
+ export declare const datadogCreateMonitor: import("ai").Tool<{
2
+ query: string;
3
+ type: "metric alert" | "service check" | "event alert" | "query alert" | "composite" | "log alert";
4
+ name: string;
5
+ datadogCredentials: string;
6
+ message?: string | undefined;
7
+ options?: Record<string, any> | undefined;
8
+ priority?: number | undefined;
9
+ tags?: string[] | undefined;
10
+ }, any>;
11
+ export declare const datadogGetMonitor: import("ai").Tool<{
12
+ datadogCredentials: string;
13
+ monitor_id: number;
14
+ group_states?: string[] | undefined;
15
+ with_downtimes?: boolean | undefined;
16
+ }, any>;
17
+ export declare const datadogListMonitors: import("ai").Tool<{
18
+ datadogCredentials: string;
19
+ page?: number | undefined;
20
+ name?: string | undefined;
21
+ page_size?: number | undefined;
22
+ tags?: string[] | undefined;
23
+ group_states?: string[] | undefined;
24
+ with_downtimes?: boolean | undefined;
25
+ monitor_tags?: string[] | undefined;
26
+ id_offset?: number | undefined;
27
+ }, {
28
+ error: string;
29
+ message?: undefined;
30
+ } | {
31
+ error: string;
32
+ message: string;
33
+ } | {
34
+ monitors: any;
35
+ total_count: any;
36
+ }>;
37
+ export declare const datadogUpdateMonitor: import("ai").Tool<{
38
+ datadogCredentials: string;
39
+ monitor_id: number;
40
+ query?: string | undefined;
41
+ message?: string | undefined;
42
+ options?: Record<string, any> | undefined;
43
+ type?: "metric alert" | "service check" | "event alert" | "query alert" | "composite" | "log alert" | undefined;
44
+ priority?: number | undefined;
45
+ name?: string | undefined;
46
+ tags?: string[] | undefined;
47
+ }, any>;
48
+ export declare const datadogDeleteMonitor: import("ai").Tool<{
49
+ datadogCredentials: string;
50
+ monitor_id: number;
51
+ force?: boolean | undefined;
52
+ }, {
53
+ error: string;
54
+ message?: undefined;
55
+ } | {
56
+ error: string;
57
+ message: string;
58
+ } | {
59
+ deleted_monitor_id: any;
60
+ message: any;
61
+ }>;
62
+ export declare const datadogMuteMonitor: import("ai").Tool<{
63
+ datadogCredentials: string;
64
+ monitor_id: number;
65
+ end?: number | undefined;
66
+ override?: boolean | undefined;
67
+ }, any>;
68
+ export declare const datadogUnmuteMonitor: import("ai").Tool<{
69
+ datadogCredentials: string;
70
+ monitor_id: number;
71
+ all_scopes?: boolean | undefined;
72
+ }, {
73
+ error: string;
74
+ message?: undefined;
75
+ } | {
76
+ error: string;
77
+ message: string;
78
+ } | {
79
+ monitor_id: number;
80
+ muted: any;
81
+ success: boolean;
82
+ message: string;
83
+ }>;
84
+ export declare const datadogCreateDowntime: import("ai").Tool<{
85
+ scope: string[];
86
+ datadogCredentials: string;
87
+ message?: string | undefined;
88
+ start?: number | undefined;
89
+ end?: number | undefined;
90
+ monitor_id?: number | undefined;
91
+ monitor_tags?: string[] | undefined;
92
+ timezone?: string | undefined;
93
+ recurrence?: Record<string, any> | undefined;
94
+ }, any>;
95
+ //# sourceMappingURL=monitors.d.ts.map
@@ -0,0 +1,190 @@
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 monitorType = z
7
+ .enum(['metric alert', 'service check', 'event alert', 'query alert', 'composite', 'log alert'])
8
+ .describe('Monitor type (query syntax must match the type)');
9
+ const monitorOptions = z.record(z.any()).optional().describe('Options: thresholds, notify_no_data, renotify_interval, etc.');
10
+ export const datadogCreateMonitor = tool({
11
+ description: 'Create a monitor with alerting thresholds and notifications. The query syntax must match the monitor type exactly or creation fails.',
12
+ inputSchema: z.object({
13
+ datadogCredentials: credsField,
14
+ type: monitorType,
15
+ name: z.string().describe("Monitor name, e.g. 'High CPU Usage'"),
16
+ query: z.string().describe("Monitor query, e.g. 'avg(last_5m):avg:system.cpu.user{*} > 80'"),
17
+ message: z.string().optional().describe('Notification text (supports @mentions and markdown)'),
18
+ tags: z.array(z.string()).optional().describe('Tags for the monitor'),
19
+ priority: z.number().optional().describe('Priority 1-5 (1 is highest)'),
20
+ options: monitorOptions,
21
+ }),
22
+ execute: async ({ datadogCredentials, ...body }) => {
23
+ try {
24
+ return await ddApi(datadogCredentials, 'POST', '/api/v1/monitor', { body });
25
+ }
26
+ catch (error) {
27
+ return toDatadogError(error, 'Failed to create monitor');
28
+ }
29
+ },
30
+ });
31
+ export const datadogGetMonitor = tool({
32
+ description: 'Get a monitor by ID with state, config, and optionally downtimes. Use datadogListMonitors to discover IDs.',
33
+ inputSchema: z.object({
34
+ datadogCredentials: credsField,
35
+ monitor_id: z.number().describe('Monitor ID'),
36
+ group_states: z.array(z.string()).optional().describe("Group states: 'all', 'alert', 'warn', 'no data'"),
37
+ with_downtimes: z.boolean().optional().describe('Include active downtimes'),
38
+ }),
39
+ execute: async ({ datadogCredentials, monitor_id, group_states, with_downtimes }) => {
40
+ try {
41
+ return await ddApi(datadogCredentials, 'GET', `/api/v1/monitor/${monitor_id}`, {
42
+ query: { group_states: group_states?.join(','), with_downtimes },
43
+ });
44
+ }
45
+ catch (error) {
46
+ return toDatadogError(error, 'Failed to get monitor');
47
+ }
48
+ },
49
+ });
50
+ export const datadogListMonitors = tool({
51
+ description: 'List monitors with name/tag/state filters. Set page and page_size together to paginate (pages start at 0); omit both for all monitors.',
52
+ inputSchema: z.object({
53
+ datadogCredentials: credsField,
54
+ name: z.string().optional().describe('Name substring filter'),
55
+ tags: z.array(z.string()).optional().describe('Scope tags, e.g. host:host0'),
56
+ monitor_tags: z.array(z.string()).optional().describe('Service/custom tags, e.g. service:my-app'),
57
+ group_states: z.array(z.string()).optional().describe('Alert, Warn, or No Data'),
58
+ with_downtimes: z.boolean().optional().describe('Include current downtimes'),
59
+ page: z.number().optional().describe('Page number from 0 (requires page_size)'),
60
+ page_size: z.number().max(100).optional().describe('Monitors per page (max 100, requires page)'),
61
+ id_offset: z.number().optional().describe('Monitor ID offset pagination'),
62
+ }),
63
+ execute: async ({ datadogCredentials, tags, monitor_tags, group_states, ...rest }) => {
64
+ try {
65
+ const data = await ddApi(datadogCredentials, 'GET', '/api/v1/monitor', {
66
+ query: {
67
+ ...rest,
68
+ tags: tags?.join(','),
69
+ monitor_tags: monitor_tags?.join(','),
70
+ group_states: group_states?.join(','),
71
+ },
72
+ });
73
+ const monitors = Array.isArray(data) ? data : (data?.monitors ?? []);
74
+ return { monitors, total_count: data?.total_count ?? monitors.length };
75
+ }
76
+ catch (error) {
77
+ return toDatadogError(error, 'Failed to list monitors');
78
+ }
79
+ },
80
+ });
81
+ export const datadogUpdateMonitor = tool({
82
+ description: 'Update a monitor; only provided fields change. Confirm query/type changes with the user first.',
83
+ inputSchema: z.object({
84
+ datadogCredentials: credsField,
85
+ monitor_id: z.number().describe('Monitor ID to update'),
86
+ type: monitorType.optional(),
87
+ name: z.string().optional().describe('Monitor name'),
88
+ query: z.string().optional().describe('Monitor query'),
89
+ message: z.string().optional().describe('Notification text'),
90
+ tags: z.array(z.string()).optional().describe('Replacement tags'),
91
+ priority: z.number().optional().describe('Priority 1-5'),
92
+ options: monitorOptions,
93
+ }),
94
+ execute: async ({ datadogCredentials, monitor_id, ...body }) => {
95
+ try {
96
+ return await ddApi(datadogCredentials, 'PUT', `/api/v1/monitor/${monitor_id}`, { body });
97
+ }
98
+ catch (error) {
99
+ return toDatadogError(error, 'Failed to update monitor');
100
+ }
101
+ },
102
+ });
103
+ export const datadogDeleteMonitor = tool({
104
+ description: 'Permanently delete a monitor. Irreversible — confirm with the user first.',
105
+ inputSchema: z.object({
106
+ datadogCredentials: credsField,
107
+ monitor_id: z.number().describe('Monitor ID to delete'),
108
+ force: z.boolean().optional().describe('Force deletion without confirmation'),
109
+ }),
110
+ execute: async ({ datadogCredentials, monitor_id, force }) => {
111
+ try {
112
+ const data = await ddApi(datadogCredentials, 'DELETE', `/api/v1/monitor/${monitor_id}`, {
113
+ query: { force },
114
+ });
115
+ return {
116
+ deleted_monitor_id: data?.deleted_monitor_id ?? monitor_id,
117
+ message: data?.message ?? 'Monitor deleted',
118
+ };
119
+ }
120
+ catch (error) {
121
+ return toDatadogError(error, 'Failed to delete monitor');
122
+ }
123
+ },
124
+ });
125
+ export const datadogMuteMonitor = tool({
126
+ description: 'Mute a monitor to silence alerts during maintenance or deployments. Without end it stays muted until manually unmuted.',
127
+ inputSchema: z.object({
128
+ datadogCredentials: credsField,
129
+ monitor_id: z.number().describe('Monitor ID to mute'),
130
+ end: z.number().optional().describe('POSIX timestamp when the mute expires'),
131
+ override: z.boolean().optional().describe('Override existing mute settings'),
132
+ }),
133
+ execute: async ({ datadogCredentials, monitor_id, end, override }) => {
134
+ try {
135
+ return await ddApi(datadogCredentials, 'POST', `/api/v1/monitor/${monitor_id}/mute`, {
136
+ body: { end, override },
137
+ });
138
+ }
139
+ catch (error) {
140
+ return toDatadogError(error, 'Failed to mute monitor');
141
+ }
142
+ },
143
+ });
144
+ export const datadogUnmuteMonitor = tool({
145
+ description: 'Unmute a monitor so alerting resumes immediately. Only unmute after maintenance or the issue is fully resolved to avoid alert storms.',
146
+ inputSchema: z.object({
147
+ datadogCredentials: credsField,
148
+ monitor_id: z.number().describe('Monitor ID to unmute'),
149
+ all_scopes: z.boolean().optional().describe('Unmute for all scopes'),
150
+ }),
151
+ execute: async ({ datadogCredentials, monitor_id, all_scopes }) => {
152
+ try {
153
+ const data = await ddApi(datadogCredentials, 'POST', `/api/v1/monitor/${monitor_id}/unmute`, {
154
+ body: { all_scopes },
155
+ });
156
+ return {
157
+ monitor_id,
158
+ muted: data?.muted ?? false,
159
+ success: true,
160
+ message: 'Monitor unmuted',
161
+ };
162
+ }
163
+ catch (error) {
164
+ return toDatadogError(error, 'Failed to unmute monitor');
165
+ }
166
+ },
167
+ });
168
+ export const datadogCreateDowntime = tool({
169
+ description: 'Create a downtime to suppress alerts during maintenance or deployments. Scope to hosts, services, tags, or a monitor ID.',
170
+ inputSchema: z.object({
171
+ datadogCredentials: credsField,
172
+ scope: z.array(z.string()).describe("Scope, e.g. ['host:web-01'] or ['*']"),
173
+ message: z.string().optional().describe("Note, e.g. 'Scheduled maintenance'"),
174
+ start: z.number().optional().describe('Start as seconds epoch (omit to start now)'),
175
+ end: z.number().optional().describe('End as seconds epoch'),
176
+ timezone: z.string().optional().describe("Timezone, e.g. 'UTC' or 'America/New_York'"),
177
+ monitor_id: z.number().optional().describe('Downtime for one monitor instead of scope'),
178
+ monitor_tags: z.array(z.string()).optional().describe('Monitor tags to match'),
179
+ recurrence: z.record(z.any()).optional().describe('Recurrence: type (days/weeks/months/years), period, week_days, until_date/occurrences'),
180
+ }),
181
+ execute: async ({ datadogCredentials, ...body }) => {
182
+ try {
183
+ return await ddApi(datadogCredentials, 'POST', '/api/v1/downtime', { body });
184
+ }
185
+ catch (error) {
186
+ return toDatadogError(error, 'Failed to create downtime');
187
+ }
188
+ },
189
+ });
190
+ //# sourceMappingURL=monitors.js.map
@@ -0,0 +1,61 @@
1
+ export declare const datadogCreateNotificationChannel: import("ai").Tool<{
2
+ data: Record<string, any>;
3
+ user_id: string;
4
+ datadogCredentials: string;
5
+ }, any>;
6
+ export declare const datadogGetNotificationChannel: import("ai").Tool<{
7
+ channel_id: string;
8
+ user_id: string;
9
+ datadogCredentials: string;
10
+ }, any>;
11
+ export declare const datadogListNotificationChannels: import("ai").Tool<{
12
+ user_id: string;
13
+ datadogCredentials: string;
14
+ }, any>;
15
+ export declare const datadogDeleteNotificationChannel: import("ai").Tool<{
16
+ channel_id: string;
17
+ user_id: string;
18
+ datadogCredentials: string;
19
+ }, {
20
+ error: string;
21
+ message?: undefined;
22
+ } | {
23
+ error: string;
24
+ message: string;
25
+ } | {
26
+ success: boolean;
27
+ }>;
28
+ export declare const datadogCreateNotificationRule: import("ai").Tool<{
29
+ data: Record<string, any>;
30
+ user_id: string;
31
+ datadogCredentials: string;
32
+ }, any>;
33
+ export declare const datadogGetNotificationRule: import("ai").Tool<{
34
+ user_id: string;
35
+ datadogCredentials: string;
36
+ rule_id: string;
37
+ }, any>;
38
+ export declare const datadogListNotificationRules: import("ai").Tool<{
39
+ user_id: string;
40
+ datadogCredentials: string;
41
+ }, any>;
42
+ export declare const datadogUpdateNotificationRule: import("ai").Tool<{
43
+ data: Record<string, any>;
44
+ user_id: string;
45
+ datadogCredentials: string;
46
+ rule_id: string;
47
+ }, any>;
48
+ export declare const datadogDeleteNotificationRule: import("ai").Tool<{
49
+ user_id: string;
50
+ datadogCredentials: string;
51
+ rule_id: string;
52
+ }, {
53
+ error: string;
54
+ message?: undefined;
55
+ } | {
56
+ error: string;
57
+ message: string;
58
+ } | {
59
+ success: boolean;
60
+ }>;
61
+ //# sourceMappingURL=oncall-notifications.d.ts.map
@@ -0,0 +1,155 @@
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 datadogCreateNotificationChannel = tool({
7
+ description: 'Create an email or phone notification channel for a user (E.164 for phone, address+formats for email).',
8
+ inputSchema: z.object({
9
+ datadogCredentials: credsField,
10
+ user_id: z.string().describe('Owner user ID'),
11
+ data: z.record(z.any()).describe("JSON:API data object with type 'notification_channels' and config attributes"),
12
+ }),
13
+ execute: async ({ datadogCredentials, user_id, data }) => {
14
+ try {
15
+ return await ddApi(datadogCredentials, 'POST', `/api/v2/on-call/users/${user_id}/notification-channels`, {
16
+ body: { data },
17
+ });
18
+ }
19
+ catch (error) {
20
+ return toDatadogError(error, 'Failed to create notification channel');
21
+ }
22
+ },
23
+ });
24
+ export const datadogGetNotificationChannel = tool({
25
+ description: 'Get one notification channel for a user by channel ID.',
26
+ inputSchema: z.object({
27
+ datadogCredentials: credsField,
28
+ user_id: z.string().describe('Owner user ID'),
29
+ channel_id: z.string().describe('Notification channel ID'),
30
+ }),
31
+ execute: async ({ datadogCredentials, user_id, channel_id }) => {
32
+ try {
33
+ return await ddApi(datadogCredentials, 'GET', `/api/v2/on-call/users/${user_id}/notification-channels/${channel_id}`);
34
+ }
35
+ catch (error) {
36
+ return toDatadogError(error, 'Failed to get notification channel');
37
+ }
38
+ },
39
+ });
40
+ export const datadogListNotificationChannels = tool({
41
+ description: 'List all notification channels configured for a user.',
42
+ inputSchema: z.object({
43
+ datadogCredentials: credsField,
44
+ user_id: z.string().describe('Owner user ID'),
45
+ }),
46
+ execute: async ({ datadogCredentials, user_id }) => {
47
+ try {
48
+ return await ddApi(datadogCredentials, 'GET', `/api/v2/on-call/users/${user_id}/notification-channels`);
49
+ }
50
+ catch (error) {
51
+ return toDatadogError(error, 'Failed to list notification channels');
52
+ }
53
+ },
54
+ });
55
+ export const datadogDeleteNotificationChannel = tool({
56
+ description: 'Delete a user notification channel. Irreversible — confirm with the user first.',
57
+ inputSchema: z.object({
58
+ datadogCredentials: credsField,
59
+ user_id: z.string().describe('Owner user ID'),
60
+ channel_id: z.string().describe('Notification channel ID to delete'),
61
+ }),
62
+ execute: async ({ datadogCredentials, user_id, channel_id }) => {
63
+ try {
64
+ await ddApi(datadogCredentials, 'DELETE', `/api/v2/on-call/users/${user_id}/notification-channels/${channel_id}`);
65
+ return { success: true };
66
+ }
67
+ catch (error) {
68
+ return toDatadogError(error, 'Failed to delete notification channel');
69
+ }
70
+ },
71
+ });
72
+ export const datadogCreateNotificationRule = tool({
73
+ description: 'Create a notification rule for a user: urgency category, delay, and the channel it routes to.',
74
+ inputSchema: z.object({
75
+ datadogCredentials: credsField,
76
+ user_id: z.string().describe('Owner user ID'),
77
+ data: z.record(z.any()).describe("JSON:API data object with type 'notification_rules', attributes, and channel relationships"),
78
+ }),
79
+ execute: async ({ datadogCredentials, user_id, data }) => {
80
+ try {
81
+ return await ddApi(datadogCredentials, 'POST', `/api/v2/on-call/users/${user_id}/notification-rules`, {
82
+ body: { data },
83
+ });
84
+ }
85
+ catch (error) {
86
+ return toDatadogError(error, 'Failed to create notification rule');
87
+ }
88
+ },
89
+ });
90
+ export const datadogGetNotificationRule = tool({
91
+ description: 'Get one notification rule for a user by rule ID.',
92
+ inputSchema: z.object({
93
+ datadogCredentials: credsField,
94
+ user_id: z.string().describe('Owner user ID'),
95
+ rule_id: z.string().describe('Notification rule ID'),
96
+ }),
97
+ execute: async ({ datadogCredentials, user_id, rule_id }) => {
98
+ try {
99
+ return await ddApi(datadogCredentials, 'GET', `/api/v2/on-call/users/${user_id}/notification-rules/${rule_id}`);
100
+ }
101
+ catch (error) {
102
+ return toDatadogError(error, 'Failed to get notification rule');
103
+ }
104
+ },
105
+ });
106
+ export const datadogListNotificationRules = tool({
107
+ description: 'List all notification rules configured for a user.',
108
+ inputSchema: z.object({
109
+ datadogCredentials: credsField,
110
+ user_id: z.string().describe('Owner user ID'),
111
+ }),
112
+ execute: async ({ datadogCredentials, user_id }) => {
113
+ try {
114
+ return await ddApi(datadogCredentials, 'GET', `/api/v2/on-call/users/${user_id}/notification-rules`);
115
+ }
116
+ catch (error) {
117
+ return toDatadogError(error, 'Failed to list notification rules');
118
+ }
119
+ },
120
+ });
121
+ export const datadogUpdateNotificationRule = tool({
122
+ description: 'Update a user notification rule by ID (category, delay, channel).',
123
+ inputSchema: z.object({
124
+ datadogCredentials: credsField,
125
+ user_id: z.string().describe('Owner user ID'),
126
+ rule_id: z.string().describe('Notification rule ID to update'),
127
+ data: z.record(z.any()).describe("JSON:API data object with the rule update"),
128
+ }),
129
+ execute: async ({ datadogCredentials, user_id, rule_id, data }) => {
130
+ try {
131
+ return await ddApi(datadogCredentials, 'PUT', `/api/v2/on-call/users/${user_id}/notification-rules/${rule_id}`, { body: { data } });
132
+ }
133
+ catch (error) {
134
+ return toDatadogError(error, 'Failed to update notification rule');
135
+ }
136
+ },
137
+ });
138
+ export const datadogDeleteNotificationRule = tool({
139
+ description: 'Delete a user notification rule. Irreversible — confirm with the user first.',
140
+ inputSchema: z.object({
141
+ datadogCredentials: credsField,
142
+ user_id: z.string().describe('Owner user ID'),
143
+ rule_id: z.string().describe('Notification rule ID to delete'),
144
+ }),
145
+ execute: async ({ datadogCredentials, user_id, rule_id }) => {
146
+ try {
147
+ await ddApi(datadogCredentials, 'DELETE', `/api/v2/on-call/users/${user_id}/notification-rules/${rule_id}`);
148
+ return { success: true };
149
+ }
150
+ catch (error) {
151
+ return toDatadogError(error, 'Failed to delete notification rule');
152
+ }
153
+ },
154
+ });
155
+ //# sourceMappingURL=oncall-notifications.js.map
@@ -0,0 +1,28 @@
1
+ export declare const datadogCreateEscalationPolicy: import("ai").Tool<{
2
+ data: Record<string, any>;
3
+ datadogCredentials: string;
4
+ }, any>;
5
+ export declare const datadogGetEscalationPolicy: import("ai").Tool<{
6
+ policy_id: string;
7
+ datadogCredentials: string;
8
+ }, any>;
9
+ export declare const datadogUpdateEscalationPolicy: import("ai").Tool<{
10
+ data: Record<string, any>;
11
+ policy_id: string;
12
+ datadogCredentials: string;
13
+ }, any>;
14
+ export declare const datadogDeleteEscalationPolicy: import("ai").Tool<{
15
+ policy_id: string;
16
+ datadogCredentials: string;
17
+ }, {
18
+ error: string;
19
+ message?: undefined;
20
+ } | {
21
+ error: string;
22
+ message: string;
23
+ } | {
24
+ deleted: boolean;
25
+ policy_id: string;
26
+ status: number;
27
+ }>;
28
+ //# sourceMappingURL=oncall-policies.d.ts.map