@langwatch/mcp-server 2.1.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (428) hide show
  1. package/.gitignore +7 -0
  2. package/.npmignore +41 -0
  3. package/CHANGELOG.md +218 -201
  4. package/CONTRIBUTING.md +10 -0
  5. package/README.md +70 -68
  6. package/dist/add-dashboard-widget-55UI6H22.js +44 -0
  7. package/dist/add-dashboard-widget-MJHIC3CC.js +45 -0
  8. package/dist/{archive-project-W3IKI7UL.js → archive-project-K5UD7A6X.js} +4 -4
  9. package/dist/archive-project-L4PAKT34.js +19 -0
  10. package/dist/{archive-run-plan-474OKHHU.js → archive-run-plan-5HSQG2HX.js} +4 -4
  11. package/dist/archive-run-plan-AOKNYQIO.js +15 -0
  12. package/dist/archive-scenario-2CWJW2VD.js +19 -0
  13. package/dist/{archive-scenario-V5UNYK26.js → archive-scenario-5IJQESHH.js} +4 -4
  14. package/dist/{archive-test-suite-O7FLDMXK.js → archive-test-suite-OPB7NFI7.js} +4 -4
  15. package/dist/archive-test-suite-ZC3TN6VH.js +15 -0
  16. package/dist/assign-prompt-tag-6DDE6ZZ5.js +23 -0
  17. package/dist/{assign-prompt-tag-Q46WRB6P.js → assign-prompt-tag-D7O23MJM.js} +8 -4
  18. package/dist/chunk-3YLN3ATJ.js +241 -0
  19. package/dist/{chunk-EYXMLE5X.js → chunk-4RX3G62A.js} +56 -47
  20. package/dist/{chunk-UF6XIGYR.js → chunk-6YZUOD34.js} +2 -5
  21. package/dist/{chunk-WVI5CJ6S.js → chunk-7AQLPVFL.js} +2 -2
  22. package/dist/chunk-7CZQDZ2K.js +319 -0
  23. package/dist/{chunk-RVAE2MEA.js → chunk-7GETGE6B.js} +7 -7
  24. package/dist/{chunk-OJLYYJWI.js → chunk-AASW2TO2.js} +7 -10
  25. package/dist/{chunk-QAMP3CGR.js → chunk-B4RFWIUP.js} +4 -4
  26. package/dist/{chunk-ZXKLPC2E.js → chunk-BIIKE3EI.js} +1 -1
  27. package/dist/{chunk-G4ZAZTZW.js → chunk-D2HS73VI.js} +7 -10
  28. package/dist/{chunk-37SMPMQS.js → chunk-DMM3JQ42.js} +7 -2
  29. package/dist/{chunk-WT4PO4A3.js → chunk-DULFP3MK.js} +10 -7
  30. package/dist/chunk-EYPJBL7P.js +516 -0
  31. package/dist/{chunk-NUFPTHKU.js → chunk-FOKVY3BK.js} +1 -1
  32. package/dist/chunk-GA5JUSPT.js +64 -0
  33. package/dist/{chunk-UJPXFA26.js → chunk-HHMNZAPD.js} +101 -74
  34. package/dist/chunk-HLQJXUR6.js +67 -0
  35. package/dist/{chunk-JTQJRNFJ.js → chunk-KILVK3FS.js} +4 -4
  36. package/dist/chunk-MOCU5XWF.js +79 -0
  37. package/dist/chunk-O2WGVCED.js +41 -0
  38. package/dist/{chunk-HV4DWKBI.js → chunk-O7EMWEVJ.js} +2 -4
  39. package/dist/{chunk-UFOYFYI7.js → chunk-QXLMHLRC.js} +6 -9
  40. package/dist/{chunk-QRO35SOM.js → chunk-R5YJIYPF.js} +981 -747
  41. package/dist/{chunk-JR6DJZOU.js → chunk-RABYBFX5.js} +4 -10
  42. package/dist/{chunk-SR6QPRIE.js → chunk-RFC2SBEX.js} +7 -13
  43. package/dist/chunk-SHSVN3SE.js +21 -0
  44. package/dist/{chunk-CKNAH5TG.js → chunk-U24EACC4.js} +3 -10
  45. package/dist/{chunk-56OGTS24.js → chunk-VOUGDY2O.js} +4 -11
  46. package/dist/chunk-WCKZDOGF.js +31 -0
  47. package/dist/chunk-XQYH52SI.js +129 -0
  48. package/dist/{chunk-7E4FZIYJ.js → chunk-XUIJYNRJ.js} +1 -1
  49. package/dist/{chunk-6DJDEXET.js → chunk-YCIUEZVK.js} +6 -12
  50. package/dist/config-2WQGMAEN.js +16 -0
  51. package/dist/config.cjs +109 -0
  52. package/dist/config.js +5 -4
  53. package/dist/{create-agent-JFJ2K6X3.js → create-agent-6JNLMYQD.js} +4 -4
  54. package/dist/create-agent-IRZOU4R5.js +23 -0
  55. package/dist/create-analytics-report-N4L4V5QL.js +19 -0
  56. package/dist/create-analytics-report-QEHXG7FU.js +18 -0
  57. package/dist/{create-annotation-EUXXQ6NS.js → create-annotation-CCEGIZ67.js} +10 -5
  58. package/dist/create-annotation-DTHCMWHB.js +29 -0
  59. package/dist/{create-api-key-BGBB76JX.js → create-api-key-JKM2DSZO.js} +5 -7
  60. package/dist/create-api-key-JPEUIXGM.js +24 -0
  61. package/dist/create-dataset-DJNXYJ5B.js +22 -0
  62. package/dist/{create-dataset-FD5VAXU4.js → create-dataset-WON4SOTC.js} +6 -6
  63. package/dist/create-dataset-records-TMEOTLTO.js +20 -0
  64. package/dist/{create-dataset-records-WQUXXOHI.js → create-dataset-records-UJBW3C7C.js} +5 -7
  65. package/dist/create-evaluator-N5AEHI4K.js +27 -0
  66. package/dist/{create-evaluator-6NV33Z52.js → create-evaluator-XYNY2YFY.js} +4 -4
  67. package/dist/create-mcp-server.cjs +9712 -0
  68. package/dist/create-mcp-server.js +2757 -10
  69. package/dist/{create-project-ZQ7TFIO2.js → create-project-EY4XZ7TH.js} +4 -4
  70. package/dist/create-project-YL345T5L.js +44 -0
  71. package/dist/{create-prompt-BS6QRCUU.js → create-prompt-JZQNQ7I3.js} +5 -7
  72. package/dist/create-prompt-ZUMQHHX7.js +37 -0
  73. package/dist/create-prompt-tag-CJ5FZ436.js +17 -0
  74. package/dist/{create-prompt-tag-FCQ5ELSQ.js → create-prompt-tag-JFP2Q3PO.js} +3 -3
  75. package/dist/create-scenario-CQU2SSFB.js +33 -0
  76. package/dist/{create-scenario-DRPTPXU3.js → create-scenario-S6OWWKJO.js} +5 -5
  77. package/dist/create-test-suite-OLGCAGJA.js +36 -0
  78. package/dist/{create-test-suite-ZIZCCFJ4.js → create-test-suite-Y7P2RI4L.js} +6 -6
  79. package/dist/create-trigger-4CNBTISJ.js +48 -0
  80. package/dist/create-trigger-RQ653WYF.js +49 -0
  81. package/dist/dashboards-BA7M6CMO.js +90 -0
  82. package/dist/dashboards-U663GUIB.js +91 -0
  83. package/dist/{delete-agent-SA4JMUZF.js → delete-agent-J2Q4DRZ2.js} +4 -4
  84. package/dist/delete-agent-ZAU4LTXB.js +18 -0
  85. package/dist/delete-analytics-report-QK6X7P4S.js +19 -0
  86. package/dist/delete-analytics-report-YUYLDHLL.js +18 -0
  87. package/dist/delete-annotation-7X4NYXXM.js +17 -0
  88. package/dist/{delete-annotation-X3KKK7QY.js → delete-annotation-KJOCDLV3.js} +4 -4
  89. package/dist/{delete-dataset-W6EZ44HY.js → delete-dataset-NXP7ZPPV.js} +5 -7
  90. package/dist/delete-dataset-RUTZBBVD.js +18 -0
  91. package/dist/{delete-dataset-records-7CNOTALB.js → delete-dataset-records-4Z7DZCDW.js} +5 -7
  92. package/dist/delete-dataset-records-75UAR5IS.js +19 -0
  93. package/dist/delete-evaluator-E3CUNGTQ.js +16 -0
  94. package/dist/delete-evaluator-RI4GALGX.js +15 -0
  95. package/dist/delete-prompt-tag-LE3WJPKS.js +17 -0
  96. package/dist/{delete-prompt-tag-QB3OCZUV.js → delete-prompt-tag-S4KBZTNG.js} +3 -3
  97. package/dist/delete-workflow-4CZFIQCQ.js +17 -0
  98. package/dist/{delete-workflow-NG2VXYYM.js → delete-workflow-PWQPDW6H.js} +4 -4
  99. package/dist/discover-evaluator-schema-UHWA5HVL.js +120 -0
  100. package/dist/discover-evaluator-schema-XKCLLCB3.js +118 -0
  101. package/dist/discover-scenario-schema-NOJY6S7E.js +137 -0
  102. package/dist/{discover-scenario-schema-W7KBXA4J.js → discover-scenario-schema-OOFIQKOG.js} +37 -17
  103. package/dist/discover-schema-7WHIIATI.js +442 -0
  104. package/dist/{discover-schema-L6QDPON3.js → discover-schema-J2ANOBKO.js} +181 -186
  105. package/dist/get-agent-5T3CXQOR.js +69 -0
  106. package/dist/{get-agent-7THF7HCU.js → get-agent-ZKYQJUQ7.js} +15 -11
  107. package/dist/get-analytics-4MPEK4KV.js +79 -0
  108. package/dist/get-analytics-ZLI3A4F5.js +80 -0
  109. package/dist/get-analytics-report-JCKYMA2S.js +29 -0
  110. package/dist/get-analytics-report-SKIP2JWH.js +30 -0
  111. package/dist/get-dataset-APGZBYMH.js +64 -0
  112. package/dist/get-dataset-LWXDVMVE.js +63 -0
  113. package/dist/get-evaluator-3A7BJBAB.js +47 -0
  114. package/dist/{get-evaluator-RZ44UIN6.js → get-evaluator-IWNJINRY.js} +4 -4
  115. package/dist/get-project-EQVB4LEL.js +26 -0
  116. package/dist/{get-project-QSQEAB33.js → get-project-RK6AJTEP.js} +4 -4
  117. package/dist/{get-prompt-GVKXF5NL.js → get-prompt-TLG2T2DS.js} +53 -58
  118. package/dist/get-prompt-ZER557X3.js +94 -0
  119. package/dist/get-run-plan-5X7DDJRN.js +58 -0
  120. package/dist/{get-run-plan-NY7J5GRE.js → get-run-plan-PEHRO5M3.js} +7 -9
  121. package/dist/{get-scenario-Q3LLQE4T.js → get-scenario-375W5D6I.js} +5 -5
  122. package/dist/get-scenario-UQX45ZZO.js +37 -0
  123. package/dist/{get-simulation-run-WINEYDMK.js → get-simulation-run-2NBXJADG.js} +26 -22
  124. package/dist/get-simulation-run-QZTLGL7W.js +69 -0
  125. package/dist/{get-test-suite-4HKA7OKS.js → get-test-suite-GVIBDG7K.js} +5 -5
  126. package/dist/get-test-suite-OODIR3RI.js +48 -0
  127. package/dist/{get-trace-RCUV7N4O.js → get-trace-AGCHVPJK.js} +11 -13
  128. package/dist/get-trace-KJLYAZRC.js +45 -0
  129. package/dist/get-workflow-3TV2YYC5.js +25 -0
  130. package/dist/{get-workflow-EEOC7Y45.js → get-workflow-7LZSVPP2.js} +4 -4
  131. package/dist/{http-security-EU3CHTY7.js → http-security-DNLBNQZL.js} +2 -2
  132. package/dist/{http-server-WCDUARTH.js → http-server-7CCN3EHJ.js} +4249 -325
  133. package/dist/index.js +59595 -38027
  134. package/dist/langwatch-api-analytics-reports-6CF6KUET.js +17 -0
  135. package/dist/langwatch-api-analytics-reports-RPFB5AO5.js +18 -0
  136. package/dist/{langwatch-api-annotations-6DHVZWUK.js → langwatch-api-annotations-H4AI4TKG.js} +4 -4
  137. package/dist/langwatch-api-annotations-QSJNUQQS.js +17 -0
  138. package/dist/langwatch-api-monitors-ENHLOL3S.js +47 -0
  139. package/dist/{langwatch-api-monitors-6ISFJ7WX.js → langwatch-api-monitors-OHSGADTH.js} +11 -16
  140. package/dist/langwatch-api-secrets-AGW6UUMD.js +55 -0
  141. package/dist/langwatch-api-secrets-CLTS766Q.js +56 -0
  142. package/dist/langwatch-api-triggers-G5UWFNN2.js +22 -0
  143. package/dist/langwatch-api-triggers-QMR7KEXW.js +23 -0
  144. package/dist/langwatch-api-workflows-HKTBIKKY.js +15 -0
  145. package/dist/{langwatch-api-workflows-6UJL5U4Z.js → langwatch-api-workflows-OMROZH2O.js} +4 -4
  146. package/dist/{list-agents-AMVDQPQL.js → list-agents-BYWDNAHT.js} +4 -4
  147. package/dist/list-agents-MG24MHZE.js +42 -0
  148. package/dist/list-analytics-reports-G3EPWGSQ.js +32 -0
  149. package/dist/list-analytics-reports-PPWIFRES.js +33 -0
  150. package/dist/list-annotations-QCLGEK5A.js +38 -0
  151. package/dist/{list-annotations-6PR5NLIC.js → list-annotations-Y4EUBJHG.js} +10 -5
  152. package/dist/list-api-keys-DAVOBPFK.js +42 -0
  153. package/dist/{list-api-keys-GVPNBIHQ.js → list-api-keys-JMW5WRXX.js} +10 -5
  154. package/dist/list-dashboards-2P3VJFRS.js +29 -0
  155. package/dist/list-dashboards-MW5O3MKH.js +30 -0
  156. package/dist/list-dataset-records-KEHT7G6Q.js +43 -0
  157. package/dist/{list-dataset-records-O67HZ35Y.js → list-dataset-records-KMLLMZAZ.js} +14 -10
  158. package/dist/{list-datasets-WXZL6UMP.js → list-datasets-P3JK2ZHS.js} +9 -13
  159. package/dist/list-datasets-Z7OOE4KI.js +56 -0
  160. package/dist/{list-evaluators-PAX72WCN.js → list-evaluators-7RRESBOU.js} +5 -7
  161. package/dist/list-evaluators-VATJVOHR.js +32 -0
  162. package/dist/{list-model-providers-VVLZMLCX.js → list-model-providers-OXDRPUCJ.js} +4 -4
  163. package/dist/list-model-providers-VXQJWDXU.js +35 -0
  164. package/dist/{list-projects-AQVI6SUK.js → list-projects-HUVK7L3W.js} +5 -7
  165. package/dist/list-projects-X72ZXVY5.js +40 -0
  166. package/dist/{list-prompt-tags-WZFBJOHG.js → list-prompt-tags-3I3LWFIR.js} +3 -3
  167. package/dist/list-prompt-tags-DRHUH2ND.js +23 -0
  168. package/dist/list-prompts-6DX3QECJ.js +30 -0
  169. package/dist/{list-prompts-BQOHRHYT.js → list-prompts-PS423RU3.js} +4 -6
  170. package/dist/list-run-plans-5SXPOV3X.js +45 -0
  171. package/dist/{list-run-plans-UBAU2DGH.js → list-run-plans-6VNHINPY.js} +5 -5
  172. package/dist/list-scenarios-EQWCW7Q4.js +45 -0
  173. package/dist/{list-scenarios-MS4IUIVM.js → list-scenarios-GKNH3YND.js} +13 -11
  174. package/dist/{list-simulation-runs-D6YF4ZOU.js → list-simulation-runs-KHY7KALI.js} +12 -8
  175. package/dist/list-simulation-runs-PUDK32C2.js +53 -0
  176. package/dist/list-test-suites-7H2DRILK.js +34 -0
  177. package/dist/{list-test-suites-L7R2O6DR.js → list-test-suites-GY56LGLY.js} +4 -4
  178. package/dist/list-trigger-fires-7RZUP54Y.js +19 -0
  179. package/dist/list-trigger-fires-OZUF65LI.js +20 -0
  180. package/dist/list-triggers-BGUCUXTJ.js +45 -0
  181. package/dist/list-triggers-XC5KMX4C.js +46 -0
  182. package/dist/list-workflows-55NYC3PC.js +33 -0
  183. package/dist/{list-workflows-6MV4XJHF.js → list-workflows-HV7FUWZA.js} +5 -7
  184. package/dist/{rename-prompt-tag-K5LQ4CY6.js → rename-prompt-tag-2I7Z5FCY.js} +3 -3
  185. package/dist/rename-prompt-tag-SZYTOWDX.js +18 -0
  186. package/dist/{rename-test-suite-NTYHAO5X.js → rename-test-suite-27AYY33K.js} +4 -4
  187. package/dist/rename-test-suite-CLIEPZDO.js +20 -0
  188. package/dist/report-issue-5HSL7CNB.js +924 -0
  189. package/dist/{report-issue-RHZZ33IS.js → report-issue-N7ND5TM6.js} +107 -67
  190. package/dist/{rerun-run-plan-MUDWJBE4.js → rerun-run-plan-O3VUZ6CG.js} +5 -5
  191. package/dist/rerun-run-plan-OJTVVGJI.js +21 -0
  192. package/dist/{revoke-api-key-6LAZ3QZZ.js → revoke-api-key-BU6BKGCG.js} +4 -4
  193. package/dist/revoke-api-key-NZNCFOIR.js +15 -0
  194. package/dist/run-agent-244O4Y5M.js +75 -0
  195. package/dist/run-agent-HPCGZGYW.js +74 -0
  196. package/dist/run-plan-2ZPGGZ4H.js +38 -0
  197. package/dist/{run-plan-T4ZYOZGA.js → run-plan-KSXUYQT3.js} +7 -7
  198. package/dist/run-query-4LMOQ5UW.js +47 -0
  199. package/dist/run-query-BQUHIUC2.js +46 -0
  200. package/dist/{run-test-suite-L4MZ7G4D.js → run-test-suite-P3WLVPXC.js} +6 -6
  201. package/dist/run-test-suite-UEOMCON6.js +25 -0
  202. package/dist/run-workflow-EFZ6HG5B.js +36 -0
  203. package/dist/{run-workflow-DFIS23AP.js → run-workflow-I4IHEN54.js} +4 -4
  204. package/dist/search-traces-6IR7PR4L.js +170 -0
  205. package/dist/search-traces-BYML2NQ4.js +171 -0
  206. package/dist/set-model-provider-RBNGWFVI.js +33 -0
  207. package/dist/{set-model-provider-XRNMFOVR.js → set-model-provider-SHEVKWRC.js} +4 -4
  208. package/dist/{update-agent-DUWNYBNA.js → update-agent-PTKTM2B5.js} +4 -4
  209. package/dist/update-agent-ZPXWRMS2.js +20 -0
  210. package/dist/update-dashboard-widget-HKCBXH7X.js +62 -0
  211. package/dist/update-dashboard-widget-IP2TTQ5G.js +63 -0
  212. package/dist/update-dataset-GHIN6JR3.js +22 -0
  213. package/dist/{update-dataset-YSOMDCOB.js → update-dataset-IRVMY5PF.js} +6 -6
  214. package/dist/update-dataset-record-6VI7K2CL.js +19 -0
  215. package/dist/{update-dataset-record-DEA2ITYR.js → update-dataset-record-Z3L7ACNF.js} +4 -4
  216. package/dist/update-evaluator-5NLNE6VY.js +24 -0
  217. package/dist/{update-evaluator-NH7Q5GWV.js → update-evaluator-FEH7H6NS.js} +4 -4
  218. package/dist/update-project-75H3LDQT.js +24 -0
  219. package/dist/{update-project-Q26FBSYH.js → update-project-QPR3QX55.js} +4 -4
  220. package/dist/update-prompt-BCDFTNLK.js +140 -0
  221. package/dist/{update-prompt-ZQQ2C3KU.js → update-prompt-NPRXYSWA.js} +27 -29
  222. package/dist/update-scenario-BNOMDCMV.js +34 -0
  223. package/dist/{update-scenario-WUX34JAR.js → update-scenario-EM5XGMB7.js} +5 -5
  224. package/package.json +35 -39
  225. package/pyproject.toml +23 -8
  226. package/src/config.d.ts +6 -0
  227. package/src/config.ts +22 -29
  228. package/src/create-mcp-server.ts +887 -634
  229. package/src/documentation-fetch.ts +21 -20
  230. package/src/http-security.ts +166 -135
  231. package/src/http-server.ts +189 -224
  232. package/src/index.ts +14 -16
  233. package/src/langwatch-api-agents.ts +18 -21
  234. package/src/langwatch-api-analytics-reports.ts +62 -0
  235. package/src/langwatch-api-annotations.ts +11 -12
  236. package/src/langwatch-api-api-keys.ts +8 -9
  237. package/src/langwatch-api-dashboard-widgets.ts +47 -0
  238. package/src/langwatch-api-dashboards.ts +109 -24
  239. package/src/langwatch-api-datasets.ts +98 -32
  240. package/src/langwatch-api-evaluators.ts +13 -19
  241. package/src/langwatch-api-model-providers.ts +4 -4
  242. package/src/langwatch-api-monitors.ts +14 -18
  243. package/src/langwatch-api-projects.ts +10 -9
  244. package/src/langwatch-api-query.ts +114 -0
  245. package/src/langwatch-api-run-plans.ts +12 -29
  246. package/src/langwatch-api-scenarios.ts +9 -11
  247. package/src/langwatch-api-secrets.ts +31 -24
  248. package/src/langwatch-api-simulation-runs.ts +6 -8
  249. package/src/langwatch-api-test-suites.ts +14 -33
  250. package/src/langwatch-api-triggers.ts +96 -34
  251. package/src/langwatch-api-workflows.ts +9 -9
  252. package/src/langwatch-api.ts +118 -124
  253. package/src/public-http-request.ts +21 -12
  254. package/src/schemas/analytics-metrics.ts +3 -15
  255. package/src/schemas/create-dataset.ts +3 -4
  256. package/src/schemas/run-plan.ts +13 -29
  257. package/src/schemas/suite-fields.ts +6 -23
  258. package/src/schemas/triggers.ts +365 -0
  259. package/src/schemas/widget-sources.ts +33 -0
  260. package/src/tools/add-dashboard-widget.ts +51 -0
  261. package/src/tools/archive-project.ts +2 -4
  262. package/src/tools/archive-run-plan.ts +2 -4
  263. package/src/tools/archive-scenario.ts +2 -4
  264. package/src/tools/archive-test-suite.ts +2 -4
  265. package/src/tools/assign-prompt-tag.ts +6 -2
  266. package/src/tools/create-agent.ts +1 -1
  267. package/src/tools/create-analytics-report.ts +7 -0
  268. package/src/tools/create-annotation.ts +7 -2
  269. package/src/tools/create-api-key.ts +4 -6
  270. package/src/tools/create-dataset-records.ts +4 -8
  271. package/src/tools/create-dataset.ts +5 -7
  272. package/src/tools/create-evaluator.ts +3 -5
  273. package/src/tools/create-project.ts +2 -2
  274. package/src/tools/create-prompt-tag.ts +2 -4
  275. package/src/tools/create-prompt.ts +9 -18
  276. package/src/tools/create-scenario.ts +5 -7
  277. package/src/tools/create-test-suite.ts +4 -9
  278. package/src/tools/create-trigger.ts +55 -0
  279. package/src/tools/dashboard-widget-queries.ts +45 -0
  280. package/src/tools/dashboards.ts +104 -0
  281. package/src/tools/delete-agent.ts +1 -1
  282. package/src/tools/delete-analytics-report.ts +7 -0
  283. package/src/tools/delete-annotation.ts +1 -1
  284. package/src/tools/delete-dataset-records.ts +4 -8
  285. package/src/tools/delete-dataset.ts +3 -7
  286. package/src/tools/delete-evaluator.ts +4 -6
  287. package/src/tools/delete-prompt-tag.ts +2 -4
  288. package/src/tools/delete-workflow.ts +1 -1
  289. package/src/tools/discover-evaluator-schema.ts +34 -25
  290. package/src/tools/discover-scenario-schema.ts +41 -21
  291. package/src/tools/discover-schema.ts +149 -27
  292. package/src/tools/experiment-run-status.ts +2 -8
  293. package/src/tools/format-dataset-mutation.ts +5 -10
  294. package/src/tools/format-run-plan.ts +7 -21
  295. package/src/tools/format-scenario.ts +2 -4
  296. package/src/tools/format-suite-details.ts +6 -12
  297. package/src/tools/get-agent.ts +15 -6
  298. package/src/tools/get-analytics-report.ts +23 -0
  299. package/src/tools/get-analytics.ts +52 -46
  300. package/src/tools/get-dataset.ts +34 -16
  301. package/src/tools/get-evaluator.ts +4 -11
  302. package/src/tools/get-experiment-results.ts +219 -186
  303. package/src/tools/get-project.ts +2 -4
  304. package/src/tools/get-prompt.ts +63 -84
  305. package/src/tools/get-run-plan.ts +4 -6
  306. package/src/tools/get-scenario.ts +4 -6
  307. package/src/tools/get-simulation-run.ts +27 -24
  308. package/src/tools/get-test-suite.ts +2 -5
  309. package/src/tools/get-trace.ts +16 -17
  310. package/src/tools/get-workflow.ts +1 -1
  311. package/src/tools/list-agents.ts +1 -1
  312. package/src/tools/list-analytics-reports.ts +27 -0
  313. package/src/tools/list-annotations.ts +8 -5
  314. package/src/tools/list-api-keys.ts +7 -2
  315. package/src/tools/list-dashboards.ts +20 -21
  316. package/src/tools/list-dataset-records.ts +8 -6
  317. package/src/tools/list-datasets.ts +12 -23
  318. package/src/tools/list-evaluators.ts +4 -8
  319. package/src/tools/list-experiment-runs.ts +5 -9
  320. package/src/tools/list-experiments.ts +5 -11
  321. package/src/tools/list-model-providers.ts +3 -5
  322. package/src/tools/list-projects.ts +2 -4
  323. package/src/tools/list-prompt-tags.ts +3 -3
  324. package/src/tools/list-prompts.ts +4 -8
  325. package/src/tools/list-run-plans.ts +2 -2
  326. package/src/tools/list-scenarios.ts +14 -15
  327. package/src/tools/list-simulation-runs.ts +8 -4
  328. package/src/tools/list-test-suites.ts +1 -1
  329. package/src/tools/list-trigger-fires.ts +17 -0
  330. package/src/tools/list-triggers.ts +39 -0
  331. package/src/tools/list-workflows.ts +2 -4
  332. package/src/tools/rename-prompt-tag.ts +1 -1
  333. package/src/tools/rename-test-suite.ts +2 -5
  334. package/src/tools/report-issue.ts +7 -9
  335. package/src/tools/rerun-run-plan.ts +2 -5
  336. package/src/tools/revoke-api-key.ts +2 -4
  337. package/src/tools/run-agent.ts +29 -26
  338. package/src/tools/run-experiment.ts +37 -34
  339. package/src/tools/run-plan.ts +4 -7
  340. package/src/tools/run-query.ts +47 -0
  341. package/src/tools/run-test-suite.ts +4 -7
  342. package/src/tools/run-workflow.ts +2 -5
  343. package/src/tools/search-traces.ts +161 -47
  344. package/src/tools/set-model-provider.ts +4 -6
  345. package/src/tools/test-agent.ts +2 -2
  346. package/src/tools/update-agent.ts +1 -1
  347. package/src/tools/update-dashboard-widget.ts +86 -0
  348. package/src/tools/update-dataset-record.ts +1 -1
  349. package/src/tools/update-dataset.ts +5 -7
  350. package/src/tools/update-evaluator.ts +3 -5
  351. package/src/tools/update-project.ts +1 -1
  352. package/src/tools/update-prompt.ts +44 -59
  353. package/src/tools/update-scenario.ts +5 -7
  354. package/src/tools/update-test-suite.ts +6 -11
  355. package/src/utils/date-parsing.ts +1 -1
  356. package/src/utils/escape-markdown.ts +3 -8
  357. package/src/utils/format-evaluations.ts +6 -6
  358. package/src/utils/markdown-table.ts +58 -0
  359. package/src/utils/trace-id-shape.ts +20 -0
  360. package/tsconfig.app.json +24 -0
  361. package/tsconfig.json +14 -12
  362. package/uv.lock +667 -341
  363. package/vitest.integration.config.js +10 -0
  364. package/vitest.scenario.config.js +9 -0
  365. package/.eslintrc.cjs +0 -36
  366. package/dist/chunk-AN4OUA4D.js +0 -86
  367. package/dist/chunk-GELJ2MQR.js +0 -226
  368. package/dist/chunk-K37ZNPXK.js +0 -24
  369. package/dist/chunk-S4GVX36W.js +0 -39
  370. package/dist/config.d.ts +0 -17
  371. package/dist/create-dashboard-Z76AIPLS.js +0 -19
  372. package/dist/create-mcp-server.d.ts +0 -10
  373. package/dist/delete-dashboard-LYMRPF27.js +0 -19
  374. package/dist/delete-evaluator-RKYC4TNB.js +0 -16
  375. package/dist/discover-evaluator-schema-ESSHQGPY.js +0 -1912
  376. package/dist/get-analytics-R6AZD3AW.js +0 -73
  377. package/dist/get-dashboard-P4WWVHFU.js +0 -30
  378. package/dist/get-dataset-AKTYSQDI.js +0 -49
  379. package/dist/index.d.ts +0 -2
  380. package/dist/langwatch-api-dashboards-2KJL2M42.js +0 -18
  381. package/dist/langwatch-api-secrets-OEBD6GBU.js +0 -41
  382. package/dist/langwatch-api-triggers-5E6DDGX6.js +0 -31
  383. package/dist/list-dashboards-Z3BZKDGF.js +0 -33
  384. package/dist/run-agent-CAGWGTYT.js +0 -72
  385. package/dist/search-traces-4XTJYXIK.js +0 -79
  386. package/src/__tests__/agent-tools.unit.test.ts +0 -257
  387. package/src/__tests__/all-tools.integration.test.ts +0 -1872
  388. package/src/__tests__/config.unit.test.ts +0 -202
  389. package/src/__tests__/datasets.integration.test.ts +0 -620
  390. package/src/__tests__/datasets.unit.test.ts +0 -244
  391. package/src/__tests__/date-parsing.unit.test.ts +0 -78
  392. package/src/__tests__/discover-evaluator-schema.unit.test.ts +0 -89
  393. package/src/__tests__/discover-schema.unit.test.ts +0 -118
  394. package/src/__tests__/docker.integration.test.ts +0 -318
  395. package/src/__tests__/documentation-fetch-security.integration.test.ts +0 -182
  396. package/src/__tests__/evaluator-tools.unit.test.ts +0 -262
  397. package/src/__tests__/experiment-list-tools.unit.test.ts +0 -157
  398. package/src/__tests__/experiment-status.unit.test.ts +0 -194
  399. package/src/__tests__/feature-map-tool-drift.unit.test.ts +0 -93
  400. package/src/__tests__/get-experiment-results.unit.test.ts +0 -313
  401. package/src/__tests__/http-security-origin.unit.test.ts +0 -97
  402. package/src/__tests__/http-security-sessions.unit.test.ts +0 -209
  403. package/src/__tests__/http-security-verifier.unit.test.ts +0 -248
  404. package/src/__tests__/http-server-allocation.integration.test.ts +0 -279
  405. package/src/__tests__/http-server-origin.integration.test.ts +0 -169
  406. package/src/__tests__/http-server-session-auth.integration.test.ts +0 -341
  407. package/src/__tests__/http-transport.integration.test.ts +0 -395
  408. package/src/__tests__/integration.integration.test.ts +0 -284
  409. package/src/__tests__/langwatch-api.unit.test.ts +0 -661
  410. package/src/__tests__/model-provider-tools.unit.test.ts +0 -190
  411. package/src/__tests__/project-api-key-tools.unit.test.ts +0 -451
  412. package/src/__tests__/prompt-response-types.unit.test.ts +0 -51
  413. package/src/__tests__/prompts.integration.test.ts +0 -736
  414. package/src/__tests__/public-http-request-security.integration.test.ts +0 -118
  415. package/src/__tests__/report-issue.integration.test.ts +0 -147
  416. package/src/__tests__/run-plan-tools.unit.test.ts +0 -565
  417. package/src/__tests__/scenario-tools.integration.test.ts +0 -286
  418. package/src/__tests__/scenario-tools.unit.test.ts +0 -207
  419. package/src/__tests__/schemas.unit.test.ts +0 -85
  420. package/src/__tests__/simulation-run-tools.unit.test.ts +0 -116
  421. package/src/__tests__/support/http-server-harness.ts +0 -138
  422. package/src/__tests__/test-suite-tools.unit.test.ts +0 -615
  423. package/src/__tests__/tools.integration.test.ts +0 -896
  424. package/src/schemas/filter-fields.ts +0 -119
  425. package/src/schemas/index.ts +0 -9
  426. package/src/tools/create-dashboard.ts +0 -7
  427. package/src/tools/delete-dashboard.ts +0 -7
  428. package/src/tools/get-dashboard.ts +0 -22
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  createProject
3
- } from "./chunk-G4ZAZTZW.js";
4
- import "./chunk-GELJ2MQR.js";
5
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-D2HS73VI.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
6
  import "./chunk-SAS5OB7F.js";
