@rnsk/toolkits 0.0.9 → 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 (402) hide show
  1. package/README.md +18 -2
  2. package/dist/index.d.ts +17 -1
  3. package/dist/index.js +33 -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/hacker-news/icon.d.ts +5 -0
  105. package/dist/toolkits/hacker-news/icon.js +9 -0
  106. package/dist/toolkits/hacker-news/manifest.d.ts +3 -0
  107. package/dist/toolkits/hacker-news/manifest.js +25 -0
  108. package/dist/toolkits/hacker-news/tools/client.d.ts +8 -0
  109. package/dist/toolkits/hacker-news/tools/client.js +51 -0
  110. package/dist/toolkits/hacker-news/tools/index.d.ts +89 -0
  111. package/dist/toolkits/hacker-news/tools/index.js +22 -0
  112. package/dist/toolkits/hacker-news/tools/items.d.ts +42 -0
  113. package/dist/toolkits/hacker-news/tools/items.js +126 -0
  114. package/dist/toolkits/hacker-news/tools/search.d.ts +12 -0
  115. package/dist/toolkits/hacker-news/tools/search.js +40 -0
  116. package/dist/toolkits/hacker-news/tools/stories.d.ts +25 -0
  117. package/dist/toolkits/hacker-news/tools/stories.js +98 -0
  118. package/dist/toolkits/hostinger/icon.d.ts +5 -0
  119. package/dist/toolkits/hostinger/icon.js +6 -0
  120. package/dist/toolkits/hostinger/manifest.d.ts +3 -0
  121. package/dist/toolkits/hostinger/manifest.js +36 -0
  122. package/dist/toolkits/hostinger/tools/billing.d.ts +12 -0
  123. package/dist/toolkits/hostinger/tools/billing.js +35 -0
  124. package/dist/toolkits/hostinger/tools/client.d.ts +6 -0
  125. package/dist/toolkits/hostinger/tools/client.js +57 -0
  126. package/dist/toolkits/hostinger/tools/dns.d.ts +22 -0
  127. package/dist/toolkits/hostinger/tools/dns.js +47 -0
  128. package/dist/toolkits/hostinger/tools/domains.d.ts +21 -0
  129. package/dist/toolkits/hostinger/tools/domains.js +62 -0
  130. package/dist/toolkits/hostinger/tools/hosting.d.ts +17 -0
  131. package/dist/toolkits/hostinger/tools/hosting.js +38 -0
  132. package/dist/toolkits/hostinger/tools/index.d.ts +179 -0
  133. package/dist/toolkits/hostinger/tools/index.js +35 -0
  134. package/dist/toolkits/hostinger/tools/vps.d.ts +27 -0
  135. package/dist/toolkits/hostinger/tools/vps.js +77 -0
  136. package/dist/toolkits/hostinger/tools/whois.d.ts +33 -0
  137. package/dist/toolkits/hostinger/tools/whois.js +85 -0
  138. package/dist/toolkits/hugging-face/icon.d.ts +5 -0
  139. package/dist/toolkits/hugging-face/icon.js +6 -0
  140. package/dist/toolkits/hugging-face/manifest.d.ts +3 -0
  141. package/dist/toolkits/hugging-face/manifest.js +42 -0
  142. package/dist/toolkits/hugging-face/tools/client.d.ts +93 -0
  143. package/dist/toolkits/hugging-face/tools/client.js +192 -0
  144. package/dist/toolkits/hugging-face/tools/datasets-viewer.d.ts +65 -0
  145. package/dist/toolkits/hugging-face/tools/datasets-viewer.js +150 -0
  146. package/dist/toolkits/hugging-face/tools/datasets.d.ts +160 -0
  147. package/dist/toolkits/hugging-face/tools/datasets.js +383 -0
  148. package/dist/toolkits/hugging-face/tools/discussions.d.ts +68 -0
  149. package/dist/toolkits/hugging-face/tools/discussions.js +144 -0
  150. package/dist/toolkits/hugging-face/tools/index.d.ts +523 -0
  151. package/dist/toolkits/hugging-face/tools/index.js +163 -0
  152. package/dist/toolkits/hugging-face/tools/inference.d.ts +42 -0
  153. package/dist/toolkits/hugging-face/tools/inference.js +86 -0
  154. package/dist/toolkits/hugging-face/tools/models.d.ts +117 -0
  155. package/dist/toolkits/hugging-face/tools/models.js +273 -0
  156. package/dist/toolkits/hugging-face/tools/papers.d.ts +37 -0
  157. package/dist/toolkits/hugging-face/tools/papers.js +91 -0
  158. package/dist/toolkits/hugging-face/tools/repos.d.ts +96 -0
  159. package/dist/toolkits/hugging-face/tools/repos.js +201 -0
  160. package/dist/toolkits/hugging-face/tools/settings.d.ts +53 -0
  161. package/dist/toolkits/hugging-face/tools/settings.js +88 -0
  162. package/dist/toolkits/hugging-face/tools/spaces.d.ts +245 -0
  163. package/dist/toolkits/hugging-face/tools/spaces.js +468 -0
  164. package/dist/toolkits/hugging-face/tools/sql.d.ts +21 -0
  165. package/dist/toolkits/hugging-face/tools/sql.js +47 -0
  166. package/dist/toolkits/hugging-face/tools/users.d.ts +60 -0
  167. package/dist/toolkits/hugging-face/tools/users.js +132 -0
  168. package/dist/toolkits/hugging-face/tools/webhooks.d.ts +35 -0
  169. package/dist/toolkits/hugging-face/tools/webhooks.js +87 -0
  170. package/dist/toolkits/jira/icon.d.ts +5 -0
  171. package/dist/toolkits/jira/icon.js +6 -0
  172. package/dist/toolkits/jira/manifest.d.ts +3 -0
  173. package/dist/toolkits/jira/manifest.js +53 -0
  174. package/dist/toolkits/jira/tools/boards.d.ts +52 -0
  175. package/dist/toolkits/jira/tools/boards.js +104 -0
  176. package/dist/toolkits/jira/tools/client.d.ts +23 -0
  177. package/dist/toolkits/jira/tools/client.js +270 -0
  178. package/dist/toolkits/jira/tools/index.d.ts +1280 -0
  179. package/dist/toolkits/jira/tools/index.js +119 -0
  180. package/dist/toolkits/jira/tools/issue-fields.d.ts +10 -0
  181. package/dist/toolkits/jira/tools/issue-fields.js +111 -0
  182. package/dist/toolkits/jira/tools/issues.d.ts +304 -0
  183. package/dist/toolkits/jira/tools/issues.js +593 -0
  184. package/dist/toolkits/jira/tools/meta.d.ts +212 -0
  185. package/dist/toolkits/jira/tools/meta.js +369 -0
  186. package/dist/toolkits/jira/tools/projects.d.ts +130 -0
  187. package/dist/toolkits/jira/tools/projects.js +263 -0
  188. package/dist/toolkits/jira/tools/search.d.ts +90 -0
  189. package/dist/toolkits/jira/tools/search.js +181 -0
  190. package/dist/toolkits/jira/tools/users.d.ts +114 -0
  191. package/dist/toolkits/jira/tools/users.js +221 -0
  192. package/dist/toolkits/kaggle/icon.d.ts +5 -0
  193. package/dist/toolkits/kaggle/icon.js +6 -0
  194. package/dist/toolkits/kaggle/manifest.d.ts +3 -0
  195. package/dist/toolkits/kaggle/manifest.js +32 -0
  196. package/dist/toolkits/kaggle/tools/client.d.ts +10 -0
  197. package/dist/toolkits/kaggle/tools/client.js +94 -0
  198. package/dist/toolkits/kaggle/tools/competitions.d.ts +48 -0
  199. package/dist/toolkits/kaggle/tools/competitions.js +109 -0
  200. package/dist/toolkits/kaggle/tools/config.d.ts +110 -0
  201. package/dist/toolkits/kaggle/tools/config.js +256 -0
  202. package/dist/toolkits/kaggle/tools/datasets.d.ts +88 -0
  203. package/dist/toolkits/kaggle/tools/datasets.js +161 -0
  204. package/dist/toolkits/kaggle/tools/index.d.ts +482 -0
  205. package/dist/toolkits/kaggle/tools/index.js +53 -0
  206. package/dist/toolkits/kaggle/tools/kernels.d.ts +62 -0
  207. package/dist/toolkits/kaggle/tools/kernels.js +121 -0
  208. package/dist/toolkits/kaggle/tools/model_instance_files.d.ts +11 -0
  209. package/dist/toolkits/kaggle/tools/model_instance_files.js +23 -0
  210. package/dist/toolkits/kaggle/tools/model_instances.d.ts +8 -0
  211. package/dist/toolkits/kaggle/tools/model_instances.js +20 -0
  212. package/dist/toolkits/kaggle/tools/models.d.ts +14 -0
  213. package/dist/toolkits/kaggle/tools/models.js +33 -0
  214. package/dist/toolkits/nasa/icon.d.ts +5 -0
  215. package/dist/toolkits/nasa/icon.js +56 -0
  216. package/dist/toolkits/nasa/manifest.d.ts +3 -0
  217. package/dist/toolkits/nasa/manifest.js +49 -0
  218. package/dist/toolkits/nasa/tools/agage.d.ts +60 -0
  219. package/dist/toolkits/nasa/tools/agage.js +176 -0
  220. package/dist/toolkits/nasa/tools/client.d.ts +95 -0
  221. package/dist/toolkits/nasa/tools/client.js +337 -0
  222. package/dist/toolkits/nasa/tools/cmr.d.ts +268 -0
  223. package/dist/toolkits/nasa/tools/cmr.js +984 -0
  224. package/dist/toolkits/nasa/tools/donki.d.ts +63 -0
  225. package/dist/toolkits/nasa/tools/donki.js +301 -0
  226. package/dist/toolkits/nasa/tools/eonet.d.ts +74 -0
  227. package/dist/toolkits/nasa/tools/eonet.js +279 -0
  228. package/dist/toolkits/nasa/tools/icesat2.d.ts +25 -0
  229. package/dist/toolkits/nasa/tools/icesat2.js +97 -0
  230. package/dist/toolkits/nasa/tools/imagery.d.ts +36 -0
  231. package/dist/toolkits/nasa/tools/imagery.js +138 -0
  232. package/dist/toolkits/nasa/tools/index.d.ts +1063 -0
  233. package/dist/toolkits/nasa/tools/index.js +865 -0
  234. package/dist/toolkits/nasa/tools/neo.d.ts +15 -0
  235. package/dist/toolkits/nasa/tools/neo.js +75 -0
  236. package/dist/toolkits/nasa/tools/ntrs.d.ts +152 -0
  237. package/dist/toolkits/nasa/tools/ntrs.js +292 -0
  238. package/dist/toolkits/nasa/tools/osdr.d.ts +72 -0
  239. package/dist/toolkits/nasa/tools/osdr.js +290 -0
  240. package/dist/toolkits/nasa/tools/planetary.d.ts +58 -0
  241. package/dist/toolkits/nasa/tools/planetary.js +312 -0
  242. package/dist/toolkits/nasa/tools/power.d.ts +52 -0
  243. package/dist/toolkits/nasa/tools/power.js +213 -0
  244. package/dist/toolkits/nasa/tools/ssc.d.ts +44 -0
  245. package/dist/toolkits/nasa/tools/ssc.js +92 -0
  246. package/dist/toolkits/nasa/tools/tolnet.d.ts +84 -0
  247. package/dist/toolkits/nasa/tools/tolnet.js +254 -0
  248. package/dist/toolkits/neo4j/icon.d.ts +5 -0
  249. package/dist/toolkits/neo4j/icon.js +6 -0
  250. package/dist/toolkits/neo4j/manifest.d.ts +3 -0
  251. package/dist/toolkits/neo4j/manifest.js +33 -0
  252. package/dist/toolkits/neo4j/tools/analytics.d.ts +21 -0
  253. package/dist/toolkits/neo4j/tools/analytics.js +91 -0
  254. package/dist/toolkits/neo4j/tools/client.d.ts +6 -0
  255. package/dist/toolkits/neo4j/tools/client.js +105 -0
  256. package/dist/toolkits/neo4j/tools/index.d.ts +198 -0
  257. package/dist/toolkits/neo4j/tools/index.js +30 -0
  258. package/dist/toolkits/neo4j/tools/instances.d.ts +47 -0
  259. package/dist/toolkits/neo4j/tools/instances.js +127 -0
  260. package/dist/toolkits/neo4j/tools/projects.d.ts +44 -0
  261. package/dist/toolkits/neo4j/tools/projects.js +110 -0
  262. package/dist/toolkits/neo4j/tools/snapshots.d.ts +20 -0
  263. package/dist/toolkits/neo4j/tools/snapshots.js +57 -0
  264. package/dist/toolkits/neon/icon.d.ts +5 -0
  265. package/dist/toolkits/neon/icon.js +8 -0
  266. package/dist/toolkits/neon/manifest.d.ts +3 -0
  267. package/dist/toolkits/neon/manifest.js +36 -0
  268. package/dist/toolkits/neon/tools/auth.d.ts +115 -0
  269. package/dist/toolkits/neon/tools/auth.js +286 -0
  270. package/dist/toolkits/neon/tools/branches.d.ts +189 -0
  271. package/dist/toolkits/neon/tools/branches.js +465 -0
  272. package/dist/toolkits/neon/tools/client.d.ts +10 -0
  273. package/dist/toolkits/neon/tools/client.js +69 -0
  274. package/dist/toolkits/neon/tools/dataapi.d.ts +42 -0
  275. package/dist/toolkits/neon/tools/dataapi.js +111 -0
  276. package/dist/toolkits/neon/tools/endpoints.d.ts +59 -0
  277. package/dist/toolkits/neon/tools/endpoints.js +163 -0
  278. package/dist/toolkits/neon/tools/index.d.ts +976 -0
  279. package/dist/toolkits/neon/tools/index.js +130 -0
  280. package/dist/toolkits/neon/tools/meta.d.ts +4 -0
  281. package/dist/toolkits/neon/tools/meta.js +16 -0
  282. package/dist/toolkits/neon/tools/orgs.d.ts +112 -0
  283. package/dist/toolkits/neon/tools/orgs.js +303 -0
  284. package/dist/toolkits/neon/tools/projects.d.ts +177 -0
  285. package/dist/toolkits/neon/tools/projects.js +468 -0
  286. package/dist/toolkits/neon/tools/snapshots.d.ts +24 -0
  287. package/dist/toolkits/neon/tools/snapshots.js +67 -0
  288. package/dist/toolkits/new-relic/icon.d.ts +5 -0
  289. package/dist/toolkits/new-relic/icon.js +6 -0
  290. package/dist/toolkits/new-relic/manifest.d.ts +3 -0
  291. package/dist/toolkits/new-relic/manifest.js +41 -0
  292. package/dist/toolkits/new-relic/tools/admin.d.ts +310 -0
  293. package/dist/toolkits/new-relic/tools/admin.js +282 -0
  294. package/dist/toolkits/new-relic/tools/alert-policies.d.ts +74 -0
  295. package/dist/toolkits/new-relic/tools/alert-policies.js +136 -0
  296. package/dist/toolkits/new-relic/tools/apm.d.ts +129 -0
  297. package/dist/toolkits/new-relic/tools/apm.js +228 -0
  298. package/dist/toolkits/new-relic/tools/client.d.ts +62 -0
  299. package/dist/toolkits/new-relic/tools/client.js +167 -0
  300. package/dist/toolkits/new-relic/tools/conditions.d.ts +190 -0
  301. package/dist/toolkits/new-relic/tools/conditions.js +265 -0
  302. package/dist/toolkits/new-relic/tools/config.d.ts +73 -0
  303. package/dist/toolkits/new-relic/tools/config.js +131 -0
  304. package/dist/toolkits/new-relic/tools/dashboards.d.ts +204 -0
  305. package/dist/toolkits/new-relic/tools/dashboards.js +159 -0
  306. package/dist/toolkits/new-relic/tools/entities.d.ts +160 -0
  307. package/dist/toolkits/new-relic/tools/entities.js +218 -0
  308. package/dist/toolkits/new-relic/tools/index.d.ts +23 -0
  309. package/dist/toolkits/new-relic/tools/index.js +179 -0
  310. package/dist/toolkits/new-relic/tools/ingest.d.ts +31 -0
  311. package/dist/toolkits/new-relic/tools/ingest.js +80 -0
  312. package/dist/toolkits/new-relic/tools/notifications.d.ts +186 -0
  313. package/dist/toolkits/new-relic/tools/notifications.js +232 -0
  314. package/dist/toolkits/new-relic/tools/nrql-conditions.d.ts +105 -0
  315. package/dist/toolkits/new-relic/tools/nrql-conditions.js +136 -0
  316. package/dist/toolkits/new-relic/tools/nrql.d.ts +38 -0
  317. package/dist/toolkits/new-relic/tools/nrql.js +99 -0
  318. package/dist/toolkits/new-relic/tools/synthetics.d.ts +176 -0
  319. package/dist/toolkits/new-relic/tools/synthetics.js +246 -0
  320. package/dist/toolkits/notebook-lm/icon.d.ts +5 -0
  321. package/dist/toolkits/notebook-lm/icon.js +6 -0
  322. package/dist/toolkits/notebook-lm/manifest.d.ts +3 -0
  323. package/dist/toolkits/notebook-lm/manifest.js +44 -0
  324. package/dist/toolkits/notebook-lm/tools/add-text-sources.d.ts +36 -0
  325. package/dist/toolkits/notebook-lm/tools/add-text-sources.js +51 -0
  326. package/dist/toolkits/notebook-lm/tools/create-audio-overview.d.ts +47 -0
  327. package/dist/toolkits/notebook-lm/tools/create-audio-overview.js +55 -0
  328. package/dist/toolkits/notebook-lm/tools/create-notebook.d.ts +52 -0
  329. package/dist/toolkits/notebook-lm/tools/create-notebook.js +49 -0
  330. package/dist/toolkits/notebook-lm/tools/delete-audio-overview.d.ts +33 -0
  331. package/dist/toolkits/notebook-lm/tools/delete-audio-overview.js +46 -0
  332. package/dist/toolkits/notebook-lm/tools/delete-notebooks.d.ts +32 -0
  333. package/dist/toolkits/notebook-lm/tools/delete-notebooks.js +46 -0
  334. package/dist/toolkits/notebook-lm/tools/delete-sources.d.ts +33 -0
  335. package/dist/toolkits/notebook-lm/tools/delete-sources.js +47 -0
  336. package/dist/toolkits/notebook-lm/tools/get-notebook.d.ts +52 -0
  337. package/dist/toolkits/notebook-lm/tools/get-notebook.js +45 -0
  338. package/dist/toolkits/notebook-lm/tools/get-source.d.ts +53 -0
  339. package/dist/toolkits/notebook-lm/tools/get-source.js +47 -0
  340. package/dist/toolkits/notebook-lm/tools/index.d.ts +516 -0
  341. package/dist/toolkits/notebook-lm/tools/index.js +93 -0
  342. package/dist/toolkits/notebook-lm/tools/list-recent-notebooks.d.ts +32 -0
  343. package/dist/toolkits/notebook-lm/tools/list-recent-notebooks.js +41 -0
  344. package/dist/toolkits/notebook-lm/tools/share-notebook.d.ts +48 -0
  345. package/dist/toolkits/notebook-lm/tools/share-notebook.js +57 -0
  346. package/dist/toolkits/notebook-lm/tools/upload-source-file.d.ts +40 -0
  347. package/dist/toolkits/notebook-lm/tools/upload-source-file.js +62 -0
  348. package/dist/toolkits/notebook-lm/tools/utils.d.ts +15 -0
  349. package/dist/toolkits/notebook-lm/tools/utils.js +46 -0
  350. package/dist/toolkits/npm/icon.d.ts +5 -0
  351. package/dist/toolkits/npm/icon.js +11 -0
  352. package/dist/toolkits/npm/manifest.d.ts +3 -0
  353. package/dist/toolkits/npm/manifest.js +35 -0
  354. package/dist/toolkits/npm/tools/client.d.ts +19 -0
  355. package/dist/toolkits/npm/tools/client.js +64 -0
  356. package/dist/toolkits/npm/tools/downloads.d.ts +19 -0
  357. package/dist/toolkits/npm/tools/downloads.js +39 -0
  358. package/dist/toolkits/npm/tools/index.d.ts +14 -0
  359. package/dist/toolkits/npm/tools/index.js +24 -0
  360. package/dist/toolkits/npm/tools/registry.d.ts +24 -0
  361. package/dist/toolkits/npm/tools/registry.js +58 -0
  362. package/dist/toolkits/npm/tools/security.d.ts +9 -0
  363. package/dist/toolkits/npm/tools/security.js +29 -0
  364. package/dist/toolkits/slack/tools/admin-users.d.ts +1 -1
  365. package/dist/toolkits/slack/tools/slack-lists.d.ts +3 -3
  366. package/dist/toolkits/snowflake/icon.d.ts +5 -0
  367. package/dist/toolkits/snowflake/icon.js +6 -0
  368. package/dist/toolkits/snowflake/manifest.d.ts +3 -0
  369. package/dist/toolkits/snowflake/manifest.js +32 -0
  370. package/dist/toolkits/snowflake/tools/catalog.d.ts +56 -0
  371. package/dist/toolkits/snowflake/tools/catalog.js +123 -0
  372. package/dist/toolkits/snowflake/tools/client.d.ts +53 -0
  373. package/dist/toolkits/snowflake/tools/client.js +145 -0
  374. package/dist/toolkits/snowflake/tools/index.d.ts +14 -0
  375. package/dist/toolkits/snowflake/tools/index.js +28 -0
  376. package/dist/toolkits/snowflake/tools/statements.d.ts +27 -0
  377. package/dist/toolkits/snowflake/tools/statements.js +84 -0
  378. package/dist/toolkits/snowflake/tools/status.d.ts +22 -0
  379. package/dist/toolkits/snowflake/tools/status.js +54 -0
  380. package/dist/toolkits/telegram/icon.d.ts +5 -0
  381. package/dist/toolkits/telegram/icon.js +6 -0
  382. package/dist/toolkits/telegram/manifest.d.ts +3 -0
  383. package/dist/toolkits/telegram/manifest.js +34 -0
  384. package/dist/toolkits/telegram/tools/bot.d.ts +13 -0
  385. package/dist/toolkits/telegram/tools/bot.js +23 -0
  386. package/dist/toolkits/telegram/tools/chats.d.ts +22 -0
  387. package/dist/toolkits/telegram/tools/chats.js +46 -0
  388. package/dist/toolkits/telegram/tools/client.d.ts +12 -0
  389. package/dist/toolkits/telegram/tools/client.js +46 -0
  390. package/dist/toolkits/telegram/tools/index.d.ts +15 -0
  391. package/dist/toolkits/telegram/tools/index.js +31 -0
  392. package/dist/toolkits/telegram/tools/messages.d.ts +86 -0
  393. package/dist/toolkits/telegram/tools/messages.js +134 -0
  394. package/dist/toolkits/telegram/tools/updates.d.ts +23 -0
  395. package/dist/toolkits/telegram/tools/updates.js +54 -0
  396. package/dist/toolkits/youtube/tools/get-channel-activities.d.ts +1 -1
  397. package/dist/toolkits/youtube/tools/index.d.ts +5 -5
  398. package/dist/toolkits/youtube/tools/list-channel-sections.d.ts +1 -1
  399. package/dist/toolkits/youtube/tools/post-comment.d.ts +1 -1
  400. package/dist/toolkits/youtube/tools/subscribe-channel.d.ts +1 -1
  401. package/dist/toolkits/youtube/tools/unsubscribe-channel.d.ts +1 -1
  402. package/package.json +2 -3
