@langwatch/mcp-server 2.1.0 → 2.2.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 (415) hide show
  1. package/.gitignore +7 -0
  2. package/.npmignore +41 -0
  3. package/CHANGELOG.md +192 -201
  4. package/CONTRIBUTING.md +10 -0
  5. package/README.md +70 -68
  6. package/dist/add-dashboard-widget-4ZC5UN73.js +50 -0
  7. package/dist/add-dashboard-widget-ACC6QYBG.js +49 -0
  8. package/dist/archive-project-KWFM3I5Z.js +19 -0
  9. package/dist/{archive-project-W3IKI7UL.js → archive-project-SPVHXK6A.js} +4 -4
  10. package/dist/{archive-run-plan-474OKHHU.js → archive-run-plan-65QN3XRX.js} +4 -4
  11. package/dist/archive-run-plan-Z4SYE6BP.js +15 -0
  12. package/dist/{archive-scenario-V5UNYK26.js → archive-scenario-A6QV5LOW.js} +4 -4
  13. package/dist/archive-scenario-FXEYQNEH.js +19 -0
  14. package/dist/archive-test-suite-5ADQ3KPQ.js +15 -0
  15. package/dist/{archive-test-suite-O7FLDMXK.js → archive-test-suite-NKZDZY3D.js} +4 -4
  16. package/dist/assign-prompt-tag-5IUZXJ2T.js +23 -0
  17. package/dist/{assign-prompt-tag-Q46WRB6P.js → assign-prompt-tag-HBZLBIFD.js} +8 -4
  18. package/dist/{chunk-OJLYYJWI.js → chunk-3OCG3QPU.js} +7 -10
  19. package/dist/chunk-3YLN3ATJ.js +241 -0
  20. package/dist/chunk-5FNCQRCX.js +91 -0
  21. package/dist/{chunk-UF6XIGYR.js → chunk-6YZUOD34.js} +2 -5
  22. package/dist/{chunk-WVI5CJ6S.js → chunk-7AQLPVFL.js} +2 -2
  23. package/dist/chunk-7VNSRCXO.js +129 -0
  24. package/dist/{chunk-G4ZAZTZW.js → chunk-B4J3PJLX.js} +11 -10
  25. package/dist/{chunk-ZXKLPC2E.js → chunk-BIIKE3EI.js} +1 -1
  26. package/dist/{chunk-37SMPMQS.js → chunk-DMM3JQ42.js} +7 -2
  27. package/dist/{chunk-NUFPTHKU.js → chunk-FOKVY3BK.js} +1 -1
  28. package/dist/{chunk-WT4PO4A3.js → chunk-H6WGMG2T.js} +10 -7
  29. package/dist/{chunk-EYXMLE5X.js → chunk-HGELNIVY.js} +56 -47
  30. package/dist/{chunk-UJPXFA26.js → chunk-HHMNZAPD.js} +101 -74
  31. package/dist/{chunk-RVAE2MEA.js → chunk-I7ATIZED.js} +7 -7
  32. package/dist/{chunk-S4GVX36W.js → chunk-ILZDO25L.js} +7 -10
  33. package/dist/{chunk-QRO35SOM.js → chunk-J7PQKBLD.js} +652 -528
  34. package/dist/{chunk-SR6QPRIE.js → chunk-JRJPH75H.js} +7 -13
  35. package/dist/chunk-K2I7Z3LZ.js +28 -0
  36. package/dist/{chunk-UFOYFYI7.js → chunk-NKMTIHIJ.js} +6 -9
  37. package/dist/{chunk-HV4DWKBI.js → chunk-O7EMWEVJ.js} +2 -4
  38. package/dist/{chunk-56OGTS24.js → chunk-PTDR56Z3.js} +4 -11
  39. package/dist/{chunk-JR6DJZOU.js → chunk-RABYBFX5.js} +4 -10
  40. package/dist/chunk-SUPUUC4W.js +64 -0
  41. package/dist/{chunk-JTQJRNFJ.js → chunk-SXFC3FNH.js} +4 -4
  42. package/dist/{chunk-CKNAH5TG.js → chunk-U24EACC4.js} +3 -10
  43. package/dist/chunk-UNJM3BIL.js +21 -0
  44. package/dist/{chunk-QAMP3CGR.js → chunk-UTJCWXPZ.js} +4 -4
  45. package/dist/chunk-UWLE5T2F.js +312 -0
  46. package/dist/{chunk-6DJDEXET.js → chunk-VMWJD732.js} +6 -12
  47. package/dist/{chunk-7E4FZIYJ.js → chunk-XUIJYNRJ.js} +1 -1
  48. package/dist/chunk-Y34DHR5K.js +67 -0
  49. package/dist/chunk-YCARO42Z.js +516 -0
  50. package/dist/config-EAKW6F26.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-AYZ3LB3V.js} +4 -4
  54. package/dist/create-agent-S5ZBCEFT.js +23 -0
  55. package/dist/create-annotation-LHNCLHYP.js +29 -0
  56. package/dist/{create-annotation-EUXXQ6NS.js → create-annotation-VUSXULQK.js} +10 -5
  57. package/dist/{create-api-key-BGBB76JX.js → create-api-key-NNYKARMG.js} +5 -7
  58. package/dist/create-api-key-T4KSNPKB.js +24 -0
  59. package/dist/create-dashboard-DHVFMEU4.js +18 -0
  60. package/dist/{create-dashboard-Z76AIPLS.js → create-dashboard-WTKKS5Z6.js} +4 -4
  61. package/dist/{create-dataset-FD5VAXU4.js → create-dataset-2MC4SD4O.js} +6 -6
  62. package/dist/create-dataset-LUP5PVDM.js +22 -0
  63. package/dist/create-dataset-records-NSKBZP3G.js +20 -0
  64. package/dist/{create-dataset-records-WQUXXOHI.js → create-dataset-records-W4GLN2FV.js} +5 -7
  65. package/dist/{create-evaluator-6NV33Z52.js → create-evaluator-643G6LXL.js} +4 -4
  66. package/dist/create-evaluator-HMTYO5SS.js +27 -0
  67. package/dist/create-mcp-server.cjs +9513 -0
  68. package/dist/create-mcp-server.js +2647 -10
  69. package/dist/create-project-6N7PIYRY.js +44 -0
  70. package/dist/{create-project-ZQ7TFIO2.js → create-project-KAIC46UY.js} +4 -4
  71. package/dist/{create-prompt-BS6QRCUU.js → create-prompt-E67LXIYT.js} +5 -7
  72. package/dist/create-prompt-PKJ7EDRR.js +37 -0
  73. package/dist/create-prompt-tag-4YO3FSJ3.js +17 -0
  74. package/dist/{create-prompt-tag-FCQ5ELSQ.js → create-prompt-tag-OPQUEXWB.js} +3 -3
  75. package/dist/create-scenario-5PJBMAXO.js +33 -0
  76. package/dist/{create-scenario-DRPTPXU3.js → create-scenario-UEM77OE7.js} +5 -5
  77. package/dist/{create-test-suite-ZIZCCFJ4.js → create-test-suite-4IPXVSFQ.js} +6 -6
  78. package/dist/create-test-suite-SZEPVXSE.js +36 -0
  79. package/dist/create-trigger-5HZSCRAN.js +49 -0
  80. package/dist/create-trigger-PRELMT6J.js +48 -0
  81. package/dist/delete-agent-JUIZWAXG.js +18 -0
  82. package/dist/{delete-agent-SA4JMUZF.js → delete-agent-QMEK3XHK.js} +4 -4
  83. package/dist/delete-annotation-HY3O2OGR.js +17 -0
  84. package/dist/{delete-annotation-X3KKK7QY.js → delete-annotation-VKIQWUYW.js} +4 -4
  85. package/dist/delete-dashboard-76N66XXL.js +18 -0
  86. package/dist/{delete-dashboard-LYMRPF27.js → delete-dashboard-JVIVHNJM.js} +4 -4
  87. package/dist/delete-dataset-HQCR66MG.js +18 -0
  88. package/dist/{delete-dataset-W6EZ44HY.js → delete-dataset-WKRUW4FP.js} +5 -7
  89. package/dist/{delete-dataset-records-7CNOTALB.js → delete-dataset-records-C2IQFFVQ.js} +5 -7
  90. package/dist/delete-dataset-records-SDUHQLLM.js +19 -0
  91. package/dist/delete-evaluator-4SNSCLEE.js +16 -0
  92. package/dist/delete-evaluator-QP3QHTLN.js +15 -0
  93. package/dist/delete-prompt-tag-NZ4JQMYG.js +17 -0
  94. package/dist/{delete-prompt-tag-QB3OCZUV.js → delete-prompt-tag-YYQ4VMAD.js} +3 -3
  95. package/dist/{delete-workflow-NG2VXYYM.js → delete-workflow-5J46T73T.js} +4 -4
  96. package/dist/delete-workflow-JSWABL5F.js +17 -0
  97. package/dist/discover-evaluator-schema-UHWA5HVL.js +120 -0
  98. package/dist/discover-evaluator-schema-XKCLLCB3.js +118 -0
  99. package/dist/discover-scenario-schema-NOJY6S7E.js +137 -0
  100. package/dist/{discover-scenario-schema-W7KBXA4J.js → discover-scenario-schema-OOFIQKOG.js} +37 -17
  101. package/dist/{discover-schema-L6QDPON3.js → discover-schema-55YJBFGQ.js} +181 -186
  102. package/dist/discover-schema-A33SLMXW.js +442 -0
  103. package/dist/get-agent-LJQX7OF4.js +69 -0
  104. package/dist/{get-agent-7THF7HCU.js → get-agent-OTIYUFZA.js} +15 -11
  105. package/dist/get-analytics-DCS72353.js +80 -0
  106. package/dist/get-analytics-IQZKJHLW.js +79 -0
  107. package/dist/get-dashboard-5NYJEIX2.js +29 -0
  108. package/dist/{get-dashboard-P4WWVHFU.js → get-dashboard-QMTYDQAZ.js} +4 -4
  109. package/dist/get-dataset-ALSP7RTX.js +64 -0
  110. package/dist/get-dataset-X4B5JDG2.js +63 -0
  111. package/dist/{get-evaluator-RZ44UIN6.js → get-evaluator-ISMC4LLI.js} +4 -4
  112. package/dist/get-evaluator-XEUZGZCH.js +47 -0
  113. package/dist/{get-project-QSQEAB33.js → get-project-5VKROSDH.js} +4 -4
  114. package/dist/get-project-RM6FRCBK.js +26 -0
  115. package/dist/{get-prompt-GVKXF5NL.js → get-prompt-OWXJZHQQ.js} +53 -58
  116. package/dist/get-prompt-W52DY36E.js +94 -0
  117. package/dist/{get-run-plan-NY7J5GRE.js → get-run-plan-BE3M2AUX.js} +7 -9
  118. package/dist/get-run-plan-RUXQ6PAX.js +58 -0
  119. package/dist/get-scenario-RNM7BAX2.js +37 -0
  120. package/dist/{get-scenario-Q3LLQE4T.js → get-scenario-YM4ODWW6.js} +5 -5
  121. package/dist/get-simulation-run-6GIATQE5.js +69 -0
  122. package/dist/{get-simulation-run-WINEYDMK.js → get-simulation-run-LCFSMPGQ.js} +26 -22
  123. package/dist/{get-test-suite-4HKA7OKS.js → get-test-suite-GC2O7YH6.js} +5 -5
  124. package/dist/get-test-suite-P5LJ6VLF.js +48 -0
  125. package/dist/get-trace-KBRVV4NN.js +45 -0
  126. package/dist/{get-trace-RCUV7N4O.js → get-trace-SEF3FMR5.js} +11 -13
  127. package/dist/get-workflow-7PVED7JE.js +25 -0
  128. package/dist/{get-workflow-EEOC7Y45.js → get-workflow-YXULW4GC.js} +4 -4
  129. package/dist/{http-security-EU3CHTY7.js → http-security-DNLBNQZL.js} +2 -2
  130. package/dist/{http-server-WCDUARTH.js → http-server-IR4QOS43.js} +4071 -347
  131. package/dist/index.js +58671 -37983
  132. package/dist/langwatch-api-annotations-6SA4OB4C.js +17 -0
  133. package/dist/{langwatch-api-annotations-6DHVZWUK.js → langwatch-api-annotations-TBHLCQ5R.js} +4 -4
  134. package/dist/langwatch-api-dashboards-6EO2VVZW.js +17 -0
  135. package/dist/{langwatch-api-dashboards-2KJL2M42.js → langwatch-api-dashboards-NHU5BZD7.js} +4 -4
  136. package/dist/langwatch-api-monitors-CBF3FGIM.js +47 -0
  137. package/dist/{langwatch-api-monitors-6ISFJ7WX.js → langwatch-api-monitors-YNWA2M5Y.js} +11 -16
  138. package/dist/langwatch-api-secrets-ADTOJELP.js +56 -0
  139. package/dist/langwatch-api-secrets-RNFO4LF2.js +55 -0
  140. package/dist/langwatch-api-triggers-KQDQC6L5.js +22 -0
  141. package/dist/langwatch-api-triggers-QS7HDIVW.js +23 -0
  142. package/dist/{langwatch-api-workflows-6UJL5U4Z.js → langwatch-api-workflows-OKC4FXIF.js} +4 -4
  143. package/dist/langwatch-api-workflows-XGJE6SR5.js +15 -0
  144. package/dist/{list-agents-AMVDQPQL.js → list-agents-HVYWEQMI.js} +4 -4
  145. package/dist/list-agents-RBAOCF53.js +42 -0
  146. package/dist/list-annotations-HJH4NBLD.js +38 -0
  147. package/dist/{list-annotations-6PR5NLIC.js → list-annotations-J4UAHSUN.js} +10 -5
  148. package/dist/{list-api-keys-GVPNBIHQ.js → list-api-keys-7UTJRZDG.js} +10 -5
  149. package/dist/list-api-keys-A2PMV435.js +42 -0
  150. package/dist/list-dashboard-boards-OPWROHMG.js +33 -0
  151. package/dist/list-dashboard-boards-U2GJ7GC5.js +34 -0
  152. package/dist/{list-dashboards-Z3BZKDGF.js → list-dashboards-ROSYFLDQ.js} +4 -4
  153. package/dist/list-dashboards-RQ635ZU7.js +32 -0
  154. package/dist/{list-dataset-records-O67HZ35Y.js → list-dataset-records-M5TKA6LK.js} +14 -10
  155. package/dist/list-dataset-records-WFM7F33C.js +43 -0
  156. package/dist/{list-datasets-WXZL6UMP.js → list-datasets-B5X4P7BQ.js} +9 -13
  157. package/dist/list-datasets-THUKQHPX.js +56 -0
  158. package/dist/{list-evaluators-PAX72WCN.js → list-evaluators-MYH2OVCI.js} +5 -7
  159. package/dist/list-evaluators-NLVWF6K7.js +32 -0
  160. package/dist/{list-model-providers-VVLZMLCX.js → list-model-providers-3JUGP4YI.js} +4 -4
  161. package/dist/list-model-providers-H3XKORFO.js +35 -0
  162. package/dist/{list-projects-AQVI6SUK.js → list-projects-6EJ5YYEW.js} +5 -7
  163. package/dist/list-projects-YNNSRMLC.js +40 -0
  164. package/dist/{list-prompt-tags-WZFBJOHG.js → list-prompt-tags-NVFQO6WX.js} +3 -3
  165. package/dist/list-prompt-tags-XUQTTAH4.js +23 -0
  166. package/dist/{list-prompts-BQOHRHYT.js → list-prompts-HSIMMHTF.js} +4 -6
  167. package/dist/list-prompts-IRI6AIXO.js +30 -0
  168. package/dist/{list-run-plans-UBAU2DGH.js → list-run-plans-PX2XI6EK.js} +5 -5
  169. package/dist/list-run-plans-QALLCN2K.js +45 -0
  170. package/dist/{list-scenarios-MS4IUIVM.js → list-scenarios-QZRPVHS4.js} +13 -11
  171. package/dist/list-scenarios-SSJQEMJP.js +45 -0
  172. package/dist/list-simulation-runs-KNOLGMDV.js +53 -0
  173. package/dist/{list-simulation-runs-D6YF4ZOU.js → list-simulation-runs-OEADLLQR.js} +12 -8
  174. package/dist/list-test-suites-ANAQBLDG.js +34 -0
  175. package/dist/{list-test-suites-L7R2O6DR.js → list-test-suites-N4WVLBKK.js} +4 -4
  176. package/dist/list-trigger-fires-JV3WFYYG.js +19 -0
  177. package/dist/list-trigger-fires-WTW4DVIW.js +20 -0
  178. package/dist/list-triggers-SQNIG35Q.js +45 -0
  179. package/dist/list-triggers-V4Y356AK.js +46 -0
  180. package/dist/{list-workflows-6MV4XJHF.js → list-workflows-IMSX7SXU.js} +5 -7
  181. package/dist/list-workflows-ZHTX5LCL.js +33 -0
  182. package/dist/{rename-prompt-tag-K5LQ4CY6.js → rename-prompt-tag-IQI7MHOI.js} +3 -3
  183. package/dist/rename-prompt-tag-PA2BRIE6.js +18 -0
  184. package/dist/{rename-test-suite-NTYHAO5X.js → rename-test-suite-4J7UX5S2.js} +4 -4
  185. package/dist/rename-test-suite-NNVLMLKY.js +20 -0
  186. package/dist/report-issue-AS34ZMJF.js +898 -0
  187. package/dist/{report-issue-RHZZ33IS.js → report-issue-DCZFLGDO.js} +81 -67
  188. package/dist/{rerun-run-plan-MUDWJBE4.js → rerun-run-plan-TG2V4WM4.js} +5 -5
  189. package/dist/rerun-run-plan-ZI5OY3VA.js +21 -0
  190. package/dist/revoke-api-key-3J3ZA4UB.js +15 -0
  191. package/dist/{revoke-api-key-6LAZ3QZZ.js → revoke-api-key-SFMEFWJC.js} +4 -4
  192. package/dist/run-agent-W4VJP72Z.js +75 -0
  193. package/dist/run-agent-YNV6ZHW4.js +74 -0
  194. package/dist/run-plan-6C77GWG4.js +38 -0
  195. package/dist/{run-plan-T4ZYOZGA.js → run-plan-PAARQSI4.js} +7 -7
  196. package/dist/run-query-KJDH544C.js +47 -0
  197. package/dist/run-query-T4QW2Z5O.js +46 -0
  198. package/dist/{run-test-suite-L4MZ7G4D.js → run-test-suite-SQJELEZX.js} +6 -6
  199. package/dist/run-test-suite-STB6NUJM.js +25 -0
  200. package/dist/{run-workflow-DFIS23AP.js → run-workflow-D6PQNBI6.js} +4 -4
  201. package/dist/run-workflow-SP32SO5M.js +36 -0
  202. package/dist/search-traces-HCBGOG6R.js +170 -0
  203. package/dist/search-traces-HSTQ6WTQ.js +171 -0
  204. package/dist/{set-model-provider-XRNMFOVR.js → set-model-provider-GF7NXUJA.js} +4 -4
  205. package/dist/set-model-provider-KDQ7C4EZ.js +33 -0
  206. package/dist/{update-agent-DUWNYBNA.js → update-agent-DWG43T2P.js} +4 -4
  207. package/dist/update-agent-MXNOBS4H.js +20 -0
  208. package/dist/update-dashboard-widget-CJKJLCDY.js +71 -0
  209. package/dist/update-dashboard-widget-CYQDS2NR.js +70 -0
  210. package/dist/update-dataset-DQH3OHOU.js +22 -0
  211. package/dist/{update-dataset-YSOMDCOB.js → update-dataset-SQZ6T4WX.js} +6 -6
  212. package/dist/{update-dataset-record-DEA2ITYR.js → update-dataset-record-3AT4IPBC.js} +4 -4
  213. package/dist/update-dataset-record-7PLDGTMR.js +19 -0
  214. package/dist/update-evaluator-4LFTKFPT.js +24 -0
  215. package/dist/{update-evaluator-NH7Q5GWV.js → update-evaluator-IGTX6PX4.js} +4 -4
  216. package/dist/{update-project-Q26FBSYH.js → update-project-PLJIOZS6.js} +4 -4
  217. package/dist/update-project-QVHSJRUP.js +24 -0
  218. package/dist/update-prompt-GDKRYJI3.js +140 -0
  219. package/dist/{update-prompt-ZQQ2C3KU.js → update-prompt-MY263DYF.js} +27 -29
  220. package/dist/update-scenario-7KA3JDXA.js +34 -0
  221. package/dist/{update-scenario-WUX34JAR.js → update-scenario-MOHRQKAQ.js} +5 -5
  222. package/package.json +35 -39
  223. package/pyproject.toml +8 -8
  224. package/src/config.d.ts +4 -0
  225. package/src/config.ts +20 -29
  226. package/src/create-mcp-server.ts +755 -609
  227. package/src/documentation-fetch.ts +21 -20
  228. package/src/http-security.ts +166 -135
  229. package/src/http-server.ts +189 -224
  230. package/src/index.ts +14 -16
  231. package/src/langwatch-api-agents.ts +18 -21
  232. package/src/langwatch-api-annotations.ts +11 -12
  233. package/src/langwatch-api-api-keys.ts +8 -9
  234. package/src/langwatch-api-boards.ts +46 -0
  235. package/src/langwatch-api-dashboard-widgets.ts +112 -0
  236. package/src/langwatch-api-dashboards.ts +13 -10
  237. package/src/langwatch-api-datasets.ts +98 -32
  238. package/src/langwatch-api-evaluators.ts +13 -19
  239. package/src/langwatch-api-model-providers.ts +4 -4
  240. package/src/langwatch-api-monitors.ts +14 -18
  241. package/src/langwatch-api-projects.ts +27 -9
  242. package/src/langwatch-api-query.ts +114 -0
  243. package/src/langwatch-api-run-plans.ts +12 -29
  244. package/src/langwatch-api-scenarios.ts +9 -11
  245. package/src/langwatch-api-secrets.ts +31 -24
  246. package/src/langwatch-api-simulation-runs.ts +6 -8
  247. package/src/langwatch-api-test-suites.ts +14 -33
  248. package/src/langwatch-api-triggers.ts +96 -34
  249. package/src/langwatch-api-workflows.ts +9 -9
  250. package/src/langwatch-api.ts +108 -124
  251. package/src/public-http-request.ts +21 -12
  252. package/src/schemas/analytics-metrics.ts +3 -15
  253. package/src/schemas/create-dataset.ts +3 -4
  254. package/src/schemas/run-plan.ts +13 -29
  255. package/src/schemas/suite-fields.ts +6 -23
  256. package/src/schemas/triggers.ts +365 -0
  257. package/src/tools/add-dashboard-widget.ts +63 -0
  258. package/src/tools/archive-project.ts +2 -4
  259. package/src/tools/archive-run-plan.ts +2 -4
  260. package/src/tools/archive-scenario.ts +2 -4
  261. package/src/tools/archive-test-suite.ts +2 -4
  262. package/src/tools/assign-prompt-tag.ts +6 -2
  263. package/src/tools/create-agent.ts +1 -1
  264. package/src/tools/create-annotation.ts +7 -2
  265. package/src/tools/create-api-key.ts +4 -6
  266. package/src/tools/create-dashboard.ts +1 -1
  267. package/src/tools/create-dataset-records.ts +4 -8
  268. package/src/tools/create-dataset.ts +5 -7
  269. package/src/tools/create-evaluator.ts +3 -5
  270. package/src/tools/create-project.ts +2 -2
  271. package/src/tools/create-prompt-tag.ts +2 -4
  272. package/src/tools/create-prompt.ts +9 -18
  273. package/src/tools/create-scenario.ts +5 -7
  274. package/src/tools/create-test-suite.ts +4 -9
  275. package/src/tools/create-trigger.ts +55 -0
  276. package/src/tools/dashboard-exists.ts +25 -0
  277. package/src/tools/dashboard-widget-queries.ts +32 -0
  278. package/src/tools/delete-agent.ts +1 -1
  279. package/src/tools/delete-annotation.ts +1 -1
  280. package/src/tools/delete-dashboard.ts +1 -1
  281. package/src/tools/delete-dataset-records.ts +4 -8
  282. package/src/tools/delete-dataset.ts +3 -7
  283. package/src/tools/delete-evaluator.ts +4 -6
  284. package/src/tools/delete-prompt-tag.ts +2 -4
  285. package/src/tools/delete-workflow.ts +1 -1
  286. package/src/tools/discover-evaluator-schema.ts +34 -25
  287. package/src/tools/discover-scenario-schema.ts +41 -21
  288. package/src/tools/discover-schema.ts +149 -27
  289. package/src/tools/experiment-run-status.ts +2 -8
  290. package/src/tools/format-dataset-mutation.ts +5 -10
  291. package/src/tools/format-run-plan.ts +7 -21
  292. package/src/tools/format-scenario.ts +2 -4
  293. package/src/tools/format-suite-details.ts +6 -12
  294. package/src/tools/get-agent.ts +15 -6
  295. package/src/tools/get-analytics.ts +52 -46
  296. package/src/tools/get-dashboard.ts +1 -1
  297. package/src/tools/get-dataset.ts +34 -16
  298. package/src/tools/get-evaluator.ts +4 -11
  299. package/src/tools/get-experiment-results.ts +219 -186
  300. package/src/tools/get-project.ts +2 -4
  301. package/src/tools/get-prompt.ts +63 -84
  302. package/src/tools/get-run-plan.ts +4 -6
  303. package/src/tools/get-scenario.ts +4 -6
  304. package/src/tools/get-simulation-run.ts +27 -24
  305. package/src/tools/get-test-suite.ts +2 -5
  306. package/src/tools/get-trace.ts +16 -17
  307. package/src/tools/get-workflow.ts +1 -1
  308. package/src/tools/list-agents.ts +1 -1
  309. package/src/tools/list-annotations.ts +8 -5
  310. package/src/tools/list-api-keys.ts +7 -2
  311. package/src/tools/list-dashboard-boards.ts +28 -0
  312. package/src/tools/list-dashboards.ts +1 -1
  313. package/src/tools/list-dataset-records.ts +8 -6
  314. package/src/tools/list-datasets.ts +12 -23
  315. package/src/tools/list-evaluators.ts +4 -8
  316. package/src/tools/list-experiment-runs.ts +5 -9
  317. package/src/tools/list-experiments.ts +5 -11
  318. package/src/tools/list-model-providers.ts +3 -5
  319. package/src/tools/list-projects.ts +2 -4
  320. package/src/tools/list-prompt-tags.ts +3 -3
  321. package/src/tools/list-prompts.ts +4 -8
  322. package/src/tools/list-run-plans.ts +2 -2
  323. package/src/tools/list-scenarios.ts +14 -15
  324. package/src/tools/list-simulation-runs.ts +8 -4
  325. package/src/tools/list-test-suites.ts +1 -1
  326. package/src/tools/list-trigger-fires.ts +17 -0
  327. package/src/tools/list-triggers.ts +39 -0
  328. package/src/tools/list-workflows.ts +2 -4
  329. package/src/tools/rename-prompt-tag.ts +1 -1
  330. package/src/tools/rename-test-suite.ts +2 -5
  331. package/src/tools/report-issue.ts +5 -9
  332. package/src/tools/rerun-run-plan.ts +2 -5
  333. package/src/tools/revoke-api-key.ts +2 -4
  334. package/src/tools/run-agent.ts +29 -26
  335. package/src/tools/run-experiment.ts +36 -37
  336. package/src/tools/run-plan.ts +4 -7
  337. package/src/tools/run-query.ts +47 -0
  338. package/src/tools/run-test-suite.ts +4 -7
  339. package/src/tools/run-workflow.ts +2 -5
  340. package/src/tools/search-traces.ts +161 -47
  341. package/src/tools/set-model-provider.ts +4 -6
  342. package/src/tools/test-agent.ts +2 -2
  343. package/src/tools/update-agent.ts +1 -1
  344. package/src/tools/update-dashboard-widget.ts +97 -0
  345. package/src/tools/update-dataset-record.ts +1 -1
  346. package/src/tools/update-dataset.ts +5 -7
  347. package/src/tools/update-evaluator.ts +3 -5
  348. package/src/tools/update-project.ts +1 -1
  349. package/src/tools/update-prompt.ts +44 -59
  350. package/src/tools/update-scenario.ts +5 -7
  351. package/src/tools/update-test-suite.ts +6 -11
  352. package/src/utils/date-parsing.ts +1 -1
  353. package/src/utils/escape-markdown.ts +3 -8
  354. package/src/utils/format-evaluations.ts +6 -6
  355. package/src/utils/markdown-table.ts +58 -0
  356. package/src/utils/trace-id-shape.ts +20 -0
  357. package/tsconfig.app.json +24 -0
  358. package/tsconfig.json +14 -12
  359. package/vitest.integration.config.js +10 -0
  360. package/vitest.scenario.config.js +9 -0
  361. package/.eslintrc.cjs +0 -36
  362. package/dist/chunk-AN4OUA4D.js +0 -86
  363. package/dist/chunk-GELJ2MQR.js +0 -226
  364. package/dist/chunk-K37ZNPXK.js +0 -24
  365. package/dist/config.d.ts +0 -17
  366. package/dist/create-mcp-server.d.ts +0 -10
  367. package/dist/delete-evaluator-RKYC4TNB.js +0 -16
  368. package/dist/discover-evaluator-schema-ESSHQGPY.js +0 -1912
  369. package/dist/get-analytics-R6AZD3AW.js +0 -73
  370. package/dist/get-dataset-AKTYSQDI.js +0 -49
  371. package/dist/index.d.ts +0 -2
  372. package/dist/langwatch-api-secrets-OEBD6GBU.js +0 -41
  373. package/dist/langwatch-api-triggers-5E6DDGX6.js +0 -31
  374. package/dist/run-agent-CAGWGTYT.js +0 -72
  375. package/dist/search-traces-4XTJYXIK.js +0 -79
  376. package/src/__tests__/agent-tools.unit.test.ts +0 -257
  377. package/src/__tests__/all-tools.integration.test.ts +0 -1872
  378. package/src/__tests__/config.unit.test.ts +0 -202
  379. package/src/__tests__/datasets.integration.test.ts +0 -620
  380. package/src/__tests__/datasets.unit.test.ts +0 -244
  381. package/src/__tests__/date-parsing.unit.test.ts +0 -78
  382. package/src/__tests__/discover-evaluator-schema.unit.test.ts +0 -89
  383. package/src/__tests__/discover-schema.unit.test.ts +0 -118
  384. package/src/__tests__/docker.integration.test.ts +0 -318
  385. package/src/__tests__/documentation-fetch-security.integration.test.ts +0 -182
  386. package/src/__tests__/evaluator-tools.unit.test.ts +0 -262
  387. package/src/__tests__/experiment-list-tools.unit.test.ts +0 -157
  388. package/src/__tests__/experiment-status.unit.test.ts +0 -194
  389. package/src/__tests__/feature-map-tool-drift.unit.test.ts +0 -93
  390. package/src/__tests__/get-experiment-results.unit.test.ts +0 -313
  391. package/src/__tests__/http-security-origin.unit.test.ts +0 -97
  392. package/src/__tests__/http-security-sessions.unit.test.ts +0 -209
  393. package/src/__tests__/http-security-verifier.unit.test.ts +0 -248
  394. package/src/__tests__/http-server-allocation.integration.test.ts +0 -279
  395. package/src/__tests__/http-server-origin.integration.test.ts +0 -169
  396. package/src/__tests__/http-server-session-auth.integration.test.ts +0 -341
  397. package/src/__tests__/http-transport.integration.test.ts +0 -395
  398. package/src/__tests__/integration.integration.test.ts +0 -284
  399. package/src/__tests__/langwatch-api.unit.test.ts +0 -661
  400. package/src/__tests__/model-provider-tools.unit.test.ts +0 -190
  401. package/src/__tests__/project-api-key-tools.unit.test.ts +0 -451
  402. package/src/__tests__/prompt-response-types.unit.test.ts +0 -51
  403. package/src/__tests__/prompts.integration.test.ts +0 -736
  404. package/src/__tests__/public-http-request-security.integration.test.ts +0 -118
  405. package/src/__tests__/report-issue.integration.test.ts +0 -147
  406. package/src/__tests__/run-plan-tools.unit.test.ts +0 -565
  407. package/src/__tests__/scenario-tools.integration.test.ts +0 -286
  408. package/src/__tests__/scenario-tools.unit.test.ts +0 -207
  409. package/src/__tests__/schemas.unit.test.ts +0 -85
  410. package/src/__tests__/simulation-run-tools.unit.test.ts +0 -116
  411. package/src/__tests__/support/http-server-harness.ts +0 -138
  412. package/src/__tests__/test-suite-tools.unit.test.ts +0 -615
  413. package/src/__tests__/tools.integration.test.ts +0 -896
  414. package/src/schemas/filter-fields.ts +0 -119
  415. package/src/schemas/index.ts +0 -9