7
7
 
8
8
  // src/tools/create-project.ts
@@ -42,4 +42,4 @@ async function handleCreateProject(params) {
42
42
  export {
43
43
  handleCreateProject
44
44
  };
45
- //# sourceMappingURL=create-project-ZQ7TFIO2.js.map
45
+ //# sourceMappingURL=create-project-EY4XZ7TH.js.map
@@ -0,0 +1,44 @@
1
+ import {
2
+ createProject
3
+ } from "./chunk-D2HS73VI.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
+
7
+ // src/tools/create-project.ts
8
+ async function handleCreateProject(params) {
9
+ if (!params.teamId && !params.newTeamName) {
10
+ return "Error: You must provide either `teamId` (to add to an existing team) or `newTeamName` (to create a new team for this project).";
11
+ }
12
+ const result = await createProject({
13
+ name: params.name,
14
+ language: params.language,
15
+ framework: params.framework,
16
+ teamId: params.teamId,
17
+ newTeamName: params.newTeamName
18
+ });
19
+ if (!result.serviceApiKey) {
20
+ throw new Error(
21
+ "API did not return a service API key. The project was created but the key is missing \u2014 check the LangWatch UI."
22
+ );
23
+ }
24
+ const lines = [];
25
+ lines.push(`Project created successfully!
26
+ `);
27
+ lines.push(`**Name**: ${result.name}`);
28
+ lines.push(`**ID**: ${result.id}`);
29
+ lines.push(`**Slug**: ${result.slug}`);
30
+ lines.push(`**Language**: ${result.language}`);
31
+ lines.push(`**Framework**: ${result.framework}`);
32
+ lines.push("");
33
+ lines.push(`**Service API Key**: \`${result.serviceApiKey}\``);
34
+ lines.push(`**Service API Key ID**: ${result.serviceApiKeyId}`);
35
+ lines.push("");
36
+ lines.push(
37
+ "> \u26A0\uFE0F Save the service API key now \u2014 it will not be shown again. Use it as `LANGWATCH_API_KEY` to authenticate project-scoped operations."
38
+ );
39
+ return lines.join("\n");
40
+ }
41
+ export {
42
+ handleCreateProject
43
+ };
44
+ //# sourceMappingURL=create-project-YL345T5L.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createPrompt
3
- } from "./chunk-GELJ2MQR.js";
4
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-7CZQDZ2K.js";
4
+ import "./chunk-DULFP3MK.js";
5
5
  import "./chunk-SAS5OB7F.js";