@@ -0,0 +1,984 @@
1
+ // @ts-nocheck
2
+ import { tool } from 'ai';
3
+ import { z } from 'zod';
4
+ import { nasaGet, toNasaError, cmrGraphql, cmrGraphqlRaw, cmrGraphqlMutation } from './client.js';
5
+ export const nasaGetCmrCollections = tool({
6
+ description: "Tool to retrieve collections from the Common Metadata Repository (CMR). Use when you need to search NASA science data collections by spatial, temporal, or metadata filters. Call after confirming search criteria.",
7
+ inputSchema: z.object({
8
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
9
+ circle: z.string().optional().describe("Circle for spatial queries in 'lat,lon,radius' format (radius in km). Example: '34.5,-117.4,50'. Mutually exclusive with 'bounding_box' and 'polygon'."),
10
+ keyword: z.string().optional().describe("Free-text keyword search against metadata."),
11
+ polygon: z.string().optional().describe("Polygon for spatial queries as whitespace-separated 'lat1,lon1 lat2,lon2 ...'. Mutually exclusive with 'bounding_box' and 'circle'."),
12
+ version: z.string().optional().describe("Version of the collection, e.g., '6'."),
13
+ pageNum: z.number().int().min(1).optional().describe("Page number to retrieve. Default=1. If total results exceed `page_size`, increment `page_num` to retrieve subsequent pages; a single page silently omits remaining results."),
14
+ platform: z.string().optional().describe("Acquisition platform, e.g., 'AQUA'."),
15
+ provider: z.string().optional().describe("Data provider ID, e.g., 'LPDAAC_ECS'."),
16
+ temporal: z.string().optional().describe("Time range in 'start,stop' ISO-8601 format, e.g. '2020-01-01T00:00:00Z,2020-12-31T23:59:59Z'."),
17
+ pageSize: z.number().int().min(1).max(2000).optional().describe("Results per page (1-2000). Default=10."),
18
+ conceptId: z.string().optional().describe("Exact CMR collection concept ID, e.g., 'C1234567890-LPDAAC_ECS'. Use to retrieve a single known collection."),
19
+ instrument: z.string().optional().describe("Instrument used to acquire data, e.g., 'MODIS'."),
20
+ shortName: z.string().optional().describe("Short name of the collection, e.g., 'MODIS_Terra'."),
21
+ boundingBox: z.string().optional().describe("Bounding box for spatial queries in 'west,south,east,north' format. Example: '-180,-90,180,90'. Mutually exclusive with 'circle' and 'polygon'."),
22
+ }),
23
+ execute: async ({ nasaApiKey, circle, keyword, polygon, version, pageNum, platform, provider, temporal, pageSize, conceptId, instrument, shortName, boundingBox }) => {
24
+ try {
25
+ const query = {};
26
+ if (keyword !== undefined)
27
+ query["keyword"] = keyword;
28
+ if (provider !== undefined)
29
+ query["provider"] = provider;
30
+ if (instrument !== undefined)
31
+ query["instrument"] = instrument;
32
+ if (platform !== undefined)
33
+ query["platform"] = platform;
34
+ if (shortName !== undefined)
35
+ query["short_name"] = shortName;
36
+ if (version !== undefined)
37
+ query["version"] = version;
38
+ if (conceptId !== undefined)
39
+ query["concept_id"] = conceptId;
40
+ if (temporal !== undefined)
41
+ query["temporal"] = temporal;
42
+ if (boundingBox !== undefined)
43
+ query["bounding_box"] = boundingBox;
44
+ if (circle !== undefined)
45
+ query["circle"] = circle;
46
+ if (polygon !== undefined)
47
+ query["polygon"] = polygon;
48
+ if (pageNum !== undefined)
49
+ query["page_num"] = pageNum;
50
+ if (pageSize !== undefined)
51
+ query["page_size"] = pageSize;
52
+ return await nasaGet("https://cmr.earthdata.nasa.gov", `/search/collections.json`, { query });
53
+ }
54
+ catch (error) {
55
+ return toNasaError(error, "Failed to get cmr collections");
56
+ }
57
+ },
58
+ });
59
+ export const nasaGetCmrGranules = tool({
60
+ description: "Search for data granules in NASA's Common Metadata Repository (CMR). Granules are individual data files within a collection. REQUIRED: Specify at least one collection identifier (concept_id, provider, short_name, or version). OPTIONAL: Add spatial (bounding_box), temporal, or pagination filters to refine results. Omitting or broadening spatial/temporal filters can return extremely large datasets; always constrain both when possible. Returns metadata including download links, temporal coverage, spatial extent, and file size for each granule.",
61
+ inputSchema: z.object({
62
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
63
+ version: z.string().optional().describe("Collection version number to filter by (e.g., '006', '061'). Often used with short_name."),
64
+ pageNum: z.number().int().min(1).optional().describe("Page number to retrieve (starts at 1). Default: 1. Results beyond page 1 are silently omitted if pagination is not used; iterate page_num to retrieve complete result sets."),
65
+ provider: z.string().optional().describe("Data provider/center ID to filter granules (e.g., 'LPDAAC_ECS', 'LANCEMODIS')"),
66
+ temporal: z.string().optional().describe("Temporal range for filtering granules in 'start,end' ISO 8601 format. Examples: '2020-01-01T00:00:00Z,2020-01-31T23:59:59Z' for a range, '2020-01-01T00:00:00Z,' for open-ended from start, ',2020-01-31T23:59:59Z' for open-ended to end"),
67
+ pageSize: z.number().int().min(1).max(2000).optional().describe("Number of results per page (1-2000). Default: 10."),
68
+ conceptId: z.string().optional().describe("Collection concept ID to search granules within (e.g., 'C2007662107-LANCEMODIS'). This uniquely identifies a collection."),
69
+ shortName: z.string().optional().describe("Collection short name to search granules within (e.g., 'MOD09GQ' for MODIS Terra data)"),
70
+ boundingBox: z.string().optional().describe("Bounding box for spatial search in 'west,south,east,north' format; must be four comma-separated floats"),
71
+ }),
72
+ execute: async ({ nasaApiKey, version, pageNum, provider, temporal, pageSize, conceptId, shortName, boundingBox }) => {
73
+ try {
74
+ const query = {};
75
+ if (conceptId !== undefined)
76
+ query["concept_id"] = conceptId;
77
+ if (shortName !== undefined)
78
+ query["short_name"] = shortName;
79
+ if (provider !== undefined)
80
+ query["provider"] = provider;
81
+ if (version !== undefined)
82
+ query["version"] = version;
83
+ if (temporal !== undefined)
84
+ query["temporal"] = temporal;
85
+ if (boundingBox !== undefined)
86
+ query["bounding_box"] = boundingBox;
87
+ if (pageNum !== undefined)
88
+ query["page_num"] = pageNum;
89
+ if (pageSize !== undefined)
90
+ query["page_size"] = pageSize;
91
+ return await nasaGet("https://cmr.earthdata.nasa.gov", `/search/granules.json`, { query });
92
+ }
93
+ catch (error) {
94
+ return toNasaError(error, "Failed to get cmr granules");
95
+ }
96
+ },
97
+ });
98
+ export const nasaGetLandingPage = tool({
99
+ description: "Tool to retrieve the NASA STAC API landing page (root endpoint). Use when you need to discover API capabilities, available endpoints, conformance classes, or STAC version information. The landing page provides links to the API definition (OpenAPI spec) and feature collections endpoint.",
100
+ inputSchema: z.object({
101
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
102
+ }),
103
+ execute: async ({ nasaApiKey }) => {
104
+ try {
105
+ return await nasaGet("https://cmr.earthdata.nasa.gov", `/stac/`);
106
+ }
107
+ catch (error) {
108
+ return toNasaError(error, "Failed to get landing page");
109
+ }
110
+ },
111
+ });
112
+ export const nasaQueryCitation = tool({
113
+ description: "Tool to query citation metadata from NASA's GraphQL Earthdata API. Use when you need to retrieve detailed citation information for a specific concept ID. Returns comprehensive metadata including DOI, abstract, provider, and revision information.",
114
+ inputSchema: z.object({
115
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
116
+ conceptId: z.string().optional().describe("The unique concept ID assigned to the citation (e.g., 'CIT3857576156-ESDIS'). If not provided, the query returns null."),
117
+ }),
118
+ execute: async ({ nasaApiKey, conceptId }) => {
119
+ try {
120
+ const args = {};
121
+ if (conceptId !== undefined)
122
+ args["conceptId"] = conceptId;
123
+ return await cmrGraphql("citation", args, "{conceptId name abstract identifier providerId revisionId}");
124
+ }
125
+ catch (error) {
126
+ return toNasaError(error, "Failed to query citation");
127
+ }
128
+ },
129
+ });
130
+ export const nasaQueryCitations = tool({
131
+ description: "Tool to query NASA Common Metadata Repository (CMR) GraphQL API for collection citations. Use when you need to retrieve citation information for NASA science data collections. The GraphQL endpoint supports flexible queries for collections and their associated citation metadata including DOIs, publication details, and relationships.",
132
+ inputSchema: z.object({
133
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
134
+ query: z.string().describe("GraphQL query string to retrieve collections with citations. The query should request the 'collections' field with 'collectionCitations' to get citation data. Collections have a collectionCitations field (JSON) and can query GraphDbCitation relationship type with fields: abstract, id, identifier, identifierType, providerId, relationshipType, title. Example query: '{ collections(limit: 3) { items { conceptId shortName title collectionCitations } } }'"),
135
+ }),
136
+ execute: async ({ nasaApiKey, query }) => {
137
+ try {
138
+ return await cmrGraphqlRaw(query);
139
+ }
140
+ catch (error) {
141
+ return toNasaError(error, "Failed to query citations");
142
+ }
143
+ },
144
+ });
145
+ export const nasaQueryCmrCollection = tool({
146
+ description: "Tool to query a single collection from NASA's Common Metadata Repository using its unique concept ID. Use when you need to retrieve detailed metadata about a specific NASA collection including description, spatial/temporal coverage, data center, and related information.",
147
+ inputSchema: z.object({
148
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
149
+ conceptId: z.string().describe("The unique concept ID assigned to the collection. Example: 'C2789815280-ENVIDAT'. This uniquely identifies a specific collection in NASA's CMR."),
150
+ }),
151
+ execute: async ({ nasaApiKey, conceptId }) => {
152
+ try {
153
+ const args = {};
154
+ if (conceptId !== undefined)
155
+ args["conceptId"] = conceptId;
156
+ return await cmrGraphql("collection", args, "{conceptId title shortName version provider doi}");
157
+ }
158
+ catch (error) {
159
+ return toNasaError(error, "Failed to query cmr collection");
160
+ }
161
+ },
162
+ });
163
+ export const nasaQueryCmrCollections = tool({
164
+ description: "Tool to query multiple collections from NASA's Common Metadata Repository via GraphQL. Use when you need to search NASA science data collections by provider, short name, concept ID, DOI, temporal ranges, spatial coordinates, science keywords, cloud hosting status, or granule availability. Returns collection metadata including identifiers, descriptions, temporal/spatial coverage, and access information.",
165
+ inputSchema: z.object({
166
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
167
+ doi: z.string().optional().describe("Digital Object Identifier value for the collection. Example: '10.5067/MODIS/MOD09A1.061'."),
168
+ line: z.array(z.string()).optional().describe("Line geometries for spatial search."),
169
+ limit: z.number().int().min(1).max(2000).optional().describe("Maximum number of collections to return. Default depends on API."),
170
+ point: z.array(z.string()).optional().describe("Longitude/latitude coordinate pairs for spatial search. Format: 'lon,lat'."),
171
+ circle: z.array(z.string()).optional().describe("Circle areas with center point and radius in meters (10 to 6,000,000 range). Format: 'lat,lon,radius_in_meters'. Example: ['34.5,-117.4,50000']."),
172
+ cursor: z.string().optional().describe("Pointer to a specific position in the result list for pagination. Obtained from previous query results."),
173
+ offset: z.number().int().min(0).optional().describe("Zero-based offset for pagination. Skip this many results before returning."),
174
+ keyword: z.string().optional().describe("General keyword search term to search across collection metadata."),
175
+ latency: z.array(z.string()).optional().describe("Latency facet values for filtering."),
176
+ options: z.record(z.string()).optional().describe("CMR search logic options (and/or/wildcard) as JSON object."),
177
+ polygon: z.array(z.string()).optional().describe("Counter-clockwise polygon coordinates for spatial search. Format: 'lat1,lon1,lat2,lon2,...'."),
178
+ project: z.string().optional().describe("Associated project name. Example: 'EOSDIS'."),
179
+ tagKey: z.array(z.string()).optional().describe("Associated tag identifiers for filtering."),
180
+ version: z.string().optional().describe("Collection version number. Example: '6', '061'."),
181
+ entryId: z.array(z.string()).optional().describe("Collection entry identifiers."),
182
+ platform: z.string().optional().describe("Associated platform name. Example: 'AQUA', 'Terra'."),
183
+ provider: z.string().optional().describe("Provider name. Example: 'LPDAAC_ECS', 'ORNL_DAAC'."),
184
+ sortKey: z.array(z.string()).optional().describe("Sort criteria for results. Use '-' prefix for descending order. Example: ['-revisionDate', 'shortName']."),
185
+ temporal: z.string().optional().describe("Temporal range filter in ISO 8601 format. Example: '2020-01-01T00:00:00Z,2020-12-31T23:59:59Z'."),
186
+ pageSize: z.number().int().min(1).max(2000).optional().describe("Results per page for pagination."),
187
+ projectH: z.array(z.string()).optional().describe("Project in faceted form."),
188
+ providers: z.array(z.string()).optional().describe("Multiple provider names for filtering."),
189
+ conceptId: z.array(z.string()).optional().describe("Unique concept identifiers assigned to collections. Use to retrieve specific known collections. Example: ['C2789815280-ENVIDAT']."),
190
+ consortium: z.array(z.string()).optional().describe("Consortium values associated with collections."),
191
+ instrument: z.string().optional().describe("Associated instrument name. Example: 'MODIS'."),
192
+ shortName: z.string().optional().describe("Collection short name identifier. Example: 'MOD09A1'."),
193
+ dataCenter: z.string().optional().describe("Assigned data center name. Example: 'LPDAAC_ECS'."),
194
+ entryTitle: z.string().optional().describe("Official entry title of the collection."),
195
+ facetsSize: z.number().int().min(1).optional().describe("Number of facets returned per category when facets are requested."),
196
+ platformsH: z.record(z.string()).optional().describe("Platform in faceted form as JSON object."),
197
+ shortNames: z.array(z.string()).optional().describe("Multiple short names for filtering."),
198
+ boundingBox: z.array(z.string()).optional().describe("Bounding boxes defining areas on Earth aligned with longitude and latitude. Each requires 4 comma-separated values (west,south,east,north). Example: ['-180,-90,180,90']."),
199
+ cloudHosted: z.boolean().optional().describe("Filter to collections hosted in the cloud (AWS S3). When true, restricts results to collections with DirectDistributionInformation or tagged with gov.nasa.earthdatacloud.s3."),
200
+ dataCenters: z.array(z.string()).optional().describe("Multiple assigned data centers to filter by."),
201
+ hasGranules: z.boolean().optional().describe("Filter by presence (true) or absence (false) of granules in the collection."),
202
+ includeTags: z.string().optional().describe("Request tag information with wildcard support. Example: 'gov.nasa.earthdata*'."),
203
+ instrumentH: z.array(z.string()).optional().describe("Instrument in faceted form for hierarchical filtering."),
204
+ serviceType: z.array(z.string()).optional().describe("UMM Service type classification."),
205
+ dataCenterH: z.array(z.string()).optional().describe("Data center in faceted form for hierarchical filtering."),
206
+ revisionDate: z.string().optional().describe("Collection revision timestamp for filtering by last update. ISO 8601 format."),
207
+ updatedSince: z.string().optional().describe("Find collections revised after specified datetime in ISO 8601 format."),
208
+ includeFacets: z.string().optional().describe("Request faceted results in response. Use 'v2' for version 2 facets."),
209
+ hasOpendapUrl: z.boolean().optional().describe("Filter by OPeNDAP service availability."),
210
+ spatialKeyword: z.string().optional().describe("Spatial aspect keywords for geographic filtering."),
211
+ scienceKeywords: z.record(z.string()).optional().describe("Science keyword hierarchy terms as JSON object for precise scientific domain filtering."),
212
+ standardProduct: z.boolean().optional().describe("Filter for Standard Product portal collections (NASA-vetted products)."),
213
+ scienceKeywordsH: z.record(z.string()).optional().describe("Science keywords in faceted form as JSON object."),
214
+ serviceConceptId: z.string().optional().describe("UMM Service concept identifier for filtering by associated service."),
215
+ granuleDataFormat: z.string().optional().describe("Data format of granules within the collection. Example: 'HDF5', 'NetCDF'."),
216
+ processingLevelId: z.string().optional().describe("Data processing level identifier. Examples: 'Level0', 'Level1', 'Level2', 'Level3', 'Level4'."),
217
+ variableConceptId: z.string().optional().describe("UMM Variable concept identifier for filtering by associated variable."),
218
+ collectionDataType: z.array(z.string()).optional().describe("Type classification of the collection. Examples: 'NEAR_REAL_TIME', 'SCIENCE_QUALITY'."),
219
+ hasGranulesOrCwic: z.boolean().optional().describe("Includes collections with granules or CWIC (CEOS WGISS Integrated Catalog) tags."),
220
+ includeHasGranules: z.boolean().optional().describe("Include granule availability flag in results."),
221
+ granuleDataFormatH: z.array(z.string()).optional().describe("Granule data format in faceted form."),
222
+ processingLevelIdH: z.array(z.string()).optional().describe("Processing level in faceted form."),
223
+ twoDCoordinateSystemName: z.array(z.string()).optional().describe("2D coordinate system identifiers."),
224
+ horizontalDataResolutionRange: z.array(z.string()).optional().describe("Horizontal resolution specification for filtering collections."),
225
+ }),
226
+ execute: async ({ nasaApiKey, doi, line, limit, point, circle, cursor, offset, keyword, latency, options, polygon, project, tagKey, version, entryId, platform, provider, sortKey, temporal, pageSize, projectH, providers, conceptId, consortium, instrument, shortName, dataCenter, entryTitle, facetsSize, platformsH, shortNames, boundingBox, cloudHosted, dataCenters, hasGranules, includeTags, instrumentH, serviceType, dataCenterH, revisionDate, updatedSince, includeFacets, hasOpendapUrl, spatialKeyword, scienceKeywords, standardProduct, scienceKeywordsH, serviceConceptId, granuleDataFormat, processingLevelId, variableConceptId, collectionDataType, hasGranulesOrCwic, includeHasGranules, granuleDataFormatH, processingLevelIdH, twoDCoordinateSystemName, horizontalDataResolutionRange }) => {
227
+ try {
228
+ const args = {};
229
+ if (doi !== undefined)
230
+ args["doi"] = doi;
231
+ if (line !== undefined)
232
+ args["line"] = line;
233
+ if (limit !== undefined)
234
+ args["limit"] = limit;
235
+ if (point !== undefined)
236
+ args["point"] = point;
237
+ if (circle !== undefined)
238
+ args["circle"] = circle;
239
+ if (cursor !== undefined)
240
+ args["cursor"] = cursor;
241
+ if (offset !== undefined)
242
+ args["offset"] = offset;
243
+ if (keyword !== undefined)
244
+ args["keyword"] = keyword;
245
+ if (latency !== undefined)
246
+ args["latency"] = latency;
247
+ if (options !== undefined)
248
+ args["options"] = options;
249
+ if (polygon !== undefined)
250
+ args["polygon"] = polygon;
251
+ if (project !== undefined)
252
+ args["project"] = project;
253
+ if (tagKey !== undefined)
254
+ args["tagKey"] = tagKey;
255
+ if (version !== undefined)
256
+ args["version"] = version;
257
+ if (entryId !== undefined)
258
+ args["entryId"] = entryId;
259
+ if (platform !== undefined)
260
+ args["platform"] = platform;
261
+ if (provider !== undefined)
262
+ args["provider"] = provider;
263
+ if (sortKey !== undefined)
264
+ args["sortKey"] = sortKey;
265
+ if (temporal !== undefined)
266
+ args["temporal"] = temporal;
267
+ if (pageSize !== undefined)
268
+ args["pageSize"] = pageSize;
269
+ if (projectH !== undefined)
270
+ args["projectH"] = projectH;
271
+ if (providers !== undefined)
272
+ args["providers"] = providers;
273
+ if (conceptId !== undefined)
274
+ args["conceptId"] = conceptId;
275
+ if (consortium !== undefined)
276
+ args["consortium"] = consortium;
277
+ if (instrument !== undefined)
278
+ args["instrument"] = instrument;
279
+ if (shortName !== undefined)
280
+ args["shortName"] = shortName;
281
+ if (dataCenter !== undefined)
282
+ args["dataCenter"] = dataCenter;
283
+ if (entryTitle !== undefined)
284
+ args["entryTitle"] = entryTitle;
285
+ if (facetsSize !== undefined)
286
+ args["facetsSize"] = facetsSize;
287
+ if (platformsH !== undefined)
288
+ args["platformsH"] = platformsH;
289
+ if (shortNames !== undefined)
290
+ args["shortNames"] = shortNames;
291
+ if (boundingBox !== undefined)
292
+ args["boundingBox"] = boundingBox;
293
+ if (cloudHosted !== undefined)
294
+ args["cloudHosted"] = cloudHosted;
295
+ if (dataCenters !== undefined)
296
+ args["dataCenters"] = dataCenters;
297
+ if (hasGranules !== undefined)
298
+ args["hasGranules"] = hasGranules;
299
+ if (includeTags !== undefined)
300
+ args["includeTags"] = includeTags;
301
+ if (instrumentH !== undefined)
302
+ args["instrumentH"] = instrumentH;
303
+ if (serviceType !== undefined)
304
+ args["serviceType"] = serviceType;
305
+ if (dataCenterH !== undefined)
306
+ args["dataCenterH"] = dataCenterH;
307
+ if (revisionDate !== undefined)
308
+ args["revisionDate"] = revisionDate;
309
+ if (updatedSince !== undefined)
310
+ args["updatedSince"] = updatedSince;
311
+ if (includeFacets !== undefined)
312
+ args["includeFacets"] = includeFacets;
313
+ if (hasOpendapUrl !== undefined)
314
+ args["hasOpendapUrl"] = hasOpendapUrl;
315
+ if (spatialKeyword !== undefined)
316
+ args["spatialKeyword"] = spatialKeyword;
317
+ if (scienceKeywords !== undefined)
318
+ args["scienceKeywords"] = scienceKeywords;
319
+ if (standardProduct !== undefined)
320
+ args["standardProduct"] = standardProduct;
321
+ if (scienceKeywordsH !== undefined)
322
+ args["scienceKeywordsH"] = scienceKeywordsH;
323
+ if (serviceConceptId !== undefined)
324
+ args["serviceConceptId"] = serviceConceptId;
325
+ if (granuleDataFormat !== undefined)
326
+ args["granuleDataFormat"] = granuleDataFormat;
327
+ if (processingLevelId !== undefined)
328
+ args["processingLevelId"] = processingLevelId;
329
+ if (variableConceptId !== undefined)
330
+ args["variableConceptId"] = variableConceptId;
331
+ if (collectionDataType !== undefined)
332
+ args["collectionDataType"] = collectionDataType;
333
+ if (hasGranulesOrCwic !== undefined)
334
+ args["hasGranulesOrCwic"] = hasGranulesOrCwic;
335
+ if (includeHasGranules !== undefined)
336
+ args["includeHasGranules"] = includeHasGranules;
337
+ if (granuleDataFormatH !== undefined)
338
+ args["granuleDataFormatH"] = granuleDataFormatH;
339
+ if (processingLevelIdH !== undefined)
340
+ args["processingLevelIdH"] = processingLevelIdH;
341
+ if (twoDCoordinateSystemName !== undefined)
342
+ args["twoDCoordinateSystemName"] = twoDCoordinateSystemName;
343
+ if (horizontalDataResolutionRange !== undefined)
344
+ args["horizontalDataResolutionRange"] = horizontalDataResolutionRange;
345
+ return await cmrGraphql("collections", args, "{count items{conceptId title shortName version provider doi timeStart timeEnd} cursor}");
346
+ }
347
+ catch (error) {
348
+ return toNasaError(error, "Failed to query cmr collections");
349
+ }
350
+ },
351
+ });
352
+ export const nasaQueryCmrGranule = tool({
353
+ description: "Query for a single granule (individual data file) from NASA's Common Metadata Repository using its unique concept ID. Returns comprehensive granule metadata including cloud cover, parent collection reference, spatial/temporal information, and download links. Use when you need detailed information about a specific NASA Earth science data granule file.",
354
+ inputSchema: z.object({
355
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
356
+ conceptId: z.string().describe("The unique concept ID assigned to the granule (e.g., 'G2185315603-LPCLOUD'). This ID uniquely identifies a specific granule in the CMR."),
357
+ }),
358
+ execute: async ({ nasaApiKey, conceptId }) => {
359
+ try {
360
+ const args = {};
361
+ if (conceptId !== undefined)
362
+ args["conceptId"] = conceptId;
363
+ return await cmrGraphql("granule", args, "{conceptId title timeStart timeEnd granuleSize cloudCover dayNightFlag onlineAccessFlag producerGranuleId collectionConceptId}");
364
+ }
365
+ catch (error) {
366
+ return toNasaError(error, "Failed to query cmr granule");
367
+ }
368
+ },
369
+ });
370
+ export const nasaQueryCmrGranules = tool({
371
+ description: "Tool to query for multiple granules (individual data files) from NASA's Common Metadata Repository via GraphQL. Use when searching for specific data files within a collection. REQUIRED: Must specify at least one collection identifier (collectionConceptId, provider, shortName, or conceptId) per CMR requirements. OPTIONAL: Add spatial filters (bounding box, circle, point, polygon, line), temporal range, cloud cover, day/night flag, or pagination parameters. Returns granule metadata including concept IDs, titles, temporal coverage, access links, and file sizes.",
372
+ inputSchema: z.object({
373
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
374
+ limit: z.number().int().min(1).max(2000).optional().describe("Maximum number of granules to return (1-2000). Default: 10."),
375
+ cursor: z.string().optional().describe("Cursor for pagination. Use the cursor from previous response to get next page of results."),
376
+ offset: z.number().int().min(0).optional().describe("Zero-based offset for pagination. Use with limit for paging through results."),
377
+ spatial: z.object({ line: z.array(z.string()).optional().describe("Line(s) with intersecting coordinates as comma-separated longitude,latitude pairs. Example: ['-117.5,34.2,-118.0,34.5']"), point: z.array(z.string()).optional().describe("Point(s) as comma-separated 'longitude,latitude' pairs. Example: ['-117.5,34.2']"), circle: z.array(z.string()).optional().describe("Circle(s) as '3 comma-separated numbers: longitude of center, latitude of center, radius in meters'. Example: ['-117.5,34.2,50000']"), polygon: z.array(z.string()).optional().describe("Polygon(s) with counter-clockwise ordered points; last point should match first to close. Format: comma-separated coordinate pairs. Example: ['-180,-90,-180,90,180,90,180,-90,-180,-90']"), boundingBox: z.array(z.string()).optional().describe("Bounding box(es) as '4 comma-separated numbers: lower left longitude, lower left latitude, upper right longitude, upper right latitude'. Example: ['-180,-90,180,90']") }).optional().describe("Spatial search filters for granule queries. All coordinates use longitude,latitude order."),
378
+ entryId: z.array(z.string()).optional().describe("Parent collection entry identifier(s)"),
379
+ provider: z.array(z.string()).optional().describe("Data provider/center ID(s) to filter granules (e.g., 'LPCLOUD', 'LPDAAC_ECS')"),
380
+ sortKey: z.array(z.string()).optional().describe("Field(s) to sort results by. Prepend '-' for descending order. Examples: ['startDate'], ['-endDate']"),
381
+ temporal: z.string().optional().describe("Temporal range filter in ISO 8601 format. Examples: '2020-01-01T00:00:00Z,2020-12-31T23:59:59Z' for range, '2020-01-01T00:00:00Z,' for open-ended start"),
382
+ conceptId: z.array(z.string()).optional().describe("Specific granule concept ID(s) to retrieve. Use for exact granule lookups."),
383
+ shortName: z.array(z.string()).optional().describe("Collection short name(s) to search granules within (e.g., 'HLS'). Often used with provider."),
384
+ browseOnly: z.boolean().optional().describe("If true, return only granules with browse imagery available"),
385
+ cloudCover: z.record(z.any()).optional().describe("Cloud coverage filter as JSON with 'min' and/or 'max' keys (percentage 0-100). Example: {'min': 0, 'max': 20}"),
386
+ onlineOnly: z.boolean().optional().describe("If true, return only granules available for online access"),
387
+ dayNightFlag: z.string().optional().describe("Day/night classification filter. Accepted values: 'DAY', 'NIGHT', 'BOTH', 'UNSPECIFIED'"),
388
+ collectionConceptId: z.string().optional().describe("Parent collection concept ID to filter granules (e.g., 'C1234567890-LPCLOUD'). This uniquely identifies a collection and is the recommended way to scope granule searches."),
389
+ readableGranuleName: z.array(z.string()).optional().describe("Human-readable granule name(s) for filtering"),
390
+ }),
391
+ execute: async ({ nasaApiKey, limit, cursor, offset, spatial, entryId, provider, sortKey, temporal, conceptId, shortName, browseOnly, cloudCover, onlineOnly, dayNightFlag, collectionConceptId, readableGranuleName }) => {
392
+ try {
393
+ const args = {};
394
+ if (limit !== undefined)
395
+ args["limit"] = limit;
396
+ if (cursor !== undefined)
397
+ args["cursor"] = cursor;
398
+ if (offset !== undefined)
399
+ args["offset"] = offset;
400
+ if (spatial !== undefined) {
401
+ for (const [k, v] of Object.entries(spatial))
402
+ args[k] = v;
403
+ }
404
+ if (entryId !== undefined)
405
+ args["entryId"] = entryId;
406
+ if (provider !== undefined)
407
+ args["provider"] = provider;
408
+ if (sortKey !== undefined)
409
+ args["sortKey"] = sortKey;
410
+ if (temporal !== undefined)
411
+ args["temporal"] = temporal;
412
+ if (conceptId !== undefined)
413
+ args["conceptId"] = conceptId;
414
+ if (shortName !== undefined)
415
+ args["shortName"] = shortName;
416
+ if (browseOnly !== undefined)
417
+ args["browseOnly"] = browseOnly;
418
+ if (cloudCover !== undefined)
419
+ args["cloudCover"] = cloudCover;
420
+ if (onlineOnly !== undefined)
421
+ args["onlineOnly"] = onlineOnly;
422
+ if (dayNightFlag !== undefined)
423
+ args["dayNightFlag"] = dayNightFlag;
424
+ if (collectionConceptId !== undefined)
425
+ args["collectionConceptId"] = collectionConceptId;
426
+ if (readableGranuleName !== undefined)
427
+ args["readableGranuleName"] = readableGranuleName;
428
+ return await cmrGraphql("granules", args, "{count items{conceptId title timeStart timeEnd granuleSize cloudCover dayNightFlag onlineAccessFlag producerGranuleId collectionConceptId} cursor}");
429
+ }
430
+ catch (error) {
431
+ return toNasaError(error, "Failed to query cmr granules");
432
+ }
433
+ },
434
+ });
435
+ export const nasaQueryCmrGrids = tool({
436
+ description: "Query for multiple grids from NASA's Common Metadata Repository (CMR) via GraphQL. Grids describe spatial data organization and coordinate systems used in NASA Earth observation datasets. Use when you need to retrieve grid metadata including spatial extent, resolution, and organization information.",
437
+ inputSchema: z.object({
438
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
439
+ limit: z.number().int().min(1).max(100).optional().describe("Maximum number of results to return per page (1-100). If not specified, API default is used."),
440
+ cursor: z.string().optional().describe("Pagination cursor from a previous query. Use to fetch the next page of results."),
441
+ conceptId: z.string().optional().describe("Filter by specific grid concept ID. Use to retrieve a specific grid."),
442
+ }),
443
+ execute: async ({ nasaApiKey, limit, cursor, conceptId }) => {
444
+ try {
445
+ const args = {};
446
+ if (limit !== undefined)
447
+ args["limit"] = limit;
448
+ if (cursor !== undefined)
449
+ args["cursor"] = cursor;
450
+ if (conceptId !== undefined)
451
+ args["conceptId"] = conceptId;
452
+ return await cmrGraphql("grids", args, "{count items{conceptId name description version} cursor}");
453
+ }
454
+ catch (error) {
455
+ return toNasaError(error, "Failed to query cmr grids");
456
+ }
457
+ },
458
+ });
459
+ export const nasaQueryCmrService = tool({
460
+ description: "Tool to query a single service from NASA's Common Metadata Repository using its unique concept ID. Use when you need to retrieve detailed metadata about a specific NASA service including description, type, URL, supported reformattings, and related information.",
461
+ inputSchema: z.object({
462
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
463
+ conceptId: z.string().describe("The unique concept ID assigned to the service. Example: 'S3385907677-GES_DISC'. This uniquely identifies a specific service in NASA's CMR."),
464
+ }),
465
+ execute: async ({ nasaApiKey, conceptId }) => {
466
+ try {
467
+ const args = {};
468
+ if (conceptId !== undefined)
469
+ args["conceptId"] = conceptId;
470
+ return await cmrGraphql("service", args, "{conceptId name longName description type url}");
471
+ }
472
+ catch (error) {
473
+ return toNasaError(error, "Failed to query cmr service");
474
+ }
475
+ },
476
+ });
477
+ export const nasaQueryCmrServices = tool({
478
+ description: "Tool to query for multiple services from NASA's Common Metadata Repository via GraphQL. Services describe data access methods and tools that act on data files. Use when you need to search for NASA services by type, provider, keyword, or other metadata filters.",
479
+ inputSchema: z.object({
480
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
481
+ type: z.string().optional().describe("The type of the service. Example: 'OPeNDAP', 'ESI', 'WMS'."),
482
+ limit: z.number().int().min(1).max(2000).optional().describe("The number of services requested. Valid range: 1-2000. Default: 10."),
483
+ cursor: z.string().optional().describe("Cursor that points to a specific position in a list of requested records. Use the cursor from previous response to get next page of results."),
484
+ offset: z.number().int().min(0).optional().describe("Zero-based offset of individual results. Use with limit for pagination."),
485
+ keyword: z.string().optional().describe("Keyword search value to search across service metadata."),
486
+ provider: z.string().optional().describe("The name of the provider associated with the service. Example: 'GES_DISC', 'LPDAAC_ECS'."),
487
+ sortKey: z.array(z.string()).optional().describe("One or more sort keys to impact searching. Fields can be prepended with '-' for descending order. Ascending order is default but '+' can be used explicitly. Example: ['name'], ['-revisionDate']."),
488
+ conceptId: z.array(z.string()).optional().describe("The unique concept ID(s) assigned to the service. Example: ['S3385907677-GES_DISC']. Use for exact service lookups."),
489
+ }),
490
+ execute: async ({ nasaApiKey, type, limit, cursor, offset, keyword, provider, sortKey, conceptId }) => {
491
+ try {
492
+ const args = {};
493
+ if (type !== undefined)
494
+ args["type"] = type;
495
+ if (limit !== undefined)
496
+ args["limit"] = limit;
497
+ if (cursor !== undefined)
498
+ args["cursor"] = cursor;
499
+ if (offset !== undefined)
500
+ args["offset"] = offset;
501
+ if (keyword !== undefined)
502
+ args["keyword"] = keyword;
503
+ if (provider !== undefined)
504
+ args["provider"] = provider;
505
+ if (sortKey !== undefined)
506
+ args["sortKey"] = sortKey;
507
+ if (conceptId !== undefined)
508
+ args["conceptId"] = conceptId;
509
+ return await cmrGraphql("services", args, "{count items{conceptId name longName description type providerId} cursor}");
510
+ }
511
+ catch (error) {
512
+ return toNasaError(error, "Failed to query cmr services");
513
+ }
514
+ },
515
+ });
516
+ export const nasaQueryCmrSubscription = tool({
517
+ description: "Tool to query a single subscription from NASA's Common Metadata Repository using its unique concept ID. Use when you need to retrieve detailed metadata about a specific CMR subscription including name, native ID, associated collection, and query parameters.",
518
+ inputSchema: z.object({
519
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
520
+ conceptId: z.string().describe("The unique concept ID assigned to the subscription. Example: 'SUB1200000000-PROV'. This uniquely identifies a specific subscription in NASA's CMR."),
521
+ }),
522
+ execute: async ({ nasaApiKey, conceptId }) => {
523
+ try {
524
+ const args = {};
525
+ if (conceptId !== undefined)
526
+ args["conceptId"] = conceptId;
527
+ return await cmrGraphql("subscription", args, "{conceptId name collectionConceptId providerId}");
528
+ }
529
+ catch (error) {
530
+ return toNasaError(error, "Failed to query cmr subscription");
531
+ }
532
+ },
533
+ });
534
+ export const nasaQueryCmrSubscriptions = tool({
535
+ description: "Query for multiple subscriptions from NASA's Common Metadata Repository (CMR). Use when you need to retrieve user subscriptions for receiving notifications when new data matching specified criteria becomes available. Returns subscription details including concept IDs, names, query criteria, and notification email addresses.",
536
+ inputSchema: z.object({
537
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
538
+ limit: z.number().int().min(1).max(100).optional().describe("Maximum number of results to return per page (1-100). If not specified, API default is used."),
539
+ cursor: z.string().optional().describe("Pagination cursor returned from a previous query. Use this to fetch the next page of results."),
540
+ }),
541
+ execute: async ({ nasaApiKey, limit, cursor }) => {
542
+ try {
543
+ const args = {};
544
+ if (limit !== undefined)
545
+ args["limit"] = limit;
546
+ if (cursor !== undefined)
547
+ args["cursor"] = cursor;
548
+ return await cmrGraphql("subscriptions", args, "{count items{conceptId name collectionConceptId providerId query} cursor}");
549
+ }
550
+ catch (error) {
551
+ return toNasaError(error, "Failed to query cmr subscriptions");
552
+ }
553
+ },
554
+ });
555
+ export const nasaQueryCmrTool = tool({
556
+ description: "Tool to query a single tool from NASA's Common Metadata Repository using its unique concept ID. Use when you need to retrieve detailed metadata about a specific NASA tool including long name, description, and URL. Call this when you have a tool concept ID and need to fetch its full metadata.",
557
+ inputSchema: z.object({
558
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
559
+ conceptId: z.string().describe("The unique concept ID assigned to the tool. Example: 'TL1860342065-SCIOPS'. This uniquely identifies a specific tool in NASA's CMR."),
560
+ }),
561
+ execute: async ({ nasaApiKey, conceptId }) => {
562
+ try {
563
+ const args = {};
564
+ if (conceptId !== undefined)
565
+ args["conceptId"] = conceptId;
566
+ return await cmrGraphql("tool", args, "{conceptId name longName description version providerId url}");
567
+ }
568
+ catch (error) {
569
+ return toNasaError(error, "Failed to query cmr tool");
570
+ }
571
+ },
572
+ });
573
+ export const nasaQueryCmrTools = tool({
574
+ description: "Tool to query multiple tools from NASA's Common Metadata Repository using GraphQL. Use when you need to search for software applications and utilities that process or visualize Earth science data. Supports filtering by keyword, provider, and pagination.",
575
+ inputSchema: z.object({
576
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
577
+ limit: z.number().int().min(1).max(2000).optional().describe("Maximum number of tools to return in the response. Default is determined by the API."),
578
+ cursor: z.string().optional().describe("Cursor string that points to a specific position in the result list for pagination. Use the cursor from a previous response to get the next page."),
579
+ offset: z.number().int().min(0).optional().describe("Zero-based offset for pagination. Skip this many results before returning items."),
580
+ keyword: z.string().optional().describe("Keyword search value to find tools by matching against tool metadata fields."),
581
+ provider: z.string().optional().describe("Name of the data provider associated with the tool. Example: 'POCLOUD'."),
582
+ sortKey: z.array(z.string()).optional().describe("List of sort keys for ordering results. Prefix with '-' for descending order (default is ascending). Example: ['-name', 'conceptId']."),
583
+ conceptId: z.array(z.string()).optional().describe("List of unique concept IDs assigned to tools. Example: ['TL2092786348-POCLOUD']. Use to retrieve specific known tools."),
584
+ }),
585
+ execute: async ({ nasaApiKey, limit, cursor, offset, keyword, provider, sortKey, conceptId }) => {
586
+ try {
587
+ const args = {};
588
+ if (limit !== undefined)
589
+ args["limit"] = limit;
590
+ if (cursor !== undefined)
591
+ args["cursor"] = cursor;
592
+ if (offset !== undefined)
593
+ args["offset"] = offset;
594
+ if (keyword !== undefined)
595
+ args["keyword"] = keyword;
596
+ if (provider !== undefined)
597
+ args["provider"] = provider;
598
+ if (sortKey !== undefined)
599
+ args["sortKey"] = sortKey;
600
+ if (conceptId !== undefined)
601
+ args["conceptId"] = conceptId;
602
+ return await cmrGraphql("tools", args, "{count items{conceptId name longName version description providerId} cursor}");
603
+ }
604
+ catch (error) {
605
+ return toNasaError(error, "Failed to query cmr tools");
606
+ }
607
+ },
608
+ });
609
+ export const nasaQueryCmrVariable = tool({
610
+ description: "Tool to query a single variable from NASA's Common Metadata Repository using its unique concept ID. Use when you need to retrieve detailed metadata about a specific CMR variable including its name, long name, and definition.",
611
+ inputSchema: z.object({
612
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
613
+ conceptId: z.string().describe("The unique concept ID assigned to the variable in CMR (e.g., 'V2112019824-POCLOUD'). This uniquely identifies a specific variable."),
614
+ }),
615
+ execute: async ({ nasaApiKey, conceptId }) => {
616
+ try {
617
+ const args = {};
618
+ if (conceptId !== undefined)
619
+ args["conceptId"] = conceptId;
620
+ return await cmrGraphql("variable", args, "{conceptId name longName definition units}");
621
+ }
622
+ catch (error) {
623
+ return toNasaError(error, "Failed to query cmr variable");
624
+ }
625
+ },
626
+ });
627
+ export const nasaQueryCollectionDraft = tool({
628
+ description: "Tool to query a NASA Earthdata collection draft by ID using the GraphQL API. Returns detailed metadata including title, abstract, version, DOI, platforms, and spatial/temporal extents. Use when you need to retrieve information about a specific collection draft from NASA's Earthdata system.",
629
+ inputSchema: z.object({
630
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
631
+ id: z.number().int().describe("The unique ID of the collection draft to query. Must be a valid draft ID from the NASA Earthdata system."),
632
+ }),
633
+ execute: async ({ nasaApiKey, id }) => {
634
+ try {
635
+ const args = {};
636
+ if (id !== undefined)
637
+ args["id"] = id;
638
+ return await cmrGraphql("collectionDraft", args, "{title abstract shortName versionId doi}");
639
+ }
640
+ catch (error) {
641
+ return toNasaError(error, "Failed to query collection draft");
642
+ }
643
+ },
644
+ });
645
+ export const nasaQueryDataQualitySummaries = tool({
646
+ description: "Query data quality summaries from NASA's Common Metadata Repository (CMR) GraphQL API. Use when you need to retrieve metadata about data quality assessments for NASA datasets. Returns summary information including concept IDs, names, and HTML-formatted quality descriptions.",
647
+ inputSchema: z.object({
648
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
649
+ limit: z.number().int().min(1).max(100).optional().describe("Maximum number of results to return per page (1-100). If not specified, API default is used."),
650
+ cursor: z.string().optional().describe("Pagination cursor returned from a previous query. Use this to fetch the next page of results."),
651
+ }),
652
+ execute: async ({ nasaApiKey, limit, cursor }) => {
653
+ try {
654
+ const args = {};
655
+ if (limit !== undefined)
656
+ args["limit"] = limit;
657
+ if (cursor !== undefined)
658
+ args["cursor"] = cursor;
659
+ return await cmrGraphql("dataQualitySummaries", args, "{count items{id name conceptId summary} cursor}");
660
+ }
661
+ catch (error) {
662
+ return toNasaError(error, "Failed to query data quality summaries");
663
+ }
664
+ },
665
+ });
666
+ export const nasaQueryDataQualitySummary = tool({
667
+ description: "Query for a single Data Quality Summary from NASA's Common Metadata Repository (CMR) using GraphQL. Use when you need to retrieve detailed quality information about a specific NASA dataset by its concept ID. Returns metadata including name, summary, and association details.",
668
+ inputSchema: z.object({
669
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
670
+ conceptId: z.string().describe("The unique concept ID of the Data Quality Summary to retrieve. Format: 'DQS[numbers]-[provider]' (e.g., 'DQS2700451712-LANCEMODIS'). This ID uniquely identifies a specific data quality summary in the CMR system."),
671
+ }),
672
+ execute: async ({ nasaApiKey, conceptId }) => {
673
+ try {
674
+ const args = {};
675
+ if (conceptId !== undefined)
676
+ args["conceptId"] = conceptId;
677
+ return await cmrGraphql("dataQualitySummary", args, "{id name conceptId summary}");
678
+ }
679
+ catch (error) {
680
+ return toNasaError(error, "Failed to query data quality summary");
681
+ }
682
+ },
683
+ });
684
+ export const nasaQueryOrderOption = tool({
685
+ description: "Tool to query a single order option from NASA Earthdata GraphQL API. Use when you need to retrieve detailed metadata about a specific order option by its concept ID.",
686
+ inputSchema: z.object({
687
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
688
+ conceptId: z.string().optional().describe("The unique concept ID assigned to the order option (e.g., 'OO2700524498-NSIDC_ECS'). If not provided, returns order option metadata if available."),
689
+ }),
690
+ execute: async ({ nasaApiKey, conceptId }) => {
691
+ try {
692
+ const args = {};
693
+ if (conceptId !== undefined)
694
+ args["conceptId"] = conceptId;
695
+ return await cmrGraphql("orderOption", args, "{conceptId name description}");
696
+ }
697
+ catch (error) {
698
+ return toNasaError(error, "Failed to query order option");
699
+ }
700
+ },
701
+ });
702
+ export const nasaQueryOrderOptions = tool({
703
+ description: "Tool to query order options for a NASA Earthdata collection using the GraphQL API. Use when you need to retrieve available ordering options for a specific collection concept ID.",
704
+ inputSchema: z.object({
705
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
706
+ conceptId: z.string().describe("Collection concept ID to query order options for. Must be a valid NASA Earthdata collection concept ID (e.g., 'C1234567890-DEMO')."),
707
+ }),
708
+ execute: async ({ nasaApiKey, conceptId }) => {
709
+ try {
710
+ const args = {};
711
+ if (conceptId !== undefined)
712
+ args["conceptId"] = conceptId;
713
+ return await cmrGraphql("orderOptions", args, "{count items{conceptId name description providerId} cursor}");
714
+ }
715
+ catch (error) {
716
+ return toNasaError(error, "Failed to query order options");
717
+ }
718
+ },
719
+ });
720
+ export const nasaQueryPermissions = tool({
721
+ description: "Tool to query permissions from NASA's Common Metadata Repository (CMR) GraphQL API. Returns a list of permissions with concept IDs, system objects, targets, and permission strings. Use when you need to retrieve access control information for NASA Earthdata resources.",
722
+ inputSchema: z.object({
723
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
724
+ target: z.string().optional().describe("Target identifier to filter permissions for a specific target."),
725
+ userId: z.string().optional().describe("Specific user identifier to query permissions for a particular user."),
726
+ provider: z.string().optional().describe("Provider identifier to filter permissions by data provider."),
727
+ userType: z.enum(["guest", "registered"]).optional().describe("User type for permission queries."),
728
+ conceptId: z.string().optional().describe("Single concept identifier to filter permissions for a specific resource."),
729
+ conceptIds: z.array(z.string()).optional().describe("List of concept identifiers to filter permissions for multiple resources."),
730
+ systemObject: z.string().optional().describe("System object identifier to filter permissions (e.g., 'INGEST_MANAGEMENT_ACL', 'GROUP', 'PROVIDER'). Use to query permissions for specific system objects."),
731
+ }),
732
+ execute: async ({ nasaApiKey, target, userId, provider, userType, conceptId, conceptIds, systemObject }) => {
733
+ try {
734
+ const args = {};
735
+ if (target !== undefined)
736
+ args["target"] = target;
737
+ if (userId !== undefined)
738
+ args["userId"] = userId;
739
+ if (provider !== undefined)
740
+ args["provider"] = provider;
741
+ if (userType !== undefined)
742
+ args["userType"] = userType;
743
+ if (conceptId !== undefined)
744
+ args["conceptId"] = conceptId;
745
+ if (conceptIds !== undefined)
746
+ args["conceptIds"] = conceptIds;
747
+ if (systemObject !== undefined)
748
+ args["systemObject"] = systemObject;
749
+ return await cmrGraphql("permissions", args, "{count items{conceptId systemObject target}}");
750
+ }
751
+ catch (error) {
752
+ return toNasaError(error, "Failed to query permissions");
753
+ }
754
+ },
755
+ });
756
+ export const nasaQueryProviders = tool({
757
+ description: "Tool to query for a list of data providers from NASA's Common Metadata Repository via GraphQL. Use when you need to discover available data providers or get provider metadata. Returns all available providers with their IDs, short names, and metadata flags (cmrOnly, small, consortiums).",
758
+ inputSchema: z.object({
759
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
760
+ limit: z.number().int().min(1).optional().describe("Maximum number of providers to include in response fields (not a filter, just limits returned fields). If not specified, all provider fields are returned."),
761
+ }),
762
+ execute: async ({ nasaApiKey, limit }) => {
763
+ try {
764
+ const args = {};
765
+ if (limit !== undefined)
766
+ args["limit"] = limit;
767
+ return await cmrGraphql("providers", args, "{count items{providerId shortName cmrOnly small}}");
768
+ }
769
+ catch (error) {
770
+ return toNasaError(error, "Failed to query providers");
771
+ }
772
+ },
773
+ });
774
+ export const nasaQueryTagDefinitions = tool({
775
+ description: "Tool to query tag definitions from NASA's Common Metadata Repository (CMR) GraphQL API. Use when you need to retrieve metadata about tag definitions including concept IDs, tag keys, descriptions, and originator information. Optionally filter by tag key or originator ID.",
776
+ inputSchema: z.object({
777
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
778
+ tagKey: z.string().optional().describe("The unique tag key to filter results. Use this to search for specific tag definitions by their key identifier."),
779
+ originatorId: z.string().optional().describe("The ID of the user that created the tag. Use this to filter tag definitions by the user who created them."),
780
+ }),
781
+ execute: async ({ nasaApiKey, tagKey, originatorId }) => {
782
+ try {
783
+ const args = {};
784
+ if (tagKey !== undefined)
785
+ args["tagKey"] = tagKey;
786
+ if (originatorId !== undefined)
787
+ args["originatorId"] = originatorId;
788
+ return await cmrGraphql("tagDefinitions", args, "{items{tagKey conceptId revisionId description originatorId}}");
789
+ }
790
+ catch (error) {
791
+ return toNasaError(error, "Failed to query tag definitions");
792
+ }
793
+ },
794
+ });
795
+ export const nasaQueryToolDraft = tool({
796
+ description: "Tool to query a tool draft from NASA's Common Metadata Repository (CMR) GraphQL API. Use when you need to retrieve information about a specific tool draft by its ID.",
797
+ inputSchema: z.object({
798
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
799
+ id: z.number().int().describe("The unique identifier of the tool draft to retrieve."),
800
+ }),
801
+ execute: async ({ nasaApiKey, id }) => {
802
+ try {
803
+ const args = {};
804
+ if (id !== undefined)
805
+ args["id"] = id;
806
+ return await cmrGraphql("toolDraft", args, "{name description version}");
807
+ }
808
+ catch (error) {
809
+ return toNasaError(error, "Failed to query tool draft");
810
+ }
811
+ },
812
+ });
813
+ export const nasaQueryVisualization = tool({
814
+ description: "Tool to query a single visualization from NASA's Common Metadata Repository using its unique concept ID. Use when you need to retrieve detailed metadata about a specific NASA visualization including name, title, description, type, and related information.",
815
+ inputSchema: z.object({
816
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
817
+ conceptId: z.string().describe("The unique concept ID assigned to the visualization. Example: 'VIS3727370138-ESDIS'. This uniquely identifies a specific visualization in NASA's CMR."),
818
+ }),
819
+ execute: async ({ nasaApiKey, conceptId }) => {
820
+ try {
821
+ const args = {};
822
+ if (conceptId !== undefined)
823
+ args["conceptId"] = conceptId;
824
+ return await cmrGraphql("visualization", args, "{conceptId name title description}");
825
+ }
826
+ catch (error) {
827
+ return toNasaError(error, "Failed to query visualization");
828
+ }
829
+ },
830
+ });
831
+ export const nasaQueryVisualizations = tool({
832
+ description: "Tool to query for visualizations from NASA's Common Metadata Repository via GraphQL. Use when searching for graphical representations of Earth Science data like maps, charts, or animations.",
833
+ inputSchema: z.object({
834
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
835
+ name: z.string().optional().describe("Filter by visualization name"),
836
+ limit: z.number().int().min(1).max(2000).optional().describe("Maximum number of visualizations to return (1-2000). Default: 5."),
837
+ title: z.string().optional().describe("Filter by visualization title"),
838
+ cursor: z.string().optional().describe("Cursor for pagination. Use the cursor from previous response to get next page of results."),
839
+ offset: z.number().int().min(0).optional().describe("Zero-based offset for pagination. Use with limit for paging through results."),
840
+ keyword: z.string().optional().describe("Free-text keyword search against visualization metadata (title, description, etc.)"),
841
+ provider: z.string().optional().describe("Data provider identifier to filter results"),
842
+ sortKey: z.array(z.string()).optional().describe("Field(s) to sort results by. Prepend '-' for descending order."),
843
+ nativeId: z.string().optional().describe("Native identifier assigned by the data provider"),
844
+ conceptId: z.string().optional().describe("The unique concept ID assigned to a specific visualization. Use for exact lookups."),
845
+ visualizationType: z.string().optional().describe("Type of visualization to filter by"),
846
+ }),
847
+ execute: async ({ nasaApiKey, name, limit, title, cursor, offset, keyword, provider, sortKey, nativeId, conceptId, visualizationType }) => {
848
+ try {
849
+ const args = {};
850
+ if (name !== undefined)
851
+ args["name"] = name;
852
+ if (limit !== undefined)
853
+ args["limit"] = limit;
854
+ if (title !== undefined)
855
+ args["title"] = title;
856
+ if (cursor !== undefined)
857
+ args["cursor"] = cursor;
858
+ if (offset !== undefined)
859
+ args["offset"] = offset;
860
+ if (keyword !== undefined)
861
+ args["keyword"] = keyword;
862
+ if (provider !== undefined)
863
+ args["provider"] = provider;
864
+ if (sortKey !== undefined)
865
+ args["sortKey"] = sortKey;
866
+ if (nativeId !== undefined)
867
+ args["nativeId"] = nativeId;
868
+ if (conceptId !== undefined)
869
+ args["conceptId"] = conceptId;
870
+ if (visualizationType !== undefined)
871
+ args["visualizationType"] = visualizationType;
872
+ return await cmrGraphql("visualizations", args, "{count items{conceptId name title description providerId} cursor}");
873
+ }
874
+ catch (error) {
875
+ return toNasaError(error, "Failed to query visualizations");
876
+ }
877
+ },
878
+ });
879
+ export const nasaDeleteAssociation = tool({
880
+ description: "Tool to delete an existing association between concepts in NASA's Common Metadata Repository. Use when you need to remove relationships between collections, services, tools, or other CMR resources. Requires appropriate permissions to delete associations.",
881
+ inputSchema: z.object({
882
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
883
+ conceptId: z.string().describe("The unique concept ID of the primary resource from which associations should be deleted. Example: 'C1234567890-PROV'. This is the source concept in the association."),
884
+ associatedConceptId: z.string().optional().describe("The concept ID of a single associated resource to delete. Use this parameter to delete one association. Mutually exclusive with associated_concept_ids."),
885
+ associatedConceptIds: z.array(z.string()).optional().describe("List of associated concept IDs to delete. Use this parameter to delete multiple associations at once. Mutually exclusive with associated_concept_id."),
886
+ }),
887
+ execute: async ({ nasaApiKey, conceptId, associatedConceptId, associatedConceptIds }) => {
888
+ try {
889
+ const args = {};
890
+ if (conceptId !== undefined)
891
+ args["conceptId"] = conceptId;
892
+ if (associatedConceptId !== undefined)
893
+ args["associatedConceptId"] = associatedConceptId;
894
+ if (associatedConceptIds !== undefined)
895
+ args["associatedConceptIds"] = associatedConceptIds;
896
+ return await cmrGraphqlMutation("deleteAssociation", args, "{conceptId revisionId associatedConceptId}");
897
+ }
898
+ catch (error) {
899
+ return toNasaError(error, "Failed to delete association");
900
+ }
901
+ },
902
+ });
903
+ export const nasaDeleteCmrAcl = tool({
904
+ description: "Tool to delete an Access Control List (ACL) from NASA's Common Metadata Repository. Use when you need to remove access controls for a specific CMR resource. Requires appropriate permissions to delete ACLs.",
905
+ inputSchema: z.object({
906
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
907
+ conceptId: z.string().describe("The unique concept ID of the ACL to delete. Example: 'ACL1200000000-TEST'. This uniquely identifies a specific ACL in NASA's CMR."),
908
+ }),
909
+ execute: async ({ nasaApiKey, conceptId }) => {
910
+ try {
911
+ const args = {};
912
+ if (conceptId !== undefined)
913
+ args["conceptId"] = conceptId;
914
+ return await cmrGraphqlMutation("deleteAcl", args, "{conceptId revisionId}");
915
+ }
916
+ catch (error) {
917
+ return toNasaError(error, "Failed to delete cmr acl");
918
+ }
919
+ },
920
+ });
921
+ export const nasaRestoreCitationRevision = tool({
922
+ description: "Tool to restore a previous version of a citation record within NASA's Common Metadata Repository. Use when you need to revert a citation to an earlier revision by specifying both the concept ID and the target revision number.",
923
+ inputSchema: z.object({
924
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
925
+ conceptId: z.string().describe("The unique concept ID assigned to the citation (e.g., 'CIT3857576156-ESDIS'). This identifies the citation record to restore."),
926
+ revisionId: z.string().describe("The revision ID of the citation to restore. This specifies which previous version of the citation should be restored."),
927
+ }),
928
+ execute: async ({ nasaApiKey, conceptId, revisionId }) => {
929
+ try {
930
+ const args = {};
931
+ if (conceptId !== undefined)
932
+ args["conceptId"] = conceptId;
933
+ if (revisionId !== undefined)
934
+ args["revisionId"] = revisionId;
935
+ return await cmrGraphqlMutation("restoreCitationRevision", args, "{conceptId revisionId}");
936
+ }
937
+ catch (error) {
938
+ return toNasaError(error, "Failed to restore citation revision");
939
+ }
940
+ },
941
+ });
942
+ export const nasaRestoreCollectionRevision = tool({
943
+ description: "Tool to restore a collection to a previous revision in NASA's Common Metadata Repository. Use when you need to revert a collection back to a specific historical version. Requires appropriate permissions to modify collections.",
944
+ inputSchema: z.object({
945
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
946
+ conceptId: z.string().describe("The unique concept ID assigned to the collection. Example: 'C2789815280-ENVIDAT'. This uniquely identifies the collection to restore."),
947
+ revisionId: z.string().describe("The revision ID to restore the collection to. Example: '11'. This specifies which historical version of the collection to restore."),
948
+ }),
949
+ execute: async ({ nasaApiKey, conceptId, revisionId }) => {
950
+ try {
951
+ const args = {};
952
+ if (conceptId !== undefined)
953
+ args["conceptId"] = conceptId;
954
+ if (revisionId !== undefined)
955
+ args["revisionId"] = revisionId;
956
+ return await cmrGraphqlMutation("restoreCollectionRevision", args, "{conceptId revisionId}");
957
+ }
958
+ catch (error) {
959
+ return toNasaError(error, "Failed to restore collection revision");
960
+ }
961
+ },
962
+ });
963
+ export const nasaRestoreVisualizationRevision = tool({
964
+ description: "Tool to restore a previous revision of a visualization in NASA's Common Metadata Repository. Use when you need to revert a visualization to a specific historical revision. Requires appropriate permissions to modify visualizations.",
965
+ inputSchema: z.object({
966
+ nasaApiKey: z.string().optional().describe("NASA API key (injected when connected; only sent to api.nasa.gov endpoints)"),
967
+ conceptId: z.string().describe("The unique concept ID assigned to the visualization. Example: 'VIS3727370138-ESDIS'. This uniquely identifies a specific visualization in NASA's CMR."),
968
+ revisionId: z.string().describe("The revision ID of the visualization to restore. Example: '1'. This specifies which historical revision to restore."),
969
+ }),
970
+ execute: async ({ nasaApiKey, conceptId, revisionId }) => {
971
+ try {
972
+ const args = {};
973
+ if (conceptId !== undefined)
974
+ args["conceptId"] = conceptId;
975
+ if (revisionId !== undefined)
976
+ args["revisionId"] = revisionId;
977
+ return await cmrGraphqlMutation("restoreVisualizationRevision", args, "{conceptId revisionId}");
978
+ }
979
+ catch (error) {
980
+ return toNasaError(error, "Failed to restore visualization revision");
981
+ }
982
+ },
983
+ });
984
+ //# sourceMappingURL=cmr.js.map