package/CONTRIBUTING.md CHANGED
@@ -13,18 +13,21 @@ Thank you for your interest in contributing to the LangWatch MCP Server! This gu
13
13
  ### Getting Started
14
14
 
15
15
  1. **Clone the repository and navigate to the MCP server directory:**
16
+
16
17
  ```bash
17
18
  git clone https://github.com/langwatch/langwatch.git
18
19
  cd langwatch/mcp/typescript
19
20
  ```
20
21
 
21
22
  2. **Install dependencies and build the MCP server:**
23
+
22
24
  ```bash
23
25
  pnpm install
24
26
  pnpm run build
25
27
  ```
26
28
 
27
29
  3. **Configure environment variables:**
30
+
28
31
  ```bash
29
32
  cp .env.example .env
30
33
  ```
@@ -43,12 +46,15 @@ Thank you for your interest in contributing to the LangWatch MCP Server! This gu
43
46
  This project follows the **[Agent Testing Pyramid](https://scenario.langwatch.ai/best-practices/the-agent-testing-pyramid/)** methodology, which provides a structured approach to testing AI agents across three layers:
44
47
 
45
48
  ### 1. Unit Tests (Foundation)
49
+
46
50
  Traditional software tests for deterministic components like API connections, data pipelines, and error handling.
47
51
 
48
52
  ### 2. Evals & Optimization (Middle Layer)
53
+
49
54
  Component-level evaluation and optimization of probabilistic AI components, including prompt effectiveness and retrieval accuracy.
50
55
 
51
56
  ### 3. Simulations (Peak)
57
+
52
58
  End-to-end testing that validates the complete agent behavior in realistic scenarios.
53
59
 
54
60
  ## Running Tests
@@ -63,6 +69,7 @@ code tests/evaluations.ipynb
63
69
  ```
64
70
 
65
71
  The notebook contains lightweight tests that directly test the MCP server with a "mocked" coding agent on single files. These are useful for:
72
+
66
73
  - Quick validation of MCP tool functionality
67
74
  - Testing individual instrumentation patterns
68
75
  - Rapid prototyping of new features
@@ -76,12 +83,14 @@ pnpm test
76
83
  ```
77
84
 
78
85
  This runs full simulation tests using the Scenario framework, which:
86
+
79
87
  - Launches actual Claude Code sessions
80
88
  - Uses the MCP server in a real development environment
81
89
  - Tests complete workflows on entire codebases
82
90
  - Validates that the agent can successfully instrument various AI frameworks (OpenAI, LangChain, DSPy, etc.)
83
91
 
84
92
  When tests run successfully, you'll see:
93
+
85
94
  - LangWatch Scenario interface opening
86
95
  - Terminal output showing Claude Code using MCP tools
87
96
  - Validation of code instrumentation at the end of each scenario
@@ -89,6 +98,7 @@ When tests run successfully, you'll see:
89
98
  ## Questions?
90
99
 
91
100
  If you encounter any issues or have questions about the setup, please:
101
+
92
102
  - Check existing GitHub issues
93
103
  - Create a new issue with detailed reproduction steps
94
104
  - Join our Discord community for real-time support
package/README.md CHANGED
@@ -22,15 +22,15 @@ In stdio mode the API key is required for observability and prompt tools, and do
22
22
 
23
23
  ## Configuration
24
24
 
25
- | Env Var | CLI Arg | Description |
26
- |---------|---------|-------------|
27
- | `LANGWATCH_API_KEY` | `--apiKey` | API key for authentication |
28
- | `LANGWATCH_ENDPOINT` | `--endpoint` | API endpoint (default: `https://app.langwatch.ai`) |
29
- | | `--http` | Serve over HTTP and SSE instead of stdio |
30
- | | `--port` | HTTP port (default: `3000`) |
31
- | `LANGWATCH_MCP_HTTP_HOST` | `--host` | HTTP listen address (default: `127.0.0.1`) |
32
- | `LANGWATCH_MCP_ALLOWED_ORIGINS` | `--allowedOrigin` | Browser origins allowed to call the HTTP server |
33
- | `LANGWATCH_MCP_TRUST_PROXY` | | Use `X-Forwarded-For` as the rate limit key (default: off) |
25
+ | Env Var | CLI Arg | Description |
26
+ | ------------------------------- | ----------------- | ---------------------------------------------------------- |
27
+ | `LANGWATCH_API_KEY` | `--apiKey` | API key for authentication |
28
+ | `LANGWATCH_ENDPOINT` | `--endpoint` | API endpoint (default: `https://app.langwatch.ai`) |
29
+ | | `--http` | Serve over HTTP and SSE instead of stdio |
30
+ | | `--port` | HTTP port (default: `3000`) |
31
+ | `LANGWATCH_MCP_HTTP_HOST` | `--host` | HTTP listen address (default: `127.0.0.1`) |
32
+ | `LANGWATCH_MCP_ALLOWED_ORIGINS` | `--allowedOrigin` | Browser origins allowed to call the HTTP server |
33
+ | `LANGWATCH_MCP_TRUST_PROXY` | | Use `X-Forwarded-For` as the rate limit key (default: off) |
34
34
 
35
35
  ### HTTP mode
36
36
 
@@ -85,51 +85,51 @@ gets in. A spoofable rate limit does not let anyone authenticate.
85
85
 
86
86
  ### Documentation
87
87
 
88
- | Tool | Description |
89
- |------|-------------|
90
- | `fetch_langwatch_docs` | Fetch LangWatch integration docs |
91
- | `fetch_scenario_docs` | Fetch Scenario agent testing docs |
88
+ | Tool | Description |
89
+ | ---------------------- | --------------------------------- |
90
+ | `fetch_langwatch_docs` | Fetch LangWatch integration docs |
91
+ | `fetch_scenario_docs` | Fetch Scenario agent testing docs |
92
92
 
93
93
  ### Observability (requires API key)
94
94
 
95
- | Tool | Description |
96
- |------|-------------|
95
+ | Tool | Description |
96
+ | ----------------- | ------------------------------------------------------------ |
97
97
  | `discover_schema` | Explore available filters, metrics, aggregations, and groups |
98
- | `search_traces` | Search traces with filters, text query, and date range |
99
- | `get_trace` | Get full trace details with AI-readable formatting |
100
- | `get_analytics` | Query timeseries analytics data |
98
+ | `search_traces` | Search traces with filters, text query, and date range |
99
+ | `get_trace` | Get full trace details with AI-readable formatting |
100
+ | `get_analytics` | Query timeseries analytics data |
101
101
 
102
102
  ### Prompts (requires API key)
103
103
 
104
- | Tool | Description |
105
- |------|-------------|
106
- | `platform_list_prompts` | List all prompts |
107
- | `platform_get_prompt` | Get prompt with messages and version history |
108
- | `platform_create_prompt` | Create a new prompt |
109
- | `platform_update_prompt` | Update prompt or create new version |
104
+ | Tool | Description |
105
+ | ------------------------ | -------------------------------------------- |
106
+ | `platform_list_prompts` | List all prompts |
107
+ | `platform_get_prompt` | Get prompt with messages and version history |
108
+ | `platform_create_prompt` | Create a new prompt |
109
+ | `platform_update_prompt` | Update prompt or create new version |
110
110
 
111
111
  ### Datasets (requires API key)
112
112
 
113
- | Tool | Description |
114
- |------|-------------|
115
- | `platform_list_datasets` | List all datasets with record counts |
116
- | `platform_get_dataset` | Get dataset metadata, columns, and record preview |
117
- | `platform_create_dataset` | Create a new dataset with optional column definitions |
118
- | `platform_update_dataset` | Update dataset name or column types |
119
- | `platform_delete_dataset` | Archive a dataset |
120
- | `platform_create_dataset_records` | Add records to a dataset (max 1000 per call) |
121
- | `platform_update_dataset_record` | Update a single record |
122
- | `platform_delete_dataset_records` | Delete records by IDs (max 1000 per call) |
113
+ | Tool | Description |
114
+ | --------------------------------- | ----------------------------------------------------- |
115
+ | `platform_list_datasets` | List all datasets with record counts |
116
+ | `platform_get_dataset` | Get dataset metadata, columns, and record preview |
117
+ | `platform_create_dataset` | Create a new dataset with optional column definitions |
118
+ | `platform_update_dataset` | Update dataset name or column types |
119
+ | `platform_delete_dataset` | Archive a dataset |
120
+ | `platform_create_dataset_records` | Add records to a dataset (max 1000 per call) |
121
+ | `platform_update_dataset_record` | Update a single record |
122
+ | `platform_delete_dataset_records` | Delete records by IDs (max 1000 per call) |
123
123
 
124
124
  ### Scenarios (requires API key)
125
125
 
126
- | Tool | Description |
127
- |------|-------------|
128
- | `platform_list_scenarios` | List all scenarios, or only the ones filed in a test suite |
129
- | `platform_get_scenario` | Get scenario details |
130
- | `platform_create_scenario` | Create a new scenario, optionally filed in a test suite |
131
- | `platform_update_scenario` | Update a scenario, or file it in another test suite |
132
- | `platform_archive_scenario` | Archive a scenario |
126
+ | Tool | Description |
127
+ | --------------------------- | ---------------------------------------------------------- |
128
+ | `platform_list_scenarios` | List all scenarios, or only the ones filed in a test suite |
129
+ | `platform_get_scenario` | Get scenario details |
130
+ | `platform_create_scenario` | Create a new scenario, optionally filed in a test suite |
131
+ | `platform_update_scenario` | Update a scenario, or file it in another test suite |
132
+ | `platform_archive_scenario` | Archive a scenario |
133
133
 
134
134
  ### Test suites and run plans (requires API key)
135
135
 
@@ -138,42 +138,42 @@ name identifies it: running a name that exists replaces that plan's
138
138
  configuration, running a new name creates the plan. Running a test suite is
139
139
  sugar over a run plan, and creates or joins the plan `<suite name> <target name>`.
140
140
 
141
- | Tool | Description |
142
- |------|-------------|
143
- | `platform_run_plan` | Run scenarios against targets, by plan name |
144
- | `platform_list_run_plans` | List the run plans of the project |
145
- | `platform_get_run_plan` | Get the full configuration of a run plan |
146
- | `platform_rerun_run_plan` | Run a plan again with the configuration it holds |
147
- | `platform_archive_run_plan` | Archive a run plan |
148
- | `platform_list_test_suites` | List the test suites of the project |
149
- | `platform_create_test_suite` | Create a test suite |
150
- | `platform_get_test_suite` | Get a test suite and the scenarios filed in it |
151
- | `platform_rename_test_suite` | Rename a test suite |
141
+ | Tool | Description |
142
+ | ----------------------------- | -------------------------------------------------- |
143
+ | `platform_run_plan` | Run scenarios against targets, by plan name |
144
+ | `platform_list_run_plans` | List the run plans of the project |
145
+ | `platform_get_run_plan` | Get the full configuration of a run plan |
146
+ | `platform_rerun_run_plan` | Run a plan again with the configuration it holds |
147
+ | `platform_archive_run_plan` | Archive a run plan |
148
+ | `platform_list_test_suites` | List the test suites of the project |
149
+ | `platform_create_test_suite` | Create a test suite |
150
+ | `platform_get_test_suite` | Get a test suite and the scenarios filed in it |
151
+ | `platform_rename_test_suite` | Rename a test suite |
152
152
  | `platform_archive_test_suite` | Archive a test suite and the scenarios filed in it |
153
- | `platform_run_test_suite` | Run every scenario of a test suite against targets |
153
+ | `platform_run_test_suite` | Run every scenario of a test suite against targets |
154
154
 
155
155
  ### Simulation runs (requires API key)
156
156
 
157
- | Tool | Description |
158
- |------|-------------|
159
- | `platform_list_simulation_runs` | List simulation run results |
160
- | `platform_get_simulation_run` | Get one run with its conversation and verdict |
157
+ | Tool | Description |
158
+ | ------------------------------- | --------------------------------------------- |
159
+ | `platform_list_simulation_runs` | List simulation run results |
160
+ | `platform_get_simulation_run` | Get one run with its conversation and verdict |
161
161
 
162
162
  ### Evaluators (requires API key)
163
163
 
164
- | Tool | Description |
165
- |------|-------------|
166
- | `platform_list_evaluators` | List all evaluators |
167
- | `platform_get_evaluator` | Get evaluator details |
164
+ | Tool | Description |
165
+ | --------------------------- | ---------------------- |
166
+ | `platform_list_evaluators` | List all evaluators |
167
+ | `platform_get_evaluator` | Get evaluator details |
168
168
  | `platform_create_evaluator` | Create a new evaluator |
169
- | `platform_update_evaluator` | Update an evaluator |
169
+ | `platform_update_evaluator` | Update an evaluator |
170
170
 
171
171
  ### Model Providers (requires API key)
172
172
 
173
- | Tool | Description |
174
- |------|-------------|
173
+ | Tool | Description |
174
+ | ------------------------------- | ------------------------------- |
175
175
  | `platform_list_model_providers` | List configured model providers |
176
- | `platform_set_model_provider` | Configure a model provider |
176
+ | `platform_set_model_provider` | Configure a model provider |
177
177
 
178
178
  ## Output Formats
179
179
 
@@ -217,7 +217,7 @@ pnpm build
217
217
 
218
218
  ```bash
219
219
  pnpm test # Run all tests
220
- pnpm test:unit # Unit tests only
220
+ pnpm test # Unit tests only
221
221
  ```
222
222
 
223
223
  ### Local testing
@@ -231,8 +231,10 @@ Build and point your MCP client to the local dist:
231
231
  "command": "node",
232
232
  "args": [
233
233
  "/path/to/mcp-server/dist/index.js",
234
- "--apiKey", "your-api-key",
235
- "--endpoint", "http://localhost:5560"
234
+ "--apiKey",
235
+ "your-api-key",
236
+ "--endpoint",
237
+ "http://localhost:5560"
236
238
  ]
237
239
  }