6
6
 
7
7
  // src/tools/create-prompt.ts
@@ -28,13 +28,11 @@ async function handleCreatePrompt(params) {
28
28
  if (result.handle) lines.push(`**Handle**: ${result.handle}`);
29
29
  lines.push(`**Name**: ${result.name || params.name}`);
30
30
  lines.push(`**Model**: ${params.model}`);
31
- if (result.latestVersionNumber != null)
32
- lines.push(`**Version**: v${result.latestVersionNumber}`);
33
- if (params.tags && params.tags.length > 0)
34
- lines.push(`**Tags**: ${params.tags.join(", ")}`);
31
+ if (result.latestVersionNumber != null) lines.push(`**Version**: v${result.latestVersionNumber}`);
32
+ if (params.tags && params.tags.length > 0) lines.push(`**Tags**: ${params.tags.join(", ")}`);
35
33
  return lines.join("\n");
36
34
  }
37
35
  export {
38
36
  handleCreatePrompt
39
37
  };
40
- //# sourceMappingURL=create-prompt-BS6QRCUU.js.map
38
+ //# sourceMappingURL=create-prompt-JZQNQ7I3.js.map
@@ -0,0 +1,37 @@
1
+ import {
2
+ createPrompt
3
+ } from "./chunk-7CZQDZ2K.js";
4
+ import "./chunk-DULFP3MK.js";
5
+
6
+ // src/tools/create-prompt.ts
7
+ var HANDLE_PATTERN = /^[a-z0-9_-]+(?:\/[a-z0-9_-]+)?$/;
8
+ function toHandle(name) {
9
+ return name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
10
+ }
11
+ async function handleCreatePrompt(params) {
12
+ const handle = params.handle?.trim() || toHandle(params.name);
13
+ if (!handle || !HANDLE_PATTERN.test(handle)) {
14
+ throw new Error(
15
+ `Invalid prompt handle "${handle || ""}". Handle must match ${HANDLE_PATTERN}. Provide a valid \`handle\` explicitly.`
16
+ );
17
+ }
18
+ const result = await createPrompt({
19
+ handle,
20
+ messages: params.messages,
21
+ model: params.model,
22
+ ...params.tags ? { tags: params.tags } : {}
23
+ });
24
+ const lines = [];
25
+ lines.push("Prompt created successfully!\n");
26
+ if (result.id) lines.push(`**ID**: ${result.id}`);
27
+ if (result.handle) lines.push(`**Handle**: ${result.handle}`);
28
+ lines.push(`**Name**: ${result.name || params.name}`);
29
+ lines.push(`**Model**: ${params.model}`);
30
+ if (result.latestVersionNumber != null) lines.push(`**Version**: v${result.latestVersionNumber}`);
31
+ if (params.tags && params.tags.length > 0) lines.push(`**Tags**: ${params.tags.join(", ")}`);
32
+ return lines.join("\n");
33
+ }
34
+ export {
35
+ handleCreatePrompt
36
+ };
37
+ //# sourceMappingURL=create-prompt-ZUMQHHX7.js.map
@@ -0,0 +1,17 @@
1
+ import {
2
+ createPromptTag
3
+ } from "./chunk-7CZQDZ2K.js";
4
+ import "./chunk-DULFP3MK.js";
5
+
6
+ // src/tools/create-prompt-tag.ts
7
+ async function handleCreatePromptTag(params) {
8
+ await createPromptTag(params.name);
9
+ const lines = [];
10
+ lines.push("Tag created successfully!\n");
11
+ lines.push(`**Name**: ${params.name}`);
12
+ return lines.join("\n");
13
+ }
14
+ export {
15
+ handleCreatePromptTag
16
+ };
17
+ //# sourceMappingURL=create-prompt-tag-CJ5FZ436.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createPromptTag
3
- } from "./chunk-GELJ2MQR.js";
4
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-7CZQDZ2K.js";
4
+ import "./chunk-DULFP3MK.js";
5
5
  import "./chunk-SAS5OB7F.js";