238
240
  }
@@ -0,0 +1,50 @@
1
+ import {
2
+ assertDashboardExists,
3
+ assignDashboardWidgetToDashboard,
4
+ createDashboardWidget,
5
+ deleteDashboardWidget,
6
+ normalizeDashboardWidgetQueries
7
+ } from "./chunk-5FNCQRCX.js";
8
+ import "./chunk-K2I7Z3LZ.js";
9
+ import {
10
+ getCurrentProject
11
+ } from "./chunk-B4J3PJLX.js";
12
+ import "./chunk-UWLE5T2F.js";
13
+ import "./chunk-H6WGMG2T.js";
14
+ import "./chunk-SAS5OB7F.js";
15
+
16
+ // src/tools/add-dashboard-widget.ts
17
+ async function handleAddDashboardWidget(params) {
18
+ const queries = normalizeDashboardWidgetQueries({ queries: params.queries });
19
+ const project = await getCurrentProject();
20
+ await assertDashboardExists({ projectId: project.id, dashboardId: params.dashboardId });
21
+ const widget = await createDashboardWidget({
22
+ projectId: project.id,
23
+ name: params.name,
24
+ code: params.code,
25
+ queries
26
+ });
27
+ try {
28
+ await assignDashboardWidgetToDashboard({
29
+ projectId: project.id,
30
+ widgetId: widget.id,
31
+ dashboardId: params.dashboardId
32
+ });
33
+ } catch (error) {
34
+ await deleteDashboardWidget({
35
+ projectId: project.id,
36
+ widgetId: widget.id
37
+ }).catch(() => {
38
+ });
39
+ throw error;
40
+ }
41
+ return [
42
+ `Widget "${params.name}" created and added to dashboard "${params.dashboardId}".`,
43
+ `**Widget ID**: ${widget.id}`,
44
+ `**Queries**: ${queries.map((q) => q.name).join(", ")}`
45
+ ].join("\n");
46
+ }
47
+ export {
48
+ handleAddDashboardWidget
49
+ };
50
+ //# sourceMappingURL=add-dashboard-widget-4ZC5UN73.js.map
@@ -0,0 +1,49 @@
1
+ import {
2
+ assertDashboardExists,
3
+ assignDashboardWidgetToDashboard,
4
+ createDashboardWidget,
5
+ deleteDashboardWidget,
6
+ normalizeDashboardWidgetQueries
7
+ } from "./chunk-5FNCQRCX.js";
8
+ import "./chunk-K2I7Z3LZ.js";
9
+ import {
10
+ getCurrentProject
11
+ } from "./chunk-B4J3PJLX.js";
12
+ import "./chunk-UWLE5T2F.js";
13
+ import "./chunk-H6WGMG2T.js";
14
+
15
+ // src/tools/add-dashboard-widget.ts
16
+ async function handleAddDashboardWidget(params) {
17
+ const queries = normalizeDashboardWidgetQueries({ queries: params.queries });
18
+ const project = await getCurrentProject();
19
+ await assertDashboardExists({ projectId: project.id, dashboardId: params.dashboardId });
20
+ const widget = await createDashboardWidget({
21
+ projectId: project.id,
22
+ name: params.name,
23
+ code: params.code,
24
+ queries
25
+ });
26
+ try {
27
+ await assignDashboardWidgetToDashboard({
28
+ projectId: project.id,
29
+ widgetId: widget.id,
30
+ dashboardId: params.dashboardId
31
+ });
32
+ } catch (error) {
33
+ await deleteDashboardWidget({
34
+ projectId: project.id,
35
+ widgetId: widget.id
36
+ }).catch(() => {
37
+ });
38
+ throw error;
39
+ }
40
+ return [
41
+ `Widget "${params.name}" created and added to dashboard "${params.dashboardId}".`,
42
+ `**Widget ID**: ${widget.id}`,
43
+ `**Queries**: ${queries.map((q) => q.name).join(", ")}`
44
+ ].join("\n");
45
+ }
46
+ export {
47
+ handleAddDashboardWidget
48
+ };
49
+ //# sourceMappingURL=add-dashboard-widget-ACC6QYBG.js.map
@@ -0,0 +1,19 @@
1
+ import {
2
+ archiveProject
3
+ } from "./chunk-B4J3PJLX.js";
4
+ import "./chunk-UWLE5T2F.js";
5
+ import "./chunk-H6WGMG2T.js";
6
+
7
+ // src/tools/archive-project.ts
8
+ async function handleArchiveProject(params) {
9
+ const result = await archiveProject(params.id);
10
+ return `Project archived successfully.
11
+
12
+ **Name**: ${result.name}
13
+ **ID**: ${result.id}
14
+ **Archived At**: ${result.archivedAt}`;
15
+ }
16
+ export {
17
+ handleArchiveProject
18
+ };
19
+ //# sourceMappingURL=archive-project-KWFM3I5Z.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  archiveProject
3
- } from "./chunk-G4ZAZTZW.js";
4
- import "./chunk-GELJ2MQR.js";
5
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-B4J3PJLX.js";
4
+ import "./chunk-UWLE5T2F.js";
5
+ import "./chunk-H6WGMG2T.js";
6
6
  import "./chunk-SAS5OB7F.js";