6
6
 
7
7
  // src/tools/create-prompt-tag.ts
@@ -15,4 +15,4 @@ async function handleCreatePromptTag(params) {
15
15
  export {
16
16
  handleCreatePromptTag
17
17
  };
18
- //# sourceMappingURL=create-prompt-tag-FCQ5ELSQ.js.map
18
+ //# sourceMappingURL=create-prompt-tag-JFP2Q3PO.js.map
@@ -0,0 +1,33 @@
1
+ import {
2
+ formatScenarioFields
3
+ } from "./chunk-XUIJYNRJ.js";
4
+ import {
5
+ createScenario
6
+ } from "./chunk-7GETGE6B.js";
7
+ import "./chunk-7CZQDZ2K.js";
8
+ import "./chunk-DULFP3MK.js";
9
+
10
+ // src/tools/create-scenario.ts
11
+ async function handleCreateScenario(params) {
12
+ const result = await createScenario(params);
13
+ const lines = [];
14
+ lines.push("Scenario created successfully!\n");
15
+ lines.push(`**ID**: ${result.id}`);
16
+ lines.push(`**Name**: ${result.name}`);
17
+ lines.push(`**Situation**: ${result.situation}`);
18
+ if (Array.isArray(result.criteria) && result.criteria.length > 0) {
19
+ lines.push(`**Criteria**: ${result.criteria.length} criteria`);
20
+ }
21
+ if (Array.isArray(result.labels) && result.labels.length > 0) {
22
+ lines.push(`**Labels**: ${result.labels.join(", ")}`);
23
+ }
24
+ if (result.testSuiteId) {
25
+ lines.push(`**Test suite**: ${result.testSuiteId}`);
26
+ }
27
+ lines.push(...formatScenarioFields(result.fields));
28
+ return lines.join("\n");
29
+ }
30
+ export {
31
+ handleCreateScenario
32
+ };
33
+ //# sourceMappingURL=create-scenario-CQU2SSFB.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  formatScenarioFields
3
- } from "./chunk-7E4FZIYJ.js";
3
+ } from "./chunk-XUIJYNRJ.js";
4
4
  import {
5
5
  createScenario
6
- } from "./chunk-RVAE2MEA.js";
7
- import "./chunk-GELJ2MQR.js";
8
- import "./chunk-WT4PO4A3.js";
6
+ } from "./chunk-7GETGE6B.js";
7
+ import "./chunk-7CZQDZ2K.js";
8
+ import "./chunk-DULFP3MK.js";
9
9
  import "./chunk-SAS5OB7F.js";
10
10
 
11
11
  // src/tools/create-scenario.ts
@@ -31,4 +31,4 @@ async function handleCreateScenario(params) {
31
31
  export {
32
32
  handleCreateScenario
33
33
  };
34
- //# sourceMappingURL=create-scenario-DRPTPXU3.js.map
34
+ //# sourceMappingURL=create-scenario-S6OWWKJO.js.map
@@ -0,0 +1,36 @@
1
+ import {
2
+ toWireAttachments
3
+ } from "./chunk-U24EACC4.js";
4
+ import {
5
+ formatEvaluatorAttachments,
6
+ formatSuiteFields
7
+ } from "./chunk-6YZUOD34.js";
8
+ import {
9
+ createTestSuite
10
+ } from "./chunk-YCIUEZVK.js";
11
+ import "./chunk-7CZQDZ2K.js";
12
+ import "./chunk-DULFP3MK.js";
13
+
14
+ // src/tools/create-test-suite.ts
15
+ async function handleCreateTestSuite(params) {
16
+ const suite = await createTestSuite({
17
+ name: params.name,
18
+ ...params.fields !== void 0 ? { fields: params.fields } : {},
19
+ ...params.evaluators !== void 0 ? { evaluators: toWireAttachments(params.evaluators) } : {}
20
+ });
21
+ return [
22
+ `Test suite "${suite.name}" created.`,
23
+ "",
24
+ `**ID**: ${suite.id}`,
25
+ `**Slug**: ${suite.slug}`,
26
+ `**View**: ${suite.platformUrl}`,
27
+ ...formatSuiteFields(suite.fields),
28
+ ...formatEvaluatorAttachments(suite.evaluators),
29
+ "",
30
+ `> File scenarios in it with \`platform_create_scenario\` or \`platform_update_scenario\`, passing testSuiteId \`${suite.id}\`${suite.fields && suite.fields.length > 0 ? ` and a value per field under \`fields\`` : ""}.`
31
+ ].join("\n");
32
+ }
33
+ export {
34
+ handleCreateTestSuite
35
+ };
36
+ //# sourceMappingURL=create-test-suite-OLGCAGJA.js.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  toWireAttachments
3
- } from "./chunk-CKNAH5TG.js";
3
+ } from "./chunk-U24EACC4.js";
4
4
  import {
5
5
  formatEvaluatorAttachments,
6
6
  formatSuiteFields
7
- } from "./chunk-UF6XIGYR.js";
7
+ } from "./chunk-6YZUOD34.js";
8
8
  import {
9
9
  createTestSuite
10
- } from "./chunk-6DJDEXET.js";
11
- import "./chunk-GELJ2MQR.js";
12
- import "./chunk-WT4PO4A3.js";
10
+ } from "./chunk-YCIUEZVK.js";
11
+ import "./chunk-7CZQDZ2K.js";
12
+ import "./chunk-DULFP3MK.js";
13
13
  import "./chunk-SAS5OB7F.js";
14
14
 
15
15
  // src/tools/create-test-suite.ts
@@ -34,4 +34,4 @@ async function handleCreateTestSuite(params) {
34
34
  export {
35
35
  handleCreateTestSuite
36
36
  };
37
- //# sourceMappingURL=create-test-suite-ZIZCCFJ4.js.map
37
+ //# sourceMappingURL=create-test-suite-Y7P2RI4L.js.map
@@ -0,0 +1,48 @@
1
+ import {
2
+ createTrigger
3
+ } from "./chunk-HLQJXUR6.js";
4
+ import {
5
+ validateActionParamsForAction
6
+ } from "./chunk-3YLN3ATJ.js";
7
+ import "./chunk-7CZQDZ2K.js";
8
+ import "./chunk-DULFP3MK.js";
9
+
10
+ // src/tools/create-trigger.ts
11
+ function toolError(message) {
12
+ return { content: [{ type: "text", text: `Error: ${message}` }], isError: true };
13
+ }
14
+ async function handleCreateTrigger(params) {
15
+ if (params.actionParams !== void 0) {
16
+ const verdict = validateActionParamsForAction({
17
+ action: params.action,
18
+ actionParams: params.actionParams
19
+ });
20
+ if (!verdict.ok) return toolError(verdict.message);
21
+ }
22
+ let filters;
23
+ if (params.filters) {
24
+ const parsed = parseJsonObject(params.filters);
25
+ if (!parsed) return toolError("filters must be a JSON object");
26
+ filters = parsed;
27
+ }
28
+ const trigger = await createTrigger({ ...params, filters });
29
+ const text = `Trigger "${trigger.name}" created (ID: ${trigger.id}, Kind: ${trigger.kind ?? "AUTOMATION"}, Action: ${trigger.action}).`;
30
+ return { content: [{ type: "text", text }] };
31
+ }
32
+ function parseJsonObject(raw) {
33
+ try {
34
+ const parsed = JSON.parse(raw);
35
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
36
+ return void 0;
37
+ }
38
+ return Object.fromEntries(Object.entries(parsed));
39
+ } catch {
40
+ return void 0;
41
+ }
42
+ }
43
+ export {
44
+ handleCreateTrigger,
45
+ parseJsonObject,
46
+ toolError
47
+ };
48
+ //# sourceMappingURL=create-trigger-4CNBTISJ.js.map
@@ -0,0 +1,49 @@
1
+ import {
2
+ createTrigger
3
+ } from "./chunk-HLQJXUR6.js";
4
+ import {
5
+ validateActionParamsForAction
6
+ } from "./chunk-3YLN3ATJ.js";
7
+ import "./chunk-7CZQDZ2K.js";
8
+ import "./chunk-DULFP3MK.js";
9
+ import "./chunk-SAS5OB7F.js";
10
+
11
+ // src/tools/create-trigger.ts
12
+ function toolError(message) {
13
+ return { content: [{ type: "text", text: `Error: ${message}` }], isError: true };
14
+ }
15
+ async function handleCreateTrigger(params) {
16
+ if (params.actionParams !== void 0) {
17
+ const verdict = validateActionParamsForAction({
18
+ action: params.action,
19
+ actionParams: params.actionParams
20
+ });
21
+ if (!verdict.ok) return toolError(verdict.message);
22
+ }
23
+ let filters;
24
+ if (params.filters) {
25
+ const parsed = parseJsonObject(params.filters);
26
+ if (!parsed) return toolError("filters must be a JSON object");
27
+ filters = parsed;
28
+ }
29
+ const trigger = await createTrigger({ ...params, filters });
30
+ const text = `Trigger "${trigger.name}" created (ID: ${trigger.id}, Kind: ${trigger.kind ?? "AUTOMATION"}, Action: ${trigger.action}).`;
31
+ return { content: [{ type: "text", text }] };
32
+ }
33
+ function parseJsonObject(raw) {
34
+ try {
35
+ const parsed = JSON.parse(raw);
36
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
37
+ return void 0;
38
+ }
39
+ return Object.fromEntries(Object.entries(parsed));
40
+ } catch {
41
+ return void 0;
42
+ }
43
+ }
44
+ export {
45
+ handleCreateTrigger,
46
+ parseJsonObject,
47
+ toolError
48
+ };
49
+ //# sourceMappingURL=create-trigger-RQ653WYF.js.map
@@ -0,0 +1,90 @@
1
+ import {
2
+ createDashboard,
3
+ deleteDashboard,
4
+ deleteWidgetOnDashboard,
5
+ getDashboard,
6
+ listWidgetsOnDashboard,
7
+ updateDashboard
8
+ } from "./chunk-MOCU5XWF.js";
9
+ import "./chunk-7CZQDZ2K.js";
10
+ import "./chunk-DULFP3MK.js";
11
+
12
+ // src/tools/dashboards.ts
13
+ function describeDashboard(dashboard) {
14
+ return [
15
+ `**Name**: ${dashboard.name}`,
16
+ `**ID**: ${dashboard.id}`,
17
+ `**Scope**: ${dashboard.scope}`,
18
+ ...dashboard.description ? [`**Description**: ${dashboard.description}`] : [],
19
+ `**URL**: ${dashboard.platformUrl}`
20
+ ];
21
+ }
22
+ async function handleGetDashboard({
23
+ dashboardId
24
+ }) {
25
+ const dashboard = await getDashboard({ dashboardId });
26
+ return [`# ${dashboard.name}
27
+ `, ...describeDashboard(dashboard)].join("\n");
28
+ }
29
+ async function handleCreateDashboard({ name }) {
30
+ const dashboard = await createDashboard({ name });
31
+ return [
32
+ "Dashboard created.\n",
33
+ ...describeDashboard(dashboard),
34
+ "",
35
+ "> Pass the ID to `add_dashboard_widget` to add a widget to it."
36
+ ].join("\n");
37
+ }
38
+ async function handleRenameDashboard({
39
+ dashboardId,
40
+ name,
41
+ description
42
+ }) {
43
+ if (name === void 0 && description === void 0) {
44
+ throw new Error("Provide at least one of name or description to change.");
45
+ }
46
+ const dashboard = await updateDashboard({
47
+ dashboardId,
48
+ ...name === void 0 ? {} : { name },
49
+ ...description === void 0 ? {} : { description }
50
+ });
51
+ return ["Dashboard updated.\n", ...describeDashboard(dashboard)].join("\n");
52
+ }
53
+ async function handleDeleteDashboard({
54
+ dashboardId
55
+ }) {
56
+ const deleted = await deleteDashboard({ dashboardId });
57
+ return `Dashboard "${deleted.name}" deleted with its widgets (ID: ${deleted.id}).`;
58
+ }
59
+ async function handleListDashboardWidgets({
60
+ dashboardId
61
+ }) {
62
+ const { data: widgets } = await listWidgetsOnDashboard({ dashboardId });
63
+ if (widgets.length === 0) return `Dashboard "${dashboardId}" has no widgets.`;
64
+ return [
65
+ `# Widgets on dashboard ${dashboardId} (${widgets.length} total)
66
+ `,
67
+ ...widgets.flatMap((widget) => [
68
+ `## ${widget.name}`,
69
+ `**ID**: ${widget.id}`,
70
+ `**Queries**: ${widget.definition.queries.map((query) => query.name).join(", ") || "(none)"}`,
71
+ ""
72
+ ])
73
+ ].join("\n");
74
+ }
75
+ async function handleDeleteDashboardWidget({
76
+ dashboardId,
77
+ widgetId
78
+ }) {
79
+ await deleteWidgetOnDashboard({ dashboardId, widgetId });
80
+ return `Widget "${widgetId}" deleted from dashboard "${dashboardId}".`;
81
+ }
82
+ export {
83
+ handleCreateDashboard,
84
+ handleDeleteDashboard,
85
+ handleDeleteDashboardWidget,
86
+ handleGetDashboard,
87
+ handleListDashboardWidgets,
88
+ handleRenameDashboard
89
+ };
90
+ //# sourceMappingURL=dashboards-BA7M6CMO.js.map
@@ -0,0 +1,91 @@
1
+ import {
2
+ createDashboard,
3
+ deleteDashboard,
4
+ deleteWidgetOnDashboard,
5
+ getDashboard,
6
+ listWidgetsOnDashboard,
7
+ updateDashboard
8
+ } from "./chunk-MOCU5XWF.js";
9
+ import "./chunk-7CZQDZ2K.js";
10
+ import "./chunk-DULFP3MK.js";
11
+ import "./chunk-SAS5OB7F.js";
12
+
13
+ // src/tools/dashboards.ts
14
+ function describeDashboard(dashboard) {
15
+ return [
16
+ `**Name**: ${dashboard.name}`,
17
+ `**ID**: ${dashboard.id}`,
18
+ `**Scope**: ${dashboard.scope}`,
19
+ ...dashboard.description ? [`**Description**: ${dashboard.description}`] : [],
20
+ `**URL**: ${dashboard.platformUrl}`
21
+ ];
22
+ }
23
+ async function handleGetDashboard({
24
+ dashboardId
25
+ }) {
26
+ const dashboard = await getDashboard({ dashboardId });
27
+ return [`# ${dashboard.name}
28
+ `, ...describeDashboard(dashboard)].join("\n");
29
+ }
30
+ async function handleCreateDashboard({ name }) {
31
+ const dashboard = await createDashboard({ name });
32
+ return [
33
+ "Dashboard created.\n",
34
+ ...describeDashboard(dashboard),
35
+ "",
36
+ "> Pass the ID to `add_dashboard_widget` to add a widget to it."
37
+ ].join("\n");
38
+ }
39
+ async function handleRenameDashboard({
40
+ dashboardId,
41
+ name,
42
+ description
43
+ }) {
44
+ if (name === void 0 && description === void 0) {
45
+ throw new Error("Provide at least one of name or description to change.");
46
+ }
47
+ const dashboard = await updateDashboard({
48
+ dashboardId,
49
+ ...name === void 0 ? {} : { name },
50
+ ...description === void 0 ? {} : { description }
51
+ });
52
+ return ["Dashboard updated.\n", ...describeDashboard(dashboard)].join("\n");
53
+ }
54
+ async function handleDeleteDashboard({
55
+ dashboardId
56
+ }) {
57
+ const deleted = await deleteDashboard({ dashboardId });
58
+ return `Dashboard "${deleted.name}" deleted with its widgets (ID: ${deleted.id}).`;
59
+ }
60
+ async function handleListDashboardWidgets({
61
+ dashboardId
62
+ }) {
63
+ const { data: widgets } = await listWidgetsOnDashboard({ dashboardId });
64
+ if (widgets.length === 0) return `Dashboard "${dashboardId}" has no widgets.`;
65
+ return [
66
+ `# Widgets on dashboard ${dashboardId} (${widgets.length} total)
67
+ `,
68
+ ...widgets.flatMap((widget) => [
69
+ `## ${widget.name}`,
70
+ `**ID**: ${widget.id}`,
71
+ `**Queries**: ${widget.definition.queries.map((query) => query.name).join(", ") || "(none)"}`,
72
+ ""
73
+ ])
74
+ ].join("\n");
75
+ }
76
+ async function handleDeleteDashboardWidget({
77
+ dashboardId,
78
+ widgetId
79
+ }) {
80
+ await deleteWidgetOnDashboard({ dashboardId, widgetId });
81
+ return `Widget "${widgetId}" deleted from dashboard "${dashboardId}".`;
82
+ }
83
+ export {
84
+ handleCreateDashboard,
85
+ handleDeleteDashboard,
86
+ handleDeleteDashboardWidget,
87
+ handleGetDashboard,
88
+ handleListDashboardWidgets,
89
+ handleRenameDashboard
90
+ };
91
+ //# sourceMappingURL=dashboards-U663GUIB.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  deleteAgent
3
- } from "./chunk-EYXMLE5X.js";
4
- import "./chunk-GELJ2MQR.js";
5
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-4RX3G62A.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
6
  import "./chunk-SAS5OB7F.js";