7
7
 
8
8
  // src/tools/archive-project.ts
@@ -17,4 +17,4 @@ async function handleArchiveProject(params) {
17
17
  export {
18
18
  handleArchiveProject
19
19
  };
20
- //# sourceMappingURL=archive-project-W3IKI7UL.js.map
20
+ //# sourceMappingURL=archive-project-SPVHXK6A.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  archiveRunPlan
3
- } from "./chunk-56OGTS24.js";
4
- import "./chunk-GELJ2MQR.js";
5
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-PTDR56Z3.js";
4
+ import "./chunk-UWLE5T2F.js";
5
+ import "./chunk-H6WGMG2T.js";
6
6
  import "./chunk-SAS5OB7F.js";
7
7
 
8
8
  // src/tools/archive-run-plan.ts
@@ -13,4 +13,4 @@ async function handleArchiveRunPlan(params) {
13
13
  export {
14
14
  handleArchiveRunPlan
15
15
  };
16
- //# sourceMappingURL=archive-run-plan-474OKHHU.js.map
16
+ //# sourceMappingURL=archive-run-plan-65QN3XRX.js.map
@@ -0,0 +1,15 @@
1
+ import {
2
+ archiveRunPlan
3
+ } from "./chunk-PTDR56Z3.js";
4
+ import "./chunk-UWLE5T2F.js";
5
+ import "./chunk-H6WGMG2T.js";
6
+
7
+ // src/tools/archive-run-plan.ts
8
+ async function handleArchiveRunPlan(params) {
9
+ const result = await archiveRunPlan(params.id);
10
+ return `Run plan ${result.id} is archived. Its past runs stay readable, and the name is free for a new plan.`;
11
+ }
12
+ export {
13
+ handleArchiveRunPlan
14
+ };
15
+ //# sourceMappingURL=archive-run-plan-Z4SYE6BP.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  archiveScenario
3
- } from "./chunk-RVAE2MEA.js";
4
- import "./chunk-GELJ2MQR.js";
5
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-I7ATIZED.js";
4
+ import "./chunk-UWLE5T2F.js";
5
+ import "./chunk-H6WGMG2T.js";
6
6
  import "./chunk-SAS5OB7F.js";
7
7
 
8
8
  // src/tools/archive-scenario.ts
@@ -17,4 +17,4 @@ async function handleArchiveScenario(params) {
17
17
  export {
18
18
  handleArchiveScenario
19
19
  };
20
- //# sourceMappingURL=archive-scenario-V5UNYK26.js.map
20
+ //# sourceMappingURL=archive-scenario-A6QV5LOW.js.map
@@ -0,0 +1,19 @@
1
+ import {
2
+ archiveScenario
3
+ } from "./chunk-I7ATIZED.js";
4
+ import "./chunk-UWLE5T2F.js";
5
+ import "./chunk-H6WGMG2T.js";
6
+
7
+ // src/tools/archive-scenario.ts
8
+ async function handleArchiveScenario(params) {
9
+ const result = await archiveScenario(params.scenarioId);
10
+ const lines = [];
11
+ lines.push("Scenario archived successfully!\n");
12
+ lines.push(`**ID**: ${result.id}`);
13
+ lines.push(`**Status**: ${result.archived ? "archived" : "active"}`);
14
+ return lines.join("\n");
15
+ }
16
+ export {
17
+ handleArchiveScenario
18
+ };
19
+ //# sourceMappingURL=archive-scenario-FXEYQNEH.js.map
@@ -0,0 +1,15 @@
1
+ import {
2
+ archiveTestSuite
3
+ } from "./chunk-VMWJD732.js";
4
+ import "./chunk-UWLE5T2F.js";
5
+ import "./chunk-H6WGMG2T.js";
6
+
7
+ // src/tools/archive-test-suite.ts
8
+ async function handleArchiveTestSuite(params) {
9
+ const result = await archiveTestSuite(params.id);
10
+ return `Test suite ${result.id} is archived, and the scenarios filed in it are archived with it.`;
11
+ }
12
+ export {
13
+ handleArchiveTestSuite
14
+ };
15
+ //# sourceMappingURL=archive-test-suite-5ADQ3KPQ.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  archiveTestSuite
3
- } from "./chunk-6DJDEXET.js";
4
- import "./chunk-GELJ2MQR.js";
5
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-VMWJD732.js";
4
+ import "./chunk-UWLE5T2F.js";
5
+ import "./chunk-H6WGMG2T.js";
6
6
  import "./chunk-SAS5OB7F.js";