7
7
 
8
8
  // src/tools/delete-agent.ts
@@ -16,4 +16,4 @@ async function handleDeleteAgent(params) {
16
16
  export {
17
17
  handleDeleteAgent
18
18
  };
19
- //# sourceMappingURL=delete-agent-SA4JMUZF.js.map
19
+ //# sourceMappingURL=delete-agent-J2Q4DRZ2.js.map
@@ -0,0 +1,18 @@
1
+ import {
2
+ deleteAgent
3
+ } from "./chunk-EYPJBL7P.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
+
7
+ // src/tools/delete-agent.ts
8
+ async function handleDeleteAgent(params) {
9
+ const result = await deleteAgent(params.id);
10
+ return `Agent archived successfully!
11
+
12
+ **Name**: ${result.name}
13
+ **ID**: ${result.id}`;
14
+ }
15
+ export {
16
+ handleDeleteAgent
17
+ };
18
+ //# sourceMappingURL=delete-agent-ZAU4LTXB.js.map
@@ -0,0 +1,19 @@
1
+ import {
2
+ deleteAnalyticsReport
3
+ } from "./chunk-O2WGVCED.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
+ import "./chunk-SAS5OB7F.js";
7
+
8
+ // src/tools/delete-analytics-report.ts
9
+ async function handleDeleteAnalyticsReport(params) {
10
+ const result = await deleteAnalyticsReport({ reportId: params.reportId });
11
+ return `Analytics Report deleted successfully!
12
+
13
+ **Name**: ${result.name}
14
+ **ID**: ${result.id}`;
15
+ }
16
+ export {
17
+ handleDeleteAnalyticsReport
18
+ };
19
+ //# sourceMappingURL=delete-analytics-report-QK6X7P4S.js.map
@@ -0,0 +1,18 @@
1
+ import {
2
+ deleteAnalyticsReport
3
+ } from "./chunk-O2WGVCED.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
+
7
+ // src/tools/delete-analytics-report.ts
8
+ async function handleDeleteAnalyticsReport(params) {
9
+ const result = await deleteAnalyticsReport({ reportId: params.reportId });
10
+ return `Analytics Report deleted successfully!
11
+
12
+ **Name**: ${result.name}
13
+ **ID**: ${result.id}`;
14
+ }
15
+ export {
16
+ handleDeleteAnalyticsReport
17
+ };
18
+ //# sourceMappingURL=delete-analytics-report-YUYLDHLL.js.map
@@ -0,0 +1,17 @@
1
+ import {
2
+ deleteAnnotation
3
+ } from "./chunk-RFC2SBEX.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
+
7
+ // src/tools/delete-annotation.ts
8
+ async function handleDeleteAnnotation(params) {
9
+ await deleteAnnotation(params.id);
10
+ return `Annotation deleted successfully!
11
+
12
+ **ID**: ${params.id}`;
13
+ }
14
+ export {
15
+ handleDeleteAnnotation
16
+ };
17
+ //# sourceMappingURL=delete-annotation-7X4NYXXM.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  deleteAnnotation
3
- } from "./chunk-SR6QPRIE.js";
4
- import "./chunk-GELJ2MQR.js";
5
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-RFC2SBEX.js";
4
+ import "./chunk-7CZQDZ2K.js";
5
+ import "./chunk-DULFP3MK.js";
6
6
  import "./chunk-SAS5OB7F.js";
7
7
 
8
8
  // src/tools/delete-annotation.ts
@@ -15,4 +15,4 @@ async function handleDeleteAnnotation(params) {
15
15
  export {
16
16
  handleDeleteAnnotation
17
17
  };
18
- //# sourceMappingURL=delete-annotation-X3KKK7QY.js.map
18
+ //# sourceMappingURL=delete-annotation-KJOCDLV3.js.map