7
7
 
8
8
  // src/tools/archive-test-suite.ts
@@ -13,4 +13,4 @@ async function handleArchiveTestSuite(params) {
13
13
  export {
14
14
  handleArchiveTestSuite
15
15
  };
16
- //# sourceMappingURL=archive-test-suite-O7FLDMXK.js.map
16
+ //# sourceMappingURL=archive-test-suite-NKZDZY3D.js.map
@@ -0,0 +1,23 @@
1
+ import {
2
+ assignPromptTag
3
+ } from "./chunk-UWLE5T2F.js";
4
+ import "./chunk-H6WGMG2T.js";
5
+
6
+ // src/tools/assign-prompt-tag.ts
7
+ async function handleAssignPromptTag(params) {
8
+ await assignPromptTag({
9
+ idOrHandle: params.idOrHandle,
10
+ tag: params.tag,
11
+ versionId: params.versionId
12
+ });
13
+ const lines = [];
14
+ lines.push("Tag assigned successfully!\n");
15
+ lines.push(`**Prompt**: ${params.idOrHandle}`);
16
+ lines.push(`**Tag**: ${params.tag}`);
17
+ lines.push(`**Version ID**: ${params.versionId}`);
18
+ return lines.join("\n");
19
+ }
20
+ export {
21
+ handleAssignPromptTag
22
+ };
23
+ //# sourceMappingURL=assign-prompt-tag-5IUZXJ2T.js.map
@@ -1,12 +1,16 @@
1
1
  import {
2
2
  assignPromptTag
3
- } from "./chunk-GELJ2MQR.js";
4
- import "./chunk-WT4PO4A3.js";
3
+ } from "./chunk-UWLE5T2F.js";
4
+ import "./chunk-H6WGMG2T.js";
5
5
  import "./chunk-SAS5OB7F.js";
6
6
 
7
7
  // src/tools/assign-prompt-tag.ts
8
8
  async function handleAssignPromptTag(params) {
9
- await assignPromptTag({ idOrHandle: params.idOrHandle, tag: params.tag, versionId: params.versionId });
9
+ await assignPromptTag({
10
+ idOrHandle: params.idOrHandle,
11
+ tag: params.tag,
12
+ versionId: params.versionId
13
+ });
10
14
  const lines = [];
11
15
  lines.push("Tag assigned successfully!\n");
12
16
  lines.push(`**Prompt**: ${params.idOrHandle}`);
@@ -17,4 +21,4 @@ async function handleAssignPromptTag(params) {
17
21
  export {
18
22
  handleAssignPromptTag
19
23
  };
20
- //# sourceMappingURL=assign-prompt-tag-Q46WRB6P.js.map
24
+ //# sourceMappingURL=assign-prompt-tag-HBZLBIFD.js.map
@@ -1,36 +1,33 @@
1
1
  import {
2
2
  makeRequest
3
- } from "./chunk-GELJ2MQR.js";
3
+ } from "./chunk-UWLE5T2F.js";
4
4
 
5
5
  // src/langwatch-api-evaluators.ts
6
6
  function getEvaluatorType(evaluator) {
7
7
  return evaluator.config?.evaluatorType;
8
8
  }
9
9
  async function listEvaluators() {
10
- return makeRequest("GET", "/api/evaluators");
10
+ return makeRequest("GET", "/api/v1/evaluators");
11
11
  }
12
12
  async function getEvaluator(idOrSlug) {
13
13
  return makeRequest(
14
14
  "GET",
15
- `/api/evaluators/${encodeURIComponent(idOrSlug)}`
15
+ `/api/v1/evaluators/${encodeURIComponent(idOrSlug)}`
16
16
  );
17
17
  }
18
18
  async function createEvaluator(data) {
19
- return makeRequest("POST", "/api/evaluators", data);
19
+ return makeRequest("POST", "/api/v1/evaluators", data);
20
20
  }
21
21
  async function updateEvaluator(params) {
22
22
  const { id, ...data } = params;
23
23
  return makeRequest(
24
24
  "PUT",
25
- `/api/evaluators/${encodeURIComponent(id)}`,
25
+ `/api/v1/evaluators/${encodeURIComponent(id)}`,
26
26
  data
27
27
  );
28
28
  }
29
29
  async function deleteEvaluator(idOrSlug) {
30
- return makeRequest(
31
- "DELETE",
32
- `/api/evaluators/${encodeURIComponent(idOrSlug)}`
33
- );
30
+ return makeRequest("DELETE", `/api/v1/evaluators/${encodeURIComponent(idOrSlug)}`);
34
31
  }
35
32
 
36
33
  export {
@@ -41,4 +38,4 @@ export {
41
38
  updateEvaluator,
42
39
  deleteEvaluator
43
40
  };
44
- //# sourceMappingURL=chunk-OJLYYJWI.js.map
41
+ //# sourceMappingURL=chunk-3OCG3QPU.js.map